summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichele Calgaro <michele.calgaro@yahoo.it>2022-05-06 13:43:02 +0900
committerMichele Calgaro <michele.calgaro@yahoo.it>2022-05-06 13:49:57 +0900
commit80a31d6c8a114799dc5284086ffce2e9be34c50e (patch)
tree1719891657e76c04f063f5ff7b5fdf63d9e562c3
parente6ba08c3b21cdb14ee3a97b5d584759a4597b54b (diff)
downloadextra-dependencies-80a31d6c.tar.gz
extra-dependencies-80a31d6c.zip
uncrustify-trinity: updated based on upstream version 0.75.0
Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/.github/workflows/uncrustify_test.yml32
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/.gitignore64
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/AUTHORS166
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/CMakeLists.txt554
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/CODEOWNERS11
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/ChangeLog1544
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/README.md389
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/appveyor.yml36
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/cmake/Toolchain-mingw32.cmake28
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/cmake/Toolchain-mingw64.cmake28
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/changelog334
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/control18
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/patches/002_trinity_customization.diff231
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/align-thresholds.txt239
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/config.txt3371
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/default.cfg3371
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/index.html183
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Align.html44
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_NewLines.html216
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Spaces.html432
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/not_a_compiler.txt19
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/ben.cfg1205
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/defaults.cfg3371
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/freebsd.cfg385
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/linux.cfg123
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/sun.cfg1796
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/uigui_uncrustify.ini7018
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/forUncrustifySources.cfg471
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/package.json21
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/release-process.rst325
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/pclint/run-pclint-eclipse.bat104
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/update_emscripten_bindings.py316
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/ChunkStack.cpp120
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/ChunkStack.h123
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/EnumStructUnionParser.cpp2859
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/EnumStructUnionParser.h496
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/ListManager.h270
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/ParseFrame.cpp294
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/ParseFrame.h99
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align.cpp221
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_add.cpp53
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_add.h18
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_asm_colon.cpp62
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_assign.cpp298
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_assign.h25
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_eigen_comma_init.cpp121
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_func_params.cpp188
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_func_params.h19
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_func_proto.cpp218
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_func_proto.h18
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_init_brace.cpp203
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_init_brace.h49
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_left_shift.cpp134
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_nl_cont.cpp63
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_nl_cont.h33
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_oc_decl_colon.cpp90
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_oc_msg_colons.cpp182
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_oc_msg_spec.cpp37
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_preprocessor.cpp109
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_same_func_call_params.cpp283
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_same_func_call_params.h22
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_stack.cpp659
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_stack.h163
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_struct_initializers.cpp34
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_tools.cpp173
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_tools.h48
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_trailing_comments.cpp236
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_trailing_comments.h46
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_typedefs.cpp65
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_var_def_brace.cpp346
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_var_def_brace.h22
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/args.cpp228
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/brace_cleanup.cpp1498
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/braces.cpp1629
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/braces.h33
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/calculate_closing_brace_position.cpp199
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/calculate_closing_brace_position.h18
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/chunk_list.cpp1144
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/chunk_list.h1032
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/combine.cpp3869
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/combine.h77
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/combine_fix_mark.cpp2584
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/combine_fix_mark.h196
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/combine_labels.cpp436
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/combine_skip.cpp329
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/combine_skip.h169
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/combine_tools.cpp559
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/combine_tools.h85
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/compat_win32.cpp82
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/cs_top_is_question.cpp20
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/detect.cpp439
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/enum_cleanup.cpp79
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/error_types.h52
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/flag_braced_init_list.cpp108
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/flag_braced_init_list.h25
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/flag_decltype.cpp37
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/flag_decltype.h20
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/flag_parens.cpp72
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/flag_parens.h28
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/frame_list.cpp299
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/frame_list.h40
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/indent.cpp4473
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/indent.h59
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/keywords.cpp666
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/keywords.h63
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/lang_pawn.cpp523
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/lang_pawn.h49
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/log_rules.cpp80
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/log_rules.h49
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/logger.h167
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/newlines.cpp6667
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/newlines.h206
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/option.cpp1247
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/options.h4048
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/output.cpp3394
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/parameter_pack_cleanup.cpp68
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/parens.cpp205
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/parens.h18
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/parent_for_pp.cpp53
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/pcf_flags.h98
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/prototypes.h64
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/quick_align_again.cpp53
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/remove_duplicate_include.cpp94
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/remove_duplicate_include.h20
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/remove_extra_returns.cpp84
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/semicolons.cpp125
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/sorting.cpp698
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/space.cpp3829
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/space.h45
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/token_enum.h399
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/tokenize.cpp2863
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/tokenize.h55
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/tokenize_cleanup.cpp1756
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/tokenize_cleanup.h31
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/unc_tools.cpp496
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/unc_tools.h46
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/uncrustify.cpp2691
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/uncrustify.h99
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/uncrustify_emscripten.cpp1218
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/uncrustify_limits.h14
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/uncrustify_types.h402
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/width.cpp916
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/c-sharp.test149
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/c.test435
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/21.txt1887
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/25.txt237
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/28.txt428
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/31.txt600
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/36.txt19
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/66.txt741
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/92.txt196
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/class_enum_struct_union.txt692
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/logger_cs_L_99.txt8
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/p.txt79
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/pc-.txt10
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/replace.txt2
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/truncate.txt16
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/universalindent.cfg7018
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/doxy-comment-yes.cfg11
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/if_chain.cfg11
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_paren_close-1.cfg6
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/issue_527.cfg266
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/rdan.cfg33
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/aet.cfg508
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/attribute_specifier_seqs.cfg2
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/d.cfg49
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/indent_columns-3.cfg3
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/star_pos-0.cfg11
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/633_decl-in-func-typedef.cfg4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2149.cfg3
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2229.cfg10
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2250.cfg5
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2594.cfg11
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2668.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3097.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-32657.cfg316
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_2322.cfg11
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/func_param.cfg6
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/functype_param-f.cfg2
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/functype_param-r.cfg2
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/i1516.cfg4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/if_chain_braces_2.cfg2
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_comma_brace.cfg4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_shift.cfg4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_2124-2.cfg2
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/mod_full_brace_if_chain-t.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U01-Cs.cfg282
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U07-Cs.cfg283
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U08-Cs.cfg282
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-11095.cfg319
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-11993.cfg287
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-18437.cfg287
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-32658.cfg286
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-37241.cfg287
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/bug_1620.cfg289
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/bug_1637.cfg287
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/bug_1650.cfg288
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/mod_full_brace_nl_block_rem_mlcond-1.cfg2
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/vala/Issue_2090.cfg2
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cpp.test1047
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00901-code_width.c87
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00902-code_width.c76
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00903-code_width.c75
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02487-doxy-comment.c11
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/02102-indent-c.cpp1024
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/02103-output.cpp624
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10007-dont-process-defines.cpp6
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30012-misc2.cpp58
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30218-trailing_return.cpp50
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30219-trailing_return.cpp50
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30222-trailing_return.cpp50
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30750-lambda.cpp89
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30751-lambda.cpp72
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30752-lambda.cpp102
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30753-lambda2.cpp76
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30756-bug_1296.cpp7
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30765-lambda.cpp88
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30766-lambda.cpp88
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30767-lambda.cpp88
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30770-lambda.cpp88
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30771-lambda.cpp88
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30772-lambda.cpp88
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30773-lambda.cpp88
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30774-lambda.cpp88
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30775-lambda.cpp88
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30822-pp_indent_brace.cpp24
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32105-I2103.cpp2
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33029-cast.cpp4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33043-bug_i_478.cpp24
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33061-if_chain_braces.cpp33
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33062-if_chain_braces.cpp34
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33063-if_chain_braces.cpp39
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33064-if_chain_braces.cpp38
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33110-enum.cpp203
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34173-i1464.cpp1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34174-i1466.cpp1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60050-semicolon-removal-after-ternary-operator.cpp9
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10018-delete-space-oc.mm69
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10019-func-param-wrap-oc.mm5
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10046-UNI-1333.mm15
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/11032-newlines.mm33
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40000-HashMap.d1095
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40002-volatile.d27
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40006-Lexer.d2472
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40021-tst01.d25
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40030-delegate.d22
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50050-real_world_file.m230
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/code_width.c51
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/I2103.cpp2
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1296.cpp7
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_478.cpp24
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cast.cpp4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/enum.cpp207
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1464.cpp1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1466.cpp1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/if_chain_braces.cpp33
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent-c.cpp1084
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/lambda.cpp77
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/lambda2.cpp82
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/misc2.cpp59
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/output.cpp657
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/pp_indent_brace.cpp24
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/semicolon-removal-after-ternary-operator.cpp9
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/trailing_return.cpp44
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/delete-space-oc.mm69
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/func-param-wrap-oc.mm5
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/objective-c.test187
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/test_uncrustify/utilities.py210
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/vala.test15
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/uncrustify.vpj130
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0.orig.tar.gzbin0 -> 1677824 bytes
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/.editorconfig (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/.editorconfig)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/.gitattributes (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/.gitattributes)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/.github/ISSUE_TEMPLATE (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/.github/ISSUE_TEMPLATE)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/.github/workflows/uncrustify_test.yml38
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/.gitignore70
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/.travis.yml (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/.travis.yml)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/AUTHORS175
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/BUGS (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/BUGS)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/CMakeLists.txt556
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/CODEOWNERS11
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/CONTRIBUTING.md (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/CONTRIBUTING.md)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/COPYING (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/COPYING)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/ChangeLog1600
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/Comments.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/Comments.txt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/HELP (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/HELP)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/LIMITATIONS.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/LIMITATIONS.txt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/NEWS (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/NEWS)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/README.md389
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/TESTING (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/TESTING)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/appveyor.yml35
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/cmake/CodeCoverage.cmake (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/cmake/CodeCoverage.cmake)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/cmake/GenerateTokenNames.cmake (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/cmake/GenerateTokenNames.cmake)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/cmake/GenerateVersionHeader.cmake (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/cmake/GenerateVersionHeader.cmake)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/cmake/Toolchain-mingw32.cmake28
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/cmake/Toolchain-mingw64.cmake28
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/cmake/uninstall.cmake (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/cmake/uninstall.cmake)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/commit.log (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/commit.log)0
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.75.0/coverity.sh (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/coverity.sh)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/coverity.travis.yml (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/coverity.travis.yml)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/debian/cdbs/debian-tde.mk (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/cdbs/debian-tde.mk)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/debian/cdbs/versions.pl (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/cdbs/versions.pl)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/debian/changelog340
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/debian/compat (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/compat)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/debian/control19
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/debian/copyright (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/copyright)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/debian/docs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/docs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/debian/patches/001_docs-remove-remote-images.patch (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/patches/001_docs-remove-remote-images.patch)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/debian/patches/002_trinity_customization.diff231
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/debian/patches/003_allow_older_distributions.diff (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/patches/003_allow_older_distributions.diff)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/debian/patches/004_fixed_usage.diff (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/patches/004_fixed_usage.diff)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/debian/patches/series (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/patches/series)0
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.75.0/debian/rules (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/rules)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/debian/source/format (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/source/format)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/debian/source/options (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/source/options)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/Track.jpg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/Track.jpg)bin23478 -> 23478 bytes
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/Tracking.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/Tracking.txt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/align-thresholds.txt219
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/control_the_spaces.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/control_the_spaces.txt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/dump-steps.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/dump-steps.txt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/example.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/example.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/goals.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/goals.txt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/how_to_configure_options.txt16
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/how_to_format_cpp_lambda_functions.rst (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/how_to_format_cpp_lambda_functions.rst)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/align_typedef.html (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/align_typedef.html)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/ben.cfg.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/ben.cfg.txt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/config.txt3493
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/configuration.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/configuration.txt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/default.cfg3493
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/examples/c-1.in.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/examples/c-1.in.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/examples/c-1.out.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/examples/c-1.out.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/examples/example.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/examples/example.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/images/linuxlinks.gif (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/images/linuxlinks.gif)bin462 -> 462 bytes
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/index.html183
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/linux.cfg.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/linux.cfg.txt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options.html (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options.html)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_ASM.html (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_ASM.html)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_Align.html44
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_CLI_NET.html (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_CLI_NET.html)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_C_sharp.html (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_C_sharp.html)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_D.html (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_D.html)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_Indenting.html (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Indenting.html)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_Java.html (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Java.html)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_ModifyCode.html (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_ModifyCode.html)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_Namespace.html (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Namespace.html)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_NewLines.html216
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_Objectiv-C.html (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Objectiv-C.html)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_Positioning.html (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Positioning.html)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_Preprocessor.html (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Preprocessor.html)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_Space_Assign.html (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_Assign.html)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_Space_Byref.html (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_Byref.html)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_Space_Case.html (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_Case.html)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_Space_Cast.html (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_Cast.html)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_Space_Class.html (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_Class.html)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_Space_Comma.html (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_Comma.html)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_Space_Enum.html (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_Enum.html)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_Space_For.html (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_For.html)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_Space_New.html (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_New.html)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_Space_Operator.html (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_Operator.html)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_Space_Paren.html (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_Paren.html)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_Space_Template.html (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_Template.html)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_Spaces.html432
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/project-support.jpg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/project-support.jpg)bin3788 -> 3788 bytes
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/uncrustify.css (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/uncrustify.css)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/uncrustify.html (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/uncrustify.html)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/not_a_compiler.txt19
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/overview.odt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/overview.odt)bin16651 -> 16651 bytes
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/paren_stack.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/paren_stack.txt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/preprocessor_indentation.txt414
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/theory.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/theory.txt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/threads.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/threads.txt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/track.html (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/track.html)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/emscripten/CMakeLists.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/CMakeLists.txt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/emscripten/CMake_catFiles.cmake (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/CMake_catFiles.cmake)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/emscripten/CMake_emscripten_test.cmake (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/CMake_emscripten_test.cmake)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/emscripten/README.md (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/README.md)0
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.75.0/emscripten/build.sh (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/build.sh)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/emscripten/libUncrustify.d.ts (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/libUncrustify.d.ts)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/emscripten/postfix_file (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/postfix_file)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/emscripten/postfix_module.js (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/postfix_module.js)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/emscripten/prefix_file (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/prefix_file)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/emscripten/prefix_module.js (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/prefix_module.js)0
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.75.0/emscripten/test/run_tests.py (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/test/run_tests.py)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/emscripten/test/test_run.js (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/test/test_run.js)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/MS-calling_conventions.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/MS-calling_conventions.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/align_assign.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/align_assign.txt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/amxmodx.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/amxmodx.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/ben.cfg1213
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/ben2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/ben2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/d.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/d.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/defaults.cfg3493
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/dofiles.sh (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/dofiles.sh)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/freebsd.cfg386
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/gnu-indent.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/gnu-indent.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/klaus.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/klaus.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/kr-indent.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/kr-indent.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/linux-indent.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/linux-indent.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/linux.cfg123
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/mono.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/mono.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/msvc.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/msvc.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/objc.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/objc.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/sun.cfg1803
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/types.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/types.txt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/uigui_uncrustify.ini7206
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/uncrust-files.sh (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/uncrust-files.sh)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/uncrustify.xml.in (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/uncrustify.xml.in)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/xsupplicant.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/xsupplicant.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/extras.vpj (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/extras.vpj)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/forUncrustifySources.cfg472
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/forUncrustifySources.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/forUncrustifySources.txt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/lnt/ChunkStack.lnt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/lnt/ChunkStack.lnt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/lnt/align.lnt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/lnt/align.lnt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/lnt/chunk_list.lnt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/lnt/chunk_list.lnt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/lnt/logger.lnt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/lnt/logger.lnt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/lnt/readme.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/lnt/readme.txt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/lnt/unc_text.lnt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/lnt/unc_text.lnt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/lnt/uncrustify_types.lnt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/lnt/uncrustify_types.lnt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/man/uncrustify.1.in (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/man/uncrustify.1.in)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/osx/Xcode Organizer Actions.xccommands (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/osx/Xcode Organizer Actions.xccommands)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/package.json21
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/release-process.rst325
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/Gcov_test.sh (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/Gcov_test.sh)0
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/Run_clang-tidy.sh (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/Run_clang-tidy.sh)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/add_test_list.awk (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/add_test_list.awk)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/check_options.py (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/check_options.py)0
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/cmpcfg.pl (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/cmpcfg.pl)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/compare_the_gcov.awk (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/compare_the_gcov.awk)0
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/gen_changelog.py (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/gen_changelog.py)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/gen_config_combinations_uniq_output.py (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/gen_config_combinations_uniq_output.py)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/gen_config_combinations_uniq_output_example.json (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/gen_config_combinations_uniq_output_example.json)0
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/grammar_permutator.py (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/grammar_permutator.py)0
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/make_katehl.py (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/make_katehl.py)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/make_option_enum.py (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/make_option_enum.py)0
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/make_options.py (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/make_options.py)0
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/make_punctuator_table.py (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/make_punctuator_table.py)0
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/make_version.py (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/make_version.py)0
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/option_reducer.py (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/option_reducer.py)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/pclint/au-sm123.lnt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/pclint/au-sm123.lnt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/pclint/co-gcc.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/pclint/co-gcc.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/pclint/co-gcc.lnt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/pclint/co-gcc.lnt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/pclint/lint_cfg.lnt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/pclint/lint_cfg.lnt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/pclint/pclint_cfg_eclipse.lnt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/pclint/pclint_cfg_eclipse.lnt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/pclint/policy.lnt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/pclint/policy.lnt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/pclint/run-pclint-eclipse.bat104
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/pclint/usage.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/pclint/usage.txt)0
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/prepare_list_of_authors.sh (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/prepare_list_of_authors.sh)0
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/release_tool.py (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/release_tool.py)0
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/run_ctest.py (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/run_ctest.py)0
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/tokenizer.py (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/tokenizer.py)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/update_emscripten_bindings.py316
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/.kateconfig (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/.kateconfig)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/ChunkStack.cpp120
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/ChunkStack.h123
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/EnumStructUnionParser.cpp2919
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/EnumStructUnionParser.h497
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/ListManager.h260
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/ParseFrame.cpp347
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/ParseFrame.h99
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/add_space_table.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/add_space_table.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align.cpp231
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_add.cpp58
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_add.h18
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_asm_colon.cpp62
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_asm_colon.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_asm_colon.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_assign.cpp305
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_assign.h25
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_braced_init_list.cpp167
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_braced_init_list.h21
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_eigen_comma_init.cpp121
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_eigen_comma_init.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_eigen_comma_init.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_func_params.cpp188
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_func_params.h19
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_func_proto.cpp227
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_func_proto.h18
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_init_brace.cpp202
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_init_brace.h49
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_left_shift.cpp134
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_left_shift.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_left_shift.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_log_al.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_log_al.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_log_al.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_log_al.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_nl_cont.cpp64
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_nl_cont.h33
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_oc_decl_colon.cpp90
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_oc_decl_colon.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_oc_decl_colon.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_oc_msg_colons.cpp182
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_oc_msg_colons.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_oc_msg_colons.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_oc_msg_spec.cpp37
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_oc_msg_spec.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_oc_msg_spec.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_preprocessor.cpp110
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_preprocessor.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_preprocessor.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_same_func_call_params.cpp283
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_same_func_call_params.h22
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_stack.cpp667
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_stack.h154
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_struct_initializers.cpp34
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_struct_initializers.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_struct_initializers.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_tab_column.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_tab_column.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_tab_column.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_tab_column.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_tools.cpp187
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_tools.h48
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_trailing_comments.cpp237
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_trailing_comments.h46
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_typedefs.cpp65
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_typedefs.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_typedefs.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_var_def_brace.cpp352
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_var_def_brace.h22
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/args.cpp228
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/args.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/args.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/backup.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/backup.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/backup.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/backup.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/base_types.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/base_types.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/brace_cleanup.cpp1506
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/brace_cleanup.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/brace_cleanup.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/braces.cpp1700
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/braces.h33
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/calculate_closing_brace_position.cpp199
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/calculate_closing_brace_position.h18
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/char_table.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/char_table.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/chunk.cpp1167
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/chunk.h1262
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/combine.cpp4018
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/combine.h77
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/combine_fix_mark.cpp2617
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/combine_fix_mark.h196
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/combine_labels.cpp443
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/combine_labels.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/combine_labels.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/combine_skip.cpp352
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/combine_skip.h169
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/combine_tools.cpp570
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/combine_tools.h85
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/compat.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/compat.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/compat_posix.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/compat_posix.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/compat_win32.cpp82
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/config.h.in (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/config.h.in)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/cs_top_is_question.cpp20
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/cs_top_is_question.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/cs_top_is_question.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/detect.cpp439
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/detect.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/detect.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/enum_cleanup.cpp96
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/enum_cleanup.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/enum_cleanup.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/enum_flags.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/enum_flags.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/error_types.h53
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/flag_braced_init_list.cpp110
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/flag_braced_init_list.h25
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/flag_decltype.cpp46
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/flag_decltype.h20
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/flag_parens.cpp72
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/flag_parens.h28
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/frame_list.cpp345
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/frame_list.h40
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/indent.cpp4776
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/indent.h59
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/keywords.cpp670
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/keywords.h85
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/lang_pawn.cpp540
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/lang_pawn.h49
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/language_tools.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/language_tools.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/language_tools.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/language_tools.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/log_levels.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/log_levels.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/log_rules.cpp80
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/log_rules.h49
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/logger.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/logger.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/logger.h166
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/logmask.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/logmask.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/logmask.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/logmask.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/md5.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/md5.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/md5.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/md5.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/newlines.cpp6721
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/newlines.h206
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/option.cpp1275
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/option.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/option.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/option_enum.cpp.in (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/option_enum.cpp.in)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/option_enum.h.in (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/option_enum.h.in)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/options.cpp.in (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/options.cpp.in)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/options.h4189
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/options_for_QT.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/options_for_QT.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/options_for_QT.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/options_for_QT.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/output.cpp3422
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/output.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/output.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/parameter_pack_cleanup.cpp67
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/parameter_pack_cleanup.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/parameter_pack_cleanup.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/parens.cpp349
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/parens.h24
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/parent_for_pp.cpp54
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/parent_for_pp.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/parent_for_pp.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/pcf_flags.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/pcf_flags.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/pcf_flags.h96
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/prototypes.h64
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/punctuators.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/punctuators.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/punctuators.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/punctuators.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/quick_align_again.cpp53
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/quick_align_again.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/quick_align_again.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/remove_duplicate_include.cpp94
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/remove_duplicate_include.h20
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/remove_extra_returns.cpp84
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/remove_extra_returns.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/remove_extra_returns.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/semicolons.cpp125
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/semicolons.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/semicolons.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/sorting.cpp700
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/sorting.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/sorting.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/space.cpp3841
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/space.h45
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/symbols_table.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/symbols_table.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/token_enum.h399
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/tokenize.cpp2855
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/tokenize.h55
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/tokenize_cleanup.cpp1766
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/tokenize_cleanup.h31
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/unc_ctype.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/unc_ctype.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/unc_text.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/unc_text.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/unc_text.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/unc_text.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/unc_tools.cpp496
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/unc_tools.h46
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/uncrustify.cpp2708
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/uncrustify.h99
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/uncrustify_emscripten.cpp1218
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/uncrustify_limits.h19
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/uncrustify_types.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/uncrustify_types.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/uncrustify_types.h284
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/uncrustify_version.h.in (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/uncrustify_version.h.in)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/unicode.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/unicode.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/unicode.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/unicode.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/universalindentgui.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/universalindentgui.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/universalindentgui.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/universalindentgui.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/width.cpp923
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/width.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/width.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/windows_compat.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/windows_compat.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/.editorconfig (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/.editorconfig)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/CMakeLists.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/CMakeLists.txt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/c-sharp.test138
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/c.test462
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/config/I-842.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/config/I-842.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/config/copyright-header.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/config/copyright-header.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/config/copyright-header.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/config/copyright-header.txt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/config/mini_d.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/config/mini_d.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/config/mini_nd.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/config/mini_nd.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/config/replace.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/config/replace.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/config/tracking_space.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/config/tracking_space.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/config/truncate.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/config/truncate.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/config/unmatched_close_pp.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/config/unmatched_close_pp.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/input/I-3310.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/input/I-3310.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/input/I-842.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/input/I-842.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/input/backup.h-save (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/input/backup.h-save)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/input/class_enum_struct_union.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/input/class_enum_struct_union.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/input/logger.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/input/logger.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/input/replace.list (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/input/replace.list)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/input/testSrc.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/input/testSrc.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/input/testSrcP.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/input/testSrcP.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/input/tracking_space.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/input/tracking_space.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/input/truncate.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/input/truncate.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/input/unmatched_close_pp.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/input/unmatched_close_pp.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/21.txt2007
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/25.txt237
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/28.txt428
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/31.txt876
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/36.txt19
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/66.txt741
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/9.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/9.txt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/92.txt196
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/Debug_tracking_space.html (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/Debug_tracking_space.html)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/I-842.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/I-842.txt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/backup.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/backup.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/class_enum_struct_union.csv (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/class_enum_struct_union.csv)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/class_enum_struct_union.txt692
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/copyright-header.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/copyright-header.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/help.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/help.txt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/logger_cs_L_99.txt8
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/p.txt79
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/pc-.txt10
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/replace.txt2
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/tracking_space.html (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/tracking_space.html)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/truncate.txt16
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/universalindent.cfg7206
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/unmatched_close_pp.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/unmatched_close_pp.txt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/v-out.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/v-out.txt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/xyz-err.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/xyz-err.txt)0
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/test_cli_options.py (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/test_cli_options.py)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/1225.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/1225.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/1liner-no-split.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/1liner-no-split.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/1liner-split.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/1liner-split.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue-2278.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue-2278.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_2279.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_2279.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_2360-a.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_2360-a.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_2360-b.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_2360-b.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_2411.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_2411.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_2640.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_2640.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3169.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3169.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3233.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3233.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3269.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3269.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3272.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3272.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3274.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3274.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3327.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3327.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3350.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3350.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3351.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3351.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3353.cfg3
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3356.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3356.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3370.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3370.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3377.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3377.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3402.cfg3
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3431.cfg4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3454.cfg4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3457.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3472.cfg3
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3476.cfg3
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3480.cfg4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3493.cfg3
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3516.cfg5
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3517.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3518.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3556.cfg3
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3561.cfg3
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3565.cfg4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3567-a.cfg4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3567-b.cfg4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3580.cfg3
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3582.cfg5
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3601.cfg2
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/add_long_closebrace_comment_1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/add_long_closebrace_comment_1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/align-2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align-2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/align-3.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align-3.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/align_attr.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_attr.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/align_func_proto_star_amp-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_func_proto_star_amp-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/align_func_proto_star_amp-2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_func_proto_star_amp-2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/align_func_proto_star_amp-3.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_func_proto_star_amp-3.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/align_func_proto_star_amp-4.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_func_proto_star_amp-4.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/align_func_proto_star_amp-5.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_func_proto_star_amp-5.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/align_func_proto_star_amp-6.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_func_proto_star_amp-6.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/align_func_proto_star_amp-7.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_func_proto_star_amp-7.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/align_func_proto_star_amp-8.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_func_proto_star_amp-8.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/align_func_proto_star_amp-9.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_func_proto_star_amp-9.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/align_keep_extra.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_keep_extra.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/align_right_cmt_gap-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_right_cmt_gap-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/align_sf_call_span_418.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_sf_call_span_418.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/align_sf_call_span_419.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_sf_call_span_419.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/align_sf_call_thresh_416.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_sf_call_thresh_416.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/align_sf_call_thresh_417.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_sf_call_thresh_417.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/align_stack.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_stack.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/align_typedef_func-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_typedef_func-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/align_typedef_func-2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_typedef_func-2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/align_typedef_gap-3_span-5.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_typedef_gap-3_span-5.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_047.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_047.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_048.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_048.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_049.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_049.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_050.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_050.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_051.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_051.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_052.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_052.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_053.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_053.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_054.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_054.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_055.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_055.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_056.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_056.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_057.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_057.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_058.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_058.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_061.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_061.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_063.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_063.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_064.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_064.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_065.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_065.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_069.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_069.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_070.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_070.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_071.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_071.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_072.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_072.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_073.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_073.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_074.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_074.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_075.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_075.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_076.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_076.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_077.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_077.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_078.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_078.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_079.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_079.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_080.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_080.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_081.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_081.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_083.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_083.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_084.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_084.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_085.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_085.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_086.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_086.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_087.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_087.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_088.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_088.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_089.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_089.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_090.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_090.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_091.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_091.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_092.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_092.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_093.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_093.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_094.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_094.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_095.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_095.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/bool-pos-eol-break.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/bool-pos-eol-break.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/bool-pos-eol.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/bool-pos-eol.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/bool-pos-sol-break.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/bool-pos-sol-break.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/bool-pos-sol-force.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/bool-pos-sol-force.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/bool-pos-sol.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/bool-pos-sol.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/brace-banner.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/brace-banner.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/brace-banner.rerun.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/brace-banner.rerun.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/brace-gnu.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/brace-gnu.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/brace-kr-br.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/brace-kr-br.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/brace-kr-nobr.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/brace-kr-nobr.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/brace-kr.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/brace-kr.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/brace-remove-2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/brace-remove-2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/brace-remove-all.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/brace-remove-all.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/brace-ws.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/brace-ws.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/brace-ws2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/brace-ws2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/bug_1702.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/bug_1702.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/bug_1718.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/bug_1718.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/bug_2331.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/bug_2331.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/bug_489.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/bug_489.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/bug_i_771.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/bug_i_771.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/case-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/case-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/case-2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/case-2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/case-3.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/case-3.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/cast-sp-a.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cast-sp-a.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/cast-sp-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cast-sp-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/cast-type.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cast-type.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/cgal.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cgal.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/clang-has_include.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/clang-has_include.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/cmt_indent_multi-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cmt_indent_multi-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/cmt_multi_check_last-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cmt_multi_check_last-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/cmt_nl_end.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cmt_nl_end.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/cmt_reflow.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cmt_reflow.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/code_width-80.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/code_width-80.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/cond-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cond-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/cpp_to_c-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cpp_to_c-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/cpp_to_c-2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cpp_to_c-2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/cpp_to_c-3.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cpp_to_c-3.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/custom_types_ssl.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/custom_types_ssl.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/doxy-comment-no.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/doxy-comment-no.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/doxy-comment-yes.cfg13
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/else-if-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/else-if-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/else-if-2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/else-if-2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/empty_body.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/empty_body.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/endif.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/endif.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/enum_comma_ifdef.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/enum_comma_ifdef.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/force_tab_after_define-t.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/force_tab_after_define-t.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/freebsd.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/freebsd.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/func_call_user.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/func_call_user.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ger.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ger.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/i1564.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/i1564.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/if_chain.cfg11
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent-vbrace.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent-vbrace.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent_assign.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_assign.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent_case_comment-false.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_case_comment-false.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent_case_comment-true.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_case_comment-true.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent_comment_align_thresh-0.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_comment_align_thresh-0.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent_compound_literal_return-false.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_compound_literal_return-false.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent_compound_literal_return-true.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_compound_literal_return-true.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent_func_call_param.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_func_call_param.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent_func_def_param.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_func_def_param.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent_func_param.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_func_param.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent_func_proto_param.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_func_proto_param.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent_ignore_bool-true.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent_macro_brace-false.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_macro_brace-false.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent_macro_brace-true.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_macro_brace-true.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent_paren_close--1.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent_paren_close-1.cfg6
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent_paren_close-2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_paren_close-2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent_single_line_comments_after.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_single_line_comments_after.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent_sparen_extra-8.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_sparen_extra-8.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent_ternary_operator-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_ternary_operator-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent_ternary_operator-2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_ternary_operator-2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/issue_527.cfg266
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/label_colon_nl_1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/label_colon_nl_1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/label_colon_nl_2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/label_colon_nl_2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/leave_one_liners.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/leave_one_liners.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/mod-paren.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/mod-paren.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/mod-paren2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/mod-paren2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/mod_case_brace_add.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/mod_case_brace_add.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/mod_move_case_brace.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/mod_move_case_brace.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/mod_move_case_return.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/my_conf.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/my_conf.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/nepenthes.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nepenthes.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/newline_after_endif.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/newline_after_endif.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/nl-comment.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl-comment.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/nl_assign1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_assign1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/nl_assign2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_assign2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/nl_before_return_false.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_before_return_false.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/nl_before_return_true.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_before_return_true.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/nl_brace_test.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_brace_test.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/nl_create_one_liner.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_create_one_liner.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/nl_ds_struct_enum-2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_ds_struct_enum-2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/nl_ds_struct_enum_cmt-t.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_ds_struct_enum_cmt-t.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/nl_endif.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_endif.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/nl_enum_own_lines-3.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_enum_own_lines-3.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/nl_enum_own_lines-3.rerun.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_enum_own_lines-3.rerun.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/nl_enum_own_lines-4.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_enum_own_lines-4.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/nl_enum_own_lines-a.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_enum_own_lines-a.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/nl_semicolon.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_semicolon.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/nl_whole_file_ifdef.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_whole_file_ifdef.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/pascal_ptr.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pascal_ptr.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/pos_compare-eol.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pos_compare-eol.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/pos_compare-sol.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pos_compare-sol.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/pos_conditional-l.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pos_conditional-l.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/pos_conditional-t.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pos_conditional-t.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/pp-indent-2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp-indent-2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/pp-space.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp-space.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/pp_if_indent-0.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp_if_indent-0.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/pp_if_indent-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp_if_indent-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/pp_if_indent-2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp_if_indent-2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/pp_if_indent-3.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp_if_indent-3.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/pp_if_indent-4.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp_if_indent-4.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/pp_if_indent_code-true.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/pp_include_at_level-false.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp_include_at_level-false.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/pp_include_at_level-true.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp_include_at_level-true.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/pp_indent-a.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp_indent-a.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/pp_indent_brace--1.cfg2
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/pp_indent_in_guard.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp_indent_in_guard.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/pp_ret.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp_ret.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/preproc-cleanup.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/preproc-cleanup.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ptr-arith.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ptr-arith.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/rdan.cfg33
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/return-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/return-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/return-2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/return-2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/return-3.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/return-3.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/return-4.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/return-4.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sf537.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sf537.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sf538.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sf538.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sp_after_pointer_star-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_after_pointer_star-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sp_after_sparen.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_after_sparen.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sp_between_semi_for_empty-i.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_between_semi_for_empty-i.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sp_between_semi_for_empty-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_between_semi_for_empty-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sp_cmt_cpp_start-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_cmt_cpp_start-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sp_cond_colon.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_cond_colon.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sp_emb_cmt-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_emb_cmt-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sp_emb_cmt-i.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_emb_cmt-i.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sp_emb_cmt-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_emb_cmt-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sp_enum_brace-a.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sp_enum_brace-f.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sp_enum_brace-i.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sp_enum_brace-r.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sp_func_call_user_inside_fparen.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_func_call_user_inside_fparen.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sp_ptr_star_func_var-a.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_ptr_star_func_var-a.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sp_ptr_star_func_var-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_ptr_star_func_var-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sp_ptr_star_func_var-i.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_ptr_star_func_var-i.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sp_ptr_star_func_var-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_ptr_star_func_var-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sp_sparen_paren-a.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_sparen_paren-a.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sp_sparen_paren-i.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_sparen_paren-i.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/space_indent_columns-3.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/space_indent_columns-3.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/type_wrap.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/type_wrap.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/width-3.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/width-3.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/width.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/width.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/xml-str.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/xml-str.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/UNI-18777.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/UNI-18777.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/aet-func_call_user.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/aet-func_call_user.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/aet-func_def.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/aet-func_def.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/aet-sp_after_oc_msg_receiver.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/aet-sp_after_oc_msg_receiver.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/aet-sp_inside_braces_oc_dict.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/aet-sp_inside_braces_oc_dict.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/aet.cfg509
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/align-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/align-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/align_same_func_call_params-t.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/align_same_func_call_params-t.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/attribute_specifier_seqs.cfg3
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/ben2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/ben2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/ben_011.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/ben_011.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/ben_042.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/ben_042.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/bool-pos-eol-force.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/bool-pos-eol-force.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/brace-allman.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/brace-allman.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/bug_671.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/bug_671.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/clark.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/clark.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/clark.rerun.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/clark.rerun.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/class-header.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/class-header.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/cmt_insert-0.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/cmt_insert-0.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/cmt_insert-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/cmt_insert-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/d.cfg50
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/del_semicolon.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/del_semicolon.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/empty.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/empty.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/file-header.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/file-header.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/file_footer.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/file_footer.txt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/file_header.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/file_header.txt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/func-def-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/func-def-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/func-def-2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/func-def-2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/func-def-3.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/func-def-3.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/func-header.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/func-header.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/func-header2.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/func-header2.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/function_header.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/function_header.txt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/indent_columns-3.cfg7
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/indent_continue-8.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/indent_continue-8.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/indent_inside_ternary_operator.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/indent_inside_ternary_operator.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/indent_var_def.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/indent_var_def.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/issue_672.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/issue_672.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/kw_subst.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/kw_subst.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/kw_subst2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/kw_subst2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/kw_subst3.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/kw_subst3.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/kw_subst4.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/kw_subst4.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/mod_case_brace_rm.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/mod_case_brace_rm.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/mod_full_brace_if_chain_only-t.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/mod_full_brace_if_chain_only-t.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/mod_paren_on_return-a.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/mod_paren_on_return-a.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/mod_paren_on_return-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/mod_paren_on_return-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/msg-header.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/msg-header.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/nl_before_after.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/nl_before_after.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/nl_before_ignore_after_case.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/nl_before_ignore_after_case.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/region-0.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/region-0.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/region-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/region-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/region-2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/region-2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/region-3.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/region-3.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/sort_imports.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/sort_imports.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/sp_after_cast.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/sp_after_cast.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/sp_after_type-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/sp_after_type-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/sp_after_type-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/sp_after_type-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/sp_arith-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/sp_arith-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/sp_before_byref-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/sp_before_byref-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/sp_cmt_cpp_start-a.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/sp_cmt_cpp_start-a.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/sp_cmt_cpp_start_force.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/sp_cmt_cpp_start_force.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/sp_cparen_oparen-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/sp_cparen_oparen-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/sp_inside_fparen-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/sp_inside_fparen-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/space_indent_columns-4.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/space_indent_columns-4.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/star_pos-0.cfg12
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/width-2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/width-2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/width-2.rerun.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/width-2.rerun.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/2185.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/2185.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/2203.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/2203.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/623_caret-spacing.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/623_caret-spacing.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/633_decl-in-func-typedef.cfg5
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/DefaultAndDelete-0.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/DefaultAndDelete-0.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/DefaultAndDelete-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/DefaultAndDelete-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/DefaultAndDelete-2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/DefaultAndDelete-2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/I1112-2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/I1112-2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/I2103.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/I2103.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_1052.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1052.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_1167.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1167.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_1184.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1184.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_1460.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1460.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_1511.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1511.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_1692.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1692.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_1703.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1703.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_1734.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1734.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_1753.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1753.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_1813.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1813.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_1923.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1923.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_1966.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1966.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2020.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2020.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2045.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2045.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2085.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2085.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2091.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2091.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2101.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2101.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2149.cfg3
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2150.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2150.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2151.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2151.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2163.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2163.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2166.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2166.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2170.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2170.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2186.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2186.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2195.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2195.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2219.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2219.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2224.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2224.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2229.cfg16
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2232.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2232.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2236.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2236.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2250.cfg5
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2281.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2281.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2302.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2302.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2305.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2305.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2319.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2319.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2343.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2343.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2345.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2345.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2368.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2368.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2383.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2383.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2386.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2386.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2428.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2428.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2437.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2437.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2440.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2440.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2440_nl.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2440_nl.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2478.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2478.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2561.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2561.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2570.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2570.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2574.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2574.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2582.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2582.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2591.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2591.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2594.cfg11
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2596.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2596.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2604.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2604.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2668.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2688.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2688.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2689.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2689.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2692.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2692.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2703.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2703.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2734.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2734.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2735.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2735.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2742.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2742.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2752.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2752.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2757.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2757.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2758.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2758.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2759.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2759.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2771.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2771.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2794.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2794.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2795.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2795.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2823.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2823.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2831.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2831.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2836.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2836.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2873.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2873.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2879.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2879.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2886.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2886.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2890.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2890.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2902.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2902.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2907.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2907.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2914.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2914.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2921.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2921.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2930.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2930.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2942.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2942.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2949.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2949.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2957.cfg4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2971.cfg4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3010.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3010.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3025.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3025.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3034.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3034.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3040.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3040.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3044.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3044.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3048.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3048.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3052.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3052.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3054-2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3054-2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3054.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3054.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3055.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3055.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3058.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3058.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3061_0nl.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3061_0nl.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3061_1nl.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3061_1nl.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3061_2nl.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3061_2nl.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3061_3nl.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3061_3nl.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3080.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3080.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3097.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3164.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3164.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3197.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3197.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3198.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3198.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3203.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3203.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3220-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3220-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3220-i.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3220-i.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3220-ir.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3220-ir.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3220-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3220-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3237.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3237.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3252.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3252.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3284.cfg5
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3294.cfg4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3309-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3309-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3309-i.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3309-i.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3309-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3309-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3316.cfg3
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3357.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3409.cfg6
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3413.cfg4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3422-1.cfg3
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3422-2.cfg3
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3428.cfg7
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3428_2.cfg8
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3428_3.cfg9
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3428_4.cfg7
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3428_5.cfg8
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3428_6.cfg9
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3446.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3448.cfg22
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3513.cfg4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3546.cfg3
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3552.cfg6
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3570.cfg3
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3576-a.cfg2
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3576-b.cfg2
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3604.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_750.cfg9
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_931.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_931.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_995-do.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_995-do.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/NewLine-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/NewLine-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/NewLine-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/NewLine-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/STUCK_macro-difficulties.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/STUCK_macro-difficulties.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/U02-Cpp.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U02-Cpp.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/U03-Cpp.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U03-Cpp.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/U04-Cpp.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U04-Cpp.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/U05-Cpp.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U05-Cpp.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/U06-Cpp.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U06-Cpp.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/U07-Cpp.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U07-Cpp.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/U16-Cpp.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U16-Cpp.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/U18-Cpp.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U18-Cpp.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/U21-Cpp.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U21-Cpp.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/U23-Cpp.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U23-Cpp.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/U25-Cpp.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U25-Cpp.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/U26-Cpp.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U26-Cpp.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/U27-Cpp.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U27-Cpp.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/U28-Cpp.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U28-Cpp.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/U29-Cpp.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U29-Cpp.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/U30-Cpp.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U30-Cpp.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/U31-Cpp.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U31-Cpp.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/U33-Cpp.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U33-Cpp.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/U36-Cpp.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U36-Cpp.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/UNI-10496.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-10496.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/UNI-12046.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-12046.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/UNI-1340.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-1340.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/UNI-1344.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-1344.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/UNI-1346.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-1346.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/UNI-1347.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-1347.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/UNI-1350.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-1350.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/UNI-1356.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-1356.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/UNI-1358.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-1358.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/UNI-2049.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-2049.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/UNI-2650.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-2650.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/UNI-2680.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-2680.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/UNI-29935.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-29935.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/UNI-30088.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-30088.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/UNI-32657.cfg316
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Uncrustify.Cpp.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Uncrustify.Cpp.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/al.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/al.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align-330.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align-330.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_assign_decl_func-0.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_assign_decl_func-0.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_assign_decl_func-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_assign_decl_func-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_assign_decl_func-2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_assign_decl_func-2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_assign_func_proto_1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_assign_func_proto_1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_assign_span-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_assign_span-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_asterisk_after_type_cast.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_asterisk_after_type_cast.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_class-constr.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_class-constr.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_continuation_left_shift.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_continuation_left_shift.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_default_after_override.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_default_after_override.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_eigen_comma_init.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_eigen_comma_init.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_fcall-2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_fcall-2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_fcall.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_fcall.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_func_params-t.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_params-t.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_func_params_gap.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_params_gap.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_func_params_span-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_params_span-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_func_params_thresh_1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_params_thresh_1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_func_params_thresh_2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_params_thresh_2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_func_params_thresh_3.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_params_thresh_3.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_func_params_thresh_4.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_params_thresh_4.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_func_proto_thresh_1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_proto_thresh_1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_func_proto_thresh_2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_proto_thresh_2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_func_proto_thresh_3.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_proto_thresh_3.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_func_proto_thresh_4.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_proto_thresh_4.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_func_proto_thresh_5.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_proto_thresh_5.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_right_comment.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_right_comment.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_var_class_span-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_var_class_span-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_var_def_thresh_1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_var_def_thresh_1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_var_def_thresh_2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_var_def_thresh_2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_var_def_thresh_3.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_var_def_thresh_3.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/anonymous_enum.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/anonymous_enum.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/arith-vs-byref.cfg6
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/arith-vs-ptr.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/arith-vs-ptr.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/avalon.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/avalon.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/avalon2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/avalon2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/avalon3.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/avalon3.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/avalon4.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/avalon4.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_001.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_001.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_003.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_003.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_004.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_004.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_005.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_005.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_006.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_006.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_008.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_008.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_009.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_009.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_010.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_010.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_012.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_012.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_013.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_013.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_014.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_014.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_015.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_015.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_016.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_016.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_017.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_017.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_018.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_018.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_020.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_020.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_021.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_021.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_022.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_022.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_023.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_023.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_024.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_024.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_026.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_026.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_027.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_027.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_028.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_028.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_029.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_029.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_030.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_030.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_031.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_031.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1001.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1001.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1003.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1003.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1004.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1004.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1020.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1020.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1108.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1108.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1160.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1160.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1161.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1161.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1169.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1169.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1170.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1170.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1236.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1236.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1296-F.cfg2
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1296-T.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1296.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1315.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1315.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1324.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1324.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1340.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1340.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1349.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1349.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1395.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1395.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1402.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1402.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1403.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1403.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1432.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1432.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1439.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1439.cfg)0
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1452.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1452.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1649.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1649.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1689.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1689.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1691.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1691.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1717.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1717.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1758-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1758-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1854.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1854.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1862.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1862.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_2285.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_2285.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_2322.cfg11
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_2371.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_2371.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_2402.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_2402.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_2433_1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_2433_1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_2433_2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_2433_2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_472.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_472.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_488.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_488.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_633.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_633.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_657.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_657.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_664.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_664.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_670.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_670.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_858-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_858-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_858-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_858-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_i_322.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_i_322.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_i_359.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_i_359.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_i_405.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_i_405.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_i_409-create.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_i_409-create.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_i_409-split.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_i_409-split.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_i_478.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_i_478.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_i_663.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_i_663.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_i_666.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_i_666.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_i_752.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_i_752.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/byref-center.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/byref-center.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/byref-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/byref-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/byref-i.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/byref-i.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/byref-ir.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/byref-ir.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/byref-left.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/byref-left.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/byref-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/byref-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/byref-right.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/byref-right.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/cast.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/cast.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/class-colon-pos-eol-add.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/class-colon-pos-eol-add.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/class-colon-pos-eol.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/class-colon-pos-eol.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/class-colon-pos-sol-add.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/class-colon-pos-sol-add.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/class-colon-pos-sol.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/class-colon-pos-sol.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/class-nl_func-add.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/class-nl_func-add.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/class-nl_func-add2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/class-nl_func-add2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/class-nl_func-del.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/class-nl_func-del.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/class-on-colon-indent.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/class-on-colon-indent.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/cmt_convert_tab_to_spaces-t.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/cmt_convert_tab_to_spaces-t.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/cmt_cpp_to_c-t.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/cmt_cpp_to_c-t.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/cmt_indent-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/cmt_indent-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/cmt_indent-2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/cmt_indent-2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/cmt_indent-3.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/cmt_indent-3.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/cmt_multi_first_len_minimum-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/cmt_multi_first_len_minimum-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/cmt_trailing_single_line_c_to_cpp.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/cmt_trailing_single_line_c_to_cpp.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/code_width-70.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/code_width-70.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/comma-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/comma-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/comma-i.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/comma-i.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/comma-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/comma-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/const_throw.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/const_throw.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/constr_colon.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/constr_colon.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/cpp17.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/cpp17.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/cu.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/cu.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/custom-open.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/custom-open.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/custom-open2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/custom-open2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/disable_nl_cont.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/disable_nl_cont.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/dont-detab-strings.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/dont-detab-strings.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/dont-process-defines.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/dont-process-defines.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/eat_blanks_after_codewidth.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/eat_blanks_after_codewidth.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ellipsis-i.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ellipsis-i.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/enum.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/enum.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/enum_comma-3.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/enum_comma-3.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/enum_comma-4.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/enum_comma-4.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/enum_comma-6.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/enum_comma-6.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/enum_comment_wrap.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/enum_comment_wrap.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/extern_func.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/extern_func.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/footer.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/footer.txt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/func_class.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/func_class.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/func_param.cfg7
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/functype_param-f.cfg3
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/functype_param-r.cfg3
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/i1516.cfg4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/i1536.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/i1536.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/i1536.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/i1536.txt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/i1768.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/i1768.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/i683.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/i683.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/if_chain_braces_2.cfg2
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_braces_no.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_braces_no.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_class-t.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_class-t.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_class-t_columns-4.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_class-t_columns-4.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_columns-11.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_columns-11.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_columns-2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_columns-2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_columns-4.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_columns-4.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_comma_brace.cfg4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_comment_align_thresh_2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_comment_align_thresh_2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_ctor_init.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_ctor_init.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_ctor_init_following.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_ctor_init_following.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_ctor_init_leading.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_ctor_init_leading.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_ctor_members_twice.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_ctor_members_twice.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_else_if-t.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_else_if-t.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_first_for_expr-t.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_first_for_expr-t.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_func_proto_param-t.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_ignore_before_class_colon-t.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_ignore_before_constr_colon-t.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_namespace-t.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_namespace-t.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_namespace_inner_only.cfg2
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_namespace_single_indent.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_namespace_single_indent.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_off_after_return.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_off_after_return.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_once.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_once.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_param.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_param.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_paren_after_func_call-t.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_paren_after_func_call-t.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_paren_after_func_decl-t.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_paren_after_func_decl-t.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_paren_after_func_def-t.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_paren_after_func_def-t.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_paren_close_0.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_paren_close_1.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_paren_close_2.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_semicolon_for_paren-t.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_semicolon_for_paren-t.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_shift.cfg4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_var_def_cont-t.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_var_def_cont-t.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_with_tabs-0.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_with_tabs-0.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/initlist_leading_commas.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/initlist_leading_commas.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/interface-keyword-in-cpp.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/interface-keyword-in-cpp.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/issue_1778.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_1778.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/issue_1782.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_1782.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/issue_1804.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_1804.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/issue_1887.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_1887.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/issue_1916.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_1916.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/issue_1985.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_1985.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/issue_1997.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_1997.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/issue_2124-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_2124-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/issue_2124-2.cfg2
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/issue_2209.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_2209.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/issue_2623_1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_2623_1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/issue_2623_2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_2623_2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/issue_2623_3.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_2623_3.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/issue_3116-2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_3116-2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/issue_3116.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_3116.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/issue_3378.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_3378.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/issue_564.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_564.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/issue_574-i-a.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_574-i-a.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/issue_574-i-b.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_574-i-b.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/issue_574-i-i.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_574-i-i.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/issue_574.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_574.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/kdepim2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/kdepim2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/kdepim3.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/kdepim3.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/kdepim5.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/kdepim5.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/lambda1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/lambda1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/lambda2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/lambda2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/lambda3.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/lambda3.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/lambda4.cfg20
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/lambda_in_one_liner.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/lambda_in_one_liner.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/lineEndings-to-Mac.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/lineEndings-to-Mac.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/lineEndings-to-Unix.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/lineEndings-to-Unix.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/lineEndings-to-Win.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/lineEndings-to-Win.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/long_br_cmt.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/long_br_cmt.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/long_namespace.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/long_namespace.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/mod_add_long_namespace_closebrace_comment-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/mod_add_long_namespace_closebrace_comment-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/mod_full_brace_if_chain-1.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/mod_full_brace_if_chain-2.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/mod_full_brace_if_chain-3.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/mod_remove_empty_return-t.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/mod_remove_empty_return-t.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/mod_remove_extra_semicolon-t.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/mod_remove_extra_semicolon-t.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/multi_line_1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/multi_line_1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/multi_line_10.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/multi_line_10.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/multi_line_2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/multi_line_2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/multi_line_3.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/multi_line_3.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/multi_line_4.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/multi_line_4.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/multi_line_5.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/multi_line_5.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/multi_line_6.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/multi_line_6.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/multi_line_7.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/multi_line_7.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/multi_line_8.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/multi_line_8.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/multi_line_9.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/multi_line_9.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nSolve.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nSolve.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/negative_indent.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/negative_indent.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/new_op_a.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/new_op_a.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/new_op_f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/new_op_f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/new_op_paren_open_close.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/new_op_paren_open_close.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/new_op_r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/new_op_r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl-brAfter-fcallParen.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl-brAfter-fcallParen.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_access_spec.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_access_spec.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_after_func_body-2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_after_func_body-2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_after_func_body.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_after_func_body.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_after_func_class_proto-3.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_after_func_class_proto-3.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_after_func_proto-3.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_after_func_proto-3.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_after_func_proto_group-3.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_after_func_proto_group-3.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_assign_leave_one_liners.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_assign_leave_one_liners.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_before_brace_open_1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_before_brace_open_1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_before_brace_open_2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_before_brace_open_2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_before_brace_open_3.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_before_brace_open_3.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_before_func_body_def-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_before_func_body_def-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_before_func_body_def-2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_before_func_body_def-2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_before_if_closing_paren-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_before_if_closing_paren-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_before_if_closing_paren-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_before_if_closing_paren-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_before_struct.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_before_struct.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_brace_brace-a.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_brace_brace-a.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_brace_fparen-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_brace_fparen-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_brace_fparen-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_brace_fparen-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_class-a.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_class-a.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_class-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_class-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_fdef_brace-r__nl_collapse_empty_body-t.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_fdef_brace-r__nl_collapse_empty_body-t.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_fdef_brace_cond-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_fdef_brace_cond-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_fdef_brace_cond-fr.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_fdef_brace_cond-fr.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_fdef_brace_cond-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_fdef_brace_cond-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_fdef_brace_cond-rf.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_fdef_brace_cond-rf.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_for_leave_one_liners-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_for_leave_one_liners-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_for_leave_one_liners-t.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_for_leave_one_liners-t.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_func_call_empty-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_call_empty-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_func_call_paren-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_call_paren-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_func_call_paren_empty-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_call_paren_empty-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_func_class_scope-a.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_class_scope-a.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_func_decl_1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_decl_1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_func_decl_2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_decl_2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_func_def_paren_empty-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_def_paren_empty-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_func_paren_empty.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_paren_empty.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_func_scope_name-a.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_scope_name-a.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_func_type_name-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_type_name-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_func_type_name_class.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_type_name_class.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_func_type_name_force.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_type_name_force.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_func_type_name_mixed.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_type_name_mixed.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_func_type_name_remove.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_type_name_remove.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_func_var_def_blk-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_var_def_blk-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_inside_namespace_1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_inside_namespace_1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_inside_namespace_2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_inside_namespace_2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_max_blank_in_func-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_max_blank_in_func-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_max_blank_in_func-4.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_max_blank_in_func-4.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_namespace-a.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_namespace-a.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_namespace-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_namespace-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_remove_extra_newlines-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_remove_extra_newlines-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_template-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_template-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_template-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_template-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_try-a.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_try-a.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_type_brace_init_lst-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_type_brace_init_lst-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_type_brace_init_lst-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_type_brace_init_lst-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_type_brace_init_lst_close-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_type_brace_init_lst_close-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_type_brace_init_lst_close-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_type_brace_init_lst_close-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_type_brace_init_lst_open-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_type_brace_init_lst_open-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_type_brace_init_lst_open-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_type_brace_init_lst_open-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/no_squeeze_ifdef.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/no_squeeze_ifdef.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/op-space-force.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/op-space-force.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/op-space-remove-align-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/op-space-remove-align-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/op-space-remove-align-2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/op-space-remove-align-2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/op-space-remove.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/op-space-remove.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/op_sym_empty.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/op_sym_empty.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/out-668-F.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/out-668-F.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/out-668-T.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/out-668-T.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/pos_assign.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/pos_assign.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/pos_comma-lf.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/pos_comma-lf.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/pos_comma-tb.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/pos_comma-tb.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/pos_enum_comma-tf.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/pos_enum_comma-tf.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/pos_shift-join.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/pos_shift-join.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/pos_shift-lead.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/pos_shift-lead.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/pos_shift-trail.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/pos_shift-trail.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/pp-pragma.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/pp-pragma.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/pp_define_at_level-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/pp_define_at_level-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/pp_multi_comment.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/pp_multi_comment.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ptr_star-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ptr_star-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ptr_star-2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ptr_star-2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ptr_star-3.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ptr_star-3.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/qt-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/qt-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sef.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sef.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/semi-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/semi-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/semi-i.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/semi-i.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/semi-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/semi-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sf.2886991-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sf.2886991-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sf.2886991-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sf.2886991-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sf.3315874.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sf.3315874.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sf574.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sf574.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sim.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sim.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_after_angle-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_angle-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_after_angle-2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_angle-2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_after_angle-3.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_angle-3.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_after_cast-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_cast-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_after_cast-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_cast-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_after_constr_colon.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_constr_colon.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_after_decltype-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_decltype-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_after_decltype-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_decltype-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_after_ellipsis-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_ellipsis-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_after_ptr_star_qualifier-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_ptr_star_qualifier-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_after_type-i.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_type-i.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_after_type_brace_init_lst_open-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_type_brace_init_lst_open-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_after_type_brace_init_lst_open-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_type_brace_init_lst_open-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_angle_colon.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_angle_colon.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_angle_paren-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_angle_paren-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_angle_paren_empty.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_angle_paren_empty.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_arith-a.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_arith-a.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_arith_additive-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_arith_additive-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_arith_additive-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_arith_additive-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_assign_default.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_assign_default.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_balance_nested_parens.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_balance_nested_parens.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_before_byref_func.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_before_byref_func.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_before_case_colon.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_before_case_colon.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_before_comma-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_before_comma-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_before_constr_colon.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_before_constr_colon.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_before_ellipsis-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_before_ellipsis-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_before_ellipsis-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_before_ellipsis-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_before_ptr_star-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_before_ptr_star-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_before_ptr_star-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_before_ptr_star-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_before_tr_emb_cmt-a.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_before_tr_emb_cmt-a.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_before_tr_emb_cmt-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_before_tr_emb_cmt-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_before_type_brace_init_lst_close-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_before_type_brace_init_lst_close-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_before_type_brace_init_lst_close-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_before_type_brace_init_lst_close-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_bool-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_bool-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_bool-i.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_bool-i.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_bool-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_bool-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_brace_brace-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_brace_brace-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_brace_brace-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_brace_brace-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_brace_catch.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_brace_catch.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_byref_paren-a.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_byref_paren-f.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_byref_paren-i.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_byref_paren-r.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_catch_brace.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_catch_brace.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_cmt.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cmt.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_cmt_cpp_region-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cmt_cpp_region-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_cmt_cpp_region-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cmt_cpp_region-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_cond_question-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cond_question-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_cond_question-i.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cond_question-i.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_cond_question-ir.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cond_question-ir.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_cond_question-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cond_question-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_constr_colon-i.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_constr_colon-i.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_cparen_oparen-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cparen_oparen-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_cpp_lambda_fparen-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cpp_lambda_fparen-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_cpp_lambda_fparen-i.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cpp_lambda_fparen-i.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_cpp_lambda_fparen-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cpp_lambda_fparen-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_cpp_lambda_paren_brace-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cpp_lambda_paren_brace-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_cpp_lambda_paren_brace-i.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cpp_lambda_paren_brace-i.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_cpp_lambda_paren_brace-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cpp_lambda_paren_brace-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_cpp_lambda_square_brace-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cpp_lambda_square_brace-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_cpp_lambda_square_brace-i.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cpp_lambda_square_brace-i.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_cpp_lambda_square_brace-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cpp_lambda_square_brace-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_cpp_lambda_square_paren-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cpp_lambda_square_paren-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_cpp_lambda_square_paren-i.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cpp_lambda_square_paren-i.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_cpp_lambda_square_paren-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cpp_lambda_square_paren-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_dc.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_dc.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_decltype_paren-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_decltype_paren-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_decltype_paren-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_decltype_paren-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_endif_cmt.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_endif_cmt.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_enum_assign-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_enum_assign-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_enum_assign-i.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_enum_assign-i.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_enum_colon-i.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_enum_colon-i.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_enum_colon-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_enum_colon-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_enum_colon.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_enum_colon.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_func_call_empty.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_func_call_empty.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_func_call_paren.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_func_call_paren.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_func_class_empty.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_func_class_empty.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_func_def_empty.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_func_def_empty.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_func_proto_empty.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_func_proto_empty.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_inside_braces_empty-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_inside_braces_empty-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_inside_braces_enum-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_inside_braces_enum-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_inside_braces_enum-i.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_inside_braces_enum-i.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_inside_braces_enum-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_inside_braces_enum-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_inside_fparen-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_inside_fparen-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_inside_fparens-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_inside_fparens-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_inside_type_brace_init_lst-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_inside_type_brace_init_lst-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_inside_type_brace_init_lst-iif.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_inside_type_brace_init_lst-iif.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_inside_type_brace_init_lst-iii.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_inside_type_brace_init_lst-iii.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_inside_type_brace_init_lst-irf.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_inside_type_brace_init_lst-irf.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_inside_type_brace_init_lst-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_inside_type_brace_init_lst-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_inside_type_brace_init_lst-rf.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_inside_type_brace_init_lst-rf.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_not_not.cfg2
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_paren_brace-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_paren_brace-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_paren_brace-i.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_paren_brace-i.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_paren_brace-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_paren_brace-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_paren_ellipsis-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_paren_ellipsis-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_paren_ellipsis-i.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_paren_ellipsis-i.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_paren_ellipsis-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_paren_ellipsis-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_paren_noexcept-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_paren_noexcept-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_paren_qualifier-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_paren_qualifier-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_return-a.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_return-a.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_return-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_return-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_return-i.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_return-i.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_return-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_return-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_return_brace-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_return_brace-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_return_brace-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_return_brace-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_return_paren-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_return_paren-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_return_paren-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_return_paren-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_sizeof_ellipsis-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_sizeof_ellipsis-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_sizeof_ellipsis-i.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_sizeof_ellipsis-i.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_sizeof_ellipsis-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_sizeof_ellipsis-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_sizeof_ellipsis_paren-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_sizeof_ellipsis_paren-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_sizeof_ellipsis_paren-i.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_sizeof_ellipsis_paren-i.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_sizeof_ellipsis_paren-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_sizeof_ellipsis_paren-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_skip_vbrace_tokens.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_skip_vbrace_tokens.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_throw_paren-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_throw_paren-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_throw_paren-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_throw_paren-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_trailing_return-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_trailing_return-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_trailing_return-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_trailing_return-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_trailing_return_byref_ptr-left.cfg7
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_trailing_return_byref_ptr-right.cfg7
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_type_brace_init_lst-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_type_brace_init_lst-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_type_brace_init_lst-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_type_brace_init_lst-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_type_ellipsis-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_type_ellipsis-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_type_ellipsis-i.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_type_ellipsis-i.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_type_ellipsis-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_type_ellipsis-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_type_func-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_type_func-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_type_func-2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_type_func-2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_type_func-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_type_func-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_type_func-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_type_func-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_word_brace_force.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_word_brace_force.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_word_brace_remove.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_word_brace_remove.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/space_indent_class-t_columns-4.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/space_indent_class-t_columns-4.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/squeeze_ifdef.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/squeeze_ifdef.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/squeeze_ifdef_top.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/squeeze_ifdef_top.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/star_pos-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/star_pos-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/star_pos-2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/star_pos-2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/string_replace_tab_chars-t.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/string_replace_tab_chars-t.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/tab-0-11.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/tab-0-11.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/template_sp-force.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/template_sp-force.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/template_sp-ignore.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/template_sp-ignore.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/template_sp-remove.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/template_sp-remove.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/templates-i.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/templates-i.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/templates-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/templates-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/toggle_processing_cmt.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/toggle_processing_cmt.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/toggle_processing_cmt2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/toggle_processing_cmt2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/toggle_processing_cmt3.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/toggle_processing_cmt3.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/toggle_processing_cmt4.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/toggle_processing_cmt4.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/var_def_gap.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/var_def_gap.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/wessex.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/wessex.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/615_nested_usings.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/615_nested_usings.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/620_getset-brace.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/620_getset-brace.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/625_where-constraints.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/625_where-constraints.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/Issue_2705.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/Issue_2705.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/U-J.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U-J.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/U01-Cs.cfg282
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/U02-Cs.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U02-Cs.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/U03-Cs.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U03-Cs.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/U04-Cs.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U04-Cs.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/U06-Cs.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U06-Cs.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/U07-Cs.cfg283
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/U08-Cs.cfg282
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/U09-Cs.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U09-Cs.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/U10-Cs.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U10-Cs.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/U11-Cs.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U11-Cs.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/U13-Cs.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U13-Cs.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/U15-Cs.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U15-Cs.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-11662.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-11662.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-11993.cfg287
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-1288.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-1288.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-1338.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-1338.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-1343.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-1343.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-13955.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-13955.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-14131.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-14131.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-18437.cfg287
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-18829.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-18829.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-1975.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-1975.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-1977.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-1977.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-1978.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-1978.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-19895.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-19895.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-2020.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-2020.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-2021.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-2021.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-21730.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-21730.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-2684.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-2684.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-2685.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-2685.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-29933.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-29933.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-30498_2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-30498_2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-3083.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-3083.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-32658.cfg286
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-37241.cfg287
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-9917.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-9917.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/ben_032.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/ben_032.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/ben_033.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/ben_033.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/ben_034.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/ben_034.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/ben_036.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/ben_036.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/ben_037.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/ben_037.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/ben_038.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/ben_038.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/ben_043.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/ben_043.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/ben_044.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/ben_044.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/ben_045.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/ben_045.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/bug_1620.cfg289
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/bug_1637.cfg287
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/bug_1650.cfg288
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/bug_600.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/bug_620.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/bug_620.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/comma-cs-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/comma-cs-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/comma-cs-i.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/comma-cs-i.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/comma-cs-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/comma-cs-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/cs_generics.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/cs_generics.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/getset.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/getset.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/indent-multistring-coulmn1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/indent-multistring-coulmn1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/indent_cs_delegate_brace-t.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/indent_cs_delegate_brace-t.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/indent_using_block-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/indent_using_block-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/mda_space_a.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/mda_space_a.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/mda_space_c.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/mda_space_c.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/misc-failures.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/misc-failures.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/mod_full_brace_nl_block_rem_mlcond-0.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/mod_full_brace_nl_block_rem_mlcond-0.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/mod_full_brace_nl_block_rem_mlcond-1.cfg2
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/mod_full_paren_if_bool.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/mod_full_paren_if_bool.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/mod_sort_using-t.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/mod_sort_using-t.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/mono.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/mono.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/new-constraint-paren-space.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/new-constraint-paren-space.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/sf607.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/sf607.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/sort_using_categ.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/sort_using_categ.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/sp_after_comma-a.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/sp_after_comma-a.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/sp_assign-a.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/sp_assign-a.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/sp_between_new_paren.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/sp_between_new_paren.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/squeeze-paren-close-Option.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/squeeze-paren-close-Option.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/tcf.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/tcf.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/verbatim_strings.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/verbatim_strings.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/d/1438.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/d/1438.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/d/d-tst2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/d/d-tst2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/d/d2-i.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/d/d2-i.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/d/d2-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/d/d2-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/d/d2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/d/d2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/d/d3.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/d/d3.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/d/d3a.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/d/d3a.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/d/d_sp_paren.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/d/d_sp_paren.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/d/invariant.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/d/invariant.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/d/libd.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/d/libd.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/d/sp_after_type-a.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/d/sp_after_type-a.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/ecma/ben_098.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/ecma/ben_098.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/java/Issue_1122.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/Issue_1122.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/java/Issue_1124-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/Issue_1124-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/java/Issue_1124-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/Issue_1124-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/java/Issue_1845.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/Issue_1845.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/java/Issue_670.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/Issue_670.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/java/annotation.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/annotation.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/java/ben_099.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/ben_099.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/java/doxy-javadoc-alignment.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/doxy-javadoc-alignment.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/java/java_foreach.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/java_foreach.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/java/java_synchronized_1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/java_synchronized_1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/java/java_synchronized_2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/java_synchronized_2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/java/jdbi-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/jdbi-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/java/jdbi-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/jdbi-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/java/leading-tabs-for-java-lambda.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/leading-tabs-for-java-lambda.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/java/mod_add_long_class_closebrace_comment-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/mod_add_long_class_closebrace_comment-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/java/nl_after_annotation-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/nl_after_annotation-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/java/nl_between_annotation-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/nl_between_annotation-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/java/reflow_fold_regex.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/reflow_fold_regex.txt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/java/sp_after_for_colon.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/sp_after_for_colon.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/java/sp_this_paren.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/sp_this_paren.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/java/template_angles.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/template_angles.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/1927.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/1927.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/Issue_2172.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/Issue_2172.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/Issue_681.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/Issue_681.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/U08-Cpp.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U08-Cpp.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/U09-Cpp.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U09-Cpp.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/U10-Cpp.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U10-Cpp.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/U11-Cpp.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U11-Cpp.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/U12-Cpp.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U12-Cpp.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/U13-Cpp.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U13-Cpp.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/U14-Cpp.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U14-Cpp.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/U15-Cpp.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U15-Cpp.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/U24-Cpp.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U24-Cpp.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/UNI-11095.cfg319
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/align-objc-like-xcode.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/align-objc-like-xcode.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/align_oc_msg_colon_span-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/align_oc_msg_colon_span-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/block_pointer.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/block_pointer.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/blocks.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/blocks.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/bug_167.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/bug_167.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/bug_340.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/bug_340.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/bug_841.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/bug_841.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/bug_i_125-412.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/bug_i_125-412.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/delete-space-oc.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/delete-space-oc.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/double-indent-objc-dict.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/double-indent-objc-dict.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/double_angle_space_1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/double_angle_space_1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/double_angle_space_2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/double_angle_space_2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/double_angle_space_3.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/double_angle_space_3.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/gh137.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/gh137.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/gh293.a.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/gh293.a.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/gh293.b.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/gh293.b.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/indent-objc-block.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/indent-objc-block.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/indent_boxed.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/indent_boxed.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/indent_oc_inside_msg_sel.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/indent_oc_inside_msg_sel.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/indent_single_newline.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/indent_single_newline.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/issue_2643.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/issue_2643.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/issue_2656.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/issue_2656.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/issue_2675.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/issue_2675.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/issue_3031.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/issue_3031.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/mod_sort_incl_import_grouping_enabled.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/mod_sort_incl_import_grouping_enabled.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/mod_sort_incl_import_ignore_extension.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/mod_sort_incl_import_ignore_extension.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/mod_sort_incl_import_prioritize_angle_over_quotes.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/mod_sort_incl_import_prioritize_angle_over_quotes.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/mod_sort_incl_import_prioritize_extensionless.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/mod_sort_incl_import_prioritize_extensionless.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/mod_sort_incl_import_prioritize_filename.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/mod_sort_incl_import_prioritize_filename.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/nl_after_func_body-3.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/nl_after_func_body-3.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/nl_brace_square.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/nl_brace_square.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/nl_func_call_args_multi_line_ignore_closures.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/nl_func_call_args_multi_line_ignore_closures.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/nl_oc_block_brace-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/nl_oc_block_brace-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/obj-c-available.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/obj-c-available.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/obj-c-properties.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/obj-c-properties.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/objc_bug_497.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/objc_bug_497.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/objc_complex_method.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/objc_complex_method.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/oc1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/oc10.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc10.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/oc11.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc11.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/oc12.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc12.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/oc13.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc13.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/oc14.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc14.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/oc16.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc16.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/oc17.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc17.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/oc18.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc18.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/oc19.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc19.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/oc2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/oc4.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc4.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/oc5.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc5.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/oc6.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc6.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/oc7.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc7.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/oc8.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc8.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/oc9.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc9.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/oc_bug_1674.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc_bug_1674.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/oc_bug_1683.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc_bug_1683.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/oc_cond_colon.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc_cond_colon.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_after_oc_at_sel_add.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_after_oc_at_sel_add.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_after_oc_at_sel_force.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_after_oc_at_sel_force.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_after_oc_at_sel_remove.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_after_oc_at_sel_remove.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_after_oc_block_caret_add.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_after_oc_block_caret_add.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_after_oc_block_caret_force.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_after_oc_block_caret_force.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_after_oc_return_type_add.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_after_oc_return_type_add.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_after_oc_return_type_force.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_after_oc_return_type_force.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_after_oc_return_type_remove.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_after_oc_return_type_remove.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_after_send_oc_colon-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_after_send_oc_colon-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_after_throw_remove.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_after_throw_remove.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_before_oc_block_caret_force.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_before_oc_block_caret_force.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_before_oc_block_caret_remove.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_before_oc_block_caret_remove.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_before_oc_proto_list_add.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_before_oc_proto_list_add.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_before_oc_proto_list_force.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_before_oc_proto_list_force.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_before_oc_proto_list_remove.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_before_oc_proto_list_remove.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_block_as_argument.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_block_as_argument.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_block_as_argument2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_block_as_argument2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_block_as_argument3.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_block_as_argument3.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_block_as_argument4.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_block_as_argument4.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_block_as_argument5.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_block_as_argument5.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_cond_ternary_short.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_cond_ternary_short.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_enum_paren-i.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_enum_paren-i.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_enum_paren-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_enum_paren-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_oc_boxed.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_oc_boxed.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_oc_catch-i.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_oc_catch-i.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_oc_catch-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_oc_catch-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_oc_catch.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_oc_catch.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_oc_classname_paren-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_oc_classname_paren-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_oc_synchronized.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_oc_synchronized.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/ternary_short.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/ternary_short.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/pawn/Issue_2586.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/pawn/Issue_2586.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/pawn/Issue_2665.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/pawn/Issue_2665.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/pawn/amxmodx.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/pawn/amxmodx.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/pawn/mod_full_brace_function-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/pawn/mod_full_brace_function-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/pawn/pawn-escape.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/pawn/pawn-escape.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/pawn/pawn.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/pawn/pawn.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/staging/UNI-58354.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/staging/UNI-58354.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/staging/UNI-64325.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/staging/UNI-64325.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/vala/Issue_2090.cfg2
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/vala/Issue_2270.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/vala/Issue_2270.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/vala/ben_100.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/vala/ben_100.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/vala/ben_101.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/vala/ben_101.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/vala/ben_102.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/vala/ben_102.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/vala/ben_103.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/vala/ben_103.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/vala/ben_104.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/vala/ben_104.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/vala/ben_105.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/vala/ben_105.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/vala/nullable.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cpp.test1102
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/d.test (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/d.test)0
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/difftest.sh (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/difftest.sh)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/ecma.test (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/ecma.test)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00000-comment-indent.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00000-comment-indent.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00001-comment-indent.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00001-comment-indent.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00002-comment-indent.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00002-comment-indent.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00003-comment-indent.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00003-comment-indent.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00004-switch.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00004-switch.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00005-cmt-align.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00005-cmt-align.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00006-comment-convert.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00006-comment-convert.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00007-comment-convert.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00007-comment-convert.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00008-comment-convert.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00008-comment-convert.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00009-comment-convert.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00009-comment-convert.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00010-braces.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00010-braces.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00011-braces.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00011-braces.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00012-braces.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00012-braces.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00013-braces.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00013-braces.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00014-braces.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00014-braces.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00015-braces.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00015-braces.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00016-braces.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00016-braces.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00020-define-if-indent.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00020-define-if-indent.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00050-brace-remove.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00050-brace-remove.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00051-brace-remove.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00051-brace-remove.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00052-brace-remove2.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00052-brace-remove2.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00053-brace.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00053-brace.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00054-if_chain.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00054-if_chain.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00055-braces-2.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00055-braces-2.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00056-brace-remove3.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00056-brace-remove3.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00057-brace-remove3.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00057-brace-remove3.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00058-if_chain.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00058-if_chain.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00060-braces-2.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00060-braces-2.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00061-braces-3.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00061-braces-3.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00062-braces-4.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00062-braces-4.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00065-braces-5.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00065-braces-5.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00066-vb-while.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00066-vb-while.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00067-vb-do.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00067-vb-do.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00068-bsnl.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00068-bsnl.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00069-vb-pp.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00069-vb-pp.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00070-return-multi.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00070-return-multi.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00071-include_define.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00071-include_define.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00072-align-proto.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00072-align-proto.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00073-nl_proto_endif.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00073-nl_proto_endif.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00074-clang-has_include.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00074-clang-has_include.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00076-1225.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00076-1225.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00081-else-if.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00081-else-if.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00082-else-if.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00082-else-if.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00083-Issue_3601.c1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00091-cond.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00091-cond.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00092-cond.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00092-cond.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00093-cond.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00093-cond.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00094-Issue_3457.c12
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00101-bugs-1.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00101-bugs-1.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00102-bugs-2.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00102-bugs-2.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00103-bugs-3.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00103-bugs-3.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00104-bugs-4.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00104-bugs-4.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00105-bugs-5.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00105-bugs-5.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00106-bugs-6.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00106-bugs-6.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00107-bugs-7.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00107-bugs-7.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00108-bugs-8.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00108-bugs-8.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00110-misc.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00110-misc.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00111-misc.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00111-misc.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00120-sp_cmt_cpp_start.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00120-sp_cmt_cpp_start.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00121-sp_cmt_cpp_start.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00121-sp_cmt_cpp_start.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00122-sp_cmt_cpp_start.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00122-sp_cmt_cpp_start.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00123-cmt_reflow.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00123-cmt_reflow.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00130-minus-minus.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00130-minus-minus.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00135-br_cmt.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00135-br_cmt.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00140-global-vars.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00140-global-vars.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00141-deref.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00141-deref.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00142-type-cast.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00142-type-cast.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00143-t3.in.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00143-t3.in.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00144-align-proto-vars.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00144-align-proto-vars.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00145-vardefcol.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00145-vardefcol.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00146-Issue_3516.c12
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00147-Issue_3516.c12
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00148-Issue_3518.c10
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00150-casts.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00150-casts.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00151-casts.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00151-casts.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00152-casts.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00152-casts.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00153-casts.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00153-casts.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00154-casts.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00154-casts.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00155-cast_brace.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00155-cast_brace.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00160-fcn_indent.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00160-fcn_indent.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00161-fcn_indent.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00161-fcn_indent.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00162-fcn_indent.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00162-fcn_indent.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00163-fcn_indent.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00163-fcn_indent.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00164-fcn_indent_func_def_col1.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00164-fcn_indent_func_def_col1.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00165-sp_func_call_user_inside_fparen.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00165-sp_func_call_user_inside_fparen.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00170-beautifier-off.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00170-beautifier-off.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00180-lvalue.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00180-lvalue.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00201-case.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00201-case.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00202-case.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00202-case.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00203-case.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00203-case.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00204-bug_1718.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00204-bug_1718.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00205-case-nl_before_return.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00205-case-nl_before_return.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00206-case-nl_before_return.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00206-case-nl_before_return.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00207-nl_before_ignore_after_case.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00207-nl_before_ignore_after_case.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00301-align-struct-init.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00301-align-struct-init.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00302-one-liner-init.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00302-one-liner-init.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00303-one-liner-init.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00303-one-liner-init.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00304-one-liner-init.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00304-one-liner-init.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00305-one-liner-define.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00305-one-liner-define.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00310-sp_embed_comment.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00310-sp_embed_comment.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00320-indent_first_bool_expr.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00320-indent_first_bool_expr.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00401-align-equ.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00401-align-equ.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00402-align-var.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00402-align-var.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00403-align-var.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00403-align-var.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00404-align-var.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00404-align-var.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00405-bits.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00405-bits.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00406-bug_i_771.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00406-bug_i_771.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00411-align-typedef.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00411-align-typedef.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00412-align-typedef.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00412-align-typedef.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00413-align-typedef.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00413-align-typedef.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00414-align-typedef.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00414-align-typedef.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00415-align_stack.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00415-align_stack.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00416-align_sf_call_thresh_416.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00416-align_sf_call_thresh_416.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00417-align_sf_call_thresh_417.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00417-align_sf_call_thresh_417.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00418-align_sf_call_span_418.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00418-align_sf_call_span_418.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00419-align_sf_call_span_419.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00419-align_sf_call_span_419.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00420-Issue-2278.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00420-Issue-2278.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00421-nl_ds_struct_enum.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00421-nl_ds_struct_enum.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00422-nl_ds_struct_enum.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00422-nl_ds_struct_enum.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00423-bug_1702.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00423-bug_1702.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00430-paren-indent.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00430-paren-indent.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00431-paren-indent.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00431-paren-indent.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00432-paren-indent.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00432-paren-indent.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00440-bug_489.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00440-bug_489.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00451-enum_gallery.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00451-enum_gallery.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00452-enum_gallery.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00452-enum_gallery.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00453-enum_gallery.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00453-enum_gallery.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00453-enum_gallery.rerun.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00453-enum_gallery.rerun.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00454-enum_gallery.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00454-enum_gallery.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00461-align_func_proto_star_amp.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00461-align_func_proto_star_amp.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00462-align_func_proto_star_amp.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00462-align_func_proto_star_amp.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00463-align_func_proto_star_amp.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00463-align_func_proto_star_amp.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00464-align_func_proto_star_amp.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00464-align_func_proto_star_amp.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00465-align_func_proto_star_amp.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00465-align_func_proto_star_amp.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00466-align_func_proto_star_amp.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00466-align_func_proto_star_amp.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00467-align_func_proto_star_amp.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00467-align_func_proto_star_amp.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00468-align_func_proto_star_amp.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00468-align_func_proto_star_amp.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00469-align_func_proto_star_amp.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00469-align_func_proto_star_amp.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00501-bool-pos.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00501-bool-pos.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00502-bool-pos.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00502-bool-pos.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00503-pos_compare.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00503-pos_compare.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00504-pos_compare.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00504-pos_compare.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00505-pos_conditional.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00505-pos_conditional.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00506-pos_conditional.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00506-pos_conditional.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00510-bool-pos.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00510-bool-pos.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00511-bool-pos.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00511-bool-pos.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00512-bool-pos.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00512-bool-pos.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00513-bool-pos.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00513-bool-pos.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00514-my_infile.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00514-my_infile.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00600-dos.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00600-dos.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00601-mac.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00601-mac.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00611-pp-space.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00611-pp-space.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00612-pp-space.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00612-pp-space.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00613-pp-space.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00613-pp-space.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00614-pp-space.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00614-pp-space.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00615-pp-nest.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00615-pp-nest.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00616-pp-if-indent.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00616-pp-if-indent.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00617-pp-if-indent.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00617-pp-if-indent.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00618-pp-if-indent.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00618-pp-if-indent.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00619-Issue_3169.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00619-Issue_3169.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00620-indent-assign.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00620-indent-assign.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00621-nl_endif.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00621-nl_endif.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00622-indent-off-after-assign.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00622-indent-off-after-assign.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00631-nl_assign.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00631-nl_assign.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00632-nl_assign.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00632-nl_assign.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00633-bug_3156.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00633-bug_3156.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00701-function-def.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00701-function-def.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00702-function-def.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00702-function-def.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00703-function-def.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00703-function-def.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00710-add_long_comment.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00710-add_long_comment.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00721-nl-semicolon.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00721-nl-semicolon.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00801-fcn_type.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00801-fcn_type.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00802-funcfunc.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00802-funcfunc.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00803-fcn_type.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00803-fcn_type.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00901-code_width.c87
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00902-code_width.c76
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00903-code_width.c75
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00910-pascal_ptr.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00910-pascal_ptr.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00911-pascal_ptr.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00911-pascal_ptr.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01000-mod-paren.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01000-mod-paren.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01001-nl-comment.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01001-nl-comment.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01002-mod-paren.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01002-mod-paren.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01005-mod_case_brace.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01005-mod_case_brace.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01006-mod_case_brace.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01006-mod_case_brace.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01007-mod_case_brace.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01007-mod_case_brace.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01008-Issue_3366.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01008-Issue_3366.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01009-mod_move_case_return.c41
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01010-mod_move_case_return_bad.c52
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01011-semicolons.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01011-semicolons.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01012-semicolons.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01012-semicolons.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01015-paren_indent.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01015-paren_indent.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01016-align_attr.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01016-align_attr.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01020-kw_subst.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01020-kw_subst.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01021-hello.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01021-hello.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01022-kw_subst.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01022-kw_subst.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01030-multi.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01030-multi.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01035-func_wrap.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01035-func_wrap.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01036-func_wrap.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01036-func_wrap.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01037-type_wrap.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01037-type_wrap.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01040-newline_after_endif.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01040-newline_after_endif.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01050-func_call_user.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01050-func_call_user.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01060-backslash-newline-lex.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01060-backslash-newline-lex.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01070-various_colons.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01070-various_colons.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01071-various_colons.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01071-various_colons.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01080-bug_1196.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01080-bug_1196.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02000-i2c-core.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02000-i2c-core.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02001-directfb.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02001-directfb.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02002-i2c-core.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02002-i2c-core.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02003-Issue_3353.h6
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02100-i2c-core.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02100-i2c-core.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02101-comment-indent.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02101-comment-indent.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02200-xml.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02200-xml.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02201-align-string.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02201-align-string.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02300-preproc-if.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02300-preproc-if.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02301-preproc-if.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02301-preproc-if.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02302-nl-cont.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02302-nl-cont.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02303-nl-cont2.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02303-nl-cont2.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02310-empty-for.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02310-empty-for.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02311-pragma.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02311-pragma.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02315-pp_ret.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02315-pp_ret.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02320-nl_create_one_liner.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02320-nl_create_one_liner.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02325-sort_include.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02325-sort_include.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02330-one_liners.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02330-one_liners.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02410-ifdef-indent.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02410-ifdef-indent.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02411-ifdef-indent.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02411-ifdef-indent.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02412-ifdef-indent.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02412-ifdef-indent.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02413-ifdef-indent.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02413-ifdef-indent.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02414-whole_file_ifdef.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02414-whole_file_ifdef.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02415-endif.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02415-endif.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02416-cmt_nl_end.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02416-cmt_nl_end.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02421-cmt_multi.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02421-cmt_multi.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02422-cmt_multi.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02422-cmt_multi.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02423-cmt_multi_utf8.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02423-cmt_multi_utf8.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02431-cmt_right_align.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02431-cmt_right_align.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02432-cmt_right_align.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02432-cmt_right_align.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02440-string_utf8.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02440-string_utf8.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02441-utf8-identifiers.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02441-utf8-identifiers.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02451-nl_return_expr.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02451-nl_return_expr.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02452-nl_return_expr.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02452-nl_return_expr.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02453-nl_return_expr.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02453-nl_return_expr.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02454-nl_return_expr.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02454-nl_return_expr.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02455-macro-returns.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02455-macro-returns.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02456-macro-returns.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02456-macro-returns.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02457-nl_before_return.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02457-nl_before_return.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02460-freebsd.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02460-freebsd.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02486-doxy-comment.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02486-doxy-comment.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02487-doxy-comment.c11
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02501-custom_types_ssl.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02501-custom_types_ssl.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02502-custom_types_ssl.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02502-custom_types_ssl.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02504-align_keep_extra.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02504-align_keep_extra.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02510-asm.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02510-asm.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/07630-indent-vbrace.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/07630-indent-vbrace.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/08399-gh399.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/08399-gh399.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09588-sf588.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09588-sf588.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09594-sf594.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09594-sf594.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09601-sp_after_sparen.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09601-sp_after_sparen.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09602-bug_671.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09602-bug_671.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09603-indent_ternary-1.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09603-indent_ternary-1.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09604-indent_ternary-2.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09604-indent_ternary-2.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09605-negative_value.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09605-negative_value.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09606-extern.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09606-extern.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09607-attribute.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09607-attribute.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09608-func_call_user2.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09608-func_call_user2.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09609-Issue_2279.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09609-Issue_2279.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09610-bug_i_876.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09610-bug_i_876.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09611-bug_i_222.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09611-bug_i_222.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09612-bug_1041.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09612-bug_1041.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09613-i1413.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09613-i1413.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09614-string_prefixes.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09614-string_prefixes.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09615-i1564.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09615-i1564.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09616-enum_comma_ifdef.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09616-enum_comma_ifdef.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09617-Issue_2360.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09617-Issue_2360.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09618-Issue_2360.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09618-Issue_2360.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09619-Issue_2411.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09619-Issue_2411.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09620-Issue_2640.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09620-Issue_2640.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09621-pp-before-func-def.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09621-pp-before-func-def.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09622-Issue_3356.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09622-Issue_3356.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10004-pragma_asm.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10004-pragma_asm.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10005-i1270.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10005-i1270.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10006-bug_2331.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10006-bug_2331.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10007-indent-macro-brace.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10007-indent-macro-brace.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10008-indent-macro-brace.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10008-indent-macro-brace.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10009-return-compound-literal.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10009-return-compound-literal.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10010-return-compound-literal.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10010-return-compound-literal.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10011-return-compound-literal.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10011-return-compound-literal.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10012-sparen-indent.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10012-sparen-indent.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10013-sparen-indent.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10013-sparen-indent.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10014-sparen-indent.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10014-sparen-indent.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10015-Issue_2845.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10015-Issue_2845.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10016-Issue_3233.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10016-Issue_3233.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10017-double-sparen.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10017-double-sparen.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10018-double-sparen.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10018-double-sparen.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10019-include-guard.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10019-include-guard.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10020-single_line_comment_after.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10020-single_line_comment_after.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10021-parenthesized_indirect_call.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10021-parenthesized_indirect_call.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10022-Issue_3269.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10022-Issue_3269.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10023-Issue_3272.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10023-Issue_3272.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10024-Issue_3274.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10024-Issue_3274.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10025-forever.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10025-forever.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10026-forever.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10026-forever.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10027-Issue_3327.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10027-Issue_3327.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10028-Issue_3339.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10028-Issue_3339.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10029-Issue_3339.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10029-Issue_3339.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10030-Issue_3339.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10030-Issue_3339.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10031-Issue_3342.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10031-Issue_3342.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10032-Issue_3345.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10032-Issue_3345.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10033-Issue_3343.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10033-Issue_3343.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10034-Issue_3343.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10034-Issue_3343.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10035-comment-indent.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10035-comment-indent.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10036-comment-indent.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10036-comment-indent.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10037-Issue_3362.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10037-Issue_3362.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10038-Issue_3362.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10038-Issue_3362.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10039-Issue_3370.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10039-Issue_3370.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10040-Issue_3377.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10040-Issue_3377.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10041-Issue_3351.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10041-Issue_3351.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10042-Issue_3376.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10042-Issue_3376.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10043-Issue_3376.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10043-Issue_3376.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10044-Issue_3376.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10044-Issue_3376.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10045-Issue_3376.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10045-Issue_3376.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10046-Issue_3402.c3
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10047-Issue_3421.h9
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10048-Issue_3431.c15
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10049-Issue_3436.c15
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10050-Issue_3192.c4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10051-Issue_3454.c99
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10052-Issue_3472.c30
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10053-Issue_3476.c38
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10054-Issue_3480.c26
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10055-Issue_3493.c20
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10056-Issue_3496.h3
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10057-Issue_3496.h3
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10058-Issue_3496.h3
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10059-Issue_3496.h3
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10060-Issue_3548.c21
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10061-Issue_3556.c33
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10062-Issue_3561.c8
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10063-Issue_3565.c3
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10064-Issue_3567.c10
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10065-Issue_3567.c10
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10066-Issue_3580.c35
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10077-Issue_3582.c48
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10078-Issue_3587.h9
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/02102-indent-c.cpp1024
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/02103-output.cpp624
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10000-621_this-spacing.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10000-621_this-spacing.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10001-622_ifdef-indentation.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10001-622_ifdef-indentation.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10002-623_caret-spacing.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10002-623_caret-spacing.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10003-633_decl-in-func-typedef.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10003-633_decl-in-func-typedef.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10004-634_extern-c-no-block.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10004-634_extern-c-no-block.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10005-define-indentation.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10005-define-indentation.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10006-dont-detab-strings.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10006-dont-detab-strings.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10007-dont-process-defines.cpp6
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10008-PR326_invalid-backslash-eol-csharp.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10008-PR326_invalid-backslash-eol-csharp.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10009-STUCK_macro-difficulties.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10009-STUCK_macro-difficulties.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10020-macro_spaces.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10020-macro_spaces.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10021-braces_align.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10021-braces_align.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10022-foreach.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10022-foreach.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10023-for_auto.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10023-for_auto.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10024-ifcomment.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10024-ifcomment.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10025-qtargs.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10025-qtargs.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10026-gcc_case_ellipsis.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10026-gcc_case_ellipsis.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10027-Issue_3058.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10027-Issue_3058.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10028-gcc_case_ellipsis.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10028-gcc_case_ellipsis.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10029-gcc_case_ellipsis.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10029-gcc_case_ellipsis.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10047-UNI-1334.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10047-UNI-1334.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10048-UNI-1335.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10048-UNI-1335.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10050-UNI-1337.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10050-UNI-1337.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10052-UNI-1339.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10052-UNI-1339.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10053-UNI-1340.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10053-UNI-1340.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10054-UNI-1344.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10054-UNI-1344.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10056-UNI-1346.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10056-UNI-1346.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10057-UNI-1347.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10057-UNI-1347.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10060-UNI-1350.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10060-UNI-1350.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10062-UNI-1356.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10062-UNI-1356.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10063-UNI-1358.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10063-UNI-1358.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10069-UNI-1980.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10069-UNI-1980.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10070-UNI-1981.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10070-UNI-1981.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10071-UNI-1983.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10071-UNI-1983.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10079-UNI-9650.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10079-UNI-9650.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10080-UNI-10496.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10080-UNI-10496.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10100-issue_564.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10100-issue_564.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10101-issue_574.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10101-issue_574.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10102-issue_574.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10102-issue_574.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10103-issue_574.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10103-issue_574.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10566-issue_1752.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10566-issue_1752.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/11000-UNI-12046.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/11000-UNI-12046.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/20002-UNI-32657.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/20002-UNI-32657.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/20011-UNI-38381.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/20011-UNI-38381.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30000-cout.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30000-cout.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30001-alt_tokens.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30001-alt_tokens.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30002-constructor.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30002-constructor.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30003-strings.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30003-strings.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30010-class.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30010-class.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30011-misc.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30011-misc.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30012-misc2.cpp58
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30013-sim.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30013-sim.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30014-ctor-var.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30014-ctor-var.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30015-exception.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30015-exception.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30016-custom-open.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30016-custom-open.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30017-custom-open.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30017-custom-open.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30018-class-addr.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30018-class-addr.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30019-wacky-template.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30019-wacky-template.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30020-bool.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30020-bool.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30021-byref.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30021-byref.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30022-extern_c.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30022-extern_c.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30023-templates.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30023-templates.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30024-class-init.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30024-class-init.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30025-class-init.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30025-class-init.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30026-byref.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30026-byref.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30027-byref.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30027-byref.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30028-byref.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30028-byref.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30029-init_align.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30029-init_align.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30030-Timestamp.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30030-Timestamp.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30031-operator.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30031-operator.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30032-operator.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30032-operator.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30033-operator.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30033-operator.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30034-operator_proto.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30034-operator_proto.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30035-operator_proto.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30035-operator_proto.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30036-operator.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30036-operator.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30037-operator_proto.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30037-operator_proto.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30038-operator.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30038-operator.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30039-operator_proto.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30039-operator_proto.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30040-nl-class.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30040-nl-class.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30041-nl-class.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30041-nl-class.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30042-Issue_2020.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30042-Issue_2020.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30043-nl_func_call_empty.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30043-nl_func_call_empty.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30044-nl_func_call_paren_empty.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30044-nl_func_call_paren_empty.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30045-nl_func_decl.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30045-nl_func_decl.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30046-nl_func_decl.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30046-nl_func_decl.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30047-nl_func_paren_empty.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30047-nl_func_paren_empty.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30048-nl_func_def_paren_empty.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30048-nl_func_def_paren_empty.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30049-nl_func_call_paren.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30049-nl_func_call_paren.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30050-nl-namespace.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30050-nl-namespace.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30051-nl-namespace.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30051-nl-namespace.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30052-try-catch-nl.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30052-try-catch-nl.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30053-exception.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30053-exception.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30054-Issue_2091.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30054-Issue_2091.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30055-nl_func.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30055-nl_func.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30056-nl_func.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30056-nl_func.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30057-nl_inside_namespace.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30057-nl_inside_namespace.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30058-nl_inside_namespace.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30058-nl_inside_namespace.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30059-Issue_2186.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30059-Issue_2186.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30060-Issue_1734.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30060-Issue_1734.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30061-class-init.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30061-class-init.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30062-class-init.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30062-class-init.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30063-class-init.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30063-class-init.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30064-class-init.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30064-class-init.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30065-Example.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30065-Example.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30066-class-init.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30066-class-init.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30067-nl_func_type_name.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30067-nl_func_type_name.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30068-nl_func_scope_name.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30068-nl_func_scope_name.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30069-class-implementation.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30069-class-implementation.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30070-nl_func_scope_name.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30070-nl_func_scope_name.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30071-lineEndings-Mac.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30071-lineEndings-Mac.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30072-lineEndings-Win.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30072-lineEndings-Win.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30073-lineEndings-Unix.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30073-lineEndings-Unix.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30074-bom.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30074-bom.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30075-goto.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30075-goto.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30076-Issue_2594.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30076-Issue_2594.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30077-Issue_2596.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30077-Issue_2596.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30078-Issue_2672-a.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30078-Issue_2672-a.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30079-Issue_2672-b.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30079-Issue_2672-b.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30080-nl_brace_brace.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30080-nl_brace_brace.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30081-Issue_2383.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30081-Issue_2383.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30082-Issue_931.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30082-Issue_931.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30083-Issue_995-do.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30083-Issue_995-do.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30084-Issue_1184.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30084-Issue_1184.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30085-align_class.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30085-align_class.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30086-align_class-constr.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30086-align_class-constr.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30087-Issue_1511.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30087-Issue_1511.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30088-Issue_2561.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30088-Issue_2561.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30089-Issue_2281.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30089-Issue_2281.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30090-bug_488.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30090-bug_488.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30091-bug_472.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30091-bug_472.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30092-bug_481.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30092-bug_481.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30093-bug_484.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30093-bug_484.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30094-bug_495.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30094-bug_495.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30095-bug_485.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30095-bug_485.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30096-bug_1854.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30096-bug_1854.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30097-issue_1946.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30097-issue_1946.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30098-Issue_2692.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30098-Issue_2692.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30099-bug_1127.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30099-bug_1127.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30100-templates.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30100-templates.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30101-templates.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30101-templates.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30102-templates.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30102-templates.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30103-templates.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30103-templates.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30104-templ_class.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30104-templ_class.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30105-av.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30105-av.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30106-templates2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30106-templates2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30107-templates2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30107-templates2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30108-templates3.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30108-templates3.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30109-templates4.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30109-templates4.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30110-class-init.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30110-class-init.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30111-bug_1346.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30111-bug_1346.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30112-bug_1432.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30112-bug_1432.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30113-bug_1452.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30113-bug_1452.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30114-bug_1462.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30114-bug_1462.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30115-Issue_1704.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30115-Issue_1704.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30116-Issue_1052.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30116-Issue_1052.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30117-Issue_2343.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30117-Issue_2343.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30118-Issue_2758.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30118-Issue_2758.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30119-Issue_2879.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30119-Issue_2879.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30120-sp_after_angle.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30120-sp_after_angle.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30121-sp_after_angle.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30121-sp_after_angle.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30122-sp_after_angle.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30122-sp_after_angle.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30123-sp_after_angle.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30123-sp_after_angle.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30124-sp_after_angle.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30124-sp_after_angle.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30125-sp_after_angle.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30125-sp_after_angle.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30126-sp_after_angle.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30126-sp_after_angle.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30127-Issue_2565.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30127-Issue_2565.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30128-Issue_2873.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30128-Issue_2873.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30129-Issue_2890.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30129-Issue_2890.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30130-if-constexpr.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30130-if-constexpr.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30131-Issue_3010.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30131-Issue_3010.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30132-sp_brace_catch.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30132-sp_brace_catch.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30133-Issue_3252.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30133-Issue_3252.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30134-Issue_3357.cpp7
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30135-Issue_3448.cpp11
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30136-Issue_3413.cpp10
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30137-Issue_3513-0.cpp8
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30138-Issue_3513-1.cpp8
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30139-Issue_3604.cpp4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30200-bug_1862.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30200-bug_1862.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30201-cmt_indent.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30201-cmt_indent.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30202-cmt_indent.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30202-cmt_indent.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30203-cmt_indent.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30203-cmt_indent.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30204-comment-align.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30204-comment-align.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30205-cmt_right.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30205-cmt_right.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30206-cmt_backslash_eol.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30206-cmt_backslash_eol.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30207-cmt_indent_pp.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30207-cmt_indent_pp.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30208-bug_1108.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30208-bug_1108.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30209-bug_1134.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30209-bug_1134.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30210-bug_1338.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30210-bug_1338.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30211-indent_comment_align_thresh.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30211-indent_comment_align_thresh.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30212-indent_comment_align_thresh.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30212-indent_comment_align_thresh.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30213-align_right_comment.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30213-align_right_comment.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30214-align_across_braces.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30214-align_across_braces.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30215-Issue_2099.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30215-Issue_2099.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30216-Issue_2302.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30216-Issue_2302.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30217-2138.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30217-2138.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30220-bug_1340.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30220-bug_1340.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30221-Issue_2914.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30221-Issue_2914.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30223-sp_enum_colon.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30223-sp_enum_colon.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30224-sp_enum_colon.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30224-sp_enum_colon.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30225-Issue_3176.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30225-Issue_3176.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30226-sp_enum_colon.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30226-sp_enum_colon.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30227-sp_inside_braces_enum.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30227-sp_inside_braces_enum.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30228-sp_inside_braces_enum.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30228-sp_inside_braces_enum.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30229-sp_inside_braces_enum.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30229-sp_inside_braces_enum.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30230-sp_type_func.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30230-sp_type_func.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30231-sp_type_func.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30231-sp_type_func.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30232-sp_type_func.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30232-sp_type_func.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30233-sp_type_func.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30233-sp_type_func.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30234-functype_param.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30234-functype_param.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30235-functype_param.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30235-functype_param.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30236-Issue_750.cpp15
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30240-align_func_params.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30240-align_func_params.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30241-align_func_params.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30241-align_func_params.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30242-align_func_params.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30242-align_func_params.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30243-align_func_params.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30243-align_func_params.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30244-align_func_params.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30244-align_func_params.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30245-align_func_params.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30245-align_func_params.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30246-align_func_params.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30246-align_func_params.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30247-Issue_2332.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30247-Issue_2332.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30248-Issue_2831.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30248-Issue_2831.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30249-align-330.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30249-align-330.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30250-align_fcall.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30250-align_fcall.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30251-align_fcall.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30251-align_fcall.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30253-align_left_shift.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30253-align_left_shift.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30254-align_left_shift2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30254-align_left_shift2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30255-align_constr.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30255-align_constr.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30256-func_call.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30256-func_call.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30257-func_call_chain.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30257-func_call_chain.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30258-casts.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30258-casts.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30259-sp_after_constr_colon.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30259-sp_after_constr_colon.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30260-var_def_gap.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30260-var_def_gap.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30261-align_var_def_thresh.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30261-align_var_def_thresh.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30262-align_var_def_thresh.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30262-align_var_def_thresh.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30263-align_var_def_thresh.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30263-align_var_def_thresh.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30264-Issue_2668.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30264-Issue_2668.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30265-long_br_cmt.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30265-long_br_cmt.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30266-Issue_2921.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30266-Issue_2921.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30267-Issue_2930.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30267-Issue_2930.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30268-Issue_3018.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30268-Issue_3018.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30270-const_throw.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30270-const_throw.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30271-sp_throw_paren.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30271-sp_throw_paren.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30272-sp_throw_paren.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30272-sp_throw_paren.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30273-sp_cparen_oparen.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30273-sp_cparen_oparen.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30274-sp_cparen_oparen.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30274-sp_cparen_oparen.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30275-bug_1321.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30275-bug_1321.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30278-bug_1439.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30278-bug_1439.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30279-indent-inside-ternary-operator.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30279-indent-inside-ternary-operator.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30280-sf557.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30280-sf557.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30281-Issue_2478.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30281-Issue_2478.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30282-Issue_2703.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30282-Issue_2703.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30283-Issue_3321.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30283-Issue_3321.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30284-Issue_2957.cpp7
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30285-Issue_2971.cpp11
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30290-align_left_shift.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30290-align_left_shift.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30291-indent_shift.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30291-indent_shift.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30292-eigen.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30292-eigen.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30293-pos_shift.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30293-pos_shift.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30294-pos_shift.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30294-pos_shift.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30295-pos_shift.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30295-pos_shift.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30300-enum_shr.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30300-enum_shr.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30301-enum_class.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30301-enum_class.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30302-bug_1315.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30302-bug_1315.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30303-Issue_2902.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30303-Issue_2902.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30310-braced_init_list.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30310-braced_init_list.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30311-uniform_initialization.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30311-uniform_initialization.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30312-return_init_list.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30312-return_init_list.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30313-sp_brace_brace.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30313-sp_brace_brace.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30314-sp_brace_brace.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30314-sp_brace_brace.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30315-return_braced_init.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30315-return_braced_init.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30316-Issue_2428.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30316-Issue_2428.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30317-braced_init_template_decltype.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30317-braced_init_template_decltype.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30318-Issue_2949.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30318-Issue_2949.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30319-Issue_2886.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30319-Issue_2886.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30320-returns.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30320-returns.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30321-returns.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30321-returns.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30322-returns.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30322-returns.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30323-returns.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30323-returns.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30324-returns.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30324-returns.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30325-returns.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30325-returns.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30326-indent_off_after_return.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30326-indent_off_after_return.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30327-indent_off_after_return.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30327-indent_off_after_return.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30328-call_brace_init_lst.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30328-call_brace_init_lst.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30329-call_brace_init_lst.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30329-call_brace_init_lst.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30330-Issue_3080.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30330-Issue_3080.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30400-attribute_specifier_seqs.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30400-attribute_specifier_seqs.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30401-Issue_2570.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30401-Issue_2570.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30701-function-def.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30701-function-def.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30702-function-def.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30702-function-def.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30703-function-def.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30703-function-def.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30705-func_param.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30705-func_param.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30706-bug_1020.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30706-bug_1020.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30711-semicolons.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30711-semicolons.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30712-bug_1158.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30712-bug_1158.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30713-fix_for_relational_operators.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30713-fix_for_relational_operators.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30714-Issue_1733.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30714-Issue_1733.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30715-Issue_2942.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30715-Issue_2942.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30720-custom-open-2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30720-custom-open-2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30721-Issue_2386.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30721-Issue_2386.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30730-qt-1.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30730-qt-1.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30731-qt-1.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30731-qt-1.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30732-Issue_2734.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30732-Issue_2734.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30740-sef.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30740-sef.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30741-al.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30741-al.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30742-delete.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30742-delete.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30745-Issue_2170.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30745-Issue_2170.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30746-DefaultAndDelete.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30746-DefaultAndDelete.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30747-DefaultAndDelete.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30747-DefaultAndDelete.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30748-DefaultAndDelete.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30748-DefaultAndDelete.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30750-lambda.cpp115
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30751-lambda.cpp94
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30752-lambda.cpp128
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30753-lambda2.cpp98
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30754-bug_i_682.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30754-bug_i_682.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30755-bug_i_938.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30755-bug_i_938.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30756-bug_1296.cpp7
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30757-Issue_3054.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30757-Issue_3054.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30758-Issue_3054-2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30758-Issue_3054-2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30759-lambda2.cpp98
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30760-bug_1296.cpp7
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30761-out-668.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30761-out-668.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30762-out-668.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30762-out-668.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30763-Issue_2166.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30763-Issue_2166.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30764-Issue_2591.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30764-Issue_2591.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30765-lambda.cpp114
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30766-lambda.cpp114
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30767-lambda.cpp114
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30768-sp_cpp_lambda_fparen.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30768-sp_cpp_lambda_fparen.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30770-lambda.cpp114
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30771-lambda.cpp114
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30772-lambda.cpp114
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30773-lambda.cpp114
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30774-lambda.cpp114
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30775-lambda.cpp114
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30776-sp_cpp_lambda_fparen.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30776-sp_cpp_lambda_fparen.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30777-sp_cpp_lambda_fparen.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30777-sp_cpp_lambda_fparen.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30780-lambda_in_one_liner.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30780-lambda_in_one_liner.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30781-lambda_brace_list.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30781-lambda_brace_list.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30790-Issue_2795.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30790-Issue_2795.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30791-Issue_3203.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30791-Issue_3203.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30800-align-star-amp-pos.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30800-align-star-amp-pos.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30801-align-star-amp-pos.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30801-align-star-amp-pos.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30802-align-star-amp-pos.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30802-align-star-amp-pos.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30803-bug_1403.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30803-bug_1403.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30805-ptr-star.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30805-ptr-star.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30806-ptr-star.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30806-ptr-star.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30807-ptr-star.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30807-ptr-star.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30808-ptr-star.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30808-ptr-star.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30809-bug_1289.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30809-bug_1289.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30810-ptr-star.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30810-ptr-star.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30811-misc3.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30811-misc3.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30812-misc4.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30812-misc4.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30813-misc5.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30813-misc5.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30814-misc6.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30814-misc6.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30815-cmt-reflow.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30815-cmt-reflow.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30816-for_long.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30816-for_long.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30817-cmt-cpp-cont.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30817-cmt-cpp-cont.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30818-bug_1169.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30818-bug_1169.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30819-bug_1170.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30819-bug_1170.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30820-pp-define-indent.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30820-pp-define-indent.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30821-pp_indent_case.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30821-pp_indent_case.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30822-pp_indent_brace.cpp24
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30823-pp_indent_func_def.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30823-pp_indent_func_def.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30824-pp_indent_extern.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30824-pp_indent_extern.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30825-Issue_1966.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30825-Issue_1966.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30826-Issue_2319.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30826-Issue_2319.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30827-Issue_1167.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30827-Issue_1167.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30828-bug_1691.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30828-bug_1691.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30829-Issue_2726.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30829-Issue_2726.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30830-kw_subst.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30830-kw_subst.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30831-kw_subst2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30831-kw_subst2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30832-kw_subst.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30832-kw_subst.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30840-nl_func_type_name.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30840-nl_func_type_name.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30841-nl_func_type_name.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30841-nl_func_type_name.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30842-nl_func_type_name.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30842-nl_func_type_name.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30843-nl_func_type_name.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30843-nl_func_type_name.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30844-Issue_2771.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30844-Issue_2771.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30845-deref.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30845-deref.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30846-Issue_3197.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30846-Issue_3197.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30850-sp_cmt_cpp_start.cc (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30850-sp_cmt_cpp_start.cc)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30852-Issue_2138.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30852-Issue_2138.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30853-noexcept.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30853-noexcept.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30854-Issue_1703.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30854-Issue_1703.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30855-cpp_move.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30855-cpp_move.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30856-sp_cmt_cpp_region.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30856-sp_cmt_cpp_region.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30857-sp_cmt_cpp_region.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30857-sp_cmt_cpp_region.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30860-sf574.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30860-sf574.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30870-cmt_insert.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30870-cmt_insert.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30871-cmt_insert.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30871-cmt_insert.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30872-Issue_2752.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30872-Issue_2752.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30880-bug_1758.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30880-bug_1758.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30881-bug_1758-f.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30881-bug_1758-f.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30900-region.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30900-region.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30901-region.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30901-region.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30902-region.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30902-region.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30903-region.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30903-region.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30907-Issue_1813.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30907-Issue_1813.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30908-Issue_1813-2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30908-Issue_1813-2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30909-Issue_1813-3.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30909-Issue_1813-3.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30910-indent_namespace.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30910-indent_namespace.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30911-indent_namespace.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30911-indent_namespace.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30912-long_namespace.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30912-long_namespace.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30913-indent_namespace2.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30913-indent_namespace2.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30914-indent_namespace_single_indent.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30914-indent_namespace_single_indent.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30915-bug_1235.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30915-bug_1235.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30916-Issue_1737.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30916-Issue_1737.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30917-Issue_2345-3.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30917-Issue_2345-3.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30918-Issue_2345-4.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30918-Issue_2345-4.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30919-Issue_2387.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30919-Issue_2387.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30920-indent-off.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30920-indent-off.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30921-variadic-template.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30921-variadic-template.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30922-variadic-template.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30922-variadic-template.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30923-sf.2886991.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30923-sf.2886991.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30924-sf.2886991.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30924-sf.2886991.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30925-function-def.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30925-function-def.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30926-function-def.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30926-function-def.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30927-function-def.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30927-function-def.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30928-function-def.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30928-function-def.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30929-bug_1324.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30929-bug_1324.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30930-indent_var_def.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30930-indent_var_def.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30931-indent_var_def_cont.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30931-indent_var_def_cont.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30932-indent_var_def_cont.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30932-indent_var_def_cont.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30933-indent_paren_after_func_def.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30933-indent_paren_after_func_def.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30934-indent_paren_after_func_decl.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30934-indent_paren_after_func_decl.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30935-indent-misc.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30935-indent-misc.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30936-indent_braces_no.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30936-indent_braces_no.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30937-indent_param.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30937-indent_param.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30938-indent_switch_pp.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30938-indent_switch_pp.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30939-indent_paren_after_func_call.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30939-indent_paren_after_func_call.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30940-case-brace-remove.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30940-case-brace-remove.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30941-Issue_2150.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30941-Issue_2150.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30942-Issue_1692.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30942-Issue_1692.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30943-Issue_2735.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30943-Issue_2735.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30945-sf.3266678.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30945-sf.3266678.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30946-sf.3315874.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30946-sf.3315874.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30947-bug_1689.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30947-bug_1689.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30948-sp_before_byref_func.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30948-sp_before_byref_func.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30949-Issue_2757.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30949-Issue_2757.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30950-sp_before_tr_emb_cmt_input.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30950-sp_before_tr_emb_cmt_input.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30951-sp_before_tr_emb_cmt_input.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30951-sp_before_tr_emb_cmt_input.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30952-sp_before_constr_colon.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30952-sp_before_constr_colon.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30953-constr_colon.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30953-constr_colon.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30954-Issue_2305.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30954-Issue_2305.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30955-indent_ctor_init.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30955-indent_ctor_init.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30956-indent_ctor_init.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30956-indent_ctor_init.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30957-class-init.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30957-class-init.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30958-nl_for_leave_one_liners.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30958-nl_for_leave_one_liners.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30959-nl_for_leave_one_liners.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30959-nl_for_leave_one_liners.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30960-Issue_2151.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30960-Issue_2151.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30961-Issue_2232.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30961-Issue_2232.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30962-nl_assign_leave_one_liners.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30962-nl_assign_leave_one_liners.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30963-Issue_2907.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30963-Issue_2907.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30964-Issue_2823.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30964-Issue_2823.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30970-Issue_2219.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30970-Issue_2219.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30971-Issue_2224.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30971-Issue_2224.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30972-Issue_2229.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30972-Issue_2229.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30973-Issue_2236.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30973-Issue_2236.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30974-using-alias-in-define.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30974-using-alias-in-define.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31000-digraph.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31000-digraph.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31001-digraph.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31001-digraph.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31050-pos_assign.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31050-pos_assign.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31051-pos_assign.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31051-pos_assign.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31101-nl_before_brace_open_test.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31101-nl_before_brace_open_test.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31102-nl_before_brace_open_test.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31102-nl_before_brace_open_test.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31103-nl_before_brace_open_test.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31103-nl_before_brace_open_test.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31104-nl_before_brace_open_test.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31104-nl_before_brace_open_test.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31400-trailing_return.cpp99
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31401-trailing_return.cpp99
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31402-trailing_return.cpp99
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31403-trailing_return_byref_ptr.cpp84
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31404-trailing_return_byref_ptr.cpp84
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31450-indent_func_alias_prototype.cpp55
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31451-indent_func_alias_prototype.cpp55
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31452-indent_func_alias_prototype.cpp55
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31562-sf562.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31562-sf562.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31567-sf567.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31567-sf567.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31568-Issue_2368.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31568-Issue_2368.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31583-sf583.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31583-sf583.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31593-sf593.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31593-sf593.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31594-issue_672.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31594-issue_672.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31595-issue_1778.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31595-issue_1778.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31596-issue_1782.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31596-issue_1782.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31597-issue_1804.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31597-issue_1804.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31598-Issue_1753.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31598-Issue_1753.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31599-parameter-packs.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31599-parameter-packs.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31600-parameter-packs.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31600-parameter-packs.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31601-parameter-packs.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31601-parameter-packs.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31602-parameter-packs.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31602-parameter-packs.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31603-parameter-packs.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31603-parameter-packs.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31604-parameter-packs.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31604-parameter-packs.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31605-parameter-packs.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31605-parameter-packs.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31606-parameter-packs.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31606-parameter-packs.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31607-parameter-packs.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31607-parameter-packs.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31608-parameter-packs.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31608-parameter-packs.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31609-parameter-packs.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31609-parameter-packs.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31610-Issue_2085.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31610-Issue_2085.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31611-parameter-packs.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31611-parameter-packs.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31612-parameter-packs.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31612-parameter-packs.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31613-parameter-packs.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31613-parameter-packs.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31614-Issue_3309.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31614-Issue_3309.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31615-Issue_3309.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31615-Issue_3309.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31616-Issue_3309.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31616-Issue_3309.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31620-sp_after_type.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31620-sp_after_type.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31621-sp_after_type.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31621-sp_after_type.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31622-sp_after_type.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31622-sp_after_type.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31623-sp_after_type.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31623-sp_after_type.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31624-sp_after_type.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31624-sp_after_type.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31625-sp_after_type.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31625-sp_after_type.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31626-issue_1916.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31626-issue_1916.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31627-issue_1916.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31627-issue_1916.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31628-issue_1916.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31628-issue_1916.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31629-issue_1916.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31629-issue_1916.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31630-issue_1916.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31630-issue_1916.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31631-issue_1916.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31631-issue_1916.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31632-issue_1916.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31632-issue_1916.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31633-sp_after_decltype.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31633-sp_after_decltype.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31634-sp_after_decltype.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31634-sp_after_decltype.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31635-sp_decltype.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31635-sp_decltype.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31636-Issue_1923.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31636-Issue_1923.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31637-Issue_3446.cpp18
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31660-issue_1919.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31660-issue_1919.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31661-Issue_3097.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31661-Issue_3097.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31700-toggle_processing_cmt.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31700-toggle_processing_cmt.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31701-toggle_processing_cmt2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31701-toggle_processing_cmt2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31702-toggle_processing_cmt.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31702-toggle_processing_cmt.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31703-toggle_processing_cmt.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31703-toggle_processing_cmt.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31710-string_replace_tab_chars.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31710-string_replace_tab_chars.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31711-string_replace_tab_chars.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31711-string_replace_tab_chars.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31720-bit-colon.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31720-bit-colon.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31721-Issue_2689.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31721-Issue_2689.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31730-ms-style-ref.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31730-ms-style-ref.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31740-I2102.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31740-I2102.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/32000-sp_skip_vbrace_tokens.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32000-sp_skip_vbrace_tokens.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/32001-issue_547_for_each.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32001-issue_547_for_each.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/32002-proto-wrap.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32002-proto-wrap.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/32003-issue_633_typename.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32003-issue_633_typename.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/32004-issue_624_angle.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32004-issue_624_angle.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/32005-issue_633_typename.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32005-issue_633_typename.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/32006-bug_i_687.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32006-bug_i_687.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/32007-Issue_3052.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32007-Issue_3052.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/32008-Issue_3034.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32008-Issue_3034.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/32009-Issue_3422.cpp14
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/32010-Issue_3422.cpp14
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/32100-cpp17.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32100-cpp17.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/32105-I2103.cpp3
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/32115-2185.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32115-2185.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33000-tab-0.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33000-tab-0.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33001-tab-1.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33001-tab-1.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33002-cmt_convert_tab_to_spaces.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33002-cmt_convert_tab_to_spaces.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33003-cmt_convert_tab_to_spaces.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33003-cmt_convert_tab_to_spaces.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33004-DoxygenComments.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33004-DoxygenComments.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33005-DoxygenComments.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33005-DoxygenComments.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33006-string_replace_tab_chars.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33006-string_replace_tab_chars.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33007-NewLine.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33007-NewLine.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33008-NewLine.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33008-NewLine.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33009-NewLine0.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33009-NewLine0.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33010-Q_EMIT.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33010-Q_EMIT.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33011-static.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33011-static.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33012-Q_SIGNAL_SLOT.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33012-Q_SIGNAL_SLOT.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33013-Q_2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33013-Q_2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33014-DB.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33014-DB.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33015-Q_FOREACH.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33015-Q_FOREACH.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33016-indent.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33016-indent.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33017-bug_1160.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33017-bug_1160.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33019-bug_657.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33019-bug_657.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33020-bug_662.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33020-bug_662.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33021-bug_633.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33021-bug_633.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33022-bug_634.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33022-bug_634.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33023-bug_651.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33023-bug_651.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33024-bug_653.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33024-bug_653.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33025-bug_654.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33025-bug_654.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33026-bug_631.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33026-bug_631.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33027-bug_664.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33027-bug_664.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33028-braces_empty.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33028-braces_empty.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33029-cast.cpp6
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33030-Q_FOREVER.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33030-Q_FOREVER.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33031-bug_612.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33031-bug_612.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33032-bug_670.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33032-bug_670.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33033-bug_670.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33033-bug_670.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33034-bug_671.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33034-bug_671.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33035-patch_32.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33035-patch_32.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33036-bug_663.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33036-bug_663.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33037-func_class.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33037-func_class.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33038-func_class.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33038-func_class.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33039-mod_remove_empty_return.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33039-mod_remove_empty_return.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33040-bug_i_411.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33040-bug_i_411.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33041-bug_i_411.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33041-bug_i_411.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33042-bug_i_411.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33042-bug_i_411.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33043-bug_i_478.cpp24
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33044-bug_i_481.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33044-bug_i_481.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33045-bug_i_width.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33045-bug_i_width.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33046-bug_i_409.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33046-bug_i_409.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33047-bug_i_409.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33047-bug_i_409.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33048-bug_i_405.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33048-bug_i_405.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33049-pp-pragma.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33049-pp-pragma.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33050-issue_523.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33050-issue_523.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33051-bug_i_503.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33051-bug_i_503.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33052-bug_i_512.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33052-bug_i_512.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33053-for_auto.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33053-for_auto.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33054-bug_i_825.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33054-bug_i_825.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33056-bug_33056.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33056-bug_33056.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33057-bug_1349.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33057-bug_1349.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33058-Issue_3164.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33058-Issue_3164.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33059-mod_remove_empty_return-2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33059-mod_remove_empty_return-2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33060-if_constexpr.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33060-if_constexpr.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33061-if_chain_braces.cpp47
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33062-if_chain_braces.cpp46
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33063-if_chain_braces.cpp54
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33064-if_chain_braces.cpp53
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33065-Issue_3316.cpp15
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33066-if_chain_braces.cpp50
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33067-if_chain_braces.cpp48
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33069-Issue_2195.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33069-Issue_2195.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33070-multi_line.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33070-multi_line.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33071-multi_line.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33071-multi_line.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33072-multi_line.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33072-multi_line.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33073-multi_line.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33073-multi_line.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33074-multi_line.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33074-multi_line.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33075-multi_line.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33075-multi_line.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33076-multi_line.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33076-multi_line.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33077-multi_line.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33077-multi_line.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33078-multi_line.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33078-multi_line.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33079-multi_line.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33079-multi_line.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33080-multi_line.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33080-multi_line.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33081-bug_i_552.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33081-bug_i_552.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33082-namespace_namespace.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33082-namespace_namespace.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33083-bug_i_359.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33083-bug_i_359.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33084-op_sym_empty.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33084-op_sym_empty.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33085-bug_i_323.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33085-bug_i_323.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33086-bug_i_568.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33086-bug_i_568.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33087-bug_i_596.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33087-bug_i_596.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33088-bug_i_197.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33088-bug_i_197.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33089-bug_643.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33089-bug_643.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33090-gh555.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33090-gh555.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33091-squeeze_ifdef.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33091-squeeze_ifdef.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33092-squeeze_ifdef.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33092-squeeze_ifdef.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33093-sp_angle_paren.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33093-sp_angle_paren.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33094-sp_angle_paren.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33094-sp_angle_paren.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33095-bug_i_322.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33095-bug_i_322.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33096-squeeze_ifdef.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33096-squeeze_ifdef.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33097-enum_comma.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33097-enum_comma.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33098-enum_comma.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33098-enum_comma.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33099-enum_comma.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33099-enum_comma.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33100-enum_comma.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33100-enum_comma.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33101-enum_comma.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33101-enum_comma.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33102-enum_comma.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33102-enum_comma.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33103-bug_858.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33103-bug_858.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33104-bug_858.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33104-bug_858.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33105-bug_1001.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33105-bug_1001.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33106-pos_bool_in_template.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33106-pos_bool_in_template.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33107-Issue_2688.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33107-Issue_2688.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33108-Issue_2045.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33108-Issue_2045.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33109-Issue_3205.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33109-Issue_3205.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33110-enum.cpp203
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33120-Issue_2149.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33120-Issue_2149.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33150-bug_i_753.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33150-bug_i_753.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33151-bug_i_752.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33151-bug_i_752.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33152-bug_1004.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33152-bug_1004.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33160-bug_1112.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33160-bug_1112.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33161-byref-3.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33161-byref-3.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33162-sp_not_not.cpp3
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33180-pp_multi_comment.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33180-pp_multi_comment.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33181-Issue_2759.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33181-Issue_2759.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33182-Issue_2794.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33182-Issue_2794.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33200-first_len_minimum.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33200-first_len_minimum.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33201-indent_ctor_members_twice.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33201-indent_ctor_members_twice.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33202-initlist_leading_commas.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33202-initlist_leading_commas.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33203-Issue_2574.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33203-Issue_2574.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33204-Issue_2582.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33204-Issue_2582.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33205-Issue_3198.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33205-Issue_3198.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33210-templates4.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33210-templates4.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33211-pp_multi_comment.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33211-pp_multi_comment.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33212-pp-define-indent.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33212-pp-define-indent.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33213-disable_macro.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33213-disable_macro.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33214-Issue_2742.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33214-Issue_2742.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33215-Issue_3055.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33215-Issue_3055.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33216-Issue_3055-a.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33216-Issue_3055-a.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33217-Issue_3113.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33217-Issue_3113.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34001-nl_before_after.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34001-nl_before_after.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34002-bug_i_793.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34002-bug_i_793.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34003-nl_max_blank_in_func.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34003-nl_max_blank_in_func.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34004-nl_max_blank_in_func.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34004-nl_max_blank_in_func.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34005-nl_max_blank_in_func.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34005-nl_max_blank_in_func.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34006-bug_i_575.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34006-bug_i_575.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34007-bug_i_928.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34007-bug_i_928.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34100-bug_i_525.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34100-bug_i_525.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34101-bug_i_646.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34101-bug_i_646.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34105-bug_i_663.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34105-bug_i_663.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34108-bug_i_666.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34108-bug_i_666.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34112-bug_i_889.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34112-bug_i_889.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34113-bug_902.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34113-bug_902.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34114-bug_902.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34114-bug_902.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34115-nl_before_func_body_def.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34115-nl_before_func_body_def.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34116-issue_2000.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34116-issue_2000.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34117-extern_func.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34117-extern_func.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34118-Issue_2163.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34118-Issue_2163.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34120-bug_i_999.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34120-bug_i_999.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34121-bug_1717.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34121-bug_1717.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34122-Issue_2440.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34122-Issue_2440.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34123-Issue_2440_nl.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34123-Issue_2440_nl.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34130-bug_i_1000.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34130-bug_i_1000.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34131-bug_i_1000.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34131-bug_i_1000.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34132-new_op.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34132-new_op.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34133-new_op.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34133-new_op.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34134-new_op.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34134-new_op.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34135-new_op.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34135-new_op.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34136-sp_balance_nested_parens.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34136-sp_balance_nested_parens.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34140-bug_1027.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34140-bug_1027.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34141-bug_1005.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34141-bug_1005.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34142-I1112-1.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34142-I1112-1.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34143-I1112-2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34143-I1112-2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34144-I1112-3.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34144-I1112-3.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34145-i683.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34145-i683.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34146-bug_1002.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34146-bug_1002.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34147-bug_1002.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34147-bug_1002.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34148-bug_1139.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34148-bug_1139.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34149-bug_1139.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34149-bug_1139.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34150-bug_1032.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34150-bug_1032.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34151-bug_666.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34151-bug_666.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34152-bug_1068.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34152-bug_1068.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34153-type_brace_init_lst.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34153-type_brace_init_lst.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34154-type_brace_init_lst.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34154-type_brace_init_lst.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34155-type_brace_init_lst.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34155-type_brace_init_lst.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34156-type_brace_init_lst.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34156-type_brace_init_lst.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34157-type_brace_init_lst.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34157-type_brace_init_lst.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34158-type_brace_init_lst.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34158-type_brace_init_lst.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34159-type_brace_init_lst.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34159-type_brace_init_lst.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34160-type_brace_init_lst.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34160-type_brace_init_lst.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34161-type_brace_init_lst.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34161-type_brace_init_lst.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34162-type_brace_init_lst.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34162-type_brace_init_lst.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34163-type_brace_init_lst.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34163-type_brace_init_lst.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34164-type_brace_init_lst.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34164-type_brace_init_lst.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34165-type_brace_init_lst.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34165-type_brace_init_lst.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34166-type_brace_init_lst.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34166-type_brace_init_lst.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34168-Issue_2910.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34168-Issue_2910.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34169-init-list-call.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34169-init-list-call.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34170-i1082.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34170-i1082.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34171-i1181.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34171-i1181.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34172-i1165.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34172-i1165.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34173-i1464.cpp3
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34174-i1466.cpp6
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34175-i1509.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34175-i1509.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34176-i1509_bug_1112_correction.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34176-i1509_bug_1112_correction.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34177-sp_func_call_paren.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34177-sp_func_call_paren.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34178-Issue_3237.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34178-Issue_3237.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34179-arith_vs_byref.cpp10
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34180-bug_1402.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34180-bug_1402.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34190-bug_1003.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34190-bug_1003.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34191-comment-align-multiline.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34191-comment-align-multiline.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34192-i1207.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34192-i1207.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34193-i1218.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34193-i1218.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34194-sp_arith_additive.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34194-sp_arith_additive.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34195-sp_arith_additive.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34195-sp_arith_additive.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34196-Issue_1460.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34196-Issue_1460.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34197-bug_1161.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34197-bug_1161.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34198-bug_1249.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34198-bug_1249.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34199-not_lambda.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34199-not_lambda.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34200-i1536.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34200-i1536.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34201-i1565.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34201-i1565.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34202-i1617.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34202-i1617.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34203-i1516.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34203-i1516.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34204-func_param_indent_leading_comma.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34204-func_param_indent_leading_comma.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34205-bug_1395.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34205-bug_1395.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34206-for_loop_head.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34206-for_loop_head.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34207-for_loop_head.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34207-for_loop_head.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34208-conversion_operator.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34208-conversion_operator.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34209-lambda_selfcalling.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34209-lambda_selfcalling.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34210-override_virtual.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34210-override_virtual.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34211-anonymous_enum.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34211-anonymous_enum.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34250-bug_1607.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34250-bug_1607.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34251-bug_1649.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34251-bug_1649.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34252-issue_2001.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34252-issue_2001.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34253-friends.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34253-friends.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34254-issue_1985.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34254-issue_1985.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34255-eat_blanks_after_codewidth.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34255-eat_blanks_after_codewidth.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34256-Issue_2836.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34256-Issue_2836.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34280-UNI-29935.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34280-UNI-29935.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34290-brace_brace_init_lst.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34290-brace_brace_init_lst.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34291-brace_brace_init_lst.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34291-brace_brace_init_lst.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34292-brace_brace_init_lst.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34292-brace_brace_init_lst.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34293-brace_brace_init_lst.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34293-brace_brace_init_lst.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34294-brace_brace_init_lst.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34294-brace_brace_init_lst.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34295-brace_brace_init_lst.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34295-brace_brace_init_lst.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34296-i1768.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34296-i1768.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34297-align-assign-mixed.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34297-align-assign-mixed.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34298-align-assign-mixed.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34298-align-assign-mixed.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34299-align-assign-mixed.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34299-align-assign-mixed.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34300-bug_1236.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34300-bug_1236.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34301-nl_fdef_brace_cond-f.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34301-nl_fdef_brace_cond-f.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34302-nl_fdef_brace_cond-r.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34302-nl_fdef_brace_cond-r.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34303-nl_fdef_brace_cond-fr.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34303-nl_fdef_brace_cond-fr.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34304-nl_fdef_brace_cond-rf.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34304-nl_fdef_brace_cond-rf.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34305-issue_2124-1.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34305-issue_2124-1.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34306-issue_2124-2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34306-issue_2124-2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34307-2203.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34307-2203.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34308-enum_comment_wrap.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34308-enum_comment_wrap.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34309-issue_2209-1.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34309-issue_2209-1.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34310-issue_2209-2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34310-issue_2209-2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34311-Issue_2250.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34311-Issue_2250.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34312-Issue_2101.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34312-Issue_2101.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34313-Issue_2437.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34313-Issue_2437.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34314-Issue_2604.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34314-Issue_2604.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34315-align_func_proto_thresh.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34315-align_func_proto_thresh.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34316-align_func_proto_thresh.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34316-align_func_proto_thresh.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34317-align_func_proto_thresh.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34317-align_func_proto_thresh.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34318-align_assign_func_proto.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34318-align_assign_func_proto.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34319-align_func_proto_thresh2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34319-align_func_proto_thresh2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34320-align_func_proto_thresh2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34320-align_func_proto_thresh2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34321-bug_2285.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34321-bug_2285.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34322-issue_2623.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34322-issue_2623.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34323-issue_2623.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34323-issue_2623.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34324-issue_2623.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34324-issue_2623.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34325-Issue_3025.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34325-Issue_3025.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34326-Issue_3040.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34326-Issue_3040.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34327-Issue_3044.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34327-Issue_3044.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34328-Issue_3048.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34328-Issue_3048.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34330-Issue_3061_0nl.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34330-Issue_3061_0nl.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34331-Issue_3061_1nl.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34331-Issue_3061_1nl.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34332-Issue_3061_2nl.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34332-Issue_3061_2nl.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34333-Issue_3061_0nl.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34333-Issue_3061_0nl.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34334-Issue_3061_1nl.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34334-Issue_3061_1nl.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34335-Issue_3061_2nl.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34335-Issue_3061_2nl.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34336-Issue_3061_0nl.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34336-Issue_3061_0nl.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34337-Issue_3061_1nl.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34337-Issue_3061_1nl.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34338-Issue_3061_2nl.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34338-Issue_3061_2nl.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34339-Issue_3061_0nl.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34339-Issue_3061_0nl.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34340-Issue_3061_1nl.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34340-Issue_3061_1nl.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34341-Issue_3061_2nl.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34341-Issue_3061_2nl.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34350-indent_comma_brace_glob.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34350-indent_comma_brace_glob.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34351-indent_comma_brace_func.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34351-indent_comma_brace_func.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34360-nl_before_struct_struct.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34360-nl_before_struct_struct.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34361-nl_before_struct_scoped_enum.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34361-nl_before_struct_scoped_enum.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34500-sp_before_case_colon.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34500-sp_before_case_colon.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34501-sp_endif_cmt.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34501-sp_endif_cmt.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34502-sp_enum_assign.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34502-sp_enum_assign.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34503-sp_enum_assign.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34503-sp_enum_assign.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34504-issue_574-i.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34504-issue_574-i.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34505-Issue_3220.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34505-Issue_3220.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34506-Issue_3220.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34506-Issue_3220.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34507-Issue_3220.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34507-Issue_3220.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34508-Issue_3220.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34508-Issue_3220.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34509-byref-2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34509-byref-2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34510-byref-2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34510-byref-2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34511-byref-2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34511-byref-2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34512-byref-2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34512-byref-2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34513-sp_cond_question.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34513-sp_cond_question.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34514-sp_cond_question.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34514-sp_cond_question.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34515-sp_cond_question.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34515-sp_cond_question.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34516-sp_cond_question.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34516-sp_cond_question.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34517-semi.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34517-semi.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34518-semi.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34518-semi.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34519-semi.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34519-semi.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34520-comma.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34520-comma.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34521-comma.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34521-comma.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34522-comma.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34522-comma.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34523-gcc_case_ellipsis.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34523-gcc_case_ellipsis.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34524-bug_1002.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34524-bug_1002.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34525-sp_paren_brace.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34525-sp_paren_brace.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34526-sp_paren_brace.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34526-sp_paren_brace.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34527-sp_paren_brace.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34527-sp_paren_brace.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34528-cmt_trailing_single_line_c_to_cpp.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34528-cmt_trailing_single_line_c_to_cpp.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34529-type_brace_init_lst.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34529-type_brace_init_lst.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34530-type_brace_init_lst.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34530-type_brace_init_lst.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34531-type_brace_init_lst.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34531-type_brace_init_lst.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34532-type_brace_init_lst.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34532-type_brace_init_lst.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34533-templates.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34533-templates.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34534-templates.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34534-templates.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34535-sp_after_angle.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34535-sp_after_angle.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34536-sp_after_angle.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34536-sp_after_angle.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34540-byref-4.cpp5
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34541-byref-4.cpp5
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34542-byref-4.cpp5
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34543-byref-4.cpp5
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/39000-UNI-64325.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/39000-UNI-64325.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60001-UNI-2650.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60001-UNI-2650.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60002-UNI-16283.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60002-UNI-16283.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60003-UNI-1288.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60003-UNI-1288.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60006-UNI-2049.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60006-UNI-2049.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60017-UNI-2683.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60017-UNI-2683.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60022-UNI-18439.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60022-UNI-18439.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60025-UNI-19894.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60025-UNI-19894.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60027-UNI-21506.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60027-UNI-21506.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60028-UNI-21509.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60028-UNI-21509.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60029-UNI-21510.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60029-UNI-21510.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60030-UNI-21727.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60030-UNI-21727.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60031-UNI-21728.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60031-UNI-21728.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60032-UNI-21729.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60032-UNI-21729.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60036-UNI-2680.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60036-UNI-2680.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60038-UNI-30088.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60038-UNI-30088.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60039-UNI-30628.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60039-UNI-30628.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60042-UNI-18777.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60042-UNI-18777.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60043-i2033.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60043-i2033.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60044-i2116.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60044-i2116.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60045-align_asterisk_after_type_cast.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60045-align_asterisk_after_type_cast.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60046-align_continuation_left_shift.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60046-align_continuation_left_shift.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60047-align_default_after_override.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60047-align_default_after_override.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60048-bug_2322.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60048-bug_2322.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60049-bug_2402.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60049-bug_2402.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60051-bug_2371.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60051-bug_2371.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60052-bug_2433_1.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60052-bug_2433_1.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60053-bug_2433_2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60053-bug_2433_2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60054-interface-keyword-in-cpp.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60054-interface-keyword-in-cpp.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60055-issue_3116.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60055-issue_3116.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60056-issue_3116-2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60056-issue_3116-2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60057-issue_3116.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60057-issue_3116.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60058-issue_3330.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60058-issue_3330.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60059-indent_ctor_init.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60059-indent_ctor_init.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60060-returns.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60060-returns.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60061-returns.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60061-returns.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60062-returns.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60062-returns.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60063-returns.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60063-returns.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60064-issue_3368.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60064-issue_3368.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60065-issue_3378.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60065-issue_3378.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60066-Issue_3409.cpp8
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60067-Issue_3283.cpp3
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60068-Issue_3428.cpp57
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60069-Issue_3428.cpp57
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60070-Issue_3428.cpp57
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60071-Issue_3428.cpp57
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60072-Issue_3428.cpp57
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60073-Issue_3428.cpp57
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60074-Issue_3284.cpp5
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60075-Issue_3294.cpp17
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60076-indent_ctor_init.cpp13
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60077-indent_ctor_init.cpp13
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60078-Issue_3505.cpp7
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60079-Issue_3536.cpp32
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60080-Issue_3538.cpp13
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60081-Issue_3546.cpp28
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60082-Issue_3552.cpp9
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60083-Issue_3570.h25
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60084-Issue_3576.h9
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60085-Issue_3576.h9
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60086-indent_namespace_inner_only.h8
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10000-simple.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10000-simple.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10001-getset.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10001-getset.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10002-simple.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10002-simple.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10003-region.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10003-region.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10010-var-member.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10010-var-member.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10011-strings.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10011-strings.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10012-621_this-spacing.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10012-621_this-spacing.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10013-625_where-constraints.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10013-625_where-constraints.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10014-630_bad-new-init-semicolon-removal.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10014-630_bad-new-init-semicolon-removal.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10015-misc-failures.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10015-misc-failures.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10016-new-constraint-paren-space.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10016-new-constraint-paren-space.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10020-region.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10020-region.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10021-region.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10021-region.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10022-region.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10022-region.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10023-region.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10023-region.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10027-oneline_property.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10027-oneline_property.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10028-ifcolalign.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10028-ifcolalign.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10029-when.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10029-when.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10030-sort_using.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10030-sort_using.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10031-bug_i_935.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10031-bug_i_935.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10032-sort_using_categ.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10032-sort_using_categ.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10039-615_nested-usings.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10039-615_nested-usings.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10040-tcf.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10040-tcf.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10041-gs.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10041-gs.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10042-exception-filters.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10042-exception-filters.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10044-ifcomment.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10044-ifcomment.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10045-UNI-1288.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10045-UNI-1288.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10050-generics.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10050-generics.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10051-UNI-1338.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10051-UNI-1338.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10055-UNI-1345.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10055-UNI-1345.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10060-unsafe.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10060-unsafe.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10065-UNI-1975.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10065-UNI-1975.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10066-UNI-1977.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10066-UNI-1977.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10067-UNI-1978.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10067-UNI-1978.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10070-utf16le.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10070-utf16le.cs)bin240 -> 240 bytes
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10071-utf16be.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10071-utf16be.cs)bin240 -> 240 bytes
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10072-utf16le_no_bom.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10072-utf16le_no_bom.cs)bin240 -> 240 bytes
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10073-utf16be_no_bom.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10073-utf16be_no_bom.cs)bin240 -> 240 bytes
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10074-UNI-2020.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10074-UNI-2020.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10075-UNI-2021.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10075-UNI-2021.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10076-UNI-1343.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10076-UNI-1343.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10077-UNI-1919.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10077-UNI-1919.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10078-UNI-3484.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10078-UNI-3484.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10080-property.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10080-property.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10090-string_multi.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10090-string_multi.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10100-bug_600.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10100-bug_600.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10101-sf607.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10101-sf607.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10103-UNI-2506.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10103-UNI-2506.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10104-UNI-2505.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10104-UNI-2505.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10110-mdarray_space.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10110-mdarray_space.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10111-mdarray_space.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10111-mdarray_space.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10112-mdarray_space.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10112-mdarray_space.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10119-preserveTabs.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10119-preserveTabs.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10120-cmt_backslash_eol.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10120-cmt_backslash_eol.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10130-sp_between_new_paren.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10130-sp_between_new_paren.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10140-remove_semi.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10140-remove_semi.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10150-operator-null-conditional.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10150-operator-null-conditional.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10151-operator_null-coalescing-assignment.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10151-operator_null-coalescing-assignment.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10160-delegate.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10160-delegate.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10161-delegate.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10161-delegate.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10200-logger.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10200-logger.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10300-1822.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10300-1822.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10628-sf628.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10628-sf628.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/11011-620_getset-brace.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/11011-620_getset-brace.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/11072-UNI-2007.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/11072-UNI-2007.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/11073-UNI-2008.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/11073-UNI-2008.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/12001-bug_620.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12001-bug_620.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/12002-nullable_prop.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12002-nullable_prop.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/12003-fncall_as_ctor_in_attr.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12003-fncall_as_ctor_in_attr.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/12004-verbatim_strings.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12004-verbatim_strings.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/12005-bug_1591.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12005-bug_1591.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/12101-bug_i_679.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12101-bug_i_679.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/12102-mod_full_brace_nl_block_rem_mlcond.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12102-mod_full_brace_nl_block_rem_mlcond.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/12103-mod_full_brace_nl_block_rem_mlcond.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12103-mod_full_brace_nl_block_rem_mlcond.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/12104-bug_1637.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12104-bug_1637.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/12105-bug_1650.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12105-bug_1650.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/12106-UNI-40685.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12106-UNI-40685.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/12107-mod_full_paren_if_bool.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12107-mod_full_paren_if_bool.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/12108-Issue_2705.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12108-Issue_2705.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/12200-comma.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12200-comma.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/12201-comma.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12201-comma.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/12202-comma.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12202-comma.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/19000-UNI-58354.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/19000-UNI-58354.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/20010-UNI-32658.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/20010-UNI-32658.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/20011-bug_1620.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/20011-bug_1620.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60004-UNI-2684.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60004-UNI-2684.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60005-UNI-2685.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60005-UNI-2685.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60007-UNI-3083.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60007-UNI-3083.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60008-UNI-17253.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60008-UNI-17253.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60009-UNI-9917.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60009-UNI-9917.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60012-UNI-12303.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60012-UNI-12303.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60013-UNI-13955.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60013-UNI-13955.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60015-UNI-14131.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60015-UNI-14131.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60016-UNI-11662.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60016-UNI-11662.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60018-UNI-18777.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60018-UNI-18777.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60019-UNI-18780.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60019-UNI-18780.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60020-UNI-18829.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60020-UNI-18829.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60023-UNI-18437.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60023-UNI-18437.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60024-UNI-19644.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60024-UNI-19644.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60026-UNI-19895.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60026-UNI-19895.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60033-UNI-21730.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60033-UNI-21730.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60036-UNI-11993.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60036-UNI-11993.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60037-UNI-29933.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60037-UNI-29933.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60040-UNI-30498_2.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60040-UNI-30498_2.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60041-squeeze-paren-close-Option.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60041-squeeze-paren-close-Option.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60042-indent-multistring-coulmn1.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60042-indent-multistring-coulmn1.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60044-UNI-37241.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60044-UNI-37241.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60045-add-nl-before-namespace.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60045-add-nl-before-namespace.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60046-cast.cs7
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40000-HashMap.d1106
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40001-imports.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40001-imports.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40002-volatile.d28
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40003-volatile-1.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40003-volatile-1.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40004-volatile-2.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40004-volatile-2.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40005-volatile-3.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40005-volatile-3.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40006-Lexer.d2498
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40007-Lexer.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40007-Lexer.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40010-template.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40010-template.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40011-template.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40011-template.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40012-template.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40012-template.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40013-template.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40013-template.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40020-funcfunc.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40020-funcfunc.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40021-tst01.d27
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40022-tst02.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40022-tst02.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40023-bug-indent.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40023-bug-indent.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40024-tst03.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40024-tst03.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40025-tst03.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40025-tst03.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40026-wysiwyg_strings.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40026-wysiwyg_strings.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40027-static_if_in_struct.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40027-static_if_in_struct.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40030-delegate.d23
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40035-enum.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40035-enum.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40040-sort_import.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40040-sort_import.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40050-strings.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40050-strings.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40051-numbers.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40051-numbers.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40052-numbers.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40052-numbers.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40060-casts.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40060-casts.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40061-const.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40061-const.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40070-d_sp_paren.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40070-d_sp_paren.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40080-static_if.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40080-static_if.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40090-square_indent_tab.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40090-square_indent_tab.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40100-1438.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40100-1438.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40201-invariant.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40201-invariant.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40300-extern_.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40300-extern_.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40400-vbraces000.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40400-vbraces000.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40401-vbraces001.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40401-vbraces001.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40402-vbraces002.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40402-vbraces002.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40403-template_use.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40403-template_use.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40500-template_spacing000.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40500-template_spacing000.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40501-template_spacing001.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40501-template_spacing001.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40502-template_spacing001.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40502-template_spacing001.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40503-template_spacing001.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40503-template_spacing001.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40504-type_spacing000.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40504-type_spacing000.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40505-type_spacing000.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40505-type_spacing000.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40506-type_spacing000.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40506-type_spacing000.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/ecma/90000-example-1.es (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/ecma/90000-example-1.es)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80000-assert.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80000-assert.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80010-annotation1.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80010-annotation1.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80011-annotation2.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80011-annotation2.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80012-annotation2.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80012-annotation2.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80013-annotation2.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80013-annotation2.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80014-annotation2.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80014-annotation2.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80020-foreach.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80020-foreach.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80030-variable_aligns.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80030-variable_aligns.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80040-try.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80040-try.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80050-double_brace.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80050-double_brace.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80051-double_brace.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80051-double_brace.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80060-synchronized.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80060-synchronized.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80061-synchronized.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80061-synchronized.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80062-sp_this_paren.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80062-sp_this_paren.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80063-i1121.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80063-i1121.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80064-long_cl_cmt.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80064-long_cl_cmt.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80065-Java8DoubleColon.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80065-Java8DoubleColon.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80066-sp_after_for_colon.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80066-sp_after_for_colon.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80067-doxy-javadoc-alignment.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80067-doxy-javadoc-alignment.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80068-nl_before_ignore_after_case.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80068-nl_before_ignore_after_case.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80100-sf567.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80100-sf567.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80200-sp_before_byref.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80200-sp_before_byref.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80201-generics.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80201-generics.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80202-generics_wildcard.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80202-generics_wildcard.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80203-generics_return_type.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80203-generics_return_type.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80204-cast.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80204-cast.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80205-sp_after_angle.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80205-sp_after_angle.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80206-annotation3.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80206-annotation3.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80300-Issue_670.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80300-Issue_670.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80301-issue_672.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80301-issue_672.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80302-Issue_1845.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80302-Issue_1845.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80303-Issue_1122.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80303-Issue_1122.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80304-Issue_1124.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80304-Issue_1124.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80305-Issue_1124.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80305-Issue_1124.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80306-leading-tabs-for-java-lambda.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80306-leading-tabs-for-java-lambda.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/10018-delete-space-oc.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/10018-delete-space-oc.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/10019-func-param-wrap-oc.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/10019-func-param-wrap-oc.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/10020-align-objc-like-xcode.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/10020-align-objc-like-xcode.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/10021-double-indent-objc-dict.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/10021-double-indent-objc-dict.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/10022-indent-objc-block.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/10022-indent-objc-block.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/10033-objc.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10033-objc.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/10034-asm.h.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10034-asm.h.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/10035-definesalign.h.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10035-definesalign.h.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/10036-inttypes.h.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10036-inttypes.h.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/10046-UNI-1333.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-1333.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/10102-pp-ignore.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10102-pp-ignore.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/11030-argtypes.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/11030-argtypes.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/11031-casting.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/11031-casting.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/11032-newlines.mm33
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50001-Fraction.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50001-Fraction.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50002-Fraction.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50002-Fraction.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50003-main.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50003-main.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50004-string.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50004-string.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50005-Declarations.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50005-Declarations.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50006-exceptions.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50006-exceptions.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50007-misc.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50007-misc.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50008-protocol.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50008-protocol.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50009-literals.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50009-literals.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50010-return_type.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50010-return_type.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50011-return_type.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50011-return_type.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50012-return_type.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50012-return_type.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50014-sp_oc_classname_paren-r.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50014-sp_oc_classname_paren-r.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50015-receiver.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50015-receiver.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50016-ternary.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50016-ternary.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50017-ternary.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50017-ternary.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50018-indent-inside-ternary-operator.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50018-indent-inside-ternary-operator.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50020-selector.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50020-selector.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50021-selector.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50021-selector.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50022-selector.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50022-selector.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50025-exceptions.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50025-exceptions.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50026-exceptions.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50026-exceptions.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50030-sort_import.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50030-sort_import.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50031-sort_import.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50031-sort_import.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50032-sort_import.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50032-sort_import.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50033-sort_import.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50033-sort_import.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50034-sort_import.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50034-sort_import.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50035-sort_import_group.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50035-sort_import_group.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50040-complex_method.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50040-complex_method.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50050-real_world_file.m229
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50060-oc-split.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50060-oc-split.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50061-bug_167.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50061-bug_167.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50062-issue_2631.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50062-issue_2631.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50070-blocks.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50070-blocks.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50071-blocks.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50071-blocks.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50072-blocks.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50072-blocks.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50073-blocks.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50073-blocks.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50074-blocks.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50074-blocks.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50075-blocks.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50075-blocks.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50076-blocks.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50076-blocks.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50077-more_blocks.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50077-more_blocks.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50078-more_blocks.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50078-more_blocks.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50079-more_blocks.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50079-more_blocks.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50080-more_blocks.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50080-more_blocks.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50081-more_blocks.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50081-more_blocks.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50082-more_blocks.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50082-more_blocks.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50083-more_blocks.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50083-more_blocks.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50084-more_blocks.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50084-more_blocks.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50085-block_in_method.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50085-block_in_method.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50086-block_in_method.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50086-block_in_method.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50087-indent_oc_inside_msg_sel.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50087-indent_oc_inside_msg_sel.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50090-kw.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50090-kw.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50091-block_in_method.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50091-block_in_method.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50095-box.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50095-box.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50100-bug_340.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50100-bug_340.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50110-msg_align.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50110-msg_align.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50111-ns_enum.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50111-ns_enum.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50112-ns_enum.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50112-ns_enum.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50113-ns_enum.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50113-ns_enum.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50120-gh137.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50120-gh137.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50200-more_blocks_2.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50200-more_blocks_2.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50201-blocks_align.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50201-blocks_align.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50202-blocks_align.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50202-blocks_align.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50203-blocks_align.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50203-blocks_align.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50204-blocks_align.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50204-blocks_align.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50205-msg_align.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50205-msg_align.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50206-issue_2727.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50206-issue_2727.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50207-issue_3031.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50207-issue_3031.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50300-msg.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50300-msg.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50400-for.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50400-for.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50410-oc_cond_colon.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50410-oc_cond_colon.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50411-attribute_specifier_seqs.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50411-attribute_specifier_seqs.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50500-code_placeholder.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50500-code_placeholder.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50510-gh293.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50510-gh293.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50511-gh293.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50511-gh293.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50512-sp_oc_catch.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50512-sp_oc_catch.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50513-sp_oc_boxed.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50513-sp_oc_boxed.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50514-indent_boxed.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50514-indent_boxed.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50515-sp_oc_synchronized.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50515-sp_oc_synchronized.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50600-bug_i_477.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50600-bug_i_477.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50601-bug_i_408.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50601-bug_i_408.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50602-bug_i_125-412.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50602-bug_i_125-412.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50603-gh511.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50603-gh511.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50604-bug_497.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50604-bug_497.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50605-bug_404.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50605-bug_404.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50606-bug_1366.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50606-bug_1366.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50607-sp_after_oc_msg_receiver.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50607-sp_after_oc_msg_receiver.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50608-blocks_align2.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50608-blocks_align2.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50609-negative_value.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50609-negative_value.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50610-nelem.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50610-nelem.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50611-for2.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50611-for2.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50612-chunk_ends_type1.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50612-chunk_ends_type1.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50613-chunk_ends_type2.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50613-chunk_ends_type2.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50614-chunk_ends_type3.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50614-chunk_ends_type3.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50615-block_literal_protocol.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50615-block_literal_protocol.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50616-oc_msg_in_pp.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50616-oc_msg_in_pp.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50617-boxed_receiver.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50617-boxed_receiver.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50618-func_def.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50618-func_def.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50619-cast.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50619-cast.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50620-sp_after_angle.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50620-sp_after_angle.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50621-Fraction.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50621-Fraction.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50622-c-cpp-oc-wrapper.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50622-c-cpp-oc-wrapper.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50623-extern-c-attribute.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50623-extern-c-attribute.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50624-typeof.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50624-typeof.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50625-sp_inside_braces_oc_dict.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50625-sp_inside_braces_oc_dict.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50626-chunk_ends_type4.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50626-chunk_ends_type4.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50627-method_ends_semicolon.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50627-method_ends_semicolon.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50628-macro-close-brace.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50628-macro-close-brace.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50629-pp_bool.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50629-pp_bool.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50630-nl_func_call_args_multi_line_ignore_closures.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50630-nl_func_call_args_multi_line_ignore_closures.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50700-cmt_insert.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50700-cmt_insert.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50701-cmt_insert2.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50701-cmt_insert2.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50800-properties.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50800-properties.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50801-i1213.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50801-i1213.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50802-available.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50802-available.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50803-indent_single_newline.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50803-indent_single_newline.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50804-issue_2629.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50804-issue_2629.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50805-issue_2724.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50805-issue_2724.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50810-bug_841.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50810-bug_841.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50811-bug_1674.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50811-bug_1674.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50812-bug_1683.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50812-bug_1683.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50813-sp_before_oc_proto_list.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50813-sp_before_oc_proto_list.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50814-sp_before_oc_proto_list.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50814-sp_before_oc_proto_list.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50815-sp_before_oc_proto_list.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50815-sp_before_oc_proto_list.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50816-issue_2675.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50816-issue_2675.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50817-issue_2722.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50817-issue_2722.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50900-1927.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50900-1927.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50901-Issue_2172.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50901-Issue_2172.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50902-Issue_2289.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50902-Issue_2289.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50903-Issue_681.oc (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50903-Issue_681.oc)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50904-double_angle_space.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50904-double_angle_space.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50905-double_angle_space.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50905-double_angle_space.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50906-double_angle_space.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50906-double_angle_space.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/51000-sp_cond_ternary_short.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/51000-sp_cond_ternary_short.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/51001-ns_enum-i.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/51001-ns_enum-i.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/51002-sp_oc_catch.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/51002-sp_oc_catch.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/51003-sp_oc_catch.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/51003-sp_oc_catch.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/51004-block_pointer.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/51004-block_pointer.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/60011-UNI-11095.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60011-UNI-11095.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/pawn/60000-functions.pawn (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60000-functions.pawn)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/pawn/60001-comment.p (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60001-comment.p)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/pawn/60002-traffic.p (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60002-traffic.p)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/pawn/60003-tags.pawn (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60003-tags.pawn)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/pawn/60004-enum.pawn (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60004-enum.pawn)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/pawn/60005-unbraced.p (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60005-unbraced.p)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/pawn/60010-str-escape.p (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60010-str-escape.p)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/pawn/60020-switch-vsemi.sma (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60020-switch-vsemi.sma)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/pawn/60030-crusty_ex-1.sma (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60030-crusty_ex-1.sma)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/pawn/60040-preproc.pawn (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60040-preproc.pawn)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/pawn/60050-gh419.pawn (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60050-gh419.pawn)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/pawn/60100-Issue_2586.pawn (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60100-Issue_2586.pawn)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/pawn/60101-Issue_2665.pawn (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60101-Issue_2665.pawn)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/sql/02400-mysql.sqc (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/sql/02400-mysql.sqc)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/sql/02401-sta-select.sqc (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/sql/02401-sta-select.sqc)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/sql/02402-issue_527.sqc (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/sql/02402-issue_527.sqc)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/vala/70000-list.vala (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/vala/70000-list.vala)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/vala/70001-advanced.vala (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/vala/70001-advanced.vala)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/vala/70010-verbatim_str.vala (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/vala/70010-verbatim_str.vala)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/vala/70011-verbatim_str2.vala (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/vala/70011-verbatim_str2.vala)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/vala/70012-verbatim_str2.vala (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/vala/70012-verbatim_str2.vala)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/vala/70020-preproc.vala (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/vala/70020-preproc.vala)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/vala/70287-gh287.vala (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/vala/70287-gh287.vala)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/vala/70300-Issue_2090.vala (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/vala/70300-Issue_2090.vala)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/vala/70301-Issue_2270.vala (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/vala/70301-Issue_2270.vala)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/vala/70302-cast.vala7
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/vala/70303-nullable.vala14
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/fixtest.sh (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/fixtest.sh)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/imported.test (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/imported.test)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/1225.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/1225.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue-2278.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue-2278.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_2279.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_2279.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_2360.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_2360.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_2411.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_2411.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_2640.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_2640.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_2845.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_2845.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3169.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3169.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3192.c3
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3233.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3233.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3269.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3269.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3272.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3272.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3274.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3274.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3327.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3327.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3339.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3339.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3342.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3342.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3343.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3343.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3345.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3345.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3351.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3351.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3353.h6
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3356.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3356.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3362.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3362.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3366.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3366.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3370.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3370.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3376.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3376.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3377.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3377.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3402.c3
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3421.h9
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3431.c15
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3436.c15
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3454.c99
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3457.c12
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3472.c30
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3476.c38
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3480.c26
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3493.c20
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3496.h3
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3516.c10
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3518.c10
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3548.c21
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3556.c33
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3561.c8
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3565.c3
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3567.c10
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3580.c35
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3582.c48
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3587.h9
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3601.c1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/add_long_comment.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/add_long_comment.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/align-equ.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align-equ.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/align-proto-vars.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align-proto-vars.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/align-proto.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align-proto.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/align-string.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align-string.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/align-struct-init.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align-struct-init.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/align-typedef.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align-typedef.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/align-var.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align-var.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/align_attr.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align_attr.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/align_func_proto_star_amp.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align_func_proto_star_amp.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/align_keep_extra.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align_keep_extra.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/align_sf_call_span_418.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align_sf_call_span_418.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/align_sf_call_span_419.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align_sf_call_span_419.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/align_sf_call_thresh_416.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align_sf_call_thresh_416.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/align_sf_call_thresh_417.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align_sf_call_thresh_417.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/align_stack.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align_stack.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/asm.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/asm.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/attribute.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/attribute.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/backslash-newline-lex.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/backslash-newline-lex.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/beautifier-off.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/beautifier-off.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bits.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bits.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bool-pos.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bool-pos.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/br_cmt.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/br_cmt.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/brace-remove.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/brace-remove.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/brace-remove2.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/brace-remove2.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/brace-remove3.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/brace-remove3.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/brace.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/brace.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/braces-2.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/braces-2.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/braces-3.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/braces-3.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/braces-4.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/braces-4.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/braces-5.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/braces-5.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/braces.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/braces.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bsnl.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bsnl.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bug_1041.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bug_1041.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bug_1196.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bug_1196.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bug_1702.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bug_1702.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bug_1718.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bug_1718.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bug_2331.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bug_2331.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bug_3156.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bug_3156.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bug_489.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bug_489.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bug_671.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bug_671.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bug_i_222.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bug_i_222.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bug_i_771.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bug_i_771.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bug_i_876.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bug_i_876.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bugs-1.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bugs-1.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bugs-2.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bugs-2.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bugs-3.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bugs-3.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bugs-4.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bugs-4.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bugs-5.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bugs-5.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bugs-6.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bugs-6.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bugs-7.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bugs-7.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bugs-8.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bugs-8.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bugs.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bugs.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/case-nl_before_return.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/case-nl_before_return.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/case.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/case.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/cast_brace.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/cast_brace.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/casts.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/casts.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/clang-has_include.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/clang-has_include.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/cmt-align.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/cmt-align.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/cmt_multi.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/cmt_multi.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/cmt_multi_utf8.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/cmt_multi_utf8.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/cmt_nl_end.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/cmt_nl_end.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/cmt_reflow.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/cmt_reflow.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/cmt_right_align.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/cmt_right_align.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/code_width.c51
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/colon-asm.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/colon-asm.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/comment-convert.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/comment-convert.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/comment-indent.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/comment-indent.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/cond.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/cond.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/custom_types_ssl.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/custom_types_ssl.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/define-if-indent.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/define-if-indent.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/deref.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/deref.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/directfb.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/directfb.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/dos.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/dos.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/double-sparen.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/double-sparen.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/doxy-comment.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/doxy-comment.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/else-if.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/else-if.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/empty-for.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/empty-for.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/endif.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/endif.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/enum-struct-init.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/enum-struct-init.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/enum_comma_ifdef.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/enum_comma_ifdef.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/enum_gallery.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/enum_gallery.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/extern.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/extern.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/fcn_indent.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/fcn_indent.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/fcn_indent_func_def_col1.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/fcn_indent_func_def_col1.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/fcn_type.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/fcn_type.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/for-space.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/for-space.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/forever.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/forever.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/freebsd.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/freebsd.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/func_call_user.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/func_call_user.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/func_call_user2.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/func_call_user2.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/func_wrap.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/func_wrap.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/funcfunc.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/funcfunc.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/function-def.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/function-def.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/gh399.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/gh399.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/global-vars.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/global-vars.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/hello.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/hello.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/i1270.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/i1270.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/i1413.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/i1413.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/i1564.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/i1564.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/i2c-core.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/i2c-core.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/if_chain.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/if_chain.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/ifdef-indent.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/ifdef-indent.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/ifdef-nest.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/ifdef-nest.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/include-guard.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/include-guard.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/include_define.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/include_define.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/indent-assign.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/indent-assign.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/indent-macro-brace.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/indent-macro-brace.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/indent-off-after-assign.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/indent-off-after-assign.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/indent-vbrace.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/indent-vbrace.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/indent_first_bool_expr.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/indent_first_bool_expr.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/indent_ternary-1.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/indent_ternary-1.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/indent_ternary-2.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/indent_ternary-2.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/kw_subst.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/kw_subst.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/lvalue.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/lvalue.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/mac.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/mac.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/macro-returns.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/macro-returns.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/minus-minus.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/minus-minus.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/misc.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/misc.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/mod-paren.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/mod-paren.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/mod_case_brace.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/mod_case_brace.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/mod_move_case_return.c41
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/mod_move_case_return_bad.c52
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/multi.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/multi.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/my_infile.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/my_infile.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/negative_value.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/negative_value.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/newline_after_endif.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/newline_after_endif.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/nl-comment.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl-comment.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/nl-cont.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl-cont.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/nl-cont2.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl-cont2.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/nl-semicolon.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl-semicolon.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/nl-ver-def.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl-ver-def.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/nl_assign.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl_assign.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/nl_before_ignore_after_case.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl_before_ignore_after_case.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/nl_before_return.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl_before_return.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/nl_create_one_liner.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl_create_one_liner.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/nl_ds_struct_enum.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl_ds_struct_enum.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/nl_endif.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl_endif.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/nl_proto_endif.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl_proto_endif.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/nl_return_expr.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl_return_expr.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/one-liner-define.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/one-liner-define.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/one-liner-init.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/one-liner-init.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/one_liners.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/one_liners.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/paren-indent.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/paren-indent.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/paren_indent.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/paren_indent.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/parenthesized_indirect_call.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/parenthesized_indirect_call.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/pascal_ptr.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/pascal_ptr.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/pos_compare.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/pos_compare.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/pos_conditional.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/pos_conditional.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/pp-before-func-def.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/pp-before-func-def.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/pp-if-indent.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/pp-if-indent.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/pp-nest.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/pp-nest.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/pp-space.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/pp-space.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/pp_concat_asn1.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/pp_concat_asn1.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/pp_ret.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/pp_ret.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/pragma.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/pragma.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/pragma_asm.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/pragma_asm.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/preproc-if.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/preproc-if.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/return-compound-literal.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/return-compound-literal.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/return-multi.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/return-multi.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/semicolons.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/semicolons.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/sf588.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/sf588.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/sf594.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/sf594.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/single_line_comment_after.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/single_line_comment_after.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/sort_include.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/sort_include.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/sp_after_sparen.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/sp_after_sparen.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/sp_cmt_cpp_start.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/sp_cmt_cpp_start.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/sp_embed_comment.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/sp_embed_comment.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/sp_func_call_user_inside_fparen.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/sp_func_call_user_inside_fparen.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/sparen-indent.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/sparen-indent.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/string_prefixes.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/string_prefixes.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/string_utf8.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/string_utf8.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/struct-brace.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/struct-brace.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/switch-case.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/switch-case.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/switch.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/switch.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/t3.in.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/t3.in.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/type-cast.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/type-cast.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/type_wrap.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/type_wrap.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/utf8-identifiers.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/utf8-identifiers.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/vardefcol.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/vardefcol.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/various_colons.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/various_colons.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/vb-do.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/vb-do.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/vb-pp.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/vb-pp.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/vb-while.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/vb-while.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/whole_file_ifdef.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/whole_file_ifdef.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/xml.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/xml.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/2138.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/2138.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/2185.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/2185.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/2203.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/2203.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/621_this-spacing.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/621_this-spacing.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/622_ifdef-indentation.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/622_ifdef-indentation.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/623_caret-spacing.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/623_caret-spacing.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/633_decl-in-func-typedef.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/633_decl-in-func-typedef.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/634_extern-c-no-block.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/634_extern-c-no-block.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/DB.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/DB.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/DefaultAndDelete.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/DefaultAndDelete.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/DoxygenComments.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/DoxygenComments.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Example.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Example.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/I1112-1.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/I1112-1.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/I1112-2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/I1112-2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/I1112-3.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/I1112-3.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/I2102.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/I2102.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/I2103.cpp3
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_1052.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1052.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_1167.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1167.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_1184.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1184.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_1460.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1460.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_1511.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1511.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_1692.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1692.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_1703.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1703.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_1704.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1704.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_1733.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1733.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_1734.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1734.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_1737.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1737.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_1753.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1753.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_1813-2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1813-2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_1813-3.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1813-3.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_1813.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1813.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_1923.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1923.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_1966.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1966.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2020.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2020.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2045.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2045.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2085.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2085.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2091.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2091.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2099.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2099.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2101.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2101.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2138.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2138.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2149.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2149.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2150.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2150.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2151.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2151.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2163.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2163.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2166.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2166.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2170.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2170.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2186.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2186.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2195.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2195.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2219.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2219.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2224.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2224.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2229.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2229.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2232.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2232.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2236.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2236.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2250.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2250.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2281.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2281.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2302.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2302.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2305.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2305.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2319.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2319.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2332.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2332.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2343.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2343.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2343.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2343.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2345-3.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2345-3.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2345-4.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2345-4.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2368.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2368.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2383.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2383.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2386.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2386.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2387.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2387.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2428.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2428.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2437.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2437.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2440.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2440.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2440_nl.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2440_nl.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2478.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2478.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2561.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2561.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2565.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2565.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2570.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2570.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2574.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2574.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2582.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2582.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2591.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2591.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2594.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2594.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2596.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2596.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2604.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2604.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2668.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2668.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2672-a.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2672-a.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2672-b.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2672-b.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2688.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2688.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2689.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2689.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2692.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2692.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2703.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2703.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2726.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2726.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2734.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2734.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2735.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2735.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2742.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2742.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2752.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2752.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2757.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2757.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2758.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2758.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2759.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2759.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2771.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2771.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2794.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2794.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2795.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2795.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2823.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2823.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2831.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2831.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2836.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2836.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2873.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2873.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2879.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2879.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2886.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2886.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2890.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2890.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2902.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2902.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2907.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2907.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2910.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2910.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2914.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2914.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2921.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2921.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2930.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2930.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2942.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2942.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2949.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2949.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2957.cpp6
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2971.cpp11
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3010.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3010.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3018.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3018.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3025.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3025.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3034.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3034.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3040.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3040.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3044.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3044.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3048.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3048.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3052.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3052.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3054-2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3054-2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3054.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3054.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3055-a.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3055-a.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3055.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3055.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3058.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3058.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3061_0nl.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3061_0nl.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3061_1nl.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3061_1nl.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3061_2nl.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3061_2nl.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3080.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3080.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3097.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3097.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3113.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3113.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3164.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3164.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3176.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3176.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3197.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3197.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3198.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3198.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3203.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3203.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3205.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3205.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3220.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3220.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3237.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3237.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3252.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3252.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3283.cpp3
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3284.cpp5
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3294.cpp17
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3309.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3309.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3316.cpp15
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3321.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3321.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3357.cpp7
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3409.cpp8
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3413.cpp10
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3422.cpp14
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3428.cpp57
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3446.cpp16
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3448.cpp4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3505.cpp7
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3513-0.cpp5
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3513-1.cpp5
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3536.cpp32
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3538.cpp12
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3546.cpp28
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3552.cpp9
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3570.h25
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3576.h9
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3604.cpp4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_750.cpp15
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_931.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_931.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_995-do.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_995-do.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/NewLine.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/NewLine.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/NewLine0.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/NewLine0.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/PR326_invalid-backslash-eol-csharp.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/PR326_invalid-backslash-eol-csharp.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Q_2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Q_2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Q_EMIT.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Q_EMIT.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Q_FOREACH.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Q_FOREACH.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Q_FOREVER.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Q_FOREVER.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Q_SIGNAL_SLOT.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Q_SIGNAL_SLOT.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/STUCK_macro-difficulties.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/STUCK_macro-difficulties.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Timestamp.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Timestamp.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-10496.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-10496.cpp)0
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-12046.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-12046.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-1288.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1288.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-1334.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1334.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-1335.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1335.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-1337.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1337.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-1339.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1339.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-1340.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1340.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-1344.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1344.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-1346.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1346.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-1347.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1347.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-1350.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1350.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-1356.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1356.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-1358.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1358.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-16283.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-16283.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-18439.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-18439.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-18777.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-18777.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-1980.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1980.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-1981.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1981.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-1983.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1983.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-19894.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-19894.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-2049.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-2049.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-21506.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-21506.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-21509.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-21509.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-21510.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-21510.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-21727.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-21727.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-21728.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-21728.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-21729.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-21729.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-2650.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-2650.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-2680.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-2680.cpp)0
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-2683.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-2683.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-29935.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-29935.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-30088.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-30088.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-30628.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-30628.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-32657.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-32657.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-38381.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-38381.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-64325.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-64325.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-9650.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-9650.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/al.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/al.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/align-330.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align-330.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/align-assign-mixed.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align-assign-mixed.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/align-star-amp-pos.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align-star-amp-pos.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/align_across_braces.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_across_braces.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/align_assign_func_proto.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_assign_func_proto.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/align_asterisk_after_type_cast.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_asterisk_after_type_cast.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/align_class-constr.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_class-constr.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/align_class.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_class.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/align_constr.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_constr.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/align_continuation_left_shift.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_continuation_left_shift.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/align_default_after_override.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_default_after_override.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/align_fcall.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_fcall.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/align_func_params.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_func_params.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/align_func_proto_thresh.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_func_proto_thresh.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/align_func_proto_thresh2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_func_proto_thresh2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/align_left_shift.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_left_shift.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/align_left_shift2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_left_shift2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/align_right_comment.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_right_comment.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/align_var_def_thresh.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_var_def_thresh.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/alt_tokens.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/alt_tokens.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/anonymous_enum.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/anonymous_enum.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/arith_vs_byref.cpp10
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/attribute_specifier_seqs.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/attribute_specifier_seqs.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/av.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/av.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bit-colon.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bit-colon.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bom.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bom.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bool.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bool.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/brace_brace_init_lst.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/brace_brace_init_lst.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/braced_init_list.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/braced_init_list.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/braced_init_template_decltype.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/braced_init_template_decltype.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/braces_align.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/braces_align.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/braces_empty.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/braces_empty.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1001.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1001.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1002.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1002.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1003.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1003.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1004.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1004.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1005.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1005.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1020.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1020.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1027.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1027.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1032.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1032.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1068.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1068.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1108.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1108.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1112.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1112.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1127.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1127.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1134.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1134.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1139.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1139.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1158.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1158.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1160.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1160.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1161.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1161.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1169.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1169.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1170.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1170.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1235.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1235.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1236.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1236.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1249.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1249.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1288.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1288.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1289.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1289.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1296.cpp7
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1315.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1315.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1321.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1321.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1324.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1324.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1338.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1338.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1340.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1340.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1346.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1346.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1349.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1349.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1395.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1395.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1402.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1402.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1403.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1403.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1432.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1432.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1439.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1439.cpp)0
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1452.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1452.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1462.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1462.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1607.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1607.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1649.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1649.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1689.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1689.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1691.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1691.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1717.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1717.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1758-f.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1758-f.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1758.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1758.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1854.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1854.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1862.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1862.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_2285.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_2285.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_2322.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_2322.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_2371.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_2371.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_2402.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_2402.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_2433_1.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_2433_1.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_2433_2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_2433_2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_33056.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_33056.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_472.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_472.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_481.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_481.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_484.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_484.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_485.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_485.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_488.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_488.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_495.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_495.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_612.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_612.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_631.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_631.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_633.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_633.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_634.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_634.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_643.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_643.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_651.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_651.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_653.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_653.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_654.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_654.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_657.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_657.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_662.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_662.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_663.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_663.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_664.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_664.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_666.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_666.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_670.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_670.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_670.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_670.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_671.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_671.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_858.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_858.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_902.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_902.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_1000.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_1000.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_197.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_197.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_322.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_322.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_323.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_323.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_359.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_359.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_405.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_405.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_409.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_409.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_411.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_411.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_478.cpp24
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_481.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_481.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_503.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_503.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_512.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_512.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_525.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_525.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_552.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_552.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_568.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_568.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_575.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_575.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_596.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_596.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_646.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_646.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_663.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_663.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_666.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_666.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_682.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_682.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_687.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_687.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_752.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_752.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_753.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_753.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_793.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_793.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_825.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_825.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_889.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_889.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_928.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_928.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_938.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_938.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_999.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_999.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_width.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_width.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/byref-2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/byref-2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/byref-3.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/byref-3.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/byref-4.cpp5
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/byref.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/byref.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/call_brace_init_lst.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/call_brace_init_lst.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/case-brace-remove.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/case-brace-remove.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/cast.cpp6
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/casts.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/casts.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/class-addr.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/class-addr.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/class-implementation.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/class-implementation.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/class-init.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/class-init.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/class.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/class.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/cmt-cpp-cont.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cmt-cpp-cont.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/cmt-reflow.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cmt-reflow.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/cmt_backslash_eol.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cmt_backslash_eol.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/cmt_convert_tab_to_spaces.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cmt_convert_tab_to_spaces.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/cmt_indent.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cmt_indent.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/cmt_indent_pp.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cmt_indent_pp.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/cmt_insert.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cmt_insert.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/cmt_right.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cmt_right.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/cmt_trailing_single_line_c_to_cpp.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cmt_trailing_single_line_c_to_cpp.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/comma.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/comma.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/comment-align-multiline.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/comment-align-multiline.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/comment-align.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/comment-align.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/const_throw.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/const_throw.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/constr_colon.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/constr_colon.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/constructor.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/constructor.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/conversion_operator.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/conversion_operator.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/cout.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cout.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/cpp17.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cpp17.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/cpp_move.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cpp_move.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/ctor-var.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/ctor-var.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/custom-open-2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/custom-open-2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/custom-open.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/custom-open.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/define-indentation.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/define-indentation.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/delete.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/delete.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/deref.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/deref.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/digraph.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/digraph.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/disable_macro.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/disable_macro.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/dont-detab-strings.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/dont-detab-strings.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/dont-process-defines.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/dont-process-defines.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/eat_blanks_after_codewidth.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/eat_blanks_after_codewidth.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/eigen.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/eigen.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/enum.cpp207
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/enum_class.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/enum_class.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/enum_comma.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/enum_comma.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/enum_comment_wrap.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/enum_comment_wrap.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/enum_shr.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/enum_shr.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/exception.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/exception.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/extern_c.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/extern_c.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/extern_func.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/extern_func.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/first_len_minimum.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/first_len_minimum.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/fix_for_relational_operators.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/fix_for_relational_operators.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/for_auto.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/for_auto.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/for_long.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/for_long.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/for_loop_head.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/for_loop_head.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/foreach.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/foreach.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/friends.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/friends.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/func-param-wrap-oc.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/func-param-wrap-oc.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/func_call.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/func_call.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/func_call_chain.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/func_call_chain.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/func_class.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/func_class.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/func_class.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/func_class.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/func_param.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/func_param.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/func_param_indent_leading_comma.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/func_param_indent_leading_comma.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/function-def.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/function-def.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/functype_param.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/functype_param.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/gcc_case_ellipsis.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/gcc_case_ellipsis.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/gh555.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/gh555.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/goto.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/goto.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/i1082.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1082.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/i1165.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1165.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/i1181.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1181.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/i1207.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1207.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/i1218.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1218.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/i1464.cpp3
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/i1466.cpp6
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/i1509.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1509.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/i1509_bug_1112_correction.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1509_bug_1112_correction.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/i1516.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1516.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/i1536.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1536.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/i1565.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1565.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/i1617.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1617.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/i1768.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1768.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/i2033.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i2033.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/i2116.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i2116.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/i683.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i683.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/if-constexpr.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/if-constexpr.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/if_chain_braces.cpp47
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/if_constexpr.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/if_constexpr.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/ifcomment.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/ifcomment.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent-c.cpp1084
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent-inside-ternary-operator.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent-inside-ternary-operator.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent-misc.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent-misc.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent-off.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent-off.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent_braces_no.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_braces_no.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent_comma_brace_func.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_comma_brace_func.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent_comma_brace_glob.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_comma_brace_glob.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent_comment_align_thresh.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_comment_align_thresh.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent_ctor_init.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_ctor_init.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent_ctor_members_twice.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_ctor_members_twice.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent_func_alias_prototype.cpp55
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent_namespace.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_namespace.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent_namespace2.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_namespace2.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent_namespace_inner_only.h8
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent_namespace_single_indent.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_namespace_single_indent.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent_off_after_return.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_off_after_return.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent_param.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_param.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent_paren_after_func_call.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_paren_after_func_call.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent_paren_after_func_decl.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_paren_after_func_decl.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent_paren_after_func_def.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_paren_after_func_def.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent_shift.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_shift.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent_switch_pp.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_switch_pp.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent_var_def.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_var_def.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent_var_def_cont.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_var_def_cont.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/init-list-call.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/init-list-call.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/init_align.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/init_align.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/initlist_leading_commas.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/initlist_leading_commas.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/interface-keyword-in-cpp.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/interface-keyword-in-cpp.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_1752.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_1752.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_1778.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_1778.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_1782.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_1782.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_1804.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_1804.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_1916.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_1916.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_1919.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_1919.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_1946.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_1946.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_1985.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_1985.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_2000.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_2000.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_2001.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_2001.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_2124-1.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_2124-1.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_2124-2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_2124-2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_2209-1.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_2209-1.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_2209-2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_2209-2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_2623.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_2623.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_3116-2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_3116-2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_3116.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_3116.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_3330.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_3330.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_3368.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_3368.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_3378.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_3378.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_523.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_523.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_547_for_each.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_547_for_each.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_564.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_564.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_574-i.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_574-i.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_574.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_574.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_624_angle.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_624_angle.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_633_typename.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_633_typename.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_672.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_672.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/kw_subst.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/kw_subst.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/kw_subst2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/kw_subst2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/lambda.cpp103
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/lambda2.cpp108
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/lambda_brace_list.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/lambda_brace_list.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/lambda_in_one_liner.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/lambda_in_one_liner.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/lambda_selfcalling.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/lambda_selfcalling.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/lineEndings-Mac.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/lineEndings-Mac.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/lineEndings-Unix.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/lineEndings-Unix.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/lineEndings-Win.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/lineEndings-Win.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/long_br_cmt.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/long_br_cmt.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/long_namespace.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/long_namespace.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/macro_spaces.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/macro_spaces.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/misc.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/misc.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/misc2.cpp59
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/misc3.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/misc3.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/misc4.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/misc4.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/misc5.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/misc5.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/misc6.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/misc6.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/mod_remove_empty_return-2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/mod_remove_empty_return-2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/mod_remove_empty_return.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/mod_remove_empty_return.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/ms-style-ref.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/ms-style-ref.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/multi_line.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/multi_line.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/namespace_namespace.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/namespace_namespace.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/new_op.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/new_op.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl-class.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl-class.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl-namespace.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl-namespace.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_assign_leave_one_liners.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_assign_leave_one_liners.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_before_after.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_before_after.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_before_brace_open_test.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_before_brace_open_test.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_before_func_body_def.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_before_func_body_def.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_before_struct_scoped_enum.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_before_struct_scoped_enum.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_before_struct_struct.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_before_struct_struct.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_brace_brace.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_brace_brace.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_fdef_brace_cond-f.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_fdef_brace_cond-f.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_fdef_brace_cond-fr.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_fdef_brace_cond-fr.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_fdef_brace_cond-r.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_fdef_brace_cond-r.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_fdef_brace_cond-rf.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_fdef_brace_cond-rf.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_for_leave_one_liners.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_for_leave_one_liners.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_func.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_func.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_func_call_empty.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_func_call_empty.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_func_call_paren.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_func_call_paren.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_func_call_paren_empty.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_func_call_paren_empty.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_func_decl.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_func_decl.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_func_def_paren_empty.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_func_def_paren_empty.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_func_paren_empty.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_func_paren_empty.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_func_scope_name.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_func_scope_name.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_func_type_name.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_func_type_name.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_inside_namespace.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_inside_namespace.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_max_blank_in_func.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_max_blank_in_func.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/noexcept.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/noexcept.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/not_lambda.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/not_lambda.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/op_sym_empty.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/op_sym_empty.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/operator.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/operator.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/operator_proto.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/operator_proto.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/out-668.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/out-668.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/output.cpp657
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/override_virtual.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/override_virtual.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/parameter-packs.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/parameter-packs.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/patch_32.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/patch_32.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/pos_assign.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/pos_assign.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/pos_bool_in_template.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/pos_bool_in_template.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/pos_shift.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/pos_shift.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/pp-define-indent.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/pp-define-indent.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/pp-pragma.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/pp-pragma.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/pp_indent_brace.cpp24
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/pp_indent_case.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/pp_indent_case.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/pp_indent_extern.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/pp_indent_extern.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/pp_indent_func_def.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/pp_indent_func_def.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/pp_multi_comment.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/pp_multi_comment.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/proto-wrap.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/proto-wrap.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/ptr-star.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/ptr-star.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/qt-1.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/qt-1.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/qtargs.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/qtargs.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/region.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/region.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/return_braced_init.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/return_braced_init.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/return_init_list.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/return_init_list.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/returns.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/returns.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sef.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sef.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/semi.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/semi.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/semicolons.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/semicolons.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sf.2886991.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sf.2886991.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sf.3266678.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sf.3266678.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sf.3315874.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sf.3315874.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sf557.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sf557.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sf562.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sf562.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sf567.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sf567.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sf574.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sf574.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sf583.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sf583.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sf593.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sf593.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sim.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sim.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_after_angle.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_after_angle.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_after_constr_colon.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_after_constr_colon.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_after_decltype.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_after_decltype.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_after_type.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_after_type.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_angle_paren.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_angle_paren.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_arith_additive.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_arith_additive.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_balance_nested_parens.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_balance_nested_parens.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_before_byref_func.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_before_byref_func.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_before_case_colon.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_before_case_colon.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_before_constr_colon.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_before_constr_colon.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_before_tr_emb_cmt_input.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_before_tr_emb_cmt_input.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_brace_brace.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_brace_brace.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_brace_catch.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_brace_catch.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_cmt_cpp_region.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_cmt_cpp_region.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_cmt_cpp_start.cc (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_cmt_cpp_start.cc)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_cond_question.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_cond_question.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_cparen_oparen.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_cparen_oparen.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_cpp_lambda_fparen.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_cpp_lambda_fparen.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_decltype.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_decltype.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_endif_cmt.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_endif_cmt.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_enum_assign.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_enum_assign.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_enum_colon.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_enum_colon.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_func_call_paren.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_func_call_paren.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_inside_braces_enum.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_inside_braces_enum.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_not_not.cpp3
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_paren_brace.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_paren_brace.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_skip_vbrace_tokens.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_skip_vbrace_tokens.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_throw_paren.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_throw_paren.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_type_func.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_type_func.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/squeeze_ifdef.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/squeeze_ifdef.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/static.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/static.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/stdcall.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/stdcall.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/string_replace_tab_chars.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/string_replace_tab_chars.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/strings.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/strings.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/tab-0.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/tab-0.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/tab-1.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/tab-1.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/templ_class.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/templ_class.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/templates.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/templates.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/templates2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/templates2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/templates3.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/templates3.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/templates4.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/templates4.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/toggle_processing_cmt.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/toggle_processing_cmt.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/toggle_processing_cmt2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/toggle_processing_cmt2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/trailing_return.cpp93
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/trailing_return_byref_ptr.cpp84
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/try-catch-nl.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/try-catch-nl.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/type_brace_init_lst.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/type_brace_init_lst.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/uniform_initialization.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/uniform_initialization.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/using-alias-in-define.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/using-alias-in-define.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/var_def_gap.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/var_def_gap.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/variadic-template.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/variadic-template.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/wacky-template.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/wacky-template.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/1822.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/1822.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/615_nested-usings.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/615_nested-usings.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/620_getset-brace.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/620_getset-brace.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/621_this-spacing.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/621_this-spacing.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/625_where-constraints.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/625_where-constraints.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/630_bad-new-init-semicolon-removal.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/630_bad-new-init-semicolon-removal.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/Issue_2705.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/Issue_2705.cs)0
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-11662.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-11662.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-11993.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-11993.cs)0
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-12303.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-12303.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-1288.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-1288.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-1338.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-1338.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-1343.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-1343.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-1345.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-1345.cs)0
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-13955.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-13955.cs)0
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-14131.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-14131.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-17253.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-17253.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-18437.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-18437.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-18777.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-18777.cs)0
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-18780.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-18780.cs)0
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-18829.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-18829.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-1919.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-1919.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-19644.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-19644.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-1975.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-1975.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-1977.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-1977.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-1978.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-1978.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-19895.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-19895.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-2007.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-2007.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-2008.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-2008.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-2020.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-2020.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-2021.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-2021.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-21730.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-21730.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-2505.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-2505.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-2506.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-2506.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-2684.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-2684.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-2685.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-2685.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-29933.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-29933.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-30498_2.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-30498_2.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-3083.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-3083.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-32658.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-32658.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-3484.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-3484.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-36862.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-36862.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-37241.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-37241.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-40685.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-40685.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-58354.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-58354.cs)0
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-9917.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-9917.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/add-nl-before-namespace.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/add-nl-before-namespace.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/bug_1591.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/bug_1591.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/bug_1620.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/bug_1620.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/bug_1637.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/bug_1637.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/bug_1650.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/bug_1650.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/bug_600.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/bug_600.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/bug_620.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/bug_620.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/bug_i_679.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/bug_i_679.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/bug_i_935.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/bug_i_935.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/cast.cs7
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/cmt_backslash_eol.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/cmt_backslash_eol.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/comma.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/comma.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/delegate.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/delegate.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/exception-filters.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/exception-filters.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/fncall_as_ctor_in_attr.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/fncall_as_ctor_in_attr.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/generics.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/generics.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/getset.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/getset.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/gs.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/gs.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/ifcolalign.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/ifcolalign.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/ifcomment.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/ifcomment.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/indent-multistring-coulmn1.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/indent-multistring-coulmn1.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/logger.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/logger.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/mdarray_space.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/mdarray_space.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/misc-failures.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/misc-failures.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/mod_full_brace_nl_block_rem_mlcond.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/mod_full_brace_nl_block_rem_mlcond.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/mod_full_paren_if_bool.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/mod_full_paren_if_bool.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/new-constraint-paren-space.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/new-constraint-paren-space.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/nullable_prop.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/nullable_prop.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/oneline_property.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/oneline_property.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/operator-null-conditional.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/operator-null-conditional.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/operator_null-coalescing-assignment.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/operator_null-coalescing-assignment.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/preserveTabs.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/preserveTabs.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/property.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/property.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/region.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/region.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/remove_semi.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/remove_semi.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/sf607.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/sf607.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/sf628.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/sf628.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/simple.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/simple.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/sort_using.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/sort_using.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/sort_using_categ.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/sort_using_categ.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/sp_between_new_paren.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/sp_between_new_paren.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/squeeze-paren-close-Option.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/squeeze-paren-close-Option.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/string_multi.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/string_multi.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/strings.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/strings.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/tcf.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/tcf.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/unsafe.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/unsafe.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/utf16be.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/utf16be.cs)bin200 -> 200 bytes
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/utf16be_no_bom.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/utf16be_no_bom.cs)bin198 -> 198 bytes
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/utf16le.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/utf16le.cs)bin200 -> 200 bytes
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/utf16le_no_bom.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/utf16le_no_bom.cs)bin198 -> 198 bytes
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/var-member.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/var-member.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/verbatim_strings.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/verbatim_strings.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/when.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/when.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/1438.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/1438.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/HashMap.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/HashMap.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/Lexer.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/Lexer.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/bug-indent.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/bug-indent.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/casts.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/casts.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/const.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/const.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/d_sp_paren.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/d_sp_paren.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/delegate.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/delegate.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/enum.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/enum.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/extern_.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/extern_.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/funcfunc.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/funcfunc.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/imports.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/imports.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/invariant.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/invariant.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/numbers.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/numbers.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/sort_import.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/sort_import.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/square_indent_tab.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/square_indent_tab.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/static_if.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/static_if.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/static_if_in_struct.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/static_if_in_struct.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/strings.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/strings.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/template.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/template.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/template_spacing000.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/template_spacing000.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/template_spacing001.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/template_spacing001.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/template_use.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/template_use.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/tst01.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/tst01.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/tst02.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/tst02.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/tst03.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/tst03.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/type_spacing000.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/type_spacing000.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/vbraces000.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/vbraces000.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/vbraces001.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/vbraces001.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/vbraces002.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/vbraces002.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/volatile-1.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/volatile-1.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/volatile-2.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/volatile-2.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/volatile-3.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/volatile-3.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/volatile.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/volatile.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/wysiwyg_strings.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/wysiwyg_strings.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/ecma/example-1.es (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/ecma/example-1.es)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/Issue_1122.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/Issue_1122.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/Issue_1124.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/Issue_1124.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/Issue_1845.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/Issue_1845.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/Issue_670.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/Issue_670.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/Java8DoubleColon.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/Java8DoubleColon.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/annotation1.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/annotation1.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/annotation2.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/annotation2.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/annotation3.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/annotation3.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/assert.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/assert.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/cast.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/cast.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/double_brace.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/double_brace.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/doxy-javadoc-alignment.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/doxy-javadoc-alignment.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/foreach.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/foreach.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/generics.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/generics.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/generics_return_type.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/generics_return_type.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/generics_wildcard.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/generics_wildcard.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/i1121.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/i1121.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/issue_672.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/issue_672.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/leading-tabs-for-java-lambda.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/leading-tabs-for-java-lambda.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/long_cl_cmt.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/long_cl_cmt.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/nl_before_ignore_after_case.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/nl_before_ignore_after_case.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/sf567.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/sf567.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/sp_after_angle.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/sp_after_angle.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/sp_after_for_colon.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/sp_after_for_colon.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/sp_before_byref.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/sp_before_byref.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/sp_this_paren.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/sp_this_paren.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/synchronized.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/synchronized.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/try.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/try.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/variable_aligns.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/variable_aligns.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/1927.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/1927.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/Declarations.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/Declarations.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/Fraction.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/Fraction.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/Fraction.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/Fraction.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/Issue_2172.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/Issue_2172.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/Issue_2289.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/Issue_2289.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/Issue_681.oc (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/Issue_681.oc)0
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/UNI-11095.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-11095.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/UNI-1333.mm15
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/align-objc-like-xcode.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/align-objc-like-xcode.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/argtypes.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/argtypes.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/asm.h.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/asm.h.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/attribute_specifier_seqs.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/attribute_specifier_seqs.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/available.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/available.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/block_in_method.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/block_in_method.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/block_literal_protocol.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/block_literal_protocol.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/block_pointer.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/block_pointer.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/blocks.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/blocks.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/blocks_align.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/blocks_align.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/blocks_align2.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/blocks_align2.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/box.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/box.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/boxed_receiver.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/boxed_receiver.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/bug_1366.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/bug_1366.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/bug_167.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/bug_167.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/bug_1674.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/bug_1674.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/bug_1683.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/bug_1683.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/bug_340.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/bug_340.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/bug_404.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/bug_404.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/bug_497.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/bug_497.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/bug_841.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/bug_841.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/bug_i_125-412.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/bug_i_125-412.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/bug_i_408.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/bug_i_408.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/bug_i_477.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/bug_i_477.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/c-cpp-oc-wrapper.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/c-cpp-oc-wrapper.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/cast.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/cast.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/casting.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/casting.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/chunk_ends_type1.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/chunk_ends_type1.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/chunk_ends_type2.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/chunk_ends_type2.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/chunk_ends_type3.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/chunk_ends_type3.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/chunk_ends_type4.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/chunk_ends_type4.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/cmt_insert.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/cmt_insert.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/cmt_insert2.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/cmt_insert2.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/code_placeholder.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/code_placeholder.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/complex_method.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/complex_method.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/definesalign.h.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/definesalign.h.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/delete-space-oc.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/delete-space-oc.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/double-indent-objc-dict.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/double-indent-objc-dict.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/double_angle_space.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/double_angle_space.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/exceptions.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/exceptions.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/extern-c-attribute.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/extern-c-attribute.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/for.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/for.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/for2.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/for2.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/func-param-wrap-oc.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/func-param-wrap-oc.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/func_def.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/func_def.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/gh137.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/gh137.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/gh293.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/gh293.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/gh511.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/gh511.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/i1213.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/i1213.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/indent-inside-ternary-operator.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/indent-inside-ternary-operator.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/indent-objc-block.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/indent-objc-block.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/indent_boxed.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/indent_boxed.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/indent_oc_inside_msg_sel.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/indent_oc_inside_msg_sel.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/indent_single_newline.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/indent_single_newline.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/inttypes.h.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/inttypes.h.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/issue_2629.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/issue_2629.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/issue_2631.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/issue_2631.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/issue_2675.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/issue_2675.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/issue_2722.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/issue_2722.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/issue_2724.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/issue_2724.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/issue_2727.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/issue_2727.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/issue_3031.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/issue_3031.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/kw.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/kw.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/literals.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/literals.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/macro-close-brace.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/macro-close-brace.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/main.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/main.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/method_ends_semicolon.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/method_ends_semicolon.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/misc.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/misc.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/more_blocks.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/more_blocks.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/more_blocks_2.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/more_blocks_2.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/msg.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/msg.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/msg_align.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/msg_align.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/negative_value.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/negative_value.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/nelem.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/nelem.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/newlines.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/newlines.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/nl_func_call_args_multi_line_ignore_closures.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/nl_func_call_args_multi_line_ignore_closures.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/ns_enum-i.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/ns_enum-i.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/ns_enum.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/ns_enum.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/objc.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/objc.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/oc-split.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/oc-split.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/oc_cond_colon.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/oc_cond_colon.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/oc_msg_in_pp.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/oc_msg_in_pp.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/pp-ignore.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/pp-ignore.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/pp_bool.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/pp_bool.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/properties.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/properties.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/protocol.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/protocol.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/react_native.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/react_native.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/real_world_file.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/real_world_file.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/receiver.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/receiver.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/return_type.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/return_type.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/selector.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/selector.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/sort_import.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/sort_import.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/sort_import_group.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/sort_import_group.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/sp_after_angle.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/sp_after_angle.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/sp_after_oc_msg_receiver.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/sp_after_oc_msg_receiver.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/sp_before_oc_proto_list.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/sp_before_oc_proto_list.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/sp_cond_ternary_short.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/sp_cond_ternary_short.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/sp_inside_braces_oc_dict.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/sp_inside_braces_oc_dict.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/sp_oc_boxed.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/sp_oc_boxed.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/sp_oc_catch.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/sp_oc_catch.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/sp_oc_classname_paren-r.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/sp_oc_classname_paren-r.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/sp_oc_synchronized.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/sp_oc_synchronized.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/string.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/string.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/ternary.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/ternary.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/typeof.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/typeof.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/pawn/Issue_2586.pawn (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/Issue_2586.pawn)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/pawn/Issue_2665.pawn (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/Issue_2665.pawn)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/pawn/comment.p (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/comment.p)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/pawn/crusty_ex-1.sma (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/crusty_ex-1.sma)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/pawn/enum.pawn (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/enum.pawn)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/pawn/functions.pawn (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/functions.pawn)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/pawn/gh419.pawn (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/gh419.pawn)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/pawn/preproc.pawn (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/preproc.pawn)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/pawn/rpn_calc.pawn (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/rpn_calc.pawn)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/pawn/str-escape.p (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/str-escape.p)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/pawn/switch-vsemi.sma (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/switch-vsemi.sma)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/pawn/tags.pawn (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/tags.pawn)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/pawn/test1.pawn (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/test1.pawn)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/pawn/traffic.p (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/traffic.p)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/pawn/unbraced.p (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/unbraced.p)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/sql/issue_527.sqc (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/sql/issue_527.sqc)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/sql/mysql.sqc (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/sql/mysql.sqc)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/sql/sta-select.sqc (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/sql/sta-select.sqc)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/vala/Issue_2090.vala (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/vala/Issue_2090.vala)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/vala/Issue_2270.vala (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/vala/Issue_2270.vala)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/vala/advanced.vala (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/vala/advanced.vala)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/vala/cast.vala7
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/vala/gh287.vala (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/vala/gh287.vala)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/vala/list.vala (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/vala/list.vala)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/vala/nullable.vala14
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/vala/preproc.vala (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/vala/preproc.vala)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/vala/verbatim_str.vala (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/vala/verbatim_str.vala)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/vala/verbatim_str2.vala (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/vala/verbatim_str2.vala)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/java.test (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/java.test)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/objective-c.test197
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/pawn.test (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/pawn.test)0
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/run_format_tests.py (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/run_format_tests.py)0
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/run_sources_tests.py (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/run_sources_tests.py)0
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/run_test.py (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/run_test.py)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/staging.test (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/staging.test)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/test_uncrustify/__init__.py (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/test_uncrustify/__init__.py)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/test_uncrustify/ansicolor.py (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/test_uncrustify/ansicolor.py)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/test_uncrustify/config.py (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/test_uncrustify/config.py)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/test_uncrustify/failure.py (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/test_uncrustify/failure.py)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/test_uncrustify/selector.py (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/test_uncrustify/selector.py)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/test_uncrustify/test.py (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/test_uncrustify/test.py)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/test_uncrustify/utilities.py210
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/tests.vpj (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/tests.vpj)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/vala.test17
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/uncrustify.vpj130
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.75.0/uncrustify.vpw (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.74.0/uncrustify.vpw)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity_0.74.0.orig.tar.gzbin1565507 -> 0 bytes
4788 files changed, 124293 insertions, 117131 deletions
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/.github/workflows/uncrustify_test.yml b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/.github/workflows/uncrustify_test.yml
deleted file mode 100644
index 8d2198ab..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/.github/workflows/uncrustify_test.yml
+++ /dev/null
@@ -1,32 +0,0 @@
----
-
-name: uncrustify_test
-on: [push]
-jobs:
- check-uncrustify:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v2
- - name: cmake-part-and-tests
- env:
- BADGE: linux
- run: mkdir build;
- cd build;
- cmake -DCMAKE_BUILD_TYPE=Release ..;
- make;
- ../scripts/run_ctest.py
-
-
- debug-ninja-uncrustify:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v2
- - uses: seanmiddleditch/gha-setup-ninja@master
- - name: cmake-part-and-tests
- env:
- BADGE: linux
- run: mkdir build;
- cd build;
- cmake -GNinja -DCMAKE_BUILD_TYPE=Debug ..;
- ninja;
- ../scripts/run_ctest.py
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/.gitignore b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/.gitignore
deleted file mode 100644
index 9fb21e7e..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/.gitignore
+++ /dev/null
@@ -1,64 +0,0 @@
-# "Default" build tree
-/build/
-
-# PyCharm help directory
-venv/
-
-# Compiled Python code
-*.pyc
-
-# Testing framework (if run_tests.py is run from the source tree)
-results/
-results_2/
-
-# Static analysis and code coverage
-/tests/pclint/
-/cov-int
-gcov_test/
-
-# SlickEdit workspace history and tag files
-*.vtg
-*.vpwh*
-
-# for projects that use Waf for building: http://code.google.com/p/waf/
-.waf-*
-.lock*
-waf*
-
-# KDevelop
-*.kdev4
-.kdev4/
-
-# XCode
-*.xcodeproj/*.pbxuser
-*.xcodeproj/*.perspectivev3
-*.xcodeproj/*.mode1v3
-*.xcodeproj/*.tm_build_errors
-*.tmproj
-*.xcworkspace
-xcuserdata
-
-# Sublime
-*.sublime-workspace
-
-# Eclipse Configuration
-.cproject
-.project
-.settings
-
-# backup files
-# texteditor (kate, etc.)
-*~
-# git mergetool.keepBackup or KDiff3
-*.orig
-
-# uncrustified files
-*.uncrustify
-
-
-# CLion
-.idea/
-cmake-build-*/
-
-# Vim
-*.swp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/AUTHORS b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/AUTHORS
deleted file mode 100644
index b013baac..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/AUTHORS
+++ /dev/null
@@ -1,166 +0,0 @@
-Author:
-2005 - 2016 : Ben Gardner
-
-Maintenance:
-Guy Maurel
-Matthew Woehlke
-
-until 2020-11-05:
-Other collaborators:
-Alan Fineberg
-Alexander GQ Gerasiov
-Alex Henrie
-André Berg
-Andrei Alexandrescu
-Andrey Starodubtsev
-Anirban Pramanick
-Antti Tapaninen
-Arne Forlie
-Arseniy Shestakov
-asobhy
-atauzki
-Aurélien Gâteau
-Benio
-Ben Iofel
-Ben Mayo
-Beren Minor
-Bi-Ruei, Chiu
-Biswa96
-Biswapriyo Nath
-B. Kevin Hardman
-Bogdan Popescu
-Brandon Slack
-Brendan Long
-CharlieYJH
-Chris Lalancette
-Clemens Rabe
-Clint Lawrence
-Code Able
-Cody Schafer
-Corentin Noël
-Daniel Chumak
-Dan Rose
-Dave Lee
-David Catmull
-David E. O'Brien
-David Lechner
-David Schaefgen
-Dirk Thomas
-Dittrich, Rico
-Dmitry Marakasov
-Dmitry Povolotsky
-Dmytro Povolotskyi
-Dundar Göc
-Dženan Zukić
-Eism
-Emerson Knapp
-Emmanuel Christophe
-Ethan Gao
-Florin Pop
-Gary Ash
-Ger Hobbelt
-Hackerpilot
-Hannes Schmidt
-hghdev
-Huang-Ming Huang
-Husk3r
-Ilya Lyubimov
-Ingo Brückl
-Ivan Nazarenko
-Ivan Romanov
-Jakub Schmidtke
-Jan Weiß
-Jason
-JavDevGames
-Jeremy H
-Jeremy T Hilliker
-Jim Meyering
-Jiri Hruska
-Joel Ostraat
-Joergen Ibsen
-Johnny Oskarsson
-Jonas Hurrelmann
-Joshua Gross
-Joshua Parker
-Julian Picht
-Kalle Raiskila
-Keepun
-krys
-Laurent Tréguier
-Lauri Kasanen
-lbmaian
-Leon Breedt
-Lorenz Haas
-Lykurg
-Maciej Bogusz
-Marco Stephan
-Marek Fort
-Marius Zwicker
-Mark Stegeman
-Markus Geimer
-Martin Simonovsky
-Martin Storsjo
-Matthew McDole
-Matthew Woehlke
-Maxim Mikityanskiy
-Max Smolens
-MeXx
-Michaël Peeters
-Michele Calgaro
-Mihai Popescu
-Mike
-Mike Gelfand
-Mirko König
-mjbogusz
-MrTheMake
-Nate
-neok-m4700
-Nico Decker
-Oleg Liatte
-Oleg Smolsky
-Owen Rudge
-Pat Notz
-Patrick Rohr
-Paul Cercueil
-Paul Smith
-Pavel Geiger
-Paweł Benetkiewicz
-PerfectCarl
-Peter Bruin
-Peter Hartley
-Peter Jonas
-Peter Kolbus
-Peter Waller
-Piet Van Reepingen
-Randolph R. Settgast
-Randolph Settgast
-RaveTheTadpole
-Roland Schulz
-Ryan Maxwell
-Samish Chandra Kolli
-Samish Kolli
-Scott Bilas
-Sebastian Andersson
-S. Gilles
-Shazron Abdullah
-Siddharth Kannan
-Slávek Banko
-Spark-NF
-Stefan Koch
-Stefan Nunninger
-Stephen Gilles
-Steven Lee
-Suhaib Ishaque
-t-bltg
-Tim Hütz
-Timotheus Pokorra
-Todd Richmond
-Twigz
-U-RDEC\ParkerJS
-Vadim Zeitlin
-Viktor Kireev
-Vincent Rouillé
-Vojtěch Balík
-Vyacheslav Shegai
-Waldir Pimenta
-Yannick Bühler
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/CMakeLists.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/CMakeLists.txt
deleted file mode 100644
index 1814a823..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/CMakeLists.txt
+++ /dev/null
@@ -1,554 +0,0 @@
-cmake_minimum_required(VERSION 3.2)
-
-project(uncrustify)
-
-if("${PROJECT_SOURCE_DIR}" STREQUAL "${PROJECT_BINARY_DIR}")
- message(FATAL_ERROR "
- In-source builds are not supported, please remove the `CMakeFiles'
- folder and `CMakeCache.txt', and create a folder for the build:
- mkdir build; cd build; cmake ..
- ")
-endif()
-
-include(CheckCXXCompilerFlag)
-include(CheckIncludeFileCXX)
-include(CheckSymbolExists)
-include(CheckCXXSymbolExists)
-include(CheckTypeSize)
-include(CTest)
-
-if( ${CMAKE_VERSION} VERSION_LESS "3.12" )
- find_package( PythonInterp )
- if( NOT PYTHON_EXECUTABLE )
- message( FATAL_ERROR "Python is required, but was not found on your system" )
- endif()
- else( )
- find_package(Python3 REQUIRED)
- set(PYTHON_EXECUTABLE ${Python3_EXECUTABLE})
-endif()
-
-#
-# Check compiler flags
-#
-if(MSVC)
- add_definitions(/D_CRT_SECURE_NO_WARNINGS /D_CRT_NONSTDC_NO_WARNINGS /wd4267)
- add_definitions(/utf-8)
-elseif(CMAKE_COMPILER_IS_GNUCXX)
- set(gcc_warning_flags
- -Wall
- -Wextra
- -Wshadow
- -Wpointer-arith
- -Wcast-qual
- -Wcast-align
- -Wc++11-extensions
- )
- foreach(flag ${gcc_warning_flags})
- string(REGEX REPLACE "[^a-zA-Z0-9]+" "_" flag_var "CXXFLAG_${flag}")
- CHECK_CXX_COMPILER_FLAG("${flag}" ${flag_var})
- if(${flag_var})
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${flag}")
- endif()
- unset(flag_var)
- endforeach()
- if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5)
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-missing-field-initializers")
- endif()
- unset(gcc_warning_flags)
-elseif(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
-endif()
-
-set(CMAKE_CXX_STANDARD 11)
-set(CMAKE_CXX_STANDARD_REQUIRED YES)
-
-if(ENABLE_SANITIZER)
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O1 -fno-omit-frame-pointer -fsanitize=${ENABLE_SANITIZER}")
-endif()
-
-#set(UNCRUSTIFY_SEPARATE_TESTS "True")
-
-include_directories(
- ${PROJECT_BINARY_DIR}/src
- ${PROJECT_SOURCE_DIR}/src
- ${PROJECT_BINARY_DIR}
-)
-
-#
-# Determine config
-#
-if(WIN32)
- # Windows builds use src/windows_compat.h instead of config.h
-else()
- # Generate config.h
- set(avail_headers "")
-
- set(headers
- inttypes.h
- memory.h
- stdint.h
- stdlib.h
- strings.h
- string.h
- sys/stat.h
- sys/types.h
- unistd.h
- utime.h
- )
- foreach(header ${headers})
- string(TOUPPER "${header}" header_uc)
- string(REGEX REPLACE "[^A-Z0-9_]" "_" include_var "HAVE_${header_uc}")
- check_include_file_cxx("${header}" ${include_var})
- if(${include_var})
- list(APPEND avail_headers ${header})
- endif()
- unset(include_var)
- unset(header_uc)
- endforeach()
- unset(headers)
-
- check_include_file("stdbool.h" HAVE_STDBOOL_H)
-
- set(symbols
- memset
- strcasecmp
- strchr
- strdup
- strerror
- strtol
- strtoul
- )
- foreach(symbol ${symbols})
- string(TOUPPER "${symbol}" symbol_uc)
- string(REGEX REPLACE "[^A-Z0-9_]" "_" symbol_var "HAVE_${symbol_uc}")
- check_cxx_symbol_exists("${symbol}" "${avail_headers}" ${symbol_var})
- unset(symbol_var)
- unset(symbol_uc)
- endforeach()
- unset(symbols)
-
- unset(avail_headers)
-
- check_type_size(_Bool _BOOL LANGUAGE C)
-
- configure_file(src/config.h.in config.h @ONLY)
-endif()
-
-#
-# Generate uncrustify_version.h
-#
-
-set(UNCRUSTIFY_VERSION "0.74.0_f")
-
-option(NoGitVersionString "Do not use make_version.py and git to build a version string" OFF)
-if(NoGitVersionString)
- configure_file(src/uncrustify_version.h.in uncrustify_version.h @ONLY)
- add_custom_target(generate_version_header) # Dummy target
-else()
- # Add target to generate version header;
- # do this every build to ensure git SHA is up to date
- add_custom_target(generate_version_header
- BYPRODUCTS "${PROJECT_BINARY_DIR}/uncrustify_version.h"
- COMMAND
- ${CMAKE_COMMAND}
- -D PYTHON_EXECUTABLE:STRING=${PYTHON_EXECUTABLE}
- -D SOURCE_DIR:PATH="${PROJECT_SOURCE_DIR}"
- -D INPUT:PATH="${PROJECT_SOURCE_DIR}/src/uncrustify_version.h.in"
- -D OUTPUT:PATH="${PROJECT_BINARY_DIR}/uncrustify_version.h"
- -D UNCRUSTIFY_VERSION:STRING="${UNCRUSTIFY_VERSION}"
- -P ${PROJECT_SOURCE_DIR}/cmake/GenerateVersionHeader.cmake
- COMMENT "Generating version header"
- )
- set_source_files_properties(
- "${PROJECT_BINARY_DIR}/uncrustify_version.h"
- PROPERTIES GENERATED TRUE
- )
-endif()
-
-#
-# Generate token_names.h
-#
-add_custom_command(
- OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/token_names.h"
- COMMAND ${CMAKE_COMMAND}
- "-Dsrc_file=${PROJECT_SOURCE_DIR}/src/token_enum.h"
- "-Ddst_file=${CMAKE_CURRENT_BINARY_DIR}/token_names.h"
- -P "${PROJECT_SOURCE_DIR}/cmake/GenerateTokenNames.cmake"
- MAIN_DEPENDENCY src/token_enum.h
- COMMENT "Generating token_names.h"
-)
-
-# Set up commands for generated source files
-function(py_gen OUTPUT SCRIPT INPUT)
- set(out "${PROJECT_BINARY_DIR}/src/${OUTPUT}")
- set(deps "${PROJECT_SOURCE_DIR}/src/${INPUT}")
- get_filename_component(outdir "${out}" DIRECTORY)
- foreach(arg IN LISTS ARGN)
- if (IS_ABSOLUTE "${arg}")
- list(APPEND deps "${arg}")
- else()
- list(APPEND deps "${PROJECT_SOURCE_DIR}/src/${arg}")
- endif()
- endforeach()
-
- add_custom_command(
- OUTPUT "${out}"
- COMMAND ${CMAKE_COMMAND} -E make_directory "${outdir}"
- COMMAND ${PYTHON_EXECUTABLE}
- "${PROJECT_SOURCE_DIR}/scripts/${SCRIPT}"
- "${out}"
- ${deps}
- DEPENDS ${deps} "${PROJECT_SOURCE_DIR}/scripts/${SCRIPT}"
- MAIN_DEPENDENCY src/${INPUT}
- COMMENT "Generating ${OUTPUT}"
- )
-endfunction()
-
-py_gen(punctuator_table.h
- make_punctuator_table.py
- symbols_table.h
-)
-
-py_gen(options.cpp
- make_options.py
- options.h
- options.cpp.in
-)
-
-py_gen(option_enum.h
- make_option_enum.py
- option.h
- option_enum.h.in
-)
-
-py_gen(option_enum.cpp
- make_option_enum.py
- option.h
- option_enum.cpp.in
-)
-
-py_gen(../etc/uncrustify.xml
- make_katehl.py
- ../etc/uncrustify.xml.in
- "${PROJECT_BINARY_DIR}/uncrustify_version.h"
- options.h
- option.h
- token_enum.h
-)
-
-#
-# Uncrustify
-#
-set(uncrustify_sources
- src/align_add.cpp
- src/align_asm_colon.cpp
- src/align_assign.cpp
- src/align.cpp
- src/align_eigen_comma_init.cpp
- src/align_func_params.cpp
- src/align_func_proto.cpp
- src/align_init_brace.cpp
- src/align_left_shift.cpp
- src/align_log_al.cpp
- src/align_nl_cont.cpp
- src/align_oc_decl_colon.cpp
- src/align_oc_msg_colons.cpp
- src/align_oc_msg_spec.cpp
- src/align_preprocessor.cpp
- src/align_same_func_call_params.cpp
- src/align_stack.cpp
- src/align_struct_initializers.cpp
- src/align_tab_column.cpp
- src/align_tools.cpp
- src/align_trailing_comments.cpp
- src/align_typedefs.cpp
- src/align_var_def_brace.cpp
- src/args.cpp
- src/backup.cpp
- src/brace_cleanup.cpp
- src/braces.cpp
- src/calculate_closing_brace_position.cpp
- src/chunk_list.cpp
- src/ChunkStack.cpp
- src/combine.cpp
- src/combine_fix_mark.cpp
- src/combine_labels.cpp
- src/combine_tools.cpp
- src/combine_skip.cpp
- src/compat_posix.cpp
- src/compat_win32.cpp
- src/cs_top_is_question.cpp
- src/detect.cpp
- src/enum_cleanup.cpp
- src/EnumStructUnionParser.cpp
- src/EnumStructUnionParser.h
- src/flag_braced_init_list.cpp
- src/flag_decltype.cpp
- src/flag_parens.cpp
- src/frame_list.cpp
- src/indent.cpp
- src/keywords.cpp
- src/lang_pawn.cpp
- src/language_tools.cpp
- src/logger.cpp
- src/logmask.cpp
- src/log_rules.cpp
- src/md5.cpp
- src/newlines.cpp
- src/option.cpp
- src/options_for_QT.cpp
- src/output.cpp
- src/parameter_pack_cleanup.cpp
- src/parens.cpp
- src/parent_for_pp.cpp
- src/ParseFrame.cpp
- src/pcf_flags.cpp
- src/punctuators.cpp
- src/quick_align_again.cpp
- src/remove_duplicate_include.cpp
- src/remove_extra_returns.cpp
- src/semicolons.cpp
- src/sorting.cpp
- src/space.cpp
- src/tokenize_cleanup.cpp
- src/tokenize.cpp
- src/uncrustify.cpp
- src/uncrustify_emscripten.cpp
- src/uncrustify_types.cpp
- src/unc_text.cpp
- src/unc_tools.cpp
- src/unicode.cpp
- src/universalindentgui.cpp
- src/width.cpp
- ${PROJECT_BINARY_DIR}/src/options.cpp
- ${PROJECT_BINARY_DIR}/src/option_enum.cpp
-)
-
-set(uncrustify_headers
- src/add_space_table.h
- src/align_add.h
- src/align_asm_colon.h
- src/align_assign.h
- src/align_func_params.h
- src/align_func_proto.h
- src/align.h
- src/align_eigen_comma_init.h
- src/align_init_brace.h
- src/align_left_shift.h
- src/align_log_al.h
- src/align_nl_cont.h
- src/align_oc_decl_colon.h
- src/align_oc_msg_colons.h
- src/align_oc_msg_spec.h
- src/align_preprocessor.h
- src/align_same_func_call_params.h
- src/align_stack.h
- src/align_struct_initializers.h
- src/align_tab_column.h
- src/align_tools.h
- src/align_trailing_comments.h
- src/align_typedefs.h
- src/align_var_def_brace.h
- src/args.h
- src/backup.h
- src/base_types.h
- src/brace_cleanup.h
- src/braces.h
- src/calculate_closing_brace_position.h
- src/char_table.h
- src/chunk_list.h
- src/ChunkStack.h
- src/combine.h
- src/combine_fix_mark.h
- src/combine_labels.h
- src/combine_skip.h
- src/combine_tools.h
- src/compat.h
- src/cs_top_is_question.h
- src/detect.h
- src/enum_cleanup.h
- src/enum_flags.h
- src/error_types.h
- src/flag_braced_init_list.h
- src/flag_decltype.h
- src/flag_parens.h
- src/frame_list.h
- src/indent.h
- src/keywords.h
- src/lang_pawn.h
- src/language_tools.h
- src/ListManager.h
- src/logger.h
- src/log_levels.h
- src/logmask.h
- src/log_rules.h
- src/md5.h
- src/newlines.h
- src/option.h
- src/options_for_QT.h
- src/options.h
- src/output.h
- src/parameter_pack_cleanup.h
- src/parens.h
- src/parent_for_pp.h
- src/ParseFrame.h
- src/pcf_flags.h
- src/prototypes.h
- src/punctuators.h
- src/quick_align_again.h
- src/remove_duplicate_include.h
- src/remove_extra_returns.h
- src/semicolons.h
- src/sorting.h
- src/space.h
- src/symbols_table.h
- src/token_enum.h
- src/tokenize_cleanup.h
- src/tokenize.h
- src/unc_ctype.h
- src/uncrustify.h
- src/uncrustify_limits.h
- src/uncrustify_types.h
- src/unc_text.h
- src/unc_tools.h
- src/unicode.h
- src/universalindentgui.h
- src/width.h
- src/windows_compat.h
- ${PROJECT_BINARY_DIR}/src/option_enum.h
- ${PROJECT_BINARY_DIR}/uncrustify_version.h
-)
-
-set(uncrustify_docs
- "${PROJECT_SOURCE_DIR}/AUTHORS"
- "${PROJECT_SOURCE_DIR}/BUGS"
- "${PROJECT_SOURCE_DIR}/ChangeLog"
- "${PROJECT_SOURCE_DIR}/COPYING"
- "${PROJECT_SOURCE_DIR}/HELP"
- "${PROJECT_SOURCE_DIR}/README.md"
-)
-
-add_executable(uncrustify ${uncrustify_sources} ${uncrustify_headers})
-add_dependencies(uncrustify generate_version_header)
-
-if(CMAKE_VERSION VERSION_LESS 2.8.10)
- if(CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE)
- # Multi-configuration or build type set
- set_property(TARGET uncrustify APPEND PROPERTY
- COMPILE_DEFINITIONS_DEBUG DEBUG
- )
- else()
- # Single-configuration with no build type set
- set_property(TARGET uncrustify APPEND PROPERTY
- COMPILE_DEFINITIONS DEBUG
- )
- endif()
-else()
- set_property(TARGET uncrustify APPEND PROPERTY
- COMPILE_DEFINITIONS $<$<OR:$<CONFIG:Debug>,$<CONFIG:>>:DEBUG>
- )
-endif()
-
-#
-# Generate uncrustify.1
-#
-configure_file(man/uncrustify.1.in uncrustify.1 @ONLY)
-
-#
-# Generate uncrustify.xml (katepart highlighting file)
-#
-add_custom_target(katehl
- DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/etc/uncrustify.xml
-)
-
-#
-# Tests
-#
-if(BUILD_TESTING)
- enable_testing()
- add_subdirectory(tests)
-endif()
-
-#
-# Coverage
-#
-OPTION(ENABLE_CODECOVERAGE "Enable code coverage testing support")
-if(ENABLE_CODECOVERAGE)
- set(CODECOVERAGE_DEPENDS uncrustify)
- include(${CMAKE_SOURCE_DIR}/cmake/CodeCoverage.cmake)
-endif(ENABLE_CODECOVERAGE)
-
-#
-# Build command to run uncrustify on its own sources
-#
-add_custom_target(format-sources)
-foreach(source IN LISTS uncrustify_sources uncrustify_headers)
- get_filename_component(source_name ${source} NAME)
- add_custom_target(format-${source_name}
- COMMAND uncrustify
- -c forUncrustifySources.cfg
- -lCPP --no-backup ${source}
- COMMENT "Formatting ${source}"
- WORKING_DIRECTORY ${uncrustify_SOURCE_DIR}
- )
- add_dependencies(format-sources format-${source_name})
-endforeach()
-
-#
-# Package
-#
-set(CPACK_PACKAGE_NAME "uncrustify")
-set(CPACK_PACKAGE_VERSION "${UNCRUSTIFY_VERSION}")
-set(CPACK_PACKAGE_VENDOR "Ben Gardner")
-set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Code beautifier")
-set(CPACK_PACKAGE_DESCRIPTION_FILE "${PROJECT_SOURCE_DIR}/README.md")
-set(CPACK_RESOURCE_FILE_LICENSE "${PROJECT_SOURCE_DIR}/COPYING")
-set(CPACK_RESOURCE_FILE_README "${PROJECT_SOURCE_DIR}/README.md")
-set(CPACK_SOURCE_IGNORE_FILES "/\\\\.git/;/\\\\.hg/;/tests/results/;/build.*/")
-if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
- set(CPACK_INCLUDE_TOPLEVEL_DIRECTORY FALSE)
- set(CPACK_GENERATOR "ZIP")
-endif()
-include(CPack)
-
-#
-# Install
-#
-if(MSVC)
- install(TARGETS uncrustify DESTINATION ".")
- install(FILES ${uncrustify_docs}
- DESTINATION "."
- )
- install(FILES "${PROJECT_SOURCE_DIR}/documentation/htdocs/index.html"
- DESTINATION "doc"
- )
- install(DIRECTORY "${PROJECT_SOURCE_DIR}/etc/"
- DESTINATION "cfg"
- FILES_MATCHING PATTERN "*.cfg"
- )
-else()
- include(GNUInstallDirs)
- install(TARGETS uncrustify
- RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
- )
- install(FILES "${CMAKE_CURRENT_BINARY_DIR}/uncrustify.1"
- DESTINATION "${CMAKE_INSTALL_MANDIR}/man1"
- )
- install(DIRECTORY "${PROJECT_SOURCE_DIR}/etc/"
- DESTINATION "${CMAKE_INSTALL_DOCDIR}/examples"
- FILES_MATCHING PATTERN "*.cfg"
- )
- install(FILES ${uncrustify_docs}
- DESTINATION "${CMAKE_INSTALL_DOCDIR}"
- )
-endif()
-
-#
-# Uninstall
-#
-add_custom_target(uninstall "${CMAKE_COMMAND}" -P "${PROJECT_SOURCE_DIR}/cmake/uninstall.cmake")
-
-#
-# add to build the compile_commands.json file, to be used by clang-tidy
-#
-set(CMAKE_EXPORT_COMPILE_COMMANDS "ON" CACHE BOOL "to create the compile_commands.json file" FORCE)
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/CODEOWNERS b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/CODEOWNERS
deleted file mode 100644
index b8b9012f..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/CODEOWNERS
+++ /dev/null
@@ -1,11 +0,0 @@
-* @CDanU @gmaurel @mwoehlke-kitware
-
-.editorconfig @mihaipopescu
-
-# CI
-.travis.yml @mihaipopescu
-appveyor.yml @mihaipopescu
-
-# emscripten
-/emscripten/ @CDanU
-/src/uncrustify_emscripten.cpp @CDanU
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/ChangeLog b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/ChangeLog
deleted file mode 100644
index f8da1c50..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/ChangeLog
+++ /dev/null
@@ -1,1544 +0,0 @@
-Change highlights in uncrustify-0.74.0 (November 2021)
--------------------------------------------------------------------------------
- 4714d5d673d5b9c8f45d70c179f508d60130b18a
- Added : nl_before_struct Mar 12 2021
- dbb2903a94668e147b588d3eebc3be917ac4ebca
- Added : nl_before_ignore_after_case Jun 22 2021
- e97b93418c03cde680d6fd46209d7e43c5e09bfe
- Added : sp_before_ptr_star_trailing Jul 1 2021
- Added : sp_after_ptr_star_trailing Jul 1 2021
- dd5a7c3b2ab64b903e888a264693a9edb7a98ee5
- Added : sp_sparen_paren Jul 19 2021
- 94941c2f9aa8952debab1f8257eb0625bc459392
- Added : pp_indent_in_guard Jul 28 2021
- 84d3b9276c007642c4bb73ff562008253e4fe014
- Added : indent_single_line_comments_before Jul 31 2021
- Added : indent_single_line_comments_after Jul 31 2021
- Removed : indent_sing_line_comments Jul 31 2021
- 0d956a006d64fddd4f8131e6a16a23f7e447cca3
- Added : sp_after_ellipsis Jul 31 2021
- 40bbb979ecf7ad36128150f5540a462c890d5e2c
- Added : mod_remove_duplicate_include Aug 15 2021
- 97d24f3a05a53521ff2ce94928534f4bab0cc0af
- Added : sp_between_semi_for_empty Aug 22 2021
- 63109e6253387480b8bfe7f73a7f2949865fc380
- Added : nl_before_brace_open Aug 27 2021
- 03c9ac261c9282b3cf5e92d69de70d6b4566d8e9
- Added : cmt_trailing_single_line_c_to_cpp Sep 1 2021
- 1525722486dba45aa053f2c83e3015fa64880443
- Added : sp_ellipsis_parameter_pack Sep 16 2021
- Added : sp_parameter_pack_ellipsis Sep 16 2021
- 2e33ac4314dfbfc18c56ec694b0eba3e6a1318f5
- Added : sp_byref_ellipsis Sep 21 2021
- Added : sp_ptr_type_ellipsis Sep 21 2021
- f19bf09cdce5822cf3d71065cb3900ea52f6e5c7
- Added : indent_ctor_init_following Sep 30 2021
- b1274c20bea3f8e2a8d6cd05cbb23c8d66f187a7
- Added : sp_before_emb_cmt Oct 8 2021
- Added : sp_num_after_emb_cmt Oct 8 2021
- Added : sp_before_tr_cmt Oct 8 2021
- Added : sp_num_before_emb_cmt Oct 8 2021
- Added : sp_num_before_tr_cmt Oct 8 2021
- Added : sp_after_emb_cmt Oct 8 2021
- Removed : sp_before_tr_emb_cmt Oct 8 2021
- Removed : sp_num_before_tr_emb_cmt Oct 8 2021
- 563d72fcae6e0aad6e5f0ff998992a48a6767986
- Added : pp_include_at_level Oct 11 2021
- 28486dbadcc4d0ff9376776eb63f3c3bd800cf2d
- Added : sp_return Oct 12 2021
- 86105064d13fc60d14cfd134a8c3d402e7d27492
- Added : indent_comment_align_thresh Oct 13 2021
- 964db2ac20372c45621a55313cdfb1eeb8298800
- Added : indent_comment Oct 18 2021
- 92b9047256ece8d9ace2da5c743be2b9cc2b54d8
- Added : align_func_proto_amp_style Oct 23 2021
- Added : align_func_proto_star_style Oct 23 2021
- 094c79e06f6ec3111684b37b77063cf7af658105
- Added : indent_case_comment Oct 26 2021
- 7eb595caa38ced024a42ba1602d69e0387b8e3a1
- Added : indent_switch_body Nov 3 2021
- cf845deb008b45783ff94a1986131eb180fb54a8
- Added : sp_inside_for_close Nov 6 2021
- Added : sp_inside_for Nov 6 2021
- Added : sp_inside_for_open Nov 6 2021
- 2caaa17866c3b421de7e28670e85c8f8dade5a77
- Added : indent_ignore_label Nov 10 2021
- d8436ef370027bcfd289b19037c39ffdaf0ad4ff
- Added : sp_ptr_star_func_var Nov 15 2021
-
-Change highlights in uncrustify-0.73.0 (May 2021)
--------------------------------------------------------------------------------
-
- b514f25120b12db7b1ca57cdb93dd929a5bf43c4
- Added : indent_before_class_colon Nov 16 2020
- 39c969b69663f6e6cee9673e23d349a308edc44a
- Added : sp_cmt_cpp_region Dec 9 2020
- 9ca37d0c32729570de2e51c97338bc567e124ae3
- Added : cmt_sp_before_doxygen_javadoc_tags Dec 24 2020
- Added : cmt_align_doxygen_javadoc_tags Dec 24 2020
- 84e2c750d19b47bbe2547141b092855ec1f64424
- Added : cmt_reflow_fold_regex_file Dec 24 2020
- 3a8e33a12839ca3bac2e1e0b49eb279362a2ab89
- Added : processing_cmt_as_regex Dec 31 2020
- c622135751824705979d37681fe16d9a60e3d77a
- Added : cmt_reflow_indent_to_paragraph_start Jan 9 2021
- 9c0799aa096b68550507980a32a529099caf97c5
- Added : sp_cpp_lambda_argument_list Jan 19 2021
- 02054b1085166903e8c1384308ac7922cb57bd59
- Added : nl_do_leave_one_liners Jan 29 2021
- 6a4d27914fca0c64273fad979355e16021626f8a
- Added : debug_truncate Feb 7 2021
- a711e96ef7be6afc9f014c4c7e1e5ea5347aad0d
- Added : indent_comma_brace Mar 9 2021
-
-Change highlights in uncrustify-0.72.0 (November 2020)
--------------------------------------------------------------------------------
- new command option:
- --debug-csv-format : Dump debug info to file in csv-delimited format.
-
- b29dfb58d6bebb79a961d0e709543a152d260dbc
- Added : nl_inside_empty_func Aug 4 2020
- 5068a4a78d7770a7292ea7a016ab7ca0bf49cbf7
- Added : debug_timeout Sep 1 2020
- cf3e5acfb4d55b47b25b7e7daa2844e2998b47cc
- Added : sp_inside_square_empty Sep 8 2020
- b66c26c669bf9752f468115f1e6444481c0b9e6d
- Added : align_eigen_comma_init Sep 9 2020
- 7b5fd82fa5d6fc035ddfb7c087c5aeb7cf6f4bd7
- Added : pos_shift Sep 16 2020
- b61b7952835be3451cd1131baeda7b54cb61a50e
- Added : donot_indent_func_def_close_paren Sep 26 2020
- 85001632261196dc1c2f3760dc9180e4c443f9ba
- Added : donot_add_nl_before_cpp_comment Oct 14 2020
-
-Change highlights in uncrustify-0.71.0 (May 2020)
--------------------------------------------------------------------------------
-
- 6bcfb640d908038402869cb3be7bd80adcdb4708
- Added : align_oc_msg_colon_xcode_like Nov 29 2019
- 2fd5aaf255e1d0369842f54ae8d444bcbc079c7b
- Added : indent_compound_literal_return Nov 19 2019
- 4b74315b6cf8e91801b663c4171c1e0a9e12ea5b
- Added : indent_sparen_extra Nov 19 2019
- f012dd24e2d116d867404667ce15c3309466046f
- Added : sp_word_brace_init_lst Jan 21 2020
- Removed : sp_word_brace Jan 21 2020
- 466b8bcf5f8ee04686d2d7af62b5ce76241c777d
- Added : nl_func_call_args Jan 24 2020
- 807e27e81112f28ae71b21f43718a1b859ad473a
- Added : sp_before_oc_proto_list Feb 4 2020
- 94f18ac9c0c7c7fab64f14425aea69f0f49bb240
- Added : indent_off_after_assign Feb 7 2020
- 25e20f9e4ab389c06fc76bcf0dcb3fe07ab91aea
- Added : indent_off_after_return Feb 7 2020
- cee950462787ab3b7725c5fb77fa38b992527e99
- Added : indent_oc_inside_msg_sel Feb 10 2020
- 2d04118314be95654f29fb32ae50b8cd46af8682
- Added : nl_func_call_args_multi_line_ignore_closures Dec 17 2019
- 369192830c01beedcfe87c432f9c26637c1e6587
- Added : indent_inside_ternary_operator Dec 9 2019
- 100db726b938d263c6c7f07530385dec0cdd711e
- Added : use_form_feed_no_more_as_whitespace_character Feb 21 2020
- 24e27fe8cdda55e422b1db659f255da353b3022c
- Added : debug_max_number_of_loops Feb 27 2020
- 30da6cafa6b0819c48a02513cadbc256a5b450c5
- Added : debug_line_number_to_protocol Mar 17 2020
- f5d8ee093eb521ecc0c57060b0009dd5f05e039e
- Added : mod_sort_incl_import_prioritize_filename Mar 27 2020
- 8d595cb0721b299db8f1169c22d38d45df899a51
- Added : mod_sort_incl_import_ignore_extension Mar 27 2020
- 9f8b7754f03aa970ede730a5cd4e2cbd94f139cc
- Added : mod_sort_incl_import_prioritize_extensionless Mar 27 2020
- 6d5829551886ee9e643e5d6019c5389dfa738c3b
- Added : mod_sort_incl_import_prioritize_angle_over_quotes Mar 27 2020
- 27b33d779e7aa33c1ebc39a52e54c3a95bc153d4
- Added : mod_sort_incl_import_grouping_enabled Mar 27 2020
- ac62be9498fa195a54c0e2c76c438c641d68a917
- Added : disable_processing_nl_cont Apr 12 2020
- e2b17b724e00c6180c6bd6cb5b592e969c47b6a9
- Added : nl_before_opening_brace_func_class_def Apr 22 2020
- 981c761da5a4a71b059361a883c4bfff69148c49
- Added : nl_before_whole_file_endif Apr 24 2020
- Added : nl_after_whole_file_endif Apr 24 2020
- Added : nl_after_whole_file_ifdef Apr 24 2020
- Added : nl_before_whole_file_ifdef Apr 24 2020
- d55e9d21cd6377a38f741854baf1a561b984de36
- Added : nl_func_call_end Apr 29 2020
-
-Change highlights in uncrustify-0.70.1 (November 2019)
--------------------------------------------------------------------------------
-
- 5114ea856acd79cbf52fd4261b83d423fafd98da
- Added : nl_before_member Nov 17 2019
- Added : nl_after_member Nov 17 2019
- 1e911250996a7138e33006af1b664362b255f4b5
- Added : nl_template_end_multi_line Nov 17 2019
- Added : nl_template_start_multi_line Nov 17 2019
- Added : nl_template_args_multi_line Nov 17 2019
- 948bc227c46f89207346ad596e6199acb12d162f
- Added : sp_before_vardef_square Nov 18 2019
- 1ff6fc2da0b1cdef35089a2d6ac3364fbba304be
- Added : nl_template_start Nov 21 2019
- Added : nl_template_args Nov 21 2019
- Added : nl_template_end Nov 21 2019
- Removed : nl_template_end_multi_line Nov 21 2019
- Removed : nl_template_start_multi_line Nov 21 2019
- Removed : nl_template_args_multi_line Nov 21 2019
- 2df82073bb1e3bc85f75c2165a541ba906f76b8d
- Added : indent_macro_brace Nov 18 2019
- 8cb5f1be52bcbcca4148cf0514b103dec5313c55
- Added : indent_switch_break_with_case Nov 25 2019
-
-Change highlights in uncrustify-0.70.0 (is not released)
--------------------------------------------------------------------------------
-
- 710b9b90d063e1fac853b77ad9509bed37ff31ee
- Added : mod_sort_case_sensitive May 12 2019
- 40c028454904f4fc87bd93b9703eaeb58fa57dd0
- Added : sp_before_square_asm_block Jul 29 2019
- b9b7f2fffb2c73925906ca7e5c8536d03c93c4bc
- Added : nl_multi_line_sparen_open Aug 3 2019
- Added : nl_multi_line_sparen_close Aug 3 2019
- 83a014197001ea815f92d977fc30aa36dec39e1b
- Added : sp_cpp_lambda_square_paren Aug 20 2019
- Added : sp_cpp_lambda_square_brace Aug 20 2019
- Added : sp_cpp_lambda_paren_brace Aug 20 2019
- Removed : sp_cpp_lambda_paren Aug 20 2019
- 8b6455c08c4f70b04b03b48c32fa14b9014354b4
- Added : use_sp_after_angle_always Sep 13 2019
- 264ec3c988b5667c971b0d6508b17d0c9337c82c
- Added : sp_cpp_lambda_fparen Sep 13 2019
- 883ccefc3bf8c8cdf6b159f280e22c2d72ce83f5
- Added : sp_func_type_paren Oct 11 2019
- 8284db41edbb777829f26d247470c75d3d317641
- Added : nl_before_namespace Oct 8 2019
- Added : nl_after_namespace Oct 8 2019
- 3af190ceda3f8025028b5f8aae7541d35bda39c7
- Added : nl_template_class_def Oct 2 2019
- Added : nl_template_func_def_special Oct 2 2019
- Added : nl_template_using Oct 2 2019
- Added : nl_template_func_def Oct 2 2019
- Added : nl_template_class_decl Oct 2 2019
- Added : nl_template_var Oct 2 2019
- Added : nl_template_class_decl_special Oct 2 2019
- Added : nl_template_func Oct 2 2019
- Added : nl_template_func_decl_special Oct 2 2019
- Added : nl_template_func_decl Oct 2 2019
- Added : nl_template_class_def_special Oct 2 2019
- e9bc08c3baa3b7545a592b5e1d0d23e530c58b7f
- Added : sp_trailing_return Oct 23 2019
- d783ecfe7f08b525eb882ff3a7c6525d8866d54b
- Added : nl_oc_before_interface Oct 28 2019
- Added : nl_oc_before_implementation Oct 28 2019
- Added : nl_oc_before_end Oct 28 2019
- 3741e59342c5741020b84eba147b0c1dfde0154b
- Added : indent_func_def_param_paren_pos_threshold Nov 6 2019
- 829b4124c02e36156489d06a8b33e3552e58d30b
- Added : sp_brace_close_while Nov 8 2019
- Added : sp_while_paren_open Nov 8 2019
- Added : sp_do_brace_open Nov 8 2019
- ea6f4ac515c0ad5651be020a3295dcae01c3baf9
- Added : nl_create_list_one_liner Nov 11 2019
-
-Change highlights in uncrustify-0.69.0 (May 2019)
--------------------------------------------------------------------------------
-
-Changing option:
- - The option name is changed from 'align_assign_func_proto' to 'align_assign_func_proto_span'
- Mar 4 17:19:40 2019
-
-New options:
- - align_constr_value_gap Apr 24 2019
- - align_constr_value_span Apr 24 2019
- - align_constr_value_thresh Apr 24 2019
- - align_func_proto_thresh Apr 5 2019
- - indent_col1_multi_string_literal Mar 31 2019
- - sp_paren_noexcept Jan 13 2019
- - sp_paren_qualifier Jan 11 2019
- - sp_type_question Jan 11 2019
- - sp_inside_angle_empty Dec 27 2018
- - nl_fdef_brace_cond Nov 29 2018
- - nl_func_call_start Nov 29 2018
-
-
-Change highlights in uncrustify-0.68 (November 2018)
--------------------------------------------------------------------------------
-
-New options:
- - align_same_func_call_params_span Nov 9
- - align_same_func_call_params_thresh Nov 9
- - nl_class_leave_one_liner_groups Oct 17
- - nl_inside_namespace Aug 26
- - sp_return_brace Aug 21
- - align_assign_decl_func Jul 24
- - sp_brace_brace Jul 23
- - sp_after_decltype Jul 22
- - sp_decltype_paren Jul 22
- - align_right_cmt_same_level Jul 14
- - nl_oc_mdef_brace Jul 8
- - mod_enum_last_comma Jul 8
- - sp_type_ellipsis Jun 15
- - sp_paren_ellipsis Jun 15
- - sp_sizeof_ellipsis Jun 15
- - sp_sizeof_ellipsis_paren Jun 15
- - indent_continue_class_head May 30
-
-Bugfix:
- - Issue # 1709, 1713, 1729, 1736, 1739, 1740, 1748, 1752, 1755, 1758, 1760,
- 1762, 1763, 1776, 1778, 1782, 1783, 1784, 1786, 1788, 1789, 1804, 1827,
- 1832, 1838, 1839, 1854, 1865, 1867, 1870, 1875, 1876, 1888, 1904, 1916,
- 1917, 1918, 1919, 1942, 1946, 1947, 1958, 1960, 1962, 1965, 1969, 1979,
- 1982, 1985, 1997, 2000, 2001, 2009, 2014, 2015, 2024, 2028, 2032, 2033,
- 2035, 2037, 2046, 2055
-
-
-Change highlights in uncrustify-0.67 (May 2018)
--------------------------------------------------------------------------------
-
-Changing option:
-
-Removed option:
-
-New options:
- - indent_first_for_expr Apr 29
- - indent_semicolon_for_paren Apr 29
- - nl_oc_interface_brace Apr 13
- - nl_oc_implementation_brace Apr 13
- - indent_cpp_lambda_only_once Mar 24
- - indent_cs_delegate_body Mar 18
- - sp_after_noexcept Mar 18
- - indent_single_newlines Mar 6
- - sp_after_ptr_block_caret Feb 24
- - sp_after_oc_synchronized Feb 24
- - sp_inside_square_oc_array Feb 23
- - sp_oc_catch_paren Feb 23
- - sp_oc_catch_brace Feb 23
- - sp_oc_brace_catch Feb 23
- - nl_oc_catch_brace Feb 23
- - nl_oc_brace_catch Feb 23
- - nl_cs_property_leave_one_liners Feb 16
- - indent_member_single Feb 10
- - sp_func_call_user_paren_paren Feb 5
- - sp_func_call_user_inside_fparen Feb 5
- - sp_inside_braces_oc_dict Feb 5
- - nl_create_func_def_one_liner Jan 17
- - nl_namespace_two_to_one_liner Jan 15
- - nl_squeeze_paren_close Jan 15
- - sp_fparen_brace_initializer Jan 12
- - sp_cpp_before_struct_binding 2018 Jan 12
- - indent_align_paren Dec 14
- - nl_tsquare_brace Dec 9
- - indent_single_after_return Nov 28
- - indent_off_after_return_new Nov 28
- - indent_ignore_asm_block 2017 Nov 05
-
-New keyword:
- - __unused Apr 21
- - @synchronized Feb 24
- - @available Feb 23
- - fixed Feb 16
- - @protected Feb 4
- - @public Feb 4
- - __autoreleasing Feb 4
- - __bridge Feb 4
- - __bridge_retained Feb 4
- - __bridge_transfer Feb 4
- - __declspec Feb 4
- - __has_include Feb 4
- - __has_include_next Feb 4
- - __strong Feb 4
- - __typeof Feb 4
- - __unsafe_unretained Feb 4
- - __weak Feb 4
- - self Feb 4
- - unsafe_unretained 2018 Feb 4
- - where 2017 Dec 6
-
-Bugfix:
- - Debian issue #881249 "FTBFS on armel/i386/mips64el/s390x: cpp_33057 fails"
- is fixed
- - Adopt many bugfix and tests from UT:
- 10000, 10002, 10003, 10004, 10005, 10006, 10007, 10008, 10009, 10011,
- 10012, 10013, 10014, 10015, 10016, 10018, 10019, 10020, 10021, 10022,
- 10023, 10024, 10025, 10027, 10028, 10029, 10030, 10031, 10032, 10033,
- 10034, 10035, 10036, 10039, 10044, 10045, 10046, 10047, 10048, 10049,
- 10050, 10051, 10052, 10053, 10054, 10054, 10055, 10056, 10057, 10058,
- 10060, 10062, 10063, 10065, 10066, 10067, 10069, 10070, 10071, 10072,
- 10073, 10074, 10075, 10076, 10077, 10078, 10079, 10080, 10100, 10102,
- 10103, 10104,
- 60001, 60002, 60003, 60004, 60005, 60006, 60007, 60008, 60009, 60011,
- 60012, 60013, 60014, 60015, 60016, 60017, 60018, 60019, 60020, 60021,
- 60022, 60023, 60024, 60025, 60026, 60027, 60028, 60029, 60030, 60031,
- 60032, 60033, 60034, 60036, 60037, 60038, 60039, 60040
-
-New:
- - Add crash handling for Windows
-
-Change highlights in uncrustify-0.66 (November 2017)
--------------------------------------------------------------------------------
-
-New options:
- - sp_arith_additive Oct 17
- - sp_angle_colon Oct 17
- - nl_func_call_empty Sep 30
- - nl_func_call_paren_empty Sep 30
- - align_func_params_span Sep 29
- - align_func_params_thresh Sep 29
- - align_func_params_gap Sep 29
- - nl_func_call_paren Jul 25
- - indent_paren_after_func_def Jul 21
- - indent_paren_after_func_decl Jul 21
- - indent_paren_after_func_call Jul 21
- - nl_func_paren_empty Jul 07
- - nl_func_def_paren_empty Jul 07
- - indent_switch_pp Jun 22
- - pp_indent_case Jun 22
- - pp_indent_func_def Jun 22
- - pp_indent_extern Jun 22
- - pp_indent_brace Jun 22
-
-Changing option:
- - The option name is changed from 'align_number_left' to 'align_number_right'
-
-Bugfix:
- - Issue # 548, 1098, 1103, 1108, 1112, 1127, 1134, 1158, 1165, 1170, 1187,
- 1200, 1203, 1236, 1249, 1310, 1315, 1340, 1349, 1352, 1366 are fixed
-
-Change highlights in uncrustify-0.65 (May 2017)
--------------------------------------------------------------------------------
-
-New options:
- - nl_before_if_closing_paren May 12
- - sp_after_type_brace_init_lst_open May 09
- - sp_before_type_brace_init_lst_close May 09
- - sp_inside_type_brace_init_lst May 09
- - sp_type_brace_init_lst May 09
- - nl_type_brace_init_lst May 09
- - nl_type_brace_init_lst_open May 09
- - nl_type_brace_init_lst_close May 09
- - mod_sort_oc_property_class_weight May 05
- - mod_full_brace_nl_block_rem_mlcond Mar 17
- - sp_inside_newop_paren_open Mar 13
- - sp_inside_newop_paren Mar 13
- - sp_after_newop_paren Mar 13
- - sp_inside_newop_paren_close Mar 13
- - pp_ignore_define_body Feb 18
- - sp_enum_colon Feb 13
- - nl_enum_class Feb 13
- - nl_enum_class_identifier Feb 13
- - nl_enum_identifier_colon Feb 13
- - nl_enum_colon_type Feb 13
- - indent_param Feb 01
- - include_category_0 Jan 24
- - include_category_1 Jan 24
- - include_category_2 2017 Jan 24
- - force_tab_after_define 2016 Dec 29
- - nl_max_blank_in_func Nov 26
- - indent_ternary_operator Nov 24
- - indent_using_block Oct 20
-
-New:
- - emscripten interface
- - removal of autogen / configure build
- - list options that are now AT_UNUM type
- - change option name from align_number_left to align_number_right
-
-Removed option:
- - dont_protect_xcode_code_placeholders
-
-Removed MS calling convention keywords:
- - __cdecl, __clrcall, __fastcall, __stdcall, __thiscall, __vectorcall
-
-Bugfix:
- - Issue # 324, 398, 404, 497, 525, 575, 633, 638, 643, 646, 663, 666,
- 679, 682, 687, 726, 752, 753, 793, 815, 825, 842, 857, 859, 869, 870,
- 889, 902, 916, 917, 928, 935, 938, 940, 972, 1002, 1005, 1020, 1030,
- 1032, 1041, 1068, 1117, 1139 are fixed
- - Proposal #381, 876 are adopted.
-
-Change highlights in uncrustify-0.64 (October 2016)
--------------------------------------------------------------------------------
-
-New:
- - Support for new C#6 language elements. (Bug #672)
- Expression filter with the keyword 'when' in try/catch is now supported.
- Null conditional operator (?.) is now supported.
-
-New options:
- - align_var_class_span Aug 23
- - align_var_class_thresh Aug 23
- - align_var_class_gap Aug 23
- - pos_enum_comma Aug 14
- - indent_token_after_brace Aug 3
- - cmt_multi_first_len_minimum Aug 2
- - nl_enum_own_lines Aug 1
- - nl_func_class_scope Jul 26
- - nl_squeeze_ifdef_top_level Jul 24
- - sp_super_paren Jul 21
- - sp_this_paren Jul 21
- - sp_angle_paren_empty Jul 21
- - sp_after_operator_sym_empty Jul 20
- - sp_skip_vbrace_tokens Jul 13
- - indent_cs_delegate_brace Jul 9
- - cmt_insert_before_inlines Jun 29
- - cmt_insert_before_ctor_dtor Jun 29
- - mod_full_brace_if_chain_only Jun 28
- - nl_func_decl_start_multi_line Jun 28
- - nl_func_def_start_multi_line Jun 28
- - nl_func_decl_args_multi_line Jun 28
- - nl_func_def_args_multi_line Jun 28
- - nl_func_decl_end_multi_line Jun 28
- - nl_func_def_end_multi_line Jun 28
- - nl_func_call_start_multi_line Jun 28
- - nl_func_call_args_multi_line Jun 28
- - nl_func_call_end_multi_line Jun 28
- - use_options_overriding_for_qt_macros Jun 16
- - sp_func_def_paren_empty Jun 15
- - sp_func_proto_paren_empty Jun 15
- - sp_func_class_paren_empty Jun 15
- - nl_oc_block_brace May 26
- - nl_split_if_one_liner May 26
- - nl_split_for_one_line May 24
- - nl_split_while_one_liner May 24
- - nl_after_func_class_proto May 12
- - nl_after_func_class_proto_group May 12 2016
-
-Bugfix:
- - Bugs #620, #651, #654, #662, #663, #664, #670, #671, #672, #674 are fixed
- - Issues #322, #323, #359, #405, #408, #412, #478, #481, #495, #503, #509, #512, #513, #514,
- #518, #519, #520, #521, #522, #524, #529, #530, #533, #536, #539, #542,
- #543, #544, #546, #568 are fixed
- - Proposals #409, #477 are implemented
- - Issue #411 is partialy fixed
-
-
-Change highlights in uncrustify-0.63 (Mar 2016)
--------------------------------------------------------------------------------
-
-New:
- - The branch uncrustify4Qt is now merged.
- - A configuration file for the sources of uncrustify is provided:
- forUncrustifySources.cfg
- - Some considerations about the problem "stable" are described at
- forUncrustifySources.txt
- - Simplify expressions such as:
- if ((cpd.lang_flags & LANG_PAWN) != 0)
- to
- if (cpd.lang_flags & LANG_PAWN)
- - introduce CT_STDCALL to work with typedef void (__stdcall *func)(); Bug # 633
- - introduce some more MS calling conventions: __cdecl, __clrcall, __fastcall, __thiscall, __vectorcall
- https://msdn.microsoft.com/en-us/library/984x0h58.aspx
-
-New options:
- - nl_before_func_class_def Apr 16
- - nl_before_func_class_proto Apr 16
- - nl_before_func_body_def Apr 25
- - nl_before_func_body_proto Apr 25
- - use_indent_continue_only_once Mar 7 2016
-
-Bugfix:
- - Simplify some more expressions.
- - Bugfix for win32 for the flags.
- - make test c/ 00617 stable
- - make test c/ 02501 stable
- - The issue #467 and the test tests/output/c/02100-i2c-core.c are not yet fixed.
- - uncrustify all the sources with forUncrustifySources.cfg
- - better descriptions for options
- - bug #631 is fixed
- - produce a better dump output
- - DbConfig::configuredDatabase()->apply(db); is NOT a declaration of a variable
- - bug # 657 is fixed: change 'mode' if necessary for 'pos_class_comma'
- - fix 3 calls of unc_add_option for "align_oc_msg_colon_span",
- "indent_oc_block_msg", "indent_oc_msg_colon"
- - bugs #664, #662, #654, #653, #651 and #633 are fixed
-
-Reverse:
- - space: drop vbrace tokens... 2014-09-01 06:33:17
- I cannot anderstand this change.
- It makes some troubles: Bug # 637
- No test file for it found
- Reverse the change until more informations could be found
-
-Change:
- - CT_DC_MEMBER + CT_FOR into CT_DC_MEMBER + CT_FUNC_CALL
-
-Some more Qt-macros:
- - Q_GADGET
- - for_each
-
-
-Change highlights in uncrustify4Qt-0.62 (Oct 2015)
--------------------------------------------------------------------------------
-This is an extention of uncrustify to support Qt-macros
- - Q_OBJECT
- - Q_EMIT
- - SLOT
- - SIGNAL
- - Q_FOREACH
- - Q_FOREVER
-
-Change highlights in uncrustify4Qt-0.62 (Oct 2015)
--------------------------------------------------------------------------------
-New options:
- - use_indent_func_call_param
-
-
-Change highlights in uncrustify-0.62 (2 Feb 2016)
--------------------------------------------------------------------------------
-This release is just a roll-up of the past year.
-Many bugs were squashed and many options were added.
-
-New options:
- - string_replace_tab_chars
- - disable_processing_cmt
- - enable_processing_cmt
- - enable_digraphs
- - indent_class_on_colon
- - indent_shift
- - indent_min_vbrace_open
- - indent_vbrace_open_on_tabstop
- - sp_after_mdatype_commas
- - sp_before_mdatype_commas
- - sp_between_mdatype_commas
- - sp_cmt_cpp_doxygen
- - sp_cmt_cpp_qttr
- - sp_between_new_paren
- - nl_while_leave_one_liners
- - nl_synchronized_brace
- - nl_before_synchronized
- - nl_after_synchronized
- - nl_after_label_colon
-
-
-Change highlights in uncrustify-0.61 (22 Dec 2014)
--------------------------------------------------------------------------------
-This release is just a roll-up of the past two years.
-Many bugs were squashed and many options were added.
-
-New options:
- - indent_paren_open_brace
- - indent_namespace_single_indent
- - indent_constr_colon
- - indent_oc_msg_prioritize_first_colon
- - indent_oc_block_msg_xcode_style
- - indent_oc_block_msg_from_keyword
- - indent_oc_block_msg_from_colon
- - indent_oc_block_msg_from_caret
- - indent_oc_block_msg_from_brace
- - sp_enum_paren
- - sp_cparen_oparen
- - sp_after_ptr_star_qualifier
- - sp_after_constr_colon
- - sp_before_constr_colon
- - sp_fparen_dbrace
- - sp_word_brace
- - sp_word_brace_ns
- - sp_cond_colon_before
- - sp_cond_colon_after
- - sp_cond_question_before
- - sp_cond_question_after
- - sp_cond_ternary_short
- - align_keep_extra_space
- - nl_cpp_lambda_leave_one_liners
- - nl_brace_square
- - nl_brace_fparen
- - nl_constr_init_args
- - nl_cpp_ldef_brace
- - nl_paren_dbrace_open
- - nl_constr_colon
- - pos_constr_comma
- - pos_constr_colon
- - mod_add_long_namespace_closebrace_comment
- - cmt_convert_tab_to_spaces
-
-
-Change highlights in uncrustify-0.60 (1 Jan 2013)
--------------------------------------------------------------------------------
-Objective C support was greatly enhanced in this release.
-Many bugs were squashed and many options were added.
-
-New options:
- - align_oc_msg_colon_first
- - align_pp_define_together
- - indent_ctor_init_leading
- - indent_func_def_force_col1
- - indent_oc_block
- - indent_oc_block_msg
- - indent_oc_msg_colon
- - ls_code_width
- - nl_after_annotation
- - nl_before_return
- - nl_between_annotation
- - nl_brace_struct_var
- - nl_oc_msg_args
- - nl_oc_msg_leave_one_liner
- - nl_remove_extra_newlines
- - nl_scope_brace
- - nl_typedef_blk_end
- - nl_typedef_blk_in
- - nl_typedef_blk_start
- - nl_unittest_brace
- - nl_var_def_blk_end
- - nl_var_def_blk_in
- - nl_var_def_blk_start
- - nl_version_brace
- - sp_after_for_colon
- - sp_after_oc_dict_colon
- - sp_after_oc_msg_receiver
- - sp_after_oc_property
- - sp_after_throw
- - sp_after_tparen_close
- - sp_annotation_paren
- - sp_before_for_colon
- - sp_before_oc_dict_colon
- - sp_before_pp_stringify
- - sp_before_template_paren
- - sp_cpp_lambda_assign
- - sp_cpp_lambda_paren
- - sp_extern_paren
- - sp_inside_sparen_open
- - sp_inside_tparen
- - sp_permit_cpp11_shift
- - sp_ptr_star_paren
-
-Changed default:
- - sp_pp_stringify = ignore (was add)
-
-See commit.log for details.
-
-
-Change highlights in uncrustify-0.59 (4 Oct 2011)
--------------------------------------------------------------------------------
-The biggest change in this release was to rework the string handling to add
-proper support for UTF-8 and UTF-16.
-
-New options:
- - nl_case_colon_brace
- - indent_ctor_init
- - sp_before_tr_emb_cmt
- - sp_num_before_tr_emb_cmt
- - utf8_bom
- - utf8_byte
- - utf8_force
- - sp_after_new
- - nl_after_struct
- - nl_after_class
- - nl_property_brace
- - nl_after_func_body_class
-
-See commit.log for details.
-
-
-Change highlights in uncrustify-0.58 (19 May 2011)
--------------------------------------------------------------------------------
-New options:
- - tok_split_gte
- - sp_catch_paren
- - sp_scope_paren
- - sp_version_paren
- - cmt_insert_oc_msg_header
-
-See commit.log for details.
-
-
-Change highlights in uncrustify-0.57 (25 Nov 2010)
--------------------------------------------------------------------------------
-New options:
- - sp_func_call_paren_empty
- - nl_func_def_start
- - nl_func_def_start_single
- - nl_func_def_paren
- - nl_func_def_args
- - nl_func_def_empty
- - nl_func_def_end
- - nl_func_def_end_single
-
-See commit.log for details.
-
-
-Change highlights in uncrustify-0.56 (27 Mar 2010)
--------------------------------------------------------------------------------
-New options:
- - indent_continue
- - indent_cmt_with_tabs
- - indent_first_bool_expr
- - indent_braces_no_class
- - indent_braces_no_struct
- - indent_var_def_cont
- - sp_assign_default
- - sp_after_oc_at_sel_parens
- - sp_inside_oc_at_sel_parens
- - align_oc_decl_colon
- - nl_after_vbrace_close
- - nl_using_brace
- - mod_full_brace_using
-
-See commit.log for details.
-
-
-Change highlights in uncrustify-0.55 (27 Nov 2009)
--------------------------------------------------------------------------------
- - See the GIT history for a full list of changes
- - Fix align_left_shift with array indexes
- - Objective C changes (Andre Berg)
- - Fix a close paren added inside a preprocessor line
- - Fix handling of 'mutable'
- - New options
- - sp_endif_cmt
- - nl_func_decl_start_single
- - nl_func_decl_end_single
- - nl_after_vbrace_open_empty
- - Improved options
- - sp_before_ellipsis
- - nl_struct_brace
- - align_on_tabstop
- - align_with_tabs
- - align_left_shift
- - nl_func_type_name
- - nl_create_if_one_liner
- - pos_assign
-
-
-Changes in uncrustify-0.54 (16 Oct 2009)
--------------------------------------------------------------------------------
- - Add mod_case_brace
- - Add sp_after_semi_for and sp_after_semi
- - Add align_oc_msg_colon
- - ObjC: Do not set the parent of everything in a message at OC_MSG (was breaking casts)
- - ObjC: sp_before_square does not apply in "if (i < [a count])"
- - Fix crash bug in chunk_get_prev() at the start of the file
- - Fix issue with #if COND followed by a cast on the next line
- - Add nl_func_decl_empty
- - Add nl_func_type_name_class
- - Add cmt_reflow_mode (Ger Hobbelt)
- - A case statement starts an expression. Fixes "case -1:"
- - Improve semicolon removal test
- - fix marking of brace/paren pairs that have a preproc inside
- - fix nl_func_type_name where the return type contains a template
- - Add mod_full_brace_if_chain
- - fix detection of deref in a macro function
- - fix detection of "std::vector<void (*)(void)> functions;"
- - Remove extra semicolons on an 'else if'
- - Add sp_before_ellipsis
- - treat a constructor the same as a function regarding nl_func_decl_*
- - Add nl_brace_brace
- - Allow any number of spaces between multi-line comments when combining them
- - Add pos_compare
- - Add pos_conditional
- - Fix indent_relative_single_line_comments
- - Add sp_after_oc_return_type and sp_after_oc_at_sel (Andre Berg)
- - Add indent_namespace_level (James LewisMoss)
- - Add indent_namespace_limit (Maciej Libera)
-
-
-Changes in uncrustify-0.53 (16 May 2009)
--------------------------------------------------------------------------------
- - Fix sp_inside_braces* options, which were broken by the fix to issue #2629652
- - Fix sp_after_cast, which was broken by a previous fix
- - Be a little more agressive in removing unecessary semicolons
- - Fix one case where the parser leaves a preprocessor #define
- - Fix indent of line starting with '(' after a function name
- - Add align_var_def_attribute
- - Fix nl_func_type_name for function without a return type (ie, cast operator)
- - Reset up state variables after processing a file
- - Fix a case where a semicolon was incorrectly removed
- - Fix a case where braces were incorrectly removed
- - Fix handling of 'force' setting for many newline options
- - Add func_wrap type for use with 'set func_wrap FSUB'
- - Add type_wrap type for use with 'set type_wrap STACK_OF'
- - Make file replacement more atomic - write to a temp file then rename
- - With the 'replace' option, only replace if the file content changes
- - Handle C# wide literal string prefix S"foo"
- - Handle the ObjC '@protocol' the same as '@interface'
- - Add 'make check' and 'make clean' (Ger Hobbelt)
- - Add align_right_cmt_at_col (Ger Hobbelt)
- - Add sp_pp_concat and sp_pp_stringify (Ger Hobbelt)
- - Add mod_add_long_ifdef_{else,endif}_comment (Ger Hobbelt)
- - Objective C improvements (Etienne Samson)
- - Only mess with escaped newlines in a comment if inside a preprocessor
- - Fix pos_xxx options when a preprocessor is near
- - Apply Debian patch to man file
- - Fix '<<' indenting/aligning (moved from indent.cpp to align.cpp)
- - Rework the sp_before_nl_cont option
- - Fix a few other bugs
-
-
-Changes in uncrustify-0.52 (28 Feb 2009)
--------------------------------------------------------------------------------
- - Add sp_before_assign and sp_after_assign
- - Add sp_enum_before_assign and sp_enum_after_assign
- - Add indent_var_def_blk
- - Add sp_inside_sparen_close for the 'CGAL' style
- - First pass at supporting ECMAScript (.es) files
- - Add support for the C# '??' operator
- - Fix conflict between nl_after_func_proto_group and nl_squeeze_ifdef
- - Add sp_cmt_cpp_start
- - Add align_on_operator
- - Fix nl_func_type_name for operators
- - Allow '$' to be part of identifiers (global change)
- - Fix detection of the '*' in 'int a = b[0] * c;'
- - Fix and improve the description of nl_multi_line_cond
- - Fix handling of global namespace type such as '::sockaddr'
- - Add nl_after_brace_close
- - Add nl_func_scope_name
- - Add cmt_insert_file_footer
-
-
-Changes in uncrustify-0.51 (27 Nov 2008)
--------------------------------------------------------------------------------
- - Prefer to split at ',' and then '=' in for() statements if at paren level
- - Fix a NULL deref crash
- - Fix nl_namespace_brace when something trails the open brace
- - Get sp_after_sparen and sp_sparen_brace to play well together
- - Ignore trailing comments when inserting the function header comment
- - Combine two C comments when they have no space between them "/***//***/"
- - Add cmt_insert_before_preproc
- - Add mod_remove_empty_return
- - Add nl_comment_func_def
- - Fix aligning of anonymous bit fields
- - Add indent_align_assign
- - Add sp_before_case_colon
- - Fix D 'invariant' handling
- - Add sp_invariant_after_paren and sp_invariant_paren
- - Fix handling of the C# [assembly: xxx] construct
- - Fix handling of the C# 'base()' construct
- - Add sp_range for the D '..' range operator as in [start .. end]
- - Update $(fclass) and $(function) to handle operators
- - Improve handling of inserted comments
- - Enable 'finally' blocks for C#
- - Add nl_after_try_catch_finally
- - Add nl_between_get_set and nl_around_cs_property
-
-
-Changes in uncrustify-0.50 (25-Oct-2008)
--------------------------------------------------------------------------------
- - Fix sp_before_unnamed_ptr_star in 'char ** n'
- - Fix crash when a open brace is at the end of a file
- - ObjC class definitions do not need { }
- - Fix ObjC msg detection
- - Add sp_after_ptr_star_func, sp_before_ptr_star_func
- - Add sp_after_byref_func, sp_before_byref_func
- - Treat an ObjC msg decl more like a function def
- - Add indent_func_const, indent_func_throw (Thanks, Ron)
- - Fix detection of prototype inside extern or namespace braces
- - Add align_left_shift to handle aligning of '<<'
- - Add sp_cpp_cast_paren
- - Add support for ObjC '@property' statements
- - Add sp_brace_typedef and sp_case_label
- - Merge in the lastest UniversalIndent support (Thanks, Thomas!)
- - Fix extra '\r' in multi-line comments and strings
- - Add sp_throw_paren
- - Assume a '<' in a preprocessor can't be part of a template
- - Don't align a constructor with class variables
- - Fix ending column error when tokenizing strings
-
-
-Changes in uncrustify-0.49 (22-Aug-2008)
--------------------------------------------------------------------------------
- - Allow the MSVC++ '64' suffix on numbers
- - Initialize align_stack class members for the MSVC++ compiler
- - Indent a line that starts with '='
- - Add pos_arith and pos_assign (Thanks, Ron!)
- - Fix pos_bool & code_width interaction (Thanks, Ron!)
- - Fix cmt_width, which was going one word over the limit. (Thanks, Ron!)
- - Major rework of the aligning code to better handle the gap options
- - Indent comments before 'case' at the same level as 'case'
- - mod_add_long_*_closebrace_comment adds the right comment type. (Thanks, Ron!)
- - Relax number parsing even further to accept stuff like "3A"
- - Add sp_after_oc_colon (Thanks, Kevin!)
- - Add better detection and labeling of Objective C messages
- - Add sp_after_send_oc_colon and sp_before_send_oc_colon (Thanks, Kevin!)
- - Fix detection of '*' in "return n * f();"
- - Add the 'set' config option which lets you create arbitrary keywords
- - Add sp_func_call_user_paren and the 'func_call_user' keyword type
-
-
-Changes in uncrustify-0.48 (18-Jul-2008)
--------------------------------------------------------------------------------
- - Fix classification of '(' in '#if defined (FOO)'
- - Add sp_defined_paren
- - Fix handling of negative in '#if X < -1'
- - Revert a change that broke indent continuation in an assignment
- - Fix interaction between nl_squeeze_ifdef and nl_after_{if,for,while,switch,do}
- - Preprocessor indents are indents, so indent_with_tabs=1 should do tabs
- - Add pp_indent_count
- - Handle C++ style casts, such as 'int(42.0)' a bit better
- - Another rework of template detection
- - Add sp_before_nl_cont, defaults to 'add'
- - If a statement starts with 'operator', it is a function call
- - Change sp_angle_word to be more generic
- - Add sp_after_operator_sym for "operator ++(" vs "operator ++ ("
- - Add sp_template_angle for "template<" vs "template <"
- - Add support for " *INDENT-OFF* " and " *INDENT-ON* "
- - Shuffle around spacing priorities
- - Add handling for '...' in variadic templates
- - Extend nl_template_class to handle anything after 'template <...>'
- - Treat the template '<' the same as '(' for indenting
- - Add indent_template_param
- - Split internal CT_CAST into CT_C_CAST, CT_CPP_CAST and CT_D_CAST
- - Swap priority of sp_after_angle and sp_before_ptr_star
- - Change cmt_multi_indent=false to disable all reformatting (needs more work)
- - Fix align_var_def_span - it wasn't counting newlines when it recursed
- - Add nl_else_if
- - mod_full_brace_if: Don't remove braces around certain 'else' statements
- - Tweak template detection a bit more
- - Rework and simplify multi-line comment indenting
- - Add indent_else_if
- - Improve right-comment aligning
- - Fix detection of functions with a 'const' return type
- - Add sp_cond_colon and sp_cond_question
- - Fine-tune the right comment align stuff
- - Add cmt_multi_check_last
- - Add align_right_cmt_gap
- - Add nl_return_expr
- - Indent FPAREN_OPEN if after a newline but not before a newline
- - Give sp_after_operator_sym priority over sp_func_call_paren
- - Add align_same_func_call_params
-
-
-Changes in uncrustify-0.47 (06-Jun-2008)
--------------------------------------------------------------------------------
- - Fix inifinite loop bug in reindent_line
- - Fix prototype detection with template parameter types
- - Fix off-by-1 error on positive values for indent_access_spec and indent_label
- - Add indent_extern to control indent extern-type namespaces
- - Add initial support for Objective C++ (extension '.mm')
- - Add nl_before_throw and indent 'throw' if after a prototype
- - Extend line numbers to 32 bits (used for logging)
- - Remove alternate token support for '<%', '%>', '<:', ':>', '%:', and '%:%:'
- - Fix recently-broken mixing of right-comment aligning (PP_ENDIF/PP_ELSE issue)
- - Indent a 'break' that follows a fully-braced 'case' at the level of the
- close brace
- - Add mod_move_case_break
- - Fix '&' and '*' after 'delete'
- - Escape opening '/*' when converting C++ comments to C comments
- - Add sp_inside_braces_empty
- - Fix cmt_sp_after_star_cont
- - Fix cmt_sp_before_star_cont
- - Explicitly disallow a tab after a space
- - Improve multi-line comment indenting a bit
- - Add sp_before_unnamed_byref and sp_before_unnamed_ptr_star
-
-
-Changes in uncrustify-0.46 (22-Apr-2008)
--------------------------------------------------------------------------------
- - Load the config file, if available, before handling '--universalindent'
- - Add align_var_def_gap, align_var_def_colon_gap, align_var_struct_gap,
- align_func_proto_gap, align_mix_var_proto, align_single_line_brace_gap
- - (internal) Eliminate the 'trailer' stuff, simplify aligning
-
-
-Changes in uncrustify-0.45 (7-Mar-2008)
--------------------------------------------------------------------------------
- - Fix buffer overflow in logger code
- - Add sp_enum_assign
- - For elipses handling in the GCC extension "case 1 ... 5:"
- - Add sp_after_class_colon, sp_before_class_colon, and sp_after_type
- - Send usage text to stdout instead of stderr
- - Fix mod_add_long_function_closebrace_comment if the file doesn't end in a newline
- - Redo alignments after splitting long lines
- - Add indent_relative_single_line_comments
- - Add indent_access_spec_body
- - Fix indent_func_proto_param to work on constructors
- - Add cmt_indent_multi
- - Add align_single_line_brace and align_single_line_func
- - Fix interaction of virtual braces and #pragma
- - Fix indenting problem with an assignment the last part of a for()
- - Fix the order of opening files so that '-f' and '-o' can be used together
- - Added a man file
- - Many improvements thanks to Stas Grabois
- - Fix a D problem due the lack of semicolons after struct/enum definitions
- - Improve the way aligning is done
-
-
-Changes in uncrustify-0.44 (12-Feb-2008)
--------------------------------------------------------------------------------
- - Fix issue with #else and unmatched braces (issue 1868493)
- - Update UnivarsalIndentGUI config output
- - Add the version to generated config files
- - Add nl_multi_line_define
- - Minimize distance between code and the backslash-newline in macros
- - Properly handle stuff like '#define MYHEADER <asm/arm.h>'
- - Fix detection of 'int foo(int);' in C++ (func proto, not class variable)
- - Improve handling of multi-line comments in a macro
- - Fix crash bug with some ctype implementations
- - Fix incorrect indenting of nested #endif with pp_if_indent_code
- - Fix problem with nl_after_if and nl_before_if w/ trailing comments
-
-
-Changes in uncrustify-0.43 (08-Jan-2008)
--------------------------------------------------------------------------------
- - Add align_right_cmt_mix to control aligning of comments after '}' and '#endif'
- - Allow a line split after an assignment
- - Fix infinite loop bug
- - Add sp_sign and sp_incdec
- - Fix vbrace conversion where some are converted and some aren't
- - Add a vbrace before a #pragma instead of after
- - Improve Objective C support
- - Add sp_before_oc_colon, sp_after_oc_scope, and sp_after_oc_type for ObjC
- - Add align_oc_msg_spec_span for ObjC
- - Add sp_member for spacing around '->' and '.'
- - More template handling improvements
- - Fix a NULL dereference related to __attribute__
-
-
-Changes in uncrustify-0.42 (30-Nov-2007)
--------------------------------------------------------------------------------
- - Fix bug that would remove a newline after a C++ comment
- - Add "--mtime" command line option to preserve the mtime
- - Remove extra semicolons before inserting newlines after semicolons
- - Fix broken struct initializer alignment
- - Fix problem with pos_class_comma in a #define
- - Fix problem with an incomplete statement in a #define and virtual braces
- - Add indent_func_proto_param and indent_func_def_param
- - Add nl_func_proto_type_name, split from nl_func_type_name
- - Add mod_add_long_switch_closebrace_comment, mod_add_long_function_closebrace_comment
- - Add mod_sort_import to sort import statements (Java/D)
- - Add mod_sort_using to sort using statements (C#)
- - Add mod_sort_include to sort #include (C/C++) and #import (ObjC) statements
- - Add indent_func_class_param, indent_func_ctor_var_param, and
- indent_func_param_double
- - Fix inserting a newline before a preprocessor
- - Don't split empty function parens for code_width stuff
-
-
-Changes in uncrustify-0.41 (07-Nov-2007)
--------------------------------------------------------------------------------
- - Add cmt_insert_func_header, cmt_insert_file_header, and cmt_insert_class_header
- - Fix detection of prototypes without named parameters
- - sp_after_byref and sp_after_ptr_star only are applied if before a word
- - internal rework
- - Add pp_define_at_level
- - Fix detection of deref in "sizeof *x"
- - Fix broken output of backslash-newline in certain situations
- - Fix pp_indent_if stuff
- - Add nl_after_brace_open_cmt
- - Properly handle anonymous namespaces
- - Add pp_space_count
-
-
-Changes in uncrustify-0.40 (12-Oct-2007)
--------------------------------------------------------------------------------
- - Simplify preprocessor indenting
- - Add pp_indent_region and pp_region_indent_code
- - Add pp_indent_at_level
- - Add pp_indent_if and pp_if_indent_code
- - Add initial VALA support
- - Fix a problem with mod_full_paren_if_bool and functions
- - Add nl_func_paren
- - Fix function type parameter marking (broken in the last few releases)
- - Don't remove newline chunks before/after a preprocessor
-
-
-Changes in uncrustify-0.39 (25-Sep-2007)
--------------------------------------------------------------------------------
- - Improve conversion operators
- - Prevent undesired chunk combining ("~ ~" vs "~~" in D)
- - Add nl_after_multiline_comment
- - Fix handling of try/catch/finally blocks in virtual braces
- - Add sp_inv, sp_not, sp_addr, sp_deref (default to remove)
- - Fix nl_class_brace
- - Fix indent_func_call_param
- - Add nl_create_if_one_liner, nl_create_for_one_liner, nl_create_while_one_liner
- - Add indent_preserve_sql
- - Fix one-liner detection with multiple statements on one line
- - Add nl_func_leave_one_liners and nl_if_leave_one_liners
- - More template improvements
-
-
-Changes in uncrustify-0.38 (04-Sep-2007)
--------------------------------------------------------------------------------
- - Fix line splitting WRT the CT_SPACE token
- - Improve function call/prototype/definition detection
- - Fix some spacing issues
- - More template improvements
- - Allow for a C++ struct constructor
- - Add nl_before_access_spec and nl_after_access_spec
- - Add cmt_width, cmt_c_group, cmt_c_nl_start, cmt_c_nl_end
- - Handle conversion operators
-
-
-Changes in uncrustify-0.37 (16-Aug-2007)
--------------------------------------------------------------------------------
- - A bunch of D language improvements
- - Add sp_d_array_colon, nl_assign_square, nl_after_square_assign
- - Fix static keyword sort order
- - Improve typedef detection and aligning
- - Split nl_ds_struct_enum_close_brace out of nl_ds_struct_enum_cmt
- - Add indent_paren_close
- - Add indent_comma_paren and indent_bool_paren
-
-
-Changes in uncrustify-0.36 (04-Aug-2007)
--------------------------------------------------------------------------------
- - Add nl_after_vbrace_open
- - Improve option descriptions
- - Fix seg faults (check for NULL)
- - Fix spacing for operators () and []
- - Add sp_before_dc and sp_after_dc to control spacing around '::'
- - Split pos_class_comma from pos_comma
- - Improve line splitting a little - no longer break at '::' or '->' or '.'
- - Add nl_enum_leave_one_liners and nl_getset_leave_one_liners
- - Add mod_remove_extra_semicolon
- - Fix handling of macro-open and macro-close
- - Add align_var_struct_thresh
- - Improve handling of comments after braces
- - Add support for Qt slots and signals
- - Add align_typedef_amp_style and align_var_def_amp_style
- - Add sp_attribute_paren and handling of the '__attribute__' macro
- - Add align_typedef_func, improve aligning of typedefs
- - Add sp_after_semi_for_empty
-
-
-Changes in uncrustify-0.35 (14-Jul-2007)
--------------------------------------------------------------------------------
- - Fix bug with nl_func_type_name and empty param list: int foo() { ... }
- - Don't parse pragma bodies
- - Properly indent multiline #error and #warning
- - Change nl_after_func_body to force the newline count (was a minimum)
- - Fix handling of CT_PTR_STAR when all options are AV_IGNORE
- - Fix problem when the first token in the file isn't in column 1
- - Properly mark catch clauses that contain parameters, ie catch (Exception *e)
- - Add a newline after the open brace for nl_catch_brace, nl_do_brace,
- nl_else_brace, nl_try_brace, nl_getset_brace, nl_finally_brace
- - Add nl_multi_line_cond
- - Fix a bug with mod_full_paren_if_bool
- - Fix handling of templated variables: Buffer<T>* buf
- - Fix handling of dynamic_cast<T*>(obj) stuff
- - Fix detection of templates in for() statements:
- for (std::map<Key, Value*>::iterator it = map.begin(); ...
- - Add --no-backup command-line option to replace w/o a backup file
- - Fix nl_class_leave_one_liners when set to false
- - Add nl_class_colon, which split the functionality of nl_class_init_args
- - Improve detection of reference variable declarations (A& B)
-
-
-Changes in uncrustify-0.34 (11-May-2007)
--------------------------------------------------------------------------------
- - Add sp_angle_paren and sp_angle_word
- - Properly handle multi-line CPP comments
- - Add sp_inside_paren_cast
- - improve indent_class_colon
- - fix indenting on open parens
- - Add sp_before_semi_for_empty
- - Fix detection of while if the do is in a preprocessor chunk (1675673)
- - (pawn) Don't add vsemi after case/switch brace close (1684840)
- - Add nl_assign_leave_one_liners to allow "foo_t foo = { 0, 1 };"
- - Change handling of #region stuff so that it is indented at brace level
- - Fix handling of missing semicolon after while-of-do.
- - Fix crash-bug in handling bad code: "if (a && );"
- - Add pos_comma
-
-
-Changes in uncrustify-0.33 (05-Mar-2007)
--------------------------------------------------------------------------------
- - Fix converting C++ comments with embedded C comments
- - Fix nl_func_var_def_blk with class variables
- - Fix some output issues with the 1st line and C++ comments
- - Eliminate indent_case_body, which wasn't used
- - Change rules for indenting case braces and the use of indent_case_brace
- - Fix variable declaration detection at the start of a code block
- - Add support for custom open/close indenting macros
- MACRO_OPEN, MACRO_ELSE, MACRO_CLOSE
- - Fix the config updating routines to NOT lose custom types and stuff
- - Add nl_after_func_body_one_liner
- - Fix nl_class_init_args
- - Add --universalindent option to output an ini file for UniversalIndentGUI
-
-
-Changes in uncrustify-0.32 (20-Feb-2007)
--------------------------------------------------------------------------------
- - Enable align_proto_var_def for constructors
- - Fix while-of-do handling inside virtual braces
- - Fix problem with comments between a close brace and else
- - Add sp_before_comma
- - Change align_var_def_star to align_var_def_star_style
- - Change align_proto_var_def to align_func_params
- - Add ls_func_split_full and ls_for_split_full
- - Rework code width code a bit
- - Start Objective C support
- - Add cmt_sp_before_star_cont and cmt_sp_after_star_cont
- - Fix spacing between (( and ))
- - Add nl_try_brace, nl_catch_brace, nl_finally_brace, nl_brace_catch,
- nl_brace_finally, sp_catch_brace, sp_brace_catch, sp_finally_brace,
- sp_brace_finally, sp_try_brace
- - Treat typedef functions the same as other function for param aligning
- - Turn any word after a enum/struct/union into a type
- - Add sp_getset_brace and nl_getset_brace
- - Add mod_full_paren_if_bool
- - Add nl_before_c_comment and nl_before_cpp_comment
- - Fix nl_class_leave_one_liners
- - Add nl_ds_struct_enum_cmt
- - Add sp_balance_nested_parens
-
-
-Changes in uncrustify-0.31 (24-Jan-2007)
--------------------------------------------------------------------------------
- - Improve mixed tab indent / space align
- - Try to fix spacing around embedded comments
- - Add indent_access_spec
- - Add __func__ and __FUNCTION__ detection for non-C99 compilers
- - General code cleanup (Thanks Tom!)
- - Add indent_xml_string
- - Add align_proto_var_def to align variables in prototypes
-
-
-Changes in uncrustify-0.30 (24-Nov-2006)
--------------------------------------------------------------------------------
- - Use environment variable UNCRUSTIFY_CONFIG if no '-c' option (non-WIN32)
- - Default to ~/.uncrustify.cfg if no '-c' option and no env var (non-WIN32)
- - Add '-q' option to the usage info
- - Added initial embedded SQL support
- - Many bug fixes
- - New options: indent_braces_no_func, indent_sing_line_comments, nl_before_if,
- nl_before_for, nl_after_for, nl_before_while, nl_after_while,
- nl_before_switch, nl_after_switch, nl_before_do, nl_after_do
-
-
-Changes in uncrustify-0.29 (26-Oct-2006)
--------------------------------------------------------------------------------
- - Add support for the 'Klaus' style
- - Fix a bunch of c++ template bugs
- - Add option nl_class_leave_one_liners
-
-
-Changes in uncrustify-0.28 (06-Oct-2006)
--------------------------------------------------------------------------------
- - Fix D range array detection a[1..4] => a[1 .. 4]
- - Fix D delegate variable aligning
- - More documentation updates (thanks Dirk!)
- - New options: nl_after_semicolon and nl_after_open_brace
-
-
-Changes in uncrustify-0.27 (23-Sep-2006)
--------------------------------------------------------------------------------
- - Improve template detection again (allow CT_TYPE in a template)
- - Fix bad formatting in "[ABC * 123]" and "[0xf & *val]"
- - Add --replace option to convert files in-place
- - Use a map for the options
- - Major configuration/option cleanup
- - add -o option to write to a file instead of stdout
-
-
-Changes in uncrustify-0.26 (09-Sep-2006) (removed a number from the version)
--------------------------------------------------------------------------------
- - Fix preprocessor labeling WRT comments
- - Fix an indenting problem
- - Add sp_after_byref
- - Fix alignment of global variable definitions
- - Fix detection of deref inside squares: a[*p]
- - Fix a weird indenting bug
- - Fix D template ! spacing
- - Add sp_after_operator
- - Add nl_template_class
- - Add start to detailed docs inside the program
- - Add --prefix and --suffix command line args
- - Add align_enum_equ_thresh and fix align_enum_equ_span
- - Fix formatting of function typedefs
- - Add indent_member
- - Simplify the indenting code a bit
- - Improve type_cast stuff (ie, dynamic_cast<> or static_cast<>) and templates
-
-
-Changes in uncrustify-0.0.25 (26-Aug-2006)
--------------------------------------------------------------------------------
- - Add sp_after_ptr_star, sp_before_ptr_star, sp_between_ptr_star
- - Fix D tokenizing for numbers and strings
- - Fix a bug with cast detection and with nl_after_func_proto
- - Improve template detection
- - Rename nl_bool_pos to pos_bool
- - Add pos_class_colon
- - Add indent_class_colon
- - Add nl_class_init_args
- - Add nl_collapse_empty_body
- - Add indent_square_nl
-
-
-Changes in uncrustify-0.0.24 (05-Aug-2006)
--------------------------------------------------------------------------------
- - Add initial PAWN support (thanks to Derek Evan Mart for testing and motivation!)
- - Fix parsing of numbers like 10.0
- - Fix double negative (- -x) vs (--x)
- - Add ability to convert C++ (//) comments into C (/* */) comments
- - Fix usage of indent_columns; output_tab_size is only needed if using tabs
- - Add first small step in code width handling
- - New options: sp_fparen_brace, sp_macro, sp_marco_func,
- nl_elseif_brace, mod_pawn_semicolon, cmt_cpp_to_c, cmt_cpp_group,
- cmt_cpp_nl_start, cmt_cpp_nl_end, sp_after_tag
-
-
-Changes in uncrustify-0.0.23 (22-Jul-2006)
--------------------------------------------------------------------------------
- - Fix some crash bugs and some formatting problems
- - Fix Windows CRLF issues (binary vs text mode)
- - Add indent_class and indent_namespace
- - Add nl_class_brace and nl_namespace_brace
- - Add handling of operator stuff in CPP
- - Improve the test script a bit
- - Add sp_inside_fparens
- - Add ability to define types in the config file
- - Started work on improving #ifdef handling by evaluating the preprocessor
-
-
-Changes in uncrustify-0.0.22 (15-Jul-2006)
--------------------------------------------------------------------------------
- - Implement nl_max, nl_before_block_comment, nl_after_func_body,
- nl_after_func_proto, nl_after_func_proto_group
- - Improve detection of function prototypes
- - Improve marking of function prototype-related tokens
- - Improve variable definition aligning
- - fix align_var_def threshold
- - Improve handling of "private:" style stuff
- - Handle types with "::" in them
- - Add preprocessor spacing and indenting
- - Fix tab indenting style 1 (tab indent, space align)
- - Improve multi-line comment formatting
-
-
-Changes in uncrustify-0.0.21 (01-Jul-2006)
--------------------------------------------------------------------------------
- - Clean up some memory leaks & uninitialized variables
- - Add option to process multiple files at once
- - Change the newlines values from [UNIX, DOS, MAC] to [LF, CRLF, CR]
- - Properly mark the parens for functions
- - Implement control over the format of the function prototypes and definitions
- - Update configuration.txt
-
-
-Changes in uncrustify-0.0.20 (10-Jun-2006)
--------------------------------------------------------------------------------
- - Fix cast on a sizeof: (INT32)sizeof(x)
- - Fix this: "#define SOME_JUNK /*lint -e123 */(const mytype_t *)-1"
- - Don't align function typedefs (fixed again)
- - Finally fix the DOS and MAC line-ending support
- - Add line-ending autodetection
- - Add Windows build support
-
-
-Changes in uncrustify-0.0.19 (27-May-2006)
--------------------------------------------------------------------------------
- - Fix C/C++/C# casts
- - Improve D casts
-
-
-Changes in uncrustify-0.0.18 (12-May-2006)
--------------------------------------------------------------------------------
- - Add nl_bool_pos to move boolean ops between eol and sol
- - Improve C99 array initializer aligning/formatting
- - Replace nl_eat_start, nl_eat_end, and nl_eof_min with nl_start_of_file,
- nl_start_of_file_min, nl_end_of_file, and nl_end_of_file_min
-
-
-Changes in uncrustify-0.0.17 (03-May-2006)
--------------------------------------------------------------------------------
- - Add nl_eat_start to remove newlines at the start of the file
- - Add nl_eat_end to remove newlines at the end of the file
- - Add nl_eof_min to set the minimum number of newlines at the end of file
- - Add newlines setting to configure the newline output
- - Add '-q' command line option to turn off logging
- - Fix bug in nl_func_var_def_blk handling
-
-
-Changes in uncrustify-0.0.16 (21-Apr-2006)
--------------------------------------------------------------------------------
- - Add a stack alignment helper class
- - Improve typedef formatting
- - Add aligning thresholds for typedefs and assignments
- - update the automake/autoconf stuff
-
-
-Changes in uncrustify-0.0.15 (14-Apr-2006)
--------------------------------------------------------------------------------
- - Switch to C++
- - Improve C++ template formatting
- - Improve C++ class handling
-
-
-Changes in uncrustify-0.0.14 (09-Apr-2006)
--------------------------------------------------------------------------------
- - Read from stdin if no file is specified
- - Build on OS X
-
-
-Changes in uncrustify-0.0.13 (07-Apr-2006)
--------------------------------------------------------------------------------
- - Rewrite the indent code
- - Fix a bunch of small problems with C casts
- - Rename a few files
- - Add more tests
-
-
-Changes in uncrustify-0.0.12 (30-Mar-2006)
--------------------------------------------------------------------------------
- - Add support for D template format "Foo!(int,char)"
- - Fix a format bug in a log
- - Fix elipsis spacing (remove space before elipsis)
- - Don't use getopt as it isn't all that portable (at least for QNX)
- - Rename some files
- - Bugfix: don't add virtual braces on the same line as a preprocessor
- - Bugfix: clean up indexed array aligning
-
-
-Changes in uncrustify-0.0.11 (27-Mar-2006)
--------------------------------------------------------------------------------
- - fix brace analysis on else statement
- - allow options to depend on other options
- - set the parent for case braces
- - handle/indent the C++ class colon thingy
- - handle C++ constructors and function defs
- - special handling for '::' operator
- - implement case indenting
- - handle cout '<<' indenting
- - handle DOS and MAC line endings in multiline comments
- - rename some indent options
- - fix ifndef handling
- - fix volatile handling
- - fix private/public/protected 'label' handling
- - alternate punctuators are also part of C++
- - handle C++ wide L"strings"
- - improve C# get/set handling
- - fix spacing bug "a++;" vs "a ++;" due to statement start misdetect
- - add nl_assign_brace
- - fix parent of vbrace close
- - more test enhancements
-
-
-Changes in uncrustify-0.0.10 (22-Mar-2006)
--------------------------------------------------------------------------------
- - Complete rewrite of tokenizer and brace parser
- - Added support for D nested comments
- - Fixed some virtual brace bugs
- - Added some documentation for the brace parsing stuff
- - Add more tests to improve coverage (still lacking)
-
-
-Changes in uncrustify-0.0.9 (18-Mar-2006)
--------------------------------------------------------------------------------
- - Major enhancements for D
- - Add handling for special "[]" sequence for C#/D
- - add some more tests
-
-
-Changes in uncrustify-0.0.8 (13-Mar-2006)
--------------------------------------------------------------------------------
- - update TODO list
- - add a threshold for brace removal
- - improve brace removal
- - keep track of whether a token follows a tab
- - add option to preserve non-indenting tabs
- - major keyword and operator cleanup for C++, C#, D, and Java
- - add 'string' variants for ARITH, COMPARE, etc
- - add C# get/set detection
- - add template <type> detection
- - add colon handling for class stuff and anonymous bitfields
- - pop the whole indent stack when leaving a preprocessor
- - fix embedded return handling in C#, ie: [ this should return negative ]
- - fix a problem with the ifdef frame stack (still a problem lurking...)
- - handle literal strings (C#)
- - handle non-keyword words (C#) -- example: @if @switch
- - set the parent on 'do' braces
- - handle C# #region preprocessor stuff
- - partially implement align on tabstop
- - fix virtual brace spacing (no more "else return;" => "elsereturn;")
- - add some more tests
-
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/README.md b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/README.md
deleted file mode 100644
index 0a1025c6..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/README.md
+++ /dev/null
@@ -1,389 +0,0 @@
-[![AppVeyor](https://img.shields.io/appveyor/ci/uncrustify/uncrustify/master.svg?style=flat-square&label=Windows)](https://ci.appveyor.com/project/uncrustify/uncrustify)
-[![Coverage Status](https://coveralls.io/repos/github/uncrustify/uncrustify/badge.svg?branch=master)](https://coveralls.io/github/uncrustify/uncrustify?branch=master)
-<a href="#"><img src="https://img.shields.io/badge/C++-11-blue.svg?style=flat-square"></a>
-
----------------------------
-
-# Uncrustify
-A source code beautifier for C, C++, C#, ObjectiveC, D, Java, Pawn and VALA
-
-## Features
-* Highly configurable - 787 configurable options as of version 0.74.0
-- <details><summary>add/remove spaces</summary>
-
- - `sp_before_sparen`: _Add or remove space before '(' of 'if', 'for', 'switch', 'while', etc._
- - `sp_compare`: _Add or remove space around compare operator '<', '>', '==', etc_
-</details>
-
-- <details><summary>add/remove newlines</summary>
-
- - `nl_if_brace`: _Add or remove newline between 'if' and '{'_
- - `nl_brace_while`: _Add or remove newline between '}' and 'while' of 'do' statement_
-</details>
-
-- <details><summary>add/remove blanklines</summary>
-
- - `eat_blanks_before_close_brace`: _Whether to remove blank lines before '}'_
- - `nl_max`: _The maximum consecutive newlines (3 = 2 blank lines)_
-</details>
-
-- <details><summary>indent code</summary>
-
- - `indent_switch_case`: _indent_switch_case: Spaces to indent 'case' from 'switch'_
- - `indent_class_colon`: _Whether to indent the stuff after a leading base class colon_
-</details>
-
-- <details><summary>align code</summary>
-
- - `align_func_params`: _Align variable definitions in prototypes and functions_
- - `align_struct_init_span`: _The span for aligning struct initializer values (0=don't align)_
-</details>
-
-- <details><summary>modify code</summary>
-
- - `mod_full_brace_for`: _Add or remove braces on single-line 'for' statement_
- - `mod_paren_on_return`: _Add or remove unnecessary paren on 'return' statement_
-</details>
-
-Here is an example [configuration file](https://raw.githubusercontent.com/uncrustify/uncrustify/master/documentation/htdocs/ben.cfg.txt),
-and here is a [before](https://raw.githubusercontent.com/uncrustify/uncrustify/master/documentation/htdocs/examples/c-1.in.c)
-and [after](https://raw.githubusercontent.com/uncrustify/uncrustify/master/documentation/htdocs/examples/c-1.out.c)
-C source example.
-That should give you a pretty good idea of what Uncrustify can do.
-
-
-
-
-
----------------------------------------------------------------------------
-
-## Binaries
-Pre compiled binaries for Windows can be downloaded [here](https://sourceforge.net/projects/uncrustify/files/).
-
-## Build
-[Python](https://www.python.org/) is an "interpreted high-level programming language for general-purpose programming", for this project it is needed to extend the capabilities of CMake.
-
-[CMake](https://cmake.org/) is a tool that generates build systems
-(Makefiles, Visual Studio project files, Xcode project files and others).
-
-To generate a build system for Uncrustify using CMake, create a build
-folder and run CMake from it:
-
-```bash
-$ mkdir build
-$ cd build
-$ cmake ..
-```
-(Use `cmake -G Xcode ..` for Xcode)
-
-Then use the build tools of your build system (in many cases this will
-simply be `make`, but on Windows it could be MSBuild or Visual Studio).
-Or use CMake to invoke it:
-
-```bash
-$ cmake --build .
-```
-
-If testing is enabled, CMake generates a `test` target, which you can
-_build_ using your build system tools (usually `make test`). This can also
-be invoked using CTest:
-
-```bash
-$ ctest -V -C Debug
-```
-
-There is also an `install` target, which can be used to install the
-Uncrustify executable (typically `make install`).
-
-### A note on CMake configurations
-Some build systems are single-configuration, which means you specify the
-build type when running CMake (by setting the `CMAKE_BUILD_TYPE`
-variable), and the generated files then build that configuration.
-
-An example of a single-configuration build system are Makefiles. You can
-build the Release configuration of Uncrustify (from the build folder) with:
-
-```bash
-$ cmake -DCMAKE_BUILD_TYPE=Release ..
-$ make
-```
-
-Other build systems are multi-configuration, which means you specify the
-build type when building.
-
-An example of a multi-configuration build system are Visual Studios project
-files. When you open the project in Visual Studio, you can select which
-configuration to build. You can also do this while building from the
-command line with `cmake --build . --config Release`.
-
-
-## Bugs
-Post any bugs to the issue tracker found on the projects GitHub page:
- https://github.com/uncrustify/uncrustify/issues
-
-Please include the following with your issue:
- - a description of what is not working right
- - input code sufficient to demonstrate the issue
- - expected output code
- - configuration options used to generate the output
-
-More about this is in the [ISSUE_TEMPLATE](https://github.com/uncrustify/uncrustify/blob/master/.github/ISSUE_TEMPLATE)
-
-
-### Known problems
-[Look at the Wiki](https://github.com/uncrustify/uncrustify/wiki/Known-Problems)
-
-
-## Which repositories have uncrustify?
-[Look here](https://repology.org/metapackage/uncrustify/versions)
-
-
-## Contribute
-If you want to add a feature, fix a bug, or implement missing
-functionality, feel free to do so! Patches are welcome!
-Here are some areas that need attention:
-
-- __Patches for Objective-C support__. We really need someone who knows
- this language as it has more than plenty open issues. A good starting
- point would be to integrate changes made in the
- [Unity fork](https://github.com/Unity-Technologies/uncrustify/tree/fixes/c-oc-java)
-- Test Java support and provide feedback (or patches!)
-- Test Embedded SQL to see what works
-- A logo of some sort
-- Anything else that you want to do to make it better?
-
-### A note about pull requests
-Firstly take a look at the [CONTRIBUTING.md](https://github.com/uncrustify/uncrustify/blob/master/CONTRIBUTING.md)
-
-Currently we have two continuous integration systems that test your PRs,
-TravisCI and Appveyor.
-Tested are the test cases, the formatting of the code base and
-the output of the command line options.
-
-Test cases can be found in the `tests/` directory. Every file ending with
-`.test` is a test set. Inside each line with these components is a
-single test: `testNr[!] testConfigFileName testInputFileName [lang]`
-
-The configuration file `testConfigFileName` has to be located inside `tests/config`,
-the input file `testInputFileName` inside `tests/input/<testSetName>/`,
-and expected results file inside the `tests/expected/<testSetName>/`
-directory.
-Expected results have the following naming convention: `testNr-testInputFileName`.
-
-Optionally a `!` can follow the `testNr` to enable a custom rerun
-configuration.
-Rerun configurations need to be named like this:
-`testConfigFileName`(without extension)+`.rerun`+`.extension`
-
-Also, optionally a language for the input can be provided with `lang`.
-
-The codebase has to be formatted by the options set up in
-`forUncrustifySources.cfg`. Failing to format the sources correctly will
-cause TravisCI build failures.
-
-The Command line interface (CLI) output is tested by the
-`test_cli_options.sh` script. It is located inside of `tests/cli/` and operates
-on the subdirectories of that folder.
-
-If a PR is altering the CLI output, files inside those directories might
-need to be manually updated. This often happens when options are
-added, removed or altered. Keep in mind that the version string line
-(example: `# Uncrustify-0.69.0_f`) of outputs from commands like
-`--show-config` should be replaced with a blank line.
-
-### Debugging
-
-The first method is to use uncrustify itself to get debug informations.
-Using:
-```.txt
- uncrustify -c myExample.cfg -f myExample.cpp -p myExample.p -L A 2>myExample.A
-```
-you get two files for the first informations.
-The p-file gives you details of the parsing process and indentation.
-```.txt
-# Line Tag Parent Columns Br/Lvl/pp Flag Nl Text
-# 1> CLASS[ NONE][ 1/ 1/ 6/ 0][0/0/0][ 10070000][0-0] class
-# 1> TYPE[ CLASS][ 7/ 7/ 14/ 1][0/0/0][ 10000000][0-0] Capteur
-# 1> BRACE_OPEN[ CLASS][ 15/ 15/ 16/ 1][0/0/0][ 100000400][0-0] {
-```
-
-The A-file gives you many details about the run itself, where the process is running thru,
-which values have the most important variables.
-```.txt
-tokenize(2351): orig_line is 1, orig_col is 1, text() 'class', type is CLASS, orig_col_end is 6
-tokenize(2351): orig_line is 1, orig_col is 7, text() 'Capteur', type is WORD, orig_col_end is 14
-tokenize(2351): orig_line is 1, orig_col is 15, text() '{', type is BRACE_OPEN, orig_col_end is 16
-```
-
-You can also dump the parsing information of each formatting step using the 'dump steps' option.
-```.txt
- uncrustify -c myExample.cfg -f myExample.cpp -ds dump
-```
-This will create a series of 'dump_nnn.log' files, each containing the parsing information at
-specific points of the formatting process ('dump_000.log' will list the formatting options in use).
-
-You can combine this option with -p and -L to get a lot of detailed debugging information.
-```.txt
- uncrustify -c myExample.cfg -f myExample.cpp -p myExample.p -L A 2>myExample.A -ds dump
-```
-
-It might be useful to add some code lines to see where something is happening.
-Use the package `unc_tools`.
-Remove the comment at line:
-```.cpp
-#define DEVELOP_ONLY
-```
-Import the package:
-```.cpp
-#include "unc_tools.h"
-```
-Add at some places the line:
-```.cpp
-prot_the_line(__LINE__, 6, 0);
-```
-Compile again with DEBUG option.
-
-
-
-### How to add an option
-
-If you need a new option, there are a few steps to follow.
-Take as example the option `sp_trailing_ret_t`
-
-First define the option:
-- Insert the code below to the file src/options.h
-_NOTE:
-This file is processed by make_options.py, and must conform to a particular
-format. Option groups are marked by '//begin ' (in upper case; this example
-is lower case to prevent being considered a region marker for code folding)
-followed by the group description. Options consist of two lines of
-declaration preceded by one or more lines of C++ comments. The comments form
-the option description and are taken verbatim, aside from stripping the
-leading '// '. Only comments immediately preceding an option declaration,
-with no blank lines, are taken as part of the description, so a blank line
-may be used to separate notations from a description.
-An option declaration is 'extern TYPE\nNAME;', optionally followed by
-' // = VALUE' if the option has a default value that is different from the
-default-constructed value type of the option. The 'VALUE' must be valid C++
-code, and is taken verbatim as an argument when creating the option's
-instantiation. Note also that the line break, as shown, is required.
-_
-```.cpp
-// Add or remove space around trailing return operator '->'.
-extern Option<iarf_e>
-sp_trailing_ret_t;
-```
-- Insert the code below to the file src/space.cpp
-```.cpp
- if (chunk_is_token(first, CT_TRAILING_RET_T))
- {
- // Add or remove space around trailing return operator '->'.
- log_rule("sp_trailing_ret_t");
- return(options::sp_trailing_ret_t());
- }
-```
-
-
-### Portability
-
-We are pretty sure that nothing OS-specific is used in the code base.
-The software has been previously tested on the following operating systems:
-- Linux
-- QNX
-- OS X
-- FreeBSD, NetBSD, OpenBSD
-- Sun Solaris 9
-- Windows (binary available)
-
-
----------------------------------------------------------------------------
-
-## Running the program
-
-__NOTE__ This application works reasonably well but it has bugs. Do __not__
-apply it on your whole codebase without checking the results!
-
-Here are ways to run it:
-```
-$ uncrustify -c mystyle.cfg -f somefile.c -o somefile.c.unc
-$ uncrustify -c mystyle.cfg -f somefile.c > somefile.c.unc
-$ uncrustify -c mystyle.cfg somefile.c
-$ uncrustify -c mystyle.cfg --no-backup somefile.c
-$ uncrustify -c mystyle.cfg *.c
-$ uncrustify -c mystyle.cfg --no-backup *.c
-```
-The `-c` flag selects the configuration file.
-The `-f` flag specifies the input file.
-The `-o` flag specifies the output file.
-If flag `-f` is used without flag `-o` the output will be send to `stdout`.
-
-Alternatively multiple or single files that should be processed can be
-specified at the command end without flags.
-If the flag `--no-backup` is missing, every file is saved with the initial
-name and an additional suffix (can be changed with --suffix).
-
-For more options descriptions call:
-```bash
-$ uncrustify -h
-```
-
-## Configuring the program
-Uncrustify usually reads configuration files that are passed via the `-c`
-flag. If the flag is not provided Uncrustify will try to find a
-configuration file via the `UNCRUSTIFY_CONFIG` environment variable or a
-file with the name `.uncrustify.cfg` or `uncrustify.cfg` in your home folder.
-
-To get a list of:
-- all available options use:
- ```bash
- uncrustify --show-config
- ```
-
-- all available options in a usable configuration file format use:
- ```bash
- uncrustify --update-config
- ```
-
- or
-
- ```bash
- uncrustify --update-config-with-doc
- ```
-
- As the names suggest both options can produce output that adds newly
- introduced options to your old configuration file. For this your old
- configuration file has to be passed via the `-c` flag:
- ```bash
- uncrustify --update-config-with-doc -c path/to/your.cfg
- ```
-
-Example configuration files that can be used as a starting point can be
-found in the `etc/` directory (such as [ben.cfg](./etc/ben.cfg)).
-
-Modify to your liking. Use a quality side-by-side diff tool to determine
-if the program did what you wanted. Repeat until your style is refined.
-
-To ease the process a bit, some 3rd party tools are available:
-- [Universal Indent GUI](http://universalindent.sourceforge.net/) - A
- cross-platform graphical configuration file editor for many code
- beautifiers, including Uncrustify.
-- [uncrustify_config](https://github.com/CDanU/uncrustify_config) - A web
- configuration tool based on Uncrustify's emscripten interface.
-- [UncrustifyX](https://github.com/ryanmaxwell/UncrustifyX) - Uncrustify
- utility and documentation browser for Mac OS X
-
-Under Windows:
-Uncrustify is a command-line tool, if you run it by double-clicking the
-executable, it will open a command prompt run the executable
-(which prints the help message), and then immediately close the window
-as uncrustify exits.
-
-You can open the command prompt (which is an interactive terminal
-window that allows you to run commands without it closing as soon as
-they exit) and run uncrustify.exe there.
-
-## Using uncrustify with vim
-Have a look [here]https://github.com/cofyc/vim-uncrustify
-
-## Using uncrustify with IntelliJ
-Have a look at https://plugins.jetbrains.com/plugin/17528-uncrustify
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/appveyor.yml b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/appveyor.yml
deleted file mode 100644
index e5c01aac..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/appveyor.yml
+++ /dev/null
@@ -1,36 +0,0 @@
-version: "{build}"
-platform: x64
-environment:
- matrix:
- # MSVC
- - GENERATOR: Visual Studio 15 2017 Win64
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
- - GENERATOR: Visual Studio 14 2015 Win64
-configuration:
- - Debug
- - Release
-clone_folder: C:\projects\uncrustify
-branches:
- only:
- - master
-clone_depth: 10
-skip_tags: true
-#init:
-# - echo This is for test only
-# - ps: iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
-
-install:
- - "SET PATH=C:/Python35-x64;C:/Python35-x64/Scripts;%PATH%"
-before_build:
- - cd c:\projects\uncrustify
- - mkdir build
- - cd build
- - cmake -DUNCRUSTIFY_SEPARATE_TESTS=ON -G "%GENERATOR%" ..
-build_script:
- - cmake --build . --config %CONFIGURATION%
-test_script:
-# - echo This is for test only
-# - C:/projects/uncrustify/build/Debug/uncrustify.exe -c C:/projects/uncrustify/tests/config/mono.cfg -f C:/projects/uncrustify/tests/input/cs/simple.cs -L 66
- - set PYTHONIOENCODING=utf-8
- - python ../scripts/run_ctest.py -- -C %CONFIGURATION%
-deploy: off
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/cmake/Toolchain-mingw32.cmake b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/cmake/Toolchain-mingw32.cmake
deleted file mode 100644
index badd6994..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/cmake/Toolchain-mingw32.cmake
+++ /dev/null
@@ -1,28 +0,0 @@
-#
-# Toolchain file for cross-compiling from Linux to Win32 using MinGW
-#
-
-set(CMAKE_SYSTEM_NAME Windows)
-
-if(NOT COMPILER_PREFIX)
- if(EXISTS /usr/i686-w64-mingw32)
- # mingw-w64
- set(COMPILER_PREFIX "i686-w64-mingw32")
- elseif(EXISTS /usr/i586-mingw32msvc)
- # mingw
- set(COMPILER_PREFIX "i586-mingw32msvc")
- else()
- message(FATAL_ERROR "Unable to detect cross-compiler prefix (COMPILER_PREFIX)")
- endif()
-endif()
-
-find_program(CMAKE_C_COMPILER NAMES ${COMPILER_PREFIX}-gcc)
-find_program(CMAKE_CXX_COMPILER NAMES ${COMPILER_PREFIX}-g++)
-find_program(CMAKE_RC_COMPILER NAMES ${COMPILER_PREFIX}-windres)
-
-set(CMAKE_FIND_ROOT_PATH /usr/${COMPILER_PREFIX})
-
-set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
-set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
-set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
-set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/cmake/Toolchain-mingw64.cmake b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/cmake/Toolchain-mingw64.cmake
deleted file mode 100644
index 399cc26b..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/cmake/Toolchain-mingw64.cmake
+++ /dev/null
@@ -1,28 +0,0 @@
-#
-# Toolchain file for cross-compiling from Linux to Win64 using MinGW
-#
-
-set(CMAKE_SYSTEM_NAME Windows)
-
-if(NOT COMPILER_PREFIX)
- if(EXISTS /usr/x86_64-w64-mingw32)
- # mingw-w64
- set(COMPILER_PREFIX "x86_64-w64-mingw32")
- elseif(EXISTS /usr/amd64-mingw32msvc-gcc)
- # mingw
- set(COMPILER_PREFIX "amd64-mingw32msvc-gcc")
- else()
- message(FATAL_ERROR "Unable to detect cross-compiler prefix (COMPILER_PREFIX)")
- endif()
-endif()
-
-find_program(CMAKE_C_COMPILER NAMES ${COMPILER_PREFIX}-gcc)
-find_program(CMAKE_CXX_COMPILER NAMES ${COMPILER_PREFIX}-g++)
-find_program(CMAKE_RC_COMPILER NAMES ${COMPILER_PREFIX}-windres)
-
-set(CMAKE_FIND_ROOT_PATH /usr/${COMPILER_PREFIX})
-
-set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
-set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
-set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
-set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/changelog b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/changelog
deleted file mode 100644
index 1729edda..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/changelog
+++ /dev/null
@@ -1,334 +0,0 @@
-uncrustify-trinity (0.74.0-0debian11.0.0+0) unstable; urgency=medium
-
- * TDE version of upstream 0.74.0
-
- -- Michele Calgaro <michele.calgaro@yahoo.it> Wed, 19 May 2021 15:58:50 +0900
-
-uncrustify-trinity (0.73.0-0debian11.0.0+2) unstable; urgency=medium
-
- * Fix Python detection on CMake < 3.12.
-
- -- Slávek Banko <slavek.banko@axis.cz> Wed, 20 May 2021 00:00:40 +0200
-
-uncrustify-trinity (0.73.0-0debian11.0.0+1) unstable; urgency=medium
-
- * Backported commits cb1a42dd from upstream.
-
- -- Michele Calgaro <michele.calgaro@yahoo.it> Wed, 19 May 2021 15:58:50 +0900
-
-uncrustify-trinity (0.73.0-0debian11.0.0+0) unstable; urgency=medium
-
- * TDE version of upstream 0.73.0
-
- -- Michele Calgaro <michele.calgaro@yahoo.it> Wed, 19 May 2021 15:58:50 +0900
-
-uncrustify-trinity (0.72.0-0debian11.0.0+8) unstable; urgency=medium
-
- * Switch to build using ninja-build
-
- -- Slávek Banko <slavek.banko@axis.cz> Tue, 18 May 2021 19:30:49 +0200
-
-uncrustify-trinity (0.72.0-0debian11.0.0+7) unstable; urgency=medium
-
- * TDE version 0.72-0+7
- * Backported commits 5f3f392a and fb66774e from upstream.
-
- -- Michele Calgaro <michele.calgaro@yahoo.it> Thu, 05 Jan 2021 11:08:00 +0900
-
-uncrustify-trinity (0.72.0-0debian11.0.0+6) unstable; urgency=medium
-
- * TDE version 0.72-0+6
- * Backported commits 45681e88 and 64d93e3fb from upstream.
-
- -- Michele Calgaro <michele.calgaro@yahoo.it> Thu, 24 Dec 2020 20:14:00 +0900
-
-uncrustify-trinity (0.72.0-0debian11.0.0+0) unstable; urgency=medium
-
- * TDE version of upstream 0.72.0
-
- -- Michele Calgaro <michele.calgaro@yahoo.it> Thu, 20 Dec 2020 17:52:23 +0900
-
-uncrustify (0.72.0) unstable; urgency=medium
-
- * New upstream version 0.72.0
-
- -- Alexander GQ Gerasiov <gq@debian.org> Thu, 20 Dec 2020 17:34:01 +0900
-
-uncrustify (0.71.0+dfsg1-1) unstable; urgency=medium
-
- * New upstream version 0.71.0
- * d/control: Use debhelper-compat syntax, switch to level 12.
- * d/control: Use python3 in B-D (Closes: #943295).
- * d/control: Bump Standards-Version, no more changes needed.
- * d/control: Remove unnnecessary --parallel.
-
- -- Alexander GQ Gerasiov <gq@debian.org> Thu, 27 Aug 2020 17:12:57 +0300
-
-uncrustify (0.69.0+dfsg1-1) unstable; urgency=medium
-
- * New upstream version 0.69.0
- * Remove fix_parallel_test.patch: Fixed upstream.
-
- -- Alexander GQ Gerasiov <gq@debian.org> Tue, 02 Jul 2019 19:00:32 +0300
-
-uncrustify (0.68.1+dfsg1-2) unstable; urgency=medium
-
- * Add d/patches/fix_parallel_test.patch: Fix test failure on parallel run.
-
- -- Alexander GQ Gerasiov <gq@debian.org> Mon, 10 Dec 2018 02:36:22 +0300
-
-uncrustify (0.68.1+dfsg1-1) unstable; urgency=medium
-
- * New upstream version 0.68.1
- * d/control: Add python-all to Build-Depensds.
- * d/rules: Run all tests (now disabled by default by upstream).
-
- -- Alexander GQ Gerasiov <gq@debian.org> Sun, 02 Dec 2018 16:19:42 +0300
-
-uncrustify (0.67+dfsg1-1) unstable; urgency=medium
-
- * New upstream version 0.67
- * debian/control: Move git to salsa.
- * Add docs-remove-remote-images.patch: Remove remote images from docs.
-
- -- Alexander GQ Gerasiov <gq@debian.org> Mon, 18 Jun 2018 01:13:56 +0300
-
-uncrustify (0.66.1+dfsg1-1) unstable; urgency=medium
-
- * Add debian/gbp.conf.
- * New upstream version 0.66.1 Fixed FTBFS on some arches (Closes: #881249)
- * Bump Standards-Version to 4.1.2 (no additional changes needed).
-
- -- Alexander GQ Gerasiov <gq@debian.org> Sun, 17 Dec 2017 18:49:06 +0300
-
-uncrustify (0.66+dfsg1-1) unstable; urgency=medium
-
- * debian/control: Remove Fathi Boudra <fabo@debian.org> from uploaders.
- (Closes: #879444.) Thanks for your job.
- * New upstream version 0.66
- * Bump Standards-Version to 4.1.1 (no additional changes needed).
- * debian/control: Add more languages to short description.
-
- -- Alexander GQ Gerasiov <gq@debian.org> Wed, 08 Nov 2017 18:18:47 +0300
-
-uncrustify (0.65+git20170831+dfsg1-1) unstable; urgency=medium
-
- * New upstream version 0.65+git20170831. Fixes various FTBFS and autotests
- failures on exotic archs. (Closes: #867376)
- * Bump Standards-Version to 4.1.0 (no additional changes needed).
-
- -- Alexander GQ Gerasiov <gq@debian.org> Thu, 31 Aug 2017 20:25:06 +0300
-
-uncrustify (0.65+dfsg1-1) unstable; urgency=medium
-
- * New upstream version 0.65
- * debian/control: Add python-minimal to Build-Depends.
-
- -- Alexander GQ Gerasiov <gq@debian.org> Tue, 04 Jul 2017 14:50:47 +0300
-
-uncrustify (0.64+dfsg1-1) unstable; urgency=medium
-
- * Imported Upstream version 0.64
- (Closes: #748787, #814193, #594210, #775517, #594206, #616708)
- * Remove non-free documentation/htdocs/project-support.jpg.
- * Imported debian dir from previous version.
- * Remove "debian/<q" file.
- * Remove fix-ftbfs-with-gcc-4.7.patch (Fixed upstream).
- * debian/control: Switch dependence from autotools to cmake.
- * debian/control, debian/compat: Set compatibility level to 9.
- * debian/rules: Remove legacy PRONY records.
- * debian/control: Change Homepage to github.
- * debian/watch: Update to github using current naming scheme.
- * debian/copyright: Add myself.
- * Install README.md and documentation dir into package's docs.
- * debian/rules: Remove tests results on clean.
- * debian/control: Set myself as maintainer. (Johann Rudloff is out of
- business, thanks a lot for all; Fathi Boudra acked this.)
- * Bump Standards-Version to 3.9.8 (no additional changes needed).
- * Add debian/TODO file.
- * debian/cotrol: Add link to collab-maint's git.
-
- -- Alexander GQ Gerasiov <gq@debian.org> Sat, 03 Dec 2016 20:19:22 +0300
-
-uncrustify (0.59+dfsg1-1.1) unstable; urgency=medium
-
- * Non-maintainer upload.
- * Remove non-free file (project-support.jpg). Closes: #753760
-
- -- Mathieu Malaterre <malat@debian.org> Fri, 16 Jan 2015 16:52:15 +0100
-
-uncrustify (0.59-2) unstable; urgency=low
-
- * Fix FTBFS with gcc 4.7 by fixing missing <unistd.h> include.
- (Closes: #667404)
-
- -- Fathi Boudra <fabo@debian.org> Mon, 21 May 2012 15:40:46 +0300
-
-uncrustify (0.59-1) unstable; urgency=low
-
- * New upstream release.
- * Add myself to Uploaders.
-
- -- Fathi Boudra <fabo@debian.org> Sat, 31 Dec 2011 12:49:32 +0200
-
-uncrustify (0.57-1) unstable; urgency=low
-
- * New upstream release.
-
- [ Fathi Boudra ]
- * Removed patch to check for NULL - stolen upstream.
- * Bumped Standards-Version to 3.9.1 (no changes needed).
-
- -- Johann Rudloff <cypheon@gmx.net> Mon, 21 Feb 2011 11:54:28 +0200
-
-uncrustify (0.56-2) unstable; urgency=low
-
- [ Fathi Boudra ]
- * Added patch to check for NULL to prevent a segmentation fault.
- (Closes: #580195)
- * Bumped Standards-Version to 3.9.0 (no changes needed).
-
- -- Johann Rudloff <cypheon@gmx.net> Thu, 01 Jul 2010 20:34:01 +0300
-
-uncrustify (0.56-1) unstable; urgency=low
-
- * New upstream release.
-
- [ Fathi Boudra ]
- * Switch to dpkg-source 3.0 (quilt) format.
- * debian/control:
- - bumped debhelper version to 7.4.15
- - fixed typo in long description.
- * debian/copyright:
- - added email author.
- - added myself.
-
- -- Johann Rudloff <cypheon@gmx.net> Tue, 20 Apr 2010 13:08:29 +0300
-
-uncrustify (0.55-1) unstable; urgency=low
-
- * New upstream release (Closes: #540817)
-
- [ Fathi Boudra ]
- * debian/patches/manpage_fix_hyphens.diff: removed - merged upstream
- * debian/compat: bumped to 7
- * debian/control:
- - bumped debhelper version to 7.4.13
- - bumped Standards-Version to 3.8.4 (no changes needed)
- - added ${misc:Depends}
- * debian/docs: updated
- * debian/rules: rewrited from scratch to use dh and enabled parallel build
-
- -- Johann Rudloff <cypheon@gmx.net> Wed, 17 Feb 2010 09:18:41 +0100
-
-uncrustify (0.52-1) unstable; urgency=low
-
- * New upstream release (closes: #526100)
- * debian/copyright: changed years and wording of copyright
- * debian/patches/manpage_fix_hyphens.diff: added patch to fix fixed hyphens
- used as minus signs in manpage
- * debian/rules: included usage of quilt
- * debian/control: added build dependency quilt
- bumped Standards-Version to 3.8.1 (no changes required)
-
- -- Johann Rudloff <cypheon@gmx.net> Thu, 30 Apr 2009 11:32:27 +0200
-
-uncrustify (0.48-1) unstable; urgency=low
-
- * New upstream release
- * debian/rules: removed CFLAGS settings (done by dpkg-buildpackage)
-
- -- Johann Rudloff <cypheon@gmx.net> Tue, 22 Jul 2008 11:19:54 +0200
-
-uncrustify (0.47-1) unstable; urgency=low
-
- * New upstream release (closes: #479372)
- * Bumped Standards-Version to 3.8.0 (no changes required)
- * removed debian/uncrustify.1, since upstream sources now include a
- manpage
- * debian/rules: removed call to dh_installman, manpage is installed by
- make install
- * debian/rules: removed unneeded call to dh_installdirs
-
- -- Johann Rudloff <cypheon@gmx.net> Sun, 08 Jun 2008 10:09:53 +0200
-
-uncrustify (0.44-1) unstable; urgency=low
-
- * New upstream release
- * debian/uncrustify.1: updated version number and date
-
- -- Johann Rudloff <cypheon@gmx.net> Sun, 24 Feb 2008 09:13:49 +0100
-
-uncrustify (0.43-1) unstable; urgency=low
-
- * New upstream release (closes: #461631)
- * Bumped Standards-Version to 3.7.3 (no changes required)
- * debian/copyright: updated years of copyright
- * debian/control: moved homepage address from description to a separate field
- * debian/uncrustify.1: updated year and month
- * debian/rules: copy update config.{sub,guess} into source tree in
- config.status target, remove them in clean target
-
- -- Johann Rudloff <cypheon@gmx.net> Thu, 10 Jan 2008 15:37:19 +0100
-
-uncrustify (0.41-1) unstable; urgency=low
-
- * New upstream release
-
- -- Johann Rudloff <cypheon@gmx.net> Mon, 12 Nov 2007 21:22:25 +0100
-
-uncrustify (0.40-1) unstable; urgency=low
-
- * New upstream release
-
- -- Johann Rudloff <cypheon@gmx.net> Tue, 16 Oct 2007 21:26:13 +0200
-
-uncrustify (0.39-1) unstable; urgency=low
-
- * New Upstream Version
-
- -- Johann Rudloff <cypheon@gmx.net> Wed, 26 Sep 2007 23:50:30 +0200
-
-uncrustify (0.38-1) unstable; urgency=low
-
- * New upstream release
-
- -- Johann Rudloff <cypheon@gmx.net> Thu, 06 Sep 2007 22:52:16 +0200
-
-uncrustify (0.37-1) unstable; urgency=low
-
- * New upstream release
- * debian/uncrustify.1: added new command line options
- * debian/uncrustify.1: changes in formatting and description
-
- -- Johann Rudloff <cypheon@gmx.net> Sun, 19 Aug 2007 19:33:08 +0200
-
-uncrustify (0.36-1) unstable; urgency=low
-
- * New upstream release (closes: #434938, #434939)
-
- -- Johann Rudloff <cypheon@gmx.net> Tue, 07 Aug 2007 13:49:41 +0200
-
-uncrustify (0.35-1) unstable; urgency=low
-
- * New upstream release
-
- -- Johann Rudloff <cypheon@gmx.net> Sat, 21 Jul 2007 20:41:52 +0200
-
-uncrustify (0.33-1) unstable; urgency=low
-
- * New upstream release (closes: #416469)
- * Added debian/watch file
- * debian/uncrustify.1: added new command line options
- * debian/uncrustify.1: removed leading colons
- * debian/copyright: updated years of copyright
- * debian/copyright: updated parts concerning cmpcfg.pl, since it
- now contains a proper license statement
-
- -- Johann Rudloff <cypheon@gmx.net> Fri, 30 Mar 2007 20:51:27 +0200
-
-uncrustify (0.30-1) unstable; urgency=low
-
- * Initial release
-
- -- Johann Rudloff <cypheon@gmx.net> Sat, 25 Nov 2006 14:06:44 +0100
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/control b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/control
deleted file mode 100644
index 97a69cb2..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/control
+++ /dev/null
@@ -1,18 +0,0 @@
-Source: uncrustify-trinity
-Section: deps-r14/devel
-Priority: optional
-Maintainer: Alexander GQ Gerasiov <gq@debian.org>
-Build-Depends: cdbs, debhelper (>= 9~), quilt, cmake (>= 3.0~), ninja-build, python3 (>= 3.3~), gcc (>= 4:4.9~)
-Standards-Version: 4.5.0
-Homepage: https://github.com/uncrustify/uncrustify
-
-Package: uncrustify-trinity
-Architecture: any
-Depends: ${misc:Depends}, ${shlibs:Depends}
-Description: C, C++, ObjectiveC, C#, D, Java, Pawn and VALA source code beautifier
- Uncrustify is a highly configurable source code formatter. It aligns
- preprocessor define's, assignments, arithmetics and is able to fix spacing
- between operators.
- .
- This is a TDE packaged version of upstream uncrustify, used to have a consistent
- version for code formatting across multiple platforms.
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/patches/002_trinity_customization.diff b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/patches/002_trinity_customization.diff
deleted file mode 100644
index 2db6fc3c..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/patches/002_trinity_customization.diff
+++ /dev/null
@@ -1,231 +0,0 @@
-Customize and repackage as a TDE package.
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -1,6 +1,6 @@
- cmake_minimum_required(VERSION 3.2)
-
--project(uncrustify)
-+project(uncrustify-trinity)
-
- if("${PROJECT_SOURCE_DIR}" STREQUAL "${PROJECT_BINARY_DIR}")
- message(FATAL_ERROR "
-@@ -239,7 +239,7 @@
- #
- # Uncrustify
- #
--set(uncrustify_sources
-+set(uncrustify-trinity_sources
- src/align_add.cpp
- src/align_asm_colon.cpp
- src/align_assign.cpp
-@@ -324,7 +324,7 @@
- ${PROJECT_BINARY_DIR}/src/option_enum.cpp
- )
-
--set(uncrustify_headers
-+set(uncrustify-trinity_headers
- src/add_space_table.h
- src/align_add.h
- src/align_asm_colon.h
-@@ -419,7 +419,7 @@
- ${PROJECT_BINARY_DIR}/uncrustify_version.h
- )
-
--set(uncrustify_docs
-+set(uncrustify-trinity_docs
- "${PROJECT_SOURCE_DIR}/AUTHORS"
- "${PROJECT_SOURCE_DIR}/BUGS"
- "${PROJECT_SOURCE_DIR}/ChangeLog"
-@@ -428,31 +428,31 @@
- "${PROJECT_SOURCE_DIR}/README.md"
- )
-
--add_executable(uncrustify ${uncrustify_sources} ${uncrustify_headers})
--add_dependencies(uncrustify generate_version_header)
-+add_executable(uncrustify-trinity ${uncrustify-trinity_sources} ${uncrustify-trinity_headers})
-+add_dependencies(uncrustify-trinity generate_version_header)
-
- if(CMAKE_VERSION VERSION_LESS 2.8.10)
- if(CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE)
- # Multi-configuration or build type set
-- set_property(TARGET uncrustify APPEND PROPERTY
-+ set_property(TARGET uncrustify-trinity APPEND PROPERTY
- COMPILE_DEFINITIONS_DEBUG DEBUG
- )
- else()
- # Single-configuration with no build type set
-- set_property(TARGET uncrustify APPEND PROPERTY
-+ set_property(TARGET uncrustify-trinity APPEND PROPERTY
- COMPILE_DEFINITIONS DEBUG
- )
- endif()
- else()
-- set_property(TARGET uncrustify APPEND PROPERTY
-+ set_property(TARGET uncrustify-trinity APPEND PROPERTY
- COMPILE_DEFINITIONS $<$<OR:$<CONFIG:Debug>,$<CONFIG:>>:DEBUG>
- )
- endif()
-
- #
--# Generate uncrustify.1
-+# Generate uncrustify-trinity.1
- #
--configure_file(man/uncrustify.1.in uncrustify.1 @ONLY)
-+configure_file(man/uncrustify.1.in uncrustify-trinity.1 @ONLY)
-
- #
- # Generate uncrustify.xml (katepart highlighting file)
-@@ -474,7 +474,7 @@
- #
- OPTION(ENABLE_CODECOVERAGE "Enable code coverage testing support")
- if(ENABLE_CODECOVERAGE)
-- set(CODECOVERAGE_DEPENDS uncrustify)
-+ set(CODECOVERAGE_DEPENDS uncrustify-trinity)
- include(${CMAKE_SOURCE_DIR}/cmake/CodeCoverage.cmake)
- endif(ENABLE_CODECOVERAGE)
-
-@@ -482,10 +482,10 @@
- # Build command to run uncrustify on its own sources
- #
- add_custom_target(format-sources)
--foreach(source IN LISTS uncrustify_sources uncrustify_headers)
-+foreach(source IN LISTS uncrustify-trinity_sources uncrustify-trinity_headers)
- get_filename_component(source_name ${source} NAME)
- add_custom_target(format-${source_name}
-- COMMAND uncrustify
-+ COMMAND uncrustify-trinity
- -c forUncrustifySources.cfg
- -lCPP --no-backup ${source}
- COMMENT "Formatting ${source}"
-@@ -497,7 +497,7 @@
- #
- # Package
- #
--set(CPACK_PACKAGE_NAME "uncrustify")
-+set(CPACK_PACKAGE_NAME "uncrustify-trinity")
- set(CPACK_PACKAGE_VERSION "${UNCRUSTIFY_VERSION}")
- set(CPACK_PACKAGE_VENDOR "Ben Gardner")
- set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Code beautifier")
-@@ -515,8 +515,8 @@
- # Install
- #
- if(MSVC)
-- install(TARGETS uncrustify DESTINATION ".")
-- install(FILES ${uncrustify_docs}
-+ install(TARGETS uncrustify-trinity DESTINATION ".")
-+ install(FILES ${uncrustify-trinity_docs}
- DESTINATION "."
- )
- install(FILES "${PROJECT_SOURCE_DIR}/documentation/htdocs/index.html"
-@@ -528,17 +528,17 @@
- )
- else()
- include(GNUInstallDirs)
-- install(TARGETS uncrustify
-+ install(TARGETS uncrustify-trinity
- RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
- )
-- install(FILES "${CMAKE_CURRENT_BINARY_DIR}/uncrustify.1"
-+ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/uncrustify-trinity.1"
- DESTINATION "${CMAKE_INSTALL_MANDIR}/man1"
- )
- install(DIRECTORY "${PROJECT_SOURCE_DIR}/etc/"
- DESTINATION "${CMAKE_INSTALL_DOCDIR}/examples"
- FILES_MATCHING PATTERN "*.cfg"
- )
-- install(FILES ${uncrustify_docs}
-+ install(FILES ${uncrustify-trinity_docs}
- DESTINATION "${CMAKE_INSTALL_DOCDIR}"
- )
- endif()
---- a/tests/CMakeLists.txt
-+++ b/tests/CMakeLists.txt
-@@ -32,7 +32,7 @@
- add_custom_command(
- OUTPUT ${tests_ctest_file}
- COMMAND ${PYTHON_EXECUTABLE} run_format_tests.py
-- --executable $<TARGET_FILE:uncrustify>
-+ --executable $<TARGET_FILE:uncrustify-trinity>
- --git ${GIT_EXECUTABLE}
- --python ${PYTHON_EXECUTABLE}
- --write-ctest ${tests_ctest_file}
-@@ -48,7 +48,7 @@
- string(REPLACE ".test" "" lang "${suite}")
- add_test(NAME ${lang}
- COMMAND ${PYTHON_EXECUTABLE} run_format_tests.py ${lang}
-- --executable $<TARGET_FILE:uncrustify>
-+ --executable $<TARGET_FILE:uncrustify-trinity>
- -d --git ${GIT_EXECUTABLE}
- --result-dir ${CMAKE_CURRENT_BINARY_DIR}
- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
-@@ -60,7 +60,7 @@
- add_test(
- NAME sources_format
- COMMAND ${PYTHON_EXECUTABLE} run_sources_tests.py
-- --executable $<TARGET_FILE:uncrustify>
-+ --executable $<TARGET_FILE:uncrustify-trinity>
- -d --git ${GIT_EXECUTABLE}
- --result-dir ${CMAKE_CURRENT_BINARY_DIR}
- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
-@@ -72,7 +72,7 @@
- COMMAND ${PYTHON_EXECUTABLE}
- test_cli_options.py
- --config $<CONFIG>
-- --build ${uncrustify_BINARY_DIR}
-+ --build ${uncrustify-trinity_BINARY_DIR}
- --diff
- --test ${CMAKE_CURRENT_BINARY_DIR}/cli
- ${_configs}
-@@ -83,11 +83,11 @@
- COMMAND ${PYTHON_EXECUTABLE}
- test_cli_options.py
- --config $<CONFIG>
-- --build ${uncrustify_BINARY_DIR}
-+ --build ${uncrustify-trinity_BINARY_DIR}
- --apply
- --test ${CMAKE_CURRENT_BINARY_DIR}/cli
-- DEPENDS uncrustify
-+ DEPENDS uncrustify-trinity
- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/cli
- )
-
--add_test(NAME sanity COMMAND uncrustify --help)
-+add_test(NAME sanity COMMAND uncrustify-trinity --help)
---- a/tests/cli/output/help.txt
-+++ b/tests/cli/output/help.txt
-@@ -1,5 +1,5 @@
- Usage:
--uncrustify [options] [files ...]
-+uncrustify-trinity [options] [files ...]
-
- If no input files are specified, the input is read from stdin
- If reading from stdin, you should specify the language using -l
---- a/tests/cli/test_cli_options.py
-+++ b/tests/cli/test_cli_options.py
-@@ -492,16 +492,16 @@
- bd_dir = parsed_args.build
- test_dir = parsed_args.test
-
-- bin_paths = [s_path_join(bd_dir, 'uncrustify'),
-- s_path_join(bd_dir, 'uncrustify.exe'),
-- s_path_join(bd_dir, 'Debug/uncrustify'),
-- s_path_join(bd_dir, 'Debug/uncrustify.exe'),
-- s_path_join(bd_dir, 'Release/uncrustify'),
-- s_path_join(bd_dir, 'Release/uncrustify.exe'),
-- s_path_join(bd_dir, 'RelWithDebInfo/uncrustify'),
-- s_path_join(bd_dir, 'RelWithDebInfo/uncrustify.exe'),
-- s_path_join(bd_dir, 'MinSizeRel/uncrustify'),
-- s_path_join(bd_dir, 'MinSizeRel/uncrustify.exe')]
-+ bin_paths = [s_path_join(bd_dir, 'uncrustify-trinity'),
-+ s_path_join(bd_dir, 'uncrustify-trinity.exe'),
-+ s_path_join(bd_dir, 'Debug/uncrustify-trinity'),
-+ s_path_join(bd_dir, 'Debug/uncrustify-trinity.exe'),
-+ s_path_join(bd_dir, 'Release/uncrustify-trinity'),
-+ s_path_join(bd_dir, 'Release/uncrustify-trinity.exe'),
-+ s_path_join(bd_dir, 'RelWithDebInfo/uncrustify-trinity'),
-+ s_path_join(bd_dir, 'RelWithDebInfo/uncrustify-trinity.exe'),
-+ s_path_join(bd_dir, 'MinSizeRel/uncrustify-trinity'),
-+ s_path_join(bd_dir, 'MinSizeRel/uncrustify-trinity.exe')]
- for uncr_bin in bin_paths:
- if not isfile(uncr_bin):
- eprint("is not a file: %s" % uncr_bin)
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/align-thresholds.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/align-thresholds.txt
deleted file mode 100644
index 4c41f7db..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/align-thresholds.txt
+++ /dev/null
@@ -1,239 +0,0 @@
--------------------------------------------------------------------------------
-Alignment thresholds:
-
-Alignment threshold are used to prevent aligning of certain text.
-
-Consider this example when aligning assignments:
-
- a = 2;
- gld.settings[somevariable] = 5;
-
-Without thresholds, this would result in:
-
- a = 2;
- gld.settings[somevariable] = 5;
-
-However, this is likely not desired.
-
-So to handle this, we set a limit on the number of columns that a alignment
-may move a token. If we set the threshold to, say, 3 characters, then
-the two would not be aligned together because 'a = 2' would have to be moved
-by 25 columns.
-
-Here's a more complicated case:
-
- a = 1;
- bb = 2;
- ccc = 3;
- dddd = 4;
- eeeee = 5;
- ffffff = 6;
-
-In this case, we may want this output:
-
- a = 1;
- bb = 2;
- ccc = 3;
- dddd = 4;
- eeeee = 5;
- ffffff = 6;
-
-But, with a threshold of 3, 'a' and 'ffffff' cannot be aligned together.
-
-So how should these thresholds be implemented?
-
-One approach is to use the threshold as the maximum difference between the
-current maximum and the new maximum. Using this approach, all 6 lines above
-are aligned, because the change for each is 1 column.
-
-Consider this with a line-span of 3 and a column-threshold of 3.
-Note that we'll now need to keep track of the last line processed.
-(line and column numbers added for clarity)
-
- 111111
- 123456789012345
- ---------------
-1 | a = 1;
-2 | eeeee = 5;
-3 | ffffff = 6;
-
-On line 1, the maxcol is set to 3.
-On line 2, the maxcol would be set to 7, except that exceeds the threshold.
-On line 3, the maxcol would be set to 8, except that exceeds the threshold.
-
-So, it ends up with one item in the align stack - line 1.
-Then we pick up from where we left off - on line 2.
-On line 2, the maxcol is set to 7.
-On line 3, the maxcol is set to 8.
-
-End result:
- 111111
- 123456789012345
- ---------------
-1 | a = 1;
-2 | eeeee = 5;
-3 | ffffff = 6;
-
-
-Now lets get tricky.
-
- 111111
- 123456789012345
- ---------------
-1 | a = 1;
-2 | eeeee = 5;
-3 | ccc = 3;
-4 | ffffff = 6;
-
-How should this be aligned?
-I think we need to add another list - a 'skipped' list, that runs in parallel
-with the 'aligned' list.
-
-On line 1, the maxcol is set to 3, added to the aligned list.
-On line 2, col exceeds the threshold, so it is added to the skipped list.
-On line 3, the maxcol is set to 5, added to the aligned list.
-Now, after an item is added to the aligned list, the skipped list must be re-scanned.
-We now see that line 2 is only 2 columns different, so it is added and maxcol = 7.
-The skipped list is now empty.
-On line 4, the maxcol is set to 8, added to the aligned list.
-
-So the output is:
-
- 111111
- 123456789012345
- ---------------
-1 | a = 1;
-2 | eeeee = 5;
-3 | ccc = 3;
-4 | ffffff = 6;
-
-
-Now for a case where the skipped list is not absorbed:
-
- 111111
- 123456789012345
- ---------------
-1 | a = 1;
-2 | iiiiiiiiiiiiieeeee = 5;
-3 | ccc = 3;
-4 | ffffff = 6;
-
-On line 1, the maxcol is set to 3, added to the aligned list.
-On line 2, col exceeds the threshold, so it is added to the skipped list.
-On line 3, the maxcol is set to 5, added to the aligned list.
-Skipped list is scanned, nothing moved from the skipped list to the aligned list.
-On line 4, the maxcol is set to 8, added to the aligned list.
-
-So the output is:
-
- 111111
- 123456789012345
- ---------------
-1 | a = 1;
-2 | iiiiiiiiiiiiieeeee = 5;
-3 | ccc = 3;
-4 | ffffff = 6;
-
-As a reminder, the old system would have produced:
-
-1 | a = 1;
-2 | iiiiiiiiiiiiieeeee = 5;
-3 | ccc = 3;
-4 | ffffff = 6;
-
-Which is probably not wanted.
-
-
---===---===---===---===--
-Absolute thresholds
-To get a better grip on what thresholds do the absolute thresholds were introduced.
-An absolute threshold means that the item, in this case the assign statement, is never
-moved more than the threshold value.
-
-See the below example:
-Relative threshold = 10
- 000000000111111111122222222223
- 123456789012345678901234567890
-1| a = 1
-2| aaaaa = 1
-3| bbbbbbbbbbb = 2
-4| ccccccccccccccccccccc = 3
-
-Absolute threshold:
- 000000000111111111122222222223
- 123456789012345678901234567890
-1| a = 1
-2| aaaaa = 1
-3| bbbbbbbbbbb = 2
-4| cccccccccccccccccccc = 3
-
---===---===---===---===--
-How to do this generically in the code...
-
-Easy case - one item per line.
-
-Here's the functions and what each do:
-align_start(line_span, col_thresh)
-align_add(pc)
-align_flush()
-align_newline(count)
-align_end()
-
-For each entry, a sequence number is kept.
-
-align_start(line_span, col_thresh)
- - initializes the align and skipped lists
- - zero max_column
- - zero cur_seqnum
- - zero nl_count
-
-align_add(pc)
- - update cur_seqnum, assign to item
- - if item column is within threshold
- - zero nl_count
- - add to the aligned list
- - if item column is > max_col
- - update max_col
- - re-adds all items on the skipped list
- - if item column is not within threshold, add to skipped list
-
-align_newline(count)
- - adds count to nl_count
- - if nl_count > line_span, call align_flush()
-
-align_flush()
- - step through all the items in aligned list and align the items to max_column
- - keep the seq_num of the last aligned item
- - zero max_column
- - remove all items with a seq_num < last aligned seq_num
- - call align_add on all remaining items in the skipped list
-
-align_end()
- - call align_flush
- - clear the lists
- - free resources, etc
-
-Example usage: Aligning trailing comments
-
-void align_trailing_comments(void)
-{
- chunk_t *pc;
-
- align_start(cpd.settings[UO_align_right_cmt_span],
- cpd.settings[UO_align_right_cmt_thresh]);
-
- for(pc = chunk_get_head(); pc != NULL; pc = chunk_get_next(pc))
- {
- if ((pc->flags & PCF_RIGHT_COMMENT) != 0)
- {
- align_add(pc);
- }
- else if (chunk_is_newline(pc))
- {
- align_newline(pc->nl_count);
- }
- }
-
- align_end();
-}
-
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/config.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/config.txt
deleted file mode 100644
index 8e907784..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/config.txt
+++ /dev/null
@@ -1,3371 +0,0 @@
-# Uncrustify-0.74.0
-
-#
-# General options
-#
-
-# The type of line endings.
-#
-# Default: auto
-newlines = auto # lf/crlf/cr/auto
-
-# The original size of tabs in the input.
-#
-# Default: 8
-input_tab_size = 8 # unsigned number
-
-# The size of tabs in the output (only used if align_with_tabs=true).
-#
-# Default: 8
-output_tab_size = 8 # unsigned number
-
-# The ASCII value of the string escape char, usually 92 (\) or (Pawn) 94 (^).
-#
-# Default: 92
-string_escape_char = 92 # unsigned number
-
-# Alternate string escape char (usually only used for Pawn).
-# Only works right before the quote char.
-string_escape_char2 = 0 # unsigned number
-
-# Replace tab characters found in string literals with the escape sequence \t
-# instead.
-string_replace_tab_chars = false # true/false
-
-# Allow interpreting '>=' and '>>=' as part of a template in code like
-# 'void f(list<list<B>>=val);'. If true, 'assert(x<0 && y>=3)' will be broken.
-# Improvements to template detection may make this option obsolete.
-tok_split_gte = false # true/false
-
-# Disable formatting of NL_CONT ('\\n') ended lines (e.g. multi-line macros).
-disable_processing_nl_cont = false # true/false
-
-# Specify the marker used in comments to disable processing of part of the
-# file.
-#
-# Default: *INDENT-OFF*
-disable_processing_cmt = " *INDENT-OFF*" # string
-
-# Specify the marker used in comments to (re)enable processing in a file.
-#
-# Default: *INDENT-ON*
-enable_processing_cmt = " *INDENT-ON*" # string
-
-# Enable parsing of digraphs.
-enable_digraphs = false # true/false
-
-# Option to allow both disable_processing_cmt and enable_processing_cmt
-# strings, if specified, to be interpreted as ECMAScript regular expressions.
-# If true, a regex search will be performed within comments according to the
-# specified patterns in order to disable/enable processing.
-processing_cmt_as_regex = false # true/false
-
-# Add or remove the UTF-8 BOM (recommend 'remove').
-utf8_bom = ignore # ignore/add/remove/force/not_defined
-
-# If the file contains bytes with values between 128 and 255, but is not
-# UTF-8, then output as UTF-8.
-utf8_byte = false # true/false
-
-# Force the output encoding to UTF-8.
-utf8_force = false # true/false
-
-#
-# Spacing options
-#
-
-# Add or remove space around non-assignment symbolic operators ('+', '/', '%',
-# '<<', and so forth).
-sp_arith = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space around arithmetic operators '+' and '-'.
-#
-# Overrides sp_arith.
-sp_arith_additive = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space around assignment operator '=', '+=', etc.
-sp_assign = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space around '=' in C++11 lambda capture specifications.
-#
-# Overrides sp_assign.
-sp_cpp_lambda_assign = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after the capture specification of a C++11 lambda when
-# an argument list is present, as in '[] <here> (int x){ ... }'.
-sp_cpp_lambda_square_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after the capture specification of a C++11 lambda with
-# no argument list is present, as in '[] <here> { ... }'.
-sp_cpp_lambda_square_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after the opening parenthesis and before the closing
-# parenthesis of a argument list of a C++11 lambda, as in
-# '[]( <here> int x <here> ){ ... }'.
-sp_cpp_lambda_argument_list = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after the argument list of a C++11 lambda, as in
-# '[](int x) <here> { ... }'.
-sp_cpp_lambda_paren_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between a lambda body and its call operator of an
-# immediately invoked lambda, as in '[]( ... ){ ... } <here> ( ... )'.
-sp_cpp_lambda_fparen = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space around assignment operator '=' in a prototype.
-#
-# If set to ignore, use sp_assign.
-sp_assign_default = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before assignment operator '=', '+=', etc.
-#
-# Overrides sp_assign.
-sp_before_assign = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after assignment operator '=', '+=', etc.
-#
-# Overrides sp_assign.
-sp_after_assign = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space in 'NS_ENUM ('.
-sp_enum_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space around assignment '=' in enum.
-sp_enum_assign = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before assignment '=' in enum.
-#
-# Overrides sp_enum_assign.
-sp_enum_before_assign = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after assignment '=' in enum.
-#
-# Overrides sp_enum_assign.
-sp_enum_after_assign = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space around assignment ':' in enum.
-sp_enum_colon = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space around preprocessor '##' concatenation operator.
-#
-# Default: add
-sp_pp_concat = add # ignore/add/remove/force/not_defined
-
-# Add or remove space after preprocessor '#' stringify operator.
-# Also affects the '#@' charizing operator.
-sp_pp_stringify = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before preprocessor '#' stringify operator
-# as in '#define x(y) L#y'.
-sp_before_pp_stringify = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space around boolean operators '&&' and '||'.
-sp_bool = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space around compare operator '<', '>', '==', etc.
-sp_compare = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space inside '(' and ')'.
-sp_inside_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between nested parentheses, i.e. '((' vs. ') )'.
-sp_paren_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between back-to-back parentheses, i.e. ')(' vs. ') ('.
-sp_cparen_oparen = ignore # ignore/add/remove/force/not_defined
-
-# Whether to balance spaces inside nested parentheses.
-sp_balance_nested_parens = false # true/false
-
-# Add or remove space between ')' and '{'.
-sp_paren_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between nested braces, i.e. '{{' vs. '{ {'.
-sp_brace_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before pointer star '*'.
-sp_before_ptr_star = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before pointer star '*' that isn't followed by a
-# variable name. If set to ignore, sp_before_ptr_star is used instead.
-sp_before_unnamed_ptr_star = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between pointer stars '*', as in 'int ***a;'.
-sp_between_ptr_star = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after pointer star '*', if followed by a word.
-#
-# Overrides sp_type_func.
-sp_after_ptr_star = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after pointer caret '^', if followed by a word.
-sp_after_ptr_block_caret = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after pointer star '*', if followed by a qualifier.
-sp_after_ptr_star_qualifier = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after a pointer star '*', if followed by a function
-# prototype or function definition.
-#
-# Overrides sp_after_ptr_star and sp_type_func.
-sp_after_ptr_star_func = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after a pointer star '*' in the trailing return of a
-# function prototype or function definition.
-sp_after_ptr_star_trailing = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between the pointer star '*' and the name of the variable
-# in a function pointer definition.
-sp_ptr_star_func_var = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after a pointer star '*', if followed by an open
-# parenthesis, as in 'void* (*)()'.
-sp_ptr_star_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before a pointer star '*', if followed by a function
-# prototype or function definition.
-sp_before_ptr_star_func = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before a pointer star '*' in the trailing return of a
-# function prototype or function definition.
-sp_before_ptr_star_trailing = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before a reference sign '&'.
-sp_before_byref = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before a reference sign '&' that isn't followed by a
-# variable name. If set to ignore, sp_before_byref is used instead.
-sp_before_unnamed_byref = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after reference sign '&', if followed by a word.
-#
-# Overrides sp_type_func.
-sp_after_byref = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after a reference sign '&', if followed by a function
-# prototype or function definition.
-#
-# Overrides sp_after_byref and sp_type_func.
-sp_after_byref_func = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before a reference sign '&', if followed by a function
-# prototype or function definition.
-sp_before_byref_func = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between type and word. In cases where total removal of
-# whitespace would be a syntax error, a value of 'remove' is treated the same
-# as 'force'.
-#
-# This also affects some other instances of space following a type that are
-# not covered by other options; for example, between the return type and
-# parenthesis of a function type template argument, between the type and
-# parenthesis of an array parameter, or between 'decltype(...)' and the
-# following word.
-#
-# Default: force
-sp_after_type = force # ignore/add/remove/force/not_defined
-
-# Add or remove space between 'decltype(...)' and word,
-# brace or function call.
-sp_after_decltype = ignore # ignore/add/remove/force/not_defined
-
-# (D) Add or remove space before the parenthesis in the D constructs
-# 'template Foo(' and 'class Foo('.
-sp_before_template_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between 'template' and '<'.
-# If set to ignore, sp_before_angle is used.
-sp_template_angle = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before '<'.
-sp_before_angle = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space inside '<' and '>'.
-sp_inside_angle = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space inside '<>'.
-sp_inside_angle_empty = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between '>' and ':'.
-sp_angle_colon = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after '>'.
-sp_after_angle = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between '>' and '(' as found in 'new List<byte>(foo);'.
-sp_angle_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between '>' and '()' as found in 'new List<byte>();'.
-sp_angle_paren_empty = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between '>' and a word as in 'List<byte> m;' or
-# 'template <typename T> static ...'.
-sp_angle_word = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between '>' and '>' in '>>' (template stuff).
-#
-# Default: add
-sp_angle_shift = add # ignore/add/remove/force/not_defined
-
-# (C++11) Permit removal of the space between '>>' in 'foo<bar<int> >'. Note
-# that sp_angle_shift cannot remove the space without this option.
-sp_permit_cpp11_shift = false # true/false
-
-# Add or remove space before '(' of control statements ('if', 'for', 'switch',
-# 'while', etc.).
-sp_before_sparen = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space inside '(' and ')' of control statements other than
-# 'for'.
-sp_inside_sparen = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after '(' of control statements other than 'for'.
-#
-# Overrides sp_inside_sparen.
-sp_inside_sparen_open = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before ')' of control statements other than 'for'.
-#
-# Overrides sp_inside_sparen.
-sp_inside_sparen_close = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space inside '(' and ')' of 'for' statements.
-sp_inside_for = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after '(' of 'for' statements.
-#
-# Overrides sp_inside_for.
-sp_inside_for_open = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before ')' of 'for' statements.
-#
-# Overrides sp_inside_for.
-sp_inside_for_close = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between '((' or '))' of control statements.
-sp_sparen_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after ')' of control statements.
-sp_after_sparen = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between ')' and '{' of control statements.
-sp_sparen_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between 'do' and '{'.
-sp_do_brace_open = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between '}' and 'while'.
-sp_brace_close_while = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between 'while' and '('. Overrides sp_before_sparen.
-sp_while_paren_open = ignore # ignore/add/remove/force/not_defined
-
-# (D) Add or remove space between 'invariant' and '('.
-sp_invariant_paren = ignore # ignore/add/remove/force/not_defined
-
-# (D) Add or remove space after the ')' in 'invariant (C) c'.
-sp_after_invariant_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before empty statement ';' on 'if', 'for' and 'while'.
-sp_special_semi = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before ';'.
-#
-# Default: remove
-sp_before_semi = remove # ignore/add/remove/force/not_defined
-
-# Add or remove space before ';' in non-empty 'for' statements.
-sp_before_semi_for = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before a semicolon of an empty left part of a for
-# statement, as in 'for ( <here> ; ; )'.
-sp_before_semi_for_empty = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between the semicolons of an empty middle part of a for
-# statement, as in 'for ( ; <here> ; )'.
-sp_between_semi_for_empty = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after ';', except when followed by a comment.
-#
-# Default: add
-sp_after_semi = add # ignore/add/remove/force/not_defined
-
-# Add or remove space after ';' in non-empty 'for' statements.
-#
-# Default: force
-sp_after_semi_for = force # ignore/add/remove/force/not_defined
-
-# Add or remove space after the final semicolon of an empty part of a for
-# statement, as in 'for ( ; ; <here> )'.
-sp_after_semi_for_empty = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before '[' (except '[]').
-sp_before_square = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before '[' for a variable definition.
-#
-# Default: remove
-sp_before_vardef_square = remove # ignore/add/remove/force/not_defined
-
-# Add or remove space before '[' for asm block.
-sp_before_square_asm_block = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before '[]'.
-sp_before_squares = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before C++17 structured bindings.
-sp_cpp_before_struct_binding = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space inside a non-empty '[' and ']'.
-sp_inside_square = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space inside '[]'.
-sp_inside_square_empty = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space inside a non-empty Objective-C boxed array '@[' and
-# ']'. If set to ignore, sp_inside_square is used.
-sp_inside_square_oc_array = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after ',', i.e. 'a,b' vs. 'a, b'.
-sp_after_comma = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before ',', i.e. 'a,b' vs. 'a ,b'.
-#
-# Default: remove
-sp_before_comma = remove # ignore/add/remove/force/not_defined
-
-# (C#) Add or remove space between ',' and ']' in multidimensional array type
-# like 'int[,,]'.
-sp_after_mdatype_commas = ignore # ignore/add/remove/force/not_defined
-
-# (C#) Add or remove space between '[' and ',' in multidimensional array type
-# like 'int[,,]'.
-sp_before_mdatype_commas = ignore # ignore/add/remove/force/not_defined
-
-# (C#) Add or remove space between ',' in multidimensional array type
-# like 'int[,,]'.
-sp_between_mdatype_commas = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between an open parenthesis and comma,
-# i.e. '(,' vs. '( ,'.
-#
-# Default: force
-sp_paren_comma = force # ignore/add/remove/force/not_defined
-
-# Add or remove space after the variadic '...' when preceded by a
-# non-punctuator.
-# The value REMOVE will be overriden with FORCE
-sp_after_ellipsis = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before the variadic '...' when preceded by a
-# non-punctuator.
-# The value REMOVE will be overriden with FORCE
-sp_before_ellipsis = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between a type and '...'.
-sp_type_ellipsis = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between a '*' and '...'.
-sp_ptr_type_ellipsis = ignore # ignore/add/remove/force/not_defined
-
-# (D) Add or remove space between a type and '?'.
-sp_type_question = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between ')' and '...'.
-sp_paren_ellipsis = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between '&&' and '...'.
-sp_byref_ellipsis = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between ')' and a qualifier such as 'const'.
-sp_paren_qualifier = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between ')' and 'noexcept'.
-sp_paren_noexcept = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after class ':'.
-sp_after_class_colon = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before class ':'.
-sp_before_class_colon = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after class constructor ':'.
-#
-# Default: add
-sp_after_constr_colon = add # ignore/add/remove/force/not_defined
-
-# Add or remove space before class constructor ':'.
-#
-# Default: add
-sp_before_constr_colon = add # ignore/add/remove/force/not_defined
-
-# Add or remove space before case ':'.
-#
-# Default: remove
-sp_before_case_colon = remove # ignore/add/remove/force/not_defined
-
-# Add or remove space between 'operator' and operator sign.
-sp_after_operator = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between the operator symbol and the open parenthesis, as
-# in 'operator ++('.
-sp_after_operator_sym = ignore # ignore/add/remove/force/not_defined
-
-# Overrides sp_after_operator_sym when the operator has no arguments, as in
-# 'operator *()'.
-sp_after_operator_sym_empty = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after C/D cast, i.e. 'cast(int)a' vs. 'cast(int) a' or
-# '(int)a' vs. '(int) a'.
-sp_after_cast = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove spaces inside cast parentheses.
-sp_inside_paren_cast = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between the type and open parenthesis in a C++ cast,
-# i.e. 'int(exp)' vs. 'int (exp)'.
-sp_cpp_cast_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between 'sizeof' and '('.
-sp_sizeof_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between 'sizeof' and '...'.
-sp_sizeof_ellipsis = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between 'sizeof...' and '('.
-sp_sizeof_ellipsis_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between '...' and a parameter pack.
-sp_ellipsis_parameter_pack = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between a parameter pack and '...'.
-sp_parameter_pack_ellipsis = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between 'decltype' and '('.
-sp_decltype_paren = ignore # ignore/add/remove/force/not_defined
-
-# (Pawn) Add or remove space after the tag keyword.
-sp_after_tag = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space inside enum '{' and '}'.
-sp_inside_braces_enum = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space inside struct/union '{' and '}'.
-sp_inside_braces_struct = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space inside Objective-C boxed dictionary '{' and '}'
-sp_inside_braces_oc_dict = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after open brace in an unnamed temporary
-# direct-list-initialization
-# if statement is a brace_init_lst
-# works only if sp_brace_brace is set to ignore.
-sp_after_type_brace_init_lst_open = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before close brace in an unnamed temporary
-# direct-list-initialization
-# if statement is a brace_init_lst
-# works only if sp_brace_brace is set to ignore.
-sp_before_type_brace_init_lst_close = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space inside an unnamed temporary direct-list-initialization
-# if statement is a brace_init_lst
-# works only if sp_brace_brace is set to ignore
-# works only if sp_before_type_brace_init_lst_close is set to ignore.
-sp_inside_type_brace_init_lst = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space inside '{' and '}'.
-sp_inside_braces = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space inside '{}'.
-sp_inside_braces_empty = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space around trailing return operator '->'.
-sp_trailing_return = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between return type and function name. A minimum of 1
-# is forced except for pointer return types.
-sp_type_func = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between type and open brace of an unnamed temporary
-# direct-list-initialization.
-sp_type_brace_init_lst = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between function name and '(' on function declaration.
-sp_func_proto_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between function name and '()' on function declaration
-# without parameters.
-sp_func_proto_paren_empty = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between function name and '(' with a typedef specifier.
-sp_func_type_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between alias name and '(' of a non-pointer function type typedef.
-sp_func_def_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between function name and '()' on function definition
-# without parameters.
-sp_func_def_paren_empty = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space inside empty function '()'.
-# Overrides sp_after_angle unless use_sp_after_angle_always is set to true.
-sp_inside_fparens = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space inside function '(' and ')'.
-sp_inside_fparen = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space inside the first parentheses in a function type, as in
-# 'void (*x)(...)'.
-sp_inside_tparen = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between the ')' and '(' in a function type, as in
-# 'void (*x)(...)'.
-sp_after_tparen_close = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between ']' and '(' when part of a function call.
-sp_square_fparen = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between ')' and '{' of function.
-sp_fparen_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between ')' and '{' of a function call in object
-# initialization.
-#
-# Overrides sp_fparen_brace.
-sp_fparen_brace_initializer = ignore # ignore/add/remove/force/not_defined
-
-# (Java) Add or remove space between ')' and '{{' of double brace initializer.
-sp_fparen_dbrace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between function name and '(' on function calls.
-sp_func_call_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between function name and '()' on function calls without
-# parameters. If set to ignore (the default), sp_func_call_paren is used.
-sp_func_call_paren_empty = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between the user function name and '(' on function
-# calls. You need to set a keyword to be a user function in the config file,
-# like:
-# set func_call_user tr _ i18n
-sp_func_call_user_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space inside user function '(' and ')'.
-sp_func_call_user_inside_fparen = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between nested parentheses with user functions,
-# i.e. '((' vs. '( ('.
-sp_func_call_user_paren_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between a constructor/destructor and the open
-# parenthesis.
-sp_func_class_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between a constructor without parameters or destructor
-# and '()'.
-sp_func_class_paren_empty = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after 'return'.
-#
-# Default: force
-sp_return = force # ignore/add/remove/force/not_defined
-
-# Add or remove space between 'return' and '('.
-sp_return_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between 'return' and '{'.
-sp_return_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between '__attribute__' and '('.
-sp_attribute_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between 'defined' and '(' in '#if defined (FOO)'.
-sp_defined_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between 'throw' and '(' in 'throw (something)'.
-sp_throw_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between 'throw' and anything other than '(' as in
-# '@throw [...];'.
-sp_after_throw = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between 'catch' and '(' in 'catch (something) { }'.
-# If set to ignore, sp_before_sparen is used.
-sp_catch_paren = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space between '@catch' and '('
-# in '@catch (something) { }'. If set to ignore, sp_catch_paren is used.
-sp_oc_catch_paren = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space before Objective-C protocol list
-# as in '@protocol Protocol<here><Protocol_A>' or '@interface MyClass : NSObject<here><MyProtocol>'.
-sp_before_oc_proto_list = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space between class name and '('
-# in '@interface className(categoryName)<ProtocolName>:BaseClass'
-sp_oc_classname_paren = ignore # ignore/add/remove/force/not_defined
-
-# (D) Add or remove space between 'version' and '('
-# in 'version (something) { }'. If set to ignore, sp_before_sparen is used.
-sp_version_paren = ignore # ignore/add/remove/force/not_defined
-
-# (D) Add or remove space between 'scope' and '('
-# in 'scope (something) { }'. If set to ignore, sp_before_sparen is used.
-sp_scope_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between 'super' and '(' in 'super (something)'.
-#
-# Default: remove
-sp_super_paren = remove # ignore/add/remove/force/not_defined
-
-# Add or remove space between 'this' and '(' in 'this (something)'.
-#
-# Default: remove
-sp_this_paren = remove # ignore/add/remove/force/not_defined
-
-# Add or remove space between a macro name and its definition.
-sp_macro = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between a macro function ')' and its definition.
-sp_macro_func = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between 'else' and '{' if on the same line.
-sp_else_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between '}' and 'else' if on the same line.
-sp_brace_else = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between '}' and the name of a typedef on the same line.
-sp_brace_typedef = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before the '{' of a 'catch' statement, if the '{' and
-# 'catch' are on the same line, as in 'catch (decl) <here> {'.
-sp_catch_brace = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space before the '{' of a '@catch' statement, if the '{'
-# and '@catch' are on the same line, as in '@catch (decl) <here> {'.
-# If set to ignore, sp_catch_brace is used.
-sp_oc_catch_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between '}' and 'catch' if on the same line.
-sp_brace_catch = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space between '}' and '@catch' if on the same line.
-# If set to ignore, sp_brace_catch is used.
-sp_oc_brace_catch = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between 'finally' and '{' if on the same line.
-sp_finally_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between '}' and 'finally' if on the same line.
-sp_brace_finally = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between 'try' and '{' if on the same line.
-sp_try_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between get/set and '{' if on the same line.
-sp_getset_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between a variable and '{' for C++ uniform
-# initialization.
-sp_word_brace_init_lst = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between a variable and '{' for a namespace.
-#
-# Default: add
-sp_word_brace_ns = add # ignore/add/remove/force/not_defined
-
-# Add or remove space before the '::' operator.
-sp_before_dc = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after the '::' operator.
-sp_after_dc = ignore # ignore/add/remove/force/not_defined
-
-# (D) Add or remove around the D named array initializer ':' operator.
-sp_d_array_colon = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after the '!' (not) unary operator.
-#
-# Default: remove
-sp_not = remove # ignore/add/remove/force/not_defined
-
-# Add or remove space after the '~' (invert) unary operator.
-#
-# Default: remove
-sp_inv = remove # ignore/add/remove/force/not_defined
-
-# Add or remove space after the '&' (address-of) unary operator. This does not
-# affect the spacing after a '&' that is part of a type.
-#
-# Default: remove
-sp_addr = remove # ignore/add/remove/force/not_defined
-
-# Add or remove space around the '.' or '->' operators.
-#
-# Default: remove
-sp_member = remove # ignore/add/remove/force/not_defined
-
-# Add or remove space after the '*' (dereference) unary operator. This does
-# not affect the spacing after a '*' that is part of a type.
-#
-# Default: remove
-sp_deref = remove # ignore/add/remove/force/not_defined
-
-# Add or remove space after '+' or '-', as in 'x = -5' or 'y = +7'.
-#
-# Default: remove
-sp_sign = remove # ignore/add/remove/force/not_defined
-
-# Add or remove space between '++' and '--' the word to which it is being
-# applied, as in '(--x)' or 'y++;'.
-#
-# Default: remove
-sp_incdec = remove # ignore/add/remove/force/not_defined
-
-# Add or remove space before a backslash-newline at the end of a line.
-#
-# Default: add
-sp_before_nl_cont = add # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space after the scope '+' or '-', as in '-(void) foo;'
-# or '+(int) bar;'.
-sp_after_oc_scope = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space after the colon in message specs,
-# i.e. '-(int) f:(int) x;' vs. '-(int) f: (int) x;'.
-sp_after_oc_colon = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space before the colon in message specs,
-# i.e. '-(int) f: (int) x;' vs. '-(int) f : (int) x;'.
-sp_before_oc_colon = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space after the colon in immutable dictionary expression
-# 'NSDictionary *test = @{@"foo" :@"bar"};'.
-sp_after_oc_dict_colon = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space before the colon in immutable dictionary expression
-# 'NSDictionary *test = @{@"foo" :@"bar"};'.
-sp_before_oc_dict_colon = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space after the colon in message specs,
-# i.e. '[object setValue:1];' vs. '[object setValue: 1];'.
-sp_after_send_oc_colon = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space before the colon in message specs,
-# i.e. '[object setValue:1];' vs. '[object setValue :1];'.
-sp_before_send_oc_colon = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space after the (type) in message specs,
-# i.e. '-(int)f: (int) x;' vs. '-(int)f: (int)x;'.
-sp_after_oc_type = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space after the first (type) in message specs,
-# i.e. '-(int) f:(int)x;' vs. '-(int)f:(int)x;'.
-sp_after_oc_return_type = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space between '@selector' and '(',
-# i.e. '@selector(msgName)' vs. '@selector (msgName)'.
-# Also applies to '@protocol()' constructs.
-sp_after_oc_at_sel = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space between '@selector(x)' and the following word,
-# i.e. '@selector(foo) a:' vs. '@selector(foo)a:'.
-sp_after_oc_at_sel_parens = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space inside '@selector' parentheses,
-# i.e. '@selector(foo)' vs. '@selector( foo )'.
-# Also applies to '@protocol()' constructs.
-sp_inside_oc_at_sel_parens = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space before a block pointer caret,
-# i.e. '^int (int arg){...}' vs. ' ^int (int arg){...}'.
-sp_before_oc_block_caret = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space after a block pointer caret,
-# i.e. '^int (int arg){...}' vs. '^ int (int arg){...}'.
-sp_after_oc_block_caret = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space between the receiver and selector in a message,
-# as in '[receiver selector ...]'.
-sp_after_oc_msg_receiver = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space after '@property'.
-sp_after_oc_property = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space between '@synchronized' and the open parenthesis,
-# i.e. '@synchronized(foo)' vs. '@synchronized (foo)'.
-sp_after_oc_synchronized = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space around the ':' in 'b ? t : f'.
-sp_cond_colon = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before the ':' in 'b ? t : f'.
-#
-# Overrides sp_cond_colon.
-sp_cond_colon_before = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after the ':' in 'b ? t : f'.
-#
-# Overrides sp_cond_colon.
-sp_cond_colon_after = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space around the '?' in 'b ? t : f'.
-sp_cond_question = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before the '?' in 'b ? t : f'.
-#
-# Overrides sp_cond_question.
-sp_cond_question_before = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after the '?' in 'b ? t : f'.
-#
-# Overrides sp_cond_question.
-sp_cond_question_after = ignore # ignore/add/remove/force/not_defined
-
-# In the abbreviated ternary form '(a ?: b)', add or remove space between '?'
-# and ':'.
-#
-# Overrides all other sp_cond_* options.
-sp_cond_ternary_short = ignore # ignore/add/remove/force/not_defined
-
-# Fix the spacing between 'case' and the label. Only 'ignore' and 'force' make
-# sense here.
-sp_case_label = ignore # ignore/add/remove/force/not_defined
-
-# (D) Add or remove space around the D '..' operator.
-sp_range = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after ':' in a Java/C++11 range-based 'for',
-# as in 'for (Type var : <here> expr)'.
-sp_after_for_colon = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before ':' in a Java/C++11 range-based 'for',
-# as in 'for (Type var <here> : expr)'.
-sp_before_for_colon = ignore # ignore/add/remove/force/not_defined
-
-# (D) Add or remove space between 'extern' and '(' as in 'extern <here> (C)'.
-sp_extern_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after the opening of a C++ comment, as in '// <here> A'.
-sp_cmt_cpp_start = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space in a C++ region marker comment, as in '// <here> BEGIN'.
-# A region marker is defined as a comment which is not preceded by other text
-# (i.e. the comment is the first non-whitespace on the line), and which starts
-# with either 'BEGIN' or 'END'.
-#
-# Overrides sp_cmt_cpp_start.
-sp_cmt_cpp_region = ignore # ignore/add/remove/force/not_defined
-
-# If true, space added with sp_cmt_cpp_start will be added after Doxygen
-# sequences like '///', '///<', '//!' and '//!<'.
-sp_cmt_cpp_doxygen = false # true/false
-
-# If true, space added with sp_cmt_cpp_start will be added after Qt translator
-# or meta-data comments like '//:', '//=', and '//~'.
-sp_cmt_cpp_qttr = false # true/false
-
-# Add or remove space between #else or #endif and a trailing comment.
-sp_endif_cmt = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after 'new', 'delete' and 'delete[]'.
-sp_after_new = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between 'new' and '(' in 'new()'.
-sp_between_new_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between ')' and type in 'new(foo) BAR'.
-sp_after_newop_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space inside parenthesis of the new operator
-# as in 'new(foo) BAR'.
-sp_inside_newop_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after the open parenthesis of the new operator,
-# as in 'new(foo) BAR'.
-#
-# Overrides sp_inside_newop_paren.
-sp_inside_newop_paren_open = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before the close parenthesis of the new operator,
-# as in 'new(foo) BAR'.
-#
-# Overrides sp_inside_newop_paren.
-sp_inside_newop_paren_close = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before a trailing comment.
-sp_before_tr_cmt = ignore # ignore/add/remove/force/not_defined
-
-# Number of spaces before a trailing comment.
-sp_num_before_tr_cmt = 0 # unsigned number
-
-# Add or remove space before an embedded comment.
-#
-# Default: force
-sp_before_emb_cmt = force # ignore/add/remove/force/not_defined
-
-# Number of spaces before an embedded comment.
-#
-# Default: 1
-sp_num_before_emb_cmt = 1 # unsigned number
-
-# Add or remove space after an embedded comment.
-#
-# Default: force
-sp_after_emb_cmt = force # ignore/add/remove/force/not_defined
-
-# Number of spaces after an embedded comment.
-#
-# Default: 1
-sp_num_after_emb_cmt = 1 # unsigned number
-
-# (Java) Add or remove space between an annotation and the open parenthesis.
-sp_annotation_paren = ignore # ignore/add/remove/force/not_defined
-
-# If true, vbrace tokens are dropped to the previous token and skipped.
-sp_skip_vbrace_tokens = false # true/false
-
-# Add or remove space after 'noexcept'.
-sp_after_noexcept = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after '_'.
-sp_vala_after_translation = ignore # ignore/add/remove/force/not_defined
-
-# If true, a <TAB> is inserted after #define.
-force_tab_after_define = false # true/false
-
-#
-# Indenting options
-#
-
-# The number of columns to indent per level. Usually 2, 3, 4, or 8.
-#
-# Default: 8
-indent_columns = 8 # unsigned number
-
-# The continuation indent. If non-zero, this overrides the indent of '(', '['
-# and '=' continuation indents. Negative values are OK; negative value is
-# absolute and not increased for each '(' or '[' level.
-#
-# For FreeBSD, this is set to 4.
-indent_continue = 0 # number
-
-# The continuation indent, only for class header line(s). If non-zero, this
-# overrides the indent of 'class' continuation indents.
-indent_continue_class_head = 0 # unsigned number
-
-# Whether to indent empty lines (i.e. lines which contain only spaces before
-# the newline character).
-indent_single_newlines = false # true/false
-
-# The continuation indent for func_*_param if they are true. If non-zero, this
-# overrides the indent.
-indent_param = 0 # unsigned number
-
-# How to use tabs when indenting code.
-#
-# 0: Spaces only
-# 1: Indent with tabs to brace level, align with spaces (default)
-# 2: Indent and align with tabs, using spaces when not on a tabstop
-#
-# Default: 1
-indent_with_tabs = 1 # unsigned number
-
-# Whether to indent comments that are not at a brace level with tabs on a
-# tabstop. Requires indent_with_tabs=2. If false, will use spaces.
-indent_cmt_with_tabs = false # true/false
-
-# Whether to indent strings broken by '\' so that they line up.
-indent_align_string = false # true/false
-
-# The number of spaces to indent multi-line XML strings.
-# Requires indent_align_string=true.
-indent_xml_string = 0 # unsigned number
-
-# Spaces to indent '{' from level.
-indent_brace = 0 # unsigned number
-
-# Whether braces are indented to the body level.
-indent_braces = false # true/false
-
-# Whether to disable indenting function braces if indent_braces=true.
-indent_braces_no_func = false # true/false
-
-# Whether to disable indenting class braces if indent_braces=true.
-indent_braces_no_class = false # true/false
-
-# Whether to disable indenting struct braces if indent_braces=true.
-indent_braces_no_struct = false # true/false
-
-# Whether to indent based on the size of the brace parent,
-# i.e. 'if' => 3 spaces, 'for' => 4 spaces, etc.
-indent_brace_parent = false # true/false
-
-# Whether to indent based on the open parenthesis instead of the open brace
-# in '({\n'.
-indent_paren_open_brace = false # true/false
-
-# (C#) Whether to indent the brace of a C# delegate by another level.
-indent_cs_delegate_brace = false # true/false
-
-# (C#) Whether to indent a C# delegate (to handle delegates with no brace) by
-# another level.
-indent_cs_delegate_body = false # true/false
-
-# Whether to indent the body of a 'namespace'.
-indent_namespace = false # true/false
-
-# Whether to indent only the first namespace, and not any nested namespaces.
-# Requires indent_namespace=true.
-indent_namespace_single_indent = false # true/false
-
-# The number of spaces to indent a namespace block.
-# If set to zero, use the value indent_columns
-indent_namespace_level = 0 # unsigned number
-
-# If the body of the namespace is longer than this number, it won't be
-# indented. Requires indent_namespace=true. 0 means no limit.
-indent_namespace_limit = 0 # unsigned number
-
-# Whether the 'extern "C"' body is indented.
-indent_extern = false # true/false
-
-# Whether the 'class' body is indented.
-indent_class = false # true/false
-
-# Additional indent before the leading base class colon.
-# Negative values decrease indent down to the first column.
-# Requires a newline break before colon (see pos_class_colon
-# and nl_class_colon)
-indent_before_class_colon = 0 # number
-
-# Whether to indent the stuff after a leading base class colon.
-indent_class_colon = false # true/false
-
-# Whether to indent based on a class colon instead of the stuff after the
-# colon. Requires indent_class_colon=true.
-indent_class_on_colon = false # true/false
-
-# Whether to indent the stuff after a leading class initializer colon.
-indent_constr_colon = false # true/false
-
-# Virtual indent from the ':' for leading member initializers.
-#
-# Default: 2
-indent_ctor_init_leading = 2 # unsigned number
-
-# Virtual indent from the ':' for following member initializers.
-#
-# Default: 2
-indent_ctor_init_following = 2 # unsigned number
-
-# Additional indent for constructor initializer list.
-# Negative values decrease indent down to the first column.
-indent_ctor_init = 0 # number
-
-# Whether to indent 'if' following 'else' as a new block under the 'else'.
-# If false, 'else\nif' is treated as 'else if' for indenting purposes.
-indent_else_if = false # true/false
-
-# Amount to indent variable declarations after a open brace.
-#
-# <0: Relative
-# >=0: Absolute
-indent_var_def_blk = 0 # number
-
-# Whether to indent continued variable declarations instead of aligning.
-indent_var_def_cont = false # true/false
-
-# Whether to indent continued shift expressions ('<<' and '>>') instead of
-# aligning. Set align_left_shift=false when enabling this.
-indent_shift = false # true/false
-
-# Whether to force indentation of function definitions to start in column 1.
-indent_func_def_force_col1 = false # true/false
-
-# Whether to indent continued function call parameters one indent level,
-# rather than aligning parameters under the open parenthesis.
-indent_func_call_param = false # true/false
-
-# Whether to indent continued function definition parameters one indent level,
-# rather than aligning parameters under the open parenthesis.
-indent_func_def_param = false # true/false
-
-# for function definitions, only if indent_func_def_param is false
-# Allows to align params when appropriate and indent them when not
-# behave as if it was true if paren position is more than this value
-# if paren position is more than the option value
-indent_func_def_param_paren_pos_threshold = 0 # unsigned number
-
-# Whether to indent continued function call prototype one indent level,
-# rather than aligning parameters under the open parenthesis.
-indent_func_proto_param = false # true/false
-
-# Whether to indent continued function call declaration one indent level,
-# rather than aligning parameters under the open parenthesis.
-indent_func_class_param = false # true/false
-
-# Whether to indent continued class variable constructors one indent level,
-# rather than aligning parameters under the open parenthesis.
-indent_func_ctor_var_param = false # true/false
-
-# Whether to indent continued template parameter list one indent level,
-# rather than aligning parameters under the open parenthesis.
-indent_template_param = false # true/false
-
-# Double the indent for indent_func_xxx_param options.
-# Use both values of the options indent_columns and indent_param.
-indent_func_param_double = false # true/false
-
-# Indentation column for standalone 'const' qualifier on a function
-# prototype.
-indent_func_const = 0 # unsigned number
-
-# Indentation column for standalone 'throw' qualifier on a function
-# prototype.
-indent_func_throw = 0 # unsigned number
-
-# How to indent within a macro followed by a brace on the same line
-# This allows reducing the indent in macros that have (for example)
-# `do { ... } while (0)` blocks bracketing them.
-#
-# true: add an indent for the brace on the same line as the macro
-# false: do not add an indent for the brace on the same line as the macro
-#
-# Default: true
-indent_macro_brace = true # true/false
-
-# The number of spaces to indent a continued '->' or '.'.
-# Usually set to 0, 1, or indent_columns.
-indent_member = 0 # unsigned number
-
-# Whether lines broken at '.' or '->' should be indented by a single indent.
-# The indent_member option will not be effective if this is set to true.
-indent_member_single = false # true/false
-
-# Spaces to indent single line ('//') comments on lines before code.
-indent_single_line_comments_before = 0 # unsigned number
-
-# Spaces to indent single line ('//') comments on lines after code.
-indent_single_line_comments_after = 0 # unsigned number
-
-# When opening a paren for a control statement (if, for, while, etc), increase
-# the indent level by this value. Negative values decrease the indent level.
-indent_sparen_extra = 0 # number
-
-# Whether to indent trailing single line ('//') comments relative to the code
-# instead of trying to keep the same absolute column.
-indent_relative_single_line_comments = false # true/false
-
-# Spaces to indent 'case' from 'switch'. Usually 0 or indent_columns.
-# It might be wise to choose the same value for the option indent_case_brace.
-indent_switch_case = 0 # unsigned number
-
-# Spaces to indent the body of a 'switch' before any 'case'.
-# Usually the same as indent_columns or indent_switch_case.
-indent_switch_body = 0 # unsigned number
-
-# Spaces to indent '{' from 'case'. By default, the brace will appear under
-# the 'c' in case. Usually set to 0 or indent_columns. Negative values are OK.
-# It might be wise to choose the same value for the option indent_switch_case.
-indent_case_brace = 0 # number
-
-# indent 'break' with 'case' from 'switch'.
-indent_switch_break_with_case = false # true/false
-
-# Whether to indent preprocessor statements inside of switch statements.
-#
-# Default: true
-indent_switch_pp = true # true/false
-
-# Spaces to shift the 'case' line, without affecting any other lines.
-# Usually 0.
-indent_case_shift = 0 # unsigned number
-
-# Whether to align comments before 'case' with the 'case'.
-#
-# Default: true
-indent_case_comment = true # true/false
-
-# Whether to indent comments not found in first column.
-#
-# Default: true
-indent_comment = true # true/false
-
-# Whether to indent comments found in first column.
-indent_col1_comment = false # true/false
-
-# Whether to indent multi string literal in first column.
-indent_col1_multi_string_literal = false # true/false
-
-# Align comments on adjacent lines that are this many columns apart or less.
-#
-# Default: 3
-indent_comment_align_thresh = 3 # unsigned number
-
-# Whether to ignore indent for goto labels.
-indent_ignore_label = false # true/false
-
-# How to indent goto labels. Requires indent_ignore_label=false.
-#
-# >0: Absolute column where 1 is the leftmost column
-# <=0: Subtract from brace indent
-#
-# Default: 1
-indent_label = 1 # number
-
-# How to indent access specifiers that are followed by a
-# colon.
-#
-# >0: Absolute column where 1 is the leftmost column
-# <=0: Subtract from brace indent
-#
-# Default: 1
-indent_access_spec = 1 # number
-
-# Whether to indent the code after an access specifier by one level.
-# If true, this option forces 'indent_access_spec=0'.
-indent_access_spec_body = false # true/false
-
-# If an open parenthesis is followed by a newline, whether to indent the next
-# line so that it lines up after the open parenthesis (not recommended).
-indent_paren_nl = false # true/false
-
-# How to indent a close parenthesis after a newline.
-#
-# 0: Indent to body level (default)
-# 1: Align under the open parenthesis
-# 2: Indent to the brace level
-indent_paren_close = 0 # unsigned number
-
-# Whether to indent the open parenthesis of a function definition,
-# if the parenthesis is on its own line.
-indent_paren_after_func_def = false # true/false
-
-# Whether to indent the open parenthesis of a function declaration,
-# if the parenthesis is on its own line.
-indent_paren_after_func_decl = false # true/false
-
-# Whether to indent the open parenthesis of a function call,
-# if the parenthesis is on its own line.
-indent_paren_after_func_call = false # true/false
-
-# Whether to indent a comma when inside a brace.
-# If true, aligns under the open brace.
-indent_comma_brace = false # true/false
-
-# Whether to indent a comma when inside a parenthesis.
-# If true, aligns under the open parenthesis.
-indent_comma_paren = false # true/false
-
-# Whether to indent a Boolean operator when inside a parenthesis.
-# If true, aligns under the open parenthesis.
-indent_bool_paren = false # true/false
-
-# Whether to indent a semicolon when inside a for parenthesis.
-# If true, aligns under the open for parenthesis.
-indent_semicolon_for_paren = false # true/false
-
-# Whether to align the first expression to following ones
-# if indent_bool_paren=true.
-indent_first_bool_expr = false # true/false
-
-# Whether to align the first expression to following ones
-# if indent_semicolon_for_paren=true.
-indent_first_for_expr = false # true/false
-
-# If an open square is followed by a newline, whether to indent the next line
-# so that it lines up after the open square (not recommended).
-indent_square_nl = false # true/false
-
-# (ESQL/C) Whether to preserve the relative indent of 'EXEC SQL' bodies.
-indent_preserve_sql = false # true/false
-
-# Whether to align continued statements at the '='. If false or if the '=' is
-# followed by a newline, the next line is indent one tab.
-#
-# Default: true
-indent_align_assign = true # true/false
-
-# If true, the indentation of the chunks after a '=' sequence will be set at
-# LHS token indentation column before '='.
-indent_off_after_assign = false # true/false
-
-# Whether to align continued statements at the '('. If false or the '(' is
-# followed by a newline, the next line indent is one tab.
-#
-# Default: true
-indent_align_paren = true # true/false
-
-# (OC) Whether to indent Objective-C code inside message selectors.
-indent_oc_inside_msg_sel = false # true/false
-
-# (OC) Whether to indent Objective-C blocks at brace level instead of usual
-# rules.
-indent_oc_block = false # true/false
-
-# (OC) Indent for Objective-C blocks in a message relative to the parameter
-# name.
-#
-# =0: Use indent_oc_block rules
-# >0: Use specified number of spaces to indent
-indent_oc_block_msg = 0 # unsigned number
-
-# (OC) Minimum indent for subsequent parameters
-indent_oc_msg_colon = 0 # unsigned number
-
-# (OC) Whether to prioritize aligning with initial colon (and stripping spaces
-# from lines, if necessary).
-#
-# Default: true
-indent_oc_msg_prioritize_first_colon = true # true/false
-
-# (OC) Whether to indent blocks the way that Xcode does by default
-# (from the keyword if the parameter is on its own line; otherwise, from the
-# previous indentation level). Requires indent_oc_block_msg=true.
-indent_oc_block_msg_xcode_style = false # true/false
-
-# (OC) Whether to indent blocks from where the brace is, relative to a
-# message keyword. Requires indent_oc_block_msg=true.
-indent_oc_block_msg_from_keyword = false # true/false
-
-# (OC) Whether to indent blocks from where the brace is, relative to a message
-# colon. Requires indent_oc_block_msg=true.
-indent_oc_block_msg_from_colon = false # true/false
-
-# (OC) Whether to indent blocks from where the block caret is.
-# Requires indent_oc_block_msg=true.
-indent_oc_block_msg_from_caret = false # true/false
-
-# (OC) Whether to indent blocks from where the brace caret is.
-# Requires indent_oc_block_msg=true.
-indent_oc_block_msg_from_brace = false # true/false
-
-# When indenting after virtual brace open and newline add further spaces to
-# reach this minimum indent.
-indent_min_vbrace_open = 0 # unsigned number
-
-# Whether to add further spaces after regular indent to reach next tabstop
-# when indenting after virtual brace open and newline.
-indent_vbrace_open_on_tabstop = false # true/false
-
-# How to indent after a brace followed by another token (not a newline).
-# true: indent all contained lines to match the token
-# false: indent all contained lines to match the brace
-#
-# Default: true
-indent_token_after_brace = true # true/false
-
-# Whether to indent the body of a C++11 lambda.
-indent_cpp_lambda_body = false # true/false
-
-# How to indent compound literals that are being returned.
-# true: add both the indent from return & the compound literal open brace
-# (i.e. 2 indent levels)
-# false: only indent 1 level, don't add the indent for the open brace, only
-# add the indent for the return.
-#
-# Default: true
-indent_compound_literal_return = true # true/false
-
-# (C#) Whether to indent a 'using' block if no braces are used.
-#
-# Default: true
-indent_using_block = true # true/false
-
-# How to indent the continuation of ternary operator.
-#
-# 0: Off (default)
-# 1: When the `if_false` is a continuation, indent it under `if_false`
-# 2: When the `:` is a continuation, indent it under `?`
-indent_ternary_operator = 0 # unsigned number
-
-# Whether to indent the statements inside ternary operator.
-indent_inside_ternary_operator = false # true/false
-
-# If true, the indentation of the chunks after a `return` sequence will be set at return indentation column.
-indent_off_after_return = false # true/false
-
-# If true, the indentation of the chunks after a `return new` sequence will be set at return indentation column.
-indent_off_after_return_new = false # true/false
-
-# If true, the tokens after return are indented with regular single indentation. By default (false) the indentation is after the return token.
-indent_single_after_return = false # true/false
-
-# Whether to ignore indent and alignment for 'asm' blocks (i.e. assume they
-# have their own indentation).
-indent_ignore_asm_block = false # true/false
-
-# Don't indent the close parenthesis of a function definition,
-# if the parenthesis is on its own line.
-donot_indent_func_def_close_paren = false # true/false
-
-#
-# Newline adding and removing options
-#
-
-# Whether to collapse empty blocks between '{' and '}'.
-# If true, overrides nl_inside_empty_func
-nl_collapse_empty_body = false # true/false
-
-# Don't split one-line braced assignments, as in 'foo_t f = { 1, 2 };'.
-nl_assign_leave_one_liners = false # true/false
-
-# Don't split one-line braced statements inside a 'class xx { }' body.
-nl_class_leave_one_liners = false # true/false
-
-# Don't split one-line enums, as in 'enum foo { BAR = 15 };'
-nl_enum_leave_one_liners = false # true/false
-
-# Don't split one-line get or set functions.
-nl_getset_leave_one_liners = false # true/false
-
-# (C#) Don't split one-line property get or set functions.
-nl_cs_property_leave_one_liners = false # true/false
-
-# Don't split one-line function definitions, as in 'int foo() { return 0; }'.
-# might modify nl_func_type_name
-nl_func_leave_one_liners = false # true/false
-
-# Don't split one-line C++11 lambdas, as in '[]() { return 0; }'.
-nl_cpp_lambda_leave_one_liners = false # true/false
-
-# Don't split one-line if/else statements, as in 'if(...) b++;'.
-nl_if_leave_one_liners = false # true/false
-
-# Don't split one-line while statements, as in 'while(...) b++;'.
-nl_while_leave_one_liners = false # true/false
-
-# Don't split one-line do statements, as in 'do { b++; } while(...);'.
-nl_do_leave_one_liners = false # true/false
-
-# Don't split one-line for statements, as in 'for(...) b++;'.
-nl_for_leave_one_liners = false # true/false
-
-# (OC) Don't split one-line Objective-C messages.
-nl_oc_msg_leave_one_liner = false # true/false
-
-# (OC) Add or remove newline between method declaration and '{'.
-nl_oc_mdef_brace = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove newline between Objective-C block signature and '{'.
-nl_oc_block_brace = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove blank line before '@interface' statement.
-nl_oc_before_interface = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove blank line before '@implementation' statement.
-nl_oc_before_implementation = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove blank line before '@end' statement.
-nl_oc_before_end = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove newline between '@interface' and '{'.
-nl_oc_interface_brace = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove newline between '@implementation' and '{'.
-nl_oc_implementation_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newlines at the start of the file.
-nl_start_of_file = ignore # ignore/add/remove/force/not_defined
-
-# The minimum number of newlines at the start of the file (only used if
-# nl_start_of_file is 'add' or 'force').
-nl_start_of_file_min = 0 # unsigned number
-
-# Add or remove newline at the end of the file.
-nl_end_of_file = ignore # ignore/add/remove/force/not_defined
-
-# The minimum number of newlines at the end of the file (only used if
-# nl_end_of_file is 'add' or 'force').
-nl_end_of_file_min = 0 # unsigned number
-
-# Add or remove newline between '=' and '{'.
-nl_assign_brace = ignore # ignore/add/remove/force/not_defined
-
-# (D) Add or remove newline between '=' and '['.
-nl_assign_square = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between '[]' and '{'.
-nl_tsquare_brace = ignore # ignore/add/remove/force/not_defined
-
-# (D) Add or remove newline after '= ['. Will also affect the newline before
-# the ']'.
-nl_after_square_assign = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between a function call's ')' and '{', as in
-# 'list_for_each(item, &list) { }'.
-nl_fcall_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between 'enum' and '{'.
-nl_enum_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between 'enum' and 'class'.
-nl_enum_class = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between 'enum class' and the identifier.
-nl_enum_class_identifier = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between 'enum class' type and ':'.
-nl_enum_identifier_colon = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between 'enum class identifier :' and type.
-nl_enum_colon_type = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between 'struct and '{'.
-nl_struct_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between 'union' and '{'.
-nl_union_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between 'if' and '{'.
-nl_if_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between '}' and 'else'.
-nl_brace_else = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between 'else if' and '{'. If set to ignore,
-# nl_if_brace is used instead.
-nl_elseif_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between 'else' and '{'.
-nl_else_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between 'else' and 'if'.
-nl_else_if = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline before '{' opening brace
-nl_before_opening_brace_func_class_def = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline before 'if'/'else if' closing parenthesis.
-nl_before_if_closing_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between '}' and 'finally'.
-nl_brace_finally = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between 'finally' and '{'.
-nl_finally_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between 'try' and '{'.
-nl_try_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between get/set and '{'.
-nl_getset_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between 'for' and '{'.
-nl_for_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline before the '{' of a 'catch' statement, as in
-# 'catch (decl) <here> {'.
-nl_catch_brace = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove newline before the '{' of a '@catch' statement, as in
-# '@catch (decl) <here> {'. If set to ignore, nl_catch_brace is used.
-nl_oc_catch_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between '}' and 'catch'.
-nl_brace_catch = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove newline between '}' and '@catch'. If set to ignore,
-# nl_brace_catch is used.
-nl_oc_brace_catch = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between '}' and ']'.
-nl_brace_square = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between '}' and ')' in a function invocation.
-nl_brace_fparen = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between 'while' and '{'.
-nl_while_brace = ignore # ignore/add/remove/force/not_defined
-
-# (D) Add or remove newline between 'scope (x)' and '{'.
-nl_scope_brace = ignore # ignore/add/remove/force/not_defined
-
-# (D) Add or remove newline between 'unittest' and '{'.
-nl_unittest_brace = ignore # ignore/add/remove/force/not_defined
-
-# (D) Add or remove newline between 'version (x)' and '{'.
-nl_version_brace = ignore # ignore/add/remove/force/not_defined
-
-# (C#) Add or remove newline between 'using' and '{'.
-nl_using_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between two open or close braces. Due to general
-# newline/brace handling, REMOVE may not work.
-nl_brace_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between 'do' and '{'.
-nl_do_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between '}' and 'while' of 'do' statement.
-nl_brace_while = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between 'switch' and '{'.
-nl_switch_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between 'synchronized' and '{'.
-nl_synchronized_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add a newline between ')' and '{' if the ')' is on a different line than the
-# if/for/etc.
-#
-# Overrides nl_for_brace, nl_if_brace, nl_switch_brace, nl_while_switch and
-# nl_catch_brace.
-nl_multi_line_cond = false # true/false
-
-# Add a newline after '(' if an if/for/while/switch condition spans multiple
-# lines
-nl_multi_line_sparen_open = ignore # ignore/add/remove/force/not_defined
-
-# Add a newline before ')' if an if/for/while/switch condition spans multiple
-# lines. Overrides nl_before_if_closing_paren if both are specified.
-nl_multi_line_sparen_close = ignore # ignore/add/remove/force/not_defined
-
-# Force a newline in a define after the macro name for multi-line defines.
-nl_multi_line_define = false # true/false
-
-# Whether to add a newline before 'case', and a blank line before a 'case'
-# statement that follows a ';' or '}'.
-nl_before_case = false # true/false
-
-# Whether to add a newline after a 'case' statement.
-nl_after_case = false # true/false
-
-# Add or remove newline between a case ':' and '{'.
-#
-# Overrides nl_after_case.
-nl_case_colon_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between ')' and 'throw'.
-nl_before_throw = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between 'namespace' and '{'.
-nl_namespace_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline after 'template<...>' of a template class.
-nl_template_class = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline after 'template<...>' of a template class declaration.
-#
-# Overrides nl_template_class.
-nl_template_class_decl = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline after 'template<>' of a specialized class declaration.
-#
-# Overrides nl_template_class_decl.
-nl_template_class_decl_special = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline after 'template<...>' of a template class definition.
-#
-# Overrides nl_template_class.
-nl_template_class_def = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline after 'template<>' of a specialized class definition.
-#
-# Overrides nl_template_class_def.
-nl_template_class_def_special = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline after 'template<...>' of a template function.
-nl_template_func = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline after 'template<...>' of a template function
-# declaration.
-#
-# Overrides nl_template_func.
-nl_template_func_decl = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline after 'template<>' of a specialized function
-# declaration.
-#
-# Overrides nl_template_func_decl.
-nl_template_func_decl_special = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline after 'template<...>' of a template function
-# definition.
-#
-# Overrides nl_template_func.
-nl_template_func_def = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline after 'template<>' of a specialized function
-# definition.
-#
-# Overrides nl_template_func_def.
-nl_template_func_def_special = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline after 'template<...>' of a template variable.
-nl_template_var = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between 'template<...>' and 'using' of a templated
-# type alias.
-nl_template_using = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between 'class' and '{'.
-nl_class_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline before or after (depending on pos_class_comma,
-# may not be IGNORE) each',' in the base class list.
-nl_class_init_args = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline after each ',' in the constructor member
-# initialization. Related to nl_constr_colon, pos_constr_colon and
-# pos_constr_comma.
-nl_constr_init_args = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline before first element, after comma, and after last
-# element, in 'enum'.
-nl_enum_own_lines = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between return type and function name in a function
-# definition.
-# might be modified by nl_func_leave_one_liners
-nl_func_type_name = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between return type and function name inside a class
-# definition. If set to ignore, nl_func_type_name or nl_func_proto_type_name
-# is used instead.
-nl_func_type_name_class = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between class specification and '::'
-# in 'void A::f() { }'. Only appears in separate member implementation (does
-# not appear with in-line implementation).
-nl_func_class_scope = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between function scope and name, as in
-# 'void A :: <here> f() { }'.
-nl_func_scope_name = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between return type and function name in a prototype.
-nl_func_proto_type_name = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between a function name and the opening '(' in the
-# declaration.
-nl_func_paren = ignore # ignore/add/remove/force/not_defined
-
-# Overrides nl_func_paren for functions with no parameters.
-nl_func_paren_empty = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between a function name and the opening '(' in the
-# definition.
-nl_func_def_paren = ignore # ignore/add/remove/force/not_defined
-
-# Overrides nl_func_def_paren for functions with no parameters.
-nl_func_def_paren_empty = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between a function name and the opening '(' in the
-# call.
-nl_func_call_paren = ignore # ignore/add/remove/force/not_defined
-
-# Overrides nl_func_call_paren for functions with no parameters.
-nl_func_call_paren_empty = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline after '(' in a function declaration.
-nl_func_decl_start = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline after '(' in a function definition.
-nl_func_def_start = ignore # ignore/add/remove/force/not_defined
-
-# Overrides nl_func_decl_start when there is only one parameter.
-nl_func_decl_start_single = ignore # ignore/add/remove/force/not_defined
-
-# Overrides nl_func_def_start when there is only one parameter.
-nl_func_def_start_single = ignore # ignore/add/remove/force/not_defined
-
-# Whether to add a newline after '(' in a function declaration if '(' and ')'
-# are in different lines. If false, nl_func_decl_start is used instead.
-nl_func_decl_start_multi_line = false # true/false
-
-# Whether to add a newline after '(' in a function definition if '(' and ')'
-# are in different lines. If false, nl_func_def_start is used instead.
-nl_func_def_start_multi_line = false # true/false
-
-# Add or remove newline after each ',' in a function declaration.
-nl_func_decl_args = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline after each ',' in a function definition.
-nl_func_def_args = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline after each ',' in a function call.
-nl_func_call_args = ignore # ignore/add/remove/force/not_defined
-
-# Whether to add a newline after each ',' in a function declaration if '('
-# and ')' are in different lines. If false, nl_func_decl_args is used instead.
-nl_func_decl_args_multi_line = false # true/false
-
-# Whether to add a newline after each ',' in a function definition if '('
-# and ')' are in different lines. If false, nl_func_def_args is used instead.
-nl_func_def_args_multi_line = false # true/false
-
-# Add or remove newline before the ')' in a function declaration.
-nl_func_decl_end = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline before the ')' in a function definition.
-nl_func_def_end = ignore # ignore/add/remove/force/not_defined
-
-# Overrides nl_func_decl_end when there is only one parameter.
-nl_func_decl_end_single = ignore # ignore/add/remove/force/not_defined
-
-# Overrides nl_func_def_end when there is only one parameter.
-nl_func_def_end_single = ignore # ignore/add/remove/force/not_defined
-
-# Whether to add a newline before ')' in a function declaration if '(' and ')'
-# are in different lines. If false, nl_func_decl_end is used instead.
-nl_func_decl_end_multi_line = false # true/false
-
-# Whether to add a newline before ')' in a function definition if '(' and ')'
-# are in different lines. If false, nl_func_def_end is used instead.
-nl_func_def_end_multi_line = false # true/false
-
-# Add or remove newline between '()' in a function declaration.
-nl_func_decl_empty = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between '()' in a function definition.
-nl_func_def_empty = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between '()' in a function call.
-nl_func_call_empty = ignore # ignore/add/remove/force/not_defined
-
-# Whether to add a newline after '(' in a function call,
-# has preference over nl_func_call_start_multi_line.
-nl_func_call_start = ignore # ignore/add/remove/force/not_defined
-
-# Whether to add a newline before ')' in a function call.
-nl_func_call_end = ignore # ignore/add/remove/force/not_defined
-
-# Whether to add a newline after '(' in a function call if '(' and ')' are in
-# different lines.
-nl_func_call_start_multi_line = false # true/false
-
-# Whether to add a newline after each ',' in a function call if '(' and ')'
-# are in different lines.
-nl_func_call_args_multi_line = false # true/false
-
-# Whether to add a newline before ')' in a function call if '(' and ')' are in
-# different lines.
-nl_func_call_end_multi_line = false # true/false
-
-# Whether to respect nl_func_call_XXX option in case of closure args.
-nl_func_call_args_multi_line_ignore_closures = false # true/false
-
-# Whether to add a newline after '<' of a template parameter list.
-nl_template_start = false # true/false
-
-# Whether to add a newline after each ',' in a template parameter list.
-nl_template_args = false # true/false
-
-# Whether to add a newline before '>' of a template parameter list.
-nl_template_end = false # true/false
-
-# (OC) Whether to put each Objective-C message parameter on a separate line.
-# See nl_oc_msg_leave_one_liner.
-nl_oc_msg_args = false # true/false
-
-# Add or remove newline between function signature and '{'.
-nl_fdef_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between function signature and '{',
-# if signature ends with ')'. Overrides nl_fdef_brace.
-nl_fdef_brace_cond = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between C++11 lambda signature and '{'.
-nl_cpp_ldef_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between 'return' and the return expression.
-nl_return_expr = ignore # ignore/add/remove/force/not_defined
-
-# Whether to add a newline after semicolons, except in 'for' statements.
-nl_after_semicolon = false # true/false
-
-# (Java) Add or remove newline between the ')' and '{{' of the double brace
-# initializer.
-nl_paren_dbrace_open = ignore # ignore/add/remove/force/not_defined
-
-# Whether to add a newline after the type in an unnamed temporary
-# direct-list-initialization.
-nl_type_brace_init_lst = ignore # ignore/add/remove/force/not_defined
-
-# Whether to add a newline after the open brace in an unnamed temporary
-# direct-list-initialization.
-nl_type_brace_init_lst_open = ignore # ignore/add/remove/force/not_defined
-
-# Whether to add a newline before the close brace in an unnamed temporary
-# direct-list-initialization.
-nl_type_brace_init_lst_close = ignore # ignore/add/remove/force/not_defined
-
-# Whether to add a newline before '{'.
-nl_before_brace_open = false # true/false
-
-# Whether to add a newline after '{'.
-nl_after_brace_open = false # true/false
-
-# Whether to add a newline between the open brace and a trailing single-line
-# comment. Requires nl_after_brace_open=true.
-nl_after_brace_open_cmt = false # true/false
-
-# Whether to add a newline after a virtual brace open with a non-empty body.
-# These occur in un-braced if/while/do/for statement bodies.
-nl_after_vbrace_open = false # true/false
-
-# Whether to add a newline after a virtual brace open with an empty body.
-# These occur in un-braced if/while/do/for statement bodies.
-nl_after_vbrace_open_empty = false # true/false
-
-# Whether to add a newline after '}'. Does not apply if followed by a
-# necessary ';'.
-nl_after_brace_close = false # true/false
-
-# Whether to add a newline after a virtual brace close,
-# as in 'if (foo) a++; <here> return;'.
-nl_after_vbrace_close = false # true/false
-
-# Add or remove newline between the close brace and identifier,
-# as in 'struct { int a; } <here> b;'. Affects enumerations, unions and
-# structures. If set to ignore, uses nl_after_brace_close.
-nl_brace_struct_var = ignore # ignore/add/remove/force/not_defined
-
-# Whether to alter newlines in '#define' macros.
-nl_define_macro = false # true/false
-
-# Whether to alter newlines between consecutive parenthesis closes. The number
-# of closing parentheses in a line will depend on respective open parenthesis
-# lines.
-nl_squeeze_paren_close = false # true/false
-
-# Whether to remove blanks after '#ifxx' and '#elxx', or before '#elxx' and
-# '#endif'. Does not affect top-level #ifdefs.
-nl_squeeze_ifdef = false # true/false
-
-# Makes the nl_squeeze_ifdef option affect the top-level #ifdefs as well.
-nl_squeeze_ifdef_top_level = false # true/false
-
-# Add or remove blank line before 'if'.
-nl_before_if = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove blank line after 'if' statement. Add/Force work only if the
-# next token is not a closing brace.
-nl_after_if = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove blank line before 'for'.
-nl_before_for = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove blank line after 'for' statement.
-nl_after_for = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove blank line before 'while'.
-nl_before_while = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove blank line after 'while' statement.
-nl_after_while = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove blank line before 'switch'.
-nl_before_switch = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove blank line after 'switch' statement.
-nl_after_switch = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove blank line before 'synchronized'.
-nl_before_synchronized = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove blank line after 'synchronized' statement.
-nl_after_synchronized = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove blank line before 'do'.
-nl_before_do = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove blank line after 'do/while' statement.
-nl_after_do = ignore # ignore/add/remove/force/not_defined
-
-# Ignore nl_before_{if,for,switch,do,synchronized} if the control
-# statement is immediately after a case statement.
-# if nl_before_{if,for,switch,do} is set to remove, this option
-# does nothing.
-nl_before_ignore_after_case = false # true/false
-
-# Whether to put a blank line before 'return' statements, unless after an open
-# brace.
-nl_before_return = false # true/false
-
-# Whether to put a blank line after 'return' statements, unless followed by a
-# close brace.
-nl_after_return = false # true/false
-
-# Whether to put a blank line before a member '.' or '->' operators.
-nl_before_member = ignore # ignore/add/remove/force/not_defined
-
-# (Java) Whether to put a blank line after a member '.' or '->' operators.
-nl_after_member = ignore # ignore/add/remove/force/not_defined
-
-# Whether to double-space commented-entries in 'struct'/'union'/'enum'.
-nl_ds_struct_enum_cmt = false # true/false
-
-# Whether to force a newline before '}' of a 'struct'/'union'/'enum'.
-# (Lower priority than eat_blanks_before_close_brace.)
-nl_ds_struct_enum_close_brace = false # true/false
-
-# Add or remove newline before or after (depending on pos_class_colon) a class
-# colon, as in 'class Foo <here> : <or here> public Bar'.
-nl_class_colon = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline around a class constructor colon. The exact position
-# depends on nl_constr_init_args, pos_constr_colon and pos_constr_comma.
-nl_constr_colon = ignore # ignore/add/remove/force/not_defined
-
-# Whether to collapse a two-line namespace, like 'namespace foo\n{ decl; }'
-# into a single line. If true, prevents other brace newline rules from turning
-# such code into four lines. If true, it also preserves one-liner namespaces.
-nl_namespace_two_to_one_liner = false # true/false
-
-# Whether to remove a newline in simple unbraced if statements, turning them
-# into one-liners, as in 'if(b)\n i++;' => 'if(b) i++;'.
-nl_create_if_one_liner = false # true/false
-
-# Whether to remove a newline in simple unbraced for statements, turning them
-# into one-liners, as in 'for (...)\n stmt;' => 'for (...) stmt;'.
-nl_create_for_one_liner = false # true/false
-
-# Whether to remove a newline in simple unbraced while statements, turning
-# them into one-liners, as in 'while (expr)\n stmt;' => 'while (expr) stmt;'.
-nl_create_while_one_liner = false # true/false
-
-# Whether to collapse a function definition whose body (not counting braces)
-# is only one line so that the entire definition (prototype, braces, body) is
-# a single line.
-nl_create_func_def_one_liner = false # true/false
-
-# Whether to split one-line simple list definitions into three lines by
-# adding newlines, as in 'int a[12] = { <here> 0 <here> };'.
-nl_create_list_one_liner = false # true/false
-
-# Whether to split one-line simple unbraced if statements into two lines by
-# adding a newline, as in 'if(b) <here> i++;'.
-nl_split_if_one_liner = false # true/false
-
-# Whether to split one-line simple unbraced for statements into two lines by
-# adding a newline, as in 'for (...) <here> stmt;'.
-nl_split_for_one_liner = false # true/false
-
-# Whether to split one-line simple unbraced while statements into two lines by
-# adding a newline, as in 'while (expr) <here> stmt;'.
-nl_split_while_one_liner = false # true/false
-
-# Don't add a newline before a cpp-comment in a parameter list of a function
-# call.
-donot_add_nl_before_cpp_comment = false # true/false
-
-#
-# Blank line options
-#
-
-# The maximum number of consecutive newlines (3 = 2 blank lines).
-nl_max = 0 # unsigned number
-
-# The maximum number of consecutive newlines in a function.
-nl_max_blank_in_func = 0 # unsigned number
-
-# The number of newlines inside an empty function body.
-# This option overrides eat_blanks_after_open_brace and
-# eat_blanks_before_close_brace, but is ignored when
-# nl_collapse_empty_body=true
-nl_inside_empty_func = 0 # unsigned number
-
-# The number of newlines before a function prototype.
-nl_before_func_body_proto = 0 # unsigned number
-
-# The number of newlines before a multi-line function definition. Where
-# applicable, this option is overridden with eat_blanks_after_open_brace=true
-nl_before_func_body_def = 0 # unsigned number
-
-# The number of newlines before a class constructor/destructor prototype.
-nl_before_func_class_proto = 0 # unsigned number
-
-# The number of newlines before a class constructor/destructor definition.
-nl_before_func_class_def = 0 # unsigned number
-
-# The number of newlines after a function prototype.
-nl_after_func_proto = 0 # unsigned number
-
-# The number of newlines after a function prototype, if not followed by
-# another function prototype.
-nl_after_func_proto_group = 0 # unsigned number
-
-# The number of newlines after a class constructor/destructor prototype.
-nl_after_func_class_proto = 0 # unsigned number
-
-# The number of newlines after a class constructor/destructor prototype,
-# if not followed by another constructor/destructor prototype.
-nl_after_func_class_proto_group = 0 # unsigned number
-
-# Whether one-line method definitions inside a class body should be treated
-# as if they were prototypes for the purposes of adding newlines.
-#
-# Requires nl_class_leave_one_liners=true. Overrides nl_before_func_body_def
-# and nl_before_func_class_def for one-liners.
-nl_class_leave_one_liner_groups = false # true/false
-
-# The number of newlines after '}' of a multi-line function body.
-nl_after_func_body = 0 # unsigned number
-
-# The number of newlines after '}' of a multi-line function body in a class
-# declaration. Also affects class constructors/destructors.
-#
-# Overrides nl_after_func_body.
-nl_after_func_body_class = 0 # unsigned number
-
-# The number of newlines after '}' of a single line function body. Also
-# affects class constructors/destructors.
-#
-# Overrides nl_after_func_body and nl_after_func_body_class.
-nl_after_func_body_one_liner = 0 # unsigned number
-
-# The number of blank lines after a block of variable definitions at the top
-# of a function body.
-#
-# 0: No change (default).
-nl_func_var_def_blk = 0 # unsigned number
-
-# The number of newlines before a block of typedefs. If nl_after_access_spec
-# is non-zero, that option takes precedence.
-#
-# 0: No change (default).
-nl_typedef_blk_start = 0 # unsigned number
-
-# The number of newlines after a block of typedefs.
-#
-# 0: No change (default).
-nl_typedef_blk_end = 0 # unsigned number
-
-# The maximum number of consecutive newlines within a block of typedefs.
-#
-# 0: No change (default).
-nl_typedef_blk_in = 0 # unsigned number
-
-# The number of newlines before a block of variable definitions not at the top
-# of a function body. If nl_after_access_spec is non-zero, that option takes
-# precedence.
-#
-# 0: No change (default).
-nl_var_def_blk_start = 0 # unsigned number
-
-# The number of newlines after a block of variable definitions not at the top
-# of a function body.
-#
-# 0: No change (default).
-nl_var_def_blk_end = 0 # unsigned number
-
-# The maximum number of consecutive newlines within a block of variable
-# definitions.
-#
-# 0: No change (default).
-nl_var_def_blk_in = 0 # unsigned number
-
-# The minimum number of newlines before a multi-line comment.
-# Doesn't apply if after a brace open or another multi-line comment.
-nl_before_block_comment = 0 # unsigned number
-
-# The minimum number of newlines before a single-line C comment.
-# Doesn't apply if after a brace open or other single-line C comments.
-nl_before_c_comment = 0 # unsigned number
-
-# The minimum number of newlines before a CPP comment.
-# Doesn't apply if after a brace open or other CPP comments.
-nl_before_cpp_comment = 0 # unsigned number
-
-# Whether to force a newline after a multi-line comment.
-nl_after_multiline_comment = false # true/false
-
-# Whether to force a newline after a label's colon.
-nl_after_label_colon = false # true/false
-
-# The number of newlines before a struct definition.
-nl_before_struct = 0 # unsigned number
-
-# The number of newlines after '}' or ';' of a struct/enum/union definition.
-nl_after_struct = 0 # unsigned number
-
-# The number of newlines before a class definition.
-nl_before_class = 0 # unsigned number
-
-# The number of newlines after '}' or ';' of a class definition.
-nl_after_class = 0 # unsigned number
-
-# The number of newlines before a namespace.
-nl_before_namespace = 0 # unsigned number
-
-# The number of newlines after '{' of a namespace. This also adds newlines
-# before the matching '}'.
-#
-# 0: Apply eat_blanks_after_open_brace or eat_blanks_before_close_brace if
-# applicable, otherwise no change.
-#
-# Overrides eat_blanks_after_open_brace and eat_blanks_before_close_brace.
-nl_inside_namespace = 0 # unsigned number
-
-# The number of newlines after '}' of a namespace.
-nl_after_namespace = 0 # unsigned number
-
-# The number of newlines before an access specifier label. This also includes
-# the Qt-specific 'signals:' and 'slots:'. Will not change the newline count
-# if after a brace open.
-#
-# 0: No change (default).
-nl_before_access_spec = 0 # unsigned number
-
-# The number of newlines after an access specifier label. This also includes
-# the Qt-specific 'signals:' and 'slots:'. Will not change the newline count
-# if after a brace open.
-#
-# 0: No change (default).
-#
-# Overrides nl_typedef_blk_start and nl_var_def_blk_start.
-nl_after_access_spec = 0 # unsigned number
-
-# The number of newlines between a function definition and the function
-# comment, as in '// comment\n <here> void foo() {...}'.
-#
-# 0: No change (default).
-nl_comment_func_def = 0 # unsigned number
-
-# The number of newlines after a try-catch-finally block that isn't followed
-# by a brace close.
-#
-# 0: No change (default).
-nl_after_try_catch_finally = 0 # unsigned number
-
-# (C#) The number of newlines before and after a property, indexer or event
-# declaration.
-#
-# 0: No change (default).
-nl_around_cs_property = 0 # unsigned number
-
-# (C#) The number of newlines between the get/set/add/remove handlers.
-#
-# 0: No change (default).
-nl_between_get_set = 0 # unsigned number
-
-# (C#) Add or remove newline between property and the '{'.
-nl_property_brace = ignore # ignore/add/remove/force/not_defined
-
-# Whether to remove blank lines after '{'.
-eat_blanks_after_open_brace = false # true/false
-
-# Whether to remove blank lines before '}'.
-eat_blanks_before_close_brace = false # true/false
-
-# How aggressively to remove extra newlines not in preprocessor.
-#
-# 0: No change (default)
-# 1: Remove most newlines not handled by other config
-# 2: Remove all newlines and reformat completely by config
-nl_remove_extra_newlines = 0 # unsigned number
-
-# (Java) Add or remove newline after an annotation statement. Only affects
-# annotations that are after a newline.
-nl_after_annotation = ignore # ignore/add/remove/force/not_defined
-
-# (Java) Add or remove newline between two annotations.
-nl_between_annotation = ignore # ignore/add/remove/force/not_defined
-
-# The number of newlines before a whole-file #ifdef.
-#
-# 0: No change (default).
-nl_before_whole_file_ifdef = 0 # unsigned number
-
-# The number of newlines after a whole-file #ifdef.
-#
-# 0: No change (default).
-nl_after_whole_file_ifdef = 0 # unsigned number
-
-# The number of newlines before a whole-file #endif.
-#
-# 0: No change (default).
-nl_before_whole_file_endif = 0 # unsigned number
-
-# The number of newlines after a whole-file #endif.
-#
-# 0: No change (default).
-nl_after_whole_file_endif = 0 # unsigned number
-
-#
-# Positioning options
-#
-
-# The position of arithmetic operators in wrapped expressions.
-pos_arith = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
-
-# The position of assignment in wrapped expressions. Do not affect '='
-# followed by '{'.
-pos_assign = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
-
-# The position of Boolean operators in wrapped expressions.
-pos_bool = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
-
-# The position of comparison operators in wrapped expressions.
-pos_compare = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
-
-# The position of conditional operators, as in the '?' and ':' of
-# 'expr ? stmt : stmt', in wrapped expressions.
-pos_conditional = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
-
-# The position of the comma in wrapped expressions.
-pos_comma = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
-
-# The position of the comma in enum entries.
-pos_enum_comma = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
-
-# The position of the comma in the base class list if there is more than one
-# line. Affects nl_class_init_args.
-pos_class_comma = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
-
-# The position of the comma in the constructor initialization list.
-# Related to nl_constr_colon, nl_constr_init_args and pos_constr_colon.
-pos_constr_comma = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
-
-# The position of trailing/leading class colon, between class and base class
-# list. Affects nl_class_colon.
-pos_class_colon = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
-
-# The position of colons between constructor and member initialization.
-# Related to nl_constr_colon, nl_constr_init_args and pos_constr_comma.
-pos_constr_colon = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
-
-# The position of shift operators in wrapped expressions.
-pos_shift = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
-
-#
-# Line splitting options
-#
-
-# Try to limit code width to N columns.
-code_width = 0 # unsigned number
-
-# Whether to fully split long 'for' statements at semi-colons.
-ls_for_split_full = false # true/false
-
-# Whether to fully split long function prototypes/calls at commas.
-# The option ls_code_width has priority over the option ls_func_split_full.
-ls_func_split_full = false # true/false
-
-# Whether to split lines as close to code_width as possible and ignore some
-# groupings.
-# The option ls_code_width has priority over the option ls_func_split_full.
-ls_code_width = false # true/false
-
-#
-# Code alignment options (not left column spaces/tabs)
-#
-
-# Whether to keep non-indenting tabs.
-align_keep_tabs = false # true/false
-
-# Whether to use tabs for aligning.
-align_with_tabs = false # true/false
-
-# Whether to bump out to the next tab when aligning.
-align_on_tabstop = false # true/false
-
-# Whether to right-align numbers.
-align_number_right = false # true/false
-
-# Whether to keep whitespace not required for alignment.
-align_keep_extra_space = false # true/false
-
-# Whether to align variable definitions in prototypes and functions.
-align_func_params = false # true/false
-
-# The span for aligning parameter definitions in function on parameter name.
-#
-# 0: Don't align (default).
-align_func_params_span = 0 # unsigned number
-
-# The threshold for aligning function parameter definitions.
-# Use a negative number for absolute thresholds.
-#
-# 0: No limit (default).
-align_func_params_thresh = 0 # number
-
-# The gap for aligning function parameter definitions.
-align_func_params_gap = 0 # unsigned number
-
-# The span for aligning constructor value.
-#
-# 0: Don't align (default).
-align_constr_value_span = 0 # unsigned number
-
-# The threshold for aligning constructor value.
-# Use a negative number for absolute thresholds.
-#
-# 0: No limit (default).
-align_constr_value_thresh = 0 # number
-
-# The gap for aligning constructor value.
-align_constr_value_gap = 0 # unsigned number
-
-# Whether to align parameters in single-line functions that have the same
-# name. The function names must already be aligned with each other.
-align_same_func_call_params = false # true/false
-
-# The span for aligning function-call parameters for single line functions.
-#
-# 0: Don't align (default).
-align_same_func_call_params_span = 0 # unsigned number
-
-# The threshold for aligning function-call parameters for single line
-# functions.
-# Use a negative number for absolute thresholds.
-#
-# 0: No limit (default).
-align_same_func_call_params_thresh = 0 # number
-
-# The span for aligning variable definitions.
-#
-# 0: Don't align (default).
-align_var_def_span = 0 # unsigned number
-
-# How to consider (or treat) the '*' in the alignment of variable definitions.
-#
-# 0: Part of the type 'void * foo;' (default)
-# 1: Part of the variable 'void *foo;'
-# 2: Dangling 'void *foo;'
-# Dangling: the '*' will not be taken into account when aligning.
-align_var_def_star_style = 0 # unsigned number
-
-# How to consider (or treat) the '&' in the alignment of variable definitions.
-#
-# 0: Part of the type 'long & foo;' (default)
-# 1: Part of the variable 'long &foo;'
-# 2: Dangling 'long &foo;'
-# Dangling: the '&' will not be taken into account when aligning.
-align_var_def_amp_style = 0 # unsigned number
-
-# The threshold for aligning variable definitions.
-# Use a negative number for absolute thresholds.
-#
-# 0: No limit (default).
-align_var_def_thresh = 0 # number
-
-# The gap for aligning variable definitions.
-align_var_def_gap = 0 # unsigned number
-
-# Whether to align the colon in struct bit fields.
-align_var_def_colon = false # true/false
-
-# The gap for aligning the colon in struct bit fields.
-align_var_def_colon_gap = 0 # unsigned number
-
-# Whether to align any attribute after the variable name.
-align_var_def_attribute = false # true/false
-
-# Whether to align inline struct/enum/union variable definitions.
-align_var_def_inline = false # true/false
-
-# The span for aligning on '=' in assignments.
-#
-# 0: Don't align (default).
-align_assign_span = 0 # unsigned number
-
-# The span for aligning on '=' in function prototype modifier.
-#
-# 0: Don't align (default).
-align_assign_func_proto_span = 0 # unsigned number
-
-# The threshold for aligning on '=' in assignments.
-# Use a negative number for absolute thresholds.
-#
-# 0: No limit (default).
-align_assign_thresh = 0 # number
-
-# How to apply align_assign_span to function declaration "assignments", i.e.
-# 'virtual void foo() = 0' or '~foo() = {default|delete}'.
-#
-# 0: Align with other assignments (default)
-# 1: Align with each other, ignoring regular assignments
-# 2: Don't align
-align_assign_decl_func = 0 # unsigned number
-
-# The span for aligning on '=' in enums.
-#
-# 0: Don't align (default).
-align_enum_equ_span = 0 # unsigned number
-
-# The threshold for aligning on '=' in enums.
-# Use a negative number for absolute thresholds.
-#
-# 0: no limit (default).
-align_enum_equ_thresh = 0 # number
-
-# The span for aligning class member definitions.
-#
-# 0: Don't align (default).
-align_var_class_span = 0 # unsigned number
-
-# The threshold for aligning class member definitions.
-# Use a negative number for absolute thresholds.
-#
-# 0: No limit (default).
-align_var_class_thresh = 0 # number
-
-# The gap for aligning class member definitions.
-align_var_class_gap = 0 # unsigned number
-
-# The span for aligning struct/union member definitions.
-#
-# 0: Don't align (default).
-align_var_struct_span = 0 # unsigned number
-
-# The threshold for aligning struct/union member definitions.
-# Use a negative number for absolute thresholds.
-#
-# 0: No limit (default).
-align_var_struct_thresh = 0 # number
-
-# The gap for aligning struct/union member definitions.
-align_var_struct_gap = 0 # unsigned number
-
-# The span for aligning struct initializer values.
-#
-# 0: Don't align (default).
-align_struct_init_span = 0 # unsigned number
-
-# The span for aligning single-line typedefs.
-#
-# 0: Don't align (default).
-align_typedef_span = 0 # unsigned number
-
-# The minimum space between the type and the synonym of a typedef.
-align_typedef_gap = 0 # unsigned number
-
-# How to align typedef'd functions with other typedefs.
-#
-# 0: Don't mix them at all (default)
-# 1: Align the open parenthesis with the types
-# 2: Align the function type name with the other type names
-align_typedef_func = 0 # unsigned number
-
-# How to consider (or treat) the '*' in the alignment of typedefs.
-#
-# 0: Part of the typedef type, 'typedef int * pint;' (default)
-# 1: Part of type name: 'typedef int *pint;'
-# 2: Dangling: 'typedef int *pint;'
-# Dangling: the '*' will not be taken into account when aligning.
-align_typedef_star_style = 0 # unsigned number
-
-# How to consider (or treat) the '&' in the alignment of typedefs.
-#
-# 0: Part of the typedef type, 'typedef int & intref;' (default)
-# 1: Part of type name: 'typedef int &intref;'
-# 2: Dangling: 'typedef int &intref;'
-# Dangling: the '&' will not be taken into account when aligning.
-align_typedef_amp_style = 0 # unsigned number
-
-# The span for aligning comments that end lines.
-#
-# 0: Don't align (default).
-align_right_cmt_span = 0 # unsigned number
-
-# Minimum number of columns between preceding text and a trailing comment in
-# order for the comment to qualify for being aligned. Must be non-zero to have
-# an effect.
-align_right_cmt_gap = 0 # unsigned number
-
-# If aligning comments, whether to mix with comments after '}' and #endif with
-# less than three spaces before the comment.
-align_right_cmt_mix = false # true/false
-
-# Whether to only align trailing comments that are at the same brace level.
-align_right_cmt_same_level = false # true/false
-
-# Minimum column at which to align trailing comments. Comments which are
-# aligned beyond this column, but which can be aligned in a lesser column,
-# may be "pulled in".
-#
-# 0: Ignore (default).
-align_right_cmt_at_col = 0 # unsigned number
-
-# The span for aligning function prototypes.
-#
-# 0: Don't align (default).
-align_func_proto_span = 0 # unsigned number
-
-# How to consider (or treat) the '*' in the alignment of function prototypes.
-#
-# 0: Part of the type 'void * foo();' (default)
-# 1: Part of the function 'void *foo();'
-# 2: Dangling 'void *foo();'
-# Dangling: the '*' will not be taken into account when aligning.
-align_func_proto_star_style = 0 # unsigned number
-
-# How to consider (or treat) the '&' in the alignment of function prototypes.
-#
-# 0: Part of the type 'long & foo();' (default)
-# 1: Part of the function 'long &foo();'
-# 2: Dangling 'long &foo();'
-# Dangling: the '&' will not be taken into account when aligning.
-align_func_proto_amp_style = 0 # unsigned number
-
-# The threshold for aligning function prototypes.
-# Use a negative number for absolute thresholds.
-#
-# 0: No limit (default).
-align_func_proto_thresh = 0 # number
-
-# Minimum gap between the return type and the function name.
-align_func_proto_gap = 0 # unsigned number
-
-# Whether to align function prototypes on the 'operator' keyword instead of
-# what follows.
-align_on_operator = false # true/false
-
-# Whether to mix aligning prototype and variable declarations. If true,
-# align_var_def_XXX options are used instead of align_func_proto_XXX options.
-align_mix_var_proto = false # true/false
-
-# Whether to align single-line functions with function prototypes.
-# Uses align_func_proto_span.
-align_single_line_func = false # true/false
-
-# Whether to align the open brace of single-line functions.
-# Requires align_single_line_func=true. Uses align_func_proto_span.
-align_single_line_brace = false # true/false
-
-# Gap for align_single_line_brace.
-align_single_line_brace_gap = 0 # unsigned number
-
-# (OC) The span for aligning Objective-C message specifications.
-#
-# 0: Don't align (default).
-align_oc_msg_spec_span = 0 # unsigned number
-
-# Whether to align macros wrapped with a backslash and a newline. This will
-# not work right if the macro contains a multi-line comment.
-align_nl_cont = false # true/false
-
-# Whether to align macro functions and variables together.
-align_pp_define_together = false # true/false
-
-# The span for aligning on '#define' bodies.
-#
-# =0: Don't align (default)
-# >0: Number of lines (including comments) between blocks
-align_pp_define_span = 0 # unsigned number
-
-# The minimum space between label and value of a preprocessor define.
-align_pp_define_gap = 0 # unsigned number
-
-# Whether to align lines that start with '<<' with previous '<<'.
-#
-# Default: true
-align_left_shift = true # true/false
-
-# Whether to align comma-separated statements following '<<' (as used to
-# initialize Eigen matrices).
-align_eigen_comma_init = false # true/false
-
-# Whether to align text after 'asm volatile ()' colons.
-align_asm_colon = false # true/false
-
-# (OC) Span for aligning parameters in an Objective-C message call
-# on the ':'.
-#
-# 0: Don't align.
-align_oc_msg_colon_span = 0 # unsigned number
-
-# (OC) Whether to always align with the first parameter, even if it is too
-# short.
-align_oc_msg_colon_first = false # true/false
-
-# (OC) Whether to align parameters in an Objective-C '+' or '-' declaration
-# on the ':'.
-align_oc_decl_colon = false # true/false
-
-# (OC) Whether to not align parameters in an Objectve-C message call if first
-# colon is not on next line of the message call (the same way Xcode does
-# aligment)
-align_oc_msg_colon_xcode_like = false # true/false
-
-#
-# Comment modification options
-#
-
-# Try to wrap comments at N columns.
-cmt_width = 0 # unsigned number
-
-# How to reflow comments.
-#
-# 0: No reflowing (apart from the line wrapping due to cmt_width) (default)
-# 1: No touching at all
-# 2: Full reflow (enable cmt_indent_multi for indent with line wrapping due to cmt_width)
-cmt_reflow_mode = 0 # unsigned number
-
-# Path to a file that contains regular expressions describing patterns for
-# which the end of one line and the beginning of the next will be folded into
-# the same sentence or paragraph during full comment reflow. The regular
-# expressions are described using ECMAScript syntax. The syntax for this
-# specification is as follows, where "..." indicates the custom regular
-# expression and "n" indicates the nth end_of_prev_line_regex and
-# beg_of_next_line_regex regular expression pair:
-#
-# end_of_prev_line_regex[1] = "...$"
-# beg_of_next_line_regex[1] = "^..."
-# end_of_prev_line_regex[2] = "...$"
-# beg_of_next_line_regex[2] = "^..."
-# .
-# .
-# .
-# end_of_prev_line_regex[n] = "...$"
-# beg_of_next_line_regex[n] = "^..."
-#
-# Note that use of this option overrides the default reflow fold regular
-# expressions, which are internally defined as follows:
-#
-# end_of_prev_line_regex[1] = "[\w,\]\)]$"
-# beg_of_next_line_regex[1] = "^[\w,\[\(]"
-# end_of_prev_line_regex[2] = "\.$"
-# beg_of_next_line_regex[2] = "^[A-Z]"
-cmt_reflow_fold_regex_file = "" # string
-
-# Whether to indent wrapped lines to the start of the encompassing paragraph
-# during full comment reflow (cmt_reflow_mode = 2). Overrides the value
-# specified by cmt_sp_after_star_cont.
-#
-# Note that cmt_align_doxygen_javadoc_tags overrides this option for
-# paragraphs associated with javadoc tags
-cmt_reflow_indent_to_paragraph_start = false # true/false
-
-# Whether to convert all tabs to spaces in comments. If false, tabs in
-# comments are left alone, unless used for indenting.
-cmt_convert_tab_to_spaces = false # true/false
-
-# Whether to apply changes to multi-line comments, including cmt_width,
-# keyword substitution and leading chars.
-#
-# Default: true
-cmt_indent_multi = true # true/false
-
-# Whether to align doxygen javadoc-style tags ('@param', '@return', etc.)
-# and corresponding fields such that groups of consecutive block tags,
-# parameter names, and descriptions align with one another. Overrides that
-# which is specified by the cmt_sp_after_star_cont. If cmt_width > 0, it may
-# be necessary to enable cmt_indent_multi and set cmt_reflow_mode = 2
-# in order to achieve the desired alignment for line-wrapping.
-cmt_align_doxygen_javadoc_tags = false # true/false
-
-# The number of spaces to insert after the star and before doxygen
-# javadoc-style tags (@param, @return, etc). Requires enabling
-# cmt_align_doxygen_javadoc_tags. Overrides that which is specified by the
-# cmt_sp_after_star_cont.
-#
-# Default: 1
-cmt_sp_before_doxygen_javadoc_tags = 1 # unsigned number
-
-# Whether to change trailing, single-line c-comments into cpp-comments.
-cmt_trailing_single_line_c_to_cpp = false # true/false
-
-# Whether to group c-comments that look like they are in a block.
-cmt_c_group = false # true/false
-
-# Whether to put an empty '/*' on the first line of the combined c-comment.
-cmt_c_nl_start = false # true/false
-
-# Whether to add a newline before the closing '*/' of the combined c-comment.
-cmt_c_nl_end = false # true/false
-
-# Whether to change cpp-comments into c-comments.
-cmt_cpp_to_c = false # true/false
-
-# Whether to group cpp-comments that look like they are in a block. Only
-# meaningful if cmt_cpp_to_c=true.
-cmt_cpp_group = false # true/false
-
-# Whether to put an empty '/*' on the first line of the combined cpp-comment
-# when converting to a c-comment.
-#
-# Requires cmt_cpp_to_c=true and cmt_cpp_group=true.
-cmt_cpp_nl_start = false # true/false
-
-# Whether to add a newline before the closing '*/' of the combined cpp-comment
-# when converting to a c-comment.
-#
-# Requires cmt_cpp_to_c=true and cmt_cpp_group=true.
-cmt_cpp_nl_end = false # true/false
-
-# Whether to put a star on subsequent comment lines.
-cmt_star_cont = false # true/false
-
-# The number of spaces to insert at the start of subsequent comment lines.
-cmt_sp_before_star_cont = 0 # unsigned number
-
-# The number of spaces to insert after the star on subsequent comment lines.
-cmt_sp_after_star_cont = 0 # unsigned number
-
-# For multi-line comments with a '*' lead, remove leading spaces if the first
-# and last lines of the comment are the same length.
-#
-# Default: true
-cmt_multi_check_last = true # true/false
-
-# For multi-line comments with a '*' lead, remove leading spaces if the first
-# and last lines of the comment are the same length AND if the length is
-# bigger as the first_len minimum.
-#
-# Default: 4
-cmt_multi_first_len_minimum = 4 # unsigned number
-
-# Path to a file that contains text to insert at the beginning of a file if
-# the file doesn't start with a C/C++ comment. If the inserted text contains
-# '$(filename)', that will be replaced with the current file's name.
-cmt_insert_file_header = "" # string
-
-# Path to a file that contains text to insert at the end of a file if the
-# file doesn't end with a C/C++ comment. If the inserted text contains
-# '$(filename)', that will be replaced with the current file's name.
-cmt_insert_file_footer = "" # string
-
-# Path to a file that contains text to insert before a function definition if
-# the function isn't preceded by a C/C++ comment. If the inserted text
-# contains '$(function)', '$(javaparam)' or '$(fclass)', these will be
-# replaced with, respectively, the name of the function, the javadoc '@param'
-# and '@return' stuff, or the name of the class to which the member function
-# belongs.
-cmt_insert_func_header = "" # string
-
-# Path to a file that contains text to insert before a class if the class
-# isn't preceded by a C/C++ comment. If the inserted text contains '$(class)',
-# that will be replaced with the class name.
-cmt_insert_class_header = "" # string
-
-# Path to a file that contains text to insert before an Objective-C message
-# specification, if the method isn't preceded by a C/C++ comment. If the
-# inserted text contains '$(message)' or '$(javaparam)', these will be
-# replaced with, respectively, the name of the function, or the javadoc
-# '@param' and '@return' stuff.
-cmt_insert_oc_msg_header = "" # string
-
-# Whether a comment should be inserted if a preprocessor is encountered when
-# stepping backwards from a function name.
-#
-# Applies to cmt_insert_oc_msg_header, cmt_insert_func_header and
-# cmt_insert_class_header.
-cmt_insert_before_preproc = false # true/false
-
-# Whether a comment should be inserted if a function is declared inline to a
-# class definition.
-#
-# Applies to cmt_insert_func_header.
-#
-# Default: true
-cmt_insert_before_inlines = true # true/false
-
-# Whether a comment should be inserted if the function is a class constructor
-# or destructor.
-#
-# Applies to cmt_insert_func_header.
-cmt_insert_before_ctor_dtor = false # true/false
-
-#
-# Code modifying options (non-whitespace)
-#
-
-# Add or remove braces on a single-line 'do' statement.
-mod_full_brace_do = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove braces on a single-line 'for' statement.
-mod_full_brace_for = ignore # ignore/add/remove/force/not_defined
-
-# (Pawn) Add or remove braces on a single-line function definition.
-mod_full_brace_function = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove braces on a single-line 'if' statement. Braces will not be
-# removed if the braced statement contains an 'else'.
-mod_full_brace_if = ignore # ignore/add/remove/force/not_defined
-
-# Whether to enforce that all blocks of an 'if'/'else if'/'else' chain either
-# have, or do not have, braces. If true, braces will be added if any block
-# needs braces, and will only be removed if they can be removed from all
-# blocks.
-#
-# Overrides mod_full_brace_if.
-mod_full_brace_if_chain = false # true/false
-
-# Whether to add braces to all blocks of an 'if'/'else if'/'else' chain.
-# If true, mod_full_brace_if_chain will only remove braces from an 'if' that
-# does not have an 'else if' or 'else'.
-mod_full_brace_if_chain_only = false # true/false
-
-# Add or remove braces on single-line 'while' statement.
-mod_full_brace_while = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove braces on single-line 'using ()' statement.
-mod_full_brace_using = ignore # ignore/add/remove/force/not_defined
-
-# Don't remove braces around statements that span N newlines
-mod_full_brace_nl = 0 # unsigned number
-
-# Whether to prevent removal of braces from 'if'/'for'/'while'/etc. blocks
-# which span multiple lines.
-#
-# Affects:
-# mod_full_brace_for
-# mod_full_brace_if
-# mod_full_brace_if_chain
-# mod_full_brace_if_chain_only
-# mod_full_brace_while
-# mod_full_brace_using
-#
-# Does not affect:
-# mod_full_brace_do
-# mod_full_brace_function
-mod_full_brace_nl_block_rem_mlcond = false # true/false
-
-# Add or remove unnecessary parenthesis on 'return' statement.
-mod_paren_on_return = ignore # ignore/add/remove/force/not_defined
-
-# (Pawn) Whether to change optional semicolons to real semicolons.
-mod_pawn_semicolon = false # true/false
-
-# Whether to fully parenthesize Boolean expressions in 'while' and 'if'
-# statement, as in 'if (a && b > c)' => 'if (a && (b > c))'.
-mod_full_paren_if_bool = false # true/false
-
-# Whether to remove superfluous semicolons.
-mod_remove_extra_semicolon = false # true/false
-
-# Whether to remove duplicate include.
-mod_remove_duplicate_include = false # true/false
-
-# If a function body exceeds the specified number of newlines and doesn't have
-# a comment after the close brace, a comment will be added.
-mod_add_long_function_closebrace_comment = 0 # unsigned number
-
-# If a namespace body exceeds the specified number of newlines and doesn't
-# have a comment after the close brace, a comment will be added.
-mod_add_long_namespace_closebrace_comment = 0 # unsigned number
-
-# If a class body exceeds the specified number of newlines and doesn't have a
-# comment after the close brace, a comment will be added.
-mod_add_long_class_closebrace_comment = 0 # unsigned number
-
-# If a switch body exceeds the specified number of newlines and doesn't have a
-# comment after the close brace, a comment will be added.
-mod_add_long_switch_closebrace_comment = 0 # unsigned number
-
-# If an #ifdef body exceeds the specified number of newlines and doesn't have
-# a comment after the #endif, a comment will be added.
-mod_add_long_ifdef_endif_comment = 0 # unsigned number
-
-# If an #ifdef or #else body exceeds the specified number of newlines and
-# doesn't have a comment after the #else, a comment will be added.
-mod_add_long_ifdef_else_comment = 0 # unsigned number
-
-# Whether to take care of the case by the mod_sort_xx options.
-mod_sort_case_sensitive = false # true/false
-
-# Whether to sort consecutive single-line 'import' statements.
-mod_sort_import = false # true/false
-
-# (C#) Whether to sort consecutive single-line 'using' statements.
-mod_sort_using = false # true/false
-
-# Whether to sort consecutive single-line '#include' statements (C/C++) and
-# '#import' statements (Objective-C). Be aware that this has the potential to
-# break your code if your includes/imports have ordering dependencies.
-mod_sort_include = false # true/false
-
-# Whether to prioritize '#include' and '#import' statements that contain
-# filename without extension when sorting is enabled.
-mod_sort_incl_import_prioritize_filename = false # true/false
-
-# Whether to prioritize '#include' and '#import' statements that does not
-# contain extensions when sorting is enabled.
-mod_sort_incl_import_prioritize_extensionless = false # true/false
-
-# Whether to prioritize '#include' and '#import' statements that contain
-# angle over quotes when sorting is enabled.
-mod_sort_incl_import_prioritize_angle_over_quotes = false # true/false
-
-# Whether to ignore file extension in '#include' and '#import' statements
-# for sorting comparison.
-mod_sort_incl_import_ignore_extension = false # true/false
-
-# Whether to group '#include' and '#import' statements when sorting is enabled.
-mod_sort_incl_import_grouping_enabled = false # true/false
-
-# Whether to move a 'break' that appears after a fully braced 'case' before
-# the close brace, as in 'case X: { ... } break;' => 'case X: { ... break; }'.
-mod_move_case_break = false # true/false
-
-# Add or remove braces around a fully braced case statement. Will only remove
-# braces if there are no variable declarations in the block.
-mod_case_brace = ignore # ignore/add/remove/force/not_defined
-
-# Whether to remove a void 'return;' that appears as the last statement in a
-# function.
-mod_remove_empty_return = false # true/false
-
-# Add or remove the comma after the last value of an enumeration.
-mod_enum_last_comma = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Whether to organize the properties. If true, properties will be
-# rearranged according to the mod_sort_oc_property_*_weight factors.
-mod_sort_oc_properties = false # true/false
-
-# (OC) Weight of a class property modifier.
-mod_sort_oc_property_class_weight = 0 # number
-
-# (OC) Weight of 'atomic' and 'nonatomic'.
-mod_sort_oc_property_thread_safe_weight = 0 # number
-
-# (OC) Weight of 'readwrite' when organizing properties.
-mod_sort_oc_property_readwrite_weight = 0 # number
-
-# (OC) Weight of a reference type specifier ('retain', 'copy', 'assign',
-# 'weak', 'strong') when organizing properties.
-mod_sort_oc_property_reference_weight = 0 # number
-
-# (OC) Weight of getter type ('getter=') when organizing properties.
-mod_sort_oc_property_getter_weight = 0 # number
-
-# (OC) Weight of setter type ('setter=') when organizing properties.
-mod_sort_oc_property_setter_weight = 0 # number
-
-# (OC) Weight of nullability type ('nullable', 'nonnull', 'null_unspecified',
-# 'null_resettable') when organizing properties.
-mod_sort_oc_property_nullability_weight = 0 # number
-
-#
-# Preprocessor options
-#
-
-# Add or remove indentation of preprocessor directives inside #if blocks
-# at brace level 0 (file-level).
-pp_indent = ignore # ignore/add/remove/force/not_defined
-
-# Whether to indent #if/#else/#endif at the brace level. If false, these are
-# indented from column 1.
-pp_indent_at_level = false # true/false
-
-# Specifies the number of columns to indent preprocessors per level
-# at brace level 0 (file-level). If pp_indent_at_level=false, also specifies
-# the number of columns to indent preprocessors per level
-# at brace level > 0 (function-level).
-#
-# Default: 1
-pp_indent_count = 1 # unsigned number
-
-# Add or remove space after # based on pp_level of #if blocks.
-pp_space = ignore # ignore/add/remove/force/not_defined
-
-# Sets the number of spaces per level added with pp_space.
-pp_space_count = 0 # unsigned number
-
-# The indent for '#region' and '#endregion' in C# and '#pragma region' in
-# C/C++. Negative values decrease indent down to the first column.
-pp_indent_region = 0 # number
-
-# Whether to indent the code between #region and #endregion.
-pp_region_indent_code = false # true/false
-
-# If pp_indent_at_level=true, sets the indent for #if, #else and #endif when
-# not at file-level. Negative values decrease indent down to the first column.
-#
-# =0: Indent preprocessors using output_tab_size
-# >0: Column at which all preprocessors will be indented
-pp_indent_if = 0 # number
-
-# Whether to indent the code between #if, #else and #endif.
-pp_if_indent_code = false # true/false
-
-# Whether to indent the body of an #if that encompasses all the code in the file.
-pp_indent_in_guard = false # true/false
-
-# Whether to indent '#define' at the brace level. If false, these are
-# indented from column 1.
-pp_define_at_level = false # true/false
-
-# Whether to indent '#include' at the brace level.
-pp_include_at_level = false # true/false
-
-# Whether to ignore the '#define' body while formatting.
-pp_ignore_define_body = false # true/false
-
-# Whether to indent case statements between #if, #else, and #endif.
-# Only applies to the indent of the preprocesser that the case statements
-# directly inside of.
-#
-# Default: true
-pp_indent_case = true # true/false
-
-# Whether to indent whole function definitions between #if, #else, and #endif.
-# Only applies to the indent of the preprocesser that the function definition
-# is directly inside of.
-#
-# Default: true
-pp_indent_func_def = true # true/false
-
-# Whether to indent extern C blocks between #if, #else, and #endif.
-# Only applies to the indent of the preprocesser that the extern block is
-# directly inside of.
-#
-# Default: true
-pp_indent_extern = true # true/false
-
-# Whether to indent braces directly inside #if, #else, and #endif.
-# Only applies to the indent of the preprocesser that the braces are directly
-# inside of.
-#
-# Default: true
-pp_indent_brace = true # true/false
-
-#
-# Sort includes options
-#
-
-# The regex for include category with priority 0.
-include_category_0 = "" # string
-
-# The regex for include category with priority 1.
-include_category_1 = "" # string
-
-# The regex for include category with priority 2.
-include_category_2 = "" # string
-
-#
-# Use or Do not Use options
-#
-
-# true: indent_func_call_param will be used (default)
-# false: indent_func_call_param will NOT be used
-#
-# Default: true
-use_indent_func_call_param = true # true/false
-
-# The value of the indentation for a continuation line is calculated
-# differently if the statement is:
-# - a declaration: your case with QString fileName ...
-# - an assignment: your case with pSettings = new QSettings( ...
-#
-# At the second case the indentation value might be used twice:
-# - at the assignment
-# - at the function call (if present)
-#
-# To prevent the double use of the indentation value, use this option with the
-# value 'true'.
-#
-# true: indent_continue will be used only once
-# false: indent_continue will be used every time (default)
-use_indent_continue_only_once = false # true/false
-
-# The value might be used twice:
-# - at the assignment
-# - at the opening brace
-#
-# To prevent the double use of the indentation value, use this option with the
-# value 'true'.
-#
-# true: indentation will be used only once
-# false: indentation will be used every time (default)
-indent_cpp_lambda_only_once = false # true/false
-
-# Whether sp_after_angle takes precedence over sp_inside_fparen. This was the
-# historic behavior, but is probably not the desired behavior, so this is off
-# by default.
-use_sp_after_angle_always = false # true/false
-
-# Whether to apply special formatting for Qt SIGNAL/SLOT macros. Essentially,
-# this tries to format these so that they match Qt's normalized form (i.e. the
-# result of QMetaObject::normalizedSignature), which can slightly improve the
-# performance of the QObject::connect call, rather than how they would
-# otherwise be formatted.
-#
-# See options_for_QT.cpp for details.
-#
-# Default: true
-use_options_overriding_for_qt_macros = true # true/false
-
-# If true: the form feed character is removed from the list of whitespace
-# characters. See https://en.cppreference.com/w/cpp/string/byte/isspace.
-use_form_feed_no_more_as_whitespace_character = false # true/false
-
-#
-# Warn levels - 1: error, 2: warning (default), 3: note
-#
-
-# (C#) Warning is given if doing tab-to-\t replacement and we have found one
-# in a C# verbatim string literal.
-#
-# Default: 2
-warn_level_tabs_found_in_verbatim_string_literals = 2 # unsigned number
-
-# Limit the number of loops.
-# Used by uncrustify.cpp to exit from infinite loop.
-# 0: no limit.
-debug_max_number_of_loops = 0 # number
-
-# Set the number of the line to protocol;
-# Used in the function prot_the_line if the 2. parameter is zero.
-# 0: nothing protocol.
-debug_line_number_to_protocol = 0 # number
-
-# Set the number of second(s) before terminating formatting the current file,
-# 0: no timeout.
-# only for linux
-debug_timeout = 0 # number
-
-# Set the number of characters to be printed if the text is too long,
-# 0: do not truncate.
-debug_truncate = 0 # unsigned number
-
-# Meaning of the settings:
-# Ignore - do not do any changes
-# Add - makes sure there is 1 or more space/brace/newline/etc
-# Force - makes sure there is exactly 1 space/brace/newline/etc,
-# behaves like Add in some contexts
-# Remove - removes space/brace/newline/etc
-#
-#
-# - Token(s) can be treated as specific type(s) with the 'set' option:
-# `set tokenType tokenString [tokenString...]`
-#
-# Example:
-# `set BOOL __AND__ __OR__`
-#
-# tokenTypes are defined in src/token_enum.h, use them without the
-# 'CT_' prefix: 'CT_BOOL' => 'BOOL'
-#
-#
-# - Token(s) can be treated as type(s) with the 'type' option.
-# `type tokenString [tokenString...]`
-#
-# Example:
-# `type int c_uint_8 Rectangle`
-#
-# This can also be achieved with `set TYPE int c_uint_8 Rectangle`
-#
-#
-# To embed whitespace in tokenStrings use the '\' escape character, or quote
-# the tokenStrings. These quotes are supported: "'`
-#
-#
-# - Support for the auto detection of languages through the file ending can be
-# added using the 'file_ext' command.
-# `file_ext langType langString [langString..]`
-#
-# Example:
-# `file_ext CPP .ch .cxx .cpp.in`
-#
-# langTypes are defined in uncrusify_types.h in the lang_flag_e enum, use
-# them without the 'LANG_' prefix: 'LANG_CPP' => 'CPP'
-#
-#
-# - Custom macro-based indentation can be set up using 'macro-open',
-# 'macro-else' and 'macro-close'.
-# `(macro-open | macro-else | macro-close) tokenString`
-#
-# Example:
-# `macro-open BEGIN_TEMPLATE_MESSAGE_MAP`
-# `macro-open BEGIN_MESSAGE_MAP`
-# `macro-close END_MESSAGE_MAP`
-#
-#
-# option(s) with 'not default' value: 0
-#
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/default.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/default.cfg
deleted file mode 100644
index 8e907784..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/default.cfg
+++ /dev/null
@@ -1,3371 +0,0 @@
-# Uncrustify-0.74.0
-
-#
-# General options
-#
-
-# The type of line endings.
-#
-# Default: auto
-newlines = auto # lf/crlf/cr/auto
-
-# The original size of tabs in the input.
-#
-# Default: 8
-input_tab_size = 8 # unsigned number
-
-# The size of tabs in the output (only used if align_with_tabs=true).
-#
-# Default: 8
-output_tab_size = 8 # unsigned number
-
-# The ASCII value of the string escape char, usually 92 (\) or (Pawn) 94 (^).
-#
-# Default: 92
-string_escape_char = 92 # unsigned number
-
-# Alternate string escape char (usually only used for Pawn).
-# Only works right before the quote char.
-string_escape_char2 = 0 # unsigned number
-
-# Replace tab characters found in string literals with the escape sequence \t
-# instead.
-string_replace_tab_chars = false # true/false
-
-# Allow interpreting '>=' and '>>=' as part of a template in code like
-# 'void f(list<list<B>>=val);'. If true, 'assert(x<0 && y>=3)' will be broken.
-# Improvements to template detection may make this option obsolete.
-tok_split_gte = false # true/false
-
-# Disable formatting of NL_CONT ('\\n') ended lines (e.g. multi-line macros).
-disable_processing_nl_cont = false # true/false
-
-# Specify the marker used in comments to disable processing of part of the
-# file.
-#
-# Default: *INDENT-OFF*
-disable_processing_cmt = " *INDENT-OFF*" # string
-
-# Specify the marker used in comments to (re)enable processing in a file.
-#
-# Default: *INDENT-ON*
-enable_processing_cmt = " *INDENT-ON*" # string
-
-# Enable parsing of digraphs.
-enable_digraphs = false # true/false
-
-# Option to allow both disable_processing_cmt and enable_processing_cmt
-# strings, if specified, to be interpreted as ECMAScript regular expressions.
-# If true, a regex search will be performed within comments according to the
-# specified patterns in order to disable/enable processing.
-processing_cmt_as_regex = false # true/false
-
-# Add or remove the UTF-8 BOM (recommend 'remove').
-utf8_bom = ignore # ignore/add/remove/force/not_defined
-
-# If the file contains bytes with values between 128 and 255, but is not
-# UTF-8, then output as UTF-8.
-utf8_byte = false # true/false
-
-# Force the output encoding to UTF-8.
-utf8_force = false # true/false
-
-#
-# Spacing options
-#
-
-# Add or remove space around non-assignment symbolic operators ('+', '/', '%',
-# '<<', and so forth).
-sp_arith = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space around arithmetic operators '+' and '-'.
-#
-# Overrides sp_arith.
-sp_arith_additive = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space around assignment operator '=', '+=', etc.
-sp_assign = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space around '=' in C++11 lambda capture specifications.
-#
-# Overrides sp_assign.
-sp_cpp_lambda_assign = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after the capture specification of a C++11 lambda when
-# an argument list is present, as in '[] <here> (int x){ ... }'.
-sp_cpp_lambda_square_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after the capture specification of a C++11 lambda with
-# no argument list is present, as in '[] <here> { ... }'.
-sp_cpp_lambda_square_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after the opening parenthesis and before the closing
-# parenthesis of a argument list of a C++11 lambda, as in
-# '[]( <here> int x <here> ){ ... }'.
-sp_cpp_lambda_argument_list = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after the argument list of a C++11 lambda, as in
-# '[](int x) <here> { ... }'.
-sp_cpp_lambda_paren_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between a lambda body and its call operator of an
-# immediately invoked lambda, as in '[]( ... ){ ... } <here> ( ... )'.
-sp_cpp_lambda_fparen = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space around assignment operator '=' in a prototype.
-#
-# If set to ignore, use sp_assign.
-sp_assign_default = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before assignment operator '=', '+=', etc.
-#
-# Overrides sp_assign.
-sp_before_assign = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after assignment operator '=', '+=', etc.
-#
-# Overrides sp_assign.
-sp_after_assign = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space in 'NS_ENUM ('.
-sp_enum_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space around assignment '=' in enum.
-sp_enum_assign = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before assignment '=' in enum.
-#
-# Overrides sp_enum_assign.
-sp_enum_before_assign = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after assignment '=' in enum.
-#
-# Overrides sp_enum_assign.
-sp_enum_after_assign = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space around assignment ':' in enum.
-sp_enum_colon = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space around preprocessor '##' concatenation operator.
-#
-# Default: add
-sp_pp_concat = add # ignore/add/remove/force/not_defined
-
-# Add or remove space after preprocessor '#' stringify operator.
-# Also affects the '#@' charizing operator.
-sp_pp_stringify = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before preprocessor '#' stringify operator
-# as in '#define x(y) L#y'.
-sp_before_pp_stringify = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space around boolean operators '&&' and '||'.
-sp_bool = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space around compare operator '<', '>', '==', etc.
-sp_compare = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space inside '(' and ')'.
-sp_inside_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between nested parentheses, i.e. '((' vs. ') )'.
-sp_paren_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between back-to-back parentheses, i.e. ')(' vs. ') ('.
-sp_cparen_oparen = ignore # ignore/add/remove/force/not_defined
-
-# Whether to balance spaces inside nested parentheses.
-sp_balance_nested_parens = false # true/false
-
-# Add or remove space between ')' and '{'.
-sp_paren_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between nested braces, i.e. '{{' vs. '{ {'.
-sp_brace_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before pointer star '*'.
-sp_before_ptr_star = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before pointer star '*' that isn't followed by a
-# variable name. If set to ignore, sp_before_ptr_star is used instead.
-sp_before_unnamed_ptr_star = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between pointer stars '*', as in 'int ***a;'.
-sp_between_ptr_star = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after pointer star '*', if followed by a word.
-#
-# Overrides sp_type_func.
-sp_after_ptr_star = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after pointer caret '^', if followed by a word.
-sp_after_ptr_block_caret = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after pointer star '*', if followed by a qualifier.
-sp_after_ptr_star_qualifier = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after a pointer star '*', if followed by a function
-# prototype or function definition.
-#
-# Overrides sp_after_ptr_star and sp_type_func.
-sp_after_ptr_star_func = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after a pointer star '*' in the trailing return of a
-# function prototype or function definition.
-sp_after_ptr_star_trailing = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between the pointer star '*' and the name of the variable
-# in a function pointer definition.
-sp_ptr_star_func_var = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after a pointer star '*', if followed by an open
-# parenthesis, as in 'void* (*)()'.
-sp_ptr_star_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before a pointer star '*', if followed by a function
-# prototype or function definition.
-sp_before_ptr_star_func = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before a pointer star '*' in the trailing return of a
-# function prototype or function definition.
-sp_before_ptr_star_trailing = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before a reference sign '&'.
-sp_before_byref = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before a reference sign '&' that isn't followed by a
-# variable name. If set to ignore, sp_before_byref is used instead.
-sp_before_unnamed_byref = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after reference sign '&', if followed by a word.
-#
-# Overrides sp_type_func.
-sp_after_byref = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after a reference sign '&', if followed by a function
-# prototype or function definition.
-#
-# Overrides sp_after_byref and sp_type_func.
-sp_after_byref_func = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before a reference sign '&', if followed by a function
-# prototype or function definition.
-sp_before_byref_func = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between type and word. In cases where total removal of
-# whitespace would be a syntax error, a value of 'remove' is treated the same
-# as 'force'.
-#
-# This also affects some other instances of space following a type that are
-# not covered by other options; for example, between the return type and
-# parenthesis of a function type template argument, between the type and
-# parenthesis of an array parameter, or between 'decltype(...)' and the
-# following word.
-#
-# Default: force
-sp_after_type = force # ignore/add/remove/force/not_defined
-
-# Add or remove space between 'decltype(...)' and word,
-# brace or function call.
-sp_after_decltype = ignore # ignore/add/remove/force/not_defined
-
-# (D) Add or remove space before the parenthesis in the D constructs
-# 'template Foo(' and 'class Foo('.
-sp_before_template_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between 'template' and '<'.
-# If set to ignore, sp_before_angle is used.
-sp_template_angle = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before '<'.
-sp_before_angle = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space inside '<' and '>'.
-sp_inside_angle = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space inside '<>'.
-sp_inside_angle_empty = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between '>' and ':'.
-sp_angle_colon = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after '>'.
-sp_after_angle = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between '>' and '(' as found in 'new List<byte>(foo);'.
-sp_angle_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between '>' and '()' as found in 'new List<byte>();'.
-sp_angle_paren_empty = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between '>' and a word as in 'List<byte> m;' or
-# 'template <typename T> static ...'.
-sp_angle_word = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between '>' and '>' in '>>' (template stuff).
-#
-# Default: add
-sp_angle_shift = add # ignore/add/remove/force/not_defined
-
-# (C++11) Permit removal of the space between '>>' in 'foo<bar<int> >'. Note
-# that sp_angle_shift cannot remove the space without this option.
-sp_permit_cpp11_shift = false # true/false
-
-# Add or remove space before '(' of control statements ('if', 'for', 'switch',
-# 'while', etc.).
-sp_before_sparen = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space inside '(' and ')' of control statements other than
-# 'for'.
-sp_inside_sparen = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after '(' of control statements other than 'for'.
-#
-# Overrides sp_inside_sparen.
-sp_inside_sparen_open = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before ')' of control statements other than 'for'.
-#
-# Overrides sp_inside_sparen.
-sp_inside_sparen_close = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space inside '(' and ')' of 'for' statements.
-sp_inside_for = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after '(' of 'for' statements.
-#
-# Overrides sp_inside_for.
-sp_inside_for_open = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before ')' of 'for' statements.
-#
-# Overrides sp_inside_for.
-sp_inside_for_close = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between '((' or '))' of control statements.
-sp_sparen_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after ')' of control statements.
-sp_after_sparen = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between ')' and '{' of control statements.
-sp_sparen_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between 'do' and '{'.
-sp_do_brace_open = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between '}' and 'while'.
-sp_brace_close_while = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between 'while' and '('. Overrides sp_before_sparen.
-sp_while_paren_open = ignore # ignore/add/remove/force/not_defined
-
-# (D) Add or remove space between 'invariant' and '('.
-sp_invariant_paren = ignore # ignore/add/remove/force/not_defined
-
-# (D) Add or remove space after the ')' in 'invariant (C) c'.
-sp_after_invariant_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before empty statement ';' on 'if', 'for' and 'while'.
-sp_special_semi = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before ';'.
-#
-# Default: remove
-sp_before_semi = remove # ignore/add/remove/force/not_defined
-
-# Add or remove space before ';' in non-empty 'for' statements.
-sp_before_semi_for = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before a semicolon of an empty left part of a for
-# statement, as in 'for ( <here> ; ; )'.
-sp_before_semi_for_empty = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between the semicolons of an empty middle part of a for
-# statement, as in 'for ( ; <here> ; )'.
-sp_between_semi_for_empty = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after ';', except when followed by a comment.
-#
-# Default: add
-sp_after_semi = add # ignore/add/remove/force/not_defined
-
-# Add or remove space after ';' in non-empty 'for' statements.
-#
-# Default: force
-sp_after_semi_for = force # ignore/add/remove/force/not_defined
-
-# Add or remove space after the final semicolon of an empty part of a for
-# statement, as in 'for ( ; ; <here> )'.
-sp_after_semi_for_empty = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before '[' (except '[]').
-sp_before_square = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before '[' for a variable definition.
-#
-# Default: remove
-sp_before_vardef_square = remove # ignore/add/remove/force/not_defined
-
-# Add or remove space before '[' for asm block.
-sp_before_square_asm_block = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before '[]'.
-sp_before_squares = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before C++17 structured bindings.
-sp_cpp_before_struct_binding = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space inside a non-empty '[' and ']'.
-sp_inside_square = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space inside '[]'.
-sp_inside_square_empty = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space inside a non-empty Objective-C boxed array '@[' and
-# ']'. If set to ignore, sp_inside_square is used.
-sp_inside_square_oc_array = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after ',', i.e. 'a,b' vs. 'a, b'.
-sp_after_comma = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before ',', i.e. 'a,b' vs. 'a ,b'.
-#
-# Default: remove
-sp_before_comma = remove # ignore/add/remove/force/not_defined
-
-# (C#) Add or remove space between ',' and ']' in multidimensional array type
-# like 'int[,,]'.
-sp_after_mdatype_commas = ignore # ignore/add/remove/force/not_defined
-
-# (C#) Add or remove space between '[' and ',' in multidimensional array type
-# like 'int[,,]'.
-sp_before_mdatype_commas = ignore # ignore/add/remove/force/not_defined
-
-# (C#) Add or remove space between ',' in multidimensional array type
-# like 'int[,,]'.
-sp_between_mdatype_commas = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between an open parenthesis and comma,
-# i.e. '(,' vs. '( ,'.
-#
-# Default: force
-sp_paren_comma = force # ignore/add/remove/force/not_defined
-
-# Add or remove space after the variadic '...' when preceded by a
-# non-punctuator.
-# The value REMOVE will be overriden with FORCE
-sp_after_ellipsis = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before the variadic '...' when preceded by a
-# non-punctuator.
-# The value REMOVE will be overriden with FORCE
-sp_before_ellipsis = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between a type and '...'.
-sp_type_ellipsis = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between a '*' and '...'.
-sp_ptr_type_ellipsis = ignore # ignore/add/remove/force/not_defined
-
-# (D) Add or remove space between a type and '?'.
-sp_type_question = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between ')' and '...'.
-sp_paren_ellipsis = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between '&&' and '...'.
-sp_byref_ellipsis = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between ')' and a qualifier such as 'const'.
-sp_paren_qualifier = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between ')' and 'noexcept'.
-sp_paren_noexcept = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after class ':'.
-sp_after_class_colon = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before class ':'.
-sp_before_class_colon = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after class constructor ':'.
-#
-# Default: add
-sp_after_constr_colon = add # ignore/add/remove/force/not_defined
-
-# Add or remove space before class constructor ':'.
-#
-# Default: add
-sp_before_constr_colon = add # ignore/add/remove/force/not_defined
-
-# Add or remove space before case ':'.
-#
-# Default: remove
-sp_before_case_colon = remove # ignore/add/remove/force/not_defined
-
-# Add or remove space between 'operator' and operator sign.
-sp_after_operator = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between the operator symbol and the open parenthesis, as
-# in 'operator ++('.
-sp_after_operator_sym = ignore # ignore/add/remove/force/not_defined
-
-# Overrides sp_after_operator_sym when the operator has no arguments, as in
-# 'operator *()'.
-sp_after_operator_sym_empty = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after C/D cast, i.e. 'cast(int)a' vs. 'cast(int) a' or
-# '(int)a' vs. '(int) a'.
-sp_after_cast = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove spaces inside cast parentheses.
-sp_inside_paren_cast = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between the type and open parenthesis in a C++ cast,
-# i.e. 'int(exp)' vs. 'int (exp)'.
-sp_cpp_cast_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between 'sizeof' and '('.
-sp_sizeof_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between 'sizeof' and '...'.
-sp_sizeof_ellipsis = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between 'sizeof...' and '('.
-sp_sizeof_ellipsis_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between '...' and a parameter pack.
-sp_ellipsis_parameter_pack = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between a parameter pack and '...'.
-sp_parameter_pack_ellipsis = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between 'decltype' and '('.
-sp_decltype_paren = ignore # ignore/add/remove/force/not_defined
-
-# (Pawn) Add or remove space after the tag keyword.
-sp_after_tag = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space inside enum '{' and '}'.
-sp_inside_braces_enum = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space inside struct/union '{' and '}'.
-sp_inside_braces_struct = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space inside Objective-C boxed dictionary '{' and '}'
-sp_inside_braces_oc_dict = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after open brace in an unnamed temporary
-# direct-list-initialization
-# if statement is a brace_init_lst
-# works only if sp_brace_brace is set to ignore.
-sp_after_type_brace_init_lst_open = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before close brace in an unnamed temporary
-# direct-list-initialization
-# if statement is a brace_init_lst
-# works only if sp_brace_brace is set to ignore.
-sp_before_type_brace_init_lst_close = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space inside an unnamed temporary direct-list-initialization
-# if statement is a brace_init_lst
-# works only if sp_brace_brace is set to ignore
-# works only if sp_before_type_brace_init_lst_close is set to ignore.
-sp_inside_type_brace_init_lst = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space inside '{' and '}'.
-sp_inside_braces = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space inside '{}'.
-sp_inside_braces_empty = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space around trailing return operator '->'.
-sp_trailing_return = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between return type and function name. A minimum of 1
-# is forced except for pointer return types.
-sp_type_func = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between type and open brace of an unnamed temporary
-# direct-list-initialization.
-sp_type_brace_init_lst = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between function name and '(' on function declaration.
-sp_func_proto_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between function name and '()' on function declaration
-# without parameters.
-sp_func_proto_paren_empty = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between function name and '(' with a typedef specifier.
-sp_func_type_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between alias name and '(' of a non-pointer function type typedef.
-sp_func_def_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between function name and '()' on function definition
-# without parameters.
-sp_func_def_paren_empty = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space inside empty function '()'.
-# Overrides sp_after_angle unless use_sp_after_angle_always is set to true.
-sp_inside_fparens = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space inside function '(' and ')'.
-sp_inside_fparen = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space inside the first parentheses in a function type, as in
-# 'void (*x)(...)'.
-sp_inside_tparen = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between the ')' and '(' in a function type, as in
-# 'void (*x)(...)'.
-sp_after_tparen_close = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between ']' and '(' when part of a function call.
-sp_square_fparen = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between ')' and '{' of function.
-sp_fparen_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between ')' and '{' of a function call in object
-# initialization.
-#
-# Overrides sp_fparen_brace.
-sp_fparen_brace_initializer = ignore # ignore/add/remove/force/not_defined
-
-# (Java) Add or remove space between ')' and '{{' of double brace initializer.
-sp_fparen_dbrace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between function name and '(' on function calls.
-sp_func_call_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between function name and '()' on function calls without
-# parameters. If set to ignore (the default), sp_func_call_paren is used.
-sp_func_call_paren_empty = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between the user function name and '(' on function
-# calls. You need to set a keyword to be a user function in the config file,
-# like:
-# set func_call_user tr _ i18n
-sp_func_call_user_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space inside user function '(' and ')'.
-sp_func_call_user_inside_fparen = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between nested parentheses with user functions,
-# i.e. '((' vs. '( ('.
-sp_func_call_user_paren_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between a constructor/destructor and the open
-# parenthesis.
-sp_func_class_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between a constructor without parameters or destructor
-# and '()'.
-sp_func_class_paren_empty = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after 'return'.
-#
-# Default: force
-sp_return = force # ignore/add/remove/force/not_defined
-
-# Add or remove space between 'return' and '('.
-sp_return_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between 'return' and '{'.
-sp_return_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between '__attribute__' and '('.
-sp_attribute_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between 'defined' and '(' in '#if defined (FOO)'.
-sp_defined_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between 'throw' and '(' in 'throw (something)'.
-sp_throw_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between 'throw' and anything other than '(' as in
-# '@throw [...];'.
-sp_after_throw = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between 'catch' and '(' in 'catch (something) { }'.
-# If set to ignore, sp_before_sparen is used.
-sp_catch_paren = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space between '@catch' and '('
-# in '@catch (something) { }'. If set to ignore, sp_catch_paren is used.
-sp_oc_catch_paren = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space before Objective-C protocol list
-# as in '@protocol Protocol<here><Protocol_A>' or '@interface MyClass : NSObject<here><MyProtocol>'.
-sp_before_oc_proto_list = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space between class name and '('
-# in '@interface className(categoryName)<ProtocolName>:BaseClass'
-sp_oc_classname_paren = ignore # ignore/add/remove/force/not_defined
-
-# (D) Add or remove space between 'version' and '('
-# in 'version (something) { }'. If set to ignore, sp_before_sparen is used.
-sp_version_paren = ignore # ignore/add/remove/force/not_defined
-
-# (D) Add or remove space between 'scope' and '('
-# in 'scope (something) { }'. If set to ignore, sp_before_sparen is used.
-sp_scope_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between 'super' and '(' in 'super (something)'.
-#
-# Default: remove
-sp_super_paren = remove # ignore/add/remove/force/not_defined
-
-# Add or remove space between 'this' and '(' in 'this (something)'.
-#
-# Default: remove
-sp_this_paren = remove # ignore/add/remove/force/not_defined
-
-# Add or remove space between a macro name and its definition.
-sp_macro = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between a macro function ')' and its definition.
-sp_macro_func = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between 'else' and '{' if on the same line.
-sp_else_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between '}' and 'else' if on the same line.
-sp_brace_else = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between '}' and the name of a typedef on the same line.
-sp_brace_typedef = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before the '{' of a 'catch' statement, if the '{' and
-# 'catch' are on the same line, as in 'catch (decl) <here> {'.
-sp_catch_brace = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space before the '{' of a '@catch' statement, if the '{'
-# and '@catch' are on the same line, as in '@catch (decl) <here> {'.
-# If set to ignore, sp_catch_brace is used.
-sp_oc_catch_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between '}' and 'catch' if on the same line.
-sp_brace_catch = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space between '}' and '@catch' if on the same line.
-# If set to ignore, sp_brace_catch is used.
-sp_oc_brace_catch = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between 'finally' and '{' if on the same line.
-sp_finally_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between '}' and 'finally' if on the same line.
-sp_brace_finally = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between 'try' and '{' if on the same line.
-sp_try_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between get/set and '{' if on the same line.
-sp_getset_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between a variable and '{' for C++ uniform
-# initialization.
-sp_word_brace_init_lst = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between a variable and '{' for a namespace.
-#
-# Default: add
-sp_word_brace_ns = add # ignore/add/remove/force/not_defined
-
-# Add or remove space before the '::' operator.
-sp_before_dc = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after the '::' operator.
-sp_after_dc = ignore # ignore/add/remove/force/not_defined
-
-# (D) Add or remove around the D named array initializer ':' operator.
-sp_d_array_colon = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after the '!' (not) unary operator.
-#
-# Default: remove
-sp_not = remove # ignore/add/remove/force/not_defined
-
-# Add or remove space after the '~' (invert) unary operator.
-#
-# Default: remove
-sp_inv = remove # ignore/add/remove/force/not_defined
-
-# Add or remove space after the '&' (address-of) unary operator. This does not
-# affect the spacing after a '&' that is part of a type.
-#
-# Default: remove
-sp_addr = remove # ignore/add/remove/force/not_defined
-
-# Add or remove space around the '.' or '->' operators.
-#
-# Default: remove
-sp_member = remove # ignore/add/remove/force/not_defined
-
-# Add or remove space after the '*' (dereference) unary operator. This does
-# not affect the spacing after a '*' that is part of a type.
-#
-# Default: remove
-sp_deref = remove # ignore/add/remove/force/not_defined
-
-# Add or remove space after '+' or '-', as in 'x = -5' or 'y = +7'.
-#
-# Default: remove
-sp_sign = remove # ignore/add/remove/force/not_defined
-
-# Add or remove space between '++' and '--' the word to which it is being
-# applied, as in '(--x)' or 'y++;'.
-#
-# Default: remove
-sp_incdec = remove # ignore/add/remove/force/not_defined
-
-# Add or remove space before a backslash-newline at the end of a line.
-#
-# Default: add
-sp_before_nl_cont = add # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space after the scope '+' or '-', as in '-(void) foo;'
-# or '+(int) bar;'.
-sp_after_oc_scope = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space after the colon in message specs,
-# i.e. '-(int) f:(int) x;' vs. '-(int) f: (int) x;'.
-sp_after_oc_colon = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space before the colon in message specs,
-# i.e. '-(int) f: (int) x;' vs. '-(int) f : (int) x;'.
-sp_before_oc_colon = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space after the colon in immutable dictionary expression
-# 'NSDictionary *test = @{@"foo" :@"bar"};'.
-sp_after_oc_dict_colon = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space before the colon in immutable dictionary expression
-# 'NSDictionary *test = @{@"foo" :@"bar"};'.
-sp_before_oc_dict_colon = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space after the colon in message specs,
-# i.e. '[object setValue:1];' vs. '[object setValue: 1];'.
-sp_after_send_oc_colon = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space before the colon in message specs,
-# i.e. '[object setValue:1];' vs. '[object setValue :1];'.
-sp_before_send_oc_colon = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space after the (type) in message specs,
-# i.e. '-(int)f: (int) x;' vs. '-(int)f: (int)x;'.
-sp_after_oc_type = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space after the first (type) in message specs,
-# i.e. '-(int) f:(int)x;' vs. '-(int)f:(int)x;'.
-sp_after_oc_return_type = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space between '@selector' and '(',
-# i.e. '@selector(msgName)' vs. '@selector (msgName)'.
-# Also applies to '@protocol()' constructs.
-sp_after_oc_at_sel = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space between '@selector(x)' and the following word,
-# i.e. '@selector(foo) a:' vs. '@selector(foo)a:'.
-sp_after_oc_at_sel_parens = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space inside '@selector' parentheses,
-# i.e. '@selector(foo)' vs. '@selector( foo )'.
-# Also applies to '@protocol()' constructs.
-sp_inside_oc_at_sel_parens = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space before a block pointer caret,
-# i.e. '^int (int arg){...}' vs. ' ^int (int arg){...}'.
-sp_before_oc_block_caret = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space after a block pointer caret,
-# i.e. '^int (int arg){...}' vs. '^ int (int arg){...}'.
-sp_after_oc_block_caret = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space between the receiver and selector in a message,
-# as in '[receiver selector ...]'.
-sp_after_oc_msg_receiver = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space after '@property'.
-sp_after_oc_property = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space between '@synchronized' and the open parenthesis,
-# i.e. '@synchronized(foo)' vs. '@synchronized (foo)'.
-sp_after_oc_synchronized = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space around the ':' in 'b ? t : f'.
-sp_cond_colon = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before the ':' in 'b ? t : f'.
-#
-# Overrides sp_cond_colon.
-sp_cond_colon_before = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after the ':' in 'b ? t : f'.
-#
-# Overrides sp_cond_colon.
-sp_cond_colon_after = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space around the '?' in 'b ? t : f'.
-sp_cond_question = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before the '?' in 'b ? t : f'.
-#
-# Overrides sp_cond_question.
-sp_cond_question_before = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after the '?' in 'b ? t : f'.
-#
-# Overrides sp_cond_question.
-sp_cond_question_after = ignore # ignore/add/remove/force/not_defined
-
-# In the abbreviated ternary form '(a ?: b)', add or remove space between '?'
-# and ':'.
-#
-# Overrides all other sp_cond_* options.
-sp_cond_ternary_short = ignore # ignore/add/remove/force/not_defined
-
-# Fix the spacing between 'case' and the label. Only 'ignore' and 'force' make
-# sense here.
-sp_case_label = ignore # ignore/add/remove/force/not_defined
-
-# (D) Add or remove space around the D '..' operator.
-sp_range = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after ':' in a Java/C++11 range-based 'for',
-# as in 'for (Type var : <here> expr)'.
-sp_after_for_colon = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before ':' in a Java/C++11 range-based 'for',
-# as in 'for (Type var <here> : expr)'.
-sp_before_for_colon = ignore # ignore/add/remove/force/not_defined
-
-# (D) Add or remove space between 'extern' and '(' as in 'extern <here> (C)'.
-sp_extern_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after the opening of a C++ comment, as in '// <here> A'.
-sp_cmt_cpp_start = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space in a C++ region marker comment, as in '// <here> BEGIN'.
-# A region marker is defined as a comment which is not preceded by other text
-# (i.e. the comment is the first non-whitespace on the line), and which starts
-# with either 'BEGIN' or 'END'.
-#
-# Overrides sp_cmt_cpp_start.
-sp_cmt_cpp_region = ignore # ignore/add/remove/force/not_defined
-
-# If true, space added with sp_cmt_cpp_start will be added after Doxygen
-# sequences like '///', '///<', '//!' and '//!<'.
-sp_cmt_cpp_doxygen = false # true/false
-
-# If true, space added with sp_cmt_cpp_start will be added after Qt translator
-# or meta-data comments like '//:', '//=', and '//~'.
-sp_cmt_cpp_qttr = false # true/false
-
-# Add or remove space between #else or #endif and a trailing comment.
-sp_endif_cmt = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after 'new', 'delete' and 'delete[]'.
-sp_after_new = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between 'new' and '(' in 'new()'.
-sp_between_new_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between ')' and type in 'new(foo) BAR'.
-sp_after_newop_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space inside parenthesis of the new operator
-# as in 'new(foo) BAR'.
-sp_inside_newop_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after the open parenthesis of the new operator,
-# as in 'new(foo) BAR'.
-#
-# Overrides sp_inside_newop_paren.
-sp_inside_newop_paren_open = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before the close parenthesis of the new operator,
-# as in 'new(foo) BAR'.
-#
-# Overrides sp_inside_newop_paren.
-sp_inside_newop_paren_close = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before a trailing comment.
-sp_before_tr_cmt = ignore # ignore/add/remove/force/not_defined
-
-# Number of spaces before a trailing comment.
-sp_num_before_tr_cmt = 0 # unsigned number
-
-# Add or remove space before an embedded comment.
-#
-# Default: force
-sp_before_emb_cmt = force # ignore/add/remove/force/not_defined
-
-# Number of spaces before an embedded comment.
-#
-# Default: 1
-sp_num_before_emb_cmt = 1 # unsigned number
-
-# Add or remove space after an embedded comment.
-#
-# Default: force
-sp_after_emb_cmt = force # ignore/add/remove/force/not_defined
-
-# Number of spaces after an embedded comment.
-#
-# Default: 1
-sp_num_after_emb_cmt = 1 # unsigned number
-
-# (Java) Add or remove space between an annotation and the open parenthesis.
-sp_annotation_paren = ignore # ignore/add/remove/force/not_defined
-
-# If true, vbrace tokens are dropped to the previous token and skipped.
-sp_skip_vbrace_tokens = false # true/false
-
-# Add or remove space after 'noexcept'.
-sp_after_noexcept = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after '_'.
-sp_vala_after_translation = ignore # ignore/add/remove/force/not_defined
-
-# If true, a <TAB> is inserted after #define.
-force_tab_after_define = false # true/false
-
-#
-# Indenting options
-#
-
-# The number of columns to indent per level. Usually 2, 3, 4, or 8.
-#
-# Default: 8
-indent_columns = 8 # unsigned number
-
-# The continuation indent. If non-zero, this overrides the indent of '(', '['
-# and '=' continuation indents. Negative values are OK; negative value is
-# absolute and not increased for each '(' or '[' level.
-#
-# For FreeBSD, this is set to 4.
-indent_continue = 0 # number
-
-# The continuation indent, only for class header line(s). If non-zero, this
-# overrides the indent of 'class' continuation indents.
-indent_continue_class_head = 0 # unsigned number
-
-# Whether to indent empty lines (i.e. lines which contain only spaces before
-# the newline character).
-indent_single_newlines = false # true/false
-
-# The continuation indent for func_*_param if they are true. If non-zero, this
-# overrides the indent.
-indent_param = 0 # unsigned number
-
-# How to use tabs when indenting code.
-#
-# 0: Spaces only
-# 1: Indent with tabs to brace level, align with spaces (default)
-# 2: Indent and align with tabs, using spaces when not on a tabstop
-#
-# Default: 1
-indent_with_tabs = 1 # unsigned number
-
-# Whether to indent comments that are not at a brace level with tabs on a
-# tabstop. Requires indent_with_tabs=2. If false, will use spaces.
-indent_cmt_with_tabs = false # true/false
-
-# Whether to indent strings broken by '\' so that they line up.
-indent_align_string = false # true/false
-
-# The number of spaces to indent multi-line XML strings.
-# Requires indent_align_string=true.
-indent_xml_string = 0 # unsigned number
-
-# Spaces to indent '{' from level.
-indent_brace = 0 # unsigned number
-
-# Whether braces are indented to the body level.
-indent_braces = false # true/false
-
-# Whether to disable indenting function braces if indent_braces=true.
-indent_braces_no_func = false # true/false
-
-# Whether to disable indenting class braces if indent_braces=true.
-indent_braces_no_class = false # true/false
-
-# Whether to disable indenting struct braces if indent_braces=true.
-indent_braces_no_struct = false # true/false
-
-# Whether to indent based on the size of the brace parent,
-# i.e. 'if' => 3 spaces, 'for' => 4 spaces, etc.
-indent_brace_parent = false # true/false
-
-# Whether to indent based on the open parenthesis instead of the open brace
-# in '({\n'.
-indent_paren_open_brace = false # true/false
-
-# (C#) Whether to indent the brace of a C# delegate by another level.
-indent_cs_delegate_brace = false # true/false
-
-# (C#) Whether to indent a C# delegate (to handle delegates with no brace) by
-# another level.
-indent_cs_delegate_body = false # true/false
-
-# Whether to indent the body of a 'namespace'.
-indent_namespace = false # true/false
-
-# Whether to indent only the first namespace, and not any nested namespaces.
-# Requires indent_namespace=true.
-indent_namespace_single_indent = false # true/false
-
-# The number of spaces to indent a namespace block.
-# If set to zero, use the value indent_columns
-indent_namespace_level = 0 # unsigned number
-
-# If the body of the namespace is longer than this number, it won't be
-# indented. Requires indent_namespace=true. 0 means no limit.
-indent_namespace_limit = 0 # unsigned number
-
-# Whether the 'extern "C"' body is indented.
-indent_extern = false # true/false
-
-# Whether the 'class' body is indented.
-indent_class = false # true/false
-
-# Additional indent before the leading base class colon.
-# Negative values decrease indent down to the first column.
-# Requires a newline break before colon (see pos_class_colon
-# and nl_class_colon)
-indent_before_class_colon = 0 # number
-
-# Whether to indent the stuff after a leading base class colon.
-indent_class_colon = false # true/false
-
-# Whether to indent based on a class colon instead of the stuff after the
-# colon. Requires indent_class_colon=true.
-indent_class_on_colon = false # true/false
-
-# Whether to indent the stuff after a leading class initializer colon.
-indent_constr_colon = false # true/false
-
-# Virtual indent from the ':' for leading member initializers.
-#
-# Default: 2
-indent_ctor_init_leading = 2 # unsigned number
-
-# Virtual indent from the ':' for following member initializers.
-#
-# Default: 2
-indent_ctor_init_following = 2 # unsigned number
-
-# Additional indent for constructor initializer list.
-# Negative values decrease indent down to the first column.
-indent_ctor_init = 0 # number
-
-# Whether to indent 'if' following 'else' as a new block under the 'else'.
-# If false, 'else\nif' is treated as 'else if' for indenting purposes.
-indent_else_if = false # true/false
-
-# Amount to indent variable declarations after a open brace.
-#
-# <0: Relative
-# >=0: Absolute
-indent_var_def_blk = 0 # number
-
-# Whether to indent continued variable declarations instead of aligning.
-indent_var_def_cont = false # true/false
-
-# Whether to indent continued shift expressions ('<<' and '>>') instead of
-# aligning. Set align_left_shift=false when enabling this.
-indent_shift = false # true/false
-
-# Whether to force indentation of function definitions to start in column 1.
-indent_func_def_force_col1 = false # true/false
-
-# Whether to indent continued function call parameters one indent level,
-# rather than aligning parameters under the open parenthesis.
-indent_func_call_param = false # true/false
-
-# Whether to indent continued function definition parameters one indent level,
-# rather than aligning parameters under the open parenthesis.
-indent_func_def_param = false # true/false
-
-# for function definitions, only if indent_func_def_param is false
-# Allows to align params when appropriate and indent them when not
-# behave as if it was true if paren position is more than this value
-# if paren position is more than the option value
-indent_func_def_param_paren_pos_threshold = 0 # unsigned number
-
-# Whether to indent continued function call prototype one indent level,
-# rather than aligning parameters under the open parenthesis.
-indent_func_proto_param = false # true/false
-
-# Whether to indent continued function call declaration one indent level,
-# rather than aligning parameters under the open parenthesis.
-indent_func_class_param = false # true/false
-
-# Whether to indent continued class variable constructors one indent level,
-# rather than aligning parameters under the open parenthesis.
-indent_func_ctor_var_param = false # true/false
-
-# Whether to indent continued template parameter list one indent level,
-# rather than aligning parameters under the open parenthesis.
-indent_template_param = false # true/false
-
-# Double the indent for indent_func_xxx_param options.
-# Use both values of the options indent_columns and indent_param.
-indent_func_param_double = false # true/false
-
-# Indentation column for standalone 'const' qualifier on a function
-# prototype.
-indent_func_const = 0 # unsigned number
-
-# Indentation column for standalone 'throw' qualifier on a function
-# prototype.
-indent_func_throw = 0 # unsigned number
-
-# How to indent within a macro followed by a brace on the same line
-# This allows reducing the indent in macros that have (for example)
-# `do { ... } while (0)` blocks bracketing them.
-#
-# true: add an indent for the brace on the same line as the macro
-# false: do not add an indent for the brace on the same line as the macro
-#
-# Default: true
-indent_macro_brace = true # true/false
-
-# The number of spaces to indent a continued '->' or '.'.
-# Usually set to 0, 1, or indent_columns.
-indent_member = 0 # unsigned number
-
-# Whether lines broken at '.' or '->' should be indented by a single indent.
-# The indent_member option will not be effective if this is set to true.
-indent_member_single = false # true/false
-
-# Spaces to indent single line ('//') comments on lines before code.
-indent_single_line_comments_before = 0 # unsigned number
-
-# Spaces to indent single line ('//') comments on lines after code.
-indent_single_line_comments_after = 0 # unsigned number
-
-# When opening a paren for a control statement (if, for, while, etc), increase
-# the indent level by this value. Negative values decrease the indent level.
-indent_sparen_extra = 0 # number
-
-# Whether to indent trailing single line ('//') comments relative to the code
-# instead of trying to keep the same absolute column.
-indent_relative_single_line_comments = false # true/false
-
-# Spaces to indent 'case' from 'switch'. Usually 0 or indent_columns.
-# It might be wise to choose the same value for the option indent_case_brace.
-indent_switch_case = 0 # unsigned number
-
-# Spaces to indent the body of a 'switch' before any 'case'.
-# Usually the same as indent_columns or indent_switch_case.
-indent_switch_body = 0 # unsigned number
-
-# Spaces to indent '{' from 'case'. By default, the brace will appear under
-# the 'c' in case. Usually set to 0 or indent_columns. Negative values are OK.
-# It might be wise to choose the same value for the option indent_switch_case.
-indent_case_brace = 0 # number
-
-# indent 'break' with 'case' from 'switch'.
-indent_switch_break_with_case = false # true/false
-
-# Whether to indent preprocessor statements inside of switch statements.
-#
-# Default: true
-indent_switch_pp = true # true/false
-
-# Spaces to shift the 'case' line, without affecting any other lines.
-# Usually 0.
-indent_case_shift = 0 # unsigned number
-
-# Whether to align comments before 'case' with the 'case'.
-#
-# Default: true
-indent_case_comment = true # true/false
-
-# Whether to indent comments not found in first column.
-#
-# Default: true
-indent_comment = true # true/false
-
-# Whether to indent comments found in first column.
-indent_col1_comment = false # true/false
-
-# Whether to indent multi string literal in first column.
-indent_col1_multi_string_literal = false # true/false
-
-# Align comments on adjacent lines that are this many columns apart or less.
-#
-# Default: 3
-indent_comment_align_thresh = 3 # unsigned number
-
-# Whether to ignore indent for goto labels.
-indent_ignore_label = false # true/false
-
-# How to indent goto labels. Requires indent_ignore_label=false.
-#
-# >0: Absolute column where 1 is the leftmost column
-# <=0: Subtract from brace indent
-#
-# Default: 1
-indent_label = 1 # number
-
-# How to indent access specifiers that are followed by a
-# colon.
-#
-# >0: Absolute column where 1 is the leftmost column
-# <=0: Subtract from brace indent
-#
-# Default: 1
-indent_access_spec = 1 # number
-
-# Whether to indent the code after an access specifier by one level.
-# If true, this option forces 'indent_access_spec=0'.
-indent_access_spec_body = false # true/false
-
-# If an open parenthesis is followed by a newline, whether to indent the next
-# line so that it lines up after the open parenthesis (not recommended).
-indent_paren_nl = false # true/false
-
-# How to indent a close parenthesis after a newline.
-#
-# 0: Indent to body level (default)
-# 1: Align under the open parenthesis
-# 2: Indent to the brace level
-indent_paren_close = 0 # unsigned number
-
-# Whether to indent the open parenthesis of a function definition,
-# if the parenthesis is on its own line.
-indent_paren_after_func_def = false # true/false
-
-# Whether to indent the open parenthesis of a function declaration,
-# if the parenthesis is on its own line.
-indent_paren_after_func_decl = false # true/false
-
-# Whether to indent the open parenthesis of a function call,
-# if the parenthesis is on its own line.
-indent_paren_after_func_call = false # true/false
-
-# Whether to indent a comma when inside a brace.
-# If true, aligns under the open brace.
-indent_comma_brace = false # true/false
-
-# Whether to indent a comma when inside a parenthesis.
-# If true, aligns under the open parenthesis.
-indent_comma_paren = false # true/false
-
-# Whether to indent a Boolean operator when inside a parenthesis.
-# If true, aligns under the open parenthesis.
-indent_bool_paren = false # true/false
-
-# Whether to indent a semicolon when inside a for parenthesis.
-# If true, aligns under the open for parenthesis.
-indent_semicolon_for_paren = false # true/false
-
-# Whether to align the first expression to following ones
-# if indent_bool_paren=true.
-indent_first_bool_expr = false # true/false
-
-# Whether to align the first expression to following ones
-# if indent_semicolon_for_paren=true.
-indent_first_for_expr = false # true/false
-
-# If an open square is followed by a newline, whether to indent the next line
-# so that it lines up after the open square (not recommended).
-indent_square_nl = false # true/false
-
-# (ESQL/C) Whether to preserve the relative indent of 'EXEC SQL' bodies.
-indent_preserve_sql = false # true/false
-
-# Whether to align continued statements at the '='. If false or if the '=' is
-# followed by a newline, the next line is indent one tab.
-#
-# Default: true
-indent_align_assign = true # true/false
-
-# If true, the indentation of the chunks after a '=' sequence will be set at
-# LHS token indentation column before '='.
-indent_off_after_assign = false # true/false
-
-# Whether to align continued statements at the '('. If false or the '(' is
-# followed by a newline, the next line indent is one tab.
-#
-# Default: true
-indent_align_paren = true # true/false
-
-# (OC) Whether to indent Objective-C code inside message selectors.
-indent_oc_inside_msg_sel = false # true/false
-
-# (OC) Whether to indent Objective-C blocks at brace level instead of usual
-# rules.
-indent_oc_block = false # true/false
-
-# (OC) Indent for Objective-C blocks in a message relative to the parameter
-# name.
-#
-# =0: Use indent_oc_block rules
-# >0: Use specified number of spaces to indent
-indent_oc_block_msg = 0 # unsigned number
-
-# (OC) Minimum indent for subsequent parameters
-indent_oc_msg_colon = 0 # unsigned number
-
-# (OC) Whether to prioritize aligning with initial colon (and stripping spaces
-# from lines, if necessary).
-#
-# Default: true
-indent_oc_msg_prioritize_first_colon = true # true/false
-
-# (OC) Whether to indent blocks the way that Xcode does by default
-# (from the keyword if the parameter is on its own line; otherwise, from the
-# previous indentation level). Requires indent_oc_block_msg=true.
-indent_oc_block_msg_xcode_style = false # true/false
-
-# (OC) Whether to indent blocks from where the brace is, relative to a
-# message keyword. Requires indent_oc_block_msg=true.
-indent_oc_block_msg_from_keyword = false # true/false
-
-# (OC) Whether to indent blocks from where the brace is, relative to a message
-# colon. Requires indent_oc_block_msg=true.
-indent_oc_block_msg_from_colon = false # true/false
-
-# (OC) Whether to indent blocks from where the block caret is.
-# Requires indent_oc_block_msg=true.
-indent_oc_block_msg_from_caret = false # true/false
-
-# (OC) Whether to indent blocks from where the brace caret is.
-# Requires indent_oc_block_msg=true.
-indent_oc_block_msg_from_brace = false # true/false
-
-# When indenting after virtual brace open and newline add further spaces to
-# reach this minimum indent.
-indent_min_vbrace_open = 0 # unsigned number
-
-# Whether to add further spaces after regular indent to reach next tabstop
-# when indenting after virtual brace open and newline.
-indent_vbrace_open_on_tabstop = false # true/false
-
-# How to indent after a brace followed by another token (not a newline).
-# true: indent all contained lines to match the token
-# false: indent all contained lines to match the brace
-#
-# Default: true
-indent_token_after_brace = true # true/false
-
-# Whether to indent the body of a C++11 lambda.
-indent_cpp_lambda_body = false # true/false
-
-# How to indent compound literals that are being returned.
-# true: add both the indent from return & the compound literal open brace
-# (i.e. 2 indent levels)
-# false: only indent 1 level, don't add the indent for the open brace, only
-# add the indent for the return.
-#
-# Default: true
-indent_compound_literal_return = true # true/false
-
-# (C#) Whether to indent a 'using' block if no braces are used.
-#
-# Default: true
-indent_using_block = true # true/false
-
-# How to indent the continuation of ternary operator.
-#
-# 0: Off (default)
-# 1: When the `if_false` is a continuation, indent it under `if_false`
-# 2: When the `:` is a continuation, indent it under `?`
-indent_ternary_operator = 0 # unsigned number
-
-# Whether to indent the statements inside ternary operator.
-indent_inside_ternary_operator = false # true/false
-
-# If true, the indentation of the chunks after a `return` sequence will be set at return indentation column.
-indent_off_after_return = false # true/false
-
-# If true, the indentation of the chunks after a `return new` sequence will be set at return indentation column.
-indent_off_after_return_new = false # true/false
-
-# If true, the tokens after return are indented with regular single indentation. By default (false) the indentation is after the return token.
-indent_single_after_return = false # true/false
-
-# Whether to ignore indent and alignment for 'asm' blocks (i.e. assume they
-# have their own indentation).
-indent_ignore_asm_block = false # true/false
-
-# Don't indent the close parenthesis of a function definition,
-# if the parenthesis is on its own line.
-donot_indent_func_def_close_paren = false # true/false
-
-#
-# Newline adding and removing options
-#
-
-# Whether to collapse empty blocks between '{' and '}'.
-# If true, overrides nl_inside_empty_func
-nl_collapse_empty_body = false # true/false
-
-# Don't split one-line braced assignments, as in 'foo_t f = { 1, 2 };'.
-nl_assign_leave_one_liners = false # true/false
-
-# Don't split one-line braced statements inside a 'class xx { }' body.
-nl_class_leave_one_liners = false # true/false
-
-# Don't split one-line enums, as in 'enum foo { BAR = 15 };'
-nl_enum_leave_one_liners = false # true/false
-
-# Don't split one-line get or set functions.
-nl_getset_leave_one_liners = false # true/false
-
-# (C#) Don't split one-line property get or set functions.
-nl_cs_property_leave_one_liners = false # true/false
-
-# Don't split one-line function definitions, as in 'int foo() { return 0; }'.
-# might modify nl_func_type_name
-nl_func_leave_one_liners = false # true/false
-
-# Don't split one-line C++11 lambdas, as in '[]() { return 0; }'.
-nl_cpp_lambda_leave_one_liners = false # true/false
-
-# Don't split one-line if/else statements, as in 'if(...) b++;'.
-nl_if_leave_one_liners = false # true/false
-
-# Don't split one-line while statements, as in 'while(...) b++;'.
-nl_while_leave_one_liners = false # true/false
-
-# Don't split one-line do statements, as in 'do { b++; } while(...);'.
-nl_do_leave_one_liners = false # true/false
-
-# Don't split one-line for statements, as in 'for(...) b++;'.
-nl_for_leave_one_liners = false # true/false
-
-# (OC) Don't split one-line Objective-C messages.
-nl_oc_msg_leave_one_liner = false # true/false
-
-# (OC) Add or remove newline between method declaration and '{'.
-nl_oc_mdef_brace = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove newline between Objective-C block signature and '{'.
-nl_oc_block_brace = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove blank line before '@interface' statement.
-nl_oc_before_interface = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove blank line before '@implementation' statement.
-nl_oc_before_implementation = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove blank line before '@end' statement.
-nl_oc_before_end = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove newline between '@interface' and '{'.
-nl_oc_interface_brace = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove newline between '@implementation' and '{'.
-nl_oc_implementation_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newlines at the start of the file.
-nl_start_of_file = ignore # ignore/add/remove/force/not_defined
-
-# The minimum number of newlines at the start of the file (only used if
-# nl_start_of_file is 'add' or 'force').
-nl_start_of_file_min = 0 # unsigned number
-
-# Add or remove newline at the end of the file.
-nl_end_of_file = ignore # ignore/add/remove/force/not_defined
-
-# The minimum number of newlines at the end of the file (only used if
-# nl_end_of_file is 'add' or 'force').
-nl_end_of_file_min = 0 # unsigned number
-
-# Add or remove newline between '=' and '{'.
-nl_assign_brace = ignore # ignore/add/remove/force/not_defined
-
-# (D) Add or remove newline between '=' and '['.
-nl_assign_square = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between '[]' and '{'.
-nl_tsquare_brace = ignore # ignore/add/remove/force/not_defined
-
-# (D) Add or remove newline after '= ['. Will also affect the newline before
-# the ']'.
-nl_after_square_assign = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between a function call's ')' and '{', as in
-# 'list_for_each(item, &list) { }'.
-nl_fcall_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between 'enum' and '{'.
-nl_enum_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between 'enum' and 'class'.
-nl_enum_class = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between 'enum class' and the identifier.
-nl_enum_class_identifier = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between 'enum class' type and ':'.
-nl_enum_identifier_colon = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between 'enum class identifier :' and type.
-nl_enum_colon_type = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between 'struct and '{'.
-nl_struct_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between 'union' and '{'.
-nl_union_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between 'if' and '{'.
-nl_if_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between '}' and 'else'.
-nl_brace_else = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between 'else if' and '{'. If set to ignore,
-# nl_if_brace is used instead.
-nl_elseif_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between 'else' and '{'.
-nl_else_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between 'else' and 'if'.
-nl_else_if = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline before '{' opening brace
-nl_before_opening_brace_func_class_def = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline before 'if'/'else if' closing parenthesis.
-nl_before_if_closing_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between '}' and 'finally'.
-nl_brace_finally = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between 'finally' and '{'.
-nl_finally_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between 'try' and '{'.
-nl_try_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between get/set and '{'.
-nl_getset_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between 'for' and '{'.
-nl_for_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline before the '{' of a 'catch' statement, as in
-# 'catch (decl) <here> {'.
-nl_catch_brace = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove newline before the '{' of a '@catch' statement, as in
-# '@catch (decl) <here> {'. If set to ignore, nl_catch_brace is used.
-nl_oc_catch_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between '}' and 'catch'.
-nl_brace_catch = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove newline between '}' and '@catch'. If set to ignore,
-# nl_brace_catch is used.
-nl_oc_brace_catch = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between '}' and ']'.
-nl_brace_square = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between '}' and ')' in a function invocation.
-nl_brace_fparen = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between 'while' and '{'.
-nl_while_brace = ignore # ignore/add/remove/force/not_defined
-
-# (D) Add or remove newline between 'scope (x)' and '{'.
-nl_scope_brace = ignore # ignore/add/remove/force/not_defined
-
-# (D) Add or remove newline between 'unittest' and '{'.
-nl_unittest_brace = ignore # ignore/add/remove/force/not_defined
-
-# (D) Add or remove newline between 'version (x)' and '{'.
-nl_version_brace = ignore # ignore/add/remove/force/not_defined
-
-# (C#) Add or remove newline between 'using' and '{'.
-nl_using_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between two open or close braces. Due to general
-# newline/brace handling, REMOVE may not work.
-nl_brace_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between 'do' and '{'.
-nl_do_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between '}' and 'while' of 'do' statement.
-nl_brace_while = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between 'switch' and '{'.
-nl_switch_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between 'synchronized' and '{'.
-nl_synchronized_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add a newline between ')' and '{' if the ')' is on a different line than the
-# if/for/etc.
-#
-# Overrides nl_for_brace, nl_if_brace, nl_switch_brace, nl_while_switch and
-# nl_catch_brace.
-nl_multi_line_cond = false # true/false
-
-# Add a newline after '(' if an if/for/while/switch condition spans multiple
-# lines
-nl_multi_line_sparen_open = ignore # ignore/add/remove/force/not_defined
-
-# Add a newline before ')' if an if/for/while/switch condition spans multiple
-# lines. Overrides nl_before_if_closing_paren if both are specified.
-nl_multi_line_sparen_close = ignore # ignore/add/remove/force/not_defined
-
-# Force a newline in a define after the macro name for multi-line defines.
-nl_multi_line_define = false # true/false
-
-# Whether to add a newline before 'case', and a blank line before a 'case'
-# statement that follows a ';' or '}'.
-nl_before_case = false # true/false
-
-# Whether to add a newline after a 'case' statement.
-nl_after_case = false # true/false
-
-# Add or remove newline between a case ':' and '{'.
-#
-# Overrides nl_after_case.
-nl_case_colon_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between ')' and 'throw'.
-nl_before_throw = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between 'namespace' and '{'.
-nl_namespace_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline after 'template<...>' of a template class.
-nl_template_class = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline after 'template<...>' of a template class declaration.
-#
-# Overrides nl_template_class.
-nl_template_class_decl = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline after 'template<>' of a specialized class declaration.
-#
-# Overrides nl_template_class_decl.
-nl_template_class_decl_special = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline after 'template<...>' of a template class definition.
-#
-# Overrides nl_template_class.
-nl_template_class_def = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline after 'template<>' of a specialized class definition.
-#
-# Overrides nl_template_class_def.
-nl_template_class_def_special = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline after 'template<...>' of a template function.
-nl_template_func = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline after 'template<...>' of a template function
-# declaration.
-#
-# Overrides nl_template_func.
-nl_template_func_decl = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline after 'template<>' of a specialized function
-# declaration.
-#
-# Overrides nl_template_func_decl.
-nl_template_func_decl_special = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline after 'template<...>' of a template function
-# definition.
-#
-# Overrides nl_template_func.
-nl_template_func_def = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline after 'template<>' of a specialized function
-# definition.
-#
-# Overrides nl_template_func_def.
-nl_template_func_def_special = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline after 'template<...>' of a template variable.
-nl_template_var = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between 'template<...>' and 'using' of a templated
-# type alias.
-nl_template_using = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between 'class' and '{'.
-nl_class_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline before or after (depending on pos_class_comma,
-# may not be IGNORE) each',' in the base class list.
-nl_class_init_args = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline after each ',' in the constructor member
-# initialization. Related to nl_constr_colon, pos_constr_colon and
-# pos_constr_comma.
-nl_constr_init_args = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline before first element, after comma, and after last
-# element, in 'enum'.
-nl_enum_own_lines = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between return type and function name in a function
-# definition.
-# might be modified by nl_func_leave_one_liners
-nl_func_type_name = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between return type and function name inside a class
-# definition. If set to ignore, nl_func_type_name or nl_func_proto_type_name
-# is used instead.
-nl_func_type_name_class = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between class specification and '::'
-# in 'void A::f() { }'. Only appears in separate member implementation (does
-# not appear with in-line implementation).
-nl_func_class_scope = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between function scope and name, as in
-# 'void A :: <here> f() { }'.
-nl_func_scope_name = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between return type and function name in a prototype.
-nl_func_proto_type_name = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between a function name and the opening '(' in the
-# declaration.
-nl_func_paren = ignore # ignore/add/remove/force/not_defined
-
-# Overrides nl_func_paren for functions with no parameters.
-nl_func_paren_empty = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between a function name and the opening '(' in the
-# definition.
-nl_func_def_paren = ignore # ignore/add/remove/force/not_defined
-
-# Overrides nl_func_def_paren for functions with no parameters.
-nl_func_def_paren_empty = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between a function name and the opening '(' in the
-# call.
-nl_func_call_paren = ignore # ignore/add/remove/force/not_defined
-
-# Overrides nl_func_call_paren for functions with no parameters.
-nl_func_call_paren_empty = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline after '(' in a function declaration.
-nl_func_decl_start = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline after '(' in a function definition.
-nl_func_def_start = ignore # ignore/add/remove/force/not_defined
-
-# Overrides nl_func_decl_start when there is only one parameter.
-nl_func_decl_start_single = ignore # ignore/add/remove/force/not_defined
-
-# Overrides nl_func_def_start when there is only one parameter.
-nl_func_def_start_single = ignore # ignore/add/remove/force/not_defined
-
-# Whether to add a newline after '(' in a function declaration if '(' and ')'
-# are in different lines. If false, nl_func_decl_start is used instead.
-nl_func_decl_start_multi_line = false # true/false
-
-# Whether to add a newline after '(' in a function definition if '(' and ')'
-# are in different lines. If false, nl_func_def_start is used instead.
-nl_func_def_start_multi_line = false # true/false
-
-# Add or remove newline after each ',' in a function declaration.
-nl_func_decl_args = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline after each ',' in a function definition.
-nl_func_def_args = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline after each ',' in a function call.
-nl_func_call_args = ignore # ignore/add/remove/force/not_defined
-
-# Whether to add a newline after each ',' in a function declaration if '('
-# and ')' are in different lines. If false, nl_func_decl_args is used instead.
-nl_func_decl_args_multi_line = false # true/false
-
-# Whether to add a newline after each ',' in a function definition if '('
-# and ')' are in different lines. If false, nl_func_def_args is used instead.
-nl_func_def_args_multi_line = false # true/false
-
-# Add or remove newline before the ')' in a function declaration.
-nl_func_decl_end = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline before the ')' in a function definition.
-nl_func_def_end = ignore # ignore/add/remove/force/not_defined
-
-# Overrides nl_func_decl_end when there is only one parameter.
-nl_func_decl_end_single = ignore # ignore/add/remove/force/not_defined
-
-# Overrides nl_func_def_end when there is only one parameter.
-nl_func_def_end_single = ignore # ignore/add/remove/force/not_defined
-
-# Whether to add a newline before ')' in a function declaration if '(' and ')'
-# are in different lines. If false, nl_func_decl_end is used instead.
-nl_func_decl_end_multi_line = false # true/false
-
-# Whether to add a newline before ')' in a function definition if '(' and ')'
-# are in different lines. If false, nl_func_def_end is used instead.
-nl_func_def_end_multi_line = false # true/false
-
-# Add or remove newline between '()' in a function declaration.
-nl_func_decl_empty = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between '()' in a function definition.
-nl_func_def_empty = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between '()' in a function call.
-nl_func_call_empty = ignore # ignore/add/remove/force/not_defined
-
-# Whether to add a newline after '(' in a function call,
-# has preference over nl_func_call_start_multi_line.
-nl_func_call_start = ignore # ignore/add/remove/force/not_defined
-
-# Whether to add a newline before ')' in a function call.
-nl_func_call_end = ignore # ignore/add/remove/force/not_defined
-
-# Whether to add a newline after '(' in a function call if '(' and ')' are in
-# different lines.
-nl_func_call_start_multi_line = false # true/false
-
-# Whether to add a newline after each ',' in a function call if '(' and ')'
-# are in different lines.
-nl_func_call_args_multi_line = false # true/false
-
-# Whether to add a newline before ')' in a function call if '(' and ')' are in
-# different lines.
-nl_func_call_end_multi_line = false # true/false
-
-# Whether to respect nl_func_call_XXX option in case of closure args.
-nl_func_call_args_multi_line_ignore_closures = false # true/false
-
-# Whether to add a newline after '<' of a template parameter list.
-nl_template_start = false # true/false
-
-# Whether to add a newline after each ',' in a template parameter list.
-nl_template_args = false # true/false
-
-# Whether to add a newline before '>' of a template parameter list.
-nl_template_end = false # true/false
-
-# (OC) Whether to put each Objective-C message parameter on a separate line.
-# See nl_oc_msg_leave_one_liner.
-nl_oc_msg_args = false # true/false
-
-# Add or remove newline between function signature and '{'.
-nl_fdef_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between function signature and '{',
-# if signature ends with ')'. Overrides nl_fdef_brace.
-nl_fdef_brace_cond = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between C++11 lambda signature and '{'.
-nl_cpp_ldef_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between 'return' and the return expression.
-nl_return_expr = ignore # ignore/add/remove/force/not_defined
-
-# Whether to add a newline after semicolons, except in 'for' statements.
-nl_after_semicolon = false # true/false
-
-# (Java) Add or remove newline between the ')' and '{{' of the double brace
-# initializer.
-nl_paren_dbrace_open = ignore # ignore/add/remove/force/not_defined
-
-# Whether to add a newline after the type in an unnamed temporary
-# direct-list-initialization.
-nl_type_brace_init_lst = ignore # ignore/add/remove/force/not_defined
-
-# Whether to add a newline after the open brace in an unnamed temporary
-# direct-list-initialization.
-nl_type_brace_init_lst_open = ignore # ignore/add/remove/force/not_defined
-
-# Whether to add a newline before the close brace in an unnamed temporary
-# direct-list-initialization.
-nl_type_brace_init_lst_close = ignore # ignore/add/remove/force/not_defined
-
-# Whether to add a newline before '{'.
-nl_before_brace_open = false # true/false
-
-# Whether to add a newline after '{'.
-nl_after_brace_open = false # true/false
-
-# Whether to add a newline between the open brace and a trailing single-line
-# comment. Requires nl_after_brace_open=true.
-nl_after_brace_open_cmt = false # true/false
-
-# Whether to add a newline after a virtual brace open with a non-empty body.
-# These occur in un-braced if/while/do/for statement bodies.
-nl_after_vbrace_open = false # true/false
-
-# Whether to add a newline after a virtual brace open with an empty body.
-# These occur in un-braced if/while/do/for statement bodies.
-nl_after_vbrace_open_empty = false # true/false
-
-# Whether to add a newline after '}'. Does not apply if followed by a
-# necessary ';'.
-nl_after_brace_close = false # true/false
-
-# Whether to add a newline after a virtual brace close,
-# as in 'if (foo) a++; <here> return;'.
-nl_after_vbrace_close = false # true/false
-
-# Add or remove newline between the close brace and identifier,
-# as in 'struct { int a; } <here> b;'. Affects enumerations, unions and
-# structures. If set to ignore, uses nl_after_brace_close.
-nl_brace_struct_var = ignore # ignore/add/remove/force/not_defined
-
-# Whether to alter newlines in '#define' macros.
-nl_define_macro = false # true/false
-
-# Whether to alter newlines between consecutive parenthesis closes. The number
-# of closing parentheses in a line will depend on respective open parenthesis
-# lines.
-nl_squeeze_paren_close = false # true/false
-
-# Whether to remove blanks after '#ifxx' and '#elxx', or before '#elxx' and
-# '#endif'. Does not affect top-level #ifdefs.
-nl_squeeze_ifdef = false # true/false
-
-# Makes the nl_squeeze_ifdef option affect the top-level #ifdefs as well.
-nl_squeeze_ifdef_top_level = false # true/false
-
-# Add or remove blank line before 'if'.
-nl_before_if = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove blank line after 'if' statement. Add/Force work only if the
-# next token is not a closing brace.
-nl_after_if = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove blank line before 'for'.
-nl_before_for = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove blank line after 'for' statement.
-nl_after_for = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove blank line before 'while'.
-nl_before_while = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove blank line after 'while' statement.
-nl_after_while = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove blank line before 'switch'.
-nl_before_switch = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove blank line after 'switch' statement.
-nl_after_switch = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove blank line before 'synchronized'.
-nl_before_synchronized = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove blank line after 'synchronized' statement.
-nl_after_synchronized = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove blank line before 'do'.
-nl_before_do = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove blank line after 'do/while' statement.
-nl_after_do = ignore # ignore/add/remove/force/not_defined
-
-# Ignore nl_before_{if,for,switch,do,synchronized} if the control
-# statement is immediately after a case statement.
-# if nl_before_{if,for,switch,do} is set to remove, this option
-# does nothing.
-nl_before_ignore_after_case = false # true/false
-
-# Whether to put a blank line before 'return' statements, unless after an open
-# brace.
-nl_before_return = false # true/false
-
-# Whether to put a blank line after 'return' statements, unless followed by a
-# close brace.
-nl_after_return = false # true/false
-
-# Whether to put a blank line before a member '.' or '->' operators.
-nl_before_member = ignore # ignore/add/remove/force/not_defined
-
-# (Java) Whether to put a blank line after a member '.' or '->' operators.
-nl_after_member = ignore # ignore/add/remove/force/not_defined
-
-# Whether to double-space commented-entries in 'struct'/'union'/'enum'.
-nl_ds_struct_enum_cmt = false # true/false
-
-# Whether to force a newline before '}' of a 'struct'/'union'/'enum'.
-# (Lower priority than eat_blanks_before_close_brace.)
-nl_ds_struct_enum_close_brace = false # true/false
-
-# Add or remove newline before or after (depending on pos_class_colon) a class
-# colon, as in 'class Foo <here> : <or here> public Bar'.
-nl_class_colon = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline around a class constructor colon. The exact position
-# depends on nl_constr_init_args, pos_constr_colon and pos_constr_comma.
-nl_constr_colon = ignore # ignore/add/remove/force/not_defined
-
-# Whether to collapse a two-line namespace, like 'namespace foo\n{ decl; }'
-# into a single line. If true, prevents other brace newline rules from turning
-# such code into four lines. If true, it also preserves one-liner namespaces.
-nl_namespace_two_to_one_liner = false # true/false
-
-# Whether to remove a newline in simple unbraced if statements, turning them
-# into one-liners, as in 'if(b)\n i++;' => 'if(b) i++;'.
-nl_create_if_one_liner = false # true/false
-
-# Whether to remove a newline in simple unbraced for statements, turning them
-# into one-liners, as in 'for (...)\n stmt;' => 'for (...) stmt;'.
-nl_create_for_one_liner = false # true/false
-
-# Whether to remove a newline in simple unbraced while statements, turning
-# them into one-liners, as in 'while (expr)\n stmt;' => 'while (expr) stmt;'.
-nl_create_while_one_liner = false # true/false
-
-# Whether to collapse a function definition whose body (not counting braces)
-# is only one line so that the entire definition (prototype, braces, body) is
-# a single line.
-nl_create_func_def_one_liner = false # true/false
-
-# Whether to split one-line simple list definitions into three lines by
-# adding newlines, as in 'int a[12] = { <here> 0 <here> };'.
-nl_create_list_one_liner = false # true/false
-
-# Whether to split one-line simple unbraced if statements into two lines by
-# adding a newline, as in 'if(b) <here> i++;'.
-nl_split_if_one_liner = false # true/false
-
-# Whether to split one-line simple unbraced for statements into two lines by
-# adding a newline, as in 'for (...) <here> stmt;'.
-nl_split_for_one_liner = false # true/false
-
-# Whether to split one-line simple unbraced while statements into two lines by
-# adding a newline, as in 'while (expr) <here> stmt;'.
-nl_split_while_one_liner = false # true/false
-
-# Don't add a newline before a cpp-comment in a parameter list of a function
-# call.
-donot_add_nl_before_cpp_comment = false # true/false
-
-#
-# Blank line options
-#
-
-# The maximum number of consecutive newlines (3 = 2 blank lines).
-nl_max = 0 # unsigned number
-
-# The maximum number of consecutive newlines in a function.
-nl_max_blank_in_func = 0 # unsigned number
-
-# The number of newlines inside an empty function body.
-# This option overrides eat_blanks_after_open_brace and
-# eat_blanks_before_close_brace, but is ignored when
-# nl_collapse_empty_body=true
-nl_inside_empty_func = 0 # unsigned number
-
-# The number of newlines before a function prototype.
-nl_before_func_body_proto = 0 # unsigned number
-
-# The number of newlines before a multi-line function definition. Where
-# applicable, this option is overridden with eat_blanks_after_open_brace=true
-nl_before_func_body_def = 0 # unsigned number
-
-# The number of newlines before a class constructor/destructor prototype.
-nl_before_func_class_proto = 0 # unsigned number
-
-# The number of newlines before a class constructor/destructor definition.
-nl_before_func_class_def = 0 # unsigned number
-
-# The number of newlines after a function prototype.
-nl_after_func_proto = 0 # unsigned number
-
-# The number of newlines after a function prototype, if not followed by
-# another function prototype.
-nl_after_func_proto_group = 0 # unsigned number
-
-# The number of newlines after a class constructor/destructor prototype.
-nl_after_func_class_proto = 0 # unsigned number
-
-# The number of newlines after a class constructor/destructor prototype,
-# if not followed by another constructor/destructor prototype.
-nl_after_func_class_proto_group = 0 # unsigned number
-
-# Whether one-line method definitions inside a class body should be treated
-# as if they were prototypes for the purposes of adding newlines.
-#
-# Requires nl_class_leave_one_liners=true. Overrides nl_before_func_body_def
-# and nl_before_func_class_def for one-liners.
-nl_class_leave_one_liner_groups = false # true/false
-
-# The number of newlines after '}' of a multi-line function body.
-nl_after_func_body = 0 # unsigned number
-
-# The number of newlines after '}' of a multi-line function body in a class
-# declaration. Also affects class constructors/destructors.
-#
-# Overrides nl_after_func_body.
-nl_after_func_body_class = 0 # unsigned number
-
-# The number of newlines after '}' of a single line function body. Also
-# affects class constructors/destructors.
-#
-# Overrides nl_after_func_body and nl_after_func_body_class.
-nl_after_func_body_one_liner = 0 # unsigned number
-
-# The number of blank lines after a block of variable definitions at the top
-# of a function body.
-#
-# 0: No change (default).
-nl_func_var_def_blk = 0 # unsigned number
-
-# The number of newlines before a block of typedefs. If nl_after_access_spec
-# is non-zero, that option takes precedence.
-#
-# 0: No change (default).
-nl_typedef_blk_start = 0 # unsigned number
-
-# The number of newlines after a block of typedefs.
-#
-# 0: No change (default).
-nl_typedef_blk_end = 0 # unsigned number
-
-# The maximum number of consecutive newlines within a block of typedefs.
-#
-# 0: No change (default).
-nl_typedef_blk_in = 0 # unsigned number
-
-# The number of newlines before a block of variable definitions not at the top
-# of a function body. If nl_after_access_spec is non-zero, that option takes
-# precedence.
-#
-# 0: No change (default).
-nl_var_def_blk_start = 0 # unsigned number
-
-# The number of newlines after a block of variable definitions not at the top
-# of a function body.
-#
-# 0: No change (default).
-nl_var_def_blk_end = 0 # unsigned number
-
-# The maximum number of consecutive newlines within a block of variable
-# definitions.
-#
-# 0: No change (default).
-nl_var_def_blk_in = 0 # unsigned number
-
-# The minimum number of newlines before a multi-line comment.
-# Doesn't apply if after a brace open or another multi-line comment.
-nl_before_block_comment = 0 # unsigned number
-
-# The minimum number of newlines before a single-line C comment.
-# Doesn't apply if after a brace open or other single-line C comments.
-nl_before_c_comment = 0 # unsigned number
-
-# The minimum number of newlines before a CPP comment.
-# Doesn't apply if after a brace open or other CPP comments.
-nl_before_cpp_comment = 0 # unsigned number
-
-# Whether to force a newline after a multi-line comment.
-nl_after_multiline_comment = false # true/false
-
-# Whether to force a newline after a label's colon.
-nl_after_label_colon = false # true/false
-
-# The number of newlines before a struct definition.
-nl_before_struct = 0 # unsigned number
-
-# The number of newlines after '}' or ';' of a struct/enum/union definition.
-nl_after_struct = 0 # unsigned number
-
-# The number of newlines before a class definition.
-nl_before_class = 0 # unsigned number
-
-# The number of newlines after '}' or ';' of a class definition.
-nl_after_class = 0 # unsigned number
-
-# The number of newlines before a namespace.
-nl_before_namespace = 0 # unsigned number
-
-# The number of newlines after '{' of a namespace. This also adds newlines
-# before the matching '}'.
-#
-# 0: Apply eat_blanks_after_open_brace or eat_blanks_before_close_brace if
-# applicable, otherwise no change.
-#
-# Overrides eat_blanks_after_open_brace and eat_blanks_before_close_brace.
-nl_inside_namespace = 0 # unsigned number
-
-# The number of newlines after '}' of a namespace.
-nl_after_namespace = 0 # unsigned number
-
-# The number of newlines before an access specifier label. This also includes
-# the Qt-specific 'signals:' and 'slots:'. Will not change the newline count
-# if after a brace open.
-#
-# 0: No change (default).
-nl_before_access_spec = 0 # unsigned number
-
-# The number of newlines after an access specifier label. This also includes
-# the Qt-specific 'signals:' and 'slots:'. Will not change the newline count
-# if after a brace open.
-#
-# 0: No change (default).
-#
-# Overrides nl_typedef_blk_start and nl_var_def_blk_start.
-nl_after_access_spec = 0 # unsigned number
-
-# The number of newlines between a function definition and the function
-# comment, as in '// comment\n <here> void foo() {...}'.
-#
-# 0: No change (default).
-nl_comment_func_def = 0 # unsigned number
-
-# The number of newlines after a try-catch-finally block that isn't followed
-# by a brace close.
-#
-# 0: No change (default).
-nl_after_try_catch_finally = 0 # unsigned number
-
-# (C#) The number of newlines before and after a property, indexer or event
-# declaration.
-#
-# 0: No change (default).
-nl_around_cs_property = 0 # unsigned number
-
-# (C#) The number of newlines between the get/set/add/remove handlers.
-#
-# 0: No change (default).
-nl_between_get_set = 0 # unsigned number
-
-# (C#) Add or remove newline between property and the '{'.
-nl_property_brace = ignore # ignore/add/remove/force/not_defined
-
-# Whether to remove blank lines after '{'.
-eat_blanks_after_open_brace = false # true/false
-
-# Whether to remove blank lines before '}'.
-eat_blanks_before_close_brace = false # true/false
-
-# How aggressively to remove extra newlines not in preprocessor.
-#
-# 0: No change (default)
-# 1: Remove most newlines not handled by other config
-# 2: Remove all newlines and reformat completely by config
-nl_remove_extra_newlines = 0 # unsigned number
-
-# (Java) Add or remove newline after an annotation statement. Only affects
-# annotations that are after a newline.
-nl_after_annotation = ignore # ignore/add/remove/force/not_defined
-
-# (Java) Add or remove newline between two annotations.
-nl_between_annotation = ignore # ignore/add/remove/force/not_defined
-
-# The number of newlines before a whole-file #ifdef.
-#
-# 0: No change (default).
-nl_before_whole_file_ifdef = 0 # unsigned number
-
-# The number of newlines after a whole-file #ifdef.
-#
-# 0: No change (default).
-nl_after_whole_file_ifdef = 0 # unsigned number
-
-# The number of newlines before a whole-file #endif.
-#
-# 0: No change (default).
-nl_before_whole_file_endif = 0 # unsigned number
-
-# The number of newlines after a whole-file #endif.
-#
-# 0: No change (default).
-nl_after_whole_file_endif = 0 # unsigned number
-
-#
-# Positioning options
-#
-
-# The position of arithmetic operators in wrapped expressions.
-pos_arith = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
-
-# The position of assignment in wrapped expressions. Do not affect '='
-# followed by '{'.
-pos_assign = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
-
-# The position of Boolean operators in wrapped expressions.
-pos_bool = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
-
-# The position of comparison operators in wrapped expressions.
-pos_compare = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
-
-# The position of conditional operators, as in the '?' and ':' of
-# 'expr ? stmt : stmt', in wrapped expressions.
-pos_conditional = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
-
-# The position of the comma in wrapped expressions.
-pos_comma = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
-
-# The position of the comma in enum entries.
-pos_enum_comma = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
-
-# The position of the comma in the base class list if there is more than one
-# line. Affects nl_class_init_args.
-pos_class_comma = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
-
-# The position of the comma in the constructor initialization list.
-# Related to nl_constr_colon, nl_constr_init_args and pos_constr_colon.
-pos_constr_comma = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
-
-# The position of trailing/leading class colon, between class and base class
-# list. Affects nl_class_colon.
-pos_class_colon = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
-
-# The position of colons between constructor and member initialization.
-# Related to nl_constr_colon, nl_constr_init_args and pos_constr_comma.
-pos_constr_colon = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
-
-# The position of shift operators in wrapped expressions.
-pos_shift = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
-
-#
-# Line splitting options
-#
-
-# Try to limit code width to N columns.
-code_width = 0 # unsigned number
-
-# Whether to fully split long 'for' statements at semi-colons.
-ls_for_split_full = false # true/false
-
-# Whether to fully split long function prototypes/calls at commas.
-# The option ls_code_width has priority over the option ls_func_split_full.
-ls_func_split_full = false # true/false
-
-# Whether to split lines as close to code_width as possible and ignore some
-# groupings.
-# The option ls_code_width has priority over the option ls_func_split_full.
-ls_code_width = false # true/false
-
-#
-# Code alignment options (not left column spaces/tabs)
-#
-
-# Whether to keep non-indenting tabs.
-align_keep_tabs = false # true/false
-
-# Whether to use tabs for aligning.
-align_with_tabs = false # true/false
-
-# Whether to bump out to the next tab when aligning.
-align_on_tabstop = false # true/false
-
-# Whether to right-align numbers.
-align_number_right = false # true/false
-
-# Whether to keep whitespace not required for alignment.
-align_keep_extra_space = false # true/false
-
-# Whether to align variable definitions in prototypes and functions.
-align_func_params = false # true/false
-
-# The span for aligning parameter definitions in function on parameter name.
-#
-# 0: Don't align (default).
-align_func_params_span = 0 # unsigned number
-
-# The threshold for aligning function parameter definitions.
-# Use a negative number for absolute thresholds.
-#
-# 0: No limit (default).
-align_func_params_thresh = 0 # number
-
-# The gap for aligning function parameter definitions.
-align_func_params_gap = 0 # unsigned number
-
-# The span for aligning constructor value.
-#
-# 0: Don't align (default).
-align_constr_value_span = 0 # unsigned number
-
-# The threshold for aligning constructor value.
-# Use a negative number for absolute thresholds.
-#
-# 0: No limit (default).
-align_constr_value_thresh = 0 # number
-
-# The gap for aligning constructor value.
-align_constr_value_gap = 0 # unsigned number
-
-# Whether to align parameters in single-line functions that have the same
-# name. The function names must already be aligned with each other.
-align_same_func_call_params = false # true/false
-
-# The span for aligning function-call parameters for single line functions.
-#
-# 0: Don't align (default).
-align_same_func_call_params_span = 0 # unsigned number
-
-# The threshold for aligning function-call parameters for single line
-# functions.
-# Use a negative number for absolute thresholds.
-#
-# 0: No limit (default).
-align_same_func_call_params_thresh = 0 # number
-
-# The span for aligning variable definitions.
-#
-# 0: Don't align (default).
-align_var_def_span = 0 # unsigned number
-
-# How to consider (or treat) the '*' in the alignment of variable definitions.
-#
-# 0: Part of the type 'void * foo;' (default)
-# 1: Part of the variable 'void *foo;'
-# 2: Dangling 'void *foo;'
-# Dangling: the '*' will not be taken into account when aligning.
-align_var_def_star_style = 0 # unsigned number
-
-# How to consider (or treat) the '&' in the alignment of variable definitions.
-#
-# 0: Part of the type 'long & foo;' (default)
-# 1: Part of the variable 'long &foo;'
-# 2: Dangling 'long &foo;'
-# Dangling: the '&' will not be taken into account when aligning.
-align_var_def_amp_style = 0 # unsigned number
-
-# The threshold for aligning variable definitions.
-# Use a negative number for absolute thresholds.
-#
-# 0: No limit (default).
-align_var_def_thresh = 0 # number
-
-# The gap for aligning variable definitions.
-align_var_def_gap = 0 # unsigned number
-
-# Whether to align the colon in struct bit fields.
-align_var_def_colon = false # true/false
-
-# The gap for aligning the colon in struct bit fields.
-align_var_def_colon_gap = 0 # unsigned number
-
-# Whether to align any attribute after the variable name.
-align_var_def_attribute = false # true/false
-
-# Whether to align inline struct/enum/union variable definitions.
-align_var_def_inline = false # true/false
-
-# The span for aligning on '=' in assignments.
-#
-# 0: Don't align (default).
-align_assign_span = 0 # unsigned number
-
-# The span for aligning on '=' in function prototype modifier.
-#
-# 0: Don't align (default).
-align_assign_func_proto_span = 0 # unsigned number
-
-# The threshold for aligning on '=' in assignments.
-# Use a negative number for absolute thresholds.
-#
-# 0: No limit (default).
-align_assign_thresh = 0 # number
-
-# How to apply align_assign_span to function declaration "assignments", i.e.
-# 'virtual void foo() = 0' or '~foo() = {default|delete}'.
-#
-# 0: Align with other assignments (default)
-# 1: Align with each other, ignoring regular assignments
-# 2: Don't align
-align_assign_decl_func = 0 # unsigned number
-
-# The span for aligning on '=' in enums.
-#
-# 0: Don't align (default).
-align_enum_equ_span = 0 # unsigned number
-
-# The threshold for aligning on '=' in enums.
-# Use a negative number for absolute thresholds.
-#
-# 0: no limit (default).
-align_enum_equ_thresh = 0 # number
-
-# The span for aligning class member definitions.
-#
-# 0: Don't align (default).
-align_var_class_span = 0 # unsigned number
-
-# The threshold for aligning class member definitions.
-# Use a negative number for absolute thresholds.
-#
-# 0: No limit (default).
-align_var_class_thresh = 0 # number
-
-# The gap for aligning class member definitions.
-align_var_class_gap = 0 # unsigned number
-
-# The span for aligning struct/union member definitions.
-#
-# 0: Don't align (default).
-align_var_struct_span = 0 # unsigned number
-
-# The threshold for aligning struct/union member definitions.
-# Use a negative number for absolute thresholds.
-#
-# 0: No limit (default).
-align_var_struct_thresh = 0 # number
-
-# The gap for aligning struct/union member definitions.
-align_var_struct_gap = 0 # unsigned number
-
-# The span for aligning struct initializer values.
-#
-# 0: Don't align (default).
-align_struct_init_span = 0 # unsigned number
-
-# The span for aligning single-line typedefs.
-#
-# 0: Don't align (default).
-align_typedef_span = 0 # unsigned number
-
-# The minimum space between the type and the synonym of a typedef.
-align_typedef_gap = 0 # unsigned number
-
-# How to align typedef'd functions with other typedefs.
-#
-# 0: Don't mix them at all (default)
-# 1: Align the open parenthesis with the types
-# 2: Align the function type name with the other type names
-align_typedef_func = 0 # unsigned number
-
-# How to consider (or treat) the '*' in the alignment of typedefs.
-#
-# 0: Part of the typedef type, 'typedef int * pint;' (default)
-# 1: Part of type name: 'typedef int *pint;'
-# 2: Dangling: 'typedef int *pint;'
-# Dangling: the '*' will not be taken into account when aligning.
-align_typedef_star_style = 0 # unsigned number
-
-# How to consider (or treat) the '&' in the alignment of typedefs.
-#
-# 0: Part of the typedef type, 'typedef int & intref;' (default)
-# 1: Part of type name: 'typedef int &intref;'
-# 2: Dangling: 'typedef int &intref;'
-# Dangling: the '&' will not be taken into account when aligning.
-align_typedef_amp_style = 0 # unsigned number
-
-# The span for aligning comments that end lines.
-#
-# 0: Don't align (default).
-align_right_cmt_span = 0 # unsigned number
-
-# Minimum number of columns between preceding text and a trailing comment in
-# order for the comment to qualify for being aligned. Must be non-zero to have
-# an effect.
-align_right_cmt_gap = 0 # unsigned number
-
-# If aligning comments, whether to mix with comments after '}' and #endif with
-# less than three spaces before the comment.
-align_right_cmt_mix = false # true/false
-
-# Whether to only align trailing comments that are at the same brace level.
-align_right_cmt_same_level = false # true/false
-
-# Minimum column at which to align trailing comments. Comments which are
-# aligned beyond this column, but which can be aligned in a lesser column,
-# may be "pulled in".
-#
-# 0: Ignore (default).
-align_right_cmt_at_col = 0 # unsigned number
-
-# The span for aligning function prototypes.
-#
-# 0: Don't align (default).
-align_func_proto_span = 0 # unsigned number
-
-# How to consider (or treat) the '*' in the alignment of function prototypes.
-#
-# 0: Part of the type 'void * foo();' (default)
-# 1: Part of the function 'void *foo();'
-# 2: Dangling 'void *foo();'
-# Dangling: the '*' will not be taken into account when aligning.
-align_func_proto_star_style = 0 # unsigned number
-
-# How to consider (or treat) the '&' in the alignment of function prototypes.
-#
-# 0: Part of the type 'long & foo();' (default)
-# 1: Part of the function 'long &foo();'
-# 2: Dangling 'long &foo();'
-# Dangling: the '&' will not be taken into account when aligning.
-align_func_proto_amp_style = 0 # unsigned number
-
-# The threshold for aligning function prototypes.
-# Use a negative number for absolute thresholds.
-#
-# 0: No limit (default).
-align_func_proto_thresh = 0 # number
-
-# Minimum gap between the return type and the function name.
-align_func_proto_gap = 0 # unsigned number
-
-# Whether to align function prototypes on the 'operator' keyword instead of
-# what follows.
-align_on_operator = false # true/false
-
-# Whether to mix aligning prototype and variable declarations. If true,
-# align_var_def_XXX options are used instead of align_func_proto_XXX options.
-align_mix_var_proto = false # true/false
-
-# Whether to align single-line functions with function prototypes.
-# Uses align_func_proto_span.
-align_single_line_func = false # true/false
-
-# Whether to align the open brace of single-line functions.
-# Requires align_single_line_func=true. Uses align_func_proto_span.
-align_single_line_brace = false # true/false
-
-# Gap for align_single_line_brace.
-align_single_line_brace_gap = 0 # unsigned number
-
-# (OC) The span for aligning Objective-C message specifications.
-#
-# 0: Don't align (default).
-align_oc_msg_spec_span = 0 # unsigned number
-
-# Whether to align macros wrapped with a backslash and a newline. This will
-# not work right if the macro contains a multi-line comment.
-align_nl_cont = false # true/false
-
-# Whether to align macro functions and variables together.
-align_pp_define_together = false # true/false
-
-# The span for aligning on '#define' bodies.
-#
-# =0: Don't align (default)
-# >0: Number of lines (including comments) between blocks
-align_pp_define_span = 0 # unsigned number
-
-# The minimum space between label and value of a preprocessor define.
-align_pp_define_gap = 0 # unsigned number
-
-# Whether to align lines that start with '<<' with previous '<<'.
-#
-# Default: true
-align_left_shift = true # true/false
-
-# Whether to align comma-separated statements following '<<' (as used to
-# initialize Eigen matrices).
-align_eigen_comma_init = false # true/false
-
-# Whether to align text after 'asm volatile ()' colons.
-align_asm_colon = false # true/false
-
-# (OC) Span for aligning parameters in an Objective-C message call
-# on the ':'.
-#
-# 0: Don't align.
-align_oc_msg_colon_span = 0 # unsigned number
-
-# (OC) Whether to always align with the first parameter, even if it is too
-# short.
-align_oc_msg_colon_first = false # true/false
-
-# (OC) Whether to align parameters in an Objective-C '+' or '-' declaration
-# on the ':'.
-align_oc_decl_colon = false # true/false
-
-# (OC) Whether to not align parameters in an Objectve-C message call if first
-# colon is not on next line of the message call (the same way Xcode does
-# aligment)
-align_oc_msg_colon_xcode_like = false # true/false
-
-#
-# Comment modification options
-#
-
-# Try to wrap comments at N columns.
-cmt_width = 0 # unsigned number
-
-# How to reflow comments.
-#
-# 0: No reflowing (apart from the line wrapping due to cmt_width) (default)
-# 1: No touching at all
-# 2: Full reflow (enable cmt_indent_multi for indent with line wrapping due to cmt_width)
-cmt_reflow_mode = 0 # unsigned number
-
-# Path to a file that contains regular expressions describing patterns for
-# which the end of one line and the beginning of the next will be folded into
-# the same sentence or paragraph during full comment reflow. The regular
-# expressions are described using ECMAScript syntax. The syntax for this
-# specification is as follows, where "..." indicates the custom regular
-# expression and "n" indicates the nth end_of_prev_line_regex and
-# beg_of_next_line_regex regular expression pair:
-#
-# end_of_prev_line_regex[1] = "...$"
-# beg_of_next_line_regex[1] = "^..."
-# end_of_prev_line_regex[2] = "...$"
-# beg_of_next_line_regex[2] = "^..."
-# .
-# .
-# .
-# end_of_prev_line_regex[n] = "...$"
-# beg_of_next_line_regex[n] = "^..."
-#
-# Note that use of this option overrides the default reflow fold regular
-# expressions, which are internally defined as follows:
-#
-# end_of_prev_line_regex[1] = "[\w,\]\)]$"
-# beg_of_next_line_regex[1] = "^[\w,\[\(]"
-# end_of_prev_line_regex[2] = "\.$"
-# beg_of_next_line_regex[2] = "^[A-Z]"
-cmt_reflow_fold_regex_file = "" # string
-
-# Whether to indent wrapped lines to the start of the encompassing paragraph
-# during full comment reflow (cmt_reflow_mode = 2). Overrides the value
-# specified by cmt_sp_after_star_cont.
-#
-# Note that cmt_align_doxygen_javadoc_tags overrides this option for
-# paragraphs associated with javadoc tags
-cmt_reflow_indent_to_paragraph_start = false # true/false
-
-# Whether to convert all tabs to spaces in comments. If false, tabs in
-# comments are left alone, unless used for indenting.
-cmt_convert_tab_to_spaces = false # true/false
-
-# Whether to apply changes to multi-line comments, including cmt_width,
-# keyword substitution and leading chars.
-#
-# Default: true
-cmt_indent_multi = true # true/false
-
-# Whether to align doxygen javadoc-style tags ('@param', '@return', etc.)
-# and corresponding fields such that groups of consecutive block tags,
-# parameter names, and descriptions align with one another. Overrides that
-# which is specified by the cmt_sp_after_star_cont. If cmt_width > 0, it may
-# be necessary to enable cmt_indent_multi and set cmt_reflow_mode = 2
-# in order to achieve the desired alignment for line-wrapping.
-cmt_align_doxygen_javadoc_tags = false # true/false
-
-# The number of spaces to insert after the star and before doxygen
-# javadoc-style tags (@param, @return, etc). Requires enabling
-# cmt_align_doxygen_javadoc_tags. Overrides that which is specified by the
-# cmt_sp_after_star_cont.
-#
-# Default: 1
-cmt_sp_before_doxygen_javadoc_tags = 1 # unsigned number
-
-# Whether to change trailing, single-line c-comments into cpp-comments.
-cmt_trailing_single_line_c_to_cpp = false # true/false
-
-# Whether to group c-comments that look like they are in a block.
-cmt_c_group = false # true/false
-
-# Whether to put an empty '/*' on the first line of the combined c-comment.
-cmt_c_nl_start = false # true/false
-
-# Whether to add a newline before the closing '*/' of the combined c-comment.
-cmt_c_nl_end = false # true/false
-
-# Whether to change cpp-comments into c-comments.
-cmt_cpp_to_c = false # true/false
-
-# Whether to group cpp-comments that look like they are in a block. Only
-# meaningful if cmt_cpp_to_c=true.
-cmt_cpp_group = false # true/false
-
-# Whether to put an empty '/*' on the first line of the combined cpp-comment
-# when converting to a c-comment.
-#
-# Requires cmt_cpp_to_c=true and cmt_cpp_group=true.
-cmt_cpp_nl_start = false # true/false
-
-# Whether to add a newline before the closing '*/' of the combined cpp-comment
-# when converting to a c-comment.
-#
-# Requires cmt_cpp_to_c=true and cmt_cpp_group=true.
-cmt_cpp_nl_end = false # true/false
-
-# Whether to put a star on subsequent comment lines.
-cmt_star_cont = false # true/false
-
-# The number of spaces to insert at the start of subsequent comment lines.
-cmt_sp_before_star_cont = 0 # unsigned number
-
-# The number of spaces to insert after the star on subsequent comment lines.
-cmt_sp_after_star_cont = 0 # unsigned number
-
-# For multi-line comments with a '*' lead, remove leading spaces if the first
-# and last lines of the comment are the same length.
-#
-# Default: true
-cmt_multi_check_last = true # true/false
-
-# For multi-line comments with a '*' lead, remove leading spaces if the first
-# and last lines of the comment are the same length AND if the length is
-# bigger as the first_len minimum.
-#
-# Default: 4
-cmt_multi_first_len_minimum = 4 # unsigned number
-
-# Path to a file that contains text to insert at the beginning of a file if
-# the file doesn't start with a C/C++ comment. If the inserted text contains
-# '$(filename)', that will be replaced with the current file's name.
-cmt_insert_file_header = "" # string
-
-# Path to a file that contains text to insert at the end of a file if the
-# file doesn't end with a C/C++ comment. If the inserted text contains
-# '$(filename)', that will be replaced with the current file's name.
-cmt_insert_file_footer = "" # string
-
-# Path to a file that contains text to insert before a function definition if
-# the function isn't preceded by a C/C++ comment. If the inserted text
-# contains '$(function)', '$(javaparam)' or '$(fclass)', these will be
-# replaced with, respectively, the name of the function, the javadoc '@param'
-# and '@return' stuff, or the name of the class to which the member function
-# belongs.
-cmt_insert_func_header = "" # string
-
-# Path to a file that contains text to insert before a class if the class
-# isn't preceded by a C/C++ comment. If the inserted text contains '$(class)',
-# that will be replaced with the class name.
-cmt_insert_class_header = "" # string
-
-# Path to a file that contains text to insert before an Objective-C message
-# specification, if the method isn't preceded by a C/C++ comment. If the
-# inserted text contains '$(message)' or '$(javaparam)', these will be
-# replaced with, respectively, the name of the function, or the javadoc
-# '@param' and '@return' stuff.
-cmt_insert_oc_msg_header = "" # string
-
-# Whether a comment should be inserted if a preprocessor is encountered when
-# stepping backwards from a function name.
-#
-# Applies to cmt_insert_oc_msg_header, cmt_insert_func_header and
-# cmt_insert_class_header.
-cmt_insert_before_preproc = false # true/false
-
-# Whether a comment should be inserted if a function is declared inline to a
-# class definition.
-#
-# Applies to cmt_insert_func_header.
-#
-# Default: true
-cmt_insert_before_inlines = true # true/false
-
-# Whether a comment should be inserted if the function is a class constructor
-# or destructor.
-#
-# Applies to cmt_insert_func_header.
-cmt_insert_before_ctor_dtor = false # true/false
-
-#
-# Code modifying options (non-whitespace)
-#
-
-# Add or remove braces on a single-line 'do' statement.
-mod_full_brace_do = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove braces on a single-line 'for' statement.
-mod_full_brace_for = ignore # ignore/add/remove/force/not_defined
-
-# (Pawn) Add or remove braces on a single-line function definition.
-mod_full_brace_function = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove braces on a single-line 'if' statement. Braces will not be
-# removed if the braced statement contains an 'else'.
-mod_full_brace_if = ignore # ignore/add/remove/force/not_defined
-
-# Whether to enforce that all blocks of an 'if'/'else if'/'else' chain either
-# have, or do not have, braces. If true, braces will be added if any block
-# needs braces, and will only be removed if they can be removed from all
-# blocks.
-#
-# Overrides mod_full_brace_if.
-mod_full_brace_if_chain = false # true/false
-
-# Whether to add braces to all blocks of an 'if'/'else if'/'else' chain.
-# If true, mod_full_brace_if_chain will only remove braces from an 'if' that
-# does not have an 'else if' or 'else'.
-mod_full_brace_if_chain_only = false # true/false
-
-# Add or remove braces on single-line 'while' statement.
-mod_full_brace_while = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove braces on single-line 'using ()' statement.
-mod_full_brace_using = ignore # ignore/add/remove/force/not_defined
-
-# Don't remove braces around statements that span N newlines
-mod_full_brace_nl = 0 # unsigned number
-
-# Whether to prevent removal of braces from 'if'/'for'/'while'/etc. blocks
-# which span multiple lines.
-#
-# Affects:
-# mod_full_brace_for
-# mod_full_brace_if
-# mod_full_brace_if_chain
-# mod_full_brace_if_chain_only
-# mod_full_brace_while
-# mod_full_brace_using
-#
-# Does not affect:
-# mod_full_brace_do
-# mod_full_brace_function
-mod_full_brace_nl_block_rem_mlcond = false # true/false
-
-# Add or remove unnecessary parenthesis on 'return' statement.
-mod_paren_on_return = ignore # ignore/add/remove/force/not_defined
-
-# (Pawn) Whether to change optional semicolons to real semicolons.
-mod_pawn_semicolon = false # true/false
-
-# Whether to fully parenthesize Boolean expressions in 'while' and 'if'
-# statement, as in 'if (a && b > c)' => 'if (a && (b > c))'.
-mod_full_paren_if_bool = false # true/false
-
-# Whether to remove superfluous semicolons.
-mod_remove_extra_semicolon = false # true/false
-
-# Whether to remove duplicate include.
-mod_remove_duplicate_include = false # true/false
-
-# If a function body exceeds the specified number of newlines and doesn't have
-# a comment after the close brace, a comment will be added.
-mod_add_long_function_closebrace_comment = 0 # unsigned number
-
-# If a namespace body exceeds the specified number of newlines and doesn't
-# have a comment after the close brace, a comment will be added.
-mod_add_long_namespace_closebrace_comment = 0 # unsigned number
-
-# If a class body exceeds the specified number of newlines and doesn't have a
-# comment after the close brace, a comment will be added.
-mod_add_long_class_closebrace_comment = 0 # unsigned number
-
-# If a switch body exceeds the specified number of newlines and doesn't have a
-# comment after the close brace, a comment will be added.
-mod_add_long_switch_closebrace_comment = 0 # unsigned number
-
-# If an #ifdef body exceeds the specified number of newlines and doesn't have
-# a comment after the #endif, a comment will be added.
-mod_add_long_ifdef_endif_comment = 0 # unsigned number
-
-# If an #ifdef or #else body exceeds the specified number of newlines and
-# doesn't have a comment after the #else, a comment will be added.
-mod_add_long_ifdef_else_comment = 0 # unsigned number
-
-# Whether to take care of the case by the mod_sort_xx options.
-mod_sort_case_sensitive = false # true/false
-
-# Whether to sort consecutive single-line 'import' statements.
-mod_sort_import = false # true/false
-
-# (C#) Whether to sort consecutive single-line 'using' statements.
-mod_sort_using = false # true/false
-
-# Whether to sort consecutive single-line '#include' statements (C/C++) and
-# '#import' statements (Objective-C). Be aware that this has the potential to
-# break your code if your includes/imports have ordering dependencies.
-mod_sort_include = false # true/false
-
-# Whether to prioritize '#include' and '#import' statements that contain
-# filename without extension when sorting is enabled.
-mod_sort_incl_import_prioritize_filename = false # true/false
-
-# Whether to prioritize '#include' and '#import' statements that does not
-# contain extensions when sorting is enabled.
-mod_sort_incl_import_prioritize_extensionless = false # true/false
-
-# Whether to prioritize '#include' and '#import' statements that contain
-# angle over quotes when sorting is enabled.
-mod_sort_incl_import_prioritize_angle_over_quotes = false # true/false
-
-# Whether to ignore file extension in '#include' and '#import' statements
-# for sorting comparison.
-mod_sort_incl_import_ignore_extension = false # true/false
-
-# Whether to group '#include' and '#import' statements when sorting is enabled.
-mod_sort_incl_import_grouping_enabled = false # true/false
-
-# Whether to move a 'break' that appears after a fully braced 'case' before
-# the close brace, as in 'case X: { ... } break;' => 'case X: { ... break; }'.
-mod_move_case_break = false # true/false
-
-# Add or remove braces around a fully braced case statement. Will only remove
-# braces if there are no variable declarations in the block.
-mod_case_brace = ignore # ignore/add/remove/force/not_defined
-
-# Whether to remove a void 'return;' that appears as the last statement in a
-# function.
-mod_remove_empty_return = false # true/false
-
-# Add or remove the comma after the last value of an enumeration.
-mod_enum_last_comma = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Whether to organize the properties. If true, properties will be
-# rearranged according to the mod_sort_oc_property_*_weight factors.
-mod_sort_oc_properties = false # true/false
-
-# (OC) Weight of a class property modifier.
-mod_sort_oc_property_class_weight = 0 # number
-
-# (OC) Weight of 'atomic' and 'nonatomic'.
-mod_sort_oc_property_thread_safe_weight = 0 # number
-
-# (OC) Weight of 'readwrite' when organizing properties.
-mod_sort_oc_property_readwrite_weight = 0 # number
-
-# (OC) Weight of a reference type specifier ('retain', 'copy', 'assign',
-# 'weak', 'strong') when organizing properties.
-mod_sort_oc_property_reference_weight = 0 # number
-
-# (OC) Weight of getter type ('getter=') when organizing properties.
-mod_sort_oc_property_getter_weight = 0 # number
-
-# (OC) Weight of setter type ('setter=') when organizing properties.
-mod_sort_oc_property_setter_weight = 0 # number
-
-# (OC) Weight of nullability type ('nullable', 'nonnull', 'null_unspecified',
-# 'null_resettable') when organizing properties.
-mod_sort_oc_property_nullability_weight = 0 # number
-
-#
-# Preprocessor options
-#
-
-# Add or remove indentation of preprocessor directives inside #if blocks
-# at brace level 0 (file-level).
-pp_indent = ignore # ignore/add/remove/force/not_defined
-
-# Whether to indent #if/#else/#endif at the brace level. If false, these are
-# indented from column 1.
-pp_indent_at_level = false # true/false
-
-# Specifies the number of columns to indent preprocessors per level
-# at brace level 0 (file-level). If pp_indent_at_level=false, also specifies
-# the number of columns to indent preprocessors per level
-# at brace level > 0 (function-level).
-#
-# Default: 1
-pp_indent_count = 1 # unsigned number
-
-# Add or remove space after # based on pp_level of #if blocks.
-pp_space = ignore # ignore/add/remove/force/not_defined
-
-# Sets the number of spaces per level added with pp_space.
-pp_space_count = 0 # unsigned number
-
-# The indent for '#region' and '#endregion' in C# and '#pragma region' in
-# C/C++. Negative values decrease indent down to the first column.
-pp_indent_region = 0 # number
-
-# Whether to indent the code between #region and #endregion.
-pp_region_indent_code = false # true/false
-
-# If pp_indent_at_level=true, sets the indent for #if, #else and #endif when
-# not at file-level. Negative values decrease indent down to the first column.
-#
-# =0: Indent preprocessors using output_tab_size
-# >0: Column at which all preprocessors will be indented
-pp_indent_if = 0 # number
-
-# Whether to indent the code between #if, #else and #endif.
-pp_if_indent_code = false # true/false
-
-# Whether to indent the body of an #if that encompasses all the code in the file.
-pp_indent_in_guard = false # true/false
-
-# Whether to indent '#define' at the brace level. If false, these are
-# indented from column 1.
-pp_define_at_level = false # true/false
-
-# Whether to indent '#include' at the brace level.
-pp_include_at_level = false # true/false
-
-# Whether to ignore the '#define' body while formatting.
-pp_ignore_define_body = false # true/false
-
-# Whether to indent case statements between #if, #else, and #endif.
-# Only applies to the indent of the preprocesser that the case statements
-# directly inside of.
-#
-# Default: true
-pp_indent_case = true # true/false
-
-# Whether to indent whole function definitions between #if, #else, and #endif.
-# Only applies to the indent of the preprocesser that the function definition
-# is directly inside of.
-#
-# Default: true
-pp_indent_func_def = true # true/false
-
-# Whether to indent extern C blocks between #if, #else, and #endif.
-# Only applies to the indent of the preprocesser that the extern block is
-# directly inside of.
-#
-# Default: true
-pp_indent_extern = true # true/false
-
-# Whether to indent braces directly inside #if, #else, and #endif.
-# Only applies to the indent of the preprocesser that the braces are directly
-# inside of.
-#
-# Default: true
-pp_indent_brace = true # true/false
-
-#
-# Sort includes options
-#
-
-# The regex for include category with priority 0.
-include_category_0 = "" # string
-
-# The regex for include category with priority 1.
-include_category_1 = "" # string
-
-# The regex for include category with priority 2.
-include_category_2 = "" # string
-
-#
-# Use or Do not Use options
-#
-
-# true: indent_func_call_param will be used (default)
-# false: indent_func_call_param will NOT be used
-#
-# Default: true
-use_indent_func_call_param = true # true/false
-
-# The value of the indentation for a continuation line is calculated
-# differently if the statement is:
-# - a declaration: your case with QString fileName ...
-# - an assignment: your case with pSettings = new QSettings( ...
-#
-# At the second case the indentation value might be used twice:
-# - at the assignment
-# - at the function call (if present)
-#
-# To prevent the double use of the indentation value, use this option with the
-# value 'true'.
-#
-# true: indent_continue will be used only once
-# false: indent_continue will be used every time (default)
-use_indent_continue_only_once = false # true/false
-
-# The value might be used twice:
-# - at the assignment
-# - at the opening brace
-#
-# To prevent the double use of the indentation value, use this option with the
-# value 'true'.
-#
-# true: indentation will be used only once
-# false: indentation will be used every time (default)
-indent_cpp_lambda_only_once = false # true/false
-
-# Whether sp_after_angle takes precedence over sp_inside_fparen. This was the
-# historic behavior, but is probably not the desired behavior, so this is off
-# by default.
-use_sp_after_angle_always = false # true/false
-
-# Whether to apply special formatting for Qt SIGNAL/SLOT macros. Essentially,
-# this tries to format these so that they match Qt's normalized form (i.e. the
-# result of QMetaObject::normalizedSignature), which can slightly improve the
-# performance of the QObject::connect call, rather than how they would
-# otherwise be formatted.
-#
-# See options_for_QT.cpp for details.
-#
-# Default: true
-use_options_overriding_for_qt_macros = true # true/false
-
-# If true: the form feed character is removed from the list of whitespace
-# characters. See https://en.cppreference.com/w/cpp/string/byte/isspace.
-use_form_feed_no_more_as_whitespace_character = false # true/false
-
-#
-# Warn levels - 1: error, 2: warning (default), 3: note
-#
-
-# (C#) Warning is given if doing tab-to-\t replacement and we have found one
-# in a C# verbatim string literal.
-#
-# Default: 2
-warn_level_tabs_found_in_verbatim_string_literals = 2 # unsigned number
-
-# Limit the number of loops.
-# Used by uncrustify.cpp to exit from infinite loop.
-# 0: no limit.
-debug_max_number_of_loops = 0 # number
-
-# Set the number of the line to protocol;
-# Used in the function prot_the_line if the 2. parameter is zero.
-# 0: nothing protocol.
-debug_line_number_to_protocol = 0 # number
-
-# Set the number of second(s) before terminating formatting the current file,
-# 0: no timeout.
-# only for linux
-debug_timeout = 0 # number
-
-# Set the number of characters to be printed if the text is too long,
-# 0: do not truncate.
-debug_truncate = 0 # unsigned number
-
-# Meaning of the settings:
-# Ignore - do not do any changes
-# Add - makes sure there is 1 or more space/brace/newline/etc
-# Force - makes sure there is exactly 1 space/brace/newline/etc,
-# behaves like Add in some contexts
-# Remove - removes space/brace/newline/etc
-#
-#
-# - Token(s) can be treated as specific type(s) with the 'set' option:
-# `set tokenType tokenString [tokenString...]`
-#
-# Example:
-# `set BOOL __AND__ __OR__`
-#
-# tokenTypes are defined in src/token_enum.h, use them without the
-# 'CT_' prefix: 'CT_BOOL' => 'BOOL'
-#
-#
-# - Token(s) can be treated as type(s) with the 'type' option.
-# `type tokenString [tokenString...]`
-#
-# Example:
-# `type int c_uint_8 Rectangle`
-#
-# This can also be achieved with `set TYPE int c_uint_8 Rectangle`
-#
-#
-# To embed whitespace in tokenStrings use the '\' escape character, or quote
-# the tokenStrings. These quotes are supported: "'`
-#
-#
-# - Support for the auto detection of languages through the file ending can be
-# added using the 'file_ext' command.
-# `file_ext langType langString [langString..]`
-#
-# Example:
-# `file_ext CPP .ch .cxx .cpp.in`
-#
-# langTypes are defined in uncrusify_types.h in the lang_flag_e enum, use
-# them without the 'LANG_' prefix: 'LANG_CPP' => 'CPP'
-#
-#
-# - Custom macro-based indentation can be set up using 'macro-open',
-# 'macro-else' and 'macro-close'.
-# `(macro-open | macro-else | macro-close) tokenString`
-#
-# Example:
-# `macro-open BEGIN_TEMPLATE_MESSAGE_MAP`
-# `macro-open BEGIN_MESSAGE_MAP`
-# `macro-close END_MESSAGE_MAP`
-#
-#
-# option(s) with 'not default' value: 0
-#
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/index.html b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/index.html
deleted file mode 100644
index 214ef64d..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/index.html
+++ /dev/null
@@ -1,183 +0,0 @@
-<!DOCTYPE html>
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <meta http-equiv="content-type" content="text/html; charset=utf-8" />
- <title>Uncrustify - Source Code Beautifier for C-like languages</title>
- <link rel="stylesheet" type="text/css" href="uncrustify1.css" />
- <!-- <link rel="shortcut icon" href="images/favicon.ico" /> -->
-</head>
-<body lang="en-us" dir="ltr">
-
-<div align="center">
-<table>
-<tr>
-<td align="center">
-<div class="node1" align="center">
-<div class="node2" align="left">
-<h1>Uncrustify</h1>
-<h2>Source Code Beautifier for C, C++, C#, ObjectiveC, D, Java, Pawn and VALA</h2>
-<table>
- <tr>
- <td valign="top">
- <script type='text/javascript' language='JavaScript' src='http://www.ohloh.net/projects/4765/badge_js'></script>
- </td>
- <td valign="top">
- <a href="https://travis-ci.org/uncrustify/uncrustify/builds">
- <img alt="Travis CI Build Status"
- src="https://travis-ci.org/uncrustify/uncrustify.svg?branch=master"/>
- </a>
- </td>
- <td valign="top">
- <a href="https://scan.coverity.com/projects/uncrustify">
- <img alt="Coverity Scan Build Status"
- src="https://scan.coverity.com/projects/8264/badge.svg"/>
- </a>
- </td>
- </tr>
-</table>
-
-<h2>Introduction</h2>
-<p>The goals of this project are simple:
-Create a highly configurable, easily modifiable source code beautifier.</p>
-
-<br />
-
-<h2>Features</h2>
-<ul>
- <li>Indent code, aligning on parens, assignments, etc</li>
- <li>Align on '=' and variable definitions</li>
- <li>Align structure initializers</li>
- <li>Align #define stuff</li>
- <li>Align backslash-newline stuff</li>
- <li>Reformat comments (a little bit)</li>
- <li>Fix inter-character spacing</li>
- <li>Add or remove parens on return statements</li>
- <li>Add or remove braces on single-statement if/do/while/for statements</li>
- <li>Supports embedded SQL 'EXEC SQL' stuff</li>
- <li>Highly configurable - 787 configurable options as of version 0.74.0</li>
-</ul>
-
-<p>
- See some example <a href="examples/example.c">output</a>.
-</p>
-
-<br />
-
-<h2>Where to get Uncrustify</h2>
-
-<h3>Project Websites</h3>
-<a href="http://sourceforge.net/projects/uncrustify/">Sourceforge project web site</a><BR>
-<a href="http://sourceforge.net/projects/uncrustify/files/">Release downloads</a><br>
-<a href="http://freshmeat.net/projects/uncrustify/">Freshmeat Project</a><BR>
-<a href="http://github.com/uncrustify/uncrustify">Git Hub</a><br>
-
-<h3>Source Code</h3>
-As of release 0.54, the source code is maintained in a <a href="http://git-scm.com/">Git</a> repository.<br>
-<br>
-The public Git URL for Sourceforge.net is <br>
-<code>git://uncrustify.git.sourceforge.net/gitroot/uncrustify/uncrustify</code><br>
-<br>
-The public Git URL for github.com is <br>
-<code>git://github.com/uncrustify/uncrustify.git</code><br>
-
-<h3>Prebuilt binaries</h3>
-Windows (i386) :
-<a href="http://sourceforge.net/project/showfiles.php?group_id=153164">Sourceforge</A><BR>
-
-<h3>Universal Indent GUI</h3>
-<a href="http://universalindent.sourceforge.net/">Universal Indent GUI</a> is a
-cross-platform graphical configuration file editor for many code beautifiers, including Uncrustify.
-
-<br />
-
-<h2>Want to help?</h2>
-<p>
-The most helpful way is to try it out and give feedback.
-Documentation and examples are available in the source tree, so check it out.
-</p>
-<p>
-You can find the output from 'uncrustify --show-config' <a href="config.txt">here</a>.<br />
-Here is the <a href="default.cfg">default config file</a>.
-And one I set up for <a href="linux.cfg.txt">Linux</a>.<br />
-And here is a <a href="examples/c-1.in.c">before</a> and <a href="examples/c-1.out.c">after</a> C source example.<br />
-That should give you a pretty good idea of what Uncrustify can do.<br />
-</p>
-
-<p>
-If you find a bug, please do the following:
-</p>
-<ul>
-<li>Reduce the input source file to the minimum that still has the problem</li>
-<li>Use the sourceforget.net bug tracker</li>
-<li>Attach the input source file, the configuration file, and a file that contains the expected output</li>
-</ul>
-
-<p>
-If you want to add a feature, fix a bug, or implement missing functionality, feel free to do so! Patches are welcome!<BR/>
-Here are some areas that need attention:
-</p>
-<ul>
- <li>Test Java support and provide feedback (or patches!)</li>
- <li>Test Objective C support and provide feedback (or patches!)</li>
- <li>Test Embedded SQL to see what works</li>
- <li>This web page need a (re)design</li>
- <li>A logo of some sort</li>
- <li>Examples that can be put on this website to show off what Uncrustify can do</li>
- <li>Anything else that you want to do to make it better?</li>
-</ul>
-
-<h3>Project Mailing list</h3>
-We don't have a mailing list for Uncrustify.<BR/>
-We are using <a href="https://github.com/uncrustify/uncrustify/">github</a>.
-<br>
-You may use <a href="https://github.com/uncrustify/uncrustify/issues">Issues</a> to publish an error report.
-<br>
-Or <a href="https://github.com/uncrustify/uncrustify/pulls">PR</a> to make a bugfix proposal.
-
-<br />
-
-<h2>Portability</h2>
-<p>
-I'm pretty sure that I'm not using anything that is OS-specific.<br />
-The software has been tested on the following operating systems:
-</p>
-<ul>
- <li>Linux</li>
- <li>QNX</li>
- <li>OS X</li>
- <li>FreeBSD, NetBSD, OpenBSD</li>
- <li>Sun Solaris 9</li>
- <li>Windows XP (binary available)</li>
-</ul>
-
-<br />
-
-<h2>Links</h2>
-<ul>
- <li><a href="http://universalindent.sourceforge.net/">Universal Indent GUI</a></li>
- <li>Don't know what D is? Check out the <a href="http://dlang.org/index.html">D Programming Language website</a>.</li>
- <li><a href="http://www.linuxlinks.com">Linux Links</a></li>
-</ul>
-<h2>Distributions that package Uncrustify</h2>
-<ul>
- <li><A href="http://www.debian.org/">Debian</A>
- <li><A href="http://fedora.redhat.com/">Fedora</A></li>
- <li><A href="http://www.altlinux.com/">ALT Linux</A></li>
- <li><A href="http://www.t2-project.org/">T2</A></li>
- <li><A href="http://www.macports.org/">MacPorts</a></li>
- <li><A href="http://www.freebsd.org/cgi/ports.cgi?query=uncrustify">FreeBSD Ports (textproc/uncrustify)</a></li>
- <li><A href="http://openports.se/textproc/uncrustify">OpenBSD Ports (textproc/uncrustify)</a></li>
- <li>Others?</li>
-</ul>
-</div>
-</div>
-</td>
-</tr>
-</table>
-</div>
-<br />
-<a href="http://sourceforge.net/donate/index.php?group_id=153164">"Support This Project"</a>
-<br />
-
-</body>
-</html>
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Align.html b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Align.html
deleted file mode 100644
index b034a132..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Align.html
+++ /dev/null
@@ -1,44 +0,0 @@
-#define SUCCESS 0
- █
-align_pp_define_gap
-The minimum space between label and value of a preprocessor define
-
-#define set_chunk_type(pc, tt) do { \
- LOG_FUNC_CALL(); \
- set_chunk_type_real((pc), (tt)); \
-} while (false)
-align_nl_cont = true
-
-#define LOG_STR(sev, str, len) \
- do { if (log_sev_on(sev)) { log_str(sev, str, len); } } while (0)
- █
-nl_after_brace_close
-
-
-extern struct cp_data cpd;
-
-extern bool QT_SIGNAL_SLOT_found;
-extern int QT_SIGNAL_SLOT_level;
-extern bool restoreValues;
-align_var_def_span █
-
-enum argval_t
-{
- AV_IGNORE = 0,
- AV_ADD = 1,
- AV_REMOVE = 2,
- AV_FORCE = 3, /**< remove + add */
- AV_NOT_DEFINED = 4 /* to be used with QT, SIGNAL SLOT macros */
-};
- █
-align_var_struct_span
-
-
- UO_indent_var_def_blk, // indent a variable def block that appears at the top
- UO_indent_var_def_cont,
- UO_indent_shift, // if a shift expression spans multiple lines, indent
-
- UO_indent_min_vbrace_open, // min. indent after virtual brace open and newline
- UO_indent_vbrace_open_on_tabstop, // when identing after virtual brace open and newline add further spaces to reach next tabstop
-
-align_right_cmt_span
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_NewLines.html b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_NewLines.html
deleted file mode 100644
index 9d9ad656..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_NewLines.html
+++ /dev/null
@@ -1,216 +0,0 @@
-<html>
-<head>
- <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
- <title>Uncrustify: where do the New Lines options work</title>
-</head>
-<body lang="en-US">
-<h1><a href="https://github.com/uncrustify/uncrustify">Uncrustify</a>:
-Where do the options work?</h1>
-<h2>New lines</h2>
-<p>
-</p>
-<hr>
-<pre>
-<a title="nl_remove_extra_newlines"><strong><font color="red">█</font></strong></a>
-<a title="nl_start_of_file"><strong><font color="red"><strong><font color="red">█</font></strong></font></strong></a>
-void bar_0(); // function definition
-<a title="nl_func_paren"><strong><font color="red"> █</a><a title="nl_func_def_empty">█</font></strong></a>
-void bar_0() // function declaration
-<a title="nl_func_def_paren"><strong><font color="red"> █</a><a title="nl_func_decl_empty">█</font></strong></a>
-void A::bar_1(int a);
-<a title="nl_func_scope_name"><strong><font color="red"> █</a><a title="nl_func_def_start"> █</a><a title="nl_func_def_end_single"> █</font></strong></a>
-void bar_2(int a) <a title="nl_fdef_brace"><strong><font color="red">█</font></strong></a>
-<a title="nl_func_type_name"><strong><font color="red"> █</a><a title="nl_func_decl_start"> █</a><a title="nl_func_decl_end"> █</font></strong></a>
-<a title="nl_func_decl_start_single"><strong><font color="red"> █</a><a title="nl_func_decl_end_single"> █</font></strong></a>
-{<a title="nl_collapse_empty_body"><strong><font color="red">█</font></strong></a>
-}
-<a title="nl_after_func_body"><strong><font color="red">█</font></strong></a>
-void bar_3(int x,
- int y)
-<a title="nl_func_def_args"><strong><font color="red"> █</a><a title="nl_func_decl_end"> █</font></strong></a>
-{
- int a = 5;<a title="nl_after_semicolon"><strong><font color="red"> █</font></strong></a>
- int b = 7;
- <a title="nl_func_var_def_blk"><strong><font color="red"> █</font></strong></a>
- a = 135;
- list_for_each(item, list) {
-<a title="nl_fcall_brace"><strong><font color="red"> █</font></strong></a>
- }
-<a title="nl_before_block_comment"><strong><font color="red"> █</font></strong></a>
- /* c1
- * c2
- */
-<a title="nl_max"><strong><font color="red"> █</font></strong></a>
- int x2;
-<a title="nl_before_c_comment"><strong><font color="red"> █</font></strong></a>
- /* single comment */
-<a title="nl_before_cpp_comment"><strong><font color="red"> █</font></strong></a>
- // cpp comment
- std::for_each(a, b, [] (int& b) -> foo {
-<a title="nl_cpp_ldef_brace"><strong><font color="red"> █</font></strong></a>
- b+=3;
- }
- A_function(parameter_for_A);
-<a title="nl_func_call_start"><strong><font color="red"> █</font></strong></a><a title="nl_func_call_end"><strong><font color="red"> █</font></strong></a>
-}
-<a title="nl_end_of_file"><strong><font color="red">█</font></strong></a>
-<hr>
-class foo : public my_Class<a title="nl_class_brace"><strong><font color="red"> █</font></strong></a>
-<a title="nl_class_colon"><strong><font color="red"> █</font></strong></a>
-{
- void bar_c(int t, int u)<a title="nl_constr_colon"><strong><font color="red"> █</font></strong></a>
-<a title="nl_func_type_name_class, nl_func_proto_type_name"><strong><font color="red"> █</a><a title="nl_func_decl_args"> █</font></strong></a>
- : t(222)
- , u(88)
-<a title="nl_constr_init_args, pos_constr_comma"><strong><font color="red"> █</font></strong></a>
- {
-<a title="nl_typedef_blk_start"><strong><font color="red"> █</font></strong></a>
- typedef char CHAR;
-<a title="nl_typedef_blk_end"><strong><font color="red"> █</a><a title="nl_var_def_blk_start"> █</font></strong></a>
- CHAR c;
- int a;
- int b;
-<a title="nl_var_def_blk_end"><strong><font color="red"> █</font></strong></a>
- c = 'a';
-<a title="nl_before_switch"><strong><font color="red"> █</font></strong></a>
- switch (a) {
-<a title="nl_switch_brace"><strong><font color="red"> █</font></strong></a>
- case 0:
- b = 1;
- break;
-<a title="nl_before_case"><strong><font color="red"> █</font></strong></a>
- case 1: b = 5; break;
-<a title="nl_after_case"><strong><font color="red"> █</font></strong></a>
- case 13: {
-<a title="nl_case_colon_brace"><strong><font color="red"> █</font></strong></a>
- b = 15;
- break;
- }
- }
-<a title="nl_after_switch"><strong><font color="red"> █</a><a title="nl_before_do"> █</font></strong></a>
- do { <a title="nl_do_brace"><strong><font color="red">█</font></strong></a>
- do_something();
- } while (!d.isEmpty());
-<a title="nl_brace_while"><strong><font color="red"> █</a><a title="nl_after_do">█</a><a title="nl_before_if"> █</font></strong></a>
- if (a) { <a title="nl_if_brace"><strong><font color="red">█</font></strong></a>
- b = 1;
- } else if (c) {
-<a title="nl_brace_else"><strong><font color="red"> █</a><a title="nl_else_if"> █</a><a title="nl_elseif_brace"> █</font></strong></a>
- b ;
- } else {
-<a title="nl_else_brace"><strong><font color="red"> █</font></strong></a>
- b = 3;
- }
-<a title="nl_after_if"><strong><font color="red"> █</a><a title="nl_before_for"> █</font></strong></a>
- for (a = 1; a < 5; a++) {
-<a title="nl_for_brace"><strong><font color="red"> █</font></strong></a>
- b = b + a;
- }
-<a title="nl_after_for"><strong><font color="red"> █</font></strong></a>
- for (int a = 1; a < 5;
- a++) {
-<a title="nl_multi_line_cond"><strong><font color="red"> █</font></strong></a>
- b = a + 4;
- }
- try {
-<a title="nl_try_brace"><strong><font color="red"> █</font></strong></a>
- b = 1;
- if (err) {
-<a title="nl_before_throw"><strong><font color="red"> █</font></strong></a>
- throw std::runtime_error(std::string("nextKey: ") + err.asString());
- }
- } catch (const std::exception &exc) {
-<a title="nl_brace_catch"><strong><font color="red"> █</a><a title="nl_catch_brace"> █</font></strong></a>
- b = 3;
- }
-<a title="nl_before_while"><strong><font color="red"> █</font></strong></a>
- while (c) {
-<a title="nl_while_brace"><strong><font color="red"> █</font></strong></a>
- b ;
- }
-<a title="nl_after_while"><strong><font color="red"> █</font></strong></a>
- }
- enum CaseOfOne {
-<a title="nl_enum_brace"><strong><font color="red"> █</font></strong></a>
- a1,
- b1,
-<a title="nl_ds_struct_enum_cmt"><strong><font color="red"> █</font></strong></a>
- // comment
- c1,
-<a title="nl_ds_struct_enum_close_brace"><strong><font color="red"> █</font></strong></a>
- };
- struct indent_ptr_t <a title="nl_struct_brace"><strong><font color="red">█</font></strong></a>
- {
- chunk_t *ref;
-<a title="nl_ds_struct_enum_cmt"><strong><font color="red"> █</font></strong></a>
- // comment
- int delta;
-<a title="nl_ds_struct_enum_close_brace"><strong><font color="red"> █</font></strong></a>
- } ipt;
-<a title="nl_brace_struct_var"><strong><font color="red"> █</font></strong></a>
-<a title="nl_after_struct"><strong><font color="red"> █</font></strong></a>
- union UnionOfOne {
-<a title="nl_union_brace"><strong><font color="red"> █</font></strong></a>
- a1,
- b1,
-<a title="nl_ds_struct_enum_cmt"><strong><font color="red"> █</font></strong></a>
- // comment
- c1,
-<a title="nl_ds_struct_enum_close_brace"><strong><font color="red"> █</font></strong></a>
- };
-<a title="nl_before_access_spec"><strong><font color="red"> █</a><a title="nl_after_func_body_class"> █</font></strong></a>
- private: // same for protected:, signal: or slots: label
-<a title="nl_after_access_spec"><strong><font color="red"> █</font></strong></a>
- int ap;
-};
-<a title="nl_after_class"><strong><font color="red">█</font></strong></a>
-<hr>
-namespace foo {
-<a title="nl_namespace_brace"><strong><font color="red"> █</font></strong></a>
-int foo()
-{
- if (foo) a++; return;
-<a title="nl_after_vbrace_open"><strong><font color="red"> █</a><a title="nl_after_vbrace_close"> █</font></strong></a>
- if (a)
- return;
-<a title="nl_after_return"><strong><font color="red"> █</font></strong></a>
-l123: <a title="nl_after_label_colon"><strong><font color="red">█</font></strong></a>
- int a = 5;
-<a title="nl_before_if"><strong><font color="red"> █</font></strong></a>
- if (a > b) {
- c = 7;
-<a title="nl_before_return"><strong><font color="red"> █</font></strong></a>
- return a + b;
- }
- std::for_each(a, b, [] (int& b)->foo{ b+=3; return(b); });
-<a title="nl_brace_fparen"><strong><font color="red"> █</font></strong></a>
- QUrl dxOffEagle("http://something/newpage.html?[{\"foo: bar\"}]", QUrl::TolerantMode);
-<a title="nl_brace_square"><strong><font color="red"> █</font></strong></a>
-<a title="nl_before_return"><strong><font color="red"> █</font></strong></a>
- return 0;
-<a title="nl_return_expr"><strong><font color="red"> █</font></strong></a>
-<hr>
-/* c1
- *
- */
-<a title="nl_comment_func_def"><strong><font color="red">█</font></strong></a>
-void b();
-<a title="nl_after_func_proto"><strong><font color="red">█</font></strong></a>
-void d();
-#define LOG_CONTTEXT() \
-<a title="nl_multi_line_define"><strong><font color="red"> █</font></strong></a>
- LOG_FMT(LCONTTEXT \
- ,"%s:%d set cont_text to '%s'\n" \
- ,__func__, __LINE__, cmt.cont_text.c_str())
-template &lt;class T&gt;
-<a title="nl_template_class"><strong><font color="red">█</font></strong></a>
-ItemJob<T>::ItemJob(PlatformDependent *internals, const QNetworkRequest &request)
- : GetJob(internals, request)
-typedef int ia;
-typedef int ib;
-<a title="nl_typedef_blk_in"><strong><font color="red">█</font></strong></a>
-typedef int ic;
-typedef int id;
-</pre>
-</body>
-</html>
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Spaces.html b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Spaces.html
deleted file mode 100644
index 5b69c590..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Spaces.html
+++ /dev/null
@@ -1,432 +0,0 @@
-<html>
-<head>
- <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
- <title>Uncrustify: where do the Spaces options work</title>
-</head>
-<body lang="en-US">
-<h1><a href="https://github.com/uncrustify/uncrustify">Uncrustify</a>:
-Where do the options work?</h1>
-
-<p>
-</p>
-<h2>Spaces</h2>
-You want to "add/ force/ ignore/ remove" a
-<ul>
- <li><a href="options_Space_Assign.html">space for assign</a></li>
- <li><a href="options_Space_Byref.html">space for byref</a></li>
- <li><a href="options_Space_Case.html">space for case</a></li>
- <li><a href="options_Space_Cast.html">space for cast</a></li>
- <li><a href="options_Space_Class.html">space for class</a></li>
- <li><a href="options_Space_Comma.html">space for comma</a></li>
- <li><a href="options_Space_D.html">space for D</a></li>
- <li><a href="options_Space_Enum.html">space for enum</a></li>
- <li><a href="options_Space_For.html">space for for loop</a></li>
- <li><a href="options_Space_New.html">space for new/ delete</a></li>
- <li><a href="options_Space_Operator.html">space for operator</a></li>
- <li><a href="options_Space_Paren.html">space for parenthesis</a></li>
- <li><a href="options_Preprocessor.html">space for preprocessor</a></li>
- <li><a href="options_Space_Template.html">space for template</a></li>
- <li><a href="options_Java.html">options_Java</a></li>
- <li><a href="options_Objectiv-C.html">options_Objectiv-C</a></li>
- <li><a href="options_C_sharp.html">options_C#</a></li>
- <li><a href="options_CLI_NET.html">options_CLI .NET</a></li>
- <li><a href="options_ASM.html">options_ASM</a></li>
-</ul>
-at some places.
-<p>
-</p>
-Some more options...
-<p>
-</p>
-<p>
-</p>
-<table border="1", width="100%">
-<tr>
-<td>
-<pre>
-// Comments
-<a title="sp_cmt_cpp_start"><strong><font color="red"> █</font></strong></a>
-int a; /* emb cmt */ int b; // trailing cmt
-<a title="sp_before_emb_cmt"><strong><font color="red"> █</a><a title="sp_num_before_tr_cmt">..........█ █..........█</font></strong></a>
-
- union {
- uint maxChars;
- uint maxBytes;
- } mLength;
- union { int m_size; int m_any; };
- <a title="sp_inside_braces_struct"><strong><font color="red"> █ █</font></strong></a>
- return { -1, -1, -1 };
- <a title="sp_inside_braces"><strong><font color="red"> █ █</font></strong></a>
-
-class Parser :: ParserPrivate { };
-<a title="sp_before_dc"><strong><font color="red"> █</a><a title="sp_after_dc"> █</a><a title="sp_inside_braces_empty"> █</font></strong></a>
-template &lt;typename T&gt; class to { };
-<a title="sp_inside_braces_empty"><strong><font color="red"> █</font></strong></a>
-my $all = { };
-<a title="sp_inside_braces_empty"><strong><font color="red"> █</font></strong></a>
-enum FocusEffect { };
-<a title="sp_inside_braces_empty"><strong><font color="red"> █</font></strong></a>
-struct error { };
-<a title="sp_inside_braces_empty"><strong><font color="red"> █</font></strong></a>
-};
-
-#define LOG_FMT (sev, args ...) \
-<a title="sp_defined_paren"><strong><font color="red"> █</a><a title="sp_before_ellipsis"> █</font></strong></a>
- do { if (log_sev_on(sev)) { log_fmt(sev, ## args); } } while (0)
- <a title="sp_pp_concat"><strong><font color="red"> █ </a><a title="sp_pp_concat">█</font></strong></a>
-#endif
-#define FS_NOCOW_FL 0x00800000
-<a title="sp_macro"><strong><font color="red"> █</font></strong></a>
-#define STRHACK(x) HACKSTR(x)
-<a title="sp_macro_func"><strong><font color="red"> █</font></strong></a>
-#define wakeUpCaller(cond) \
-<a title="sp_before_nl_cont"><strong><font color="red"> █</font></strong></a>
- if (cond) { \
- <a title="sp_before_nl_cont"><strong><font color="red"> █</font></strong></a>
- cond->release(); \
- <a title="sp_before_nl_cont"><strong><font color="red"> █</font></strong></a>
- }
-typedef struct { int val; int sel; } DiceInfo;
-<a title="sp_brace_typedef"><strong><font color="red"> █</font></strong></a>
-void * bar()
-<a title="sp_before_ptr_star_func"><strong><font color="red"> █ </a><a title="sp_after_ptr_star_func">█</font></strong></a>
-{
- int a = 5;
- <a title="sp_assign"><strong><font color="red"> █ █</font></strong></a>
- <a title="sp_before_assign"><strong><font color="red"> █ </a><a title="sp_after_assign">█</font></strong></a>
- int * const i;
- <a title="sp_after_ptr_star_qualifier"><strong><font color="red"> █</font></strong></a>
- c = a + b;
- <a title="sp_arith, sp_arith_additive"><strong><font color="red"> █ █</font></strong></a>
- a = ~ b;
- <a title="sp_inv"><strong><font color="red"> █</font></strong></a>
- x = - 5;
- <a title="sp_sign"><strong><font color="red"> █</font></strong></a>
- y = + 7;
- <a title="sp_sign"><strong><font color="red"> █</font></strong></a>
- (-- a);
- <a title="sp_incdec"><strong><font color="red"> █</font></strong></a>
- i ++;
- <a title="sp_incdec"><strong><font color="red"> █</font></strong></a>
- b = ( a == d ) ? 55 : 88;
- <a title="sp_cond_question"><strong><font color="red"> █ █</a><a title="sp_cond_colon"> █ █</font></strong></a>
- <a title="sp_cond_question_before"><strong><font color="red"> █</a><a title="sp_cond_question_after"> █</a><a title="sp_cond_colon_before"> █</a><a title="sp_cond_colon_after"> █</font></strong></a>
- b = ( a == d ) ? : 88;
- <a title="sp_cond_ternary_short"><strong><font color="red"> █</font></strong></a>
- if( ( a || b ) && c ) x = 1;
- <a title="sp_bool"><strong><font color="red"> █ █ █ █</font></strong></a>
- <a title="sp_inside_paren"><strong><font color="red"> █ █ █</font></strong></a>
- <a title="sp_paren_paren"><strong><font color="red"> █</font></strong></a>
- c = a > b;
- <a title="sp_compare"><strong><font color="red"> █ █</font></strong></a>
- int * i;
- <a title="sp_before_ptr_star"><strong><font color="red"> █ </a><a title="sp_after_ptr_star">█</font></strong></a>
- <a title="sp_before_unnamed_ptr_star"><strong><font color="red"> █</font></strong></a>
- int * * j;
- <a title="sp_between_ptr_star"><strong><font color="red"> █</font></strong></a>
- throw (x);
- <a title="sp_throw_paren"><strong><font color="red"> █</font></strong></a>
- try {
- <a title="sp_try_brace"><strong><font color="red"> █</font></strong></a>
- } catch (const Exception &e) { }
- <a title="sp_brace_catch"><strong><font color="red"> █</a><a title="sp_catch_paren"> █</font></strong></a>
- } catch (...) { }
- <a title="sp_brace_catch"><strong><font color="red"> █</a><a title="sp_catch_paren"> █</font></strong></a>
- } catch { }
- <a title="sp_brace_catch"><strong><font color="red"> █</a><a title="sp_catch_brace"> █</font></strong></a>
- auto x1 = decltype(x) {0};
- <a title="sp_after_decltype"><strong><font color="red"> █</font></strong></a>
- Foo() noexcept () {}
- <a title="sp_after_noexcept"><strong><font color="red"> █</font></strong></a>
- void operator ++ ( );
- <a title="sp_after_operator"><strong><font color="red"> █</font></strong></a><a title="sp_after_operator_sym"><strong><font color="red"> █</font></strong></a><a title="sp_after_operator_sym_empty"><strong><font color="red"> █</font></strong></a>
- int a0[][] = { { 1 } };
- <a title="sp_after_type_brace_init_lst_open"><strong><font color="red"> █ █</font></strong></a><a title="sp_before_type_brace_init_lst_close"><strong><font color="red"> █ █</font></strong></a>
- char m_array [256];
- <a title="sp_before_vardef_square"><strong><font color="red"> █</font></strong></a>
- return { {crypt(_Nums, inSeed)} };
- <a title="sp_brace_brace"><strong><font color="red"> █ █</font></strong></a>
- do {
- <a title="sp_do_brace_open"><strong><font color="red"> █</font></strong></a>
- xxx = _error;
- } while(0)
- <a title="sp_brace_close_while"><strong><font color="red"> █</font></strong></a>
- bool CompareGenomeByFeatureResults::clickOnLink(std::string const& inLink) {
- auto const [sequence, type, firstPosition, lastPosition] = parseLink(inLink);
- <a title="sp_cpp_before_struct_binding"><strong><font color="red"> █</font></strong></a>
- decltype (x) y;
- <a title="sp_decltype_paren"><strong><font color="red"> █</font></strong></a>
- using x_t = decltype (x);
- <a title="sp_decltype_paren"><strong><font color="red"> █</font></strong></a>
- foo( ABC );
- <a title="sp_func_call_user_inside_fparen"><strong><font color="red"> █ █</font></strong></a>
- foo( ( ABC ) )
- <a title="sp_func_call_user_paren_paren"><strong><font color="red"> █ █</font></strong></a>
- typedef void timer_cb (struct timer_node *n);
- <a title="sp_func_type_paren"><strong><font color="red"> █</font></strong></a>
- if (n) ;
- <a title="sp_special_semi"><strong><font color="red"> █</font></strong></a>
- a( , 1);
- <a title="sp_paren_comma"><strong><font color="red"> █</font></strong></a>
- foo() noexcept;
- <a title="sp_paren_noexcept"><strong><font color="red"> █</font></strong></a>
- return {x};
- <a title="sp_return_brace"><strong><font color="red"> █</font></strong></a>
- void funcName() const;
- <a title="sp_paren_qualifier"><strong><font color="red"> █</font></strong></a>
- void ncName() override;
- <a title="sp_paren_qualifier"><strong><font color="red"> █</font></strong></a>
- template < int ... X > int bar2()
- <a title="sp_type_ellipsis"><strong><font color="red"> █</font></strong></a>
- {
- auto s = sizeof ... ( X );
- <a title="sp_sizeof_ellipsis"><strong><font color="red"> █</font></strong></a><a title="sp_sizeof_ellipsis_paren"><strong><font color="red"> █</font></strong></a>
- chomp( X ) ...;
- <a title="sp_paren_ellipsis"><strong><font color="red"> █</font></strong></a>
- return X + ...;
- }
- do amime3(); while (false);
- <a title="sp_while_paren_open"><strong><font color="red"> █</font></strong></a>
- auto b0 = unknown_kw { 2 };
- <a title="sp_word_brace_init_lst"><strong><font color="red"> █</font></strong></a>
- if (data) go = new ClassA();
- <a title="sp_skip_vbrace_tokens"><strong><font color="red"> █</font></strong></a>
- else go = new ClassB();
- <a title="sp_skip_vbrace_tokens"><strong><font color="red"> █</font></strong></a>
-
- auto f0(int a, int b) -> int;
- <a title="sp_trailing_return"><strong><font color="red"> █ █</font></strong></a>
-</pre>
-</td>
-</tr>
-</table>
-<p></p>
-<table border="1", width="100%">
-<tr>
-<td>
-
-<pre>
-int main(int argc , char *argv [])
-<a title="sp_before_comma"><strong><font color="red"> █</a><a title="sp_after_comma"> █</a><a title="sp_before_squares"> █</font></strong></a>
-{
- int a [2];
- <a title="sp_before_square"><strong><font color="red"> █</font></strong></a>
- a[ n ] = 3;
- <a title="sp_inside_square"><strong><font color="red"> █ █</font></strong></a>
- const char *names [] =
- <a title="sp_before_squares"><strong><font color="red"> █</font></strong></a>
- {
- "{ False , True }",
- <a title="sp_before_comma"><strong><font color="red"> █</a><a title="sp_after_comma"> █</font></strong></a>
- "{ Ignore, Add, Remove, Force }",
-
- return (-1);
- <a title="sp_return_paren"><strong><font color="red"> █</font></strong></a>
-
-
- int a ( );
- <a title="sp_func_proto_paren"><strong><font color="red"> █</a><a title="sp_inside_fparens"> █</font></strong></a>
- int a (int b) {};
- <a title="sp_func_def_paren"><strong><font color="red"> █</a><a title="sp_fparen_brace"> █</font></strong></a>
- int foo () {};
- <a title="sp_func_def_paren_empty"><strong><font color="red"> █</font></strong></a>
-void ( int a ) ( int b );
-<a title="sp_inside_tparen"><strong><font color="red"> █ █</a><a title="sp_after_tparen_close"> █</a><a title="sp_inside_fparen"> █ █</font></strong></a>
-static void sockaddr_unmapped(
- struct sockaddr *sa __attribute__ ((unused)),
- <a title="sp_attribute_paren"><strong><font color="red"> █</font></strong></a>
- socklen_t *len __attribute__ ((unused)))
- <a title="sp_attribute_paren"><strong><font color="red"> █</font></strong></a>
-
-void (^ weak_recurseTreeNodes)(int a);
-<a title="sp_after_ptr_block_caret"><strong><font color="red"> █</font></strong></a>
-template< >
-struct Bar< false > : Foo { };
-<a title="sp_angle_colon"><strong><font color="red"> █</font></strong></a>
-</pre>
-</td>
-</tr>
-</table>
-<p>
-</p>
-<table border="1", width="100%">
-<tr>
-<td>
-
-<pre>
-template &lt; typename T &gt; inline static bool remove(T column)
-<a title="sp_template_angle"><strong><font color="red"> █<a title="sp_inside_angle"> █<a title="sp_inside_angle"> █</font></strong></a>
-<a title="sp_before_angle"><strong><font color="red"> █</a><a title="sp_after_angle"> █</font></strong></a>
-</pre>
-
-<pre>
-int & a(int & b);
-<a title="sp_before_byref_func"><strong><font color="red"> █</a><a title="sp_after_byref_func"> █</a><a title="sp_before_byref"> █</a><a title="sp_after_byref"> █</font></strong></a>
-int c(int &)
-<a title="sp_type_func"><strong><font color="red"> █</a><a title="sp_before_unnamed_byref"> █</font></strong></a>
-{
- d = aa (& y,& d) ;
- <a title="sp_func_call_paren"><strong><font color="red"> █ </a><a title="sp_addr"> █ █</a><a title="sp_before_semi"> █</font></strong></a>
- e = ee ();
- <a title="sp_func_call_paren_empty"><strong><font color="red"> █</font></strong></a>
- if ( a == 5 ) ...
- <a title="sp_before_sparen"><strong><font color="red"> █</font></strong></a>
- <a title="sp_inside_sparen"><strong><font color="red"> █ █</font></strong></a>
- <a title="sp_inside_sparen_open"><strong><font color="red"> █</a><a title="sp_inside_sparen_close"> █</font></strong></a>
- ...
- if (b) ;
- <a title="sp_special_semi"><strong><font color="red"> █</font></strong></a>
- if ( a == 6 ) b = 66;
- <a title="sp_after_sparen"><strong><font color="red"> █</font></strong></a>
- if ( a == 7 ) { b = 77; }
- <a title="sp_sparen_brace"><strong><font color="red"> █</font></strong></a>
- if (! a) {
- <a title="sp_not"><strong><font color="red"> █</font></strong></a>
- b = 4;
- } else {
- <a title="sp_brace_else"><strong><font color="red"> █</a><a title="sp_else_brace"> █</font></strong></a>
- b = 5;
- }
- for(a = 1 ; a < b ; a++) {
- <a title="sp_before_semi_for"><strong><font color="red"> █</a><a title="sp_before_semi_for_empty"> █</font></strong></a>
- ...
- for( ; ; ) {
- <a title="sp_before_semi_for_empty"><strong><font color="red"> █ █</a><a title="sp_after_semi_for_empty"> █</font></strong></a>
- ...
- switch (whatIsToDo) ...
- <a title="sp_before_sparen"><strong><font color="red"> █</font></strong></a>
- while (start < end) ...
- <a title="sp_before_sparen"><strong><font color="red"> █</font></strong></a>
-
-</pre>
-</td>
-</tr>
-</table>
-<p>
-</p>
-<table border="1", width="100%">
-<tr>
-<td>
-
-<pre>
-namespace Server {
-<a title="sp_word_brace_ns"><strong><font color="red"> █</font></strong></a>
-class Cache : public QObject
-<a title="sp_before_class_colon"><strong><font color="red"> █</a><a title="sp_after_class_colon"> █</font></strong></a>
-Cache::StorageDebugger ()
-<a title="sp_func_class_paren"><strong><font color="red"> █</font></strong></a>
- : mFile(0)
-<a title="sp_before_constr_colon"><strong><font color="red"> █</a><a title="sp_after_constr_colon"> █</font></strong></a>
-{
- new service;
- <a title="sp_after_new"><strong><font color="red"> █</font></strong></a>
- delete service;
- <a title="sp_after_new"><strong><font color="red"> █</font></strong></a>
- delete[] buffer;
- <a title="sp_after_new"><strong><font color="red"> █</font></strong></a>
- if (this == & other) return * this;
- <a title="sp_addr"><strong><font color="red"> █</a><a title="sp_deref"> █</font></strong></a>
- switch (a) {
- case 1 :
- <a title="sp_before_case_colon"><strong><font color="red"> █</font></strong></a>
- b= 1;
- break;
- case 2 : {
- b = 2;
- break;
- }
- default :
- break;
- }
- bool operator () (Entity::Id lhs, Entity::Id rhs) const
- ...<a title="sp_after_operator"><strong><font color="red"> █</a><a title="sp_after_operator_sym"> █</font></strong></a>
-
- a = ( int ) 5.6;
- <a title="sp_inside_paren_cast"><strong><font color="red"> █ █</a><a title="sp_after_cast"> █</font></strong></a>
- cpp = int (7);
- <a title="sp_cpp_cast_paren"><strong><font color="red"> █</font></strong></a>
- len = sizeof (int);
- <a title="sp_sizeof_paren"><strong><font color="red"> █</font></strong></a>
- SomeStruct a = SomeStruct {1, 2, 3};
- <a title="sp_word_brace_init_lst"><strong><font color="red"> █</font></strong></a>
- someFuncCall(SomeStruct {4, 5, 6});
- <a title="sp_word_brace_init_lst"><strong><font color="red"> █</font></strong></a>
- log . foo . bar = 5;
- <a title="sp_member"><strong><font color="red"> █ █ █ █</font></strong></a>
- other -> foo -> bar = 123;
- <a title="sp_member"><strong><font color="red"> █ █ █ █</font></strong></a>
-}
-/// doxygen sequence
-<a title="sp_cmt_cpp_doxygen"><strong><font color="red"> █</font></strong></a>
-///< doxygen sequence
-<a title="sp_cmt_cpp_doxygen"><strong><font color="red"> █</font></strong></a>
-//! doxygen sequence
-<a title="sp_cmt_cpp_doxygen"><strong><font color="red"> █</font></strong></a>
-//!< doxygen sequence
-<a title="sp_cmt_cpp_doxygen"><strong><font color="red"> █</font></strong></a>
-#if A
-#else /* Comment A */
-<a title="sp_endif_cmt"><strong><font color="red"> █</font></strong></a>
-#endif /* Comment B */
-<a title="sp_endif_cmt"><strong><font color="red"> █</font></strong></a>
-</pre>
-</td>
-</tr>
-</table>
-<table border="1", width="100%">
-<tr>
-<td>
-
-<pre>
-void Initialize( BYTE nDelay = 100 );
-<a title="sp_assign_default"><strong><font color="red"> █ █</font></strong></a>
-void f1()
-{
- auto a = [<a title="sp_inside_square"><font color="red">█</font></a>=<a title="sp_inside_square"><font color="red">█</font></a>]<a title="sp_cpp_lambda_square_paren"><font color="red">█</font></a>(<a title="sp_cpp_lambda_argument_list"><font color="red">█</font></a>int *a, Something & b<a title="sp_cpp_lambda_argument_list"><font color="red">█</font></a>);
-
- parallel_for(0, 100, [<a title="sp_inside_square"><font color="red">█</font></a>&<a title="sp_inside_square"><font color="red">█</font></a>]<a title="sp_cpp_lambda_square_paren"><font color="red">█</font></a>(<a title="sp_cpp_lambda_argument_list"><font color="red">█</font></a>const int i<a title="sp_cpp_lambda_argument_list"><font color="red">█</font></a>)<a title="sp_cpp_lambda_paren_brace"><font color="red">█</font></a>{
- const std::vector<int> values = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 };
-
- list[idx] (param);
- <a title="sp_square_fparen"><font color="red"> █</font></a>
-
-double foo()
-{
- return( foo(n) );
- <a title="sp_balance_nested_parens"><strong><font color="red"> █ █</font></strong></a>
-
-
-Vector2&lt;double&gt; ()
-<a title="sp_angle_paren"><strong><font color="red"> █</font></strong></a>
-
-{
- List&lt;byte&gt; bob = new List&lt;byte&gt; ();
- <a title="sp_angle_word"><strong><font color="red"> █</font></strong></a>
- QVector&lt;QPair&lt;Condition, QString&gt; &gt; mWhenThen;
- <a title="sp_permit_cpp11_shift"><strong><font color="red"> █</font></strong></a>
-
-template&lt;int i, int ... Indexes, typename IdxHolder, typename ... Elements&gt;
-<a title="sp_before_ellipsis"><strong><font color="red"> █ █</font></strong></a>
-struct index_holder_impl&lt;i, index_holder&lt;Indexes ...&gt;, IdxHolder, Elements ...&gt;
-<a title="sp_before_ellipsis"><strong><font color="red"> █ █</font></strong></a>
-{
- typedef typename index_holder_impl&lt;i + 1, index_holder&lt;Indexes ... i&gt;, Elements ...&gt;::type type;
- <a title="sp_before_ellipsis"><strong><font color="red"> █ █</font></strong></a>
-</pre>
-</td>
-</tr>
-</table>
-<table border="1", width="100%">Java Sources
-<tr>
-<td>
-<pre>
-
- for (Type var : expr)
- <a title="sp_after_for_colon"><strong><font color="red"> █</font></strong></a>
-
-</pre>
-</td>
-</tr>
-</table>
-</body>
-</html>
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/not_a_compiler.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/not_a_compiler.txt
deleted file mode 100644
index 01e0944c..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/not_a_compiler.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-uncrustify is not a compiler.
-
-Let have a look on:
-
-# if A
- int abc( int a, int b, int c)
- {
- // do something
-# else
- int abc( int a, int b)
- {
- // do something else
-# endif
- }
-
-It will produce an error, because uncrustify doesn't evaluate the value of A.
-uncrustify will read all the lines, a compiler only a part of it, depending on A.
-
-uncrustify encounter two opening graces but only one closing brace.
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/ben.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/ben.cfg
deleted file mode 100644
index 90309f8f..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/ben.cfg
+++ /dev/null
@@ -1,1205 +0,0 @@
-#
-# General options
-#
-
-# The type of line endings
-newlines = lf # auto/lf/crlf/cr
-
-# The original size of tabs in the input
-input_tab_size = 8 # number
-
-# The size of tabs in the output (only used if align_with_tabs=true)
-output_tab_size = 3 # number
-
-# The ASCII value of the string escape char, usually 92 (\) or 94 (^). (Pawn)
-string_escape_char = 92 # number
-
-# Alternate string escape char for Pawn. Only works right before the quote char.
-string_escape_char2 = 0 # number
-
-# Replace tab characters found in string literals with the escape sequence \t instead.
-string_replace_tab_chars = false # false/true
-
-# Allow interpreting '>=' and '>>=' as part of a template in 'void f(list<list<B>>=val);'.
-# If true (default), 'assert(x<0 && y>=3)' will be broken.
-# Improvements to template detection may make this option obsolete.
-tok_split_gte = false # false/true
-
-# Override the default ' *INDENT-OFF*' in comments for disabling processing of part of the file.
-disable_processing_cmt = "" # string
-
-# Override the default ' *INDENT-ON*' in comments for enabling processing of part of the file.
-enable_processing_cmt = "" # string
-
-# Enable parsing of digraphs. Default=false
-enable_digraphs = false # false/true
-
-# If the file contains bytes with values between 128 and 255, but is not UTF-8, then output as UTF-8
-utf8_byte = false # false/true
-
-# Force the output encoding to UTF-8
-utf8_force = false # false/true
-
-#
-# Indenting
-#
-
-# The number of columns to indent per level.
-# Usually 2, 3, 4, or 8.
-indent_columns = 3 # number
-
-# The continuation indent. If non-zero, this overrides the indent of '(' and '=' continuation indents.
-# For FreeBSD, this is set to 4. Negative value is absolute and not increased for each ( level
-indent_continue = 0 # number
-
-# How to use tabs when indenting code
-# 0=spaces only
-# 1=indent with tabs to brace level, align with spaces
-# 2=indent and align with tabs, using spaces when not on a tabstop
-indent_with_tabs = 0 # number
-
-# Comments that are not a brace level are indented with tabs on a tabstop.
-# Requires indent_with_tabs=2. If false, will use spaces.
-indent_cmt_with_tabs = false # false/true
-
-# Whether to indent strings broken by '\' so that they line up
-indent_align_string = true # false/true
-
-# The number of spaces to indent multi-line XML strings.
-# Requires indent_align_string=True
-indent_xml_string = 0 # number
-
-# Spaces to indent '{' from level
-indent_brace = 0 # number
-
-# Whether braces are indented to the body level
-indent_braces = false # false/true
-
-# Disabled indenting function braces if indent_braces is true
-indent_braces_no_func = false # false/true
-
-# Disabled indenting class braces if indent_braces is true
-indent_braces_no_class = false # false/true
-
-# Disabled indenting struct braces if indent_braces is true
-indent_braces_no_struct = false # false/true
-
-# Indent based on the size of the brace parent, i.e. 'if' => 3 spaces, 'for' => 4 spaces, etc.
-indent_brace_parent = false # false/true
-
-# Indent based on the paren open instead of the brace open in '({\n', default is to indent by brace.
-indent_paren_open_brace = false # false/true
-
-# Whether the 'namespace' body is indented
-indent_namespace = false # false/true
-
-# Only indent one namespace and no sub-namespaces.
-# Requires indent_namespace=true.
-indent_namespace_single_indent = false # false/true
-
-# The number of spaces to indent a namespace block
-indent_namespace_level = 0 # number
-
-# If the body of the namespace is longer than this number, it won't be indented.
-# Requires indent_namespace=true. Default=0 (no limit)
-indent_namespace_limit = 0 # number
-
-# Whether the 'extern "C"' body is indented
-indent_extern = false # false/true
-
-# Whether the 'class' body is indented
-indent_class = true # false/true
-
-# Whether to indent the stuff after a leading base class colon
-indent_class_colon = true # false/true
-
-# Indent based on a class colon instead of the stuff after the colon.
-# Requires indent_class_colon=true. Default=false
-indent_class_on_colon = false # false/true
-
-# Whether to indent the stuff after a leading class initializer colon
-indent_constr_colon = false # false/true
-
-# Virtual indent from the ':' for member initializers. Default is 2
-indent_ctor_init_leading = 2 # number
-
-# Additional indenting for constructor initializer list
-indent_ctor_init = 0 # number
-
-# False=treat 'else\nif' as 'else if' for indenting purposes
-# True=indent the 'if' one level
-indent_else_if = false # false/true
-
-# Amount to indent variable declarations after a open brace. neg=relative, pos=absolute
-indent_var_def_blk = 0 # number
-
-# Indent continued variable declarations instead of aligning.
-indent_var_def_cont = false # false/true
-
-# Indent continued shift expressions ('<<' and '>>') instead of aligning.
-# Turn align_left_shift off when enabling this.
-indent_shift = false # false/true
-
-# True: force indentation of function definition to start in column 1
-# False: use the default behavior
-indent_func_def_force_col1 = false # false/true
-
-# True: indent continued function call parameters one indent level
-# False: align parameters under the open paren
-indent_func_call_param = false # false/true
-
-# Same as indent_func_call_param, but for function defs
-indent_func_def_param = false # false/true
-
-# Same as indent_func_call_param, but for function protos
-indent_func_proto_param = false # false/true
-
-# Same as indent_func_call_param, but for class declarations
-indent_func_class_param = false # false/true
-
-# Same as indent_func_call_param, but for class variable constructors
-indent_func_ctor_var_param = false # false/true
-
-# Same as indent_func_call_param, but for templates
-indent_template_param = false # false/true
-
-# Double the indent for indent_func_xxx_param options
-indent_func_param_double = false # false/true
-
-# Indentation column for standalone 'const' function decl/proto qualifier
-indent_func_const = 0 # number
-
-# Indentation column for standalone 'throw' function decl/proto qualifier
-indent_func_throw = 0 # number
-
-# The number of spaces to indent a continued '->' or '.'
-# Usually set to 0, 1, or indent_columns.
-indent_member = 3 # number
-
-# Spaces to indent single line ('//') comments on lines before code
-indent_single_line_comments_before = 0 # number
-
-# If set, will indent trailing single line ('//') comments relative
-# to the code instead of trying to keep the same absolute column
-indent_relative_single_line_comments = false # false/true
-
-# Spaces to indent 'case' from 'switch'
-# Usually 0 or indent_columns.
-indent_switch_case = 0 # number
-
-# Spaces to shift the 'case' line, without affecting any other lines
-# Usually 0.
-indent_case_shift = 0 # number
-
-# Spaces to indent '{' from 'case'.
-# By default, the brace will appear under the 'c' in case.
-# Usually set to 0 or indent_columns.
-indent_case_brace = 3 # number
-
-# Whether to indent comments found in first column
-indent_col1_comment = false # false/true
-
-# How to indent goto labels
-# >0 : absolute column where 1 is the leftmost column
-# <=0 : subtract from brace indent
-indent_label = 1 # number
-
-# Same as indent_label, but for access specifiers that are followed by a colon
-indent_access_spec = 1 # number
-
-# Indent the code after an access specifier by one level.
-# If set, this option forces 'indent_access_spec=0'
-indent_access_spec_body = false # false/true
-
-# If an open paren is followed by a newline, indent the next line so that it lines up after the open paren (not recommended)
-indent_paren_nl = false # false/true
-
-# Controls the indent of a close paren after a newline.
-# 0: Indent to body level
-# 1: Align under the open paren
-# 2: Indent to the brace level
-indent_paren_close = 0 # number
-
-# Controls the indent of a comma when inside a paren.If TRUE, aligns under the open paren
-indent_comma_paren = false # false/true
-
-# Controls the indent of a BOOL operator when inside a paren.If TRUE, aligns under the open paren
-indent_bool_paren = false # false/true
-
-# If 'indent_bool_paren' is true, controls the indent of the first expression. If TRUE, aligns the first expression to the following ones
-indent_first_bool_expr = false # false/true
-
-# If an open square is followed by a newline, indent the next line so that it lines up after the open square (not recommended)
-indent_square_nl = false # false/true
-
-# Don't change the relative indent of ESQL/C 'EXEC SQL' bodies
-indent_preserve_sql = false # false/true
-
-# Align continued statements at the '='. Default=True
-# If FALSE or the '=' is followed by a newline, the next line is indent one tab.
-indent_align_assign = true # false/true
-
-# Indent OC blocks at brace level instead of usual rules.
-indent_oc_block = false # false/true
-
-# Indent OC blocks in a message relative to the parameter name.
-# 0=use indent_oc_block rules, 1+=spaces to indent
-indent_oc_block_msg = 0 # number
-
-# Minimum indent for subsequent parameters
-indent_oc_msg_colon = 0 # number
-
-# If true, prioritize aligning with initial colon (and stripping spaces from lines, if necessary).
-# Default is true.
-indent_oc_msg_prioritize_first_colon = true # false/true
-
-# If indent_oc_block_msg and this option are on, blocks will be indented the way that Xcode does by default (from keyword if the parameter is on its own line; otherwise, from the previous indentation level).
-indent_oc_block_msg_xcode_style = false # false/true
-
-# If indent_oc_block_msg and this option are on, blocks will be indented from where the brace is relative to a msg keyword.
-indent_oc_block_msg_from_keyword = false # false/true
-
-# If indent_oc_block_msg and this option are on, blocks will be indented from where the brace is relative to a msg colon.
-indent_oc_block_msg_from_colon = false # false/true
-
-# If indent_oc_block_msg and this option are on, blocks will be indented from where the block caret is.
-indent_oc_block_msg_from_caret = false # false/true
-
-# If indent_oc_block_msg and this option are on, blocks will be indented from where the brace is.
-indent_oc_block_msg_from_brace = false # false/true
-
-# When identing after virtual brace open and newline add further spaces to reach this min. indent.
-indent_min_vbrace_open = 0 # number
-
-# TRUE: When identing after virtual brace open and newline add further spaces after regular indent to reach next tabstop.
-indent_vbrace_open_on_tabstop = false # false/true
-
-#
-# Spacing options
-#
-
-# Add or remove space around arithmetic operator '+', '-', '/', '*', etc
-# also '>>>' '<<' '>>' '%' '|'
-sp_arith = force # ignore/add/remove/force
-
-# Add or remove space around assignment operator '=', '+=', etc
-sp_assign = force # ignore/add/remove/force
-
-# Add or remove space around preprocessor '##' concatenation operator. Default=Add
-sp_pp_concat = add # ignore/add/remove/force
-
-# Add or remove space after preprocessor '#' stringify operator. Also affects the '#@' charizing operator.
-sp_pp_stringify = add # ignore/add/remove/force
-
-# Add or remove space around boolean operators '&&' and '||'
-sp_bool = force # ignore/add/remove/force
-
-# Add or remove space around compare operator '<', '>', '==', etc
-sp_compare = force # ignore/add/remove/force
-
-# Add or remove space inside '(' and ')'
-sp_inside_paren = remove # ignore/add/remove/force
-
-# Add or remove space between nested parens: '((' vs ') )'
-sp_paren_paren = remove # ignore/add/remove/force
-
-# Whether to balance spaces inside nested parens
-sp_balance_nested_parens = false # false/true
-
-# Add or remove space before pointer star '*'
-sp_before_ptr_star = force # ignore/add/remove/force
-
-# Add or remove space between pointer stars '*'
-sp_between_ptr_star = remove # ignore/add/remove/force
-
-# Add or remove space after pointer star '*', if followed by a word.
-sp_after_ptr_star = remove # ignore/add/remove/force
-
-# Add or remove space before a reference sign '&'
-sp_before_byref = remove # ignore/add/remove/force
-
-# Add or remove space after reference sign '&', if followed by a word.
-sp_after_byref = force # ignore/add/remove/force
-
-# Add or remove space between type and word. Default=Force
-sp_after_type = force # ignore/add/remove/force
-
-# Add or remove space before '<>'
-sp_before_angle = remove # ignore/add/remove/force
-
-# Add or remove space inside '<' and '>'
-sp_inside_angle = remove # ignore/add/remove/force
-
-# Add or remove space after '<>'
-sp_after_angle = force # ignore/add/remove/force
-
-# Add or remove space between '>' and '>' in '>>' (template stuff C++/C# only). Default=Add
-sp_angle_shift = add # ignore/add/remove/force
-
-# Permit removal of the space between '>>' in 'foo<bar<int> >' (C++11 only). Default=False
-# sp_angle_shift cannot remove the space without this option.
-sp_permit_cpp11_shift = false # false/true
-
-# Add or remove space before '(' of 'if', 'for', 'switch', 'while', etc.
-sp_before_sparen = force # ignore/add/remove/force
-
-# Add or remove space inside if-condition '(' and ')'
-sp_inside_sparen = remove # ignore/add/remove/force
-
-# Add or remove space inside for-loop '(' and ')'
-sp_inside_for = remove # ignore/add/remove/force
-
-# Add or remove space after ')' of 'if', 'for', 'switch', and 'while', etc.
-sp_after_sparen = force # ignore/add/remove/force
-
-# Add or remove space between ')' and '{' of 'if', 'for', 'switch', and 'while', etc.
-sp_sparen_brace = add # ignore/add/remove/force
-
-# Add or remove space before ';'. Default=Remove
-sp_before_semi = remove # ignore/add/remove/force
-
-# Add or remove space before a semicolon of an empty left part of a for statement.
-sp_before_semi_for_empty = force # ignore/add/remove/force
-
-# Add or remove space between the semicolons of an empty middle part of a for statement.
-sp_between_semi_for_empty = force # ignore/add/remove/force
-
-# Add or remove space after ';', except when followed by a comment. Default=Add
-sp_after_semi = add # ignore/add/remove/force
-
-# Add or remove space after ';' in non-empty 'for' statements. Default=Force
-sp_after_semi_for = force # ignore/add/remove/force
-
-# Add or remove space inside a non-empty '[' and ']'
-sp_inside_square = remove # ignore/add/remove/force
-
-# Add or remove space after ','
-sp_after_comma = force # ignore/add/remove/force
-
-# Add or remove space before ','
-sp_before_comma = remove # ignore/add/remove/force
-
-# Add or remove space between an open paren and comma: '(,' vs '( ,'
-sp_paren_comma = force # ignore/add/remove/force
-
-# Add or remove space before case ':'. Default=Remove
-sp_before_case_colon = remove # ignore/add/remove/force
-
-# Add or remove space after C/D cast, i.e. 'cast(int)a' vs 'cast(int) a' or '(int)a' vs '(int) a'
-sp_after_cast = remove # ignore/add/remove/force
-
-# Add or remove space between 'sizeof' and '('
-sp_sizeof_paren = remove # ignore/add/remove/force
-
-# Add or remove space inside enum '{' and '}'
-sp_inside_braces_enum = force # ignore/add/remove/force
-
-# Add or remove space inside struct/union '{' and '}'
-sp_inside_braces_struct = force # ignore/add/remove/force
-
-# Add or remove space inside '{' and '}'
-sp_inside_braces = force # ignore/add/remove/force
-
-# Add or remove space between return type and function name
-# A minimum of 1 is forced except for pointer return types.
-sp_type_func = force # ignore/add/remove/force
-
-# Add or remove space between function name and '(' on function declaration
-sp_func_proto_paren = remove # ignore/add/remove/force
-
-# Add or remove space between function name and '(' on function definition
-sp_func_def_paren = remove # ignore/add/remove/force
-
-# Add or remove space inside function '(' and ')'
-sp_inside_fparen = remove # ignore/add/remove/force
-
-# Add or remove space between ')' and '{' of function
-sp_fparen_brace = add # ignore/add/remove/force
-
-# Add or remove space between function name and '(' on function calls
-sp_func_call_paren = remove # ignore/add/remove/force
-
-# Add or remove space between a constructor/destructor and the open paren
-sp_func_class_paren = remove # ignore/add/remove/force
-
-# Add or remove space between 'return' and '('
-sp_return_paren = remove # ignore/add/remove/force
-
-# Add or remove space between '}' and the name of a typedef on the same line
-sp_brace_typedef = force # ignore/add/remove/force
-
-# Add or remove space between type and open brace of an unnamed temporary
-# direct-list-initialization.
-sp_type_brace_init_lst = add # ignore/add/remove/force
-
-# Add or remove space between a variable and '{' for a namespace
-sp_word_brace_ns = add # ignore/add/remove/force
-
-# Add or remove space before the '::' operator
-sp_before_dc = remove # ignore/add/remove/force
-
-# Add or remove space after the '::' operator
-sp_after_dc = remove # ignore/add/remove/force
-
-# Add or remove space after the '!' (not) operator. Default=Remove
-sp_not = remove # ignore/add/remove/force
-
-# Add or remove space after the '~' (invert) operator. Default=Remove
-sp_inv = remove # ignore/add/remove/force
-
-# Add or remove space after the '&' (address-of) operator. Default=Remove
-# This does not affect the spacing after a '&' that is part of a type.
-sp_addr = remove # ignore/add/remove/force
-
-# Add or remove space around the '.' or '->' operators. Default=Remove
-sp_member = remove # ignore/add/remove/force
-
-# Add or remove space after the '*' (dereference) operator. Default=Remove
-# This does not affect the spacing after a '*' that is part of a type.
-sp_deref = remove # ignore/add/remove/force
-
-# Add or remove space after '+' or '-', as in 'x = -5' or 'y = +7'. Default=Remove
-sp_sign = remove # ignore/add/remove/force
-
-# Add or remove space before or after '++' and '--', as in '(--x)' or 'y++;'. Default=Remove
-sp_incdec = remove # ignore/add/remove/force
-
-# Add or remove space before a backslash-newline at the end of a line. Default=Add
-sp_before_nl_cont = add # ignore/add/remove/force
-
-# Fix the spacing between 'case' and the label. Only 'ignore' and 'force' make sense here.
-sp_case_label = remove # ignore/add/remove/force
-
-# TRUE: If space is added with sp_cmt_cpp_start, do it after doxygen sequences like '///', '///<', '//!' and '//!<'.
-sp_cmt_cpp_doxygen = false # false/true
-
-# TRUE: If space is added with sp_cmt_cpp_start, do it after Qt translator or meta-data comments like '//:', '//=', and '//~'.
-sp_cmt_cpp_qttr = false # false/true
-
-# Number of spaces before a trailing comment
-sp_num_before_tr_cmt = 0 # number
-
-#
-# Code alignment (not left column spaces/tabs)
-#
-
-# Whether to keep non-indenting tabs
-align_keep_tabs = false # false/true
-
-# Whether to use tabs for aligning
-align_with_tabs = false # false/true
-
-# Whether to bump out to the next tab when aligning
-align_on_tabstop = false # false/true
-
-# Whether to right-align numbers
-align_number_right = true # false/true
-
-# Whether to keep whitespace not required for alignment.
-align_keep_extra_space = false # false/true
-
-# Align variable definitions in prototypes and functions
-align_func_params = true # false/true
-
-# Align parameters in single-line functions that have the same name.
-# The function names must already be aligned with each other.
-align_same_func_call_params = false # false/true
-
-# The span for aligning parameters in single line functions with the same name (0=don't align).
-align_same_func_call_params_span = 0 # unsigned number
-
-# The thresh for aligning function call parameters (0=no limit).
-align_same_func_call_params_thresh = 0 # unsigned number
-
-# The span for aligning variable definitions (0=don't align)
-align_var_def_span = 1 # number
-
-# How to align the star in variable definitions.
-# 0=Part of the type 'void * foo;'
-# 1=Part of the variable 'void *foo;'
-# 2=Dangling 'void *foo;'
-align_var_def_star_style = 1 # number
-
-# How to align the '&' in variable definitions.
-# 0=Part of the type
-# 1=Part of the variable
-# 2=Dangling
-align_var_def_amp_style = 0 # number
-
-# The threshold for aligning variable definitions (0=no limit)
-align_var_def_thresh = 16 # number
-
-# The gap for aligning variable definitions
-align_var_def_gap = 0 # number
-
-# Whether to align the colon in struct bit fields
-align_var_def_colon = true # false/true
-
-# Whether to align any attribute after the variable name
-align_var_def_attribute = false # false/true
-
-# Whether to align inline struct/enum/union variable definitions
-align_var_def_inline = true # false/true
-
-# The span for aligning on '=' in assignments (0=don't align)
-align_assign_span = 1 # number
-
-# The threshold for aligning on '=' in assignments (0=no limit)
-align_assign_thresh = 12 # number
-
-# The span for aligning on '=' in enums (0=don't align)
-align_enum_equ_span = 16 # number
-
-# The threshold for aligning on '=' in enums (0=no limit)
-align_enum_equ_thresh = 0 # number
-
-# The span for aligning struct/union (0=don't align)
-align_var_struct_span = 99 # number
-
-# The threshold for aligning struct/union member definitions (0=no limit)
-align_var_struct_thresh = 0 # number
-
-# The gap for aligning struct/union member definitions
-align_var_struct_gap = 0 # number
-
-# The span for aligning struct initializer values (0=don't align)
-align_struct_init_span = 3 # number
-
-# The minimum space between the type and the synonym of a typedef
-align_typedef_gap = 3 # number
-
-# The span for aligning single-line typedefs (0=don't align)
-align_typedef_span = 5 # number
-
-# How to align typedef'd functions with other typedefs
-# 0: Don't mix them at all
-# 1: align the open paren with the types
-# 2: align the function type name with the other type names
-align_typedef_func = 0 # number
-
-# Controls the positioning of the '*' in typedefs. Just try it.
-# 0: Align on typedef type, ignore '*'
-# 1: The '*' is part of type name: typedef int *pint;
-# 2: The '*' is part of the type, but dangling: typedef int *pint;
-align_typedef_star_style = 0 # number
-
-# Controls the positioning of the '&' in typedefs. Just try it.
-# 0: Align on typedef type, ignore '&'
-# 1: The '&' is part of type name: typedef int &pint;
-# 2: The '&' is part of the type, but dangling: typedef int &pint;
-align_typedef_amp_style = 0 # number
-
-# The span for aligning comments that end lines (0=don't align)
-align_right_cmt_span = 3 # number
-
-# If aligning comments, mix with comments after '}' and #endif with less than 3 spaces before the comment
-align_right_cmt_mix = false # false/true
-
-# If a trailing comment is more than this number of columns away from the text it follows,
-# it will qualify for being aligned. This has to be > 0 to do anything.
-align_right_cmt_gap = 0 # number
-
-# Align trailing comment at or beyond column N; 'pulls in' comments as a bonus side effect (0=ignore)
-align_right_cmt_at_col = 0 # number
-
-# The span for aligning function prototypes (0=don't align)
-align_func_proto_span = 0 # number
-
-# Minimum gap between the return type and the function name.
-align_func_proto_gap = 0 # number
-
-# Align function protos on the 'operator' keyword instead of what follows
-align_on_operator = false # false/true
-
-# Whether to mix aligning prototype and variable declarations.
-# If true, align_var_def_XXX options are used instead of align_func_proto_XXX options.
-align_mix_var_proto = false # false/true
-
-# Align single-line functions with function prototypes, uses align_func_proto_span
-align_single_line_func = false # false/true
-
-# Aligning the open brace of single-line functions.
-# Requires align_single_line_func=true, uses align_func_proto_span
-align_single_line_brace = false # false/true
-
-# Gap for align_single_line_brace.
-align_single_line_brace_gap = 0 # number
-
-# The span for aligning ObjC msg spec (0=don't align)
-align_oc_msg_spec_span = 0 # number
-
-# Whether to align macros wrapped with a backslash and a newline.
-# This will not work right if the macro contains a multi-line comment.
-align_nl_cont = true # false/true
-
-# # Align macro functions and variables together
-align_pp_define_together = false # false/true
-
-# The minimum space between label and value of a preprocessor define
-align_pp_define_gap = 4 # number
-
-# The span for aligning on '#define' bodies (0=don't align, other=number of lines including comments between blocks)
-align_pp_define_span = 3 # number
-
-# Align lines that start with '<<' with previous '<<'. Default=true
-align_left_shift = true # false/true
-
-# Align text after asm volatile () colons.
-align_asm_colon = true # false/true
-
-# Span for aligning parameters in an Obj-C message call on the ':' (0=don't align)
-align_oc_msg_colon_span = 0 # number
-
-# If true, always align with the first parameter, even if it is too short.
-align_oc_msg_colon_first = false # false/true
-
-# Aligning parameters in an Obj-C '+' or '-' declaration on the ':'
-align_oc_decl_colon = false # false/true
-
-#
-# Newline adding and removing options
-#
-
-# Whether to collapse empty blocks between '{' and '}'
-nl_collapse_empty_body = false # false/true
-
-# Don't split one-line braced assignments - 'foo_t f = { 1, 2 };'
-nl_assign_leave_one_liners = true # false/true
-
-# Don't split one-line braced statements inside a class xx { } body
-nl_class_leave_one_liners = true # false/true
-
-# Don't split one-line enums: 'enum foo { BAR = 15 };'
-nl_enum_leave_one_liners = false # false/true
-
-# Don't split one-line get or set functions
-nl_getset_leave_one_liners = false # false/true
-
-# Don't split one-line function definitions - 'int foo() { return 0; }'
-nl_func_leave_one_liners = false # false/true
-
-# Don't split one-line C++11 lambdas - '[]() { return 0; }'
-nl_cpp_lambda_leave_one_liners = false # false/true
-
-# Don't split one-line if/else statements - 'if(a) b++;'
-nl_if_leave_one_liners = false # false/true
-
-# Don't split one-line while statements - 'while(a) b++;'
-nl_while_leave_one_liners = false # false/true
-
-# Don't split one-line OC messages
-nl_oc_msg_leave_one_liner = false # false/true
-
-# Add or remove newlines at the start of the file
-nl_start_of_file = remove # ignore/add/remove/force
-
-# The number of newlines at the start of the file (only used if nl_start_of_file is 'add' or 'force'
-nl_start_of_file_min = 0 # number
-
-# Add or remove newline at the end of the file
-nl_end_of_file = force # ignore/add/remove/force
-
-# The number of newlines at the end of the file (only used if nl_end_of_file is 'add' or 'force')
-nl_end_of_file_min = 1 # number
-
-# Add or remove newline between '=' and '{'
-nl_assign_brace = add # ignore/add/remove/force
-
-# The number of blank lines after a block of variable definitions at the top of a function body
-# 0 = No change (default)
-nl_func_var_def_blk = 1 # number
-
-# The number of newlines before a block of typedefs
-# 0 = No change (default)
-nl_typedef_blk_start = 0 # number
-
-# The number of newlines after a block of typedefs
-# 0 = No change (default)
-nl_typedef_blk_end = 0 # number
-
-# The maximum consecutive newlines within a block of typedefs
-# 0 = No change (default)
-nl_typedef_blk_in = 0 # number
-
-# The number of newlines before a block of variable definitions not at the top of a function body
-# 0 = No change (default)
-nl_var_def_blk_start = 0 # number
-
-# The number of newlines after a block of variable definitions not at the top of a function body
-# 0 = No change (default)
-nl_var_def_blk_end = 0 # number
-
-# The maximum consecutive newlines within a block of variable definitions
-# 0 = No change (default)
-nl_var_def_blk_in = 0 # number
-
-# Add or remove newline between a function call's ')' and '{', as in:
-# list_for_each(item, &list) { }
-nl_fcall_brace = add # ignore/add/remove/force
-
-# Add or remove newline between 'enum' and '{'
-nl_enum_brace = force # ignore/add/remove/force
-
-# Add or remove newline between 'struct and '{'
-nl_struct_brace = force # ignore/add/remove/force
-
-# Add or remove newline between 'union' and '{'
-nl_union_brace = force # ignore/add/remove/force
-
-# Add or remove newline between 'if' and '{'
-nl_if_brace = add # ignore/add/remove/force
-
-# Add or remove newline between '}' and 'else'
-nl_brace_else = add # ignore/add/remove/force
-
-# Add or remove newline between 'else' and '{'
-nl_else_brace = add # ignore/add/remove/force
-
-# Add or remove newline between get/set and '{'
-nl_getset_brace = force # ignore/add/remove/force
-
-# Add or remove newline between 'for' and '{'
-nl_for_brace = add # ignore/add/remove/force
-
-# Add or remove newline between 'while' and '{'
-nl_while_brace = add # ignore/add/remove/force
-
-# Add or remove newline between 'do' and '{'
-nl_do_brace = add # ignore/add/remove/force
-
-# Add or remove newline between '}' and 'while' of 'do' statement
-nl_brace_while = remove # ignore/add/remove/force
-
-# Add or remove newline between 'switch' and '{'
-nl_switch_brace = add # ignore/add/remove/force
-
-# Add a newline between ')' and '{' if the ')' is on a different line than the if/for/etc.
-# Overrides nl_for_brace, nl_if_brace, nl_switch_brace, nl_while_switch, and nl_catch_brace.
-nl_multi_line_cond = false # false/true
-
-# Force a newline in a define after the macro name for multi-line defines.
-nl_multi_line_define = true # false/true
-
-# Whether to put a newline before 'case' statement
-nl_before_case = true # false/true
-
-# Whether to put a newline after 'case' statement
-nl_after_case = true # false/true
-
-# Add or remove newline between a function name and the opening '('
-nl_func_paren = remove # ignore/add/remove/force
-
-# Whether to put each OC message parameter on a separate line
-# See nl_oc_msg_leave_one_liner
-nl_oc_msg_args = false # false/true
-
-# Add or remove newline between function signature and '{'
-nl_fdef_brace = add # ignore/add/remove/force
-
-# Whether to put a newline after semicolons, except in 'for' statements
-nl_after_semicolon = true # false/true
-
-# Whether to put a newline after brace open.
-nl_after_brace_open = true # false/true
-
-# If nl_after_brace_open and nl_after_brace_open_cmt are true, a newline is
-# placed between the open brace and a trailing single-line comment.
-nl_after_brace_open_cmt = false # false/true
-
-# Whether to put a newline after a virtual brace open with a non-empty body.
-# These occur in un-braced if/while/do/for statement bodies.
-nl_after_vbrace_open = false # false/true
-
-# Whether to put a newline after a virtual brace open with an empty body.
-# These occur in un-braced if/while/do/for statement bodies.
-nl_after_vbrace_open_empty = false # false/true
-
-# Whether to put a newline after a brace close.
-# Does not apply if followed by a necessary ';'.
-nl_after_brace_close = true # false/true
-
-# Whether to put a newline after a virtual brace close.
-# Would add a newline before return in: 'if (foo) a++; return;'
-nl_after_vbrace_close = false # false/true
-
-# Whether to alter newlines in '#define' macros
-nl_define_macro = false # false/true
-
-# Whether to not put blanks after '#ifxx', '#elxx', or before '#endif'. Does not affect the whole-file #ifdef.
-nl_squeeze_ifdef = true # false/true
-
-# Whether to double-space commented-entries in struct/enum
-nl_ds_struct_enum_cmt = false # false/true
-
-# Whether to double-space before the close brace of a struct/union/enum
-# (lower priority than 'eat_blanks_before_close_brace')
-nl_ds_struct_enum_close_brace = false # false/true
-
-# Change simple unbraced if statements into a one-liner
-# 'if(b)\n i++;' => 'if(b) i++;'
-nl_create_if_one_liner = false # false/true
-
-# Change simple unbraced for statements into a one-liner
-# 'for (i=0;i<5;i++)\n foo(i);' => 'for (i=0;i<5;i++) foo(i);'
-nl_create_for_one_liner = false # false/true
-
-# Change simple unbraced while statements into a one-liner
-# 'while (i<5)\n foo(i++);' => 'while (i<5) foo(i++);'
-nl_create_while_one_liner = false # false/true
-
-#
-# Positioning options
-#
-
-# The position of boolean operators in wrapped expressions
-pos_bool = trail # ignore/join/lead/lead_break/lead_force/trail/trail_break/trail_force
-
-#
-# Line Splitting options
-#
-
-# Try to limit code width to N number of columns
-code_width = 0 # number
-
-# Whether to fully split long 'for' statements at semi-colons
-ls_for_split_full = false # false/true
-
-# Whether to fully split long function protos/calls at commas
-ls_func_split_full = false # false/true
-
-# Whether to split lines as close to code_width as possible and ignore some groupings
-ls_code_width = false # false/true
-
-#
-# Blank line options
-#
-
-# The maximum consecutive newlines
-nl_max = 4 # number
-
-# The number of newlines after a function prototype, if followed by another function prototype
-nl_after_func_proto = 0 # number
-
-# The number of newlines after a function prototype, if not followed by another function prototype
-nl_after_func_proto_group = 2 # number
-
-# The number of newlines after '}' of a multi-line function body
-nl_after_func_body = 3 # number
-
-# The number of newlines after '}' of a multi-line function body in a class declaration
-nl_after_func_body_class = 2 # number
-
-# The number of newlines after '}' of a single line function body
-nl_after_func_body_one_liner = 0 # number
-
-# The minimum number of newlines before a multi-line comment.
-# Doesn't apply if after a brace open or another multi-line comment.
-nl_before_block_comment = 2 # number
-
-# The minimum number of newlines before a single-line C comment.
-# Doesn't apply if after a brace open or other single-line C comments.
-nl_before_c_comment = 0 # number
-
-# The minimum number of newlines before a CPP comment.
-# Doesn't apply if after a brace open or other CPP comments.
-nl_before_cpp_comment = 0 # number
-
-# Whether to force a newline after a multi-line comment.
-nl_after_multiline_comment = false # false/true
-
-# Whether to force a newline after a label's colon.
-nl_after_label_colon = false # false/true
-
-# The number of newlines after '}' or ';' of a struct/enum/union definition
-nl_after_struct = 0 # number
-
-# The number of newlines after '}' or ';' of a class definition
-nl_after_class = 0 # number
-
-# The number of newlines after '}' of a namespace
-nl_after_namespace = 0 # number
-
-# The number of newlines before a 'private:', 'public:', 'protected:', 'signals:', or 'slots:' label.
-# Will not change the newline count if after a brace open.
-# 0 = No change.
-nl_before_access_spec = 0 # number
-
-# The number of newlines after a 'private:', 'public:', 'protected:', 'signals:', or 'slots:' label.
-# 0 = No change.
-nl_after_access_spec = 0 # number
-
-# The number of newlines between a function def and the function comment.
-# 0 = No change.
-nl_comment_func_def = 1 # number
-
-# The number of newlines after a try-catch-finally block that isn't followed by a brace close.
-# 0 = No change.
-nl_after_try_catch_finally = 0 # number
-
-# The number of newlines before and after a property, indexer or event decl.
-# 0 = No change.
-nl_around_cs_property = 0 # number
-
-# The number of newlines between the get/set/add/remove handlers in C#.
-# 0 = No change.
-nl_between_get_set = 0 # number
-
-# Whether to remove blank lines after '{'
-eat_blanks_after_open_brace = true # false/true
-
-# Whether to remove blank lines before '}'
-eat_blanks_before_close_brace = true # false/true
-
-# How aggressively to remove extra newlines not in preproc.
-# 0: No change
-# 1: Remove most newlines not handled by other config
-# 2: Remove all newlines and reformat completely by config
-nl_remove_extra_newlines = 0 # number
-
-# Whether to put a blank line before 'return' statements, unless after an open brace.
-nl_before_return = false # false/true
-
-# Whether to put a blank line after 'return' statements, unless followed by a close brace.
-nl_after_return = true # false/true
-
-#
-# Code modifying options (non-whitespace)
-#
-
-# Add or remove braces on single-line 'do' statement
-mod_full_brace_do = add # ignore/add/remove/force
-
-# Add or remove braces on single-line 'for' statement
-mod_full_brace_for = add # ignore/add/remove/force
-
-# Add or remove braces on single-line 'if' statement. Will not remove the braces if they contain an 'else'.
-mod_full_brace_if = add # ignore/add/remove/force
-
-# Make all if/elseif/else statements in a chain be braced or not. Overrides mod_full_brace_if.
-# If any must be braced, they are all braced. If all can be unbraced, then the braces are removed.
-mod_full_brace_if_chain = false # false/true
-
-# Don't remove braces around statements that span N newlines
-mod_full_brace_nl = 0 # number
-
-# Add or remove braces on single-line 'while' statement
-mod_full_brace_while = add # ignore/add/remove/force
-
-# Whether to change optional semicolons to real semicolons
-mod_pawn_semicolon = false # false/true
-
-# Add parens on 'while' and 'if' statement around bools
-mod_full_paren_if_bool = true # false/true
-
-# Whether to remove superfluous semicolons
-mod_remove_extra_semicolon = true # false/true
-
-# If a function body exceeds the specified number of newlines and doesn't have a comment after
-# the close brace, a comment will be added.
-mod_add_long_function_closebrace_comment = 0 # number
-
-# If a namespace body exceeds the specified number of newlines and doesn't have a comment after
-# the close brace, a comment will be added.
-mod_add_long_namespace_closebrace_comment = 0 # number
-
-# If a switch body exceeds the specified number of newlines and doesn't have a comment after
-# the close brace, a comment will be added.
-mod_add_long_switch_closebrace_comment = 0 # number
-
-# If an #ifdef body exceeds the specified number of newlines and doesn't have a comment after
-# the #endif, a comment will be added.
-mod_add_long_ifdef_endif_comment = 0 # number
-
-# If an #ifdef or #else body exceeds the specified number of newlines and doesn't have a comment after
-# the #else, a comment will be added.
-mod_add_long_ifdef_else_comment = 0 # number
-
-# If TRUE, will sort consecutive single-line 'import' statements [Java, D]
-mod_sort_import = false # false/true
-
-# If TRUE, will sort consecutive single-line 'using' statements [C#]
-mod_sort_using = false # false/true
-
-# If TRUE, will sort consecutive single-line '#include' statements [C/C++] and '#import' statements [Obj-C]
-# This is generally a bad idea, as it may break your code.
-mod_sort_include = false # false/true
-
-# If TRUE, it will move a 'break' that appears after a fully braced 'case' before the close brace.
-mod_move_case_break = false # false/true
-
-# Will add or remove the braces around a fully braced case statement.
-# Will only remove the braces if there are no variable declarations in the block.
-mod_case_brace = remove # ignore/add/remove/force
-
-# If TRUE, it will remove a void 'return;' that appears as the last statement in a function.
-mod_remove_empty_return = true # false/true
-
-#
-# Comment modifications
-#
-
-# Try to wrap comments at cmt_width columns
-cmt_width = 0 # number
-
-# Set the comment reflow mode (default: 0)
-# 0: no reflowing (apart from the line wrapping due to cmt_width)
-# 1: no touching at all
-# 2: full reflow
-cmt_reflow_mode = 0 # number
-
-# Whether to convert all tabs to spaces in comments. Default is to leave tabs inside comments alone, unless used for indenting.
-cmt_convert_tab_to_spaces = false # false/true
-
-# If false, disable all multi-line comment changes, including cmt_width. keyword substitution, and leading chars.
-# Default is true.
-cmt_indent_multi = true # false/true
-
-# Whether to group c-comments that look like they are in a block
-cmt_c_group = false # false/true
-
-# Whether to put an empty '/*' on the first line of the combined c-comment
-cmt_c_nl_start = false # false/true
-
-# Whether to put a newline before the closing '*/' of the combined c-comment
-cmt_c_nl_end = false # false/true
-
-# Whether to group cpp-comments that look like they are in a block
-cmt_cpp_group = false # false/true
-
-# Whether to put an empty '/*' on the first line of the combined cpp-comment
-cmt_cpp_nl_start = false # false/true
-
-# Whether to put a newline before the closing '*/' of the combined cpp-comment
-cmt_cpp_nl_end = false # false/true
-
-# Whether to change cpp-comments into c-comments
-cmt_cpp_to_c = false # false/true
-
-# Whether to put a star on subsequent comment lines
-cmt_star_cont = true # false/true
-
-# The number of spaces to insert at the start of subsequent comment lines
-cmt_sp_before_star_cont = 0 # number
-
-# The number of spaces to insert after the star on subsequent comment lines
-cmt_sp_after_star_cont = 0 # number
-
-# For multi-line comments with a '*' lead, remove leading spaces if the first and last lines of
-# the comment are the same length. Default=True
-cmt_multi_check_last = true # false/true
-
-# The filename that contains text to insert at the head of a file if the file doesn't start with a C/C++ comment.
-# Will substitute $(filename) with the current file's name.
-cmt_insert_file_header = "" # string
-
-# The filename that contains text to insert at the end of a file if the file doesn't end with a C/C++ comment.
-# Will substitute $(filename) with the current file's name.
-cmt_insert_file_footer = "" # string
-
-# The filename that contains text to insert before a function implementation if the function isn't preceded with a C/C++ comment.
-# Will substitute $(function) with the function name and $(javaparam) with the javadoc @param and @return stuff.
-# Will also substitute $(fclass) with the class name: void CFoo::Bar() { ... }
-cmt_insert_func_header = "" # string
-
-# The filename that contains text to insert before a class if the class isn't preceded with a C/C++ comment.
-# Will substitute $(class) with the class name.
-cmt_insert_class_header = "" # string
-
-# The filename that contains text to insert before a Obj-C message specification if the method isn't preceded with a C/C++ comment.
-# Will substitute $(message) with the function name and $(javaparam) with the javadoc @param and @return stuff.
-cmt_insert_oc_msg_header = "" # string
-
-# If a preprocessor is encountered when stepping backwards from a function name, then
-# this option decides whether the comment should be inserted.
-# Affects cmt_insert_oc_msg_header, cmt_insert_func_header and cmt_insert_class_header.
-cmt_insert_before_preproc = false # false/true
-
-#
-# Preprocessor options
-#
-
-# Control indent of preprocessors inside #if blocks at brace level 0 (file-level)
-pp_indent = remove # ignore/add/remove/force
-
-# Whether to indent #if/#else/#endif at the brace level (true) or from column 1 (false)
-pp_indent_at_level = false # false/true
-
-# Specifies the number of columns to indent preprocessors per level at brace level 0 (file-level).
-# If pp_indent_at_level=false, specifies the number of columns to indent preprocessors per level at brace level > 0 (function-level).
-# Default=1.
-pp_indent_count = 1 # number
-
-# Sets the number of spaces added with pp_space
-pp_space_count = 0 # number
-
-# The indent for #region and #endregion in C# and '#pragma region' in C/C++
-pp_indent_region = 0 # number
-
-# Whether to indent the code between #region and #endregion
-pp_region_indent_code = false # false/true
-
-# If pp_indent_at_level=true, sets the indent for #if, #else, and #endif when not at file-level.
-# 0: indent preprocessors using output_tab_size.
-# >0: column at which all preprocessors will be indented.
-pp_indent_if = 0 # number
-
-# Control whether to indent the code between #if, #else and #endif.
-pp_if_indent_code = false # false/true
-
-# Whether to indent '#define' at the brace level (true) or from column 1 (false)
-pp_define_at_level = false # false/true
-
-#
-# Use or Do not Use options
-#
-
-# True: indent_func_call_param will be used
-# False: indent_func_call_param will NOT be used
-use_indent_func_call_param = true # false/true
-
-# True: indent_continue will be used only once
-# False: indent_continue will be used every time (default)
-use_indent_continue_only_once = false # false/true
-
-# You can force a token to be a type with the 'type' option.
-# Example:
-# type myfoo1 myfoo2
-#
-# You can create custom macro-based indentation using macro-open,
-# macro-else and macro-close.
-# Example:
-# macro-open BEGIN_TEMPLATE_MESSAGE_MAP
-# macro-open BEGIN_MESSAGE_MAP
-# macro-close END_MESSAGE_MAP
-#
-# You can assign any keyword to any type with the set option.
-# set func_call_user _ N_
-#
-# The full syntax description of all custom definition config entries
-# is shown below:
-#
-# define custom tokens as:
-# - embed whitespace in token using '' escape character, or
-# put token in quotes
-# - these: ' " and ` are recognized as quote delimiters
-#
-# type token1 token2 token3 ...
-# ^ optionally specify multiple tokens on a single line
-# define def_token output_token
-# ^ output_token is optional, then NULL is assumed
-# macro-open token
-# macro-close token
-# macro-else token
-# set id token1 token2 ...
-# ^ optionally specify multiple tokens on a single line
-# ^ id is one of the names in token_enum.h sans the CT_ prefix,
-# e.g. PP_PRAGMA
-#
-# all tokens are separated by any mix of ',' commas, '=' equal signs
-# and whitespace (space, tab)
-#
-# You can add support for other file extensions using the 'file_ext' command.
-# The first arg is the language name used with the '-l' option.
-# The remaining args are file extensions, matched with 'endswith'.
-# file_ext CPP .ch .cxx .cpp.in
-#
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/defaults.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/defaults.cfg
deleted file mode 100644
index 8e907784..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/defaults.cfg
+++ /dev/null
@@ -1,3371 +0,0 @@
-# Uncrustify-0.74.0
-
-#
-# General options
-#
-
-# The type of line endings.
-#
-# Default: auto
-newlines = auto # lf/crlf/cr/auto
-
-# The original size of tabs in the input.
-#
-# Default: 8
-input_tab_size = 8 # unsigned number
-
-# The size of tabs in the output (only used if align_with_tabs=true).
-#
-# Default: 8
-output_tab_size = 8 # unsigned number
-
-# The ASCII value of the string escape char, usually 92 (\) or (Pawn) 94 (^).
-#
-# Default: 92
-string_escape_char = 92 # unsigned number
-
-# Alternate string escape char (usually only used for Pawn).
-# Only works right before the quote char.
-string_escape_char2 = 0 # unsigned number
-
-# Replace tab characters found in string literals with the escape sequence \t
-# instead.
-string_replace_tab_chars = false # true/false
-
-# Allow interpreting '>=' and '>>=' as part of a template in code like
-# 'void f(list<list<B>>=val);'. If true, 'assert(x<0 && y>=3)' will be broken.
-# Improvements to template detection may make this option obsolete.
-tok_split_gte = false # true/false
-
-# Disable formatting of NL_CONT ('\\n') ended lines (e.g. multi-line macros).
-disable_processing_nl_cont = false # true/false
-
-# Specify the marker used in comments to disable processing of part of the
-# file.
-#
-# Default: *INDENT-OFF*
-disable_processing_cmt = " *INDENT-OFF*" # string
-
-# Specify the marker used in comments to (re)enable processing in a file.
-#
-# Default: *INDENT-ON*
-enable_processing_cmt = " *INDENT-ON*" # string
-
-# Enable parsing of digraphs.
-enable_digraphs = false # true/false
-
-# Option to allow both disable_processing_cmt and enable_processing_cmt
-# strings, if specified, to be interpreted as ECMAScript regular expressions.
-# If true, a regex search will be performed within comments according to the
-# specified patterns in order to disable/enable processing.
-processing_cmt_as_regex = false # true/false
-
-# Add or remove the UTF-8 BOM (recommend 'remove').
-utf8_bom = ignore # ignore/add/remove/force/not_defined
-
-# If the file contains bytes with values between 128 and 255, but is not
-# UTF-8, then output as UTF-8.
-utf8_byte = false # true/false
-
-# Force the output encoding to UTF-8.
-utf8_force = false # true/false
-
-#
-# Spacing options
-#
-
-# Add or remove space around non-assignment symbolic operators ('+', '/', '%',
-# '<<', and so forth).
-sp_arith = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space around arithmetic operators '+' and '-'.
-#
-# Overrides sp_arith.
-sp_arith_additive = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space around assignment operator '=', '+=', etc.
-sp_assign = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space around '=' in C++11 lambda capture specifications.
-#
-# Overrides sp_assign.
-sp_cpp_lambda_assign = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after the capture specification of a C++11 lambda when
-# an argument list is present, as in '[] <here> (int x){ ... }'.
-sp_cpp_lambda_square_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after the capture specification of a C++11 lambda with
-# no argument list is present, as in '[] <here> { ... }'.
-sp_cpp_lambda_square_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after the opening parenthesis and before the closing
-# parenthesis of a argument list of a C++11 lambda, as in
-# '[]( <here> int x <here> ){ ... }'.
-sp_cpp_lambda_argument_list = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after the argument list of a C++11 lambda, as in
-# '[](int x) <here> { ... }'.
-sp_cpp_lambda_paren_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between a lambda body and its call operator of an
-# immediately invoked lambda, as in '[]( ... ){ ... } <here> ( ... )'.
-sp_cpp_lambda_fparen = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space around assignment operator '=' in a prototype.
-#
-# If set to ignore, use sp_assign.
-sp_assign_default = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before assignment operator '=', '+=', etc.
-#
-# Overrides sp_assign.
-sp_before_assign = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after assignment operator '=', '+=', etc.
-#
-# Overrides sp_assign.
-sp_after_assign = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space in 'NS_ENUM ('.
-sp_enum_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space around assignment '=' in enum.
-sp_enum_assign = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before assignment '=' in enum.
-#
-# Overrides sp_enum_assign.
-sp_enum_before_assign = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after assignment '=' in enum.
-#
-# Overrides sp_enum_assign.
-sp_enum_after_assign = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space around assignment ':' in enum.
-sp_enum_colon = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space around preprocessor '##' concatenation operator.
-#
-# Default: add
-sp_pp_concat = add # ignore/add/remove/force/not_defined
-
-# Add or remove space after preprocessor '#' stringify operator.
-# Also affects the '#@' charizing operator.
-sp_pp_stringify = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before preprocessor '#' stringify operator
-# as in '#define x(y) L#y'.
-sp_before_pp_stringify = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space around boolean operators '&&' and '||'.
-sp_bool = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space around compare operator '<', '>', '==', etc.
-sp_compare = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space inside '(' and ')'.
-sp_inside_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between nested parentheses, i.e. '((' vs. ') )'.
-sp_paren_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between back-to-back parentheses, i.e. ')(' vs. ') ('.
-sp_cparen_oparen = ignore # ignore/add/remove/force/not_defined
-
-# Whether to balance spaces inside nested parentheses.
-sp_balance_nested_parens = false # true/false
-
-# Add or remove space between ')' and '{'.
-sp_paren_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between nested braces, i.e. '{{' vs. '{ {'.
-sp_brace_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before pointer star '*'.
-sp_before_ptr_star = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before pointer star '*' that isn't followed by a
-# variable name. If set to ignore, sp_before_ptr_star is used instead.
-sp_before_unnamed_ptr_star = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between pointer stars '*', as in 'int ***a;'.
-sp_between_ptr_star = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after pointer star '*', if followed by a word.
-#
-# Overrides sp_type_func.
-sp_after_ptr_star = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after pointer caret '^', if followed by a word.
-sp_after_ptr_block_caret = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after pointer star '*', if followed by a qualifier.
-sp_after_ptr_star_qualifier = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after a pointer star '*', if followed by a function
-# prototype or function definition.
-#
-# Overrides sp_after_ptr_star and sp_type_func.
-sp_after_ptr_star_func = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after a pointer star '*' in the trailing return of a
-# function prototype or function definition.
-sp_after_ptr_star_trailing = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between the pointer star '*' and the name of the variable
-# in a function pointer definition.
-sp_ptr_star_func_var = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after a pointer star '*', if followed by an open
-# parenthesis, as in 'void* (*)()'.
-sp_ptr_star_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before a pointer star '*', if followed by a function
-# prototype or function definition.
-sp_before_ptr_star_func = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before a pointer star '*' in the trailing return of a
-# function prototype or function definition.
-sp_before_ptr_star_trailing = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before a reference sign '&'.
-sp_before_byref = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before a reference sign '&' that isn't followed by a
-# variable name. If set to ignore, sp_before_byref is used instead.
-sp_before_unnamed_byref = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after reference sign '&', if followed by a word.
-#
-# Overrides sp_type_func.
-sp_after_byref = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after a reference sign '&', if followed by a function
-# prototype or function definition.
-#
-# Overrides sp_after_byref and sp_type_func.
-sp_after_byref_func = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before a reference sign '&', if followed by a function
-# prototype or function definition.
-sp_before_byref_func = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between type and word. In cases where total removal of
-# whitespace would be a syntax error, a value of 'remove' is treated the same
-# as 'force'.
-#
-# This also affects some other instances of space following a type that are
-# not covered by other options; for example, between the return type and
-# parenthesis of a function type template argument, between the type and
-# parenthesis of an array parameter, or between 'decltype(...)' and the
-# following word.
-#
-# Default: force
-sp_after_type = force # ignore/add/remove/force/not_defined
-
-# Add or remove space between 'decltype(...)' and word,
-# brace or function call.
-sp_after_decltype = ignore # ignore/add/remove/force/not_defined
-
-# (D) Add or remove space before the parenthesis in the D constructs
-# 'template Foo(' and 'class Foo('.
-sp_before_template_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between 'template' and '<'.
-# If set to ignore, sp_before_angle is used.
-sp_template_angle = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before '<'.
-sp_before_angle = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space inside '<' and '>'.
-sp_inside_angle = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space inside '<>'.
-sp_inside_angle_empty = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between '>' and ':'.
-sp_angle_colon = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after '>'.
-sp_after_angle = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between '>' and '(' as found in 'new List<byte>(foo);'.
-sp_angle_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between '>' and '()' as found in 'new List<byte>();'.
-sp_angle_paren_empty = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between '>' and a word as in 'List<byte> m;' or
-# 'template <typename T> static ...'.
-sp_angle_word = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between '>' and '>' in '>>' (template stuff).
-#
-# Default: add
-sp_angle_shift = add # ignore/add/remove/force/not_defined
-
-# (C++11) Permit removal of the space between '>>' in 'foo<bar<int> >'. Note
-# that sp_angle_shift cannot remove the space without this option.
-sp_permit_cpp11_shift = false # true/false
-
-# Add or remove space before '(' of control statements ('if', 'for', 'switch',
-# 'while', etc.).
-sp_before_sparen = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space inside '(' and ')' of control statements other than
-# 'for'.
-sp_inside_sparen = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after '(' of control statements other than 'for'.
-#
-# Overrides sp_inside_sparen.
-sp_inside_sparen_open = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before ')' of control statements other than 'for'.
-#
-# Overrides sp_inside_sparen.
-sp_inside_sparen_close = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space inside '(' and ')' of 'for' statements.
-sp_inside_for = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after '(' of 'for' statements.
-#
-# Overrides sp_inside_for.
-sp_inside_for_open = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before ')' of 'for' statements.
-#
-# Overrides sp_inside_for.
-sp_inside_for_close = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between '((' or '))' of control statements.
-sp_sparen_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after ')' of control statements.
-sp_after_sparen = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between ')' and '{' of control statements.
-sp_sparen_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between 'do' and '{'.
-sp_do_brace_open = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between '}' and 'while'.
-sp_brace_close_while = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between 'while' and '('. Overrides sp_before_sparen.
-sp_while_paren_open = ignore # ignore/add/remove/force/not_defined
-
-# (D) Add or remove space between 'invariant' and '('.
-sp_invariant_paren = ignore # ignore/add/remove/force/not_defined
-
-# (D) Add or remove space after the ')' in 'invariant (C) c'.
-sp_after_invariant_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before empty statement ';' on 'if', 'for' and 'while'.
-sp_special_semi = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before ';'.
-#
-# Default: remove
-sp_before_semi = remove # ignore/add/remove/force/not_defined
-
-# Add or remove space before ';' in non-empty 'for' statements.
-sp_before_semi_for = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before a semicolon of an empty left part of a for
-# statement, as in 'for ( <here> ; ; )'.
-sp_before_semi_for_empty = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between the semicolons of an empty middle part of a for
-# statement, as in 'for ( ; <here> ; )'.
-sp_between_semi_for_empty = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after ';', except when followed by a comment.
-#
-# Default: add
-sp_after_semi = add # ignore/add/remove/force/not_defined
-
-# Add or remove space after ';' in non-empty 'for' statements.
-#
-# Default: force
-sp_after_semi_for = force # ignore/add/remove/force/not_defined
-
-# Add or remove space after the final semicolon of an empty part of a for
-# statement, as in 'for ( ; ; <here> )'.
-sp_after_semi_for_empty = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before '[' (except '[]').
-sp_before_square = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before '[' for a variable definition.
-#
-# Default: remove
-sp_before_vardef_square = remove # ignore/add/remove/force/not_defined
-
-# Add or remove space before '[' for asm block.
-sp_before_square_asm_block = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before '[]'.
-sp_before_squares = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before C++17 structured bindings.
-sp_cpp_before_struct_binding = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space inside a non-empty '[' and ']'.
-sp_inside_square = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space inside '[]'.
-sp_inside_square_empty = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space inside a non-empty Objective-C boxed array '@[' and
-# ']'. If set to ignore, sp_inside_square is used.
-sp_inside_square_oc_array = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after ',', i.e. 'a,b' vs. 'a, b'.
-sp_after_comma = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before ',', i.e. 'a,b' vs. 'a ,b'.
-#
-# Default: remove
-sp_before_comma = remove # ignore/add/remove/force/not_defined
-
-# (C#) Add or remove space between ',' and ']' in multidimensional array type
-# like 'int[,,]'.
-sp_after_mdatype_commas = ignore # ignore/add/remove/force/not_defined
-
-# (C#) Add or remove space between '[' and ',' in multidimensional array type
-# like 'int[,,]'.
-sp_before_mdatype_commas = ignore # ignore/add/remove/force/not_defined
-
-# (C#) Add or remove space between ',' in multidimensional array type
-# like 'int[,,]'.
-sp_between_mdatype_commas = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between an open parenthesis and comma,
-# i.e. '(,' vs. '( ,'.
-#
-# Default: force
-sp_paren_comma = force # ignore/add/remove/force/not_defined
-
-# Add or remove space after the variadic '...' when preceded by a
-# non-punctuator.
-# The value REMOVE will be overriden with FORCE
-sp_after_ellipsis = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before the variadic '...' when preceded by a
-# non-punctuator.
-# The value REMOVE will be overriden with FORCE
-sp_before_ellipsis = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between a type and '...'.
-sp_type_ellipsis = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between a '*' and '...'.
-sp_ptr_type_ellipsis = ignore # ignore/add/remove/force/not_defined
-
-# (D) Add or remove space between a type and '?'.
-sp_type_question = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between ')' and '...'.
-sp_paren_ellipsis = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between '&&' and '...'.
-sp_byref_ellipsis = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between ')' and a qualifier such as 'const'.
-sp_paren_qualifier = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between ')' and 'noexcept'.
-sp_paren_noexcept = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after class ':'.
-sp_after_class_colon = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before class ':'.
-sp_before_class_colon = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after class constructor ':'.
-#
-# Default: add
-sp_after_constr_colon = add # ignore/add/remove/force/not_defined
-
-# Add or remove space before class constructor ':'.
-#
-# Default: add
-sp_before_constr_colon = add # ignore/add/remove/force/not_defined
-
-# Add or remove space before case ':'.
-#
-# Default: remove
-sp_before_case_colon = remove # ignore/add/remove/force/not_defined
-
-# Add or remove space between 'operator' and operator sign.
-sp_after_operator = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between the operator symbol and the open parenthesis, as
-# in 'operator ++('.
-sp_after_operator_sym = ignore # ignore/add/remove/force/not_defined
-
-# Overrides sp_after_operator_sym when the operator has no arguments, as in
-# 'operator *()'.
-sp_after_operator_sym_empty = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after C/D cast, i.e. 'cast(int)a' vs. 'cast(int) a' or
-# '(int)a' vs. '(int) a'.
-sp_after_cast = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove spaces inside cast parentheses.
-sp_inside_paren_cast = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between the type and open parenthesis in a C++ cast,
-# i.e. 'int(exp)' vs. 'int (exp)'.
-sp_cpp_cast_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between 'sizeof' and '('.
-sp_sizeof_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between 'sizeof' and '...'.
-sp_sizeof_ellipsis = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between 'sizeof...' and '('.
-sp_sizeof_ellipsis_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between '...' and a parameter pack.
-sp_ellipsis_parameter_pack = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between a parameter pack and '...'.
-sp_parameter_pack_ellipsis = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between 'decltype' and '('.
-sp_decltype_paren = ignore # ignore/add/remove/force/not_defined
-
-# (Pawn) Add or remove space after the tag keyword.
-sp_after_tag = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space inside enum '{' and '}'.
-sp_inside_braces_enum = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space inside struct/union '{' and '}'.
-sp_inside_braces_struct = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space inside Objective-C boxed dictionary '{' and '}'
-sp_inside_braces_oc_dict = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after open brace in an unnamed temporary
-# direct-list-initialization
-# if statement is a brace_init_lst
-# works only if sp_brace_brace is set to ignore.
-sp_after_type_brace_init_lst_open = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before close brace in an unnamed temporary
-# direct-list-initialization
-# if statement is a brace_init_lst
-# works only if sp_brace_brace is set to ignore.
-sp_before_type_brace_init_lst_close = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space inside an unnamed temporary direct-list-initialization
-# if statement is a brace_init_lst
-# works only if sp_brace_brace is set to ignore
-# works only if sp_before_type_brace_init_lst_close is set to ignore.
-sp_inside_type_brace_init_lst = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space inside '{' and '}'.
-sp_inside_braces = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space inside '{}'.
-sp_inside_braces_empty = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space around trailing return operator '->'.
-sp_trailing_return = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between return type and function name. A minimum of 1
-# is forced except for pointer return types.
-sp_type_func = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between type and open brace of an unnamed temporary
-# direct-list-initialization.
-sp_type_brace_init_lst = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between function name and '(' on function declaration.
-sp_func_proto_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between function name and '()' on function declaration
-# without parameters.
-sp_func_proto_paren_empty = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between function name and '(' with a typedef specifier.
-sp_func_type_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between alias name and '(' of a non-pointer function type typedef.
-sp_func_def_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between function name and '()' on function definition
-# without parameters.
-sp_func_def_paren_empty = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space inside empty function '()'.
-# Overrides sp_after_angle unless use_sp_after_angle_always is set to true.
-sp_inside_fparens = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space inside function '(' and ')'.
-sp_inside_fparen = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space inside the first parentheses in a function type, as in
-# 'void (*x)(...)'.
-sp_inside_tparen = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between the ')' and '(' in a function type, as in
-# 'void (*x)(...)'.
-sp_after_tparen_close = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between ']' and '(' when part of a function call.
-sp_square_fparen = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between ')' and '{' of function.
-sp_fparen_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between ')' and '{' of a function call in object
-# initialization.
-#
-# Overrides sp_fparen_brace.
-sp_fparen_brace_initializer = ignore # ignore/add/remove/force/not_defined
-
-# (Java) Add or remove space between ')' and '{{' of double brace initializer.
-sp_fparen_dbrace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between function name and '(' on function calls.
-sp_func_call_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between function name and '()' on function calls without
-# parameters. If set to ignore (the default), sp_func_call_paren is used.
-sp_func_call_paren_empty = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between the user function name and '(' on function
-# calls. You need to set a keyword to be a user function in the config file,
-# like:
-# set func_call_user tr _ i18n
-sp_func_call_user_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space inside user function '(' and ')'.
-sp_func_call_user_inside_fparen = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between nested parentheses with user functions,
-# i.e. '((' vs. '( ('.
-sp_func_call_user_paren_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between a constructor/destructor and the open
-# parenthesis.
-sp_func_class_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between a constructor without parameters or destructor
-# and '()'.
-sp_func_class_paren_empty = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after 'return'.
-#
-# Default: force
-sp_return = force # ignore/add/remove/force/not_defined
-
-# Add or remove space between 'return' and '('.
-sp_return_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between 'return' and '{'.
-sp_return_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between '__attribute__' and '('.
-sp_attribute_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between 'defined' and '(' in '#if defined (FOO)'.
-sp_defined_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between 'throw' and '(' in 'throw (something)'.
-sp_throw_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between 'throw' and anything other than '(' as in
-# '@throw [...];'.
-sp_after_throw = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between 'catch' and '(' in 'catch (something) { }'.
-# If set to ignore, sp_before_sparen is used.
-sp_catch_paren = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space between '@catch' and '('
-# in '@catch (something) { }'. If set to ignore, sp_catch_paren is used.
-sp_oc_catch_paren = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space before Objective-C protocol list
-# as in '@protocol Protocol<here><Protocol_A>' or '@interface MyClass : NSObject<here><MyProtocol>'.
-sp_before_oc_proto_list = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space between class name and '('
-# in '@interface className(categoryName)<ProtocolName>:BaseClass'
-sp_oc_classname_paren = ignore # ignore/add/remove/force/not_defined
-
-# (D) Add or remove space between 'version' and '('
-# in 'version (something) { }'. If set to ignore, sp_before_sparen is used.
-sp_version_paren = ignore # ignore/add/remove/force/not_defined
-
-# (D) Add or remove space between 'scope' and '('
-# in 'scope (something) { }'. If set to ignore, sp_before_sparen is used.
-sp_scope_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between 'super' and '(' in 'super (something)'.
-#
-# Default: remove
-sp_super_paren = remove # ignore/add/remove/force/not_defined
-
-# Add or remove space between 'this' and '(' in 'this (something)'.
-#
-# Default: remove
-sp_this_paren = remove # ignore/add/remove/force/not_defined
-
-# Add or remove space between a macro name and its definition.
-sp_macro = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between a macro function ')' and its definition.
-sp_macro_func = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between 'else' and '{' if on the same line.
-sp_else_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between '}' and 'else' if on the same line.
-sp_brace_else = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between '}' and the name of a typedef on the same line.
-sp_brace_typedef = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before the '{' of a 'catch' statement, if the '{' and
-# 'catch' are on the same line, as in 'catch (decl) <here> {'.
-sp_catch_brace = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space before the '{' of a '@catch' statement, if the '{'
-# and '@catch' are on the same line, as in '@catch (decl) <here> {'.
-# If set to ignore, sp_catch_brace is used.
-sp_oc_catch_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between '}' and 'catch' if on the same line.
-sp_brace_catch = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space between '}' and '@catch' if on the same line.
-# If set to ignore, sp_brace_catch is used.
-sp_oc_brace_catch = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between 'finally' and '{' if on the same line.
-sp_finally_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between '}' and 'finally' if on the same line.
-sp_brace_finally = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between 'try' and '{' if on the same line.
-sp_try_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between get/set and '{' if on the same line.
-sp_getset_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between a variable and '{' for C++ uniform
-# initialization.
-sp_word_brace_init_lst = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between a variable and '{' for a namespace.
-#
-# Default: add
-sp_word_brace_ns = add # ignore/add/remove/force/not_defined
-
-# Add or remove space before the '::' operator.
-sp_before_dc = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after the '::' operator.
-sp_after_dc = ignore # ignore/add/remove/force/not_defined
-
-# (D) Add or remove around the D named array initializer ':' operator.
-sp_d_array_colon = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after the '!' (not) unary operator.
-#
-# Default: remove
-sp_not = remove # ignore/add/remove/force/not_defined
-
-# Add or remove space after the '~' (invert) unary operator.
-#
-# Default: remove
-sp_inv = remove # ignore/add/remove/force/not_defined
-
-# Add or remove space after the '&' (address-of) unary operator. This does not
-# affect the spacing after a '&' that is part of a type.
-#
-# Default: remove
-sp_addr = remove # ignore/add/remove/force/not_defined
-
-# Add or remove space around the '.' or '->' operators.
-#
-# Default: remove
-sp_member = remove # ignore/add/remove/force/not_defined
-
-# Add or remove space after the '*' (dereference) unary operator. This does
-# not affect the spacing after a '*' that is part of a type.
-#
-# Default: remove
-sp_deref = remove # ignore/add/remove/force/not_defined
-
-# Add or remove space after '+' or '-', as in 'x = -5' or 'y = +7'.
-#
-# Default: remove
-sp_sign = remove # ignore/add/remove/force/not_defined
-
-# Add or remove space between '++' and '--' the word to which it is being
-# applied, as in '(--x)' or 'y++;'.
-#
-# Default: remove
-sp_incdec = remove # ignore/add/remove/force/not_defined
-
-# Add or remove space before a backslash-newline at the end of a line.
-#
-# Default: add
-sp_before_nl_cont = add # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space after the scope '+' or '-', as in '-(void) foo;'
-# or '+(int) bar;'.
-sp_after_oc_scope = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space after the colon in message specs,
-# i.e. '-(int) f:(int) x;' vs. '-(int) f: (int) x;'.
-sp_after_oc_colon = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space before the colon in message specs,
-# i.e. '-(int) f: (int) x;' vs. '-(int) f : (int) x;'.
-sp_before_oc_colon = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space after the colon in immutable dictionary expression
-# 'NSDictionary *test = @{@"foo" :@"bar"};'.
-sp_after_oc_dict_colon = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space before the colon in immutable dictionary expression
-# 'NSDictionary *test = @{@"foo" :@"bar"};'.
-sp_before_oc_dict_colon = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space after the colon in message specs,
-# i.e. '[object setValue:1];' vs. '[object setValue: 1];'.
-sp_after_send_oc_colon = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space before the colon in message specs,
-# i.e. '[object setValue:1];' vs. '[object setValue :1];'.
-sp_before_send_oc_colon = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space after the (type) in message specs,
-# i.e. '-(int)f: (int) x;' vs. '-(int)f: (int)x;'.
-sp_after_oc_type = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space after the first (type) in message specs,
-# i.e. '-(int) f:(int)x;' vs. '-(int)f:(int)x;'.
-sp_after_oc_return_type = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space between '@selector' and '(',
-# i.e. '@selector(msgName)' vs. '@selector (msgName)'.
-# Also applies to '@protocol()' constructs.
-sp_after_oc_at_sel = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space between '@selector(x)' and the following word,
-# i.e. '@selector(foo) a:' vs. '@selector(foo)a:'.
-sp_after_oc_at_sel_parens = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space inside '@selector' parentheses,
-# i.e. '@selector(foo)' vs. '@selector( foo )'.
-# Also applies to '@protocol()' constructs.
-sp_inside_oc_at_sel_parens = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space before a block pointer caret,
-# i.e. '^int (int arg){...}' vs. ' ^int (int arg){...}'.
-sp_before_oc_block_caret = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space after a block pointer caret,
-# i.e. '^int (int arg){...}' vs. '^ int (int arg){...}'.
-sp_after_oc_block_caret = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space between the receiver and selector in a message,
-# as in '[receiver selector ...]'.
-sp_after_oc_msg_receiver = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space after '@property'.
-sp_after_oc_property = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove space between '@synchronized' and the open parenthesis,
-# i.e. '@synchronized(foo)' vs. '@synchronized (foo)'.
-sp_after_oc_synchronized = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space around the ':' in 'b ? t : f'.
-sp_cond_colon = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before the ':' in 'b ? t : f'.
-#
-# Overrides sp_cond_colon.
-sp_cond_colon_before = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after the ':' in 'b ? t : f'.
-#
-# Overrides sp_cond_colon.
-sp_cond_colon_after = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space around the '?' in 'b ? t : f'.
-sp_cond_question = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before the '?' in 'b ? t : f'.
-#
-# Overrides sp_cond_question.
-sp_cond_question_before = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after the '?' in 'b ? t : f'.
-#
-# Overrides sp_cond_question.
-sp_cond_question_after = ignore # ignore/add/remove/force/not_defined
-
-# In the abbreviated ternary form '(a ?: b)', add or remove space between '?'
-# and ':'.
-#
-# Overrides all other sp_cond_* options.
-sp_cond_ternary_short = ignore # ignore/add/remove/force/not_defined
-
-# Fix the spacing between 'case' and the label. Only 'ignore' and 'force' make
-# sense here.
-sp_case_label = ignore # ignore/add/remove/force/not_defined
-
-# (D) Add or remove space around the D '..' operator.
-sp_range = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after ':' in a Java/C++11 range-based 'for',
-# as in 'for (Type var : <here> expr)'.
-sp_after_for_colon = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before ':' in a Java/C++11 range-based 'for',
-# as in 'for (Type var <here> : expr)'.
-sp_before_for_colon = ignore # ignore/add/remove/force/not_defined
-
-# (D) Add or remove space between 'extern' and '(' as in 'extern <here> (C)'.
-sp_extern_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after the opening of a C++ comment, as in '// <here> A'.
-sp_cmt_cpp_start = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space in a C++ region marker comment, as in '// <here> BEGIN'.
-# A region marker is defined as a comment which is not preceded by other text
-# (i.e. the comment is the first non-whitespace on the line), and which starts
-# with either 'BEGIN' or 'END'.
-#
-# Overrides sp_cmt_cpp_start.
-sp_cmt_cpp_region = ignore # ignore/add/remove/force/not_defined
-
-# If true, space added with sp_cmt_cpp_start will be added after Doxygen
-# sequences like '///', '///<', '//!' and '//!<'.
-sp_cmt_cpp_doxygen = false # true/false
-
-# If true, space added with sp_cmt_cpp_start will be added after Qt translator
-# or meta-data comments like '//:', '//=', and '//~'.
-sp_cmt_cpp_qttr = false # true/false
-
-# Add or remove space between #else or #endif and a trailing comment.
-sp_endif_cmt = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after 'new', 'delete' and 'delete[]'.
-sp_after_new = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between 'new' and '(' in 'new()'.
-sp_between_new_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space between ')' and type in 'new(foo) BAR'.
-sp_after_newop_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space inside parenthesis of the new operator
-# as in 'new(foo) BAR'.
-sp_inside_newop_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after the open parenthesis of the new operator,
-# as in 'new(foo) BAR'.
-#
-# Overrides sp_inside_newop_paren.
-sp_inside_newop_paren_open = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before the close parenthesis of the new operator,
-# as in 'new(foo) BAR'.
-#
-# Overrides sp_inside_newop_paren.
-sp_inside_newop_paren_close = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before a trailing comment.
-sp_before_tr_cmt = ignore # ignore/add/remove/force/not_defined
-
-# Number of spaces before a trailing comment.
-sp_num_before_tr_cmt = 0 # unsigned number
-
-# Add or remove space before an embedded comment.
-#
-# Default: force
-sp_before_emb_cmt = force # ignore/add/remove/force/not_defined
-
-# Number of spaces before an embedded comment.
-#
-# Default: 1
-sp_num_before_emb_cmt = 1 # unsigned number
-
-# Add or remove space after an embedded comment.
-#
-# Default: force
-sp_after_emb_cmt = force # ignore/add/remove/force/not_defined
-
-# Number of spaces after an embedded comment.
-#
-# Default: 1
-sp_num_after_emb_cmt = 1 # unsigned number
-
-# (Java) Add or remove space between an annotation and the open parenthesis.
-sp_annotation_paren = ignore # ignore/add/remove/force/not_defined
-
-# If true, vbrace tokens are dropped to the previous token and skipped.
-sp_skip_vbrace_tokens = false # true/false
-
-# Add or remove space after 'noexcept'.
-sp_after_noexcept = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after '_'.
-sp_vala_after_translation = ignore # ignore/add/remove/force/not_defined
-
-# If true, a <TAB> is inserted after #define.
-force_tab_after_define = false # true/false
-
-#
-# Indenting options
-#
-
-# The number of columns to indent per level. Usually 2, 3, 4, or 8.
-#
-# Default: 8
-indent_columns = 8 # unsigned number
-
-# The continuation indent. If non-zero, this overrides the indent of '(', '['
-# and '=' continuation indents. Negative values are OK; negative value is
-# absolute and not increased for each '(' or '[' level.
-#
-# For FreeBSD, this is set to 4.
-indent_continue = 0 # number
-
-# The continuation indent, only for class header line(s). If non-zero, this
-# overrides the indent of 'class' continuation indents.
-indent_continue_class_head = 0 # unsigned number
-
-# Whether to indent empty lines (i.e. lines which contain only spaces before
-# the newline character).
-indent_single_newlines = false # true/false
-
-# The continuation indent for func_*_param if they are true. If non-zero, this
-# overrides the indent.
-indent_param = 0 # unsigned number
-
-# How to use tabs when indenting code.
-#
-# 0: Spaces only
-# 1: Indent with tabs to brace level, align with spaces (default)
-# 2: Indent and align with tabs, using spaces when not on a tabstop
-#
-# Default: 1
-indent_with_tabs = 1 # unsigned number
-
-# Whether to indent comments that are not at a brace level with tabs on a
-# tabstop. Requires indent_with_tabs=2. If false, will use spaces.
-indent_cmt_with_tabs = false # true/false
-
-# Whether to indent strings broken by '\' so that they line up.
-indent_align_string = false # true/false
-
-# The number of spaces to indent multi-line XML strings.
-# Requires indent_align_string=true.
-indent_xml_string = 0 # unsigned number
-
-# Spaces to indent '{' from level.
-indent_brace = 0 # unsigned number
-
-# Whether braces are indented to the body level.
-indent_braces = false # true/false
-
-# Whether to disable indenting function braces if indent_braces=true.
-indent_braces_no_func = false # true/false
-
-# Whether to disable indenting class braces if indent_braces=true.
-indent_braces_no_class = false # true/false
-
-# Whether to disable indenting struct braces if indent_braces=true.
-indent_braces_no_struct = false # true/false
-
-# Whether to indent based on the size of the brace parent,
-# i.e. 'if' => 3 spaces, 'for' => 4 spaces, etc.
-indent_brace_parent = false # true/false
-
-# Whether to indent based on the open parenthesis instead of the open brace
-# in '({\n'.
-indent_paren_open_brace = false # true/false
-
-# (C#) Whether to indent the brace of a C# delegate by another level.
-indent_cs_delegate_brace = false # true/false
-
-# (C#) Whether to indent a C# delegate (to handle delegates with no brace) by
-# another level.
-indent_cs_delegate_body = false # true/false
-
-# Whether to indent the body of a 'namespace'.
-indent_namespace = false # true/false
-
-# Whether to indent only the first namespace, and not any nested namespaces.
-# Requires indent_namespace=true.
-indent_namespace_single_indent = false # true/false
-
-# The number of spaces to indent a namespace block.
-# If set to zero, use the value indent_columns
-indent_namespace_level = 0 # unsigned number
-
-# If the body of the namespace is longer than this number, it won't be
-# indented. Requires indent_namespace=true. 0 means no limit.
-indent_namespace_limit = 0 # unsigned number
-
-# Whether the 'extern "C"' body is indented.
-indent_extern = false # true/false
-
-# Whether the 'class' body is indented.
-indent_class = false # true/false
-
-# Additional indent before the leading base class colon.
-# Negative values decrease indent down to the first column.
-# Requires a newline break before colon (see pos_class_colon
-# and nl_class_colon)
-indent_before_class_colon = 0 # number
-
-# Whether to indent the stuff after a leading base class colon.
-indent_class_colon = false # true/false
-
-# Whether to indent based on a class colon instead of the stuff after the
-# colon. Requires indent_class_colon=true.
-indent_class_on_colon = false # true/false
-
-# Whether to indent the stuff after a leading class initializer colon.
-indent_constr_colon = false # true/false
-
-# Virtual indent from the ':' for leading member initializers.
-#
-# Default: 2
-indent_ctor_init_leading = 2 # unsigned number
-
-# Virtual indent from the ':' for following member initializers.
-#
-# Default: 2
-indent_ctor_init_following = 2 # unsigned number
-
-# Additional indent for constructor initializer list.
-# Negative values decrease indent down to the first column.
-indent_ctor_init = 0 # number
-
-# Whether to indent 'if' following 'else' as a new block under the 'else'.
-# If false, 'else\nif' is treated as 'else if' for indenting purposes.
-indent_else_if = false # true/false
-
-# Amount to indent variable declarations after a open brace.
-#
-# <0: Relative
-# >=0: Absolute
-indent_var_def_blk = 0 # number
-
-# Whether to indent continued variable declarations instead of aligning.
-indent_var_def_cont = false # true/false
-
-# Whether to indent continued shift expressions ('<<' and '>>') instead of
-# aligning. Set align_left_shift=false when enabling this.
-indent_shift = false # true/false
-
-# Whether to force indentation of function definitions to start in column 1.
-indent_func_def_force_col1 = false # true/false
-
-# Whether to indent continued function call parameters one indent level,
-# rather than aligning parameters under the open parenthesis.
-indent_func_call_param = false # true/false
-
-# Whether to indent continued function definition parameters one indent level,
-# rather than aligning parameters under the open parenthesis.
-indent_func_def_param = false # true/false
-
-# for function definitions, only if indent_func_def_param is false
-# Allows to align params when appropriate and indent them when not
-# behave as if it was true if paren position is more than this value
-# if paren position is more than the option value
-indent_func_def_param_paren_pos_threshold = 0 # unsigned number
-
-# Whether to indent continued function call prototype one indent level,
-# rather than aligning parameters under the open parenthesis.
-indent_func_proto_param = false # true/false
-
-# Whether to indent continued function call declaration one indent level,
-# rather than aligning parameters under the open parenthesis.
-indent_func_class_param = false # true/false
-
-# Whether to indent continued class variable constructors one indent level,
-# rather than aligning parameters under the open parenthesis.
-indent_func_ctor_var_param = false # true/false
-
-# Whether to indent continued template parameter list one indent level,
-# rather than aligning parameters under the open parenthesis.
-indent_template_param = false # true/false
-
-# Double the indent for indent_func_xxx_param options.
-# Use both values of the options indent_columns and indent_param.
-indent_func_param_double = false # true/false
-
-# Indentation column for standalone 'const' qualifier on a function
-# prototype.
-indent_func_const = 0 # unsigned number
-
-# Indentation column for standalone 'throw' qualifier on a function
-# prototype.
-indent_func_throw = 0 # unsigned number
-
-# How to indent within a macro followed by a brace on the same line
-# This allows reducing the indent in macros that have (for example)
-# `do { ... } while (0)` blocks bracketing them.
-#
-# true: add an indent for the brace on the same line as the macro
-# false: do not add an indent for the brace on the same line as the macro
-#
-# Default: true
-indent_macro_brace = true # true/false
-
-# The number of spaces to indent a continued '->' or '.'.
-# Usually set to 0, 1, or indent_columns.
-indent_member = 0 # unsigned number
-
-# Whether lines broken at '.' or '->' should be indented by a single indent.
-# The indent_member option will not be effective if this is set to true.
-indent_member_single = false # true/false
-
-# Spaces to indent single line ('//') comments on lines before code.
-indent_single_line_comments_before = 0 # unsigned number
-
-# Spaces to indent single line ('//') comments on lines after code.
-indent_single_line_comments_after = 0 # unsigned number
-
-# When opening a paren for a control statement (if, for, while, etc), increase
-# the indent level by this value. Negative values decrease the indent level.
-indent_sparen_extra = 0 # number
-
-# Whether to indent trailing single line ('//') comments relative to the code
-# instead of trying to keep the same absolute column.
-indent_relative_single_line_comments = false # true/false
-
-# Spaces to indent 'case' from 'switch'. Usually 0 or indent_columns.
-# It might be wise to choose the same value for the option indent_case_brace.
-indent_switch_case = 0 # unsigned number
-
-# Spaces to indent the body of a 'switch' before any 'case'.
-# Usually the same as indent_columns or indent_switch_case.
-indent_switch_body = 0 # unsigned number
-
-# Spaces to indent '{' from 'case'. By default, the brace will appear under
-# the 'c' in case. Usually set to 0 or indent_columns. Negative values are OK.
-# It might be wise to choose the same value for the option indent_switch_case.
-indent_case_brace = 0 # number
-
-# indent 'break' with 'case' from 'switch'.
-indent_switch_break_with_case = false # true/false
-
-# Whether to indent preprocessor statements inside of switch statements.
-#
-# Default: true
-indent_switch_pp = true # true/false
-
-# Spaces to shift the 'case' line, without affecting any other lines.
-# Usually 0.
-indent_case_shift = 0 # unsigned number
-
-# Whether to align comments before 'case' with the 'case'.
-#
-# Default: true
-indent_case_comment = true # true/false
-
-# Whether to indent comments not found in first column.
-#
-# Default: true
-indent_comment = true # true/false
-
-# Whether to indent comments found in first column.
-indent_col1_comment = false # true/false
-
-# Whether to indent multi string literal in first column.
-indent_col1_multi_string_literal = false # true/false
-
-# Align comments on adjacent lines that are this many columns apart or less.
-#
-# Default: 3
-indent_comment_align_thresh = 3 # unsigned number
-
-# Whether to ignore indent for goto labels.
-indent_ignore_label = false # true/false
-
-# How to indent goto labels. Requires indent_ignore_label=false.
-#
-# >0: Absolute column where 1 is the leftmost column
-# <=0: Subtract from brace indent
-#
-# Default: 1
-indent_label = 1 # number
-
-# How to indent access specifiers that are followed by a
-# colon.
-#
-# >0: Absolute column where 1 is the leftmost column
-# <=0: Subtract from brace indent
-#
-# Default: 1
-indent_access_spec = 1 # number
-
-# Whether to indent the code after an access specifier by one level.
-# If true, this option forces 'indent_access_spec=0'.
-indent_access_spec_body = false # true/false
-
-# If an open parenthesis is followed by a newline, whether to indent the next
-# line so that it lines up after the open parenthesis (not recommended).
-indent_paren_nl = false # true/false
-
-# How to indent a close parenthesis after a newline.
-#
-# 0: Indent to body level (default)
-# 1: Align under the open parenthesis
-# 2: Indent to the brace level
-indent_paren_close = 0 # unsigned number
-
-# Whether to indent the open parenthesis of a function definition,
-# if the parenthesis is on its own line.
-indent_paren_after_func_def = false # true/false
-
-# Whether to indent the open parenthesis of a function declaration,
-# if the parenthesis is on its own line.
-indent_paren_after_func_decl = false # true/false
-
-# Whether to indent the open parenthesis of a function call,
-# if the parenthesis is on its own line.
-indent_paren_after_func_call = false # true/false
-
-# Whether to indent a comma when inside a brace.
-# If true, aligns under the open brace.
-indent_comma_brace = false # true/false
-
-# Whether to indent a comma when inside a parenthesis.
-# If true, aligns under the open parenthesis.
-indent_comma_paren = false # true/false
-
-# Whether to indent a Boolean operator when inside a parenthesis.
-# If true, aligns under the open parenthesis.
-indent_bool_paren = false # true/false
-
-# Whether to indent a semicolon when inside a for parenthesis.
-# If true, aligns under the open for parenthesis.
-indent_semicolon_for_paren = false # true/false
-
-# Whether to align the first expression to following ones
-# if indent_bool_paren=true.
-indent_first_bool_expr = false # true/false
-
-# Whether to align the first expression to following ones
-# if indent_semicolon_for_paren=true.
-indent_first_for_expr = false # true/false
-
-# If an open square is followed by a newline, whether to indent the next line
-# so that it lines up after the open square (not recommended).
-indent_square_nl = false # true/false
-
-# (ESQL/C) Whether to preserve the relative indent of 'EXEC SQL' bodies.
-indent_preserve_sql = false # true/false
-
-# Whether to align continued statements at the '='. If false or if the '=' is
-# followed by a newline, the next line is indent one tab.
-#
-# Default: true
-indent_align_assign = true # true/false
-
-# If true, the indentation of the chunks after a '=' sequence will be set at
-# LHS token indentation column before '='.
-indent_off_after_assign = false # true/false
-
-# Whether to align continued statements at the '('. If false or the '(' is
-# followed by a newline, the next line indent is one tab.
-#
-# Default: true
-indent_align_paren = true # true/false
-
-# (OC) Whether to indent Objective-C code inside message selectors.
-indent_oc_inside_msg_sel = false # true/false
-
-# (OC) Whether to indent Objective-C blocks at brace level instead of usual
-# rules.
-indent_oc_block = false # true/false
-
-# (OC) Indent for Objective-C blocks in a message relative to the parameter
-# name.
-#
-# =0: Use indent_oc_block rules
-# >0: Use specified number of spaces to indent
-indent_oc_block_msg = 0 # unsigned number
-
-# (OC) Minimum indent for subsequent parameters
-indent_oc_msg_colon = 0 # unsigned number
-
-# (OC) Whether to prioritize aligning with initial colon (and stripping spaces
-# from lines, if necessary).
-#
-# Default: true
-indent_oc_msg_prioritize_first_colon = true # true/false
-
-# (OC) Whether to indent blocks the way that Xcode does by default
-# (from the keyword if the parameter is on its own line; otherwise, from the
-# previous indentation level). Requires indent_oc_block_msg=true.
-indent_oc_block_msg_xcode_style = false # true/false
-
-# (OC) Whether to indent blocks from where the brace is, relative to a
-# message keyword. Requires indent_oc_block_msg=true.
-indent_oc_block_msg_from_keyword = false # true/false
-
-# (OC) Whether to indent blocks from where the brace is, relative to a message
-# colon. Requires indent_oc_block_msg=true.
-indent_oc_block_msg_from_colon = false # true/false
-
-# (OC) Whether to indent blocks from where the block caret is.
-# Requires indent_oc_block_msg=true.
-indent_oc_block_msg_from_caret = false # true/false
-
-# (OC) Whether to indent blocks from where the brace caret is.
-# Requires indent_oc_block_msg=true.
-indent_oc_block_msg_from_brace = false # true/false
-
-# When indenting after virtual brace open and newline add further spaces to
-# reach this minimum indent.
-indent_min_vbrace_open = 0 # unsigned number
-
-# Whether to add further spaces after regular indent to reach next tabstop
-# when indenting after virtual brace open and newline.
-indent_vbrace_open_on_tabstop = false # true/false
-
-# How to indent after a brace followed by another token (not a newline).
-# true: indent all contained lines to match the token
-# false: indent all contained lines to match the brace
-#
-# Default: true
-indent_token_after_brace = true # true/false
-
-# Whether to indent the body of a C++11 lambda.
-indent_cpp_lambda_body = false # true/false
-
-# How to indent compound literals that are being returned.
-# true: add both the indent from return & the compound literal open brace
-# (i.e. 2 indent levels)
-# false: only indent 1 level, don't add the indent for the open brace, only
-# add the indent for the return.
-#
-# Default: true
-indent_compound_literal_return = true # true/false
-
-# (C#) Whether to indent a 'using' block if no braces are used.
-#
-# Default: true
-indent_using_block = true # true/false
-
-# How to indent the continuation of ternary operator.
-#
-# 0: Off (default)
-# 1: When the `if_false` is a continuation, indent it under `if_false`
-# 2: When the `:` is a continuation, indent it under `?`
-indent_ternary_operator = 0 # unsigned number
-
-# Whether to indent the statements inside ternary operator.
-indent_inside_ternary_operator = false # true/false
-
-# If true, the indentation of the chunks after a `return` sequence will be set at return indentation column.
-indent_off_after_return = false # true/false
-
-# If true, the indentation of the chunks after a `return new` sequence will be set at return indentation column.
-indent_off_after_return_new = false # true/false
-
-# If true, the tokens after return are indented with regular single indentation. By default (false) the indentation is after the return token.
-indent_single_after_return = false # true/false
-
-# Whether to ignore indent and alignment for 'asm' blocks (i.e. assume they
-# have their own indentation).
-indent_ignore_asm_block = false # true/false
-
-# Don't indent the close parenthesis of a function definition,
-# if the parenthesis is on its own line.
-donot_indent_func_def_close_paren = false # true/false
-
-#
-# Newline adding and removing options
-#
-
-# Whether to collapse empty blocks between '{' and '}'.
-# If true, overrides nl_inside_empty_func
-nl_collapse_empty_body = false # true/false
-
-# Don't split one-line braced assignments, as in 'foo_t f = { 1, 2 };'.
-nl_assign_leave_one_liners = false # true/false
-
-# Don't split one-line braced statements inside a 'class xx { }' body.
-nl_class_leave_one_liners = false # true/false
-
-# Don't split one-line enums, as in 'enum foo { BAR = 15 };'
-nl_enum_leave_one_liners = false # true/false
-
-# Don't split one-line get or set functions.
-nl_getset_leave_one_liners = false # true/false
-
-# (C#) Don't split one-line property get or set functions.
-nl_cs_property_leave_one_liners = false # true/false
-
-# Don't split one-line function definitions, as in 'int foo() { return 0; }'.
-# might modify nl_func_type_name
-nl_func_leave_one_liners = false # true/false
-
-# Don't split one-line C++11 lambdas, as in '[]() { return 0; }'.
-nl_cpp_lambda_leave_one_liners = false # true/false
-
-# Don't split one-line if/else statements, as in 'if(...) b++;'.
-nl_if_leave_one_liners = false # true/false
-
-# Don't split one-line while statements, as in 'while(...) b++;'.
-nl_while_leave_one_liners = false # true/false
-
-# Don't split one-line do statements, as in 'do { b++; } while(...);'.
-nl_do_leave_one_liners = false # true/false
-
-# Don't split one-line for statements, as in 'for(...) b++;'.
-nl_for_leave_one_liners = false # true/false
-
-# (OC) Don't split one-line Objective-C messages.
-nl_oc_msg_leave_one_liner = false # true/false
-
-# (OC) Add or remove newline between method declaration and '{'.
-nl_oc_mdef_brace = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove newline between Objective-C block signature and '{'.
-nl_oc_block_brace = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove blank line before '@interface' statement.
-nl_oc_before_interface = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove blank line before '@implementation' statement.
-nl_oc_before_implementation = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove blank line before '@end' statement.
-nl_oc_before_end = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove newline between '@interface' and '{'.
-nl_oc_interface_brace = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove newline between '@implementation' and '{'.
-nl_oc_implementation_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newlines at the start of the file.
-nl_start_of_file = ignore # ignore/add/remove/force/not_defined
-
-# The minimum number of newlines at the start of the file (only used if
-# nl_start_of_file is 'add' or 'force').
-nl_start_of_file_min = 0 # unsigned number
-
-# Add or remove newline at the end of the file.
-nl_end_of_file = ignore # ignore/add/remove/force/not_defined
-
-# The minimum number of newlines at the end of the file (only used if
-# nl_end_of_file is 'add' or 'force').
-nl_end_of_file_min = 0 # unsigned number
-
-# Add or remove newline between '=' and '{'.
-nl_assign_brace = ignore # ignore/add/remove/force/not_defined
-
-# (D) Add or remove newline between '=' and '['.
-nl_assign_square = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between '[]' and '{'.
-nl_tsquare_brace = ignore # ignore/add/remove/force/not_defined
-
-# (D) Add or remove newline after '= ['. Will also affect the newline before
-# the ']'.
-nl_after_square_assign = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between a function call's ')' and '{', as in
-# 'list_for_each(item, &list) { }'.
-nl_fcall_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between 'enum' and '{'.
-nl_enum_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between 'enum' and 'class'.
-nl_enum_class = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between 'enum class' and the identifier.
-nl_enum_class_identifier = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between 'enum class' type and ':'.
-nl_enum_identifier_colon = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between 'enum class identifier :' and type.
-nl_enum_colon_type = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between 'struct and '{'.
-nl_struct_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between 'union' and '{'.
-nl_union_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between 'if' and '{'.
-nl_if_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between '}' and 'else'.
-nl_brace_else = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between 'else if' and '{'. If set to ignore,
-# nl_if_brace is used instead.
-nl_elseif_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between 'else' and '{'.
-nl_else_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between 'else' and 'if'.
-nl_else_if = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline before '{' opening brace
-nl_before_opening_brace_func_class_def = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline before 'if'/'else if' closing parenthesis.
-nl_before_if_closing_paren = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between '}' and 'finally'.
-nl_brace_finally = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between 'finally' and '{'.
-nl_finally_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between 'try' and '{'.
-nl_try_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between get/set and '{'.
-nl_getset_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between 'for' and '{'.
-nl_for_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline before the '{' of a 'catch' statement, as in
-# 'catch (decl) <here> {'.
-nl_catch_brace = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove newline before the '{' of a '@catch' statement, as in
-# '@catch (decl) <here> {'. If set to ignore, nl_catch_brace is used.
-nl_oc_catch_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between '}' and 'catch'.
-nl_brace_catch = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Add or remove newline between '}' and '@catch'. If set to ignore,
-# nl_brace_catch is used.
-nl_oc_brace_catch = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between '}' and ']'.
-nl_brace_square = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between '}' and ')' in a function invocation.
-nl_brace_fparen = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between 'while' and '{'.
-nl_while_brace = ignore # ignore/add/remove/force/not_defined
-
-# (D) Add or remove newline between 'scope (x)' and '{'.
-nl_scope_brace = ignore # ignore/add/remove/force/not_defined
-
-# (D) Add or remove newline between 'unittest' and '{'.
-nl_unittest_brace = ignore # ignore/add/remove/force/not_defined
-
-# (D) Add or remove newline between 'version (x)' and '{'.
-nl_version_brace = ignore # ignore/add/remove/force/not_defined
-
-# (C#) Add or remove newline between 'using' and '{'.
-nl_using_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between two open or close braces. Due to general
-# newline/brace handling, REMOVE may not work.
-nl_brace_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between 'do' and '{'.
-nl_do_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between '}' and 'while' of 'do' statement.
-nl_brace_while = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between 'switch' and '{'.
-nl_switch_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between 'synchronized' and '{'.
-nl_synchronized_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add a newline between ')' and '{' if the ')' is on a different line than the
-# if/for/etc.
-#
-# Overrides nl_for_brace, nl_if_brace, nl_switch_brace, nl_while_switch and
-# nl_catch_brace.
-nl_multi_line_cond = false # true/false
-
-# Add a newline after '(' if an if/for/while/switch condition spans multiple
-# lines
-nl_multi_line_sparen_open = ignore # ignore/add/remove/force/not_defined
-
-# Add a newline before ')' if an if/for/while/switch condition spans multiple
-# lines. Overrides nl_before_if_closing_paren if both are specified.
-nl_multi_line_sparen_close = ignore # ignore/add/remove/force/not_defined
-
-# Force a newline in a define after the macro name for multi-line defines.
-nl_multi_line_define = false # true/false
-
-# Whether to add a newline before 'case', and a blank line before a 'case'
-# statement that follows a ';' or '}'.
-nl_before_case = false # true/false
-
-# Whether to add a newline after a 'case' statement.
-nl_after_case = false # true/false
-
-# Add or remove newline between a case ':' and '{'.
-#
-# Overrides nl_after_case.
-nl_case_colon_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between ')' and 'throw'.
-nl_before_throw = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between 'namespace' and '{'.
-nl_namespace_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline after 'template<...>' of a template class.
-nl_template_class = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline after 'template<...>' of a template class declaration.
-#
-# Overrides nl_template_class.
-nl_template_class_decl = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline after 'template<>' of a specialized class declaration.
-#
-# Overrides nl_template_class_decl.
-nl_template_class_decl_special = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline after 'template<...>' of a template class definition.
-#
-# Overrides nl_template_class.
-nl_template_class_def = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline after 'template<>' of a specialized class definition.
-#
-# Overrides nl_template_class_def.
-nl_template_class_def_special = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline after 'template<...>' of a template function.
-nl_template_func = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline after 'template<...>' of a template function
-# declaration.
-#
-# Overrides nl_template_func.
-nl_template_func_decl = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline after 'template<>' of a specialized function
-# declaration.
-#
-# Overrides nl_template_func_decl.
-nl_template_func_decl_special = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline after 'template<...>' of a template function
-# definition.
-#
-# Overrides nl_template_func.
-nl_template_func_def = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline after 'template<>' of a specialized function
-# definition.
-#
-# Overrides nl_template_func_def.
-nl_template_func_def_special = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline after 'template<...>' of a template variable.
-nl_template_var = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between 'template<...>' and 'using' of a templated
-# type alias.
-nl_template_using = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between 'class' and '{'.
-nl_class_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline before or after (depending on pos_class_comma,
-# may not be IGNORE) each',' in the base class list.
-nl_class_init_args = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline after each ',' in the constructor member
-# initialization. Related to nl_constr_colon, pos_constr_colon and
-# pos_constr_comma.
-nl_constr_init_args = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline before first element, after comma, and after last
-# element, in 'enum'.
-nl_enum_own_lines = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between return type and function name in a function
-# definition.
-# might be modified by nl_func_leave_one_liners
-nl_func_type_name = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between return type and function name inside a class
-# definition. If set to ignore, nl_func_type_name or nl_func_proto_type_name
-# is used instead.
-nl_func_type_name_class = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between class specification and '::'
-# in 'void A::f() { }'. Only appears in separate member implementation (does
-# not appear with in-line implementation).
-nl_func_class_scope = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between function scope and name, as in
-# 'void A :: <here> f() { }'.
-nl_func_scope_name = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between return type and function name in a prototype.
-nl_func_proto_type_name = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between a function name and the opening '(' in the
-# declaration.
-nl_func_paren = ignore # ignore/add/remove/force/not_defined
-
-# Overrides nl_func_paren for functions with no parameters.
-nl_func_paren_empty = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between a function name and the opening '(' in the
-# definition.
-nl_func_def_paren = ignore # ignore/add/remove/force/not_defined
-
-# Overrides nl_func_def_paren for functions with no parameters.
-nl_func_def_paren_empty = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between a function name and the opening '(' in the
-# call.
-nl_func_call_paren = ignore # ignore/add/remove/force/not_defined
-
-# Overrides nl_func_call_paren for functions with no parameters.
-nl_func_call_paren_empty = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline after '(' in a function declaration.
-nl_func_decl_start = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline after '(' in a function definition.
-nl_func_def_start = ignore # ignore/add/remove/force/not_defined
-
-# Overrides nl_func_decl_start when there is only one parameter.
-nl_func_decl_start_single = ignore # ignore/add/remove/force/not_defined
-
-# Overrides nl_func_def_start when there is only one parameter.
-nl_func_def_start_single = ignore # ignore/add/remove/force/not_defined
-
-# Whether to add a newline after '(' in a function declaration if '(' and ')'
-# are in different lines. If false, nl_func_decl_start is used instead.
-nl_func_decl_start_multi_line = false # true/false
-
-# Whether to add a newline after '(' in a function definition if '(' and ')'
-# are in different lines. If false, nl_func_def_start is used instead.
-nl_func_def_start_multi_line = false # true/false
-
-# Add or remove newline after each ',' in a function declaration.
-nl_func_decl_args = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline after each ',' in a function definition.
-nl_func_def_args = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline after each ',' in a function call.
-nl_func_call_args = ignore # ignore/add/remove/force/not_defined
-
-# Whether to add a newline after each ',' in a function declaration if '('
-# and ')' are in different lines. If false, nl_func_decl_args is used instead.
-nl_func_decl_args_multi_line = false # true/false
-
-# Whether to add a newline after each ',' in a function definition if '('
-# and ')' are in different lines. If false, nl_func_def_args is used instead.
-nl_func_def_args_multi_line = false # true/false
-
-# Add or remove newline before the ')' in a function declaration.
-nl_func_decl_end = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline before the ')' in a function definition.
-nl_func_def_end = ignore # ignore/add/remove/force/not_defined
-
-# Overrides nl_func_decl_end when there is only one parameter.
-nl_func_decl_end_single = ignore # ignore/add/remove/force/not_defined
-
-# Overrides nl_func_def_end when there is only one parameter.
-nl_func_def_end_single = ignore # ignore/add/remove/force/not_defined
-
-# Whether to add a newline before ')' in a function declaration if '(' and ')'
-# are in different lines. If false, nl_func_decl_end is used instead.
-nl_func_decl_end_multi_line = false # true/false
-
-# Whether to add a newline before ')' in a function definition if '(' and ')'
-# are in different lines. If false, nl_func_def_end is used instead.
-nl_func_def_end_multi_line = false # true/false
-
-# Add or remove newline between '()' in a function declaration.
-nl_func_decl_empty = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between '()' in a function definition.
-nl_func_def_empty = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between '()' in a function call.
-nl_func_call_empty = ignore # ignore/add/remove/force/not_defined
-
-# Whether to add a newline after '(' in a function call,
-# has preference over nl_func_call_start_multi_line.
-nl_func_call_start = ignore # ignore/add/remove/force/not_defined
-
-# Whether to add a newline before ')' in a function call.
-nl_func_call_end = ignore # ignore/add/remove/force/not_defined
-
-# Whether to add a newline after '(' in a function call if '(' and ')' are in
-# different lines.
-nl_func_call_start_multi_line = false # true/false
-
-# Whether to add a newline after each ',' in a function call if '(' and ')'
-# are in different lines.
-nl_func_call_args_multi_line = false # true/false
-
-# Whether to add a newline before ')' in a function call if '(' and ')' are in
-# different lines.
-nl_func_call_end_multi_line = false # true/false
-
-# Whether to respect nl_func_call_XXX option in case of closure args.
-nl_func_call_args_multi_line_ignore_closures = false # true/false
-
-# Whether to add a newline after '<' of a template parameter list.
-nl_template_start = false # true/false
-
-# Whether to add a newline after each ',' in a template parameter list.
-nl_template_args = false # true/false
-
-# Whether to add a newline before '>' of a template parameter list.
-nl_template_end = false # true/false
-
-# (OC) Whether to put each Objective-C message parameter on a separate line.
-# See nl_oc_msg_leave_one_liner.
-nl_oc_msg_args = false # true/false
-
-# Add or remove newline between function signature and '{'.
-nl_fdef_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between function signature and '{',
-# if signature ends with ')'. Overrides nl_fdef_brace.
-nl_fdef_brace_cond = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between C++11 lambda signature and '{'.
-nl_cpp_ldef_brace = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline between 'return' and the return expression.
-nl_return_expr = ignore # ignore/add/remove/force/not_defined
-
-# Whether to add a newline after semicolons, except in 'for' statements.
-nl_after_semicolon = false # true/false
-
-# (Java) Add or remove newline between the ')' and '{{' of the double brace
-# initializer.
-nl_paren_dbrace_open = ignore # ignore/add/remove/force/not_defined
-
-# Whether to add a newline after the type in an unnamed temporary
-# direct-list-initialization.
-nl_type_brace_init_lst = ignore # ignore/add/remove/force/not_defined
-
-# Whether to add a newline after the open brace in an unnamed temporary
-# direct-list-initialization.
-nl_type_brace_init_lst_open = ignore # ignore/add/remove/force/not_defined
-
-# Whether to add a newline before the close brace in an unnamed temporary
-# direct-list-initialization.
-nl_type_brace_init_lst_close = ignore # ignore/add/remove/force/not_defined
-
-# Whether to add a newline before '{'.
-nl_before_brace_open = false # true/false
-
-# Whether to add a newline after '{'.
-nl_after_brace_open = false # true/false
-
-# Whether to add a newline between the open brace and a trailing single-line
-# comment. Requires nl_after_brace_open=true.
-nl_after_brace_open_cmt = false # true/false
-
-# Whether to add a newline after a virtual brace open with a non-empty body.
-# These occur in un-braced if/while/do/for statement bodies.
-nl_after_vbrace_open = false # true/false
-
-# Whether to add a newline after a virtual brace open with an empty body.
-# These occur in un-braced if/while/do/for statement bodies.
-nl_after_vbrace_open_empty = false # true/false
-
-# Whether to add a newline after '}'. Does not apply if followed by a
-# necessary ';'.
-nl_after_brace_close = false # true/false
-
-# Whether to add a newline after a virtual brace close,
-# as in 'if (foo) a++; <here> return;'.
-nl_after_vbrace_close = false # true/false
-
-# Add or remove newline between the close brace and identifier,
-# as in 'struct { int a; } <here> b;'. Affects enumerations, unions and
-# structures. If set to ignore, uses nl_after_brace_close.
-nl_brace_struct_var = ignore # ignore/add/remove/force/not_defined
-
-# Whether to alter newlines in '#define' macros.
-nl_define_macro = false # true/false
-
-# Whether to alter newlines between consecutive parenthesis closes. The number
-# of closing parentheses in a line will depend on respective open parenthesis
-# lines.
-nl_squeeze_paren_close = false # true/false
-
-# Whether to remove blanks after '#ifxx' and '#elxx', or before '#elxx' and
-# '#endif'. Does not affect top-level #ifdefs.
-nl_squeeze_ifdef = false # true/false
-
-# Makes the nl_squeeze_ifdef option affect the top-level #ifdefs as well.
-nl_squeeze_ifdef_top_level = false # true/false
-
-# Add or remove blank line before 'if'.
-nl_before_if = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove blank line after 'if' statement. Add/Force work only if the
-# next token is not a closing brace.
-nl_after_if = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove blank line before 'for'.
-nl_before_for = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove blank line after 'for' statement.
-nl_after_for = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove blank line before 'while'.
-nl_before_while = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove blank line after 'while' statement.
-nl_after_while = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove blank line before 'switch'.
-nl_before_switch = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove blank line after 'switch' statement.
-nl_after_switch = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove blank line before 'synchronized'.
-nl_before_synchronized = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove blank line after 'synchronized' statement.
-nl_after_synchronized = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove blank line before 'do'.
-nl_before_do = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove blank line after 'do/while' statement.
-nl_after_do = ignore # ignore/add/remove/force/not_defined
-
-# Ignore nl_before_{if,for,switch,do,synchronized} if the control
-# statement is immediately after a case statement.
-# if nl_before_{if,for,switch,do} is set to remove, this option
-# does nothing.
-nl_before_ignore_after_case = false # true/false
-
-# Whether to put a blank line before 'return' statements, unless after an open
-# brace.
-nl_before_return = false # true/false
-
-# Whether to put a blank line after 'return' statements, unless followed by a
-# close brace.
-nl_after_return = false # true/false
-
-# Whether to put a blank line before a member '.' or '->' operators.
-nl_before_member = ignore # ignore/add/remove/force/not_defined
-
-# (Java) Whether to put a blank line after a member '.' or '->' operators.
-nl_after_member = ignore # ignore/add/remove/force/not_defined
-
-# Whether to double-space commented-entries in 'struct'/'union'/'enum'.
-nl_ds_struct_enum_cmt = false # true/false
-
-# Whether to force a newline before '}' of a 'struct'/'union'/'enum'.
-# (Lower priority than eat_blanks_before_close_brace.)
-nl_ds_struct_enum_close_brace = false # true/false
-
-# Add or remove newline before or after (depending on pos_class_colon) a class
-# colon, as in 'class Foo <here> : <or here> public Bar'.
-nl_class_colon = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove newline around a class constructor colon. The exact position
-# depends on nl_constr_init_args, pos_constr_colon and pos_constr_comma.
-nl_constr_colon = ignore # ignore/add/remove/force/not_defined
-
-# Whether to collapse a two-line namespace, like 'namespace foo\n{ decl; }'
-# into a single line. If true, prevents other brace newline rules from turning
-# such code into four lines. If true, it also preserves one-liner namespaces.
-nl_namespace_two_to_one_liner = false # true/false
-
-# Whether to remove a newline in simple unbraced if statements, turning them
-# into one-liners, as in 'if(b)\n i++;' => 'if(b) i++;'.
-nl_create_if_one_liner = false # true/false
-
-# Whether to remove a newline in simple unbraced for statements, turning them
-# into one-liners, as in 'for (...)\n stmt;' => 'for (...) stmt;'.
-nl_create_for_one_liner = false # true/false
-
-# Whether to remove a newline in simple unbraced while statements, turning
-# them into one-liners, as in 'while (expr)\n stmt;' => 'while (expr) stmt;'.
-nl_create_while_one_liner = false # true/false
-
-# Whether to collapse a function definition whose body (not counting braces)
-# is only one line so that the entire definition (prototype, braces, body) is
-# a single line.
-nl_create_func_def_one_liner = false # true/false
-
-# Whether to split one-line simple list definitions into three lines by
-# adding newlines, as in 'int a[12] = { <here> 0 <here> };'.
-nl_create_list_one_liner = false # true/false
-
-# Whether to split one-line simple unbraced if statements into two lines by
-# adding a newline, as in 'if(b) <here> i++;'.
-nl_split_if_one_liner = false # true/false
-
-# Whether to split one-line simple unbraced for statements into two lines by
-# adding a newline, as in 'for (...) <here> stmt;'.
-nl_split_for_one_liner = false # true/false
-
-# Whether to split one-line simple unbraced while statements into two lines by
-# adding a newline, as in 'while (expr) <here> stmt;'.
-nl_split_while_one_liner = false # true/false
-
-# Don't add a newline before a cpp-comment in a parameter list of a function
-# call.
-donot_add_nl_before_cpp_comment = false # true/false
-
-#
-# Blank line options
-#
-
-# The maximum number of consecutive newlines (3 = 2 blank lines).
-nl_max = 0 # unsigned number
-
-# The maximum number of consecutive newlines in a function.
-nl_max_blank_in_func = 0 # unsigned number
-
-# The number of newlines inside an empty function body.
-# This option overrides eat_blanks_after_open_brace and
-# eat_blanks_before_close_brace, but is ignored when
-# nl_collapse_empty_body=true
-nl_inside_empty_func = 0 # unsigned number
-
-# The number of newlines before a function prototype.
-nl_before_func_body_proto = 0 # unsigned number
-
-# The number of newlines before a multi-line function definition. Where
-# applicable, this option is overridden with eat_blanks_after_open_brace=true
-nl_before_func_body_def = 0 # unsigned number
-
-# The number of newlines before a class constructor/destructor prototype.
-nl_before_func_class_proto = 0 # unsigned number
-
-# The number of newlines before a class constructor/destructor definition.
-nl_before_func_class_def = 0 # unsigned number
-
-# The number of newlines after a function prototype.
-nl_after_func_proto = 0 # unsigned number
-
-# The number of newlines after a function prototype, if not followed by
-# another function prototype.
-nl_after_func_proto_group = 0 # unsigned number
-
-# The number of newlines after a class constructor/destructor prototype.
-nl_after_func_class_proto = 0 # unsigned number
-
-# The number of newlines after a class constructor/destructor prototype,
-# if not followed by another constructor/destructor prototype.
-nl_after_func_class_proto_group = 0 # unsigned number
-
-# Whether one-line method definitions inside a class body should be treated
-# as if they were prototypes for the purposes of adding newlines.
-#
-# Requires nl_class_leave_one_liners=true. Overrides nl_before_func_body_def
-# and nl_before_func_class_def for one-liners.
-nl_class_leave_one_liner_groups = false # true/false
-
-# The number of newlines after '}' of a multi-line function body.
-nl_after_func_body = 0 # unsigned number
-
-# The number of newlines after '}' of a multi-line function body in a class
-# declaration. Also affects class constructors/destructors.
-#
-# Overrides nl_after_func_body.
-nl_after_func_body_class = 0 # unsigned number
-
-# The number of newlines after '}' of a single line function body. Also
-# affects class constructors/destructors.
-#
-# Overrides nl_after_func_body and nl_after_func_body_class.
-nl_after_func_body_one_liner = 0 # unsigned number
-
-# The number of blank lines after a block of variable definitions at the top
-# of a function body.
-#
-# 0: No change (default).
-nl_func_var_def_blk = 0 # unsigned number
-
-# The number of newlines before a block of typedefs. If nl_after_access_spec
-# is non-zero, that option takes precedence.
-#
-# 0: No change (default).
-nl_typedef_blk_start = 0 # unsigned number
-
-# The number of newlines after a block of typedefs.
-#
-# 0: No change (default).
-nl_typedef_blk_end = 0 # unsigned number
-
-# The maximum number of consecutive newlines within a block of typedefs.
-#
-# 0: No change (default).
-nl_typedef_blk_in = 0 # unsigned number
-
-# The number of newlines before a block of variable definitions not at the top
-# of a function body. If nl_after_access_spec is non-zero, that option takes
-# precedence.
-#
-# 0: No change (default).
-nl_var_def_blk_start = 0 # unsigned number
-
-# The number of newlines after a block of variable definitions not at the top
-# of a function body.
-#
-# 0: No change (default).
-nl_var_def_blk_end = 0 # unsigned number
-
-# The maximum number of consecutive newlines within a block of variable
-# definitions.
-#
-# 0: No change (default).
-nl_var_def_blk_in = 0 # unsigned number
-
-# The minimum number of newlines before a multi-line comment.
-# Doesn't apply if after a brace open or another multi-line comment.
-nl_before_block_comment = 0 # unsigned number
-
-# The minimum number of newlines before a single-line C comment.
-# Doesn't apply if after a brace open or other single-line C comments.
-nl_before_c_comment = 0 # unsigned number
-
-# The minimum number of newlines before a CPP comment.
-# Doesn't apply if after a brace open or other CPP comments.
-nl_before_cpp_comment = 0 # unsigned number
-
-# Whether to force a newline after a multi-line comment.
-nl_after_multiline_comment = false # true/false
-
-# Whether to force a newline after a label's colon.
-nl_after_label_colon = false # true/false
-
-# The number of newlines before a struct definition.
-nl_before_struct = 0 # unsigned number
-
-# The number of newlines after '}' or ';' of a struct/enum/union definition.
-nl_after_struct = 0 # unsigned number
-
-# The number of newlines before a class definition.
-nl_before_class = 0 # unsigned number
-
-# The number of newlines after '}' or ';' of a class definition.
-nl_after_class = 0 # unsigned number
-
-# The number of newlines before a namespace.
-nl_before_namespace = 0 # unsigned number
-
-# The number of newlines after '{' of a namespace. This also adds newlines
-# before the matching '}'.
-#
-# 0: Apply eat_blanks_after_open_brace or eat_blanks_before_close_brace if
-# applicable, otherwise no change.
-#
-# Overrides eat_blanks_after_open_brace and eat_blanks_before_close_brace.
-nl_inside_namespace = 0 # unsigned number
-
-# The number of newlines after '}' of a namespace.
-nl_after_namespace = 0 # unsigned number
-
-# The number of newlines before an access specifier label. This also includes
-# the Qt-specific 'signals:' and 'slots:'. Will not change the newline count
-# if after a brace open.
-#
-# 0: No change (default).
-nl_before_access_spec = 0 # unsigned number
-
-# The number of newlines after an access specifier label. This also includes
-# the Qt-specific 'signals:' and 'slots:'. Will not change the newline count
-# if after a brace open.
-#
-# 0: No change (default).
-#
-# Overrides nl_typedef_blk_start and nl_var_def_blk_start.
-nl_after_access_spec = 0 # unsigned number
-
-# The number of newlines between a function definition and the function
-# comment, as in '// comment\n <here> void foo() {...}'.
-#
-# 0: No change (default).
-nl_comment_func_def = 0 # unsigned number
-
-# The number of newlines after a try-catch-finally block that isn't followed
-# by a brace close.
-#
-# 0: No change (default).
-nl_after_try_catch_finally = 0 # unsigned number
-
-# (C#) The number of newlines before and after a property, indexer or event
-# declaration.
-#
-# 0: No change (default).
-nl_around_cs_property = 0 # unsigned number
-
-# (C#) The number of newlines between the get/set/add/remove handlers.
-#
-# 0: No change (default).
-nl_between_get_set = 0 # unsigned number
-
-# (C#) Add or remove newline between property and the '{'.
-nl_property_brace = ignore # ignore/add/remove/force/not_defined
-
-# Whether to remove blank lines after '{'.
-eat_blanks_after_open_brace = false # true/false
-
-# Whether to remove blank lines before '}'.
-eat_blanks_before_close_brace = false # true/false
-
-# How aggressively to remove extra newlines not in preprocessor.
-#
-# 0: No change (default)
-# 1: Remove most newlines not handled by other config
-# 2: Remove all newlines and reformat completely by config
-nl_remove_extra_newlines = 0 # unsigned number
-
-# (Java) Add or remove newline after an annotation statement. Only affects
-# annotations that are after a newline.
-nl_after_annotation = ignore # ignore/add/remove/force/not_defined
-
-# (Java) Add or remove newline between two annotations.
-nl_between_annotation = ignore # ignore/add/remove/force/not_defined
-
-# The number of newlines before a whole-file #ifdef.
-#
-# 0: No change (default).
-nl_before_whole_file_ifdef = 0 # unsigned number
-
-# The number of newlines after a whole-file #ifdef.
-#
-# 0: No change (default).
-nl_after_whole_file_ifdef = 0 # unsigned number
-
-# The number of newlines before a whole-file #endif.
-#
-# 0: No change (default).
-nl_before_whole_file_endif = 0 # unsigned number
-
-# The number of newlines after a whole-file #endif.
-#
-# 0: No change (default).
-nl_after_whole_file_endif = 0 # unsigned number
-
-#
-# Positioning options
-#
-
-# The position of arithmetic operators in wrapped expressions.
-pos_arith = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
-
-# The position of assignment in wrapped expressions. Do not affect '='
-# followed by '{'.
-pos_assign = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
-
-# The position of Boolean operators in wrapped expressions.
-pos_bool = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
-
-# The position of comparison operators in wrapped expressions.
-pos_compare = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
-
-# The position of conditional operators, as in the '?' and ':' of
-# 'expr ? stmt : stmt', in wrapped expressions.
-pos_conditional = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
-
-# The position of the comma in wrapped expressions.
-pos_comma = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
-
-# The position of the comma in enum entries.
-pos_enum_comma = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
-
-# The position of the comma in the base class list if there is more than one
-# line. Affects nl_class_init_args.
-pos_class_comma = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
-
-# The position of the comma in the constructor initialization list.
-# Related to nl_constr_colon, nl_constr_init_args and pos_constr_colon.
-pos_constr_comma = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
-
-# The position of trailing/leading class colon, between class and base class
-# list. Affects nl_class_colon.
-pos_class_colon = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
-
-# The position of colons between constructor and member initialization.
-# Related to nl_constr_colon, nl_constr_init_args and pos_constr_comma.
-pos_constr_colon = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
-
-# The position of shift operators in wrapped expressions.
-pos_shift = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
-
-#
-# Line splitting options
-#
-
-# Try to limit code width to N columns.
-code_width = 0 # unsigned number
-
-# Whether to fully split long 'for' statements at semi-colons.
-ls_for_split_full = false # true/false
-
-# Whether to fully split long function prototypes/calls at commas.
-# The option ls_code_width has priority over the option ls_func_split_full.
-ls_func_split_full = false # true/false
-
-# Whether to split lines as close to code_width as possible and ignore some
-# groupings.
-# The option ls_code_width has priority over the option ls_func_split_full.
-ls_code_width = false # true/false
-
-#
-# Code alignment options (not left column spaces/tabs)
-#
-
-# Whether to keep non-indenting tabs.
-align_keep_tabs = false # true/false
-
-# Whether to use tabs for aligning.
-align_with_tabs = false # true/false
-
-# Whether to bump out to the next tab when aligning.
-align_on_tabstop = false # true/false
-
-# Whether to right-align numbers.
-align_number_right = false # true/false
-
-# Whether to keep whitespace not required for alignment.
-align_keep_extra_space = false # true/false
-
-# Whether to align variable definitions in prototypes and functions.
-align_func_params = false # true/false
-
-# The span for aligning parameter definitions in function on parameter name.
-#
-# 0: Don't align (default).
-align_func_params_span = 0 # unsigned number
-
-# The threshold for aligning function parameter definitions.
-# Use a negative number for absolute thresholds.
-#
-# 0: No limit (default).
-align_func_params_thresh = 0 # number
-
-# The gap for aligning function parameter definitions.
-align_func_params_gap = 0 # unsigned number
-
-# The span for aligning constructor value.
-#
-# 0: Don't align (default).
-align_constr_value_span = 0 # unsigned number
-
-# The threshold for aligning constructor value.
-# Use a negative number for absolute thresholds.
-#
-# 0: No limit (default).
-align_constr_value_thresh = 0 # number
-
-# The gap for aligning constructor value.
-align_constr_value_gap = 0 # unsigned number
-
-# Whether to align parameters in single-line functions that have the same
-# name. The function names must already be aligned with each other.
-align_same_func_call_params = false # true/false
-
-# The span for aligning function-call parameters for single line functions.
-#
-# 0: Don't align (default).
-align_same_func_call_params_span = 0 # unsigned number
-
-# The threshold for aligning function-call parameters for single line
-# functions.
-# Use a negative number for absolute thresholds.
-#
-# 0: No limit (default).
-align_same_func_call_params_thresh = 0 # number
-
-# The span for aligning variable definitions.
-#
-# 0: Don't align (default).
-align_var_def_span = 0 # unsigned number
-
-# How to consider (or treat) the '*' in the alignment of variable definitions.
-#
-# 0: Part of the type 'void * foo;' (default)
-# 1: Part of the variable 'void *foo;'
-# 2: Dangling 'void *foo;'
-# Dangling: the '*' will not be taken into account when aligning.
-align_var_def_star_style = 0 # unsigned number
-
-# How to consider (or treat) the '&' in the alignment of variable definitions.
-#
-# 0: Part of the type 'long & foo;' (default)
-# 1: Part of the variable 'long &foo;'
-# 2: Dangling 'long &foo;'
-# Dangling: the '&' will not be taken into account when aligning.
-align_var_def_amp_style = 0 # unsigned number
-
-# The threshold for aligning variable definitions.
-# Use a negative number for absolute thresholds.
-#
-# 0: No limit (default).
-align_var_def_thresh = 0 # number
-
-# The gap for aligning variable definitions.
-align_var_def_gap = 0 # unsigned number
-
-# Whether to align the colon in struct bit fields.
-align_var_def_colon = false # true/false
-
-# The gap for aligning the colon in struct bit fields.
-align_var_def_colon_gap = 0 # unsigned number
-
-# Whether to align any attribute after the variable name.
-align_var_def_attribute = false # true/false
-
-# Whether to align inline struct/enum/union variable definitions.
-align_var_def_inline = false # true/false
-
-# The span for aligning on '=' in assignments.
-#
-# 0: Don't align (default).
-align_assign_span = 0 # unsigned number
-
-# The span for aligning on '=' in function prototype modifier.
-#
-# 0: Don't align (default).
-align_assign_func_proto_span = 0 # unsigned number
-
-# The threshold for aligning on '=' in assignments.
-# Use a negative number for absolute thresholds.
-#
-# 0: No limit (default).
-align_assign_thresh = 0 # number
-
-# How to apply align_assign_span to function declaration "assignments", i.e.
-# 'virtual void foo() = 0' or '~foo() = {default|delete}'.
-#
-# 0: Align with other assignments (default)
-# 1: Align with each other, ignoring regular assignments
-# 2: Don't align
-align_assign_decl_func = 0 # unsigned number
-
-# The span for aligning on '=' in enums.
-#
-# 0: Don't align (default).
-align_enum_equ_span = 0 # unsigned number
-
-# The threshold for aligning on '=' in enums.
-# Use a negative number for absolute thresholds.
-#
-# 0: no limit (default).
-align_enum_equ_thresh = 0 # number
-
-# The span for aligning class member definitions.
-#
-# 0: Don't align (default).
-align_var_class_span = 0 # unsigned number
-
-# The threshold for aligning class member definitions.
-# Use a negative number for absolute thresholds.
-#
-# 0: No limit (default).
-align_var_class_thresh = 0 # number
-
-# The gap for aligning class member definitions.
-align_var_class_gap = 0 # unsigned number
-
-# The span for aligning struct/union member definitions.
-#
-# 0: Don't align (default).
-align_var_struct_span = 0 # unsigned number
-
-# The threshold for aligning struct/union member definitions.
-# Use a negative number for absolute thresholds.
-#
-# 0: No limit (default).
-align_var_struct_thresh = 0 # number
-
-# The gap for aligning struct/union member definitions.
-align_var_struct_gap = 0 # unsigned number
-
-# The span for aligning struct initializer values.
-#
-# 0: Don't align (default).
-align_struct_init_span = 0 # unsigned number
-
-# The span for aligning single-line typedefs.
-#
-# 0: Don't align (default).
-align_typedef_span = 0 # unsigned number
-
-# The minimum space between the type and the synonym of a typedef.
-align_typedef_gap = 0 # unsigned number
-
-# How to align typedef'd functions with other typedefs.
-#
-# 0: Don't mix them at all (default)
-# 1: Align the open parenthesis with the types
-# 2: Align the function type name with the other type names
-align_typedef_func = 0 # unsigned number
-
-# How to consider (or treat) the '*' in the alignment of typedefs.
-#
-# 0: Part of the typedef type, 'typedef int * pint;' (default)
-# 1: Part of type name: 'typedef int *pint;'
-# 2: Dangling: 'typedef int *pint;'
-# Dangling: the '*' will not be taken into account when aligning.
-align_typedef_star_style = 0 # unsigned number
-
-# How to consider (or treat) the '&' in the alignment of typedefs.
-#
-# 0: Part of the typedef type, 'typedef int & intref;' (default)
-# 1: Part of type name: 'typedef int &intref;'
-# 2: Dangling: 'typedef int &intref;'
-# Dangling: the '&' will not be taken into account when aligning.
-align_typedef_amp_style = 0 # unsigned number
-
-# The span for aligning comments that end lines.
-#
-# 0: Don't align (default).
-align_right_cmt_span = 0 # unsigned number
-
-# Minimum number of columns between preceding text and a trailing comment in
-# order for the comment to qualify for being aligned. Must be non-zero to have
-# an effect.
-align_right_cmt_gap = 0 # unsigned number
-
-# If aligning comments, whether to mix with comments after '}' and #endif with
-# less than three spaces before the comment.
-align_right_cmt_mix = false # true/false
-
-# Whether to only align trailing comments that are at the same brace level.
-align_right_cmt_same_level = false # true/false
-
-# Minimum column at which to align trailing comments. Comments which are
-# aligned beyond this column, but which can be aligned in a lesser column,
-# may be "pulled in".
-#
-# 0: Ignore (default).
-align_right_cmt_at_col = 0 # unsigned number
-
-# The span for aligning function prototypes.
-#
-# 0: Don't align (default).
-align_func_proto_span = 0 # unsigned number
-
-# How to consider (or treat) the '*' in the alignment of function prototypes.
-#
-# 0: Part of the type 'void * foo();' (default)
-# 1: Part of the function 'void *foo();'
-# 2: Dangling 'void *foo();'
-# Dangling: the '*' will not be taken into account when aligning.
-align_func_proto_star_style = 0 # unsigned number
-
-# How to consider (or treat) the '&' in the alignment of function prototypes.
-#
-# 0: Part of the type 'long & foo();' (default)
-# 1: Part of the function 'long &foo();'
-# 2: Dangling 'long &foo();'
-# Dangling: the '&' will not be taken into account when aligning.
-align_func_proto_amp_style = 0 # unsigned number
-
-# The threshold for aligning function prototypes.
-# Use a negative number for absolute thresholds.
-#
-# 0: No limit (default).
-align_func_proto_thresh = 0 # number
-
-# Minimum gap between the return type and the function name.
-align_func_proto_gap = 0 # unsigned number
-
-# Whether to align function prototypes on the 'operator' keyword instead of
-# what follows.
-align_on_operator = false # true/false
-
-# Whether to mix aligning prototype and variable declarations. If true,
-# align_var_def_XXX options are used instead of align_func_proto_XXX options.
-align_mix_var_proto = false # true/false
-
-# Whether to align single-line functions with function prototypes.
-# Uses align_func_proto_span.
-align_single_line_func = false # true/false
-
-# Whether to align the open brace of single-line functions.
-# Requires align_single_line_func=true. Uses align_func_proto_span.
-align_single_line_brace = false # true/false
-
-# Gap for align_single_line_brace.
-align_single_line_brace_gap = 0 # unsigned number
-
-# (OC) The span for aligning Objective-C message specifications.
-#
-# 0: Don't align (default).
-align_oc_msg_spec_span = 0 # unsigned number
-
-# Whether to align macros wrapped with a backslash and a newline. This will
-# not work right if the macro contains a multi-line comment.
-align_nl_cont = false # true/false
-
-# Whether to align macro functions and variables together.
-align_pp_define_together = false # true/false
-
-# The span for aligning on '#define' bodies.
-#
-# =0: Don't align (default)
-# >0: Number of lines (including comments) between blocks
-align_pp_define_span = 0 # unsigned number
-
-# The minimum space between label and value of a preprocessor define.
-align_pp_define_gap = 0 # unsigned number
-
-# Whether to align lines that start with '<<' with previous '<<'.
-#
-# Default: true
-align_left_shift = true # true/false
-
-# Whether to align comma-separated statements following '<<' (as used to
-# initialize Eigen matrices).
-align_eigen_comma_init = false # true/false
-
-# Whether to align text after 'asm volatile ()' colons.
-align_asm_colon = false # true/false
-
-# (OC) Span for aligning parameters in an Objective-C message call
-# on the ':'.
-#
-# 0: Don't align.
-align_oc_msg_colon_span = 0 # unsigned number
-
-# (OC) Whether to always align with the first parameter, even if it is too
-# short.
-align_oc_msg_colon_first = false # true/false
-
-# (OC) Whether to align parameters in an Objective-C '+' or '-' declaration
-# on the ':'.
-align_oc_decl_colon = false # true/false
-
-# (OC) Whether to not align parameters in an Objectve-C message call if first
-# colon is not on next line of the message call (the same way Xcode does
-# aligment)
-align_oc_msg_colon_xcode_like = false # true/false
-
-#
-# Comment modification options
-#
-
-# Try to wrap comments at N columns.
-cmt_width = 0 # unsigned number
-
-# How to reflow comments.
-#
-# 0: No reflowing (apart from the line wrapping due to cmt_width) (default)
-# 1: No touching at all
-# 2: Full reflow (enable cmt_indent_multi for indent with line wrapping due to cmt_width)
-cmt_reflow_mode = 0 # unsigned number
-
-# Path to a file that contains regular expressions describing patterns for
-# which the end of one line and the beginning of the next will be folded into
-# the same sentence or paragraph during full comment reflow. The regular
-# expressions are described using ECMAScript syntax. The syntax for this
-# specification is as follows, where "..." indicates the custom regular
-# expression and "n" indicates the nth end_of_prev_line_regex and
-# beg_of_next_line_regex regular expression pair:
-#
-# end_of_prev_line_regex[1] = "...$"
-# beg_of_next_line_regex[1] = "^..."
-# end_of_prev_line_regex[2] = "...$"
-# beg_of_next_line_regex[2] = "^..."
-# .
-# .
-# .
-# end_of_prev_line_regex[n] = "...$"
-# beg_of_next_line_regex[n] = "^..."
-#
-# Note that use of this option overrides the default reflow fold regular
-# expressions, which are internally defined as follows:
-#
-# end_of_prev_line_regex[1] = "[\w,\]\)]$"
-# beg_of_next_line_regex[1] = "^[\w,\[\(]"
-# end_of_prev_line_regex[2] = "\.$"
-# beg_of_next_line_regex[2] = "^[A-Z]"
-cmt_reflow_fold_regex_file = "" # string
-
-# Whether to indent wrapped lines to the start of the encompassing paragraph
-# during full comment reflow (cmt_reflow_mode = 2). Overrides the value
-# specified by cmt_sp_after_star_cont.
-#
-# Note that cmt_align_doxygen_javadoc_tags overrides this option for
-# paragraphs associated with javadoc tags
-cmt_reflow_indent_to_paragraph_start = false # true/false
-
-# Whether to convert all tabs to spaces in comments. If false, tabs in
-# comments are left alone, unless used for indenting.
-cmt_convert_tab_to_spaces = false # true/false
-
-# Whether to apply changes to multi-line comments, including cmt_width,
-# keyword substitution and leading chars.
-#
-# Default: true
-cmt_indent_multi = true # true/false
-
-# Whether to align doxygen javadoc-style tags ('@param', '@return', etc.)
-# and corresponding fields such that groups of consecutive block tags,
-# parameter names, and descriptions align with one another. Overrides that
-# which is specified by the cmt_sp_after_star_cont. If cmt_width > 0, it may
-# be necessary to enable cmt_indent_multi and set cmt_reflow_mode = 2
-# in order to achieve the desired alignment for line-wrapping.
-cmt_align_doxygen_javadoc_tags = false # true/false
-
-# The number of spaces to insert after the star and before doxygen
-# javadoc-style tags (@param, @return, etc). Requires enabling
-# cmt_align_doxygen_javadoc_tags. Overrides that which is specified by the
-# cmt_sp_after_star_cont.
-#
-# Default: 1
-cmt_sp_before_doxygen_javadoc_tags = 1 # unsigned number
-
-# Whether to change trailing, single-line c-comments into cpp-comments.
-cmt_trailing_single_line_c_to_cpp = false # true/false
-
-# Whether to group c-comments that look like they are in a block.
-cmt_c_group = false # true/false
-
-# Whether to put an empty '/*' on the first line of the combined c-comment.
-cmt_c_nl_start = false # true/false
-
-# Whether to add a newline before the closing '*/' of the combined c-comment.
-cmt_c_nl_end = false # true/false
-
-# Whether to change cpp-comments into c-comments.
-cmt_cpp_to_c = false # true/false
-
-# Whether to group cpp-comments that look like they are in a block. Only
-# meaningful if cmt_cpp_to_c=true.
-cmt_cpp_group = false # true/false
-
-# Whether to put an empty '/*' on the first line of the combined cpp-comment
-# when converting to a c-comment.
-#
-# Requires cmt_cpp_to_c=true and cmt_cpp_group=true.
-cmt_cpp_nl_start = false # true/false
-
-# Whether to add a newline before the closing '*/' of the combined cpp-comment
-# when converting to a c-comment.
-#
-# Requires cmt_cpp_to_c=true and cmt_cpp_group=true.
-cmt_cpp_nl_end = false # true/false
-
-# Whether to put a star on subsequent comment lines.
-cmt_star_cont = false # true/false
-
-# The number of spaces to insert at the start of subsequent comment lines.
-cmt_sp_before_star_cont = 0 # unsigned number
-
-# The number of spaces to insert after the star on subsequent comment lines.
-cmt_sp_after_star_cont = 0 # unsigned number
-
-# For multi-line comments with a '*' lead, remove leading spaces if the first
-# and last lines of the comment are the same length.
-#
-# Default: true
-cmt_multi_check_last = true # true/false
-
-# For multi-line comments with a '*' lead, remove leading spaces if the first
-# and last lines of the comment are the same length AND if the length is
-# bigger as the first_len minimum.
-#
-# Default: 4
-cmt_multi_first_len_minimum = 4 # unsigned number
-
-# Path to a file that contains text to insert at the beginning of a file if
-# the file doesn't start with a C/C++ comment. If the inserted text contains
-# '$(filename)', that will be replaced with the current file's name.
-cmt_insert_file_header = "" # string
-
-# Path to a file that contains text to insert at the end of a file if the
-# file doesn't end with a C/C++ comment. If the inserted text contains
-# '$(filename)', that will be replaced with the current file's name.
-cmt_insert_file_footer = "" # string
-
-# Path to a file that contains text to insert before a function definition if
-# the function isn't preceded by a C/C++ comment. If the inserted text
-# contains '$(function)', '$(javaparam)' or '$(fclass)', these will be
-# replaced with, respectively, the name of the function, the javadoc '@param'
-# and '@return' stuff, or the name of the class to which the member function
-# belongs.
-cmt_insert_func_header = "" # string
-
-# Path to a file that contains text to insert before a class if the class
-# isn't preceded by a C/C++ comment. If the inserted text contains '$(class)',
-# that will be replaced with the class name.
-cmt_insert_class_header = "" # string
-
-# Path to a file that contains text to insert before an Objective-C message
-# specification, if the method isn't preceded by a C/C++ comment. If the
-# inserted text contains '$(message)' or '$(javaparam)', these will be
-# replaced with, respectively, the name of the function, or the javadoc
-# '@param' and '@return' stuff.
-cmt_insert_oc_msg_header = "" # string
-
-# Whether a comment should be inserted if a preprocessor is encountered when
-# stepping backwards from a function name.
-#
-# Applies to cmt_insert_oc_msg_header, cmt_insert_func_header and
-# cmt_insert_class_header.
-cmt_insert_before_preproc = false # true/false
-
-# Whether a comment should be inserted if a function is declared inline to a
-# class definition.
-#
-# Applies to cmt_insert_func_header.
-#
-# Default: true
-cmt_insert_before_inlines = true # true/false
-
-# Whether a comment should be inserted if the function is a class constructor
-# or destructor.
-#
-# Applies to cmt_insert_func_header.
-cmt_insert_before_ctor_dtor = false # true/false
-
-#
-# Code modifying options (non-whitespace)
-#
-
-# Add or remove braces on a single-line 'do' statement.
-mod_full_brace_do = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove braces on a single-line 'for' statement.
-mod_full_brace_for = ignore # ignore/add/remove/force/not_defined
-
-# (Pawn) Add or remove braces on a single-line function definition.
-mod_full_brace_function = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove braces on a single-line 'if' statement. Braces will not be
-# removed if the braced statement contains an 'else'.
-mod_full_brace_if = ignore # ignore/add/remove/force/not_defined
-
-# Whether to enforce that all blocks of an 'if'/'else if'/'else' chain either
-# have, or do not have, braces. If true, braces will be added if any block
-# needs braces, and will only be removed if they can be removed from all
-# blocks.
-#
-# Overrides mod_full_brace_if.
-mod_full_brace_if_chain = false # true/false
-
-# Whether to add braces to all blocks of an 'if'/'else if'/'else' chain.
-# If true, mod_full_brace_if_chain will only remove braces from an 'if' that
-# does not have an 'else if' or 'else'.
-mod_full_brace_if_chain_only = false # true/false
-
-# Add or remove braces on single-line 'while' statement.
-mod_full_brace_while = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove braces on single-line 'using ()' statement.
-mod_full_brace_using = ignore # ignore/add/remove/force/not_defined
-
-# Don't remove braces around statements that span N newlines
-mod_full_brace_nl = 0 # unsigned number
-
-# Whether to prevent removal of braces from 'if'/'for'/'while'/etc. blocks
-# which span multiple lines.
-#
-# Affects:
-# mod_full_brace_for
-# mod_full_brace_if
-# mod_full_brace_if_chain
-# mod_full_brace_if_chain_only
-# mod_full_brace_while
-# mod_full_brace_using
-#
-# Does not affect:
-# mod_full_brace_do
-# mod_full_brace_function
-mod_full_brace_nl_block_rem_mlcond = false # true/false
-
-# Add or remove unnecessary parenthesis on 'return' statement.
-mod_paren_on_return = ignore # ignore/add/remove/force/not_defined
-
-# (Pawn) Whether to change optional semicolons to real semicolons.
-mod_pawn_semicolon = false # true/false
-
-# Whether to fully parenthesize Boolean expressions in 'while' and 'if'
-# statement, as in 'if (a && b > c)' => 'if (a && (b > c))'.
-mod_full_paren_if_bool = false # true/false
-
-# Whether to remove superfluous semicolons.
-mod_remove_extra_semicolon = false # true/false
-
-# Whether to remove duplicate include.
-mod_remove_duplicate_include = false # true/false
-
-# If a function body exceeds the specified number of newlines and doesn't have
-# a comment after the close brace, a comment will be added.
-mod_add_long_function_closebrace_comment = 0 # unsigned number
-
-# If a namespace body exceeds the specified number of newlines and doesn't
-# have a comment after the close brace, a comment will be added.
-mod_add_long_namespace_closebrace_comment = 0 # unsigned number
-
-# If a class body exceeds the specified number of newlines and doesn't have a
-# comment after the close brace, a comment will be added.
-mod_add_long_class_closebrace_comment = 0 # unsigned number
-
-# If a switch body exceeds the specified number of newlines and doesn't have a
-# comment after the close brace, a comment will be added.
-mod_add_long_switch_closebrace_comment = 0 # unsigned number
-
-# If an #ifdef body exceeds the specified number of newlines and doesn't have
-# a comment after the #endif, a comment will be added.
-mod_add_long_ifdef_endif_comment = 0 # unsigned number
-
-# If an #ifdef or #else body exceeds the specified number of newlines and
-# doesn't have a comment after the #else, a comment will be added.
-mod_add_long_ifdef_else_comment = 0 # unsigned number
-
-# Whether to take care of the case by the mod_sort_xx options.
-mod_sort_case_sensitive = false # true/false
-
-# Whether to sort consecutive single-line 'import' statements.
-mod_sort_import = false # true/false
-
-# (C#) Whether to sort consecutive single-line 'using' statements.
-mod_sort_using = false # true/false
-
-# Whether to sort consecutive single-line '#include' statements (C/C++) and
-# '#import' statements (Objective-C). Be aware that this has the potential to
-# break your code if your includes/imports have ordering dependencies.
-mod_sort_include = false # true/false
-
-# Whether to prioritize '#include' and '#import' statements that contain
-# filename without extension when sorting is enabled.
-mod_sort_incl_import_prioritize_filename = false # true/false
-
-# Whether to prioritize '#include' and '#import' statements that does not
-# contain extensions when sorting is enabled.
-mod_sort_incl_import_prioritize_extensionless = false # true/false
-
-# Whether to prioritize '#include' and '#import' statements that contain
-# angle over quotes when sorting is enabled.
-mod_sort_incl_import_prioritize_angle_over_quotes = false # true/false
-
-# Whether to ignore file extension in '#include' and '#import' statements
-# for sorting comparison.
-mod_sort_incl_import_ignore_extension = false # true/false
-
-# Whether to group '#include' and '#import' statements when sorting is enabled.
-mod_sort_incl_import_grouping_enabled = false # true/false
-
-# Whether to move a 'break' that appears after a fully braced 'case' before
-# the close brace, as in 'case X: { ... } break;' => 'case X: { ... break; }'.
-mod_move_case_break = false # true/false
-
-# Add or remove braces around a fully braced case statement. Will only remove
-# braces if there are no variable declarations in the block.
-mod_case_brace = ignore # ignore/add/remove/force/not_defined
-
-# Whether to remove a void 'return;' that appears as the last statement in a
-# function.
-mod_remove_empty_return = false # true/false
-
-# Add or remove the comma after the last value of an enumeration.
-mod_enum_last_comma = ignore # ignore/add/remove/force/not_defined
-
-# (OC) Whether to organize the properties. If true, properties will be
-# rearranged according to the mod_sort_oc_property_*_weight factors.
-mod_sort_oc_properties = false # true/false
-
-# (OC) Weight of a class property modifier.
-mod_sort_oc_property_class_weight = 0 # number
-
-# (OC) Weight of 'atomic' and 'nonatomic'.
-mod_sort_oc_property_thread_safe_weight = 0 # number
-
-# (OC) Weight of 'readwrite' when organizing properties.
-mod_sort_oc_property_readwrite_weight = 0 # number
-
-# (OC) Weight of a reference type specifier ('retain', 'copy', 'assign',
-# 'weak', 'strong') when organizing properties.
-mod_sort_oc_property_reference_weight = 0 # number
-
-# (OC) Weight of getter type ('getter=') when organizing properties.
-mod_sort_oc_property_getter_weight = 0 # number
-
-# (OC) Weight of setter type ('setter=') when organizing properties.
-mod_sort_oc_property_setter_weight = 0 # number
-
-# (OC) Weight of nullability type ('nullable', 'nonnull', 'null_unspecified',
-# 'null_resettable') when organizing properties.
-mod_sort_oc_property_nullability_weight = 0 # number
-
-#
-# Preprocessor options
-#
-
-# Add or remove indentation of preprocessor directives inside #if blocks
-# at brace level 0 (file-level).
-pp_indent = ignore # ignore/add/remove/force/not_defined
-
-# Whether to indent #if/#else/#endif at the brace level. If false, these are
-# indented from column 1.
-pp_indent_at_level = false # true/false
-
-# Specifies the number of columns to indent preprocessors per level
-# at brace level 0 (file-level). If pp_indent_at_level=false, also specifies
-# the number of columns to indent preprocessors per level
-# at brace level > 0 (function-level).
-#
-# Default: 1
-pp_indent_count = 1 # unsigned number
-
-# Add or remove space after # based on pp_level of #if blocks.
-pp_space = ignore # ignore/add/remove/force/not_defined
-
-# Sets the number of spaces per level added with pp_space.
-pp_space_count = 0 # unsigned number
-
-# The indent for '#region' and '#endregion' in C# and '#pragma region' in
-# C/C++. Negative values decrease indent down to the first column.
-pp_indent_region = 0 # number
-
-# Whether to indent the code between #region and #endregion.
-pp_region_indent_code = false # true/false
-
-# If pp_indent_at_level=true, sets the indent for #if, #else and #endif when
-# not at file-level. Negative values decrease indent down to the first column.
-#
-# =0: Indent preprocessors using output_tab_size
-# >0: Column at which all preprocessors will be indented
-pp_indent_if = 0 # number
-
-# Whether to indent the code between #if, #else and #endif.
-pp_if_indent_code = false # true/false
-
-# Whether to indent the body of an #if that encompasses all the code in the file.
-pp_indent_in_guard = false # true/false
-
-# Whether to indent '#define' at the brace level. If false, these are
-# indented from column 1.
-pp_define_at_level = false # true/false
-
-# Whether to indent '#include' at the brace level.
-pp_include_at_level = false # true/false
-
-# Whether to ignore the '#define' body while formatting.
-pp_ignore_define_body = false # true/false
-
-# Whether to indent case statements between #if, #else, and #endif.
-# Only applies to the indent of the preprocesser that the case statements
-# directly inside of.
-#
-# Default: true
-pp_indent_case = true # true/false
-
-# Whether to indent whole function definitions between #if, #else, and #endif.
-# Only applies to the indent of the preprocesser that the function definition
-# is directly inside of.
-#
-# Default: true
-pp_indent_func_def = true # true/false
-
-# Whether to indent extern C blocks between #if, #else, and #endif.
-# Only applies to the indent of the preprocesser that the extern block is
-# directly inside of.
-#
-# Default: true
-pp_indent_extern = true # true/false
-
-# Whether to indent braces directly inside #if, #else, and #endif.
-# Only applies to the indent of the preprocesser that the braces are directly
-# inside of.
-#
-# Default: true
-pp_indent_brace = true # true/false
-
-#
-# Sort includes options
-#
-
-# The regex for include category with priority 0.
-include_category_0 = "" # string
-
-# The regex for include category with priority 1.
-include_category_1 = "" # string
-
-# The regex for include category with priority 2.
-include_category_2 = "" # string
-
-#
-# Use or Do not Use options
-#
-
-# true: indent_func_call_param will be used (default)
-# false: indent_func_call_param will NOT be used
-#
-# Default: true
-use_indent_func_call_param = true # true/false
-
-# The value of the indentation for a continuation line is calculated
-# differently if the statement is:
-# - a declaration: your case with QString fileName ...
-# - an assignment: your case with pSettings = new QSettings( ...
-#
-# At the second case the indentation value might be used twice:
-# - at the assignment
-# - at the function call (if present)
-#
-# To prevent the double use of the indentation value, use this option with the
-# value 'true'.
-#
-# true: indent_continue will be used only once
-# false: indent_continue will be used every time (default)
-use_indent_continue_only_once = false # true/false
-
-# The value might be used twice:
-# - at the assignment
-# - at the opening brace
-#
-# To prevent the double use of the indentation value, use this option with the
-# value 'true'.
-#
-# true: indentation will be used only once
-# false: indentation will be used every time (default)
-indent_cpp_lambda_only_once = false # true/false
-
-# Whether sp_after_angle takes precedence over sp_inside_fparen. This was the
-# historic behavior, but is probably not the desired behavior, so this is off
-# by default.
-use_sp_after_angle_always = false # true/false
-
-# Whether to apply special formatting for Qt SIGNAL/SLOT macros. Essentially,
-# this tries to format these so that they match Qt's normalized form (i.e. the
-# result of QMetaObject::normalizedSignature), which can slightly improve the
-# performance of the QObject::connect call, rather than how they would
-# otherwise be formatted.
-#
-# See options_for_QT.cpp for details.
-#
-# Default: true
-use_options_overriding_for_qt_macros = true # true/false
-
-# If true: the form feed character is removed from the list of whitespace
-# characters. See https://en.cppreference.com/w/cpp/string/byte/isspace.
-use_form_feed_no_more_as_whitespace_character = false # true/false
-
-#
-# Warn levels - 1: error, 2: warning (default), 3: note
-#
-
-# (C#) Warning is given if doing tab-to-\t replacement and we have found one
-# in a C# verbatim string literal.
-#
-# Default: 2
-warn_level_tabs_found_in_verbatim_string_literals = 2 # unsigned number
-
-# Limit the number of loops.
-# Used by uncrustify.cpp to exit from infinite loop.
-# 0: no limit.
-debug_max_number_of_loops = 0 # number
-
-# Set the number of the line to protocol;
-# Used in the function prot_the_line if the 2. parameter is zero.
-# 0: nothing protocol.
-debug_line_number_to_protocol = 0 # number
-
-# Set the number of second(s) before terminating formatting the current file,
-# 0: no timeout.
-# only for linux
-debug_timeout = 0 # number
-
-# Set the number of characters to be printed if the text is too long,
-# 0: do not truncate.
-debug_truncate = 0 # unsigned number
-
-# Meaning of the settings:
-# Ignore - do not do any changes
-# Add - makes sure there is 1 or more space/brace/newline/etc
-# Force - makes sure there is exactly 1 space/brace/newline/etc,
-# behaves like Add in some contexts
-# Remove - removes space/brace/newline/etc
-#
-#
-# - Token(s) can be treated as specific type(s) with the 'set' option:
-# `set tokenType tokenString [tokenString...]`
-#
-# Example:
-# `set BOOL __AND__ __OR__`
-#
-# tokenTypes are defined in src/token_enum.h, use them without the
-# 'CT_' prefix: 'CT_BOOL' => 'BOOL'
-#
-#
-# - Token(s) can be treated as type(s) with the 'type' option.
-# `type tokenString [tokenString...]`
-#
-# Example:
-# `type int c_uint_8 Rectangle`
-#
-# This can also be achieved with `set TYPE int c_uint_8 Rectangle`
-#
-#
-# To embed whitespace in tokenStrings use the '\' escape character, or quote
-# the tokenStrings. These quotes are supported: "'`
-#
-#
-# - Support for the auto detection of languages through the file ending can be
-# added using the 'file_ext' command.
-# `file_ext langType langString [langString..]`
-#
-# Example:
-# `file_ext CPP .ch .cxx .cpp.in`
-#
-# langTypes are defined in uncrusify_types.h in the lang_flag_e enum, use
-# them without the 'LANG_' prefix: 'LANG_CPP' => 'CPP'
-#
-#
-# - Custom macro-based indentation can be set up using 'macro-open',
-# 'macro-else' and 'macro-close'.
-# `(macro-open | macro-else | macro-close) tokenString`
-#
-# Example:
-# `macro-open BEGIN_TEMPLATE_MESSAGE_MAP`
-# `macro-open BEGIN_MESSAGE_MAP`
-# `macro-close END_MESSAGE_MAP`
-#
-#
-# option(s) with 'not default' value: 0
-#
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/freebsd.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/freebsd.cfg
deleted file mode 100644
index af170f88..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/freebsd.cfg
+++ /dev/null
@@ -1,385 +0,0 @@
-# Uncrustify 0.55
-newlines = lf
-input_tab_size = 8
-output_tab_size = 8
-string_escape_char = 92
-string_escape_char2 = 0
-indent_columns = 8
-indent_continue = 4
-indent_with_tabs = 2
-indent_align_string = false
-indent_xml_string = 0
-indent_brace = 0
-indent_braces = false
-indent_braces_no_func = false
-indent_brace_parent = false
-indent_namespace = false
-indent_namespace_level = 0
-indent_namespace_limit = 0
-indent_extern = false
-indent_class = true
-indent_class_colon = true
-indent_else_if = false
-indent_var_def_blk = 0
-indent_func_call_param = false
-indent_func_def_param = false
-indent_func_proto_param = false
-indent_func_class_param = false
-indent_func_ctor_var_param = false
-indent_template_param = false
-indent_func_param_double = false
-indent_func_const = 0
-indent_func_throw = 0
-indent_member = 0
-indent_single_line_comments_before = 0
-indent_relative_single_line_comments = false
-indent_switch_case = 0
-indent_case_shift = 0
-indent_case_brace = 0
-indent_col1_comment = false
-indent_label = 1
-indent_access_spec = 1
-indent_access_spec_body = false
-indent_paren_nl = false
-indent_paren_close = 0
-indent_comma_paren = false
-indent_bool_paren = false
-indent_square_nl = false
-indent_preserve_sql = false
-indent_align_assign = true
-indent_off_after_assign = false
-sp_arith = ignore
-sp_assign = force
-sp_before_assign = ignore
-sp_after_assign = ignore
-sp_enum_assign = ignore
-sp_enum_before_assign = ignore
-sp_enum_after_assign = ignore
-sp_pp_concat = add
-sp_pp_stringify = add
-sp_bool = force
-sp_compare = force
-sp_inside_paren = remove
-sp_paren_paren = remove
-sp_balance_nested_parens = false
-sp_paren_brace = ignore
-sp_before_ptr_star = force
-sp_before_unnamed_ptr_star = ignore
-sp_between_ptr_star = remove
-sp_after_ptr_star = remove
-sp_after_ptr_star_func = ignore
-sp_before_ptr_star_func = ignore
-sp_before_byref = remove
-sp_before_unnamed_byref = ignore
-sp_after_byref = force
-sp_after_byref_func = ignore
-sp_before_byref_func = ignore
-sp_after_type = force
-sp_template_angle = ignore
-sp_before_angle = remove
-sp_inside_angle = remove
-sp_after_angle = force
-sp_angle_paren = ignore
-sp_angle_word = ignore
-sp_before_sparen = force
-sp_inside_sparen = remove
-sp_inside_sparen_close = ignore
-sp_inside_for = remove
-sp_inside_for_close = ignore
-sp_after_sparen = force
-sp_sparen_brace = add
-sp_invariant_paren = ignore
-sp_after_invariant_paren = ignore
-sp_special_semi = ignore
-sp_before_semi = remove
-sp_before_semi_for = ignore
-sp_before_semi_for_empty = force
-sp_between_semi_for_empty = force
-sp_after_semi = add
-sp_after_semi_for = force
-sp_after_semi_for_empty = ignore
-sp_before_square = ignore
-sp_before_squares = ignore
-sp_inside_square = remove
-sp_after_comma = force
-sp_before_comma = remove
-sp_before_ellipsis = ignore
-sp_after_class_colon = ignore
-sp_before_class_colon = ignore
-sp_before_case_colon = remove
-sp_after_operator = ignore
-sp_after_operator_sym = ignore
-sp_after_cast = remove
-sp_inside_paren_cast = ignore
-sp_cpp_cast_paren = ignore
-sp_sizeof_paren = remove
-sp_after_tag = ignore
-sp_inside_braces_enum = force
-sp_inside_braces_struct = force
-sp_inside_braces = force
-sp_inside_braces_empty = ignore
-sp_type_func = force
-sp_func_proto_paren = remove
-sp_func_def_paren = remove
-sp_inside_fparens = ignore
-sp_inside_fparen = remove
-sp_square_fparen = ignore
-sp_fparen_brace = add
-sp_func_call_paren = remove
-sp_func_call_user_paren = ignore
-sp_func_class_paren = remove
-sp_return_paren = force
-sp_attribute_paren = ignore
-sp_defined_paren = ignore
-sp_throw_paren = ignore
-sp_macro = ignore
-sp_macro_func = ignore
-sp_else_brace = ignore
-sp_brace_else = ignore
-sp_brace_typedef = force
-sp_catch_brace = ignore
-sp_brace_catch = ignore
-sp_finally_brace = ignore
-sp_brace_finally = ignore
-sp_try_brace = ignore
-sp_getset_brace = ignore
-sp_before_dc = remove
-sp_after_dc = remove
-sp_d_array_colon = ignore
-sp_not = remove
-sp_inv = remove
-sp_addr = remove
-sp_member = remove
-sp_deref = remove
-sp_sign = remove
-sp_incdec = remove
-sp_before_nl_cont = add
-sp_after_oc_scope = ignore
-sp_after_oc_colon = ignore
-sp_before_oc_colon = ignore
-sp_after_send_oc_colon = ignore
-sp_before_send_oc_colon = ignore
-sp_after_oc_type = ignore
-sp_after_oc_return_type = ignore
-sp_after_oc_at_sel = ignore
-sp_before_oc_block_caret = ignore
-sp_after_oc_block_caret = ignore
-sp_cond_colon = ignore
-sp_cond_question = ignore
-sp_case_label = remove
-sp_range = ignore
-sp_cmt_cpp_start = ignore
-sp_endif_cmt = ignore
-force_tab_after_define = true
-align_keep_tabs = false
-align_with_tabs = true
-align_on_tabstop = true
-align_number_right = true
-align_func_params = false
-align_same_func_call_params = false
-align_same_func_call_params_span = 0
-align_same_func_call_params_thresh = 0
-align_var_def_span = 0
-align_var_def_star_style = 0
-align_var_def_amp_style = 0
-align_var_def_thresh = 0
-align_var_def_gap = 0
-align_var_def_colon = false
-align_var_def_attribute = false
-align_var_def_inline = false
-align_assign_span = 0
-align_assign_thresh = 12
-align_enum_equ_span = 16
-align_enum_equ_thresh = 0
-align_var_struct_span = 99
-align_var_struct_thresh = 0
-align_var_struct_gap = 0
-align_struct_init_span = 3
-align_typedef_gap = 3
-align_typedef_span = 5
-align_typedef_func = 0
-align_typedef_star_style = 0
-align_typedef_amp_style = 0
-align_right_cmt_span = 3
-align_right_cmt_mix = false
-align_right_cmt_gap = 0
-align_right_cmt_at_col = 0
-align_func_proto_span = 0
-align_func_proto_gap = 0
-align_on_operator = false
-align_mix_var_proto = false
-align_single_line_func = false
-align_single_line_brace = false
-align_single_line_brace_gap = 0
-align_oc_msg_spec_span = 0
-align_nl_cont = true
-align_pp_define_gap = 4
-align_pp_define_span = 3
-align_left_shift = true
-align_oc_msg_colon_span = 0
-nl_collapse_empty_body = false
-nl_assign_leave_one_liners = true
-nl_class_leave_one_liners = true
-nl_enum_leave_one_liners = false
-nl_getset_leave_one_liners = false
-nl_func_leave_one_liners = false
-nl_if_leave_one_liners = false
-nl_start_of_file = remove
-nl_start_of_file_min = 0
-nl_end_of_file = force
-nl_end_of_file_min = 1
-nl_assign_brace = add
-nl_assign_square = ignore
-nl_after_square_assign = ignore
-nl_func_var_def_blk = 1
-nl_fcall_brace = add
-nl_enum_brace = remove
-nl_struct_brace = remove
-nl_union_brace = remove
-nl_if_brace = remove
-nl_brace_else = remove
-nl_elseif_brace = ignore
-nl_else_brace = remove
-nl_else_if = remove
-nl_brace_finally = ignore
-nl_finally_brace = ignore
-nl_try_brace = ignore
-nl_getset_brace = force
-nl_for_brace = add
-nl_catch_brace = ignore
-nl_brace_catch = ignore
-nl_while_brace = add
-nl_brace_brace = ignore
-nl_do_brace = add
-nl_brace_while = remove
-nl_switch_brace = add
-nl_multi_line_cond = false
-nl_multi_line_define = true
-nl_before_case = true
-nl_before_throw = ignore
-nl_after_case = true
-nl_namespace_brace = ignore
-nl_template_class = ignore
-nl_class_brace = ignore
-nl_class_init_args = ignore
-nl_func_type_name = ignore
-nl_func_type_name_class = ignore
-nl_func_scope_name = ignore
-nl_func_proto_type_name = ignore
-nl_func_paren = remove
-nl_func_decl_start = ignore
-nl_func_decl_start_single = ignore
-nl_func_decl_args = ignore
-nl_func_decl_end = ignore
-nl_func_decl_end_single = ignore
-nl_func_decl_empty = ignore
-nl_fdef_brace = add
-nl_after_return = true
-nl_return_expr = ignore
-nl_after_semicolon = true
-nl_after_brace_open = true
-nl_after_brace_open_cmt = false
-nl_after_vbrace_open = false
-nl_after_vbrace_open_empty = false
-nl_after_brace_close = true
-nl_define_macro = false
-nl_squeeze_ifdef = true
-nl_before_if = ignore
-nl_after_if = ignore
-nl_before_for = ignore
-nl_after_for = ignore
-nl_before_while = ignore
-nl_after_while = ignore
-nl_before_switch = ignore
-nl_after_switch = ignore
-nl_before_do = ignore
-nl_after_do = ignore
-nl_ds_struct_enum_cmt = false
-nl_ds_struct_enum_close_brace = false
-nl_class_colon = ignore
-nl_create_if_one_liner = false
-nl_create_for_one_liner = false
-nl_create_while_one_liner = false
-pos_arith = ignore
-pos_assign = ignore
-pos_bool = trail
-pos_compare = ignore
-pos_conditional = ignore
-pos_comma = ignore
-pos_class_comma = ignore
-pos_class_colon = ignore
-code_width = 80
-ls_for_split_full = false
-ls_func_split_full = false
-nl_max = 4
-nl_after_func_proto = 0
-nl_after_func_proto_group = 2
-nl_after_func_body = 3
-nl_after_func_body_one_liner = 0
-nl_before_block_comment = 2
-nl_before_c_comment = 0
-nl_before_cpp_comment = 0
-nl_after_multiline_comment = false
-nl_before_access_spec = 0
-nl_after_access_spec = 0
-nl_comment_func_def = 1
-nl_after_try_catch_finally = 0
-nl_around_cs_property = 0
-nl_between_get_set = 0
-eat_blanks_after_open_brace = true
-eat_blanks_before_close_brace = true
-mod_full_brace_do = add
-mod_full_brace_for = add
-mod_full_brace_function = ignore
-mod_full_brace_if = add
-mod_full_brace_if_chain = false
-mod_full_brace_nl = 0
-mod_full_brace_while = add
-mod_paren_on_return = add
-mod_pawn_semicolon = false
-mod_full_paren_if_bool = true
-mod_remove_extra_semicolon = true
-mod_add_long_function_closebrace_comment = 0
-mod_add_long_switch_closebrace_comment = 0
-mod_add_long_ifdef_endif_comment = 0
-mod_add_long_ifdef_else_comment = 0
-mod_sort_import = false
-mod_sort_using = false
-mod_sort_include = false
-mod_sort_incl_import_prioritize_filename = false
-mod_sort_incl_import_prioritize_extensionless = false
-mod_sort_incl_import_prioritize_angle_over_quotes = false
-mod_sort_incl_import_ignore_extension = false
-mod_sort_incl_import_grouping_enabled = false
-mod_move_case_break = false
-mod_case_brace = remove
-mod_remove_empty_return = true
-cmt_width = 0
-cmt_reflow_mode = 0
-cmt_indent_multi = true
-cmt_c_group = false
-cmt_c_nl_start = false
-cmt_c_nl_end = false
-cmt_cpp_group = false
-cmt_cpp_nl_start = false
-cmt_cpp_nl_end = false
-cmt_cpp_to_c = false
-cmt_star_cont = true
-cmt_sp_before_star_cont = 0
-cmt_sp_after_star_cont = 0
-cmt_multi_check_last = true
-cmt_insert_file_header = ""
-cmt_insert_file_footer = ""
-cmt_insert_func_header = ""
-cmt_insert_class_header = ""
-cmt_insert_before_preproc = false
-pp_indent = remove
-pp_indent_at_level = false
-pp_indent_count = 1
-pp_space = ignore
-pp_space_count = 0
-pp_indent_region = 0
-pp_region_indent_code = false
-pp_indent_if = 0
-pp_if_indent_code = false
-pp_define_at_level = false
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/linux.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/linux.cfg
deleted file mode 100644
index 51c88d56..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/linux.cfg
+++ /dev/null
@@ -1,123 +0,0 @@
-#
-# uncrustify config file for the linux kernel
-#
-
-indent_with_tabs = 2 # 1=indent to level only, 2=indent with tabs
-input_tab_size = 8 # original tab size
-output_tab_size = 8 # new tab size
-indent_columns = output_tab_size
-
-indent_label = 1 # pos: absolute col, neg: relative column
-
-
-#
-# inter-symbol newlines
-#
-
-nl_enum_brace = remove # "enum {" vs "enum \n {"
-nl_union_brace = remove # "union {" vs "union \n {"
-nl_struct_brace = remove # "struct {" vs "struct \n {"
-nl_do_brace = remove # "do {" vs "do \n {"
-nl_if_brace = remove # "if () {" vs "if () \n {"
-nl_for_brace = remove # "for () {" vs "for () \n {"
-nl_else_brace = remove # "else {" vs "else \n {"
-nl_while_brace = remove # "while () {" vs "while () \n {"
-nl_switch_brace = remove # "switch () {" vs "switch () \n {"
-nl_brace_while = remove # "} while" vs "} \n while" - cuddle while
-nl_brace_else = remove # "} else" vs "} \n else" - cuddle else
-sp_brace_else = force
-sp_else_brace = force
-nl_func_var_def_blk = 1
-nl_fcall_brace = remove # "list_for_each() {" vs "list_for_each()\n{"
-nl_fdef_brace = add # "int foo() {" vs "int foo()\n{"
-nl_after_label_colon = true # "fail:\nfree(foo);" vs "fail: free(foo);"
-# nl_after_return = TRUE;
-# nl_before_case = 1
-
-
-#
-# Source code modifications
-#
-
-mod_paren_on_return = remove # "return 1;" vs "return (1);"
-#mod_full_brace_if = remove # "if (a) a--;" vs "if (a) { a--; }"
-mod_full_brace_if_chain = true
-mod_full_brace_for = remove # "for () a--;" vs "for () { a--; }"
-mod_full_brace_do = remove # "do a--; while ();" vs "do { a--; } while ();"
-mod_full_brace_while = remove # "while (a) a--;" vs "while (a) { a--; }"
-mod_full_brace_nl = 3 # don't remove if more than 3 newlines
-
-
-#
-# inter-character spacing options
-#
-
-sp_return_paren = force # "return (1);" vs "return(1);"
-sp_sizeof_paren = remove # "sizeof (int)" vs "sizeof(int)"
-sp_before_sparen = force # "if (" vs "if("
-sp_after_sparen = force # "if () {" vs "if (){"
-sp_after_cast = remove # "(int) a" vs "(int)a"
-sp_inside_braces = force # "{ 1 }" vs "{1}"
-sp_inside_braces_struct = force # "{ 1 }" vs "{1}"
-sp_inside_braces_enum = force # "{ 1 }" vs "{1}"
-sp_assign = force
-sp_arith = force
-sp_bool = force
-sp_compare = force
-sp_assign = force
-sp_after_comma = force
-sp_func_def_paren = remove # "int foo (){" vs "int foo(){"
-sp_func_call_paren = remove # "foo (" vs "foo("
-sp_func_proto_paren = remove # "int foo ();" vs "int foo();"
-
-
-#
-# Aligning stuff
-#
-
-align_with_tabs = TRUE # use tabs to align
-align_on_tabstop = TRUE # align on tabstops
-# align_keep_tabs = true
-align_enum_equ_span = 4 # '=' in enum definition
-# align_nl_cont = TRUE
-# align_var_def_span = 2
-# align_var_def_inline = TRUE
-# align_var_def_star = FALSE
-# align_var_def_colon = TRUE
-# align_assign_span = 1
-align_struct_init_span = 3 # align stuff in a structure init '= { }'
-align_right_cmt_span = 3
-# align_pp_define_span = 8;
-# align_pp_define_gap = 4;
-
-cmt_star_cont = true
-
-# indent_brace = 0
-
-nl_func_paren = remove
-nl_func_decl_start = remove
-nl_func_decl_empty = remove
-nl_func_decl_args = remove
-nl_func_decl_end = remove
-sp_inside_paren = remove
-sp_inside_square = remove
-sp_inside_paren_cast = remove
-sp_inside_fparen = remove
-sp_inside_sparen = remove
-sp_inside_for = remove
-sp_paren_paren = remove
-sp_before_ptr_star = force
-sp_after_ptr_star = remove
-sp_ptr_star_func_var = remove
-sp_between_ptr_star = remove
-align_func_params = true
-align_var_struct_span = 6
-
-eat_blanks_after_open_brace = true
-eat_blanks_before_close_brace = true
-pp_indent = remove
-
-nl_start_of_file = remove
-nl_end_of_file = force
-nl_end_of_file_min = 1
-nl_comment_func_def = 1
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/sun.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/sun.cfg
deleted file mode 100644
index d2f51c5d..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/sun.cfg
+++ /dev/null
@@ -1,1796 +0,0 @@
-#
-# Sun C/C++/Java
-# https://www.cis.upenn.edu/~lee/06cse480/data/cstyle.ms.pdf
-# http://www.oracle.com/technetwork/java/codeconventions-150003.pdf
-#
-
-# The type of line endings
-newlines = auto # auto/lf/crlf/cr
-
-# The original size of tabs in the input
-input_tab_size = 8 # number
-
-# The size of tabs in the output (only used if align_with_tabs=true)
-output_tab_size = 8 # number
-
-# The ASCII value of the string escape char, usually 92 (\) or 94 (^). (Pawn)
-string_escape_char = 92 # number
-
-# Alternate string escape char for Pawn. Only works right before the quote char.
-string_escape_char2 = 0 # number
-
-# Replace tab characters found in string literals with the escape sequence \t instead.
-string_replace_tab_chars = true # false/true
-
-# Allow interpreting '>=' and '>>=' as part of a template in 'void f(list<list<B>>=val);'.
-# If true (default), 'assert(x<0 && y>=3)' will be broken.
-# Improvements to template detection may make this option obsolete.
-tok_split_gte = false # false/true
-
-# Override the default ' *INDENT-OFF*' in comments for disabling processing of part of the file.
-disable_processing_cmt = "" # string
-
-# Override the default ' *INDENT-ON*' in comments for enabling processing of part of the file.
-enable_processing_cmt = "" # string
-
-# Enable parsing of digraphs. Default=false
-enable_digraphs = false # false/true
-
-# If the file contains bytes with values between 128 and 255, but is not UTF-8, then output as UTF-8
-utf8_byte = false # false/true
-
-# Force the output encoding to UTF-8
-utf8_force = false # false/true
-
-#
-# Indenting
-#
-
-# The number of columns to indent per level.
-# Usually 2, 3, 4, or 8.
-indent_columns = 4 # number
-
-# The continuation indent. If non-zero, this overrides the indent of '(' and '=' continuation indents.
-# For FreeBSD, this is set to 4. Negative value is absolute and not increased for each ( level
-indent_continue = -4 # number
-
-# How to use tabs when indenting code
-# 0=spaces only
-# 1=indent with tabs to brace level, align with spaces
-# 2=indent and align with tabs, using spaces when not on a tabstop
-indent_with_tabs = 2 # number
-
-# Comments that are not a brace level are indented with tabs on a tabstop.
-# Requires indent_with_tabs=2. If false, will use spaces.
-indent_cmt_with_tabs = false # false/true
-
-# Whether to indent strings broken by '\' so that they line up
-indent_align_string = false # false/true
-
-# The number of spaces to indent multi-line XML strings.
-# Requires indent_align_string=True
-indent_xml_string = 2 # number
-
-# Spaces to indent '{' from level
-indent_brace = 0 # number
-
-# Whether braces are indented to the body level
-indent_braces = false # false/true
-
-# Disabled indenting function braces if indent_braces is true
-indent_braces_no_func = false # false/true
-
-# Disabled indenting class braces if indent_braces is true
-indent_braces_no_class = false # false/true
-
-# Disabled indenting struct braces if indent_braces is true
-indent_braces_no_struct = false # false/true
-
-# Indent based on the size of the brace parent, i.e. 'if' => 3 spaces, 'for' => 4 spaces, etc.
-indent_brace_parent = false # false/true
-
-# Indent based on the paren open instead of the brace open in '({\n', default is to indent by brace.
-indent_paren_open_brace = false # false/true
-
-# Whether the 'namespace' body is indented
-indent_namespace = false # false/true
-
-# Only indent one namespace and no sub-namespaces.
-# Requires indent_namespace=true.
-indent_namespace_single_indent = false # false/true
-
-# The number of spaces to indent a namespace block
-indent_namespace_level = 0 # number
-
-# If the body of the namespace is longer than this number, it won't be indented.
-# Requires indent_namespace=true. Default=0 (no limit)
-indent_namespace_limit = 0 # number
-
-# Whether the 'extern "C"' body is indented
-indent_extern = false # false/true
-
-# Whether the 'class' body is indented
-indent_class = true # false/true
-
-# Whether to indent the stuff after a leading base class colon
-indent_class_colon = false # false/true
-
-# Indent based on a class colon instead of the stuff after the colon.
-# Requires indent_class_colon=true. Default=false
-indent_class_on_colon = false # false/true
-
-# Whether to indent the stuff after a leading class initializer colon
-indent_constr_colon = false # false/true
-
-# Virtual indent from the ':' for member initializers. Default is 2
-indent_ctor_init_leading = 0 # number
-
-# Additional indenting for constructor initializer list
-indent_ctor_init = 0 # number
-
-# False=treat 'else\nif' as 'else if' for indenting purposes
-# True=indent the 'if' one level
-indent_else_if = false # false/true
-
-# Amount to indent variable declarations after a open brace. neg=relative, pos=absolute
-indent_var_def_blk = 0 # number
-
-# Indent continued variable declarations instead of aligning.
-indent_var_def_cont = true # false/true
-
-# Indent continued shift expressions ('<<' and '>>') instead of aligning.
-# Turn align_left_shift off when enabling this.
-indent_shift = true # false/true
-
-# True: force indentation of function definition to start in column 1
-# False: use the default behavior
-indent_func_def_force_col1 = false # false/true
-
-# True: indent continued function call parameters one indent level
-# False: align parameters under the open paren
-indent_func_call_param = true # false/true
-
-# Same as indent_func_call_param, but for function defs
-indent_func_def_param = true # false/true
-
-# Same as indent_func_call_param, but for function protos
-indent_func_proto_param = true # false/true
-
-# Same as indent_func_call_param, but for class declarations
-indent_func_class_param = true # false/true
-
-# Same as indent_func_call_param, but for class variable constructors
-indent_func_ctor_var_param = true # false/true
-
-# Same as indent_func_call_param, but for templates
-indent_template_param = true # false/true
-
-# Double the indent for indent_func_xxx_param options
-indent_func_param_double = false # false/true
-
-# Indentation column for standalone 'const' function decl/proto qualifier
-indent_func_const = 0 # number
-
-# Indentation column for standalone 'throw' function decl/proto qualifier
-indent_func_throw = 0 # number
-
-# The number of spaces to indent a continued '->' or '.'
-# Usually set to 0, 1, or indent_columns.
-indent_member = 4 # number
-
-# Spaces to indent single line ('//') comments on lines before code
-indent_single_line_comments_before = 0 # number
-
-# If set, will indent trailing single line ('//') comments relative
-# to the code instead of trying to keep the same absolute column
-indent_relative_single_line_comments = false # false/true
-
-# Spaces to indent 'case' from 'switch'
-# Usually 0 or indent_columns.
-indent_switch_case = 0 # number
-
-# Spaces to shift the 'case' line, without affecting any other lines
-# Usually 0.
-indent_case_shift = 0 # number
-
-# Spaces to indent '{' from 'case'.
-# By default, the brace will appear under the 'c' in case.
-# Usually set to 0 or indent_columns.
-indent_case_brace = 0 # number
-
-# Whether to indent comments found in first column
-indent_col1_comment = false # false/true
-
-# How to indent goto labels
-# >0: absolute column where 1 is the leftmost column
-# <=0: subtract from brace indent
-indent_label = -4 # number
-
-# Same as indent_label, but for access specifiers that are followed by a colon
-indent_access_spec = -4 # number
-
-# Indent the code after an access specifier by one level.
-# If set, this option forces 'indent_access_spec=0'
-indent_access_spec_body = false # false/true
-
-# If an open paren is followed by a newline, indent the next line so that it lines up after the open paren (not recommended)
-indent_paren_nl = false # false/true
-
-# Controls the indent of a close paren after a newline.
-# 0: Indent to body level
-# 1: Align under the open paren
-# 2: Indent to the brace level
-indent_paren_close = 0 # number
-
-# Controls the indent of a comma when inside a paren.If TRUE, aligns under the open paren
-indent_comma_paren = false # false/true
-
-# Controls the indent of a BOOL operator when inside a paren.If TRUE, aligns under the open paren
-indent_bool_paren = false # false/true
-
-# If 'indent_bool_paren' is true, controls the indent of the first expression. If TRUE, aligns the first expression to the following ones
-indent_first_bool_expr = false # false/true
-
-# If an open square is followed by a newline, indent the next line so that it lines up after the open square (not recommended)
-indent_square_nl = false # false/true
-
-# Don't change the relative indent of ESQL/C 'EXEC SQL' bodies
-indent_preserve_sql = false # false/true
-
-# Align continued statements at the '='. Default=True
-# If FALSE or the '=' is followed by a newline, the next line is indent one tab.
-indent_align_assign = false # false/true
-
-# If true, the indentation of the chunks after a '=' sequence will be set at
-# LHS token indentation column before '='.
-indent_off_after_assign = false # true/false
-
-# Indent OC blocks at brace level instead of usual rules.
-indent_oc_block = false # false/true
-
-# Indent OC blocks in a message relative to the parameter name.
-# 0=use indent_oc_block rules, 1+=spaces to indent
-indent_oc_block_msg = 0 # number
-
-# Minimum indent for subsequent parameters
-indent_oc_msg_colon = 0 # number
-
-# If true, prioritize aligning with initial colon (and stripping spaces from lines, if necessary).
-# Default is true.
-indent_oc_msg_prioritize_first_colon = true # false/true
-
-# If indent_oc_block_msg and this option are on, blocks will be indented the way that Xcode does by default (from keyword if the parameter is on its own line; otherwise, from the previous indentation level).
-indent_oc_block_msg_xcode_style = false # false/true
-
-# If indent_oc_block_msg and this option are on, blocks will be indented from where the brace is relative to a msg keyword.
-indent_oc_block_msg_from_keyword = false # false/true
-
-# If indent_oc_block_msg and this option are on, blocks will be indented from where the brace is relative to a msg colon.
-indent_oc_block_msg_from_colon = false # false/true
-
-# If indent_oc_block_msg and this option are on, blocks will be indented from where the block caret is.
-indent_oc_block_msg_from_caret = false # false/true
-
-# If indent_oc_block_msg and this option are on, blocks will be indented from where the brace is.
-indent_oc_block_msg_from_brace = false # false/true
-
-# When identing after virtual brace open and newline add further spaces to reach this min. indent.
-indent_min_vbrace_open = 0 # number
-
-# TRUE: When identing after virtual brace open and newline add further spaces after regular indent to reach next tabstop.
-indent_vbrace_open_on_tabstop = false # false/true
-
-#
-# Spacing options
-#
-
-# Add or remove space around arithmetic operator '+', '-', '/', '*', etc
-# also '>>>' '<<' '>>' '%' '|'
-sp_arith = force # ignore/add/remove/force
-
-# Add or remove space around assignment operator '=', '+=', etc
-sp_assign = force # ignore/add/remove/force
-
-# Add or remove space around '=' in C++11 lambda capture specifications. Overrides sp_assign
-sp_cpp_lambda_assign = force # ignore/add/remove/force
-
-# Add or remove space around assignment operator '=' in a prototype
-sp_assign_default = force # ignore/add/remove/force
-
-# Add or remove space before assignment operator '=', '+=', etc. Overrides sp_assign.
-sp_before_assign = force # ignore/add/remove/force
-
-# Add or remove space after assignment operator '=', '+=', etc. Overrides sp_assign.
-sp_after_assign = force # ignore/add/remove/force
-
-# Add or remove space in 'NS_ENUM ('
-sp_enum_paren = force # ignore/add/remove/force
-
-# Add or remove space around assignment '=' in enum
-sp_enum_assign = force # ignore/add/remove/force
-
-# Add or remove space before assignment '=' in enum. Overrides sp_enum_assign.
-sp_enum_before_assign = force # ignore/add/remove/force
-
-# Add or remove space after assignment '=' in enum. Overrides sp_enum_assign.
-sp_enum_after_assign = force # ignore/add/remove/force
-
-# Add or remove space around preprocessor '##' concatenation operator. Default=Add
-sp_pp_concat = force # ignore/add/remove/force
-
-# Add or remove space after preprocessor '#' stringify operator. Also affects the '#@' charizing operator.
-sp_pp_stringify = force # ignore/add/remove/force
-
-# Add or remove space before preprocessor '#' stringify operator as in '#define x(y) L#y'.
-sp_before_pp_stringify = force # ignore/add/remove/force
-
-# Add or remove space around boolean operators '&&' and '||'
-sp_bool = force # ignore/add/remove/force
-
-# Add or remove space around compare operator '<', '>', '==', etc
-sp_compare = force # ignore/add/remove/force
-
-# Add or remove space inside '(' and ')'
-sp_inside_paren = remove # ignore/add/remove/force
-
-# Add or remove space between nested parens: '((' vs ') )'
-sp_paren_paren = remove # ignore/add/remove/force
-
-# Add or remove space between back-to-back parens: ')(' vs ') ('
-sp_cparen_oparen = remove # ignore/add/remove/force
-
-# Whether to balance spaces inside nested parens
-sp_balance_nested_parens = false # false/true
-
-# Add or remove space between ')' and '{'
-sp_paren_brace = force # ignore/add/remove/force
-
-# Add or remove space before pointer star '*'
-sp_before_ptr_star = force # ignore/add/remove/force
-
-# Add or remove space before pointer star '*' that isn't followed by a variable name
-# If set to 'ignore', sp_before_ptr_star is used instead.
-sp_before_unnamed_ptr_star = force # ignore/add/remove/force
-
-# Add or remove space between pointer stars '*'
-sp_between_ptr_star = remove # ignore/add/remove/force
-
-# Add or remove space after pointer star '*', if followed by a word.
-sp_after_ptr_star = remove # ignore/add/remove/force
-
-# Add or remove space after pointer star '*', if followed by a qualifier.
-sp_after_ptr_star_qualifier = force # ignore/add/remove/force
-
-# Add or remove space after a pointer star '*', if followed by a func proto/def.
-sp_after_ptr_star_func = remove # ignore/add/remove/force
-
-# Add or remove space between the pointer star '*' and the name of the variable
-# in a function pointer definition.
-sp_ptr_star_func_var = remove # ignore/add/remove/force/not_defined
-
-# Add or remove space after a pointer star '*', if followed by an open paren (function types).
-sp_ptr_star_paren = remove # ignore/add/remove/force
-
-# Add or remove space before a pointer star '*', if followed by a func proto/def.
-sp_before_ptr_star_func = force # ignore/add/remove/force
-
-# Add or remove space before a reference sign '&'
-sp_before_byref = force # ignore/add/remove/force
-
-# Add or remove space before a reference sign '&' that isn't followed by a variable name
-# If set to 'ignore', sp_before_byref is used instead.
-sp_before_unnamed_byref = force # ignore/add/remove/force
-
-# Add or remove space after reference sign '&', if followed by a word.
-sp_after_byref = remove # ignore/add/remove/force
-
-# Add or remove space after a reference sign '&', if followed by a func proto/def.
-sp_after_byref_func = remove # ignore/add/remove/force
-
-# Add or remove space before a reference sign '&', if followed by a func proto/def.
-sp_before_byref_func = force # ignore/add/remove/force
-
-# Add or remove space between type and word. Default=Force
-sp_after_type = force # ignore/add/remove/force
-
-# Add or remove space before the paren in the D constructs 'template Foo(' and 'class Foo('.
-sp_before_template_paren = remove # ignore/add/remove/force
-
-# Add or remove space in 'template <' vs 'template<'.
-# If set to ignore, sp_before_angle is used.
-sp_template_angle = remove # ignore/add/remove/force
-
-# Add or remove space before '<>'
-sp_before_angle = remove # ignore/add/remove/force
-
-# Add or remove space inside '<' and '>'
-sp_inside_angle = remove # ignore/add/remove/force
-
-# Add or remove space after '<>'
-sp_after_angle = force # ignore/add/remove/force
-
-# Add or remove space between '<>' and '(' as found in 'new List<byte>();'
-sp_angle_paren = remove # ignore/add/remove/force
-
-# Add or remove space between '<>' and a word as in 'List<byte> m;' or 'template <typename T> static ...'
-sp_angle_word = force # ignore/add/remove/force
-
-# Add or remove space between '>' and '>' in '>>' (template stuff C++/C# only). Default=Add
-sp_angle_shift = force # ignore/add/remove/force
-
-# Permit removal of the space between '>>' in 'foo<bar<int> >' (C++11 only). Default=False
-# sp_angle_shift cannot remove the space without this option.
-sp_permit_cpp11_shift = false # false/true
-
-# Add or remove space before '(' of 'if', 'for', 'switch', 'while', etc.
-sp_before_sparen = force # ignore/add/remove/force
-
-# Add or remove space inside if-condition '(' and ')'
-sp_inside_sparen = remove # ignore/add/remove/force
-
-# Add or remove space before if-condition ')'. Overrides sp_inside_sparen.
-sp_inside_sparen_close = remove # ignore/add/remove/force
-
-# Add or remove space after if-condition '('. Overrides sp_inside_sparen.
-sp_inside_sparen_open = remove # ignore/add/remove/force
-
-# Add or remove space inside for-loop '(' and ')'
-sp_inside_for = remove # ignore/add/remove/force
-
-# Add or remove space before for-loop ')'. Overrides sp_inside_for.
-sp_inside_for_close = remove # ignore/add/remove/force
-
-# Add or remove space after for-loop '('. Overrides sp_inside_for.
-sp_inside_for_open = remove # ignore/add/remove/force
-
-# Add or remove space after ')' of 'if', 'for', 'switch', and 'while', etc.
-sp_after_sparen = force # ignore/add/remove/force
-
-# Add or remove space between ')' and '{' of 'if', 'for', 'switch', and 'while', etc.
-sp_sparen_brace = force # ignore/add/remove/force
-
-# Add or remove space between 'invariant' and '(' in the D language.
-sp_invariant_paren = remove # ignore/add/remove/force
-
-# Add or remove space after the ')' in 'invariant (C) c' in the D language.
-sp_after_invariant_paren = force # ignore/add/remove/force
-
-# Add or remove space before empty statement ';' on 'if', 'for' and 'while'
-sp_special_semi = remove # ignore/add/remove/force
-
-# Add or remove space before ';'. Default=Remove
-sp_before_semi = remove # ignore/add/remove/force
-
-# Add or remove space before ';' in non-empty 'for' statements
-sp_before_semi_for = remove # ignore/add/remove/force
-
-# Add or remove space before a semicolon of an empty left part of a for statement.
-sp_before_semi_for_empty = remove # ignore/add/remove/force
-
-# Add or remove space between the semicolons of an empty middle part of a for statement.
-sp_between_semi_for_empty = remove # ignore/add/remove/force/not_defined
-
-# Add or remove space after ';', except when followed by a comment. Default=Add
-sp_after_semi = force # ignore/add/remove/force
-
-# Add or remove space after ';' in non-empty 'for' statements. Default=Force
-sp_after_semi_for = force # ignore/add/remove/force
-
-# Add or remove space after the final semicolon of an empty part of a for statement: for ( ; ; <here> ).
-sp_after_semi_for_empty = remove # ignore/add/remove/force
-
-# Add or remove space before '[' (except '[]')
-sp_before_square = remove # ignore/add/remove/force
-
-# Add or remove space before '[]'
-sp_before_squares = remove # ignore/add/remove/force
-
-# Add or remove space inside a non-empty '[' and ']'
-sp_inside_square = remove # ignore/add/remove/force
-
-# Add or remove space after ','
-sp_after_comma = force # ignore/add/remove/force
-
-# Add or remove space before ','
-sp_before_comma = remove # ignore/add/remove/force
-
-# Add or remove space between ',' and ']' in multidimensional array type 'int[,,]'
-sp_after_mdatype_commas = remove # ignore/add/remove/force
-
-# Add or remove space between '[' and ',' in multidimensional array type 'int[,,]'
-sp_before_mdatype_commas = remove # ignore/add/remove/force
-
-# Add or remove space between ',' in multidimensional array type 'int[,,]'
-sp_between_mdatype_commas = remove # ignore/add/remove/force
-
-# Add or remove space between an open paren and comma: '(,' vs '( ,'
-sp_paren_comma = force # ignore/add/remove/force
-
-# Add or remove space before the variadic '...' when preceded by a non-punctuator
-sp_before_ellipsis = force # ignore/add/remove/force
-
-# Add or remove space after class ':'
-sp_after_class_colon = force # ignore/add/remove/force
-
-# Add or remove space before class ':'
-sp_before_class_colon = remove # ignore/add/remove/force
-
-# Add or remove space after class constructor ':'
-sp_after_constr_colon = force # ignore/add/remove/force
-
-# Add or remove space before class constructor ':'
-sp_before_constr_colon = remove # ignore/add/remove/force
-
-# Add or remove space before case ':'. Default=Remove
-sp_before_case_colon = remove # ignore/add/remove/force
-
-# Add or remove space between 'operator' and operator sign
-sp_after_operator = force # ignore/add/remove/force
-
-# Add or remove space between the operator symbol and the open paren, as in 'operator ++('
-sp_after_operator_sym = remove # ignore/add/remove/force
-
-# Add or remove space after C/D cast, i.e. 'cast(int)a' vs 'cast(int) a' or '(int)a' vs '(int) a'
-sp_after_cast = remove # ignore/add/remove/force
-
-# Add or remove spaces inside cast parens
-sp_inside_paren_cast = remove # ignore/add/remove/force
-
-# Add or remove space between the type and open paren in a C++ cast, i.e. 'int(exp)' vs 'int (exp)'
-sp_cpp_cast_paren = remove # ignore/add/remove/force
-
-# Add or remove space between 'sizeof' and '('
-sp_sizeof_paren = force # ignore/add/remove/force
-
-# Add or remove space after the tag keyword (Pawn)
-sp_after_tag = force # ignore/add/remove/force
-
-# Add or remove space inside enum '{' and '}'
-sp_inside_braces_enum = force # ignore/add/remove/force
-
-# Add or remove space inside struct/union '{' and '}'
-sp_inside_braces_struct = force # ignore/add/remove/force
-
-# Add or remove space inside '{' and '}'
-sp_inside_braces = force # ignore/add/remove/force
-
-# Add or remove space inside '{}'
-sp_inside_braces_empty = remove # ignore/add/remove/force
-
-# Add or remove space between return type and function name
-# A minimum of 1 is forced except for pointer return types.
-sp_type_func = remove # ignore/add/remove/force
-
-# Add or remove space between function name and '(' on function declaration
-sp_func_proto_paren = remove # ignore/add/remove/force
-
-# Add or remove space between function name and '(' on function definition
-sp_func_def_paren = remove # ignore/add/remove/force
-
-# Add or remove space inside empty function '()'
-sp_inside_fparens = remove # ignore/add/remove/force
-
-# Add or remove space inside function '(' and ')'
-sp_inside_fparen = remove # ignore/add/remove/force
-
-# Add or remove space inside the first parens in the function type: 'void (*x)(...)'
-sp_inside_tparen = remove # ignore/add/remove/force
-
-# Add or remove between the parens in the function type: 'void (*x)(...)'
-sp_after_tparen_close = remove # ignore/add/remove/force
-
-# Add or remove space between ']' and '(' when part of a function call.
-sp_square_fparen = remove # ignore/add/remove/force
-
-# Add or remove space between ')' and '{' of function
-sp_fparen_brace = force # ignore/add/remove/force
-
-# Java: Add or remove space between ')' and '{{' of double brace initializer.
-sp_fparen_dbrace = force # ignore/add/remove/force
-
-# Add or remove space between function name and '(' on function calls
-sp_func_call_paren = remove # ignore/add/remove/force
-
-# Add or remove space between function name and '()' on function calls without parameters.
-# If set to 'ignore' (the default), sp_func_call_paren is used.
-sp_func_call_paren_empty = remove # ignore/add/remove/force
-
-# Add or remove space between the user function name and '(' on function calls
-# You need to set a keyword to be a user function, like this: 'set func_call_user _' in the config file.
-sp_func_call_user_paren = remove # ignore/add/remove/force
-
-# Add or remove space between a constructor/destructor and the open paren
-sp_func_class_paren = remove # ignore/add/remove/force
-
-# Add or remove space between 'return' and '('
-sp_return_paren = force # ignore/add/remove/force
-
-# Add or remove space between '__attribute__' and '('
-sp_attribute_paren = force # ignore/add/remove/force
-
-# Add or remove space between 'defined' and '(' in '#if defined (FOO)'
-sp_defined_paren = remove # ignore/add/remove/force
-
-# Add or remove space between 'throw' and '(' in 'throw (something)'
-sp_throw_paren = force # ignore/add/remove/force
-
-# Add or remove space between 'throw' and anything other than '(' as in '@throw [...];'
-sp_after_throw = force # ignore/add/remove/force
-
-# Add or remove space between 'catch' and '(' in 'catch (something) { }'
-# If set to ignore, sp_before_sparen is used.
-sp_catch_paren = force # ignore/add/remove/force
-
-# Add or remove space between 'version' and '(' in 'version (something) { }' (D language)
-# If set to ignore, sp_before_sparen is used.
-sp_version_paren = force # ignore/add/remove/force
-
-# Add or remove space between 'scope' and '(' in 'scope (something) { }' (D language)
-# If set to ignore, sp_before_sparen is used.
-sp_scope_paren = force # ignore/add/remove/force
-
-# Add or remove space between macro and value
-sp_macro = force # ignore/add/remove/force
-
-# Add or remove space between macro function ')' and value
-sp_macro_func = force # ignore/add/remove/force
-
-# Add or remove space between 'else' and '{' if on the same line
-sp_else_brace = force # ignore/add/remove/force
-
-# Add or remove space between '}' and 'else' if on the same line
-sp_brace_else = force # ignore/add/remove/force
-
-# Add or remove space between '}' and the name of a typedef on the same line
-sp_brace_typedef = force # ignore/add/remove/force
-
-# Add or remove space between 'catch' and '{' if on the same line
-sp_catch_brace = force # ignore/add/remove/force
-
-# Add or remove space between '}' and 'catch' if on the same line
-sp_brace_catch = force # ignore/add/remove/force
-
-# Add or remove space between 'finally' and '{' if on the same line
-sp_finally_brace = force # ignore/add/remove/force
-
-# Add or remove space between '}' and 'finally' if on the same line
-sp_brace_finally = force # ignore/add/remove/force
-
-# Add or remove space between 'try' and '{' if on the same line
-sp_try_brace = force # ignore/add/remove/force
-
-# Add or remove space between get/set and '{' if on the same line
-sp_getset_brace = force # ignore/add/remove/force
-
-# Add or remove space between type and open brace of an unnamed temporary
-# direct-list-initialization.
-sp_type_brace_init_lst = add # ignore/add/remove/force
-
-# Add or remove space between a variable and '{' for a namespace
-sp_word_brace_ns = force # ignore/add/remove/force
-
-# Add or remove space before the '::' operator
-sp_before_dc = remove # ignore/add/remove/force
-
-# Add or remove space after the '::' operator
-sp_after_dc = remove # ignore/add/remove/force
-
-# Add or remove around the D named array initializer ':' operator
-sp_d_array_colon = force # ignore/add/remove/force
-
-# Add or remove space after the '!' (not) operator. Default=Remove
-sp_not = remove # ignore/add/remove/force
-
-# Add or remove space after the '~' (invert) operator. Default=Remove
-sp_inv = remove # ignore/add/remove/force
-
-# Add or remove space after the '&' (address-of) operator. Default=Remove
-# This does not affect the spacing after a '&' that is part of a type.
-sp_addr = remove # ignore/add/remove/force
-
-# Add or remove space around the '.' or '->' operators. Default=Remove
-sp_member = remove # ignore/add/remove/force
-
-# Add or remove space after the '*' (dereference) operator. Default=Remove
-# This does not affect the spacing after a '*' that is part of a type.
-sp_deref = remove # ignore/add/remove/force
-
-# Add or remove space after '+' or '-', as in 'x = -5' or 'y = +7'. Default=Remove
-sp_sign = remove # ignore/add/remove/force
-
-# Add or remove space before or after '++' and '--', as in '(--x)' or 'y++;'. Default=Remove
-sp_incdec = remove # ignore/add/remove/force
-
-# Add or remove space before a backslash-newline at the end of a line. Default=Add
-sp_before_nl_cont = force # ignore/add/remove/force
-
-# Add or remove space after the scope '+' or '-', as in '-(void) foo;' or '+(int) bar;'
-sp_after_oc_scope = remove # ignore/add/remove/force
-
-# Add or remove space after the colon in message specs
-# '-(int) f:(int) x;' vs '-(int) f: (int) x;'
-sp_after_oc_colon = force # ignore/add/remove/force
-
-# Add or remove space before the colon in message specs
-# '-(int) f: (int) x;' vs '-(int) f : (int) x;'
-sp_before_oc_colon = force # ignore/add/remove/force
-
-# Add or remove space after the colon in immutable dictionary expression
-# 'NSDictionary *test = @{@"foo" :@"bar"};'
-sp_after_oc_dict_colon = force # ignore/add/remove/force
-
-# Add or remove space before the colon in immutable dictionary expression
-# 'NSDictionary *test = @{@"foo" :@"bar"};'
-sp_before_oc_dict_colon = force # ignore/add/remove/force
-
-# Add or remove space after the colon in message specs
-# '[object setValue:1];' vs '[object setValue: 1];'
-sp_after_send_oc_colon = force # ignore/add/remove/force
-
-# Add or remove space before the colon in message specs
-# '[object setValue:1];' vs '[object setValue :1];'
-sp_before_send_oc_colon = remove # ignore/add/remove/force
-
-# Add or remove space after the (type) in message specs
-# '-(int)f: (int) x;' vs '-(int)f: (int)x;'
-sp_after_oc_type = remove # ignore/add/remove/force
-
-# Add or remove space after the first (type) in message specs
-# '-(int) f:(int)x;' vs '-(int)f:(int)x;'
-sp_after_oc_return_type = remove # ignore/add/remove/force
-
-# Add or remove space between '@selector' and '('
-# '@selector(msgName)' vs '@selector (msgName)'
-# Also applies to @protocol() constructs
-sp_after_oc_at_sel = remove # ignore/add/remove/force
-
-# Add or remove space between '@selector(x)' and the following word
-# '@selector(foo) a:' vs '@selector(foo)a:'
-sp_after_oc_at_sel_parens = force # ignore/add/remove/force
-
-# Add or remove space inside '@selector' parens
-# '@selector(foo)' vs '@selector( foo )'
-# Also applies to @protocol() constructs
-sp_inside_oc_at_sel_parens = remove # ignore/add/remove/force
-
-# Add or remove space before a block pointer caret
-# '^int (int arg){...}' vs. ' ^int (int arg){...}'
-sp_before_oc_block_caret = remove # ignore/add/remove/force
-
-# Add or remove space after a block pointer caret
-# '^int (int arg){...}' vs. '^ int (int arg){...}'
-sp_after_oc_block_caret = remove # ignore/add/remove/force
-
-# Add or remove space between the receiver and selector in a message.
-# '[receiver selector ...]'
-sp_after_oc_msg_receiver = remove # ignore/add/remove/force
-
-# Add or remove space after @property.
-sp_after_oc_property = force # ignore/add/remove/force
-
-# Add or remove space around the ':' in 'b ? t : f'
-sp_cond_colon = force # ignore/add/remove/force
-
-# Add or remove space before the ':' in 'b ? t : f'. Overrides sp_cond_colon.
-sp_cond_colon_before = force # ignore/add/remove/force
-
-# Add or remove space after the ':' in 'b ? t : f'. Overrides sp_cond_colon.
-sp_cond_colon_after = force # ignore/add/remove/force
-
-# Add or remove space around the '?' in 'b ? t : f'
-sp_cond_question = force # ignore/add/remove/force
-
-# Add or remove space before the '?' in 'b ? t : f'. Overrides sp_cond_question.
-sp_cond_question_before = force # ignore/add/remove/force
-
-# Add or remove space after the '?' in 'b ? t : f'. Overrides sp_cond_question.
-sp_cond_question_after = force # ignore/add/remove/force
-
-# In the abbreviated ternary form (a ?: b), add/remove space between ? and :.'. Overrides all other sp_cond_* options.
-sp_cond_ternary_short = force # ignore/add/remove/force
-
-# Fix the spacing between 'case' and the label. Only 'ignore' and 'force' make sense here.
-sp_case_label = force # ignore/add/remove/force
-
-# Control the space around the D '..' operator.
-sp_range = force # ignore/add/remove/force
-
-# Control the spacing after ':' in 'for (TYPE VAR : EXPR)'
-sp_after_for_colon = force # ignore/add/remove/force
-
-# Control the spacing before ':' in 'for (TYPE VAR : EXPR)'
-sp_before_for_colon = force # ignore/add/remove/force
-
-# Control the spacing in 'extern (C)' (D)
-sp_extern_paren = force # ignore/add/remove/force
-
-# Control the space after the opening of a C++ comment '// A' vs '//A'
-sp_cmt_cpp_start = force # ignore/add/remove/force
-
-# TRUE: If space is added with sp_cmt_cpp_start, do it after doxygen sequences like '///', '///<', '//!' and '//!<'.
-sp_cmt_cpp_doxygen = false # false/true
-
-# TRUE: If space is added with sp_cmt_cpp_start, do it after Qt translator or meta-data comments like '//:', '//=', and '//~'.
-sp_cmt_cpp_qttr = false # false/true
-
-# Controls the spaces between #else or #endif and a trailing comment
-sp_endif_cmt = force # ignore/add/remove/force
-
-# Controls the spaces after 'new', 'delete' and 'delete[]'
-sp_after_new = force # ignore/add/remove/force
-
-# Controls the spaces between new and '(' in 'new()'
-sp_between_new_paren = remove # ignore/add/remove/force
-
-# Controls the spaces before a trailing or embedded comment
-sp_before_tr_cmt = force # ignore/add/remove/force
-
-# Number of spaces before a trailing or embedded comment
-sp_num_before_tr_cmt = 0 # number
-
-# Control space between a Java annotation and the open paren.
-sp_annotation_paren = remove # ignore/add/remove/force
-
-#
-# Code alignment (not left column spaces/tabs)
-#
-
-# Whether to keep non-indenting tabs
-align_keep_tabs = false # false/true
-
-# Whether to use tabs for aligning
-align_with_tabs = true # false/true
-
-# Whether to bump out to the next tab when aligning
-align_on_tabstop = true # false/true
-
-# Whether to right-align numbers
-align_number_right = true # false/true
-
-# Whether to keep whitespace not required for alignment.
-align_keep_extra_space = false # false/true
-
-# Align variable definitions in prototypes and functions
-align_func_params = false # false/true
-
-# Align parameters in single-line functions that have the same name.
-# The function names must already be aligned with each other.
-align_same_func_call_params = false # false/true
-
-# The span for aligning parameters in single line functions with the same name (0=don't align).
-align_same_func_call_params_span = 0 # unsigned number
-
-# The thresh for aligning function call parameters (0=no limit).
-align_same_func_call_params_thresh = 0 # unsigned number
-
-# The span for aligning variable definitions (0=don't align)
-align_var_def_span = 0 # number
-
-# How to align the star in variable definitions.
-# 0=Part of the type 'void * foo;'
-# 1=Part of the variable 'void *foo;'
-# 2=Dangling 'void *foo;'
-align_var_def_star_style = 1 # number
-
-# How to align the '&' in variable definitions.
-# 0=Part of the type
-# 1=Part of the variable
-# 2=Dangling
-align_var_def_amp_style = 1 # number
-
-# The threshold for aligning variable definitions (0=no limit)
-align_var_def_thresh = 10 # number
-
-# The gap for aligning variable definitions
-align_var_def_gap = 0 # number
-
-# Whether to align the colon in struct bit fields
-align_var_def_colon = false # false/true
-
-# Whether to align any attribute after the variable name
-align_var_def_attribute = false # false/true
-
-# Whether to align inline struct/enum/union variable definitions
-align_var_def_inline = false # false/true
-
-# The span for aligning on '=' in assignments (0=don't align)
-align_assign_span = 0 # number
-
-# The threshold for aligning on '=' in assignments (0=no limit)
-align_assign_thresh = 0 # number
-
-# The span for aligning on '=' in enums (0=don't align)
-align_enum_equ_span = 0 # number
-
-# The threshold for aligning on '=' in enums (0=no limit)
-align_enum_equ_thresh = 0 # number
-
-# The span for aligning struct/union (0=don't align)
-align_var_struct_span = 0 # number
-
-# The threshold for aligning struct/union member definitions (0=no limit)
-align_var_struct_thresh = 0 # number
-
-# The gap for aligning struct/union member definitions
-align_var_struct_gap = 0 # number
-
-# The span for aligning struct initializer values (0=don't align)
-align_struct_init_span = 0 # number
-
-# The minimum space between the type and the synonym of a typedef
-align_typedef_gap = 1 # number
-
-# The span for aligning single-line typedefs (0=don't align)
-align_typedef_span = 0 # number
-
-# How to align typedef'd functions with other typedefs
-# 0: Don't mix them at all
-# 1: align the open paren with the types
-# 2: align the function type name with the other type names
-align_typedef_func = 0 # number
-
-# Controls the positioning of the '*' in typedefs. Just try it.
-# 0: Align on typedef type, ignore '*'
-# 1: The '*' is part of type name: typedef int *pint;
-# 2: The '*' is part of the type, but dangling: typedef int *pint;
-align_typedef_star_style = 1 # number
-
-# Controls the positioning of the '&' in typedefs. Just try it.
-# 0: Align on typedef type, ignore '&'
-# 1: The '&' is part of type name: typedef int &pint;
-# 2: The '&' is part of the type, but dangling: typedef int &pint;
-align_typedef_amp_style = 1 # number
-
-# The span for aligning comments that end lines (0=don't align)
-align_right_cmt_span = 4 # number
-
-# If aligning comments, mix with comments after '}' and #endif with less than 3 spaces before the comment
-align_right_cmt_mix = false # false/true
-
-# If a trailing comment is more than this number of columns away from the text it follows,
-# it will qualify for being aligned. This has to be > 0 to do anything.
-align_right_cmt_gap = 1 # number
-
-# Align trailing comment at or beyond column N; 'pulls in' comments as a bonus side effect (0=ignore)
-align_right_cmt_at_col = 41 # number
-
-# The span for aligning function prototypes (0=don't align)
-align_func_proto_span = 0 # number
-
-# Minimum gap between the return type and the function name.
-align_func_proto_gap = 0 # number
-
-# Align function protos on the 'operator' keyword instead of what follows
-align_on_operator = false # false/true
-
-# Whether to mix aligning prototype and variable declarations.
-# If true, align_var_def_XXX options are used instead of align_func_proto_XXX options.
-align_mix_var_proto = false # false/true
-
-# Align single-line functions with function prototypes, uses align_func_proto_span
-align_single_line_func = true # false/true
-
-# Aligning the open brace of single-line functions.
-# Requires align_single_line_func=true, uses align_func_proto_span
-align_single_line_brace = false # false/true
-
-# Gap for align_single_line_brace.
-align_single_line_brace_gap = 0 # number
-
-# The span for aligning ObjC msg spec (0=don't align)
-align_oc_msg_spec_span = 1 # number
-
-# Whether to align macros wrapped with a backslash and a newline.
-# This will not work right if the macro contains a multi-line comment.
-align_nl_cont = false # false/true
-
-# # Align macro functions and variables together
-align_pp_define_together = true # false/true
-
-# The minimum space between label and value of a preprocessor define
-align_pp_define_gap = 1 # number
-
-# The span for aligning on '#define' bodies (0=don't align, other=number of lines including comments between blocks)
-align_pp_define_span = 8 # number
-
-# Align lines that start with '<<' with previous '<<'. Default=true
-align_left_shift = false # false/true
-
-# Align text after asm volatile () colons.
-align_asm_colon = true # false/true
-
-# Span for aligning parameters in an Obj-C message call on the ':' (0=don't align)
-align_oc_msg_colon_span = 0 # number
-
-# If true, always align with the first parameter, even if it is too short.
-align_oc_msg_colon_first = false # false/true
-
-# Aligning parameters in an Obj-C '+' or '-' declaration on the ':'
-align_oc_decl_colon = false # false/true
-
-#
-# Newline adding and removing options
-#
-
-# Whether to collapse empty blocks between '{' and '}'
-nl_collapse_empty_body = true # false/true
-
-# Don't split one-line braced assignments - 'foo_t f = { 1, 2 };'
-nl_assign_leave_one_liners = true # false/true
-
-# Don't split one-line braced statements inside a class xx { } body
-nl_class_leave_one_liners = true # false/true
-
-# Don't split one-line enums: 'enum foo { BAR = 15 };'
-nl_enum_leave_one_liners = true # false/true
-
-# Don't split one-line get or set functions
-nl_getset_leave_one_liners = true # false/true
-
-# Don't split one-line function definitions - 'int foo() { return 0; }'
-nl_func_leave_one_liners = true # false/true
-
-# Don't split one-line C++11 lambdas - '[]() { return 0; }'
-nl_cpp_lambda_leave_one_liners = true # false/true
-
-# Don't split one-line if/else statements - 'if(a) b++;'
-nl_if_leave_one_liners = false # false/true
-
-# Don't split one-line while statements - 'while(a) b++;'
-nl_while_leave_one_liners = false # false/true
-
-# Don't split one-line OC messages
-nl_oc_msg_leave_one_liner = true # false/true
-
-# Add or remove newlines at the start of the file
-nl_start_of_file = remove # ignore/add/remove/force
-
-# The number of newlines at the start of the file (only used if nl_start_of_file is 'add' or 'force'
-nl_start_of_file_min = 0 # number
-
-# Add or remove newline at the end of the file
-nl_end_of_file = force # ignore/add/remove/force
-
-# The number of newlines at the end of the file (only used if nl_end_of_file is 'add' or 'force')
-nl_end_of_file_min = 1 # number
-
-# Add or remove newline between '=' and '{'
-nl_assign_brace = remove # ignore/add/remove/force
-
-# Add or remove newline between '=' and '[' (D only)
-nl_assign_square = remove # ignore/add/remove/force
-
-# Add or remove newline after '= [' (D only). Will also affect the newline before the ']'
-nl_after_square_assign = remove # ignore/add/remove/force
-
-# The number of blank lines after a block of variable definitions at the top of a function body
-# 0 = No change (default)
-nl_func_var_def_blk = 1 # number
-
-# The number of newlines before a block of typedefs
-# 0 = No change (default)
-# the option 'nl_after_access_spec' takes preference over 'nl_typedef_blk_start'
-nl_typedef_blk_start = 2 # number
-
-# The number of newlines after a block of typedefs
-# 0 = No change (default)
-nl_typedef_blk_end = 2 # number
-
-# The maximum consecutive newlines within a block of typedefs
-# 0 = No change (default)
-nl_typedef_blk_in = 1 # number
-
-# The number of newlines before a block of variable definitions not at the top of a function body
-# 0 = No change (default)
-# the option 'nl_after_access_spec' takes preference over 'nl_var_def_blk_start'
-nl_var_def_blk_start = 2 # number
-
-# The number of newlines after a block of variable definitions not at the top of a function body
-# 0 = No change (default)
-nl_var_def_blk_end = 2 # number
-
-# The maximum consecutive newlines within a block of variable definitions
-# 0 = No change (default)
-nl_var_def_blk_in = 1 # number
-
-# Add or remove newline between a function call's ')' and '{', as in:
-# list_for_each(item, &list) { }
-nl_fcall_brace = remove # ignore/add/remove/force
-
-# Add or remove newline between 'enum' and '{'
-nl_enum_brace = remove # ignore/add/remove/force
-
-# Add or remove newline between 'struct and '{'
-nl_struct_brace = remove # ignore/add/remove/force
-
-# Add or remove newline between 'union' and '{'
-nl_union_brace = remove # ignore/add/remove/force
-
-# Add or remove newline between 'if' and '{'
-nl_if_brace = remove # ignore/add/remove/force
-
-# Add or remove newline between '}' and 'else'
-nl_brace_else = remove # ignore/add/remove/force
-
-# Add or remove newline between 'else if' and '{'
-# If set to ignore, nl_if_brace is used instead
-nl_elseif_brace = remove # ignore/add/remove/force
-
-# Add or remove newline between 'else' and '{'
-nl_else_brace = remove # ignore/add/remove/force
-
-# Add or remove newline between 'else' and 'if'
-nl_else_if = remove # ignore/add/remove/force
-
-# Add or remove newline between '}' and 'finally'
-nl_brace_finally = remove # ignore/add/remove/force
-
-# Add or remove newline between 'finally' and '{'
-nl_finally_brace = remove # ignore/add/remove/force
-
-# Add or remove newline between 'try' and '{'
-nl_try_brace = remove # ignore/add/remove/force
-
-# Add or remove newline between get/set and '{'
-nl_getset_brace = remove # ignore/add/remove/force
-
-# Add or remove newline between 'for' and '{'
-nl_for_brace = remove # ignore/add/remove/force
-
-# Add or remove newline between 'catch' and '{'
-nl_catch_brace = remove # ignore/add/remove/force
-
-# Add or remove newline between '}' and 'catch'
-nl_brace_catch = remove # ignore/add/remove/force
-
-# Add or remove newline between '}' and ']'
-nl_brace_square = remove # ignore/add/remove/force
-
-# Add or remove newline between '}' and ')' in a function invocation
-nl_brace_fparen = remove # ignore/add/remove/force
-
-# Add or remove newline between 'while' and '{'
-nl_while_brace = remove # ignore/add/remove/force
-
-# Add or remove newline between 'scope (x)' and '{' (D)
-nl_scope_brace = remove # ignore/add/remove/force
-
-# Add or remove newline between 'unittest' and '{' (D)
-nl_unittest_brace = remove # ignore/add/remove/force
-
-# Add or remove newline between 'version (x)' and '{' (D)
-nl_version_brace = remove # ignore/add/remove/force
-
-# Add or remove newline between 'using' and '{'
-nl_using_brace = remove # ignore/add/remove/force
-
-# Add or remove newline between two open or close braces.
-# Due to general newline/brace handling, REMOVE may not work.
-nl_brace_brace = force # ignore/add/remove/force
-
-# Add or remove newline between 'do' and '{'
-nl_do_brace = remove # ignore/add/remove/force
-
-# Add or remove newline between '}' and 'while' of 'do' statement
-nl_brace_while = remove # ignore/add/remove/force
-
-# Add or remove newline between 'switch' and '{'
-nl_switch_brace = remove # ignore/add/remove/force
-
-# Add or remove newline between 'synchronized' and '{'
-nl_synchronized_brace = remove # ignore/add/remove/force
-
-# Add a newline between ')' and '{' if the ')' is on a different line than the if/for/etc.
-# Overrides nl_for_brace, nl_if_brace, nl_switch_brace, nl_while_switch and nl_catch_brace.
-nl_multi_line_cond = false # false/true
-
-# Force a newline in a define after the macro name for multi-line defines.
-nl_multi_line_define = false # false/true
-
-# Whether to put a newline before 'case' statement, not after the first 'case'
-nl_before_case = false # false/true
-
-# Add or remove newline between ')' and 'throw'
-nl_before_throw = force # ignore/add/remove/force
-
-# Whether to put a newline after 'case' statement
-nl_after_case = true # false/true
-
-# Add or remove a newline between a case ':' and '{'. Overrides nl_after_case.
-nl_case_colon_brace = remove # ignore/add/remove/force
-
-# Newline between namespace and {
-nl_namespace_brace = remove # ignore/add/remove/force
-
-# Add or remove newline between 'template<>' and whatever follows.
-nl_template_class = force # ignore/add/remove/force
-
-# Add or remove newline between 'class' and '{'
-nl_class_brace = remove # ignore/add/remove/force
-
-# Add or remove newline before/after each ',' in the base class list,
-# (tied to pos_class_comma).
-nl_class_init_args = remove # ignore/add/remove/force
-
-# Add or remove newline after each ',' in the constructor member initialization.
-# Related to nl_constr_colon, pos_constr_colon and pos_constr_comma.
-nl_constr_init_args = remove # ignore/add/remove/force
-
-# Add or remove newline between return type and function name in a function definition
-nl_func_type_name = remove # ignore/add/remove/force
-
-# Add or remove newline between return type and function name inside a class {}
-# Uses nl_func_type_name or nl_func_proto_type_name if set to ignore.
-nl_func_type_name_class = remove # ignore/add/remove/force
-
-# Add or remove newline between function scope and name
-# Controls the newline after '::' in 'void A::f() { }'
-nl_func_scope_name = remove # ignore/add/remove/force
-
-# Add or remove newline between return type and function name in a prototype
-nl_func_proto_type_name = remove # ignore/add/remove/force
-
-# Add or remove newline between a function name and the opening '(' in the declaration
-nl_func_paren = remove # ignore/add/remove/force
-
-# Add or remove newline between a function name and the opening '(' in the definition
-nl_func_def_paren = remove # ignore/add/remove/force
-
-# Add or remove newline after '(' in a function declaration
-nl_func_decl_start = remove # ignore/add/remove/force
-
-# Add or remove newline after '(' in a function definition
-nl_func_def_start = remove # ignore/add/remove/force
-
-# Overrides nl_func_decl_start when there is only one parameter.
-nl_func_decl_start_single = remove # ignore/add/remove/force
-
-# Overrides nl_func_def_start when there is only one parameter.
-nl_func_def_start_single = remove # ignore/add/remove/force
-
-# Add or remove newline after each ',' in a function declaration
-nl_func_decl_args = remove # ignore/add/remove/force
-
-# Add or remove newline after each ',' in a function definition
-nl_func_def_args = remove # ignore/add/remove/force
-
-# Add or remove newline before the ')' in a function declaration
-nl_func_decl_end = remove # ignore/add/remove/force
-
-# Add or remove newline before the ')' in a function definition
-nl_func_def_end = remove # ignore/add/remove/force
-
-# Overrides nl_func_decl_end when there is only one parameter.
-nl_func_decl_end_single = remove # ignore/add/remove/force
-
-# Overrides nl_func_def_end when there is only one parameter.
-nl_func_def_end_single = remove # ignore/add/remove/force
-
-# Add or remove newline between '()' in a function declaration.
-nl_func_decl_empty = remove # ignore/add/remove/force
-
-# Add or remove newline between '()' in a function definition.
-nl_func_def_empty = remove # ignore/add/remove/force
-
-# Whether to put each OC message parameter on a separate line
-# See nl_oc_msg_leave_one_liner
-nl_oc_msg_args = false # false/true
-
-# Add or remove newline between function signature and '{'
-nl_fdef_brace = remove # ignore/add/remove/force
-
-# Add or remove newline between C++11 lambda signature and '{'
-nl_cpp_ldef_brace = remove # ignore/add/remove/force
-
-# Add or remove a newline between the return keyword and return expression.
-nl_return_expr = remove # ignore/add/remove/force
-
-# Whether to put a newline after semicolons, except in 'for' statements
-nl_after_semicolon = true # false/true
-
-# Java: Control the newline between the ')' and '{{' of the double brace initializer.
-nl_paren_dbrace_open = remove # ignore/add/remove/force
-
-# Whether to put a newline after brace open.
-nl_after_brace_open = true # false/true
-
-# If nl_after_brace_open and nl_after_brace_open_cmt are true, a newline is
-# placed between the open brace and a trailing single-line comment.
-nl_after_brace_open_cmt = false # false/true
-
-# Whether to put a newline after a virtual brace open with a non-empty body.
-# These occur in un-braced if/while/do/for statement bodies.
-nl_after_vbrace_open = true # false/true
-
-# Whether to put a newline after a virtual brace open with an empty body.
-# These occur in un-braced if/while/do/for statement bodies.
-nl_after_vbrace_open_empty = true # false/true
-
-# Whether to put a newline after a brace close.
-# Does not apply if followed by a necessary ';'.
-nl_after_brace_close = true # false/true
-
-# Whether to put a newline after a virtual brace close.
-# Would add a newline before return in: 'if (foo) a++; return;'
-nl_after_vbrace_close = true # false/true
-
-# Control the newline between the close brace and 'b' in: 'struct { int a; } b;'
-# Affects enums, unions and structures. If set to ignore, uses nl_after_brace_close
-nl_brace_struct_var = remove # ignore/add/remove/force
-
-# Whether to alter newlines in '#define' macros
-nl_define_macro = false # false/true
-
-# Whether to not put blanks after '#ifxx', '#elxx', or before '#endif'. Does not affect the whole-file #ifdef.
-nl_squeeze_ifdef = true # false/true
-
-# Add or remove blank line before 'if'
-nl_before_if = remove # ignore/add/remove/force
-
-# Add or remove blank line after 'if' statement
-nl_after_if = remove # ignore/add/remove/force
-
-# Add or remove blank line before 'for'
-nl_before_for = remove # ignore/add/remove/force
-
-# Add or remove blank line after 'for' statement
-nl_after_for = remove # ignore/add/remove/force
-
-# Add or remove blank line before 'while'
-nl_before_while = remove # ignore/add/remove/force
-
-# Add or remove blank line after 'while' statement
-nl_after_while = remove # ignore/add/remove/force
-
-# Add or remove blank line before 'switch'
-nl_before_switch = remove # ignore/add/remove/force
-
-# Add or remove blank line after 'switch' statement
-nl_after_switch = remove # ignore/add/remove/force
-
-# Add or remove blank line before 'synchronized'
-nl_before_synchronized = remove # ignore/add/remove/force
-
-# Add or remove blank line after 'synchronized' statement
-nl_after_synchronized = remove # ignore/add/remove/force
-
-# Add or remove blank line before 'do'
-nl_before_do = remove # ignore/add/remove/force
-
-# Add or remove blank line after 'do/while' statement
-nl_after_do = remove # ignore/add/remove/force
-
-# Whether to double-space commented-entries in struct/union/enum
-nl_ds_struct_enum_cmt = false # false/true
-
-# force nl before } of a struct/union/enum
-# (lower priority than 'eat_blanks_before_close_brace')
-nl_ds_struct_enum_close_brace = false # false/true
-
-# Add or remove a newline before/after a class colon,
-# (tied to pos_class_colon).
-nl_class_colon = remove # ignore/add/remove/force
-
-# Add or remove a newline around a class constructor colon.
-# Related to nl_constr_init_args, pos_constr_colon and pos_constr_comma.
-nl_constr_colon = remove # ignore/add/remove/force
-
-# Change simple unbraced if statements into a one-liner
-# 'if(b)\n i++;' => 'if(b) i++;'
-nl_create_if_one_liner = false # false/true
-
-# Change simple unbraced for statements into a one-liner
-# 'for (i=0;i<5;i++)\n foo(i);' => 'for (i=0;i<5;i++) foo(i);'
-nl_create_for_one_liner = false # false/true
-
-# Change simple unbraced while statements into a one-liner
-# 'while (i<5)\n foo(i++);' => 'while (i<5) foo(i++);'
-nl_create_while_one_liner = false # false/true
-
-#
-# Positioning options
-#
-
-# The position of arithmetic operators in wrapped expressions
-pos_arith = join # ignore/join/lead/lead_break/lead_force/trail/trail_break/trail_force
-
-# The position of assignment in wrapped expressions.
-# Do not affect '=' followed by '{'
-pos_assign = join # ignore/join/lead/lead_break/lead_force/trail/trail_break/trail_force
-
-# The position of boolean operators in wrapped expressions
-pos_bool = join # ignore/join/lead/lead_break/lead_force/trail/trail_break/trail_force
-
-# The position of comparison operators in wrapped expressions
-pos_compare = join # ignore/join/lead/lead_break/lead_force/trail/trail_break/trail_force
-
-# The position of conditional (b ? t : f) operators in wrapped expressions
-pos_conditional = join # ignore/join/lead/lead_break/lead_force/trail/trail_break/trail_force
-
-# The position of the comma in wrapped expressions
-pos_comma = join # ignore/join/lead/lead_break/lead_force/trail/trail_break/trail_force
-
-# The position of the comma in the base class list if there are more than one line,
-# (tied to nl_class_init_args).
-pos_class_comma = join # ignore/join/lead/lead_break/lead_force/trail/trail_break/trail_force
-
-# The position of the comma in the constructor initialization list.
-# Related to nl_constr_colon, nl_constr_init_args and pos_constr_colon.
-pos_constr_comma = join # ignore/join/lead/lead_break/lead_force/trail/trail_break/trail_force
-
-# The position of trailing/leading class colon, between class and base class list
-# (tied to nl_class_colon).
-pos_class_colon = join # ignore/join/lead/lead_break/lead_force/trail/trail_break/trail_force
-
-# The position of colons between constructor and member initialization,
-# (tied to UO_nl_constr_colon).
-# Related to nl_constr_colon, nl_constr_init_args and pos_constr_comma.
-pos_constr_colon = join # ignore/join/lead/lead_break/lead_force/trail/trail_break/trail_force
-
-#
-# Line Splitting options
-#
-
-# Try to limit code width to N number of columns
-code_width = 80 # number
-
-# Whether to fully split long 'for' statements at semi-colons
-ls_for_split_full = false # false/true
-
-# Whether to fully split long function protos/calls at commas
-ls_func_split_full = false # false/true
-
-# Whether to split lines as close to code_width as possible and ignore some groupings
-ls_code_width = true # false/true
-
-#
-# Blank line options
-#
-
-# The maximum consecutive newlines (3 = 2 blank lines)
-nl_max = 2 # number
-
-# The number of newlines after a function prototype, if followed by another function prototype
-nl_after_func_proto = 1 # number
-
-# The number of newlines after a function prototype, if not followed by another function prototype
-nl_after_func_proto_group = 2 # number
-
-# The number of newlines after '}' of a multi-line function body
-nl_after_func_body = 2 # number
-
-# The number of newlines after '}' of a multi-line function body in a class declaration
-nl_after_func_body_class = 1 # number
-
-# The number of newlines after '}' of a single line function body
-nl_after_func_body_one_liner = 1 # number
-
-# The minimum number of newlines before a multi-line comment.
-# Doesn't apply if after a brace open or another multi-line comment.
-nl_before_block_comment = 2 # number
-
-# The minimum number of newlines before a single-line C comment.
-# Doesn't apply if after a brace open or other single-line C comments.
-nl_before_c_comment = 1 # number
-
-# The minimum number of newlines before a CPP comment.
-# Doesn't apply if after a brace open or other CPP comments.
-nl_before_cpp_comment = 1 # number
-
-# Whether to force a newline after a multi-line comment.
-nl_after_multiline_comment = true # false/true
-
-# Whether to force a newline after a label's colon.
-nl_after_label_colon = false # false/true
-
-# The number of newlines after '}' or ';' of a struct/enum/union definition
-nl_after_struct = 2 # number
-
-# The number of newlines after '}' or ';' of a class definition
-nl_after_class = 2 # number
-
-# The number of newlines after '}' of a namespace
-nl_after_namespace = 2 # number
-
-# The number of newlines before a 'private:', 'public:', 'protected:', 'signals:', or 'slots:' label.
-# Will not change the newline count if after a brace open.
-# 0 = No change.
-nl_before_access_spec = 2 # number
-
-# The number of newlines after a 'private:', 'public:', 'protected:', 'signals:' or 'slots:' label.
-# 0 = No change.
-# the option 'nl_after_access_spec' takes preference over 'nl_typedef_blk_start' and 'nl_var_def_blk_start'
-nl_after_access_spec = 1 # number
-
-# The number of newlines between a function def and the function comment.
-# 0 = No change.
-nl_comment_func_def = 1 # number
-
-# The number of newlines after a try-catch-finally block that isn't followed by a brace close.
-# 0 = No change.
-nl_after_try_catch_finally = 1 # number
-
-# The number of newlines before and after a property, indexer or event decl.
-# 0 = No change.
-nl_around_cs_property = 1 # number
-
-# The number of newlines between the get/set/add/remove handlers in C#.
-# 0 = No change.
-nl_between_get_set = 1 # number
-
-# Add or remove newline between C# property and the '{'
-nl_property_brace = remove # ignore/add/remove/force
-
-# Whether to remove blank lines after '{'
-eat_blanks_after_open_brace = true # false/true
-
-# Whether to remove blank lines before '}'
-eat_blanks_before_close_brace = true # false/true
-
-# How aggressively to remove extra newlines not in preproc.
-# 0: No change
-# 1: Remove most newlines not handled by other config
-# 2: Remove all newlines and reformat completely by config
-nl_remove_extra_newlines = 1 # number
-
-# Whether to put a blank line before 'return' statements, unless after an open brace.
-nl_before_return = false # false/true
-
-# Whether to put a blank line after 'return' statements, unless followed by a close brace.
-nl_after_return = false # false/true
-
-# Whether to put a newline after a Java annotation statement.
-# Only affects annotations that are after a newline.
-nl_after_annotation = force # ignore/add/remove/force
-
-#
-# Code modifying options (non-whitespace)
-#
-
-# Add or remove braces on single-line 'do' statement
-mod_full_brace_do = force # ignore/add/remove/force
-
-# Add or remove braces on single-line 'for' statement
-mod_full_brace_for = remove # ignore/add/remove/force
-
-# Add or remove braces on single-line 'if' statement. Will not remove the braces if they contain an 'else'.
-mod_full_brace_if = remove # ignore/add/remove/force
-
-# Make all if/elseif/else statements in a chain be braced or not. Overrides mod_full_brace_if.
-# If any must be braced, they are all braced. If all can be unbraced, then the braces are removed.
-mod_full_brace_if_chain = true # false/true
-
-# Don't remove braces around statements that span N newlines
-mod_full_brace_nl = 2 # number
-
-# Add or remove braces on single-line 'while' statement
-mod_full_brace_while = remove # ignore/add/remove/force
-
-# Add or remove braces on single-line 'using ()' statement
-mod_full_brace_using = remove # ignore/add/remove/force
-
-# Add or remove unnecessary paren on 'return' statement
-mod_paren_on_return = remove # ignore/add/remove/force
-
-# Whether to change optional semicolons to real semicolons
-mod_pawn_semicolon = false # false/true
-
-# Add parens on 'while' and 'if' statement around bools
-mod_full_paren_if_bool = false # false/true
-
-# Whether to remove superfluous semicolons
-mod_remove_extra_semicolon = true # false/true
-
-# If a function body exceeds the specified number of newlines and doesn't have a comment after
-# the close brace, a comment will be added.
-mod_add_long_function_closebrace_comment = 0 # number
-
-# If a namespace body exceeds the specified number of newlines and doesn't have a comment after
-# the close brace, a comment will be added.
-mod_add_long_namespace_closebrace_comment = 0 # number
-
-# If a switch body exceeds the specified number of newlines and doesn't have a comment after
-# the close brace, a comment will be added.
-mod_add_long_switch_closebrace_comment = 0 # number
-
-# If an #ifdef body exceeds the specified number of newlines and doesn't have a comment after
-# the #endif, a comment will be added.
-mod_add_long_ifdef_endif_comment = 0 # number
-
-# If an #ifdef or #else body exceeds the specified number of newlines and doesn't have a comment after
-# the #else, a comment will be added.
-mod_add_long_ifdef_else_comment = 0 # number
-
-# If TRUE, will sort consecutive single-line 'import' statements [Java, D]
-mod_sort_import = true # false/true
-
-# If TRUE, will sort consecutive single-line 'using' statements [C#]
-mod_sort_using = true # false/true
-
-# If TRUE, will sort consecutive single-line '#include' statements [C/C++] and '#import' statements [Obj-C]
-# This is generally a bad idea, as it may break your code.
-mod_sort_include = false # false/true
-
-# If TRUE, it will move a 'break' that appears after a fully braced 'case' before the close brace.
-mod_move_case_break = false # false/true
-
-# If TRUE, it will remove a void 'return;' that appears as the last statement in a function.
-mod_remove_empty_return = true # false/true
-
-#
-# Comment modifications
-#
-
-# Try to wrap comments at cmt_width columns
-cmt_width = 80 # number
-
-# Set the comment reflow mode (default: 0)
-# 0: no reflowing (apart from the line wrapping due to cmt_width)
-# 1: no touching at all
-# 2: full reflow
-cmt_reflow_mode = 1 # number
-
-# Whether to convert all tabs to spaces in comments. Default is to leave tabs inside comments alone, unless used for indenting.
-cmt_convert_tab_to_spaces = false # false/true
-
-# If false, disable all multi-line comment changes, including cmt_width. keyword substitution and leading chars.
-# Default is true.
-cmt_indent_multi = true # false/true
-
-# Whether to group c-comments that look like they are in a block
-cmt_c_group = true # false/true
-
-# Whether to put an empty '/*' on the first line of the combined c-comment
-cmt_c_nl_start = true # false/true
-
-# Whether to put a newline before the closing '*/' of the combined c-comment
-cmt_c_nl_end = true # false/true
-
-# Whether to group cpp-comments that look like they are in a block
-cmt_cpp_group = true # false/true
-
-# Whether to put an empty '/*' on the first line of the combined cpp-comment
-cmt_cpp_nl_start = true # false/true
-
-# Whether to put a newline before the closing '*/' of the combined cpp-comment
-cmt_cpp_nl_end = true # false/true
-
-# Whether to change cpp-comments into c-comments
-cmt_cpp_to_c = false # false/true
-
-# Whether to put a star on subsequent comment lines
-cmt_star_cont = true # false/true
-
-# The number of spaces to insert at the start of subsequent comment lines
-cmt_sp_before_star_cont = 0 # number
-
-# The number of spaces to insert after the star on subsequent comment lines
-cmt_sp_after_star_cont = 0 # number
-
-# For multi-line comments with a '*' lead, remove leading spaces if the first and last lines of
-# the comment are the same length. Default=True
-cmt_multi_check_last = false # false/true
-
-# The filename that contains text to insert at the head of a file if the file doesn't start with a C/C++ comment.
-# Will substitute $(filename) with the current file's name.
-cmt_insert_file_header = "" # string
-
-# The filename that contains text to insert at the end of a file if the file doesn't end with a C/C++ comment.
-# Will substitute $(filename) with the current file's name.
-cmt_insert_file_footer = "" # string
-
-# The filename that contains text to insert before a function implementation if the function isn't preceded with a C/C++ comment.
-# Will substitute $(function) with the function name and $(javaparam) with the javadoc @param and @return stuff.
-# Will also substitute $(fclass) with the class name: void CFoo::Bar() { ... }
-cmt_insert_func_header = "" # string
-
-# The filename that contains text to insert before a class if the class isn't preceded with a C/C++ comment.
-# Will substitute $(class) with the class name.
-cmt_insert_class_header = "" # string
-
-# The filename that contains text to insert before a Obj-C message specification if the method isn't preceded with a C/C++ comment.
-# Will substitute $(message) with the function name and $(javaparam) with the javadoc @param and @return stuff.
-cmt_insert_oc_msg_header = "" # string
-
-# If a preprocessor is encountered when stepping backwards from a function name, then
-# this option decides whether the comment should be inserted.
-# Affects cmt_insert_oc_msg_header, cmt_insert_func_header and cmt_insert_class_header.
-cmt_insert_before_preproc = false # false/true
-
-#
-# Preprocessor options
-#
-
-# Whether to indent #if/#else/#endif at the brace level (true) or from column 1 (false)
-pp_indent_at_level = false # false/true
-
-# Specifies the number of columns to indent preprocessors per level at brace level 0 (file-level).
-# If pp_indent_at_level=false, specifies the number of columns to indent preprocessors per level at brace level > 0 (function-level).
-# Default=1.
-pp_indent_count = 1 # number
-
-# Add or remove space after # based on pp_level of #if blocks
-pp_space = remove # ignore/add/remove/force
-
-# Sets the number of spaces added with pp_space
-pp_space_count = 1 # number
-
-# The indent for #region and #endregion in C# and '#pragma region' in C/C++
-pp_indent_region = 0 # number
-
-# Whether to indent the code between #region and #endregion
-pp_region_indent_code = false # false/true
-
-# If pp_indent_at_level=true, sets the indent for #if, #else and #endif when not at file-level.
-# 0: indent preprocessors using output_tab_size.
-# >0: column at which all preprocessors will be indented.
-pp_indent_if = 0 # number
-
-# Control whether to indent the code between #if, #else and #endif.
-pp_if_indent_code = false # false/true
-
-# Whether to indent '#define' at the brace level (true) or from column 1 (false)
-pp_define_at_level = false # false/true
-
-# Use or Do not Use options
-#
-
-# True: indent_func_call_param will be used
-# False: indent_func_call_param will NOT be used
-use_indent_func_call_param = true # false/true
-
-# True: indent_continue will be used only once
-# False: indent_continue will be used every time (default)
-use_indent_continue_only_once = false # false/true
-
-# You can force a token to be a type with the 'type' option.
-# Example:
-# type myfoo1 myfoo2
-#
-# You can create custom macro-based indentation using macro-open,
-# macro-else and macro-close.
-# Example:
-# macro-open BEGIN_TEMPLATE_MESSAGE_MAP
-# macro-open BEGIN_MESSAGE_MAP
-# macro-close END_MESSAGE_MAP
-#
-# You can assign any keyword to any type with the set option.
-# set func_call_user _ N_
-#
-# The full syntax description of all custom definition config entries
-# is shown below:
-#
-# define custom tokens as:
-# - embed whitespace in token using '' escape character, or
-# put token in quotes
-# - these: ' " and ` are recognized as quote delimiters
-#
-# type token1 token2 token3 ...
-# ^ optionally specify multiple tokens on a single line
-# define def_token output_token
-# ^ output_token is optional, then NULL is assumed
-# macro-open token
-# macro-close token
-# macro-else token
-# set id token1 token2 ...
-# ^ optionally specify multiple tokens on a single line
-# ^ id is one of the names in token_enum.h sans the CT_ prefix,
-# e.g. PP_PRAGMA
-#
-# all tokens are separated by any mix of ',' commas, '=' equal signs
-# and whitespace (space, tab)
-#
-# You can add support for other file extensions using the 'file_ext' command.
-# The first arg is the language name used with the '-l' option.
-# The remaining args are file extensions, matched with 'endswith'.
-# file_ext CPP .ch .cxx .cpp.in
-#
-type byte cchar uchar ushort word uint ulong llong ullong
-type int8 uint8 int16 uint16 int32 uint32 int64 uint64
-type FILE size_t ssize_t va_list wchar_t
-type BOOL BSTR BYTE CHAR DOUBLE DWORD DWORD64 DWORD_PTR FALSE FLOAT
-type HANDLE HKEY HRESULT HWND INT INT8 INT16 INT32 INT64 LONG LONG64 LONG_PTR
-type LPARAM LPSTR LPCSTR LPCWSTR LPTSTR LPVOID LPWSTR PSZ SHORT TRUE
-type UCHAR UINT UINT8 UINT16 UINT32 UINT64 UINT_PTR ULONG ULONG64 ULONG_PTR
-type USHORT WCHAR WORD WORD_PTR WPARAM
-
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/uigui_uncrustify.ini b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/uigui_uncrustify.ini
deleted file mode 100644
index 19188d03..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/uigui_uncrustify.ini
+++ /dev/null
@@ -1,7018 +0,0 @@
-[header]
-categories=General options|Spacing options|Indenting options|Newline adding and removing options|Blank line options|Positioning options|Line splitting options|Code alignment options (not left column spaces/tabs)|Comment modification options|Code modifying options (non-whitespace)|Preprocessor options|Sort includes options|Use or Do not Use options|Warn levels - 1: error, 2: warning (default), 3: note
-cfgFileParameterEnding=cr
-configFilename=uncrustify.cfg
-fileTypes=*.c|*.cpp|*.d|*.cs|*.vala|*.java|*.pawn|*.p|*.sma|*.inl|*.h|*.cxx|*.hpp|*.hxx|*.cc|*.cp|*.C|*.CPP|*.c++|*.di|*.m|*.mm|*.sqc|*.es
-indenterFileName=uncrustify
-indenterName=Uncrustify (C, C++, C#, ObjectiveC, D, Java, Pawn, VALA)
-inputFileName=indentinput
-inputFileParameter="-f "
-manual=http://uncrustify.sourceforge.net/config.txt
-outputFileName=indentoutput
-outputFileParameter="-o "
-stringparaminquotes=false
-parameterOrder=ipo
-showHelpParameter=-h
-stringparaminquotes=false
-useCfgFileParameter="-c "
-version=Uncrustify-0.74.0
-
-[Newlines]
-Category=0
-Description="<html>The type of line endings.<br/><br/>Default: auto</html>"
-Enabled=false
-EditorType=multiple
-Choices=newlines=lf|newlines=crlf|newlines=cr|newlines=auto
-ChoicesReadable="Newlines Unix|Newlines Win|Newlines Mac|Newlines Auto"
-ValueDefault=auto
-
-[Input Tab Size]
-Category=0
-Description="<html>The original size of tabs in the input.<br/><br/>Default: 8</html>"
-Enabled=false
-EditorType=numeric
-CallName="input_tab_size="
-MinVal=1
-MaxVal=32
-ValueDefault=8
-
-[Output Tab Size]
-Category=0
-Description="<html>The size of tabs in the output (only used if align_with_tabs=true).<br/><br/>Default: 8</html>"
-Enabled=false
-EditorType=numeric
-CallName="output_tab_size="
-MinVal=1
-MaxVal=32
-ValueDefault=8
-
-[String Escape Char]
-Category=0
-Description="<html>The ASCII value of the string escape char, usually 92 (\) or (Pawn) 94 (^).<br/><br/>Default: 92</html>"
-Enabled=false
-EditorType=numeric
-CallName="string_escape_char="
-MinVal=0
-MaxVal=255
-ValueDefault=92
-
-[String Escape Char2]
-Category=0
-Description="<html>Alternate string escape char (usually only used for Pawn).<br/>Only works right before the quote char.</html>"
-Enabled=false
-EditorType=numeric
-CallName="string_escape_char2="
-MinVal=0
-MaxVal=255
-ValueDefault=0
-
-[String Replace Tab Chars]
-Category=0
-Description="<html>Replace tab characters found in string literals with the escape sequence \t<br/>instead.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=string_replace_tab_chars=true|string_replace_tab_chars=false
-ValueDefault=false
-
-[Tok Split Gte]
-Category=0
-Description="<html>Allow interpreting '&gt;=' and '&gt;&gt;=' as part of a template in code like<br/>'void f(list&lt;list&lt;B&gt;&gt;=val);'. If true, 'assert(x&lt;0 &amp;&amp; y&gt;=3)' will be broken.<br/>Improvements to template detection may make this option obsolete.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=tok_split_gte=true|tok_split_gte=false
-ValueDefault=false
-
-[Disable Processing Nl Cont]
-Category=0
-Description="<html>Disable formatting of NL_CONT ('\\n') ended lines (e.g. multi-line macros).</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=disable_processing_nl_cont=true|disable_processing_nl_cont=false
-ValueDefault=false
-
-[Disable Processing Cmt]
-Category=0
-Description="<html>Specify the marker used in comments to disable processing of part of the<br/>file.<br/><br/>Default: *INDENT-OFF*</html>"
-Enabled=false
-CallName=disable_processing_cmt=
-EditorType=string
-ValueDefault= *INDENT-OFF*
-
-[Enable Processing Cmt]
-Category=0
-Description="<html>Specify the marker used in comments to (re)enable processing in a file.<br/><br/>Default: *INDENT-ON*</html>"
-Enabled=false
-CallName=enable_processing_cmt=
-EditorType=string
-ValueDefault= *INDENT-ON*
-
-[Enable Digraphs]
-Category=0
-Description="<html>Enable parsing of digraphs.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=enable_digraphs=true|enable_digraphs=false
-ValueDefault=false
-
-[Processing Cmt As Regex]
-Category=0
-Description="<html>Option to allow both disable_processing_cmt and enable_processing_cmt<br/>strings, if specified, to be interpreted as ECMAScript regular expressions.<br/>If true, a regex search will be performed within comments according to the<br/>specified patterns in order to disable/enable processing.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=processing_cmt_as_regex=true|processing_cmt_as_regex=false
-ValueDefault=false
-
-[Utf8 Bom]
-Category=0
-Description="<html>Add or remove the UTF-8 BOM (recommend 'remove').</html>"
-Enabled=false
-EditorType=multiple
-Choices=utf8_bom=ignore|utf8_bom=add|utf8_bom=remove|utf8_bom=force|utf8_bom=not_defined
-ChoicesReadable="Ignore Utf8 Bom|Add Utf8 Bom|Remove Utf8 Bom|Force Utf8 Bom"
-ValueDefault=ignore
-
-[Utf8 Byte]
-Category=0
-Description="<html>If the file contains bytes with values between 128 and 255, but is not<br/>UTF-8, then output as UTF-8.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=utf8_byte=true|utf8_byte=false
-ValueDefault=false
-
-[Utf8 Force]
-Category=0
-Description="<html>Force the output encoding to UTF-8.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=utf8_force=true|utf8_force=false
-ValueDefault=false
-
-[Sp Arith]
-Category=1
-Description="<html>Add or remove space around non-assignment symbolic operators ('+', '/', '%',<br/>'&lt;&lt;', and so forth).</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_arith=ignore|sp_arith=add|sp_arith=remove|sp_arith=force|sp_arith=not_defined
-ChoicesReadable="Ignore Sp Arith|Add Sp Arith|Remove Sp Arith|Force Sp Arith"
-ValueDefault=ignore
-
-[Sp Arith Additive]
-Category=1
-Description="<html>Add or remove space around arithmetic operators '+' and '-'.<br/><br/>Overrides sp_arith.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_arith_additive=ignore|sp_arith_additive=add|sp_arith_additive=remove|sp_arith_additive=force|sp_arith_additive=not_defined
-ChoicesReadable="Ignore Sp Arith Additive|Add Sp Arith Additive|Remove Sp Arith Additive|Force Sp Arith Additive"
-ValueDefault=ignore
-
-[Sp Assign]
-Category=1
-Description="<html>Add or remove space around assignment operator '=', '+=', etc.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_assign=ignore|sp_assign=add|sp_assign=remove|sp_assign=force|sp_assign=not_defined
-ChoicesReadable="Ignore Sp Assign|Add Sp Assign|Remove Sp Assign|Force Sp Assign"
-ValueDefault=ignore
-
-[Sp Cpp Lambda Assign]
-Category=1
-Description="<html>Add or remove space around '=' in C++11 lambda capture specifications.<br/><br/>Overrides sp_assign.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_cpp_lambda_assign=ignore|sp_cpp_lambda_assign=add|sp_cpp_lambda_assign=remove|sp_cpp_lambda_assign=force|sp_cpp_lambda_assign=not_defined
-ChoicesReadable="Ignore Sp Cpp Lambda Assign|Add Sp Cpp Lambda Assign|Remove Sp Cpp Lambda Assign|Force Sp Cpp Lambda Assign"
-ValueDefault=ignore
-
-[Sp Cpp Lambda Square Paren]
-Category=1
-Description="<html>Add or remove space after the capture specification of a C++11 lambda when<br/>an argument list is present, as in '[] &lt;here&gt; (int x){ ... }'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_cpp_lambda_square_paren=ignore|sp_cpp_lambda_square_paren=add|sp_cpp_lambda_square_paren=remove|sp_cpp_lambda_square_paren=force|sp_cpp_lambda_square_paren=not_defined
-ChoicesReadable="Ignore Sp Cpp Lambda Square Paren|Add Sp Cpp Lambda Square Paren|Remove Sp Cpp Lambda Square Paren|Force Sp Cpp Lambda Square Paren"
-ValueDefault=ignore
-
-[Sp Cpp Lambda Square Brace]
-Category=1
-Description="<html>Add or remove space after the capture specification of a C++11 lambda with<br/>no argument list is present, as in '[] &lt;here&gt; { ... }'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_cpp_lambda_square_brace=ignore|sp_cpp_lambda_square_brace=add|sp_cpp_lambda_square_brace=remove|sp_cpp_lambda_square_brace=force|sp_cpp_lambda_square_brace=not_defined
-ChoicesReadable="Ignore Sp Cpp Lambda Square Brace|Add Sp Cpp Lambda Square Brace|Remove Sp Cpp Lambda Square Brace|Force Sp Cpp Lambda Square Brace"
-ValueDefault=ignore
-
-[Sp Cpp Lambda Argument List]
-Category=1
-Description="<html>Add or remove space after the opening parenthesis and before the closing<br/>parenthesis of a argument list of a C++11 lambda, as in<br/>'[]( &lt;here&gt; int x &lt;here&gt; ){ ... }'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_cpp_lambda_argument_list=ignore|sp_cpp_lambda_argument_list=add|sp_cpp_lambda_argument_list=remove|sp_cpp_lambda_argument_list=force|sp_cpp_lambda_argument_list=not_defined
-ChoicesReadable="Ignore Sp Cpp Lambda Argument List|Add Sp Cpp Lambda Argument List|Remove Sp Cpp Lambda Argument List|Force Sp Cpp Lambda Argument List"
-ValueDefault=ignore
-
-[Sp Cpp Lambda Paren Brace]
-Category=1
-Description="<html>Add or remove space after the argument list of a C++11 lambda, as in<br/>'[](int x) &lt;here&gt; { ... }'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_cpp_lambda_paren_brace=ignore|sp_cpp_lambda_paren_brace=add|sp_cpp_lambda_paren_brace=remove|sp_cpp_lambda_paren_brace=force|sp_cpp_lambda_paren_brace=not_defined
-ChoicesReadable="Ignore Sp Cpp Lambda Paren Brace|Add Sp Cpp Lambda Paren Brace|Remove Sp Cpp Lambda Paren Brace|Force Sp Cpp Lambda Paren Brace"
-ValueDefault=ignore
-
-[Sp Cpp Lambda Fparen]
-Category=1
-Description="<html>Add or remove space between a lambda body and its call operator of an<br/>immediately invoked lambda, as in '[]( ... ){ ... } &lt;here&gt; ( ... )'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_cpp_lambda_fparen=ignore|sp_cpp_lambda_fparen=add|sp_cpp_lambda_fparen=remove|sp_cpp_lambda_fparen=force|sp_cpp_lambda_fparen=not_defined
-ChoicesReadable="Ignore Sp Cpp Lambda Fparen|Add Sp Cpp Lambda Fparen|Remove Sp Cpp Lambda Fparen|Force Sp Cpp Lambda Fparen"
-ValueDefault=ignore
-
-[Sp Assign Default]
-Category=1
-Description="<html>Add or remove space around assignment operator '=' in a prototype.<br/><br/>If set to ignore, use sp_assign.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_assign_default=ignore|sp_assign_default=add|sp_assign_default=remove|sp_assign_default=force|sp_assign_default=not_defined
-ChoicesReadable="Ignore Sp Assign Default|Add Sp Assign Default|Remove Sp Assign Default|Force Sp Assign Default"
-ValueDefault=ignore
-
-[Sp Before Assign]
-Category=1
-Description="<html>Add or remove space before assignment operator '=', '+=', etc.<br/><br/>Overrides sp_assign.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_assign=ignore|sp_before_assign=add|sp_before_assign=remove|sp_before_assign=force|sp_before_assign=not_defined
-ChoicesReadable="Ignore Sp Before Assign|Add Sp Before Assign|Remove Sp Before Assign|Force Sp Before Assign"
-ValueDefault=ignore
-
-[Sp After Assign]
-Category=1
-Description="<html>Add or remove space after assignment operator '=', '+=', etc.<br/><br/>Overrides sp_assign.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_assign=ignore|sp_after_assign=add|sp_after_assign=remove|sp_after_assign=force|sp_after_assign=not_defined
-ChoicesReadable="Ignore Sp After Assign|Add Sp After Assign|Remove Sp After Assign|Force Sp After Assign"
-ValueDefault=ignore
-
-[Sp Enum Paren]
-Category=1
-Description="<html>Add or remove space in 'NS_ENUM ('.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_enum_paren=ignore|sp_enum_paren=add|sp_enum_paren=remove|sp_enum_paren=force|sp_enum_paren=not_defined
-ChoicesReadable="Ignore Sp Enum Paren|Add Sp Enum Paren|Remove Sp Enum Paren|Force Sp Enum Paren"
-ValueDefault=ignore
-
-[Sp Enum Assign]
-Category=1
-Description="<html>Add or remove space around assignment '=' in enum.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_enum_assign=ignore|sp_enum_assign=add|sp_enum_assign=remove|sp_enum_assign=force|sp_enum_assign=not_defined
-ChoicesReadable="Ignore Sp Enum Assign|Add Sp Enum Assign|Remove Sp Enum Assign|Force Sp Enum Assign"
-ValueDefault=ignore
-
-[Sp Enum Before Assign]
-Category=1
-Description="<html>Add or remove space before assignment '=' in enum.<br/><br/>Overrides sp_enum_assign.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_enum_before_assign=ignore|sp_enum_before_assign=add|sp_enum_before_assign=remove|sp_enum_before_assign=force|sp_enum_before_assign=not_defined
-ChoicesReadable="Ignore Sp Enum Before Assign|Add Sp Enum Before Assign|Remove Sp Enum Before Assign|Force Sp Enum Before Assign"
-ValueDefault=ignore
-
-[Sp Enum After Assign]
-Category=1
-Description="<html>Add or remove space after assignment '=' in enum.<br/><br/>Overrides sp_enum_assign.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_enum_after_assign=ignore|sp_enum_after_assign=add|sp_enum_after_assign=remove|sp_enum_after_assign=force|sp_enum_after_assign=not_defined
-ChoicesReadable="Ignore Sp Enum After Assign|Add Sp Enum After Assign|Remove Sp Enum After Assign|Force Sp Enum After Assign"
-ValueDefault=ignore
-
-[Sp Enum Colon]
-Category=1
-Description="<html>Add or remove space around assignment ':' in enum.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_enum_colon=ignore|sp_enum_colon=add|sp_enum_colon=remove|sp_enum_colon=force|sp_enum_colon=not_defined
-ChoicesReadable="Ignore Sp Enum Colon|Add Sp Enum Colon|Remove Sp Enum Colon|Force Sp Enum Colon"
-ValueDefault=ignore
-
-[Sp Pp Concat]
-Category=1
-Description="<html>Add or remove space around preprocessor '##' concatenation operator.<br/><br/>Default: add</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_pp_concat=ignore|sp_pp_concat=add|sp_pp_concat=remove|sp_pp_concat=force|sp_pp_concat=not_defined
-ChoicesReadable="Ignore Sp Pp Concat|Add Sp Pp Concat|Remove Sp Pp Concat|Force Sp Pp Concat"
-ValueDefault=add
-
-[Sp Pp Stringify]
-Category=1
-Description="<html>Add or remove space after preprocessor '#' stringify operator.<br/>Also affects the '#@' charizing operator.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_pp_stringify=ignore|sp_pp_stringify=add|sp_pp_stringify=remove|sp_pp_stringify=force|sp_pp_stringify=not_defined
-ChoicesReadable="Ignore Sp Pp Stringify|Add Sp Pp Stringify|Remove Sp Pp Stringify|Force Sp Pp Stringify"
-ValueDefault=ignore
-
-[Sp Before Pp Stringify]
-Category=1
-Description="<html>Add or remove space before preprocessor '#' stringify operator<br/>as in '#define x(y) L#y'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_pp_stringify=ignore|sp_before_pp_stringify=add|sp_before_pp_stringify=remove|sp_before_pp_stringify=force|sp_before_pp_stringify=not_defined
-ChoicesReadable="Ignore Sp Before Pp Stringify|Add Sp Before Pp Stringify|Remove Sp Before Pp Stringify|Force Sp Before Pp Stringify"
-ValueDefault=ignore
-
-[Sp Bool]
-Category=1
-Description="<html>Add or remove space around boolean operators '&amp;&amp;' and '||'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_bool=ignore|sp_bool=add|sp_bool=remove|sp_bool=force|sp_bool=not_defined
-ChoicesReadable="Ignore Sp Bool|Add Sp Bool|Remove Sp Bool|Force Sp Bool"
-ValueDefault=ignore
-
-[Sp Compare]
-Category=1
-Description="<html>Add or remove space around compare operator '&lt;', '&gt;', '==', etc.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_compare=ignore|sp_compare=add|sp_compare=remove|sp_compare=force|sp_compare=not_defined
-ChoicesReadable="Ignore Sp Compare|Add Sp Compare|Remove Sp Compare|Force Sp Compare"
-ValueDefault=ignore
-
-[Sp Inside Paren]
-Category=1
-Description="<html>Add or remove space inside '(' and ')'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_inside_paren=ignore|sp_inside_paren=add|sp_inside_paren=remove|sp_inside_paren=force|sp_inside_paren=not_defined
-ChoicesReadable="Ignore Sp Inside Paren|Add Sp Inside Paren|Remove Sp Inside Paren|Force Sp Inside Paren"
-ValueDefault=ignore
-
-[Sp Paren Paren]
-Category=1
-Description="<html>Add or remove space between nested parentheses, i.e. '((' vs. ') )'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_paren_paren=ignore|sp_paren_paren=add|sp_paren_paren=remove|sp_paren_paren=force|sp_paren_paren=not_defined
-ChoicesReadable="Ignore Sp Paren Paren|Add Sp Paren Paren|Remove Sp Paren Paren|Force Sp Paren Paren"
-ValueDefault=ignore
-
-[Sp Cparen Oparen]
-Category=1
-Description="<html>Add or remove space between back-to-back parentheses, i.e. ')(' vs. ') ('.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_cparen_oparen=ignore|sp_cparen_oparen=add|sp_cparen_oparen=remove|sp_cparen_oparen=force|sp_cparen_oparen=not_defined
-ChoicesReadable="Ignore Sp Cparen Oparen|Add Sp Cparen Oparen|Remove Sp Cparen Oparen|Force Sp Cparen Oparen"
-ValueDefault=ignore
-
-[Sp Balance Nested Parens]
-Category=1
-Description="<html>Whether to balance spaces inside nested parentheses.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=sp_balance_nested_parens=true|sp_balance_nested_parens=false
-ValueDefault=false
-
-[Sp Paren Brace]
-Category=1
-Description="<html>Add or remove space between ')' and '{'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_paren_brace=ignore|sp_paren_brace=add|sp_paren_brace=remove|sp_paren_brace=force|sp_paren_brace=not_defined
-ChoicesReadable="Ignore Sp Paren Brace|Add Sp Paren Brace|Remove Sp Paren Brace|Force Sp Paren Brace"
-ValueDefault=ignore
-
-[Sp Brace Brace]
-Category=1
-Description="<html>Add or remove space between nested braces, i.e. '{{' vs. '{ {'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_brace_brace=ignore|sp_brace_brace=add|sp_brace_brace=remove|sp_brace_brace=force|sp_brace_brace=not_defined
-ChoicesReadable="Ignore Sp Brace Brace|Add Sp Brace Brace|Remove Sp Brace Brace|Force Sp Brace Brace"
-ValueDefault=ignore
-
-[Sp Before Ptr Star]
-Category=1
-Description="<html>Add or remove space before pointer star '*'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_ptr_star=ignore|sp_before_ptr_star=add|sp_before_ptr_star=remove|sp_before_ptr_star=force|sp_before_ptr_star=not_defined
-ChoicesReadable="Ignore Sp Before Ptr Star|Add Sp Before Ptr Star|Remove Sp Before Ptr Star|Force Sp Before Ptr Star"
-ValueDefault=ignore
-
-[Sp Before Unnamed Ptr Star]
-Category=1
-Description="<html>Add or remove space before pointer star '*' that isn't followed by a<br/>variable name. If set to ignore, sp_before_ptr_star is used instead.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_unnamed_ptr_star=ignore|sp_before_unnamed_ptr_star=add|sp_before_unnamed_ptr_star=remove|sp_before_unnamed_ptr_star=force|sp_before_unnamed_ptr_star=not_defined
-ChoicesReadable="Ignore Sp Before Unnamed Ptr Star|Add Sp Before Unnamed Ptr Star|Remove Sp Before Unnamed Ptr Star|Force Sp Before Unnamed Ptr Star"
-ValueDefault=ignore
-
-[Sp Between Ptr Star]
-Category=1
-Description="<html>Add or remove space between pointer stars '*', as in 'int ***a;'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_between_ptr_star=ignore|sp_between_ptr_star=add|sp_between_ptr_star=remove|sp_between_ptr_star=force|sp_between_ptr_star=not_defined
-ChoicesReadable="Ignore Sp Between Ptr Star|Add Sp Between Ptr Star|Remove Sp Between Ptr Star|Force Sp Between Ptr Star"
-ValueDefault=ignore
-
-[Sp After Ptr Star]
-Category=1
-Description="<html>Add or remove space after pointer star '*', if followed by a word.<br/><br/>Overrides sp_type_func.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_ptr_star=ignore|sp_after_ptr_star=add|sp_after_ptr_star=remove|sp_after_ptr_star=force|sp_after_ptr_star=not_defined
-ChoicesReadable="Ignore Sp After Ptr Star|Add Sp After Ptr Star|Remove Sp After Ptr Star|Force Sp After Ptr Star"
-ValueDefault=ignore
-
-[Sp After Ptr Block Caret]
-Category=1
-Description="<html>Add or remove space after pointer caret '^', if followed by a word.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_ptr_block_caret=ignore|sp_after_ptr_block_caret=add|sp_after_ptr_block_caret=remove|sp_after_ptr_block_caret=force|sp_after_ptr_block_caret=not_defined
-ChoicesReadable="Ignore Sp After Ptr Block Caret|Add Sp After Ptr Block Caret|Remove Sp After Ptr Block Caret|Force Sp After Ptr Block Caret"
-ValueDefault=ignore
-
-[Sp After Ptr Star Qualifier]
-Category=1
-Description="<html>Add or remove space after pointer star '*', if followed by a qualifier.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_ptr_star_qualifier=ignore|sp_after_ptr_star_qualifier=add|sp_after_ptr_star_qualifier=remove|sp_after_ptr_star_qualifier=force|sp_after_ptr_star_qualifier=not_defined
-ChoicesReadable="Ignore Sp After Ptr Star Qualifier|Add Sp After Ptr Star Qualifier|Remove Sp After Ptr Star Qualifier|Force Sp After Ptr Star Qualifier"
-ValueDefault=ignore
-
-[Sp After Ptr Star Func]
-Category=1
-Description="<html>Add or remove space after a pointer star '*', if followed by a function<br/>prototype or function definition.<br/><br/>Overrides sp_after_ptr_star and sp_type_func.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_ptr_star_func=ignore|sp_after_ptr_star_func=add|sp_after_ptr_star_func=remove|sp_after_ptr_star_func=force|sp_after_ptr_star_func=not_defined
-ChoicesReadable="Ignore Sp After Ptr Star Func|Add Sp After Ptr Star Func|Remove Sp After Ptr Star Func|Force Sp After Ptr Star Func"
-ValueDefault=ignore
-
-[Sp After Ptr Star Trailing]
-Category=1
-Description="<html>Add or remove space after a pointer star '*' in the trailing return of a<br/>function prototype or function definition.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_ptr_star_trailing=ignore|sp_after_ptr_star_trailing=add|sp_after_ptr_star_trailing=remove|sp_after_ptr_star_trailing=force|sp_after_ptr_star_trailing=not_defined
-ChoicesReadable="Ignore Sp After Ptr Star Trailing|Add Sp After Ptr Star Trailing|Remove Sp After Ptr Star Trailing|Force Sp After Ptr Star Trailing"
-ValueDefault=ignore
-
-[Sp Ptr Star Func Var]
-Category=1
-Description="<html>Add or remove space between the pointer star '*' and the name of the variable<br/>in a function pointer definition.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_ptr_star_func_var=ignore|sp_ptr_star_func_var=add|sp_ptr_star_func_var=remove|sp_ptr_star_func_var=force|sp_ptr_star_func_var=not_defined
-ChoicesReadable="Ignore Sp Ptr Star Func Var|Add Sp Ptr Star Func Var|Remove Sp Ptr Star Func Var|Force Sp Ptr Star Func Var"
-ValueDefault=ignore
-
-[Sp Ptr Star Paren]
-Category=1
-Description="<html>Add or remove space after a pointer star '*', if followed by an open<br/>parenthesis, as in 'void* (*)()'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_ptr_star_paren=ignore|sp_ptr_star_paren=add|sp_ptr_star_paren=remove|sp_ptr_star_paren=force|sp_ptr_star_paren=not_defined
-ChoicesReadable="Ignore Sp Ptr Star Paren|Add Sp Ptr Star Paren|Remove Sp Ptr Star Paren|Force Sp Ptr Star Paren"
-ValueDefault=ignore
-
-[Sp Before Ptr Star Func]
-Category=1
-Description="<html>Add or remove space before a pointer star '*', if followed by a function<br/>prototype or function definition.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_ptr_star_func=ignore|sp_before_ptr_star_func=add|sp_before_ptr_star_func=remove|sp_before_ptr_star_func=force|sp_before_ptr_star_func=not_defined
-ChoicesReadable="Ignore Sp Before Ptr Star Func|Add Sp Before Ptr Star Func|Remove Sp Before Ptr Star Func|Force Sp Before Ptr Star Func"
-ValueDefault=ignore
-
-[Sp Before Ptr Star Trailing]
-Category=1
-Description="<html>Add or remove space before a pointer star '*' in the trailing return of a<br/>function prototype or function definition.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_ptr_star_trailing=ignore|sp_before_ptr_star_trailing=add|sp_before_ptr_star_trailing=remove|sp_before_ptr_star_trailing=force|sp_before_ptr_star_trailing=not_defined
-ChoicesReadable="Ignore Sp Before Ptr Star Trailing|Add Sp Before Ptr Star Trailing|Remove Sp Before Ptr Star Trailing|Force Sp Before Ptr Star Trailing"
-ValueDefault=ignore
-
-[Sp Before Byref]
-Category=1
-Description="<html>Add or remove space before a reference sign '&amp;'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_byref=ignore|sp_before_byref=add|sp_before_byref=remove|sp_before_byref=force|sp_before_byref=not_defined
-ChoicesReadable="Ignore Sp Before Byref|Add Sp Before Byref|Remove Sp Before Byref|Force Sp Before Byref"
-ValueDefault=ignore
-
-[Sp Before Unnamed Byref]
-Category=1
-Description="<html>Add or remove space before a reference sign '&amp;' that isn't followed by a<br/>variable name. If set to ignore, sp_before_byref is used instead.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_unnamed_byref=ignore|sp_before_unnamed_byref=add|sp_before_unnamed_byref=remove|sp_before_unnamed_byref=force|sp_before_unnamed_byref=not_defined
-ChoicesReadable="Ignore Sp Before Unnamed Byref|Add Sp Before Unnamed Byref|Remove Sp Before Unnamed Byref|Force Sp Before Unnamed Byref"
-ValueDefault=ignore
-
-[Sp After Byref]
-Category=1
-Description="<html>Add or remove space after reference sign '&amp;', if followed by a word.<br/><br/>Overrides sp_type_func.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_byref=ignore|sp_after_byref=add|sp_after_byref=remove|sp_after_byref=force|sp_after_byref=not_defined
-ChoicesReadable="Ignore Sp After Byref|Add Sp After Byref|Remove Sp After Byref|Force Sp After Byref"
-ValueDefault=ignore
-
-[Sp After Byref Func]
-Category=1
-Description="<html>Add or remove space after a reference sign '&amp;', if followed by a function<br/>prototype or function definition.<br/><br/>Overrides sp_after_byref and sp_type_func.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_byref_func=ignore|sp_after_byref_func=add|sp_after_byref_func=remove|sp_after_byref_func=force|sp_after_byref_func=not_defined
-ChoicesReadable="Ignore Sp After Byref Func|Add Sp After Byref Func|Remove Sp After Byref Func|Force Sp After Byref Func"
-ValueDefault=ignore
-
-[Sp Before Byref Func]
-Category=1
-Description="<html>Add or remove space before a reference sign '&amp;', if followed by a function<br/>prototype or function definition.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_byref_func=ignore|sp_before_byref_func=add|sp_before_byref_func=remove|sp_before_byref_func=force|sp_before_byref_func=not_defined
-ChoicesReadable="Ignore Sp Before Byref Func|Add Sp Before Byref Func|Remove Sp Before Byref Func|Force Sp Before Byref Func"
-ValueDefault=ignore
-
-[Sp After Type]
-Category=1
-Description="<html>Add or remove space between type and word. In cases where total removal of<br/>whitespace would be a syntax error, a value of 'remove' is treated the same<br/>as 'force'.<br/><br/>This also affects some other instances of space following a type that are<br/>not covered by other options; for example, between the return type and<br/>parenthesis of a function type template argument, between the type and<br/>parenthesis of an array parameter, or between 'decltype(...)' and the<br/>following word.<br/><br/>Default: force</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_type=ignore|sp_after_type=add|sp_after_type=remove|sp_after_type=force|sp_after_type=not_defined
-ChoicesReadable="Ignore Sp After Type|Add Sp After Type|Remove Sp After Type|Force Sp After Type"
-ValueDefault=force
-
-[Sp After Decltype]
-Category=1
-Description="<html>Add or remove space between 'decltype(...)' and word,<br/>brace or function call.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_decltype=ignore|sp_after_decltype=add|sp_after_decltype=remove|sp_after_decltype=force|sp_after_decltype=not_defined
-ChoicesReadable="Ignore Sp After Decltype|Add Sp After Decltype|Remove Sp After Decltype|Force Sp After Decltype"
-ValueDefault=ignore
-
-[Sp Before Template Paren]
-Category=1
-Description="<html>(D) Add or remove space before the parenthesis in the D constructs<br/>'template Foo(' and 'class Foo('.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_template_paren=ignore|sp_before_template_paren=add|sp_before_template_paren=remove|sp_before_template_paren=force|sp_before_template_paren=not_defined
-ChoicesReadable="Ignore Sp Before Template Paren|Add Sp Before Template Paren|Remove Sp Before Template Paren|Force Sp Before Template Paren"
-ValueDefault=ignore
-
-[Sp Template Angle]
-Category=1
-Description="<html>Add or remove space between 'template' and '&lt;'.<br/>If set to ignore, sp_before_angle is used.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_template_angle=ignore|sp_template_angle=add|sp_template_angle=remove|sp_template_angle=force|sp_template_angle=not_defined
-ChoicesReadable="Ignore Sp Template Angle|Add Sp Template Angle|Remove Sp Template Angle|Force Sp Template Angle"
-ValueDefault=ignore
-
-[Sp Before Angle]
-Category=1
-Description="<html>Add or remove space before '&lt;'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_angle=ignore|sp_before_angle=add|sp_before_angle=remove|sp_before_angle=force|sp_before_angle=not_defined
-ChoicesReadable="Ignore Sp Before Angle|Add Sp Before Angle|Remove Sp Before Angle|Force Sp Before Angle"
-ValueDefault=ignore
-
-[Sp Inside Angle]
-Category=1
-Description="<html>Add or remove space inside '&lt;' and '&gt;'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_inside_angle=ignore|sp_inside_angle=add|sp_inside_angle=remove|sp_inside_angle=force|sp_inside_angle=not_defined
-ChoicesReadable="Ignore Sp Inside Angle|Add Sp Inside Angle|Remove Sp Inside Angle|Force Sp Inside Angle"
-ValueDefault=ignore
-
-[Sp Inside Angle Empty]
-Category=1
-Description="<html>Add or remove space inside '&lt;&gt;'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_inside_angle_empty=ignore|sp_inside_angle_empty=add|sp_inside_angle_empty=remove|sp_inside_angle_empty=force|sp_inside_angle_empty=not_defined
-ChoicesReadable="Ignore Sp Inside Angle Empty|Add Sp Inside Angle Empty|Remove Sp Inside Angle Empty|Force Sp Inside Angle Empty"
-ValueDefault=ignore
-
-[Sp Angle Colon]
-Category=1
-Description="<html>Add or remove space between '&gt;' and ':'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_angle_colon=ignore|sp_angle_colon=add|sp_angle_colon=remove|sp_angle_colon=force|sp_angle_colon=not_defined
-ChoicesReadable="Ignore Sp Angle Colon|Add Sp Angle Colon|Remove Sp Angle Colon|Force Sp Angle Colon"
-ValueDefault=ignore
-
-[Sp After Angle]
-Category=1
-Description="<html>Add or remove space after '&gt;'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_angle=ignore|sp_after_angle=add|sp_after_angle=remove|sp_after_angle=force|sp_after_angle=not_defined
-ChoicesReadable="Ignore Sp After Angle|Add Sp After Angle|Remove Sp After Angle|Force Sp After Angle"
-ValueDefault=ignore
-
-[Sp Angle Paren]
-Category=1
-Description="<html>Add or remove space between '&gt;' and '(' as found in 'new List&lt;byte&gt;(foo);'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_angle_paren=ignore|sp_angle_paren=add|sp_angle_paren=remove|sp_angle_paren=force|sp_angle_paren=not_defined
-ChoicesReadable="Ignore Sp Angle Paren|Add Sp Angle Paren|Remove Sp Angle Paren|Force Sp Angle Paren"
-ValueDefault=ignore
-
-[Sp Angle Paren Empty]
-Category=1
-Description="<html>Add or remove space between '&gt;' and '()' as found in 'new List&lt;byte&gt;();'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_angle_paren_empty=ignore|sp_angle_paren_empty=add|sp_angle_paren_empty=remove|sp_angle_paren_empty=force|sp_angle_paren_empty=not_defined
-ChoicesReadable="Ignore Sp Angle Paren Empty|Add Sp Angle Paren Empty|Remove Sp Angle Paren Empty|Force Sp Angle Paren Empty"
-ValueDefault=ignore
-
-[Sp Angle Word]
-Category=1
-Description="<html>Add or remove space between '&gt;' and a word as in 'List&lt;byte&gt; m;' or<br/>'template &lt;typename T&gt; static ...'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_angle_word=ignore|sp_angle_word=add|sp_angle_word=remove|sp_angle_word=force|sp_angle_word=not_defined
-ChoicesReadable="Ignore Sp Angle Word|Add Sp Angle Word|Remove Sp Angle Word|Force Sp Angle Word"
-ValueDefault=ignore
-
-[Sp Angle Shift]
-Category=1
-Description="<html>Add or remove space between '&gt;' and '&gt;' in '&gt;&gt;' (template stuff).<br/><br/>Default: add</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_angle_shift=ignore|sp_angle_shift=add|sp_angle_shift=remove|sp_angle_shift=force|sp_angle_shift=not_defined
-ChoicesReadable="Ignore Sp Angle Shift|Add Sp Angle Shift|Remove Sp Angle Shift|Force Sp Angle Shift"
-ValueDefault=add
-
-[Sp Permit Cpp11 Shift]
-Category=1
-Description="<html>(C++11) Permit removal of the space between '&gt;&gt;' in 'foo&lt;bar&lt;int&gt; &gt;'. Note<br/>that sp_angle_shift cannot remove the space without this option.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=sp_permit_cpp11_shift=true|sp_permit_cpp11_shift=false
-ValueDefault=false
-
-[Sp Before Sparen]
-Category=1
-Description="<html>Add or remove space before '(' of control statements ('if', 'for', 'switch',<br/>'while', etc.).</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_sparen=ignore|sp_before_sparen=add|sp_before_sparen=remove|sp_before_sparen=force|sp_before_sparen=not_defined
-ChoicesReadable="Ignore Sp Before Sparen|Add Sp Before Sparen|Remove Sp Before Sparen|Force Sp Before Sparen"
-ValueDefault=ignore
-
-[Sp Inside Sparen]
-Category=1
-Description="<html>Add or remove space inside '(' and ')' of control statements other than<br/>'for'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_inside_sparen=ignore|sp_inside_sparen=add|sp_inside_sparen=remove|sp_inside_sparen=force|sp_inside_sparen=not_defined
-ChoicesReadable="Ignore Sp Inside Sparen|Add Sp Inside Sparen|Remove Sp Inside Sparen|Force Sp Inside Sparen"
-ValueDefault=ignore
-
-[Sp Inside Sparen Open]
-Category=1
-Description="<html>Add or remove space after '(' of control statements other than 'for'.<br/><br/>Overrides sp_inside_sparen.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_inside_sparen_open=ignore|sp_inside_sparen_open=add|sp_inside_sparen_open=remove|sp_inside_sparen_open=force|sp_inside_sparen_open=not_defined
-ChoicesReadable="Ignore Sp Inside Sparen Open|Add Sp Inside Sparen Open|Remove Sp Inside Sparen Open|Force Sp Inside Sparen Open"
-ValueDefault=ignore
-
-[Sp Inside Sparen Close]
-Category=1
-Description="<html>Add or remove space before ')' of control statements other than 'for'.<br/><br/>Overrides sp_inside_sparen.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_inside_sparen_close=ignore|sp_inside_sparen_close=add|sp_inside_sparen_close=remove|sp_inside_sparen_close=force|sp_inside_sparen_close=not_defined
-ChoicesReadable="Ignore Sp Inside Sparen Close|Add Sp Inside Sparen Close|Remove Sp Inside Sparen Close|Force Sp Inside Sparen Close"
-ValueDefault=ignore
-
-[Sp Inside For]
-Category=1
-Description="<html>Add or remove space inside '(' and ')' of 'for' statements.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_inside_for=ignore|sp_inside_for=add|sp_inside_for=remove|sp_inside_for=force|sp_inside_for=not_defined
-ChoicesReadable="Ignore Sp Inside For|Add Sp Inside For|Remove Sp Inside For|Force Sp Inside For"
-ValueDefault=ignore
-
-[Sp Inside For Open]
-Category=1
-Description="<html>Add or remove space after '(' of 'for' statements.<br/><br/>Overrides sp_inside_for.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_inside_for_open=ignore|sp_inside_for_open=add|sp_inside_for_open=remove|sp_inside_for_open=force|sp_inside_for_open=not_defined
-ChoicesReadable="Ignore Sp Inside For Open|Add Sp Inside For Open|Remove Sp Inside For Open|Force Sp Inside For Open"
-ValueDefault=ignore
-
-[Sp Inside For Close]
-Category=1
-Description="<html>Add or remove space before ')' of 'for' statements.<br/><br/>Overrides sp_inside_for.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_inside_for_close=ignore|sp_inside_for_close=add|sp_inside_for_close=remove|sp_inside_for_close=force|sp_inside_for_close=not_defined
-ChoicesReadable="Ignore Sp Inside For Close|Add Sp Inside For Close|Remove Sp Inside For Close|Force Sp Inside For Close"
-ValueDefault=ignore
-
-[Sp Sparen Paren]
-Category=1
-Description="<html>Add or remove space between '((' or '))' of control statements.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_sparen_paren=ignore|sp_sparen_paren=add|sp_sparen_paren=remove|sp_sparen_paren=force|sp_sparen_paren=not_defined
-ChoicesReadable="Ignore Sp Sparen Paren|Add Sp Sparen Paren|Remove Sp Sparen Paren|Force Sp Sparen Paren"
-ValueDefault=ignore
-
-[Sp After Sparen]
-Category=1
-Description="<html>Add or remove space after ')' of control statements.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_sparen=ignore|sp_after_sparen=add|sp_after_sparen=remove|sp_after_sparen=force|sp_after_sparen=not_defined
-ChoicesReadable="Ignore Sp After Sparen|Add Sp After Sparen|Remove Sp After Sparen|Force Sp After Sparen"
-ValueDefault=ignore
-
-[Sp Sparen Brace]
-Category=1
-Description="<html>Add or remove space between ')' and '{' of control statements.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_sparen_brace=ignore|sp_sparen_brace=add|sp_sparen_brace=remove|sp_sparen_brace=force|sp_sparen_brace=not_defined
-ChoicesReadable="Ignore Sp Sparen Brace|Add Sp Sparen Brace|Remove Sp Sparen Brace|Force Sp Sparen Brace"
-ValueDefault=ignore
-
-[Sp Do Brace Open]
-Category=1
-Description="<html>Add or remove space between 'do' and '{'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_do_brace_open=ignore|sp_do_brace_open=add|sp_do_brace_open=remove|sp_do_brace_open=force|sp_do_brace_open=not_defined
-ChoicesReadable="Ignore Sp Do Brace Open|Add Sp Do Brace Open|Remove Sp Do Brace Open|Force Sp Do Brace Open"
-ValueDefault=ignore
-
-[Sp Brace Close While]
-Category=1
-Description="<html>Add or remove space between '}' and 'while'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_brace_close_while=ignore|sp_brace_close_while=add|sp_brace_close_while=remove|sp_brace_close_while=force|sp_brace_close_while=not_defined
-ChoicesReadable="Ignore Sp Brace Close While|Add Sp Brace Close While|Remove Sp Brace Close While|Force Sp Brace Close While"
-ValueDefault=ignore
-
-[Sp While Paren Open]
-Category=1
-Description="<html>Add or remove space between 'while' and '('. Overrides sp_before_sparen.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_while_paren_open=ignore|sp_while_paren_open=add|sp_while_paren_open=remove|sp_while_paren_open=force|sp_while_paren_open=not_defined
-ChoicesReadable="Ignore Sp While Paren Open|Add Sp While Paren Open|Remove Sp While Paren Open|Force Sp While Paren Open"
-ValueDefault=ignore
-
-[Sp Invariant Paren]
-Category=1
-Description="<html>(D) Add or remove space between 'invariant' and '('.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_invariant_paren=ignore|sp_invariant_paren=add|sp_invariant_paren=remove|sp_invariant_paren=force|sp_invariant_paren=not_defined
-ChoicesReadable="Ignore Sp Invariant Paren|Add Sp Invariant Paren|Remove Sp Invariant Paren|Force Sp Invariant Paren"
-ValueDefault=ignore
-
-[Sp After Invariant Paren]
-Category=1
-Description="<html>(D) Add or remove space after the ')' in 'invariant (C) c'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_invariant_paren=ignore|sp_after_invariant_paren=add|sp_after_invariant_paren=remove|sp_after_invariant_paren=force|sp_after_invariant_paren=not_defined
-ChoicesReadable="Ignore Sp After Invariant Paren|Add Sp After Invariant Paren|Remove Sp After Invariant Paren|Force Sp After Invariant Paren"
-ValueDefault=ignore
-
-[Sp Special Semi]
-Category=1
-Description="<html>Add or remove space before empty statement ';' on 'if', 'for' and 'while'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_special_semi=ignore|sp_special_semi=add|sp_special_semi=remove|sp_special_semi=force|sp_special_semi=not_defined
-ChoicesReadable="Ignore Sp Special Semi|Add Sp Special Semi|Remove Sp Special Semi|Force Sp Special Semi"
-ValueDefault=ignore
-
-[Sp Before Semi]
-Category=1
-Description="<html>Add or remove space before ';'.<br/><br/>Default: remove</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_semi=ignore|sp_before_semi=add|sp_before_semi=remove|sp_before_semi=force|sp_before_semi=not_defined
-ChoicesReadable="Ignore Sp Before Semi|Add Sp Before Semi|Remove Sp Before Semi|Force Sp Before Semi"
-ValueDefault=remove
-
-[Sp Before Semi For]
-Category=1
-Description="<html>Add or remove space before ';' in non-empty 'for' statements.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_semi_for=ignore|sp_before_semi_for=add|sp_before_semi_for=remove|sp_before_semi_for=force|sp_before_semi_for=not_defined
-ChoicesReadable="Ignore Sp Before Semi For|Add Sp Before Semi For|Remove Sp Before Semi For|Force Sp Before Semi For"
-ValueDefault=ignore
-
-[Sp Before Semi For Empty]
-Category=1
-Description="<html>Add or remove space before a semicolon of an empty left part of a for<br/>statement, as in 'for ( &lt;here&gt; ; ; )'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_semi_for_empty=ignore|sp_before_semi_for_empty=add|sp_before_semi_for_empty=remove|sp_before_semi_for_empty=force|sp_before_semi_for_empty=not_defined
-ChoicesReadable="Ignore Sp Before Semi For Empty|Add Sp Before Semi For Empty|Remove Sp Before Semi For Empty|Force Sp Before Semi For Empty"
-ValueDefault=ignore
-
-[Sp Between Semi For Empty]
-Category=1
-Description="<html>Add or remove space between the semicolons of an empty middle part of a for<br/>statement, as in 'for ( ; &lt;here&gt; ; )'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_between_semi_for_empty=ignore|sp_between_semi_for_empty=add|sp_between_semi_for_empty=remove|sp_between_semi_for_empty=force|sp_between_semi_for_empty=not_defined
-ChoicesReadable="Ignore Sp Between Semi For Empty|Add Sp Between Semi For Empty|Remove Sp Between Semi For Empty|Force Sp Between Semi For Empty"
-ValueDefault=ignore
-
-[Sp After Semi]
-Category=1
-Description="<html>Add or remove space after ';', except when followed by a comment.<br/><br/>Default: add</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_semi=ignore|sp_after_semi=add|sp_after_semi=remove|sp_after_semi=force|sp_after_semi=not_defined
-ChoicesReadable="Ignore Sp After Semi|Add Sp After Semi|Remove Sp After Semi|Force Sp After Semi"
-ValueDefault=add
-
-[Sp After Semi For]
-Category=1
-Description="<html>Add or remove space after ';' in non-empty 'for' statements.<br/><br/>Default: force</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_semi_for=ignore|sp_after_semi_for=add|sp_after_semi_for=remove|sp_after_semi_for=force|sp_after_semi_for=not_defined
-ChoicesReadable="Ignore Sp After Semi For|Add Sp After Semi For|Remove Sp After Semi For|Force Sp After Semi For"
-ValueDefault=force
-
-[Sp After Semi For Empty]
-Category=1
-Description="<html>Add or remove space after the final semicolon of an empty part of a for<br/>statement, as in 'for ( ; ; &lt;here&gt; )'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_semi_for_empty=ignore|sp_after_semi_for_empty=add|sp_after_semi_for_empty=remove|sp_after_semi_for_empty=force|sp_after_semi_for_empty=not_defined
-ChoicesReadable="Ignore Sp After Semi For Empty|Add Sp After Semi For Empty|Remove Sp After Semi For Empty|Force Sp After Semi For Empty"
-ValueDefault=ignore
-
-[Sp Before Square]
-Category=1
-Description="<html>Add or remove space before '[' (except '[]').</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_square=ignore|sp_before_square=add|sp_before_square=remove|sp_before_square=force|sp_before_square=not_defined
-ChoicesReadable="Ignore Sp Before Square|Add Sp Before Square|Remove Sp Before Square|Force Sp Before Square"
-ValueDefault=ignore
-
-[Sp Before Vardef Square]
-Category=1
-Description="<html>Add or remove space before '[' for a variable definition.<br/><br/>Default: remove</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_vardef_square=ignore|sp_before_vardef_square=add|sp_before_vardef_square=remove|sp_before_vardef_square=force|sp_before_vardef_square=not_defined
-ChoicesReadable="Ignore Sp Before Vardef Square|Add Sp Before Vardef Square|Remove Sp Before Vardef Square|Force Sp Before Vardef Square"
-ValueDefault=remove
-
-[Sp Before Square Asm Block]
-Category=1
-Description="<html>Add or remove space before '[' for asm block.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_square_asm_block=ignore|sp_before_square_asm_block=add|sp_before_square_asm_block=remove|sp_before_square_asm_block=force|sp_before_square_asm_block=not_defined
-ChoicesReadable="Ignore Sp Before Square Asm Block|Add Sp Before Square Asm Block|Remove Sp Before Square Asm Block|Force Sp Before Square Asm Block"
-ValueDefault=ignore
-
-[Sp Before Squares]
-Category=1
-Description="<html>Add or remove space before '[]'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_squares=ignore|sp_before_squares=add|sp_before_squares=remove|sp_before_squares=force|sp_before_squares=not_defined
-ChoicesReadable="Ignore Sp Before Squares|Add Sp Before Squares|Remove Sp Before Squares|Force Sp Before Squares"
-ValueDefault=ignore
-
-[Sp Cpp Before Struct Binding]
-Category=1
-Description="<html>Add or remove space before C++17 structured bindings.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_cpp_before_struct_binding=ignore|sp_cpp_before_struct_binding=add|sp_cpp_before_struct_binding=remove|sp_cpp_before_struct_binding=force|sp_cpp_before_struct_binding=not_defined
-ChoicesReadable="Ignore Sp Cpp Before Struct Binding|Add Sp Cpp Before Struct Binding|Remove Sp Cpp Before Struct Binding|Force Sp Cpp Before Struct Binding"
-ValueDefault=ignore
-
-[Sp Inside Square]
-Category=1
-Description="<html>Add or remove space inside a non-empty '[' and ']'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_inside_square=ignore|sp_inside_square=add|sp_inside_square=remove|sp_inside_square=force|sp_inside_square=not_defined
-ChoicesReadable="Ignore Sp Inside Square|Add Sp Inside Square|Remove Sp Inside Square|Force Sp Inside Square"
-ValueDefault=ignore
-
-[Sp Inside Square Empty]
-Category=1
-Description="<html>Add or remove space inside '[]'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_inside_square_empty=ignore|sp_inside_square_empty=add|sp_inside_square_empty=remove|sp_inside_square_empty=force|sp_inside_square_empty=not_defined
-ChoicesReadable="Ignore Sp Inside Square Empty|Add Sp Inside Square Empty|Remove Sp Inside Square Empty|Force Sp Inside Square Empty"
-ValueDefault=ignore
-
-[Sp Inside Square Oc Array]
-Category=1
-Description="<html>(OC) Add or remove space inside a non-empty Objective-C boxed array '@[' and<br/>']'. If set to ignore, sp_inside_square is used.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_inside_square_oc_array=ignore|sp_inside_square_oc_array=add|sp_inside_square_oc_array=remove|sp_inside_square_oc_array=force|sp_inside_square_oc_array=not_defined
-ChoicesReadable="Ignore Sp Inside Square Oc Array|Add Sp Inside Square Oc Array|Remove Sp Inside Square Oc Array|Force Sp Inside Square Oc Array"
-ValueDefault=ignore
-
-[Sp After Comma]
-Category=1
-Description="<html>Add or remove space after ',', i.e. 'a,b' vs. 'a, b'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_comma=ignore|sp_after_comma=add|sp_after_comma=remove|sp_after_comma=force|sp_after_comma=not_defined
-ChoicesReadable="Ignore Sp After Comma|Add Sp After Comma|Remove Sp After Comma|Force Sp After Comma"
-ValueDefault=ignore
-
-[Sp Before Comma]
-Category=1
-Description="<html>Add or remove space before ',', i.e. 'a,b' vs. 'a ,b'.<br/><br/>Default: remove</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_comma=ignore|sp_before_comma=add|sp_before_comma=remove|sp_before_comma=force|sp_before_comma=not_defined
-ChoicesReadable="Ignore Sp Before Comma|Add Sp Before Comma|Remove Sp Before Comma|Force Sp Before Comma"
-ValueDefault=remove
-
-[Sp After Mdatype Commas]
-Category=1
-Description="<html>(C#) Add or remove space between ',' and ']' in multidimensional array type<br/>like 'int[,,]'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_mdatype_commas=ignore|sp_after_mdatype_commas=add|sp_after_mdatype_commas=remove|sp_after_mdatype_commas=force|sp_after_mdatype_commas=not_defined
-ChoicesReadable="Ignore Sp After Mdatype Commas|Add Sp After Mdatype Commas|Remove Sp After Mdatype Commas|Force Sp After Mdatype Commas"
-ValueDefault=ignore
-
-[Sp Before Mdatype Commas]
-Category=1
-Description="<html>(C#) Add or remove space between '[' and ',' in multidimensional array type<br/>like 'int[,,]'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_mdatype_commas=ignore|sp_before_mdatype_commas=add|sp_before_mdatype_commas=remove|sp_before_mdatype_commas=force|sp_before_mdatype_commas=not_defined
-ChoicesReadable="Ignore Sp Before Mdatype Commas|Add Sp Before Mdatype Commas|Remove Sp Before Mdatype Commas|Force Sp Before Mdatype Commas"
-ValueDefault=ignore
-
-[Sp Between Mdatype Commas]
-Category=1
-Description="<html>(C#) Add or remove space between ',' in multidimensional array type<br/>like 'int[,,]'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_between_mdatype_commas=ignore|sp_between_mdatype_commas=add|sp_between_mdatype_commas=remove|sp_between_mdatype_commas=force|sp_between_mdatype_commas=not_defined
-ChoicesReadable="Ignore Sp Between Mdatype Commas|Add Sp Between Mdatype Commas|Remove Sp Between Mdatype Commas|Force Sp Between Mdatype Commas"
-ValueDefault=ignore
-
-[Sp Paren Comma]
-Category=1
-Description="<html>Add or remove space between an open parenthesis and comma,<br/>i.e. '(,' vs. '( ,'.<br/><br/>Default: force</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_paren_comma=ignore|sp_paren_comma=add|sp_paren_comma=remove|sp_paren_comma=force|sp_paren_comma=not_defined
-ChoicesReadable="Ignore Sp Paren Comma|Add Sp Paren Comma|Remove Sp Paren Comma|Force Sp Paren Comma"
-ValueDefault=force
-
-[Sp After Ellipsis]
-Category=1
-Description="<html>Add or remove space after the variadic '...' when preceded by a<br/>non-punctuator.<br/>The value REMOVE will be overriden with FORCE</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_ellipsis=ignore|sp_after_ellipsis=add|sp_after_ellipsis=remove|sp_after_ellipsis=force|sp_after_ellipsis=not_defined
-ChoicesReadable="Ignore Sp After Ellipsis|Add Sp After Ellipsis|Remove Sp After Ellipsis|Force Sp After Ellipsis"
-ValueDefault=ignore
-
-[Sp Before Ellipsis]
-Category=1
-Description="<html>Add or remove space before the variadic '...' when preceded by a<br/>non-punctuator.<br/>The value REMOVE will be overriden with FORCE</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_ellipsis=ignore|sp_before_ellipsis=add|sp_before_ellipsis=remove|sp_before_ellipsis=force|sp_before_ellipsis=not_defined
-ChoicesReadable="Ignore Sp Before Ellipsis|Add Sp Before Ellipsis|Remove Sp Before Ellipsis|Force Sp Before Ellipsis"
-ValueDefault=ignore
-
-[Sp Type Ellipsis]
-Category=1
-Description="<html>Add or remove space between a type and '...'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_type_ellipsis=ignore|sp_type_ellipsis=add|sp_type_ellipsis=remove|sp_type_ellipsis=force|sp_type_ellipsis=not_defined
-ChoicesReadable="Ignore Sp Type Ellipsis|Add Sp Type Ellipsis|Remove Sp Type Ellipsis|Force Sp Type Ellipsis"
-ValueDefault=ignore
-
-[Sp Ptr Type Ellipsis]
-Category=1
-Description="<html>Add or remove space between a '*' and '...'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_ptr_type_ellipsis=ignore|sp_ptr_type_ellipsis=add|sp_ptr_type_ellipsis=remove|sp_ptr_type_ellipsis=force|sp_ptr_type_ellipsis=not_defined
-ChoicesReadable="Ignore Sp Ptr Type Ellipsis|Add Sp Ptr Type Ellipsis|Remove Sp Ptr Type Ellipsis|Force Sp Ptr Type Ellipsis"
-ValueDefault=ignore
-
-[Sp Type Question]
-Category=1
-Description="<html>(D) Add or remove space between a type and '?'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_type_question=ignore|sp_type_question=add|sp_type_question=remove|sp_type_question=force|sp_type_question=not_defined
-ChoicesReadable="Ignore Sp Type Question|Add Sp Type Question|Remove Sp Type Question|Force Sp Type Question"
-ValueDefault=ignore
-
-[Sp Paren Ellipsis]
-Category=1
-Description="<html>Add or remove space between ')' and '...'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_paren_ellipsis=ignore|sp_paren_ellipsis=add|sp_paren_ellipsis=remove|sp_paren_ellipsis=force|sp_paren_ellipsis=not_defined
-ChoicesReadable="Ignore Sp Paren Ellipsis|Add Sp Paren Ellipsis|Remove Sp Paren Ellipsis|Force Sp Paren Ellipsis"
-ValueDefault=ignore
-
-[Sp Byref Ellipsis]
-Category=1
-Description="<html>Add or remove space between '&amp;&amp;' and '...'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_byref_ellipsis=ignore|sp_byref_ellipsis=add|sp_byref_ellipsis=remove|sp_byref_ellipsis=force|sp_byref_ellipsis=not_defined
-ChoicesReadable="Ignore Sp Byref Ellipsis|Add Sp Byref Ellipsis|Remove Sp Byref Ellipsis|Force Sp Byref Ellipsis"
-ValueDefault=ignore
-
-[Sp Paren Qualifier]
-Category=1
-Description="<html>Add or remove space between ')' and a qualifier such as 'const'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_paren_qualifier=ignore|sp_paren_qualifier=add|sp_paren_qualifier=remove|sp_paren_qualifier=force|sp_paren_qualifier=not_defined
-ChoicesReadable="Ignore Sp Paren Qualifier|Add Sp Paren Qualifier|Remove Sp Paren Qualifier|Force Sp Paren Qualifier"
-ValueDefault=ignore
-
-[Sp Paren Noexcept]
-Category=1
-Description="<html>Add or remove space between ')' and 'noexcept'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_paren_noexcept=ignore|sp_paren_noexcept=add|sp_paren_noexcept=remove|sp_paren_noexcept=force|sp_paren_noexcept=not_defined
-ChoicesReadable="Ignore Sp Paren Noexcept|Add Sp Paren Noexcept|Remove Sp Paren Noexcept|Force Sp Paren Noexcept"
-ValueDefault=ignore
-
-[Sp After Class Colon]
-Category=1
-Description="<html>Add or remove space after class ':'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_class_colon=ignore|sp_after_class_colon=add|sp_after_class_colon=remove|sp_after_class_colon=force|sp_after_class_colon=not_defined
-ChoicesReadable="Ignore Sp After Class Colon|Add Sp After Class Colon|Remove Sp After Class Colon|Force Sp After Class Colon"
-ValueDefault=ignore
-
-[Sp Before Class Colon]
-Category=1
-Description="<html>Add or remove space before class ':'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_class_colon=ignore|sp_before_class_colon=add|sp_before_class_colon=remove|sp_before_class_colon=force|sp_before_class_colon=not_defined
-ChoicesReadable="Ignore Sp Before Class Colon|Add Sp Before Class Colon|Remove Sp Before Class Colon|Force Sp Before Class Colon"
-ValueDefault=ignore
-
-[Sp After Constr Colon]
-Category=1
-Description="<html>Add or remove space after class constructor ':'.<br/><br/>Default: add</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_constr_colon=ignore|sp_after_constr_colon=add|sp_after_constr_colon=remove|sp_after_constr_colon=force|sp_after_constr_colon=not_defined
-ChoicesReadable="Ignore Sp After Constr Colon|Add Sp After Constr Colon|Remove Sp After Constr Colon|Force Sp After Constr Colon"
-ValueDefault=add
-
-[Sp Before Constr Colon]
-Category=1
-Description="<html>Add or remove space before class constructor ':'.<br/><br/>Default: add</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_constr_colon=ignore|sp_before_constr_colon=add|sp_before_constr_colon=remove|sp_before_constr_colon=force|sp_before_constr_colon=not_defined
-ChoicesReadable="Ignore Sp Before Constr Colon|Add Sp Before Constr Colon|Remove Sp Before Constr Colon|Force Sp Before Constr Colon"
-ValueDefault=add
-
-[Sp Before Case Colon]
-Category=1
-Description="<html>Add or remove space before case ':'.<br/><br/>Default: remove</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_case_colon=ignore|sp_before_case_colon=add|sp_before_case_colon=remove|sp_before_case_colon=force|sp_before_case_colon=not_defined
-ChoicesReadable="Ignore Sp Before Case Colon|Add Sp Before Case Colon|Remove Sp Before Case Colon|Force Sp Before Case Colon"
-ValueDefault=remove
-
-[Sp After Operator]
-Category=1
-Description="<html>Add or remove space between 'operator' and operator sign.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_operator=ignore|sp_after_operator=add|sp_after_operator=remove|sp_after_operator=force|sp_after_operator=not_defined
-ChoicesReadable="Ignore Sp After Operator|Add Sp After Operator|Remove Sp After Operator|Force Sp After Operator"
-ValueDefault=ignore
-
-[Sp After Operator Sym]
-Category=1
-Description="<html>Add or remove space between the operator symbol and the open parenthesis, as<br/>in 'operator ++('.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_operator_sym=ignore|sp_after_operator_sym=add|sp_after_operator_sym=remove|sp_after_operator_sym=force|sp_after_operator_sym=not_defined
-ChoicesReadable="Ignore Sp After Operator Sym|Add Sp After Operator Sym|Remove Sp After Operator Sym|Force Sp After Operator Sym"
-ValueDefault=ignore
-
-[Sp After Operator Sym Empty]
-Category=1
-Description="<html>Overrides sp_after_operator_sym when the operator has no arguments, as in<br/>'operator *()'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_operator_sym_empty=ignore|sp_after_operator_sym_empty=add|sp_after_operator_sym_empty=remove|sp_after_operator_sym_empty=force|sp_after_operator_sym_empty=not_defined
-ChoicesReadable="Ignore Sp After Operator Sym Empty|Add Sp After Operator Sym Empty|Remove Sp After Operator Sym Empty|Force Sp After Operator Sym Empty"
-ValueDefault=ignore
-
-[Sp After Cast]
-Category=1
-Description="<html>Add or remove space after C/D cast, i.e. 'cast(int)a' vs. 'cast(int) a' or<br/>'(int)a' vs. '(int) a'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_cast=ignore|sp_after_cast=add|sp_after_cast=remove|sp_after_cast=force|sp_after_cast=not_defined
-ChoicesReadable="Ignore Sp After Cast|Add Sp After Cast|Remove Sp After Cast|Force Sp After Cast"
-ValueDefault=ignore
-
-[Sp Inside Paren Cast]
-Category=1
-Description="<html>Add or remove spaces inside cast parentheses.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_inside_paren_cast=ignore|sp_inside_paren_cast=add|sp_inside_paren_cast=remove|sp_inside_paren_cast=force|sp_inside_paren_cast=not_defined
-ChoicesReadable="Ignore Sp Inside Paren Cast|Add Sp Inside Paren Cast|Remove Sp Inside Paren Cast|Force Sp Inside Paren Cast"
-ValueDefault=ignore
-
-[Sp Cpp Cast Paren]
-Category=1
-Description="<html>Add or remove space between the type and open parenthesis in a C++ cast,<br/>i.e. 'int(exp)' vs. 'int (exp)'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_cpp_cast_paren=ignore|sp_cpp_cast_paren=add|sp_cpp_cast_paren=remove|sp_cpp_cast_paren=force|sp_cpp_cast_paren=not_defined
-ChoicesReadable="Ignore Sp Cpp Cast Paren|Add Sp Cpp Cast Paren|Remove Sp Cpp Cast Paren|Force Sp Cpp Cast Paren"
-ValueDefault=ignore
-
-[Sp Sizeof Paren]
-Category=1
-Description="<html>Add or remove space between 'sizeof' and '('.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_sizeof_paren=ignore|sp_sizeof_paren=add|sp_sizeof_paren=remove|sp_sizeof_paren=force|sp_sizeof_paren=not_defined
-ChoicesReadable="Ignore Sp Sizeof Paren|Add Sp Sizeof Paren|Remove Sp Sizeof Paren|Force Sp Sizeof Paren"
-ValueDefault=ignore
-
-[Sp Sizeof Ellipsis]
-Category=1
-Description="<html>Add or remove space between 'sizeof' and '...'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_sizeof_ellipsis=ignore|sp_sizeof_ellipsis=add|sp_sizeof_ellipsis=remove|sp_sizeof_ellipsis=force|sp_sizeof_ellipsis=not_defined
-ChoicesReadable="Ignore Sp Sizeof Ellipsis|Add Sp Sizeof Ellipsis|Remove Sp Sizeof Ellipsis|Force Sp Sizeof Ellipsis"
-ValueDefault=ignore
-
-[Sp Sizeof Ellipsis Paren]
-Category=1
-Description="<html>Add or remove space between 'sizeof...' and '('.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_sizeof_ellipsis_paren=ignore|sp_sizeof_ellipsis_paren=add|sp_sizeof_ellipsis_paren=remove|sp_sizeof_ellipsis_paren=force|sp_sizeof_ellipsis_paren=not_defined
-ChoicesReadable="Ignore Sp Sizeof Ellipsis Paren|Add Sp Sizeof Ellipsis Paren|Remove Sp Sizeof Ellipsis Paren|Force Sp Sizeof Ellipsis Paren"
-ValueDefault=ignore
-
-[Sp Ellipsis Parameter Pack]
-Category=1
-Description="<html>Add or remove space between '...' and a parameter pack.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_ellipsis_parameter_pack=ignore|sp_ellipsis_parameter_pack=add|sp_ellipsis_parameter_pack=remove|sp_ellipsis_parameter_pack=force|sp_ellipsis_parameter_pack=not_defined
-ChoicesReadable="Ignore Sp Ellipsis Parameter Pack|Add Sp Ellipsis Parameter Pack|Remove Sp Ellipsis Parameter Pack|Force Sp Ellipsis Parameter Pack"
-ValueDefault=ignore
-
-[Sp Parameter Pack Ellipsis]
-Category=1
-Description="<html>Add or remove space between a parameter pack and '...'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_parameter_pack_ellipsis=ignore|sp_parameter_pack_ellipsis=add|sp_parameter_pack_ellipsis=remove|sp_parameter_pack_ellipsis=force|sp_parameter_pack_ellipsis=not_defined
-ChoicesReadable="Ignore Sp Parameter Pack Ellipsis|Add Sp Parameter Pack Ellipsis|Remove Sp Parameter Pack Ellipsis|Force Sp Parameter Pack Ellipsis"
-ValueDefault=ignore
-
-[Sp Decltype Paren]
-Category=1
-Description="<html>Add or remove space between 'decltype' and '('.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_decltype_paren=ignore|sp_decltype_paren=add|sp_decltype_paren=remove|sp_decltype_paren=force|sp_decltype_paren=not_defined
-ChoicesReadable="Ignore Sp Decltype Paren|Add Sp Decltype Paren|Remove Sp Decltype Paren|Force Sp Decltype Paren"
-ValueDefault=ignore
-
-[Sp After Tag]
-Category=1
-Description="<html>(Pawn) Add or remove space after the tag keyword.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_tag=ignore|sp_after_tag=add|sp_after_tag=remove|sp_after_tag=force|sp_after_tag=not_defined
-ChoicesReadable="Ignore Sp After Tag|Add Sp After Tag|Remove Sp After Tag|Force Sp After Tag"
-ValueDefault=ignore
-
-[Sp Inside Braces Enum]
-Category=1
-Description="<html>Add or remove space inside enum '{' and '}'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_inside_braces_enum=ignore|sp_inside_braces_enum=add|sp_inside_braces_enum=remove|sp_inside_braces_enum=force|sp_inside_braces_enum=not_defined
-ChoicesReadable="Ignore Sp Inside Braces Enum|Add Sp Inside Braces Enum|Remove Sp Inside Braces Enum|Force Sp Inside Braces Enum"
-ValueDefault=ignore
-
-[Sp Inside Braces Struct]
-Category=1
-Description="<html>Add or remove space inside struct/union '{' and '}'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_inside_braces_struct=ignore|sp_inside_braces_struct=add|sp_inside_braces_struct=remove|sp_inside_braces_struct=force|sp_inside_braces_struct=not_defined
-ChoicesReadable="Ignore Sp Inside Braces Struct|Add Sp Inside Braces Struct|Remove Sp Inside Braces Struct|Force Sp Inside Braces Struct"
-ValueDefault=ignore
-
-[Sp Inside Braces Oc Dict]
-Category=1
-Description="<html>(OC) Add or remove space inside Objective-C boxed dictionary '{' and '}'</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_inside_braces_oc_dict=ignore|sp_inside_braces_oc_dict=add|sp_inside_braces_oc_dict=remove|sp_inside_braces_oc_dict=force|sp_inside_braces_oc_dict=not_defined
-ChoicesReadable="Ignore Sp Inside Braces Oc Dict|Add Sp Inside Braces Oc Dict|Remove Sp Inside Braces Oc Dict|Force Sp Inside Braces Oc Dict"
-ValueDefault=ignore
-
-[Sp After Type Brace Init Lst Open]
-Category=1
-Description="<html>Add or remove space after open brace in an unnamed temporary<br/>direct-list-initialization<br/>if statement is a brace_init_lst<br/>works only if sp_brace_brace is set to ignore.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_type_brace_init_lst_open=ignore|sp_after_type_brace_init_lst_open=add|sp_after_type_brace_init_lst_open=remove|sp_after_type_brace_init_lst_open=force|sp_after_type_brace_init_lst_open=not_defined
-ChoicesReadable="Ignore Sp After Type Brace Init Lst Open|Add Sp After Type Brace Init Lst Open|Remove Sp After Type Brace Init Lst Open|Force Sp After Type Brace Init Lst Open"
-ValueDefault=ignore
-
-[Sp Before Type Brace Init Lst Close]
-Category=1
-Description="<html>Add or remove space before close brace in an unnamed temporary<br/>direct-list-initialization<br/>if statement is a brace_init_lst<br/>works only if sp_brace_brace is set to ignore.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_type_brace_init_lst_close=ignore|sp_before_type_brace_init_lst_close=add|sp_before_type_brace_init_lst_close=remove|sp_before_type_brace_init_lst_close=force|sp_before_type_brace_init_lst_close=not_defined
-ChoicesReadable="Ignore Sp Before Type Brace Init Lst Close|Add Sp Before Type Brace Init Lst Close|Remove Sp Before Type Brace Init Lst Close|Force Sp Before Type Brace Init Lst Close"
-ValueDefault=ignore
-
-[Sp Inside Type Brace Init Lst]
-Category=1
-Description="<html>Add or remove space inside an unnamed temporary direct-list-initialization<br/>if statement is a brace_init_lst<br/>works only if sp_brace_brace is set to ignore<br/>works only if sp_before_type_brace_init_lst_close is set to ignore.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_inside_type_brace_init_lst=ignore|sp_inside_type_brace_init_lst=add|sp_inside_type_brace_init_lst=remove|sp_inside_type_brace_init_lst=force|sp_inside_type_brace_init_lst=not_defined
-ChoicesReadable="Ignore Sp Inside Type Brace Init Lst|Add Sp Inside Type Brace Init Lst|Remove Sp Inside Type Brace Init Lst|Force Sp Inside Type Brace Init Lst"
-ValueDefault=ignore
-
-[Sp Inside Braces]
-Category=1
-Description="<html>Add or remove space inside '{' and '}'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_inside_braces=ignore|sp_inside_braces=add|sp_inside_braces=remove|sp_inside_braces=force|sp_inside_braces=not_defined
-ChoicesReadable="Ignore Sp Inside Braces|Add Sp Inside Braces|Remove Sp Inside Braces|Force Sp Inside Braces"
-ValueDefault=ignore
-
-[Sp Inside Braces Empty]
-Category=1
-Description="<html>Add or remove space inside '{}'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_inside_braces_empty=ignore|sp_inside_braces_empty=add|sp_inside_braces_empty=remove|sp_inside_braces_empty=force|sp_inside_braces_empty=not_defined
-ChoicesReadable="Ignore Sp Inside Braces Empty|Add Sp Inside Braces Empty|Remove Sp Inside Braces Empty|Force Sp Inside Braces Empty"
-ValueDefault=ignore
-
-[Sp Trailing Return]
-Category=1
-Description="<html>Add or remove space around trailing return operator '-&gt;'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_trailing_return=ignore|sp_trailing_return=add|sp_trailing_return=remove|sp_trailing_return=force|sp_trailing_return=not_defined
-ChoicesReadable="Ignore Sp Trailing Return|Add Sp Trailing Return|Remove Sp Trailing Return|Force Sp Trailing Return"
-ValueDefault=ignore
-
-[Sp Type Func]
-Category=1
-Description="<html>Add or remove space between return type and function name. A minimum of 1<br/>is forced except for pointer return types.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_type_func=ignore|sp_type_func=add|sp_type_func=remove|sp_type_func=force|sp_type_func=not_defined
-ChoicesReadable="Ignore Sp Type Func|Add Sp Type Func|Remove Sp Type Func|Force Sp Type Func"
-ValueDefault=ignore
-
-[Sp Type Brace Init Lst]
-Category=1
-Description="<html>Add or remove space between type and open brace of an unnamed temporary<br/>direct-list-initialization.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_type_brace_init_lst=ignore|sp_type_brace_init_lst=add|sp_type_brace_init_lst=remove|sp_type_brace_init_lst=force|sp_type_brace_init_lst=not_defined
-ChoicesReadable="Ignore Sp Type Brace Init Lst|Add Sp Type Brace Init Lst|Remove Sp Type Brace Init Lst|Force Sp Type Brace Init Lst"
-ValueDefault=ignore
-
-[Sp Func Proto Paren]
-Category=1
-Description="<html>Add or remove space between function name and '(' on function declaration.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_func_proto_paren=ignore|sp_func_proto_paren=add|sp_func_proto_paren=remove|sp_func_proto_paren=force|sp_func_proto_paren=not_defined
-ChoicesReadable="Ignore Sp Func Proto Paren|Add Sp Func Proto Paren|Remove Sp Func Proto Paren|Force Sp Func Proto Paren"
-ValueDefault=ignore
-
-[Sp Func Proto Paren Empty]
-Category=1
-Description="<html>Add or remove space between function name and '()' on function declaration<br/>without parameters.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_func_proto_paren_empty=ignore|sp_func_proto_paren_empty=add|sp_func_proto_paren_empty=remove|sp_func_proto_paren_empty=force|sp_func_proto_paren_empty=not_defined
-ChoicesReadable="Ignore Sp Func Proto Paren Empty|Add Sp Func Proto Paren Empty|Remove Sp Func Proto Paren Empty|Force Sp Func Proto Paren Empty"
-ValueDefault=ignore
-
-[Sp Func Type Paren]
-Category=1
-Description="<html>Add or remove space between function name and '(' with a typedef specifier.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_func_type_paren=ignore|sp_func_type_paren=add|sp_func_type_paren=remove|sp_func_type_paren=force|sp_func_type_paren=not_defined
-ChoicesReadable="Ignore Sp Func Type Paren|Add Sp Func Type Paren|Remove Sp Func Type Paren|Force Sp Func Type Paren"
-ValueDefault=ignore
-
-[Sp Func Def Paren]
-Category=1
-Description="<html>Add or remove space between alias name and '(' of a non-pointer function type typedef.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_func_def_paren=ignore|sp_func_def_paren=add|sp_func_def_paren=remove|sp_func_def_paren=force|sp_func_def_paren=not_defined
-ChoicesReadable="Ignore Sp Func Def Paren|Add Sp Func Def Paren|Remove Sp Func Def Paren|Force Sp Func Def Paren"
-ValueDefault=ignore
-
-[Sp Func Def Paren Empty]
-Category=1
-Description="<html>Add or remove space between function name and '()' on function definition<br/>without parameters.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_func_def_paren_empty=ignore|sp_func_def_paren_empty=add|sp_func_def_paren_empty=remove|sp_func_def_paren_empty=force|sp_func_def_paren_empty=not_defined
-ChoicesReadable="Ignore Sp Func Def Paren Empty|Add Sp Func Def Paren Empty|Remove Sp Func Def Paren Empty|Force Sp Func Def Paren Empty"
-ValueDefault=ignore
-
-[Sp Inside Fparens]
-Category=1
-Description="<html>Add or remove space inside empty function '()'.<br/>Overrides sp_after_angle unless use_sp_after_angle_always is set to true.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_inside_fparens=ignore|sp_inside_fparens=add|sp_inside_fparens=remove|sp_inside_fparens=force|sp_inside_fparens=not_defined
-ChoicesReadable="Ignore Sp Inside Fparens|Add Sp Inside Fparens|Remove Sp Inside Fparens|Force Sp Inside Fparens"
-ValueDefault=ignore
-
-[Sp Inside Fparen]
-Category=1
-Description="<html>Add or remove space inside function '(' and ')'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_inside_fparen=ignore|sp_inside_fparen=add|sp_inside_fparen=remove|sp_inside_fparen=force|sp_inside_fparen=not_defined
-ChoicesReadable="Ignore Sp Inside Fparen|Add Sp Inside Fparen|Remove Sp Inside Fparen|Force Sp Inside Fparen"
-ValueDefault=ignore
-
-[Sp Inside Tparen]
-Category=1
-Description="<html>Add or remove space inside the first parentheses in a function type, as in<br/>'void (*x)(...)'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_inside_tparen=ignore|sp_inside_tparen=add|sp_inside_tparen=remove|sp_inside_tparen=force|sp_inside_tparen=not_defined
-ChoicesReadable="Ignore Sp Inside Tparen|Add Sp Inside Tparen|Remove Sp Inside Tparen|Force Sp Inside Tparen"
-ValueDefault=ignore
-
-[Sp After Tparen Close]
-Category=1
-Description="<html>Add or remove space between the ')' and '(' in a function type, as in<br/>'void (*x)(...)'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_tparen_close=ignore|sp_after_tparen_close=add|sp_after_tparen_close=remove|sp_after_tparen_close=force|sp_after_tparen_close=not_defined
-ChoicesReadable="Ignore Sp After Tparen Close|Add Sp After Tparen Close|Remove Sp After Tparen Close|Force Sp After Tparen Close"
-ValueDefault=ignore
-
-[Sp Square Fparen]
-Category=1
-Description="<html>Add or remove space between ']' and '(' when part of a function call.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_square_fparen=ignore|sp_square_fparen=add|sp_square_fparen=remove|sp_square_fparen=force|sp_square_fparen=not_defined
-ChoicesReadable="Ignore Sp Square Fparen|Add Sp Square Fparen|Remove Sp Square Fparen|Force Sp Square Fparen"
-ValueDefault=ignore
-
-[Sp Fparen Brace]
-Category=1
-Description="<html>Add or remove space between ')' and '{' of function.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_fparen_brace=ignore|sp_fparen_brace=add|sp_fparen_brace=remove|sp_fparen_brace=force|sp_fparen_brace=not_defined
-ChoicesReadable="Ignore Sp Fparen Brace|Add Sp Fparen Brace|Remove Sp Fparen Brace|Force Sp Fparen Brace"
-ValueDefault=ignore
-
-[Sp Fparen Brace Initializer]
-Category=1
-Description="<html>Add or remove space between ')' and '{' of a function call in object<br/>initialization.<br/><br/>Overrides sp_fparen_brace.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_fparen_brace_initializer=ignore|sp_fparen_brace_initializer=add|sp_fparen_brace_initializer=remove|sp_fparen_brace_initializer=force|sp_fparen_brace_initializer=not_defined
-ChoicesReadable="Ignore Sp Fparen Brace Initializer|Add Sp Fparen Brace Initializer|Remove Sp Fparen Brace Initializer|Force Sp Fparen Brace Initializer"
-ValueDefault=ignore
-
-[Sp Fparen Dbrace]
-Category=1
-Description="<html>(Java) Add or remove space between ')' and '{{' of double brace initializer.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_fparen_dbrace=ignore|sp_fparen_dbrace=add|sp_fparen_dbrace=remove|sp_fparen_dbrace=force|sp_fparen_dbrace=not_defined
-ChoicesReadable="Ignore Sp Fparen Dbrace|Add Sp Fparen Dbrace|Remove Sp Fparen Dbrace|Force Sp Fparen Dbrace"
-ValueDefault=ignore
-
-[Sp Func Call Paren]
-Category=1
-Description="<html>Add or remove space between function name and '(' on function calls.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_func_call_paren=ignore|sp_func_call_paren=add|sp_func_call_paren=remove|sp_func_call_paren=force|sp_func_call_paren=not_defined
-ChoicesReadable="Ignore Sp Func Call Paren|Add Sp Func Call Paren|Remove Sp Func Call Paren|Force Sp Func Call Paren"
-ValueDefault=ignore
-
-[Sp Func Call Paren Empty]
-Category=1
-Description="<html>Add or remove space between function name and '()' on function calls without<br/>parameters. If set to ignore (the default), sp_func_call_paren is used.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_func_call_paren_empty=ignore|sp_func_call_paren_empty=add|sp_func_call_paren_empty=remove|sp_func_call_paren_empty=force|sp_func_call_paren_empty=not_defined
-ChoicesReadable="Ignore Sp Func Call Paren Empty|Add Sp Func Call Paren Empty|Remove Sp Func Call Paren Empty|Force Sp Func Call Paren Empty"
-ValueDefault=ignore
-
-[Sp Func Call User Paren]
-Category=1
-Description="<html>Add or remove space between the user function name and '(' on function<br/>calls. You need to set a keyword to be a user function in the config file,<br/>like:<br/> set func_call_user tr _ i18n</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_func_call_user_paren=ignore|sp_func_call_user_paren=add|sp_func_call_user_paren=remove|sp_func_call_user_paren=force|sp_func_call_user_paren=not_defined
-ChoicesReadable="Ignore Sp Func Call User Paren|Add Sp Func Call User Paren|Remove Sp Func Call User Paren|Force Sp Func Call User Paren"
-ValueDefault=ignore
-
-[Sp Func Call User Inside Fparen]
-Category=1
-Description="<html>Add or remove space inside user function '(' and ')'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_func_call_user_inside_fparen=ignore|sp_func_call_user_inside_fparen=add|sp_func_call_user_inside_fparen=remove|sp_func_call_user_inside_fparen=force|sp_func_call_user_inside_fparen=not_defined
-ChoicesReadable="Ignore Sp Func Call User Inside Fparen|Add Sp Func Call User Inside Fparen|Remove Sp Func Call User Inside Fparen|Force Sp Func Call User Inside Fparen"
-ValueDefault=ignore
-
-[Sp Func Call User Paren Paren]
-Category=1
-Description="<html>Add or remove space between nested parentheses with user functions,<br/>i.e. '((' vs. '( ('.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_func_call_user_paren_paren=ignore|sp_func_call_user_paren_paren=add|sp_func_call_user_paren_paren=remove|sp_func_call_user_paren_paren=force|sp_func_call_user_paren_paren=not_defined
-ChoicesReadable="Ignore Sp Func Call User Paren Paren|Add Sp Func Call User Paren Paren|Remove Sp Func Call User Paren Paren|Force Sp Func Call User Paren Paren"
-ValueDefault=ignore
-
-[Sp Func Class Paren]
-Category=1
-Description="<html>Add or remove space between a constructor/destructor and the open<br/>parenthesis.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_func_class_paren=ignore|sp_func_class_paren=add|sp_func_class_paren=remove|sp_func_class_paren=force|sp_func_class_paren=not_defined
-ChoicesReadable="Ignore Sp Func Class Paren|Add Sp Func Class Paren|Remove Sp Func Class Paren|Force Sp Func Class Paren"
-ValueDefault=ignore
-
-[Sp Func Class Paren Empty]
-Category=1
-Description="<html>Add or remove space between a constructor without parameters or destructor<br/>and '()'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_func_class_paren_empty=ignore|sp_func_class_paren_empty=add|sp_func_class_paren_empty=remove|sp_func_class_paren_empty=force|sp_func_class_paren_empty=not_defined
-ChoicesReadable="Ignore Sp Func Class Paren Empty|Add Sp Func Class Paren Empty|Remove Sp Func Class Paren Empty|Force Sp Func Class Paren Empty"
-ValueDefault=ignore
-
-[Sp Return]
-Category=1
-Description="<html>Add or remove space after 'return'.<br/><br/>Default: force</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_return=ignore|sp_return=add|sp_return=remove|sp_return=force|sp_return=not_defined
-ChoicesReadable="Ignore Sp Return|Add Sp Return|Remove Sp Return|Force Sp Return"
-ValueDefault=force
-
-[Sp Return Paren]
-Category=1
-Description="<html>Add or remove space between 'return' and '('.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_return_paren=ignore|sp_return_paren=add|sp_return_paren=remove|sp_return_paren=force|sp_return_paren=not_defined
-ChoicesReadable="Ignore Sp Return Paren|Add Sp Return Paren|Remove Sp Return Paren|Force Sp Return Paren"
-ValueDefault=ignore
-
-[Sp Return Brace]
-Category=1
-Description="<html>Add or remove space between 'return' and '{'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_return_brace=ignore|sp_return_brace=add|sp_return_brace=remove|sp_return_brace=force|sp_return_brace=not_defined
-ChoicesReadable="Ignore Sp Return Brace|Add Sp Return Brace|Remove Sp Return Brace|Force Sp Return Brace"
-ValueDefault=ignore
-
-[Sp Attribute Paren]
-Category=1
-Description="<html>Add or remove space between '__attribute__' and '('.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_attribute_paren=ignore|sp_attribute_paren=add|sp_attribute_paren=remove|sp_attribute_paren=force|sp_attribute_paren=not_defined
-ChoicesReadable="Ignore Sp Attribute Paren|Add Sp Attribute Paren|Remove Sp Attribute Paren|Force Sp Attribute Paren"
-ValueDefault=ignore
-
-[Sp Defined Paren]
-Category=1
-Description="<html>Add or remove space between 'defined' and '(' in '#if defined (FOO)'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_defined_paren=ignore|sp_defined_paren=add|sp_defined_paren=remove|sp_defined_paren=force|sp_defined_paren=not_defined
-ChoicesReadable="Ignore Sp Defined Paren|Add Sp Defined Paren|Remove Sp Defined Paren|Force Sp Defined Paren"
-ValueDefault=ignore
-
-[Sp Throw Paren]
-Category=1
-Description="<html>Add or remove space between 'throw' and '(' in 'throw (something)'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_throw_paren=ignore|sp_throw_paren=add|sp_throw_paren=remove|sp_throw_paren=force|sp_throw_paren=not_defined
-ChoicesReadable="Ignore Sp Throw Paren|Add Sp Throw Paren|Remove Sp Throw Paren|Force Sp Throw Paren"
-ValueDefault=ignore
-
-[Sp After Throw]
-Category=1
-Description="<html>Add or remove space between 'throw' and anything other than '(' as in<br/>'@throw [...];'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_throw=ignore|sp_after_throw=add|sp_after_throw=remove|sp_after_throw=force|sp_after_throw=not_defined
-ChoicesReadable="Ignore Sp After Throw|Add Sp After Throw|Remove Sp After Throw|Force Sp After Throw"
-ValueDefault=ignore
-
-[Sp Catch Paren]
-Category=1
-Description="<html>Add or remove space between 'catch' and '(' in 'catch (something) { }'.<br/>If set to ignore, sp_before_sparen is used.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_catch_paren=ignore|sp_catch_paren=add|sp_catch_paren=remove|sp_catch_paren=force|sp_catch_paren=not_defined
-ChoicesReadable="Ignore Sp Catch Paren|Add Sp Catch Paren|Remove Sp Catch Paren|Force Sp Catch Paren"
-ValueDefault=ignore
-
-[Sp Oc Catch Paren]
-Category=1
-Description="<html>(OC) Add or remove space between '@catch' and '('<br/>in '@catch (something) { }'. If set to ignore, sp_catch_paren is used.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_oc_catch_paren=ignore|sp_oc_catch_paren=add|sp_oc_catch_paren=remove|sp_oc_catch_paren=force|sp_oc_catch_paren=not_defined
-ChoicesReadable="Ignore Sp Oc Catch Paren|Add Sp Oc Catch Paren|Remove Sp Oc Catch Paren|Force Sp Oc Catch Paren"
-ValueDefault=ignore
-
-[Sp Before Oc Proto List]
-Category=1
-Description="<html>(OC) Add or remove space before Objective-C protocol list<br/>as in '@protocol Protocol&lt;here&gt;&lt;Protocol_A&gt;' or '@interface MyClass : NSObject&lt;here&gt;&lt;MyProtocol&gt;'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_oc_proto_list=ignore|sp_before_oc_proto_list=add|sp_before_oc_proto_list=remove|sp_before_oc_proto_list=force|sp_before_oc_proto_list=not_defined
-ChoicesReadable="Ignore Sp Before Oc Proto List|Add Sp Before Oc Proto List|Remove Sp Before Oc Proto List|Force Sp Before Oc Proto List"
-ValueDefault=ignore
-
-[Sp Oc Classname Paren]
-Category=1
-Description="<html>(OC) Add or remove space between class name and '('<br/>in '@interface className(categoryName)&lt;ProtocolName&gt;:BaseClass'</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_oc_classname_paren=ignore|sp_oc_classname_paren=add|sp_oc_classname_paren=remove|sp_oc_classname_paren=force|sp_oc_classname_paren=not_defined
-ChoicesReadable="Ignore Sp Oc Classname Paren|Add Sp Oc Classname Paren|Remove Sp Oc Classname Paren|Force Sp Oc Classname Paren"
-ValueDefault=ignore
-
-[Sp Version Paren]
-Category=1
-Description="<html>(D) Add or remove space between 'version' and '('<br/>in 'version (something) { }'. If set to ignore, sp_before_sparen is used.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_version_paren=ignore|sp_version_paren=add|sp_version_paren=remove|sp_version_paren=force|sp_version_paren=not_defined
-ChoicesReadable="Ignore Sp Version Paren|Add Sp Version Paren|Remove Sp Version Paren|Force Sp Version Paren"
-ValueDefault=ignore
-
-[Sp Scope Paren]
-Category=1
-Description="<html>(D) Add or remove space between 'scope' and '('<br/>in 'scope (something) { }'. If set to ignore, sp_before_sparen is used.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_scope_paren=ignore|sp_scope_paren=add|sp_scope_paren=remove|sp_scope_paren=force|sp_scope_paren=not_defined
-ChoicesReadable="Ignore Sp Scope Paren|Add Sp Scope Paren|Remove Sp Scope Paren|Force Sp Scope Paren"
-ValueDefault=ignore
-
-[Sp Super Paren]
-Category=1
-Description="<html>Add or remove space between 'super' and '(' in 'super (something)'.<br/><br/>Default: remove</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_super_paren=ignore|sp_super_paren=add|sp_super_paren=remove|sp_super_paren=force|sp_super_paren=not_defined
-ChoicesReadable="Ignore Sp Super Paren|Add Sp Super Paren|Remove Sp Super Paren|Force Sp Super Paren"
-ValueDefault=remove
-
-[Sp This Paren]
-Category=1
-Description="<html>Add or remove space between 'this' and '(' in 'this (something)'.<br/><br/>Default: remove</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_this_paren=ignore|sp_this_paren=add|sp_this_paren=remove|sp_this_paren=force|sp_this_paren=not_defined
-ChoicesReadable="Ignore Sp This Paren|Add Sp This Paren|Remove Sp This Paren|Force Sp This Paren"
-ValueDefault=remove
-
-[Sp Macro]
-Category=1
-Description="<html>Add or remove space between a macro name and its definition.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_macro=ignore|sp_macro=add|sp_macro=remove|sp_macro=force|sp_macro=not_defined
-ChoicesReadable="Ignore Sp Macro|Add Sp Macro|Remove Sp Macro|Force Sp Macro"
-ValueDefault=ignore
-
-[Sp Macro Func]
-Category=1
-Description="<html>Add or remove space between a macro function ')' and its definition.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_macro_func=ignore|sp_macro_func=add|sp_macro_func=remove|sp_macro_func=force|sp_macro_func=not_defined
-ChoicesReadable="Ignore Sp Macro Func|Add Sp Macro Func|Remove Sp Macro Func|Force Sp Macro Func"
-ValueDefault=ignore
-
-[Sp Else Brace]
-Category=1
-Description="<html>Add or remove space between 'else' and '{' if on the same line.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_else_brace=ignore|sp_else_brace=add|sp_else_brace=remove|sp_else_brace=force|sp_else_brace=not_defined
-ChoicesReadable="Ignore Sp Else Brace|Add Sp Else Brace|Remove Sp Else Brace|Force Sp Else Brace"
-ValueDefault=ignore
-
-[Sp Brace Else]
-Category=1
-Description="<html>Add or remove space between '}' and 'else' if on the same line.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_brace_else=ignore|sp_brace_else=add|sp_brace_else=remove|sp_brace_else=force|sp_brace_else=not_defined
-ChoicesReadable="Ignore Sp Brace Else|Add Sp Brace Else|Remove Sp Brace Else|Force Sp Brace Else"
-ValueDefault=ignore
-
-[Sp Brace Typedef]
-Category=1
-Description="<html>Add or remove space between '}' and the name of a typedef on the same line.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_brace_typedef=ignore|sp_brace_typedef=add|sp_brace_typedef=remove|sp_brace_typedef=force|sp_brace_typedef=not_defined
-ChoicesReadable="Ignore Sp Brace Typedef|Add Sp Brace Typedef|Remove Sp Brace Typedef|Force Sp Brace Typedef"
-ValueDefault=ignore
-
-[Sp Catch Brace]
-Category=1
-Description="<html>Add or remove space before the '{' of a 'catch' statement, if the '{' and<br/>'catch' are on the same line, as in 'catch (decl) &lt;here&gt; {'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_catch_brace=ignore|sp_catch_brace=add|sp_catch_brace=remove|sp_catch_brace=force|sp_catch_brace=not_defined
-ChoicesReadable="Ignore Sp Catch Brace|Add Sp Catch Brace|Remove Sp Catch Brace|Force Sp Catch Brace"
-ValueDefault=ignore
-
-[Sp Oc Catch Brace]
-Category=1
-Description="<html>(OC) Add or remove space before the '{' of a '@catch' statement, if the '{'<br/>and '@catch' are on the same line, as in '@catch (decl) &lt;here&gt; {'.<br/>If set to ignore, sp_catch_brace is used.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_oc_catch_brace=ignore|sp_oc_catch_brace=add|sp_oc_catch_brace=remove|sp_oc_catch_brace=force|sp_oc_catch_brace=not_defined
-ChoicesReadable="Ignore Sp Oc Catch Brace|Add Sp Oc Catch Brace|Remove Sp Oc Catch Brace|Force Sp Oc Catch Brace"
-ValueDefault=ignore
-
-[Sp Brace Catch]
-Category=1
-Description="<html>Add or remove space between '}' and 'catch' if on the same line.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_brace_catch=ignore|sp_brace_catch=add|sp_brace_catch=remove|sp_brace_catch=force|sp_brace_catch=not_defined
-ChoicesReadable="Ignore Sp Brace Catch|Add Sp Brace Catch|Remove Sp Brace Catch|Force Sp Brace Catch"
-ValueDefault=ignore
-
-[Sp Oc Brace Catch]
-Category=1
-Description="<html>(OC) Add or remove space between '}' and '@catch' if on the same line.<br/>If set to ignore, sp_brace_catch is used.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_oc_brace_catch=ignore|sp_oc_brace_catch=add|sp_oc_brace_catch=remove|sp_oc_brace_catch=force|sp_oc_brace_catch=not_defined
-ChoicesReadable="Ignore Sp Oc Brace Catch|Add Sp Oc Brace Catch|Remove Sp Oc Brace Catch|Force Sp Oc Brace Catch"
-ValueDefault=ignore
-
-[Sp Finally Brace]
-Category=1
-Description="<html>Add or remove space between 'finally' and '{' if on the same line.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_finally_brace=ignore|sp_finally_brace=add|sp_finally_brace=remove|sp_finally_brace=force|sp_finally_brace=not_defined
-ChoicesReadable="Ignore Sp Finally Brace|Add Sp Finally Brace|Remove Sp Finally Brace|Force Sp Finally Brace"
-ValueDefault=ignore
-
-[Sp Brace Finally]
-Category=1
-Description="<html>Add or remove space between '}' and 'finally' if on the same line.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_brace_finally=ignore|sp_brace_finally=add|sp_brace_finally=remove|sp_brace_finally=force|sp_brace_finally=not_defined
-ChoicesReadable="Ignore Sp Brace Finally|Add Sp Brace Finally|Remove Sp Brace Finally|Force Sp Brace Finally"
-ValueDefault=ignore
-
-[Sp Try Brace]
-Category=1
-Description="<html>Add or remove space between 'try' and '{' if on the same line.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_try_brace=ignore|sp_try_brace=add|sp_try_brace=remove|sp_try_brace=force|sp_try_brace=not_defined
-ChoicesReadable="Ignore Sp Try Brace|Add Sp Try Brace|Remove Sp Try Brace|Force Sp Try Brace"
-ValueDefault=ignore
-
-[Sp Getset Brace]
-Category=1
-Description="<html>Add or remove space between get/set and '{' if on the same line.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_getset_brace=ignore|sp_getset_brace=add|sp_getset_brace=remove|sp_getset_brace=force|sp_getset_brace=not_defined
-ChoicesReadable="Ignore Sp Getset Brace|Add Sp Getset Brace|Remove Sp Getset Brace|Force Sp Getset Brace"
-ValueDefault=ignore
-
-[Sp Word Brace Init Lst]
-Category=1
-Description="<html>Add or remove space between a variable and '{' for C++ uniform<br/>initialization.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_word_brace_init_lst=ignore|sp_word_brace_init_lst=add|sp_word_brace_init_lst=remove|sp_word_brace_init_lst=force|sp_word_brace_init_lst=not_defined
-ChoicesReadable="Ignore Sp Word Brace Init Lst|Add Sp Word Brace Init Lst|Remove Sp Word Brace Init Lst|Force Sp Word Brace Init Lst"
-ValueDefault=ignore
-
-[Sp Word Brace Ns]
-Category=1
-Description="<html>Add or remove space between a variable and '{' for a namespace.<br/><br/>Default: add</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_word_brace_ns=ignore|sp_word_brace_ns=add|sp_word_brace_ns=remove|sp_word_brace_ns=force|sp_word_brace_ns=not_defined
-ChoicesReadable="Ignore Sp Word Brace Ns|Add Sp Word Brace Ns|Remove Sp Word Brace Ns|Force Sp Word Brace Ns"
-ValueDefault=add
-
-[Sp Before Dc]
-Category=1
-Description="<html>Add or remove space before the '::' operator.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_dc=ignore|sp_before_dc=add|sp_before_dc=remove|sp_before_dc=force|sp_before_dc=not_defined
-ChoicesReadable="Ignore Sp Before Dc|Add Sp Before Dc|Remove Sp Before Dc|Force Sp Before Dc"
-ValueDefault=ignore
-
-[Sp After Dc]
-Category=1
-Description="<html>Add or remove space after the '::' operator.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_dc=ignore|sp_after_dc=add|sp_after_dc=remove|sp_after_dc=force|sp_after_dc=not_defined
-ChoicesReadable="Ignore Sp After Dc|Add Sp After Dc|Remove Sp After Dc|Force Sp After Dc"
-ValueDefault=ignore
-
-[Sp D Array Colon]
-Category=1
-Description="<html>(D) Add or remove around the D named array initializer ':' operator.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_d_array_colon=ignore|sp_d_array_colon=add|sp_d_array_colon=remove|sp_d_array_colon=force|sp_d_array_colon=not_defined
-ChoicesReadable="Ignore Sp D Array Colon|Add Sp D Array Colon|Remove Sp D Array Colon|Force Sp D Array Colon"
-ValueDefault=ignore
-
-[Sp Not]
-Category=1
-Description="<html>Add or remove space after the '!' (not) unary operator.<br/><br/>Default: remove</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_not=ignore|sp_not=add|sp_not=remove|sp_not=force|sp_not=not_defined
-ChoicesReadable="Ignore Sp Not|Add Sp Not|Remove Sp Not|Force Sp Not"
-ValueDefault=remove
-
-[Sp Inv]
-Category=1
-Description="<html>Add or remove space after the '~' (invert) unary operator.<br/><br/>Default: remove</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_inv=ignore|sp_inv=add|sp_inv=remove|sp_inv=force|sp_inv=not_defined
-ChoicesReadable="Ignore Sp Inv|Add Sp Inv|Remove Sp Inv|Force Sp Inv"
-ValueDefault=remove
-
-[Sp Addr]
-Category=1
-Description="<html>Add or remove space after the '&amp;' (address-of) unary operator. This does not<br/>affect the spacing after a '&amp;' that is part of a type.<br/><br/>Default: remove</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_addr=ignore|sp_addr=add|sp_addr=remove|sp_addr=force|sp_addr=not_defined
-ChoicesReadable="Ignore Sp Addr|Add Sp Addr|Remove Sp Addr|Force Sp Addr"
-ValueDefault=remove
-
-[Sp Member]
-Category=1
-Description="<html>Add or remove space around the '.' or '-&gt;' operators.<br/><br/>Default: remove</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_member=ignore|sp_member=add|sp_member=remove|sp_member=force|sp_member=not_defined
-ChoicesReadable="Ignore Sp Member|Add Sp Member|Remove Sp Member|Force Sp Member"
-ValueDefault=remove
-
-[Sp Deref]
-Category=1
-Description="<html>Add or remove space after the '*' (dereference) unary operator. This does<br/>not affect the spacing after a '*' that is part of a type.<br/><br/>Default: remove</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_deref=ignore|sp_deref=add|sp_deref=remove|sp_deref=force|sp_deref=not_defined
-ChoicesReadable="Ignore Sp Deref|Add Sp Deref|Remove Sp Deref|Force Sp Deref"
-ValueDefault=remove
-
-[Sp Sign]
-Category=1
-Description="<html>Add or remove space after '+' or '-', as in 'x = -5' or 'y = +7'.<br/><br/>Default: remove</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_sign=ignore|sp_sign=add|sp_sign=remove|sp_sign=force|sp_sign=not_defined
-ChoicesReadable="Ignore Sp Sign|Add Sp Sign|Remove Sp Sign|Force Sp Sign"
-ValueDefault=remove
-
-[Sp Incdec]
-Category=1
-Description="<html>Add or remove space between '++' and '--' the word to which it is being<br/>applied, as in '(--x)' or 'y++;'.<br/><br/>Default: remove</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_incdec=ignore|sp_incdec=add|sp_incdec=remove|sp_incdec=force|sp_incdec=not_defined
-ChoicesReadable="Ignore Sp Incdec|Add Sp Incdec|Remove Sp Incdec|Force Sp Incdec"
-ValueDefault=remove
-
-[Sp Before Nl Cont]
-Category=1
-Description="<html>Add or remove space before a backslash-newline at the end of a line.<br/><br/>Default: add</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_nl_cont=ignore|sp_before_nl_cont=add|sp_before_nl_cont=remove|sp_before_nl_cont=force|sp_before_nl_cont=not_defined
-ChoicesReadable="Ignore Sp Before Nl Cont|Add Sp Before Nl Cont|Remove Sp Before Nl Cont|Force Sp Before Nl Cont"
-ValueDefault=add
-
-[Sp After Oc Scope]
-Category=1
-Description="<html>(OC) Add or remove space after the scope '+' or '-', as in '-(void) foo;'<br/>or '+(int) bar;'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_oc_scope=ignore|sp_after_oc_scope=add|sp_after_oc_scope=remove|sp_after_oc_scope=force|sp_after_oc_scope=not_defined
-ChoicesReadable="Ignore Sp After Oc Scope|Add Sp After Oc Scope|Remove Sp After Oc Scope|Force Sp After Oc Scope"
-ValueDefault=ignore
-
-[Sp After Oc Colon]
-Category=1
-Description="<html>(OC) Add or remove space after the colon in message specs,<br/>i.e. '-(int) f:(int) x;' vs. '-(int) f: (int) x;'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_oc_colon=ignore|sp_after_oc_colon=add|sp_after_oc_colon=remove|sp_after_oc_colon=force|sp_after_oc_colon=not_defined
-ChoicesReadable="Ignore Sp After Oc Colon|Add Sp After Oc Colon|Remove Sp After Oc Colon|Force Sp After Oc Colon"
-ValueDefault=ignore
-
-[Sp Before Oc Colon]
-Category=1
-Description="<html>(OC) Add or remove space before the colon in message specs,<br/>i.e. '-(int) f: (int) x;' vs. '-(int) f : (int) x;'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_oc_colon=ignore|sp_before_oc_colon=add|sp_before_oc_colon=remove|sp_before_oc_colon=force|sp_before_oc_colon=not_defined
-ChoicesReadable="Ignore Sp Before Oc Colon|Add Sp Before Oc Colon|Remove Sp Before Oc Colon|Force Sp Before Oc Colon"
-ValueDefault=ignore
-
-[Sp After Oc Dict Colon]
-Category=1
-Description="<html>(OC) Add or remove space after the colon in immutable dictionary expression<br/>'NSDictionary *test = @{@"foo" :@"bar"};'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_oc_dict_colon=ignore|sp_after_oc_dict_colon=add|sp_after_oc_dict_colon=remove|sp_after_oc_dict_colon=force|sp_after_oc_dict_colon=not_defined
-ChoicesReadable="Ignore Sp After Oc Dict Colon|Add Sp After Oc Dict Colon|Remove Sp After Oc Dict Colon|Force Sp After Oc Dict Colon"
-ValueDefault=ignore
-
-[Sp Before Oc Dict Colon]
-Category=1
-Description="<html>(OC) Add or remove space before the colon in immutable dictionary expression<br/>'NSDictionary *test = @{@"foo" :@"bar"};'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_oc_dict_colon=ignore|sp_before_oc_dict_colon=add|sp_before_oc_dict_colon=remove|sp_before_oc_dict_colon=force|sp_before_oc_dict_colon=not_defined
-ChoicesReadable="Ignore Sp Before Oc Dict Colon|Add Sp Before Oc Dict Colon|Remove Sp Before Oc Dict Colon|Force Sp Before Oc Dict Colon"
-ValueDefault=ignore
-
-[Sp After Send Oc Colon]
-Category=1
-Description="<html>(OC) Add or remove space after the colon in message specs,<br/>i.e. '[object setValue:1];' vs. '[object setValue: 1];'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_send_oc_colon=ignore|sp_after_send_oc_colon=add|sp_after_send_oc_colon=remove|sp_after_send_oc_colon=force|sp_after_send_oc_colon=not_defined
-ChoicesReadable="Ignore Sp After Send Oc Colon|Add Sp After Send Oc Colon|Remove Sp After Send Oc Colon|Force Sp After Send Oc Colon"
-ValueDefault=ignore
-
-[Sp Before Send Oc Colon]
-Category=1
-Description="<html>(OC) Add or remove space before the colon in message specs,<br/>i.e. '[object setValue:1];' vs. '[object setValue :1];'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_send_oc_colon=ignore|sp_before_send_oc_colon=add|sp_before_send_oc_colon=remove|sp_before_send_oc_colon=force|sp_before_send_oc_colon=not_defined
-ChoicesReadable="Ignore Sp Before Send Oc Colon|Add Sp Before Send Oc Colon|Remove Sp Before Send Oc Colon|Force Sp Before Send Oc Colon"
-ValueDefault=ignore
-
-[Sp After Oc Type]
-Category=1
-Description="<html>(OC) Add or remove space after the (type) in message specs,<br/>i.e. '-(int)f: (int) x;' vs. '-(int)f: (int)x;'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_oc_type=ignore|sp_after_oc_type=add|sp_after_oc_type=remove|sp_after_oc_type=force|sp_after_oc_type=not_defined
-ChoicesReadable="Ignore Sp After Oc Type|Add Sp After Oc Type|Remove Sp After Oc Type|Force Sp After Oc Type"
-ValueDefault=ignore
-
-[Sp After Oc Return Type]
-Category=1
-Description="<html>(OC) Add or remove space after the first (type) in message specs,<br/>i.e. '-(int) f:(int)x;' vs. '-(int)f:(int)x;'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_oc_return_type=ignore|sp_after_oc_return_type=add|sp_after_oc_return_type=remove|sp_after_oc_return_type=force|sp_after_oc_return_type=not_defined
-ChoicesReadable="Ignore Sp After Oc Return Type|Add Sp After Oc Return Type|Remove Sp After Oc Return Type|Force Sp After Oc Return Type"
-ValueDefault=ignore
-
-[Sp After Oc At Sel]
-Category=1
-Description="<html>(OC) Add or remove space between '@selector' and '(',<br/>i.e. '@selector(msgName)' vs. '@selector (msgName)'.<br/>Also applies to '@protocol()' constructs.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_oc_at_sel=ignore|sp_after_oc_at_sel=add|sp_after_oc_at_sel=remove|sp_after_oc_at_sel=force|sp_after_oc_at_sel=not_defined
-ChoicesReadable="Ignore Sp After Oc At Sel|Add Sp After Oc At Sel|Remove Sp After Oc At Sel|Force Sp After Oc At Sel"
-ValueDefault=ignore
-
-[Sp After Oc At Sel Parens]
-Category=1
-Description="<html>(OC) Add or remove space between '@selector(x)' and the following word,<br/>i.e. '@selector(foo) a:' vs. '@selector(foo)a:'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_oc_at_sel_parens=ignore|sp_after_oc_at_sel_parens=add|sp_after_oc_at_sel_parens=remove|sp_after_oc_at_sel_parens=force|sp_after_oc_at_sel_parens=not_defined
-ChoicesReadable="Ignore Sp After Oc At Sel Parens|Add Sp After Oc At Sel Parens|Remove Sp After Oc At Sel Parens|Force Sp After Oc At Sel Parens"
-ValueDefault=ignore
-
-[Sp Inside Oc At Sel Parens]
-Category=1
-Description="<html>(OC) Add or remove space inside '@selector' parentheses,<br/>i.e. '@selector(foo)' vs. '@selector( foo )'.<br/>Also applies to '@protocol()' constructs.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_inside_oc_at_sel_parens=ignore|sp_inside_oc_at_sel_parens=add|sp_inside_oc_at_sel_parens=remove|sp_inside_oc_at_sel_parens=force|sp_inside_oc_at_sel_parens=not_defined
-ChoicesReadable="Ignore Sp Inside Oc At Sel Parens|Add Sp Inside Oc At Sel Parens|Remove Sp Inside Oc At Sel Parens|Force Sp Inside Oc At Sel Parens"
-ValueDefault=ignore
-
-[Sp Before Oc Block Caret]
-Category=1
-Description="<html>(OC) Add or remove space before a block pointer caret,<br/>i.e. '^int (int arg){...}' vs. ' ^int (int arg){...}'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_oc_block_caret=ignore|sp_before_oc_block_caret=add|sp_before_oc_block_caret=remove|sp_before_oc_block_caret=force|sp_before_oc_block_caret=not_defined
-ChoicesReadable="Ignore Sp Before Oc Block Caret|Add Sp Before Oc Block Caret|Remove Sp Before Oc Block Caret|Force Sp Before Oc Block Caret"
-ValueDefault=ignore
-
-[Sp After Oc Block Caret]
-Category=1
-Description="<html>(OC) Add or remove space after a block pointer caret,<br/>i.e. '^int (int arg){...}' vs. '^ int (int arg){...}'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_oc_block_caret=ignore|sp_after_oc_block_caret=add|sp_after_oc_block_caret=remove|sp_after_oc_block_caret=force|sp_after_oc_block_caret=not_defined
-ChoicesReadable="Ignore Sp After Oc Block Caret|Add Sp After Oc Block Caret|Remove Sp After Oc Block Caret|Force Sp After Oc Block Caret"
-ValueDefault=ignore
-
-[Sp After Oc Msg Receiver]
-Category=1
-Description="<html>(OC) Add or remove space between the receiver and selector in a message,<br/>as in '[receiver selector ...]'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_oc_msg_receiver=ignore|sp_after_oc_msg_receiver=add|sp_after_oc_msg_receiver=remove|sp_after_oc_msg_receiver=force|sp_after_oc_msg_receiver=not_defined
-ChoicesReadable="Ignore Sp After Oc Msg Receiver|Add Sp After Oc Msg Receiver|Remove Sp After Oc Msg Receiver|Force Sp After Oc Msg Receiver"
-ValueDefault=ignore
-
-[Sp After Oc Property]
-Category=1
-Description="<html>(OC) Add or remove space after '@property'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_oc_property=ignore|sp_after_oc_property=add|sp_after_oc_property=remove|sp_after_oc_property=force|sp_after_oc_property=not_defined
-ChoicesReadable="Ignore Sp After Oc Property|Add Sp After Oc Property|Remove Sp After Oc Property|Force Sp After Oc Property"
-ValueDefault=ignore
-
-[Sp After Oc Synchronized]
-Category=1
-Description="<html>(OC) Add or remove space between '@synchronized' and the open parenthesis,<br/>i.e. '@synchronized(foo)' vs. '@synchronized (foo)'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_oc_synchronized=ignore|sp_after_oc_synchronized=add|sp_after_oc_synchronized=remove|sp_after_oc_synchronized=force|sp_after_oc_synchronized=not_defined
-ChoicesReadable="Ignore Sp After Oc Synchronized|Add Sp After Oc Synchronized|Remove Sp After Oc Synchronized|Force Sp After Oc Synchronized"
-ValueDefault=ignore
-
-[Sp Cond Colon]
-Category=1
-Description="<html>Add or remove space around the ':' in 'b ? t : f'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_cond_colon=ignore|sp_cond_colon=add|sp_cond_colon=remove|sp_cond_colon=force|sp_cond_colon=not_defined
-ChoicesReadable="Ignore Sp Cond Colon|Add Sp Cond Colon|Remove Sp Cond Colon|Force Sp Cond Colon"
-ValueDefault=ignore
-
-[Sp Cond Colon Before]
-Category=1
-Description="<html>Add or remove space before the ':' in 'b ? t : f'.<br/><br/>Overrides sp_cond_colon.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_cond_colon_before=ignore|sp_cond_colon_before=add|sp_cond_colon_before=remove|sp_cond_colon_before=force|sp_cond_colon_before=not_defined
-ChoicesReadable="Ignore Sp Cond Colon Before|Add Sp Cond Colon Before|Remove Sp Cond Colon Before|Force Sp Cond Colon Before"
-ValueDefault=ignore
-
-[Sp Cond Colon After]
-Category=1
-Description="<html>Add or remove space after the ':' in 'b ? t : f'.<br/><br/>Overrides sp_cond_colon.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_cond_colon_after=ignore|sp_cond_colon_after=add|sp_cond_colon_after=remove|sp_cond_colon_after=force|sp_cond_colon_after=not_defined
-ChoicesReadable="Ignore Sp Cond Colon After|Add Sp Cond Colon After|Remove Sp Cond Colon After|Force Sp Cond Colon After"
-ValueDefault=ignore
-
-[Sp Cond Question]
-Category=1
-Description="<html>Add or remove space around the '?' in 'b ? t : f'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_cond_question=ignore|sp_cond_question=add|sp_cond_question=remove|sp_cond_question=force|sp_cond_question=not_defined
-ChoicesReadable="Ignore Sp Cond Question|Add Sp Cond Question|Remove Sp Cond Question|Force Sp Cond Question"
-ValueDefault=ignore
-
-[Sp Cond Question Before]
-Category=1
-Description="<html>Add or remove space before the '?' in 'b ? t : f'.<br/><br/>Overrides sp_cond_question.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_cond_question_before=ignore|sp_cond_question_before=add|sp_cond_question_before=remove|sp_cond_question_before=force|sp_cond_question_before=not_defined
-ChoicesReadable="Ignore Sp Cond Question Before|Add Sp Cond Question Before|Remove Sp Cond Question Before|Force Sp Cond Question Before"
-ValueDefault=ignore
-
-[Sp Cond Question After]
-Category=1
-Description="<html>Add or remove space after the '?' in 'b ? t : f'.<br/><br/>Overrides sp_cond_question.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_cond_question_after=ignore|sp_cond_question_after=add|sp_cond_question_after=remove|sp_cond_question_after=force|sp_cond_question_after=not_defined
-ChoicesReadable="Ignore Sp Cond Question After|Add Sp Cond Question After|Remove Sp Cond Question After|Force Sp Cond Question After"
-ValueDefault=ignore
-
-[Sp Cond Ternary Short]
-Category=1
-Description="<html>In the abbreviated ternary form '(a ?: b)', add or remove space between '?'<br/>and ':'.<br/><br/>Overrides all other sp_cond_* options.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_cond_ternary_short=ignore|sp_cond_ternary_short=add|sp_cond_ternary_short=remove|sp_cond_ternary_short=force|sp_cond_ternary_short=not_defined
-ChoicesReadable="Ignore Sp Cond Ternary Short|Add Sp Cond Ternary Short|Remove Sp Cond Ternary Short|Force Sp Cond Ternary Short"
-ValueDefault=ignore
-
-[Sp Case Label]
-Category=1
-Description="<html>Fix the spacing between 'case' and the label. Only 'ignore' and 'force' make<br/>sense here.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_case_label=ignore|sp_case_label=add|sp_case_label=remove|sp_case_label=force|sp_case_label=not_defined
-ChoicesReadable="Ignore Sp Case Label|Add Sp Case Label|Remove Sp Case Label|Force Sp Case Label"
-ValueDefault=ignore
-
-[Sp Range]
-Category=1
-Description="<html>(D) Add or remove space around the D '..' operator.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_range=ignore|sp_range=add|sp_range=remove|sp_range=force|sp_range=not_defined
-ChoicesReadable="Ignore Sp Range|Add Sp Range|Remove Sp Range|Force Sp Range"
-ValueDefault=ignore
-
-[Sp After For Colon]
-Category=1
-Description="<html>Add or remove space after ':' in a Java/C++11 range-based 'for',<br/>as in 'for (Type var : &lt;here&gt; expr)'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_for_colon=ignore|sp_after_for_colon=add|sp_after_for_colon=remove|sp_after_for_colon=force|sp_after_for_colon=not_defined
-ChoicesReadable="Ignore Sp After For Colon|Add Sp After For Colon|Remove Sp After For Colon|Force Sp After For Colon"
-ValueDefault=ignore
-
-[Sp Before For Colon]
-Category=1
-Description="<html>Add or remove space before ':' in a Java/C++11 range-based 'for',<br/>as in 'for (Type var &lt;here&gt; : expr)'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_for_colon=ignore|sp_before_for_colon=add|sp_before_for_colon=remove|sp_before_for_colon=force|sp_before_for_colon=not_defined
-ChoicesReadable="Ignore Sp Before For Colon|Add Sp Before For Colon|Remove Sp Before For Colon|Force Sp Before For Colon"
-ValueDefault=ignore
-
-[Sp Extern Paren]
-Category=1
-Description="<html>(D) Add or remove space between 'extern' and '(' as in 'extern &lt;here&gt; (C)'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_extern_paren=ignore|sp_extern_paren=add|sp_extern_paren=remove|sp_extern_paren=force|sp_extern_paren=not_defined
-ChoicesReadable="Ignore Sp Extern Paren|Add Sp Extern Paren|Remove Sp Extern Paren|Force Sp Extern Paren"
-ValueDefault=ignore
-
-[Sp Cmt Cpp Start]
-Category=1
-Description="<html>Add or remove space after the opening of a C++ comment, as in '// &lt;here&gt; A'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_cmt_cpp_start=ignore|sp_cmt_cpp_start=add|sp_cmt_cpp_start=remove|sp_cmt_cpp_start=force|sp_cmt_cpp_start=not_defined
-ChoicesReadable="Ignore Sp Cmt Cpp Start|Add Sp Cmt Cpp Start|Remove Sp Cmt Cpp Start|Force Sp Cmt Cpp Start"
-ValueDefault=ignore
-
-[Sp Cmt Cpp Region]
-Category=1
-Description="<html>Add or remove space in a C++ region marker comment, as in '// &lt;here&gt; BEGIN'.<br/>A region marker is defined as a comment which is not preceded by other text<br/>(i.e. the comment is the first non-whitespace on the line), and which starts<br/>with either 'BEGIN' or 'END'.<br/><br/>Overrides sp_cmt_cpp_start.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_cmt_cpp_region=ignore|sp_cmt_cpp_region=add|sp_cmt_cpp_region=remove|sp_cmt_cpp_region=force|sp_cmt_cpp_region=not_defined
-ChoicesReadable="Ignore Sp Cmt Cpp Region|Add Sp Cmt Cpp Region|Remove Sp Cmt Cpp Region|Force Sp Cmt Cpp Region"
-ValueDefault=ignore
-
-[Sp Cmt Cpp Doxygen]
-Category=1
-Description="<html>If true, space added with sp_cmt_cpp_start will be added after Doxygen<br/>sequences like '///', '///&lt;', '//!' and '//!&lt;'.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=sp_cmt_cpp_doxygen=true|sp_cmt_cpp_doxygen=false
-ValueDefault=false
-
-[Sp Cmt Cpp Qttr]
-Category=1
-Description="<html>If true, space added with sp_cmt_cpp_start will be added after Qt translator<br/>or meta-data comments like '//:', '//=', and '//~'.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=sp_cmt_cpp_qttr=true|sp_cmt_cpp_qttr=false
-ValueDefault=false
-
-[Sp Endif Cmt]
-Category=1
-Description="<html>Add or remove space between #else or #endif and a trailing comment.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_endif_cmt=ignore|sp_endif_cmt=add|sp_endif_cmt=remove|sp_endif_cmt=force|sp_endif_cmt=not_defined
-ChoicesReadable="Ignore Sp Endif Cmt|Add Sp Endif Cmt|Remove Sp Endif Cmt|Force Sp Endif Cmt"
-ValueDefault=ignore
-
-[Sp After New]
-Category=1
-Description="<html>Add or remove space after 'new', 'delete' and 'delete[]'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_new=ignore|sp_after_new=add|sp_after_new=remove|sp_after_new=force|sp_after_new=not_defined
-ChoicesReadable="Ignore Sp After New|Add Sp After New|Remove Sp After New|Force Sp After New"
-ValueDefault=ignore
-
-[Sp Between New Paren]
-Category=1
-Description="<html>Add or remove space between 'new' and '(' in 'new()'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_between_new_paren=ignore|sp_between_new_paren=add|sp_between_new_paren=remove|sp_between_new_paren=force|sp_between_new_paren=not_defined
-ChoicesReadable="Ignore Sp Between New Paren|Add Sp Between New Paren|Remove Sp Between New Paren|Force Sp Between New Paren"
-ValueDefault=ignore
-
-[Sp After Newop Paren]
-Category=1
-Description="<html>Add or remove space between ')' and type in 'new(foo) BAR'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_newop_paren=ignore|sp_after_newop_paren=add|sp_after_newop_paren=remove|sp_after_newop_paren=force|sp_after_newop_paren=not_defined
-ChoicesReadable="Ignore Sp After Newop Paren|Add Sp After Newop Paren|Remove Sp After Newop Paren|Force Sp After Newop Paren"
-ValueDefault=ignore
-
-[Sp Inside Newop Paren]
-Category=1
-Description="<html>Add or remove space inside parenthesis of the new operator<br/>as in 'new(foo) BAR'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_inside_newop_paren=ignore|sp_inside_newop_paren=add|sp_inside_newop_paren=remove|sp_inside_newop_paren=force|sp_inside_newop_paren=not_defined
-ChoicesReadable="Ignore Sp Inside Newop Paren|Add Sp Inside Newop Paren|Remove Sp Inside Newop Paren|Force Sp Inside Newop Paren"
-ValueDefault=ignore
-
-[Sp Inside Newop Paren Open]
-Category=1
-Description="<html>Add or remove space after the open parenthesis of the new operator,<br/>as in 'new(foo) BAR'.<br/><br/>Overrides sp_inside_newop_paren.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_inside_newop_paren_open=ignore|sp_inside_newop_paren_open=add|sp_inside_newop_paren_open=remove|sp_inside_newop_paren_open=force|sp_inside_newop_paren_open=not_defined
-ChoicesReadable="Ignore Sp Inside Newop Paren Open|Add Sp Inside Newop Paren Open|Remove Sp Inside Newop Paren Open|Force Sp Inside Newop Paren Open"
-ValueDefault=ignore
-
-[Sp Inside Newop Paren Close]
-Category=1
-Description="<html>Add or remove space before the close parenthesis of the new operator,<br/>as in 'new(foo) BAR'.<br/><br/>Overrides sp_inside_newop_paren.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_inside_newop_paren_close=ignore|sp_inside_newop_paren_close=add|sp_inside_newop_paren_close=remove|sp_inside_newop_paren_close=force|sp_inside_newop_paren_close=not_defined
-ChoicesReadable="Ignore Sp Inside Newop Paren Close|Add Sp Inside Newop Paren Close|Remove Sp Inside Newop Paren Close|Force Sp Inside Newop Paren Close"
-ValueDefault=ignore
-
-[Sp Before Tr Cmt]
-Category=1
-Description="<html>Add or remove space before a trailing comment.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_tr_cmt=ignore|sp_before_tr_cmt=add|sp_before_tr_cmt=remove|sp_before_tr_cmt=force|sp_before_tr_cmt=not_defined
-ChoicesReadable="Ignore Sp Before Tr Cmt|Add Sp Before Tr Cmt|Remove Sp Before Tr Cmt|Force Sp Before Tr Cmt"
-ValueDefault=ignore
-
-[Sp Num Before Tr Cmt]
-Category=1
-Description="<html>Number of spaces before a trailing comment.</html>"
-Enabled=false
-EditorType=numeric
-CallName="sp_num_before_tr_cmt="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Sp Before Emb Cmt]
-Category=1
-Description="<html>Add or remove space before an embedded comment.<br/><br/>Default: force</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_emb_cmt=ignore|sp_before_emb_cmt=add|sp_before_emb_cmt=remove|sp_before_emb_cmt=force|sp_before_emb_cmt=not_defined
-ChoicesReadable="Ignore Sp Before Emb Cmt|Add Sp Before Emb Cmt|Remove Sp Before Emb Cmt|Force Sp Before Emb Cmt"
-ValueDefault=force
-
-[Sp Num Before Emb Cmt]
-Category=1
-Description="<html>Number of spaces before an embedded comment.<br/><br/>Default: 1</html>"
-Enabled=false
-EditorType=numeric
-CallName="sp_num_before_emb_cmt="
-MinVal=0
-MaxVal=16
-ValueDefault=1
-
-[Sp After Emb Cmt]
-Category=1
-Description="<html>Add or remove space after an embedded comment.<br/><br/>Default: force</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_emb_cmt=ignore|sp_after_emb_cmt=add|sp_after_emb_cmt=remove|sp_after_emb_cmt=force|sp_after_emb_cmt=not_defined
-ChoicesReadable="Ignore Sp After Emb Cmt|Add Sp After Emb Cmt|Remove Sp After Emb Cmt|Force Sp After Emb Cmt"
-ValueDefault=force
-
-[Sp Num After Emb Cmt]
-Category=1
-Description="<html>Number of spaces after an embedded comment.<br/><br/>Default: 1</html>"
-Enabled=false
-EditorType=numeric
-CallName="sp_num_after_emb_cmt="
-MinVal=0
-MaxVal=16
-ValueDefault=1
-
-[Sp Annotation Paren]
-Category=1
-Description="<html>(Java) Add or remove space between an annotation and the open parenthesis.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_annotation_paren=ignore|sp_annotation_paren=add|sp_annotation_paren=remove|sp_annotation_paren=force|sp_annotation_paren=not_defined
-ChoicesReadable="Ignore Sp Annotation Paren|Add Sp Annotation Paren|Remove Sp Annotation Paren|Force Sp Annotation Paren"
-ValueDefault=ignore
-
-[Sp Skip Vbrace Tokens]
-Category=1
-Description="<html>If true, vbrace tokens are dropped to the previous token and skipped.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=sp_skip_vbrace_tokens=true|sp_skip_vbrace_tokens=false
-ValueDefault=false
-
-[Sp After Noexcept]
-Category=1
-Description="<html>Add or remove space after 'noexcept'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_noexcept=ignore|sp_after_noexcept=add|sp_after_noexcept=remove|sp_after_noexcept=force|sp_after_noexcept=not_defined
-ChoicesReadable="Ignore Sp After Noexcept|Add Sp After Noexcept|Remove Sp After Noexcept|Force Sp After Noexcept"
-ValueDefault=ignore
-
-[Sp Vala After Translation]
-Category=1
-Description="<html>Add or remove space after '_'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_vala_after_translation=ignore|sp_vala_after_translation=add|sp_vala_after_translation=remove|sp_vala_after_translation=force|sp_vala_after_translation=not_defined
-ChoicesReadable="Ignore Sp Vala After Translation|Add Sp Vala After Translation|Remove Sp Vala After Translation|Force Sp Vala After Translation"
-ValueDefault=ignore
-
-[Force Tab After Define]
-Category=1
-Description="<html>If true, a &lt;TAB&gt; is inserted after #define.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=force_tab_after_define=true|force_tab_after_define=false
-ValueDefault=false
-
-[Indent Columns]
-Category=2
-Description="<html>The number of columns to indent per level. Usually 2, 3, 4, or 8.<br/><br/>Default: 8</html>"
-Enabled=false
-EditorType=numeric
-CallName="indent_columns="
-MinVal=0
-MaxVal=16
-ValueDefault=8
-
-[Indent Continue]
-Category=2
-Description="<html>The continuation indent. If non-zero, this overrides the indent of '(', '['<br/>and '=' continuation indents. Negative values are OK; negative value is<br/>absolute and not increased for each '(' or '[' level.<br/><br/>For FreeBSD, this is set to 4.</html>"
-Enabled=false
-EditorType=numeric
-CallName="indent_continue="
-MinVal=-16
-MaxVal=16
-ValueDefault=0
-
-[Indent Continue Class Head]
-Category=2
-Description="<html>The continuation indent, only for class header line(s). If non-zero, this<br/>overrides the indent of 'class' continuation indents.</html>"
-Enabled=false
-EditorType=numeric
-CallName="indent_continue_class_head="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Indent Single Newlines]
-Category=2
-Description="<html>Whether to indent empty lines (i.e. lines which contain only spaces before<br/>the newline character).</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_single_newlines=true|indent_single_newlines=false
-ValueDefault=false
-
-[Indent Param]
-Category=2
-Description="<html>The continuation indent for func_*_param if they are true. If non-zero, this<br/>overrides the indent.</html>"
-Enabled=false
-EditorType=numeric
-CallName="indent_param="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Indent With Tabs]
-Category=2
-Description="<html>How to use tabs when indenting code.<br/><br/>0: Spaces only<br/>1: Indent with tabs to brace level, align with spaces (default)<br/>2: Indent and align with tabs, using spaces when not on a tabstop<br/><br/>Default: 1</html>"
-Enabled=true
-EditorType=multiple
-Choices="indent_with_tabs=0|indent_with_tabs=1|indent_with_tabs=2"
-ChoicesReadable="Spaces only|Indent with tabs, align with spaces|Indent and align with tabs"
-ValueDefault=1
-
-[Indent Cmt With Tabs]
-Category=2
-Description="<html>Whether to indent comments that are not at a brace level with tabs on a<br/>tabstop. Requires indent_with_tabs=2. If false, will use spaces.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_cmt_with_tabs=true|indent_cmt_with_tabs=false
-ValueDefault=false
-
-[Indent Align String]
-Category=2
-Description="<html>Whether to indent strings broken by '\' so that they line up.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_align_string=true|indent_align_string=false
-ValueDefault=false
-
-[Indent Xml String]
-Category=2
-Description="<html>The number of spaces to indent multi-line XML strings.<br/>Requires indent_align_string=true.</html>"
-Enabled=false
-EditorType=numeric
-CallName="indent_xml_string="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Indent Brace]
-Category=2
-Description="<html>Spaces to indent '{' from level.</html>"
-Enabled=false
-EditorType=numeric
-CallName="indent_brace="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Indent Braces]
-Category=2
-Description="<html>Whether braces are indented to the body level.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_braces=true|indent_braces=false
-ValueDefault=false
-
-[Indent Braces No Func]
-Category=2
-Description="<html>Whether to disable indenting function braces if indent_braces=true.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_braces_no_func=true|indent_braces_no_func=false
-ValueDefault=false
-
-[Indent Braces No Class]
-Category=2
-Description="<html>Whether to disable indenting class braces if indent_braces=true.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_braces_no_class=true|indent_braces_no_class=false
-ValueDefault=false
-
-[Indent Braces No Struct]
-Category=2
-Description="<html>Whether to disable indenting struct braces if indent_braces=true.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_braces_no_struct=true|indent_braces_no_struct=false
-ValueDefault=false
-
-[Indent Brace Parent]
-Category=2
-Description="<html>Whether to indent based on the size of the brace parent,<br/>i.e. 'if' =&gt; 3 spaces, 'for' =&gt; 4 spaces, etc.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_brace_parent=true|indent_brace_parent=false
-ValueDefault=false
-
-[Indent Paren Open Brace]
-Category=2
-Description="<html>Whether to indent based on the open parenthesis instead of the open brace<br/>in '({\n'.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_paren_open_brace=true|indent_paren_open_brace=false
-ValueDefault=false
-
-[Indent Cs Delegate Brace]
-Category=2
-Description="<html>(C#) Whether to indent the brace of a C# delegate by another level.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_cs_delegate_brace=true|indent_cs_delegate_brace=false
-ValueDefault=false
-
-[Indent Cs Delegate Body]
-Category=2
-Description="<html>(C#) Whether to indent a C# delegate (to handle delegates with no brace) by<br/>another level.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_cs_delegate_body=true|indent_cs_delegate_body=false
-ValueDefault=false
-
-[Indent Namespace]
-Category=2
-Description="<html>Whether to indent the body of a 'namespace'.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_namespace=true|indent_namespace=false
-ValueDefault=false
-
-[Indent Namespace Single Indent]
-Category=2
-Description="<html>Whether to indent only the first namespace, and not any nested namespaces.<br/>Requires indent_namespace=true.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_namespace_single_indent=true|indent_namespace_single_indent=false
-ValueDefault=false
-
-[Indent Namespace Level]
-Category=2
-Description="<html>The number of spaces to indent a namespace block.<br/>If set to zero, use the value indent_columns</html>"
-Enabled=false
-EditorType=numeric
-CallName="indent_namespace_level="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Indent Namespace Limit]
-Category=2
-Description="<html>If the body of the namespace is longer than this number, it won't be<br/>indented. Requires indent_namespace=true. 0 means no limit.</html>"
-Enabled=false
-EditorType=numeric
-CallName="indent_namespace_limit="
-MinVal=0
-MaxVal=255
-ValueDefault=0
-
-[Indent Extern]
-Category=2
-Description="<html>Whether the 'extern "C"' body is indented.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_extern=true|indent_extern=false
-ValueDefault=false
-
-[Indent Class]
-Category=2
-Description="<html>Whether the 'class' body is indented.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_class=true|indent_class=false
-ValueDefault=false
-
-[Indent Before Class Colon]
-Category=2
-Description="<html>Additional indent before the leading base class colon.<br/>Negative values decrease indent down to the first column.<br/>Requires a newline break before colon (see pos_class_colon<br/>and nl_class_colon)</html>"
-Enabled=false
-EditorType=numeric
-CallName="indent_before_class_colon="
-MinVal=-16
-MaxVal=16
-ValueDefault=0
-
-[Indent Class Colon]
-Category=2
-Description="<html>Whether to indent the stuff after a leading base class colon.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_class_colon=true|indent_class_colon=false
-ValueDefault=false
-
-[Indent Class On Colon]
-Category=2
-Description="<html>Whether to indent based on a class colon instead of the stuff after the<br/>colon. Requires indent_class_colon=true.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_class_on_colon=true|indent_class_on_colon=false
-ValueDefault=false
-
-[Indent Constr Colon]
-Category=2
-Description="<html>Whether to indent the stuff after a leading class initializer colon.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_constr_colon=true|indent_constr_colon=false
-ValueDefault=false
-
-[Indent Ctor Init Leading]
-Category=2
-Description="<html>Virtual indent from the ':' for leading member initializers.<br/><br/>Default: 2</html>"
-Enabled=false
-EditorType=numeric
-CallName="indent_ctor_init_leading="
-MinVal=0
-MaxVal=16
-ValueDefault=2
-
-[Indent Ctor Init Following]
-Category=2
-Description="<html>Virtual indent from the ':' for following member initializers.<br/><br/>Default: 2</html>"
-Enabled=false
-EditorType=numeric
-CallName="indent_ctor_init_following="
-MinVal=0
-MaxVal=16
-ValueDefault=2
-
-[Indent Ctor Init]
-Category=2
-Description="<html>Additional indent for constructor initializer list.<br/>Negative values decrease indent down to the first column.</html>"
-Enabled=false
-EditorType=numeric
-CallName="indent_ctor_init="
-MinVal=-16
-MaxVal=16
-ValueDefault=0
-
-[Indent Else If]
-Category=2
-Description="<html>Whether to indent 'if' following 'else' as a new block under the 'else'.<br/>If false, 'else\nif' is treated as 'else if' for indenting purposes.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_else_if=true|indent_else_if=false
-ValueDefault=false
-
-[Indent Var Def Blk]
-Category=2
-Description="<html>Amount to indent variable declarations after a open brace.<br/><br/> &lt;0: Relative<br/>&gt;=0: Absolute</html>"
-Enabled=false
-EditorType=numeric
-CallName="indent_var_def_blk="
-MinVal=-16
-MaxVal=16
-ValueDefault=0
-
-[Indent Var Def Cont]
-Category=2
-Description="<html>Whether to indent continued variable declarations instead of aligning.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_var_def_cont=true|indent_var_def_cont=false
-ValueDefault=false
-
-[Indent Shift]
-Category=2
-Description="<html>Whether to indent continued shift expressions ('&lt;&lt;' and '&gt;&gt;') instead of<br/>aligning. Set align_left_shift=false when enabling this.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_shift=true|indent_shift=false
-ValueDefault=false
-
-[Indent Func Def Force Col1]
-Category=2
-Description="<html>Whether to force indentation of function definitions to start in column 1.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_func_def_force_col1=true|indent_func_def_force_col1=false
-ValueDefault=false
-
-[Indent Func Call Param]
-Category=2
-Description="<html>Whether to indent continued function call parameters one indent level,<br/>rather than aligning parameters under the open parenthesis.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_func_call_param=true|indent_func_call_param=false
-ValueDefault=false
-
-[Indent Func Def Param]
-Category=2
-Description="<html>Whether to indent continued function definition parameters one indent level,<br/>rather than aligning parameters under the open parenthesis.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_func_def_param=true|indent_func_def_param=false
-ValueDefault=false
-
-[Indent Func Def Param Paren Pos Threshold]
-Category=2
-Description="<html>for function definitions, only if indent_func_def_param is false<br/>Allows to align params when appropriate and indent them when not<br/>behave as if it was true if paren position is more than this value<br/>if paren position is more than the option value</html>"
-Enabled=false
-EditorType=numeric
-CallName="indent_func_def_param_paren_pos_threshold="
-MinVal=0
-MaxVal=160
-ValueDefault=0
-
-[Indent Func Proto Param]
-Category=2
-Description="<html>Whether to indent continued function call prototype one indent level,<br/>rather than aligning parameters under the open parenthesis.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_func_proto_param=true|indent_func_proto_param=false
-ValueDefault=false
-
-[Indent Func Class Param]
-Category=2
-Description="<html>Whether to indent continued function call declaration one indent level,<br/>rather than aligning parameters under the open parenthesis.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_func_class_param=true|indent_func_class_param=false
-ValueDefault=false
-
-[Indent Func Ctor Var Param]
-Category=2
-Description="<html>Whether to indent continued class variable constructors one indent level,<br/>rather than aligning parameters under the open parenthesis.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_func_ctor_var_param=true|indent_func_ctor_var_param=false
-ValueDefault=false
-
-[Indent Template Param]
-Category=2
-Description="<html>Whether to indent continued template parameter list one indent level,<br/>rather than aligning parameters under the open parenthesis.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_template_param=true|indent_template_param=false
-ValueDefault=false
-
-[Indent Func Param Double]
-Category=2
-Description="<html>Double the indent for indent_func_xxx_param options.<br/>Use both values of the options indent_columns and indent_param.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_func_param_double=true|indent_func_param_double=false
-ValueDefault=false
-
-[Indent Func Const]
-Category=2
-Description="<html>Indentation column for standalone 'const' qualifier on a function<br/>prototype.</html>"
-Enabled=false
-EditorType=numeric
-CallName="indent_func_const="
-MinVal=0
-MaxVal=69
-ValueDefault=0
-
-[Indent Func Throw]
-Category=2
-Description="<html>Indentation column for standalone 'throw' qualifier on a function<br/>prototype.</html>"
-Enabled=false
-EditorType=numeric
-CallName="indent_func_throw="
-MinVal=0
-MaxVal=41
-ValueDefault=0
-
-[Indent Macro Brace]
-Category=2
-Description="<html>How to indent within a macro followed by a brace on the same line<br/>This allows reducing the indent in macros that have (for example)<br/>`do { ... } while (0)` blocks bracketing them.<br/><br/>true: add an indent for the brace on the same line as the macro<br/>false: do not add an indent for the brace on the same line as the macro<br/><br/>Default: true</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_macro_brace=true|indent_macro_brace=false
-ValueDefault=true
-
-[Indent Member]
-Category=2
-Description="<html>The number of spaces to indent a continued '-&gt;' or '.'.<br/>Usually set to 0, 1, or indent_columns.</html>"
-Enabled=false
-EditorType=numeric
-CallName="indent_member="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Indent Member Single]
-Category=2
-Description="<html>Whether lines broken at '.' or '-&gt;' should be indented by a single indent.<br/>The indent_member option will not be effective if this is set to true.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_member_single=true|indent_member_single=false
-ValueDefault=false
-
-[Indent Single Line Comments Before]
-Category=2
-Description="<html>Spaces to indent single line ('//') comments on lines before code.</html>"
-Enabled=false
-EditorType=numeric
-CallName="indent_single_line_comments_before="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Indent Single Line Comments After]
-Category=2
-Description="<html>Spaces to indent single line ('//') comments on lines after code.</html>"
-Enabled=false
-EditorType=numeric
-CallName="indent_single_line_comments_after="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Indent Sparen Extra]
-Category=2
-Description="<html>When opening a paren for a control statement (if, for, while, etc), increase<br/>the indent level by this value. Negative values decrease the indent level.</html>"
-Enabled=false
-EditorType=numeric
-CallName="indent_sparen_extra="
-MinVal=-16
-MaxVal=16
-ValueDefault=0
-
-[Indent Relative Single Line Comments]
-Category=2
-Description="<html>Whether to indent trailing single line ('//') comments relative to the code<br/>instead of trying to keep the same absolute column.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_relative_single_line_comments=true|indent_relative_single_line_comments=false
-ValueDefault=false
-
-[Indent Switch Case]
-Category=2
-Description="<html>Spaces to indent 'case' from 'switch'. Usually 0 or indent_columns.<br/>It might be wise to choose the same value for the option indent_case_brace.</html>"
-Enabled=false
-EditorType=numeric
-CallName="indent_switch_case="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Indent Switch Body]
-Category=2
-Description="<html>Spaces to indent the body of a 'switch' before any 'case'.<br/>Usually the same as indent_columns or indent_switch_case.</html>"
-Enabled=false
-EditorType=numeric
-CallName="indent_switch_body="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Indent Case Brace]
-Category=2
-Description="<html>Spaces to indent '{' from 'case'. By default, the brace will appear under<br/>the 'c' in case. Usually set to 0 or indent_columns. Negative values are OK.<br/>It might be wise to choose the same value for the option indent_switch_case.</html>"
-Enabled=false
-EditorType=numeric
-CallName="indent_case_brace="
-MinVal=-16
-MaxVal=16
-ValueDefault=0
-
-[Indent Switch Break With Case]
-Category=2
-Description="<html>indent 'break' with 'case' from 'switch'.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_switch_break_with_case=true|indent_switch_break_with_case=false
-ValueDefault=false
-
-[Indent Switch Pp]
-Category=2
-Description="<html>Whether to indent preprocessor statements inside of switch statements.<br/><br/>Default: true</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_switch_pp=true|indent_switch_pp=false
-ValueDefault=true
-
-[Indent Case Shift]
-Category=2
-Description="<html>Spaces to shift the 'case' line, without affecting any other lines.<br/>Usually 0.</html>"
-Enabled=false
-EditorType=numeric
-CallName="indent_case_shift="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Indent Case Comment]
-Category=2
-Description="<html>Whether to align comments before 'case' with the 'case'.<br/><br/>Default: true</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_case_comment=true|indent_case_comment=false
-ValueDefault=true
-
-[Indent Comment]
-Category=2
-Description="<html>Whether to indent comments not found in first column.<br/><br/>Default: true</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_comment=true|indent_comment=false
-ValueDefault=true
-
-[Indent Col1 Comment]
-Category=2
-Description="<html>Whether to indent comments found in first column.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_col1_comment=true|indent_col1_comment=false
-ValueDefault=false
-
-[Indent Col1 Multi String Literal]
-Category=2
-Description="<html>Whether to indent multi string literal in first column.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_col1_multi_string_literal=true|indent_col1_multi_string_literal=false
-ValueDefault=false
-
-[Indent Comment Align Thresh]
-Category=2
-Description="<html>Align comments on adjacent lines that are this many columns apart or less.<br/><br/>Default: 3</html>"
-Enabled=false
-EditorType=numeric
-CallName="indent_comment_align_thresh="
-MinVal=0
-MaxVal=16
-ValueDefault=3
-
-[Indent Ignore Label]
-Category=2
-Description="<html>Whether to ignore indent for goto labels.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_ignore_label=true|indent_ignore_label=false
-ValueDefault=false
-
-[Indent Label]
-Category=2
-Description="<html>How to indent goto labels. Requires indent_ignore_label=false.<br/><br/> &gt;0: Absolute column where 1 is the leftmost column<br/>&lt;=0: Subtract from brace indent<br/><br/>Default: 1</html>"
-Enabled=false
-EditorType=numeric
-CallName="indent_label="
-MinVal=-16
-MaxVal=16
-ValueDefault=1
-
-[Indent Access Spec]
-Category=2
-Description="<html>How to indent access specifiers that are followed by a<br/>colon.<br/><br/> &gt;0: Absolute column where 1 is the leftmost column<br/>&lt;=0: Subtract from brace indent<br/><br/>Default: 1</html>"
-Enabled=false
-EditorType=numeric
-CallName="indent_access_spec="
-MinVal=-16
-MaxVal=16
-ValueDefault=1
-
-[Indent Access Spec Body]
-Category=2
-Description="<html>Whether to indent the code after an access specifier by one level.<br/>If true, this option forces 'indent_access_spec=0'.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_access_spec_body=true|indent_access_spec_body=false
-ValueDefault=false
-
-[Indent Paren Nl]
-Category=2
-Description="<html>If an open parenthesis is followed by a newline, whether to indent the next<br/>line so that it lines up after the open parenthesis (not recommended).</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_paren_nl=true|indent_paren_nl=false
-ValueDefault=false
-
-[Indent Paren Close]
-Category=2
-Description="<html>How to indent a close parenthesis after a newline.<br/><br/>0: Indent to body level (default)<br/>1: Align under the open parenthesis<br/>2: Indent to the brace level</html>"
-Enabled=false
-EditorType=numeric
-CallName="indent_paren_close="
-MinVal=0
-MaxVal=2
-ValueDefault=0
-
-[Indent Paren After Func Def]
-Category=2
-Description="<html>Whether to indent the open parenthesis of a function definition,<br/>if the parenthesis is on its own line.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_paren_after_func_def=true|indent_paren_after_func_def=false
-ValueDefault=false
-
-[Indent Paren After Func Decl]
-Category=2
-Description="<html>Whether to indent the open parenthesis of a function declaration,<br/>if the parenthesis is on its own line.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_paren_after_func_decl=true|indent_paren_after_func_decl=false
-ValueDefault=false
-
-[Indent Paren After Func Call]
-Category=2
-Description="<html>Whether to indent the open parenthesis of a function call,<br/>if the parenthesis is on its own line.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_paren_after_func_call=true|indent_paren_after_func_call=false
-ValueDefault=false
-
-[Indent Comma Brace]
-Category=2
-Description="<html>Whether to indent a comma when inside a brace.<br/>If true, aligns under the open brace.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_comma_brace=true|indent_comma_brace=false
-ValueDefault=false
-
-[Indent Comma Paren]
-Category=2
-Description="<html>Whether to indent a comma when inside a parenthesis.<br/>If true, aligns under the open parenthesis.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_comma_paren=true|indent_comma_paren=false
-ValueDefault=false
-
-[Indent Bool Paren]
-Category=2
-Description="<html>Whether to indent a Boolean operator when inside a parenthesis.<br/>If true, aligns under the open parenthesis.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_bool_paren=true|indent_bool_paren=false
-ValueDefault=false
-
-[Indent Semicolon For Paren]
-Category=2
-Description="<html>Whether to indent a semicolon when inside a for parenthesis.<br/>If true, aligns under the open for parenthesis.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_semicolon_for_paren=true|indent_semicolon_for_paren=false
-ValueDefault=false
-
-[Indent First Bool Expr]
-Category=2
-Description="<html>Whether to align the first expression to following ones<br/>if indent_bool_paren=true.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_first_bool_expr=true|indent_first_bool_expr=false
-ValueDefault=false
-
-[Indent First For Expr]
-Category=2
-Description="<html>Whether to align the first expression to following ones<br/>if indent_semicolon_for_paren=true.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_first_for_expr=true|indent_first_for_expr=false
-ValueDefault=false
-
-[Indent Square Nl]
-Category=2
-Description="<html>If an open square is followed by a newline, whether to indent the next line<br/>so that it lines up after the open square (not recommended).</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_square_nl=true|indent_square_nl=false
-ValueDefault=false
-
-[Indent Preserve Sql]
-Category=2
-Description="<html>(ESQL/C) Whether to preserve the relative indent of 'EXEC SQL' bodies.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_preserve_sql=true|indent_preserve_sql=false
-ValueDefault=false
-
-[Indent Align Assign]
-Category=2
-Description="<html>Whether to align continued statements at the '='. If false or if the '=' is<br/>followed by a newline, the next line is indent one tab.<br/><br/>Default: true</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_align_assign=true|indent_align_assign=false
-ValueDefault=true
-
-[Indent Off After Assign]
-Category=2
-Description="<html>If true, the indentation of the chunks after a '=' sequence will be set at<br/>LHS token indentation column before '='.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_off_after_assign=true|indent_off_after_assign=false
-ValueDefault=false
-
-[Indent Align Paren]
-Category=2
-Description="<html>Whether to align continued statements at the '('. If false or the '(' is<br/>followed by a newline, the next line indent is one tab.<br/><br/>Default: true</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_align_paren=true|indent_align_paren=false
-ValueDefault=true
-
-[Indent Oc Inside Msg Sel]
-Category=2
-Description="<html>(OC) Whether to indent Objective-C code inside message selectors.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_oc_inside_msg_sel=true|indent_oc_inside_msg_sel=false
-ValueDefault=false
-
-[Indent Oc Block]
-Category=2
-Description="<html>(OC) Whether to indent Objective-C blocks at brace level instead of usual<br/>rules.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_oc_block=true|indent_oc_block=false
-ValueDefault=false
-
-[Indent Oc Block Msg]
-Category=2
-Description="<html>(OC) Indent for Objective-C blocks in a message relative to the parameter<br/>name.<br/><br/>=0: Use indent_oc_block rules<br/>&gt;0: Use specified number of spaces to indent</html>"
-Enabled=false
-EditorType=numeric
-CallName="indent_oc_block_msg="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Indent Oc Msg Colon]
-Category=2
-Description="<html>(OC) Minimum indent for subsequent parameters</html>"
-Enabled=false
-EditorType=numeric
-CallName="indent_oc_msg_colon="
-MinVal=0
-MaxVal=5000
-ValueDefault=0
-
-[Indent Oc Msg Prioritize First Colon]
-Category=2
-Description="<html>(OC) Whether to prioritize aligning with initial colon (and stripping spaces<br/>from lines, if necessary).<br/><br/>Default: true</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_oc_msg_prioritize_first_colon=true|indent_oc_msg_prioritize_first_colon=false
-ValueDefault=true
-
-[Indent Oc Block Msg Xcode Style]
-Category=2
-Description="<html>(OC) Whether to indent blocks the way that Xcode does by default<br/>(from the keyword if the parameter is on its own line; otherwise, from the<br/>previous indentation level). Requires indent_oc_block_msg=true.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_oc_block_msg_xcode_style=true|indent_oc_block_msg_xcode_style=false
-ValueDefault=false
-
-[Indent Oc Block Msg From Keyword]
-Category=2
-Description="<html>(OC) Whether to indent blocks from where the brace is, relative to a<br/>message keyword. Requires indent_oc_block_msg=true.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_oc_block_msg_from_keyword=true|indent_oc_block_msg_from_keyword=false
-ValueDefault=false
-
-[Indent Oc Block Msg From Colon]
-Category=2
-Description="<html>(OC) Whether to indent blocks from where the brace is, relative to a message<br/>colon. Requires indent_oc_block_msg=true.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_oc_block_msg_from_colon=true|indent_oc_block_msg_from_colon=false
-ValueDefault=false
-
-[Indent Oc Block Msg From Caret]
-Category=2
-Description="<html>(OC) Whether to indent blocks from where the block caret is.<br/>Requires indent_oc_block_msg=true.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_oc_block_msg_from_caret=true|indent_oc_block_msg_from_caret=false
-ValueDefault=false
-
-[Indent Oc Block Msg From Brace]
-Category=2
-Description="<html>(OC) Whether to indent blocks from where the brace caret is.<br/>Requires indent_oc_block_msg=true.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_oc_block_msg_from_brace=true|indent_oc_block_msg_from_brace=false
-ValueDefault=false
-
-[Indent Min Vbrace Open]
-Category=2
-Description="<html>When indenting after virtual brace open and newline add further spaces to<br/>reach this minimum indent.</html>"
-Enabled=false
-EditorType=numeric
-CallName="indent_min_vbrace_open="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Indent Vbrace Open On Tabstop]
-Category=2
-Description="<html>Whether to add further spaces after regular indent to reach next tabstop<br/>when indenting after virtual brace open and newline.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_vbrace_open_on_tabstop=true|indent_vbrace_open_on_tabstop=false
-ValueDefault=false
-
-[Indent Token After Brace]
-Category=2
-Description="<html>How to indent after a brace followed by another token (not a newline).<br/>true: indent all contained lines to match the token<br/>false: indent all contained lines to match the brace<br/><br/>Default: true</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_token_after_brace=true|indent_token_after_brace=false
-ValueDefault=true
-
-[Indent Cpp Lambda Body]
-Category=2
-Description="<html>Whether to indent the body of a C++11 lambda.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_cpp_lambda_body=true|indent_cpp_lambda_body=false
-ValueDefault=false
-
-[Indent Compound Literal Return]
-Category=2
-Description="<html>How to indent compound literals that are being returned.<br/>true: add both the indent from return &amp; the compound literal open brace<br/> (i.e. 2 indent levels)<br/>false: only indent 1 level, don't add the indent for the open brace, only<br/> add the indent for the return.<br/><br/>Default: true</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_compound_literal_return=true|indent_compound_literal_return=false
-ValueDefault=true
-
-[Indent Using Block]
-Category=2
-Description="<html>(C#) Whether to indent a 'using' block if no braces are used.<br/><br/>Default: true</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_using_block=true|indent_using_block=false
-ValueDefault=true
-
-[Indent Ternary Operator]
-Category=2
-Description="<html>How to indent the continuation of ternary operator.<br/><br/>0: Off (default)<br/>1: When the `if_false` is a continuation, indent it under `if_false`<br/>2: When the `:` is a continuation, indent it under `?`</html>"
-Enabled=false
-EditorType=numeric
-CallName="indent_ternary_operator="
-MinVal=0
-MaxVal=2
-ValueDefault=0
-
-[Indent Inside Ternary Operator]
-Category=2
-Description="<html>Whether to indent the statements inside ternary operator.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_inside_ternary_operator=true|indent_inside_ternary_operator=false
-ValueDefault=false
-
-[Indent Off After Return]
-Category=2
-Description="<html>If true, the indentation of the chunks after a `return` sequence will be set at return indentation column.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_off_after_return=true|indent_off_after_return=false
-ValueDefault=false
-
-[Indent Off After Return New]
-Category=2
-Description="<html>If true, the indentation of the chunks after a `return new` sequence will be set at return indentation column.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_off_after_return_new=true|indent_off_after_return_new=false
-ValueDefault=false
-
-[Indent Single After Return]
-Category=2
-Description="<html>If true, the tokens after return are indented with regular single indentation. By default (false) the indentation is after the return token.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_single_after_return=true|indent_single_after_return=false
-ValueDefault=false
-
-[Indent Ignore Asm Block]
-Category=2
-Description="<html>Whether to ignore indent and alignment for 'asm' blocks (i.e. assume they<br/>have their own indentation).</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_ignore_asm_block=true|indent_ignore_asm_block=false
-ValueDefault=false
-
-[Donot Indent Func Def Close Paren]
-Category=2
-Description="<html>Don't indent the close parenthesis of a function definition,<br/>if the parenthesis is on its own line.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=donot_indent_func_def_close_paren=true|donot_indent_func_def_close_paren=false
-ValueDefault=false
-
-[Nl Collapse Empty Body]
-Category=3
-Description="<html>Whether to collapse empty blocks between '{' and '}'.<br/>If true, overrides nl_inside_empty_func</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_collapse_empty_body=true|nl_collapse_empty_body=false
-ValueDefault=false
-
-[Nl Assign Leave One Liners]
-Category=3
-Description="<html>Don't split one-line braced assignments, as in 'foo_t f = { 1, 2 };'.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_assign_leave_one_liners=true|nl_assign_leave_one_liners=false
-ValueDefault=false
-
-[Nl Class Leave One Liners]
-Category=3
-Description="<html>Don't split one-line braced statements inside a 'class xx { }' body.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_class_leave_one_liners=true|nl_class_leave_one_liners=false
-ValueDefault=false
-
-[Nl Enum Leave One Liners]
-Category=3
-Description="<html>Don't split one-line enums, as in 'enum foo { BAR = 15 };'</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_enum_leave_one_liners=true|nl_enum_leave_one_liners=false
-ValueDefault=false
-
-[Nl Getset Leave One Liners]
-Category=3
-Description="<html>Don't split one-line get or set functions.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_getset_leave_one_liners=true|nl_getset_leave_one_liners=false
-ValueDefault=false
-
-[Nl Cs Property Leave One Liners]
-Category=3
-Description="<html>(C#) Don't split one-line property get or set functions.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_cs_property_leave_one_liners=true|nl_cs_property_leave_one_liners=false
-ValueDefault=false
-
-[Nl Func Leave One Liners]
-Category=3
-Description="<html>Don't split one-line function definitions, as in 'int foo() { return 0; }'.<br/>might modify nl_func_type_name</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_func_leave_one_liners=true|nl_func_leave_one_liners=false
-ValueDefault=false
-
-[Nl Cpp Lambda Leave One Liners]
-Category=3
-Description="<html>Don't split one-line C++11 lambdas, as in '[]() { return 0; }'.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_cpp_lambda_leave_one_liners=true|nl_cpp_lambda_leave_one_liners=false
-ValueDefault=false
-
-[Nl If Leave One Liners]
-Category=3
-Description="<html>Don't split one-line if/else statements, as in 'if(...) b++;'.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_if_leave_one_liners=true|nl_if_leave_one_liners=false
-ValueDefault=false
-
-[Nl While Leave One Liners]
-Category=3
-Description="<html>Don't split one-line while statements, as in 'while(...) b++;'.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_while_leave_one_liners=true|nl_while_leave_one_liners=false
-ValueDefault=false
-
-[Nl Do Leave One Liners]
-Category=3
-Description="<html>Don't split one-line do statements, as in 'do { b++; } while(...);'.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_do_leave_one_liners=true|nl_do_leave_one_liners=false
-ValueDefault=false
-
-[Nl For Leave One Liners]
-Category=3
-Description="<html>Don't split one-line for statements, as in 'for(...) b++;'.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_for_leave_one_liners=true|nl_for_leave_one_liners=false
-ValueDefault=false
-
-[Nl Oc Msg Leave One Liner]
-Category=3
-Description="<html>(OC) Don't split one-line Objective-C messages.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_oc_msg_leave_one_liner=true|nl_oc_msg_leave_one_liner=false
-ValueDefault=false
-
-[Nl Oc Mdef Brace]
-Category=3
-Description="<html>(OC) Add or remove newline between method declaration and '{'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_oc_mdef_brace=ignore|nl_oc_mdef_brace=add|nl_oc_mdef_brace=remove|nl_oc_mdef_brace=force|nl_oc_mdef_brace=not_defined
-ChoicesReadable="Ignore Nl Oc Mdef Brace|Add Nl Oc Mdef Brace|Remove Nl Oc Mdef Brace|Force Nl Oc Mdef Brace"
-ValueDefault=ignore
-
-[Nl Oc Block Brace]
-Category=3
-Description="<html>(OC) Add or remove newline between Objective-C block signature and '{'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_oc_block_brace=ignore|nl_oc_block_brace=add|nl_oc_block_brace=remove|nl_oc_block_brace=force|nl_oc_block_brace=not_defined
-ChoicesReadable="Ignore Nl Oc Block Brace|Add Nl Oc Block Brace|Remove Nl Oc Block Brace|Force Nl Oc Block Brace"
-ValueDefault=ignore
-
-[Nl Oc Before Interface]
-Category=3
-Description="<html>(OC) Add or remove blank line before '@interface' statement.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_oc_before_interface=ignore|nl_oc_before_interface=add|nl_oc_before_interface=remove|nl_oc_before_interface=force|nl_oc_before_interface=not_defined
-ChoicesReadable="Ignore Nl Oc Before Interface|Add Nl Oc Before Interface|Remove Nl Oc Before Interface|Force Nl Oc Before Interface"
-ValueDefault=ignore
-
-[Nl Oc Before Implementation]
-Category=3
-Description="<html>(OC) Add or remove blank line before '@implementation' statement.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_oc_before_implementation=ignore|nl_oc_before_implementation=add|nl_oc_before_implementation=remove|nl_oc_before_implementation=force|nl_oc_before_implementation=not_defined
-ChoicesReadable="Ignore Nl Oc Before Implementation|Add Nl Oc Before Implementation|Remove Nl Oc Before Implementation|Force Nl Oc Before Implementation"
-ValueDefault=ignore
-
-[Nl Oc Before End]
-Category=3
-Description="<html>(OC) Add or remove blank line before '@end' statement.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_oc_before_end=ignore|nl_oc_before_end=add|nl_oc_before_end=remove|nl_oc_before_end=force|nl_oc_before_end=not_defined
-ChoicesReadable="Ignore Nl Oc Before End|Add Nl Oc Before End|Remove Nl Oc Before End|Force Nl Oc Before End"
-ValueDefault=ignore
-
-[Nl Oc Interface Brace]
-Category=3
-Description="<html>(OC) Add or remove newline between '@interface' and '{'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_oc_interface_brace=ignore|nl_oc_interface_brace=add|nl_oc_interface_brace=remove|nl_oc_interface_brace=force|nl_oc_interface_brace=not_defined
-ChoicesReadable="Ignore Nl Oc Interface Brace|Add Nl Oc Interface Brace|Remove Nl Oc Interface Brace|Force Nl Oc Interface Brace"
-ValueDefault=ignore
-
-[Nl Oc Implementation Brace]
-Category=3
-Description="<html>(OC) Add or remove newline between '@implementation' and '{'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_oc_implementation_brace=ignore|nl_oc_implementation_brace=add|nl_oc_implementation_brace=remove|nl_oc_implementation_brace=force|nl_oc_implementation_brace=not_defined
-ChoicesReadable="Ignore Nl Oc Implementation Brace|Add Nl Oc Implementation Brace|Remove Nl Oc Implementation Brace|Force Nl Oc Implementation Brace"
-ValueDefault=ignore
-
-[Nl Start Of File]
-Category=3
-Description="<html>Add or remove newlines at the start of the file.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_start_of_file=ignore|nl_start_of_file=add|nl_start_of_file=remove|nl_start_of_file=force|nl_start_of_file=not_defined
-ChoicesReadable="Ignore Nl Start Of File|Add Nl Start Of File|Remove Nl Start Of File|Force Nl Start Of File"
-ValueDefault=ignore
-
-[Nl Start Of File Min]
-Category=3
-Description="<html>The minimum number of newlines at the start of the file (only used if<br/>nl_start_of_file is 'add' or 'force').</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_start_of_file_min="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl End Of File]
-Category=3
-Description="<html>Add or remove newline at the end of the file.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_end_of_file=ignore|nl_end_of_file=add|nl_end_of_file=remove|nl_end_of_file=force|nl_end_of_file=not_defined
-ChoicesReadable="Ignore Nl End Of File|Add Nl End Of File|Remove Nl End Of File|Force Nl End Of File"
-ValueDefault=ignore
-
-[Nl End Of File Min]
-Category=3
-Description="<html>The minimum number of newlines at the end of the file (only used if<br/>nl_end_of_file is 'add' or 'force').</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_end_of_file_min="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl Assign Brace]
-Category=3
-Description="<html>Add or remove newline between '=' and '{'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_assign_brace=ignore|nl_assign_brace=add|nl_assign_brace=remove|nl_assign_brace=force|nl_assign_brace=not_defined
-ChoicesReadable="Ignore Nl Assign Brace|Add Nl Assign Brace|Remove Nl Assign Brace|Force Nl Assign Brace"
-ValueDefault=ignore
-
-[Nl Assign Square]
-Category=3
-Description="<html>(D) Add or remove newline between '=' and '['.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_assign_square=ignore|nl_assign_square=add|nl_assign_square=remove|nl_assign_square=force|nl_assign_square=not_defined
-ChoicesReadable="Ignore Nl Assign Square|Add Nl Assign Square|Remove Nl Assign Square|Force Nl Assign Square"
-ValueDefault=ignore
-
-[Nl Tsquare Brace]
-Category=3
-Description="<html>Add or remove newline between '[]' and '{'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_tsquare_brace=ignore|nl_tsquare_brace=add|nl_tsquare_brace=remove|nl_tsquare_brace=force|nl_tsquare_brace=not_defined
-ChoicesReadable="Ignore Nl Tsquare Brace|Add Nl Tsquare Brace|Remove Nl Tsquare Brace|Force Nl Tsquare Brace"
-ValueDefault=ignore
-
-[Nl After Square Assign]
-Category=3
-Description="<html>(D) Add or remove newline after '= ['. Will also affect the newline before<br/>the ']'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_after_square_assign=ignore|nl_after_square_assign=add|nl_after_square_assign=remove|nl_after_square_assign=force|nl_after_square_assign=not_defined
-ChoicesReadable="Ignore Nl After Square Assign|Add Nl After Square Assign|Remove Nl After Square Assign|Force Nl After Square Assign"
-ValueDefault=ignore
-
-[Nl Fcall Brace]
-Category=3
-Description="<html>Add or remove newline between a function call's ')' and '{', as in<br/>'list_for_each(item, &amp;list) { }'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_fcall_brace=ignore|nl_fcall_brace=add|nl_fcall_brace=remove|nl_fcall_brace=force|nl_fcall_brace=not_defined
-ChoicesReadable="Ignore Nl Fcall Brace|Add Nl Fcall Brace|Remove Nl Fcall Brace|Force Nl Fcall Brace"
-ValueDefault=ignore
-
-[Nl Enum Brace]
-Category=3
-Description="<html>Add or remove newline between 'enum' and '{'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_enum_brace=ignore|nl_enum_brace=add|nl_enum_brace=remove|nl_enum_brace=force|nl_enum_brace=not_defined
-ChoicesReadable="Ignore Nl Enum Brace|Add Nl Enum Brace|Remove Nl Enum Brace|Force Nl Enum Brace"
-ValueDefault=ignore
-
-[Nl Enum Class]
-Category=3
-Description="<html>Add or remove newline between 'enum' and 'class'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_enum_class=ignore|nl_enum_class=add|nl_enum_class=remove|nl_enum_class=force|nl_enum_class=not_defined
-ChoicesReadable="Ignore Nl Enum Class|Add Nl Enum Class|Remove Nl Enum Class|Force Nl Enum Class"
-ValueDefault=ignore
-
-[Nl Enum Class Identifier]
-Category=3
-Description="<html>Add or remove newline between 'enum class' and the identifier.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_enum_class_identifier=ignore|nl_enum_class_identifier=add|nl_enum_class_identifier=remove|nl_enum_class_identifier=force|nl_enum_class_identifier=not_defined
-ChoicesReadable="Ignore Nl Enum Class Identifier|Add Nl Enum Class Identifier|Remove Nl Enum Class Identifier|Force Nl Enum Class Identifier"
-ValueDefault=ignore
-
-[Nl Enum Identifier Colon]
-Category=3
-Description="<html>Add or remove newline between 'enum class' type and ':'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_enum_identifier_colon=ignore|nl_enum_identifier_colon=add|nl_enum_identifier_colon=remove|nl_enum_identifier_colon=force|nl_enum_identifier_colon=not_defined
-ChoicesReadable="Ignore Nl Enum Identifier Colon|Add Nl Enum Identifier Colon|Remove Nl Enum Identifier Colon|Force Nl Enum Identifier Colon"
-ValueDefault=ignore
-
-[Nl Enum Colon Type]
-Category=3
-Description="<html>Add or remove newline between 'enum class identifier :' and type.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_enum_colon_type=ignore|nl_enum_colon_type=add|nl_enum_colon_type=remove|nl_enum_colon_type=force|nl_enum_colon_type=not_defined
-ChoicesReadable="Ignore Nl Enum Colon Type|Add Nl Enum Colon Type|Remove Nl Enum Colon Type|Force Nl Enum Colon Type"
-ValueDefault=ignore
-
-[Nl Struct Brace]
-Category=3
-Description="<html>Add or remove newline between 'struct and '{'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_struct_brace=ignore|nl_struct_brace=add|nl_struct_brace=remove|nl_struct_brace=force|nl_struct_brace=not_defined
-ChoicesReadable="Ignore Nl Struct Brace|Add Nl Struct Brace|Remove Nl Struct Brace|Force Nl Struct Brace"
-ValueDefault=ignore
-
-[Nl Union Brace]
-Category=3
-Description="<html>Add or remove newline between 'union' and '{'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_union_brace=ignore|nl_union_brace=add|nl_union_brace=remove|nl_union_brace=force|nl_union_brace=not_defined
-ChoicesReadable="Ignore Nl Union Brace|Add Nl Union Brace|Remove Nl Union Brace|Force Nl Union Brace"
-ValueDefault=ignore
-
-[Nl If Brace]
-Category=3
-Description="<html>Add or remove newline between 'if' and '{'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_if_brace=ignore|nl_if_brace=add|nl_if_brace=remove|nl_if_brace=force|nl_if_brace=not_defined
-ChoicesReadable="Ignore Nl If Brace|Add Nl If Brace|Remove Nl If Brace|Force Nl If Brace"
-ValueDefault=ignore
-
-[Nl Brace Else]
-Category=3
-Description="<html>Add or remove newline between '}' and 'else'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_brace_else=ignore|nl_brace_else=add|nl_brace_else=remove|nl_brace_else=force|nl_brace_else=not_defined
-ChoicesReadable="Ignore Nl Brace Else|Add Nl Brace Else|Remove Nl Brace Else|Force Nl Brace Else"
-ValueDefault=ignore
-
-[Nl Elseif Brace]
-Category=3
-Description="<html>Add or remove newline between 'else if' and '{'. If set to ignore,<br/>nl_if_brace is used instead.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_elseif_brace=ignore|nl_elseif_brace=add|nl_elseif_brace=remove|nl_elseif_brace=force|nl_elseif_brace=not_defined
-ChoicesReadable="Ignore Nl Elseif Brace|Add Nl Elseif Brace|Remove Nl Elseif Brace|Force Nl Elseif Brace"
-ValueDefault=ignore
-
-[Nl Else Brace]
-Category=3
-Description="<html>Add or remove newline between 'else' and '{'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_else_brace=ignore|nl_else_brace=add|nl_else_brace=remove|nl_else_brace=force|nl_else_brace=not_defined
-ChoicesReadable="Ignore Nl Else Brace|Add Nl Else Brace|Remove Nl Else Brace|Force Nl Else Brace"
-ValueDefault=ignore
-
-[Nl Else If]
-Category=3
-Description="<html>Add or remove newline between 'else' and 'if'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_else_if=ignore|nl_else_if=add|nl_else_if=remove|nl_else_if=force|nl_else_if=not_defined
-ChoicesReadable="Ignore Nl Else If|Add Nl Else If|Remove Nl Else If|Force Nl Else If"
-ValueDefault=ignore
-
-[Nl Before Opening Brace Func Class Def]
-Category=3
-Description="<html>Add or remove newline before '{' opening brace</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_before_opening_brace_func_class_def=ignore|nl_before_opening_brace_func_class_def=add|nl_before_opening_brace_func_class_def=remove|nl_before_opening_brace_func_class_def=force|nl_before_opening_brace_func_class_def=not_defined
-ChoicesReadable="Ignore Nl Before Opening Brace Func Class Def|Add Nl Before Opening Brace Func Class Def|Remove Nl Before Opening Brace Func Class Def|Force Nl Before Opening Brace Func Class Def"
-ValueDefault=ignore
-
-[Nl Before If Closing Paren]
-Category=3
-Description="<html>Add or remove newline before 'if'/'else if' closing parenthesis.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_before_if_closing_paren=ignore|nl_before_if_closing_paren=add|nl_before_if_closing_paren=remove|nl_before_if_closing_paren=force|nl_before_if_closing_paren=not_defined
-ChoicesReadable="Ignore Nl Before If Closing Paren|Add Nl Before If Closing Paren|Remove Nl Before If Closing Paren|Force Nl Before If Closing Paren"
-ValueDefault=ignore
-
-[Nl Brace Finally]
-Category=3
-Description="<html>Add or remove newline between '}' and 'finally'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_brace_finally=ignore|nl_brace_finally=add|nl_brace_finally=remove|nl_brace_finally=force|nl_brace_finally=not_defined
-ChoicesReadable="Ignore Nl Brace Finally|Add Nl Brace Finally|Remove Nl Brace Finally|Force Nl Brace Finally"
-ValueDefault=ignore
-
-[Nl Finally Brace]
-Category=3
-Description="<html>Add or remove newline between 'finally' and '{'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_finally_brace=ignore|nl_finally_brace=add|nl_finally_brace=remove|nl_finally_brace=force|nl_finally_brace=not_defined
-ChoicesReadable="Ignore Nl Finally Brace|Add Nl Finally Brace|Remove Nl Finally Brace|Force Nl Finally Brace"
-ValueDefault=ignore
-
-[Nl Try Brace]
-Category=3
-Description="<html>Add or remove newline between 'try' and '{'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_try_brace=ignore|nl_try_brace=add|nl_try_brace=remove|nl_try_brace=force|nl_try_brace=not_defined
-ChoicesReadable="Ignore Nl Try Brace|Add Nl Try Brace|Remove Nl Try Brace|Force Nl Try Brace"
-ValueDefault=ignore
-
-[Nl Getset Brace]
-Category=3
-Description="<html>Add or remove newline between get/set and '{'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_getset_brace=ignore|nl_getset_brace=add|nl_getset_brace=remove|nl_getset_brace=force|nl_getset_brace=not_defined
-ChoicesReadable="Ignore Nl Getset Brace|Add Nl Getset Brace|Remove Nl Getset Brace|Force Nl Getset Brace"
-ValueDefault=ignore
-
-[Nl For Brace]
-Category=3
-Description="<html>Add or remove newline between 'for' and '{'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_for_brace=ignore|nl_for_brace=add|nl_for_brace=remove|nl_for_brace=force|nl_for_brace=not_defined
-ChoicesReadable="Ignore Nl For Brace|Add Nl For Brace|Remove Nl For Brace|Force Nl For Brace"
-ValueDefault=ignore
-
-[Nl Catch Brace]
-Category=3
-Description="<html>Add or remove newline before the '{' of a 'catch' statement, as in<br/>'catch (decl) &lt;here&gt; {'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_catch_brace=ignore|nl_catch_brace=add|nl_catch_brace=remove|nl_catch_brace=force|nl_catch_brace=not_defined
-ChoicesReadable="Ignore Nl Catch Brace|Add Nl Catch Brace|Remove Nl Catch Brace|Force Nl Catch Brace"
-ValueDefault=ignore
-
-[Nl Oc Catch Brace]
-Category=3
-Description="<html>(OC) Add or remove newline before the '{' of a '@catch' statement, as in<br/>'@catch (decl) &lt;here&gt; {'. If set to ignore, nl_catch_brace is used.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_oc_catch_brace=ignore|nl_oc_catch_brace=add|nl_oc_catch_brace=remove|nl_oc_catch_brace=force|nl_oc_catch_brace=not_defined
-ChoicesReadable="Ignore Nl Oc Catch Brace|Add Nl Oc Catch Brace|Remove Nl Oc Catch Brace|Force Nl Oc Catch Brace"
-ValueDefault=ignore
-
-[Nl Brace Catch]
-Category=3
-Description="<html>Add or remove newline between '}' and 'catch'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_brace_catch=ignore|nl_brace_catch=add|nl_brace_catch=remove|nl_brace_catch=force|nl_brace_catch=not_defined
-ChoicesReadable="Ignore Nl Brace Catch|Add Nl Brace Catch|Remove Nl Brace Catch|Force Nl Brace Catch"
-ValueDefault=ignore
-
-[Nl Oc Brace Catch]
-Category=3
-Description="<html>(OC) Add or remove newline between '}' and '@catch'. If set to ignore,<br/>nl_brace_catch is used.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_oc_brace_catch=ignore|nl_oc_brace_catch=add|nl_oc_brace_catch=remove|nl_oc_brace_catch=force|nl_oc_brace_catch=not_defined
-ChoicesReadable="Ignore Nl Oc Brace Catch|Add Nl Oc Brace Catch|Remove Nl Oc Brace Catch|Force Nl Oc Brace Catch"
-ValueDefault=ignore
-
-[Nl Brace Square]
-Category=3
-Description="<html>Add or remove newline between '}' and ']'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_brace_square=ignore|nl_brace_square=add|nl_brace_square=remove|nl_brace_square=force|nl_brace_square=not_defined
-ChoicesReadable="Ignore Nl Brace Square|Add Nl Brace Square|Remove Nl Brace Square|Force Nl Brace Square"
-ValueDefault=ignore
-
-[Nl Brace Fparen]
-Category=3
-Description="<html>Add or remove newline between '}' and ')' in a function invocation.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_brace_fparen=ignore|nl_brace_fparen=add|nl_brace_fparen=remove|nl_brace_fparen=force|nl_brace_fparen=not_defined
-ChoicesReadable="Ignore Nl Brace Fparen|Add Nl Brace Fparen|Remove Nl Brace Fparen|Force Nl Brace Fparen"
-ValueDefault=ignore
-
-[Nl While Brace]
-Category=3
-Description="<html>Add or remove newline between 'while' and '{'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_while_brace=ignore|nl_while_brace=add|nl_while_brace=remove|nl_while_brace=force|nl_while_brace=not_defined
-ChoicesReadable="Ignore Nl While Brace|Add Nl While Brace|Remove Nl While Brace|Force Nl While Brace"
-ValueDefault=ignore
-
-[Nl Scope Brace]
-Category=3
-Description="<html>(D) Add or remove newline between 'scope (x)' and '{'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_scope_brace=ignore|nl_scope_brace=add|nl_scope_brace=remove|nl_scope_brace=force|nl_scope_brace=not_defined
-ChoicesReadable="Ignore Nl Scope Brace|Add Nl Scope Brace|Remove Nl Scope Brace|Force Nl Scope Brace"
-ValueDefault=ignore
-
-[Nl Unittest Brace]
-Category=3
-Description="<html>(D) Add or remove newline between 'unittest' and '{'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_unittest_brace=ignore|nl_unittest_brace=add|nl_unittest_brace=remove|nl_unittest_brace=force|nl_unittest_brace=not_defined
-ChoicesReadable="Ignore Nl Unittest Brace|Add Nl Unittest Brace|Remove Nl Unittest Brace|Force Nl Unittest Brace"
-ValueDefault=ignore
-
-[Nl Version Brace]
-Category=3
-Description="<html>(D) Add or remove newline between 'version (x)' and '{'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_version_brace=ignore|nl_version_brace=add|nl_version_brace=remove|nl_version_brace=force|nl_version_brace=not_defined
-ChoicesReadable="Ignore Nl Version Brace|Add Nl Version Brace|Remove Nl Version Brace|Force Nl Version Brace"
-ValueDefault=ignore
-
-[Nl Using Brace]
-Category=3
-Description="<html>(C#) Add or remove newline between 'using' and '{'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_using_brace=ignore|nl_using_brace=add|nl_using_brace=remove|nl_using_brace=force|nl_using_brace=not_defined
-ChoicesReadable="Ignore Nl Using Brace|Add Nl Using Brace|Remove Nl Using Brace|Force Nl Using Brace"
-ValueDefault=ignore
-
-[Nl Brace Brace]
-Category=3
-Description="<html>Add or remove newline between two open or close braces. Due to general<br/>newline/brace handling, REMOVE may not work.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_brace_brace=ignore|nl_brace_brace=add|nl_brace_brace=remove|nl_brace_brace=force|nl_brace_brace=not_defined
-ChoicesReadable="Ignore Nl Brace Brace|Add Nl Brace Brace|Remove Nl Brace Brace|Force Nl Brace Brace"
-ValueDefault=ignore
-
-[Nl Do Brace]
-Category=3
-Description="<html>Add or remove newline between 'do' and '{'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_do_brace=ignore|nl_do_brace=add|nl_do_brace=remove|nl_do_brace=force|nl_do_brace=not_defined
-ChoicesReadable="Ignore Nl Do Brace|Add Nl Do Brace|Remove Nl Do Brace|Force Nl Do Brace"
-ValueDefault=ignore
-
-[Nl Brace While]
-Category=3
-Description="<html>Add or remove newline between '}' and 'while' of 'do' statement.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_brace_while=ignore|nl_brace_while=add|nl_brace_while=remove|nl_brace_while=force|nl_brace_while=not_defined
-ChoicesReadable="Ignore Nl Brace While|Add Nl Brace While|Remove Nl Brace While|Force Nl Brace While"
-ValueDefault=ignore
-
-[Nl Switch Brace]
-Category=3
-Description="<html>Add or remove newline between 'switch' and '{'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_switch_brace=ignore|nl_switch_brace=add|nl_switch_brace=remove|nl_switch_brace=force|nl_switch_brace=not_defined
-ChoicesReadable="Ignore Nl Switch Brace|Add Nl Switch Brace|Remove Nl Switch Brace|Force Nl Switch Brace"
-ValueDefault=ignore
-
-[Nl Synchronized Brace]
-Category=3
-Description="<html>Add or remove newline between 'synchronized' and '{'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_synchronized_brace=ignore|nl_synchronized_brace=add|nl_synchronized_brace=remove|nl_synchronized_brace=force|nl_synchronized_brace=not_defined
-ChoicesReadable="Ignore Nl Synchronized Brace|Add Nl Synchronized Brace|Remove Nl Synchronized Brace|Force Nl Synchronized Brace"
-ValueDefault=ignore
-
-[Nl Multi Line Cond]
-Category=3
-Description="<html>Add a newline between ')' and '{' if the ')' is on a different line than the<br/>if/for/etc.<br/><br/>Overrides nl_for_brace, nl_if_brace, nl_switch_brace, nl_while_switch and<br/>nl_catch_brace.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_multi_line_cond=true|nl_multi_line_cond=false
-ValueDefault=false
-
-[Nl Multi Line Sparen Open]
-Category=3
-Description="<html>Add a newline after '(' if an if/for/while/switch condition spans multiple<br/>lines</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_multi_line_sparen_open=ignore|nl_multi_line_sparen_open=add|nl_multi_line_sparen_open=remove|nl_multi_line_sparen_open=force|nl_multi_line_sparen_open=not_defined
-ChoicesReadable="Ignore Nl Multi Line Sparen Open|Add Nl Multi Line Sparen Open|Remove Nl Multi Line Sparen Open|Force Nl Multi Line Sparen Open"
-ValueDefault=ignore
-
-[Nl Multi Line Sparen Close]
-Category=3
-Description="<html>Add a newline before ')' if an if/for/while/switch condition spans multiple<br/>lines. Overrides nl_before_if_closing_paren if both are specified.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_multi_line_sparen_close=ignore|nl_multi_line_sparen_close=add|nl_multi_line_sparen_close=remove|nl_multi_line_sparen_close=force|nl_multi_line_sparen_close=not_defined
-ChoicesReadable="Ignore Nl Multi Line Sparen Close|Add Nl Multi Line Sparen Close|Remove Nl Multi Line Sparen Close|Force Nl Multi Line Sparen Close"
-ValueDefault=ignore
-
-[Nl Multi Line Define]
-Category=3
-Description="<html>Force a newline in a define after the macro name for multi-line defines.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_multi_line_define=true|nl_multi_line_define=false
-ValueDefault=false
-
-[Nl Before Case]
-Category=3
-Description="<html>Whether to add a newline before 'case', and a blank line before a 'case'<br/>statement that follows a ';' or '}'.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_before_case=true|nl_before_case=false
-ValueDefault=false
-
-[Nl After Case]
-Category=3
-Description="<html>Whether to add a newline after a 'case' statement.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_after_case=true|nl_after_case=false
-ValueDefault=false
-
-[Nl Case Colon Brace]
-Category=3
-Description="<html>Add or remove newline between a case ':' and '{'.<br/><br/>Overrides nl_after_case.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_case_colon_brace=ignore|nl_case_colon_brace=add|nl_case_colon_brace=remove|nl_case_colon_brace=force|nl_case_colon_brace=not_defined
-ChoicesReadable="Ignore Nl Case Colon Brace|Add Nl Case Colon Brace|Remove Nl Case Colon Brace|Force Nl Case Colon Brace"
-ValueDefault=ignore
-
-[Nl Before Throw]
-Category=3
-Description="<html>Add or remove newline between ')' and 'throw'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_before_throw=ignore|nl_before_throw=add|nl_before_throw=remove|nl_before_throw=force|nl_before_throw=not_defined
-ChoicesReadable="Ignore Nl Before Throw|Add Nl Before Throw|Remove Nl Before Throw|Force Nl Before Throw"
-ValueDefault=ignore
-
-[Nl Namespace Brace]
-Category=3
-Description="<html>Add or remove newline between 'namespace' and '{'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_namespace_brace=ignore|nl_namespace_brace=add|nl_namespace_brace=remove|nl_namespace_brace=force|nl_namespace_brace=not_defined
-ChoicesReadable="Ignore Nl Namespace Brace|Add Nl Namespace Brace|Remove Nl Namespace Brace|Force Nl Namespace Brace"
-ValueDefault=ignore
-
-[Nl Template Class]
-Category=3
-Description="<html>Add or remove newline after 'template&lt;...&gt;' of a template class.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_template_class=ignore|nl_template_class=add|nl_template_class=remove|nl_template_class=force|nl_template_class=not_defined
-ChoicesReadable="Ignore Nl Template Class|Add Nl Template Class|Remove Nl Template Class|Force Nl Template Class"
-ValueDefault=ignore
-
-[Nl Template Class Decl]
-Category=3
-Description="<html>Add or remove newline after 'template&lt;...&gt;' of a template class declaration.<br/><br/>Overrides nl_template_class.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_template_class_decl=ignore|nl_template_class_decl=add|nl_template_class_decl=remove|nl_template_class_decl=force|nl_template_class_decl=not_defined
-ChoicesReadable="Ignore Nl Template Class Decl|Add Nl Template Class Decl|Remove Nl Template Class Decl|Force Nl Template Class Decl"
-ValueDefault=ignore
-
-[Nl Template Class Decl Special]
-Category=3
-Description="<html>Add or remove newline after 'template&lt;&gt;' of a specialized class declaration.<br/><br/>Overrides nl_template_class_decl.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_template_class_decl_special=ignore|nl_template_class_decl_special=add|nl_template_class_decl_special=remove|nl_template_class_decl_special=force|nl_template_class_decl_special=not_defined
-ChoicesReadable="Ignore Nl Template Class Decl Special|Add Nl Template Class Decl Special|Remove Nl Template Class Decl Special|Force Nl Template Class Decl Special"
-ValueDefault=ignore
-
-[Nl Template Class Def]
-Category=3
-Description="<html>Add or remove newline after 'template&lt;...&gt;' of a template class definition.<br/><br/>Overrides nl_template_class.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_template_class_def=ignore|nl_template_class_def=add|nl_template_class_def=remove|nl_template_class_def=force|nl_template_class_def=not_defined
-ChoicesReadable="Ignore Nl Template Class Def|Add Nl Template Class Def|Remove Nl Template Class Def|Force Nl Template Class Def"
-ValueDefault=ignore
-
-[Nl Template Class Def Special]
-Category=3
-Description="<html>Add or remove newline after 'template&lt;&gt;' of a specialized class definition.<br/><br/>Overrides nl_template_class_def.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_template_class_def_special=ignore|nl_template_class_def_special=add|nl_template_class_def_special=remove|nl_template_class_def_special=force|nl_template_class_def_special=not_defined
-ChoicesReadable="Ignore Nl Template Class Def Special|Add Nl Template Class Def Special|Remove Nl Template Class Def Special|Force Nl Template Class Def Special"
-ValueDefault=ignore
-
-[Nl Template Func]
-Category=3
-Description="<html>Add or remove newline after 'template&lt;...&gt;' of a template function.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_template_func=ignore|nl_template_func=add|nl_template_func=remove|nl_template_func=force|nl_template_func=not_defined
-ChoicesReadable="Ignore Nl Template Func|Add Nl Template Func|Remove Nl Template Func|Force Nl Template Func"
-ValueDefault=ignore
-
-[Nl Template Func Decl]
-Category=3
-Description="<html>Add or remove newline after 'template&lt;...&gt;' of a template function<br/>declaration.<br/><br/>Overrides nl_template_func.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_template_func_decl=ignore|nl_template_func_decl=add|nl_template_func_decl=remove|nl_template_func_decl=force|nl_template_func_decl=not_defined
-ChoicesReadable="Ignore Nl Template Func Decl|Add Nl Template Func Decl|Remove Nl Template Func Decl|Force Nl Template Func Decl"
-ValueDefault=ignore
-
-[Nl Template Func Decl Special]
-Category=3
-Description="<html>Add or remove newline after 'template&lt;&gt;' of a specialized function<br/>declaration.<br/><br/>Overrides nl_template_func_decl.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_template_func_decl_special=ignore|nl_template_func_decl_special=add|nl_template_func_decl_special=remove|nl_template_func_decl_special=force|nl_template_func_decl_special=not_defined
-ChoicesReadable="Ignore Nl Template Func Decl Special|Add Nl Template Func Decl Special|Remove Nl Template Func Decl Special|Force Nl Template Func Decl Special"
-ValueDefault=ignore
-
-[Nl Template Func Def]
-Category=3
-Description="<html>Add or remove newline after 'template&lt;...&gt;' of a template function<br/>definition.<br/><br/>Overrides nl_template_func.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_template_func_def=ignore|nl_template_func_def=add|nl_template_func_def=remove|nl_template_func_def=force|nl_template_func_def=not_defined
-ChoicesReadable="Ignore Nl Template Func Def|Add Nl Template Func Def|Remove Nl Template Func Def|Force Nl Template Func Def"
-ValueDefault=ignore
-
-[Nl Template Func Def Special]
-Category=3
-Description="<html>Add or remove newline after 'template&lt;&gt;' of a specialized function<br/>definition.<br/><br/>Overrides nl_template_func_def.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_template_func_def_special=ignore|nl_template_func_def_special=add|nl_template_func_def_special=remove|nl_template_func_def_special=force|nl_template_func_def_special=not_defined
-ChoicesReadable="Ignore Nl Template Func Def Special|Add Nl Template Func Def Special|Remove Nl Template Func Def Special|Force Nl Template Func Def Special"
-ValueDefault=ignore
-
-[Nl Template Var]
-Category=3
-Description="<html>Add or remove newline after 'template&lt;...&gt;' of a template variable.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_template_var=ignore|nl_template_var=add|nl_template_var=remove|nl_template_var=force|nl_template_var=not_defined
-ChoicesReadable="Ignore Nl Template Var|Add Nl Template Var|Remove Nl Template Var|Force Nl Template Var"
-ValueDefault=ignore
-
-[Nl Template Using]
-Category=3
-Description="<html>Add or remove newline between 'template&lt;...&gt;' and 'using' of a templated<br/>type alias.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_template_using=ignore|nl_template_using=add|nl_template_using=remove|nl_template_using=force|nl_template_using=not_defined
-ChoicesReadable="Ignore Nl Template Using|Add Nl Template Using|Remove Nl Template Using|Force Nl Template Using"
-ValueDefault=ignore
-
-[Nl Class Brace]
-Category=3
-Description="<html>Add or remove newline between 'class' and '{'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_class_brace=ignore|nl_class_brace=add|nl_class_brace=remove|nl_class_brace=force|nl_class_brace=not_defined
-ChoicesReadable="Ignore Nl Class Brace|Add Nl Class Brace|Remove Nl Class Brace|Force Nl Class Brace"
-ValueDefault=ignore
-
-[Nl Class Init Args]
-Category=3
-Description="<html>Add or remove newline before or after (depending on pos_class_comma,<br/>may not be IGNORE) each',' in the base class list.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_class_init_args=ignore|nl_class_init_args=add|nl_class_init_args=remove|nl_class_init_args=force|nl_class_init_args=not_defined
-ChoicesReadable="Ignore Nl Class Init Args|Add Nl Class Init Args|Remove Nl Class Init Args|Force Nl Class Init Args"
-ValueDefault=ignore
-
-[Nl Constr Init Args]
-Category=3
-Description="<html>Add or remove newline after each ',' in the constructor member<br/>initialization. Related to nl_constr_colon, pos_constr_colon and<br/>pos_constr_comma.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_constr_init_args=ignore|nl_constr_init_args=add|nl_constr_init_args=remove|nl_constr_init_args=force|nl_constr_init_args=not_defined
-ChoicesReadable="Ignore Nl Constr Init Args|Add Nl Constr Init Args|Remove Nl Constr Init Args|Force Nl Constr Init Args"
-ValueDefault=ignore
-
-[Nl Enum Own Lines]
-Category=3
-Description="<html>Add or remove newline before first element, after comma, and after last<br/>element, in 'enum'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_enum_own_lines=ignore|nl_enum_own_lines=add|nl_enum_own_lines=remove|nl_enum_own_lines=force|nl_enum_own_lines=not_defined
-ChoicesReadable="Ignore Nl Enum Own Lines|Add Nl Enum Own Lines|Remove Nl Enum Own Lines|Force Nl Enum Own Lines"
-ValueDefault=ignore
-
-[Nl Func Type Name]
-Category=3
-Description="<html>Add or remove newline between return type and function name in a function<br/>definition.<br/>might be modified by nl_func_leave_one_liners</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_func_type_name=ignore|nl_func_type_name=add|nl_func_type_name=remove|nl_func_type_name=force|nl_func_type_name=not_defined
-ChoicesReadable="Ignore Nl Func Type Name|Add Nl Func Type Name|Remove Nl Func Type Name|Force Nl Func Type Name"
-ValueDefault=ignore
-
-[Nl Func Type Name Class]
-Category=3
-Description="<html>Add or remove newline between return type and function name inside a class<br/>definition. If set to ignore, nl_func_type_name or nl_func_proto_type_name<br/>is used instead.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_func_type_name_class=ignore|nl_func_type_name_class=add|nl_func_type_name_class=remove|nl_func_type_name_class=force|nl_func_type_name_class=not_defined
-ChoicesReadable="Ignore Nl Func Type Name Class|Add Nl Func Type Name Class|Remove Nl Func Type Name Class|Force Nl Func Type Name Class"
-ValueDefault=ignore
-
-[Nl Func Class Scope]
-Category=3
-Description="<html>Add or remove newline between class specification and '::'<br/>in 'void A::f() { }'. Only appears in separate member implementation (does<br/>not appear with in-line implementation).</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_func_class_scope=ignore|nl_func_class_scope=add|nl_func_class_scope=remove|nl_func_class_scope=force|nl_func_class_scope=not_defined
-ChoicesReadable="Ignore Nl Func Class Scope|Add Nl Func Class Scope|Remove Nl Func Class Scope|Force Nl Func Class Scope"
-ValueDefault=ignore
-
-[Nl Func Scope Name]
-Category=3
-Description="<html>Add or remove newline between function scope and name, as in<br/>'void A :: &lt;here&gt; f() { }'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_func_scope_name=ignore|nl_func_scope_name=add|nl_func_scope_name=remove|nl_func_scope_name=force|nl_func_scope_name=not_defined
-ChoicesReadable="Ignore Nl Func Scope Name|Add Nl Func Scope Name|Remove Nl Func Scope Name|Force Nl Func Scope Name"
-ValueDefault=ignore
-
-[Nl Func Proto Type Name]
-Category=3
-Description="<html>Add or remove newline between return type and function name in a prototype.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_func_proto_type_name=ignore|nl_func_proto_type_name=add|nl_func_proto_type_name=remove|nl_func_proto_type_name=force|nl_func_proto_type_name=not_defined
-ChoicesReadable="Ignore Nl Func Proto Type Name|Add Nl Func Proto Type Name|Remove Nl Func Proto Type Name|Force Nl Func Proto Type Name"
-ValueDefault=ignore
-
-[Nl Func Paren]
-Category=3
-Description="<html>Add or remove newline between a function name and the opening '(' in the<br/>declaration.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_func_paren=ignore|nl_func_paren=add|nl_func_paren=remove|nl_func_paren=force|nl_func_paren=not_defined
-ChoicesReadable="Ignore Nl Func Paren|Add Nl Func Paren|Remove Nl Func Paren|Force Nl Func Paren"
-ValueDefault=ignore
-
-[Nl Func Paren Empty]
-Category=3
-Description="<html>Overrides nl_func_paren for functions with no parameters.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_func_paren_empty=ignore|nl_func_paren_empty=add|nl_func_paren_empty=remove|nl_func_paren_empty=force|nl_func_paren_empty=not_defined
-ChoicesReadable="Ignore Nl Func Paren Empty|Add Nl Func Paren Empty|Remove Nl Func Paren Empty|Force Nl Func Paren Empty"
-ValueDefault=ignore
-
-[Nl Func Def Paren]
-Category=3
-Description="<html>Add or remove newline between a function name and the opening '(' in the<br/>definition.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_func_def_paren=ignore|nl_func_def_paren=add|nl_func_def_paren=remove|nl_func_def_paren=force|nl_func_def_paren=not_defined
-ChoicesReadable="Ignore Nl Func Def Paren|Add Nl Func Def Paren|Remove Nl Func Def Paren|Force Nl Func Def Paren"
-ValueDefault=ignore
-
-[Nl Func Def Paren Empty]
-Category=3
-Description="<html>Overrides nl_func_def_paren for functions with no parameters.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_func_def_paren_empty=ignore|nl_func_def_paren_empty=add|nl_func_def_paren_empty=remove|nl_func_def_paren_empty=force|nl_func_def_paren_empty=not_defined
-ChoicesReadable="Ignore Nl Func Def Paren Empty|Add Nl Func Def Paren Empty|Remove Nl Func Def Paren Empty|Force Nl Func Def Paren Empty"
-ValueDefault=ignore
-
-[Nl Func Call Paren]
-Category=3
-Description="<html>Add or remove newline between a function name and the opening '(' in the<br/>call.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_func_call_paren=ignore|nl_func_call_paren=add|nl_func_call_paren=remove|nl_func_call_paren=force|nl_func_call_paren=not_defined
-ChoicesReadable="Ignore Nl Func Call Paren|Add Nl Func Call Paren|Remove Nl Func Call Paren|Force Nl Func Call Paren"
-ValueDefault=ignore
-
-[Nl Func Call Paren Empty]
-Category=3
-Description="<html>Overrides nl_func_call_paren for functions with no parameters.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_func_call_paren_empty=ignore|nl_func_call_paren_empty=add|nl_func_call_paren_empty=remove|nl_func_call_paren_empty=force|nl_func_call_paren_empty=not_defined
-ChoicesReadable="Ignore Nl Func Call Paren Empty|Add Nl Func Call Paren Empty|Remove Nl Func Call Paren Empty|Force Nl Func Call Paren Empty"
-ValueDefault=ignore
-
-[Nl Func Decl Start]
-Category=3
-Description="<html>Add or remove newline after '(' in a function declaration.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_func_decl_start=ignore|nl_func_decl_start=add|nl_func_decl_start=remove|nl_func_decl_start=force|nl_func_decl_start=not_defined
-ChoicesReadable="Ignore Nl Func Decl Start|Add Nl Func Decl Start|Remove Nl Func Decl Start|Force Nl Func Decl Start"
-ValueDefault=ignore
-
-[Nl Func Def Start]
-Category=3
-Description="<html>Add or remove newline after '(' in a function definition.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_func_def_start=ignore|nl_func_def_start=add|nl_func_def_start=remove|nl_func_def_start=force|nl_func_def_start=not_defined
-ChoicesReadable="Ignore Nl Func Def Start|Add Nl Func Def Start|Remove Nl Func Def Start|Force Nl Func Def Start"
-ValueDefault=ignore
-
-[Nl Func Decl Start Single]
-Category=3
-Description="<html>Overrides nl_func_decl_start when there is only one parameter.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_func_decl_start_single=ignore|nl_func_decl_start_single=add|nl_func_decl_start_single=remove|nl_func_decl_start_single=force|nl_func_decl_start_single=not_defined
-ChoicesReadable="Ignore Nl Func Decl Start Single|Add Nl Func Decl Start Single|Remove Nl Func Decl Start Single|Force Nl Func Decl Start Single"
-ValueDefault=ignore
-
-[Nl Func Def Start Single]
-Category=3
-Description="<html>Overrides nl_func_def_start when there is only one parameter.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_func_def_start_single=ignore|nl_func_def_start_single=add|nl_func_def_start_single=remove|nl_func_def_start_single=force|nl_func_def_start_single=not_defined
-ChoicesReadable="Ignore Nl Func Def Start Single|Add Nl Func Def Start Single|Remove Nl Func Def Start Single|Force Nl Func Def Start Single"
-ValueDefault=ignore
-
-[Nl Func Decl Start Multi Line]
-Category=3
-Description="<html>Whether to add a newline after '(' in a function declaration if '(' and ')'<br/>are in different lines. If false, nl_func_decl_start is used instead.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_func_decl_start_multi_line=true|nl_func_decl_start_multi_line=false
-ValueDefault=false
-
-[Nl Func Def Start Multi Line]
-Category=3
-Description="<html>Whether to add a newline after '(' in a function definition if '(' and ')'<br/>are in different lines. If false, nl_func_def_start is used instead.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_func_def_start_multi_line=true|nl_func_def_start_multi_line=false
-ValueDefault=false
-
-[Nl Func Decl Args]
-Category=3
-Description="<html>Add or remove newline after each ',' in a function declaration.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_func_decl_args=ignore|nl_func_decl_args=add|nl_func_decl_args=remove|nl_func_decl_args=force|nl_func_decl_args=not_defined
-ChoicesReadable="Ignore Nl Func Decl Args|Add Nl Func Decl Args|Remove Nl Func Decl Args|Force Nl Func Decl Args"
-ValueDefault=ignore
-
-[Nl Func Def Args]
-Category=3
-Description="<html>Add or remove newline after each ',' in a function definition.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_func_def_args=ignore|nl_func_def_args=add|nl_func_def_args=remove|nl_func_def_args=force|nl_func_def_args=not_defined
-ChoicesReadable="Ignore Nl Func Def Args|Add Nl Func Def Args|Remove Nl Func Def Args|Force Nl Func Def Args"
-ValueDefault=ignore
-
-[Nl Func Call Args]
-Category=3
-Description="<html>Add or remove newline after each ',' in a function call.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_func_call_args=ignore|nl_func_call_args=add|nl_func_call_args=remove|nl_func_call_args=force|nl_func_call_args=not_defined
-ChoicesReadable="Ignore Nl Func Call Args|Add Nl Func Call Args|Remove Nl Func Call Args|Force Nl Func Call Args"
-ValueDefault=ignore
-
-[Nl Func Decl Args Multi Line]
-Category=3
-Description="<html>Whether to add a newline after each ',' in a function declaration if '('<br/>and ')' are in different lines. If false, nl_func_decl_args is used instead.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_func_decl_args_multi_line=true|nl_func_decl_args_multi_line=false
-ValueDefault=false
-
-[Nl Func Def Args Multi Line]
-Category=3
-Description="<html>Whether to add a newline after each ',' in a function definition if '('<br/>and ')' are in different lines. If false, nl_func_def_args is used instead.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_func_def_args_multi_line=true|nl_func_def_args_multi_line=false
-ValueDefault=false
-
-[Nl Func Decl End]
-Category=3
-Description="<html>Add or remove newline before the ')' in a function declaration.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_func_decl_end=ignore|nl_func_decl_end=add|nl_func_decl_end=remove|nl_func_decl_end=force|nl_func_decl_end=not_defined
-ChoicesReadable="Ignore Nl Func Decl End|Add Nl Func Decl End|Remove Nl Func Decl End|Force Nl Func Decl End"
-ValueDefault=ignore
-
-[Nl Func Def End]
-Category=3
-Description="<html>Add or remove newline before the ')' in a function definition.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_func_def_end=ignore|nl_func_def_end=add|nl_func_def_end=remove|nl_func_def_end=force|nl_func_def_end=not_defined
-ChoicesReadable="Ignore Nl Func Def End|Add Nl Func Def End|Remove Nl Func Def End|Force Nl Func Def End"
-ValueDefault=ignore
-
-[Nl Func Decl End Single]
-Category=3
-Description="<html>Overrides nl_func_decl_end when there is only one parameter.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_func_decl_end_single=ignore|nl_func_decl_end_single=add|nl_func_decl_end_single=remove|nl_func_decl_end_single=force|nl_func_decl_end_single=not_defined
-ChoicesReadable="Ignore Nl Func Decl End Single|Add Nl Func Decl End Single|Remove Nl Func Decl End Single|Force Nl Func Decl End Single"
-ValueDefault=ignore
-
-[Nl Func Def End Single]
-Category=3
-Description="<html>Overrides nl_func_def_end when there is only one parameter.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_func_def_end_single=ignore|nl_func_def_end_single=add|nl_func_def_end_single=remove|nl_func_def_end_single=force|nl_func_def_end_single=not_defined
-ChoicesReadable="Ignore Nl Func Def End Single|Add Nl Func Def End Single|Remove Nl Func Def End Single|Force Nl Func Def End Single"
-ValueDefault=ignore
-
-[Nl Func Decl End Multi Line]
-Category=3
-Description="<html>Whether to add a newline before ')' in a function declaration if '(' and ')'<br/>are in different lines. If false, nl_func_decl_end is used instead.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_func_decl_end_multi_line=true|nl_func_decl_end_multi_line=false
-ValueDefault=false
-
-[Nl Func Def End Multi Line]
-Category=3
-Description="<html>Whether to add a newline before ')' in a function definition if '(' and ')'<br/>are in different lines. If false, nl_func_def_end is used instead.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_func_def_end_multi_line=true|nl_func_def_end_multi_line=false
-ValueDefault=false
-
-[Nl Func Decl Empty]
-Category=3
-Description="<html>Add or remove newline between '()' in a function declaration.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_func_decl_empty=ignore|nl_func_decl_empty=add|nl_func_decl_empty=remove|nl_func_decl_empty=force|nl_func_decl_empty=not_defined
-ChoicesReadable="Ignore Nl Func Decl Empty|Add Nl Func Decl Empty|Remove Nl Func Decl Empty|Force Nl Func Decl Empty"
-ValueDefault=ignore
-
-[Nl Func Def Empty]
-Category=3
-Description="<html>Add or remove newline between '()' in a function definition.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_func_def_empty=ignore|nl_func_def_empty=add|nl_func_def_empty=remove|nl_func_def_empty=force|nl_func_def_empty=not_defined
-ChoicesReadable="Ignore Nl Func Def Empty|Add Nl Func Def Empty|Remove Nl Func Def Empty|Force Nl Func Def Empty"
-ValueDefault=ignore
-
-[Nl Func Call Empty]
-Category=3
-Description="<html>Add or remove newline between '()' in a function call.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_func_call_empty=ignore|nl_func_call_empty=add|nl_func_call_empty=remove|nl_func_call_empty=force|nl_func_call_empty=not_defined
-ChoicesReadable="Ignore Nl Func Call Empty|Add Nl Func Call Empty|Remove Nl Func Call Empty|Force Nl Func Call Empty"
-ValueDefault=ignore
-
-[Nl Func Call Start]
-Category=3
-Description="<html>Whether to add a newline after '(' in a function call,<br/>has preference over nl_func_call_start_multi_line.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_func_call_start=ignore|nl_func_call_start=add|nl_func_call_start=remove|nl_func_call_start=force|nl_func_call_start=not_defined
-ChoicesReadable="Ignore Nl Func Call Start|Add Nl Func Call Start|Remove Nl Func Call Start|Force Nl Func Call Start"
-ValueDefault=ignore
-
-[Nl Func Call End]
-Category=3
-Description="<html>Whether to add a newline before ')' in a function call.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_func_call_end=ignore|nl_func_call_end=add|nl_func_call_end=remove|nl_func_call_end=force|nl_func_call_end=not_defined
-ChoicesReadable="Ignore Nl Func Call End|Add Nl Func Call End|Remove Nl Func Call End|Force Nl Func Call End"
-ValueDefault=ignore
-
-[Nl Func Call Start Multi Line]
-Category=3
-Description="<html>Whether to add a newline after '(' in a function call if '(' and ')' are in<br/>different lines.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_func_call_start_multi_line=true|nl_func_call_start_multi_line=false
-ValueDefault=false
-
-[Nl Func Call Args Multi Line]
-Category=3
-Description="<html>Whether to add a newline after each ',' in a function call if '(' and ')'<br/>are in different lines.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_func_call_args_multi_line=true|nl_func_call_args_multi_line=false
-ValueDefault=false
-
-[Nl Func Call End Multi Line]
-Category=3
-Description="<html>Whether to add a newline before ')' in a function call if '(' and ')' are in<br/>different lines.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_func_call_end_multi_line=true|nl_func_call_end_multi_line=false
-ValueDefault=false
-
-[Nl Func Call Args Multi Line Ignore Closures]
-Category=3
-Description="<html>Whether to respect nl_func_call_XXX option in case of closure args.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_func_call_args_multi_line_ignore_closures=true|nl_func_call_args_multi_line_ignore_closures=false
-ValueDefault=false
-
-[Nl Template Start]
-Category=3
-Description="<html>Whether to add a newline after '&lt;' of a template parameter list.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_template_start=true|nl_template_start=false
-ValueDefault=false
-
-[Nl Template Args]
-Category=3
-Description="<html>Whether to add a newline after each ',' in a template parameter list.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_template_args=true|nl_template_args=false
-ValueDefault=false
-
-[Nl Template End]
-Category=3
-Description="<html>Whether to add a newline before '&gt;' of a template parameter list.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_template_end=true|nl_template_end=false
-ValueDefault=false
-
-[Nl Oc Msg Args]
-Category=3
-Description="<html>(OC) Whether to put each Objective-C message parameter on a separate line.<br/>See nl_oc_msg_leave_one_liner.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_oc_msg_args=true|nl_oc_msg_args=false
-ValueDefault=false
-
-[Nl Fdef Brace]
-Category=3
-Description="<html>Add or remove newline between function signature and '{'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_fdef_brace=ignore|nl_fdef_brace=add|nl_fdef_brace=remove|nl_fdef_brace=force|nl_fdef_brace=not_defined
-ChoicesReadable="Ignore Nl Fdef Brace|Add Nl Fdef Brace|Remove Nl Fdef Brace|Force Nl Fdef Brace"
-ValueDefault=ignore
-
-[Nl Fdef Brace Cond]
-Category=3
-Description="<html>Add or remove newline between function signature and '{',<br/>if signature ends with ')'. Overrides nl_fdef_brace.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_fdef_brace_cond=ignore|nl_fdef_brace_cond=add|nl_fdef_brace_cond=remove|nl_fdef_brace_cond=force|nl_fdef_brace_cond=not_defined
-ChoicesReadable="Ignore Nl Fdef Brace Cond|Add Nl Fdef Brace Cond|Remove Nl Fdef Brace Cond|Force Nl Fdef Brace Cond"
-ValueDefault=ignore
-
-[Nl Cpp Ldef Brace]
-Category=3
-Description="<html>Add or remove newline between C++11 lambda signature and '{'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_cpp_ldef_brace=ignore|nl_cpp_ldef_brace=add|nl_cpp_ldef_brace=remove|nl_cpp_ldef_brace=force|nl_cpp_ldef_brace=not_defined
-ChoicesReadable="Ignore Nl Cpp Ldef Brace|Add Nl Cpp Ldef Brace|Remove Nl Cpp Ldef Brace|Force Nl Cpp Ldef Brace"
-ValueDefault=ignore
-
-[Nl Return Expr]
-Category=3
-Description="<html>Add or remove newline between 'return' and the return expression.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_return_expr=ignore|nl_return_expr=add|nl_return_expr=remove|nl_return_expr=force|nl_return_expr=not_defined
-ChoicesReadable="Ignore Nl Return Expr|Add Nl Return Expr|Remove Nl Return Expr|Force Nl Return Expr"
-ValueDefault=ignore
-
-[Nl After Semicolon]
-Category=3
-Description="<html>Whether to add a newline after semicolons, except in 'for' statements.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_after_semicolon=true|nl_after_semicolon=false
-ValueDefault=false
-
-[Nl Paren Dbrace Open]
-Category=3
-Description="<html>(Java) Add or remove newline between the ')' and '{{' of the double brace<br/>initializer.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_paren_dbrace_open=ignore|nl_paren_dbrace_open=add|nl_paren_dbrace_open=remove|nl_paren_dbrace_open=force|nl_paren_dbrace_open=not_defined
-ChoicesReadable="Ignore Nl Paren Dbrace Open|Add Nl Paren Dbrace Open|Remove Nl Paren Dbrace Open|Force Nl Paren Dbrace Open"
-ValueDefault=ignore
-
-[Nl Type Brace Init Lst]
-Category=3
-Description="<html>Whether to add a newline after the type in an unnamed temporary<br/>direct-list-initialization.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_type_brace_init_lst=ignore|nl_type_brace_init_lst=add|nl_type_brace_init_lst=remove|nl_type_brace_init_lst=force|nl_type_brace_init_lst=not_defined
-ChoicesReadable="Ignore Nl Type Brace Init Lst|Add Nl Type Brace Init Lst|Remove Nl Type Brace Init Lst|Force Nl Type Brace Init Lst"
-ValueDefault=ignore
-
-[Nl Type Brace Init Lst Open]
-Category=3
-Description="<html>Whether to add a newline after the open brace in an unnamed temporary<br/>direct-list-initialization.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_type_brace_init_lst_open=ignore|nl_type_brace_init_lst_open=add|nl_type_brace_init_lst_open=remove|nl_type_brace_init_lst_open=force|nl_type_brace_init_lst_open=not_defined
-ChoicesReadable="Ignore Nl Type Brace Init Lst Open|Add Nl Type Brace Init Lst Open|Remove Nl Type Brace Init Lst Open|Force Nl Type Brace Init Lst Open"
-ValueDefault=ignore
-
-[Nl Type Brace Init Lst Close]
-Category=3
-Description="<html>Whether to add a newline before the close brace in an unnamed temporary<br/>direct-list-initialization.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_type_brace_init_lst_close=ignore|nl_type_brace_init_lst_close=add|nl_type_brace_init_lst_close=remove|nl_type_brace_init_lst_close=force|nl_type_brace_init_lst_close=not_defined
-ChoicesReadable="Ignore Nl Type Brace Init Lst Close|Add Nl Type Brace Init Lst Close|Remove Nl Type Brace Init Lst Close|Force Nl Type Brace Init Lst Close"
-ValueDefault=ignore
-
-[Nl Before Brace Open]
-Category=3
-Description="<html>Whether to add a newline before '{'.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_before_brace_open=true|nl_before_brace_open=false
-ValueDefault=false
-
-[Nl After Brace Open]
-Category=3
-Description="<html>Whether to add a newline after '{'.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_after_brace_open=true|nl_after_brace_open=false
-ValueDefault=false
-
-[Nl After Brace Open Cmt]
-Category=3
-Description="<html>Whether to add a newline between the open brace and a trailing single-line<br/>comment. Requires nl_after_brace_open=true.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_after_brace_open_cmt=true|nl_after_brace_open_cmt=false
-ValueDefault=false
-
-[Nl After Vbrace Open]
-Category=3
-Description="<html>Whether to add a newline after a virtual brace open with a non-empty body.<br/>These occur in un-braced if/while/do/for statement bodies.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_after_vbrace_open=true|nl_after_vbrace_open=false
-ValueDefault=false
-
-[Nl After Vbrace Open Empty]
-Category=3
-Description="<html>Whether to add a newline after a virtual brace open with an empty body.<br/>These occur in un-braced if/while/do/for statement bodies.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_after_vbrace_open_empty=true|nl_after_vbrace_open_empty=false
-ValueDefault=false
-
-[Nl After Brace Close]
-Category=3
-Description="<html>Whether to add a newline after '}'. Does not apply if followed by a<br/>necessary ';'.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_after_brace_close=true|nl_after_brace_close=false
-ValueDefault=false
-
-[Nl After Vbrace Close]
-Category=3
-Description="<html>Whether to add a newline after a virtual brace close,<br/>as in 'if (foo) a++; &lt;here&gt; return;'.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_after_vbrace_close=true|nl_after_vbrace_close=false
-ValueDefault=false
-
-[Nl Brace Struct Var]
-Category=3
-Description="<html>Add or remove newline between the close brace and identifier,<br/>as in 'struct { int a; } &lt;here&gt; b;'. Affects enumerations, unions and<br/>structures. If set to ignore, uses nl_after_brace_close.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_brace_struct_var=ignore|nl_brace_struct_var=add|nl_brace_struct_var=remove|nl_brace_struct_var=force|nl_brace_struct_var=not_defined
-ChoicesReadable="Ignore Nl Brace Struct Var|Add Nl Brace Struct Var|Remove Nl Brace Struct Var|Force Nl Brace Struct Var"
-ValueDefault=ignore
-
-[Nl Define Macro]
-Category=3
-Description="<html>Whether to alter newlines in '#define' macros.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_define_macro=true|nl_define_macro=false
-ValueDefault=false
-
-[Nl Squeeze Paren Close]
-Category=3
-Description="<html>Whether to alter newlines between consecutive parenthesis closes. The number<br/>of closing parentheses in a line will depend on respective open parenthesis<br/>lines.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_squeeze_paren_close=true|nl_squeeze_paren_close=false
-ValueDefault=false
-
-[Nl Squeeze Ifdef]
-Category=3
-Description="<html>Whether to remove blanks after '#ifxx' and '#elxx', or before '#elxx' and<br/>'#endif'. Does not affect top-level #ifdefs.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_squeeze_ifdef=true|nl_squeeze_ifdef=false
-ValueDefault=false
-
-[Nl Squeeze Ifdef Top Level]
-Category=3
-Description="<html>Makes the nl_squeeze_ifdef option affect the top-level #ifdefs as well.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_squeeze_ifdef_top_level=true|nl_squeeze_ifdef_top_level=false
-ValueDefault=false
-
-[Nl Before If]
-Category=3
-Description="<html>Add or remove blank line before 'if'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_before_if=ignore|nl_before_if=add|nl_before_if=remove|nl_before_if=force|nl_before_if=not_defined
-ChoicesReadable="Ignore Nl Before If|Add Nl Before If|Remove Nl Before If|Force Nl Before If"
-ValueDefault=ignore
-
-[Nl After If]
-Category=3
-Description="<html>Add or remove blank line after 'if' statement. Add/Force work only if the<br/>next token is not a closing brace.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_after_if=ignore|nl_after_if=add|nl_after_if=remove|nl_after_if=force|nl_after_if=not_defined
-ChoicesReadable="Ignore Nl After If|Add Nl After If|Remove Nl After If|Force Nl After If"
-ValueDefault=ignore
-
-[Nl Before For]
-Category=3
-Description="<html>Add or remove blank line before 'for'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_before_for=ignore|nl_before_for=add|nl_before_for=remove|nl_before_for=force|nl_before_for=not_defined
-ChoicesReadable="Ignore Nl Before For|Add Nl Before For|Remove Nl Before For|Force Nl Before For"
-ValueDefault=ignore
-
-[Nl After For]
-Category=3
-Description="<html>Add or remove blank line after 'for' statement.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_after_for=ignore|nl_after_for=add|nl_after_for=remove|nl_after_for=force|nl_after_for=not_defined
-ChoicesReadable="Ignore Nl After For|Add Nl After For|Remove Nl After For|Force Nl After For"
-ValueDefault=ignore
-
-[Nl Before While]
-Category=3
-Description="<html>Add or remove blank line before 'while'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_before_while=ignore|nl_before_while=add|nl_before_while=remove|nl_before_while=force|nl_before_while=not_defined
-ChoicesReadable="Ignore Nl Before While|Add Nl Before While|Remove Nl Before While|Force Nl Before While"
-ValueDefault=ignore
-
-[Nl After While]
-Category=3
-Description="<html>Add or remove blank line after 'while' statement.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_after_while=ignore|nl_after_while=add|nl_after_while=remove|nl_after_while=force|nl_after_while=not_defined
-ChoicesReadable="Ignore Nl After While|Add Nl After While|Remove Nl After While|Force Nl After While"
-ValueDefault=ignore
-
-[Nl Before Switch]
-Category=3
-Description="<html>Add or remove blank line before 'switch'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_before_switch=ignore|nl_before_switch=add|nl_before_switch=remove|nl_before_switch=force|nl_before_switch=not_defined
-ChoicesReadable="Ignore Nl Before Switch|Add Nl Before Switch|Remove Nl Before Switch|Force Nl Before Switch"
-ValueDefault=ignore
-
-[Nl After Switch]
-Category=3
-Description="<html>Add or remove blank line after 'switch' statement.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_after_switch=ignore|nl_after_switch=add|nl_after_switch=remove|nl_after_switch=force|nl_after_switch=not_defined
-ChoicesReadable="Ignore Nl After Switch|Add Nl After Switch|Remove Nl After Switch|Force Nl After Switch"
-ValueDefault=ignore
-
-[Nl Before Synchronized]
-Category=3
-Description="<html>Add or remove blank line before 'synchronized'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_before_synchronized=ignore|nl_before_synchronized=add|nl_before_synchronized=remove|nl_before_synchronized=force|nl_before_synchronized=not_defined
-ChoicesReadable="Ignore Nl Before Synchronized|Add Nl Before Synchronized|Remove Nl Before Synchronized|Force Nl Before Synchronized"
-ValueDefault=ignore
-
-[Nl After Synchronized]
-Category=3
-Description="<html>Add or remove blank line after 'synchronized' statement.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_after_synchronized=ignore|nl_after_synchronized=add|nl_after_synchronized=remove|nl_after_synchronized=force|nl_after_synchronized=not_defined
-ChoicesReadable="Ignore Nl After Synchronized|Add Nl After Synchronized|Remove Nl After Synchronized|Force Nl After Synchronized"
-ValueDefault=ignore
-
-[Nl Before Do]
-Category=3
-Description="<html>Add or remove blank line before 'do'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_before_do=ignore|nl_before_do=add|nl_before_do=remove|nl_before_do=force|nl_before_do=not_defined
-ChoicesReadable="Ignore Nl Before Do|Add Nl Before Do|Remove Nl Before Do|Force Nl Before Do"
-ValueDefault=ignore
-
-[Nl After Do]
-Category=3
-Description="<html>Add or remove blank line after 'do/while' statement.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_after_do=ignore|nl_after_do=add|nl_after_do=remove|nl_after_do=force|nl_after_do=not_defined
-ChoicesReadable="Ignore Nl After Do|Add Nl After Do|Remove Nl After Do|Force Nl After Do"
-ValueDefault=ignore
-
-[Nl Before Ignore After Case]
-Category=3
-Description="<html>Ignore nl_before_{if,for,switch,do,synchronized} if the control<br/>statement is immediately after a case statement.<br/>if nl_before_{if,for,switch,do} is set to remove, this option<br/>does nothing.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_before_ignore_after_case=true|nl_before_ignore_after_case=false
-ValueDefault=false
-
-[Nl Before Return]
-Category=3
-Description="<html>Whether to put a blank line before 'return' statements, unless after an open<br/>brace.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_before_return=true|nl_before_return=false
-ValueDefault=false
-
-[Nl After Return]
-Category=3
-Description="<html>Whether to put a blank line after 'return' statements, unless followed by a<br/>close brace.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_after_return=true|nl_after_return=false
-ValueDefault=false
-
-[Nl Before Member]
-Category=3
-Description="<html>Whether to put a blank line before a member '.' or '-&gt;' operators.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_before_member=ignore|nl_before_member=add|nl_before_member=remove|nl_before_member=force|nl_before_member=not_defined
-ChoicesReadable="Ignore Nl Before Member|Add Nl Before Member|Remove Nl Before Member|Force Nl Before Member"
-ValueDefault=ignore
-
-[Nl After Member]
-Category=3
-Description="<html>(Java) Whether to put a blank line after a member '.' or '-&gt;' operators.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_after_member=ignore|nl_after_member=add|nl_after_member=remove|nl_after_member=force|nl_after_member=not_defined
-ChoicesReadable="Ignore Nl After Member|Add Nl After Member|Remove Nl After Member|Force Nl After Member"
-ValueDefault=ignore
-
-[Nl Ds Struct Enum Cmt]
-Category=3
-Description="<html>Whether to double-space commented-entries in 'struct'/'union'/'enum'.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_ds_struct_enum_cmt=true|nl_ds_struct_enum_cmt=false
-ValueDefault=false
-
-[Nl Ds Struct Enum Close Brace]
-Category=3
-Description="<html>Whether to force a newline before '}' of a 'struct'/'union'/'enum'.<br/>(Lower priority than eat_blanks_before_close_brace.)</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_ds_struct_enum_close_brace=true|nl_ds_struct_enum_close_brace=false
-ValueDefault=false
-
-[Nl Class Colon]
-Category=3
-Description="<html>Add or remove newline before or after (depending on pos_class_colon) a class<br/>colon, as in 'class Foo &lt;here&gt; : &lt;or here&gt; public Bar'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_class_colon=ignore|nl_class_colon=add|nl_class_colon=remove|nl_class_colon=force|nl_class_colon=not_defined
-ChoicesReadable="Ignore Nl Class Colon|Add Nl Class Colon|Remove Nl Class Colon|Force Nl Class Colon"
-ValueDefault=ignore
-
-[Nl Constr Colon]
-Category=3
-Description="<html>Add or remove newline around a class constructor colon. The exact position<br/>depends on nl_constr_init_args, pos_constr_colon and pos_constr_comma.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_constr_colon=ignore|nl_constr_colon=add|nl_constr_colon=remove|nl_constr_colon=force|nl_constr_colon=not_defined
-ChoicesReadable="Ignore Nl Constr Colon|Add Nl Constr Colon|Remove Nl Constr Colon|Force Nl Constr Colon"
-ValueDefault=ignore
-
-[Nl Namespace Two To One Liner]
-Category=3
-Description="<html>Whether to collapse a two-line namespace, like 'namespace foo\n{ decl; }'<br/>into a single line. If true, prevents other brace newline rules from turning<br/>such code into four lines. If true, it also preserves one-liner namespaces.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_namespace_two_to_one_liner=true|nl_namespace_two_to_one_liner=false
-ValueDefault=false
-
-[Nl Create If One Liner]
-Category=3
-Description="<html>Whether to remove a newline in simple unbraced if statements, turning them<br/>into one-liners, as in 'if(b)\n i++;' =&gt; 'if(b) i++;'.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_create_if_one_liner=true|nl_create_if_one_liner=false
-ValueDefault=false
-
-[Nl Create For One Liner]
-Category=3
-Description="<html>Whether to remove a newline in simple unbraced for statements, turning them<br/>into one-liners, as in 'for (...)\n stmt;' =&gt; 'for (...) stmt;'.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_create_for_one_liner=true|nl_create_for_one_liner=false
-ValueDefault=false
-
-[Nl Create While One Liner]
-Category=3
-Description="<html>Whether to remove a newline in simple unbraced while statements, turning<br/>them into one-liners, as in 'while (expr)\n stmt;' =&gt; 'while (expr) stmt;'.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_create_while_one_liner=true|nl_create_while_one_liner=false
-ValueDefault=false
-
-[Nl Create Func Def One Liner]
-Category=3
-Description="<html>Whether to collapse a function definition whose body (not counting braces)<br/>is only one line so that the entire definition (prototype, braces, body) is<br/>a single line.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_create_func_def_one_liner=true|nl_create_func_def_one_liner=false
-ValueDefault=false
-
-[Nl Create List One Liner]
-Category=3
-Description="<html>Whether to split one-line simple list definitions into three lines by<br/>adding newlines, as in 'int a[12] = { &lt;here&gt; 0 &lt;here&gt; };'.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_create_list_one_liner=true|nl_create_list_one_liner=false
-ValueDefault=false
-
-[Nl Split If One Liner]
-Category=3
-Description="<html>Whether to split one-line simple unbraced if statements into two lines by<br/>adding a newline, as in 'if(b) &lt;here&gt; i++;'.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_split_if_one_liner=true|nl_split_if_one_liner=false
-ValueDefault=false
-
-[Nl Split For One Liner]
-Category=3
-Description="<html>Whether to split one-line simple unbraced for statements into two lines by<br/>adding a newline, as in 'for (...) &lt;here&gt; stmt;'.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_split_for_one_liner=true|nl_split_for_one_liner=false
-ValueDefault=false
-
-[Nl Split While One Liner]
-Category=3
-Description="<html>Whether to split one-line simple unbraced while statements into two lines by<br/>adding a newline, as in 'while (expr) &lt;here&gt; stmt;'.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_split_while_one_liner=true|nl_split_while_one_liner=false
-ValueDefault=false
-
-[Donot Add Nl Before Cpp Comment]
-Category=3
-Description="<html>Don't add a newline before a cpp-comment in a parameter list of a function<br/>call.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=donot_add_nl_before_cpp_comment=true|donot_add_nl_before_cpp_comment=false
-ValueDefault=false
-
-[Nl Max]
-Category=4
-Description="<html>The maximum number of consecutive newlines (3 = 2 blank lines).</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_max="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl Max Blank In Func]
-Category=4
-Description="<html>The maximum number of consecutive newlines in a function.</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_max_blank_in_func="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl Inside Empty Func]
-Category=4
-Description="<html>The number of newlines inside an empty function body.<br/>This option overrides eat_blanks_after_open_brace and<br/>eat_blanks_before_close_brace, but is ignored when<br/>nl_collapse_empty_body=true</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_inside_empty_func="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl Before Func Body Proto]
-Category=4
-Description="<html>The number of newlines before a function prototype.</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_before_func_body_proto="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl Before Func Body Def]
-Category=4
-Description="<html>The number of newlines before a multi-line function definition. Where<br/>applicable, this option is overridden with eat_blanks_after_open_brace=true</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_before_func_body_def="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl Before Func Class Proto]
-Category=4
-Description="<html>The number of newlines before a class constructor/destructor prototype.</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_before_func_class_proto="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl Before Func Class Def]
-Category=4
-Description="<html>The number of newlines before a class constructor/destructor definition.</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_before_func_class_def="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl After Func Proto]
-Category=4
-Description="<html>The number of newlines after a function prototype.</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_after_func_proto="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl After Func Proto Group]
-Category=4
-Description="<html>The number of newlines after a function prototype, if not followed by<br/>another function prototype.</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_after_func_proto_group="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl After Func Class Proto]
-Category=4
-Description="<html>The number of newlines after a class constructor/destructor prototype.</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_after_func_class_proto="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl After Func Class Proto Group]
-Category=4
-Description="<html>The number of newlines after a class constructor/destructor prototype,<br/>if not followed by another constructor/destructor prototype.</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_after_func_class_proto_group="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl Class Leave One Liner Groups]
-Category=4
-Description="<html>Whether one-line method definitions inside a class body should be treated<br/>as if they were prototypes for the purposes of adding newlines.<br/><br/>Requires nl_class_leave_one_liners=true. Overrides nl_before_func_body_def<br/>and nl_before_func_class_def for one-liners.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_class_leave_one_liner_groups=true|nl_class_leave_one_liner_groups=false
-ValueDefault=false
-
-[Nl After Func Body]
-Category=4
-Description="<html>The number of newlines after '}' of a multi-line function body.</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_after_func_body="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl After Func Body Class]
-Category=4
-Description="<html>The number of newlines after '}' of a multi-line function body in a class<br/>declaration. Also affects class constructors/destructors.<br/><br/>Overrides nl_after_func_body.</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_after_func_body_class="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl After Func Body One Liner]
-Category=4
-Description="<html>The number of newlines after '}' of a single line function body. Also<br/>affects class constructors/destructors.<br/><br/>Overrides nl_after_func_body and nl_after_func_body_class.</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_after_func_body_one_liner="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl Func Var Def Blk]
-Category=4
-Description="<html>The number of blank lines after a block of variable definitions at the top<br/>of a function body.<br/><br/>0: No change (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_func_var_def_blk="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl Typedef Blk Start]
-Category=4
-Description="<html>The number of newlines before a block of typedefs. If nl_after_access_spec<br/>is non-zero, that option takes precedence.<br/><br/>0: No change (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_typedef_blk_start="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl Typedef Blk End]
-Category=4
-Description="<html>The number of newlines after a block of typedefs.<br/><br/>0: No change (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_typedef_blk_end="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl Typedef Blk In]
-Category=4
-Description="<html>The maximum number of consecutive newlines within a block of typedefs.<br/><br/>0: No change (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_typedef_blk_in="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl Var Def Blk Start]
-Category=4
-Description="<html>The number of newlines before a block of variable definitions not at the top<br/>of a function body. If nl_after_access_spec is non-zero, that option takes<br/>precedence.<br/><br/>0: No change (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_var_def_blk_start="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl Var Def Blk End]
-Category=4
-Description="<html>The number of newlines after a block of variable definitions not at the top<br/>of a function body.<br/><br/>0: No change (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_var_def_blk_end="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl Var Def Blk In]
-Category=4
-Description="<html>The maximum number of consecutive newlines within a block of variable<br/>definitions.<br/><br/>0: No change (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_var_def_blk_in="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl Before Block Comment]
-Category=4
-Description="<html>The minimum number of newlines before a multi-line comment.<br/>Doesn't apply if after a brace open or another multi-line comment.</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_before_block_comment="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl Before C Comment]
-Category=4
-Description="<html>The minimum number of newlines before a single-line C comment.<br/>Doesn't apply if after a brace open or other single-line C comments.</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_before_c_comment="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl Before Cpp Comment]
-Category=4
-Description="<html>The minimum number of newlines before a CPP comment.<br/>Doesn't apply if after a brace open or other CPP comments.</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_before_cpp_comment="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl After Multiline Comment]
-Category=4
-Description="<html>Whether to force a newline after a multi-line comment.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_after_multiline_comment=true|nl_after_multiline_comment=false
-ValueDefault=false
-
-[Nl After Label Colon]
-Category=4
-Description="<html>Whether to force a newline after a label's colon.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_after_label_colon=true|nl_after_label_colon=false
-ValueDefault=false
-
-[Nl Before Struct]
-Category=4
-Description="<html>The number of newlines before a struct definition.</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_before_struct="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl After Struct]
-Category=4
-Description="<html>The number of newlines after '}' or ';' of a struct/enum/union definition.</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_after_struct="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl Before Class]
-Category=4
-Description="<html>The number of newlines before a class definition.</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_before_class="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl After Class]
-Category=4
-Description="<html>The number of newlines after '}' or ';' of a class definition.</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_after_class="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl Before Namespace]
-Category=4
-Description="<html>The number of newlines before a namespace.</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_before_namespace="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl Inside Namespace]
-Category=4
-Description="<html>The number of newlines after '{' of a namespace. This also adds newlines<br/>before the matching '}'.<br/><br/>0: Apply eat_blanks_after_open_brace or eat_blanks_before_close_brace if<br/> applicable, otherwise no change.<br/><br/>Overrides eat_blanks_after_open_brace and eat_blanks_before_close_brace.</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_inside_namespace="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl After Namespace]
-Category=4
-Description="<html>The number of newlines after '}' of a namespace.</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_after_namespace="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl Before Access Spec]
-Category=4
-Description="<html>The number of newlines before an access specifier label. This also includes<br/>the Qt-specific 'signals:' and 'slots:'. Will not change the newline count<br/>if after a brace open.<br/><br/>0: No change (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_before_access_spec="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl After Access Spec]
-Category=4
-Description="<html>The number of newlines after an access specifier label. This also includes<br/>the Qt-specific 'signals:' and 'slots:'. Will not change the newline count<br/>if after a brace open.<br/><br/>0: No change (default).<br/><br/>Overrides nl_typedef_blk_start and nl_var_def_blk_start.</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_after_access_spec="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl Comment Func Def]
-Category=4
-Description="<html>The number of newlines between a function definition and the function<br/>comment, as in '// comment\n &lt;here&gt; void foo() {...}'.<br/><br/>0: No change (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_comment_func_def="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl After Try Catch Finally]
-Category=4
-Description="<html>The number of newlines after a try-catch-finally block that isn't followed<br/>by a brace close.<br/><br/>0: No change (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_after_try_catch_finally="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl Around Cs Property]
-Category=4
-Description="<html>(C#) The number of newlines before and after a property, indexer or event<br/>declaration.<br/><br/>0: No change (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_around_cs_property="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl Between Get Set]
-Category=4
-Description="<html>(C#) The number of newlines between the get/set/add/remove handlers.<br/><br/>0: No change (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_between_get_set="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl Property Brace]
-Category=4
-Description="<html>(C#) Add or remove newline between property and the '{'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_property_brace=ignore|nl_property_brace=add|nl_property_brace=remove|nl_property_brace=force|nl_property_brace=not_defined
-ChoicesReadable="Ignore Nl Property Brace|Add Nl Property Brace|Remove Nl Property Brace|Force Nl Property Brace"
-ValueDefault=ignore
-
-[Eat Blanks After Open Brace]
-Category=4
-Description="<html>Whether to remove blank lines after '{'.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=eat_blanks_after_open_brace=true|eat_blanks_after_open_brace=false
-ValueDefault=false
-
-[Eat Blanks Before Close Brace]
-Category=4
-Description="<html>Whether to remove blank lines before '}'.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=eat_blanks_before_close_brace=true|eat_blanks_before_close_brace=false
-ValueDefault=false
-
-[Nl Remove Extra Newlines]
-Category=4
-Description="<html>How aggressively to remove extra newlines not in preprocessor.<br/><br/>0: No change (default)<br/>1: Remove most newlines not handled by other config<br/>2: Remove all newlines and reformat completely by config</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_remove_extra_newlines="
-MinVal=0
-MaxVal=2
-ValueDefault=0
-
-[Nl After Annotation]
-Category=4
-Description="<html>(Java) Add or remove newline after an annotation statement. Only affects<br/>annotations that are after a newline.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_after_annotation=ignore|nl_after_annotation=add|nl_after_annotation=remove|nl_after_annotation=force|nl_after_annotation=not_defined
-ChoicesReadable="Ignore Nl After Annotation|Add Nl After Annotation|Remove Nl After Annotation|Force Nl After Annotation"
-ValueDefault=ignore
-
-[Nl Between Annotation]
-Category=4
-Description="<html>(Java) Add or remove newline between two annotations.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_between_annotation=ignore|nl_between_annotation=add|nl_between_annotation=remove|nl_between_annotation=force|nl_between_annotation=not_defined
-ChoicesReadable="Ignore Nl Between Annotation|Add Nl Between Annotation|Remove Nl Between Annotation|Force Nl Between Annotation"
-ValueDefault=ignore
-
-[Nl Before Whole File Ifdef]
-Category=4
-Description="<html>The number of newlines before a whole-file #ifdef.<br/><br/>0: No change (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_before_whole_file_ifdef="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl After Whole File Ifdef]
-Category=4
-Description="<html>The number of newlines after a whole-file #ifdef.<br/><br/>0: No change (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_after_whole_file_ifdef="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl Before Whole File Endif]
-Category=4
-Description="<html>The number of newlines before a whole-file #endif.<br/><br/>0: No change (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_before_whole_file_endif="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl After Whole File Endif]
-Category=4
-Description="<html>The number of newlines after a whole-file #endif.<br/><br/>0: No change (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_after_whole_file_endif="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Pos Arith]
-Category=5
-Description="<html>The position of arithmetic operators in wrapped expressions.</html>"
-Enabled=false
-EditorType=multiple
-Choices=pos_arith=ignore|pos_arith=break|pos_arith=force|pos_arith=lead|pos_arith=trail|pos_arith=join|pos_arith=lead_break|pos_arith=lead_force|pos_arith=trail_break|pos_arith=trail_force
-ChoicesReadable="Ignore Pos Arith|Break Pos Arith|Force Pos Arith|Lead Pos Arith|Trail Pos Arith|Join Pos Arith|Lead Break Pos Arith|Lead Force Pos Arith|Trail Break Pos Arith|Trail Force Pos Arith"
-ValueDefault=ignore
-
-[Pos Assign]
-Category=5
-Description="<html>The position of assignment in wrapped expressions. Do not affect '='<br/>followed by '{'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=pos_assign=ignore|pos_assign=break|pos_assign=force|pos_assign=lead|pos_assign=trail|pos_assign=join|pos_assign=lead_break|pos_assign=lead_force|pos_assign=trail_break|pos_assign=trail_force
-ChoicesReadable="Ignore Pos Assign|Break Pos Assign|Force Pos Assign|Lead Pos Assign|Trail Pos Assign|Join Pos Assign|Lead Break Pos Assign|Lead Force Pos Assign|Trail Break Pos Assign|Trail Force Pos Assign"
-ValueDefault=ignore
-
-[Pos Bool]
-Category=5
-Description="<html>The position of Boolean operators in wrapped expressions.</html>"
-Enabled=false
-EditorType=multiple
-Choices=pos_bool=ignore|pos_bool=break|pos_bool=force|pos_bool=lead|pos_bool=trail|pos_bool=join|pos_bool=lead_break|pos_bool=lead_force|pos_bool=trail_break|pos_bool=trail_force
-ChoicesReadable="Ignore Pos Bool|Break Pos Bool|Force Pos Bool|Lead Pos Bool|Trail Pos Bool|Join Pos Bool|Lead Break Pos Bool|Lead Force Pos Bool|Trail Break Pos Bool|Trail Force Pos Bool"
-ValueDefault=ignore
-
-[Pos Compare]
-Category=5
-Description="<html>The position of comparison operators in wrapped expressions.</html>"
-Enabled=false
-EditorType=multiple
-Choices=pos_compare=ignore|pos_compare=break|pos_compare=force|pos_compare=lead|pos_compare=trail|pos_compare=join|pos_compare=lead_break|pos_compare=lead_force|pos_compare=trail_break|pos_compare=trail_force
-ChoicesReadable="Ignore Pos Compare|Break Pos Compare|Force Pos Compare|Lead Pos Compare|Trail Pos Compare|Join Pos Compare|Lead Break Pos Compare|Lead Force Pos Compare|Trail Break Pos Compare|Trail Force Pos Compare"
-ValueDefault=ignore
-
-[Pos Conditional]
-Category=5
-Description="<html>The position of conditional operators, as in the '?' and ':' of<br/>'expr ? stmt : stmt', in wrapped expressions.</html>"
-Enabled=false
-EditorType=multiple
-Choices=pos_conditional=ignore|pos_conditional=break|pos_conditional=force|pos_conditional=lead|pos_conditional=trail|pos_conditional=join|pos_conditional=lead_break|pos_conditional=lead_force|pos_conditional=trail_break|pos_conditional=trail_force
-ChoicesReadable="Ignore Pos Conditional|Break Pos Conditional|Force Pos Conditional|Lead Pos Conditional|Trail Pos Conditional|Join Pos Conditional|Lead Break Pos Conditional|Lead Force Pos Conditional|Trail Break Pos Conditional|Trail Force Pos Conditional"
-ValueDefault=ignore
-
-[Pos Comma]
-Category=5
-Description="<html>The position of the comma in wrapped expressions.</html>"
-Enabled=false
-EditorType=multiple
-Choices=pos_comma=ignore|pos_comma=break|pos_comma=force|pos_comma=lead|pos_comma=trail|pos_comma=join|pos_comma=lead_break|pos_comma=lead_force|pos_comma=trail_break|pos_comma=trail_force
-ChoicesReadable="Ignore Pos Comma|Break Pos Comma|Force Pos Comma|Lead Pos Comma|Trail Pos Comma|Join Pos Comma|Lead Break Pos Comma|Lead Force Pos Comma|Trail Break Pos Comma|Trail Force Pos Comma"
-ValueDefault=ignore
-
-[Pos Enum Comma]
-Category=5
-Description="<html>The position of the comma in enum entries.</html>"
-Enabled=false
-EditorType=multiple
-Choices=pos_enum_comma=ignore|pos_enum_comma=break|pos_enum_comma=force|pos_enum_comma=lead|pos_enum_comma=trail|pos_enum_comma=join|pos_enum_comma=lead_break|pos_enum_comma=lead_force|pos_enum_comma=trail_break|pos_enum_comma=trail_force
-ChoicesReadable="Ignore Pos Enum Comma|Break Pos Enum Comma|Force Pos Enum Comma|Lead Pos Enum Comma|Trail Pos Enum Comma|Join Pos Enum Comma|Lead Break Pos Enum Comma|Lead Force Pos Enum Comma|Trail Break Pos Enum Comma|Trail Force Pos Enum Comma"
-ValueDefault=ignore
-
-[Pos Class Comma]
-Category=5
-Description="<html>The position of the comma in the base class list if there is more than one<br/>line. Affects nl_class_init_args.</html>"
-Enabled=false
-EditorType=multiple
-Choices=pos_class_comma=ignore|pos_class_comma=break|pos_class_comma=force|pos_class_comma=lead|pos_class_comma=trail|pos_class_comma=join|pos_class_comma=lead_break|pos_class_comma=lead_force|pos_class_comma=trail_break|pos_class_comma=trail_force
-ChoicesReadable="Ignore Pos Class Comma|Break Pos Class Comma|Force Pos Class Comma|Lead Pos Class Comma|Trail Pos Class Comma|Join Pos Class Comma|Lead Break Pos Class Comma|Lead Force Pos Class Comma|Trail Break Pos Class Comma|Trail Force Pos Class Comma"
-ValueDefault=ignore
-
-[Pos Constr Comma]
-Category=5
-Description="<html>The position of the comma in the constructor initialization list.<br/>Related to nl_constr_colon, nl_constr_init_args and pos_constr_colon.</html>"
-Enabled=false
-EditorType=multiple
-Choices=pos_constr_comma=ignore|pos_constr_comma=break|pos_constr_comma=force|pos_constr_comma=lead|pos_constr_comma=trail|pos_constr_comma=join|pos_constr_comma=lead_break|pos_constr_comma=lead_force|pos_constr_comma=trail_break|pos_constr_comma=trail_force
-ChoicesReadable="Ignore Pos Constr Comma|Break Pos Constr Comma|Force Pos Constr Comma|Lead Pos Constr Comma|Trail Pos Constr Comma|Join Pos Constr Comma|Lead Break Pos Constr Comma|Lead Force Pos Constr Comma|Trail Break Pos Constr Comma|Trail Force Pos Constr Comma"
-ValueDefault=ignore
-
-[Pos Class Colon]
-Category=5
-Description="<html>The position of trailing/leading class colon, between class and base class<br/>list. Affects nl_class_colon.</html>"
-Enabled=false
-EditorType=multiple
-Choices=pos_class_colon=ignore|pos_class_colon=break|pos_class_colon=force|pos_class_colon=lead|pos_class_colon=trail|pos_class_colon=join|pos_class_colon=lead_break|pos_class_colon=lead_force|pos_class_colon=trail_break|pos_class_colon=trail_force
-ChoicesReadable="Ignore Pos Class Colon|Break Pos Class Colon|Force Pos Class Colon|Lead Pos Class Colon|Trail Pos Class Colon|Join Pos Class Colon|Lead Break Pos Class Colon|Lead Force Pos Class Colon|Trail Break Pos Class Colon|Trail Force Pos Class Colon"
-ValueDefault=ignore
-
-[Pos Constr Colon]
-Category=5
-Description="<html>The position of colons between constructor and member initialization.<br/>Related to nl_constr_colon, nl_constr_init_args and pos_constr_comma.</html>"
-Enabled=false
-EditorType=multiple
-Choices=pos_constr_colon=ignore|pos_constr_colon=break|pos_constr_colon=force|pos_constr_colon=lead|pos_constr_colon=trail|pos_constr_colon=join|pos_constr_colon=lead_break|pos_constr_colon=lead_force|pos_constr_colon=trail_break|pos_constr_colon=trail_force
-ChoicesReadable="Ignore Pos Constr Colon|Break Pos Constr Colon|Force Pos Constr Colon|Lead Pos Constr Colon|Trail Pos Constr Colon|Join Pos Constr Colon|Lead Break Pos Constr Colon|Lead Force Pos Constr Colon|Trail Break Pos Constr Colon|Trail Force Pos Constr Colon"
-ValueDefault=ignore
-
-[Pos Shift]
-Category=5
-Description="<html>The position of shift operators in wrapped expressions.</html>"
-Enabled=false
-EditorType=multiple
-Choices=pos_shift=ignore|pos_shift=break|pos_shift=force|pos_shift=lead|pos_shift=trail|pos_shift=join|pos_shift=lead_break|pos_shift=lead_force|pos_shift=trail_break|pos_shift=trail_force
-ChoicesReadable="Ignore Pos Shift|Break Pos Shift|Force Pos Shift|Lead Pos Shift|Trail Pos Shift|Join Pos Shift|Lead Break Pos Shift|Lead Force Pos Shift|Trail Break Pos Shift|Trail Force Pos Shift"
-ValueDefault=ignore
-
-[Code Width]
-Category=6
-Description="<html>Try to limit code width to N columns.</html>"
-Enabled=false
-EditorType=numeric
-CallName="code_width="
-MinVal=0
-MaxVal=10000
-ValueDefault=0
-
-[Ls For Split Full]
-Category=6
-Description="<html>Whether to fully split long 'for' statements at semi-colons.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=ls_for_split_full=true|ls_for_split_full=false
-ValueDefault=false
-
-[Ls Func Split Full]
-Category=6
-Description="<html>Whether to fully split long function prototypes/calls at commas.<br/>The option ls_code_width has priority over the option ls_func_split_full.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=ls_func_split_full=true|ls_func_split_full=false
-ValueDefault=false
-
-[Ls Code Width]
-Category=6
-Description="<html>Whether to split lines as close to code_width as possible and ignore some<br/>groupings.<br/>The option ls_code_width has priority over the option ls_func_split_full.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=ls_code_width=true|ls_code_width=false
-ValueDefault=false
-
-[Align Keep Tabs]
-Category=7
-Description="<html>Whether to keep non-indenting tabs.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=align_keep_tabs=true|align_keep_tabs=false
-ValueDefault=false
-
-[Align With Tabs]
-Category=7
-Description="<html>Whether to use tabs for aligning.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=align_with_tabs=true|align_with_tabs=false
-ValueDefault=false
-
-[Align On Tabstop]
-Category=7
-Description="<html>Whether to bump out to the next tab when aligning.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=align_on_tabstop=true|align_on_tabstop=false
-ValueDefault=false
-
-[Align Number Right]
-Category=7
-Description="<html>Whether to right-align numbers.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=align_number_right=true|align_number_right=false
-ValueDefault=false
-
-[Align Keep Extra Space]
-Category=7
-Description="<html>Whether to keep whitespace not required for alignment.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=align_keep_extra_space=true|align_keep_extra_space=false
-ValueDefault=false
-
-[Align Func Params]
-Category=7
-Description="<html>Whether to align variable definitions in prototypes and functions.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=align_func_params=true|align_func_params=false
-ValueDefault=false
-
-[Align Func Params Span]
-Category=7
-Description="<html>The span for aligning parameter definitions in function on parameter name.<br/><br/>0: Don't align (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_func_params_span="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Align Func Params Thresh]
-Category=7
-Description="<html>The threshold for aligning function parameter definitions.<br/>Use a negative number for absolute thresholds.<br/><br/>0: No limit (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_func_params_thresh="
-MinVal=-1000
-MaxVal=5000
-ValueDefault=0
-
-[Align Func Params Gap]
-Category=7
-Description="<html>The gap for aligning function parameter definitions.</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_func_params_gap="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Align Constr Value Span]
-Category=7
-Description="<html>The span for aligning constructor value.<br/><br/>0: Don't align (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_constr_value_span="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Align Constr Value Thresh]
-Category=7
-Description="<html>The threshold for aligning constructor value.<br/>Use a negative number for absolute thresholds.<br/><br/>0: No limit (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_constr_value_thresh="
-MinVal=-1000
-MaxVal=5000
-ValueDefault=0
-
-[Align Constr Value Gap]
-Category=7
-Description="<html>The gap for aligning constructor value.</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_constr_value_gap="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Align Same Func Call Params]
-Category=7
-Description="<html>Whether to align parameters in single-line functions that have the same<br/>name. The function names must already be aligned with each other.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=align_same_func_call_params=true|align_same_func_call_params=false
-ValueDefault=false
-
-[Align Same Func Call Params Span]
-Category=7
-Description="<html>The span for aligning function-call parameters for single line functions.<br/><br/>0: Don't align (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_same_func_call_params_span="
-MinVal=0
-MaxVal=5000
-ValueDefault=0
-
-[Align Same Func Call Params Thresh]
-Category=7
-Description="<html>The threshold for aligning function-call parameters for single line<br/>functions.<br/>Use a negative number for absolute thresholds.<br/><br/>0: No limit (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_same_func_call_params_thresh="
-MinVal=-1000
-MaxVal=5000
-ValueDefault=0
-
-[Align Var Def Span]
-Category=7
-Description="<html>The span for aligning variable definitions.<br/><br/>0: Don't align (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_var_def_span="
-MinVal=0
-MaxVal=5000
-ValueDefault=0
-
-[Align Var Def Star Style]
-Category=7
-Description="<html>How to consider (or treat) the '*' in the alignment of variable definitions.<br/><br/>0: Part of the type 'void * foo;' (default)<br/>1: Part of the variable 'void *foo;'<br/>2: Dangling 'void *foo;'<br/>Dangling: the '*' will not be taken into account when aligning.</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_var_def_star_style="
-MinVal=0
-MaxVal=2
-ValueDefault=0
-
-[Align Var Def Amp Style]
-Category=7
-Description="<html>How to consider (or treat) the '&amp;' in the alignment of variable definitions.<br/><br/>0: Part of the type 'long &amp; foo;' (default)<br/>1: Part of the variable 'long &amp;foo;'<br/>2: Dangling 'long &amp;foo;'<br/>Dangling: the '&amp;' will not be taken into account when aligning.</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_var_def_amp_style="
-MinVal=0
-MaxVal=2
-ValueDefault=0
-
-[Align Var Def Thresh]
-Category=7
-Description="<html>The threshold for aligning variable definitions.<br/>Use a negative number for absolute thresholds.<br/><br/>0: No limit (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_var_def_thresh="
-MinVal=-1000
-MaxVal=5000
-ValueDefault=0
-
-[Align Var Def Gap]
-Category=7
-Description="<html>The gap for aligning variable definitions.</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_var_def_gap="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Align Var Def Colon]
-Category=7
-Description="<html>Whether to align the colon in struct bit fields.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=align_var_def_colon=true|align_var_def_colon=false
-ValueDefault=false
-
-[Align Var Def Colon Gap]
-Category=7
-Description="<html>The gap for aligning the colon in struct bit fields.</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_var_def_colon_gap="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Align Var Def Attribute]
-Category=7
-Description="<html>Whether to align any attribute after the variable name.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=align_var_def_attribute=true|align_var_def_attribute=false
-ValueDefault=false
-
-[Align Var Def Inline]
-Category=7
-Description="<html>Whether to align inline struct/enum/union variable definitions.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=align_var_def_inline=true|align_var_def_inline=false
-ValueDefault=false
-
-[Align Assign Span]
-Category=7
-Description="<html>The span for aligning on '=' in assignments.<br/><br/>0: Don't align (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_assign_span="
-MinVal=0
-MaxVal=5000
-ValueDefault=0
-
-[Align Assign Func Proto Span]
-Category=7
-Description="<html>The span for aligning on '=' in function prototype modifier.<br/><br/>0: Don't align (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_assign_func_proto_span="
-MinVal=0
-MaxVal=5000
-ValueDefault=0
-
-[Align Assign Thresh]
-Category=7
-Description="<html>The threshold for aligning on '=' in assignments.<br/>Use a negative number for absolute thresholds.<br/><br/>0: No limit (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_assign_thresh="
-MinVal=-1000
-MaxVal=5000
-ValueDefault=0
-
-[Align Assign Decl Func]
-Category=7
-Description="<html>How to apply align_assign_span to function declaration "assignments", i.e.<br/>'virtual void foo() = 0' or '~foo() = {default|delete}'.<br/><br/>0: Align with other assignments (default)<br/>1: Align with each other, ignoring regular assignments<br/>2: Don't align</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_assign_decl_func="
-MinVal=0
-MaxVal=2
-ValueDefault=0
-
-[Align Enum Equ Span]
-Category=7
-Description="<html>The span for aligning on '=' in enums.<br/><br/>0: Don't align (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_enum_equ_span="
-MinVal=0
-MaxVal=5000
-ValueDefault=0
-
-[Align Enum Equ Thresh]
-Category=7
-Description="<html>The threshold for aligning on '=' in enums.<br/>Use a negative number for absolute thresholds.<br/><br/>0: no limit (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_enum_equ_thresh="
-MinVal=-1000
-MaxVal=5000
-ValueDefault=0
-
-[Align Var Class Span]
-Category=7
-Description="<html>The span for aligning class member definitions.<br/><br/>0: Don't align (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_var_class_span="
-MinVal=0
-MaxVal=5000
-ValueDefault=0
-
-[Align Var Class Thresh]
-Category=7
-Description="<html>The threshold for aligning class member definitions.<br/>Use a negative number for absolute thresholds.<br/><br/>0: No limit (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_var_class_thresh="
-MinVal=-1000
-MaxVal=5000
-ValueDefault=0
-
-[Align Var Class Gap]
-Category=7
-Description="<html>The gap for aligning class member definitions.</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_var_class_gap="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Align Var Struct Span]
-Category=7
-Description="<html>The span for aligning struct/union member definitions.<br/><br/>0: Don't align (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_var_struct_span="
-MinVal=0
-MaxVal=5000
-ValueDefault=0
-
-[Align Var Struct Thresh]
-Category=7
-Description="<html>The threshold for aligning struct/union member definitions.<br/>Use a negative number for absolute thresholds.<br/><br/>0: No limit (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_var_struct_thresh="
-MinVal=-1000
-MaxVal=5000
-ValueDefault=0
-
-[Align Var Struct Gap]
-Category=7
-Description="<html>The gap for aligning struct/union member definitions.</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_var_struct_gap="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Align Struct Init Span]
-Category=7
-Description="<html>The span for aligning struct initializer values.<br/><br/>0: Don't align (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_struct_init_span="
-MinVal=0
-MaxVal=5000
-ValueDefault=0
-
-[Align Typedef Span]
-Category=7
-Description="<html>The span for aligning single-line typedefs.<br/><br/>0: Don't align (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_typedef_span="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Align Typedef Gap]
-Category=7
-Description="<html>The minimum space between the type and the synonym of a typedef.</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_typedef_gap="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Align Typedef Func]
-Category=7
-Description="<html>How to align typedef'd functions with other typedefs.<br/><br/>0: Don't mix them at all (default)<br/>1: Align the open parenthesis with the types<br/>2: Align the function type name with the other type names</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_typedef_func="
-MinVal=0
-MaxVal=2
-ValueDefault=0
-
-[Align Typedef Star Style]
-Category=7
-Description="<html>How to consider (or treat) the '*' in the alignment of typedefs.<br/><br/>0: Part of the typedef type, 'typedef int * pint;' (default)<br/>1: Part of type name: 'typedef int *pint;'<br/>2: Dangling: 'typedef int *pint;'<br/>Dangling: the '*' will not be taken into account when aligning.</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_typedef_star_style="
-MinVal=0
-MaxVal=2
-ValueDefault=0
-
-[Align Typedef Amp Style]
-Category=7
-Description="<html>How to consider (or treat) the '&amp;' in the alignment of typedefs.<br/><br/>0: Part of the typedef type, 'typedef int &amp; intref;' (default)<br/>1: Part of type name: 'typedef int &amp;intref;'<br/>2: Dangling: 'typedef int &amp;intref;'<br/>Dangling: the '&amp;' will not be taken into account when aligning.</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_typedef_amp_style="
-MinVal=0
-MaxVal=2
-ValueDefault=0
-
-[Align Right Cmt Span]
-Category=7
-Description="<html>The span for aligning comments that end lines.<br/><br/>0: Don't align (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_right_cmt_span="
-MinVal=0
-MaxVal=5000
-ValueDefault=0
-
-[Align Right Cmt Gap]
-Category=7
-Description="<html>Minimum number of columns between preceding text and a trailing comment in<br/>order for the comment to qualify for being aligned. Must be non-zero to have<br/>an effect.</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_right_cmt_gap="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Align Right Cmt Mix]
-Category=7
-Description="<html>If aligning comments, whether to mix with comments after '}' and #endif with<br/>less than three spaces before the comment.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=align_right_cmt_mix=true|align_right_cmt_mix=false
-ValueDefault=false
-
-[Align Right Cmt Same Level]
-Category=7
-Description="<html>Whether to only align trailing comments that are at the same brace level.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=align_right_cmt_same_level=true|align_right_cmt_same_level=false
-ValueDefault=false
-
-[Align Right Cmt At Col]
-Category=7
-Description="<html>Minimum column at which to align trailing comments. Comments which are<br/>aligned beyond this column, but which can be aligned in a lesser column,<br/>may be "pulled in".<br/><br/>0: Ignore (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_right_cmt_at_col="
-MinVal=0
-MaxVal=200
-ValueDefault=0
-
-[Align Func Proto Span]
-Category=7
-Description="<html>The span for aligning function prototypes.<br/><br/>0: Don't align (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_func_proto_span="
-MinVal=0
-MaxVal=5000
-ValueDefault=0
-
-[Align Func Proto Star Style]
-Category=7
-Description="<html>How to consider (or treat) the '*' in the alignment of function prototypes.<br/><br/>0: Part of the type 'void * foo();' (default)<br/>1: Part of the function 'void *foo();'<br/>2: Dangling 'void *foo();'<br/>Dangling: the '*' will not be taken into account when aligning.</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_func_proto_star_style="
-MinVal=0
-MaxVal=2
-ValueDefault=0
-
-[Align Func Proto Amp Style]
-Category=7
-Description="<html>How to consider (or treat) the '&amp;' in the alignment of function prototypes.<br/><br/>0: Part of the type 'long &amp; foo();' (default)<br/>1: Part of the function 'long &amp;foo();'<br/>2: Dangling 'long &amp;foo();'<br/>Dangling: the '&amp;' will not be taken into account when aligning.</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_func_proto_amp_style="
-MinVal=0
-MaxVal=2
-ValueDefault=0
-
-[Align Func Proto Thresh]
-Category=7
-Description="<html>The threshold for aligning function prototypes.<br/>Use a negative number for absolute thresholds.<br/><br/>0: No limit (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_func_proto_thresh="
-MinVal=-1000
-MaxVal=5000
-ValueDefault=0
-
-[Align Func Proto Gap]
-Category=7
-Description="<html>Minimum gap between the return type and the function name.</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_func_proto_gap="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Align On Operator]
-Category=7
-Description="<html>Whether to align function prototypes on the 'operator' keyword instead of<br/>what follows.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=align_on_operator=true|align_on_operator=false
-ValueDefault=false
-
-[Align Mix Var Proto]
-Category=7
-Description="<html>Whether to mix aligning prototype and variable declarations. If true,<br/>align_var_def_XXX options are used instead of align_func_proto_XXX options.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=align_mix_var_proto=true|align_mix_var_proto=false
-ValueDefault=false
-
-[Align Single Line Func]
-Category=7
-Description="<html>Whether to align single-line functions with function prototypes.<br/>Uses align_func_proto_span.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=align_single_line_func=true|align_single_line_func=false
-ValueDefault=false
-
-[Align Single Line Brace]
-Category=7
-Description="<html>Whether to align the open brace of single-line functions.<br/>Requires align_single_line_func=true. Uses align_func_proto_span.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=align_single_line_brace=true|align_single_line_brace=false
-ValueDefault=false
-
-[Align Single Line Brace Gap]
-Category=7
-Description="<html>Gap for align_single_line_brace.</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_single_line_brace_gap="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Align Oc Msg Spec Span]
-Category=7
-Description="<html>(OC) The span for aligning Objective-C message specifications.<br/><br/>0: Don't align (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_oc_msg_spec_span="
-MinVal=0
-MaxVal=5000
-ValueDefault=0
-
-[Align Nl Cont]
-Category=7
-Description="<html>Whether to align macros wrapped with a backslash and a newline. This will<br/>not work right if the macro contains a multi-line comment.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=align_nl_cont=true|align_nl_cont=false
-ValueDefault=false
-
-[Align Pp Define Together]
-Category=7
-Description="<html>Whether to align macro functions and variables together.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=align_pp_define_together=true|align_pp_define_together=false
-ValueDefault=false
-
-[Align Pp Define Span]
-Category=7
-Description="<html>The span for aligning on '#define' bodies.<br/><br/>=0: Don't align (default)<br/>&gt;0: Number of lines (including comments) between blocks</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_pp_define_span="
-MinVal=0
-MaxVal=5000
-ValueDefault=0
-
-[Align Pp Define Gap]
-Category=7
-Description="<html>The minimum space between label and value of a preprocessor define.</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_pp_define_gap="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Align Left Shift]
-Category=7
-Description="<html>Whether to align lines that start with '&lt;&lt;' with previous '&lt;&lt;'.<br/><br/>Default: true</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=align_left_shift=true|align_left_shift=false
-ValueDefault=true
-
-[Align Eigen Comma Init]
-Category=7
-Description="<html>Whether to align comma-separated statements following '&lt;&lt;' (as used to<br/>initialize Eigen matrices).</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=align_eigen_comma_init=true|align_eigen_comma_init=false
-ValueDefault=false
-
-[Align Asm Colon]
-Category=7
-Description="<html>Whether to align text after 'asm volatile ()' colons.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=align_asm_colon=true|align_asm_colon=false
-ValueDefault=false
-
-[Align Oc Msg Colon Span]
-Category=7
-Description="<html>(OC) Span for aligning parameters in an Objective-C message call<br/>on the ':'.<br/><br/>0: Don't align.</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_oc_msg_colon_span="
-MinVal=0
-MaxVal=5000
-ValueDefault=0
-
-[Align Oc Msg Colon First]
-Category=7
-Description="<html>(OC) Whether to always align with the first parameter, even if it is too<br/>short.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=align_oc_msg_colon_first=true|align_oc_msg_colon_first=false
-ValueDefault=false
-
-[Align Oc Decl Colon]
-Category=7
-Description="<html>(OC) Whether to align parameters in an Objective-C '+' or '-' declaration<br/>on the ':'.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=align_oc_decl_colon=true|align_oc_decl_colon=false
-ValueDefault=false
-
-[Align Oc Msg Colon Xcode Like]
-Category=7
-Description="<html>(OC) Whether to not align parameters in an Objectve-C message call if first<br/>colon is not on next line of the message call (the same way Xcode does<br/>aligment)</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=align_oc_msg_colon_xcode_like=true|align_oc_msg_colon_xcode_like=false
-ValueDefault=false
-
-[Cmt Width]
-Category=8
-Description="<html>Try to wrap comments at N columns.</html>"
-Enabled=false
-EditorType=numeric
-CallName="cmt_width="
-MinVal=0
-MaxVal=256
-ValueDefault=0
-
-[Cmt Reflow Mode]
-Category=8
-Description="<html>How to reflow comments.<br/><br/>0: No reflowing (apart from the line wrapping due to cmt_width) (default)<br/>1: No touching at all<br/>2: Full reflow (enable cmt_indent_multi for indent with line wrapping due to cmt_width)</html>"
-Enabled=false
-EditorType=numeric
-CallName="cmt_reflow_mode="
-MinVal=0
-MaxVal=2
-ValueDefault=0
-
-[Cmt Reflow Fold Regex File]
-Category=8
-Description="<html>Path to a file that contains regular expressions describing patterns for<br/>which the end of one line and the beginning of the next will be folded into<br/>the same sentence or paragraph during full comment reflow. The regular<br/>expressions are described using ECMAScript syntax. The syntax for this<br/>specification is as follows, where "..." indicates the custom regular<br/>expression and "n" indicates the nth end_of_prev_line_regex and<br/>beg_of_next_line_regex regular expression pair:<br/><br/>end_of_prev_line_regex[1] = "...$"<br/>beg_of_next_line_regex[1] = "^..."<br/>end_of_prev_line_regex[2] = "...$"<br/>beg_of_next_line_regex[2] = "^..."<br/> .<br/> .<br/> .<br/>end_of_prev_line_regex[n] = "...$"<br/>beg_of_next_line_regex[n] = "^..."<br/><br/>Note that use of this option overrides the default reflow fold regular<br/>expressions, which are internally defined as follows:<br/><br/>end_of_prev_line_regex[1] = "[\w,\]\)]$"<br/>beg_of_next_line_regex[1] = "^[\w,\[\(]"<br/>end_of_prev_line_regex[2] = "\.$"<br/>beg_of_next_line_regex[2] = "^[A-Z]"</html>"
-Enabled=false
-CallName=cmt_reflow_fold_regex_file=
-EditorType=string
-ValueDefault=
-
-[Cmt Reflow Indent To Paragraph Start]
-Category=8
-Description="<html>Whether to indent wrapped lines to the start of the encompassing paragraph<br/>during full comment reflow (cmt_reflow_mode = 2). Overrides the value<br/>specified by cmt_sp_after_star_cont.<br/><br/>Note that cmt_align_doxygen_javadoc_tags overrides this option for<br/>paragraphs associated with javadoc tags</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=cmt_reflow_indent_to_paragraph_start=true|cmt_reflow_indent_to_paragraph_start=false
-ValueDefault=false
-
-[Cmt Convert Tab To Spaces]
-Category=8
-Description="<html>Whether to convert all tabs to spaces in comments. If false, tabs in<br/>comments are left alone, unless used for indenting.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=cmt_convert_tab_to_spaces=true|cmt_convert_tab_to_spaces=false
-ValueDefault=false
-
-[Cmt Indent Multi]
-Category=8
-Description="<html>Whether to apply changes to multi-line comments, including cmt_width,<br/>keyword substitution and leading chars.<br/><br/>Default: true</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=cmt_indent_multi=true|cmt_indent_multi=false
-ValueDefault=true
-
-[Cmt Align Doxygen Javadoc Tags]
-Category=8
-Description="<html>Whether to align doxygen javadoc-style tags ('@param', '@return', etc.)<br/>and corresponding fields such that groups of consecutive block tags,<br/>parameter names, and descriptions align with one another. Overrides that<br/>which is specified by the cmt_sp_after_star_cont. If cmt_width &gt; 0, it may<br/>be necessary to enable cmt_indent_multi and set cmt_reflow_mode = 2<br/>in order to achieve the desired alignment for line-wrapping.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=cmt_align_doxygen_javadoc_tags=true|cmt_align_doxygen_javadoc_tags=false
-ValueDefault=false
-
-[Cmt Sp Before Doxygen Javadoc Tags]
-Category=8
-Description="<html>The number of spaces to insert after the star and before doxygen<br/>javadoc-style tags (@param, @return, etc). Requires enabling<br/>cmt_align_doxygen_javadoc_tags. Overrides that which is specified by the<br/>cmt_sp_after_star_cont.<br/><br/>Default: 1</html>"
-Enabled=false
-EditorType=numeric
-CallName="cmt_sp_before_doxygen_javadoc_tags="
-MinVal=0
-MaxVal=16
-ValueDefault=1
-
-[Cmt Trailing Single Line C To Cpp]
-Category=8
-Description="<html>Whether to change trailing, single-line c-comments into cpp-comments.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=cmt_trailing_single_line_c_to_cpp=true|cmt_trailing_single_line_c_to_cpp=false
-ValueDefault=false
-
-[Cmt C Group]
-Category=8
-Description="<html>Whether to group c-comments that look like they are in a block.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=cmt_c_group=true|cmt_c_group=false
-ValueDefault=false
-
-[Cmt C Nl Start]
-Category=8
-Description="<html>Whether to put an empty '/*' on the first line of the combined c-comment.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=cmt_c_nl_start=true|cmt_c_nl_start=false
-ValueDefault=false
-
-[Cmt C Nl End]
-Category=8
-Description="<html>Whether to add a newline before the closing '*/' of the combined c-comment.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=cmt_c_nl_end=true|cmt_c_nl_end=false
-ValueDefault=false
-
-[Cmt Cpp To C]
-Category=8
-Description="<html>Whether to change cpp-comments into c-comments.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=cmt_cpp_to_c=true|cmt_cpp_to_c=false
-ValueDefault=false
-
-[Cmt Cpp Group]
-Category=8
-Description="<html>Whether to group cpp-comments that look like they are in a block. Only<br/>meaningful if cmt_cpp_to_c=true.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=cmt_cpp_group=true|cmt_cpp_group=false
-ValueDefault=false
-
-[Cmt Cpp Nl Start]
-Category=8
-Description="<html>Whether to put an empty '/*' on the first line of the combined cpp-comment<br/>when converting to a c-comment.<br/><br/>Requires cmt_cpp_to_c=true and cmt_cpp_group=true.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=cmt_cpp_nl_start=true|cmt_cpp_nl_start=false
-ValueDefault=false
-
-[Cmt Cpp Nl End]
-Category=8
-Description="<html>Whether to add a newline before the closing '*/' of the combined cpp-comment<br/>when converting to a c-comment.<br/><br/>Requires cmt_cpp_to_c=true and cmt_cpp_group=true.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=cmt_cpp_nl_end=true|cmt_cpp_nl_end=false
-ValueDefault=false
-
-[Cmt Star Cont]
-Category=8
-Description="<html>Whether to put a star on subsequent comment lines.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=cmt_star_cont=true|cmt_star_cont=false
-ValueDefault=false
-
-[Cmt Sp Before Star Cont]
-Category=8
-Description="<html>The number of spaces to insert at the start of subsequent comment lines.</html>"
-Enabled=false
-EditorType=numeric
-CallName="cmt_sp_before_star_cont="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Cmt Sp After Star Cont]
-Category=8
-Description="<html>The number of spaces to insert after the star on subsequent comment lines.</html>"
-Enabled=false
-EditorType=numeric
-CallName="cmt_sp_after_star_cont="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Cmt Multi Check Last]
-Category=8
-Description="<html>For multi-line comments with a '*' lead, remove leading spaces if the first<br/>and last lines of the comment are the same length.<br/><br/>Default: true</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=cmt_multi_check_last=true|cmt_multi_check_last=false
-ValueDefault=true
-
-[Cmt Multi First Len Minimum]
-Category=8
-Description="<html>For multi-line comments with a '*' lead, remove leading spaces if the first<br/>and last lines of the comment are the same length AND if the length is<br/>bigger as the first_len minimum.<br/><br/>Default: 4</html>"
-Enabled=false
-EditorType=numeric
-CallName="cmt_multi_first_len_minimum="
-MinVal=1
-MaxVal=20
-ValueDefault=4
-
-[Cmt Insert File Header]
-Category=8
-Description="<html>Path to a file that contains text to insert at the beginning of a file if<br/>the file doesn't start with a C/C++ comment. If the inserted text contains<br/>'$(filename)', that will be replaced with the current file's name.</html>"
-Enabled=false
-CallName=cmt_insert_file_header=
-EditorType=string
-ValueDefault=
-
-[Cmt Insert File Footer]
-Category=8
-Description="<html>Path to a file that contains text to insert at the end of a file if the<br/>file doesn't end with a C/C++ comment. If the inserted text contains<br/>'$(filename)', that will be replaced with the current file's name.</html>"
-Enabled=false
-CallName=cmt_insert_file_footer=
-EditorType=string
-ValueDefault=
-
-[Cmt Insert Func Header]
-Category=8
-Description="<html>Path to a file that contains text to insert before a function definition if<br/>the function isn't preceded by a C/C++ comment. If the inserted text<br/>contains '$(function)', '$(javaparam)' or '$(fclass)', these will be<br/>replaced with, respectively, the name of the function, the javadoc '@param'<br/>and '@return' stuff, or the name of the class to which the member function<br/>belongs.</html>"
-Enabled=false
-CallName=cmt_insert_func_header=
-EditorType=string
-ValueDefault=
-
-[Cmt Insert Class Header]
-Category=8
-Description="<html>Path to a file that contains text to insert before a class if the class<br/>isn't preceded by a C/C++ comment. If the inserted text contains '$(class)',<br/>that will be replaced with the class name.</html>"
-Enabled=false
-CallName=cmt_insert_class_header=
-EditorType=string
-ValueDefault=
-
-[Cmt Insert Oc Msg Header]
-Category=8
-Description="<html>Path to a file that contains text to insert before an Objective-C message<br/>specification, if the method isn't preceded by a C/C++ comment. If the<br/>inserted text contains '$(message)' or '$(javaparam)', these will be<br/>replaced with, respectively, the name of the function, or the javadoc<br/>'@param' and '@return' stuff.</html>"
-Enabled=false
-CallName=cmt_insert_oc_msg_header=
-EditorType=string
-ValueDefault=
-
-[Cmt Insert Before Preproc]
-Category=8
-Description="<html>Whether a comment should be inserted if a preprocessor is encountered when<br/>stepping backwards from a function name.<br/><br/>Applies to cmt_insert_oc_msg_header, cmt_insert_func_header and<br/>cmt_insert_class_header.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=cmt_insert_before_preproc=true|cmt_insert_before_preproc=false
-ValueDefault=false
-
-[Cmt Insert Before Inlines]
-Category=8
-Description="<html>Whether a comment should be inserted if a function is declared inline to a<br/>class definition.<br/><br/>Applies to cmt_insert_func_header.<br/><br/>Default: true</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=cmt_insert_before_inlines=true|cmt_insert_before_inlines=false
-ValueDefault=true
-
-[Cmt Insert Before Ctor Dtor]
-Category=8
-Description="<html>Whether a comment should be inserted if the function is a class constructor<br/>or destructor.<br/><br/>Applies to cmt_insert_func_header.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=cmt_insert_before_ctor_dtor=true|cmt_insert_before_ctor_dtor=false
-ValueDefault=false
-
-[Mod Full Brace Do]
-Category=9
-Description="<html>Add or remove braces on a single-line 'do' statement.</html>"
-Enabled=false
-EditorType=multiple
-Choices=mod_full_brace_do=ignore|mod_full_brace_do=add|mod_full_brace_do=remove|mod_full_brace_do=force|mod_full_brace_do=not_defined
-ChoicesReadable="Ignore Mod Full Brace Do|Add Mod Full Brace Do|Remove Mod Full Brace Do|Force Mod Full Brace Do"
-ValueDefault=ignore
-
-[Mod Full Brace For]
-Category=9
-Description="<html>Add or remove braces on a single-line 'for' statement.</html>"
-Enabled=false
-EditorType=multiple
-Choices=mod_full_brace_for=ignore|mod_full_brace_for=add|mod_full_brace_for=remove|mod_full_brace_for=force|mod_full_brace_for=not_defined
-ChoicesReadable="Ignore Mod Full Brace For|Add Mod Full Brace For|Remove Mod Full Brace For|Force Mod Full Brace For"
-ValueDefault=ignore
-
-[Mod Full Brace Function]
-Category=9
-Description="<html>(Pawn) Add or remove braces on a single-line function definition.</html>"
-Enabled=false
-EditorType=multiple
-Choices=mod_full_brace_function=ignore|mod_full_brace_function=add|mod_full_brace_function=remove|mod_full_brace_function=force|mod_full_brace_function=not_defined
-ChoicesReadable="Ignore Mod Full Brace Function|Add Mod Full Brace Function|Remove Mod Full Brace Function|Force Mod Full Brace Function"
-ValueDefault=ignore
-
-[Mod Full Brace If]
-Category=9
-Description="<html>Add or remove braces on a single-line 'if' statement. Braces will not be<br/>removed if the braced statement contains an 'else'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=mod_full_brace_if=ignore|mod_full_brace_if=add|mod_full_brace_if=remove|mod_full_brace_if=force|mod_full_brace_if=not_defined
-ChoicesReadable="Ignore Mod Full Brace If|Add Mod Full Brace If|Remove Mod Full Brace If|Force Mod Full Brace If"
-ValueDefault=ignore
-
-[Mod Full Brace If Chain]
-Category=9
-Description="<html>Whether to enforce that all blocks of an 'if'/'else if'/'else' chain either<br/>have, or do not have, braces. If true, braces will be added if any block<br/>needs braces, and will only be removed if they can be removed from all<br/>blocks.<br/><br/>Overrides mod_full_brace_if.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=mod_full_brace_if_chain=true|mod_full_brace_if_chain=false
-ValueDefault=false
-
-[Mod Full Brace If Chain Only]
-Category=9
-Description="<html>Whether to add braces to all blocks of an 'if'/'else if'/'else' chain.<br/>If true, mod_full_brace_if_chain will only remove braces from an 'if' that<br/>does not have an 'else if' or 'else'.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=mod_full_brace_if_chain_only=true|mod_full_brace_if_chain_only=false
-ValueDefault=false
-
-[Mod Full Brace While]
-Category=9
-Description="<html>Add or remove braces on single-line 'while' statement.</html>"
-Enabled=false
-EditorType=multiple
-Choices=mod_full_brace_while=ignore|mod_full_brace_while=add|mod_full_brace_while=remove|mod_full_brace_while=force|mod_full_brace_while=not_defined
-ChoicesReadable="Ignore Mod Full Brace While|Add Mod Full Brace While|Remove Mod Full Brace While|Force Mod Full Brace While"
-ValueDefault=ignore
-
-[Mod Full Brace Using]
-Category=9
-Description="<html>Add or remove braces on single-line 'using ()' statement.</html>"
-Enabled=false
-EditorType=multiple
-Choices=mod_full_brace_using=ignore|mod_full_brace_using=add|mod_full_brace_using=remove|mod_full_brace_using=force|mod_full_brace_using=not_defined
-ChoicesReadable="Ignore Mod Full Brace Using|Add Mod Full Brace Using|Remove Mod Full Brace Using|Force Mod Full Brace Using"
-ValueDefault=ignore
-
-[Mod Full Brace Nl]
-Category=9
-Description="<html>Don't remove braces around statements that span N newlines</html>"
-Enabled=false
-EditorType=numeric
-CallName="mod_full_brace_nl="
-MinVal=0
-MaxVal=5000
-ValueDefault=0
-
-[Mod Full Brace Nl Block Rem Mlcond]
-Category=9
-Description="<html>Whether to prevent removal of braces from 'if'/'for'/'while'/etc. blocks<br/>which span multiple lines.<br/><br/>Affects:<br/> mod_full_brace_for<br/> mod_full_brace_if<br/> mod_full_brace_if_chain<br/> mod_full_brace_if_chain_only<br/> mod_full_brace_while<br/> mod_full_brace_using<br/><br/>Does not affect:<br/> mod_full_brace_do<br/> mod_full_brace_function</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=mod_full_brace_nl_block_rem_mlcond=true|mod_full_brace_nl_block_rem_mlcond=false
-ValueDefault=false
-
-[Mod Paren On Return]
-Category=9
-Description="<html>Add or remove unnecessary parenthesis on 'return' statement.</html>"
-Enabled=false
-EditorType=multiple
-Choices=mod_paren_on_return=ignore|mod_paren_on_return=add|mod_paren_on_return=remove|mod_paren_on_return=force|mod_paren_on_return=not_defined
-ChoicesReadable="Ignore Mod Paren On Return|Add Mod Paren On Return|Remove Mod Paren On Return|Force Mod Paren On Return"
-ValueDefault=ignore
-
-[Mod Pawn Semicolon]
-Category=9
-Description="<html>(Pawn) Whether to change optional semicolons to real semicolons.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=mod_pawn_semicolon=true|mod_pawn_semicolon=false
-ValueDefault=false
-
-[Mod Full Paren If Bool]
-Category=9
-Description="<html>Whether to fully parenthesize Boolean expressions in 'while' and 'if'<br/>statement, as in 'if (a &amp;&amp; b &gt; c)' =&gt; 'if (a &amp;&amp; (b &gt; c))'.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=mod_full_paren_if_bool=true|mod_full_paren_if_bool=false
-ValueDefault=false
-
-[Mod Remove Extra Semicolon]
-Category=9
-Description="<html>Whether to remove superfluous semicolons.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=mod_remove_extra_semicolon=true|mod_remove_extra_semicolon=false
-ValueDefault=false
-
-[Mod Remove Duplicate Include]
-Category=9
-Description="<html>Whether to remove duplicate include.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=mod_remove_duplicate_include=true|mod_remove_duplicate_include=false
-ValueDefault=false
-
-[Mod Add Long Function Closebrace Comment]
-Category=9
-Description="<html>If a function body exceeds the specified number of newlines and doesn't have<br/>a comment after the close brace, a comment will be added.</html>"
-Enabled=false
-EditorType=numeric
-CallName="mod_add_long_function_closebrace_comment="
-MinVal=0
-MaxVal=255
-ValueDefault=0
-
-[Mod Add Long Namespace Closebrace Comment]
-Category=9
-Description="<html>If a namespace body exceeds the specified number of newlines and doesn't<br/>have a comment after the close brace, a comment will be added.</html>"
-Enabled=false
-EditorType=numeric
-CallName="mod_add_long_namespace_closebrace_comment="
-MinVal=0
-MaxVal=255
-ValueDefault=0
-
-[Mod Add Long Class Closebrace Comment]
-Category=9
-Description="<html>If a class body exceeds the specified number of newlines and doesn't have a<br/>comment after the close brace, a comment will be added.</html>"
-Enabled=false
-EditorType=numeric
-CallName="mod_add_long_class_closebrace_comment="
-MinVal=0
-MaxVal=255
-ValueDefault=0
-
-[Mod Add Long Switch Closebrace Comment]
-Category=9
-Description="<html>If a switch body exceeds the specified number of newlines and doesn't have a<br/>comment after the close brace, a comment will be added.</html>"
-Enabled=false
-EditorType=numeric
-CallName="mod_add_long_switch_closebrace_comment="
-MinVal=0
-MaxVal=255
-ValueDefault=0
-
-[Mod Add Long Ifdef Endif Comment]
-Category=9
-Description="<html>If an #ifdef body exceeds the specified number of newlines and doesn't have<br/>a comment after the #endif, a comment will be added.</html>"
-Enabled=false
-EditorType=numeric
-CallName="mod_add_long_ifdef_endif_comment="
-MinVal=0
-MaxVal=255
-ValueDefault=0
-
-[Mod Add Long Ifdef Else Comment]
-Category=9
-Description="<html>If an #ifdef or #else body exceeds the specified number of newlines and<br/>doesn't have a comment after the #else, a comment will be added.</html>"
-Enabled=false
-EditorType=numeric
-CallName="mod_add_long_ifdef_else_comment="
-MinVal=0
-MaxVal=255
-ValueDefault=0
-
-[Mod Sort Case Sensitive]
-Category=9
-Description="<html>Whether to take care of the case by the mod_sort_xx options.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=mod_sort_case_sensitive=true|mod_sort_case_sensitive=false
-ValueDefault=false
-
-[Mod Sort Import]
-Category=9
-Description="<html>Whether to sort consecutive single-line 'import' statements.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=mod_sort_import=true|mod_sort_import=false
-ValueDefault=false
-
-[Mod Sort Using]
-Category=9
-Description="<html>(C#) Whether to sort consecutive single-line 'using' statements.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=mod_sort_using=true|mod_sort_using=false
-ValueDefault=false
-
-[Mod Sort Include]
-Category=9
-Description="<html>Whether to sort consecutive single-line '#include' statements (C/C++) and<br/>'#import' statements (Objective-C). Be aware that this has the potential to<br/>break your code if your includes/imports have ordering dependencies.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=mod_sort_include=true|mod_sort_include=false
-ValueDefault=false
-
-[Mod Sort Incl Import Prioritize Filename]
-Category=9
-Description="<html>Whether to prioritize '#include' and '#import' statements that contain<br/>filename without extension when sorting is enabled.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=mod_sort_incl_import_prioritize_filename=true|mod_sort_incl_import_prioritize_filename=false
-ValueDefault=false
-
-[Mod Sort Incl Import Prioritize Extensionless]
-Category=9
-Description="<html>Whether to prioritize '#include' and '#import' statements that does not<br/>contain extensions when sorting is enabled.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=mod_sort_incl_import_prioritize_extensionless=true|mod_sort_incl_import_prioritize_extensionless=false
-ValueDefault=false
-
-[Mod Sort Incl Import Prioritize Angle Over Quotes]
-Category=9
-Description="<html>Whether to prioritize '#include' and '#import' statements that contain<br/>angle over quotes when sorting is enabled.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=mod_sort_incl_import_prioritize_angle_over_quotes=true|mod_sort_incl_import_prioritize_angle_over_quotes=false
-ValueDefault=false
-
-[Mod Sort Incl Import Ignore Extension]
-Category=9
-Description="<html>Whether to ignore file extension in '#include' and '#import' statements<br/>for sorting comparison.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=mod_sort_incl_import_ignore_extension=true|mod_sort_incl_import_ignore_extension=false
-ValueDefault=false
-
-[Mod Sort Incl Import Grouping Enabled]
-Category=9
-Description="<html>Whether to group '#include' and '#import' statements when sorting is enabled.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=mod_sort_incl_import_grouping_enabled=true|mod_sort_incl_import_grouping_enabled=false
-ValueDefault=false
-
-[Mod Move Case Break]
-Category=9
-Description="<html>Whether to move a 'break' that appears after a fully braced 'case' before<br/>the close brace, as in 'case X: { ... } break;' =&gt; 'case X: { ... break; }'.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=mod_move_case_break=true|mod_move_case_break=false
-ValueDefault=false
-
-[Mod Case Brace]
-Category=9
-Description="<html>Add or remove braces around a fully braced case statement. Will only remove<br/>braces if there are no variable declarations in the block.</html>"
-Enabled=false
-EditorType=multiple
-Choices=mod_case_brace=ignore|mod_case_brace=add|mod_case_brace=remove|mod_case_brace=force|mod_case_brace=not_defined
-ChoicesReadable="Ignore Mod Case Brace|Add Mod Case Brace|Remove Mod Case Brace|Force Mod Case Brace"
-ValueDefault=ignore
-
-[Mod Remove Empty Return]
-Category=9
-Description="<html>Whether to remove a void 'return;' that appears as the last statement in a<br/>function.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=mod_remove_empty_return=true|mod_remove_empty_return=false
-ValueDefault=false
-
-[Mod Enum Last Comma]
-Category=9
-Description="<html>Add or remove the comma after the last value of an enumeration.</html>"
-Enabled=false
-EditorType=multiple
-Choices=mod_enum_last_comma=ignore|mod_enum_last_comma=add|mod_enum_last_comma=remove|mod_enum_last_comma=force|mod_enum_last_comma=not_defined
-ChoicesReadable="Ignore Mod Enum Last Comma|Add Mod Enum Last Comma|Remove Mod Enum Last Comma|Force Mod Enum Last Comma"
-ValueDefault=ignore
-
-[Mod Sort Oc Properties]
-Category=9
-Description="<html>(OC) Whether to organize the properties. If true, properties will be<br/>rearranged according to the mod_sort_oc_property_*_weight factors.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=mod_sort_oc_properties=true|mod_sort_oc_properties=false
-ValueDefault=false
-
-[Mod Sort Oc Property Class Weight]
-Category=9
-Description="<html>(OC) Weight of a class property modifier.</html>"
-Enabled=false
-EditorType=numeric
-CallName="mod_sort_oc_property_class_weight="
-MinVal=
-MaxVal=
-ValueDefault=0
-
-[Mod Sort Oc Property Thread Safe Weight]
-Category=9
-Description="<html>(OC) Weight of 'atomic' and 'nonatomic'.</html>"
-Enabled=false
-EditorType=numeric
-CallName="mod_sort_oc_property_thread_safe_weight="
-MinVal=
-MaxVal=
-ValueDefault=0
-
-[Mod Sort Oc Property Readwrite Weight]
-Category=9
-Description="<html>(OC) Weight of 'readwrite' when organizing properties.</html>"
-Enabled=false
-EditorType=numeric
-CallName="mod_sort_oc_property_readwrite_weight="
-MinVal=
-MaxVal=
-ValueDefault=0
-
-[Mod Sort Oc Property Reference Weight]
-Category=9
-Description="<html>(OC) Weight of a reference type specifier ('retain', 'copy', 'assign',<br/>'weak', 'strong') when organizing properties.</html>"
-Enabled=false
-EditorType=numeric
-CallName="mod_sort_oc_property_reference_weight="
-MinVal=
-MaxVal=
-ValueDefault=0
-
-[Mod Sort Oc Property Getter Weight]
-Category=9
-Description="<html>(OC) Weight of getter type ('getter=') when organizing properties.</html>"
-Enabled=false
-EditorType=numeric
-CallName="mod_sort_oc_property_getter_weight="
-MinVal=
-MaxVal=
-ValueDefault=0
-
-[Mod Sort Oc Property Setter Weight]
-Category=9
-Description="<html>(OC) Weight of setter type ('setter=') when organizing properties.</html>"
-Enabled=false
-EditorType=numeric
-CallName="mod_sort_oc_property_setter_weight="
-MinVal=
-MaxVal=
-ValueDefault=0
-
-[Mod Sort Oc Property Nullability Weight]
-Category=9
-Description="<html>(OC) Weight of nullability type ('nullable', 'nonnull', 'null_unspecified',<br/>'null_resettable') when organizing properties.</html>"
-Enabled=false
-EditorType=numeric
-CallName="mod_sort_oc_property_nullability_weight="
-MinVal=
-MaxVal=
-ValueDefault=0
-
-[Pp Indent]
-Category=10
-Description="<html>Add or remove indentation of preprocessor directives inside #if blocks<br/>at brace level 0 (file-level).</html>"
-Enabled=false
-EditorType=multiple
-Choices=pp_indent=ignore|pp_indent=add|pp_indent=remove|pp_indent=force|pp_indent=not_defined
-ChoicesReadable="Ignore Pp Indent|Add Pp Indent|Remove Pp Indent|Force Pp Indent"
-ValueDefault=ignore
-
-[Pp Indent At Level]
-Category=10
-Description="<html>Whether to indent #if/#else/#endif at the brace level. If false, these are<br/>indented from column 1.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=pp_indent_at_level=true|pp_indent_at_level=false
-ValueDefault=false
-
-[Pp Indent Count]
-Category=10
-Description="<html>Specifies the number of columns to indent preprocessors per level<br/>at brace level 0 (file-level). If pp_indent_at_level=false, also specifies<br/>the number of columns to indent preprocessors per level<br/>at brace level &gt; 0 (function-level).<br/><br/>Default: 1</html>"
-Enabled=false
-EditorType=numeric
-CallName="pp_indent_count="
-MinVal=0
-MaxVal=16
-ValueDefault=1
-
-[Pp Space]
-Category=10
-Description="<html>Add or remove space after # based on pp_level of #if blocks.</html>"
-Enabled=false
-EditorType=multiple
-Choices=pp_space=ignore|pp_space=add|pp_space=remove|pp_space=force|pp_space=not_defined
-ChoicesReadable="Ignore Pp Space|Add Pp Space|Remove Pp Space|Force Pp Space"
-ValueDefault=ignore
-
-[Pp Space Count]
-Category=10
-Description="<html>Sets the number of spaces per level added with pp_space.</html>"
-Enabled=false
-EditorType=numeric
-CallName="pp_space_count="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Pp Indent Region]
-Category=10
-Description="<html>The indent for '#region' and '#endregion' in C# and '#pragma region' in<br/>C/C++. Negative values decrease indent down to the first column.</html>"
-Enabled=false
-EditorType=numeric
-CallName="pp_indent_region="
-MinVal=-16
-MaxVal=16
-ValueDefault=0
-
-[Pp Region Indent Code]
-Category=10
-Description="<html>Whether to indent the code between #region and #endregion.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=pp_region_indent_code=true|pp_region_indent_code=false
-ValueDefault=false
-
-[Pp Indent If]
-Category=10
-Description="<html>If pp_indent_at_level=true, sets the indent for #if, #else and #endif when<br/>not at file-level. Negative values decrease indent down to the first column.<br/><br/>=0: Indent preprocessors using output_tab_size<br/>&gt;0: Column at which all preprocessors will be indented</html>"
-Enabled=false
-EditorType=numeric
-CallName="pp_indent_if="
-MinVal=-16
-MaxVal=16
-ValueDefault=0
-
-[Pp If Indent Code]
-Category=10
-Description="<html>Whether to indent the code between #if, #else and #endif.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=pp_if_indent_code=true|pp_if_indent_code=false
-ValueDefault=false
-
-[Pp Indent In Guard]
-Category=10
-Description="<html>Whether to indent the body of an #if that encompasses all the code in the file.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=pp_indent_in_guard=true|pp_indent_in_guard=false
-ValueDefault=false
-
-[Pp Define At Level]
-Category=10
-Description="<html>Whether to indent '#define' at the brace level. If false, these are<br/>indented from column 1.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=pp_define_at_level=true|pp_define_at_level=false
-ValueDefault=false
-
-[Pp Include At Level]
-Category=10
-Description="<html>Whether to indent '#include' at the brace level.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=pp_include_at_level=true|pp_include_at_level=false
-ValueDefault=false
-
-[Pp Ignore Define Body]
-Category=10
-Description="<html>Whether to ignore the '#define' body while formatting.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=pp_ignore_define_body=true|pp_ignore_define_body=false
-ValueDefault=false
-
-[Pp Indent Case]
-Category=10
-Description="<html>Whether to indent case statements between #if, #else, and #endif.<br/>Only applies to the indent of the preprocesser that the case statements<br/>directly inside of.<br/><br/>Default: true</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=pp_indent_case=true|pp_indent_case=false
-ValueDefault=true
-
-[Pp Indent Func Def]
-Category=10
-Description="<html>Whether to indent whole function definitions between #if, #else, and #endif.<br/>Only applies to the indent of the preprocesser that the function definition<br/>is directly inside of.<br/><br/>Default: true</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=pp_indent_func_def=true|pp_indent_func_def=false
-ValueDefault=true
-
-[Pp Indent Extern]
-Category=10
-Description="<html>Whether to indent extern C blocks between #if, #else, and #endif.<br/>Only applies to the indent of the preprocesser that the extern block is<br/>directly inside of.<br/><br/>Default: true</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=pp_indent_extern=true|pp_indent_extern=false
-ValueDefault=true
-
-[Pp Indent Brace]
-Category=10
-Description="<html>Whether to indent braces directly inside #if, #else, and #endif.<br/>Only applies to the indent of the preprocesser that the braces are directly<br/>inside of.<br/><br/>Default: true</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=pp_indent_brace=true|pp_indent_brace=false
-ValueDefault=true
-
-[Include Category 0]
-Category=11
-Description="<html>The regex for include category with priority 0.</html>"
-Enabled=false
-CallName=include_category_0=
-EditorType=string
-ValueDefault=
-
-[Include Category 1]
-Category=11
-Description="<html>The regex for include category with priority 1.</html>"
-Enabled=false
-CallName=include_category_1=
-EditorType=string
-ValueDefault=
-
-[Include Category 2]
-Category=11
-Description="<html>The regex for include category with priority 2.</html>"
-Enabled=false
-CallName=include_category_2=
-EditorType=string
-ValueDefault=
-
-[Use Indent Func Call Param]
-Category=12
-Description="<html>true: indent_func_call_param will be used (default)<br/>false: indent_func_call_param will NOT be used<br/><br/>Default: true</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=use_indent_func_call_param=true|use_indent_func_call_param=false
-ValueDefault=true
-
-[Use Indent Continue Only Once]
-Category=12
-Description="<html>The value of the indentation for a continuation line is calculated<br/>differently if the statement is:<br/>- a declaration: your case with QString fileName ...<br/>- an assignment: your case with pSettings = new QSettings( ...<br/><br/>At the second case the indentation value might be used twice:<br/>- at the assignment<br/>- at the function call (if present)<br/><br/>To prevent the double use of the indentation value, use this option with the<br/>value 'true'.<br/><br/>true: indent_continue will be used only once<br/>false: indent_continue will be used every time (default)</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=use_indent_continue_only_once=true|use_indent_continue_only_once=false
-ValueDefault=false
-
-[Indent Cpp Lambda Only Once]
-Category=12
-Description="<html>The value might be used twice:<br/>- at the assignment<br/>- at the opening brace<br/><br/>To prevent the double use of the indentation value, use this option with the<br/>value 'true'.<br/><br/>true: indentation will be used only once<br/>false: indentation will be used every time (default)</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_cpp_lambda_only_once=true|indent_cpp_lambda_only_once=false
-ValueDefault=false
-
-[Use Sp After Angle Always]
-Category=12
-Description="<html>Whether sp_after_angle takes precedence over sp_inside_fparen. This was the<br/>historic behavior, but is probably not the desired behavior, so this is off<br/>by default.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=use_sp_after_angle_always=true|use_sp_after_angle_always=false
-ValueDefault=false
-
-[Use Options Overriding For Qt Macros]
-Category=12
-Description="<html>Whether to apply special formatting for Qt SIGNAL/SLOT macros. Essentially,<br/>this tries to format these so that they match Qt's normalized form (i.e. the<br/>result of QMetaObject::normalizedSignature), which can slightly improve the<br/>performance of the QObject::connect call, rather than how they would<br/>otherwise be formatted.<br/><br/>See options_for_QT.cpp for details.<br/><br/>Default: true</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=use_options_overriding_for_qt_macros=true|use_options_overriding_for_qt_macros=false
-ValueDefault=true
-
-[Use Form Feed No More As Whitespace Character]
-Category=12
-Description="<html>If true: the form feed character is removed from the list of whitespace<br/>characters. See https://en.cppreference.com/w/cpp/string/byte/isspace.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=use_form_feed_no_more_as_whitespace_character=true|use_form_feed_no_more_as_whitespace_character=false
-ValueDefault=false
-
-[Warn Level Tabs Found In Verbatim String Literals]
-Category=13
-Description="<html>(C#) Warning is given if doing tab-to-\t replacement and we have found one<br/>in a C# verbatim string literal.<br/><br/>Default: 2</html>"
-Enabled=false
-EditorType=numeric
-CallName="warn_level_tabs_found_in_verbatim_string_literals="
-MinVal=1
-MaxVal=3
-ValueDefault=2
-
-[Debug Max Number Of Loops]
-Category=13
-Description="<html>Limit the number of loops.<br/>Used by uncrustify.cpp to exit from infinite loop.<br/>0: no limit.</html>"
-Enabled=false
-EditorType=numeric
-CallName="debug_max_number_of_loops="
-MinVal=
-MaxVal=
-ValueDefault=0
-
-[Debug Line Number To Protocol]
-Category=13
-Description="<html>Set the number of the line to protocol;<br/>Used in the function prot_the_line if the 2. parameter is zero.<br/>0: nothing protocol.</html>"
-Enabled=false
-EditorType=numeric
-CallName="debug_line_number_to_protocol="
-MinVal=
-MaxVal=
-ValueDefault=0
-
-[Debug Timeout]
-Category=13
-Description="<html>Set the number of second(s) before terminating formatting the current file,<br/>0: no timeout.<br/>only for linux</html>"
-Enabled=false
-EditorType=numeric
-CallName="debug_timeout="
-MinVal=
-MaxVal=
-ValueDefault=0
-
-[Debug Truncate]
-Category=13
-Description="<html>Set the number of characters to be printed if the text is too long,<br/>0: do not truncate.</html>"
-Enabled=false
-EditorType=numeric
-CallName="debug_truncate="
-MinVal=0
-MaxVal=960
-ValueDefault=0
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/forUncrustifySources.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/forUncrustifySources.cfg
deleted file mode 100644
index ffab574e..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/forUncrustifySources.cfg
+++ /dev/null
@@ -1,471 +0,0 @@
-# The uncrustify sources are uncrustified with this config file.
-using 0.70.0
-
-# General options
-output_tab_size = 3
-tok_split_gte = true
-
-# Code alignment options
-align_asm_colon = true
-align_assign_decl_func = 2
-align_assign_func_proto_span = 4
-align_assign_span = 1
-align_enum_equ_span = 4
-align_enum_equ_thresh = 8
-align_func_params = true
-align_func_proto_star_style = 1
-align_nl_cont = true
-align_number_right = true
-align_pp_define_gap = 4
-align_pp_define_span = 3
-align_right_cmt_same_level = true
-align_right_cmt_span = 3
-align_struct_init_span = 3
-align_typedef_gap = 3
-align_typedef_span = 5
-align_typedef_star_style = 1
-align_var_class_span = 2
-align_var_def_amp_style = 1
-align_var_def_colon = true
-align_var_def_inline = true
-align_var_def_span = 2
-align_var_def_star_style = 1
-align_var_struct_span = 3
-
-# Indenting options
-indent_bool_paren = true
-indent_class = true
-indent_columns = 3
-indent_compound_literal_return = false
-indent_cpp_lambda_only_once = true
-indent_first_bool_expr = true
-indent_macro_brace = true
-indent_member = 3
-indent_sparen_extra = 0
-indent_with_tabs = 0
-indent_oc_inside_msg_sel = false
-indent_off_after_assign = false
-indent_inside_ternary_operator = false
-
-# Newline adding and removing options
-nl_after_access_spec = 1
-nl_after_brace_close = true
-nl_after_brace_open = true
-nl_after_case = true
-nl_after_do = force
-nl_after_for = force
-nl_after_func_proto = 1
-nl_after_func_proto_group = 2
-nl_after_if = remove
-nl_after_member = remove
-nl_after_namespace = 2
-nl_after_return = true
-nl_after_semicolon = true
-nl_after_switch = remove
-nl_after_vbrace_open = true
-nl_after_while = remove
-nl_assign_brace = add
-nl_assign_leave_one_liners = true
-nl_before_brace_open = false
-nl_before_case = true
-nl_before_do = force
-nl_before_for = force
-nl_before_func_body_def = 3
-nl_before_if = force
-nl_before_if_closing_paren = remove
-nl_before_namespace = 2
-nl_before_opening_brace_func_class_def = force
-nl_before_switch = force
-nl_before_while = force
-nl_brace_catch = force
-nl_brace_else = add
-nl_brace_fparen = remove
-nl_brace_while = remove
-nl_case_colon_brace = force
-nl_catch_brace = add
-nl_class_brace = force
-nl_class_colon = remove
-nl_class_leave_one_liner_groups = true
-nl_class_leave_one_liners = true
-nl_template_args = false
-nl_template_class_decl = remove
-nl_template_class_def = force
-nl_template_end = false
-nl_template_func_decl = remove
-nl_template_func_def = force
-nl_template_start = false
-nl_template_var = remove
-nl_template_using = remove
-nl_comment_func_def = 1
-nl_constr_colon = force
-nl_constr_init_args = force
-nl_do_brace = add
-nl_else_brace = add
-nl_else_if = remove
-nl_elseif_brace = add
-nl_end_of_file = force
-nl_end_of_file_min = 1
-nl_enum_brace = force
-nl_enum_class_identifier = remove
-nl_enum_class = remove
-nl_enum_colon_type = remove
-nl_enum_identifier_colon = remove
-nl_enum_leave_one_liners = true
-nl_fcall_brace = add
-nl_fdef_brace = force
-nl_fdef_brace_cond = force
-nl_finally_brace = add
-nl_for_brace = add
-nl_func_call_empty = remove
-nl_func_call_paren = remove
-nl_func_call_paren_empty = remove
-nl_func_class_scope = remove
-nl_func_decl_args = remove
-nl_func_decl_empty = remove
-nl_func_decl_end = remove
-nl_func_decl_end_single = remove
-nl_func_decl_start = remove
-nl_func_decl_start_single = remove
-nl_func_def_empty = remove
-nl_func_def_end = remove
-nl_func_def_end_single = remove
-nl_func_def_paren = remove
-nl_func_def_paren_empty = remove
-nl_func_def_start = remove
-nl_func_def_start_single = remove
-nl_func_paren = remove
-nl_func_paren_empty = remove
-nl_func_proto_type_name = remove
-nl_func_scope_name = remove
-nl_func_type_name = remove
-nl_func_type_name_class = remove
-nl_func_var_def_blk = 1
-nl_getset_leave_one_liners = true
-nl_if_brace = add
-nl_inside_empty_func = 1
-nl_inside_namespace = 2
-nl_max = 3
-nl_namespace_brace = force
-nl_return_expr = remove
-nl_squeeze_ifdef = true
-nl_start_of_file = remove
-nl_struct_brace = add
-nl_switch_brace = add
-nl_try_brace = add
-nl_type_brace_init_lst = force
-nl_type_brace_init_lst_close = force
-nl_type_brace_init_lst_open = force
-nl_union_brace = add
-nl_while_brace = add
-
-# Positioning options
-pos_bool = lead
-pos_constr_colon = lead_break
-pos_constr_comma = lead_force
-pos_enum_comma = trail_force
-
-# Preprocessor options
-pp_indent = remove
-pp_space = remove
-
-# Spacing options
-sp_addr = remove
-sp_after_angle = force
-sp_after_byref_func = remove
-sp_after_byref = remove
-sp_after_cast = remove
-sp_after_class_colon = force
-sp_after_comma = force
-sp_after_constr_colon = force
-sp_after_dc = remove
-sp_after_for_colon = force
-sp_after_new = force
-sp_after_operator = remove
-sp_after_operator_sym = remove
-sp_after_ptr_star_func = remove
-sp_after_ptr_star_qualifier = remove
-sp_after_ptr_star = remove
-sp_after_semi = force
-sp_after_semi_for = force
-sp_after_semi_for_empty = remove
-sp_after_sparen = force
-sp_after_tparen_close = remove
-sp_after_type = force
-sp_after_type_brace_init_lst_open = force
-sp_angle_paren_empty = remove
-sp_angle_paren = remove
-sp_angle_word = force
-sp_arith_additive = force
-sp_arith = force
-sp_assign_default = force
-sp_assign = force
-sp_attribute_paren = remove
-sp_balance_nested_parens = false
-sp_before_angle = remove
-sp_before_byref = force
-sp_before_byref_func = force
-sp_before_case_colon = remove
-sp_before_class_colon = force
-sp_before_comma = remove
-sp_before_dc = remove
-sp_before_ellipsis = remove
-sp_before_for_colon = force
-sp_before_ptr_star = force
-sp_before_ptr_star_func = force
-sp_before_semi = remove
-sp_before_semi_for_empty = force
-sp_before_semi_for = remove
-sp_before_sparen = force
-sp_before_square = remove
-sp_before_squares = remove
-sp_before_type_brace_init_lst_close = force
-sp_before_unnamed_byref = force
-sp_before_unnamed_ptr_star = force
-sp_before_vardef_square = remove
-sp_between_ptr_star = remove
-sp_between_semi_for_empty = force
-sp_bool = force
-sp_brace_brace = force
-sp_brace_close_while = force
-sp_brace_typedef = force
-sp_catch_paren = force
-sp_compare = force
-sp_cond_colon_after = force
-sp_cond_colon_before = force
-sp_cond_question_after = force
-sp_cond_question_before = force
-sp_cpp_before_struct_binding = remove
-sp_cpp_cast_paren = remove
-sp_cpp_lambda_fparen = remove
-sp_cpp_lambda_paren_brace = force
-sp_cpp_lambda_square_brace = force
-sp_cpp_lambda_square_paren = remove
-sp_decltype_paren = remove
-sp_defined_paren = force
-sp_deref = remove
-sp_do_brace_open = force
-sp_endif_cmt = force
-sp_enum_after_assign = force
-sp_enum_assign = force
-sp_enum_before_assign = force
-sp_enum_colon = force
-sp_fparen_brace = force
-sp_fparen_brace_initializer = force
-sp_func_call_paren_empty = remove
-sp_func_call_paren = remove
-sp_func_class_paren = remove
-sp_func_class_paren_empty = remove
-sp_func_def_paren_empty = remove
-sp_func_def_paren = remove
-sp_func_proto_paren_empty = remove
-sp_func_proto_paren = remove
-sp_func_type_paren = remove
-sp_incdec = remove
-sp_inside_angle_empty = remove
-sp_inside_angle = remove
-sp_inside_braces_empty = remove
-sp_inside_braces_enum = force
-sp_inside_braces = force
-sp_inside_braces_struct = force
-sp_inside_fparen = remove
-sp_inside_fparens = remove
-sp_inside_paren = remove
-sp_inside_paren_cast = remove
-sp_inside_sparen = remove
-sp_inside_sparen_close = remove
-sp_inside_sparen_open = remove
-sp_inside_square = remove
-sp_inside_square_empty = remove
-sp_inside_tparen = remove
-sp_inv = remove
-sp_member = remove
-sp_not = remove
-sp_paren_paren = remove
-sp_paren_qualifier = force
-sp_pp_concat = force
-sp_pp_stringify = force
-sp_ptr_star_func_var = remove
-sp_ptr_star_paren = force
-sp_return_brace = remove
-sp_return_paren = remove
-sp_sign = remove
-sp_sizeof_paren = remove
-sp_sparen_brace = force
-sp_template_angle = remove
-sp_trailing_return = force
-sp_type_brace_init_lst = remove
-sp_type_func = force
-sp_while_paren_open = force
-sp_word_brace_init_lst = remove
-
-# Comment modification options
-cmt_star_cont = true
-
-# eat
-eat_blanks_after_open_brace = true
-eat_blanks_before_close_brace = true
-
-# Code modifying options
-mod_add_long_function_closebrace_comment = 40
-mod_add_long_namespace_closebrace_comment = 5
-mod_add_long_switch_closebrace_comment = 40
-mod_full_brace_do = add
-mod_full_brace_for = add
-mod_full_brace_if = add
-mod_full_brace_while = add
-mod_paren_on_return = add
-#mod_remove_empty_return = true
-mod_remove_empty_return = false
-mod_remove_extra_semicolon = true
-mod_sort_include = true
-mod_sort_incl_import_prioritize_filename = false
-mod_sort_incl_import_prioritize_extensionless = false
-mod_sort_incl_import_prioritize_angle_over_quotes = false
-mod_sort_incl_import_ignore_extension = false
-mod_sort_incl_import_grouping_enabled = false
-debug_timeout = 0
-
-# the build of uncrustify needs the options to be set to ignore
-sp_after_assign = ignore
-sp_before_assign = ignore
-sp_before_tr_cmt = ignore
-sp_cmt_cpp_start = ignore
-nl_before_member = ignore
-nl_brace_brace = ignore
-nl_cpp_ldef_brace = ignore // TODO
-nl_enum_own_lines = ignore
-nl_func_call_args = ignore
-nl_func_call_start = ignore // remove
-nl_func_call_end = ignore // remove
-nl_func_def_args = ignore
-
-use_form_feed_no_more_as_whitespace_character = false
-
-# NOT yet used sp_xx options
-# sp_after_decltype
-# sp_after_invariant_paren
-# sp_after_mdatype_commas
-# sp_after_newop_paren
-# sp_after_noexcept
-# sp_after_oc_at_sel
-# sp_after_oc_at_sel_parens
-# sp_after_oc_block_caret
-# sp_after_oc_colon
-# sp_after_oc_dict_colon
-# sp_after_oc_msg_receiver
-# sp_after_oc_property
-# sp_after_oc_return_type
-# sp_after_oc_scope
-# sp_after_oc_synchronized
-# sp_after_oc_type
-# sp_after_operator_sym_empty
-# sp_after_ptr_block_caret
-# sp_after_send_oc_colon
-# sp_after_tag
-# sp_after_throw
-# sp_angle_colon
-# sp_angle_shift
-# sp_annotation_paren
-# sp_before_constr_colon
-# sp_before_mdatype_commas
-# sp_before_nl_cont
-# sp_before_oc_block_caret
-# sp_before_oc_colon
-# sp_before_oc_dict_colon
-# sp_before_oc_proto_list
-# sp_before_pp_stringify
-# sp_before_send_oc_colon
-# sp_before_square_asm_block
-# sp_before_template_paren
-# sp_between_mdatype_commas
-# sp_between_new_paren
-# sp_brace_catch
-# sp_brace_else
-# sp_brace_finally
-# sp_case_label
-# sp_catch_brace
-# sp_cond_question
-# sp_cond_ternary_short
-# sp_cparen_oparen
-# sp_cpp_lambda_assign
-# sp_d_array_colon
-# sp_else_brace
-# sp_enum_paren
-# sp_extern_paren
-# sp_finally_brace
-# sp_fparen_dbrace
-# sp_func_call_user_inside_fparen
-# sp_func_call_user_paren
-# sp_func_call_user_paren_paren
-# sp_getset_brace
-# sp_inside_braces_oc_dict
-# sp_inside_newop_paren
-# sp_inside_newop_paren_close
-# sp_inside_newop_paren_open
-# sp_inside_oc_at_sel_parens
-# sp_inside_square_oc_array
-# sp_inside_type_brace_init_lst
-# sp_invariant_paren
-# sp_macro
-# sp_macro_func
-# sp_oc_brace_catch
-# sp_oc_catch_brace
-# sp_oc_catch_paren
-# sp_oc_classname_paren
-# sp_paren_brace
-# sp_paren_comma
-# sp_paren_ellipsis
-# sp_paren_noexcept
-# sp_range
-# sp_scope_paren
-# sp_sizeof_ellipsis
-# sp_sizeof_ellipsis_paren
-# sp_special_semi
-# sp_square_fparen
-# sp_super_paren
-# sp_this_paren
-# sp_throw_paren
-# sp_trailing_ret_t
-# sp_try_brace
-# sp_type_ellipsis
-# sp_type_question
-# sp_vala_after_translation
-# sp_version_paren
-# sp_word_brace
-# sp_word_brace_ns
-
-# NOT yet used nl_xx options
-# nl_after_annotation
-# nl_after_square_assign
-# nl_after_synchronized
-# nl_assign_square
-# nl_before_synchronized
-# nl_before_throw
-# nl_between_annotation
-# nl_brace_finally
-# nl_brace_square
-# nl_brace_struct_var
-# nl_class_init_args
-# nl_getset_brace
-# nl_oc_before_end
-# nl_oc_before_implementation
-# nl_oc_before_interface
-# nl_oc_block_brace
-# nl_oc_brace_catch
-# nl_oc_catch_brace
-# nl_oc_implementation_brace
-# nl_oc_interface_brace
-# nl_oc_mdef_brace
-# nl_paren_dbrace_open
-# nl_property_brace
-# nl_scope_brace
-# nl_synchronized_brace
-# nl_template_class
-# nl_tsquare_brace
-# nl_unittest_brace
-# nl_using_brace
-# nl_version_brace
-# nl_func_call_args_multi_line_ignore_closures
-
-# NOT yet used indent_xx options
-# indent_off_after_return
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/package.json b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/package.json
deleted file mode 100644
index e8ffb38c..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/package.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
- "name": "uncrustify",
- "version": "0.74.0",
- "description": "A highly configurable, easily modifiable source code beautifier for C, C++, C#, ObjectiveC, D, Java, Pawn and VALA",
- "main": "uncrustify",
- "scripts": {
- "preinstall": "mkdir -p build && cd build && cmake .. && make"
- },
- "bin": "src/uncrustify",
- "repository": {
- "type": "git",
- "url": "https://github.com/uncrustify/uncrustify"
- },
- "keywords": [
- "uncrustify",
- "source code beautifier"
- ],
- "author": "Ben Gardner",
- "author": "Guy Maurel",
- "license": "GPL-2.0-or-later"
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/release-process.rst b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/release-process.rst
deleted file mode 100644
index 1cabf504..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/release-process.rst
+++ /dev/null
@@ -1,325 +0,0 @@
-============================
- Uncrustify Release Process
-============================
-
-.. Update the date in the next line when editing this document!
-
-*This document was last updated on 2021-05-12, for Uncrustify 0.73.0.*
-
-This document uses "0.1.2" throughout as an example version number.
-Whenever you see this, you should substitute the version number
-of the new release being prepared.
-
-Paths are specified in git syntax, i.e. ``:/`` is the repository root.
-
-Requirements
-============
-
-This document assumes you are using a Linux-based OS.
-While it should be possible to cut a release on Windows,
-using e.g. the `Git for Windows SDK <https://gitforwindows.org/>`_
-or a MinGW_ environment, the names and/or arguments to some commands
-may be different.
-
-
-In addition to the build and test requirements for Uncrustify itself
-(CMake, a C++ compiler, Python, git), you will also need:
-
-- tar
-- python3-git
-- Binutils-mingw-w64
-- Gcc-mingw-w64
-- G++-mingw-w64
-- zip
-- wget (optional)
-- scp (to update documentation on the SourceForge page)
-
-Using packages provided by your OS distribution is *strongly* recommended.
-(Exact package names may vary depending on your distribution.)
-Examples use ``wget`` to download files via command line,
-but any mechanism of obtaining files over HTTPS may be employed.
-
-Preparing a Candidate
-=====================
-
-The first step, obviously, is deciding to make a release.
-Prior to making a release, verify that the repository is in a stable state
-and that all CI (continuous integration - Travis and AppVeyor) has passed.
-This should ensure all tests pass and building
-(including cross-compiling) for Windows is working.
-
-Once the release process is started,
-only pull requests needed to fix critical bugs,
-or related to the release process, should be accepted.
-(This will minimize the need to redo or repeat work
-such as updating the documentation, especially the change log.)
-
-To start the release process, first check that:
-
-- You are on the ``master`` branch
-- Your local clone is up to date
-- ``CMAKE_BUILD_TYPE`` is set to ``Release`` (or ``RelWithDebInfo``)
-- Your build is up to date
-- check the list of authors with scripts/prepare_list_of_authors.sh
-
-Then, run::
-
- $ scripts/release_tool.py init
- $ scripts/release_tool.py update path/to/uncrustify
-
-(Replace ``path/to/uncrustify`` with the path to the Uncrustify executable
-you just built, e.g. ``build/uncrustify``.)
-
-This will create a branch for the release candidate
-and perform some automated updates to various files.
-With no arguments, ``init`` will prompt you for the new version number,
-defaulting to ``x.(y+1).0``, where ``x.y.z`` is the previous release.
-The ``--version`` argument may also be used to specify the version
-(e.g. if the script will not be able to prompt for input).
-
-After, you should check that the following files
-show the correct version number and option count:
-
-- ``:/CMakeLists.txt`` (version number only; look for ``UNCRUSTIFY_VERSION``)
-- ``:/package.json`` (version number only; you'll see it, the file is tiny)
-- ``:/README.md`` (look for "options as of version")
-- ``:/documentation/htdocs/index.html`` (look for "options as of version")
-
-(Note that ``uncrustify`` itself will not show the new version number
-until the final release has been tagged.)
-
-Update Documentation
-====================
-
-Update ``:/ChangeLog``.
-There is a helper script, ``:/scripts/gen_changelog.py``,
-that can help extract new options since the previous release:
-
-.. code::
-
- $ scripts/gen_changelog.py uncrustify-0.0.0
-
-Replace ``0.0.0`` with the version of the *previous* release.
-This will generate a bunch of output like::
-
- 0123456789abcdef0123456789abcdef01234567
- Added : better_name Jan 13 1970
- Removed : poor_name Jan 13 1970
- fedcba9876543210fedcba9876543210fedcba98
- Added : new_option_1 Jan 18 1970
- Added : new_option_2 Jan 18 1970
-
-Your goal is to turn the "raw" output into something like this::
-
- Deprecated options:
- - poor_name Jan 13 1970
- Renamed to better_name
-
- New options:
- - new_option_1 Jan 18 1970
- - new_option_1 Jan 18 1970
-
-To accomplish this, you will need to inspect any removed options,
-possibly consulting the commits in which they were removed,
-to determine the reason for deprecation and what replacement is recommended.
-(Note that it may not be as simple as "use X instead".)
-Also watch for options that were added and subsequently renamed
-since the last release. (This has happened a few times.
-In such cases, the new name should show up as an ordinary "new" option,
-and the old name should be entirely omitted from the change log.)
-
-It helps to copy the output to a scratch file for editing.
-Move deprecated options to the top and add a "Deprecated options:" header,
-then add a "New options:" header in front of what's left,
-and remove the commit SHAs (``sed -r '/^[[:xdigit:]]{40}/d``
-if you don't want to do it by hand).
-Then, check that the options are in order by date;
-date of authorship vs. date of merge may cause discrepancies.
-Finally, replace occurrences of ``\w+ +:`` with ``-``
-(if your editor supports regular expressions;
-otherwise you can individually replace ``Added :`` and ``Removed :``).
-
-Add a new release header (don't forget to add the date!) to the change log
-and insert the list of option changes as created above.
-Also fill in the list of resolved issues, new keywords (if any),
-as well as any other changes that need to be mentioned.
-
-If any command line arguments have been added or changed,
-including descriptions for the same, check to see if
-``:/man/uncrustify.1.in`` needs to be updated.
-(Hopefully this happened when the source was changed!)
-
-Finalize the Code Changes
-=========================
-
-Inspect your working tree.
-Use ``git add -p`` to stage the changes made to the documentation
-and other artifacts that contain version-dependent information.
-Verify that only desired changes are staged,
-and that your working tree is otherwise clean.
-
-Now is a good time to recheck
-that everything builds, and that all the tests pass.
-This is also a good time to manually test 32- and 64-bit builds.
-
-When you are ready, commit the changes using:
-
-.. code::
-
- $ scripts/release_tool.py commit
-
-(If you prefer, you can also commit the changes manually;
-the script just fills in the commit message for you.)
-
-Submit and Tag the Release
-==========================
-
-Push the release candidate branch to GitHub, and create a pull request.
-Once the pull request is merged, tag the release using:
-Make sure, the file .git/config has the right value:
-[remote "origin"]
- url = https://github.com/uncrustify/uncrustify.git
-
-.. code::
-
- $ scripts/release_tool.py tag
-
-Note that this will only work if the merge of the release candidate
-is the most recent commit upstream.
-Otherwise, the merge commit must be specified by using the ``-c`` option.
-
-(Tagging the release does not need to be done on any particular branch.
-The command will not affect or look at your work tree at all.)
-
-Create Binaries
-===============
-
-Now that the release is published, grab a copy of the sources from GitHub:
-
-.. code::
-
- $ wget https://github.com/uncrustify/uncrustify/archive/uncrustify-0.1.2.zip
- $ unzip -e uncrustify-0.1.2.zip
-
-Next, build the 32- and 64-bit Windows binaries:
-
-.. code::
-
- $ cd /path/to/uncrustify-uncrustify-0.1.2
- $ mkdir buildwin-32
- $ cd buildwin-32
- $ cmake -G Ninja \
- -DCMAKE_BUILD_TYPE=Release \
- -DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchain-mingw32.cmake \
- -DCMAKE_EXE_LINKER_FLAGS="-static -s" \
- ..
- $ ninja
- $ cpack
-
-.. code::
-
- $ cd /path/to/uncrustify-uncrustify-0.1.2
- $ mkdir buildwin-64
- $ cd buildwin-64
- $ cmake -G Ninja \
- -DCMAKE_BUILD_TYPE=Release \
- -DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchain-mingw64.cmake \
- -DCMAKE_EXE_LINKER_FLAGS="-static -s" \
- ..
- $ ninja
- $ cpack
-
-Create a tarball:
-
-.. code::
-
- $ cd /path/to/uncrustify
- $ git archive -o uncrustify-0.1.2.tar.gz uncrustify-0.1.2
-TODO: find the best strategie...
-
-(If you don't have Ninja_, or just don't want to use it for whatever reason,
-omit ``-G Ninja`` and run ``make`` instead of ``ninja``.)
-
-This is also a good time to test the tagged build on Linux:
-
-.. code::
-
- $ wget https://github.com/uncrustify/uncrustify/archive/uncrustify-0.1.2.tar.gz
- $ tar xzf uncrustify-0.1.2.tar.gz
- $ cd uncrustify-uncrustify-0.1.2
- $ mkdir build
- $ cd build
- $ cmake -G Ninja -DCMAKE_BUILD_TYPE=Release ..
- $ ninja
- $ ctest
- $ ./uncrustify --version
-
-Upload to SourceForge
-=====================
-
-- Login as admin under https://sourceforge.net/projects/uncrustify/
-- Change to https://sourceforge.net/projects/uncrustify/files/
-- "Add Folder"; the name should be e.g. "uncrustify-0.1.2"
-- Navigate to the new folder
- (e.g. https://sourceforge.net/projects/uncrustify/files/uncrustify-0.1.2/)
-- "Add File"; upload the following files
- (adjusting for the actual version number):
-
- - README.md
- - uncrustify-0.1.2.tar.gz
- - buildwin-32/uncrustify-0.1.2_f-win32.zip
- - buildwin-64/uncrustify-0.1.2_f-win64.zip
-
-- "Done"
-- Upload the documentation:
-
- .. code::
-
- $ scp -r documentation/htdocs/* ChangeLog \
- USER,uncrustify@web.sourceforge.net:htdocs/
-
-- Use the web interface (file manager) to create the release folder
- and upload the files to SourceForge.
-
-Announce the Release (Optional)
-===============================
-
-The new release is live! Spread the word! Consider these ideas:
-
-- Create a news item.
-- Update freshmeat.net project.
-
-Release Checklist
-=================
-
-The following list serves as a quick reference for making a release.
-These items are explained in greater detail above.
-
-#. Verify that CI passes
-
-#. Use ``release_tool.py`` to initialize the release
- and perform automated updates. Check:
-
- #. ``:/CMakeLists.txt``
- #. ``:/package.json``
- #. ``:/README.md``
- #. ``:/documentation/htdocs/index.html``
-
-#. Update documentation as needed:
-
- #. ``:/ChangeLog``
- #. ``:/man/uncrustify.1.in``
-
-#. Stage changes.
-#. Test everything again.
-#. Finalize the code changes.
-#. Push to GitHub and create a merge request.
-#. Tag the merged release branch.
-#. Create Windows (32- and 64-bit) binaries.
-#. Run a test build on Linux.
-#. Upload the release and documentation to SourceForge.
-#. Announce the release!
-
-.. _MinGW: http://www.mingw.org/
-.. _GitPython: https://github.com/gitpython-developers/GitPython
-.. _Ninja: https://ninja-build.org/
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/pclint/run-pclint-eclipse.bat b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/pclint/run-pclint-eclipse.bat
deleted file mode 100644
index 1a778bfa..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/pclint/run-pclint-eclipse.bat
+++ /dev/null
@@ -1,104 +0,0 @@
-rem set to on for debugging
-@echo off
-setlocal
-
-rem Run this script from the project root directory
-
-echo ------------------------------------------------------
-echo Start pcLint analysis to check code quality ...
-
-set SRC_DIR=src
-set EXC_DIR=lnt
-set OUT_DIR=tests\pclint
-set LNT_DIR=scripts\pclint
-
-rem Check if pcLint program is available
-set prog=lint-nt.exe
-for %%i in ("%path:;=";"%") do (
-rem echo %%~i
- if exist %%~i\%prog% (
- set found=%%i
- echo found %prog% in %%i
- )
-)
-if %found%=="" goto PROG_MISSING
-
-if NOT EXIST tests md tests
-if NOT EXIST tests\pclint md tests\pclint
-
-rem create list of all C source files to analyze
-rem FIXME: works only if there are no spaces in the paths
-
-dir /s/b %EXC_DIR%\*.lnt > .\%OUT_DIR%\exceptions.lnt
-
-rem to check single files activate one of the lines below
-rem dir /s/b %SRC_DIR%\align_stack.cpp > .\%OUT_DIR%\files.lnt
-rem dir /s/b %SRC_DIR%\align.cpp > .\%OUT_DIR%\files.lnt
-rem dir /s/b %SRC_DIR%\args.cpp > .\%OUT_DIR%\files.lnt
-rem dir /s/b %SRC_DIR%\backup.cpp > .\%OUT_DIR%\files.lnt
-rem dir /s/b %SRC_DIR%\brace_cleanup.cpp> .\%OUT_DIR%\files.lnt
-rem dir /s/b %SRC_DIR%\braces.cpp > .\%OUT_DIR%\files.lnt
-rem dir /s/b %SRC_DIR%\chunk_list.cpp > .\%OUT_DIR%\files.lnt
-rem dir /s/b %SRC_DIR%\ChunkStack.cpp > .\%OUT_DIR%\files.lnt
-rem dir /s/b %SRC_DIR%\combine.cpp > .\%OUT_DIR%\files.lnt
-rem dir /s/b %SRC_DIR%\compat_posix.cpp > .\%OUT_DIR%\files.lnt
-rem dir /s/b %SRC_DIR%\compat_win32.cpp > .\%OUT_DIR%\files.lnt
-rem dir /s/b %SRC_DIR%\defines.cpp > .\%OUT_DIR%\files.lnt
-rem dir /s/b %SRC_DIR%\detect.cpp > .\%OUT_DIR%\files.lnt
-rem dir /s/b %SRC_DIR%\indent.cpp > .\%OUT_DIR%\files.lnt
-rem dir /s/b %SRC_DIR%\keywords.cpp > .\%OUT_DIR%\files.lnt
-rem dir /s/b %SRC_DIR%\lang_pawn.cpp > .\%OUT_DIR%\files.lnt
-rem dir /s/b %SRC_DIR%\logger.cpp > .\%OUT_DIR%\files.lnt
-rem dir /s/b %SRC_DIR%\logmask.cpp > .\%OUT_DIR%\files.lnt
-rem dir /s/b %SRC_DIR%\md5.cpp > .\%OUT_DIR%\files.lnt
-rem dir /s/b %SRC_DIR%\newlines.cpp > .\%OUT_DIR%\files.lnt
-rem dir /s/b %SRC_DIR%\options_for_QT.cpp > .\%OUT_DIR%\files.lnt
-rem dir /s/b %SRC_DIR%\options.cpp > .\%OUT_DIR%\files.lnt
-rem dir /s/b %SRC_DIR%\output.cpp > .\%OUT_DIR%\files.lnt
-rem dir /s/b %SRC_DIR%\parens.cpp > .\%OUT_DIR%\files.lnt
-rem dir /s/b %SRC_DIR%\parse_frame.cpp > .\%OUT_DIR%\files.lnt
-rem dir /s/b %SRC_DIR%\punctuators.cpp > .\%OUT_DIR%\files.lnt
-rem dir /s/b %SRC_DIR%\semicolons.cpp > .\%OUT_DIR%\files.lnt
-rem dir /s/b %SRC_DIR%\sorting.cpp > .\%OUT_DIR%\files.lnt
-rem dir /s/b %SRC_DIR%\space.cpp > .\%OUT_DIR%\files.lnt
-rem dir /s/b %SRC_DIR%\tokenize_cleanup.cpp > .\%OUT_DIR%\files.lnt
-rem dir /s/b %SRC_DIR%\tokenize.cpp > .\%OUT_DIR%\files.lnt
-rem dir /s/b %SRC_DIR%\unc_text.cpp > .\%OUT_DIR%\files.lnt
-rem dir /s/b %SRC_DIR%\unc_tools.cpp > .\%OUT_DIR%\files.lnt
-rem dir /s/b %SRC_DIR%\uncrustify_emscripten.cpp > .\%OUT_DIR%\files.lnt
-rem dir /s/b %SRC_DIR%\uncrustify.cpp > .\%OUT_DIR%\files.lnt
-rem dir /s/b %SRC_DIR%\unicode.cpp > .\%OUT_DIR%\files.lnt
-rem dir /s/b %SRC_DIR%\universalindentgui.cpp > .\%OUT_DIR%\files.lnt
-rem dir /s/b %SRC_DIR%\width.cpp > .\%OUT_DIR%\files.lnt
-
-rem to check all source files use the line below
-dir /s/b %SRC_DIR%\*.cpp > .\%OUT_DIR%\files.lnt
-
-rem use this to save the pclint errors to a file for later review
-rem lint-nt .\%LNT_DIR%\pclint_cfg_eclipse.lnt .\%OUT_DIR%\exceptions.lnt .\%OUT_DIR%\files.lnt > .\%OUT_DIR%\pclint-results.xml
-
-rem to make eclipse parse the pclint errors it has to be output to the console
-lint-nt .\%LNT_DIR%\pclint_cfg_eclipse.lnt .\%OUT_DIR%\exceptions.lnt .\%OUT_DIR%\files.lnt
-
-rem type %OUT_DIR%\pclint-results.xml | more
-rem type %OUT_DIR%\pclint-results.xml
-rem echo pcLint output placed in %OUT_DIR%\pclint-results.xml
-
-goto END
-
-:PROG_MISSING
-echo.
-echo ------------------------------------------------------
-echo pcLint Error: %prog% not found.
-echo Verify that PCLINT is correctly installed, the
-echo installation was added to the PATH and the
-echo environment variable PCLINT_HOME was set to its path.
-echo ------------------------------------------------------
-echo.
-goto END
-
-:END
-echo pcLint finished
-echo ------------------------------------------------------
-endlocal
-
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/update_emscripten_bindings.py b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/update_emscripten_bindings.py
deleted file mode 100644
index d44a58a6..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/update_emscripten_bindings.py
+++ /dev/null
@@ -1,316 +0,0 @@
-#!/bin/python
-from __future__ import print_function # python >= 2.6, chained 'with' >= 2.7
-
-from os.path import dirname, abspath
-from os import fdopen as os_fdopen, remove as os_remove, name as os_name
-from shutil import copy2
-from subprocess import Popen, PIPE
-from sys import exit as sys_exit, stderr
-from tempfile import mkstemp
-from contextlib import contextmanager
-from threading import Timer
-import re
-
-
-ROOT_DIR = dirname(dirname(abspath(__file__)))
-
-# ==============================================================================
-
-FILE_BINDINGS = "%s/src/uncrustify_emscripten.cpp" % ROOT_DIR
-FILE_TS = "%s/emscripten/libUncrustify.d.ts" % ROOT_DIR
-
-REGION_START = "region enum bindings"
-REGION_END = "endregion enum bindings"
-
-''' Enums which values need to be updated in the binding code '''
-ENUMS_INFO = [
- {
- 'name': 'option_type_e',
- 'substitute_name': 'OptionType',
- 'filepath': '%s/src/option.h' % ROOT_DIR,
- 'extra_arg': [],
- 'filter_values': [],
- 'suffix_chars': 0,
- },
- {
- 'name': 'iarf_e',
- 'substitute_name': 'IARF',
- 'filepath': '%s/src/option.h' % ROOT_DIR,
- 'extra_arg': [],
- 'filter_values': ['NOT_DEFINED'],
- 'suffix_chars': 0,
- },
- {
- 'name': 'line_end_e',
- 'substitute_name': 'LineEnd',
- 'filepath': '%s/src/option.h' % ROOT_DIR,
- 'extra_arg': [],
- 'filter_values': [],
- 'suffix_chars': 0,
- },
- {
- 'name': 'token_pos_e',
- 'substitute_name': 'TokenPos',
- 'filepath': '%s/src/option.h' % ROOT_DIR,
- 'extra_arg': [],
- 'filter_values': [],
- 'suffix_chars': 0,
- },
- {
- 'name': 'log_sev_t',
- 'substitute_name': 'LogType',
- 'filepath': '%s/src/log_levels.h' % ROOT_DIR,
- 'extra_arg': [],
- 'filter_values': [],
- 'suffix_chars': 1,
- },
- {
- 'name': 'c_token_t',
- 'substitute_name': 'TokenType',
- 'filepath': '%s/src/token_enum.h' % ROOT_DIR,
- 'extra_arg': [],
- 'filter_values': ['CT_TOKEN_COUNT_'],
- 'suffix_chars': 3,
- },
- {
- 'name': 'lang_flag_e',
- 'substitute_name': 'Language',
- 'filepath': '%s/src/uncrustify_types.h' % ROOT_DIR,
- 'extra_arg': ["-extra-arg=-std=c++1z", "-extra-arg=-DEMSCRIPTEN"],
- 'filter_values': [
- 'LANG_ALLC',
- 'LANG_ALL',
- 'FLAG_HDR',
- 'FLAG_DIG',
- 'FLAG_PP',
- ],
- 'suffix_chars': 5,
- },
-]
-
-# ==============================================================================
-
-NULL_DEV = "/dev/null" if os_name != "nt" else "nul"
-
-
-@contextmanager
-def make_raw_temp_file(*args, **kwargs):
- fd, tmp_file_name = mkstemp(*args, **kwargs)
- try:
- yield (fd, tmp_file_name)
- finally:
- os_remove(tmp_file_name)
-
-
-@contextmanager
-def open_fd(*args, **kwargs):
- fp = os_fdopen(*args, **kwargs)
- try:
- yield fp
- finally:
- fp.close()
-
-
-def term_proc(proc, timeout):
- """
- helper function terminate a process if a timer times out
-
- :param proc: the process object that is going to be terminated
- :param timeout: value that will be set to indicate termination
- """
- timeout["value"] = True
- proc.terminate()
-
-
-def proc_output(args, timeout_sec=10):
- """
- grabs output from called program
- :param args: string array containing program name and program arguments
- :param timeout_sec: max sec the program can run without being terminated
- :return: utf8 decoded program output in a string
- """
- proc = Popen(args, stdout=PIPE)
-
- timeout = {"value": False}
- if timeout_sec is not None:
- timeout = {"value": False}
- timer = Timer(timeout_sec, term_proc, [proc, timeout])
- timer.start()
-
- output_b, error_txt_b = proc.communicate()
-
- if timeout_sec is not None:
- timer.cancel()
-
- output = output_b.decode("UTF-8")
-
- if timeout["value"]:
- print("proc timeout: %s" % ' '.join(args), file=stderr)
-
- return output if not timeout["value"] else None
-
-
-def get_enum_lines(enum_info):
- """
- extracts enum values from a file via clang-check
-
- :param enum_info: dict with:
- 'name' (name of the enum),
- 'filepath' (file containing the enum definition),
- 'extra_arg' (extra arguments passed to clang-check)
- :return: list containing enum values
- """
- cut_len = len(enum_info['name'])
-
- proc_args = ["clang-check", enum_info['filepath'], "-ast-dump",
- '-ast-dump-filter=%s' % enum_info['name']]
- proc_args += enum_info['extra_arg']
-
- output = proc_output(proc_args)
- if output is None or len(output) == 0:
- print("ScriptError: %s - empty clang-check return" % get_enum_lines.__name__,
- file=stderr)
- return ()
-
- reg_obj = re.compile("EnumConstantDecl.+col:\d+ (referenced )?(\w+)")
-
- lines = [m.group(2) for l in output.splitlines()
- for m in [re.search(reg_obj, l)] if m]
- lines = [line for line in lines if line not in enum_info['filter_values']]
-
- if len(lines) == 0:
- print("ScriptError: %s - no enum_info names found" % get_enum_lines.__name__,
- file=stderr)
- return ()
- return lines
-
-
-def write_ts(opened_file_obj, enum_info):
- """
- writes enum values in a specific typescript d.ts file format
-
- :param opened_file_obj: opened file file object (with write permissions)
- :param enum_info: dict with:
- 'name' (name of the enum),
- 'substitute_name' (substitute name for the enum),
- 'filepath' (file containing the enum definition),
- 'extra_arg' (extra arguments passed to clang-check)
- :return: False on failure else True
- """
- lines = get_enum_lines(enum_info)
- if len(lines) == 0:
- return False
-
- opened_file_obj.write(
- ' export interface %sValue extends EmscriptenEnumTypeObject {}\n'
- ' export interface %s extends EmscriptenEnumType\n'
- ' {\n'
- % (enum_info['substitute_name'], enum_info['substitute_name'])
- )
- for line in lines:
- opened_file_obj.write(
- ' %s : %sValue;\n'
- % (line[enum_info['suffix_chars']:], enum_info['substitute_name'])
- )
- opened_file_obj.write(
- ' }\n\n'
- )
- return True
-
-
-def write_bindings(opened_file_obj, enum_info):
- """
- writes enum values in a specific emscripten embind enum bindings format
-
- :param opened_file_obj: opened file file object (with write permissions)
- :param enum_info: dict with:
- 'name' (name of the enum),
- 'filepath' (file containing the enum definition),
- 'extra_arg' (extra arguments passed to clang-check)
- :return: False on failure else True
- """
- lines = get_enum_lines(enum_info)
- if len(lines) == 0:
- return False
-
- opened_file_obj.write(
- ' enum_<%s>("%s")' % (enum_info['name'], enum_info['substitute_name'])
- )
- for line in lines:
- opened_file_obj.write(
- '\n .value("%s", %s::%s)'
- % (line[enum_info['suffix_chars']:], enum_info['name'], line)
- )
- opened_file_obj.write(
- ';\n\n'
- )
- return True
-
-
-def update_file(file_path, writer_func, enums_info):
- """
- reads in a file and replaces old enum value in a region, which is defined by
- region start and end string, with updated ones
-
- :param file_path: file in which the replacement will be made
- :param writer_func: name of the function that will be called to write new
- content
- :param enums_info:list of dicts each containing:
- 'name' (name of the enum),
- 'substitute_name' (substitute name for the enum),
- 'filepath' (file containing the enum definition),
- 'extra_arg' (extra arguments passed to clang-check)
- :return: False on failure else True
- """
- in_target_region = False
-
- reg_obj_start = re.compile(".*%s$" % REGION_START)
- reg_obj_end = re.compile(".*%s$" % REGION_END)
- reg_obj = reg_obj_start
-
- with make_raw_temp_file(suffix='.unc') as (fd, tmp_file_path):
- with open(file_path, 'r') as fr, open_fd(fd, 'w') as fw:
- for line in fr:
- match = None if reg_obj is None else re.search(reg_obj, line)
-
- if match is None and not in_target_region:
- fw.write(line) # write out of region code
-
- elif match is not None and not in_target_region:
- fw.write(line) # hit the start region
-
- in_target_region = True
- reg_obj = reg_obj_end
-
- for enum in enums_info:
- succes_flag = writer_func(fw, enum)
- if not succes_flag: # abort, keep input file clean
- return False
-
- elif match is None and in_target_region:
- pass # ignore old binding code
-
- elif match and in_target_region: # hit the endregion
- fw.write(line)
-
- in_target_region = False
- reg_obj = None
-
- copy2(tmp_file_path, file_path) # overwrite input file
- return True
-
-
-def main():
- flag = update_file(FILE_BINDINGS, write_bindings, ENUMS_INFO)
- if not flag:
- return 1
-
- flag = update_file(FILE_TS, write_ts, ENUMS_INFO)
- if not flag:
- return 1
-
- return 0
-
-
-if __name__ == "__main__":
- sys_exit(main())
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/ChunkStack.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/ChunkStack.cpp
deleted file mode 100644
index c04c6e5e..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/ChunkStack.cpp
+++ /dev/null
@@ -1,120 +0,0 @@
-/**
- * @file ChunkStack.cpp
- * Manages a chunk stack
- *
- * @author Ben Gardner
- * @license GPL v2+
- */
-
-#include "ChunkStack.h"
-
-
-void ChunkStack::Set(const ChunkStack &cs)
-{
- m_cse.resize(cs.m_cse.size());
-
- for (size_t idx = 0; idx < m_cse.size(); idx++)
- {
- m_cse[idx].m_pc = cs.m_cse[idx].m_pc;
- m_cse[idx].m_seqnum = cs.m_cse[idx].m_seqnum;
- }
-
- m_seqnum = cs.m_seqnum;
-}
-
-
-const ChunkStack::Entry *ChunkStack::Top() const
-{
- if (!m_cse.empty())
- {
- return(&m_cse[m_cse.size() - 1]);
- }
- return(nullptr);
-}
-
-
-const ChunkStack::Entry *ChunkStack::Get(size_t idx) const
-{
- if (idx < m_cse.size())
- {
- return(&m_cse[idx]);
- }
- return(nullptr);
-}
-
-
-chunk_t *ChunkStack::GetChunk(size_t idx) const
-{
- if (idx < m_cse.size())
- {
- return(m_cse[idx].m_pc);
- }
- return(nullptr);
-}
-
-
-chunk_t *ChunkStack::Pop_Front()
-{
- chunk_t *pc = nullptr;
-
- if (!m_cse.empty())
- {
- pc = m_cse[0].m_pc;
- m_cse.pop_front();
- }
- return(pc);
-}
-
-
-chunk_t *ChunkStack::Pop_Back()
-{
- chunk_t *pc = nullptr;
-
- if (!m_cse.empty())
- {
- pc = m_cse[m_cse.size() - 1].m_pc;
- m_cse.pop_back();
- }
- return(pc);
-}
-
-
-void ChunkStack::Push_Back(chunk_t *pc, size_t seqnum)
-{
- m_cse.push_back(Entry(seqnum, pc));
-
- if (m_seqnum < seqnum)
- {
- m_seqnum = seqnum;
- }
-}
-
-
-void ChunkStack::Zap(size_t idx)
-{
- if (idx < m_cse.size())
- {
- m_cse[idx].m_pc = nullptr;
- }
-}
-
-
-void ChunkStack::Collapse()
-{
- size_t wr_idx = 0;
-
- for (size_t rd_idx = 0; rd_idx < m_cse.size(); rd_idx++)
- {
- if (m_cse[rd_idx].m_pc != nullptr)
- {
- if (rd_idx != wr_idx)
- {
- m_cse[wr_idx].m_pc = m_cse[rd_idx].m_pc;
- m_cse[wr_idx].m_seqnum = m_cse[rd_idx].m_seqnum;
- }
- wr_idx++;
- }
- }
-
- m_cse.resize(wr_idx);
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/ChunkStack.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/ChunkStack.h
deleted file mode 100644
index 8434d895..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/ChunkStack.h
+++ /dev/null
@@ -1,123 +0,0 @@
-/**
- * @file ChunkStack.h
- * Manages a simple stack of chunks
- *
- * @author Ben Gardner
- * @license GPL v2+
- */
-#ifndef CHUNKSTACK_H_INCLUDED
-#define CHUNKSTACK_H_INCLUDED
-
-#include "uncrustify_types.h"
-
-class ChunkStack
-{
-public:
- struct Entry
- {
- Entry()
- : m_seqnum(0)
- , m_pc(0)
- {
- }
-
-
- Entry(const Entry &ref)
- : m_seqnum(ref.m_seqnum)
- , m_pc(ref.m_pc)
- {
- }
-
-
- Entry(size_t sn, chunk_t *pc)
- : m_seqnum(sn)
- , m_pc(pc)
- {
- }
-
-
- size_t m_seqnum;
- chunk_t *m_pc;
- };
-
-protected:
- std::deque<Entry> m_cse;
- size_t m_seqnum; //! current sequence number
-
-public:
- ChunkStack()
- : m_seqnum(0)
- {
- }
-
-
- ChunkStack(const ChunkStack &cs)
- {
- Set(cs);
- }
-
-
- virtual ~ChunkStack()
- {
- }
-
-
- void Set(const ChunkStack &cs);
-
-
- void Push_Back(chunk_t *pc)
- {
- Push_Back(pc, ++m_seqnum);
- }
-
-
- bool Empty() const
- {
- return(m_cse.empty());
- }
-
-
- size_t Len() const
- {
- return(m_cse.size());
- }
-
-
- const Entry *Top() const;
-
-
- const Entry *Get(size_t idx) const;
-
-
- chunk_t *GetChunk(size_t idx) const;
-
-
- chunk_t *Pop_Back();
-
-
- void Push_Back(chunk_t *pc, size_t seqnum);
-
-
- chunk_t *Pop_Front();
-
-
- void Reset()
- {
- m_cse.clear();
- }
-
-
- /**
- * Mark an entry to be removed by Collapse()
- *
- * @param idx The item to remove
- */
- void Zap(size_t idx);
-
-
- //! Compresses down the stack by removing dead entries
- void Collapse();
-};
-
-
-#endif /* CHUNKSTACK_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/EnumStructUnionParser.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/EnumStructUnionParser.cpp
deleted file mode 100644
index ff0e3a65..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/EnumStructUnionParser.cpp
+++ /dev/null
@@ -1,2859 +0,0 @@
-/**
- * @file EnumStructUnionParser.cpp
- *
- * @author
- * @license GPL v2+
- */
-
-#include "EnumStructUnionParser.h"
-
-#include "combine_fix_mark.h"
-#include "combine_skip.h"
-#include "combine_tools.h"
-#include "flag_parens.h"
-#include "lang_pawn.h"
-
-
-/**
- * Extern declarations
- */
-extern const char *get_token_name(c_token_t);
-extern void log_pcf_flags(log_sev_t, pcf_flags_t);
-
-
-/**
- * Forward declarations
- */
-static std::pair<chunk_t *, chunk_t *> match_variable_end(chunk_t *, std::size_t);
-static std::pair<chunk_t *, chunk_t *> match_variable_start(chunk_t *, std::size_t);
-static chunk_t *skip_scope_resolution_and_nested_name_specifiers(chunk_t *);
-static chunk_t *skip_scope_resolution_and_nested_name_specifiers_rev(chunk_t *);
-
-
-/**
- * Returns true if two adjacent chunks potentially match a pattern consistent
- * with that of a qualified identifier
- */
-static bool adj_tokens_match_qualified_identifier_pattern(chunk_t *prev, chunk_t *next)
-{
- LOG_FUNC_ENTRY();
-
- if ( prev != nullptr
- && next != nullptr)
- {
- auto prev_token_type = prev->type;
- auto next_token_type = next->type;
-
- switch (prev_token_type)
- {
- case CT_ANGLE_CLOSE:
- /**
- * assuming the previous token is possibly the closing angle of a
- * templated type, the next token may be a scope resolution operator ("::")
- */
- return(next_token_type == CT_DC_MEMBER);
-
- case CT_ANGLE_OPEN:
- /**
- * assuming the previous token is possibly the opening angle of a
- * templated type, just check to see if there's a matching closing
- * angle
- */
- return(chunk_skip_to_match(prev, scope_e::PREPROC) != nullptr);
-
- case CT_DC_MEMBER:
- /**
- * if the previous token is a double colon ("::"), it is likely part
- * of a chain of scope-resolution qualifications preceding a word or
- * type
- */
- return( next_token_type == CT_TYPE
- || next_token_type == CT_WORD);
-
- case CT_TYPE:
- case CT_WORD:
- /**
- * if the previous token is an identifier, the next token may be
- * one of the following:
- * - an opening angle, which may indicate a templated type as part of a
- * scope resolution preceding the actual variable identifier
- * - a double colon ("::")
- */
- return( next_token_type == CT_ANGLE_OPEN
- || next_token_type == CT_DC_MEMBER);
-
- default:
- // do nothing
- break;
- } // switch
- }
- return(false);
-} // adj_tokens_match_qualified_identifier_pattern
-
-
-/**
- * Returns true if two adjacent chunks potentially match a pattern consistent
- * with that of a variable definition
- */
-static bool adj_tokens_match_var_def_pattern(chunk_t *prev, chunk_t *next)
-{
- LOG_FUNC_ENTRY();
-
- if ( prev != nullptr
- && next != nullptr)
- {
- auto prev_token_type = prev->type;
- auto next_token_type = next->type;
-
- switch (prev_token_type)
- {
- case CT_ANGLE_CLOSE:
- /**
- * assuming the previous token is possibly the closing angle of a
- * templated type, the next token may be one of the following:
- * - a pointer symbol ('*', '^')
- * - a double colon ("::")
- * - a reference symbol ('&')
- * - a qualifier (const, etc.)
- * - an identifier
- */
- return( chunk_is_pointer_or_reference(next)
- || next_token_type == CT_DC_MEMBER
- || next_token_type == CT_QUALIFIER
- || next_token_type == CT_WORD);
-
-
- case CT_ANGLE_OPEN:
- /**
- * assuming the previous token is possibly the opening angle of a
- * templated type, just check to see if there's a matching closing
- * angle
- */
- return(chunk_skip_to_match(prev, scope_e::PREPROC) != nullptr);
-
- case CT_BRACE_CLOSE:
- /**
- * assuming the previous token is possibly the closing brace of a
- * class/enum/struct/union definition, one or more inline variable
- * definitions may follow; in that case, the next token may be one of
- * the following:
- * - a pointer symbol ('*', '^')
- * - a reference symbol ('&')
- * - a qualifier (const, etc.)
- * - an identifier
- */
- return( chunk_is_pointer_or_reference(next)
- || next_token_type == CT_QUALIFIER
- || next_token_type == CT_WORD);
-
- case CT_BRACE_OPEN:
- /**
- * if the previous token is an opening brace, it may indicate the
- * start of a braced initializer list - skip ahead to find a matching
- * closing brace
- */
- return(chunk_skip_to_match(prev, scope_e::PREPROC) != nullptr);
-
- case CT_BYREF:
- /**
- * if the previous token is a reference symbol ('&'), the next token
- * may be an identifier
- */
- return(next_token_type == CT_WORD);
-
- case CT_CARET:
- /**
- * if the previous token is a managed C++/CLI pointer symbol ('^'),
- * the next token may be one of the following:
- * - a pointer symbol ('*', '^')
- * - a reference symbol ('&')
- * - a qualifier (const, etc.)
- * - an identifier
- */
- return( language_is_set(LANG_CPP)
- && ( chunk_is_pointer_or_reference(next)
- || next_token_type == CT_QUALIFIER
- || next_token_type == CT_WORD));
-
- case CT_COMMA:
- /**
- * if the previous token is a comma, this may indicate a variable
- * declaration trailing a prior declaration; in that case, the next
- * token may be one of the following:
- * - a pointer symbol ('*', '^')
- * - a reference symbol ('&')
- * - an identifier
- */
- return( chunk_is_pointer_or_reference(next)
- || next_token_type == CT_WORD);
-
- case CT_DC_MEMBER:
- /**
- * if the previous token is a double colon ("::"), it is likely part
- * of a chain of scope-resolution qualifications preceding a word or
- * type
- */
- return( next_token_type == CT_TYPE
- || next_token_type == CT_WORD);
-
- case CT_PAREN_OPEN:
- /**
- * if the previous token is an opening paren, it may indicate the
- * start of a constructor call parameter list - skip ahead to find a
- * matching closing paren
- */
- next = chunk_skip_to_match(prev, scope_e::PREPROC);
-
- if (next != nullptr)
- {
- next_token_type = next->type;
- }
- return(next_token_type == CT_PAREN_CLOSE);
-
- case CT_PTR_TYPE:
- /**
- * if the previous token is a pointer type, ('*', '^'), the next token
- * may be one of the following:
- * - another pointer symbol ('*', '^')
- * - a reference symbol ('&')
- * - a qualifier (const, etc.)
- * - an identifier
- */
- return( chunk_is_pointer_or_reference(next)
- || next_token_type == CT_QUALIFIER
- || next_token_type == CT_WORD);
-
- case CT_QUALIFIER:
- /**
- * if the previous token is a qualifier (const, etc.), the next token
- * may be one of the following:
- * - a pointer symbol ('*', '^')
- * - a reference symbol ('&')
- * - another qualifier
- * - an identifier
- */
- return( chunk_is_pointer_or_reference(next)
- || next_token_type == CT_QUALIFIER
- || next_token_type == CT_WORD);
-
- case CT_SQUARE_CLOSE:
- /**
- * if the previous token is a closing bracket, the next token may be
- * an assignment following an array variable declaration
- */
- return(next_token_type == CT_ASSIGN);
-
- case CT_SQUARE_OPEN:
- /**
- * if the previous token is an opening bracket, it may indicate an
- * array declaration - skip ahead to find a matching closing bracket
- */
- return(chunk_skip_to_match(prev, scope_e::PREPROC) != nullptr);
-
- case CT_STAR:
- /**
- * if the previous token is a pointer symbol, ('*'), the next token
- * may be one of the following:
- * - another pointer symbol ('*', '^')
- * - a reference symbol ('&')
- * - a qualifier (const, etc.)
- * - an identifier
- */
- return( chunk_is_pointer_or_reference(next)
- || next_token_type == CT_QUALIFIER
- || next_token_type == CT_WORD);
-
- case CT_TSQUARE:
- /**
- * if the previous token is a set of brackets, the next token may be
- * an assignment following an array variable declaration
- */
- return(next_token_type == CT_ASSIGN);
-
- case CT_TYPE:
- /**
- * if the previous token is marked as a type, the next token may be
- * one of the following:
- * - a pointer symbol ('*', '^')
- * - a reference symbol ('&')
- * - an opening angle, which may indicate a templated type as part of a
- * scope resolution preceding the actual variable identifier
- * - a double colon ("::")
- * - a qualifier (const, etc.)
- * - an identifier
- */
- return( chunk_is_pointer_or_reference(next)
- || next_token_type == CT_ANGLE_OPEN
- || next_token_type == CT_DC_MEMBER
- || next_token_type == CT_QUALIFIER
- || next_token_type == CT_WORD);
-
- case CT_WORD:
- /**
- * if the previous token is an identifier, the next token may be one
- * of the following:
- * - an assignment symbol ('=')
- * - an opening angle, which may indicate a templated type as part of a
- * scope resolution preceding the actual variable identifier
- * - an opening brace, which may indicate a braced-initializer list
- * - a double colon ("::")
- * - an opening paren, which may indicate a constructor call parameter
- * list
- * - an opening square bracket, which may indicate an array variable
- * - an set of empty square brackets, which also may indicate an array
- * variable
- */
- return( next_token_type == CT_ANGLE_OPEN
- || next_token_type == CT_ASSIGN
- || next_token_type == CT_BRACE_OPEN
- || next_token_type == CT_DC_MEMBER
- || next_token_type == CT_PAREN_OPEN
- || next_token_type == CT_SQUARE_OPEN
- || next_token_type == CT_TSQUARE);
-
- default:
- // do nothing
- break;
- } // switch
- }
- return(false);
-} // adj_tokens_match_var_def_pattern
-
-
-/**
- * Returns true if the first chunk occurs AFTER the second chunk in the argument
- * list
- * @param pc points to the first chunk
- * @param after points to the second chunk
- * @param test_equal if true, returns true when both chunks refer to the same chunk
- */
-static bool chunk_is_after(chunk_t *pc, chunk_t *after, bool test_equal = true)
-{
- LOG_FUNC_ENTRY();
-
- if (pc != nullptr)
- {
- if ( test_equal
- && pc == after)
- {
- return(true);
- }
- else if (after != nullptr)
- {
- auto pc_column = pc->orig_col;
- auto pc_line = pc->orig_line;
- auto after_column = after->orig_col;
- auto after_line = after->orig_line;
-
- return( pc_line > after_line
- || ( pc_line == after_line
- && pc_column > after_column));
- }
- }
- return(false);
-} // chunk_is_after
-
-
-/**
- * Returns true if the first chunk occurs BEFORE the second chunk in the argument
- * list
- * @param pc points to the first chunk
- * @param before points to the second chunk
- * @param test_equal if true, returns true when both chunks refer to the same chunk
- */
-static bool chunk_is_before(chunk_t *pc, chunk_t *before, bool test_equal = true)
-{
- LOG_FUNC_ENTRY();
-
- if (pc != nullptr)
- {
- if ( test_equal
- && pc == before)
- {
- return(true);
- }
- else if (before != nullptr)
- {
- auto pc_column = pc->orig_col;
- auto pc_line = pc->orig_line;
- auto before_column = before->orig_col;
- auto before_line = before->orig_line;
-
- return( pc_line < before_line
- || ( pc_line == before_line
- && pc_column < before_column));
- }
- }
- return(false);
-} // chunk_is_before
-
-
-/**
- * Returns true if the first chunk occurs both AFTER and BEFORE
- * the second and third chunks, respectively, in the argument list
- * @param pc points to the first chunk
- * @param after points to the second chunk
- * @param before points to the third chunk
- * @param test_equal if true, returns true when the first chunk tests equal to
- * either the second or third chunk
- */
-static bool chunk_is_between(chunk_t *pc, chunk_t *after, chunk_t *before, bool test_equal = true)
-{
- LOG_FUNC_ENTRY();
-
- return( chunk_is_before(pc, before, test_equal)
- && chunk_is_after(pc, after, test_equal));
-} // chunk_is_between
-
-
-/**
- * Returns true if the chunk under test is a reference to a macro defined elsewhere in
- * the source file currently being processed. Note that a macro may be defined in
- * another source or header file, for which this function does not currently account
- */
-static bool chunk_is_macro_reference(chunk_t *pc)
-{
- LOG_FUNC_ENTRY();
-
- auto *next = chunk_get_head();
-
- if ( ( language_is_set(LANG_CPP)
- || language_is_set(LANG_C))
- && chunk_is_token(pc, CT_WORD)
- && !pc->flags.test(PCF_IN_PREPROC))
- {
- while (next != nullptr)
- {
- if ( next->flags.test(PCF_IN_PREPROC)
- && std::strcmp(pc->str.c_str(), next->str.c_str()) == 0)
- {
- return(true);
- }
- next = chunk_search_next_cat(next, CT_MACRO);
- }
- }
- return(false);
-} // chunk_is_macro_reference
-
-
-/**
- * Returns true if the input chunk is a pointer/reference operator or a
- * qualifier
- */
-static bool chunk_is_pointer_reference_or_qualifier(chunk_t *pc)
-{
- LOG_FUNC_ENTRY();
-
- return( chunk_is_pointer_or_reference(pc)
- || ( chunk_is_token(pc, CT_QUALIFIER)
- && !chunk_is_cpp_inheritance_access_specifier(pc)));
-} // chunk_is_pointer_reference_or_qualifier
-
-
-/**
- * This function attempts to match the starting and ending chunks of a qualified
- * identifier, which consists of one or more scope resolution operator(s) and
- * zero or more nested name specifiers
- * specifiers
- * @param pc the starting chunk
- * @return an std::pair, where the first chunk indicates the starting chunk of the
- * match and second indicates the ending chunk. Upon finding a successful
- * match, the starting chunk may consist of an identifier or a scope
- * resolution operator, while the ending chunk may consist of identifier
- * or the closing angle bracket of a template. If no match is found, a
- * pair of null chunks is returned
- */
-static std::pair<chunk_t *, chunk_t *> match_qualified_identifier(chunk_t *pc)
-{
- LOG_FUNC_ENTRY();
-
- auto *end = skip_scope_resolution_and_nested_name_specifiers(pc);
- auto *start = skip_scope_resolution_and_nested_name_specifiers_rev(pc);
-
- if ( end != nullptr
- && start != nullptr)
- {
- auto *double_colon = chunk_search_next_cat(start, CT_DC_MEMBER);
-
- if ( double_colon != nullptr
- && chunk_is_between(double_colon, start, end))
- {
- return(std::make_pair(start, end));
- }
- }
- return(std::make_pair(nullptr, nullptr));
-} // match_qualified_identifier
-
-
-/**
- * Starting from the input chunk, this function attempts to match a variable
- * declaration/definition in both the forward and reverse directions; each pair of
- * consecutive chunks is tested to determine if a potential match is satisfied.
- * @param pc the starting chunk
- * @param level the brace level
- * @return upon successful match, function returns an std::tuple, where the
- * first chunk indicates the starting chunk, the second chunk indicates
- * the identifier name, and the third chunk indicates the end associated
- * with the variable declaration/definition
- */
-static std::tuple<chunk_t *, chunk_t *, chunk_t *> match_variable(chunk_t *pc, std::size_t level)
-{
- LOG_FUNC_ENTRY();
-
- auto identifier_end_pair = match_variable_end(pc, level);
- auto start_identifier_pair = match_variable_start(pc, level);
- auto *end = identifier_end_pair.second;
- auto *identifier = identifier_end_pair.first != nullptr ? identifier_end_pair.first : start_identifier_pair.second;
- auto *start = start_identifier_pair.first;
-
- /**
- * a forward search starting at the chunk under test will fail if two consecutive chunks marked as CT_WORD
- * are encountered; in that case, it's likely that the preceding chunk indicates a type and the subsequent
- * chunk indicates a variable declaration/definition
- */
-
- if ( identifier != nullptr
- && start != nullptr
- && ( end != nullptr
- || chunk_is_token(chunk_get_prev_ncnnlni(identifier), CT_WORD)))
- {
- return(std::make_tuple(start, identifier, end));
- }
- return(std::make_tuple(nullptr, nullptr, nullptr));
-} // match_variable
-
-
-/**
- * Starting from the input chunk, this function attempts to match a variable in the
- * forward direction, and tests each pair of consecutive chunks to determine if a
- * potential variable declaration/definition match is satisfied. Secondly, the
- * function attempts to identify the end chunk associated with the candidate variable
- * match. For scalar variables (simply declared and not defined), both the end chunk
- * and identifier chunk should be one in the same
- * @param pc the starting chunk
- * @param level the brace level
- * @return an std::pair, where the first chunk indicates the identifier
- * (if non-null) and the second chunk indicates the end associated with
- * the variable declaration/definition; assuming a valid match, the first
- * chunk may be null if the function is called with a starting chunk
- * that occurs after the identifier
- */
-static std::pair<chunk_t *, chunk_t *> match_variable_end(chunk_t *pc, std::size_t level)
-{
- LOG_FUNC_ENTRY();
-
- chunk_t *identifier = nullptr;
-
- while (pc != nullptr)
- {
- /**
- * skip any right-hand side assignments
- */
- chunk_t *rhs_exp_end = nullptr;
-
- if (chunk_is_token(pc, CT_ASSIGN))
- {
- /**
- * store a pointer to the end chunk of the rhs expression;
- * use it later to test against setting the identifier
- */
- rhs_exp_end = skip_to_expression_end(pc);
- pc = rhs_exp_end;
- }
-
- /**
- * skip current and preceding chunks if at a higher brace level
- */
- while ( pc != nullptr
- && pc->level > level)
- {
- pc = chunk_get_next_ncnnl(pc);
- }
-
- /**
- * skip to any following match for angle brackets, braces, parens,
- * or square brackets
- */
- if ( chunk_is_token(pc, CT_ANGLE_OPEN)
- || chunk_is_token(pc, CT_BRACE_OPEN)
- || chunk_is_paren_open(pc)
- || chunk_is_token(pc, CT_SQUARE_OPEN))
- {
- pc = chunk_skip_to_match(pc, scope_e::PREPROC);
- }
- /**
- * call a separate function to validate adjacent tokens as potentially
- * matching a variable declaration/definition
- */
-
- chunk_t *next = chunk_get_next_ncnnl(pc);
-
- if ( chunk_is_not_token(next, CT_COMMA)
- && chunk_is_not_token(next, CT_FPAREN_CLOSE)
- && !chunk_is_semicolon(next)
- && !adj_tokens_match_var_def_pattern(pc, next))
- {
- /**
- * error, pattern is not consistent with a variable declaration/definition
- */
-
- break;
- }
-
- if ( chunk_is_token(pc, CT_WORD)
- && pc != rhs_exp_end)
- {
- /**
- * we've encountered a candidate for the variable name
- */
-
- identifier = pc;
- }
-
- /**
- * we're done searching if we've previously identified a variable name
- * and then encounter a comma or semicolon
- */
- if ( chunk_is_token(next, CT_COMMA)
- || chunk_is_token(next, CT_FPAREN_CLOSE)
- || chunk_is_semicolon(next))
- {
- return(std::make_pair(identifier, pc));
- }
- pc = next;
- }
- return(std::make_pair(nullptr, nullptr));
-} // match_variable_end
-
-
-/**
- * Starting from the input chunk, this function attempts to match a variable in the
- * reverse direction, and tests each pair of consecutive chunks to determine if a
- * potential variable declaration/definition match is satisfied. Secondly, the
- * function attempts to identify the starting chunk associated with the candidate
- * variable match. The start and identifier chunks may refer to each other in cases
- * where the identifier is not preceded by pointer or reference operators or qualifiers,
- * etc.
- * @param pc the starting chunk
- * @param level the brace level
- * @return an std::pair, where the first chunk indicates the starting chunk and
- * the second chunk indicates the identifier associated with the variable
- * match; assuming a valid match, the second chunk may be null if the
- * function is called with a starting chunk that occurs before the
- * identifier
- */
-static std::pair<chunk_t *, chunk_t *> match_variable_start(chunk_t *pc, std::size_t level)
-{
- LOG_FUNC_ENTRY();
-
- chunk_t *identifier = nullptr;
-
- while (pc != nullptr)
- {
- /**
- * skip any right-hand side assignments
- */
- chunk_t *before_rhs_exp_start = skip_expression_rev(pc);
- chunk_t *prev = nullptr;
- chunk_t *next = pc;
-
- while ( chunk_is_after(next, before_rhs_exp_start)
- && pc != prev)
- {
- next = prev;
- prev = chunk_get_prev_ncnnlni(next);
-
- if (chunk_is_token(next, CT_ASSIGN))
- {
- pc = prev;
- }
- }
- /**
- * skip current and preceding chunks if at a higher brace level
- */
-
- while ( pc != nullptr
- && pc->level > level)
- {
- pc = chunk_get_prev_ncnnlni(pc);
- }
-
- /**
- * skip to any preceding match for angle brackets, braces, parens,
- * or square brackets
- */
- if ( chunk_is_token(pc, CT_ANGLE_CLOSE)
- || chunk_is_token(pc, CT_BRACE_CLOSE)
- || chunk_is_paren_close(pc)
- || chunk_is_token(pc, CT_SQUARE_CLOSE))
- {
- pc = chunk_skip_to_match_rev(pc, scope_e::PREPROC);
- }
- /**
- * call a separate function to validate adjacent tokens as potentially
- * matching a variable declaration/definition
- */
-
- prev = chunk_get_prev_ncnnlni(pc);
-
- if (!adj_tokens_match_var_def_pattern(prev, pc))
- {
- /**
- * perhaps the previous chunk possibly indicates a type that yet to be
- * marked? if not, then break
- */
- if ( chunk_is_not_token(prev, CT_WORD)
- || ( !chunk_is_pointer_or_reference(pc)
- && chunk_is_not_token(pc, CT_WORD)))
- {
- /**
- * error, pattern is not consistent with a variable declaration/definition
- */
-
- break;
- }
- }
-
- if ( identifier == nullptr
- && chunk_is_token(pc, CT_WORD))
- {
- /**
- * we've encountered a candidate for the variable name
- */
-
- identifier = pc;
- }
-
- /**
- * we're done searching if we've previously identified a variable name
- * and then encounter another identifier, or we encounter a closing
- * brace (which would likely indicate an inline variable definition)
- */
- if ( chunk_is_token(prev, CT_ANGLE_CLOSE)
- || chunk_is_token(prev, CT_BRACE_CLOSE)
- || chunk_is_token(prev, CT_COMMA)
- || chunk_is_token(prev, CT_TYPE)
- || chunk_is_token(prev, CT_WORD))
- {
- return(std::make_pair(pc, identifier));
- }
- pc = prev;
- }
- return(std::make_pair(nullptr, nullptr));
-} // match_variable_start
-
-
-/**
- * Skip forward past any scope resolution operators and nested name specifiers and return
- * just the qualified identifier name; while similar to the existing skip_dc_member()
- * function, this function also takes into account templates that may comprise any
- * nested name specifiers
- */
-static chunk_t *skip_scope_resolution_and_nested_name_specifiers(chunk_t *pc)
-{
- LOG_FUNC_ENTRY();
-
- if ( ( pc != nullptr
- && pc->flags.test(PCF_IN_TEMPLATE))
- || chunk_is_token(pc, CT_DC_MEMBER)
- || chunk_is_token(pc, CT_TYPE)
- || chunk_is_token(pc, CT_WORD))
- {
- while (pc != nullptr)
- {
- /**
- * skip to any following match for angle brackets
- */
- if (chunk_is_token(pc, CT_ANGLE_OPEN))
- {
- pc = chunk_skip_to_match(pc, scope_e::PREPROC);
- }
- auto *next = chunk_get_next_ncnnl(pc);
-
- /**
- * call a separate function to validate adjacent tokens as potentially
- * matching a qualified identifier
- */
- if (!adj_tokens_match_qualified_identifier_pattern(pc, next))
- {
- break;
- }
- pc = next;
- }
- }
- return(pc);
-} // skip_scope_resolution_and_nested_name_specifiers
-
-
-/**
- * Skip in reverse to the beginning chunk of a qualified identifier; while similar to
- * the existing skip_dc_member_rev() function, this function also takes into account
- * templates that may comprise any nested name specifiers
- */
-static chunk_t *skip_scope_resolution_and_nested_name_specifiers_rev(chunk_t *pc)
-{
- LOG_FUNC_ENTRY();
-
- if ( ( pc != nullptr
- && pc->flags.test(PCF_IN_TEMPLATE))
- || chunk_is_token(pc, CT_DC_MEMBER)
- || chunk_is_token(pc, CT_TYPE)
- || chunk_is_token(pc, CT_WORD))
- {
- while (pc != nullptr)
- {
- /**
- * skip to any preceding match for angle brackets
- */
- if (chunk_is_token(pc, CT_ANGLE_CLOSE))
- {
- pc = chunk_skip_to_match_rev(pc, scope_e::PREPROC);
- }
- auto *prev = chunk_get_prev_ncnnlni(pc);
-
- /**
- * call a separate function to validate adjacent tokens as potentially
- * matching a qualified identifier
- */
- if (!adj_tokens_match_qualified_identifier_pattern(prev, pc))
- {
- break;
- }
- pc = prev;
- }
- }
- return(pc);
-} // skip_scope_resolution_and_nested_name_specifiers_rev
-
-
-EnumStructUnionParser::EnumStructUnionParser()
- : m_end(nullptr)
- , m_parse_error(false)
- , m_start(nullptr)
- , m_type(nullptr)
-{
-} // EnumStructUnionParser::EnumStructUnionParser
-
-
-EnumStructUnionParser::~EnumStructUnionParser()
-{
-} // EnumStructUnionParser::~EnumStructUnionParser
-
-
-void EnumStructUnionParser::analyze_identifiers()
-{
- LOG_FUNC_ENTRY();
-
- /**
- * the enum (and variable declarations thereof) could be of
- * the following forms:
- *
- * "enum type [: integral_type] { ... } [x, ...]"
- * "enum type : integral_type"
- * "enum type x, ..."
- * "enum class type [: integral_type] { ... } [x, ...]"
- * "enum class type [: integral_type]"
- * "enum [: integral_type] { ... } x, ..."
- */
-
- /**
- * the class/struct (and variable declarations thereof) could be of
- * the following forms:
- *
- * "template<...> class/struct[<...>] [macros/attributes ...] type [: bases ...] { }"
- * "template<...> class/struct[<...>] [macros/attributes ...] type"
- * "class/struct [macros/attributes ...] type [: bases ...] { } [x, ...]"
- * "class/struct [macros/attributes ...] type [x, ...]"
- * "class/struct [macros/attributes ...] [: bases] { } x, ..."
- */
-
- chunk_t *template_end = get_template_end();
- auto *body_end = get_body_end();
- auto *body_start = get_body_start();
- pcf_flags_t flags = PCF_VAR_1ST_DEF;
- auto *inheritance_start = get_inheritance_start();
- chunk_t *pc = body_end ? body_end : m_start;
-
- /**
- * first, try a simple approach to identify any associated type
- */
- if (try_pre_identify_type())
- {
- /**
- * a type was identified, meaning a pair of braces, angle brackets, or
- * a colon was found; if a colon was found, then there should be a
- * balanced set of braces that follow; therefore, start the search for
- * variable identifiers after the closing brace or close angle bracket
- */
-
- if (body_end != nullptr)
- {
- pc = body_end;
- }
- else if (template_end != nullptr)
- {
- pc = template_end;
- }
- }
-
- if (chunk_get_next_ncnnl(pc) == m_end)
- {
- /**
- * we're likely at the end of a class/enum/struct/union body which lacks
- * any trailing inline definitions
- */
-
- pc = chunk_get_next_ncnnl(m_end);
- }
-
- if ( type_identified()
- || chunk_is_class_enum_struct_union(pc)
- || pc == m_end)
- {
- /**
- * in case we're pointing at the end chunk, advance the chunk pointer
- * by one more so that we don't perform a variable identifier search
- * below
- */
- pc = chunk_get_next_ncnnl(pc);
- }
-
- if (body_end != nullptr)
- {
- /**
- * a closing brace was found, so any identifiers trailing the closing
- * brace are probably inline variable declarations following a
- * class/enum/struct/union definition
- */
- flags |= PCF_VAR_INLINE;
- }
- else if (!type_identified())
- {
- /**
- * skip any chain of one or more function-like macro calls,
- * declspecs, and attributes
- */
-
- chunk_t *tmp = pc;
-
- do
- {
- pc = tmp;
- tmp = skip_attribute_next(tmp);
- tmp = skip_declspec_next(tmp);
- } while (tmp != pc);
- }
- /**
- * try to match some variable identifiers in the loop below
- */
-
- while (chunk_is_between(pc, m_start, m_end, false))
- {
- auto match = match_variable(pc, m_start->level);
- auto *start = std::get<0>(match);
- auto *identifier = std::get<1>(match);
- auto *end = std::get<2>(match);
-
- if ( start != nullptr
- && identifier != nullptr)
- {
- if (end != nullptr)
- {
- mark_variable(identifier, flags);
-
- if (flags & PCF_VAR_1ST)
- {
- flags &= ~PCF_VAR_1ST; // clear the first flag for the next items
- }
- }
- }
-
- if (end != nullptr)
- {
- pc = end;
- }
- pc = chunk_get_next_ncnnl(pc);
-
- /**
- * skip any right-hand side assignments
- */
- if (chunk_is_token(pc, CT_ASSIGN))
- {
- pc = skip_to_expression_end(pc);
- }
-
- /**
- * if we're sitting at a comma or semicolon, skip it
- */
- if ( chunk_is_semicolon(pc)
- || ( chunk_is_token(pc, CT_COMMA)
- && !pc->flags.test_any(PCF_IN_FCN_DEF | PCF_IN_FCN_CALL | PCF_IN_TEMPLATE)
- && !chunk_is_between(pc, inheritance_start, body_start)))
- {
- pc = chunk_get_next_ncnnl(pc);
- }
- }
- /**
- * if we still haven't identified a type, try doing so now that the
- * variables, if any, have been marked
- */
- try_post_identify_type();
-
- /**
- * identify possible macros preceding the type name
- */
- try_post_identify_macro_calls();
-
- if ( chunk_is_class_or_struct(m_start)
- && ( chunk_is_not_token(m_start, CT_STRUCT)
- || !language_is_set(LANG_C)))
- {
- /**
- * if a type has been identifies, mark any constructor matching constructor
- * declarations/definitions
- */
- mark_constructors();
- }
-
- if (type_identified())
- {
- if (~flags & PCF_VAR_1ST)
- {
- /**
- * PCF_VAR_1ST was cleared and a type was identified; therefore, set
- * PCF_VAR_TYPE for the identified type
- */
- chunk_flags_set(m_type, PCF_VAR_TYPE);
- }
- else if (~flags & PCF_VAR_INLINE)
- {
- /**
- * if a type was identified but no braced-enclosed body was found and no
- * identifiers were marked as variables, then we're likely we're likely
- * dealing with a forward declaration
- */
- flag_series(m_start, m_type, PCF_INCOMPLETE);
- }
- }
-} // EnumStructUnionParser::analyze_identifiers
-
-
-bool EnumStructUnionParser::body_detected() const
-{
- LOG_FUNC_ENTRY();
-
- auto *body_end = get_body_end();
- auto *body_start = get_body_start();
-
- return( body_end != nullptr
- && body_start != nullptr);
-} // EnumStructUnionParser::body_detected
-
-
-bool EnumStructUnionParser::comma_separated_values_detected() const
-{
- LOG_FUNC_ENTRY();
-
- return(!get_top_level_commas().empty());
-} // EnumStructUnionParser::comma_separated_values_detected
-
-
-bool EnumStructUnionParser::enum_base_detected() const
-{
- LOG_FUNC_ENTRY();
-
- return(m_chunk_map.find(CT_BIT_COLON) != m_chunk_map.cend());
-} // EnumStructUnionParser::enum_base_detected
-
-
-chunk_t *EnumStructUnionParser::get_body_end() const
-{
- LOG_FUNC_ENTRY();
-
- auto &&it_token_chunk_map_pair = m_chunk_map.find(CT_BRACE_CLOSE);
-
- if (it_token_chunk_map_pair != m_chunk_map.cend())
- {
- return(it_token_chunk_map_pair->second.at(0));
- }
- return(nullptr);
-} // EnumStructUnionParser::get_body_end
-
-
-chunk_t *EnumStructUnionParser::get_body_start() const
-{
- LOG_FUNC_ENTRY();
-
- auto &&it_token_chunk_map_pair = m_chunk_map.find(CT_BRACE_OPEN);
-
- if (it_token_chunk_map_pair != m_chunk_map.cend())
- {
- return(it_token_chunk_map_pair->second.at(0));
- }
- return(nullptr);
-} // EnumStructUnionParser::get_body_start
-
-
-chunk_t *EnumStructUnionParser::get_enum_base_start() const
-{
- LOG_FUNC_ENTRY();
-
- auto &&it_token_chunk_map_pair = m_chunk_map.find(CT_BIT_COLON);
-
- if (it_token_chunk_map_pair != m_chunk_map.cend())
- {
- return(it_token_chunk_map_pair->second.at(0));
- }
- return(nullptr);
-} // EnumStructUnionParser::get_enum_base_start
-
-
-chunk_t *EnumStructUnionParser::get_first_top_level_comma() const
-{
- LOG_FUNC_ENTRY();
-
- auto &&it_token_chunk_map_pair = m_chunk_map.find(CT_COMMA);
-
- if (it_token_chunk_map_pair != m_chunk_map.cend())
- {
- return(it_token_chunk_map_pair->second.at(0));
- }
- return(nullptr);
-} // EnumStructUnionParser::get_first_top_level_comma
-
-
-chunk_t *EnumStructUnionParser::get_inheritance_end() const
-{
- LOG_FUNC_ENTRY();
-
- chunk_t *brace_open = nullptr;
- auto *inheritance_start = get_inheritance_start();
-
- if (inheritance_start != nullptr)
- {
- brace_open = get_body_start();
-
- if (brace_open == nullptr)
- {
- brace_open = chunk_get_next_type(inheritance_start,
- CT_BRACE_OPEN,
- m_start->level,
- scope_e::ALL);
- }
- }
- return(brace_open);
-} // EnumStructUnionParser::get_inheritance_end
-
-
-chunk_t *EnumStructUnionParser::get_inheritance_start() const
-{
- LOG_FUNC_ENTRY();
-
- auto &&it_token_chunk_map_pair = m_chunk_map.find(CT_COLON);
-
- if (it_token_chunk_map_pair != m_chunk_map.cend())
- {
- return(it_token_chunk_map_pair->second.at(0));
- }
- return(nullptr);
-} // EnumStructUnionParser::get_inheritance_start
-
-
-std::map<std::size_t, chunk_t *> EnumStructUnionParser::get_question_operators() const
-{
- LOG_FUNC_ENTRY();
-
- auto &&it_token_chunk_map_pair = m_chunk_map.find(CT_QUESTION);
-
- if (it_token_chunk_map_pair != m_chunk_map.cend())
- {
- return(it_token_chunk_map_pair->second);
- }
- return(std::map<std::size_t, chunk_t *>());
-} // EnumStructUnionParser::get_question_operators
-
-
-chunk_t *EnumStructUnionParser::get_template_end() const
-{
- LOG_FUNC_ENTRY();
-
- auto &&it_token_chunk_map_pair = m_chunk_map.find(CT_ANGLE_CLOSE);
-
- if (it_token_chunk_map_pair != m_chunk_map.cend())
- {
- return(it_token_chunk_map_pair->second.at(0));
- }
- return(nullptr);
-} // EnumStructUnionParser::get_template_end
-
-
-chunk_t *EnumStructUnionParser::get_template_start() const
-{
- LOG_FUNC_ENTRY();
-
- auto &&it_token_chunk_map_pair = m_chunk_map.find(CT_ANGLE_OPEN);
-
- if (it_token_chunk_map_pair != m_chunk_map.cend())
- {
- return(it_token_chunk_map_pair->second.at(0));
- }
- return(nullptr);
-} // EnumStructUnionParser::get_template_start
-
-
-std::map<std::size_t, chunk_t *> EnumStructUnionParser::get_top_level_commas() const
-{
- LOG_FUNC_ENTRY();
-
- auto &&it_token_chunk_map_pair = m_chunk_map.find(CT_COMMA);
-
- if (it_token_chunk_map_pair != m_chunk_map.cend())
- {
- return(it_token_chunk_map_pair->second);
- }
- return(std::map<std::size_t, chunk_t *>());
-} // EnumStructUnionParser::get_top_level_commas
-
-
-chunk_t *EnumStructUnionParser::get_where_end() const
-{
- LOG_FUNC_ENTRY();
-
- chunk_t *brace_open = nullptr;
- auto *where_start = get_where_start();
-
- if (where_start != nullptr)
- {
- brace_open = get_body_start();
-
- if (brace_open == nullptr)
- {
- brace_open = chunk_get_next_type(where_start,
- CT_BRACE_OPEN,
- m_start->level,
- scope_e::ALL);
- }
- }
- return(brace_open);
-} // EnumStructUnionParser::get_where_end
-
-
-chunk_t *EnumStructUnionParser::get_where_start() const
-{
- LOG_FUNC_ENTRY();
-
- auto &&it_token_chunk_map_pair = m_chunk_map.find(CT_WHERE);
-
- if (it_token_chunk_map_pair != m_chunk_map.cend())
- {
- return(it_token_chunk_map_pair->second.at(0));
- }
- return(nullptr);
-} // EnumStructUnionParser::get_where_start
-
-
-bool EnumStructUnionParser::inheritance_detected() const
-{
- LOG_FUNC_ENTRY();
-
- return(m_chunk_map.find(CT_COLON) != m_chunk_map.cend());
-} // EnumStructUnionParser::inheritance_detected
-
-
-void EnumStructUnionParser::initialize(chunk_t *pc)
-{
- LOG_FUNC_ENTRY();
-
- parse_error_detected(false);
- m_chunk_map.clear();
-
- m_start = pc;
- m_type = nullptr;
- pc = try_find_end_chunk(pc);
- m_end = refine_end_chunk(pc);
-} // EnumStructUnionParser::initialize
-
-
-bool EnumStructUnionParser::is_potential_end_chunk(chunk_t *pc) const
-{
- LOG_FUNC_ENTRY();
-
- /**
- * test for a semicolon or closing brace at the level of the starting chunk
- */
- if ( pc == nullptr
- || parse_error_detected()
- || ( ( chunk_is_semicolon(pc)
- || chunk_is_token(pc, CT_BRACE_CLOSE))
- && pc->level == m_start->level))
- {
- return(true);
- }
- /**
- * check for the following:
- * 1) did we encounter a closing paren, which may indicate the end of cast?
- * 2) did we cross a preprocessor boundary?
- * 3) did we cross the closing paren of a function signature?
- */
-
- auto const pc_in_funcdef = pc->flags & PCF_IN_FCN_DEF;
- auto const pc_in_preproc = pc->flags & PCF_IN_PREPROC;
- auto const start_in_funcdef = m_start->flags & PCF_IN_FCN_DEF;
- auto const start_in_preproc = m_start->flags & PCF_IN_PREPROC;
-
- /**
- * the following may identify cases where we've reached the
- * end of a cast terminated by a closing paren
- */
- if ( ( chunk_is_token(pc, CT_PAREN_CLOSE)
- && pc->level < m_start->level)
- || (start_in_funcdef ^ pc_in_funcdef).test_any()
- || (start_in_preproc ^ pc_in_preproc).test_any())
- {
- return(true);
- }
- /**
- * check whether the current chunk's nest level is less than that
- * of the starting chunk
- */
-
- std::size_t pc_template_nest = get_cpp_template_angle_nest_level(pc);
- std::size_t start_template_nest = get_cpp_template_angle_nest_level(m_start);
-
- if (start_template_nest > pc_template_nest)
- {
- return(true);
- }
- /**
- * assuming the chunk is within a function call/definition, check the following:
- * 1) chunk is a closing function paren at a lower level than the starting chunk
- * 2) chunk is an assignment ('=') or comma at the level of the starting chunk
- */
-
- auto const pc_in_funccall = pc->flags & PCF_IN_FCN_CALL;
- auto const start_in_funccall = m_start->flags & PCF_IN_FCN_CALL;
-
- if ( ( pc_in_funccall.test_any()
- && start_in_funccall.test_any()
- && chunk_is_token(pc, CT_COMMA)
- && pc->level == m_start->level)
- || ( pc_in_funcdef.test_any()
- && ( ( chunk_is_token(pc, CT_FPAREN_CLOSE)
- && pc->level < m_start->level)
- || ( ( chunk_is_token(pc, CT_ASSIGN)
- || chunk_is_token(pc, CT_COMMA))
- && pc->level == m_start->level))))
- {
- return(true);
- }
- return(false);
-} // EnumStructUnionParser::is_potential_end_chunk
-
-
-bool EnumStructUnionParser::is_within_conditional(chunk_t *pc) const
-{
- LOG_FUNC_ENTRY();
-
- auto question_operators = get_question_operators();
-
- if (!question_operators.empty())
- {
- auto &&it_token_chunk_pair = question_operators.cbegin();
-
- while (it_token_chunk_pair != question_operators.cend())
- {
- auto *question = it_token_chunk_pair->second;
- auto *end = skip_to_expression_end(question);
- auto *start = skip_to_expression_start(question);
-
- if (chunk_is_between(pc, start, end))
- {
- return(true);
- }
- ++it_token_chunk_pair;
- }
- }
- return(false);
-} // EnumStructUnionParser::is_within_conditional
-
-
-bool EnumStructUnionParser::is_within_inheritance_list(chunk_t *pc) const
-{
- LOG_FUNC_ENTRY();
-
- if ( pc != nullptr
- && pc->flags.test(PCF_IN_CLASS_BASE))
- {
- return(true);
- }
- auto *inheritance_end = get_inheritance_end();
- auto *inheritance_start = get_inheritance_start();
-
- if ( inheritance_end != nullptr
- && inheritance_start != nullptr)
- {
- return(chunk_is_between(pc, inheritance_start, inheritance_end));
- }
- return(false);
-} // EnumStructUnionParser::is_within_inheritance_list
-
-
-bool EnumStructUnionParser::is_within_where_clause(chunk_t *pc) const
-{
- LOG_FUNC_ENTRY();
-
- if ( pc != nullptr
- && pc->flags.test(PCF_IN_WHERE_SPEC))
- {
- return(true);
- }
- auto *where_end = get_where_end();
- auto *where_start = get_where_start();
-
- if ( where_end != nullptr
- && where_start != nullptr)
- {
- return(chunk_is_between(pc, where_start, where_end));
- }
- return(false);
-} // EnumStructUnionParser::is_within_where_clause
-
-
-void EnumStructUnionParser::mark_base_classes(chunk_t *pc)
-{
- LOG_FUNC_ENTRY();
-
- pcf_flags_t flags = PCF_VAR_1ST_DEF;
-
- while (pc != nullptr)
- {
- chunk_flags_set(pc, PCF_IN_CLASS_BASE);
- /**
- * clear the PCF_VAR_TYPE flag for all chunks within the inheritance list
- * TODO: this may not be necessary in the future once code outside this
- * class is improved such that PCF_VAR_TYPE is not set for these chunks
- */
- pc->flags &= ~PCF_VAR_TYPE;
-
- chunk_t *next = chunk_get_next_ncnnl(pc, scope_e::PREPROC);
-
- if (chunk_is_token(next, CT_DC_MEMBER))
- {
- /**
- * just in case it's a templated type
- */
- pc = skip_template_prev(pc);
-
- if (chunk_is_token(pc, CT_WORD))
- {
- /**
- * TODO:
- * To comply with conventions used elsewhere in the code, we're going
- * to change chunks marked CT_WORD to CT_TYPE if followed by a scope-
- * resolution operator; if a chunk marked CT_WORD is followed by a set
- * of angle brackets, then it's obviously a templated type. However,
- * in the absence of a pair trailing angle brackets, the chunk may be
- * a namespace rather than a type. Need to revisit this!
- */
- set_chunk_type(pc, CT_TYPE);
- }
- }
- else if ( ( chunk_is_token(next, CT_BRACE_OPEN)
- || ( chunk_is_token(next, CT_COMMA)
- && !is_within_where_clause(next)))
- && next->level == m_start->level)
- {
- /**
- * just in case it's a templated type
- */
- pc = skip_template_prev(pc);
-
- if (chunk_is_token(pc, CT_WORD))
- {
- chunk_flags_set(pc, flags);
-
- if (flags & PCF_VAR_1ST)
- {
- flags &= ~PCF_VAR_1ST; // clear the first flag for the next items
- }
- }
-
- if (chunk_is_token(next, CT_BRACE_OPEN))
- {
- break;
- }
- }
- pc = next;
- }
- chunk_flags_set(pc, PCF_IN_CLASS_BASE);
-} // EnumStructUnionParser::mark_base_classes
-
-
-void EnumStructUnionParser::mark_braces(chunk_t *brace_open)
-{
- LOG_FUNC_ENTRY();
-
- pcf_flags_t flags = PCF_NONE;
-
- if (chunk_is_token(m_start, CT_CLASS))
- {
- flags = PCF_IN_CLASS;
- }
- else if (chunk_is_enum(m_start))
- {
- flags = PCF_IN_ENUM;
- }
- else if (chunk_is_token(m_start, CT_STRUCT))
- {
- flags = PCF_IN_STRUCT;
- }
- /**
- * TODO: why does flag_parens() flag the closing paren,
- * but it doesn't flag the opening paren?
- */
-
- flag_parens(brace_open,
- flags,
- CT_NONE,
- CT_NONE,
- false);
-
- if (chunk_is_class_struct_union(m_start))
- {
- mark_struct_union_body(brace_open);
-
- auto *inheritance_start = get_inheritance_start();
-
- if (inheritance_start != nullptr)
- {
- /**
- * the class/struct/union is a derived class; mark the base
- * classes between the colon/java "implements" keyword and the
- * opening brace
- */
-
- mark_base_classes(inheritance_start);
- }
- }
- set_chunk_parent(brace_open, m_start->type);
-
- auto *brace_close = chunk_skip_to_match(brace_open, scope_e::PREPROC);
-
- if (brace_close != nullptr)
- {
- set_chunk_parent(brace_close, m_start->type);
- }
-} // EnumStructUnionParser::mark_braces
-
-
-void EnumStructUnionParser::mark_class_colon(chunk_t *colon)
-{
- LOG_FUNC_ENTRY();
-
- LOG_FMT(LFTOR,
- "%s(%d): Class colon detected: orig_line is %zu, orig_col is %zu\n",
- __unqualified_func__,
- __LINE__,
- colon->orig_line,
- colon->orig_col);
-
- set_chunk_type(colon, CT_CLASS_COLON);
- set_chunk_parent(colon, m_start->type);
-} // EnumStructUnionParser::mark_class_colon
-
-
-void EnumStructUnionParser::mark_conditional_colon(chunk_t *colon)
-{
- set_chunk_type(colon, CT_COND_COLON);
-} // EnumStructUnionParser::mark_conditional_colon
-
-
-void EnumStructUnionParser::mark_constructors()
-{
- LOG_FUNC_ENTRY();
-
- /**
- * if a type was previously identified, then look for
- * class/struct constructors in the body
- */
- if ( body_detected()
- && type_identified()
- && chunk_is_class_or_struct(m_start))
- {
- LOG_FMT(LFTOR,
- "%s(%d): orig_line is %zu, orig_col is %zu, start is '%s', parent_type is %s\n",
- __unqualified_func__,
- __LINE__,
- m_start->orig_line,
- m_start->orig_col,
- m_start->text(),
- get_token_name(get_chunk_parent_type(m_start)));
-
- log_pcf_flags(LFTOR, m_start->flags);
-
- /**
- * get the name of the type
- */
- auto *body_end = get_body_end();
- auto *body_start = get_body_start();
- auto *name = m_type->text();
-
- LOG_FMT(LFTOR,
- "%s(%d): Name of type is '%s'\n",
- __unqualified_func__,
- __LINE__,
- name);
- log_pcf_flags(LFTOR, m_type->flags);
-
- chunk_t *next = nullptr;
- std::size_t level = m_type->brace_level + 1;
-
- for (auto *prev = body_start; next != body_end; prev = next)
- {
- chunk_flags_set(prev, PCF_IN_CLASS);
-
- next = skip_template_next(chunk_get_next_ncnnl(prev, scope_e::PREPROC)); // Issue #3368
-
- /**
- * find a chunk within the class/struct body that
- */
- if ( prev != nullptr
- && std::strcmp(prev->text(), name) == 0
- && prev->level == level
- && chunk_is_paren_open(next))
- {
- set_chunk_type(prev, CT_FUNC_CLASS_DEF);
-
- LOG_FMT(LFTOR,
- "%s(%d): Constructor/destructor detected: '%s' at orig_line is %zu, orig_col is %zu, type is %s\n",
- __unqualified_func__,
- __LINE__,
- name,
- prev->orig_line,
- prev->orig_col,
- get_token_name(prev->type));
-
- mark_cpp_constructor(prev);
- }
- }
-
- chunk_flags_set(next, PCF_IN_CLASS);
- }
-} // EnumStructUnionParser::mark_constructor
-
-
-void EnumStructUnionParser::mark_enum_integral_type(chunk_t *colon)
-{
- LOG_FUNC_ENTRY();
-
- set_chunk_type(colon, CT_BIT_COLON);
- set_chunk_parent(colon, m_start->type);
-
- auto *body_start = get_body_start();
- auto *pc = chunk_get_next_ncnnl(colon);
-
- /**
- * the chunk(s) between the colon and opening
- * brace (if present) should specify the enum's
- * integral type
- */
-
- while ( chunk_is_between(pc, m_start, m_end)
- && pc != body_start
- && chunk_is_not_token(pc, CT_BRACE_OPEN)
- && !chunk_is_semicolon(pc))
- {
- /**
- * clear the PCF_VAR_TYPE flag for all chunks within the enum integral base
- * TODO: this may not be necessary in the future once code outside this
- * class is improved such that PCF_VAR_TYPE is not set for these chunks
- */
- if (chunk_is_not_token(pc, CT_DC_MEMBER)) // Issue #3198
- {
- pc->flags &= ~PCF_VAR_TYPE;
- set_chunk_type(pc, CT_TYPE);
- set_chunk_parent(pc, colon->type);
- }
- pc = chunk_get_next_ncnnl(pc);
- }
-} // EnumStructUnionParser::mark_enum_integral_type
-
-
-void EnumStructUnionParser::mark_extracorporeal_lvalues()
-{
- /**
- * clear the PCF_LVALUE flag for all chunks outside the body definition,
- * as this flag may have been set elsewhere by code outside this class
- * TODO: the mark_lvalue() function needs some improvement so that the
- * following isn't necessary
- */
- chunk_t *next = m_start;
- chunk_t *prev = nullptr;
-
- /**
- * if the class is a template, go the extra step and correct the
- * erroneously marked chunks - as previously mentioned, this likely
- * won't be necessary with improvements to the mark_lvalue() function
- */
- if (get_chunk_parent_type(next) == CT_TEMPLATE)
- {
- while (true)
- {
- prev = chunk_get_prev_ncnnlni(next);
-
- if ( prev == nullptr
- || ( !prev->flags.test(PCF_IN_TEMPLATE)
- && chunk_is_not_token(prev, CT_TEMPLATE)))
- {
- break;
- }
- next = prev;
- }
- }
- auto *body_end = get_body_end();
- auto *body_start = get_body_start();
-
- while (next != m_end)
- {
- if ( !chunk_is_between(next, body_start, body_end)
- && next->flags.test(PCF_LVALUE))
- {
- next->flags &= ~PCF_LVALUE;
- }
- else if ( ( chunk_is_token(next, CT_ASSIGN)
- || chunk_is_token(next, CT_BRACE_OPEN))
- && chunk_is_token(prev, CT_WORD)
- && prev->flags.test_any(PCF_VAR_DEF | PCF_VAR_1ST | PCF_VAR_INLINE))
- {
- chunk_flags_set(prev, PCF_LVALUE);
- }
- prev = next;
- next = chunk_get_next_ncnnl(next);
- }
-} // EnumStructUnionParser::mark_extracorporeal_lavlues
-
-
-void EnumStructUnionParser::mark_nested_name_specifiers(chunk_t *pc)
-{
- LOG_FUNC_ENTRY();
-
- auto start_end_pair = match_qualified_identifier(pc);
- auto start = start_end_pair.first;
- auto end = start_end_pair.second;
-
- for (pc = start; chunk_is_between(pc, start, end); pc = chunk_get_next_ncnnl(pc))
- {
- if (chunk_is_token(pc, CT_WORD))
- {
- /**
- * if the next token is an opening angle, then we can safely
- * mark the current identifier as a type
- */
- auto *next = chunk_get_next_ncnnl(pc);
-
- if (chunk_is_token(next, CT_ANGLE_OPEN))
- {
- /**
- * the template may have already been previously marked elsewhere...
- */
- auto *angle_open = next;
- auto *angle_close = chunk_skip_to_match(angle_open, scope_e::PREPROC);
-
- if (angle_close == nullptr)
- {
- // parse error
- parse_error_detected(true);
-
- // TODO: should this be just a warning or an error (with exit condition?)
- LOG_FMT(LWARN,
- "%s(%d): Unmatched '<' at orig_line is %zu, orig_col is %zu\n",
- __unqualified_func__,
- __LINE__,
- angle_open->orig_line,
- angle_open->orig_col);
-
- break;
- }
- set_chunk_type(pc, CT_TYPE);
- mark_template(next);
- pc = angle_close;
- }
- else if ( is_within_inheritance_list(pc)
- && ( chunk_is_token(next, CT_COMMA)
- || chunk_is_token(next, CT_BRACE_OPEN)))
- {
- set_chunk_type(pc, CT_TYPE);
- }
- }
- }
-} // EnumStructUnionParser::mark_nested_name_specifiers
-
-
-void EnumStructUnionParser::mark_pointer_types(chunk_t *pc)
-{
- LOG_FUNC_ENTRY();
-
- if (chunk_is_token(pc, CT_WORD))
- {
- do
- {
- // TODO: should there be a CT_BYREF_TYPE?
- pc = chunk_get_prev_ncnnlni(pc);
-
- if (chunk_is_ptr_operator(pc))
- {
- set_chunk_parent(pc, m_start->type);
- set_chunk_type(pc, CT_PTR_TYPE);
- }
- } while (chunk_is_pointer_reference_or_qualifier(pc));
- }
-} // EnumStructUnionParser::mark_pointer_types
-
-
-void EnumStructUnionParser::mark_template(chunk_t *start) const
-{
- LOG_FUNC_ENTRY();
-
- if (start != nullptr)
- {
- LOG_FMT(LTEMPL,
- "%s(%d): Template detected: '%s' at orig_line %zu, orig_col %zu\n",
- __unqualified_func__,
- __LINE__,
- start->text(),
- start->orig_line,
- start->orig_col);
- }
- set_chunk_parent(start, CT_TEMPLATE);
-
- auto *end = chunk_skip_to_match(start, scope_e::PREPROC);
-
- if (end != nullptr)
- {
- set_chunk_parent(end, CT_TEMPLATE);
-
- mark_template_args(start, end);
- }
-} // EnumStructUnionParser::mark_template
-
-
-void EnumStructUnionParser::mark_template_args(chunk_t *start, chunk_t *end) const
-{
- LOG_FUNC_ENTRY();
-
- if ( end != nullptr
- && start != nullptr)
- {
- LOG_FMT(LTEMPL,
- "%s(%d): Start of template detected: '%s' at orig_line %zu, orig_col %zu\n",
- __unqualified_func__,
- __LINE__,
- start->text(),
- start->orig_line,
- start->orig_col);
-
- pcf_flags_t flags = PCF_IN_TEMPLATE;
- chunk_t *next = start;
-
- /**
- * TODO: for now, just mark the chunks within the template as PCF_IN_TEMPLATE;
- * we probably need to create a TemplateParser class to handle all
- * things template-related
- */
-
- while (true)
- {
- next = chunk_get_next_ncnnl(next);
-
- if (next == end)
- {
- break;
- }
- chunk_flags_set(next, flags);
- }
- LOG_FMT(LTEMPL,
- "%s(%d): End of template detected: '%s' at orig_line %zu, orig_col %zu\n",
- __unqualified_func__,
- __LINE__,
- end->text(),
- end->orig_line,
- end->orig_col);
- }
-} // EnumStructUnionParser::mark_template_args
-
-
-void EnumStructUnionParser::mark_type(chunk_t *pc)
-{
- LOG_FUNC_ENTRY();
-
- if (pc != nullptr)
- {
- m_type = pc;
-
- do
- {
- make_type(pc);
- set_chunk_parent(pc, m_start->type);
- pc = chunk_get_next_ncnnl(pc, scope_e::PREPROC);
- } while (chunk_is_pointer_or_reference(pc));
- }
-} // EnumStructUnionParser::mark_type
-
-
-void EnumStructUnionParser::mark_variable(chunk_t *variable, pcf_flags_t flags)
-{
- LOG_FUNC_ENTRY();
-
- if (variable != nullptr)
- {
- LOG_FMT(LVARDEF,
- "%s(%d): Variable definition detected: '%s' at orig_line is %zu, orig_col is %zu, set %s\n",
- __unqualified_func__,
- __LINE__,
- variable->text(),
- variable->orig_line,
- variable->orig_col,
- flags & PCF_VAR_1ST_DEF ? "PCF_VAR_1ST_DEF" : "PCF_VAR_1ST");
-
- chunk_flags_set(variable, flags);
- set_chunk_type(variable, CT_WORD);
- mark_pointer_types(variable);
- }
-} // EnumStructUnionParser::mark_variable
-
-
-void EnumStructUnionParser::mark_where_clause(chunk_t *where)
-{
- LOG_FUNC_ENTRY();
-
- if (where != nullptr)
- {
- LOG_FMT(LFTOR,
- "%s(%d): Where clause detected: orig_line is %zu, orig_col is %zu\n",
- __unqualified_func__,
- __LINE__,
- where->orig_line,
- where->orig_col);
- }
- set_where_start(where);
-
- auto *where_end = get_where_end();
- auto *where_start = get_where_start();
-
- set_where_end(where_end);
-
- pcf_flags_t flags;
-
- for (auto *pc = where_start; pc != where_end; pc = chunk_get_next_ncnnl(pc))
- {
- flags = mark_where_chunk(pc, m_start->type, flags);
- }
-} // EnumStructUnionParser::mark_where_clause
-
-
-void EnumStructUnionParser::mark_where_colon(chunk_t *colon)
-{
- LOG_FUNC_ENTRY();
-
- if (colon != nullptr)
- {
- LOG_FMT(LFTOR,
- "%s(%d): Where colon detected: orig_line is %zu, orig_col is %zu\n",
- __unqualified_func__,
- __LINE__,
- colon->orig_line,
- colon->orig_col);
- }
- set_chunk_type(colon, CT_WHERE_COLON);
- set_chunk_parent(colon, m_start->type);
-} // EnumStructUnionParser::mark_where_colon
-
-
-void EnumStructUnionParser::parse(chunk_t *pc)
-{
- LOG_FUNC_ENTRY();
-
- initialize(pc);
-
- /**
- * make sure this wasn't a cast, and also make sure we're
- * actually dealing with a class/enum/struct/union type
- */
- if ( get_chunk_parent_type(m_start) == CT_C_CAST
- || !chunk_is_class_enum_struct_union(m_start))
- {
- return;
- }
- chunk_t *prev = m_start;
- chunk_t *next = chunk_get_next_ncnnl(prev);
-
- /**
- * the enum-key might be enum, enum class or enum struct
- */
- if (chunk_is_enum(next))
- {
- prev = next;
- next = chunk_get_next_ncnnl(prev);
- }
- else if (chunk_is_enum(prev))
- {
- auto *prev_prev = chunk_get_prev_ncnnlni(prev);
-
- if ( chunk_is_enum(prev_prev)
- && chunk_is_enum(prev))
- {
- m_start = prev_prev;
- }
- }
- /**
- * pre-process all chunks between the starting and ending chunks identified
- * in the initial pass
- */
-
- while (chunk_is_between(next, m_start, m_end))
- {
- /**
- * skip attributes
- */
- next = skip_attribute(next);
-
- /**
- * skip declspec
- */
- next = skip_declspec(next);
-
- /**
- * skip any right-hand side assignments
- */
- if (chunk_is_token(next, CT_ASSIGN))
- {
- next = skip_to_expression_end(next);
- }
-
- if ( chunk_is_token(next, CT_ANGLE_OPEN)
- && !template_detected())
- {
- next = parse_angles(next);
- }
- else if ( chunk_is_token(next, CT_BRACE_OPEN)
- && !body_detected())
- {
- next = parse_braces(next);
- }
- else if (chunk_is_colon(next))
- {
- parse_colon(next);
- }
- else if (chunk_is_token(next, CT_COMMA))
- {
- record_top_level_comma(next);
- }
- else if (chunk_is_token(next, CT_DC_MEMBER))
- {
- next = parse_double_colon(next);
- }
- else if ( chunk_is_paren_open(next)
- && ( language_is_set(LANG_D)
- || ( language_is_set(LANG_PAWN)
- && chunk_is_enum(m_start))))
- {
- set_paren_parent(next, m_start->type);
-
- if ( chunk_is_token(prev, CT_WORD)
- && language_is_set(LANG_D))
- {
- mark_template(next);
- }
- next = chunk_skip_to_match(next, scope_e::PREPROC);
- }
- else if ( chunk_is_token(next, CT_QUALIFIER)
- && language_is_set(LANG_JAVA)
- && std::strncmp(next->str.c_str(), "implements", 10) == 0)
- {
- mark_base_classes(next);
- }
- else if (chunk_is_token(next, CT_QUESTION))
- {
- record_question_operator(next);
- }
- else if ( chunk_is_token(next, CT_WHERE)
- && !where_clause_detected())
- {
- mark_where_clause(next);
- }
- prev = next;
-
- do
- {
- next = chunk_get_next_ncnnl(next);
- } while ( next != nullptr
- && next->level > m_start->level);
- }
- /**
- * identify the type and/or variable(s)
- */
- analyze_identifiers();
-
- /**
- * identify and mark lvalues occurring outside the body definition
- */
- mark_extracorporeal_lvalues();
-
- if ( prev != nullptr
- && chunk_is_semicolon(prev)
- && prev->level == m_start->level
- && !prev->flags.test(PCF_IN_FOR))
- {
- set_chunk_parent(prev, m_start->type);
- }
-} // EnumStructUnionParser::parse
-
-
-chunk_t *EnumStructUnionParser::parse_angles(chunk_t *angle_open)
-{
- LOG_FUNC_ENTRY();
-
- /**
- * first check to see if the open angle occurs within an inheritance list
- */
- auto *pc = angle_open;
-
- if (!is_within_inheritance_list(pc))
- {
- /**
- * check to see if there's a matching closing angle bracket
- */
- auto *angle_close = chunk_skip_to_match(angle_open, scope_e::PREPROC);
-
- if (angle_close == nullptr)
- {
- // parse error
- parse_error_detected(true);
-
- // TODO: should this be just a warning or an error (with exit condition?)
- LOG_FMT(LWARN,
- "%s(%d): Unmatched '<' at orig_line is %zu, orig_col is %zu\n",
- __unqualified_func__,
- __LINE__,
- angle_open->orig_line,
- angle_open->orig_col);
- }
- else
- {
- /**
- * check to make sure that the template is the final chunk in a list
- * of scope-resolution qualifications
- */
- auto *next = chunk_get_next_ncnnl(angle_close);
-
- if (chunk_is_not_token(next, CT_DC_MEMBER))
- {
- set_template_start(angle_open);
-
- /**
- * we could be dealing with a template type; if so, the opening angle
- * bracket should be preceded by a CT_WORD token and we should have
- * found a closing angle bracket
- */
- auto *prev = chunk_get_prev_ncnnlni(angle_open);
-
- if (chunk_is_not_token(prev, CT_WORD))
- {
- // parse error
- parse_error_detected(true);
-
- // TODO: should this be just a warning or an error (with exit condition?)
- LOG_FMT(LWARN,
- "%s(%d): Identifier missing before '<' at orig_line is %zu, orig_col is %zu\n",
- __unqualified_func__,
- __LINE__,
- angle_open->orig_line,
- angle_open->orig_col);
- }
- else
- {
- set_template_end(angle_close);
- mark_template(angle_open);
- }
- }
- /**
- * update input argument to point to the closing angle bracket
- */
- pc = angle_close;
- }
- }
- return(pc);
-} // EnumStructUnionParser::parse_angles
-
-
-chunk_t *EnumStructUnionParser::parse_braces(chunk_t *brace_open)
-{
- LOG_FUNC_ENTRY();
-
- /**
- * check to see if there's a matching closing brace
- */
-
- auto *pc = brace_open;
- auto *brace_close = chunk_skip_to_match(pc, scope_e::PREPROC);
-
- if (brace_close != nullptr)
- {
- /**
- * we could be dealing with a variable definition preceded by
- * the class/struct keyword. It's possible that the variable is
- * assigned via direct-list initialization, hence the open brace
- * is NOT part of a class/struct type definition.
- */
- auto *first_comma = get_first_top_level_comma();
-
- if (chunk_is_after(pc, first_comma))
- {
- /**
- * the open brace occurs after a top-level comma was encountered, which
- * likely implies a direct-initialization or braced initializer list in
- * the midst of a list of variable definitions
- */
-
- return(pc);
- }
- set_body_end(brace_close);
- set_body_start(brace_open);
-
- auto *enum_base_start = get_enum_base_start();
- auto *inheritance_start = get_inheritance_start();
- auto *prev = chunk_get_prev_ncnnlni(pc);
-
- /**
- * check to see if the open brace was preceded by a closing paren;
- * it could possibly be a function-like macro call preceding the
- * open brace, but it's more likely that we're dealing with a
- * signature associated with a function definition
- */
-
- if ( language_is_set(LANG_D)
- || language_is_set(LANG_PAWN)
- || !chunk_is_paren_close(prev)
- || chunk_is_between(prev, enum_base_start, brace_open)
- || chunk_is_between(prev, inheritance_start, brace_open))
- {
- mark_braces(brace_open);
-
- /**
- * D does not require a semicolon after an enum, but we add one to make
- * other code happy.
- */
- if ( language_is_set(LANG_D)
- && chunk_is_enum(m_start))
- {
- pawn_add_vsemi_after(brace_close); // Issue #2279
- }
- pc = brace_close;
- }
- else
- {
- // TODO: should this be just a warning or an error (with exit condition?)
- LOG_FMT(LWARN,
- "%s(%d): Parsing error precedes start of body '{' at orig_line is %zu, orig_col is %zu\n",
- __unqualified_func__,
- __LINE__,
- brace_open->orig_line,
- brace_open->orig_col);
-
- // parse error
- parse_error_detected(true);
- }
- }
- return(pc);
-} // EnumStructUnionParser::parse_braces
-
-
-void EnumStructUnionParser::parse_colon(chunk_t *colon)
-{
- LOG_FUNC_ENTRY();
-
- if (chunk_is_token(m_start, CT_UNION))
- {
- /**
- * unions do not implement inheritance
- */
-
- // TODO: should this be just a warning or an error (with exit condition?)
- LOG_FMT(LWARN,
- "%s(%d): Colon follows union declaration at orig_line is %zu, orig_col is %zu\n",
- __unqualified_func__,
- __LINE__,
- colon->orig_line,
- colon->orig_col);
-
- // parse error
- parse_error_detected(true);
- }
- else if (is_within_conditional(colon))
- {
- mark_conditional_colon(colon);
- }
- else if (is_within_where_clause(colon))
- {
- mark_where_colon(colon);
- }
- else if (!inheritance_detected())
- {
- if (chunk_is_class_or_struct(m_start))
- {
- /**
- * the colon likely specifies an inheritance list for a struct
- * or class type
- */
-
- set_inheritance_start(colon);
- mark_class_colon(colon);
- }
- else if (chunk_is_enum(m_start))
- {
- set_enum_base_start(colon);
- mark_enum_integral_type(colon);
- }
- }
-} // EnumStructUnionParser::parse_colon
-
-
-chunk_t *EnumStructUnionParser::parse_double_colon(chunk_t *double_colon)
-{
- LOG_FUNC_ENTRY();
-
- auto *pc = double_colon;
-
- if ( language_is_set(LANG_CPP)
- && chunk_is_token(pc, CT_DC_MEMBER))
- {
- mark_nested_name_specifiers(pc);
- pc = skip_scope_resolution_and_nested_name_specifiers(pc);
- }
- return(pc);
-} // EnumStructUnionParser::parse_double_colon
-
-
-bool EnumStructUnionParser::parse_error_detected() const
-{
- LOG_FUNC_ENTRY();
-
- return(m_parse_error);
-} // EnumStructUnionParser::parse_error_detected
-
-
-void EnumStructUnionParser::parse_error_detected(bool status)
-{
- LOG_FUNC_ENTRY();
-
- m_parse_error = status;
-} // EnumStructUnionParser::parse_error_detected
-
-
-void EnumStructUnionParser::record_question_operator(chunk_t *question)
-{
- LOG_FUNC_ENTRY();
-
- if (chunk_is_token(question, CT_QUESTION))
- {
- std::size_t index = m_chunk_map[CT_QUESTION].size();
-
- m_chunk_map[CT_QUESTION][index] = question;
- }
-} // EnumStructUnionParser::record_question_operator
-
-
-void EnumStructUnionParser::record_top_level_comma(chunk_t *comma)
-{
- if ( comma != nullptr
- && comma->level == m_start->level
- && !is_within_conditional(comma)
- && !is_within_inheritance_list(comma))
- {
- std::size_t index = m_chunk_map[CT_COMMA].size();
-
- m_chunk_map[CT_COMMA][index] = comma;
- }
-} // EnumStructUnionParser::record_top_level_comma
-
-
-chunk_t *EnumStructUnionParser::refine_end_chunk(chunk_t *pc)
-{
- LOG_FUNC_ENTRY();
-
- if ( ( language_is_set(LANG_C)
- || language_is_set(LANG_CPP))
- && chunk_is_token(pc, CT_BRACE_CLOSE))
- {
- /**
- * if dealing with C/C++, one or more trailing variable definitions may
- * follow the closing brace; a semi-colon should've been good enough to
- * indicate the terminating condition, however some of the classes defined
- * in the input tests cases for Continuous Integration DO NOT correctly
- * terminate classes/struct with a semicolon (which is compilation error).
- * As a consequence, more checks must be performed to determine where
- * the terminating chunk is located. For instance, see operator.cpp and
- * enum_comma.h for examples of offenders
- */
- auto *next = chunk_get_next_ncnnl(pc);
-
- while (true)
- {
- if (chunk_is_semicolon(next))
- {
- pc = next;
-
- break;
- }
- else
- {
- /**
- * if we're sitting at a comma, skip it
- */
- if (chunk_is_token(next, CT_COMMA))
- {
- next = chunk_get_next_ncnnl(next);
- }
- auto match = match_variable(next, m_start->level);
- auto *start = std::get<0>(match);
- auto *identifier = std::get<1>(match);
- auto *end = std::get<2>(match);
-
- if ( end == nullptr
- || identifier == nullptr
- || start == nullptr)
- {
- break;
- }
- else
- {
- pc = chunk_get_next_ncnnl(end);
-
- /**
- * skip any right-hand side assignments
- */
- if (chunk_is_token(pc, CT_ASSIGN))
- {
- pc = skip_to_expression_end(pc);
- }
- next = pc;
- }
- }
- }
- }
- return(pc);
-} // EnumStructUnionParser::refine_end_chunk
-
-
-void EnumStructUnionParser::set_body_end(chunk_t *body_end)
-{
- LOG_FUNC_ENTRY();
-
- if (chunk_is_token(body_end, CT_BRACE_CLOSE))
- {
- m_chunk_map[CT_BRACE_CLOSE][0] = body_end;
- }
-} // EnumStructUnionParser::set_body_end
-
-
-void EnumStructUnionParser::set_body_start(chunk_t *body_start)
-{
- LOG_FUNC_ENTRY();
-
- if (chunk_is_token(body_start, CT_BRACE_OPEN))
- {
- m_chunk_map[CT_BRACE_OPEN][0] = body_start;
- }
-} // EnumStructUnionParser::set_body_start
-
-
-void EnumStructUnionParser::set_enum_base_start(chunk_t *enum_base_start)
-{
- LOG_FUNC_ENTRY();
-
- if (chunk_is_colon(enum_base_start))
- {
- m_chunk_map[CT_BIT_COLON][0] = enum_base_start;
- }
-} // EnumStructUnionParser::set_enum_base_start
-
-
-void EnumStructUnionParser::set_inheritance_start(chunk_t *inheritance_start)
-{
- LOG_FUNC_ENTRY();
-
- if (chunk_is_colon(inheritance_start))
- {
- m_chunk_map[CT_COLON][0] = inheritance_start;
- }
-} // EnumStructUnionParser::set_inheritance_start
-
-
-void EnumStructUnionParser::set_template_end(chunk_t *template_end)
-{
- LOG_FUNC_ENTRY();
-
- if (chunk_is_token(template_end, CT_ANGLE_CLOSE))
- {
- m_chunk_map[CT_ANGLE_CLOSE][0] = template_end;
- }
-} // EnumStructUnionParser::set_template_end
-
-
-void EnumStructUnionParser::set_template_start(chunk_t *template_start)
-{
- LOG_FUNC_ENTRY();
-
- if (chunk_is_token(template_start, CT_ANGLE_OPEN))
- {
- m_chunk_map[CT_ANGLE_OPEN][0] = template_start;
- }
-} // EnumStructUnionParser::set_template_start
-
-
-void EnumStructUnionParser::set_where_end(chunk_t *where_end)
-{
- LOG_FUNC_ENTRY();
-
- if (chunk_is_token(where_end, CT_BRACE_OPEN))
- {
- m_chunk_map[CT_WHERE][0] = where_end;
- }
-} // EnumStructUnionParser::set_where_end
-
-
-void EnumStructUnionParser::set_where_start(chunk_t *where_start)
-{
- LOG_FUNC_ENTRY();
-
- if (chunk_is_token(where_start, CT_WHERE))
- {
- m_chunk_map[CT_WHERE][0] = where_start;
- }
-} // EnumStructUnionParser::set_where_start
-
-
-bool EnumStructUnionParser::template_detected() const
-{
- LOG_FUNC_ENTRY();
-
- auto *template_end = get_template_end();
- auto *template_start = get_template_start();
-
- return( template_end != nullptr
- && template_start != nullptr);
-} // EnumStructUnionParser::template_detected
-
-
-chunk_t *EnumStructUnionParser::try_find_end_chunk(chunk_t *pc)
-{
- LOG_FUNC_ENTRY();
-
- do
- {
- /**
- * clear some previously marked token types, some of which have likely
- * been erroneously marked up to this point; a good example of this
- * arises when macro variables and/or macro function calls follow the
- * class/enum/struct/union keyword and precede the actual type name
- */
- if ( chunk_is_token(pc, CT_TYPE)
- || chunk_is_token(pc, CT_WORD))
- {
- set_chunk_type(pc, CT_WORD);
- set_chunk_parent(pc, CT_NONE);
- }
-
- do
- {
- pc = chunk_get_next_ncnnl(pc, scope_e::PREPROC);
- } while ( pc != nullptr
- && pc->level > m_start->level);
- } while (!is_potential_end_chunk(pc));
-
- /**
- * perform a second pass for c++ that
- */
- pc = refine_end_chunk(pc);
-
- return(pc);
-} // EnumStructUnionParser::try_find_end_chunk
-
-
-void EnumStructUnionParser::try_post_identify_macro_calls()
-{
- LOG_FUNC_ENTRY();
-
- if ( language_is_set(LANG_CPP)
- && type_identified())
- {
- /**
- * for all chunks at class/enum/struct/union level, identify function-like
- * macro calls and mark them as CT_MACRO_FUNC_CALL. The reason for doing
- * so is to avoid mis-interpretation by code executed at a later time
- */
-
- auto *body_start = get_body_start();
- auto *inheritance_start = get_inheritance_start();
- chunk_t *pc = m_start;
- chunk_t *prev = nullptr;
-
- do
- {
- if ( !chunk_is_between(prev, inheritance_start, body_start)
- && ( chunk_is_token(prev, CT_WORD)
- || chunk_is_token(prev, CT_FUNCTION)
- || chunk_is_token(prev, CT_FUNC_DEF))
- && !prev->flags.test_any(PCF_VAR_DEF | PCF_VAR_1ST | PCF_VAR_INLINE)
- && prev->level == m_start->level)
- {
- if (chunk_is_paren_open(pc))
- {
- auto *paren_open = pc;
- auto *paren_close = chunk_skip_to_match(paren_open, scope_e::PREPROC);
-
- if (paren_close != nullptr)
- {
- set_chunk_type(paren_open, CT_FPAREN_OPEN);
- set_chunk_parent(paren_open, CT_MACRO_FUNC_CALL);
- set_chunk_type(paren_close, CT_FPAREN_CLOSE);
- set_chunk_parent(paren_close, CT_MACRO_FUNC_CALL);
- set_chunk_type(prev, CT_MACRO_FUNC_CALL);
- }
- }
- }
- prev = pc;
- pc = chunk_get_next_ncnnl(prev);
- } while (chunk_is_between(pc, m_start, m_end));
- }
-} // EnumStructUnionParser::try_post_identify_macro_calls
-
-
-void EnumStructUnionParser::try_post_identify_type()
-{
- LOG_FUNC_ENTRY();
-
- chunk_t *body_end = get_body_end();
-
- if ( !type_identified()
- && body_end == nullptr)
- {
- /**
- * a type wasn't identified and no closing brace is present; we're
- * likely not dealing with an anonymous enum/class/struct
- */
-
- /**
- * a type has yet to be identified, so search for the last word
- * that hasn't been marked as a variable
- */
- chunk_t *type = nullptr;
- chunk_t *pc = m_start;
-
- do
- {
- /**
- * in case it's a qualified identifier, skip scope-resolution and
- * nested name specifiers and return just the qualified identifier name
- */
- pc = skip_scope_resolution_and_nested_name_specifiers(pc);
-
- if (pc->flags.test_any(PCF_VAR_DEF | PCF_VAR_1ST | PCF_VAR_INLINE))
- {
- break;
- }
- else if ( chunk_is_token(pc, CT_WORD)
- || chunk_is_token(pc, CT_ANGLE_CLOSE))
- {
- type = skip_template_prev(pc);
- }
- pc = chunk_get_next_ncnnl(pc);
- } while (chunk_is_between(pc, m_start, m_end));
-
- if (type != nullptr)
- {
- mark_type(type);
- }
- }
-} // EnumStructUnionParser::try_post_identify_type
-
-
-bool EnumStructUnionParser::try_pre_identify_type()
-{
- LOG_FUNC_ENTRY();
-
- chunk_t *pc = get_body_start();
-
- if ( language_is_set(LANG_PAWN)
- && chunk_is_enum(m_start))
- {
- set_paren_parent(pc, m_start->type);
- }
- else if (template_detected())
- {
- pc = get_template_start();
- }
- else if (enum_base_detected())
- {
- pc = get_enum_base_start();
- }
- else if (inheritance_detected())
- {
- pc = get_inheritance_start();
-
- if (chunk_is_token(m_start, CT_UNION))
- {
- /**
- * unions do not implement inheritance
- */
-
- // TODO: should this be just a warning or an error (with exit condition?)
- LOG_FMT(LWARN,
- "%s(%d): Bad union declaration detected at orig_line is %zu, orig_col is %zu\n",
- __unqualified_func__,
- __LINE__,
- m_start->orig_line,
- m_start->orig_col);
-
- parse_error_detected(true);
-
- return(false);
- }
- }
-
- if (pc == nullptr)
- {
- chunk_t *next = chunk_get_next_ncnnl(m_start);
-
- /**
- * in case it's a qualified identifier, skip scope-resolution and
- * nested name specifiers and return just the qualified identifier name
- */
- next = skip_scope_resolution_and_nested_name_specifiers(next);
-
- chunk_t *next_next = chunk_get_next_ncnnl(next);
-
- /**
- * in case it's a qualified identifier, skip scope-resolution and
- * nested name specifiers and return just the qualified identifier name
- */
- next_next = skip_scope_resolution_and_nested_name_specifiers(next_next);
-
- /**
- * if there is one word between the start and end chunks, then we've likely
- * identified the type; if there are two words, then the first is likely a
- * type and the second is an instantiation thereof; however, it is possible
- * that the first word is actually a reference to a macro definition, in which
- * the second word would be the type
- */
- if (next_next == m_end)
- {
- pc = next_next;
- }
- else if ( next != nullptr
- && chunk_is_token(next, CT_WORD)
- && chunk_is_token(next_next, CT_WORD)
- && chunk_get_prev_ncnnlni(m_end) == next_next)
- {
- /**
- * check to see if we've got a macro reference preceding the last word chunk;
- * this won't work in all cases, because a macro may be defined in another header
- * file, but this is an attempt to increase the chances of identifying the correct
- * chunk as the type
- */
- if ( chunk_is_macro_reference(next)
- || get_chunk_parent_type(m_start) == CT_TEMPLATE)
- {
- pc = m_end;
- }
- else
- {
- pc = next_next;
- }
- }
- else
- {
- /**
- * search for some common patterns that may indicate a type
- */
- chunk_t *prev = m_start;
-
- while ( chunk_is_between(next, m_start, m_end)
- && ( ( chunk_is_not_token(next, CT_ASSIGN)
- && chunk_is_not_token(next, CT_COMMA))
- || next->level != m_start->level)
- && !chunk_is_semicolon(next))
- {
- prev = next;
- next = chunk_get_next_ncnnl(next);
-
- /**
- * in case it's a qualified identifier, skip scope-resolution and
- * nested name specifiers and return just the qualified identifier name
- */
- next = skip_scope_resolution_and_nested_name_specifiers(next);
-
- if ( chunk_is_token(prev, CT_WORD)
- && chunk_is_pointer_or_reference(next))
- {
- pc = next;
-
- break;
- }
- }
- }
- }
-
- if (pc != nullptr)
- {
- /**
- * the chunk preceding the previously selected chunk should indicate the type
- */
-
- pc = chunk_get_prev_ncnnlni(pc, scope_e::PREPROC);
-
- if ( chunk_is_token(pc, CT_QUALIFIER)
- && std::strncmp(pc->str.c_str(), "final", 5) == 0)
- {
- pc = chunk_get_prev_ncnnlni(pc, scope_e::PREPROC);
- }
-
- if ( language_is_set(LANG_D)
- && chunk_is_paren_close(pc))
- {
- pc = chunk_skip_to_match_rev(pc);
- pc = chunk_get_prev_ncnnlni(pc);
- }
-
- if (chunk_is_token(pc, CT_WORD))
- {
- mark_type(pc);
-
- return(true);
- }
- }
- return(false);
-} // EnumStructUnionParser::try_pre_identify_type
-
-
-bool EnumStructUnionParser::type_identified() const
-{
- LOG_FUNC_ENTRY();
-
- return(m_type != nullptr);
-} // EnumStructUnionParser::type_identified
-
-
-/**
- * Returns true if a where clause was detected during parsing
- */
-bool EnumStructUnionParser::where_clause_detected() const
-{
- LOG_FUNC_ENTRY();
-
- auto *where_end = get_where_end();
- auto *where_start = get_where_start();
-
- return( where_end != nullptr
- && where_start != nullptr);
-} // EnumStructUnionParser::where_clause_detected
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/EnumStructUnionParser.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/EnumStructUnionParser.h
deleted file mode 100644
index b3062d48..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/EnumStructUnionParser.h
+++ /dev/null
@@ -1,496 +0,0 @@
-/**
- * @file combine_fix_mark_enum_struct_union.h
- *
- * @author
- * @license GPL v2+
- * extract from combine_fix_mark.h
- */
-
-#ifndef ENUM_STRUCT_UNION_PARSER_H_INCLUDED
-#define ENUM_STRUCT_UNION_PARSER_H_INCLUDED
-
-#include "pcf_flags.h"
-#include "token_enum.h"
-#include <map>
-
-
-/**
- * Class EnumStructUnionParser : This class facilitates the parsing and interpretation
- * of ALL instances of the class, enum, union, and
- * struct keywords, including user-defined types with
- * a body {} and any trailing inline variable declarations
- * that may follow the definition (as permitted by
- * the coding language in question). The class also
- * interprets variable declarations preceded by one
- * of those keywords, as well as any C/C++ forward
- * declarations
- */
-class EnumStructUnionParser
-{
-public:
- /**
- * Constructor
- */
- EnumStructUnionParser();
-
-
- /**
- * Destructor
- */
- ~EnumStructUnionParser();
-
-
-private:
- /**
- * Analyzes all identifiers (marked as CT_WORD) between the starting and
- * ending chunks and changes CT_WORD to one of CT_TYPE, CT_MACRO_FUNC_CALL,
- * etc. and sets flags (PCF_VAR_1ST, PCF_VAR_1ST_DEF, PCF_VAR_INLINE, etc.)
- * for variable identifiers accordingly. Flags C++ forward declarations as
- * PCF_INCOMPLETE
- */
- void analyze_identifiers();
-
-
- /**
- * Returns true if a pair of braces were both detected AND determined to be
- * part of a class/enum/struct/union body
- */
- bool body_detected() const;
-
-
- /**
- * Returns true if comma-separated values were detected during parsing
- */
- bool comma_separated_values_detected() const;
-
-
- /**
- * Returns true if an enumerated integral type was detected during parsing
- */
- bool enum_base_detected() const;
-
-
- /**
- * Returns the end chunk of a class/enum/struct/union body, if detected
- * during parsing
- */
- struct chunk_t *get_body_end() const;
-
-
- /**
- * Returns the starting chunk of a class/enum/struct/union body, if detected
- * during parsing
- */
- struct chunk_t *get_body_start() const;
-
-
- /**
- * Returns the starting chunk associated with an enumerated type's base
- * specifier statement, if detected during parsing
- */
- struct chunk_t *get_enum_base_start() const;
-
-
- /**
- * Returns the first comma encountered at the level of the starting chunk,
- * if detected during parsing
- */
- struct chunk_t *get_first_top_level_comma() const;
-
-
- /**
- * Returns the ending chunk associated with an class/struct inheritance
- * list, if detected during parsing
- */
- struct chunk_t *get_inheritance_end() const;
-
-
- /**
- * Returns the starting chunk associated with an class/struct inheritance
- * list, if detected during parsing
- */
- struct chunk_t *get_inheritance_start() const;
-
-
- /**
- * Returns a numerically-indexed map of all question operators encountered
- * during parsing
- */
- std::map<std::size_t, struct chunk_t *> get_question_operators() const;
-
-
- /**
- * Returns the end chunk associated with a template parameter list, if
- * detected during parsing
- */
- struct chunk_t *get_template_end() const;
-
-
- /**
- * Return the starting chunk associated with a template parameter list, if
- * detected during parsing
- */
- struct chunk_t *get_template_start() const;
-
-
- /**
- * Returns a numerically-indexed map of all top-level commas encountered
- * during parsing
- */
- std::map<std::size_t, struct chunk_t *> get_top_level_commas() const;
-
-
- /**
- * Return the starting chunk associated with a where clause, if
- * detected during parsing
- */
- struct chunk_t *get_where_end() const;
-
-
- /**
- * Return the starting chunk associated with a where clause, if
- * detected during parsing
- */
- struct chunk_t *get_where_start() const;
-
-
- /**
- * Returns true if an inheritance list associated with a class or struct was
- * discovered during parsing
- */
- bool inheritance_detected() const;
-
-
-public:
- /**
- * Performs object initialization prior to parsing
- */
- void initialize(struct chunk_t *pc);
-
-
-private:
- /**
- * Returns true if the chunk under test represents a potential end chunk past
- * which further parsing is not likely warranted
- */
- bool is_potential_end_chunk(struct chunk_t *pc) const;
-
-
- /**
- * Returns true if the chunk under test is deemed to be located within a
- * conditional/ternary statement
- */
- bool is_within_conditional(struct chunk_t *pc) const;
-
-
- /**
- * Returns true if the chunk under test is deemed to be located within an
- * inheritance list
- */
- bool is_within_inheritance_list(struct chunk_t *pc) const;
-
-
- /**
- * Returns true if the chunk under test is deemed to be located within a
- * where clause
- */
- bool is_within_where_clause(struct chunk_t *pc) const;
-
-
- /**
- * Marks all base classes that appear as part of an inheritance list
- */
- void mark_base_classes(struct chunk_t *pc);
-
-
- /**
- * Marks pairs of braces associated with the body of a class/enum/struct/union,
- * and additionally calls a separate routine to mark any base classes for that
- * may precede the opening brace
- */
- void mark_braces(struct chunk_t *start);
-
-
- /**
- * Marks the beginning chunk of an inheritance list
- */
- void mark_class_colon(struct chunk_t *colon);
-
-
- /**
- * Mark a colon as a conditional
- */
- void mark_conditional_colon(struct chunk_t *colon);
-
-
- /**
- * Mark any struct/class constructor declarations/definitions
- */
- void mark_constructors();
-
-
- /**
- * Marks the beginning chunk of an enumerated integral type specification
- */
- void mark_enum_integral_type(struct chunk_t *colon);
-
-
- /**
- * Scan chunks outside the definition body and mark lvalues accordingly
- */
- void mark_extracorporeal_lvalues();
-
-
- /**
- * Mark nested name specifiers preceding qualified identifiers
- */
- void mark_nested_name_specifiers(struct chunk_t *pc);
-
-
- /**
- * Marks pointer operators preceding a variable identifier
- */
- void mark_pointer_types(struct chunk_t *pc);
-
-
- /**
- * Marks the beginning and ending chunks associated with a template
- * (templates may appear after the identifier type name as part of a class
- * specialization)
- */
- void mark_template(struct chunk_t *start) const;
-
-
- /**
- * Marks the arguments within a template argument list bounded by the
- * starting and ending chunks
- */
- void mark_template_args(struct chunk_t *start, struct chunk_t *end) const;
-
-
- /**
- * Marks the type identifier associated with the class/enum/struct/union,
- * if not anonymously defined
- */
- void mark_type(struct chunk_t *pc);
-
-
- /**
- * Marks all variable identifiers associated with the class/enum/struct/union
- */
- void mark_variable(struct chunk_t *variable, pcf_flags_t flags);
-
-
- /**
- * Marks all chunks belonging to a c# where clause
- */
- void mark_where_clause(struct chunk_t *where);
-
-
- /**
- * Marks the beginning of a where clause
- */
- void mark_where_colon(struct chunk_t *colon);
-
-
-public:
- /**
- * Parses the class/enum/struct/union and all associated chunks
- */
- void parse(struct chunk_t *pc);
-
-
-private:
- /**
- * Parses closing and opening angle brackets
- */
- struct chunk_t *parse_angles(struct chunk_t *angle_open);
-
-
- /**
- * Parses closing and opening braces
- */
- struct chunk_t *parse_braces(struct chunk_t *brace_open);
-
-
- /**
- * Parses a single colon, which may precede an inheritance list or
- * enumerated integral type specification
- */
- void parse_colon(struct chunk_t *colon);
-
-
- /**
- * Parses a double colon, which may indicate a scope resolution chain
- */
- struct chunk_t *parse_double_colon(struct chunk_t *double_colon);
-
-
- /**
- * Returns the parsing error status
- */
- bool parse_error_detected() const;
-
-
- /**
- * Sets the parsing error status
- */
- void parse_error_detected(bool status);
-
-
- /**
- * Records all question operators encountered during parsing
- */
- void record_question_operator(struct chunk_t *question);
-
-
- /**
- * Records a comma chunk given one the following conditions are satisfied:
- * 1) it is encountered at the level of the starting chunk
- * 2) it is not part of a right-hand side assignment
- * 3) it is not part of an inheritance list
- * 4) it is not part of a conditional/ternary expression
- */
- void record_top_level_comma(struct chunk_t *comma);
-
-
- /**
- * Adjusts the end chunk returned by the try_find_end_chunk() function
- * for any potential trailing inline variable declarations that may follow
- * the body of a class/enum/struct/union definition
- */
- struct chunk_t *refine_end_chunk(struct chunk_t *pc);
-
-
- /**
- * Sets the chunk associated with the end of a class/enum/struct/union
- * body
- */
- void set_body_end(struct chunk_t *body_end);
-
-
- /**
- * Sets the chunk associated with the start of a class/enum/struct/union
- * body
- */
- void set_body_start(struct chunk_t *body_start);
-
-
- /**
- * Sets the chunk associated with the start of an enumerated integral
- * base type specification
- */
- void set_enum_base_start(struct chunk_t *enum_base_start);
-
-
- /**
- * Sets the chunk associated with the start of an inheritance list
- */
- void set_inheritance_start(struct chunk_t *inheritance_start);
-
-
- /**
- * Sets the chunk associated with the end of a template
- */
- void set_template_end(struct chunk_t *template_end);
-
-
- /**
- * Sets the chunk associated with the start of a template
- */
- void set_template_start(struct chunk_t *template_start);
-
-
- /**
- * Return the ending chunk associated with a where clause, if
- * detected during parsing
- */
- void set_where_end(struct chunk_t *where_end);
-
-
- /**
- * Return the starting chunk associated with a where clause, if
- * detected during parsing
- */
- void set_where_start(struct chunk_t *where_start);
-
-
- /**
- * Returns true if a template was detected during parsing
- */
- bool template_detected() const;
-
-
- /**
- * Attempts to find the last chunk associated with the class/enum/struct/union
- */
- struct chunk_t *try_find_end_chunk(struct chunk_t *pc);
-
-
- /**
- * Attempts to identify any function-like macro calls which may precede the
- * actual type identifier
- */
- void try_post_identify_macro_calls();
-
-
- /**
- * Attempts to find the identifier type name (if not anonymously-defined) post
- * variable identifier interpretation
- */
- void try_post_identify_type();
-
-
- /**
- * Attempts to find the identifier type name prior to variable identifier
- * interpretation
- */
- bool try_pre_identify_type();
-
-
- /**
- * Returns true if a corresponding type was identified for the class/enum/struct/union
- */
- bool type_identified() const;
-
-
- /**
- * Returns true if a where clause was detected during parsing
- */
- bool where_clause_detected() const;
-
-
- /**
- * Map of token-type, chunk pairs
- */
- std::map<c_token_t, std::map<std::size_t, struct chunk_t *> > m_chunk_map;
-
-
- /**
- * Indicates the last chunk associated with the class/enum/struct/union keyword
- */
- struct chunk_t *m_end;
-
-
- /**
- * Indicates whether or not a parse error has occurred
- */
- bool m_parse_error;
-
-
- /**
- * Stores a pointer to the class/enum/struct/union keyword chunk with which the
- * parse() routine was invoked
- */
- struct chunk_t *m_start;
-
-
- /**
- * Stores a pointer to the type identifier associated with the class/enum/struct/union,
- * if not anonymously defined
- */
- struct chunk_t *m_type;
-};
-
-
-#endif
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/ListManager.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/ListManager.h
deleted file mode 100644
index 1b45c2a4..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/ListManager.h
+++ /dev/null
@@ -1,270 +0,0 @@
-/**
- * @file ListManager.h
- * Template class that manages items in a double-linked list.
- * If C++ could do it, this would just be a class that worked on an interface.
- *
- * @author Ben Gardner
- * @license GPL v2+
- */
-
-#ifndef LIST_MANAGER_H_INCLUDED
-#define LIST_MANAGER_H_INCLUDED
-
-/*
- * TODO: why do we provide this template class? can't we use
- * a double linked list std::deque from the standard library ?
- */
-/**
- * A simple list manager for a double-linked list.
- * Class T must define 'next' and 'prev', which must be pointers to type T.
- */
-template<class T>
-class ListManager
-{
-protected:
- T *first; //! pointer to the head of list
- T *last; //! pointer to tail of list
-
-private:
- // Hide copy constructor
- ListManager(const ListManager &ref)
- {
- first = NULL;
- last = NULL;
- }
-
-public:
- ListManager()
- {
- first = NULL;
- last = NULL;
- }
-
-
- /**
- * @brief return the first element of the linked list
- *
- * @return pointer to first element or nullptr if list is empty
- */
- T *GetHead()
- {
- return(first);
- }
-
-
- /**
- * @brief return the last element of the linked list
- *
- * @return pointer to last element or nullptr if list is empty
- */
- T *GetTail()
- {
- return(last);
- }
-
-
- /**
- * @brief return the next element of the linked list
- *
- * @param[in] ref pointer to current list element
- *
- * @return pointer to next element or nullptr if no next element exists
- */
- T *GetNext(T *ref)
- {
- return((ref != NULL) ? ref->next : NULL);
- }
-
-
- /**
- * @brief return the previous element of the linked list
- *
- * @param[in] ref pointer to current list element
- *
- * @return pointer to previous element or nullptr if no previous element exists
- */
- T *GetPrev(T *ref)
- {
- return((ref != NULL) ? ref->prev : NULL);
- }
-
-
- void InitEntry(T *obj) const
- {
- if (obj != NULL)
- {
- obj->next = NULL;
- obj->prev = NULL;
- }
- }
-
-
- /**
- * @brief remove an element from a linked list
- *
- * @param[in] obj list element to remove
- */
- void Pop(T *obj)
- {
- if (obj != NULL)
- {
- if (first == obj)
- {
- first = obj->next;
- }
-
- if (last == obj)
- {
- last = obj->prev;
- }
-
- if (obj->next != NULL)
- {
- obj->next->prev = obj->prev;
- }
-
- if (obj->prev != NULL)
- {
- obj->prev->next = obj->next;
- }
- obj->next = NULL;
- obj->prev = NULL;
- }
- }
-
-
- //! swap two elements of a list
- void Swap(T *obj1, T *obj2)
- {
- if ( obj1 != NULL
- && obj2 != NULL)
- {
- if (obj1->prev == obj2)
- {
- Pop(obj1);
- AddBefore(obj1, obj2);
- }
- else if (obj2->prev == obj1)
- {
- Pop(obj2);
- AddBefore(obj2, obj1);
- }
- else
- {
- T *prev1 = obj1->prev;
- Pop(obj1);
-
- T *prev2 = obj2->prev;
- Pop(obj2);
-
- AddAfter(obj1, prev2);
- AddAfter(obj2, prev1);
- }
- }
- }
-
-
- /**
- * @brief add a new element after a reference position in a list
- *
- * @param obj new element to add to list
- * @param ref chunk after which to insert new object
- */
- void AddAfter(T *obj, T *ref)
- {
- if ( obj != NULL
- && ref != NULL)
- {
- Pop(obj); // TODO: is this necessary?
- obj->next = ref->next;
- obj->prev = ref;
-
- if (ref->next != NULL)
- {
- ref->next->prev = obj;
- }
- else
- {
- last = obj;
- }
- ref->next = obj;
- }
- }
-
-
- /**
- * @brief add a new element before a reference position in a list
- *
- * @param obj new element to add to list
- * @param ref chunk before to insert new object
- */
- void AddBefore(T *obj, T *ref)
- {
- if ( obj != NULL
- && ref != NULL)
- {
- Pop(obj);
- obj->next = ref;
- obj->prev = ref->prev;
-
- if (ref->prev != NULL)
- {
- ref->prev->next = obj;
- }
- else
- {
- first = obj;
- }
- ref->prev = obj;
- }
- }
-
-
- /**
- * @brief add a new element to the tail of a lis
- *
- * @param obj new element to add to the list
- */
- void AddTail(T *obj)
- {
- obj->next = NULL;
- obj->prev = last;
-
- if (last == NULL)
- {
- last = obj;
- first = obj;
- }
- else
- {
- last->next = obj;
- }
- last = obj;
- }
-
-
- /**
- * @brief add a new element to the head of a list
- *
- * @param obj new element to add to the list
- */
- void AddHead(T *obj)
- {
- obj->next = first;
- obj->prev = NULL;
-
- if (first == NULL)
- {
- last = obj;
- first = obj;
- }
- else
- {
- first->prev = obj;
- }
- first = obj;
- }
-};
-
-
-#endif /* LIST_MANAGER_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/ParseFrame.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/ParseFrame.cpp
deleted file mode 100644
index b309ff79..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/ParseFrame.cpp
+++ /dev/null
@@ -1,294 +0,0 @@
-/**
- * @file ParseFrame.cpp
- *
- * Container that holds data needed for indenting and brace parsing
- *
- * @author Daniel Chumak
- * @license GPL v2+
- */
-
-#include "ParseFrame.h"
-
-#include "uncrustify.h"
-
-#include <stdexcept> // to get std::logic_error
-
-
-using std::string;
-using std::to_string;
-using std::logic_error;
-using std::invalid_argument;
-
-using ContainerType = paren_stack_entry_t;
-using Container = std::vector<ContainerType>;
-
-
-//! amount of elements for which memory is going to be pre-initialized
-static constexpr const int CONTAINER_INIT_SIZE = 16;
-
-
-static ContainerType genDummy()
-{
- ContainerType tmp_dummy{};
-
- tmp_dummy.indent = 1;
- tmp_dummy.indent_tmp = 1;
- tmp_dummy.indent_tab = 1;
- tmp_dummy.type = CT_EOF;
-
- return(tmp_dummy);
-}
-
-
-void ParseFrame::clear()
-{
- last_poped = genDummy();
-
- pse = Container{};
- pse.reserve(CONTAINER_INIT_SIZE);
- pse.push_back(genDummy());
-
- ref_no = 0;
- level = 0;
- brace_level = 0;
- pp_level = 0;
- sparen_count = 0;
- paren_count = 0;
- in_ifdef = c_token_t::CT_NONE;
- stmt_count = 0;
- expr_count = 0;
-}
-
-
-ParseFrame::ParseFrame()
-{
- ParseFrame::clear();
-}
-
-
-bool ParseFrame::empty() const
-{
- // always at least one (dummy) element inside pse guaranteed
- return(false);
-// return(pse.empty());
-}
-
-
-ContainerType &ParseFrame::at(size_t idx)
-{
- return(pse.at(idx));
-}
-
-
-const ContainerType &ParseFrame::at(size_t idx) const
-{
- return(pse.at(idx));
-}
-
-
-ContainerType &ParseFrame::prev(size_t idx)
-{
- LOG_FUNC_ENTRY();
-
- if (idx == 0)
- {
- throw invalid_argument(string(__FILE__) + ":" + to_string(__LINE__)
- + " idx can't be zero");
- }
-
- if (idx >= pse.size())
- {
- LOG_FMT(LINDPSE, "%s(%d): idx is %zu, size is %zu\n",
- __func__, __LINE__, idx, pse.size());
- throw invalid_argument(string(__FILE__) + ":" + to_string(__LINE__)
- + " idx can't be >= size()");
- }
- return(*std::prev(std::end(pse), idx + 1));
-}
-
-
-const ContainerType &ParseFrame::prev(size_t idx) const
-{
- LOG_FUNC_ENTRY();
-
- if ( idx == 0
- || idx >= pse.size())
- {
- throw invalid_argument(string(__FILE__) + ":" + to_string(__LINE__)
- + " idx can't be zero or >= size()");
- }
- return(*std::prev(std::end(pse), idx + 1));
-}
-
-
-ContainerType &ParseFrame::top()
-{
- // always at least one (dummy) element inside pse guaranteed
-// if (pse.empty())
-// {
-// throw logic_error(string(__FILE__) + ":" + to_string(__LINE__)
-// + " called top on an empty stack");
-// }
- return(*std::prev(std::end(pse)));
-}
-
-
-const ContainerType &ParseFrame::top() const
-{
- // always at least one (dummy) element inside pse guaranteed
-// if (pse.empty())
-// {
-// throw logic_error(string(__FILE__) + ":" + to_string(__LINE__)
-// + " called top on an empty stack");
-// }
- return(*std::prev(std::end(pse)));
-}
-
-
-void ParseFrame::push(std::nullptr_t, brace_stage_e stage)
-{
- static chunk_t dummy;
-
- push(&dummy, __func__, __LINE__, stage);
- top().pc = nullptr;
-}
-
-
-void ParseFrame::push(chunk_t *pc, const char *func, int line, brace_stage_e stage)
-{
- LOG_FUNC_ENTRY();
-
- ContainerType new_entry = {};
-
- new_entry.type = pc->type;
- new_entry.level = pc->level;
- new_entry.open_line = pc->orig_line;
- new_entry.open_colu = pc->orig_col;
- new_entry.pc = pc;
-
- new_entry.indent_tab = top().indent_tab;
- new_entry.indent_cont = top().indent_cont;
- new_entry.stage = stage;
-
- new_entry.in_preproc = pc->flags.test(PCF_IN_PREPROC);
- new_entry.non_vardef = false;
- new_entry.ip = top().ip;
-
- pse.push_back(new_entry);
-
-// uncomment the line below to get the address of the pse
-// #define DEBUG_PUSH_POP
-#ifdef DEBUG_PUSH_POP
- LOG_FMT(LINDPSE, "ParseFrame::push(%s:%d) Add is %zu: orig_line is %zu, orig_col is %zu, type is %s, "
- "brace_level is %zu, level is %zu, pse_tos: %zu -> %zu\n",
- func, line, (size_t)this, pc->orig_line, pc->orig_col,
- get_token_name(pc->type), pc->brace_level, pc->level,
- (pse.size() - 2), (pse.size() - 1));
-#else /* DEBUG_PUSH_POP */
- LOG_FMT(LINDPSE, "ParseFrame::push(%s:%d): orig_line is %zu, orig_col is %zu, type is %s, "
- "brace_level is %zu, level is %zu, pse_tos: %zu -> %zu\n",
- func, line, pc->orig_line, pc->orig_col,
- get_token_name(pc->type), pc->brace_level, pc->level,
- (pse.size() - 2), (pse.size() - 1));
-#endif /* DEBUG_PUSH_POP */
-}
-
-
-void ParseFrame::pop(const char *func, int line)
-{
- LOG_FUNC_ENTRY();
-
- // always at least one (dummy) element inside pse guaranteed
-// if (pse.empty())
-// {
-// throw logic_error(string(__FILE__) + ":" + to_string(__LINE__)
-// + "the stack index is already zero");
-// }
-
-#ifdef DEBUG_PUSH_POP
- LOG_FMT(LINDPSE, "ParseFrame::pop (%s:%d) Add is %zu: open_line is %zu, clos_col is %zu, type is %s, "
- "cpd.level is %d, level is %zu, pse_tos: %zu -> %zu\n",
- func, line, (size_t)this, pse.back().open_line, pse.back().open_colu,
- get_token_name(pse.back().type), cpd.pp_level, pse.back().level,
- (pse.size() - 1), (pse.size() - 2));
-#else /* DEBUG_PUSH_POP */
- LOG_FMT(LINDPSE, "ParseFrame::pop (%s:%d): open_line is %zu, clos_col is %zu, type is %s, "
- "cpd.level is %d, level is %zu, pse_tos: %zu -> %zu\n",
- func, line, pse.back().open_line, pse.back().open_colu,
- get_token_name(pse.back().type), cpd.pp_level, pse.back().level,
- (pse.size() - 1), (pse.size() - 2));
-#endif /* DEBUG_PUSH_POP */
-
- last_poped = *std::prev(std::end(pse));
-
- if (pse.size() == 1)
- {
- *std::begin(pse) = genDummy();
- }
- else
- {
- pse.pop_back();
- }
-}
-
-
-size_t ParseFrame::size() const
-{
- // always at least one (dummy) element inside pse guaranteed
- return(pse.size());
-}
-
-
-const paren_stack_entry_t &ParseFrame::poped() const
-{
- return(last_poped);
-}
-
-
-// TODO C++14: see abstract versions: std::rend, std::cend, std::crend ...
-ParseFrame::iterator ParseFrame::begin()
-{
- return(std::begin(pse));
-}
-
-
-ParseFrame::const_iterator ParseFrame::begin() const
-{
- return(std::begin(pse));
-}
-
-
-ParseFrame::reverse_iterator ParseFrame::rbegin()
-{
- return(pse.rbegin());
-}
-
-
-ParseFrame::const_reverse_iterator ParseFrame::rbegin() const
-{
- return(pse.rbegin());
-}
-
-
-ParseFrame::iterator ParseFrame::end()
-{
- return(std::end(pse));
-}
-
-
-ParseFrame::const_iterator ParseFrame::end() const
-{
- return(std::end(pse));
-}
-
-
-ParseFrame::reverse_iterator ParseFrame::rend()
-{
- return(pse.rend());
-}
-
-
-ParseFrame::const_reverse_iterator ParseFrame::rend() const
-{
- return(pse.rend());
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/ParseFrame.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/ParseFrame.h
deleted file mode 100644
index cad34ab3..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/ParseFrame.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/**
- * @file ParseFrame.h
- *
- * Container that holds data needed for indenting and brace parsing
- *
- * @author Daniel Chumak
- * @license GPL v2+
- */
-
-#ifndef SRC_PARSEFRAME_H_
-#define SRC_PARSEFRAME_H_
-
-#include "uncrustify_types.h"
-
-#include <memory>
-
-
-//! Structure for counting nested level
-struct paren_stack_entry_t
-{
- c_token_t type; //! the type that opened the entry
- size_t level; //! Level of opening type
- size_t open_line; //! line that open symbol is on, only for logging purposes
- size_t open_colu; //! column that open symbol is on, only for logging purposes
- chunk_t *pc; //! Chunk that opened the level, TODO: make const
- size_t brace_indent; //! indent for braces - may not relate to indent
- size_t indent; //! indent level (depends on use)
- size_t indent_tmp; //! temporary indent level (depends on use)
- size_t indent_tab; //! the 'tab' indent (always <= real column)
- bool indent_cont; //! indent_continue was applied
- c_token_t parent; //! if, for, function, etc
- brace_stage_e stage; //! used to check progression of complex statements.
- bool in_preproc; //! whether this was created in a preprocessor
- size_t ns_cnt; //! Number of consecutive namespace levels
- bool non_vardef; //! Hit a non-vardef line
- indent_ptr_t ip;
- chunk_t *pop_pc;
-};
-
-class ParseFrame
-{
-private:
- std::vector<paren_stack_entry_t> pse;
- paren_stack_entry_t last_poped;
-
- void clear();
-
-public:
- size_t ref_no;
- size_t level; //! level of parens/square/angle/brace
- size_t brace_level; //! level of brace/vbrace
- size_t pp_level; //! level of preproc #if stuff
- size_t sparen_count;
- size_t paren_count;
- c_token_t in_ifdef;
- size_t stmt_count;
- size_t expr_count;
-
-
- ParseFrame();
- virtual ~ParseFrame() = default;
-
- bool empty() const;
-
- paren_stack_entry_t &at(size_t idx);
- const paren_stack_entry_t &at(size_t idx) const;
-
- paren_stack_entry_t &prev(size_t idx = 1);
- const paren_stack_entry_t &prev(size_t idx = 1) const;
-
- paren_stack_entry_t &top();
- const paren_stack_entry_t &top() const;
-
- const paren_stack_entry_t &poped() const;
-
- void push(chunk_t *pc, const char *func, int line, brace_stage_e stage = brace_stage_e::NONE);
- void push(std::nullptr_t, brace_stage_e stage = brace_stage_e::NONE);
- void pop(const char *func, int line);
-
- size_t size() const;
-
- using iterator = std::vector<paren_stack_entry_t>::iterator;
- iterator begin();
- iterator end();
-
- using const_iterator = std::vector<paren_stack_entry_t>::const_iterator;
- const_iterator begin() const;
- const_iterator end() const;
-
- using reverse_iterator = std::vector<paren_stack_entry_t>::reverse_iterator;
- reverse_iterator rbegin();
- reverse_iterator rend();
-
- using const_reverse_iterator = std::vector<paren_stack_entry_t>::const_reverse_iterator;
- const_reverse_iterator rbegin() const;
- const_reverse_iterator rend() const;
-};
-
-#endif /* SRC_PARSEFRAME_H_ */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align.cpp
deleted file mode 100644
index 09e45dc8..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align.cpp
+++ /dev/null
@@ -1,221 +0,0 @@
-/**
- * @file align.cpp
- * Does all the aligning stuff.
- *
- * @author Ben Gardner
- * @author Guy Maurel since version 0.62 for uncrustify4Qt
- * October 2015, 2016
- * @license GPL v2+
- */
-
-#include "align.h"
-
-#include "align_asm_colon.h"
-#include "align_assign.h"
-#include "align_eigen_comma_init.h"
-#include "align_func_params.h"
-#include "align_func_proto.h"
-#include "align_init_brace.h"
-#include "align_left_shift.h"
-#include "align_oc_decl_colon.h"
-#include "align_oc_msg_colons.h"
-#include "align_oc_msg_spec.h"
-#include "align_preprocessor.h"
-#include "align_same_func_call_params.h"
-#include "align_stack.h"
-#include "align_struct_initializers.h"
-#include "align_trailing_comments.h"
-#include "align_typedefs.h"
-#include "align_var_def_brace.h"
-#include "log_rules.h"
-#include "quick_align_again.h"
-
-constexpr static auto LCURRENT = LALIGN;
-
-using namespace uncrustify;
-
-
-/*
- * Here are the items aligned:
- *
- * - enum value assignments
- * enum {
- * cat = 1,
- * fred = 2,
- * };
- *
- * - struct/union variable & bit definitions
- * struct foo {
- * char cat;
- * int id : 5;
- * int name_len : 6;
- * int height : 12;
- * };
- *
- * - variable definitions & assignments in normal code
- * const char *cat = "feline";
- * int id = 4;
- * a = 5;
- * bat = 14;
- *
- * - simple array initializers
- * int a[] = {
- * 1, 2, 3, 4, 5,
- * 6, 7, 8, 9, 10
- * };
- *
- * - c99 array initializers
- * const char *name[] = {
- * [FRED] = "fred",
- * [JOE] = "joe",
- * [PETER] = "peter",
- * };
- * struct foo b[] = {
- * { .id = 1, .name = "text 1" },
- * { .id = 567, .name = "text 2" },
- * };
- * struct foo_t bars[] =
- * {
- * [0] = { .name = "bar",
- * .age = 21 },
- * [1] = { .name = "barley",
- * .age = 55 },
- * };
- *
- * - compact array initializers
- * struct foo b[] = {
- * { 3, "dog" }, { 6, "spider" },
- * { 8, "elephant" }, { 3, "cat" },
- * };
- *
- * - multiline array initializers (2nd line indented, not aligned)
- * struct foo b[] = {
- * { AD_NOT_ALLOWED, "Sorry, you failed to guess the password.",
- * "Try again?", "Yes", "No" },
- * { AD_SW_ERROR, "A software error has occured.", "Bye!", NULL, NULL },
- * };
- *
- * - Trailing comments
- *
- * - Back-slash newline groups
- *
- * - Function prototypes
- * int foo();
- * void bar();
- *
- * - Preprocessors
- * #define FOO_VAL 15
- * #define MAX_TIMEOUT 60
- * #define FOO(x) ((x) * 65)
- *
- * - typedefs
- * typedef uint8_t BYTE;
- * typedef int32_t INT32;
- * typedef uint32_t UINT32;
- */
-void align_all(void)
-{
- LOG_FUNC_ENTRY();
-
- log_rule_B("align_typedef_span");
-
- if (options::align_typedef_span() > 0)
- {
- align_typedefs(options::align_typedef_span());
- }
- log_rule_B("align_left_shift");
-
- if (options::align_left_shift())
- {
- align_left_shift();
- }
- log_rule_B("align_eigen_comma_init");
-
- if (options::align_eigen_comma_init())
- {
- align_eigen_comma_init();
- }
- log_rule_B("align_oc_msg_colon_span");
-
- if (options::align_oc_msg_colon_span() > 0)
- {
- align_oc_msg_colons();
- }
- // Align variable definitions
- log_rule_B("align_var_def_span");
- log_rule_B("align_var_struct_span");
- log_rule_B("align_var_class_span");
-
- if ( (options::align_var_def_span() > 0)
- || (options::align_var_struct_span() > 0)
- || (options::align_var_class_span() > 0))
- {
- align_var_def_brace(chunk_get_head(), options::align_var_def_span(), nullptr);
- }
- // Align assignments
- log_rule_B("align_enum_equ_span");
- log_rule_B("align_assign_span");
- log_rule_B("align_assign_thresh");
-
- if ( (options::align_enum_equ_span() > 0)
- || (options::align_assign_span() > 0))
- {
- align_assign(chunk_get_head(),
- options::align_assign_span(),
- options::align_assign_thresh(),
- nullptr);
- }
- // Align structure initializers
- log_rule_B("align_struct_init_span");
-
- if (options::align_struct_init_span() > 0)
- {
- align_struct_initializers();
- }
- // Align function prototypes
- log_rule_B("align_func_proto_span");
- log_rule_B("align_mix_var_proto");
-
- if ( (options::align_func_proto_span() > 0)
- && !options::align_mix_var_proto())
- {
- align_func_proto(options::align_func_proto_span());
- }
- // Align function prototypes
- log_rule_B("align_oc_msg_spec_span");
-
- if (options::align_oc_msg_spec_span() > 0)
- {
- align_oc_msg_spec(options::align_oc_msg_spec_span());
- }
- // Align OC colons
- log_rule_B("align_oc_decl_colon");
-
- if (options::align_oc_decl_colon())
- {
- align_oc_decl_colon();
- }
- log_rule_B("align_asm_colon");
-
- if (options::align_asm_colon())
- {
- align_asm_colon();
- }
- // Align variable definitions in function prototypes
- log_rule_B("align_func_params");
- log_rule_B("align_func_params_span");
-
- if ( options::align_func_params()
- || options::align_func_params_span() > 0)
- {
- align_func_params();
- }
- log_rule_B("align_same_func_call_params");
-
- if (options::align_same_func_call_params())
- {
- align_same_func_call_params();
- }
- // Just in case something was aligned out of order... do it again
- quick_align_again();
-} // align_all
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_add.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_add.cpp
deleted file mode 100644
index 2bd93381..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_add.cpp
+++ /dev/null
@@ -1,53 +0,0 @@
-/**
- * @file align_add.cpp
- *
- * @author Guy Maurel
- * split from align.cpp
- * @author Ben Gardner
- * @license GPL v2+
- */
-
-#include "align_add.h"
-#include "uncrustify.h"
-
-
-void align_add(ChunkStack &cs, chunk_t *pc, size_t &max_col)
-{
- LOG_FUNC_ENTRY();
-
- size_t min_col;
- chunk_t *prev = chunk_get_prev(pc);
-
- if ( prev == nullptr
- || chunk_is_newline(prev))
- {
- min_col = 1;
- LOG_FMT(LALADD, "%s(%d): pc->orig_line=%zu, pc->col=%zu max_col=%zu min_col=%zu\n",
- __func__, __LINE__, pc->orig_line, pc->column, max_col, min_col);
- }
- else
- {
- if (chunk_is_token(prev, CT_COMMENT_MULTI))
- {
- min_col = prev->orig_col_end + 1;
- }
- else
- {
- min_col = prev->column + prev->len() + 1;
- }
- LOG_FMT(LALADD, "%s(%d): pc->orig_line=%zu, pc->col=%zu max_col=%zu min_col=%zu multi:%s prev->col=%zu prev->len()=%zu %s\n",
- __func__, __LINE__, pc->orig_line, pc->column, max_col, min_col, (chunk_is_token(prev, CT_COMMENT_MULTI)) ? "Y" : "N",
- (chunk_is_token(prev, CT_COMMENT_MULTI)) ? prev->orig_col_end : (UINT32)prev->column, prev->len(), get_token_name(prev->type));
- }
-
- if (cs.Empty())
- {
- max_col = 0;
- }
- cs.Push_Back(pc);
-
- if (min_col > max_col)
- {
- max_col = min_col;
- }
-} // align_add
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_add.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_add.h
deleted file mode 100644
index 07f1efee..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_add.h
+++ /dev/null
@@ -1,18 +0,0 @@
-/**
- * @file align_add.h
- *
- * @author Guy Maurel
- * split from align.cpp
- * @author Ben Gardner
- * @license GPL v2+
- */
-
-#ifndef ALIGN_ADD_H_INCLUDED
-#define ALIGN_ADD_H_INCLUDED
-
-#include "chunk_list.h"
-#include "ChunkStack.h"
-
-void align_add(ChunkStack &cs, chunk_t *pc, size_t &max_col);
-
-#endif /* ALIGN_ADD_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_asm_colon.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_asm_colon.cpp
deleted file mode 100644
index 1fb6c636..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_asm_colon.cpp
+++ /dev/null
@@ -1,62 +0,0 @@
-/**
- * @file align_asm_colon.cpp
- *
- * @author Guy Maurel
- * split from align.cpp
- * @author Ben Gardner
- * @license GPL v2+
- */
-
-#include "align_asm_colon.h"
-
-#include "align_stack.h"
-#include "chunk_list.h"
-
-
-void align_asm_colon(void)
-{
- LOG_FUNC_ENTRY();
-
- bool did_nl;
- AlignStack cas; // for the colons
-
- cas.Start(4);
-
- chunk_t *pc = chunk_get_head();
-
- while (pc != nullptr)
- {
- if (chunk_is_not_token(pc, CT_ASM_COLON))
- {
- pc = chunk_get_next(pc);
- continue;
- }
- cas.Reset();
-
- pc = chunk_get_next_ncnnl(pc, scope_e::PREPROC);
- size_t level = pc ? pc->level : 0;
- did_nl = true;
-
- while ( pc != nullptr
- && pc->level >= level)
- {
- if (chunk_is_newline(pc))
- {
- cas.NewLines(pc->nl_count);
- did_nl = true;
- }
- else if (chunk_is_token(pc, CT_ASM_COLON))
- {
- cas.Flush();
- did_nl = true;
- }
- else if (did_nl)
- {
- did_nl = false;
- cas.Add(pc);
- }
- pc = chunk_get_next_nc(pc, scope_e::PREPROC);
- }
- cas.End();
- }
-} // align_asm_colon
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_assign.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_assign.cpp
deleted file mode 100644
index 3e745bd7..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_assign.cpp
+++ /dev/null
@@ -1,298 +0,0 @@
-/**
- * @file align_assign.cpp
- *
- * @author Guy Maurel
- * split from align.cpp
- * @author Ben Gardner
- * @license GPL v2+
- */
-
-#include "align_assign.h"
-
-#include "align_stack.h"
-#include "log_rules.h"
-
-constexpr static auto LCURRENT = LALASS;
-
-using namespace uncrustify;
-
-
-chunk_t *align_assign(chunk_t *first, size_t span, size_t thresh, size_t *p_nl_count)
-{
- LOG_FUNC_ENTRY();
-
- if (first == nullptr)
- {
- // coveralls will complain here. There are no example for that.
- // see https://en.wikipedia.org/wiki/Robustness_principle
- return(nullptr);
- }
- size_t my_level = first->level;
-
- char copy[1000];
-
- LOG_FMT(LALASS, "%s(%d): [my_level is %zu]: start checking with '%s', on orig_line %zu, span is %zu, thresh is %zu\n",
- __func__, __LINE__, my_level, first->elided_text(copy), first->orig_line, span, thresh);
-
- // If we are aligning on a tabstop, we shouldn't right-align
- AlignStack as; // regular assigns
-
- as.Start(span, thresh);
- log_rule_B("align_on_tabstop");
- as.m_right_align = !options::align_on_tabstop();
-
- AlignStack vdas; // variable def assigns
-
- vdas.Start(span, thresh);
- vdas.m_right_align = as.m_right_align;
-
- std::deque<AlignStack> fcnDefault(1);
-
- fcnDefault.back().Start(span, thresh);
- fcnDefault.back().m_right_align = as.m_right_align;
-
- AlignStack fcnProto;
-
- fcnProto.Start(span, thresh);
- fcnProto.m_right_align = as.m_right_align;
-
- size_t var_def_cnt = 0;
- size_t equ_count = 0;
- size_t fcn_idx = 0;
- size_t tmp;
- chunk_t *pc = first;
-
- while (pc != nullptr)
- {
- LOG_FMT(LALASS, "%s(%d): orig_line is %zu, check pc->text() '%s', type is %s, parent_type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->elided_text(copy), get_token_name(pc->type), get_token_name(get_chunk_parent_type(pc)));
-
- // Don't check inside SPAREN, PAREN or SQUARE groups
- if ( chunk_is_token(pc, CT_SPAREN_OPEN)
- // || chunk_is_token(pc, CT_FPAREN_OPEN) Issue #1340
- || chunk_is_token(pc, CT_SQUARE_OPEN)
- || chunk_is_token(pc, CT_PAREN_OPEN))
- {
- LOG_FMT(LALASS, "%s(%d): Don't check inside SPAREN, PAREN or SQUARE groups, type is %s\n",
- __func__, __LINE__, get_token_name(pc->type));
- tmp = pc->orig_line;
- pc = chunk_skip_to_match(pc);
-
- if (pc != nullptr)
- {
- as.NewLines(pc->orig_line - tmp);
- vdas.NewLines(pc->orig_line - tmp);
-
- if (pc->orig_line != tmp)
- {
- fcn_idx = 0;
-
- for (auto &fcn : fcnDefault)
- {
- fcn.NewLines(pc->orig_line - tmp);
- }
- }
- fcnProto.NewLines(pc->orig_line - tmp);
- }
- continue;
- }
-
- // Recurse if a brace set is found
- if ( chunk_is_token(pc, CT_BRACE_OPEN)
- || chunk_is_token(pc, CT_VBRACE_OPEN))
- {
- size_t myspan;
- size_t mythresh;
-
- size_t sub_nl_count = 0;
-
- if (get_chunk_parent_type(pc) == CT_ENUM)
- {
- log_rule_B("align_enum_equ_span");
- myspan = options::align_enum_equ_span();
- log_rule_B("align_enum_equ_thresh");
- mythresh = options::align_enum_equ_thresh();
- }
- else
- {
- log_rule_B("align_assign_span");
- myspan = options::align_assign_span();
- log_rule_B("align_assign_thresh");
- mythresh = options::align_assign_thresh();
- }
- pc = align_assign(chunk_get_next_ncnnl(pc), myspan, mythresh, &sub_nl_count);
-
- if (sub_nl_count > 0)
- {
- as.NewLines(sub_nl_count);
- vdas.NewLines(sub_nl_count);
- fcn_idx = 0;
-
- for (auto &fcn : fcnDefault)
- {
- fcn.NewLines(sub_nl_count);
- }
-
- fcnProto.NewLines(sub_nl_count);
-
- if (p_nl_count != nullptr)
- {
- *p_nl_count += sub_nl_count;
- }
- }
- continue;
- }
-
- // Done with this brace set?
- if ( chunk_is_token(pc, CT_BRACE_CLOSE)
- || chunk_is_token(pc, CT_VBRACE_CLOSE))
- {
- pc = chunk_get_next(pc);
- break;
- }
-
- if (chunk_is_newline(pc))
- {
- as.NewLines(pc->nl_count);
- vdas.NewLines(pc->nl_count);
- fcn_idx = 0;
-
- for (auto &fcn : fcnDefault)
- {
- fcn.NewLines(pc->nl_count);
- }
-
- fcnProto.NewLines(pc->nl_count);
-
- if (p_nl_count != nullptr)
- {
- *p_nl_count += pc->nl_count;
- }
- var_def_cnt = 0;
- equ_count = 0;
- }
- else if ( pc->flags.test(PCF_VAR_DEF)
- && !pc->flags.test(PCF_IN_CONST_ARGS) // Issue #1717
- && !pc->flags.test(PCF_IN_FCN_DEF) // Issue #1717
- && !pc->flags.test(PCF_IN_FCN_CALL)) // Issue #1717
- {
- // produces much more log output. Use it only debugging purpose
- //LOG_FMT(LALASS, "%s(%d): log_pcf_flags pc->flags:\n ", __func__, __LINE__);
- //log_pcf_flags(LALASS, pc->flags);
- var_def_cnt++;
- }
- else if (var_def_cnt > 1)
- {
- // we hit the second variable def - don't look for assigns, don't align
- vdas.Reset();
- }
- else if ( equ_count == 0 // indent only if first '=' in line
- && !pc->flags.test(PCF_IN_TEMPLATE) // and it is not inside a template #999
- && ( chunk_is_token(pc, CT_ASSIGN)
- || chunk_is_token(pc, CT_ASSIGN_DEFAULT_ARG)
- || chunk_is_token(pc, CT_ASSIGN_FUNC_PROTO)))
- {
- if (chunk_is_token(pc, CT_ASSIGN)) // Issue #2236
- {
- equ_count++;
- }
- LOG_FMT(LALASS, "%s(%d): align_assign_decl_func() is %d\n",
- __func__, __LINE__, options::align_assign_decl_func());
- // produces much more log output. Use it only debugging purpose
- //LOG_FMT(LALASS, "%s(%d): log_pcf_flags pc->flags: ", __func__, __LINE__);
- //log_pcf_flags(LALASS, pc->flags);
-
- log_rule_B("align_assign_decl_func");
-
- if ( options::align_assign_decl_func() == 0 // Align with other assignments (default)
- && ( chunk_is_token(pc, CT_ASSIGN_DEFAULT_ARG) // Foo( int bar = 777 );
- || chunk_is_token(pc, CT_ASSIGN_FUNC_PROTO))) // Foo( const Foo & ) = delete;
- {
- LOG_FMT(LALASS, "%s(%d): fcnDefault[%zu].Add on '%s' on orig_line %zu, orig_col is %zu\n",
- __func__, __LINE__, fcn_idx, pc->text(), pc->orig_line, pc->orig_col);
-
- if (++fcn_idx == fcnDefault.size())
- {
- fcnDefault.emplace_back();
- fcnDefault.back().Start(span, thresh);
- fcnDefault.back().m_right_align = as.m_right_align;
- }
- fcnDefault[fcn_idx].Add(pc);
- }
- else if (options::align_assign_decl_func() == 1) // Align with each other
- {
- log_rule_B("align_assign_decl_func");
-
- if (chunk_is_token(pc, CT_ASSIGN_DEFAULT_ARG)) // Foo( int bar = 777 );
- {
- LOG_FMT(LALASS, "%s(%d): default: fcnDefault[%zu].Add on '%s' on orig_line %zu, orig_col is %zu\n",
- __func__, __LINE__, fcn_idx, pc->text(), pc->orig_line, pc->orig_col);
-
- if (++fcn_idx == fcnDefault.size())
- {
- fcnDefault.emplace_back();
- fcnDefault.back().Start(span, thresh);
- fcnDefault.back().m_right_align = as.m_right_align;
- }
- fcnDefault[fcn_idx].Add(pc);
- }
- else if (chunk_is_token(pc, CT_ASSIGN_FUNC_PROTO)) // Foo( const Foo & ) = delete;
- {
- LOG_FMT(LALASS, "%s(%d): proto: fcnProto.Add on '%s' on orig_line %zu, orig_col is %zu\n",
- __func__, __LINE__, pc->text(), pc->orig_line, pc->orig_col);
- fcnProto.Add(pc);
- }
- else if (chunk_is_token(pc, CT_ASSIGN)) // Issue #2197
- {
- LOG_FMT(LALASS, "%s(%d): vdas.Add on '%s' on orig_line %zu, orig_col is %zu\n",
- __func__, __LINE__, pc->text(), pc->orig_line, pc->orig_col);
- vdas.Add(pc);
- }
- }
- else if ( options::align_assign_decl_func() == 2 // Don't align
- && ( chunk_is_token(pc, CT_ASSIGN_DEFAULT_ARG) // Foo( int bar = 777 );
- || chunk_is_token(pc, CT_ASSIGN_FUNC_PROTO))) // Foo( const Foo & ) = delete;
- {
- log_rule_B("align_assign_decl_func");
- LOG_FMT(LALASS, "%s(%d): Don't align\n", // Issue #2236
- __func__, __LINE__);
- }
- else if (var_def_cnt != 0)
- {
- LOG_FMT(LALASS, "%s(%d): vdas.Add on '%s' on orig_line %zu, orig_col is %zu\n",
- __func__, __LINE__, pc->text(), pc->orig_line, pc->orig_col);
- vdas.Add(pc);
- }
- else
- {
- if (chunk_is_token(pc, CT_ASSIGN))
- {
- LOG_FMT(LALASS, "%s(%d): as.Add on '%s' on orig_line %zu, orig_col is %zu\n",
- __func__, __LINE__, pc->text(), pc->orig_line, pc->orig_col);
- as.Add(pc);
- }
- }
- }
- pc = chunk_get_next(pc);
- }
- as.End();
- vdas.End();
-
- for (auto &fcn : fcnDefault)
- {
- fcn.End();
- }
-
- fcnProto.End();
-
- if (pc != nullptr)
- {
- LOG_FMT(LALASS, "%s(%d): done on '%s' on orig_line %zu\n",
- __func__, __LINE__, pc->text(), pc->orig_line);
- }
- else
- {
- LOG_FMT(LALASS, "%s(%d): done on NULL\n", __func__, __LINE__);
- }
- return(pc);
-} // align_assign
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_assign.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_assign.h
deleted file mode 100644
index e14ad62c..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_assign.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/**
- * @file align_assign.h
- *
- * @author Guy Maurel
- * split from align.cpp
- * @author Ben Gardner
- * @license GPL v2+
- */
-
-#ifndef ALIGN_ASSIGN_H_INCLUDED
-#define ALIGN_ASSIGN_H_INCLUDED
-
-#include "chunk_list.h"
-
-/**
- * Aligns all assignment operators on the same level as first, starting with
- * first.
- * For variable definitions, only consider the '=' for the first variable.
- * Otherwise, only look at the first '=' on the line.
- *
- * @param first chunk pointing to the first assignment
- */
-chunk_t *align_assign(chunk_t *first, size_t span, size_t thresh, size_t *p_nl_count);
-
-#endif /* ALIGN_ASSIGN_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_eigen_comma_init.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_eigen_comma_init.cpp
deleted file mode 100644
index c659c214..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_eigen_comma_init.cpp
+++ /dev/null
@@ -1,121 +0,0 @@
-/**
- * @file align_eigen_comma_init.cpp
- *
- * @author Matthew Woehlke
- * copied/adapted from align_left_shift.cpp
- * @author Guy Maurel
- * @author Ben Gardner
- * @license GPL v2+
- */
-
-#include "align_eigen_comma_init.h"
-
-#include "align_stack.h"
-#include "indent.h"
-#include "log_rules.h"
-
-constexpr static auto LCURRENT = LALIGN;
-
-using namespace uncrustify;
-
-
-void align_eigen_comma_init(void)
-{
- LOG_FUNC_ENTRY();
-
- chunk_t *start = nullptr;
- AlignStack as;
-
- as.Start(255);
-
- auto *pc = chunk_get_head();
-
- while (pc != nullptr)
- {
- if (chunk_is_newline(pc))
- {
- LOG_FMT(LALIGN, "%s(%d): orig_line is %zu, <Newline>\n", __func__, __LINE__, pc->orig_line);
- }
- else
- {
- LOG_FMT(LALIGN, "%s(%d): orig_line is %zu, orig_col is %zu, pc->text() '%s'\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text());
- }
-
- if ( start != nullptr
- && ((pc->flags & PCF_IN_PREPROC) != (start->flags & PCF_IN_PREPROC)))
- {
- // a change in preproc status restarts the aligning
- as.Flush();
- start = nullptr;
- }
- else if (chunk_is_newline(pc))
- {
- as.NewLines(pc->nl_count);
- }
- else if ( start != nullptr
- && pc->level < start->level)
- {
- // A drop in level restarts the aligning
- as.Flush();
- start = nullptr;
- }
- else if ( start != nullptr
- && pc->level > start->level)
- {
- // Ignore any deeper levels when aligning
- }
- else if (chunk_is_token(pc, CT_SEMICOLON))
- {
- // A semicolon at the same level flushes
- as.Flush();
- start = nullptr;
- }
- else if ( !pc->flags.test(PCF_IN_ENUM)
- && !pc->flags.test(PCF_IN_TYPEDEF)
- && chunk_is_str(pc, "<<", 2))
- {
- if (get_chunk_parent_type(pc) == CT_OPERATOR)
- {
- // Ignore operator<<
- }
- else
- {
- /*
- * check if the first one is actually on a blank line and then
- * indent it. Eg:
- *
- * cout
- * << "something";
- */
- chunk_t *prev = chunk_get_prev(pc);
-
- if ( prev != nullptr
- && chunk_is_newline(prev))
- {
- log_rule_B("indent_columns");
- indent_to_column(pc, pc->column_indent + options::indent_columns());
- pc->column_indent = pc->column;
- chunk_flags_set(pc, PCF_DONT_INDENT);
- }
- // Restart alignment
- as.Flush();
- as.Add(chunk_get_next(pc));
- start = pc;
- }
- }
- else if (!as.m_aligned.Empty())
- {
- auto *const prev = chunk_get_prev(pc);
-
- if ( chunk_is_newline(prev)
- && chunk_is_token(chunk_get_prev_ncnnl(pc), CT_COMMA))
- {
- log_rule_B("align_eigen_comma_init");
- as.Add(pc);
- }
- }
- pc = chunk_get_next(pc);
- }
- as.End();
-} // align_left_shift
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_func_params.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_func_params.cpp
deleted file mode 100644
index 41990576..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_func_params.cpp
+++ /dev/null
@@ -1,188 +0,0 @@
-/**
- * @file align_func_params.cpp
- *
- * @author Guy Maurel
- * split from align.cpp
- * @author Ben Gardner
- * @license GPL v2+
- */
-
-#include "align_func_params.h"
-
-#include "align_stack.h"
-#include "log_rules.h"
-
-#include <algorithm> // to get max
-
-constexpr static auto LCURRENT = LALIGN;
-
-using namespace uncrustify;
-
-
-chunk_t *align_func_param(chunk_t *start)
-{
- LOG_FUNC_ENTRY();
-
- LOG_FMT(LAS, "AlignStack::%s(%d): Candidate is '%s': orig_line is %zu, column is %zu, type is %s, level is %zu\n",
- __func__, __LINE__, start->text(), start->orig_line, start->column,
- get_token_name(start->type), start->level);
- // Defaults, if the align_func_params = true
- size_t myspan = 2;
- size_t mythresh = 0;
- size_t mygap = 0;
-
- // Override, if the align_func_params_span > 0
- log_rule_B("align_func_params_span");
-
- if (options::align_func_params_span() > 0)
- {
- myspan = options::align_func_params_span();
- log_rule_B("align_func_params_thresh");
- mythresh = options::align_func_params_thresh();
- log_rule_B("align_func_params_gap");
- mygap = options::align_func_params_gap();
- }
- const size_t HOW_MANY_AS = 16; // Issue #2921
- AlignStack many_as[HOW_MANY_AS + 1];
-
- size_t max_level_is = 0;
-
- log_rule_B("align_var_def_star_style");
- log_rule_B("align_var_def_amp_style");
-
- for (size_t idx = 0; idx <= HOW_MANY_AS; idx++)
- {
- many_as[idx].Start(myspan, mythresh);
- many_as[idx].m_gap = mygap;
- many_as[idx].m_star_style = static_cast<AlignStack::StarStyle>(options::align_var_def_star_style());
- many_as[idx].m_amp_style = static_cast<AlignStack::StarStyle>(options::align_var_def_amp_style());
- }
-
- size_t comma_count = 0;
- size_t chunk_count = 0;
- chunk_t *pc = start;
-
- while ((pc = chunk_get_next(pc)) != nullptr)
- {
- chunk_count++;
- LOG_FMT(LFLPAREN, "%s(%d): orig_line is %zu, orig_col is %zu, text() is '%s', type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(),
- get_token_name(pc->type));
-
- if (chunk_is_token(pc, CT_FUNC_VAR)) // Issue #2278
- {
- // look after 'protect parenthesis'
- chunk_t *after = chunk_get_next_nc(pc);
-
- if (chunk_is_token(after, CT_PAREN_CLOSE))
- {
- chunk_t *before = chunk_get_prev_type(after, CT_PAREN_OPEN, after->level);
-
- if (before != nullptr)
- {
- // these are 'protect parenthesis'
- // change the types and the level
- set_chunk_type(before, CT_PPAREN_OPEN);
- set_chunk_type(after, CT_PPAREN_CLOSE);
- pc->level = before->level;
- chunk_t *tmp = chunk_get_prev_nc(pc);
-
- if (chunk_is_token(tmp, CT_PTR_TYPE))
- {
- tmp->level = before->level;
- }
- }
- }
- }
-
- if (chunk_is_newline(pc))
- {
- comma_count = 0;
- chunk_count = 0;
- many_as[pc->level].NewLines(pc->nl_count);
- }
- else if (pc->level <= start->level)
- {
- break;
- }
- else if (pc->flags.test(PCF_VAR_DEF))
- {
- if (chunk_count > 1)
- {
- if (pc->level > HOW_MANY_AS)
- {
- fprintf(stderr, "%s(%d): Not enought memory for Stack\n",
- __func__, __LINE__);
- fprintf(stderr, "%s(%d): the current maximum is %zu\n",
- __func__, __LINE__, HOW_MANY_AS);
- log_flush(true);
- exit(EX_SOFTWARE);
- }
- max_level_is = max(max_level_is, pc->level);
- many_as[pc->level].Add(pc);
- }
- }
- else if (comma_count > 0)
- {
- if (!chunk_is_comment(pc))
- {
- comma_count = 2;
- break;
- }
- }
- else if (chunk_is_token(pc, CT_COMMA))
- {
- if (pc->flags.test(PCF_IN_TEMPLATE)) // Issue #2757
- {
- LOG_FMT(LFLPAREN, "%s(%d): comma is in template\n",
- __func__, __LINE__);
- }
- else
- {
- chunk_t *tmp_prev = chunk_get_prev_nc(pc);
-
- if (!chunk_is_newline(tmp_prev)) // don't count leading commas
- {
- comma_count++;
- LOG_FMT(LFLPAREN, "%s(%d): comma_count is %zu\n",
- __func__, __LINE__, comma_count);
- }
- }
- }
- }
-
- if (comma_count <= 1)
- {
- for (size_t idx = 1; idx <= max_level_is; idx++)
- {
- many_as[idx].End();
- }
- }
- return(pc);
-} // align_func_param
-
-
-void align_func_params(void)
-{
- LOG_FUNC_ENTRY();
- chunk_t *pc = chunk_get_head();
-
- while ((pc = chunk_get_next(pc)) != nullptr)
- {
- LOG_FMT(LFLPAREN, "%s(%d): orig_line is %zu, orig_col is %zu, text() is '%s', parent_type is %s, parent_type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(),
- get_token_name(pc->type), get_token_name(pc->parent_type));
-
- if ( chunk_is_not_token(pc, CT_FPAREN_OPEN)
- || ( get_chunk_parent_type(pc) != CT_FUNC_PROTO
- && get_chunk_parent_type(pc) != CT_FUNC_DEF
- && get_chunk_parent_type(pc) != CT_FUNC_CLASS_PROTO
- && get_chunk_parent_type(pc) != CT_FUNC_CLASS_DEF
- && get_chunk_parent_type(pc) != CT_TYPEDEF))
- {
- continue;
- }
- // We are on a open parenthesis of a prototype
- pc = align_func_param(pc);
- }
-} // void align_func_params
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_func_params.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_func_params.h
deleted file mode 100644
index b200a0cb..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_func_params.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/**
- * @file align_func_params.h
- *
- * @author Guy Maurel
- * split from align.cpp
- * @author Ben Gardner
- * @license GPL v2+
- */
-
-#ifndef ALIGN_FUNC_PARAMS_H_INCLUDED
-#define ALIGN_FUNC_PARAMS_H_INCLUDED
-
-#include "chunk_list.h"
-
-void align_func_params(void);
-
-chunk_t *align_func_param(chunk_t *start);
-
-#endif /* ALIGN_FUNC_PARAMS_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_func_proto.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_func_proto.cpp
deleted file mode 100644
index 9a0cbfd2..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_func_proto.cpp
+++ /dev/null
@@ -1,218 +0,0 @@
-/**
- * @file align_func_proto.cpp
- *
- * @author Guy Maurel
- * split from align.cpp
- * @author Ben Gardner
- * @license GPL v2+
- */
-
-#include "align_func_proto.h"
-
-#include "align_stack.h"
-#include "align_tools.h"
-#include "log_rules.h"
-
-#include <algorithm> // to get max
-
-constexpr static auto LCURRENT = LALPROTO;
-
-using namespace uncrustify;
-
-
-void align_func_proto(size_t span)
-{
- LOG_FUNC_ENTRY();
-
- size_t myspan = span;
- size_t mythresh = 0;
-
- log_rule_B("align_func_proto_gap");
- size_t mygap = options::align_func_proto_gap();
-
- log_rule_B("align_func_proto_thresh");
- mythresh = options::align_func_proto_thresh();
-
- // Issue #2771
- // we align token-1 and token-2 if:
- // token-1->level == token-2->level
- // and
- // token-1->brace_level == token-2->brace_level
- // we don't check if token-1 and token-2 are in the same block
-
- log_rule_B("align_func_proto_star_style");
- size_t mystar_style = options::align_func_proto_star_style();
-
- log_rule_B("align_func_proto_amp_style");
- size_t myamp_style = options::align_func_proto_amp_style();
-
-
- size_t num_of_column = 1;
- size_t num_of_row = 1;
- AlignStack *stack_init_value = nullptr;
-
-
- // Issue #2984
- vector<vector<AlignStack *> > many_as;
- // Issue #2771
- vector<vector<AlignStack *> > many_as_brace;
-
- // init the vector ...
- many_as.resize(num_of_column, vector<AlignStack *>(num_of_row, stack_init_value));
- many_as_brace.resize(num_of_column, vector<AlignStack *>(num_of_row, stack_init_value));
-
- log_rule_B("align_single_line_brace_gap");
- size_t mybr_gap = options::align_single_line_brace_gap();
-
-
- bool look_bro = false;
- chunk_t *toadd;
-
- for (chunk_t *pc = chunk_get_head(); pc != nullptr; pc = chunk_get_next(pc))
- {
- char copy[1000];
- LOG_FMT(LAS, "%s(%d): orig_line is %zu, orig_col is %zu, text() is '%s', type is %s, level is %zu, brace_level is %zu\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->elided_text(copy),
- get_token_name(pc->type), pc->level, pc->brace_level);
-
- // make the vector larger if necessary
- if ( pc->level >= num_of_column // Issue #2960
- || pc->brace_level >= num_of_row)
- {
- num_of_column = pc->level + 1;
- num_of_row = pc->brace_level + 1;
-
- many_as.resize(num_of_column);
- many_as_brace.resize(num_of_column);
-
- for (size_t i = 0; i < num_of_column; ++i)
- {
- many_as[i].resize(num_of_row);
- many_as_brace[i].resize(num_of_row);
- }
- }
-
- if ( chunk_is_newline(pc)
- && !pc->flags.test(PCF_IN_FCN_CALL)) // Issue #2831
- {
- look_bro = false;
- AlignStack *stack_at_l_bl = many_as.at(pc->level).at(pc->brace_level);
-
- if (stack_at_l_bl == nullptr)
- {
- // get a Stack
- stack_at_l_bl = new AlignStack();
- // start it
- stack_at_l_bl->Start(myspan, mythresh);
- stack_at_l_bl->m_gap = mygap;
- stack_at_l_bl->m_star_style = static_cast<AlignStack::StarStyle>(mystar_style);
- stack_at_l_bl->m_amp_style = static_cast<AlignStack::StarStyle>(myamp_style);
- // store
- many_as.at(pc->level).at(pc->brace_level) = stack_at_l_bl;
- }
- stack_at_l_bl->Debug();
-
- for (size_t idx = 0; idx < num_of_column; idx++)
- {
- for (size_t idx_brace = 0; idx_brace < num_of_row; idx_brace++)
- {
- stack_at_l_bl = many_as.at(idx).at(idx_brace);
-
- if (stack_at_l_bl != nullptr)
- {
- stack_at_l_bl->NewLines(pc->nl_count);
- }
- }
- }
-
- AlignStack *stack_at_l_bl_brace = many_as_brace.at(pc->level).at(pc->brace_level);
-
- if (stack_at_l_bl_brace == nullptr)
- {
- // get a Stack
- stack_at_l_bl_brace = new AlignStack();
- // start it
- stack_at_l_bl_brace->Start(myspan, mythresh);
- stack_at_l_bl_brace->m_gap = mybr_gap;
- // store
- many_as_brace.at(pc->level).at(pc->brace_level) = stack_at_l_bl_brace;
- }
- stack_at_l_bl_brace->Debug();
- stack_at_l_bl_brace->NewLines(pc->nl_count);
- }
- else if ( chunk_is_token(pc, CT_FUNC_PROTO)
- || ( chunk_is_token(pc, CT_FUNC_DEF)
- && options::align_single_line_func()))
- {
- log_rule_B("align_single_line_func");
- log_rule_B("align_on_operator");
-
- if ( get_chunk_parent_type(pc) == CT_OPERATOR
- && options::align_on_operator())
- {
- toadd = chunk_get_prev_ncnnl(pc);
- }
- else
- {
- toadd = pc;
- }
- chunk_t *tmp = step_back_over_member(toadd);
- LOG_FMT(LAS, "%s(%d): tmp->text() is '%s', orig_line is %zu, orig_col is %zu, level is %zu, brace_level is %zu\n",
- __func__, __LINE__, tmp->text(), tmp->orig_line, tmp->orig_col,
- tmp->level, tmp->brace_level);
- // test the Stack
- AlignStack *stack_at_l_bl = many_as.at(pc->level).at(pc->brace_level);
-
- if (stack_at_l_bl == nullptr)
- {
- // get a Stack
- stack_at_l_bl = new AlignStack();
- // start it
- stack_at_l_bl->Start(myspan, mythresh);
- stack_at_l_bl->m_gap = mygap;
- stack_at_l_bl->m_star_style = static_cast<AlignStack::StarStyle>(mystar_style);
- stack_at_l_bl->m_amp_style = static_cast<AlignStack::StarStyle>(myamp_style);
- // store
- many_as.at(pc->level).at(pc->brace_level) = stack_at_l_bl;
- }
- stack_at_l_bl->Add(tmp);
- log_rule_B("align_single_line_brace");
- look_bro = (chunk_is_token(pc, CT_FUNC_DEF))
- && options::align_single_line_brace();
- }
- else if ( look_bro
- && chunk_is_token(pc, CT_BRACE_OPEN)
- && pc->flags.test(PCF_ONE_LINER))
- {
- AlignStack *stack_at_l_bl_brace = many_as_brace.at(pc->level).at(pc->brace_level);
- stack_at_l_bl_brace->Add(pc);
- look_bro = false;
- }
- }
-
- LOG_FMT(LAS, "%s(%d): as\n", __func__, __LINE__);
-
- // purge
- for (size_t idx = 0; idx < num_of_column; idx++)
- {
- for (size_t idx_brace = 0; idx_brace < num_of_row; idx_brace++)
- {
- AlignStack *stack_at_l_bl = many_as.at(idx).at(idx_brace);
-
- if (stack_at_l_bl != nullptr)
- {
- stack_at_l_bl->End();
- delete stack_at_l_bl;
- stack_at_l_bl = nullptr;
- }
- AlignStack *stack_at_l_bl_brace = many_as_brace.at(idx).at(idx_brace);
-
- if (stack_at_l_bl_brace != nullptr)
- {
- stack_at_l_bl_brace->End();
- delete stack_at_l_bl_brace;
- stack_at_l_bl_brace = nullptr;
- }
- }
- }
-} // align_func_proto
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_func_proto.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_func_proto.h
deleted file mode 100644
index 0edf442d..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_func_proto.h
+++ /dev/null
@@ -1,18 +0,0 @@
-/**
- * @file align_func_proto.h
- *
- * @author Guy Maurel
- * split from align.cpp
- * @author Ben Gardner
- * @license GPL v2+
- */
-
-#ifndef ALIGN_FUNC_PROTO_H_INCLUDED
-#define ALIGN_FUNC_PROTO_H_INCLUDED
-
-#include "chunk_list.h"
-
-//! Aligns all function prototypes in the file.
-void align_func_proto(size_t span);
-
-#endif /* ALIGN_FUNC_PROTO_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_init_brace.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_init_brace.cpp
deleted file mode 100644
index 2fbe59d4..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_init_brace.cpp
+++ /dev/null
@@ -1,203 +0,0 @@
-/**
- * @file align_init_brace.cpp
- *
- * @author Guy Maurel
- * split from align.cpp
- * @author Ben Gardner
- * @license GPL v2+
- */
-
-#include "align_init_brace.h"
-
-#include "align_log_al.h"
-#include "align_tab_column.h"
-#include "align_tools.h"
-#include "indent.h"
-#include "log_rules.h"
-
-constexpr static auto LCURRENT = LALBR;
-
-using namespace uncrustify;
-
-
-void align_init_brace(chunk_t *start)
-{
- LOG_FUNC_ENTRY();
-
- chunk_t *num_token = nullptr;
-
- cpd.al_cnt = 0;
- cpd.al_c99_array = false;
-
- LOG_FMT(LALBR, "%s(%d): start @ orig_line is %zu, orig_col is %zu\n",
- __func__, __LINE__, start->orig_line, start->orig_col);
-
- chunk_t *pc = chunk_get_next_ncnnl(start);
- chunk_t *pcSingle = scan_ib_line(pc, true);
-
- if ( pcSingle == nullptr
- || ( chunk_is_token(pcSingle, CT_BRACE_CLOSE)
- && get_chunk_parent_type(pcSingle) == CT_ASSIGN))
- {
- // single line - nothing to do
- LOG_FMT(LALBR, "%s(%d): single line - nothing to do\n", __func__, __LINE__);
- return;
- }
- LOG_FMT(LALBR, "%s(%d): is not a single line\n", __func__, __LINE__);
-
- do
- {
- pc = scan_ib_line(pc, false);
-
- // debug dump the current frame
- LOG_FMT(LALBR, "%s(%d): debug dump after, orig_line is %zu\n",
- __func__, __LINE__, pc->orig_line);
- align_log_al(LALBR, pc->orig_line);
-
- while (chunk_is_newline(pc))
- {
- pc = chunk_get_next(pc);
- }
- } while ( pc != nullptr
- && pc->level > start->level);
-
- // debug dump the current frame
- align_log_al(LALBR, start->orig_line);
-
- log_rule_B("align_on_tabstop");
-
- if ( options::align_on_tabstop()
- && cpd.al_cnt >= 1
- && (cpd.al[0].type == CT_ASSIGN))
- {
- cpd.al[0].col = align_tab_column(cpd.al[0].col);
- }
- pc = chunk_get_next(start);
- size_t idx = 0;
-
- do
- {
- chunk_t *tmp;
-
- if ( idx == 0
- && ((tmp = skip_c99_array(pc)) != nullptr))
- {
- pc = tmp;
-
- if (pc != nullptr)
- {
- LOG_FMT(LALBR, " -%zu- skipped '[] =' to %s\n",
- pc->orig_line, get_token_name(pc->type));
- }
- continue;
- }
- chunk_t *next = pc;
-
- if (idx < cpd.al_cnt)
- {
- LOG_FMT(LALBR, " (%zu) check %s vs %s -- ",
- idx, get_token_name(pc->type), get_token_name(cpd.al[idx].type));
-
- if (chunk_is_token(pc, cpd.al[idx].type))
- {
- if ( idx == 0
- && cpd.al_c99_array)
- {
- chunk_t *prev = chunk_get_prev(pc);
-
- if (chunk_is_newline(prev))
- {
- chunk_flags_set(pc, PCF_DONT_INDENT);
- }
- }
- LOG_FMT(LALBR, " [%s] to col %zu\n", pc->text(), cpd.al[idx].col);
-
- if (num_token != nullptr)
- {
- int col_diff = pc->column - num_token->column;
-
- reindent_line(num_token, cpd.al[idx].col - col_diff);
- //LOG_FMT(LSYS, "-= %zu =- NUM indent [%s] col=%d diff=%d\n",
- // num_token->orig_line,
- // num_token->text(), cpd.al[idx - 1].col, col_diff);
-
- chunk_flags_set(num_token, PCF_WAS_ALIGNED);
- num_token = nullptr;
- }
-
- // Comma's need to 'fall back' to the previous token
- if (chunk_is_token(pc, CT_COMMA))
- {
- next = chunk_get_next(pc);
-
- if (!chunk_is_newline(next))
- {
- //LOG_FMT(LSYS, "-= %zu =- indent [%s] col=%d len=%d\n",
- // next->orig_line,
- // next->text(), cpd.al[idx].col, cpd.al[idx].len);
-
- log_rule_B("align_number_right");
-
- if ( (idx < (cpd.al_cnt - 1))
- && options::align_number_right()
- && ( chunk_is_token(next, CT_NUMBER_FP)
- || chunk_is_token(next, CT_NUMBER)
- || chunk_is_token(next, CT_POS)
- || chunk_is_token(next, CT_NEG)))
- {
- // Need to wait until the next match to indent numbers
- num_token = next;
- }
- else if (idx < (cpd.al_cnt - 1))
- {
- LOG_FMT(LALBR, "%s(%d): idx is %zu, al_cnt is %zu, cpd.al[%zu].col is %zu, cpd.al[%zu].len is %zu\n",
- __func__, __LINE__, idx, cpd.al_cnt, idx, cpd.al[idx].col, idx, cpd.al[idx].len);
- reindent_line(next, cpd.al[idx].col + cpd.al[idx].len);
- chunk_flags_set(next, PCF_WAS_ALIGNED);
- }
- }
- }
- else
- {
- // first item on the line
- LOG_FMT(LALBR, "%s(%d): idx is %zu, cpd.al[%zu].col is %zu\n",
- __func__, __LINE__, idx, idx, cpd.al[idx].col);
- reindent_line(pc, cpd.al[idx].col);
- chunk_flags_set(pc, PCF_WAS_ALIGNED);
-
- // see if we need to right-align a number
- log_rule_B("align_number_right");
-
- if ( (idx < (cpd.al_cnt - 1))
- && options::align_number_right())
- {
- next = chunk_get_next(pc);
-
- if ( !chunk_is_newline(next)
- && ( chunk_is_token(next, CT_NUMBER_FP)
- || chunk_is_token(next, CT_NUMBER)
- || chunk_is_token(next, CT_POS)
- || chunk_is_token(next, CT_NEG)))
- {
- // Need to wait until the next match to indent numbers
- num_token = next;
- }
- }
- }
- idx++;
- }
- else
- {
- LOG_FMT(LALBR, " no match\n");
- }
- }
-
- if ( chunk_is_newline(pc)
- || chunk_is_newline(next))
- {
- idx = 0;
- }
- pc = chunk_get_next(pc);
- } while ( pc != nullptr
- && pc->level > start->level);
-} // align_init_brace
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_init_brace.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_init_brace.h
deleted file mode 100644
index 6c0c4909..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_init_brace.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/**
- * @file align_init_brace.h
- *
- * @author Guy Maurel
- * split from align.cpp
- * @author Ben Gardner
- * @license GPL v2+
- */
-
-#ifndef ALIGN_INIT_BRACE_H_INCLUDED
-#define ALIGN_INIT_BRACE_H_INCLUDED
-
-#include "uncrustify_types.h"
-
-/**
- * Generically aligns on '=', '{', '(' and item after ','
- * It scans the first line and picks up the location of those tags.
- * It then scans subsequent lines and adjusts the column.
- * Finally it does a second pass to align everything.
- *
- * Aligns all the '=' signs in structure assignments.
- * a = {
- * .a = 1;
- * .type = fast;
- * };
- *
- * And aligns on '{', numbers, strings, words.
- * colors[] = {
- * {"red", {255, 0, 0}}, {"blue", { 0, 255, 0}},
- * {"green", { 0, 0, 255}}, {"purple", {255, 255, 0}},
- * };
- *
- * For the C99 indexed array assignment, the leading []= is skipped (no aligning)
- * struct foo_t bars[] =
- * {
- * [0] = { .name = "bar",
- * .age = 21 },
- * [1] = { .name = "barley",
- * .age = 55 },
- * };
- *
- * NOTE: this assumes that spacing is at the minimum correct spacing (ie force)
- * if it isn't, some extra spaces will be inserted.
- *
- * @param start Points to the open brace chunk
- */
-void align_init_brace(chunk_t *start);
-
-#endif /* ALIGN_INIT_BRACE_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_left_shift.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_left_shift.cpp
deleted file mode 100644
index 777f7d27..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_left_shift.cpp
+++ /dev/null
@@ -1,134 +0,0 @@
-/**
- * @file align_left_shift.cpp
- *
- * @author Guy Maurel
- * split from align.cpp
- * @author Ben Gardner
- * @license GPL v2+
- */
-
-#include "align_left_shift.h"
-
-#include "align_stack.h"
-#include "indent.h"
-#include "log_rules.h"
-
-constexpr static auto LCURRENT = LALIGN;
-
-using namespace uncrustify;
-
-
-void align_left_shift(void)
-{
- LOG_FUNC_ENTRY();
-
- chunk_t *start = nullptr;
- AlignStack as;
-
- as.Start(255);
-
- chunk_t *pc = chunk_get_head();
-
- while (pc != nullptr)
- {
- if (chunk_is_newline(pc))
- {
- LOG_FMT(LALIGN, "%s(%d): orig_line is %zu, <Newline>\n", __func__, __LINE__, pc->orig_line);
- }
- else
- {
- char copy[1000];
- LOG_FMT(LALIGN, "%s(%d): orig_line is %zu, orig_col is %zu, pc->text() '%s'\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->elided_text(copy));
- }
-
- if ( start != nullptr
- && ((pc->flags & PCF_IN_PREPROC) != (start->flags & PCF_IN_PREPROC)))
- {
- // a change in preproc status restarts the aligning
- as.Flush();
- start = nullptr;
- }
- else if (chunk_is_newline(pc))
- {
- as.NewLines(pc->nl_count);
- }
- else if ( start != nullptr
- && pc->level < start->level)
- {
- // A drop in level restarts the aligning
- as.Flush();
- start = nullptr;
- }
- else if ( start != nullptr
- && pc->level > start->level)
- {
- // Ignore any deeper levels when aligning
- }
- else if (chunk_is_token(pc, CT_SEMICOLON))
- {
- // A semicolon at the same level flushes
- as.Flush();
- start = nullptr;
- }
- else if ( !pc->flags.test(PCF_IN_ENUM)
- && !pc->flags.test(PCF_IN_TYPEDEF)
- && chunk_is_str(pc, "<<", 2))
- {
- if (get_chunk_parent_type(pc) == CT_OPERATOR)
- {
- // Ignore operator<<
- }
- else if (as.m_aligned.Empty())
- {
- /*
- * check if the first one is actually on a blank line and then
- * indent it. Eg:
- *
- * cout
- * << "something";
- */
- chunk_t *prev = chunk_get_prev(pc);
-
- if ( prev != nullptr
- && chunk_is_newline(prev))
- {
- log_rule_B("indent_columns");
- indent_to_column(pc, pc->column_indent + options::indent_columns());
- pc->column_indent = pc->column;
- chunk_flags_set(pc, PCF_DONT_INDENT);
- }
- // first one can be anywhere
- as.Add(pc);
- start = pc;
- }
- else if (chunk_is_newline(chunk_get_prev(pc)))
- {
- // subsequent ones must be after a newline
- as.Add(pc);
- }
- }
- else if (!as.m_aligned.Empty())
- {
- /*
- * check if the given statement is on a line of its own, immediately following <<
- * and then it. Eg:
- *
- * cout <<
- * "something";
- */
- chunk_t *prev = chunk_get_prev(pc);
-
- if ( prev != nullptr
- && chunk_is_newline(prev))
- {
- log_rule_B("indent_columns");
- indent_to_column(pc, pc->column_indent + options::indent_columns());
- pc->column_indent = pc->column;
- chunk_flags_set(pc, PCF_DONT_INDENT);
- }
- }
- pc = chunk_get_next(pc);
- }
- as.End();
-} // align_left_shift
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_nl_cont.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_nl_cont.cpp
deleted file mode 100644
index ffe17f57..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_nl_cont.cpp
+++ /dev/null
@@ -1,63 +0,0 @@
-/**
- * @file align_nl_cont.cpp
- *
- * @author Guy Maurel
- * split from align.cpp
- * @author Ben Gardner
- * @license GPL v2+
- */
-
-#include "align_nl_cont.h"
-
-#include "align_add.h"
-#include "uncrustify.h"
-
-
-chunk_t *align_nl_cont(chunk_t *start)
-{
- LOG_FUNC_ENTRY();
-
- LOG_FMT(LALNLC, "%s(%d): start on [%s] on line %zu\n",
- __func__, __LINE__, get_token_name(start->type), start->orig_line);
-
- // Find the max column
- ChunkStack cs;
- size_t max_col = 0;
- chunk_t *pc = start;
-
- while ( chunk_is_not_token(pc, CT_NEWLINE)
- && chunk_is_not_token(pc, CT_COMMENT_MULTI))
- {
- if (chunk_is_token(pc, CT_NL_CONT))
- {
- align_add(cs, pc, max_col);
- }
- pc = chunk_get_next(pc);
- }
- // NL_CONT is always the last thing on a line
- chunk_t *tmp;
-
- while ((tmp = cs.Pop_Back()) != nullptr)
- {
- chunk_flags_set(tmp, PCF_WAS_ALIGNED);
- tmp->column = max_col;
- }
- return(pc);
-} // align_nl_cont
-
-
-void align_backslash_newline(void)
-{
- LOG_FUNC_ENTRY();
- chunk_t *pc = chunk_get_head();
-
- while (pc != nullptr)
- {
- if (chunk_is_not_token(pc, CT_NL_CONT))
- {
- pc = chunk_get_next_type(pc, CT_NL_CONT, -1);
- continue;
- }
- pc = align_nl_cont(pc);
- }
-} // align_backslash_newline
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_nl_cont.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_nl_cont.h
deleted file mode 100644
index cdef76f7..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_nl_cont.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/**
- * @file align_nl_cont.h
- *
- * @author Guy Maurel
- * split from align.cpp
- * @author Ben Gardner
- * @license GPL v2+
- */
-
-#ifndef ALIGN_NL_COUNT_H_INCLUDED
-#define ALIGN_NL_COUNT_H_INCLUDED
-
-#include "uncrustify_types.h"
-
-#include "chunk_list.h"
-
-/**
- * For a series of lines ending in backslash-newline, align them.
- * The series ends when a newline or multi-line C comment is encountered.
- *
- * @param start Start point
- *
- * @return pointer the last item looked at (nullptr/newline/comment)
- */
-chunk_t *align_nl_cont(chunk_t *start);
-
-/**
- * Aligns all backslash-newline combos in the file.
- * This should be done LAST.
- */
-void align_backslash_newline(void);
-
-#endif /* ALIGN_NL_COUNT_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_oc_decl_colon.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_oc_decl_colon.cpp
deleted file mode 100644
index 628c9994..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_oc_decl_colon.cpp
+++ /dev/null
@@ -1,90 +0,0 @@
-/**
- * @file align_oc_decl_colon.cpp
- *
- * @author Guy Maurel
- * split from align.cpp
- * @author Ben Gardner
- * @license GPL v2+
- */
-
-#include "align_oc_decl_colon.h"
-
-#include "align_stack.h"
-#include "chunk_list.h"
-
-
-using namespace uncrustify;
-
-
-void align_oc_decl_colon(void)
-{
- LOG_FUNC_ENTRY();
-
- bool did_line;
- AlignStack cas; // for the colons
- AlignStack nas; // for the parameter label
-
- cas.Start(4);
- nas.Start(4);
- nas.m_right_align = !options::align_on_tabstop();
-
- chunk_t *pc = chunk_get_head();
-
- while (pc != nullptr)
- {
- if (chunk_is_not_token(pc, CT_OC_SCOPE))
- {
- pc = chunk_get_next(pc);
- continue;
- }
- nas.Reset();
- cas.Reset();
-
- size_t level = pc->level;
- pc = chunk_get_next_ncnnl(pc, scope_e::PREPROC);
-
- did_line = false;
-
- while ( pc != nullptr
- && pc->level >= level)
- {
- // The declaration ends with an open brace or semicolon
- if ( chunk_is_token(pc, CT_BRACE_OPEN)
- || chunk_is_semicolon(pc))
- {
- break;
- }
-
- if (chunk_is_newline(pc))
- {
- nas.NewLines(pc->nl_count);
- cas.NewLines(pc->nl_count);
- did_line = false;
- }
- else if ( !did_line
- && chunk_is_token(pc, CT_OC_COLON))
- {
- cas.Add(pc);
-
- chunk_t *tmp = chunk_get_prev(pc, scope_e::PREPROC);
- chunk_t *tmp2 = chunk_get_prev_ncnnl(tmp, scope_e::PREPROC);
-
- // Check for an un-labeled parameter
- if ( ( chunk_is_token(tmp, CT_WORD)
- || chunk_is_token(tmp, CT_TYPE)
- || chunk_is_token(tmp, CT_OC_MSG_DECL)
- || chunk_is_token(tmp, CT_OC_MSG_SPEC))
- && ( chunk_is_token(tmp2, CT_WORD)
- || chunk_is_token(tmp2, CT_TYPE)
- || chunk_is_token(tmp2, CT_PAREN_CLOSE)))
- {
- nas.Add(tmp);
- }
- did_line = true;
- }
- pc = chunk_get_next(pc, scope_e::PREPROC);
- }
- nas.End();
- cas.End();
- }
-} // align_oc_decl_colon
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_oc_msg_colons.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_oc_msg_colons.cpp
deleted file mode 100644
index fedec9a4..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_oc_msg_colons.cpp
+++ /dev/null
@@ -1,182 +0,0 @@
-/**
- * @file align_oc_msg_colons.cpp
- *
- * @author Guy Maurel
- * @license GPL v2+
- */
-
-#include "align_oc_msg_colons.h"
-
-#include "align_stack.h"
-#include "log_rules.h"
-
-constexpr static auto LCURRENT = LOCMSG;
-
-using namespace uncrustify;
-
-
-void align_oc_msg_colon(chunk_t *so)
-{
- LOG_FUNC_ENTRY();
-
- AlignStack nas; // for the parameter tag
-
- nas.Start(1);
- nas.Reset();
- log_rule_B("align_on_tabstop");
- nas.m_right_align = !options::align_on_tabstop();
-
- AlignStack cas; // for the colons
-
- log_rule_B("align_oc_msg_colon_span");
- size_t span = options::align_oc_msg_colon_span();
-
- cas.Start(span);
-
- size_t level = so->level;
- chunk_t *pc = chunk_get_next_ncnnl(so, scope_e::PREPROC);
-
- bool did_line = false;
- bool has_colon = false;
- size_t lcnt = 0; // line count with no colon for span
- bool first_line = true;
-
- while ( pc != nullptr
- && pc->level > level)
- {
- if (pc->level > (level + 1))
- {
- // do nothing
- }
- else if (chunk_is_newline(pc))
- {
- if (!has_colon)
- {
- ++lcnt;
- }
- did_line = false;
-
- log_rule_B("align_oc_msg_colon_xcode_like");
-
- if ( options::align_oc_msg_colon_xcode_like()
- && first_line
- && !has_colon)
- {
- span = 0;
- }
- has_colon = !has_colon;
- first_line = false;
- }
- else if ( !did_line
- && (lcnt < span + 1)
- && chunk_is_token(pc, CT_OC_COLON))
- {
- has_colon = true;
- cas.Add(pc);
- chunk_t *tmp = chunk_get_prev(pc);
-
- if ( tmp != nullptr
- && ( chunk_is_token(tmp, CT_OC_MSG_FUNC)
- || chunk_is_token(tmp, CT_OC_MSG_NAME)))
- {
- nas.Add(tmp);
- chunk_flags_set(tmp, PCF_DONT_INDENT);
- }
- did_line = true;
- }
- pc = chunk_get_next(pc, scope_e::PREPROC);
- }
- log_rule_B("align_oc_msg_colon_first");
- nas.m_skip_first = !options::align_oc_msg_colon_first();
- cas.m_skip_first = !options::align_oc_msg_colon_first();
-
- // find the longest args that isn't the first one
- size_t first_len = 0;
- size_t mlen = 0;
- chunk_t *longest = nullptr;
-
- size_t len = nas.m_aligned.Len();
-
- for (size_t idx = 0; idx < len; idx++)
- {
- chunk_t *tmp = nas.m_aligned.GetChunk(idx);
-
- if (tmp != nullptr)
- {
- size_t tlen = tmp->str.size();
-
- if (tlen > mlen)
- {
- mlen = tlen;
-
- if (idx != 0)
- {
- longest = tmp;
- }
- }
-
- if (idx == 0)
- {
- first_len = tlen + 1;
- }
- }
- }
-
- // add spaces before the longest arg
- log_rule_B("indent_oc_msg_colon");
- len = options::indent_oc_msg_colon();
- size_t len_diff = mlen - first_len;
-
- log_rule_B("indent_columns");
- size_t indent_size = options::indent_columns();
-
- // Align with first colon if possible by removing spaces
- log_rule_B("indent_oc_msg_prioritize_first_colon");
-
- if ( longest != nullptr
- && options::indent_oc_msg_prioritize_first_colon()
- && len_diff > 0
- && ( (longest->column >= len_diff)
- && (longest->column - len_diff) > (longest->brace_level * indent_size)))
- {
- longest->column -= len_diff;
- }
- else if ( longest != nullptr
- && len > 0)
- {
- chunk_t chunk;
-
- set_chunk_type(&chunk, CT_SPACE);
- set_chunk_parent(&chunk, CT_NONE);
- chunk.orig_line = longest->orig_line;
- chunk.orig_col = longest->orig_col;
- chunk.level = longest->level;
- chunk.brace_level = longest->brace_level;
- chunk.flags = longest->flags & PCF_COPY_FLAGS;
-
- // start at one since we already indent for the '['
- for (size_t idx = 1; idx < len; idx++)
- {
- chunk.str.append(' ');
- }
-
- chunk_add_before(&chunk, longest);
- }
- nas.End();
- cas.End();
-} // align_oc_msg_colon
-
-
-void align_oc_msg_colons(void)
-{
- LOG_FUNC_ENTRY();
-
- for (chunk_t *pc = chunk_get_head(); pc != nullptr; pc = chunk_get_next(pc))
- {
- if ( chunk_is_token(pc, CT_SQUARE_OPEN)
- && get_chunk_parent_type(pc) == CT_OC_MSG)
- {
- align_oc_msg_colon(pc);
- }
- }
-} // align_oc_msg_colons
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_oc_msg_spec.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_oc_msg_spec.cpp
deleted file mode 100644
index f57fa881..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_oc_msg_spec.cpp
+++ /dev/null
@@ -1,37 +0,0 @@
-/**
- * @file align_oc_msg_spec.cpp
- *
- * @author Guy Maurel
- * split from align.cpp
- * @author Ben Gardner
- * @license GPL v2+
- */
-
-#include "align_oc_msg_spec.h"
-
-#include "align_assign.h"
-#include "align_stack.h"
-
-
-void align_oc_msg_spec(size_t span)
-{
- LOG_FUNC_ENTRY();
-
- AlignStack as;
-
- as.Start(span, 0);
-
- for (chunk_t *pc = chunk_get_head(); pc != nullptr; pc = chunk_get_next(pc))
- {
- if (chunk_is_newline(pc))
- {
- as.NewLines(pc->nl_count);
- }
- else if (chunk_is_token(pc, CT_OC_MSG_SPEC))
- {
- as.Add(pc);
- }
- }
-
- as.End();
-} // void align_oc_msg_spec
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_preprocessor.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_preprocessor.cpp
deleted file mode 100644
index 8d54188b..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_preprocessor.cpp
+++ /dev/null
@@ -1,109 +0,0 @@
-/**
- * @file align_preprocessor.cpp
- *
- * @author Guy Maurel
- * split from align.cpp
- * @author Ben Gardner
- * @license GPL v2+
- */
-
-#include "align_preprocessor.h"
-
-#include "align_stack.h"
-#include "log_rules.h"
-
-constexpr static auto LCURRENT = LALPP;
-
-using namespace uncrustify;
-
-
-void align_preprocessor(void)
-{
- LOG_FUNC_ENTRY();
-
- AlignStack as; // value macros
-
- log_rule_B("align_pp_define_span");
- as.Start(options::align_pp_define_span());
- log_rule_B("align_pp_define_gap");
- as.m_gap = options::align_pp_define_gap();
- AlignStack *cur_as = &as;
-
- AlignStack asf; // function macros
-
- log_rule_B("align_pp_define_span");
- asf.Start(options::align_pp_define_span());
- log_rule_B("align_pp_define_gap");
- asf.m_gap = options::align_pp_define_gap();
-
- chunk_t *pc = chunk_get_head();
-
- while (pc != nullptr)
- {
- // Note: not counting back-slash newline combos
- if (chunk_is_token(pc, CT_NEWLINE)) // mind the gap: chunk_is_newline(pc) is NOT the same!
- {
- as.NewLines(pc->nl_count);
- asf.NewLines(pc->nl_count);
- }
-
- // If we aren't on a 'define', then skip to the next non-comment
- if (chunk_is_not_token(pc, CT_PP_DEFINE))
- {
- pc = chunk_get_next_nc(pc);
- continue;
- }
- // step past the 'define'
- pc = chunk_get_next_nc(pc);
-
- if (pc == nullptr)
- {
- // coveralls will complain here. There are no example for that.
- // see https://en.wikipedia.org/wiki/Robustness_principle
- break;
- }
- LOG_FMT(LALPP, "%s(%d): define (%s) on line %zu col %zu\n",
- __func__, __LINE__, pc->text(), pc->orig_line, pc->orig_col);
-
- cur_as = &as;
-
- if (chunk_is_token(pc, CT_MACRO_FUNC))
- {
- log_rule_B("align_pp_define_together");
-
- if (!options::align_pp_define_together())
- {
- cur_as = &asf;
- }
- // Skip to the close parenthesis
- pc = chunk_get_next_nc(pc); // point to open (
- pc = chunk_get_next_type(pc, CT_FPAREN_CLOSE, pc->level);
-
- LOG_FMT(LALPP, "%s(%d): jumped to (%s) on line %zu col %zu\n",
- __func__, __LINE__, pc->text(), pc->orig_line, pc->orig_col);
- }
- // step to the value past the close parenthesis or the macro name
- pc = chunk_get_next(pc);
-
- if (pc == nullptr)
- {
- // coveralls will complain here. There are no example for that.
- // see https://en.wikipedia.org/wiki/Robustness_principle
- break;
- }
-
- /*
- * don't align anything if the first line ends with a newline before
- * a value is given
- */
- if (!chunk_is_newline(pc))
- {
- LOG_FMT(LALPP, "%s(%d): align on '%s', line %zu col %zu\n",
- __func__, __LINE__, pc->text(), pc->orig_line, pc->orig_col);
-
- cur_as->Add(pc);
- }
- }
- as.End();
- asf.End();
-} // align_preprocessor
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_same_func_call_params.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_same_func_call_params.cpp
deleted file mode 100644
index 72e32337..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_same_func_call_params.cpp
+++ /dev/null
@@ -1,283 +0,0 @@
-/**
- * @file align_same_func_call_params.cpp
- *
- * @author Guy Maurel
- * split from align.cpp
- * @author Ben Gardner
- * @license GPL v2+
- */
-
-#include "align_same_func_call_params.h"
-
-#include "align_stack.h"
-#include "log_rules.h"
-
-constexpr static auto LCURRENT = LASFCP;
-
-using namespace uncrustify;
-
-
-void align_same_func_call_params(void)
-{
- LOG_FUNC_ENTRY();
-
- chunk_t *pc;
- chunk_t *align_root = nullptr;
- chunk_t *align_cur = nullptr;
- size_t align_len = 0;
- size_t span = 3;
- size_t thresh;
- chunk_t *align_fcn;
- unc_text align_fcn_name;
- unc_text align_root_name;
- deque<chunk_t *> chunks;
- deque<AlignStack> array_of_AlignStack;
- AlignStack fcn_as;
- const char *add_str;
-
- // Default span is 3 if align_same_func_call_params is true
- log_rule_B("align_same_func_call_params_span");
-
- if (options::align_same_func_call_params_span() > 0)
- {
- span = options::align_same_func_call_params_span();
- }
- log_rule_B("align_same_func_call_params_thresh");
- thresh = options::align_same_func_call_params_thresh();
-
- fcn_as.Start(span, thresh);
- LOG_FMT(LAS, "%s(%d): (3): span is %zu, thresh is %zu\n",
- __func__, __LINE__, span, thresh);
-
- for (pc = chunk_get_head(); pc != nullptr; pc = chunk_get_next(pc))
- {
- if (chunk_is_newline(pc))
- {
- LOG_FMT(LAS, "%s(%d): orig_line is %zu, <Newline>\n", __func__, __LINE__, pc->orig_line);
- }
- else
- {
- LOG_FMT(LAS, "%s(%d): orig_line is %zu, orig_col is %zu, pc->text() '%s'\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text());
- }
-
- if (chunk_is_not_token(pc, CT_FUNC_CALL))
- {
- if (chunk_is_newline(pc))
- {
- for (auto &as_v : array_of_AlignStack)
- {
- as_v.NewLines(pc->nl_count);
- }
-
- fcn_as.NewLines(pc->nl_count);
- }
- else
- {
- // if we drop below the brace level that started it, we are done
- if ( align_root != nullptr
- && align_root->brace_level > pc->brace_level)
- {
- LOG_FMT(LASFCP, " ++ (drop) Ended with %zu fcns\n", align_len);
-
- // Flush it all!
- fcn_as.Flush();
-
- for (auto &as_v : array_of_AlignStack)
- {
- as_v.Flush();
- }
-
- align_root = nullptr;
- }
- }
- continue;
- }
- // Only align function calls that are right after a newline
- chunk_t *prev = chunk_get_prev(pc);
-
- while ( chunk_is_token(prev, CT_MEMBER)
- || chunk_is_token(prev, CT_DC_MEMBER))
- {
- chunk_t *tprev = chunk_get_prev(prev);
-
- if (chunk_is_not_token(tprev, CT_TYPE))
- {
- prev = tprev;
- break;
- }
- prev = chunk_get_prev(tprev);
- }
-
- if (!chunk_is_newline(prev))
- {
- continue;
- }
- prev = chunk_get_next(prev);
- align_fcn = prev;
- align_fcn_name.clear();
- LOG_FMT(LASFCP, "%s(%d):\n", __func__, __LINE__);
-
- while (prev != pc)
- {
- align_fcn_name += prev->str;
- prev = chunk_get_next(prev);
- }
- align_fcn_name += pc->str;
- LOG_FMT(LASFCP, "%s(%d): Func Call found at orig_line is %zu, orig_col is %zu, c_str() '%s'\n",
- __func__, __LINE__, align_fcn->orig_line,
- align_fcn->orig_col,
- align_fcn_name.c_str());
-
- add_str = nullptr;
-
- if (align_root != nullptr)
- {
- // Issue # 1395
- // can only align functions on the same brace level
- // and on the same level
- LOG_FMT(LASFCP, "%s(%d):align_root is not nullptr\n", __func__, __LINE__);
-
- if ( align_root->brace_level == pc->brace_level
- && align_root->level == pc->level
- && align_fcn_name.equals(align_root_name))
- {
- fcn_as.Add(pc);
- align_cur->align.next = pc;
- align_cur = pc;
- align_len++;
- add_str = " Add";
- }
- else
- {
- LOG_FMT(LASFCP, " ++ Ended with %zu fcns\n", align_len);
-
- // Flush it all!
- fcn_as.Flush();
-
- for (auto &as_v : array_of_AlignStack)
- {
- as_v.Flush();
- }
-
- align_root = nullptr;
- }
- }
- LOG_FMT(LASFCP, "%s(%d):\n", __func__, __LINE__);
-
- if (align_root == nullptr)
- {
- LOG_FMT(LASFCP, "%s(%d):align_root is nullptr, Add pc '%s'\n", __func__, __LINE__, pc->text());
- fcn_as.Add(pc);
- align_root = align_fcn;
- align_root_name = align_fcn_name;
- align_cur = pc;
- align_len = 1;
- add_str = "Start";
- }
- LOG_FMT(LASFCP, "%s(%d):\n", __func__, __LINE__);
-
- if (add_str != nullptr)
- {
- LOG_FMT(LASFCP, "%s(%d): %s with function '%s', on orig_line %zu, ",
- __func__, __LINE__, add_str, align_fcn_name.c_str(), pc->orig_line);
- align_params(pc, chunks);
- LOG_FMT(LASFCP, "%zu items:", chunks.size());
-
- for (size_t idx = 0; idx < chunks.size(); idx++)
- {
- // show the chunk(s)
- LOG_FMT(LASFCP, " [%s]", chunks[idx]->text());
-
- if (idx < chunks.size() - 1)
- {
- LOG_FMT(LASFCP, ",");
- }
- }
-
- LOG_FMT(LASFCP, "\n");
-
- for (size_t idx = 0; idx < chunks.size(); idx++)
- {
- LOG_FMT(LASFCP, "%s(%d): chunks[%zu] is [%s]\n", __func__, __LINE__, idx, chunks[idx]->text());
- // Issue #2368
-
- if (array_of_AlignStack.size() > idx)
- {
- // Issue #2368
- array_of_AlignStack[idx].m_right_align = false;
- }
-
- if (idx >= array_of_AlignStack.size())
- {
- LOG_FMT(LASFCP, "%s(%d): resize with %zu\n", __func__, __LINE__, idx + 1);
- array_of_AlignStack.resize(idx + 1);
- LOG_FMT(LASFCP, "%s(%d): Start for the new\n", __func__, __LINE__);
- array_of_AlignStack[idx].Start(span, thresh);
-
- log_rule_B("align_number_right");
-
- if (!options::align_number_right())
- {
- if ( chunk_is_token(chunks[idx], CT_NUMBER_FP)
- || chunk_is_token(chunks[idx], CT_NUMBER)
- || chunk_is_token(chunks[idx], CT_POS)
- || chunk_is_token(chunks[idx], CT_NEG))
- {
- log_rule_B("align_on_tabstop");
- array_of_AlignStack[idx].m_right_align = !options::align_on_tabstop();
- }
- }
- }
- LOG_FMT(LASFCP, "%s(%d): save the chunk %s\n", __func__, __LINE__, chunks[idx]->text());
- array_of_AlignStack[idx].Add(chunks[idx]);
- }
- }
- }
-
- if (align_len > 1)
- {
- LOG_FMT(LASFCP, " ++ Ended with %zu fcns\n", align_len);
- fcn_as.End();
-
- for (auto &as_v : array_of_AlignStack)
- {
- as_v.End();
- }
- }
-} // align_same_func_call_params
-
-
-void align_params(chunk_t *start, deque<chunk_t *> &chunks)
-{
- LOG_FUNC_ENTRY();
-
- chunks.clear();
-
- bool hit_comma = true;
- chunk_t *pc = chunk_get_next_type(start, CT_FPAREN_OPEN, start->level);
-
- while ((pc = chunk_get_next(pc)) != nullptr)
- {
- if ( chunk_is_newline(pc)
- || chunk_is_token(pc, CT_SEMICOLON)
- || ( chunk_is_token(pc, CT_FPAREN_CLOSE)
- && pc->level == start->level))
- {
- break;
- }
-
- if (pc->level == (start->level + 1))
- {
- if (hit_comma)
- {
- chunks.push_back(pc);
- hit_comma = false;
- }
- else if (chunk_is_token(pc, CT_COMMA))
- {
- hit_comma = true;
- }
- }
- }
-} // void align_params
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_same_func_call_params.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_same_func_call_params.h
deleted file mode 100644
index c7e122fc..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_same_func_call_params.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/**
- * @file align_same_func_call_params.h
- *
- * @author Guy Maurel
- * split from align.cpp
- * @author Ben Gardner
- * @license GPL v2+
- */
-
-#ifndef ALIGN_SAME_FUNC_CALL_PARAMS_H_INCLUDED
-#define ALIGN_SAME_FUNC_CALL_PARAMS_H_INCLUDED
-
-#include "ChunkStack.h"
-#include <deque>
-
-using namespace std;
-
-void align_params(chunk_t *start, deque<chunk_t *> &chunks);
-
-void align_same_func_call_params(void);
-
-#endif /* ALIGN_SAME_FUNC_CALL_PARAMS_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_stack.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_stack.cpp
deleted file mode 100644
index c8e15bc5..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_stack.cpp
+++ /dev/null
@@ -1,659 +0,0 @@
-/**
- * @file align_stack.cpp
- * Manages an align stack, which is just a pair of chunk stacks.
- * There can be at most 1 item per line in the stack.
- * The seqnum is actually a line counter.
- *
- * @author Ben Gardner
- * @license GPL v2+
- */
-
-#include "align_stack.h"
-
-#include "align_tab_column.h"
-#include "indent.h"
-#include "space.h"
-#if defined WITH_STACKID
-#include "unc_tools.h" // to get stackID and get_A_Number()
-#endif
-
-
-constexpr static auto LCURRENT = LAS;
-
-using namespace uncrustify;
-
-using std::numeric_limits;
-
-
-void AlignStack::Start(size_t span, int thresh)
-{
-#if defined WITH_STACKID
- stackID = get_A_Number(); // for debugging purpose only
-#endif
- // produces much more log output. Use it only debugging purpose
- //WITH_STACKID_DEBUG;
-
- //LOG_FMT(LAS, "AlignStack::Start(%d):m_aligned.Reset()\n", __LINE__);
- m_aligned.Reset();
- //LOG_FMT(LAS, "AlignStack::Start(%d):m_skipped.Reset()\n", __LINE__);
- m_skipped.Reset();
-
- if (thresh > 0)
- {
- m_absolute_thresh = false;
- m_thresh = thresh;
- }
- else
- {
- m_absolute_thresh = true;
- m_thresh = -thresh;
- }
- m_span = span;
- m_min_col = numeric_limits<size_t>::max();
- m_max_col = 0;
- m_nl_seqnum = 0;
- m_seqnum = 0;
- m_gap = 0;
- m_right_align = false;
- m_star_style = SS_IGNORE;
- m_amp_style = SS_IGNORE;
-}
-
-
-void AlignStack::ReAddSkipped()
-{
- // produces much more log output. Use it only debugging purpose
- //WITH_STACKID_DEBUG;
-
- if (m_skipped.Empty())
- {
- return;
- }
- // Make a copy of the ChunkStack and clear m_skipped
- m_scratch.Set(m_skipped);
- //LOG_FMT(LAS, "AlignStack::ReAddSkipped(%d):m_skipped.Reset()\n", __LINE__);
- m_skipped.Reset();
-
- // Need to add them in order so that m_nl_seqnum is correct
- for (size_t idx = 0; idx < m_scratch.Len(); idx++)
- {
- const ChunkStack::Entry *ce = m_scratch.Get(idx);
- LOG_FMT(LAS, "AlignStack::ReAddSkipped [%zu] - ", ce->m_seqnum);
- Add(ce->m_pc, ce->m_seqnum);
- }
-
- NewLines(0); // Check to see if we need to flush right away
-}
-
-
-void AlignStack::Add(chunk_t *start, size_t seqnum)
-{
- // produces much more log output. Use it only debugging purpose
- //WITH_STACKID_DEBUG;
- LOG_FUNC_ENTRY();
-
- LOG_FMT(LAS, "AlignStack::%s(%d): Candidate is '%s': orig_line is %zu, column is %zu, type is %s, level is %zu\n",
- __func__, __LINE__, start->text(), start->orig_line, start->column, get_token_name(start->type), start->level);
- LOG_FMT(LAS, "AlignStack::%s(%d): seqnum is %zu\n", __func__, __LINE__, seqnum);
-
- // Assign a seqnum if needed
- if (seqnum == 0)
- {
- LOG_FMT(LAS, "AlignStack::%s(%d): m_seqnum is %zu\n", __func__, __LINE__, m_seqnum);
- seqnum = m_seqnum;
- LOG_FMT(LAS, "AlignStack::%s(%d): seqnum is %zu\n", __func__, __LINE__, seqnum);
- }
- m_last_added = 0;
-
- // Threshold check should begin after
- // tighten down the spacing between ref and start
-
- /*
- * SS_IGNORE: no special handling of '*' or '&', only 'foo' is aligned
- * void foo; // gap=5, 'foo' is aligned
- * char * foo; // gap=3, 'foo' is aligned
- * foomatic foo; // gap=1, 'foo' is aligned
- * The gap is the columns between 'foo' and the previous token.
- * [void - foo], ['*' - foo], etc
- *
- * SS_INCLUDE: - space between variable and '*' or '&' is eaten
- * void foo; // gap=5, 'foo' is aligned
- * char *foo; // gap=5, '*' is aligned
- * foomatic foo; // gap=1, 'foo' is aligned
- * The gap is the columns between the first '*' or '&' before foo
- * and the previous token. [void - foo], [char - '*'], etc
- *
- * SS_DANGLE: - space between variable and '*' or '&' is eaten
- * void foo; // gap=5
- * char *bar; // gap=5, as the '*' doesn't count
- * foomatic foo; // gap=1
- * The gap is the columns between 'foo' and the chunk before the first
- * '*' or '&'. [void - foo], [char - bar], etc
- *
- * If the gap < m_gap, then the column is bumped out by the difference.
- * So, if m_gap is 2, then the above would be:
- * SS_IGNORE:
- * void foo; // gap=6
- * char * foo; // gap=4
- * foomatic foo; // gap=2
- * SS_INCLUDE:
- * void foo; // gap=6
- * char *foo; // gap=6
- * foomatic foo; // gap=2
- * SS_DANGLE:
- * void foo; // gap=6
- * char *bar; // gap=6, as the '*' doesn't count
- * foomatic foo; // gap=2
- * Right aligned numbers:
- * #define A -1
- * #define B 631
- * #define C 3
- * Left aligned numbers:
- * #define A -1
- * #define B 631
- * #define C 3
- *
- * In the code below, pc is set to the item that is aligned.
- * In the above examples, that is 'foo', '*', '-', or 63.
- *
- * Ref is set to the last part of the type.
- * In the above examples, that is 'void', 'char', 'foomatic', 'A', or 'B'.
- *
- * The '*' and '&' can float between the two.
- *
- * If align_on_tabstop=true, then SS_DANGLE is changed to SS_INCLUDE.
- */
- log_rule_B("align_on_tabstop");
-
- if ( options::align_on_tabstop()
- && m_star_style == SS_DANGLE)
- {
- m_star_style = SS_INCLUDE;
- }
- LOG_FMT(LAS, "AlignStack::%s(%d): m_star_style is %s\n",
- __func__, __LINE__, get_StarStyle_name(m_star_style));
- // Find ref. Back up to the real item that is aligned.
- chunk_t *prev = start;
-
- while ( (prev = chunk_get_prev(prev)) != nullptr
- && ( chunk_is_ptr_operator(prev)
- || chunk_is_token(prev, CT_TPAREN_OPEN)))
- {
- // do nothing - we want prev when this exits
- }
-
- if (prev == nullptr)
- {
- return;
- }
- chunk_t *ref = prev;
-
- if (chunk_is_newline(ref))
- {
- ref = chunk_get_next(ref);
- }
- // Find the item that we are going to align.
- chunk_t *ali = start;
-
- if (m_star_style != SS_IGNORE)
- {
- // back up to the first '*' or '^' preceding the token
- chunk_t *tmp_prev = chunk_get_prev(ali);
-
- while ( chunk_is_star(tmp_prev)
- || chunk_is_msref(tmp_prev))
- {
- ali = tmp_prev;
- tmp_prev = chunk_get_prev(ali);
- }
-
- if (chunk_is_token(tmp_prev, CT_TPAREN_OPEN))
- {
- ali = tmp_prev;
- tmp_prev = chunk_get_prev(ali);
- // this is correct, even Coverity says:
- // CID 76021 (#1 of 1): Unused value (UNUSED_VALUE)returned_pointer: Assigning value from
- // chunk_get_prev(ali, nav_e::ALL) to prev here, but that stored value is overwritten before it can be used.
- }
- }
-
- if (m_amp_style != SS_IGNORE)
- {
- // back up to the first '&' preceding the token
- chunk_t *tmp_prev = chunk_get_prev(ali);
-
- while (chunk_is_addr(tmp_prev))
- {
- ali = tmp_prev;
- tmp_prev = chunk_get_prev(ali);
- }
- }
- log_rule_B("align_keep_extra_space");
-
- // Tighten down the spacing between ref and start
- if (!options::align_keep_extra_space())
- {
- size_t tmp_col = ref->column;
- chunk_t *tmp = ref;
- LOG_FMT(LAS, "AlignStack::%s(%d): tmp_col is %zu\n",
- __func__, __LINE__, tmp_col);
-
- while ( tmp != nullptr
- && tmp != start)
- {
- chunk_t *next = chunk_get_next(tmp);
-
- if (next != nullptr)
- {
- LOG_FMT(LAS, "AlignStack::%s(%d): next->orig_line is %zu, orig_col is %zu, text() '%s', level is %zu, type is %s\n",
- __func__, __LINE__, next->orig_line, next->orig_col, next->text(), next->level, get_token_name(next->type));
- tmp_col += space_col_align(tmp, next);
- LOG_FMT(LAS, "AlignStack::%s(%d): next->column is %zu, level is %zu, tmp_col is %zu\n",
- __func__, __LINE__, next->column, next->level, tmp_col);
-
- if (next->column != tmp_col)
- {
- LOG_FMT(LAS, "AlignStack::%s(%d): Call align_to_column\n", __func__, __LINE__);
- align_to_column(next, tmp_col);
- }
- }
- tmp = next;
- }
- }
-
- // Check threshold limits
- if ( m_max_col == 0
- || m_thresh == 0
- || ( ((start->column + m_gap) <= (m_thresh + (m_absolute_thresh ? m_min_col : m_max_col))) // don't use subtraction here to prevent underflow
- && ( (start->column + m_gap + m_thresh) >= m_max_col // change the expression to mind negative expression
- || start->column >= m_min_col)))
- {
- // we are adding it, so update the newline seqnum
- if (seqnum > m_nl_seqnum)
- {
- m_nl_seqnum = seqnum;
- }
- // Set the column adjust and gap
- size_t col_adj = 0; // Amount the column is shifted for 'dangle' mode
- size_t gap = 0;
-
- if (ref != ali)
- {
- gap = ali->column - (ref->column + ref->len());
- }
- chunk_t *tmp = ali;
-
- if (chunk_is_token(tmp, CT_TPAREN_OPEN))
- {
- tmp = chunk_get_next(tmp);
- }
-
- if ( ( chunk_is_star(tmp)
- && m_star_style == SS_DANGLE)
- || ( chunk_is_addr(tmp)
- && m_amp_style == SS_DANGLE)
- || ( chunk_is_nullable(tmp)
- && (m_star_style == SS_DANGLE))
- || ( chunk_is_msref(tmp)
- && m_star_style == SS_DANGLE)) // TODO: add m_msref_style
- {
- col_adj = start->column - ali->column;
- gap = start->column - (ref->column + ref->len());
- }
- // See if this pushes out the max_col
- const size_t endcol = ali->column + col_adj
- + (gap < m_gap ? m_gap - gap : 0);
-
- ali->align.col_adj = col_adj;
- ali->align.ref = ref;
- ali->align.start = start;
- m_aligned.Push_Back(ali, seqnum);
- m_last_added = 1;
-
- // Issue #2278
- if (chunk_is_token(ali, CT_PTR_TYPE))
- {
- LOG_FMT(LAS, "AlignStack::%s(%d): Add-[%s][%s]: ali->orig_line is %zu, column is %zu, type is %s, level is %zu\n",
- __func__, __LINE__, ali->text(), start->text(), ali->orig_line, ali->column, get_token_name(ali->type), ali->level);
- }
- else
- {
- LOG_FMT(LAS, "AlignStack::%s(%d): Add-[%s]: ali->orig_line is %zu, column is %zu, type is %s, level is %zu\n",
- __func__, __LINE__, ali->text(), ali->orig_line, ali->column, get_token_name(ali->type), ali->level);
- }
- LOG_FMT(LAS, "AlignStack::%s(%d): ali->align.col_adj is %d, ref '%s', endcol is %zu\n",
- __func__, __LINE__, ali->align.col_adj, ref->text(), endcol);
-
- if (m_min_col > endcol)
- {
- m_min_col = endcol;
- }
-
- if (endcol > m_max_col)
- {
- LOG_FMT(LAS, "AlignStack::%s(%d): Add-aligned: seqnum is %zu, m_nl_seqnum is %zu, m_seqnum is %zu\n",
- __func__, __LINE__, seqnum, m_nl_seqnum, m_seqnum);
- LOG_FMT(LAS, "AlignStack::%s(%d): ali->orig_line is %zu, ali->column is %zu, max_col old is %zu, new is %zu, m_min_col is %zu\n",
- __func__, __LINE__, ali->orig_line, ali->column, m_max_col, endcol, m_min_col);
- m_max_col = endcol;
-
- /*
- * If there were any entries that were skipped, re-add them as they
- * may now be within the threshold
- */
- if (!m_skipped.Empty())
- {
- ReAddSkipped();
- }
- }
- else
- {
- LOG_FMT(LAS, "AlignStack::%s(%d): Add-aligned: seqnum is %zu, m_nl_seqnum is %zu, m_seqnum is %zu\n",
- __func__, __LINE__, seqnum, m_nl_seqnum, m_seqnum);
- LOG_FMT(LAS, "AlignStack::%s(%d): ali->orig_line is %zu, ali->column is %zu, max_col old is %zu, new is %zu, m_min_col is %zu\n",
- __func__, __LINE__, ali->orig_line, ali->column, m_max_col, endcol, m_min_col);
- }
- }
- else
- {
- // The threshold check failed, so add it to the skipped list
- m_skipped.Push_Back(start, seqnum);
- m_last_added = 2;
-
- LOG_FMT(LAS, "AlignStack::Add-skipped [%zu/%zu/%zu]: line %zu, col %zu <= %zu + %zu\n",
- seqnum, m_nl_seqnum, m_seqnum,
- start->orig_line, start->column, m_max_col, m_thresh);
- }
- // produces much more log output. Use it only debugging purpose
- //WITH_STACKID_DEBUG;
-} // AlignStack::Add
-
-
-void AlignStack::NewLines(size_t cnt)
-{
- // produces much more log output. Use it only debugging purpose
- //WITH_STACKID_DEBUG;
-
- if (m_aligned.Empty())
- {
- //LOG_FMT(LAS, "AlignStack::Newlines(%d): nothing to do, is empty\n", __LINE__);
- return;
- }
- LOG_FMT(LAS, "AlignStack::Newlines(%d): cnt is %zu\n", __LINE__, cnt);
- m_seqnum += cnt;
- LOG_FMT(LAS, "AlignStack::Newlines(%d): m_seqnum is %zu, m_nl_seqnum is %zu, m_span is %zu\n",
- __LINE__, m_seqnum, m_nl_seqnum, m_span);
-
- if (m_seqnum > (m_nl_seqnum + m_span))
- {
- LOG_FMT(LAS, "AlignStack::Newlines(%d): cnt is %zu\n", __LINE__, cnt);
- Flush();
- }
-}
-
-
-void AlignStack::Flush()
-{
- // produces much more log output. Use it only debugging purpose
- //WITH_STACKID_DEBUG;
-
- LOG_FMT(LAS, "AlignStack::%s(%d): Len() is %zu\n",
- __func__, __LINE__, Len());
-
- if (Len() > 0)
- {
- LOG_FMT(LAS, " (min is %zu, max is %zu)\n",
- m_min_col, m_max_col);
- }
-
- if (Len() == 1)
- {
- // check if we have *one* typedef in the line
- chunk_t *pc = m_aligned.Get(0)->m_pc;
- chunk_t *temp = chunk_get_prev_type(pc, CT_TYPEDEF, pc->level);
-
- if (temp != nullptr)
- {
- if (pc->orig_line == temp->orig_line)
- {
- // reset the gap only for *this* stack
- m_gap = 1;
- }
- }
- }
- m_last_added = 0;
- m_max_col = 0;
-
- // produces much more log output. Use it only debugging purpose
- //WITH_STACKID_DEBUG;
- LOG_FMT(LAS, "AlignStack::%s(%d): Debug the stack, Len is %zu\n",
- __func__, __LINE__, Len());
-
- for (size_t idx = 0; idx < Len(); idx++)
- {
- chunk_t *pc = m_aligned.Get(idx)->m_pc;
- LOG_FMT(LAS, "AlignStack::%s(%d): idx is %zu, pc->text() is '%s', pc->align.col_adj is %d\n",
- __func__, __LINE__, idx, pc->text(), pc->align.col_adj);
- }
-
- // Recalculate the max_col - it may have shifted since the last Add()
- for (size_t idx = 0; idx < Len(); idx++)
- {
- chunk_t *pc = m_aligned.Get(idx)->m_pc;
-
- // Set the column adjust and gap
- size_t col_adj = 0;
- size_t gap = 0;
-
- if (pc != pc->align.ref)
- {
- gap = pc->column - (pc->align.ref->column + pc->align.ref->len());
- }
-
- if (m_star_style == SS_DANGLE)
- {
- chunk_t *tmp = (chunk_is_token(pc, CT_TPAREN_OPEN)) ? chunk_get_next(pc) : pc;
-
- if (chunk_is_ptr_operator(tmp))
- {
- col_adj = pc->align.start->column - pc->column;
- gap = pc->align.start->column - (pc->align.ref->column + pc->align.ref->len());
- }
- }
-
- if (m_right_align)
- {
- // Adjust the width for signed numbers
- if (pc->align.start != nullptr)
- {
- size_t start_len = pc->align.start->len();
-
- if (pc->align.start->type == CT_NEG)
- {
- chunk_t *next = chunk_get_next(pc->align.start);
-
- if (chunk_is_token(next, CT_NUMBER))
- {
- start_len += next->len();
- }
- }
- col_adj += start_len;
- }
- }
- pc->align.col_adj = col_adj;
-
- // See if this pushes out the max_col
- const size_t endcol = pc->column + col_adj
- + (gap < m_gap ? m_gap - gap : 0);
-
- if (endcol > m_max_col)
- {
- m_max_col = endcol;
- }
- }
-
- log_rule_B("align_on_tabstop");
-
- if ( options::align_on_tabstop()
- && Len() > 1)
- {
- m_max_col = align_tab_column(m_max_col);
- }
- LOG_FMT(LAS, "AlignStack::%s(%d): Len() is %zu\n",
- __func__, __LINE__, Len());
-
- const ChunkStack::Entry *ce = nullptr;
-
- for (size_t idx = 0; idx < Len(); idx++)
- {
- ce = m_aligned.Get(idx);
- LOG_FMT(LAS, "AlignStack::%s(%d): idx is %zu, ce->m_pc->text() is '%s', orig_line is %zu, orig_col is %zu, align.col_adj is %d\n",
- __func__, __LINE__, idx, ce->m_pc->text(), ce->m_pc->orig_line, ce->m_pc->orig_col, ce->m_pc->align.col_adj);
- }
-
- for (size_t idx = 0; idx < Len(); idx++)
- {
- ce = m_aligned.Get(idx);
- chunk_t *pc = ce->m_pc;
-
- const size_t tmp_col = m_max_col - pc->align.col_adj;
-
- if (idx == 0)
- {
- if ( m_skip_first
- && pc->column != tmp_col)
- {
- LOG_FMT(LAS, "AlignStack::%s(%d): orig_line is %zu, orig_col is %zu, dropping first item due to skip_first\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col);
- m_skip_first = false;
- m_aligned.Pop_Front();
- Flush();
- m_skip_first = true;
- return;
- }
- chunk_flags_set(pc, PCF_ALIGN_START);
-
- pc->align.right_align = m_right_align;
- pc->align.amp_style = m_amp_style;
- pc->align.star_style = m_star_style;
- }
- pc->align.gap = m_gap;
- pc->align.next = m_aligned.GetChunk(idx + 1);
-
- // Indent the token, taking col_adj into account
- LOG_FMT(LAS, "AlignStack::%s(%d): orig_line is %zu, orig_col is %zu, text() '%s', set to col %zu (adj is %d)\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(), tmp_col, pc->align.col_adj);
- align_to_column(pc, tmp_col);
- }
-
- size_t last_seqnum = 0;
-
- if (ce != nullptr)
- {
- last_seqnum = ce->m_seqnum;
- //LOG_FMT(LAS, "AlignStack::Flush(%d):m_aligned.Reset()\n", __LINE__);
- m_aligned.Reset();
- }
- m_min_col = numeric_limits<size_t>::max(); // use unrealistic high numbers
- m_max_col = 0; // as start value
-
- if (m_skipped.Empty())
- {
- // Nothing was skipped, sync the sequence numbers
- m_nl_seqnum = m_seqnum;
- }
- else
- {
- // Remove all items with seqnum < last_seqnum
- for (size_t idx = 0; idx < m_skipped.Len(); idx++)
- {
- if (m_skipped.Get(idx)->m_seqnum < last_seqnum)
- {
- m_skipped.Zap(idx);
- }
- }
-
- m_skipped.Collapse();
-
- ReAddSkipped(); // Add all items from the skipped list
- }
-} // AlignStack::Flush
-
-
-void AlignStack::Reset()
-{
- //WITH_STACKID_DEBUG;
- //LOG_FMT(LAS, "AlignStack::Reset(%d):m_aligned.Reset()\n", __LINE__);
- m_aligned.Reset();
- //LOG_FMT(LAS, "AlignStack::Reset(%d):m_skipped.Reset()\n", __LINE__);
- m_skipped.Reset();
-}
-
-
-void AlignStack::End()
-{
- //WITH_STACKID_DEBUG;
-
- if (!m_aligned.Empty())
- {
- //LOG_FMT(LAS, "AlignStack::End(%d):\n", __LINE__);
- Flush();
- }
- //LOG_FMT(LAS, "AlignStack::End(%d):m_aligned.Reset()\n", __LINE__);
- m_aligned.Reset();
- //LOG_FMT(LAS, "AlignStack::End(%d):m_skipped.Reset()\n", __LINE__);
- m_skipped.Reset();
-}
-
-
-size_t AlignStack::Len()
-{
- return(m_aligned.Len());
-}
-
-
-void AlignStack::Debug()
-{
- //WITH_STACKID_DEBUG;
-
- size_t length = Len();
-
- if (length > 0)
- {
- LOG_FMT(LAS, "AlignStack::%s(%d): Debug the stack, Len is %zu\n",
- __func__, __LINE__, Len());
-
- for (size_t idx = 0; idx < length; idx++)
- {
- chunk_t *pc = m_aligned.Get(idx)->m_pc;
-
- if (chunk_is_token(pc, CT_PTR_TYPE))
- {
- LOG_FMT(LAS, "AlignStack::%s(%d): idx is %zu, [%s][%s]: orig_line is %zu, orig_col is %zu, type is %s, level is %zu, brace_level is %zu\n",
- __func__, __LINE__, idx, pc->text(), pc->next->text(), pc->orig_line, pc->orig_col, get_token_name(pc->type), pc->level, pc->brace_level);
- }
- else
- {
- LOG_FMT(LAS, "AlignStack::%s(%d): idx is %zu, [%s]: orig_line is %zu, orig_col is %zu, type is %s, level is %zu, brace_level is %zu\n",
- __func__, __LINE__, idx, pc->text(), pc->orig_line, pc->orig_col, get_token_name(pc->type), pc->level, pc->brace_level);
- }
- }
- }
-}
-
-
-const char *AlignStack::get_StarStyle_name(StarStyle star_style)
-{
- switch (star_style)
- {
- case StarStyle::SS_IGNORE:
- return("SS_IGNORE");
-
- case StarStyle::SS_INCLUDE:
- return("SS_INCLUDE");
-
- case StarStyle::SS_DANGLE:
- return("SS_DANGLE");
- }
- return("?????");
-} // get_StarStyle_name
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_stack.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_stack.h
deleted file mode 100644
index ebd29dcc..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_stack.h
+++ /dev/null
@@ -1,163 +0,0 @@
-/**
- * @file align_stack.h
- * Manages a align stack, which is just a pair of chunk stacks with a few
- * fancy functions.
- *
- * @author Ben Gardner
- * @license GPL v2+
- */
-
-#ifndef ALIGN_STACK_H_INCLUDED
-#define ALIGN_STACK_H_INCLUDED
-
-#include "ChunkStack.h"
-
-#include <limits>
-
-class AlignStack
-{
-public:
- enum StarStyle
- {
- SS_IGNORE, //! don't look for prev stars
- SS_INCLUDE, //! include prev * before add
- SS_DANGLE //! include prev * after add
- };
-
- ChunkStack m_aligned; //! contains the token that is aligned
- ChunkStack m_skipped; //! contains the tokens sent to Add()
- size_t m_max_col;
- size_t m_min_col;
- size_t m_span;
- size_t m_thresh;
- size_t m_seqnum;
- size_t m_nl_seqnum;
- size_t m_gap;
- bool m_right_align;
- bool m_absolute_thresh;
- StarStyle m_star_style;
- StarStyle m_amp_style; //! do not include the first item if it causes it to be indented
- bool m_skip_first; //! do not include the first item if it causes it to be indented
-#define WITH_STACKID 1
-#if defined WITH_STACKID
- size_t stackID; // for debugging purpose only
-#endif
-
-
- AlignStack()
- : m_max_col(0)
- , m_min_col(0)
- , m_span(0)
- , m_thresh(0)
- , m_seqnum(0)
- , m_nl_seqnum(0)
- , m_gap(0)
- , m_right_align(false)
- , m_absolute_thresh(false)
- , m_star_style(SS_IGNORE)
- , m_amp_style(SS_IGNORE)
- , m_skip_first(false)
-#if defined WITH_STACKID
- , stackID(std::numeric_limits<std::size_t>::max()) // under linux 64 bits: 18446744073709551615
-#endif
- , m_last_added(0)
- {
- }
-
-
- AlignStack(const AlignStack &ref)
- : m_aligned(ref.m_aligned)
- , m_skipped(ref.m_skipped)
- , m_max_col(ref.m_max_col)
- , m_min_col(ref.m_min_col)
- , m_span(ref.m_span)
- , m_thresh(ref.m_thresh)
- , m_seqnum(ref.m_seqnum)
- , m_nl_seqnum(ref.m_nl_seqnum)
- , m_gap(ref.m_gap)
- , m_right_align(ref.m_right_align)
- , m_absolute_thresh(ref.m_absolute_thresh)
- , m_star_style(ref.m_star_style)
- , m_amp_style(ref.m_amp_style)
- , m_skip_first(ref.m_skip_first)
- , m_last_added(ref.m_last_added)
- {
- }
-
-
- ~AlignStack()
- {
- }
-
- /**
- * Resets the two ChunkLists and zeroes local vars.
- *
- * @param span The row span limit
- * @param threshold The column threshold
- */
- void Start(size_t span, int threshold = 0);
-
-
- /**
- * Adds an entry to the appropriate stack.
- *
- * @param pc the chunk
- * @param seqnum optional sequence number (0=assign one)
- */
- void Add(chunk_t *pc, size_t seqnum = 0);
-
-
- //! Adds some newline and calls Flush() if needed
- void NewLines(size_t cnt);
-
-
- /**
- * Aligns all the stuff in m_aligned.
- * Re-adds 'newer' items in m_skipped.
- */
- void Flush();
-
-
- //! Resets the stack, discarding anything that was previously added
- void Reset();
-
-
- //! Aligns everything else and resets the lists.
- void End();
-
-
- //! the size of the lists.
- size_t Len();
-
-
- //! for debuging purpose only
- void Debug();
-
-
- const char *get_StarStyle_name(StarStyle star_style);
-
-protected:
- size_t m_last_added; //! 0=none, 1=aligned, 2=skipped
- ChunkStack m_scratch; //! used in ReAddSkipped()
-
- //! Calls Add on all the skipped items
- void ReAddSkipped();
-};
-
-#if defined WITH_STACKID
-#define WITH_STACKID_DEBUG \
- if (stackID == std::numeric_limits<std::size_t>::max()) \
- { \
- fprintf(stderr, "AlignStack::%s(%d): the stack is not ready, Start is missed\n", __func__, __LINE__); \
- log_flush(true); \
- exit(EX_SOFTWARE); \
- } \
- else \
- { \
- LOG_FMT(LAS, "AlignStack::%s(%d): stackID is %zu\n", __func__, __LINE__, stackID); \
- }
-#else
-#define WITH_STACKID_DEBUG ;
-#endif
-
-#endif /* ALIGN_STACK_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_struct_initializers.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_struct_initializers.cpp
deleted file mode 100644
index 95b09da0..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_struct_initializers.cpp
+++ /dev/null
@@ -1,34 +0,0 @@
-/**
- * @file align_struct_initializers.cpp
- *
- * @author Guy Maurel
- * split from align.cpp
- * @author Ben Gardner
- * @license GPL v2+
- */
-
-#include "align_struct_initializers.h"
-
-#include "align_init_brace.h"
-#include "chunk_list.h"
-
-
-void align_struct_initializers(void)
-{
- LOG_FUNC_ENTRY();
- chunk_t *pc = chunk_get_head();
-
- while (pc != nullptr)
- {
- chunk_t *prev = chunk_get_prev_ncnnl(pc);
-
- if ( chunk_is_token(prev, CT_ASSIGN)
- && ( chunk_is_token(pc, CT_BRACE_OPEN)
- || ( language_is_set(LANG_D)
- && chunk_is_token(pc, CT_SQUARE_OPEN))))
- {
- align_init_brace(pc);
- }
- pc = chunk_get_next_type(pc, CT_BRACE_OPEN, -1);
- }
-} // align_struct_initializers
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_tools.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_tools.cpp
deleted file mode 100644
index bd067be5..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_tools.cpp
+++ /dev/null
@@ -1,173 +0,0 @@
-/**
- * @file align_tools.cpp
- *
- * @author Guy Maurel
- * split from align.cpp
- * @author Ben Gardner
- * @license GPL v2+
- */
-
-#include "align_tools.h"
-
-#include "space.h"
-#include "uncrustify.h"
-
-
-chunk_t *skip_c99_array(chunk_t *sq_open)
-{
- if (chunk_is_token(sq_open, CT_SQUARE_OPEN))
- {
- chunk_t *tmp = chunk_get_next_nc(chunk_skip_to_match(sq_open));
-
- if (chunk_is_token(tmp, CT_ASSIGN))
- {
- return(chunk_get_next_nc(tmp));
- }
- }
- return(nullptr);
-} // skip_c99_array
-
-
-chunk_t *scan_ib_line(chunk_t *start, bool first_pass)
-{
- UNUSED(first_pass);
- LOG_FUNC_ENTRY();
- chunk_t *prev_match = nullptr;
- size_t idx = 0;
-
- // Skip past C99 "[xx] =" stuff
- chunk_t *tmp = skip_c99_array(start);
-
- if (tmp != nullptr)
- {
- set_chunk_parent(start, CT_TSQUARE);
- start = tmp;
- cpd.al_c99_array = true;
- }
- chunk_t *pc = start;
-
- if (pc != nullptr)
- {
- LOG_FMT(LSIB, "%s(%d): start: orig_line is %zu, orig_col is %zu, column is %zu, type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->column, get_token_name(pc->type));
- }
-
- while ( pc != nullptr
- && !chunk_is_newline(pc)
- && pc->level >= start->level)
- {
- //LOG_FMT(LSIB, "%s: '%s' col %d/%d line %zu\n", __func__,
- // pc->text(), pc->column, pc->orig_col, pc->orig_line);
-
- chunk_t *next = chunk_get_next(pc);
-
- if ( next == nullptr
- || chunk_is_comment(next))
- {
- // do nothing
- }
- else if ( chunk_is_token(pc, CT_ASSIGN)
- || chunk_is_token(pc, CT_BRACE_OPEN)
- || chunk_is_token(pc, CT_BRACE_CLOSE)
- || chunk_is_token(pc, CT_COMMA))
- {
- size_t token_width = space_col_align(pc, next);
-
- // TODO: need to handle missing structure defs? ie NULL vs { ... } ??
-
- // Is this a new entry?
- if (idx >= cpd.al_cnt)
- {
- if (idx == 0)
- {
- LOG_FMT(LSIB, "%s(%d): Prepare the 'idx's\n", __func__, __LINE__);
- }
- LOG_FMT(LSIB, "%s(%d): New idx is %2.1zu, pc->column is %2.1zu, text() '%s', token_width is %zu, type is %s\n",
- __func__, __LINE__, idx, pc->column, pc->text(), token_width, get_token_name(pc->type));
- cpd.al[cpd.al_cnt].type = pc->type;
- cpd.al[cpd.al_cnt].col = pc->column;
- cpd.al[cpd.al_cnt].len = token_width;
- cpd.al_cnt++;
-
- if (cpd.al_cnt == uncrustify::limits::AL_SIZE)
- {
- fprintf(stderr, "Number of 'entry' to be aligned is too big for the current value %d,\n",
- uncrustify::limits::AL_SIZE);
- fprintf(stderr, "at line %zu, column %zu.\n",
- pc->orig_line, pc->orig_col);
- fprintf(stderr, "Please make a report.\n");
- log_flush(true);
- exit(EX_SOFTWARE);
- }
- idx++;
- }
- else
- {
- // expect to match stuff
- if (cpd.al[idx].type == pc->type)
- {
- LOG_FMT(LSIB, "%s(%d): Match? idx is %2.1zu, orig_line is %2.1zu, column is %2.1zu, token_width is %zu, type is %s\n",
- __func__, __LINE__, idx, pc->orig_line, pc->column, token_width, get_token_name(pc->type));
-
- // Shift out based on column
- if (prev_match == nullptr)
- {
- if (pc->column > cpd.al[idx].col)
- {
- LOG_FMT(LSIB, "%s(%d): [ pc->column (%zu) > cpd.al[%zu].col(%zu) ] \n",
- __func__, __LINE__, pc->column, idx, cpd.al[idx].col);
-
- ib_shift_out(idx, pc->column - cpd.al[idx].col);
- cpd.al[idx].col = pc->column;
- }
- }
- else if (idx > 0)
- {
- LOG_FMT(LSIB, "%s(%d): prev_match '%s', prev_match->orig_line is %zu, prev_match->orig_col is %zu\n",
- __func__, __LINE__, prev_match->text(), prev_match->orig_line, prev_match->orig_col);
- int min_col_diff = pc->column - prev_match->column;
- int cur_col_diff = cpd.al[idx].col - cpd.al[idx - 1].col;
-
- if (cur_col_diff < min_col_diff)
- {
- LOG_FMT(LSIB, "%s(%d): pc->orig_line is %zu\n",
- __func__, __LINE__, pc->orig_line);
- ib_shift_out(idx, min_col_diff - cur_col_diff);
- }
- }
- LOG_FMT(LSIB, "%s(%d): at ende of the loop: now is col %zu, len is %zu\n",
- __func__, __LINE__, cpd.al[idx].col, cpd.al[idx].len);
- idx++;
- }
- }
- prev_match = pc;
- }
- pc = chunk_get_next_nc(pc);
- }
- return(pc);
-} // scan_ib_line
-
-
-void ib_shift_out(size_t idx, size_t num)
-{
- while (idx < cpd.al_cnt)
- {
- cpd.al[idx].col += num;
- idx++;
- }
-} // ib_shift_out
-
-
-chunk_t *step_back_over_member(chunk_t *pc)
-{
- chunk_t *tmp;
-
- // Skip over any class stuff: bool CFoo::bar()
- while ( ((tmp = chunk_get_prev_ncnnl(pc)) != nullptr)
- && chunk_is_token(tmp, CT_DC_MEMBER))
- {
- // TODO: verify that we are pointing at something sane?
- pc = chunk_get_prev_ncnnl(tmp);
- }
- return(pc);
-} // step_back_over_member
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_tools.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_tools.h
deleted file mode 100644
index b22c5f3f..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_tools.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/**
- * @file align_tools.h
- *
- * @author Guy Maurel
- * split from align.cpp
- * @author Ben Gardner
- * @license GPL v2+
- */
-
-#ifndef ALIGN_TOOLS_H_INCLUDED
-#define ALIGN_TOOLS_H_INCLUDED
-
-#include "chunk_list.h"
-#include "uncrustify_types.h"
-
-
-/**
- * @brief return the chunk the follows after a C array
- *
- * The provided chunk is considered an array if it is an opening square
- * (CT_SQUARE_OPEN) and the matching close is followed by an equal sign '='
- *
- * Example: array[25] = 12;
- * /|\ /|\
- * | |
- * provided chunk has to point to [ |
- * returned chunk points to 12
- *
- * @param chunk chunk to operate on
- *
- * @return the chunk after the '=' if the check succeeds
- * @return nullptr in all other cases
- */
-chunk_t *skip_c99_array(chunk_t *sq_open);
-
-/**
- * Scans a line for stuff to align on.
- *
- * We trigger on BRACE_OPEN, FPAREN_OPEN, ASSIGN, and COMMA.
- * We want to align the NEXT item.
- */
-chunk_t *scan_ib_line(chunk_t *start, bool first_pass);
-
-void ib_shift_out(size_t idx, size_t num);
-
-chunk_t *step_back_over_member(chunk_t *pc);
-
-#endif /* ALIGN_TOOLS_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_trailing_comments.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_trailing_comments.cpp
deleted file mode 100644
index 2c94866b..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_trailing_comments.cpp
+++ /dev/null
@@ -1,236 +0,0 @@
-/**
- * @file align_trailing_comments.cpp
- *
- * @author Guy Maurel
- * split from align.cpp
- * @author Ben Gardner
- * @license GPL v2+
- */
-
-#include "align_trailing_comments.h"
-
-#include "align_add.h"
-#include "align_tab_column.h"
-#include "indent.h"
-#include "log_rules.h"
-
-constexpr static auto LCURRENT = LALTC;
-
-using namespace uncrustify;
-
-
-void align_stack(ChunkStack &cs, size_t col, bool align_single, log_sev_t sev)
-{
- LOG_FUNC_ENTRY();
-
- log_rule_B("align_on_tabstop");
-
- if (options::align_on_tabstop())
- {
- col = align_tab_column(col);
- }
-
- if ( (cs.Len() > 1)
- || ( align_single
- && (cs.Len() == 1)))
- {
- LOG_FMT(sev, "%s(%d): max_col=%zu\n", __func__, __LINE__, col);
- chunk_t *pc;
-
- while ((pc = cs.Pop_Back()) != nullptr)
- {
- align_to_column(pc, col);
- chunk_flags_set(pc, PCF_WAS_ALIGNED);
-
- LOG_FMT(sev, "%s(%d): indented [%s] on line %zu to %zu\n",
- __func__, __LINE__, pc->text(), pc->orig_line, pc->column);
- }
- }
- cs.Reset();
-} // align_stack
-
-
-chunk_t *align_trailing_comments(chunk_t *start)
-{
- LOG_FUNC_ENTRY();
- size_t min_col = 0;
- size_t min_orig = 0;
- chunk_t *pc = start;
- const size_t lvl = start->brace_level;
- size_t nl_count = 0;
- ChunkStack cs;
- size_t col;
-
- log_rule_B("align_right_cmt_at_col");
- size_t intended_col = options::align_right_cmt_at_col();
-
- log_rule_B("align_right_cmt_same_level");
- const bool same_level = options::align_right_cmt_same_level();
- comment_align_e cmt_type_cur;
- comment_align_e cmt_type_start = get_comment_align_type(pc);
-
- LOG_FMT(LALADD, "%s(%d): start on line=%zu\n",
- __func__, __LINE__, pc->orig_line);
-
- // Find the max column
- log_rule_B("align_right_cmt_span");
-
- while ( pc != nullptr
- && (nl_count < options::align_right_cmt_span()))
- {
- if ( pc->flags.test(PCF_RIGHT_COMMENT)
- && pc->column > 1)
- {
- if ( same_level
- && pc->brace_level != lvl)
- {
- pc = chunk_get_prev(pc);
- break;
- }
- cmt_type_cur = get_comment_align_type(pc);
-
- if (cmt_type_cur == cmt_type_start)
- {
- LOG_FMT(LALADD, "%s(%d): line=%zu min_col=%zu pc->col=%zu pc->len=%zu %s\n",
- __func__, __LINE__, pc->orig_line, min_col, pc->column, pc->len(),
- get_token_name(pc->type));
-
- if ( min_orig == 0
- || min_orig > pc->column)
- {
- min_orig = pc->column;
- }
- align_add(cs, pc, min_col); // (intended_col < col));
- nl_count = 0;
- }
- }
-
- if (chunk_is_newline(pc))
- {
- nl_count += pc->nl_count;
- }
- pc = chunk_get_next(pc);
- }
- // Start with the minimum original column
- col = min_orig;
-
- // fall back to the intended column
- if ( intended_col > 0
- && col > intended_col)
- {
- col = intended_col;
- }
-
- // if less than allowed, bump it out
- if (col < min_col)
- {
- col = min_col;
- }
-
- // bump out to the intended column
- if (col < intended_col)
- {
- col = intended_col;
- }
- LOG_FMT(LALADD, "%s(%d): -- min_orig=%zu intended_col=%zu min_allowed=%zu ==> col=%zu\n",
- __func__, __LINE__, min_orig, intended_col, min_col, col);
-
- if ( cpd.frag_cols > 0
- && cpd.frag_cols <= col)
- {
- col -= cpd.frag_cols;
- }
- align_stack(cs, col, (intended_col != 0), LALTC);
-
- return(chunk_get_next(pc));
-} // align_trailing_comments
-
-
-comment_align_e get_comment_align_type(chunk_t *cmt)
-{
- chunk_t *prev;
- comment_align_e cmt_type = comment_align_e::REGULAR;
-
- log_rule_B("align_right_cmt_mix");
-
- if ( !options::align_right_cmt_mix()
- && ((prev = chunk_get_prev(cmt)) != nullptr))
- {
- if ( chunk_is_token(prev, CT_PP_ENDIF)
- || chunk_is_token(prev, CT_PP_ELSE)
- || chunk_is_token(prev, CT_ELSE)
- || chunk_is_token(prev, CT_BRACE_CLOSE))
- {
- // TODO: make the magic 3 configurable
- if ((cmt->column - (prev->column + prev->len())) < 3)
- {
- cmt_type = (chunk_is_token(prev, CT_PP_ENDIF)) ? comment_align_e::ENDIF : comment_align_e::BRACE;
- }
- }
- }
- return(cmt_type);
-} // get_comment_align_type
-
-
-void align_right_comments(void)
-{
- LOG_FUNC_ENTRY();
-
- for (chunk_t *pc = chunk_get_head(); pc != nullptr; pc = chunk_get_next(pc))
- {
- if ( chunk_is_token(pc, CT_COMMENT)
- || chunk_is_token(pc, CT_COMMENT_CPP)
- || chunk_is_token(pc, CT_COMMENT_MULTI))
- {
- if (get_chunk_parent_type(pc) == CT_COMMENT_END)
- {
- chunk_t *prev = chunk_get_prev(pc);
-
- log_rule_B("align_right_cmt_gap");
-
- if (pc->orig_col < prev->orig_col_end + options::align_right_cmt_gap())
- {
- LOG_FMT(LALTC, "NOT changing END comment on line %zu (%zu <= %zu + %u)\n",
- pc->orig_line, pc->orig_col, prev->orig_col_end,
- options::align_right_cmt_gap());
- }
- else
- {
- LOG_FMT(LALTC, "Changing END comment on line %zu into a RIGHT-comment\n",
- pc->orig_line);
- chunk_flags_set(pc, PCF_RIGHT_COMMENT);
- }
- }
-
- // Change certain WHOLE comments into RIGHT-alignable comments
- if (get_chunk_parent_type(pc) == CT_COMMENT_WHOLE)
- {
- log_rule_B("input_tab_size");
- size_t max_col = pc->column_indent + options::input_tab_size();
-
- // If the comment is further right than the brace level...
- if (pc->column >= max_col)
- {
- LOG_FMT(LALTC, "Changing WHOLE comment on line %zu into a RIGHT-comment (col=%zu col_ind=%zu max_col=%zu)\n",
- pc->orig_line, pc->column, pc->column_indent, max_col);
-
- chunk_flags_set(pc, PCF_RIGHT_COMMENT);
- }
- }
- }
- }
-
- chunk_t *pc = chunk_get_head();
-
- while (pc != nullptr)
- {
- if (pc->flags.test(PCF_RIGHT_COMMENT))
- {
- pc = align_trailing_comments(pc);
- }
- else
- {
- pc = chunk_get_next(pc);
- }
- }
-} // align_right_comments
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_trailing_comments.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_trailing_comments.h
deleted file mode 100644
index a7a7b743..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_trailing_comments.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/**
- * @file align_trailing_comments.h
- *
- * @author Guy Maurel
- * split from align.cpp
- * @author Ben Gardner
- * @license GPL v2+
- */
-
-#ifndef ALIGN_TRAILING_COMMENTS_H_INCLUDED
-#define ALIGN_TRAILING_COMMENTS_H_INCLUDED
-
-#include "chunk_list.h"
-#include "ChunkStack.h"
-
-enum class comment_align_e : unsigned int
-{
- REGULAR,
- BRACE,
- ENDIF,
-};
-
-/**
- * For a series of lines ending in a comment, align them.
- * The series ends when more than align_right_cmt_span newlines are found.
- *
- * Interesting info:
- * - least physically allowed column
- * - intended column
- * - least original cmt column
- *
- * min_col is the minimum allowed column (based on prev token col/size)
- * cmt_col less than
- *
- * @param start Start point
- * @return pointer the last item looked at
- */
-chunk_t *align_trailing_comments(chunk_t *start);
-
-comment_align_e get_comment_align_type(chunk_t *cmt);
-
-void align_stack(ChunkStack &cs, size_t col, bool align_single, log_sev_t sev);
-
-void align_right_comments(void);
-
-#endif /* ALIGN_TRAILING_COMMENTS_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_typedefs.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_typedefs.cpp
deleted file mode 100644
index face575c..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_typedefs.cpp
+++ /dev/null
@@ -1,65 +0,0 @@
-/**
- * @file align_typedefs.cpp
- *
- * @author Guy Maurel
- * split from align.cpp
- * @author Ben Gardner
- * @license GPL v2+
- */
-
-#include "align_typedefs.h"
-
-#include "align_stack.h"
-#include "log_rules.h"
-
-constexpr static auto LCURRENT = LALTD;
-
-using namespace uncrustify;
-
-
-void align_typedefs(size_t span)
-{
- LOG_FUNC_ENTRY();
-
- AlignStack as;
-
- as.Start(span);
- log_rule_B("align_typedef_gap");
- as.m_gap = options::align_typedef_gap();
- log_rule_B("align_typedef_star_style");
- as.m_star_style = static_cast<AlignStack::StarStyle>(options::align_typedef_star_style());
- log_rule_B("align_typedef_amp_style");
- as.m_amp_style = static_cast<AlignStack::StarStyle>(options::align_typedef_amp_style());
-
- chunk_t *c_typedef = nullptr;
- chunk_t *pc = chunk_get_head();
-
- while (pc != nullptr)
- {
- if (chunk_is_newline(pc))
- {
- as.NewLines(pc->nl_count);
- c_typedef = nullptr;
- }
- else if (c_typedef != nullptr)
- {
- if (pc->flags.test(PCF_ANCHOR))
- {
- as.Add(pc);
- LOG_FMT(LALTD, "%s(%d): typedef @ %zu:%zu, tag '%s' @ %zu:%zu\n",
- __func__, __LINE__, c_typedef->orig_line, c_typedef->orig_col,
- pc->text(), pc->orig_line, pc->orig_col);
- c_typedef = nullptr;
- }
- }
- else
- {
- if (chunk_is_token(pc, CT_TYPEDEF))
- {
- c_typedef = pc;
- }
- }
- pc = chunk_get_next(pc);
- }
- as.End();
-} // align_typedefs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_var_def_brace.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_var_def_brace.cpp
deleted file mode 100644
index 637fb054..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_var_def_brace.cpp
+++ /dev/null
@@ -1,346 +0,0 @@
-/**
- * @file align_var_def_brace.cpp
- *
- * @author Guy Maurel
- * split from align.cpp
- * @author Ben Gardner
- * @license GPL v2+
- */
-
-#include "align_var_def_brace.h"
-
-#include "align_stack.h"
-#include "align_tools.h"
-#include "log_rules.h"
-
-constexpr static auto LCURRENT = LAVDB;
-
-using namespace uncrustify;
-
-
-chunk_t *align_var_def_brace(chunk_t *start, size_t span, size_t *p_nl_count)
-{
- LOG_FUNC_ENTRY();
-
- if (start == nullptr)
- {
- return(nullptr);
- }
- chunk_t *next;
- size_t myspan = span;
- size_t mythresh = 0;
- size_t mygap = 0;
-
- // Override the span, if this is a struct/union
- if ( get_chunk_parent_type(start) == CT_STRUCT
- || get_chunk_parent_type(start) == CT_UNION)
- {
- log_rule_B("align_var_struct_span");
- myspan = options::align_var_struct_span();
- log_rule_B("align_var_struct_thresh");
- mythresh = options::align_var_struct_thresh();
- log_rule_B("align_var_struct_gap");
- mygap = options::align_var_struct_gap();
- }
- else if (get_chunk_parent_type(start) == CT_CLASS)
- {
- log_rule_B("align_var_class_span");
- myspan = options::align_var_class_span();
- log_rule_B("align_var_class_thresh");
- mythresh = options::align_var_class_thresh();
- log_rule_B("align_var_class_gap");
- mygap = options::align_var_class_gap();
- }
- else
- {
- log_rule_B("align_var_def_thresh");
- mythresh = options::align_var_def_thresh();
- log_rule_B("align_var_def_gap");
- mygap = options::align_var_def_gap();
- }
- // can't be any variable definitions in a "= {" block
- chunk_t *prev = chunk_get_prev_ncnnl(start);
-
- if (chunk_is_token(prev, CT_ASSIGN))
- {
- LOG_FMT(LAVDB, "%s(%d): start->text() '%s', type is %s, on orig_line %zu (abort due to assign)\n",
- __func__, __LINE__, start->text(), get_token_name(start->type), start->orig_line);
-
- chunk_t *pc = chunk_get_next_type(start, CT_BRACE_CLOSE, start->level);
- return(chunk_get_next_ncnnl(pc));
- }
- char copy[1000];
-
- LOG_FMT(LAVDB, "%s(%d): start->text() '%s', type is %s, on orig_line %zu\n",
- __func__, __LINE__, start->elided_text(copy), get_token_name(start->type), start->orig_line);
-
- log_rule_B("align_var_def_inline");
- auto const align_mask =
- PCF_IN_FCN_DEF | PCF_VAR_1ST |
- (options::align_var_def_inline() ? PCF_NONE : PCF_VAR_INLINE);
-
- // Set up the variable/prototype/definition aligner
- AlignStack as;
-
- as.Start(myspan, mythresh);
- as.m_gap = mygap;
- log_rule_B("align_var_def_star_style");
- as.m_star_style = static_cast<AlignStack::StarStyle>(options::align_var_def_star_style());
- log_rule_B("align_var_def_amp_style");
- as.m_amp_style = static_cast<AlignStack::StarStyle>(options::align_var_def_amp_style());
-
- // Set up the bit colon aligner
- AlignStack as_bc;
-
- as_bc.Start(myspan, 0);
- log_rule_B("align_var_def_colon_gap");
- as_bc.m_gap = options::align_var_def_colon_gap();
-
- AlignStack as_at; // attribute
-
- as_at.Start(myspan, 0);
-
- // Set up the brace open aligner
- AlignStack as_br;
-
- as_br.Start(myspan, mythresh);
- log_rule_B("align_single_line_brace_gap");
- as_br.m_gap = options::align_single_line_brace_gap();
-
- bool fp_look_bro = false;
- bool did_this_line = false;
-
- log_rule_B("align_mix_var_proto");
- bool fp_active = options::align_mix_var_proto();
- chunk_t *pc = chunk_get_next(start);
-
- while ( pc != nullptr
- && ( pc->level >= start->level
- || pc->level == 0))
- {
- if (chunk_is_newline(pc))
- {
- LOG_FMT(LAVDB, "%s(%d): orig_line is %zu, orig_col is %zu, <Newline>\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col);
- }
- else
- {
- LOG_FMT(LAVDB, "%s(%d): orig_line is %zu, orig_col is %zu, text() '%s', type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(), get_token_name(pc->type));
- }
-
- if (chunk_is_comment(pc))
- {
- if (pc->nl_count > 0)
- {
- as.NewLines(pc->nl_count);
- as_bc.NewLines(pc->nl_count);
- as_at.NewLines(pc->nl_count);
- as_br.NewLines(pc->nl_count);
- }
- pc = chunk_get_next(pc);
- continue;
- }
-
- if ( fp_active
- && !pc->flags.test(PCF_IN_CLASS_BASE))
- {
- // WARNING: Duplicate from the align_func_proto()
- log_rule_B("align_single_line_func");
-
- if ( chunk_is_token(pc, CT_FUNC_PROTO)
- || ( chunk_is_token(pc, CT_FUNC_DEF)
- && options::align_single_line_func()))
- {
- LOG_FMT(LAVDB, "%s(%d): add = '%s', orig_line is %zu, orig_col is %zu, level is %zu\n",
- __func__, __LINE__, pc->text(), pc->orig_line, pc->orig_col, pc->level);
-
- chunk_t *toadd;
-
- log_rule_B("align_on_operator");
-
- if ( get_chunk_parent_type(pc) == CT_OPERATOR
- && options::align_on_operator())
- {
- toadd = chunk_get_prev_ncnnl(pc);
- }
- else
- {
- toadd = pc;
- }
- as.Add(step_back_over_member(toadd));
- log_rule_B("align_single_line_brace");
- fp_look_bro = (chunk_is_token(pc, CT_FUNC_DEF))
- && options::align_single_line_brace();
- }
- else if ( fp_look_bro
- && chunk_is_token(pc, CT_BRACE_OPEN)
- && pc->flags.test(PCF_ONE_LINER))
- {
- as_br.Add(pc);
- fp_look_bro = false;
- }
- }
-
- // process nested braces
- if (chunk_is_token(pc, CT_BRACE_OPEN))
- {
- size_t sub_nl_count = 0;
-
- pc = align_var_def_brace(pc, span, &sub_nl_count);
-
- if (sub_nl_count > 0)
- {
- fp_look_bro = false;
- did_this_line = false;
- as.NewLines(sub_nl_count);
- as_bc.NewLines(sub_nl_count);
- as_at.NewLines(sub_nl_count);
- as_br.NewLines(sub_nl_count);
-
- if (p_nl_count != nullptr)
- {
- *p_nl_count += sub_nl_count;
- }
- }
- continue;
- }
-
- // Done with this brace set?
- if (chunk_is_token(pc, CT_BRACE_CLOSE))
- {
- pc = chunk_get_next(pc);
- break;
- }
-
- if (chunk_is_newline(pc))
- {
- fp_look_bro = false;
- did_this_line = false;
- as.NewLines(pc->nl_count);
- as_bc.NewLines(pc->nl_count);
- as_at.NewLines(pc->nl_count);
- as_br.NewLines(pc->nl_count);
-
- if (p_nl_count != nullptr)
- {
- *p_nl_count += pc->nl_count;
- }
- }
- LOG_FMT(LAVDB, "%s(%d): pc->text() is '%s', level is %zu, pc->brace_level is %zu\n",
- __func__, __LINE__, chunk_is_newline(pc) ? "Newline" : pc->text(), pc->level, pc->brace_level);
-
- if (!chunk_is_newline(pc))
- {
- LOG_FMT(LAVDB, "%s(%d): pc->orig_line is %zu, orig_col is %zu, text() '%s', type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(), get_token_name(pc->type));
-
- if (chunk_is_not_token(pc, CT_IGNORED))
- {
- LOG_FMT(LAVDB, " ");
- log_pcf_flags(LAVDB, pc->flags);
- }
- }
-
- // don't align stuff inside parenthesis/squares/angles
- if (pc->level > pc->brace_level)
- {
- pc = chunk_get_next(pc);
- continue;
- }
-
- // If this is a variable def, update the max_col
- if ( !pc->flags.test(PCF_IN_CLASS_BASE)
- && chunk_is_not_token(pc, CT_FUNC_CLASS_DEF)
- && chunk_is_not_token(pc, CT_FUNC_CLASS_PROTO)
- && ((pc->flags & align_mask) == PCF_VAR_1ST)
- && chunk_is_not_token(pc, CT_FUNC_DEF) // Issue 1452
- && ( (pc->level == (start->level + 1))
- || pc->level == 0)
- && pc->prev != nullptr
- && pc->prev->type != CT_MEMBER)
- {
- LOG_FMT(LAVDB, "%s(%d): a-did_this_line is %s\n",
- __func__, __LINE__, did_this_line ? "TRUE" : "FALSE");
- LOG_FMT(LAVDB, "%s(%d): text() is '%s', orig_line is %zu, orig_col is %zu, level is %zu\n",
- __func__, __LINE__, pc->text(), pc->orig_line, pc->orig_col, pc->level);
-
- if (!did_this_line)
- {
- if ( get_chunk_parent_type(start) == CT_STRUCT
- && (as.m_star_style == AlignStack::SS_INCLUDE))
- {
- // we must look after the previous token
- chunk_t *prev_local = pc->prev;
-
- while ( chunk_is_token(prev_local, CT_PTR_TYPE)
- || chunk_is_token(prev_local, CT_ADDR))
- {
- LOG_FMT(LAVDB, "%s(%d): prev_local '%s', prev_local->type %s\n",
- __func__, __LINE__, prev_local->text(), get_token_name(prev_local->type));
- prev_local = prev_local->prev;
- }
- pc = prev_local->next;
- }
- LOG_FMT(LAVDB, "%s(%d): add = '%s', orig_line is %zu, orig_col is %zu, level is %zu\n",
- __func__, __LINE__, pc->text(), pc->orig_line, pc->orig_col, pc->level);
-
- as.Add(step_back_over_member(pc));
-
- log_rule_B("align_var_def_colon");
-
- if (options::align_var_def_colon())
- {
- next = chunk_get_next_nc(pc);
-
- if (chunk_is_token(next, CT_BIT_COLON))
- {
- as_bc.Add(next);
- }
- }
- log_rule_B("align_var_def_attribute");
-
- if (options::align_var_def_attribute())
- {
- next = pc;
-
- while ((next = chunk_get_next_nc(next)) != nullptr)
- {
- if (chunk_is_token(next, CT_ATTRIBUTE))
- {
- as_at.Add(next);
- break;
- }
-
- if ( chunk_is_token(next, CT_SEMICOLON)
- || chunk_is_newline(next))
- {
- break;
- }
- }
- }
- }
- did_this_line = true;
- }
- else if (chunk_is_token(pc, CT_BIT_COLON))
- {
- if (!did_this_line)
- {
- as_bc.Add(pc);
- did_this_line = true;
- }
- }
- else
- {
- LOG_FMT(LAVDB, "%s(%d): b-did_this_line is %s\n",
- __func__, __LINE__, did_this_line ? "TRUE" : "FALSE");
- }
- pc = chunk_get_next(pc);
- }
- as.End();
- as_bc.End();
- as_at.End();
- as_br.End();
-
- return(pc);
-} // align_var_def_brace
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_var_def_brace.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_var_def_brace.h
deleted file mode 100644
index 0cc133ea..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_var_def_brace.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/**
- * @file align_var_def_brace.h
- *
- * @author Guy Maurel
- * split from align.cpp
- * @author Ben Gardner
- * @license GPL v2+
- */
-
-#ifndef ALIGN_VAR_DEF_BRACE_H_INCLUDED
-#define ALIGN_VAR_DEF_BRACE_H_INCLUDED
-
-#include "chunk_list.h"
-
-/**
- * Scan everything at the current level until the close brace and find the
- * variable def align column. Also aligns bit-colons, but that assumes that
- * bit-types are the same! But that should always be the case...
- */
-chunk_t *align_var_def_brace(chunk_t *pc, size_t span, size_t *nl_count);
-
-#endif /* ALIGN_VAR_DEF_BRACE_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/args.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/args.cpp
deleted file mode 100644
index 4147bd91..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/args.cpp
+++ /dev/null
@@ -1,228 +0,0 @@
-/**
- * @file args.cpp
- * Parses command line arguments.
- *
- * @author Ben Gardner
- * @license GPL v2+
- */
-
-#include "args.h"
-
-#include "unc_ctype.h"
-
-#include <cstring>
-
-Args::Args(int argc, char **argv)
-{
- m_count = argc;
- m_values = argv;
- size_t len = (argc >> 3) + 1;
-
- m_used = new UINT8[len];
-
- if (m_used != nullptr)
- {
- memset(m_used, 0, len);
- }
-}
-
-
-Args::~Args()
-{
- if (m_used != nullptr)
- {
- delete[] m_used;
- m_used = nullptr;
- }
- m_count = 0;
-}
-
-
-bool Args::Present(const char *token)
-{
- if (token != nullptr)
- {
- for (size_t idx = 0; idx < m_count; idx++)
- {
- if (strcmp(token, m_values[idx]) == 0)
- {
- SetUsed(idx);
- return(true);
- }
- }
- }
- return(false);
-}
-
-
-const char *Args::Param(const char *token)
-{
- size_t idx = 0;
-
- return(Params(token, idx));
-}
-
-
-const char *Args::Params(const char *token, size_t &index)
-{
- if (token == nullptr)
- {
- // coveralls will complain
- // can only occur with a call such as: arg.Param(nullptr)
- return(nullptr);
- }
- size_t token_len = strlen(token);
-
- for (size_t idx = index; idx < m_count; idx++)
- {
- size_t arg_len = strlen(m_values[idx]);
-
- if ( arg_len >= token_len
- && (memcmp(token, m_values[idx], token_len) == 0))
- {
- SetUsed(idx);
-
- if (arg_len > token_len)
- {
- if (m_values[idx][token_len] == '=')
- {
- token_len++;
- }
- index = idx + 1;
- return(&m_values[idx][token_len]);
- }
- idx++;
- index = idx + 1;
-
- if (idx < m_count)
- {
- SetUsed(idx);
- return(m_values[idx]);
- }
- return("");
- }
- }
-
- return(nullptr);
-} // Args::Params
-
-
-bool Args::GetUsed(size_t idx)
-{
- if ( m_used != nullptr
- && idx > 0
- && idx < m_count)
- {
- return((m_used[idx >> 3] & (1 << (idx & 0x07))) != 0);
- }
- return(false);
-}
-
-
-void Args::SetUsed(size_t idx)
-{
- if ( m_used != nullptr
- && idx > 0
- && idx < m_count)
- {
- m_used[idx >> 3] |= (1 << (idx & 0x07));
- }
-}
-
-
-const char *Args::Unused(size_t &index)
-{
- if (m_used == nullptr)
- {
- return(nullptr);
- }
-
- for (size_t idx = index; idx < m_count; idx++)
- {
- if (!GetUsed(idx))
- {
- index = idx + 1;
- return(m_values[idx]);
- }
- }
-
- index = m_count;
- return(nullptr);
-}
-
-
-size_t Args::SplitLine(char *text, char *args[], size_t num_args)
-{
- if ( text == nullptr
- || num_args == 0)
- {
- return(0);
- }
- char cur_quote = 0;
- bool in_backslash = false;
- bool in_arg = false;
- size_t argc = 0;
- char *dest = text;
-
- while ( argc <= num_args // maximal number of arguments not reached yet
- && *text != 0) // end of string not reached yet
- {
- // Detect the start of an arg
- if ( !in_arg
- && !unc_isspace(*text))
- {
- in_arg = true;
- args[argc] = dest;
- argc++;
- }
-
- if (in_arg)
- {
- if (in_backslash)
- {
- in_backslash = false;
- *dest = *text;
- dest++;
- }
- else if (*text == '\\')
- {
- in_backslash = true;
- }
- else if (*text == cur_quote)
- {
- cur_quote = 0;
- }
- else if ( (*text == '\'')
- || (*text == '"')
- || (*text == '`'))
- {
- cur_quote = *text;
- }
- else if (cur_quote != 0)
- {
- *dest = *text;
- dest++;
- }
- else if (unc_isspace(*text))
- {
- *dest = 0;
- dest++;
- in_arg = false;
-
- if (argc == num_args)
- {
- break; // all arguments found, we can stop
- }
- }
- else
- {
- *dest = *text;
- dest++;
- }
- }
- text++; // go on with next character
- }
- *dest = 0;
-
- return(argc);
-} // Args::SplitLine
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/brace_cleanup.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/brace_cleanup.cpp
deleted file mode 100644
index 0810c04c..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/brace_cleanup.cpp
+++ /dev/null
@@ -1,1498 +0,0 @@
-/**
- * @file brace_cleanup.cpp
- * Determines the brace level and paren level.
- * Inserts virtual braces as needed.
- * Handles all that preprocessor stuff.
- *
- * @author Ben Gardner
- * @license GPL v2+
- */
-
-#include "brace_cleanup.h"
-
-#include "flag_parens.h"
-#include "frame_list.h"
-#include "keywords.h"
-#include "lang_pawn.h"
-#include "prototypes.h"
-
-#include <stdexcept> // to get std::invalid_argument
-
-constexpr static auto LCURRENT = LBC;
-
-using namespace uncrustify;
-
-using std::invalid_argument;
-using std::string;
-using std::to_string;
-using std::stringstream;
-
-
-/*
- * abbreviations used:
- * - sparen = tbd
- * - PS = Parenthesis Stack
- * - pse = Parenthesis Stack
- */
-
-
-struct BraceState
-{
- std::vector<ParseFrame> frames = {};
- c_token_t in_preproc = CT_NONE;
- int pp_level = 0;
- bool consumed = false;
-};
-
-/**
- * Called when a statement was just closed and the pse_tos was just
- * decremented.
- *
- * - if the TOS is now VBRACE, insert a CT_VBRACE_CLOSE and recurse.
- * - if the TOS is a complex statement, call handle_complex_close()
- *
- * @retval true done with this chunk
- * @retval false keep processing
- */
-static bool close_statement(ParseFrame &frm, chunk_t *pc, const BraceState &braceState);
-
-
-static size_t preproc_start(BraceState &braceState, ParseFrame &frm, chunk_t *pc);
-
-
-static void print_stack(log_sev_t logsev, const char *str, const ParseFrame &frm);
-
-
-/**
- * pc is a CT_WHILE.
- * Scan backwards to see if we find a brace/vbrace with the parent set to CT_DO
- */
-static bool maybe_while_of_do(chunk_t *pc);
-
-
-/**
- * @param after determines: true - insert_vbrace_close_after(pc, frm)
- * false - insert_vbrace_open_before(pc, frm)
- */
-static chunk_t *insert_vbrace(chunk_t *pc, bool after, const ParseFrame &frm);
-
-#define insert_vbrace_close_after(pc, frm) insert_vbrace(pc, true, frm)
-#define insert_vbrace_open_before(pc, frm) insert_vbrace(pc, false, frm)
-
-static void parse_cleanup(BraceState &braceState, ParseFrame &frm, chunk_t *pc);
-
-
-/**
- * Checks the progression of complex statements.
- * - checks for else after if
- * - checks for if after else
- * - checks for while after do
- * - checks for open brace in BRACE2 and BRACE_DO stages, inserts open VBRACE
- * - checks for open paren in PAREN1 and BRACE2 stages, complains
- *
- * @param frm The parse frame
- * @param pc The current chunk
- *
- * @return true - done with this chunk, false - keep processing
- */
-static bool check_complex_statements(ParseFrame &frm, chunk_t *pc, const BraceState &braceState);
-
-
-/**
- * Handles a close paren or brace - just progress the stage, if the end
- * of the statement is hit, call close_statement()
- *
- * @param frm The parse frame
- * @param pc The current chunk
- *
- * @return true - done with this chunk, false - keep processing
- */
-static bool handle_complex_close(ParseFrame &frm, chunk_t *pc, const BraceState &braceState);
-
-
-//! We're on a 'namespace' skip the word and then set the parent of the braces.
-static void mark_namespace(chunk_t *pns);
-
-
-static size_t preproc_start(BraceState &braceState, ParseFrame &frm, chunk_t *pc)
-{
- LOG_FUNC_ENTRY();
- const size_t pp_level = braceState.pp_level;
-
- chunk_t *next = chunk_get_next_ncnnl(pc);
-
- if (next == nullptr)
- {
- return(pp_level);
- }
- // Get the type of preprocessor and handle it
- braceState.in_preproc = next->type;
-
- // If we are not in a define, check for #if, #else, #endif, etc
- if (braceState.in_preproc != CT_PP_DEFINE)
- {
- int pp_indent = fl_check(braceState.frames, frm, braceState.pp_level, pc);
- return(pp_indent);
- }
- // else push the frame stack
- fl_push(braceState.frames, frm);
-
- // a preproc body starts a new, blank frame
- frm = {};
- frm.level = 1;
- frm.brace_level = 1;
-
- // TODO: not sure about the next 3 lines
- frm.push(nullptr);
- frm.top().type = CT_PP_DEFINE;
-
- return(pp_level);
-}
-
-
-static void print_stack(log_sev_t logsev, const char *str,
- const ParseFrame &frm)
-{
- LOG_FUNC_ENTRY();
-
- if (!log_sev_on(logsev))
- {
- return;
- }
- log_fmt(logsev, "%s(%d): str is '%s'", __func__, __LINE__, str);
-
- for (size_t idx = 1; idx < frm.size(); idx++)
- {
- if (frm.at(idx).stage != brace_stage_e::NONE)
- {
- LOG_FMT(logsev, " [%s - %u]", get_token_name(frm.at(idx).type),
- (unsigned int)frm.at(idx).stage);
- }
- else
- {
- LOG_FMT(logsev, " [%s]", get_token_name(frm.at(idx).type));
- }
- }
-
- log_fmt(logsev, "\n");
-}
-
-
-//TODO: This can be cleaned up and simplified - we can look both forward and backward!
-void brace_cleanup(void)
-{
- LOG_FUNC_ENTRY();
-
- BraceState braceState;
- ParseFrame frm{};
- 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());
-
- // Check for leaving a #define body
- if ( braceState.in_preproc != CT_NONE
- && !pc->flags.test(PCF_IN_PREPROC))
- {
- if (braceState.in_preproc == CT_PP_DEFINE)
- {
- // out of the #define body, restore the frame
- fl_pop(braceState.frames, frm);
- }
- braceState.in_preproc = CT_NONE;
- }
- // Check for a preprocessor start
- size_t pp_level;
-
- if (chunk_is_token(pc, CT_PREPROC))
- {
- pp_level = preproc_start(braceState, frm, pc);
- }
- else
- {
- pp_level = braceState.pp_level;
- }
- LOG_FMT(LTOK, "%s(%d): pp_level is %zu\n",
- __func__, __LINE__, pp_level);
-
- // Do before assigning stuff from the frame
- if ( language_is_set(LANG_PAWN)
- && frm.top().type == CT_VBRACE_OPEN
- && chunk_is_token(pc, CT_NEWLINE))
- {
- pc = pawn_check_vsemicolon(pc);
-
- if (pc == nullptr)
- {
- return;
- }
- }
-
- // Issue #1813
- if (chunk_is_token(pc, CT_NAMESPACE))
- {
- mark_namespace(pc);
- }
- // Assume the level won't change
- pc->level = frm.level;
- pc->brace_level = frm.brace_level;
- pc->pp_level = pp_level;
-
- /*
- * #define bodies get the full formatting treatment
- * Also need to pass in the initial '#' to close out any virtual braces.
- */
- if ( !chunk_is_comment(pc)
- && !chunk_is_newline(pc)
- && !chunk_is_token(pc, CT_ATTRIBUTE)
- && !chunk_is_token(pc, CT_IGNORED) // Issue #2279
- && ( braceState.in_preproc == CT_PP_DEFINE
- || braceState.in_preproc == CT_NONE))
- {
- braceState.consumed = false;
- parse_cleanup(braceState, frm, pc);
- print_stack(LBCSAFTER, (chunk_is_token(pc, CT_VBRACE_CLOSE)) ? "Virt-}\n" : pc->str.c_str(), frm);
- }
- pc = chunk_get_next(pc);
- }
-// 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);
-//
-// if (pc == template_end)
-// {
-// break;
-// }
-// }
-// }
-// pc = chunk_get_next(pc);
-// }
-} // brace_cleanup
-
-
-static bool maybe_while_of_do(chunk_t *pc)
-{
- LOG_FUNC_ENTRY();
-
- chunk_t *prev = chunk_get_prev_ncnnl(pc);
-
- if ( prev == nullptr
- || !prev->flags.test(PCF_IN_PREPROC))
- {
- return(false);
- }
-
- // Find the chunk before the preprocessor
- while ( prev != nullptr
- && prev->flags.test(PCF_IN_PREPROC))
- {
- prev = chunk_get_prev_ncnnl(prev);
- }
-
- if ( ( chunk_is_token(prev, CT_VBRACE_CLOSE)
- || chunk_is_token(prev, CT_BRACE_CLOSE))
- && get_chunk_parent_type(prev) == CT_DO)
- {
- return(true);
- }
- return(false);
-}
-
-
-/**
- * At the heart of this algorithm are two stacks.
- * There is the Paren Stack (PS) and the Frame stack.
- *
- * The PS (pse in the code) keeps track of braces, parens,
- * if/else/switch/do/while/etc items -- anything that is nestable.
- * Complex statements go through stages.
- * Take this simple if statement as an example:
- * if ( x ) { x--; }
- *
- * The stack would change like so: 'token' stack afterwards
- * 'if' [IF - 1]
- * '(' [IF - 1] [PAREN OPEN]
- * 'x' [IF - 1] [PAREN OPEN]
- * ')' [IF - 2] <- note that the state was incremented
- * '{' [IF - 2] [BRACE OPEN]
- * 'x' [IF - 2] [BRACE OPEN]
- * '--' [IF - 2] [BRACE OPEN]
- * ';' [IF - 2] [BRACE OPEN]
- * '}' [IF - 3]
- * <- lack of else kills the IF, closes statement
- *
- * Virtual braces example:
- * if ( x ) x--; else x++;
- *
- * 'if' [IF - 1]
- * '(' [IF - 1] [PAREN OPEN]
- * 'x' [IF - 1] [PAREN OPEN]
- * ')' [IF - 2]
- * 'x' [IF - 2] [VBRACE OPEN] <- VBrace open inserted before because '{' was not next
- * '--' [IF - 2] [VBRACE OPEN]
- * ';' [IF - 3] <- VBrace close inserted after semicolon
- * 'else' [ELSE - 0] <- IF changed into ELSE
- * 'x' [ELSE - 0] [VBRACE OPEN] <- lack of '{' -> VBrace
- * '++' [ELSE - 0] [VBRACE OPEN]
- * ';' [ELSE - 0] <- VBrace close inserted after semicolon
- * <- ELSE removed after statement close
- *
- * The pse stack is kept on a frame stack.
- * The frame stack is need for languages that support preprocessors (C, C++, C#)
- * that can arbitrarily change code flow. It also isolates #define macros so
- * that they are indented independently and do not affect the rest of the program.
- *
- * When an #if is hit, a copy of the current frame is push on the frame stack.
- * When an #else/#elif is hit, a copy of the current stack is pushed under the
- * #if frame and the original (pre-#if) frame is copied to the current frame.
- * When #endif is hit, the top frame is popped.
- * This has the following effects:
- * - a simple #if / #endif does not affect program flow
- * - #if / #else /#endif - continues from the #if clause
- *
- * When a #define is entered, the current frame is pushed and cleared.
- * When a #define is exited, the frame is popped.
- */
-static void parse_cleanup(BraceState &braceState, ParseFrame &frm, chunk_t *pc)
-{
- LOG_FUNC_ENTRY();
-
- LOG_FMT(LTOK, "%s(%d): orig_line is %zu, orig_col is %zu, type is %s, tos is %zu, TOS.type is %s, TOS.stage is %s, ",
- __func__, __LINE__, pc->orig_line, pc->orig_col, get_token_name(pc->type),
- frm.size() - 1, get_token_name(frm.top().type),
- get_brace_stage_name(frm.top().stage));
- log_pcf_flags(LTOK, pc->flags);
-
- // Mark statement starts
- LOG_FMT(LTOK, "%s(%d): orig_line is %zu, type is %s, text() is '%s'\n",
- __func__, __LINE__, pc->orig_line, get_token_name(pc->type), pc->text());
- LOG_FMT(LTOK, "%s(%d): frm.stmt_count is %zu, frm.expr_count is %zu\n",
- __func__, __LINE__, frm.stmt_count, frm.expr_count);
-
- if ( ( frm.stmt_count == 0
- || frm.expr_count == 0)
- && !chunk_is_semicolon(pc)
- && chunk_is_not_token(pc, CT_BRACE_CLOSE)
- && chunk_is_not_token(pc, CT_VBRACE_CLOSE)
- && !chunk_is_str(pc, ")", 1)
- && !chunk_is_str(pc, "]", 1))
- {
- chunk_flags_set(pc, PCF_EXPR_START | ((frm.stmt_count == 0) ? PCF_STMT_START : PCF_NONE));
- LOG_FMT(LSTMT, "%s(%d): orig_line is %zu, 1.marked '%s' as %s, start stmt_count is %zu, expr_count is %zu\n",
- __func__, __LINE__, pc->orig_line, pc->text(),
- pc->flags.test(PCF_STMT_START) ? "stmt" : "expr", frm.stmt_count,
- frm.expr_count);
- }
- frm.stmt_count++;
- frm.expr_count++;
- LOG_FMT(LTOK, "%s(%d): frm.stmt_count is %zu, frm.expr_count is %zu\n",
- __func__, __LINE__, frm.stmt_count, frm.expr_count);
-
- if (frm.sparen_count > 0)
- {
- chunk_flags_set(pc, PCF_IN_SPAREN);
-
- // Mark everything in the for statement
- for (int tmp = static_cast<int>(frm.size()) - 2; tmp >= 0; tmp--)
- {
- if (frm.at(tmp).type == CT_FOR)
- {
- chunk_flags_set(pc, PCF_IN_FOR);
- break;
- }
- }
-
- // Mark the parent on semicolons in for() statements
- if ( chunk_is_token(pc, CT_SEMICOLON)
- && frm.size() > 2
- && frm.prev().type == CT_FOR)
- {
- set_chunk_parent(pc, CT_FOR);
- }
- }
-
- // Check the progression of complex statements
- if ( frm.top().stage != brace_stage_e::NONE
- && !chunk_is_token(pc, CT_AUTORELEASEPOOL)
- && check_complex_statements(frm, pc, braceState))
- {
- return;
- }
-
- /*
- * Check for a virtual brace statement close due to a semicolon.
- * The virtual brace will get handled the next time through.
- * The semicolon isn't handled at all.
- * TODO: may need to float VBRACE past comments until newline?
- */
- if (frm.top().type == CT_VBRACE_OPEN)
- {
- if (chunk_is_semicolon(pc))
- {
- braceState.consumed = true;
- close_statement(frm, pc, braceState);
- }
- else if ( language_is_set(LANG_PAWN)
- && chunk_is_token(pc, CT_BRACE_CLOSE))
- {
- close_statement(frm, pc, braceState);
- }
- else if ( language_is_set(LANG_D)
- && chunk_is_token(pc, CT_BRACE_CLOSE))
- {
- close_statement(frm, pc, braceState);
- }
- }
-
- // Handle close parenthesis, vbrace, brace, and square
- if ( chunk_is_token(pc, CT_PAREN_CLOSE)
- || chunk_is_token(pc, CT_BRACE_CLOSE)
- || chunk_is_token(pc, CT_VBRACE_CLOSE)
- || chunk_is_token(pc, CT_ANGLE_CLOSE)
- || chunk_is_token(pc, CT_MACRO_CLOSE)
- || chunk_is_token(pc, CT_SQUARE_CLOSE))
- {
- // Change CT_PAREN_CLOSE into CT_SPAREN_CLOSE or CT_FPAREN_CLOSE
- if ( chunk_is_token(pc, CT_PAREN_CLOSE)
- && ( (frm.top().type == CT_FPAREN_OPEN)
- || (frm.top().type == CT_SPAREN_OPEN)))
- {
- // TODO: fix enum hack
- set_chunk_type(pc, static_cast<c_token_t>(frm.top().type + 1));
-
- if (chunk_is_token(pc, CT_SPAREN_CLOSE))
- {
- frm.sparen_count--;
- chunk_flags_clr(pc, PCF_IN_SPAREN);
- }
- }
-
- // Make sure the open / close match
- if (chunk_is_not_token(pc, (c_token_t)(frm.top().type + 1)))
- {
- LOG_FMT(LWARN, "%s(%d): pc->orig_line is %zu, orig_col is %zu, text() is '%s', type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(), get_token_name(pc->type));
- paren_stack_entry_t AA = frm.top(); // Issue #3055
-
- if (AA.type != CT_EOF)
- {
- LOG_FMT(LWARN, "%s(%d): (frm.top().type + 1) is %s\n",
- __func__, __LINE__, get_token_name((c_token_t)(frm.top().type + 1)));
- }
-
- if (pc->flags.test(PCF_IN_PREPROC)) // Issue #3113
- {
- // do nothing
- }
- else
- {
- if ( frm.top().type != CT_EOF
- && frm.top().type != CT_PP_DEFINE)
- {
- LOG_FMT(LWARN, "%s(%d): File: %s, orig_line is %zu, orig_col is %zu, Error: Unexpected '%s' for '%s', which was on line %zu\n",
- __func__, __LINE__, cpd.filename.c_str(), pc->orig_line, pc->orig_col,
- pc->text(), get_token_name(frm.top().pc->type),
- frm.top().pc->orig_line);
- print_stack(LBCSPOP, "=Error ", frm);
- cpd.error_count++;
- exit(EXIT_FAILURE);
- }
- }
- }
- else
- {
- braceState.consumed = true;
-
- // Copy the parent, update the parenthesis/brace levels
- set_chunk_parent(pc, frm.top().parent);
- frm.level--;
-
- if ( chunk_is_token(pc, CT_BRACE_CLOSE)
- || chunk_is_token(pc, CT_VBRACE_CLOSE)
- || chunk_is_token(pc, CT_MACRO_CLOSE))
- {
- frm.brace_level--;
- LOG_FMT(LBCSPOP, "%s(%d): frm.brace_level decreased to %zu",
- __func__, __LINE__, frm.brace_level);
- log_pcf_flags(LBCSPOP, pc->flags);
- }
- pc->level = frm.level;
- pc->brace_level = frm.brace_level;
-
- // Pop the entry
- LOG_FMT(LBCSPOP, "%s(%d): pc->orig_line is %zu, orig_col is %zu, text() is '%s', type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(), get_token_name(pc->type));
- frm.pop(__func__, __LINE__);
- print_stack(LBCSPOP, "-Close ", frm);
-
- if ( frm.top().stage == brace_stage_e::NONE
- && ( chunk_is_token(pc, CT_VBRACE_CLOSE)
- || chunk_is_token(pc, CT_BRACE_CLOSE)
- || chunk_is_token(pc, CT_SEMICOLON))
- && chunk_is_token(frm.top().pc, CT_VBRACE_OPEN))
- {
- // frames for functions are not created as they are for an if
- // this here is a hackish solution to close a vbrace of a block that
- // contains the function
- frm.push(nullptr); // <- dummy frame for the function
- frm.top().stage = brace_stage_e::BRACE2;
- }
-
- // See if we are in a complex statement
- if (frm.top().stage != brace_stage_e::NONE)
- {
- handle_complex_close(frm, pc, braceState);
- }
- }
- }
-
- /*
- * In this state, we expect a semicolon, but we'll also hit the closing
- * sparen, so we need to check braceState.consumed to see if the close sparen
- * was aleady handled.
- */
- if (frm.top().stage == brace_stage_e::WOD_SEMI)
- {
- if (braceState.consumed)
- {
- /*
- * If consumed, then we are on the close sparen.
- * PAWN: Check the next chunk for a semicolon. If it isn't, then
- * add a virtual semicolon, which will get handled on the next pass.
- */
- if (language_is_set(LANG_PAWN))
- {
- chunk_t *tmp = chunk_get_next_ncnnl(pc);
-
- if ( chunk_is_not_token(tmp, CT_SEMICOLON)
- && chunk_is_not_token(tmp, CT_VSEMICOLON))
- {
- pawn_add_vsemi_after(pc);
- }
- }
- }
- else
- {
- // Complain if this ISN'T a semicolon, but close out WHILE_OF_DO anyway
- if ( chunk_is_token(pc, CT_SEMICOLON)
- || chunk_is_token(pc, CT_VSEMICOLON))
- {
- braceState.consumed = true;
- set_chunk_parent(pc, CT_WHILE_OF_DO);
- }
- else
- {
- LOG_FMT(LWARN, "%s: %s(%d): %zu: Error: Expected a semicolon for WHILE_OF_DO, but got '%s'\n",
- cpd.filename.c_str(), __func__, __LINE__, pc->orig_line,
- get_token_name(pc->type));
- cpd.error_count++;
- }
- handle_complex_close(frm, pc, braceState);
- }
- }
- // Get the parent type for brace and parenthesis open
- c_token_t parent = get_chunk_parent_type(pc);
-
- if ( chunk_is_token(pc, CT_PAREN_OPEN)
- || chunk_is_token(pc, CT_FPAREN_OPEN)
- || chunk_is_token(pc, CT_SPAREN_OPEN)
- || chunk_is_token(pc, CT_BRACE_OPEN))
- {
- chunk_t *prev = chunk_get_prev_ncnnl(pc);
-
- if (prev != nullptr)
- {
- if ( chunk_is_token(pc, CT_PAREN_OPEN)
- || chunk_is_token(pc, CT_FPAREN_OPEN)
- || chunk_is_token(pc, CT_SPAREN_OPEN))
- {
- // Set the parent for parenthesis and change parenthesis type
- if ( chunk_is_token(prev, CT_IF)
- || chunk_is_token(prev, CT_CONSTEXPR)
- || chunk_is_token(prev, CT_ELSEIF)
- || chunk_is_token(prev, CT_WHILE)
- || chunk_is_token(prev, CT_WHILE_OF_DO)
- || chunk_is_token(prev, CT_DO)
- || chunk_is_token(prev, CT_FOR)
- || chunk_is_token(prev, CT_SWITCH)
- || chunk_is_token(prev, CT_CATCH)
- || chunk_is_token(prev, CT_SYNCHRONIZED)
- || chunk_is_token(prev, CT_D_VERSION)
- || chunk_is_token(prev, CT_D_VERSION_IF)
- || chunk_is_token(prev, CT_D_SCOPE)
- || chunk_is_token(prev, CT_D_SCOPE_IF))
- {
- set_chunk_type(pc, CT_SPAREN_OPEN);
- parent = frm.top().type;
- frm.sparen_count++;
- }
- else if (chunk_is_token(prev, CT_FUNCTION))
- {
- set_chunk_type(pc, CT_FPAREN_OPEN);
- parent = CT_FUNCTION;
- }
- // NS_ENUM and NS_OPTIONS are followed by a (type, name) pair
- else if ( chunk_is_token(prev, CT_ENUM)
- && language_is_set(LANG_OC))
- {
- // Treat both as CT_ENUM since the syntax is identical
- set_chunk_type(pc, CT_FPAREN_OPEN);
- parent = CT_ENUM;
- }
- else if (chunk_is_token(prev, CT_DECLSPEC)) // Issue 1289
- {
- parent = CT_DECLSPEC;
- }
- // else: no need to set parent
- }
- else // must be CT_BRACE_OPEN
- {
- // Set the parent for open braces
- if (frm.top().stage != brace_stage_e::NONE)
- {
- parent = frm.top().type;
- }
- else if ( chunk_is_token(prev, CT_ASSIGN)
- && (prev->str[0] == '='))
- {
- parent = CT_ASSIGN;
- }
- else if ( chunk_is_token(prev, CT_RETURN)
- && language_is_set(LANG_CPP))
- {
- parent = CT_RETURN;
- }
- // Carry through CT_ENUM parent in NS_ENUM (type, name) {
- // for the vim editor }
- else if ( chunk_is_token(prev, CT_FPAREN_CLOSE)
- && language_is_set(LANG_OC)
- && get_chunk_parent_type(prev) == CT_ENUM)
- {
- parent = CT_ENUM;
- }
- else if (chunk_is_token(prev, CT_FPAREN_CLOSE))
- {
- parent = CT_FUNCTION;
- }
- // else: no need to set parent
- }
- }
- }
-
- /*
- * Adjust the level for opens & create a stack entry
- * Note that CT_VBRACE_OPEN has already been handled.
- */
- if ( chunk_is_token(pc, CT_BRACE_OPEN)
- || chunk_is_token(pc, CT_PAREN_OPEN)
- || chunk_is_token(pc, CT_FPAREN_OPEN)
- || chunk_is_token(pc, CT_SPAREN_OPEN)
- || chunk_is_token(pc, CT_ANGLE_OPEN)
- || chunk_is_token(pc, CT_MACRO_OPEN)
- || chunk_is_token(pc, CT_SQUARE_OPEN))
- {
- frm.level++;
-
- if ( chunk_is_token(pc, CT_BRACE_OPEN)
- || chunk_is_token(pc, CT_MACRO_OPEN))
- {
- // Issue #1813
- bool single = false;
-
- if (get_chunk_parent_type(pc) == CT_NAMESPACE)
- {
- LOG_FMT(LBCSPOP, "%s(%d): parent_type is NAMESPACE\n",
- __func__, __LINE__);
- chunk_t *tmp = frm.top().pc;
-
- if ( tmp != nullptr
- && get_chunk_parent_type(tmp) == CT_NAMESPACE)
- {
- LOG_FMT(LBCSPOP, "%s(%d): tmp->parent_type is NAMESPACE\n",
- __func__, __LINE__);
-
- log_rule_B("indent_namespace");
- log_rule_B("indent_namespace_single_indent");
-
- if ( options::indent_namespace()
- && options::indent_namespace_single_indent())
- {
- LOG_FMT(LBCSPOP, "%s(%d): Options are SINGLE\n",
- __func__, __LINE__);
- single = true;
- }
- }
- }
- LOG_FMT(LBCSPOP, "%s(%d): pc->orig_line is %zu, orig_col is %zu, text() is '%s', type is %s, parent_type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(), get_token_name(pc->type), get_token_name(get_chunk_parent_type(pc)));
-
- if (!single)
- {
- frm.brace_level++;
- LOG_FMT(LBCSPOP, "%s(%d): frm.brace_level increased to %zu\n",
- __func__, __LINE__, frm.brace_level);
- }
- }
- frm.push(pc, __func__, __LINE__);
- frm.top().parent = parent;
- // set parent type
- set_chunk_parent(pc, parent);
- }
- // Issue #2281
-
- if ( chunk_is_token(pc, CT_BRACE_OPEN)
- && pc->parent_type == CT_SWITCH)
- {
- size_t idx = frm.size();
- LOG_FMT(LBCSPOP, "%s(%d): idx is %zu\n",
- __func__, __LINE__, idx);
- chunk_t *saved = frm.at(idx - 2).pc;
-
- if (saved != nullptr)
- {
- // set parent member
- chunk_set_parent(pc, saved);
- }
- }
-
- if ( chunk_is_token(pc, CT_CASE)
- || chunk_is_token(pc, CT_DEFAULT))
- {
- chunk_t *prev = chunk_get_prev_ncnnl(pc); // Issue #3176
-
- if ( chunk_is_token(pc, CT_CASE)
- || ( chunk_is_token(pc, CT_DEFAULT)
- && chunk_is_not_token(prev, CT_ASSIGN)))
- {
- // it is a CT_DEFAULT from a switch
- LOG_FMT(LBCSPOP, "%s(%d): pc->orig_line is %zu, pc->orig_col is %zu\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col);
- set_chunk_parent(pc, CT_SWITCH);
- size_t idx = frm.size();
- LOG_FMT(LBCSPOP, "%s(%d): idx is %zu\n",
- __func__, __LINE__, idx);
- chunk_t *saved = frm.at(idx - 2).pc;
-
- if (saved != nullptr)
- {
- // set parent member
- chunk_set_parent(pc, saved);
- }
- }
- }
-
- if (chunk_is_token(pc, CT_BREAK))
- {
- LOG_FMT(LBCSPOP, "%s(%d): pc->orig_line is %zu, pc->orig_col is %zu\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col);
- size_t idx = frm.size();
- LOG_FMT(LBCSPOP, "%s(%d): idx is %zu\n",
- __func__, __LINE__, idx);
- chunk_t *saved = frm.at(idx - 2).pc;
-
- if (saved != nullptr)
- {
- // set parent member
- chunk_set_parent(pc, saved);
- }
- }
- const pattern_class_e patcls = get_token_pattern_class(pc->type);
-
- /*
- * Create a stack entry for complex statements:
- * if, elseif, switch, for, while, synchronized, using, lock, with,
- * version, CT_D_SCOPE_IF
- */
- if (patcls == pattern_class_e::BRACED)
- {
- frm.push(pc, __func__, __LINE__, (chunk_is_token(pc, CT_DO) ? brace_stage_e::BRACE_DO
- : brace_stage_e::BRACE2));
- // "+ComplexBraced"
- }
- else if (patcls == pattern_class_e::PBRACED)
- {
- brace_stage_e bs = brace_stage_e::PAREN1;
-
- if ( chunk_is_token(pc, CT_WHILE)
- && maybe_while_of_do(pc))
- {
- set_chunk_type(pc, CT_WHILE_OF_DO);
- bs = brace_stage_e::WOD_PAREN;
- }
- frm.push(pc, __func__, __LINE__, bs);
- // "+ComplexParenBraced"
- }
- else if (patcls == pattern_class_e::OPBRACED)
- {
- frm.push(pc, __func__, __LINE__, brace_stage_e::OP_PAREN1);
- // "+ComplexOpParenBraced");
- }
- else if (patcls == pattern_class_e::ELSE)
- {
- frm.push(pc, __func__, __LINE__, brace_stage_e::ELSEIF);
- // "+ComplexElse");
- }
-
- /*
- * Mark simple statement/expression starts
- * - after { or }
- * - after ';', but not if the paren stack top is a paren
- * - after '(' that has a parent type of CT_FOR
- */
- if ( chunk_is_token(pc, CT_SQUARE_OPEN)
- || ( chunk_is_token(pc, CT_BRACE_OPEN)
- && get_chunk_parent_type(pc) != CT_ASSIGN)
- || chunk_is_token(pc, CT_BRACE_CLOSE)
- || chunk_is_token(pc, CT_VBRACE_CLOSE)
- || ( chunk_is_token(pc, CT_SPAREN_OPEN)
- && get_chunk_parent_type(pc) == CT_FOR)
- || chunk_is_token(pc, CT_COLON)
- || chunk_is_token(pc, CT_OC_END)
- || ( chunk_is_semicolon(pc)
- && frm.top().type != CT_PAREN_OPEN
- && frm.top().type != CT_FPAREN_OPEN
- && frm.top().type != CT_SPAREN_OPEN)
- || chunk_is_token(pc, CT_MACRO)) // Issue #2742
- {
- LOG_FMT(LSTMT, "%s(%d): orig_line is %zu, reset1 stmt on '%s'\n",
- __func__, __LINE__, pc->orig_line, pc->text());
- frm.stmt_count = 0;
- frm.expr_count = 0;
- LOG_FMT(LTOK, "%s(%d): frm.stmt_count is %zu, frm.expr_count is %zu\n",
- __func__, __LINE__, frm.stmt_count, frm.expr_count);
- }
- // Mark expression starts
- LOG_FMT(LSTMT, "%s(%d): Mark expression starts: orig_line is %zu, orig_col is %zu, text() is '%s'\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text());
- chunk_t *tmp = chunk_get_next_ncnnl(pc);
-
- if ( chunk_is_token(pc, CT_ARITH)
- || chunk_is_token(pc, CT_SHIFT)
- || chunk_is_token(pc, CT_ASSIGN)
- || chunk_is_token(pc, CT_CASE)
- || chunk_is_token(pc, CT_COMPARE)
- || ( chunk_is_token(pc, CT_STAR)
- && chunk_is_not_token(tmp, CT_STAR))
- || chunk_is_token(pc, CT_BOOL)
- || chunk_is_token(pc, CT_MINUS)
- || chunk_is_token(pc, CT_PLUS)
- || chunk_is_token(pc, CT_CARET)
- || chunk_is_token(pc, CT_ANGLE_OPEN)
- || chunk_is_token(pc, CT_ANGLE_CLOSE)
- || chunk_is_token(pc, CT_RETURN)
- || chunk_is_token(pc, CT_THROW)
- || chunk_is_token(pc, CT_GOTO)
- || chunk_is_token(pc, CT_CONTINUE)
- || chunk_is_token(pc, CT_PAREN_OPEN)
- || chunk_is_token(pc, CT_FPAREN_OPEN)
- || chunk_is_token(pc, CT_SPAREN_OPEN)
- || chunk_is_token(pc, CT_BRACE_OPEN)
- || chunk_is_semicolon(pc)
- || chunk_is_token(pc, CT_COMMA)
- || chunk_is_token(pc, CT_NOT)
- || chunk_is_token(pc, CT_INV)
- || chunk_is_token(pc, CT_COLON)
- || chunk_is_token(pc, CT_QUESTION))
- {
- frm.expr_count = 0;
- LOG_FMT(LSTMT, "%s(%d): orig_line is %zu, orig_col is %zu, reset expr on '%s'\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text());
- }
-} // parse_cleanup
-
-
-static bool check_complex_statements(ParseFrame &frm, chunk_t *pc, const BraceState &braceState)
-{
- LOG_FUNC_ENTRY();
-
- brace_stage_e atest = frm.top().stage;
-
- LOG_FMT(LBCSPOP, "%s(%d): atest is %s\n",
- __func__, __LINE__, get_brace_stage_name(atest));
-
- // Turn an optional parenthesis into either a real parenthesis or a brace
- if (frm.top().stage == brace_stage_e::OP_PAREN1)
- {
- frm.top().stage = (chunk_is_not_token(pc, CT_PAREN_OPEN))
- ? brace_stage_e::BRACE2
- : brace_stage_e::PAREN1;
- LOG_FMT(LBCSPOP, "%s(%d): frm.top().stage is now %s\n",
- __func__, __LINE__, get_brace_stage_name(frm.top().stage));
- }
-
- // Check for CT_ELSE after CT_IF
- while (frm.top().stage == brace_stage_e::ELSE)
- {
- if (chunk_is_token(pc, CT_ELSE))
- {
- // Replace CT_IF with CT_ELSE on the stack & we are done
- frm.top().type = CT_ELSE;
- frm.top().stage = brace_stage_e::ELSEIF;
- print_stack(LBCSSWAP, "=Swap ", frm);
-
- return(true);
- }
- // Remove the CT_IF and close the statement
- LOG_FMT(LBCSPOP, "%s(%d): pc->orig_line is %zu, orig_col is %zu, text() is '%s', type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(), get_token_name(pc->type));
- frm.pop(__func__, __LINE__);
- print_stack(LBCSPOP, "-IF-CCS ", frm);
-
- if (close_statement(frm, pc, braceState))
- {
- return(true);
- }
- }
-
- // Check for CT_IF after CT_ELSE
- if (frm.top().stage == brace_stage_e::ELSEIF)
- {
- log_rule_B("indent_else_if");
-
- if ( chunk_is_token(pc, CT_IF)
- && ( !options::indent_else_if()
- || !chunk_is_newline(chunk_get_prev_nc(pc))))
- {
- // Replace CT_ELSE with CT_IF
- set_chunk_type(pc, CT_ELSEIF);
- frm.top().type = CT_ELSEIF;
- frm.top().stage = brace_stage_e::PAREN1;
- return(true);
- }
- // Jump to the 'expecting brace' stage
- frm.top().stage = brace_stage_e::BRACE2;
- }
-
- // Check for CT_CATCH or CT_FINALLY after CT_TRY or CT_CATCH
- while (frm.top().stage == brace_stage_e::CATCH)
- {
- if ( chunk_is_token(pc, CT_CATCH)
- || chunk_is_token(pc, CT_FINALLY))
- {
- // Replace CT_TRY with CT_CATCH or CT_FINALLY on the stack & we are done
- frm.top().type = pc->type;
-
- if (language_is_set(LANG_CS))
- {
- frm.top().stage = (chunk_is_token(pc, CT_CATCH)) ? brace_stage_e::CATCH_WHEN : brace_stage_e::BRACE2;
- }
- else
- {
- // historically this used OP_PAREN1; however, to my knowledge the expression after a catch clause
- // is only optional for C# which has been handled above; therefore, this should now always expect
- // a parenthetical expression after the catch keyword and brace after the finally keyword
- frm.top().stage = (chunk_is_token(pc, CT_CATCH)) ? brace_stage_e::PAREN1 : brace_stage_e::BRACE2;
- }
- print_stack(LBCSSWAP, "=Swap ", frm);
-
- return(true);
- }
- // Remove the CT_TRY and close the statement
- LOG_FMT(LBCSPOP, "%s(%d): pc->orig_line is %zu, orig_col is %zu, text() is '%s', type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(), get_token_name(pc->type));
- frm.pop(__func__, __LINE__);
- print_stack(LBCSPOP, "-TRY-CCS ", frm);
-
- if (close_statement(frm, pc, braceState))
- {
- return(true);
- }
- }
-
- // Check for optional parenthesis and optional CT_WHEN after CT_CATCH
- if (frm.top().stage == brace_stage_e::CATCH_WHEN)
- {
- if (chunk_is_token(pc, CT_PAREN_OPEN)) // this is for the paren after "catch"
- {
- // Replace CT_PAREN_OPEN with CT_SPAREN_OPEN
- set_chunk_type(pc, CT_SPAREN_OPEN);
- frm.top().type = pc->type;
- frm.top().stage = brace_stage_e::PAREN1;
-
- return(false);
- }
-
- if (chunk_is_token(pc, CT_WHEN))
- {
- frm.top().type = pc->type;
- frm.top().stage = brace_stage_e::OP_PAREN1;
-
- return(true);
- }
-
- if (chunk_is_token(pc, CT_BRACE_OPEN))
- {
- frm.top().stage = brace_stage_e::BRACE2;
-
- return(false);
- }
- }
-
- // Check for CT_WHILE after the CT_DO
- if (frm.top().stage == brace_stage_e::WHILE)
- {
- if (chunk_is_token(pc, CT_WHILE))
- {
- set_chunk_type(pc, CT_WHILE_OF_DO);
- frm.top().type = CT_WHILE_OF_DO; //CT_WHILE;
- frm.top().stage = brace_stage_e::WOD_PAREN;
-
- return(true);
- }
- LOG_FMT(LWARN, "%s(%d): %s, orig_line is %zu, Error: Expected 'while', got '%s'\n",
- __func__, __LINE__, cpd.filename.c_str(), pc->orig_line,
- pc->text());
- LOG_FMT(LBCSPOP, "%s(%d): pc->orig_line is %zu, orig_col is %zu, text() is '%s', type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(), get_token_name(pc->type));
- frm.pop(__func__, __LINE__);
- print_stack(LBCSPOP, "-Error ", frm);
- cpd.error_count++;
- }
- // Insert a CT_VBRACE_OPEN, if needed
- // but not in a preprocessor
- atest = frm.top().stage;
-
- if ( chunk_is_not_token(pc, CT_BRACE_OPEN)
- && !pc->flags.test(PCF_IN_PREPROC)
- && ( (frm.top().stage == brace_stage_e::BRACE2)
- || (frm.top().stage == brace_stage_e::BRACE_DO)))
- {
- log_rule_B("indent_using_block");
-
- if ( language_is_set(LANG_CS)
- && chunk_is_token(pc, CT_USING_STMT)
- && (!options::indent_using_block()))
- {
- // don't indent the using block
- }
- else
- {
- const c_token_t parent = frm.top().type;
-
- chunk_t *vbrace = insert_vbrace_open_before(pc, frm);
- set_chunk_parent(vbrace, parent);
-
- frm.level++;
- frm.brace_level++;
- LOG_FMT(LBCSPOP, "%s(%d): frm.brace_level increased to %zu\n",
- __func__, __LINE__, frm.brace_level);
- log_pcf_flags(LBCSPOP, pc->flags);
-
- frm.push(vbrace, __func__, __LINE__, brace_stage_e::NONE);
- // "+VBrace");
-
- frm.top().parent = parent;
-
- // update the level of pc
- pc->level = frm.level;
- pc->brace_level = frm.brace_level;
-
- // Mark as a start of a statement
- frm.stmt_count = 0;
- frm.expr_count = 0;
- LOG_FMT(LTOK, "%s(%d): frm.stmt_count is %zu, frm.expr_count is %zu\n",
- __func__, __LINE__, frm.stmt_count, frm.expr_count);
- chunk_flags_set(pc, PCF_STMT_START | PCF_EXPR_START);
- frm.stmt_count = 1;
- frm.expr_count = 1;
- LOG_FMT(LSTMT, "%s(%d): orig_line is %zu, 2.marked '%s' as stmt start\n",
- __func__, __LINE__, pc->orig_line, pc->text());
- }
- }
-
- // Check for "constexpr" after CT_IF or CT_ELSEIF
- if ( frm.top().stage == brace_stage_e::PAREN1
- && ( frm.top().type == CT_IF
- || frm.top().type == CT_ELSEIF)
- && chunk_is_token(pc, CT_CONSTEXPR))
- {
- return(false);
- }
-
- // Verify open parenthesis in complex statement
- if ( chunk_is_not_token(pc, CT_PAREN_OPEN)
- && ( (frm.top().stage == brace_stage_e::PAREN1)
- || (frm.top().stage == brace_stage_e::WOD_PAREN)))
- {
- LOG_FMT(LWARN, "%s(%d): %s, orig_line is %zu, Error: Expected '(', got '%s' for '%s'\n",
- __func__, __LINE__, cpd.filename.c_str(), pc->orig_line, pc->text(),
- get_token_name(frm.top().type));
-
- // Throw out the complex statement
- LOG_FMT(LBCSPOP, "%s(%d): pc->orig_line is %zu, orig_col is %zu, text() is '%s', type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(), get_token_name(pc->type));
- frm.pop(__func__, __LINE__);
- print_stack(LBCSPOP, "-Error ", frm);
- cpd.error_count++;
- }
- return(false);
-} // check_complex_statements
-
-
-static bool handle_complex_close(ParseFrame &frm, chunk_t *pc, const BraceState &braceState)
-{
- LOG_FUNC_ENTRY();
-
- if (frm.top().stage == brace_stage_e::PAREN1)
- {
- if ( pc->next != nullptr
- && pc->next->type == CT_WHEN)
- {
- frm.top().type = pc->type;
- frm.top().stage = brace_stage_e::CATCH_WHEN;
-
- return(true);
- }
- // PAREN1 always => BRACE2
- frm.top().stage = brace_stage_e::BRACE2;
- }
- else if (frm.top().stage == brace_stage_e::BRACE2)
- {
- // BRACE2: IF => ELSE, anything else => close
- if ( (frm.top().type == CT_IF)
- || (frm.top().type == CT_ELSEIF))
- {
- frm.top().stage = brace_stage_e::ELSE;
-
- // If the next chunk isn't CT_ELSE, close the statement
- chunk_t *next = chunk_get_next_ncnnl(pc);
-
- if ( next == nullptr
- || chunk_is_not_token(next, CT_ELSE))
- {
- LOG_FMT(LBCSPOP, "%s(%d): no CT_ELSE, pc->orig_line is %zu, orig_col is %zu, text() is '%s', type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(), get_token_name(pc->type));
- frm.pop(__func__, __LINE__);
- print_stack(LBCSPOP, "-IF-HCS ", frm);
-
- return(close_statement(frm, pc, braceState));
- }
- }
- else if ( (frm.top().type == CT_TRY)
- || (frm.top().type == CT_CATCH))
- {
- frm.top().stage = brace_stage_e::CATCH;
-
- // If the next chunk isn't CT_CATCH or CT_FINALLY, close the statement
- chunk_t *next = chunk_get_next_ncnnl(pc);
-
- if ( chunk_is_not_token(next, CT_CATCH)
- && chunk_is_not_token(next, CT_FINALLY))
- {
- LOG_FMT(LBCSPOP, "%s(%d): pc->orig_line is %zu, orig_col is %zu, text() is '%s', type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(), get_token_name(pc->type));
- frm.pop(__func__, __LINE__);
- print_stack(LBCSPOP, "-TRY-HCS ", frm);
-
- return(close_statement(frm, pc, braceState));
- }
- }
- else
- {
- LOG_FMT(LNOTE, "%s(%d): close_statement on %s brace_stage_e::BRACE2\n",
- __func__, __LINE__, get_token_name(frm.top().type));
- LOG_FMT(LBCSPOP, "%s(%d): pc->orig_line is %zu, orig_col is %zu, text() is '%s', type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(), get_token_name(pc->type));
- frm.pop(__func__, __LINE__);
- print_stack(LBCSPOP, "-HCC B2 ", frm);
-
- return(close_statement(frm, pc, braceState));
- }
- }
- else if (frm.top().stage == brace_stage_e::BRACE_DO)
- {
- frm.top().stage = brace_stage_e::WHILE;
- }
- else if (frm.top().stage == brace_stage_e::WOD_PAREN)
- {
- LOG_FMT(LNOTE, "%s(%d): close_statement on %s brace_stage_e::WOD_PAREN\n",
- __func__, __LINE__, get_token_name(frm.top().type));
- frm.top().stage = brace_stage_e::WOD_SEMI;
- print_stack(LBCSPOP, "-HCC WoDP ", frm);
- }
- else if (frm.top().stage == brace_stage_e::WOD_SEMI)
- {
- LOG_FMT(LNOTE, "%s(%d): close_statement on %s brace_stage_e::WOD_SEMI\n",
- __func__, __LINE__, get_token_name(frm.top().type));
- LOG_FMT(LBCSPOP, "%s(%d): pc->orig_line is %zu, orig_col is %zu, text() is '%s', type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(), get_token_name(pc->type));
- frm.pop(__func__, __LINE__);
- print_stack(LBCSPOP, "-HCC WoDS ", frm);
-
- return(close_statement(frm, pc, braceState));
- }
- else
- {
- // PROBLEM
- LOG_FMT(LWARN, "%s(%d): %s:%zu Error: TOS.type='%s' TOS.stage=%u\n",
- __func__, __LINE__, cpd.filename.c_str(), pc->orig_line,
- get_token_name(frm.top().type),
- (unsigned int)frm.top().stage);
- cpd.error_count++;
- }
- return(false);
-} // handle_complex_close
-
-
-static void mark_namespace(chunk_t *pns)
-{
- LOG_FUNC_ENTRY();
- // Issue #1813
- chunk_t *br_close;
- bool is_using = false;
-
- chunk_t *pc = chunk_get_prev_ncnnl(pns);
-
- if (chunk_is_token(pc, CT_USING))
- {
- is_using = true;
- set_chunk_parent(pns, CT_USING);
- }
- pc = chunk_get_next_ncnnl(pns);
-
- while (pc != nullptr)
- {
- set_chunk_parent(pc, CT_NAMESPACE);
-
- if (chunk_is_not_token(pc, CT_BRACE_OPEN))
- {
- if (chunk_is_token(pc, CT_SEMICOLON))
- {
- if (is_using)
- {
- set_chunk_parent(pc, CT_USING);
- }
- return;
- }
- pc = chunk_get_next_ncnnl(pc);
- continue;
- }
- log_rule_B("indent_namespace_limit");
-
- if ( (options::indent_namespace_limit() > 0)
- && ((br_close = chunk_skip_to_match(pc)) != nullptr))
- {
- // br_close->orig_line is always >= pc->orig_line;
- size_t numberOfLines = br_close->orig_line - pc->orig_line - 1; // Issue #2345
- LOG_FMT(LTOK, "%s(%d): br_close->orig_line is %zu, pc->orig_line is %zu\n",
- __func__, __LINE__, br_close->orig_line, pc->orig_line);
- LOG_FMT(LTOK, "%s(%d): numberOfLines is %zu, indent_namespace_limit() is %d\n",
- __func__, __LINE__, numberOfLines, options::indent_namespace_limit());
-
- log_rule_B("indent_namespace_limit");
-
- if (numberOfLines > options::indent_namespace_limit())
- {
- LOG_FMT(LTOK, "%s(%d): PCF_LONG_BLOCK is set\n", __func__, __LINE__);
- chunk_flags_set(pc, PCF_LONG_BLOCK);
- chunk_flags_set(br_close, PCF_LONG_BLOCK);
- }
- }
- flag_parens(pc, PCF_IN_NAMESPACE, CT_NONE, CT_NAMESPACE, false);
- return;
- }
-} // mark_namespace
-
-
-static chunk_t *insert_vbrace(chunk_t *pc, bool after, const ParseFrame &frm)
-{
- LOG_FUNC_ENTRY();
-
- chunk_t chunk;
-
- set_chunk_parent(&chunk, frm.top().type);
- chunk.orig_line = pc->orig_line;
- chunk.level = frm.level;
- chunk.pp_level = frm.pp_level;
- chunk.brace_level = frm.brace_level;
- chunk.flags = pc->flags & PCF_COPY_FLAGS;
- chunk.str = "";
-
- if (after)
- {
- chunk.orig_col = pc->orig_col;
- set_chunk_type(&chunk, CT_VBRACE_CLOSE);
- return(chunk_add_after(&chunk, pc));
- }
- chunk_t *ref = chunk_get_prev(pc);
-
- if (ref == nullptr)
- {
- return(nullptr);
- }
-
- if (!ref->flags.test(PCF_IN_PREPROC))
- {
- chunk.flags &= ~PCF_IN_PREPROC;
- }
- bool ref_is_comment = chunk_is_comment(ref); // Issue #3351
-
- while ( chunk_is_newline(ref)
- || chunk_is_comment(ref))
- {
- ref->level++;
- ref->brace_level++;
- ref = chunk_get_prev(ref);
- }
-
- if (ref == nullptr)
- {
- return(nullptr);
- }
-
- // Don't back into a preprocessor
- if ( !pc->flags.test(PCF_IN_PREPROC)
- && ref->flags.test(PCF_IN_PREPROC))
- {
- if (chunk_is_token(ref, CT_PREPROC_BODY))
- {
- while ( ref != nullptr
- && ref->flags.test(PCF_IN_PREPROC))
- {
- ref = chunk_get_prev(ref);
- }
- }
- else
- {
- ref = chunk_get_next(ref);
-
- if (chunk_is_token(ref, CT_COMMENT)) // Issue #3034
- {
- ref = chunk_get_next_nc(ref);
- }
- }
- }
-
- if (ref_is_comment) // Issue #3351
- {
- ref = chunk_get_next(ref);
- }
-
- if (ref == nullptr)
- {
- return(nullptr);
- }
- chunk.orig_line = ref->orig_line;
- chunk.orig_col = ref->orig_col;
- chunk.column = ref->column + ref->len() + 1;
- chunk.pp_level = ref->pp_level; // Issue #3055
- set_chunk_type(&chunk, CT_VBRACE_OPEN);
-
- return(chunk_add_after(&chunk, ref));
-} // insert_vbrace
-
-
-bool close_statement(ParseFrame &frm, chunk_t *pc, const BraceState &braceState)
-{
- LOG_FUNC_ENTRY();
-
- if (pc == nullptr)
- {
- throw invalid_argument(string(__func__) + ":" + to_string(__LINE__)
- + "args cannot be nullptr");
- }
- LOG_FMT(LTOK, "%s(%d): orig_line is %zu, type is %s, '%s' type is %s, stage is %u\n",
- __func__, __LINE__, pc->orig_line,
- get_token_name(pc->type), pc->text(),
- get_token_name(frm.top().type),
- (unsigned int)frm.top().stage);
-
- if (braceState.consumed)
- {
- frm.stmt_count = 0;
- frm.expr_count = 0;
- LOG_FMT(LSTMT, "%s(%d): orig_line is %zu> reset2 stmt on '%s'\n",
- __func__, __LINE__, pc->orig_line, pc->text());
- }
- /*
- * Insert a CT_VBRACE_CLOSE, if needed:
- * If we are in a virtual brace and we are not ON a CT_VBRACE_CLOSE add one
- */
- chunk_t *vbc = pc;
-
- if (frm.top().type == CT_VBRACE_OPEN)
- {
- // If the current token has already been consumed, then add after it
- if (braceState.consumed)
- {
- insert_vbrace_close_after(pc, frm);
- }
- else
- {
- // otherwise, add before it and consume the vbrace
- vbc = chunk_get_prev_ncnnl(pc);
-
- frm.level--;
- frm.brace_level--;
- vbc = insert_vbrace_close_after(vbc, frm);
- set_chunk_parent(vbc, frm.top().parent);
-
- LOG_FMT(LBCSPOP, "%s(%d): frm.brace_level decreased to %zu\n",
- __func__, __LINE__, frm.brace_level);
- log_pcf_flags(LBCSPOP, pc->flags);
- LOG_FMT(LBCSPOP, "%s(%d): pc->orig_line is %zu, orig_col is %zu, text() is '%s', type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(), get_token_name(pc->type));
- frm.pop(__func__, __LINE__);
-
- // Update the token level
- pc->level = frm.level;
- pc->brace_level = frm.brace_level;
-
- print_stack(LBCSPOP, "-CS VB ", frm);
-
- // And repeat the close
- close_statement(frm, pc, braceState);
- return(true);
- }
- }
-
- // See if we are done with a complex statement
- if (frm.top().stage != brace_stage_e::NONE)
- {
- if (handle_complex_close(frm, vbc, braceState))
- {
- return(true);
- }
- }
- return(false);
-} // close_statement
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/braces.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/braces.cpp
deleted file mode 100644
index f13c0076..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/braces.cpp
+++ /dev/null
@@ -1,1629 +0,0 @@
-/**
- * @file braces.cpp
- * Adds or removes braces.
- *
- * @author Ben Gardner
- * @license GPL v2+
- */
-
-#include "braces.h"
-
-#include "calculate_closing_brace_position.h"
-#include "combine_tools.h"
-#include "newlines.h"
-#include "prototypes.h"
-
-constexpr static auto LCURRENT = LBR;
-
-using namespace uncrustify;
-
-using std::vector;
-
-
-//! Converts a single brace into a virtual brace
-static void convert_brace(chunk_t *br);
-
-
-//! Converts a single virtual brace into a real brace
-static void convert_vbrace(chunk_t *br);
-
-
-static void convert_vbrace_to_brace(void);
-
-
-//! Go backwards to honor brace newline removal limits
-static void examine_braces(void);
-
-
-/**
- * Step forward and count the number of semi colons at the current level.
- * Abort if more than 1 or if we enter a preprocessor
- */
-static void examine_brace(chunk_t *bopen);
-
-
-static void move_case_break(void);
-
-
-static void mod_case_brace(void);
-
-
-static void mod_full_brace_if_chain(void);
-
-
-/**
- * Checks to see if the braces can be removed.
- * - less than a certain length
- * - doesn't mess up if/else stuff
- */
-static bool can_remove_braces(chunk_t *bopen);
-
-
-/**
- * Checks to see if the virtual braces should be converted to real braces.
- * - over a certain length
- *
- * @param vbopen Virtual Brace Open chunk
- *
- * @return true (convert to real braces) or false (leave alone)
- */
-static bool should_add_braces(chunk_t *vbopen);
-
-
-/**
- * Collect the text into txt that contains the full tag name.
- * Mainly for collecting namespace 'a.b.c' or function 'foo::bar()' names.
- */
-static void append_tag_name(unc_text &txt, chunk_t *pc);
-
-
-//! Remove the case brace, if allowable.
-static chunk_t *mod_case_brace_remove(chunk_t *br_open);
-
-
-//! Add the case brace, if allowable.
-static chunk_t *mod_case_brace_add(chunk_t *cl_colon);
-
-
-/**
- * Traverse the if chain and see if all can be removed
- *
- * @param br_start chunk pointing to opening brace of if clause
- */
-static void process_if_chain(chunk_t *br_start);
-
-
-/**
- * Check if parenthesis pair that comes before a brace spans multiple lines
- *
- *
- * @param brace the brace chunk whose predecessing parenthesis will be checked
- *
- * @pre the brace chunk cannot be a nullptr,
- * it needs to be of type CT_BRACE_OPEN or CT_BRACE_CLOSE,
- * its parent type needs to be one of this types:
- * CT_IF, CT_ELSEIF, CT_FOR, CT_USING_STMT, CT_WHILE,
- * CT_FUNC_CLASS_DEF, CT_FUNC_DEF
- *
- * @return false: if preconditions are not met,
- * if an error occurs while counting the newline between the
- * parenthesis or
- * when no newlines are found between the parenthesis
- */
-static bool paren_multiline_before_brace(chunk_t *brace)
-{
- if ( brace == nullptr
- || ( chunk_is_not_token(brace, CT_BRACE_OPEN)
- && chunk_is_not_token(brace, CT_BRACE_CLOSE))
- || ( get_chunk_parent_type(brace) != CT_IF
- && get_chunk_parent_type(brace) != CT_ELSEIF
- && get_chunk_parent_type(brace) != CT_FOR
- && get_chunk_parent_type(brace) != CT_USING_STMT
- && get_chunk_parent_type(brace) != CT_WHILE
- && get_chunk_parent_type(brace) != CT_FUNC_CLASS_DEF
- && get_chunk_parent_type(brace) != CT_FUNC_DEF))
- {
- return(false);
- }
- const auto paren_t = CT_SPAREN_CLOSE;
-
- // find parenthesis pair of the if/for/while/...
- auto paren_close = chunk_get_prev_type(brace, paren_t, brace->level, scope_e::ALL);
- auto paren_open = chunk_skip_to_match_rev(paren_close, scope_e::ALL);
-
- if ( paren_close == nullptr
- || paren_open == nullptr
- || paren_close == brace
- || paren_open == paren_close)
- {
- return(false);
- }
- // determine number of lines in the parenthesis pair spans
- auto nl_count = size_t{};
- const auto ret_flag = newlines_between(paren_open, paren_close, nl_count);
-
- if (!ret_flag)
- {
- LOG_FMT(LERR, "%s(%d): newlines_between error\n", __func__, __LINE__);
- return(false);
- }
- // nl_count = 0 -> 1 line
- return(nl_count > 0);
-}
-
-
-void do_braces(void)
-{
- LOG_FUNC_ENTRY();
- // Mark one-liners
- // Issue #2232 put this at the beginning
- chunk_t *pc = chunk_get_head();
-
- while ((pc = chunk_get_next_ncnnl(pc)) != nullptr)
- {
- if ( chunk_is_not_token(pc, CT_BRACE_OPEN)
- && chunk_is_not_token(pc, CT_VBRACE_OPEN))
- {
- continue;
- }
- chunk_t *br_open = pc;
- const c_token_t brc_type = c_token_t(pc->type + 1); // corresponds to closing type
- // Detect empty bodies
- chunk_t *tmp = chunk_get_next_ncnnl(pc);
-
- if (chunk_is_token(tmp, brc_type))
- {
- chunk_flags_set(br_open, PCF_EMPTY_BODY);
- chunk_flags_set(tmp, PCF_EMPTY_BODY);
- }
- // Scan for the brace close or a newline
- tmp = br_open;
-
- while ((tmp = chunk_get_next_nc(tmp)) != nullptr)
- {
- if (chunk_is_newline(tmp))
- {
- break;
- }
-
- if ( chunk_is_token(tmp, brc_type)
- && br_open->level == tmp->level)
- {
- flag_series(br_open, tmp, PCF_ONE_LINER);
- break;
- }
- }
- }
- log_rule_B("mod_full_brace_if_chain");
- log_rule_B("mod_full_brace_if_chain_only");
-
- if ( options::mod_full_brace_if_chain()
- || options::mod_full_brace_if_chain_only())
- {
- mod_full_brace_if_chain();
- }
- log_rule_B("mod_full_brace_if");
- log_rule_B("mod_full_brace_do");
- log_rule_B("mod_full_brace_for");
- log_rule_B("mod_full_brace_using");
- log_rule_B("mod_full_brace_while");
-
- if ((options::mod_full_brace_if() |
- options::mod_full_brace_do() |
- options::mod_full_brace_for() |
- options::mod_full_brace_using() |
- options::mod_full_brace_while()) & IARF_REMOVE)
- {
- examine_braces();
- }
- // convert vbraces if needed
- log_rule_B("mod_full_brace_if");
- log_rule_B("mod_full_brace_do");
- log_rule_B("mod_full_brace_for");
- log_rule_B("mod_full_brace_function");
- log_rule_B("mod_full_brace_using");
- log_rule_B("mod_full_brace_while");
-
- if ((options::mod_full_brace_if() |
- options::mod_full_brace_do() |
- options::mod_full_brace_for() |
- options::mod_full_brace_function() |
- options::mod_full_brace_using() |
- options::mod_full_brace_while()) & IARF_ADD)
- {
- convert_vbrace_to_brace();
- }
- log_rule_B("mod_case_brace");
-
- if (options::mod_case_brace() != IARF_IGNORE)
- {
- mod_case_brace();
- }
- log_rule_B("mod_move_case_break");
-
- if (options::mod_move_case_break())
- {
- move_case_break();
- }
-} // do_braces
-
-
-static void examine_braces(void)
-{
- LOG_FUNC_ENTRY();
-
- log_rule_B("mod_full_brace_nl_block_rem_mlcond");
- const auto multiline_block = options::mod_full_brace_nl_block_rem_mlcond();
-
- log_rule_B("mod_full_brace_if");
- log_rule_B("mod_full_brace_do");
- log_rule_B("mod_full_brace_for");
- log_rule_B("mod_full_brace_using");
- log_rule_B("mod_full_brace_while");
-
- for (auto pc = chunk_get_tail(); pc != nullptr;)
- {
- auto prev = chunk_get_prev_type(pc, CT_BRACE_OPEN, -1);
-
- if ( chunk_is_token(pc, CT_BRACE_OPEN)
- && !pc->flags.test(PCF_IN_PREPROC)
- && ( ( ( get_chunk_parent_type(pc) == CT_IF
- || get_chunk_parent_type(pc) == CT_ELSE
- || get_chunk_parent_type(pc) == CT_ELSEIF)
- && options::mod_full_brace_if() == IARF_REMOVE)
- || ( get_chunk_parent_type(pc) == CT_DO
- && options::mod_full_brace_do() == IARF_REMOVE)
- || ( get_chunk_parent_type(pc) == CT_FOR
- && options::mod_full_brace_for() == IARF_REMOVE)
- || ( get_chunk_parent_type(pc) == CT_USING_STMT
- && options::mod_full_brace_using() == IARF_REMOVE)
- || ( get_chunk_parent_type(pc) == CT_WHILE
- && options::mod_full_brace_while() == IARF_REMOVE)))
- {
- if ( multiline_block
- && paren_multiline_before_brace(pc))
- {
- pc = prev;
- continue;
- }
- examine_brace(pc);
- }
- pc = prev;
- }
-} // examine_braces
-
-
-static bool should_add_braces(chunk_t *vbopen)
-{
- LOG_FUNC_ENTRY();
- log_rule_B("mod_full_brace_nl");
- const size_t nl_max = options::mod_full_brace_nl();
-
- if (nl_max == 0)
- {
- return(false);
- }
- LOG_FMT(LBRDEL, "%s(%d): start on %zu:\n",
- __func__, __LINE__, vbopen->orig_line);
-
- size_t nl_count = 0;
-
- chunk_t *pc = nullptr;
-
- for (pc = chunk_get_next_nc(vbopen, scope_e::PREPROC);
- (pc != nullptr && pc->level > vbopen->level);
- pc = chunk_get_next_nc(pc, scope_e::PREPROC))
- {
- if (chunk_is_newline(pc))
- {
- nl_count += pc->nl_count;
- }
- }
-
- if ( pc != nullptr
- && nl_count > nl_max
- && vbopen->pp_level == pc->pp_level)
- {
- LOG_FMT(LBRDEL, "%s(%d): exceeded %zu newlines\n",
- __func__, __LINE__, nl_max);
- return(true);
- }
- return(false);
-}
-
-
-static bool can_remove_braces(chunk_t *bopen)
-{
- LOG_FUNC_ENTRY();
- LOG_FMT(LBRDEL, "%s(%d): start on line %zu:\n",
- __func__, __LINE__, bopen->orig_line);
-
- // Cannot remove braces inside a preprocessor
- if (bopen->flags.test(PCF_IN_PREPROC))
- {
- return(false);
- }
- chunk_t *pc = chunk_get_next_ncnnl(bopen, scope_e::PREPROC);
-
- if (chunk_is_token(pc, CT_BRACE_CLOSE))
- {
- // Can't remove empty statement
- return(false);
- }
- const size_t level = bopen->level + 1;
-
- log_rule_B("mod_full_brace_nl");
- const size_t nl_max = options::mod_full_brace_nl();
- chunk_t *prev = nullptr;
-
- size_t semi_count = 0;
- bool hit_semi = false;
- size_t nl_count = 0;
- size_t if_count = 0;
- int br_count = 0;
-
- pc = chunk_get_next_nc(bopen, scope_e::ALL);
- LOG_FMT(LBRDEL, "%s(%d): - begin with token '%s', orig_line is %zu, orig_col is %zu\n",
- __func__, __LINE__, pc->text(), pc->orig_line, pc->orig_col);
-
- while ( pc != nullptr
- && pc->level >= level)
- {
- LOG_FMT(LBRDEL, "%s(%d): test token '%s', orig_line is %zu, orig_col is %zu\n",
- __func__, __LINE__, pc->text(), pc->orig_line, pc->orig_col);
-
- if (pc->flags.test(PCF_IN_PREPROC))
- {
- // Cannot remove braces that contain a preprocessor
- return(false);
- }
-
- if (chunk_is_newline(pc))
- {
- nl_count += pc->nl_count;
-
- if ( nl_max > 0
- && nl_count > nl_max)
- {
- LOG_FMT(LBRDEL, "%s(%d): exceeded %zu newlines\n",
- __func__, __LINE__, nl_max);
- return(false);
- }
- }
- else
- {
- if (chunk_is_token(pc, CT_BRACE_OPEN))
- {
- br_count++;
- }
- else if (chunk_is_token(pc, CT_BRACE_CLOSE))
- {
- if (br_count == 0)
- {
- fprintf(stderr, "%s(%d): br_count is ZERO, cannot be decremented, at line %zu, column %zu\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col);
- log_flush(true);
- exit(EX_SOFTWARE);
- }
- br_count--;
-
- if (pc->level == level)
- {
- // mean a statement in a braces { stmt; }
- // as a statement with a semicolon { stmt; };
- ++semi_count;
- hit_semi = true;
- }
- }
- else if ( ( chunk_is_token(pc, CT_IF)
- || chunk_is_token(pc, CT_ELSEIF))
- && br_count == 0)
- {
- if_count++;
- }
-
- if (pc->level == level)
- {
- if ( semi_count > 0
- && hit_semi)
- {
- // should have bailed due to close brace level drop
- LOG_FMT(LBRDEL, "%s(%d): no close brace\n", __func__, __LINE__);
- return(false);
- }
- LOG_FMT(LBRDEL, "%s(%d): text() '%s', orig_line is %zu, semi_count is %zu\n",
- __func__, __LINE__, pc->text(), pc->orig_line, semi_count);
-
- if (chunk_is_token(pc, CT_ELSE))
- {
- LOG_FMT(LBRDEL, "%s(%d): bailed on '%s' on line %zu\n",
- __func__, __LINE__, pc->text(), pc->orig_line);
- return(false);
- }
-
- if ( chunk_is_semicolon(pc)
- || chunk_is_token(pc, CT_IF)
- || chunk_is_token(pc, CT_ELSEIF)
- || chunk_is_token(pc, CT_FOR)
- || chunk_is_token(pc, CT_DO)
- || chunk_is_token(pc, CT_WHILE)
- || chunk_is_token(pc, CT_USING_STMT)
- || ( chunk_is_token(pc, CT_BRACE_OPEN)
- && chunk_is_token(prev, CT_FPAREN_CLOSE)))
- {
- hit_semi |= chunk_is_semicolon(pc);
-
- if (++semi_count > 1)
- {
- LOG_FMT(LBRDEL, "%s(%d): bailed on %zu because of '%s' on line %zu\n",
- __func__, __LINE__, bopen->orig_line, pc->text(), pc->orig_line);
- return(false);
- }
- }
- }
- }
- prev = pc;
- pc = chunk_get_next_nc(pc);
- }
-
- if (pc == nullptr)
- {
- LOG_FMT(LBRDEL, "%s(%d): pc is nullptr\n", __func__, __LINE__);
- return(false);
- }
-
- if ( chunk_is_token(pc, CT_BRACE_CLOSE)
- && get_chunk_parent_type(pc) == CT_IF)
- {
- chunk_t *next = chunk_get_next_ncnnl(pc, scope_e::PREPROC);
- chunk_t *tmp_prev = chunk_get_prev_ncnnl(pc, scope_e::PREPROC);
-
- if ( chunk_is_token(next, CT_ELSE)
- && ( chunk_is_token(tmp_prev, CT_BRACE_CLOSE)
- || chunk_is_token(tmp_prev, CT_VBRACE_CLOSE))
- && get_chunk_parent_type(tmp_prev) == CT_IF)
- {
- LOG_FMT(LBRDEL, "%s(%d): - bailed on '%s'[%s] on line %zu due to 'if' and 'else' sequence\n",
- __func__, __LINE__, get_token_name(pc->type), get_token_name(get_chunk_parent_type(pc)),
- pc->orig_line);
- return(false);
- }
- }
- LOG_FMT(LBRDEL, "%s(%d): - end on '%s' on line %zu. if_count is %zu semi_count is %zu\n",
- __func__, __LINE__, get_token_name(pc->type), pc->orig_line, if_count, semi_count);
-
- return( chunk_is_token(pc, CT_BRACE_CLOSE)
- && pc->pp_level == bopen->pp_level);
-} // can_remove_braces
-
-
-static void examine_brace(chunk_t *bopen)
-{
- LOG_FUNC_ENTRY();
- LOG_FMT(LBRDEL, "%s(%d): start on orig_line %zu, bopen->level is %zu\n",
- __func__, __LINE__, bopen->orig_line, bopen->level);
-
- const size_t level = bopen->level + 1;
-
- log_rule_B("mod_full_brace_nl");
- const size_t nl_max = options::mod_full_brace_nl();
-
- chunk_t *prev = nullptr;
- size_t semi_count = 0;
- bool hit_semi = false;
- size_t nl_count = 0;
- size_t if_count = 0;
- int br_count = 0;
-
- chunk_t *pc = chunk_get_next_nc(bopen);
-
- while ( pc != nullptr
- && pc->level >= level)
- {
- if (chunk_is_token(pc, CT_NEWLINE))
- {
- LOG_FMT(LBRDEL, "%s(%d): orig_line is %zu, orig_col is %zu, <Newline>\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col);
- }
- else
- {
- LOG_FMT(LBRDEL, "%s(%d): orig_line is %zu, orig_col is %zu, text() '%s'\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text());
- }
-
- if (pc->flags.test(PCF_IN_PREPROC))
- {
- // Cannot remove braces that contain a preprocessor
- LOG_FMT(LBRDEL, "%s(%d): PREPROC\n", __func__, __LINE__);
- return;
- }
-
- if (chunk_is_newline(pc))
- {
- nl_count += pc->nl_count;
-
- if ( nl_max > 0
- && nl_count > nl_max)
- {
- LOG_FMT(LBRDEL, "%s(%d): exceeded %zu newlines\n",
- __func__, __LINE__, nl_max);
- return;
- }
- }
- else
- {
- LOG_FMT(LBRDEL, "%s(%d): for pc->text() '%s', pc->level is %zu, bopen->level is %zu\n",
- __func__, __LINE__, pc->text(), pc->level, bopen->level);
-
- if ( chunk_is_token(pc, CT_BRACE_OPEN)
- && pc->level == bopen->level)
- {
- br_count++;
- LOG_FMT(LBRDEL, "%s(%d): br_count is now %d, pc->level is %zu, bopen->level is %zu\n",
- __func__, __LINE__, br_count, pc->level, bopen->level);
- }
- else if ( chunk_is_token(pc, CT_BRACE_CLOSE)
- && pc->level == bopen->level)
- {
- if (br_count == 0)
- {
- fprintf(stderr, "%s(%d): br_count is ZERO, cannot be decremented, at line %zu, column %zu\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col);
- log_flush(true);
- exit(EX_SOFTWARE);
- }
- br_count--;
- LOG_FMT(LBRDEL, "%s(%d): br_count is now %d, pc->level is %zu, bopen->level is %zu\n",
- __func__, __LINE__, br_count, pc->level, bopen->level);
-
- if (br_count == 0)
- {
- chunk_t *next = chunk_get_next_ncnnl(pc, scope_e::PREPROC);
-
- if ( next == nullptr
- || chunk_is_not_token(next, CT_BRACE_CLOSE))
- {
- LOG_FMT(LBRDEL, "%s(%d): junk after close brace\n", __func__, __LINE__);
- return;
- }
- }
- }
- else if ( ( chunk_is_token(pc, CT_IF)
- || chunk_is_token(pc, CT_ELSEIF))
- && br_count == 0)
- {
- if_count++;
- }
- LOG_FMT(LBRDEL, "%s(%d): pc->level is %zu, level is %zu\n",
- __func__, __LINE__, pc->level, level);
-
- if (pc->level == level)
- {
- if ( semi_count > 0
- && hit_semi)
- {
- // should have bailed due to close brace level drop
- LOG_FMT(LBRDEL, "%s(%d): no close brace\n", __func__, __LINE__);
- return;
- }
- LOG_FMT(LBRDEL, "%s(%d): text() '%s', orig_line is %zu, semi_count is %zu\n",
- __func__, __LINE__, pc->text(), pc->orig_line, semi_count);
-
- if (chunk_is_token(pc, CT_ELSE))
- {
- LOG_FMT(LBRDEL, "%s(%d): bailed on '%s' on line %zu\n",
- __func__, __LINE__, pc->text(), pc->orig_line);
- return;
- }
-
- if (prev != nullptr)
- {
- LOG_FMT(LBRDEL, "%s(%d): orig_line is %zu, orig_col is %zu, text() '%s', prev->text '%s', prev->type %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(), prev->text(), get_token_name(prev->type));
- }
- else
- {
- LOG_FMT(LBRDEL, "%s(%d): orig_line is %zu, orig_col is %zu, text() '%s', prev is nullptr\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text());
- }
- LOG_FMT(LBRDEL, "%s(%d): for pc->text() '%s', pc->level is %zu, bopen->level is %zu\n",
- __func__, __LINE__, pc->text(), pc->level, bopen->level);
-
- if ( chunk_is_semicolon(pc)
- || chunk_is_token(pc, CT_IF)
- || chunk_is_token(pc, CT_ELSEIF)
- || chunk_is_token(pc, CT_FOR)
- || chunk_is_token(pc, CT_DO)
- || chunk_is_token(pc, CT_WHILE)
- || chunk_is_token(pc, CT_SWITCH)
- || chunk_is_token(pc, CT_USING_STMT)
- || ( chunk_is_token(pc, CT_BRACE_OPEN)
- && pc->level == bopen->level)) // Issue #1758
- {
- LOG_FMT(LBRDEL, "%s(%d): pc->text() '%s', orig_line is %zu, orig_col is %zu, level is %zu\n",
- __func__, __LINE__, pc->text(), pc->orig_line, pc->orig_col, pc->level);
- hit_semi |= chunk_is_semicolon(pc);
- semi_count++;
- LOG_FMT(LBRDEL, "%s(%d): semi_count is %zu\n",
- __func__, __LINE__, semi_count);
-
- if (semi_count > 1)
- {
- LOG_FMT(LBRDEL, "%s(%d): bailed on %zu because of '%s' on line %zu\n",
- __func__, __LINE__, bopen->orig_line, pc->text(), pc->orig_line);
- return;
- }
- }
- }
- }
- prev = pc;
- pc = chunk_get_next(pc); // Issue #1907
- }
-
- if (pc == nullptr)
- {
- LOG_FMT(LBRDEL, "%s(%d): pc is nullptr\n", __func__, __LINE__);
- return;
- }
- LOG_FMT(LBRDEL, "%s(%d): - end on '%s' on line %zu. if_count is %zu, semi_count is %zu\n",
- __func__, __LINE__, get_token_name(pc->type), pc->orig_line, if_count, semi_count);
-
- if (chunk_is_token(pc, CT_BRACE_CLOSE))
- {
- chunk_t *next = chunk_get_next_ncnnl(pc);
-
- if (next != nullptr)
- {
- while (chunk_is_token(next, CT_VBRACE_CLOSE))
- {
- next = chunk_get_next_ncnnl(next);
- }
-
- if (next != nullptr)
- {
- LOG_FMT(LBRDEL, "%s(%d): orig_line is %zu, orig_col is %zu, next is '%s'\n",
- __func__, __LINE__, next->orig_line, next->orig_col, get_token_name(next->type));
- }
-
- if ( if_count > 0
- && ( chunk_is_token(next, CT_ELSE)
- || chunk_is_token(next, CT_ELSEIF)))
- {
- LOG_FMT(LBRDEL, "%s(%d): bailed on because 'else' is next and %zu ifs\n",
- __func__, __LINE__, if_count);
- return;
- }
- }
- LOG_FMT(LBRDEL, "%s(%d): semi_count is %zu\n",
- __func__, __LINE__, semi_count);
-
- if (semi_count > 0)
- {
- LOG_FMT(LBRDEL, "%s(%d): bopen->parent_type is %s\n",
- __func__, __LINE__, get_token_name(get_chunk_parent_type(bopen)));
-
- if (get_chunk_parent_type(bopen) == CT_ELSE)
- {
- chunk_t *tmp_next = chunk_get_next_ncnnl(bopen);
-
- if (chunk_is_token(tmp_next, CT_IF))
- {
- chunk_t *tmp_prev = chunk_get_prev_ncnnl(bopen);
- LOG_FMT(LBRDEL, "%s(%d): else-if removing braces on line %zu and %zu\n",
- __func__, __LINE__, bopen->orig_line, pc->orig_line);
-
- chunk_del(bopen);
- chunk_del(pc);
- newline_del_between(tmp_prev, tmp_next);
-
- log_rule_B("nl_else_if");
-
- if (options::nl_else_if() & IARF_ADD)
- {
- newline_add_between(tmp_prev, tmp_next);
- }
- return;
- }
- }
- // we have a pair of braces with only 1 statement inside
- LOG_FMT(LBRDEL, "%s(%d): we have a pair of braces with only 1 statement inside\n",
- __func__, __LINE__);
- LOG_FMT(LBRDEL, "%s(%d): removing braces on line %zu and %zu\n",
- __func__, __LINE__, bopen->orig_line, pc->orig_line);
- convert_brace(bopen);
- convert_brace(pc);
- }
- else
- {
- LOG_FMT(LBRDEL, "%s(%d): empty statement\n", __func__, __LINE__);
- }
- }
- else
- {
- LOG_FMT(LBRDEL, "%s(%d): not a close brace? - '%s'\n",
- __func__, __LINE__, pc->text());
- }
-} // examine_brace
-
-
-static void convert_brace(chunk_t *br)
-{
- LOG_FUNC_ENTRY();
-
- if ( br == nullptr
- || br->flags.test(PCF_KEEP_BRACE))
- {
- return;
- }
- chunk_t *tmp;
-
- if (chunk_is_token(br, CT_BRACE_OPEN))
- {
- set_chunk_type(br, CT_VBRACE_OPEN);
- br->str.clear();
- tmp = chunk_get_prev(br);
-
- if (tmp == nullptr)
- {
- return;
- }
- }
- else if (chunk_is_token(br, CT_BRACE_CLOSE))
- {
- set_chunk_type(br, CT_VBRACE_CLOSE);
- br->str.clear();
- tmp = chunk_get_next(br);
-
- if (tmp == nullptr)
- {
- return;
- }
- }
- else
- {
- return;
- }
-
- if (chunk_is_newline(tmp))
- {
- if (tmp->nl_count > 1)
- {
- if (!br->flags.test(PCF_ONE_LINER)) // Issue #2232
- {
- if (tmp->nl_count == 0)
- {
- fprintf(stderr, "%s(%d): tmp->nl_count is ZERO, cannot be decremented, at line %zu, column %zu\n",
- __func__, __LINE__, tmp->orig_line, tmp->orig_col);
- log_flush(true);
- exit(EX_SOFTWARE);
- }
- tmp->nl_count--;
- LOG_FMT(LBRDEL, "%s(%d): tmp->nl_count is %zu\n",
- __func__, __LINE__, tmp->nl_count);
- }
- }
- else
- {
- // Issue #2219
- // look for opening brace
- chunk_t *brace = nullptr;
-
- if (chunk_is_token(br, CT_VBRACE_OPEN))
- {
- brace = tmp;
- }
- else if (chunk_is_token(br, CT_VBRACE_CLOSE))
- {
- brace = chunk_skip_to_match_rev(br);
-
- if (brace == nullptr)
- {
- brace = chunk_get_prev_type(br, CT_BRACE_OPEN, br->level);
- }
- }
-
- if ( chunk_is_token(br, CT_VBRACE_OPEN)
- || ( chunk_is_token(br, CT_VBRACE_CLOSE)
- && brace->orig_line < tmp->orig_line))
- {
- if (chunk_safe_to_del_nl(tmp))
- {
- chunk_del(tmp);
- }
- }
- }
- }
-} // convert_brace
-
-
-static void convert_vbrace(chunk_t *vbr)
-{
- LOG_FUNC_ENTRY();
-
- if (vbr == nullptr)
- {
- return;
- }
-
- if (chunk_is_token(vbr, CT_VBRACE_OPEN))
- {
- set_chunk_type(vbr, CT_BRACE_OPEN);
- vbr->str = "{";
-
- /*
- * If the next chunk is a preprocessor, then move the open brace after the
- * preprocessor.
- */
- chunk_t *tmp = chunk_get_next(vbr);
-
- if (chunk_is_token(tmp, CT_PREPROC))
- {
- tmp = chunk_get_next(vbr, scope_e::PREPROC);
- chunk_move_after(vbr, tmp);
- newline_add_after(vbr);
- }
- }
- else if (chunk_is_token(vbr, CT_VBRACE_CLOSE))
- {
- set_chunk_type(vbr, CT_BRACE_CLOSE);
- vbr->str = "}";
-
- /*
- * If the next chunk is a comment, followed by a newline, then
- * move the brace after the newline and add another newline after
- * the close brace.
- */
- chunk_t *tmp = chunk_get_next(vbr);
-
- if (chunk_is_comment(tmp))
- {
- tmp = chunk_get_next(tmp);
-
- if (chunk_is_newline(tmp))
- {
- chunk_move_after(vbr, tmp);
- newline_add_after(vbr);
- }
- }
- }
-} // convert_vbrace
-
-
-static void convert_vbrace_to_brace(void)
-{
- LOG_FUNC_ENTRY();
-
- // Find every vbrace open
- log_rule_B("mod_full_brace_if");
- log_rule_B("mod_full_brace_if_chain");
- log_rule_B("mod_full_brace_for");
- log_rule_B("mod_full_brace_do");
- log_rule_B("mod_full_brace_while");
- log_rule_B("mod_full_brace_using");
- log_rule_B("mod_full_brace_function");
-
- for (chunk_t *pc = chunk_get_head(); pc != nullptr; pc = chunk_get_next_ncnnl(pc))
- {
- if (chunk_is_not_token(pc, CT_VBRACE_OPEN))
- {
- continue;
- }
- auto const in_preproc = pc->flags.test(PCF_IN_PREPROC);
-
- if ( ( ( get_chunk_parent_type(pc) == CT_IF
- || get_chunk_parent_type(pc) == CT_ELSE
- || get_chunk_parent_type(pc) == CT_ELSEIF)
- && (options::mod_full_brace_if() & IARF_ADD)
- && !options::mod_full_brace_if_chain())
- || ( get_chunk_parent_type(pc) == CT_FOR
- && (options::mod_full_brace_for() & IARF_ADD))
- || ( get_chunk_parent_type(pc) == CT_DO
- && (options::mod_full_brace_do() & IARF_ADD))
- || ( get_chunk_parent_type(pc) == CT_WHILE
- && (options::mod_full_brace_while() & IARF_ADD))
- || ( get_chunk_parent_type(pc) == CT_USING_STMT
- && (options::mod_full_brace_using() & IARF_ADD))
- || ( get_chunk_parent_type(pc) == CT_FUNC_DEF
- && (options::mod_full_brace_function() & IARF_ADD)))
- {
- // Find the matching vbrace close
- chunk_t *vbc = nullptr;
- chunk_t *tmp = pc;
-
- while ((tmp = chunk_get_next(tmp)) != nullptr)
- {
- if ( in_preproc
- && !tmp->flags.test(PCF_IN_PREPROC))
- {
- // Can't leave a preprocessor
- break;
- }
-
- if ( pc->brace_level == tmp->brace_level
- && chunk_is_token(tmp, CT_VBRACE_CLOSE)
- && get_chunk_parent_type(pc) == get_chunk_parent_type(tmp)
- && ((tmp->flags & PCF_IN_PREPROC) == (pc->flags & PCF_IN_PREPROC)))
- {
- vbc = tmp;
- break;
- }
- }
-
- if (vbc == nullptr)
- {
- continue;
- }
- // if we found a corresponding virtual closing brace
- convert_vbrace(pc); // convert both the opening
- convert_vbrace(vbc); // and closing brace
- }
- }
-} // convert_vbrace_to_brace
-
-
-chunk_t *insert_comment_after(chunk_t *ref, c_token_t cmt_type,
- const unc_text &cmt_text)
-{
- LOG_FUNC_ENTRY();
-
- chunk_t new_cmt = *ref;
-
- new_cmt.prev = nullptr;
- new_cmt.next = nullptr;
- new_cmt.flags = (ref->flags & PCF_COPY_FLAGS);
- set_chunk_type(&new_cmt, cmt_type);
- new_cmt.str.clear();
-
- if (cmt_type == CT_COMMENT_CPP)
- {
- new_cmt.str.append("// ");
- new_cmt.str.append(cmt_text);
- }
- else
- {
- if (chunk_is_token(ref, CT_PP_ELSE))
- { // make test c/ 02501 stable
- new_cmt.str.append(" ");
- }
- new_cmt.str.append("/* ");
- new_cmt.str.append(cmt_text);
- new_cmt.str.append(" */");
- }
- // TODO: expand comment type to cover other comment styles?
-
- new_cmt.column = ref->column + ref->len() + 1;
- new_cmt.orig_col = new_cmt.column;
-
- return(chunk_add_after(&new_cmt, ref));
-}
-
-
-static void append_tag_name(unc_text &txt, chunk_t *pc)
-{
- LOG_FUNC_ENTRY();
- chunk_t *tmp = pc;
-
- LOG_FMT(LMCB, "%s(%d): txt is '%s'\n",
- __func__, __LINE__, txt.c_str());
-
- // step backwards over all a::b stuff
- while ((tmp = chunk_get_prev_ncnnl(tmp)) != nullptr)
- {
- if ( chunk_is_not_token(tmp, CT_DC_MEMBER)
- && chunk_is_not_token(tmp, CT_MEMBER))
- {
- break;
- }
- tmp = chunk_get_prev_ncnnl(tmp);
- pc = tmp;
-
- if (!chunk_is_word(tmp))
- {
- break;
- }
- }
- txt += pc->str;
- LOG_FMT(LMCB, "%s(%d): txt is '%s'\n",
- __func__, __LINE__, txt.c_str());
-
- while ((pc = chunk_get_next_ncnnl(pc)) != nullptr)
- {
- if ( chunk_is_not_token(pc, CT_DC_MEMBER)
- && chunk_is_not_token(pc, CT_MEMBER))
- {
- break;
- }
- txt += pc->str;
- LOG_FMT(LMCB, "%s(%d): txt is '%s'\n",
- __func__, __LINE__, txt.c_str());
- pc = chunk_get_next_ncnnl(pc);
-
- if (pc != nullptr)
- {
- txt += pc->str;
- LOG_FMT(LMCB, "%s(%d): txt is '%s'\n",
- __func__, __LINE__, txt.c_str());
- }
- }
-} // append_tag_name
-
-
-void add_long_closebrace_comment(void)
-{
- LOG_FUNC_ENTRY();
- chunk_t *fcn_pc = nullptr;
- chunk_t *sw_pc = nullptr;
- chunk_t *ns_pc = nullptr;
- chunk_t *cl_pc = nullptr;
-
- for (chunk_t *pc = chunk_get_head(); pc != nullptr; pc = chunk_get_next_ncnnl(pc))
- {
- if ( chunk_is_token(pc, CT_FUNC_DEF)
- || chunk_is_token(pc, CT_OC_MSG_DECL))
- {
- fcn_pc = pc;
- }
- else if (chunk_is_token(pc, CT_SWITCH))
- {
- // pointless, since it always has the text "switch"
- sw_pc = pc;
- }
- else if (chunk_is_token(pc, CT_NAMESPACE))
- {
- ns_pc = pc;
- }
- else if (chunk_is_token(pc, CT_CLASS))
- {
- cl_pc = pc;
- }
-
- if ( chunk_is_not_token(pc, CT_BRACE_OPEN)
- || pc->flags.test(PCF_IN_PREPROC))
- {
- continue;
- }
- chunk_t *br_open = pc;
- size_t nl_count = 0;
-
- chunk_t *tmp = pc;
-
- while ((tmp = chunk_get_next(tmp, scope_e::PREPROC)) != nullptr)
- {
- if (chunk_is_newline(tmp))
- {
- nl_count += tmp->nl_count;
- continue;
- }
-
- // handle only matching closing braces, skip other chunks
- if ( tmp->level != br_open->level
- || chunk_is_not_token(tmp, CT_BRACE_CLOSE))
- {
- continue;
- }
- chunk_t *br_close = tmp;
-
- tmp = chunk_get_next(tmp);
-
- // check for a possible end semicolon
- if (chunk_is_token(tmp, CT_SEMICOLON))
- {
- // set br_close to the semi token,
- // as br_close is used to add the coment after it
- br_close = tmp;
- tmp = chunk_get_next(tmp);
- }
-
- // make sure a newline follows in order to not overwrite an already
- // existring comment
- if ( tmp != nullptr
- && !chunk_is_newline(tmp))
- {
- break;
- }
- size_t nl_min = 0;
- chunk_t *tag_pc = nullptr;
- unc_text xstr;
-
- if ( get_chunk_parent_type(br_open) == CT_FUNC_DEF
- || get_chunk_parent_type(br_open) == CT_OC_MSG_DECL)
- {
- log_rule_B("mod_add_long_function_closebrace_comment");
- nl_min = options::mod_add_long_function_closebrace_comment();
- tag_pc = fcn_pc;
-
- if (tag_pc != nullptr)
- {
- append_tag_name(xstr, tag_pc);
- LOG_FMT(LMCB, "%s(%d): xstr is '%s'\n",
- __func__, __LINE__, xstr.c_str());
- }
- }
- else if ( get_chunk_parent_type(br_open) == CT_SWITCH
- && sw_pc != nullptr)
- {
- log_rule_B("mod_add_long_switch_closebrace_comment");
- nl_min = options::mod_add_long_switch_closebrace_comment();
- tag_pc = sw_pc;
- xstr = sw_pc->str;
- LOG_FMT(LMCB, "%s(%d): xstr is '%s'\n",
- __func__, __LINE__, xstr.c_str());
- }
- else if ( get_chunk_parent_type(br_open) == CT_NAMESPACE
- && ns_pc != nullptr)
- {
- log_rule_B("mod_add_long_namespace_closebrace_comment");
- nl_min = options::mod_add_long_namespace_closebrace_comment();
- tag_pc = ns_pc;
- xstr = tag_pc->str; // add 'namespace' to the string
- LOG_FMT(LMCB, "%s(%d): xstr is '%s'\n",
- __func__, __LINE__, xstr.c_str());
-
- // next chunk, normally is going to be the namespace name
- // append it with a space to generate "namespace xyz"
- chunk_t *tmp_next = chunk_get_next_ncnnl(tag_pc);
-
- if (chunk_is_not_token(tmp_next, CT_BRACE_OPEN)) // anonymous namespace -> ignore
- {
- xstr.append(" ");
- LOG_FMT(LMCB, "%s(%d): xstr is '%s'\n",
- __func__, __LINE__, xstr.c_str());
- append_tag_name(xstr, tmp_next);
- LOG_FMT(LMCB, "%s(%d): xstr is '%s'\n",
- __func__, __LINE__, xstr.c_str());
- }
- }
- else if ( get_chunk_parent_type(br_open) == CT_CLASS
- && cl_pc != nullptr
- && ( !language_is_set(LANG_CPP) // proceed if not C++
- || chunk_is_token(br_close, CT_SEMICOLON))) // else a C++ class needs to end with a semicolon
- {
- log_rule_B("mod_add_long_class_closebrace_comment");
- nl_min = options::mod_add_long_class_closebrace_comment();
- tag_pc = cl_pc;
- xstr = tag_pc->str;
- LOG_FMT(LMCB, "%s(%d): xstr is '%s'\n",
- __func__, __LINE__, xstr.c_str());
-
- chunk_t *tmp_next = chunk_get_next(cl_pc);
-
- if (tag_pc != nullptr)
- {
- xstr.append(" ");
- LOG_FMT(LMCB, "%s(%d): xstr is '%s'\n",
- __func__, __LINE__, xstr.c_str());
- append_tag_name(xstr, tmp_next);
- LOG_FMT(LMCB, "%s(%d): xstr is '%s'\n",
- __func__, __LINE__, xstr.c_str());
- }
- }
-
- if ( nl_min > 0
- && nl_count >= nl_min
- && tag_pc != nullptr)
- {
- // use the comment style that fits to the selected language
- const c_token_t style = language_is_set(LANG_CPP | LANG_CS)
- ? CT_COMMENT_CPP : CT_COMMENT;
-
- // Add a comment after the close brace
- LOG_FMT(LMCB, "%s(%d): xstr is '%s'\n",
- __func__, __LINE__, xstr.c_str());
- insert_comment_after(br_close, style, xstr);
- }
- break;
- }
- }
-} // add_long_closebrace_comment
-
-
-static void move_case_break(void)
-{
- LOG_FUNC_ENTRY();
- chunk_t *prev = nullptr;
-
- for (chunk_t *pc = chunk_get_head(); pc != nullptr; pc = chunk_get_next_ncnnl(pc))
- {
- if ( chunk_is_token(pc, CT_BREAK)
- && chunk_is_token(prev, CT_BRACE_CLOSE)
- && get_chunk_parent_type(prev) == CT_CASE
- && chunk_is_newline(chunk_get_prev(pc))
- && chunk_is_newline(chunk_get_prev(prev)))
- {
- chunk_swap_lines(prev, pc);
- }
- prev = pc;
- }
-}
-
-
-static chunk_t *mod_case_brace_remove(chunk_t *br_open)
-{
- LOG_FUNC_ENTRY();
- LOG_FMT(LMCB, "%s(%d): line %zu",
- __func__, __LINE__, br_open->orig_line);
-
- // Find the matching brace close
- chunk_t *next = chunk_get_next_ncnnl(br_open, scope_e::PREPROC);
- chunk_t *br_close = chunk_get_next_type(br_open, CT_BRACE_CLOSE, br_open->level, scope_e::PREPROC);
-
- if (br_close == nullptr)
- {
- LOG_FMT(LMCB, "%s(%d): - no close\n", __func__, __LINE__);
- return(next);
- }
- // Make sure 'break', 'return', 'goto', 'case' or '}' is after the close brace
- chunk_t *pc = chunk_get_next_ncnnl(br_close, scope_e::PREPROC);
-
- if ( pc == nullptr
- || ( chunk_is_not_token(pc, CT_BREAK)
- && chunk_is_not_token(pc, CT_RETURN)
- && chunk_is_not_token(pc, CT_CASE)
- && chunk_is_not_token(pc, CT_GOTO)
- && chunk_is_not_token(pc, CT_BRACE_CLOSE)))
- {
- LOG_FMT(LMCB, "%s(%d): - after '%s'\n",
- __func__, __LINE__, (pc == nullptr) ? "<null>" : get_token_name(pc->type));
- return(next);
- }
-
- // scan to make sure there are no definitions at brace level between braces
- for (chunk_t *tmp_pc = br_open;
- tmp_pc != br_close;
- tmp_pc = chunk_get_next_ncnnl(tmp_pc, scope_e::PREPROC))
- {
- if ( tmp_pc->level == (br_open->level + 1)
- && tmp_pc->flags.test(PCF_VAR_DEF))
- {
- LOG_FMT(LMCB, "%s(%d): - vardef on line %zu: '%s'\n",
- __func__, __LINE__, tmp_pc->orig_line, pc->text());
- return(next);
- }
- }
-
- LOG_FMT(LMCB, "%s(%d): - removing braces on lines %zu and %zu\n",
- __func__, __LINE__, br_open->orig_line, br_close->orig_line);
-
- for (chunk_t *tmp_pc = br_open;
- tmp_pc != br_close;
- tmp_pc = chunk_get_next_ncnnl(tmp_pc, scope_e::PREPROC))
- {
- if (tmp_pc->brace_level == 0)
- {
- fprintf(stderr, "%s(%d): tmp_pc->brace_level is ZERO, cannot be decremented, at line %zu, column %zu\n",
- __func__, __LINE__, tmp_pc->orig_line, tmp_pc->orig_col);
- log_flush(true);
- exit(EX_SOFTWARE);
- }
- tmp_pc->brace_level--;
-
- if (tmp_pc->level == 0)
- {
- fprintf(stderr, "%s(%d): tmp_pc->level is ZERO, cannot be decremented, at line %zu, column %zu\n",
- __func__, __LINE__, tmp_pc->orig_line, tmp_pc->orig_col);
- log_flush(true);
- exit(EX_SOFTWARE);
- }
- tmp_pc->level--;
- }
-
- next = chunk_get_prev(br_open, scope_e::PREPROC);
-
- chunk_del(br_open);
- chunk_del(br_close);
-
- return(chunk_get_next(next, scope_e::PREPROC));
-} // mod_case_brace_remove
-
-
-static chunk_t *mod_case_brace_add(chunk_t *cl_colon)
-{
- LOG_FUNC_ENTRY();
- LOG_FMT(LMCB, "%s(%d): orig_line %zu, orig_col is %zu\n",
- __func__, __LINE__, cl_colon->orig_line, cl_colon->orig_col);
-
- chunk_t *pc = cl_colon;
- chunk_t *last = nullptr;
- // look for the case token to the colon
- chunk_t *cas_ = chunk_get_prev_type(cl_colon, CT_CASE, cl_colon->level);
- // look for the parent
- chunk_t *swit = cas_->parent;
- // look for the opening brace of the switch
- chunk_t *open = chunk_get_next_type(swit, CT_BRACE_OPEN, swit->level);
- // look for the closing brace of the switch
- chunk_t *clos = chunk_skip_to_match(open);
-
- // find the end of the case-block
- while ((pc = chunk_get_next_ncnnl(pc, scope_e::PREPROC)) != nullptr)
- {
- LOG_FMT(LMCB, "%s(%d): text() is '%s', orig_line %zu, orig_col is %zu, pp_level is %zu\n",
- __func__, __LINE__, pc->text(), pc->orig_line, pc->orig_col, pc->pp_level);
-
- if (pc->level == cl_colon->level)
- {
- if (chunk_is_token(pc, CT_CASE))
- {
- LOG_FMT(LMCB, "%s(%d): text() is '%s', orig_line %zu, orig_col is %zu\n",
- __func__, __LINE__, pc->text(), pc->orig_line, pc->orig_col);
- last = calculate_closing_brace_position(cl_colon, pc);
- break;
- }
- }
- else if (pc->level == cl_colon->level - 1)
- {
- if (pc == clos)
- {
- LOG_FMT(LMCB, "%s(%d): text() is '%s', orig_line %zu, orig_col is %zu\n",
- __func__, __LINE__, pc->text(), pc->orig_line, pc->orig_col);
- // end of switch is reached
- last = calculate_closing_brace_position(cl_colon, pc);
- LOG_FMT(LMCB, "%s(%d): last->text() is '%s', orig_line %zu, orig_col is %zu\n",
- __func__, __LINE__, last->text(), last->orig_line, last->orig_col);
- break;
- }
- }
- }
-
- if (last == nullptr)
- {
- LOG_FMT(LMCB, "%s(%d): - last is nullptr\n", __func__, __LINE__);
- chunk_t *next = chunk_get_next_ncnnl(cl_colon, scope_e::PREPROC);
- return(next);
- }
- LOG_FMT(LMCB, "%s(%d): last->text() is '%s', orig_line %zu, orig_col is %zu\n",
- __func__, __LINE__, last->text(), last->orig_line, last->orig_col);
- LOG_FMT(LMCB, "%s(%d): adding braces after '%s' on line %zu\n",
- __func__, __LINE__, cl_colon->text(), cl_colon->orig_line);
-
- chunk_t chunk;
-
- set_chunk_type(&chunk, CT_BRACE_OPEN);
- set_chunk_parent(&chunk, CT_CASE);
- chunk.orig_line = cl_colon->orig_line;
- chunk.orig_col = cl_colon->orig_col;
- chunk.level = cl_colon->level;
- chunk.pp_level = cl_colon->pp_level;
- chunk.brace_level = cl_colon->brace_level;
- chunk.flags = pc->flags & PCF_COPY_FLAGS;
- chunk.str = "{";
- chunk_t *br_open = chunk_add_after(&chunk, cl_colon);
-
- set_chunk_type(&chunk, CT_BRACE_CLOSE);
- chunk.orig_line = last->orig_line;
- chunk.orig_col = last->orig_col;
- chunk.str = "}";
- chunk_t *br_close = chunk_add_after(&chunk, last);
-
- for (pc = chunk_get_next(br_open, scope_e::PREPROC);
- pc != br_close;
- pc = chunk_get_next(pc, scope_e::PREPROC))
- {
- pc->level++;
- pc->brace_level++;
- }
-
- return(br_open);
-} // mod_case_brace_add
-
-
-static void mod_case_brace(void)
-{
- LOG_FUNC_ENTRY();
-
- chunk_t *pc = chunk_get_head();
-
- // Make sure to start outside of a preprocessor line (see issue #3366)
- if (chunk_is_preproc(pc))
- {
- pc = chunk_get_next_ncnnlnp(pc);
- }
-
- while (pc != nullptr)
- {
- chunk_t *next = chunk_get_next_ncnnl(pc, scope_e::PREPROC);
-
- if (next == nullptr)
- {
- return;
- }
- log_rule_B("mod_case_brace");
-
- if ( options::mod_case_brace() == IARF_REMOVE
- && chunk_is_token(pc, CT_BRACE_OPEN)
- && get_chunk_parent_type(pc) == CT_CASE)
- {
- log_rule_B("mod_case_brace - add");
- pc = mod_case_brace_remove(pc);
- }
- else if ( (options::mod_case_brace() & IARF_ADD)
- && chunk_is_token(pc, CT_CASE_COLON)
- && chunk_is_not_token(next, CT_BRACE_OPEN)
- && chunk_is_not_token(next, CT_BRACE_CLOSE)
- && chunk_is_not_token(next, CT_CASE))
- {
- log_rule_B("mod_case_brace - remove");
- pc = mod_case_brace_add(pc);
- }
- else
- {
- pc = chunk_get_next_ncnnl(pc, scope_e::PREPROC);
- }
- }
-} // mod_case_brace
-
-
-static void process_if_chain(chunk_t *br_start)
-{
- LOG_FUNC_ENTRY();
- LOG_FMT(LBRCH, "%s(%d): if starts on line %zu, orig_col is %zu.\n",
- __func__, __LINE__, br_start->orig_line, br_start->orig_col);
-
- vector<chunk_t *> braces;
-
- braces.reserve(16);
-
- bool must_have_braces = false;
-
- chunk_t *pc = br_start;
-
- while (pc != nullptr)
- {
- LOG_FMT(LBRCH, "%s(%d): pc->text() is '%s', orig_line is %zu, orig_col is %zu.\n",
- __func__, __LINE__, pc->text(), pc->orig_line, pc->orig_col);
-
- if (chunk_is_token(pc, CT_BRACE_OPEN))
- {
- const bool tmp = can_remove_braces(pc);
- LOG_FMT(LBRCH, "%s(%d): braces.size() is %zu, line is %zu, - can%s remove %s\n",
- __func__, __LINE__, braces.size(), pc->orig_line, tmp ? "" : "not",
- get_token_name(pc->type));
-
- if (!tmp)
- {
- must_have_braces = true;
- }
- }
- else
- {
- const bool tmp = should_add_braces(pc);
-
- if (tmp)
- {
- must_have_braces = true;
- }
- LOG_FMT(LBRCH, "%s(%d): braces.size() is %zu, line is %zu, - %s %s\n",
- __func__, __LINE__, braces.size(), pc->orig_line, tmp ? "should add" : "ignore",
- get_token_name(pc->type));
- }
- braces.push_back(pc);
- chunk_t *br_close = chunk_skip_to_match(pc, scope_e::PREPROC);
-
- if (br_close == nullptr)
- {
- break;
- }
- braces.push_back(br_close);
-
- pc = chunk_get_next_ncnnl(br_close, scope_e::PREPROC);
-
- if ( pc == nullptr
- || chunk_is_not_token(pc, CT_ELSE))
- {
- break;
- }
- log_rule_B("mod_full_brace_if_chain_only");
-
- if (options::mod_full_brace_if_chain_only())
- {
- // There is an 'else' - we want full braces.
- must_have_braces = true;
- }
- pc = chunk_get_next_ncnnl(pc, scope_e::PREPROC);
-
- if (chunk_is_token(pc, CT_ELSEIF))
- {
- while ( chunk_is_not_token(pc, CT_VBRACE_OPEN)
- && chunk_is_not_token(pc, CT_BRACE_OPEN))
- {
- pc = chunk_get_next_ncnnl(pc, scope_e::PREPROC);
- }
- }
-
- if (pc == nullptr)
- {
- break;
- }
-
- if ( chunk_is_not_token(pc, CT_BRACE_OPEN)
- && chunk_is_not_token(pc, CT_VBRACE_OPEN))
- {
- break;
- }
- }
-
- if (must_have_braces)
- {
- LOG_FMT(LBRCH, "%s(%d): add braces on lines[%zu]:",
- __func__, __LINE__, braces.size());
-
- const auto ite = braces.rend();
-
- for (auto itc = braces.rbegin(); itc != ite; ++itc)
- {
- const auto brace = *itc;
-
- chunk_flags_set(brace, PCF_KEEP_BRACE);
-
- if ( chunk_is_token(brace, CT_VBRACE_OPEN)
- || chunk_is_token(brace, CT_VBRACE_CLOSE))
- {
- LOG_FMT(LBRCH, "%s(%d): %zu",
- __func__, __LINE__, brace->orig_line);
- convert_vbrace(brace);
- }
- else
- {
- LOG_FMT(LBRCH, "%s(%d): {%zu}",
- __func__, __LINE__, brace->orig_line);
- }
- }
-
- LOG_FMT(LBRCH, "\n");
- }
- else if (options::mod_full_brace_if_chain())
- {
- log_rule_B("mod_full_brace_if_chain");
- LOG_FMT(LBRCH, "%s(%d): remove braces on lines[%zu]:\n",
- __func__, __LINE__, braces.size());
-
- /*
- * This might run because either
- * mod_full_brace_if_chain or mod_full_brace_if_chain_only
- * is used.
- * We only want to remove braces if the first one is active.
- */
- log_rule_B("mod_full_brace_nl_block_rem_mlcond");
- const auto multiline_block = options::mod_full_brace_nl_block_rem_mlcond();
-
- LOG_FMT(LBRCH, "%s(%d): remove braces on lines:\n", __func__, __LINE__);
-
- // Issue #2229
- const auto ite = braces.end();
-
- for (auto itc = braces.begin(); itc != ite; ++itc)
- {
- const auto brace = *itc;
-
- if ( ( chunk_is_token(brace, CT_BRACE_OPEN)
- || chunk_is_token(brace, CT_BRACE_CLOSE))
- && (get_chunk_parent_type(brace) != CT_BRACED_INIT_LIST)
- && (multiline_block ? !paren_multiline_before_brace(brace) : true))
- {
- LOG_FMT(LBRCH, "%s(%d): brace->orig_line is %zu, brace->orig_col is %zu\n",
- __func__, __LINE__, brace->orig_line, brace->orig_col);
- convert_brace(brace);
- }
- else
- {
- LOG_FMT(LBRCH, "%s(%d): brace->orig_line is %zu, brace->orig_col is %zu\n",
- __func__, __LINE__, brace->orig_line, brace->orig_col);
- }
- }
- }
-} // process_if_chain
-
-
-static void mod_full_brace_if_chain(void)
-{
- LOG_FUNC_ENTRY();
-
- for (chunk_t *pc = chunk_get_head(); pc != nullptr; pc = chunk_get_next(pc))
- {
- if ( ( chunk_is_token(pc, CT_BRACE_OPEN)
- || chunk_is_token(pc, CT_VBRACE_OPEN))
- && get_chunk_parent_type(pc) == CT_IF)
- {
- process_if_chain(pc);
- }
- }
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/braces.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/braces.h
deleted file mode 100644
index d48f4014..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/braces.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/**
- * @file braces.h
- * prototypes for braces.cpp
- *
- * @author Ben Gardner
- * @license GPL v2+
- */
-
-#ifndef BRACES_H_INCLUDED
-#define BRACES_H_INCLUDED
-
-#include "uncrustify_types.h"
-
-
-//! Change virtual braces into real braces
-void do_braces(void);
-
-/**
- * See the preprocessor counterpart:
- * add_long_preprocessor_conditional_block_comment
- * in output.cpp
- */
-void add_long_closebrace_comment(void);
-
-
-/**
- * Adds a comment after the ref chunk
- * Returns the added chunk or nullptr
- */
-chunk_t *insert_comment_after(chunk_t *ref, c_token_t cmt_type, const unc_text &cmt_text);
-
-
-#endif /* BRACES_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/calculate_closing_brace_position.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/calculate_closing_brace_position.cpp
deleted file mode 100644
index a52ab017..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/calculate_closing_brace_position.cpp
+++ /dev/null
@@ -1,199 +0,0 @@
-/**
- * @file calculate_closing_brace_position.cpp
- *
- * @author Guy Maurel
- * @license GPL v2+
- */
-
-#include "calculate_closing_brace_position.h"
-
-#include "chunk_list.h"
-
-using namespace uncrustify;
-
-
-chunk_t *calculate_closing_brace_position(const chunk_t *cl_colon, chunk_t *pc)
-{
- LOG_FMT(LMCB, "%s(%d): cl_colon->text() is '%s', orig_line %zu, orig_col is %zu, level is %zu\n",
- __func__, __LINE__, cl_colon->text(), cl_colon->orig_line, cl_colon->orig_col, cl_colon->level);
- LOG_FMT(LMCB, "%s(%d): pc->text() is '%s', orig_line %zu, orig_col is %zu, level is %zu\n",
- __func__, __LINE__, pc->text(), pc->orig_line, pc->orig_col, pc->level);
- // end of block is reached
- // look back over newline, preprocessor BUT NOT #endif
-
- // Issue #3058
-
- // examine going back the tokens: look for a "brace closing" or a "semi colon" until the colon
- // look back over comment, newline, preprocessor BUT NOT #endif
-
- size_t check_level = 0;
-
- if (chunk_is_token(pc, CT_BRACE_CLOSE))
- {
- check_level = pc->level + 1;
- }
- else
- {
- check_level = pc->level;
- }
- size_t erst_found = 0;
- chunk_t *is_brace_close = nullptr;
- chunk_t *is_semicolon = nullptr;
- chunk_t *is_comment = nullptr;
- chunk_t *back = chunk_get_prev_nnl(pc);
-
- while (back != nullptr)
- {
- if (back == cl_colon)
- {
- break;
- }
-
- if (erst_found != 0)
- {
- break;
- }
-
- if (back->level == check_level)
- {
- if ( chunk_is_token(back, CT_BRACE_CLOSE)
- || chunk_is_token(back, CT_VBRACE_CLOSE))
- {
- // brace_close found
- is_brace_close = back;
- LOG_FMT(LMCB, "%s(%d): BRACE_CLOSE: line is %zu, col is %zu, level is %zu\n",
- __func__, __LINE__, is_brace_close->orig_line, is_brace_close->orig_col, is_brace_close->level);
- erst_found = 3;
- }
-
- if (chunk_is_token(back, CT_SEMICOLON))
- {
- // semicolon found
- is_semicolon = back;
- LOG_FMT(LMCB, "%s(%d): SEMICOLON: line is %zu, col is %zu, level is %zu\n",
- __func__, __LINE__, is_semicolon->orig_line, is_semicolon->orig_col, is_semicolon->level);
- erst_found = 4;
- }
-
- if (chunk_is_comment(back))
- {
- // comment found
- is_comment = back;
- LOG_FMT(LMCB, "%s(%d): COMMENT: line is %zu, col is %zu, level is %zu\n",
- __func__, __LINE__, back->orig_line, back->orig_col, back->level);
- }
- }
- back = chunk_get_prev(back);
- }
- LOG_FMT(LMCB, "%s(%d): erst_found is %zu\n",
- __func__, __LINE__, erst_found);
- chunk_t *last = nullptr;
-
- if ( erst_found == 3
- || erst_found == 4)
- {
- if (is_comment != nullptr)
- {
- chunk_t *second = nullptr;
-
- if (erst_found == 3)
- {
- second = is_brace_close;
- }
- else
- {
- // erst_found == 4
- second = is_semicolon;
- }
-
- if (second != nullptr)
- {
- if (is_comment->orig_line == second->orig_line)
- {
- last = is_comment;
-
- if (cl_colon->orig_line == is_comment->orig_line)
- {
- last = chunk_get_next(is_comment);
- }
- }
- else
- {
- last = chunk_get_prev_ncnnl(pc);
- }
- }
- else
- {
- LOG_FMT(LMCB, "\n\n%s(%d):\n", __func__, __LINE__);
- fprintf(stderr, "FATAL: second is nullptr\n");
- fprintf(stderr, "Please make a report.\n");
- exit(EX_SOFTWARE);
- }
- }
- else
- {
- last = chunk_get_prev_ncnnl(pc);
- }
- }
- else
- {
- LOG_FMT(LMCB, "\n\n%s(%d):\n", __func__, __LINE__);
- fprintf(stderr, "FATAL: erst_found is not 3 or 4\n");
- fprintf(stderr, "Please make a report.\n");
- exit(EX_SOFTWARE);
- }
-
- if (chunk_is_token(last, CT_COMMENT_CPP)) // Issue #3058
- {
- last = chunk_get_next(last);
- }
- LOG_FMT(LMCB, "%s(%d): last->text() is '%s', orig_line %zu, orig_col is %zu\n",
- __func__, __LINE__, last->text(), last->orig_line, last->orig_col);
-
- if (chunk_is_preproc(last))
- {
- // we have a preprocessor token
- while (last != nullptr)
- {
- LOG_FMT(LMCB, "%s(%d): text() is '%s', orig_line %zu, orig_col is %zu\n",
- __func__, __LINE__, last->text(), last->orig_line, last->orig_col);
-
- if (chunk_is_token(last, CT_PP_ENDIF))
- {
- // look for the parent
- chunk_t *parent_last = last->parent;
- // compare the positions
- int comp = chunk_compare_position(parent_last, cl_colon);
- LOG_FMT(LMCB, "%s(%d): comp is %d\n",
- __func__, __LINE__, comp);
-
- if (comp == -1)
- {
- // cl_colon is after parent_last ==>
- // the closing brace will be set before #endif
- chunk_t *pp_start = chunk_get_pp_start(last);
- last = chunk_get_prev_nnl(pp_start);
- LOG_FMT(LMCB, "%s(%d): text() is '%s', orig_line %zu, orig_col is %zu\n",
- __func__, __LINE__, last->text(), last->orig_line, last->orig_col);
- }
- else if (comp == 1)
- {
- // cl_colon is before parent_last ==>
- // the closing brace will be set after #endif
- LOG_FMT(LMCB, "%s(%d): text() is '%s', orig_line %zu, orig_col is %zu\n",
- __func__, __LINE__, last->text(), last->orig_line, last->orig_col);
- }
- break;
- }
- last = chunk_get_prev_ncnnl(last);
- LOG_FMT(LMCB, "%s(%d): text() is '%s', orig_line %zu, orig_col is %zu\n",
- __func__, __LINE__, last->text(), last->orig_line, last->orig_col);
-
- if (!chunk_is_preproc(last))
- {
- break;
- }
- }
- }
- return(last);
-} // calculate_closing_brace_position
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/calculate_closing_brace_position.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/calculate_closing_brace_position.h
deleted file mode 100644
index c82f4ace..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/calculate_closing_brace_position.h
+++ /dev/null
@@ -1,18 +0,0 @@
-/**
- * @file calculate_closing_brace_position.h
- * prototype for calculate_closing_brace_position.cpp
- *
- * @author Guy Maurel
- * @license GPL v2+
- */
-
-#ifndef CALCULATE_CLOSING_BRACE_POSITION_H_INCLUDED
-#define CALCULATE_CLOSING_BRACE_POSITION_H_INCLUDED
-
-#include "uncrustify_types.h"
-
-
-chunk_t *calculate_closing_brace_position(const chunk_t *cl_colon, chunk_t *pc);
-
-
-#endif /* CALCULATE_CLOSING_BRACE_POSITION_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/chunk_list.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/chunk_list.cpp
deleted file mode 100644
index 1132161e..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/chunk_list.cpp
+++ /dev/null
@@ -1,1144 +0,0 @@
-/**
- * @file chunk_list.cpp
- * Manages and navigates the list of chunks.
- *
- * @author Ben Gardner
- * @license GPL v2+
- */
-
-#include "chunk_list.h"
-
-#include "ListManager.h"
-#include "prototypes.h"
-#include "space.h"
-
-typedef ListManager<chunk_t> ChunkList_t;
-
-
-/**
- * use this enum to define in what direction or location an
- * operation shall be performed.
- */
-enum class direction_e : unsigned int
-{
- FORWARD,
- BACKWARD
-};
-
-
-/**
- * @brief prototype for a function that checks a chunk to have a given type
- *
- * @note this typedef defines the function type "check_t"
- * for a function pointer of type
- * bool function(chunk_t *pc)
- */
-typedef bool (*check_t)(chunk_t *pc);
-
-
-/**
- * @brief prototype for a function that searches through a chunk list
- *
- * @note this typedef defines the function type "search_t"
- * for a function pointer of type
- * chunk_t *function(chunk_t *cur, nav_t scope)
- */
-typedef chunk_t * (*search_t)(chunk_t *cur, scope_e scope);
-
-
-/**
- * @brief search for a chunk that satisfies a condition in a chunk list
- *
- * A generic function that traverses a chunks list either
- * in forward or reverse direction. The traversal continues until a
- * chunk satisfies the condition defined by the compare function.
- * Depending on the parameter cond the condition will either be
- * checked to be true or false.
- *
- * Whenever a chunk list traversal is to be performed this function
- * shall be used. This keeps the code clear and easy to understand.
- *
- * If there are performance issues this function might be worth to
- * be optimized as it is heavily used.
- *
- * @param cur chunk to start search at
- * @param check_fct compare function
- * @param scope code parts to consider for search
- * @param dir search direction
- * @param cond success condition
- *
- * @retval nullptr no requested chunk was found or invalid parameters provided
- * @retval chunk_t pointer to the found chunk
- */
-static chunk_t *chunk_search(chunk_t *cur, const check_t check_fct, const scope_e scope = scope_e::ALL, const direction_e dir = direction_e::FORWARD, const bool cond = true);
-
-
-/**
- * @brief search for a chunk that satisfies a condition in a chunk list.
- *
- * This function is similar to chunk_search, except that it is tweaked to
- * handle searches inside of preprocessor directives. Specifically, if the
- * starting token is inside a preprocessor directive, it will ignore a line
- * continuation, and will abort the search if it reaches the end of the
- * directive. This function only searches forward.
- *
- * @param cur chunk to start search at
- * @param check_fct compare function
- * @param scope code parts to consider for search
- * @param cond success condition
- *
- * @retval nullptr no requested chunk was found or invalid parameters provided
- * @retval chunk_t pointer to the found chunk or pointer to the chunk at the
- * end of the preprocessor directive
- */
-static chunk_t *chunk_ppa_search(chunk_t *cur, const check_t check_fct, const bool cond = true);
-
-
-static void chunk_log(chunk_t *pc, const char *text);
-
-
-/*
- * TODO: if we use C++ we can overload the following two functions
- * and thus name them equally
- */
-
-/**
- * @brief search a chunk of a given category in a chunk list
- *
- * traverses a chunk list either in forward or backward direction.
- * The traversal continues until a chunk of a given category is found.
- *
- * This function is a specialization of chunk_search.
- *
- * @param cur chunk to start search at
- * @param type category to search for
- * @param scope code parts to consider for search
- * @param dir search direction
- *
- * @retval nullptr no chunk found or invalid parameters provided
- * @retval chunk_t pointer to the found chunk
- */
-static chunk_t *chunk_search_type(chunk_t *cur, const c_token_t type, const scope_e scope = scope_e::ALL, const direction_e dir = direction_e::FORWARD);
-
-
-/**
- * @brief search a chunk of a given type and level
- *
- * Traverses a chunk list in the specified direction until a chunk of a given type
- * is found.
- *
- * This function is a specialization of chunk_search.
- *
- * @param cur chunk to start search at
- * @param type category to search for
- * @param scope code parts to consider for search
- * @param dir search direction
- * @param level nesting level to match or -1 / ANY_LEVEL
- *
- * @retval nullptr no chunk found or invalid parameters provided
- * @retval chunk_t pointer to the found chunk
- */
-static chunk_t *chunk_search_typelevel(chunk_t *cur, c_token_t type, scope_e scope = scope_e::ALL, direction_e dir = direction_e::FORWARD, int level = -1);
-
-
-/**
- * @brief searches a chunk that holds a specific string
- *
- * Traverses a chunk list either in forward or backward direction until a chunk
- * with the provided string was found. Additionally a nesting level can be
- * provided to narrow down the search.
- *
- * @param cur chunk to start search at
- * @param str string that searched chunk needs to have
- * @param len length of the string
- * @param scope code parts to consider for search
- * @param dir search direction
- * @param level nesting level of the searched chunk, ignored when negative
- *
- * @retval NULL no chunk found or invalid parameters provided
- * @retval chunk_t pointer to the found chunk
- */
-static chunk_t *chunk_search_str(chunk_t *cur, const char *str, size_t len, scope_e scope, direction_e dir, int level);
-
-
-/**
- * @brief Add a new chunk before/after the given position in a chunk list
- *
- * If ref is nullptr, add either at the head or tail based on the specified pos
- *
- * @param pc_in chunk to add to list
- * @param ref insert position in list
- * @param pos insert before or after
- *
- * @return chunk_t pointer to the added chunk
- */
-static chunk_t *chunk_add(const chunk_t *pc_in, chunk_t *ref, const direction_e pos = direction_e::FORWARD);
-
-
-/**
- * @brief Determines which chunk search function to use
- *
- * Depending on the required search direction return a pointer
- * to the corresponding chunk search function.
- *
- * @param dir search direction
- *
- * @return pointer to chunk search function
- */
-static search_t select_search_fct(const direction_e dir = direction_e::FORWARD);
-
-
-ChunkList_t g_cl; //! global chunk list
-
-
-chunk_t *chunk_get_head(void)
-{
- return(g_cl.GetHead());
-}
-
-
-chunk_t *chunk_get_tail(void)
-{
- return(g_cl.GetTail());
-}
-
-
-static search_t select_search_fct(const direction_e dir)
-{
- return((dir == direction_e::FORWARD) ? chunk_get_next : chunk_get_prev);
-}
-
-
-chunk_t *chunk_search_prev_cat(chunk_t *pc, const c_token_t cat)
-{
- return(chunk_search_type(pc, cat, scope_e::ALL, direction_e::BACKWARD));
-}
-
-
-chunk_t *chunk_search_next_cat(chunk_t *pc, const c_token_t cat)
-{
- return(chunk_search_type(pc, cat, scope_e::ALL, direction_e::FORWARD));
-}
-
-
-bool are_chunks_in_same_line(chunk_t *start, chunk_t *end)
-{
- chunk_t *tmp;
-
- if (start != nullptr)
- {
- tmp = chunk_get_next(start);
- }
- else
- {
- return(false);
- }
-
- while ( tmp != nullptr
- && tmp != end)
- {
- if (chunk_is_token(tmp, CT_NEWLINE))
- {
- return(false);
- }
- tmp = chunk_get_next(tmp);
- }
- return(true);
-}
-
-
-static chunk_t *chunk_search_type(chunk_t *cur, const c_token_t type,
- const scope_e scope, const direction_e dir)
-{
- /*
- * Depending on the parameter dir the search function searches
- * in forward or backward direction
- */
- search_t search_function = select_search_fct(dir);
- chunk_t *pc = cur;
-
- do // loop over the chunk list
- {
- pc = search_function(pc, scope); // in either direction while
- } while ( pc != nullptr // the end of the list was not reached yet
- && pc->type != type); // and the demanded chunk was not found either
-
- return(pc); // the latest chunk is the searched one
-}
-
-
-static chunk_t *chunk_search_typelevel(chunk_t *cur, c_token_t type, scope_e scope, direction_e dir, int level)
-{
- /*
- * Depending on the parameter dir the search function searches
- * in forward or backward direction
- */
- search_t search_function = select_search_fct(dir);
- chunk_t *pc = cur;
-
- do // loop over the chunk list
- {
- pc = search_function(pc, scope); // in either direction while
- } while ( pc != nullptr // the end of the list was not reached yet
- && (!is_expected_type_and_level(pc, type, level)));
-
- return(pc); // the latest chunk is the searched one
-}
-
-
-static chunk_t *chunk_search_str(chunk_t *cur, const char *str, size_t len, scope_e scope, direction_e dir, int level)
-{
- /*
- * Depending on the parameter dir the search function searches
- * in forward or backward direction */
- search_t search_function = select_search_fct(dir);
- chunk_t *pc = cur;
-
- do // loop over the chunk list
- {
- pc = search_function(pc, scope); // in either direction while
- } while ( pc != nullptr // the end of the list was not reached yet
- && (!is_expected_string_and_level(pc, str, level, len)));
-
- return(pc); // the latest chunk is the searched one
-}
-
-
-static chunk_t *chunk_search(chunk_t *cur, const check_t check_fct, const scope_e scope,
- const direction_e dir, const bool cond)
-{
- /*
- * Depending on the parameter dir the search function searches
- * in forward or backward direction */
- search_t search_function = select_search_fct(dir);
- chunk_t *pc = cur;
-
- do // loop over the chunk list
- {
- pc = search_function(pc, scope); // in either direction while
- } while ( pc != nullptr // the end of the list was not reached yet
- && (check_fct(pc) != cond)); // and the demanded chunk was not found either
-
- return(pc); // the latest chunk is the searched one
-}
-
-
-static chunk_t *chunk_ppa_search(chunk_t *cur, const check_t check_fct, const bool cond)
-{
- if ( cur != nullptr
- && !cur->flags.test(PCF_IN_PREPROC))
- {
- // if not in preprocessor, do a regular search
- return(chunk_search(cur, check_fct, scope_e::ALL,
- direction_e::FORWARD, cond));
- }
- chunk_t *pc = cur;
-
- while ( pc != nullptr
- && (pc = pc->next) != nullptr)
- {
- if (!pc->flags.test(PCF_IN_PREPROC))
- {
- // Bail if we run off the end of the preprocessor directive, but
- // return the next token, NOT nullptr, because the caller may need to
- // know where the search ended
- assert(chunk_is_token(pc, CT_NEWLINE));
- return(pc);
- }
-
- if (chunk_is_token(pc, CT_NL_CONT))
- {
- // Skip line continuation
- continue;
- }
-
- if (check_fct(pc) == cond)
- {
- // Requested token was found
- return(pc);
- }
- }
- // Ran out of tokens
- return(nullptr);
-}
-
-
-/* @todo maybe it is better to combine chunk_get_next and chunk_get_prev
- * into a common function However this should be done with the preprocessor
- * to avoid addition check conditions that would be evaluated in the
- * while loop of the calling function */
-chunk_t *chunk_get_next(chunk_t *cur, scope_e scope)
-{
- if (cur == nullptr)
- {
- return(nullptr);
- }
- chunk_t *pc = g_cl.GetNext(cur);
-
- if ( pc == nullptr
- || scope == scope_e::ALL)
- {
- return(pc);
- }
-
- if (cur->flags.test(PCF_IN_PREPROC))
- {
- // If in a preproc, return nullptr if trying to leave
- if (!pc->flags.test(PCF_IN_PREPROC))
- {
- return(nullptr);
- }
- return(pc);
- }
-
- // Not in a preproc, skip any preproc
- while ( pc != nullptr
- && pc->flags.test(PCF_IN_PREPROC))
- {
- pc = g_cl.GetNext(pc);
- }
- return(pc);
-}
-
-
-chunk_t *chunk_get_prev(chunk_t *cur, scope_e scope)
-{
- if (cur == nullptr)
- {
- return(nullptr);
- }
- chunk_t *pc = g_cl.GetPrev(cur);
-
- if ( pc == nullptr
- || scope == scope_e::ALL)
- {
- return(pc);
- }
-
- if (cur->flags.test(PCF_IN_PREPROC))
- {
- // If in a preproc, return NULL if trying to leave
- if (!pc->flags.test(PCF_IN_PREPROC))
- {
- return(nullptr);
- }
- return(pc);
- }
-
- // Not in a preproc, skip any preproc
- while ( pc != nullptr
- && pc->flags.test(PCF_IN_PREPROC))
- {
- pc = g_cl.GetPrev(pc);
- }
- return(pc);
-}
-
-
-chunk_t *chunk_dup(const chunk_t *pc_in)
-{
- chunk_t *pc = new chunk_t; // Allocate a new chunk
-
- if (pc == nullptr)
- {
- // @todo clean up properly before crashing
- LOG_FMT(LERR, "Failed to allocate memory\n");
- log_func_stack_inline(LSETFLG);
- log_flush(true);
- exit(EXIT_FAILURE);
- }
- // Copy all fields and then init the entry
- *pc = *pc_in; // TODO: what happens if pc_in == nullptr?
- g_cl.InitEntry(pc);
-
- return(pc);
-}
-
-
-static void chunk_log_msg(chunk_t *chunk, const log_sev_t log, const char *str)
-{
- LOG_FMT(log, "%s orig_line is %zu, orig_col is %zu, ",
- str, chunk->orig_line, chunk->orig_col);
-
- if (chunk_is_token(chunk, CT_NEWLINE))
- {
- LOG_FMT(log, "<Newline>,\n");
- }
- else if (chunk_is_token(chunk, CT_VBRACE_OPEN))
- {
- LOG_FMT(log, "<VBRACE_OPEN>,\n");
- }
- else if (chunk_is_token(chunk, CT_VBRACE_CLOSE))
- {
- LOG_FMT(log, "<VBRACE_CLOSE>,\n");
- }
- else
- {
- LOG_FMT(log, "text() is '%s', type is %s,\n", chunk->text(), get_token_name(chunk->type));
- }
-}
-
-
-static void chunk_log(chunk_t *pc, const char *text)
-{
- if ( pc != nullptr
- && (cpd.unc_stage != unc_stage_e::TOKENIZE)
- && (cpd.unc_stage != unc_stage_e::CLEANUP))
- {
- const log_sev_t log = LCHUNK;
- chunk_t *prev = chunk_get_prev(pc);
- chunk_t *next = chunk_get_next(pc);
-
- chunk_log_msg(pc, log, text);
-
- if ( prev != nullptr
- && next != nullptr)
- {
- chunk_log_msg(prev, log, " @ between");
- chunk_log_msg(next, log, " and");
- }
- else if (next != nullptr)
- {
- chunk_log_msg(next, log, " @ before");
- }
- else if (prev != nullptr)
- {
- chunk_log_msg(prev, log, " @ after");
- }
- LOG_FMT(log, " stage is %s", // Issue #3034
- get_unc_stage_name(cpd.unc_stage));
- log_func_stack_inline(log);
- }
-}
-
-
-chunk_t *chunk_add_after(const chunk_t *pc_in, chunk_t *ref)
-{
- return(chunk_add(pc_in, ref, direction_e::FORWARD));
-}
-
-
-chunk_t *chunk_add_before(const chunk_t *pc_in, chunk_t *ref)
-{
- return(chunk_add(pc_in, ref, direction_e::BACKWARD));
-}
-
-
-void chunk_del(chunk_t * &pc)
-{
- g_cl.Pop(pc);
- delete pc;
- pc = nullptr;
-}
-
-
-void chunk_move_after(chunk_t *pc_in, chunk_t *ref)
-{
- LOG_FUNC_ENTRY();
- g_cl.Pop(pc_in);
- g_cl.AddAfter(pc_in, ref);
-
- // HACK: Adjust the original column
- pc_in->column = ref->column + space_col_align(ref, pc_in);
- pc_in->orig_col = pc_in->column;
- pc_in->orig_col_end = pc_in->orig_col + pc_in->len();
-}
-
-
-chunk_t *chunk_get_next_nl(chunk_t *cur, scope_e scope)
-{
- return(chunk_search(cur, chunk_is_newline, scope, direction_e::FORWARD, true));
-}
-
-
-chunk_t *chunk_get_prev_nl(chunk_t *cur, scope_e scope)
-{
- return(chunk_search(cur, chunk_is_newline, scope, direction_e::BACKWARD, true));
-}
-
-
-chunk_t *chunk_get_next_nnl(chunk_t *cur, scope_e scope)
-{
- return(chunk_search(cur, chunk_is_newline, scope, direction_e::FORWARD, false));
-}
-
-
-chunk_t *chunk_get_prev_nnl(chunk_t *cur, scope_e scope)
-{
- return(chunk_search(cur, chunk_is_newline, scope, direction_e::BACKWARD, false));
-}
-
-
-chunk_t *chunk_get_next_ncnnl(chunk_t *cur, scope_e scope)
-{
- return(chunk_search(cur, chunk_is_comment_or_newline, scope, direction_e::FORWARD, false));
-}
-
-
-chunk_t *chunk_get_prev_ncnnl(chunk_t *cur, scope_e scope)
-{
- return(chunk_search(cur, chunk_is_comment_or_newline, scope, direction_e::BACKWARD, false));
-}
-
-
-chunk_t *chunk_get_next_ncnnlnp(chunk_t *cur, scope_e scope)
-{
- return(chunk_search(cur, chunk_is_comment_newline_or_preproc, scope, direction_e::FORWARD, false));
-}
-
-
-chunk_t *chunk_get_prev_ncnnlnp(chunk_t *cur, scope_e scope)
-{
- return(chunk_search(cur, chunk_is_comment_newline_or_preproc, scope, direction_e::BACKWARD, false));
-}
-
-
-chunk_t *chunk_get_next_ncnnl_in_pp(chunk_t *cur, scope_e scope)
-{
- return(chunk_search(cur, chunk_is_comment_or_newline_in_preproc, scope, direction_e::FORWARD, false));
-}
-
-
-chunk_t *chunk_get_prev_ncnnl_in_pp(chunk_t *cur, scope_e scope)
-{
- return(chunk_search(cur, chunk_is_comment_or_newline_in_preproc, scope, direction_e::BACKWARD, false));
-}
-
-
-chunk_t *chunk_ppa_get_next_ncnnl(chunk_t *cur)
-{
- return(chunk_ppa_search(cur, chunk_is_comment_or_newline, false));
-}
-
-
-chunk_t *chunk_get_next_nblank(chunk_t *cur, scope_e scope)
-{
- return(chunk_search(cur, chunk_is_comment_newline_or_blank, scope, direction_e::FORWARD, false));
-}
-
-
-chunk_t *chunk_get_prev_nblank(chunk_t *cur, scope_e scope)
-{
- return(chunk_search(cur, chunk_is_comment_newline_or_blank, scope, direction_e::BACKWARD, false));
-}
-
-
-chunk_t *chunk_get_next_nc(chunk_t *cur, scope_e scope)
-{
- return(chunk_search(cur, chunk_is_comment, scope, direction_e::FORWARD, false));
-}
-
-
-chunk_t *chunk_get_prev_nc(chunk_t *cur, scope_e scope)
-{
- return(chunk_search(cur, chunk_is_comment, scope, direction_e::BACKWARD, false));
-}
-
-
-chunk_t *chunk_get_next_nisq(chunk_t *cur, scope_e scope)
-{
- return(chunk_search(cur, chunk_is_balanced_square, scope, direction_e::FORWARD, false));
-}
-
-
-chunk_t *chunk_get_prev_ncnnlni(chunk_t *cur, scope_e scope)
-{
- return(chunk_search(cur, chunk_is_comment_or_newline_or_ignored, scope, direction_e::BACKWARD, false));
-}
-
-
-chunk_t *chunk_get_next_type(chunk_t *cur, c_token_t type, int level, scope_e scope)
-{
- return(chunk_search_typelevel(cur, type, scope, direction_e::FORWARD, level));
-}
-
-
-chunk_t *chunk_get_prev_type(chunk_t *cur, c_token_t type, int level, scope_e scope)
-{
- return(chunk_search_typelevel(cur, type, scope, direction_e::BACKWARD, level));
-}
-
-
-chunk_t *chunk_get_next_str(chunk_t *cur, const char *str, size_t len, int level, scope_e scope)
-{
- return(chunk_search_str(cur, str, len, scope, direction_e::FORWARD, level));
-}
-
-
-chunk_t *chunk_get_prev_str(chunk_t *cur, const char *str, size_t len, int level, scope_e scope)
-{
- return(chunk_search_str(cur, str, len, scope, direction_e::BACKWARD, level));
-}
-
-
-bool chunk_is_newline_between(chunk_t *start, chunk_t *end)
-{
- for (chunk_t *pc = start; pc != end; pc = chunk_get_next(pc))
- {
- if (chunk_is_newline(pc))
- {
- return(true);
- }
- }
-
- return(false);
-}
-
-
-void chunk_swap(chunk_t *pc1, chunk_t *pc2)
-{
- g_cl.Swap(pc1, pc2);
-}
-
-
-// TODO: the following function shall be made similar to the search functions
-chunk_t *chunk_first_on_line(chunk_t *pc)
-{
- chunk_t *first = pc;
-
- while ( (pc = chunk_get_prev(pc)) != nullptr
- && !chunk_is_newline(pc))
- {
- first = pc;
- }
- return(first);
-}
-
-
-bool chunk_is_last_on_line(chunk_t &pc) //TODO: pc should be const here
-{
- // check if pc is the very last chunk of the file
- const auto *end = chunk_get_tail();
-
- if (&pc == end)
- {
- return(true);
- }
- // if the next chunk is a newline then pc is the last chunk on its line
- const auto *next = chunk_get_next(&pc);
-
- if (chunk_is_token(next, CT_NEWLINE))
- {
- return(true);
- }
- return(false);
-}
-
-
-// TODO: this function needs some cleanup
-void chunk_swap_lines(chunk_t *pc1, chunk_t *pc2)
-{
- // to swap lines we need to find the first chunk of the lines
- pc1 = chunk_first_on_line(pc1);
- pc2 = chunk_first_on_line(pc2);
-
- if ( pc1 == nullptr
- || pc2 == nullptr
- || pc1 == pc2)
- {
- return;
- }
- /*
- * Example start:
- * ? - start1 - a1 - b1 - nl1 - ? - ref2 - start2 - a2 - b2 - nl2 - ?
- * ^- pc1 ^- pc2
- */
- chunk_t *ref2 = chunk_get_prev(pc2);
-
- // Move the line started at pc2 before pc1
- while ( pc2 != nullptr
- && !chunk_is_newline(pc2))
- {
- chunk_t *tmp = chunk_get_next(pc2);
- g_cl.Pop(pc2);
- g_cl.AddBefore(pc2, pc1);
- pc2 = tmp;
- }
- /*
- * Should now be:
- * ? - start2 - a2 - b2 - start1 - a1 - b1 - nl1 - ? - ref2 - nl2 - ?
- * ^- pc1 ^- pc2
- */
-
- // Now move the line started at pc1 after ref2
- while ( pc1 != nullptr
- && !chunk_is_newline(pc1))
- {
- chunk_t *tmp = chunk_get_next(pc1);
- g_cl.Pop(pc1);
-
- if (ref2 != nullptr)
- {
- g_cl.AddAfter(pc1, ref2);
- }
- else
- {
- g_cl.AddHead(pc1);
- }
- ref2 = pc1;
- pc1 = tmp;
- }
- /*
- * Should now be:
- * ? - start2 - a2 - b2 - nl1 - ? - ref2 - start1 - a1 - b1 - nl2 - ?
- * ^- pc1 ^- pc2
- */
-
- /*
- * pc1 and pc2 should be the newlines for their lines.
- * swap the chunks and the nl_count so that the spacing remains the same.
- */
- if ( pc1 != nullptr
- && pc2 != nullptr)
- {
- size_t nl_count = pc1->nl_count;
-
- pc1->nl_count = pc2->nl_count;
- pc2->nl_count = nl_count;
-
- chunk_swap(pc1, pc2);
- }
-} // chunk_swap_lines
-
-
-chunk_t *chunk_get_next_nvb(chunk_t *cur, const scope_e scope)
-{
- return(chunk_search(cur, chunk_is_vbrace, scope, direction_e::FORWARD, false));
-}
-
-
-chunk_t *chunk_get_prev_nvb(chunk_t *cur, const scope_e scope)
-{
- return(chunk_search(cur, chunk_is_vbrace, scope, direction_e::BACKWARD, false));
-}
-
-
-void chunk_flags_set_real(chunk_t *pc, pcf_flags_t clr_bits, pcf_flags_t set_bits)
-{
- if (pc != nullptr)
- {
- LOG_FUNC_ENTRY();
- auto const nflags = (pc->flags & ~clr_bits) | set_bits;
-
- if (pc->flags != nflags)
- {
- LOG_FMT(LSETFLG,
- "%s(%d): %016llx^%016llx=%016llx\n"
- " orig_line is %zu, orig_col is %zu, text() '%s', type is %s,",
- __func__, __LINE__,
- static_cast<pcf_flags_t::int_t>(pc->flags),
- static_cast<pcf_flags_t::int_t>(pc->flags ^ nflags),
- static_cast<pcf_flags_t::int_t>(nflags),
- pc->orig_line, pc->orig_col, pc->text(),
- get_token_name(pc->type));
- LOG_FMT(LSETFLG, " parent_type is %s,\n ",
- get_token_name(get_chunk_parent_type(pc)));
- log_func_stack_inline(LSETFLG);
- pc->flags = nflags;
- }
- }
-}
-
-
-void set_chunk_type_real(chunk_t *pc, c_token_t token, const char *func, int line)
-{
- LOG_FUNC_ENTRY();
-
- if ( pc == nullptr
- || pc->type == token)
- {
- return;
- }
- LOG_FMT(LSETTYP, "%s(%d): orig_line is %zu, orig_col is %zu, pc->text() ",
- func, line, pc->orig_line, pc->orig_col);
-
- if (token == CT_NEWLINE)
- {
- LOG_FMT(LSETTYP, "<Newline>\n");
- }
- else
- {
- LOG_FMT(LSETTYP, "'%s'\n", pc->text());
- }
- LOG_FMT(LSETTYP, " pc->type is %s, pc->parent_type is %s => *type is %s, *parent_type is %s\n",
- get_token_name(pc->type), get_token_name(get_chunk_parent_type(pc)),
- get_token_name(token), get_token_name(get_chunk_parent_type(pc)));
- pc->type = token;
-} // set_chunk_type_real
-
-
-void set_chunk_parent_real(chunk_t *pc, c_token_t token, const char *func, int line)
-{
- LOG_FUNC_ENTRY();
-
- if ( pc == nullptr
- || get_chunk_parent_type(pc) == token)
- {
- return;
- }
- LOG_FMT(LSETPAR, "%s(%d): orig_line is %zu, orig_col is %zu, pc->text() ",
- func, line, pc->orig_line, pc->orig_col);
-
- if (token == CT_NEWLINE)
- {
- LOG_FMT(LSETPAR, "<Newline>\n");
- }
- else
- {
- char copy[1000];
- LOG_FMT(LSETPAR, "'%s'\n", pc->elided_text(copy));
- }
- LOG_FMT(LSETPAR, " pc->type is %s, pc->parent_type is %s => *type is %s, *parent_type is %s\n",
- get_token_name(pc->type), get_token_name(get_chunk_parent_type(pc)),
- get_token_name(token), get_token_name(get_chunk_parent_type(pc)));
- pc->parent_type = token;
-} // set_chunk_parent_real
-
-
-c_token_t get_chunk_parent_type(chunk_t *pc)
-{
- LOG_FUNC_ENTRY();
-
- if (pc == nullptr)
- {
- return(CT_NONE);
- }
- return(pc->parent_type);
-} // get_chunk_parent_type
-
-
-static chunk_t *chunk_add(const chunk_t *pc_in, chunk_t *ref, const direction_e pos)
-{
-#ifdef DEBUG
- // test if the pc_in chunk is properly set
- if (pc_in->pp_level == 999)
- {
- fprintf(stderr, "%s(%d): pp_level is not set\n", __func__, __LINE__);
- log_func_stack_inline(LSETFLG);
- log_flush(true);
- exit(EX_SOFTWARE);
- }
-
- if (pc_in->orig_line == 0)
- {
- fprintf(stderr, "%s(%d): no line number\n", __func__, __LINE__);
- log_func_stack_inline(LSETFLG);
- log_flush(true);
- exit(EX_SOFTWARE);
- }
-
- if (pc_in->orig_col == 0)
- {
- fprintf(stderr, "%s(%d): no column number\n", __func__, __LINE__);
- log_func_stack_inline(LSETFLG);
- log_flush(true);
- exit(EX_SOFTWARE);
- }
-#endif /* DEBUG */
-
- chunk_t *pc = chunk_dup(pc_in);
-
- if (pc != nullptr)
- {
- if (ref != nullptr) // ref is a valid chunk
- {
- (pos == direction_e::FORWARD) ? g_cl.AddAfter(pc, ref) : g_cl.AddBefore(pc, ref);
- }
- else // ref == NULL
- {
- (pos == direction_e::FORWARD) ? g_cl.AddHead(pc) : g_cl.AddTail(pc);
- }
- chunk_log(pc, "chunk_add(A):");
- }
- return(pc);
-} // chunk_add
-
-
-chunk_t *chunk_get_next_ssq(chunk_t *cur)
-{
- while ( chunk_is_token(cur, CT_TSQUARE)
- || chunk_is_token(cur, CT_SQUARE_OPEN))
- {
- if (chunk_is_token(cur, CT_SQUARE_OPEN))
- {
- cur = chunk_skip_to_match(cur);
- }
- cur = chunk_get_next_ncnnl(cur);
- }
- return(cur);
-}
-
-
-chunk_t *chunk_get_prev_ssq(chunk_t *cur)
-{
- while ( chunk_is_token(cur, CT_TSQUARE)
- || chunk_is_token(cur, CT_SQUARE_CLOSE))
- {
- if (chunk_is_token(cur, CT_SQUARE_CLOSE))
- {
- cur = chunk_skip_to_match_rev(cur);
- }
- cur = chunk_get_prev_ncnnl(cur);
- }
- return(cur);
-}
-
-
-chunk_t *chunk_get_pp_start(chunk_t *cur)
-{
- if (!chunk_is_preproc(cur))
- {
- return(nullptr);
- }
-
- while (!chunk_is_token(cur, CT_PREPROC))
- {
- cur = chunk_get_prev(cur, scope_e::PREPROC);
- }
- return(cur);
-}
-
-
-//! skip to the final word/type in a :: chain
-static chunk_t *chunk_skip_dc_member(chunk_t *start, scope_e scope, direction_e dir)
-{
- LOG_FUNC_ENTRY();
-
- if (start == nullptr)
- {
- return(nullptr);
- }
- const auto step_fcn = (dir == direction_e::FORWARD)
- ? chunk_get_next_ncnnl : chunk_get_prev_ncnnl;
-
- chunk_t *pc = start;
- chunk_t *next = chunk_is_token(pc, CT_DC_MEMBER) ? pc : step_fcn(pc, scope);
-
- while (chunk_is_token(next, CT_DC_MEMBER))
- {
- pc = step_fcn(next, scope);
-
- if (pc == nullptr)
- {
- return(nullptr);
- }
- next = step_fcn(pc, scope);
- }
- return(pc);
-}
-
-
-chunk_t *chunk_skip_dc_member(chunk_t *start, scope_e scope)
-{
- return(chunk_skip_dc_member(start, scope, direction_e::FORWARD));
-}
-
-
-chunk_t *chunk_skip_dc_member_rev(chunk_t *start, scope_e scope)
-{
- return(chunk_skip_dc_member(start, scope, direction_e::BACKWARD));
-}
-
-
-// set parent member
-void chunk_set_parent(chunk_t *pc, chunk_t *parent)
-{
- if (pc == nullptr)
- {
- return;
- }
-
- if (parent == nullptr)
- {
- return;
- }
-
- if (pc == parent)
- {
- return;
- }
- pc->parent = parent;
-}
-
-
-c_token_t get_type_of_the_parent(chunk_t *pc)
-{
- if (pc == nullptr)
- {
- return(CT_UNKNOWN);
- }
-
- if (pc->parent == nullptr)
- {
- return(CT_PARENT_NOT_SET);
- }
- return(pc->parent->type);
-}
-
-
-bool chunk_is_attribute_or_declspec(chunk_t *pc)
-{
- return( language_is_set(LANG_CPP)
- && ( chunk_is_token(pc, CT_ATTRIBUTE)
- || chunk_is_token(pc, CT_DECLSPEC)));
-}
-
-
-bool chunk_is_class_enum_struct_union(chunk_t *pc)
-{
- return( chunk_is_class_or_struct(pc)
- || chunk_is_enum(pc)
- || chunk_is_token(pc, CT_UNION));
-}
-
-
-bool chunk_is_class_or_struct(chunk_t *pc)
-{
- return( chunk_is_token(pc, CT_CLASS)
- || chunk_is_token(pc, CT_STRUCT));
-}
-
-
-bool chunk_is_class_struct_union(chunk_t *pc)
-{
- return( chunk_is_class_or_struct(pc)
- || chunk_is_token(pc, CT_UNION));
-}
-
-
-bool chunk_is_enum(chunk_t *pc)
-{
- return( chunk_is_token(pc, CT_ENUM)
- || chunk_is_token(pc, CT_ENUM_CLASS));
-}
-
-
-int chunk_compare_position(const chunk_t *A_token, const chunk_t *B_token)
-{
- if (A_token == nullptr)
- {
- assert(A_token);
- }
-
- if (B_token == nullptr)
- {
- assert(B_token);
- }
-
- if (A_token->orig_line < B_token->orig_line)
- {
- return(-1);
- }
- else if (A_token->orig_line == B_token->orig_line)
- {
- if (A_token->orig_col < B_token->orig_col)
- {
- return(-1);
- }
- else if (A_token->orig_col == B_token->orig_col)
- {
- return(0);
- }
- }
- return(1);
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/chunk_list.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/chunk_list.h
deleted file mode 100644
index 1368c5d2..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/chunk_list.h
+++ /dev/null
@@ -1,1032 +0,0 @@
-/**
- * @file chunk_list.h
- * Manages and navigates the list of chunks.
- *
- * @author Ben Gardner
- * @license GPL v2+
- */
-
-#ifndef CHUNK_LIST_H_INCLUDED
-#define CHUNK_LIST_H_INCLUDED
-
-#include "uncrustify_types.h"
-// necessary to not sort it
-#include "char_table.h"
-#include "language_tools.h"
-
-
-/*
- * TODO: better use a namespace for all chunk related operations.
- * The function "chunk_is_comment()" would for instance
- * become "chunk::is_comment()". This makes the usage of the chunks easier
- * and more intuitive.
- */
-
-
-static constexpr int ANY_LEVEL = -1;
-
-
-/**
- * Specifies which chunks should/should not be found.
- * ALL (default)
- * - return the true next/prev
- *
- * PREPROC
- * - If not in a preprocessor, skip over any encountered preprocessor stuff
- * - If in a preprocessor, fail to leave (return nullptr)
- */
-enum class scope_e : unsigned int
-{
- ALL, //! search in all kind of chunks
- PREPROC, //! search only in preprocessor chunks
-};
-
-
-/**
- * duplicate a chunk in a chunk list
- *
- * @param pc_in chunk to duplicate
- */
-chunk_t *chunk_dup(const chunk_t *pc_in);
-
-
-/**
- * @brief Add a copy of a chunk to a chunk list after the given position.
- *
- * @note If ref is nullptr, add at the tail of the chunk list
- *
- * @todo is ref=nullptr really useful ?
- *
- * @param pc_in pointer to chunk to add to list
- * @param ref position where insertion takes place
- *
- * @return pointer to the added chunk
- */
-chunk_t *chunk_add_after(const chunk_t *pc_in, chunk_t *ref);
-
-
-/**
- * @brief Add a copy of a chunk to a chunk list before the given position
- *
- * @note If ref is nullptr, add at the head of the chunk list
- *
- * @todo is ref=nullptr really useful ?
- *
- * \bug code adds it before the tail, either code or comment is wrong
- *
- * @param pc_in pointer to chunk to add to list
- * @param ref position where insertion takes place
- *
- * @retval pointer to the added chunk
- */
-chunk_t *chunk_add_before(const chunk_t *pc_in, chunk_t *ref);
-
-
-/**
- * delete a chunk from a chunk list
- *
- * @param pc chunk to delete
- */
-void chunk_del(chunk_t * &pc);
-
-
-/**
- * move a chunk to after the reference position in a chunk list
- *
- * @param pc_in chunk to move
- * @param ref chunk after which to move
- */
-void chunk_move_after(chunk_t *pc_in, chunk_t *ref);
-
-
-/**
- * @brief returns the head of a chunk list
- *
- * @return pointer to the first chunk
- */
-chunk_t *chunk_get_head(void);
-
-
-//! get the last chunk in a chunk list
-chunk_t *chunk_get_tail(void);
-
-
-/**
- * @brief returns the next chunk in a list of chunks
- *
- * @param cur chunk to use as start point
- * @param scope code region to search in
- *
- * @return pointer to next chunk or nullptr if no chunk was found
- */
-chunk_t *chunk_get_next(chunk_t *cur, scope_e scope = scope_e::ALL);
-
-
-/**
- * @brief returns the previous chunk in a list of chunks
- *
- * @param cur chunk to use as start point
- * @param scope code region to search in
- *
- * @return pointer to previous chunk or nullptr if no chunk was found
- */
-chunk_t *chunk_get_prev(chunk_t *cur, scope_e scope = scope_e::ALL);
-
-
-/**
- * Swaps two chunks
- *
- * @param pc1 The first chunk
- * @param pc2 The second chunk
- */
-void chunk_swap(chunk_t *pc1, chunk_t *pc2);
-
-
-/**
- * Swaps two lines that are started with the specified chunks.
- *
- * @param pc1 The first chunk of line 1
- * @param pc2 The first chunk of line 2
- */
-void chunk_swap_lines(chunk_t *pc1, chunk_t *pc2);
-
-
-/**
- * Finds the first chunk on the line that pc is on.
- * This just backs up until a newline or nullptr is hit.
- *
- * given: [ a - b - c - n1 - d - e - n2 ]
- * input: [ a | b | c | n1 ] => a
- * input: [ d | e | n2 ] => d
- *
- * @param pc chunk to start with
- */
-chunk_t *chunk_first_on_line(chunk_t *pc);
-
-
-//! check if a given chunk is the last on its line
-bool chunk_is_last_on_line(chunk_t &pc);
-
-
-/**
- * Gets the next NEWLINE chunk
- *
- * @param cur chunk to use as start point
- * @param scope code region to search in
- */
-chunk_t *chunk_get_next_nl(chunk_t *cur, scope_e scope = scope_e::ALL);
-
-
-/**
- * Gets the next non-comment chunk
- *
- * @param cur chunk to use as start point
- * @param scope code region to search in
- */
-chunk_t *chunk_get_next_nc(chunk_t *cur, scope_e scope = scope_e::ALL);
-
-
-/**
- * Gets the next non-NEWLINE
- *
- * @param cur chunk to use as start point
- * @param scope code region to search in
- */
-chunk_t *chunk_get_next_nnl(chunk_t *cur, scope_e scope = scope_e::ALL);
-
-
-/**
- * Gets the next non-NEWLINE and non-comment chunk
- *
- * @param cur chunk to use as start point
- * @param scope code region to search in
- */
-chunk_t *chunk_get_next_ncnnl(chunk_t *cur, scope_e scope = scope_e::ALL);
-
-
-/**
- * Gets the next non-NEWLINE and non-comment chunk, non-preprocessor chunk
- *
- * @param cur chunk to use as start point
- * @param scope code region to search in
- */
-chunk_t *chunk_get_next_ncnnlnp(chunk_t *cur, scope_e scope = scope_e::ALL);
-
-
-/**
- * Gets the next non-NEWLINE and non-comment chunk inside a preprocessor block
- *
- * @param cur chunk to use as start point
- * @param scope code region to search in
- */
-chunk_t *chunk_get_next_ncnnl_in_pp(chunk_t *cur, scope_e scope = scope_e::ALL);
-
-
-/**
- * Gets the next non-NEWLINE and non-comment chunk (preprocessor aware).
- * Unlike chunk_get_next_ncnnl, this will also ignore a line continuation if
- * the starting chunk is in a preprocessor directive, and may return a newline
- * if the search reaches the end of a preprocessor directive.
- *
- * @param cur chunk to use as start point
- * @param scope code region to search in
- */
-chunk_t *chunk_ppa_get_next_ncnnl(chunk_t *cur);
-
-
-/**
- * Gets the next chunk not in or part of balanced square
- * brackets. This handles stacked [] instances to accommodate
- * multi-dimensional array declarations
- *
- * @param cur chunk to use as start point
- * @param scope code region to search in
- *
- * @return nullptr or the next chunk not in or part of square brackets
- */
-chunk_t *chunk_get_next_nisq(chunk_t *cur, scope_e scope = scope_e::ALL);
-
-
-/**
- * Gets the next non-blank chunk
- *
- * @param cur chunk to use as start point
- * @param scope code region to search in
- */
-chunk_t *chunk_get_next_nblank(chunk_t *cur, scope_e scope = scope_e::ALL);
-
-
-/**
- * Gets the prev non-blank chunk
- *
- * @param cur chunk to use as start point
- * @param scope code region to search in
- */
-chunk_t *chunk_get_prev_nblank(chunk_t *cur, scope_e scope = scope_e::ALL);
-
-
-/**
- * Gets the prev NEWLINE chunk
- *
- * @param cur chunk to use as start point
- * @param scope code region to search in
- */
-chunk_t *chunk_get_prev_nl(chunk_t *cur, scope_e scope = scope_e::ALL);
-
-
-/**
- * Gets the prev non-comment chunk
- *
- * @param cur chunk to use as start point
- * @param scope code region to search in
- */
-chunk_t *chunk_get_prev_nc(chunk_t *cur, scope_e scope = scope_e::ALL);
-
-
-/**
- * Gets the prev non-NEWLINE chunk
- *
- * @param cur chunk to use as start point
- * @param scope code region to search in
- */
-chunk_t *chunk_get_prev_nnl(chunk_t *cur, scope_e scope = scope_e::ALL);
-
-
-/**
- * Gets the prev non-NEWLINE and non-comment chunk
- *
- * @param cur chunk to use as start point
- * @param scope code region to search in
- */
-chunk_t *chunk_get_prev_ncnnl(chunk_t *cur, scope_e scope = scope_e::ALL);
-
-
-/**
- * Gets the prev non-NEWLINE and non-comment chunk inside a preprocessor block
- *
- * @param cur chunk to use as start point
- * @param scope code region to search in
- */
-chunk_t *chunk_get_prev_ncnnl_in_pp(chunk_t *cur, scope_e scope = scope_e::ALL);
-
-
-/**
- * Gets the prev non-NEWLINE and non-comment and non-ignored chunk
- *
- * @param cur chunk to use as start point
- * @param scope code region to search in
- */
-chunk_t *chunk_get_prev_ncnnlni(chunk_t *cur, scope_e scope = scope_e::ALL);
-
-
-/**
- * Gets the prev non-NEWLINE and non-comment chunk, non-preprocessor chunk
- *
- * @param cur chunk to use as start point
- * @param scope code region to search in
- */
-chunk_t *chunk_get_prev_ncnnlnp(chunk_t *cur, scope_e scope = scope_e::ALL);
-
-
-/**
- * Grabs the next chunk of the given type at the level.
- *
- * @param cur chunk to use as start point
- * @param type the type to look for
- * @param level -1 or ANY_LEVEL (any level) or the level to match
- * @param scope code region to search in
- *
- * @return nullptr or the match
- */
-chunk_t *chunk_get_next_type(chunk_t *cur, c_token_t type, int level, scope_e scope = scope_e::ALL);
-
-
-/**
- * Grabs the prev chunk of the given type at the level.
- *
- * @param cur chunk to use as start point
- * @param type The type to look for
- * @param level -1 or ANY_LEVEL (any level) or the level to match
- * @param scope code region to search in
- *
- * @return nullptr or the match
- */
-chunk_t *chunk_get_prev_type(chunk_t *cur, c_token_t type, int level, scope_e scope = scope_e::ALL);
-
-
-/**
- * @brief find a chunk that holds a given string
- *
- * Traverses a chunk list in forward direction until a chunk of a given category is found.
- *
- * @param cur chunk to use as start point
- * @param str string to search for
- * @param len length of string
- * @param level the level to match or -1 or ANY_LEVEL
- * @param scope code region to search in
- *
- * @retval nullptr no chunk found or invalid parameters provided
- * @retval chunk_t pointer to the found chunk
- */
-chunk_t *chunk_get_next_str(chunk_t *cur, const char *str, size_t len, int level, scope_e scope = scope_e::ALL);
-
-
-/**
- * @brief find a chunk that holds a given string
- *
- * Traverses a chunk list in backward direction until a chunk of a given category is found.
- *
- * @param cur chunk to use as start point
- * @param str string to search for
- * @param len length of string
- * @param level the level to match or -1 or ANY_LEVEL
- * @param scope code region to search in
- *
- * @retval nullptr no chunk found or invalid parameters provided
- * @retval chunk_t pointer to the found chunk
- */
-chunk_t *chunk_get_prev_str(chunk_t *cur, const char *str, size_t len, int level, scope_e scope = scope_e::ALL);
-
-
-/**
- * @brief Gets the next non-vbrace chunk
- *
- * @param cur chunk to start search
- * @param scope chunk section to consider
- *
- * @return pointer to found chunk or nullptr if no chunk was found
- */
-chunk_t *chunk_get_next_nvb(chunk_t *cur, const scope_e scope = scope_e::ALL);
-
-
-/**
- * @brief Gets the previous non-vbrace chunk
- *
- * @param cur chunk to start search
- * @param scope chunk section to consider
- *
- * @return pointer to found chunk or nullptr if no chunk was found
- */
-chunk_t *chunk_get_prev_nvb(chunk_t *cur, const scope_e scope = scope_e::ALL);
-
-
-/**
- * Gets the next chunk not in or part of balanced square
- * brackets.This handles stacked[] instances to accommodate
- * multi - dimensional array declarations
- *
- * @param cur chunk to use as start point
- *
- * @return nullptr or the next chunk not in or part of square brackets
- */
-chunk_t *chunk_get_next_ssq(chunk_t *cur);
-
-/**
- * Gets the prev chunk not in or part of balanced square
- * brackets.This handles stacked[] instances to accommodate
- * multi - dimensional array declarations
- *
- * @param cur chunk to use as start point
- *
- * @return nullptr or the prev chunk not in or part of square brackets
- */
-chunk_t *chunk_get_prev_ssq(chunk_t *cur);
-
-/**
- * Gets the corresponding start chunk if the given chunk is within a
- * preprocessor directive, or nullptr otherwise.
- *
- * @param cur chunk to use as start point
- *
- * @return nullptr or start chunk of the preprocessor directive
- */
-chunk_t *chunk_get_pp_start(chunk_t *cur);
-
-/**
- * @brief reverse search a chunk of a given category in a chunk list
- *
- * @param pc chunk list to search in
- * @param cat category to search for
- *
- * @retval nullptr no object found, or invalid parameters provided
- * @retval chunk_t pointer to the found object
- */
-chunk_t *chunk_search_prev_cat(chunk_t *pc, const c_token_t cat);
-
-
-/**
- * @brief forward search a chunk of a given category in a chunk list
- *
- * @param pc chunk list to search in
- * @param cat category to search for
- *
- * @retval nullptr no object found, or invalid parameters provided
- * @retval chunk_t pointer to the found object
- */
-chunk_t *chunk_search_next_cat(chunk_t *pc, const c_token_t cat);
-
-/**
- * @brief checks wether two chunks are in same line
- *
- * @param start
- * @param end
- *
- * @return true if there is no newline between start and end chunks
- */
-bool are_chunks_in_same_line(chunk_t *start, chunk_t *end);
-
-/*
- * TODO: better move the function implementations to the source file.
- * No need to make the implementation public.
- */
-
-
-/*
- * TODO: I doubt that inline is required for the functions below.
- * The compiler should know how to optimize the code itself.
- * To clarify do a profiling run with and without inline
- */
-static inline bool is_expected_type_and_level(chunk_t *pc, c_token_t type, int level)
-{
- // we don't care if the pointer is invalid or about the level (if it is negative),
- // or it is as expected and the type is as expected
- return( pc == nullptr
- || ( ( level < 0
- || pc->level == static_cast<size_t>(level))
- && pc->type == type));
-}
-
-
-static inline bool is_expected_string_and_level(chunk_t *pc, const char *str, int level, size_t len)
-{
- // we don't care if the pointer is invalid or about the level (if it is negative) or it is as expected
- return( pc == nullptr
- || ( ( level < 0
- || pc->level == static_cast<size_t>(level))
- && pc->len() == len // and the length is as expected
- && memcmp(str, pc->text(), len) == 0)); // and the strings are equal
-}
-
-
-static inline bool chunk_is_token(const chunk_t *pc, c_token_t c_token)
-{
- return( pc != nullptr
- && pc->type == c_token);
-}
-
-
-static inline bool chunk_is_not_token(const chunk_t *pc, c_token_t c_token)
-{
- return( pc != nullptr
- && pc->type != c_token);
-}
-
-
-/**
- * Skips to the closing match for the current paren/brace/square.
- *
- * @param cur The opening or closing paren/brace/square
- * @param scope chunk section to consider
- *
- * @return nullptr or the matching paren/brace/square
- */
-static inline chunk_t *chunk_skip_to_match(chunk_t *cur, scope_e scope = scope_e::ALL)
-{
- if ( cur != nullptr
- && ( chunk_is_token(cur, CT_PAREN_OPEN)
- || chunk_is_token(cur, CT_SPAREN_OPEN)
- || chunk_is_token(cur, CT_FPAREN_OPEN)
- || chunk_is_token(cur, CT_TPAREN_OPEN)
- || chunk_is_token(cur, CT_BRACE_OPEN)
- || chunk_is_token(cur, CT_VBRACE_OPEN)
- || chunk_is_token(cur, CT_ANGLE_OPEN)
- || chunk_is_token(cur, CT_SQUARE_OPEN)))
- {
- return(chunk_get_next_type(cur, (c_token_t)(cur->type + 1), cur->level, scope));
- }
- return(cur);
-}
-
-
-static inline chunk_t *chunk_skip_to_match_rev(chunk_t *cur, scope_e scope = scope_e::ALL)
-{
- if ( cur != nullptr
- && ( chunk_is_token(cur, CT_PAREN_CLOSE)
- || chunk_is_token(cur, CT_SPAREN_CLOSE)
- || chunk_is_token(cur, CT_FPAREN_CLOSE)
- || chunk_is_token(cur, CT_TPAREN_CLOSE)
- || chunk_is_token(cur, CT_BRACE_CLOSE)
- || chunk_is_token(cur, CT_VBRACE_CLOSE)
- || chunk_is_token(cur, CT_ANGLE_CLOSE)
- || chunk_is_token(cur, CT_SQUARE_CLOSE)))
- {
- return(chunk_get_prev_type(cur, (c_token_t)(cur->type - 1), cur->level, scope));
- }
- return(cur);
-}
-
-
-//! skip to the final word/type in a :: chain
-chunk_t *chunk_skip_dc_member(chunk_t *start, scope_e scope = scope_e::ALL);
-chunk_t *chunk_skip_dc_member_rev(chunk_t *start, scope_e scope = scope_e::ALL);
-
-
-/**
- * checks if a chunk is valid and is a comment
- *
- * comment means any kind of
- * - single line comment
- * - multiline comment
- * - C comment
- * - C++ comment
- */
-static inline bool chunk_is_comment(chunk_t *pc)
-{
- return( chunk_is_token(pc, CT_COMMENT)
- || chunk_is_token(pc, CT_COMMENT_MULTI)
- || chunk_is_token(pc, CT_COMMENT_CPP));
-}
-
-
-/**
- * Returns true if the chunk under test is an inheritance access specifier
- */
-static inline bool chunk_is_cpp_inheritance_access_specifier(chunk_t *pc)
-{
- return( language_is_set(LANG_CPP)
- && pc != nullptr
- && ( chunk_is_token(pc, CT_ACCESS)
- || chunk_is_token(pc, CT_QUALIFIER))
- && ( std::strncmp(pc->str.c_str(), "private", 7) == 0
- || std::strncmp(pc->str.c_str(), "protected", 9) == 0
- || std::strncmp(pc->str.c_str(), "public", 6) == 0));
-} // chunk_is_cpp_inheritance_access_specifier
-
-
-static inline bool chunk_is_colon(chunk_t *pc)
-{
- return( chunk_is_token(pc, CT_ACCESS_COLON)
- || chunk_is_token(pc, CT_ASM_COLON)
- || chunk_is_token(pc, CT_BIT_COLON)
- || chunk_is_token(pc, CT_CASE_COLON)
- || chunk_is_token(pc, CT_CLASS_COLON)
- || chunk_is_token(pc, CT_COLON)
- || chunk_is_token(pc, CT_COND_COLON)
- || chunk_is_token(pc, CT_CONSTR_COLON)
- || chunk_is_token(pc, CT_CS_SQ_COLON)
- || chunk_is_token(pc, CT_D_ARRAY_COLON)
- || chunk_is_token(pc, CT_FOR_COLON)
- || chunk_is_token(pc, CT_LABEL_COLON)
- || chunk_is_token(pc, CT_OC_COLON)
- || chunk_is_token(pc, CT_OC_DICT_COLON)
- || chunk_is_token(pc, CT_TAG_COLON)
- || chunk_is_token(pc, CT_WHERE_COLON));
-}
-
-
-static inline bool chunk_is_single_line_comment(chunk_t *pc)
-{
- return( chunk_is_token(pc, CT_COMMENT)
- || chunk_is_token(pc, CT_COMMENT_CPP));
-}
-
-
-static inline bool chunk_is_newline(chunk_t *pc)
-{
- return( chunk_is_token(pc, CT_NEWLINE)
- || chunk_is_token(pc, CT_NL_CONT));
-}
-
-
-static inline bool chunk_is_semicolon(chunk_t *pc)
-{
- return( chunk_is_token(pc, CT_SEMICOLON)
- || chunk_is_token(pc, CT_VSEMICOLON));
-}
-
-
-/**
- * checks if a chunk is valid and is a blank character
- *
- * @note check compares if len == 0
- *
- * @todo rename function: blank is a space not an empty string
- */
-static inline bool chunk_is_blank(chunk_t *pc)
-{
- return( pc != nullptr
- && (pc->len() == 0));
-}
-
-
-//! checks if a chunk is valid and either a comment or newline
-static inline bool chunk_is_comment_or_newline(chunk_t *pc)
-{
- return( chunk_is_comment(pc)
- || chunk_is_newline(pc));
-}
-
-
-//! checks if a chunk is valid and either a comment or newline or ignored
-static inline bool chunk_is_comment_or_newline_or_ignored(chunk_t *pc)
-{
- return( chunk_is_comment(pc)
- || chunk_is_newline(pc)
- || chunk_is_token(pc, CT_IGNORED));
-}
-
-
-static inline bool chunk_is_balanced_square(chunk_t *pc)
-{
- return( chunk_is_token(pc, CT_SQUARE_OPEN)
- || chunk_is_token(pc, CT_TSQUARE)
- || chunk_is_token(pc, CT_SQUARE_CLOSE));
-}
-
-
-static inline bool chunk_is_preproc(chunk_t *pc)
-{
- return( pc != nullptr
- && pc->flags.test(PCF_IN_PREPROC));
-}
-
-
-static inline bool chunk_is_comment_or_newline_in_preproc(chunk_t *pc)
-{
- return( pc != nullptr
- && chunk_is_preproc(pc)
- && ( chunk_is_comment(pc)
- || chunk_is_newline(pc)));
-}
-
-
-static inline bool chunk_is_comment_newline_or_preproc(chunk_t *pc)
-{
- return( chunk_is_comment(pc)
- || chunk_is_newline(pc)
- || chunk_is_preproc(pc));
-}
-
-
-static inline bool chunk_is_comment_newline_or_blank(chunk_t *pc)
-{
- return( chunk_is_comment_or_newline(pc)
- || chunk_is_blank(pc));
-}
-
-
-static inline bool chunk_is_Doxygen_comment(chunk_t *pc)
-{
- if ( pc == nullptr
- || !chunk_is_comment(pc))
- {
- return(false);
- }
- // check the third character
- const char *sComment = pc->text();
- const size_t len = strlen(sComment);
-
- if (len < 3)
- {
- return(false);
- }
- return( (sComment[2] == '/')
- || (sComment[2] == '!')
- || (sComment[2] == '@'));
-}
-
-
-static inline bool chunk_is_type(chunk_t *pc)
-{
- return( chunk_is_token(pc, CT_TYPE)
- || chunk_is_token(pc, CT_PTR_TYPE)
- || chunk_is_token(pc, CT_BYREF)
- || chunk_is_token(pc, CT_DC_MEMBER)
- || chunk_is_token(pc, CT_QUALIFIER)
- || chunk_is_token(pc, CT_STRUCT)
- || chunk_is_token(pc, CT_ENUM)
- || chunk_is_token(pc, CT_UNION));
-}
-
-
-static inline bool chunk_is_str(chunk_t *pc, const char *str, size_t len)
-{
- return( pc != nullptr // valid pc pointer
- && (pc->len() == len) // token size equals size parameter
- && (memcmp(pc->text(), str, len) == 0)); // token name is the same as str parameter
-
- /*
- * TODO: possible access beyond array for memcmp, check this
- * why not use strncmp here?
- */
-}
-
-
-static inline bool chunk_is_str_case(chunk_t *pc, const char *str, size_t len)
-{
- return( pc != nullptr
- && (pc->len() == len)
- && (strncasecmp(pc->text(), str, len) == 0));
-}
-
-
-static inline bool chunk_is_word(chunk_t *pc)
-{
- return( pc != nullptr
- && (pc->len() >= 1)
- && CharTable::IsKw1(pc->str[0]));
-}
-
-
-static inline bool chunk_is_star(chunk_t *pc)
-{
- return( pc != nullptr
- && (pc->len() == 1)
- && (pc->str[0] == '*')
- && pc->type != CT_OPERATOR_VAL);
-}
-
-
-static inline bool chunk_is_nullable(chunk_t *pc)
-{
- return( language_is_set(LANG_CS)
- && (pc != nullptr)
- && (pc->len() == 1)
- && (pc->str[0] == '?'));
-}
-
-
-static inline bool chunk_is_addr(chunk_t *pc)
-{
- if ( pc != nullptr
- && ( chunk_is_token(pc, CT_BYREF)
- || ( (pc->len() == 1)
- && (pc->str[0] == '&')
- && pc->type != CT_OPERATOR_VAL)))
- {
- chunk_t *prev = chunk_get_prev(pc);
-
- if ( pc->flags.test(PCF_IN_TEMPLATE)
- && ( chunk_is_token(prev, CT_COMMA)
- || chunk_is_token(prev, CT_ANGLE_OPEN)))
- {
- return(false);
- }
- return(true);
- }
- return(false);
-}
-
-
-static inline bool chunk_is_msref(chunk_t *pc) // ms compilers for C++/CLI and WinRT use '^' instead of '*' for marking up reference types vs pointer types
-{
- return( language_is_set(LANG_CPP)
- && ( pc != nullptr
- && (pc->len() == 1)
- && (pc->str[0] == '^')
- && pc->type != CT_OPERATOR_VAL));
-}
-
-
-static inline bool chunk_is_ptr_operator(chunk_t *pc)
-{
- return( ( chunk_is_star(pc)
- || chunk_is_addr(pc)
- || chunk_is_msref(pc))
- || chunk_is_nullable(pc));
-}
-
-
-static inline bool chunk_is_pointer_or_reference(chunk_t *pc)
-{
- return( chunk_is_ptr_operator(pc)
- || chunk_is_token(pc, CT_BYREF));
-}
-
-
-//! Check to see if there is a newline between the two chunks
-bool chunk_is_newline_between(chunk_t *start, chunk_t *end);
-
-
-static inline bool chunk_is_closing_brace(chunk_t *pc)
-{
- return( chunk_is_token(pc, CT_BRACE_CLOSE)
- || chunk_is_token(pc, CT_VBRACE_CLOSE));
-}
-
-
-static inline bool chunk_is_opening_brace(chunk_t *pc)
-{
- return( chunk_is_token(pc, CT_BRACE_OPEN)
- || chunk_is_token(pc, CT_VBRACE_OPEN));
-}
-
-
-static inline bool chunk_is_vbrace(chunk_t *pc)
-{
- return( chunk_is_token(pc, CT_VBRACE_CLOSE)
- || chunk_is_token(pc, CT_VBRACE_OPEN));
-}
-
-
-static inline bool chunk_is_paren_open(chunk_t *pc)
-{
- return( chunk_is_token(pc, CT_PAREN_OPEN)
- || chunk_is_token(pc, CT_SPAREN_OPEN)
- || chunk_is_token(pc, CT_TPAREN_OPEN)
- || chunk_is_token(pc, CT_FPAREN_OPEN)
- || chunk_is_token(pc, CT_LPAREN_OPEN));
-}
-
-
-static inline bool chunk_is_paren_close(chunk_t *pc)
-{
- return( chunk_is_token(pc, CT_PAREN_CLOSE)
- || chunk_is_token(pc, CT_SPAREN_CLOSE)
- || chunk_is_token(pc, CT_TPAREN_CLOSE)
- || chunk_is_token(pc, CT_FPAREN_CLOSE));
-}
-
-
-/**
- * Returns true if either chunk is null or both have the same preproc flags.
- * If this is true, you can remove a newline/nl_cont between the two.
- */
-static inline bool chunk_same_preproc(chunk_t *pc1, chunk_t *pc2)
-{
- return( pc1 == nullptr
- || pc2 == nullptr
- || ((pc1->flags & PCF_IN_PREPROC) == (pc2->flags & PCF_IN_PREPROC)));
-}
-
-
-/**
- * Returns true if it is safe to delete the newline token.
- * The prev and next chunks must have the same PCF_IN_PREPROC flag AND
- * the newline can't be after a C++ comment.
- */
-static inline bool chunk_safe_to_del_nl(chunk_t *nl)
-{
- chunk_t *tmp = chunk_get_prev(nl);
-
- if (chunk_is_token(tmp, CT_COMMENT_CPP))
- {
- return(false);
- }
- return(chunk_same_preproc(chunk_get_prev(nl), chunk_get_next(nl)));
-}
-
-
-/**
- * Checks if a chunk points to the opening parenthese of a
- * for(...in...) loop in Objective-C.
- *
- * @return true - the chunk is the opening parentheses of a for in loop
- */
-static inline bool chunk_is_forin(chunk_t *pc)
-{
- if ( language_is_set(LANG_OC)
- && chunk_is_token(pc, CT_SPAREN_OPEN))
- {
- chunk_t *prev = chunk_get_prev_ncnnl(pc);
-
- if (chunk_is_token(prev, CT_FOR))
- {
- chunk_t *next = pc;
-
- while ( next != nullptr
- && next->type != CT_SPAREN_CLOSE
- && next->type != CT_IN)
- {
- next = chunk_get_next_ncnnl(next);
- }
-
- if (chunk_is_token(next, CT_IN))
- {
- return(true);
- }
- }
- }
- return(false);
-}
-
-
-/**
- * Returns true if pc is an CT_ATTRIBUTE or CT_DECLSPEC
- */
-bool chunk_is_attribute_or_declspec(chunk_t *pc);
-
-
-/**
- * Returns true if pc is one of CT_CLASS, CT_ENUM, CT_ENUM_CLASS, CT_STRUCT or CT_UNION
- */
-bool chunk_is_class_enum_struct_union(chunk_t *pc);
-
-
-/**
- * Returns true if pc is a CT_CLASS or CT_STRUCT
- */
-bool chunk_is_class_or_struct(chunk_t *pc);
-
-
-/**
- * Returns true if pc is one of CT_CLASS, CT_STRUCT or CT_UNION
- */
-bool chunk_is_class_struct_union(chunk_t *pc);
-
-
-/**
- * Returns true if pc is a CT_ENUM or CT_ENUM_CLASS
- */
-bool chunk_is_enum(chunk_t *pc);
-
-
-void set_chunk_type_real(chunk_t *pc, c_token_t tt, const char *func, int line);
-
-
-void set_chunk_parent_real(chunk_t *pc, c_token_t tt, const char *func, int line);
-
-
-#define set_chunk_type(pc, tt) set_chunk_type_real((pc), (tt), __unqualified_func__, __LINE__)
-
-
-#define set_chunk_parent(pc, tt) set_chunk_parent_real((pc), (tt), __unqualified_func__, __LINE__)
-
-
-c_token_t get_chunk_parent_type(chunk_t *pc);
-
-
-void chunk_flags_set_real(chunk_t *pc, pcf_flags_t clr_bits, pcf_flags_t set_bits);
-
-
-#define chunk_flags_upd(pc, cc, ss) chunk_flags_set_real((pc), (cc), (ss))
-
-
-#define chunk_flags_set(pc, ss) chunk_flags_set_real((pc), {}, (ss))
-
-
-#define chunk_flags_clr(pc, cc) chunk_flags_set_real((pc), (cc), {})
-
-
-void chunk_set_parent(chunk_t *pc, chunk_t *parent);
-
-
-c_token_t get_type_of_the_parent(chunk_t *pc);
-
-
-/**
- * @brief compare the positions of two tokens in a file.
- *
- * The function compares the two positions of two tokens.
- *
- * @param A_token
- * @param B_token
- *
- * @return returns an integer less than, equal to, or greater than zero
- * if A_token is found, respectively, to be less/before than, to
- * match, or be greater/after than B_token.
- */
-int chunk_compare_position(const chunk_t *A_token, const chunk_t *B_token);
-
-
-#endif /* CHUNK_LIST_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/combine.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/combine.cpp
deleted file mode 100644
index c7bd48a1..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/combine.cpp
+++ /dev/null
@@ -1,3869 +0,0 @@
-/**
- * @file combine.cpp
- * Labels the chunks as needed.
- *
- * @author Ben Gardner
- * @author Guy Maurel
- * @license GPL v2+
- */
-
-#include "combine.h"
-
-#include "combine_fix_mark.h"
-#include "combine_skip.h"
-#include "combine_tools.h"
-#include "EnumStructUnionParser.h"
-#include "flag_braced_init_list.h"
-#include "flag_parens.h"
-#include "lang_pawn.h"
-#include "newlines.h"
-#include "prototypes.h"
-#include "tokenize_cleanup.h"
-
-#include <limits>
-
-constexpr static auto LCURRENT = LCOMBINE;
-
-using namespace std;
-using namespace uncrustify;
-
-
-/**
- * Mark the parens and colons in:
- * asm volatile ( "xx" : "xx" (l), "yy"(h) : ... );
- *
- * @param pc the CT_ASM item
- */
-static void flag_asm(chunk_t *pc);
-
-
-/**
- * Skips the list of class/struct parent types.
- */
-chunk_t *skip_parent_types(chunk_t *colon);
-
-
-/**
- * Combines two tokens into {{ and }} if inside parens and nothing is between
- * either pair.
- */
-static void check_double_brace_init(chunk_t *bo1);
-
-
-static void process_returns(void);
-
-
-/**
- * Processes a return statement, labeling the parens and marking the parent.
- * May remove or add parens around the return statement
- *
- * @param pc Pointer to the return chunk
- */
-static chunk_t *process_return(chunk_t *pc);
-
-
-/**
- * Process an ObjC 'class'
- * pc is the chunk after '@implementation' or '@interface' or '@protocol'.
- * Change colons, etc. Processes stuff until '@end'.
- * Skips anything in braces.
- */
-static void handle_oc_class(chunk_t *pc);
-
-
-/**
- * Mark Objective-C blocks (aka lambdas or closures)
- * The syntax and usage is exactly like C function pointers
- * but instead of an asterisk they have a caret as pointer symbol.
- * Although it may look expensive this functions is only triggered
- * on appearance of an OC_BLOCK_CARET for LANG_OC.
- * repeat(10, ^{ putc('0'+d); });
- * typedef void (^workBlk_t)(void);
- *
- * @param pc points to the '^'
- */
-static void handle_oc_block_literal(chunk_t *pc);
-
-
-/**
- * Mark Objective-C block types.
- * The syntax and usage is exactly like C function pointers
- * but instead of an asterisk they have a caret as pointer symbol.
- * typedef void (^workBlk_t)(void);
- * const char * (^workVar)(void);
- * -(void)Foo:(void(^)())blk { }
- *
- * This is triggered when the sequence '(' '^' is found.
- *
- * @param pc points to the '^'
- */
-static void handle_oc_block_type(chunk_t *pc);
-
-
-/**
- * Process an ObjC message spec/dec
- *
- * Specs:
- * -(void) foo ARGS;
- *
- * Declaration:
- * -(void) foo ARGS { }
- *
- * LABEL : (ARGTYPE) ARGNAME
- *
- * ARGS is ': (ARGTYPE) ARGNAME [MOREARGS...]'
- * MOREARGS is ' [ LABEL] : (ARGTYPE) ARGNAME '
- * -(void) foo: (int) arg: { }
- * -(void) foo: (int) arg: { }
- * -(void) insertObject:(id)anObject atIndex:(int)index
- */
-static void handle_oc_message_decl(chunk_t *pc);
-
-
-/**
- * Process an ObjC message send statement:
- * [ class func: val1 name2: val2 name3: val3] ; // named params
- * [ class func: val1 : val2 : val3] ; // unnamed params
- * [ class <proto> self method ] ; // with protocol
- * [[NSMutableString alloc] initWithString: @"" ] // class from msg
- * [func(a,b,c) lastObject ] // class from func
- *
- * Mainly find the matching ']' and ';' and mark the colons.
- *
- * @param pc points to the open square '['
- */
-static void handle_oc_message_send(chunk_t *pc);
-
-
-//! Process @Property values and re-arrange them if necessary
-static void handle_oc_property_decl(chunk_t *pc);
-
-//! Process @available annotation
-static void handle_oc_available(chunk_t *pc);
-
-/**
- * Process a type that is enclosed in parens in message declarations.
- * TODO: handle block types, which get special formatting
- *
- * @param pc points to the open paren
- *
- * @return the chunk after the type
- */
-static chunk_t *handle_oc_md_type(chunk_t *paren_open, c_token_t ptype, pcf_flags_t flags, bool &did_it);
-
-/**
- * Process an C# [] thingy:
- * [assembly: xxx]
- * [AttributeUsage()]
- * [@X]
- *
- * Set the next chunk to a statement start after the close ']'
- *
- * @param pc points to the open square '['
- */
-static void handle_cs_square_stmt(chunk_t *pc);
-
-
-/**
- * We are on a brace open that is preceded by a word or square close.
- * Set the brace parent to CT_CS_PROPERTY and find the first item in the
- * property and set its parent, too.
- */
-static void handle_cs_property(chunk_t *pc);
-
-
-/**
- * We hit a ']' followed by a WORD. This may be a multidimensional array type.
- * Example: int[,,] x;
- * If there is nothing but commas between the open and close, then mark it.
- */
-static void handle_cs_array_type(chunk_t *pc);
-
-
-/**
- * We are on the C++ 'template' keyword.
- * What follows should be the following:
- *
- * template <class identifier> function_declaration;
- * template <typename identifier> function_declaration;
- * template <class identifier> class class_declaration;
- * template <typename identifier> class class_declaration;
- *
- * Change the 'class' inside the <> to CT_TYPE.
- * Set the parent to the class after the <> to CT_TEMPLATE.
- * Set the parent of the semicolon to CT_TEMPLATE.
- */
-static void handle_cpp_template(chunk_t *pc);
-
-
-/**
- * Verify and then mark C++ lambda expressions.
- * The expected format is '[...](...){...}' or '[...](...) -> type {...}'
- * sq_o is '[' CT_SQUARE_OPEN or '[]' CT_TSQUARE
- * Split the '[]' so we can control the space
- */
-static void handle_cpp_lambda(chunk_t *pc);
-
-
-/**
- * We are on the D 'template' keyword.
- * What follows should be the following:
- *
- * template NAME ( TYPELIST ) { BODY }
- *
- * Set the parent of NAME to template, change NAME to CT_TYPE.
- * Set the parent of the parens and braces to CT_TEMPLATE.
- * Scan the body for each type in TYPELIST and change the type to CT_TYPE.
- */
-static void handle_d_template(chunk_t *pc);
-
-
-/**
- * A func wrap chunk and what follows should be treated as a function name.
- * Create new text for the chunk and call it a CT_FUNCTION.
- *
- * A type wrap chunk and what follows should be treated as a simple type.
- * Create new text for the chunk and call it a CT_TYPE.
- */
-static void handle_wrap(chunk_t *pc);
-
-
-/**
- * A proto wrap chunk and what follows should be treated as a function proto.
- *
- * RETTYPE PROTO_WRAP( NAME, PARAMS ); or RETTYPE PROTO_WRAP( NAME, (PARAMS) );
- * RETTYPE gets changed with make_type().
- * PROTO_WRAP is marked as CT_FUNC_PROTO or CT_FUNC_DEF.
- * NAME is marked as CT_WORD.
- * PARAMS is all marked as prototype parameters.
- */
-static void handle_proto_wrap(chunk_t *pc);
-
-
-static bool is_oc_block(chunk_t *pc);
-
-
-/**
- * Java assert statements are: "assert EXP1 [: EXP2] ;"
- * Mark the parent of the colon and semicolon
- */
-static void handle_java_assert(chunk_t *pc);
-
-
-static void flag_asm(chunk_t *pc)
-{
- LOG_FUNC_ENTRY();
-
- chunk_t *tmp = chunk_get_next_ncnnl(pc, scope_e::PREPROC);
-
- if (chunk_is_not_token(tmp, CT_QUALIFIER))
- {
- return;
- }
- chunk_t *po = chunk_get_next_ncnnl(tmp, scope_e::PREPROC);
-
- if (!chunk_is_paren_open(po))
- {
- return;
- }
- chunk_t *end = chunk_skip_to_match(po, scope_e::PREPROC);
-
- if (end == nullptr)
- {
- return;
- }
- set_chunk_parent(po, CT_ASM);
- set_chunk_parent(end, CT_ASM);
-
- for ( tmp = chunk_get_next_ncnnl(po, scope_e::PREPROC);
- tmp != nullptr
- && tmp != end;
- tmp = chunk_get_next_ncnnl(tmp, scope_e::PREPROC))
- {
- if (chunk_is_token(tmp, CT_COLON))
- {
- set_chunk_type(tmp, CT_ASM_COLON);
- }
- else if (chunk_is_token(tmp, CT_DC_MEMBER))
- {
- // if there is a string on both sides, then this is two ASM_COLONs
- if ( chunk_is_token(chunk_get_next_ncnnl(tmp, scope_e::PREPROC), CT_STRING)
- && chunk_is_token(chunk_get_prev_ncnnlni(tmp, scope_e::PREPROC), CT_STRING)) // Issue #2279
- {
- chunk_t nc;
-
- nc = *tmp;
-
- tmp->str.resize(1);
- tmp->orig_col_end = tmp->orig_col + 1;
- set_chunk_type(tmp, CT_ASM_COLON);
-
- set_chunk_type(&nc, tmp->type);
- nc.str.pop_front();
- nc.orig_col++;
- nc.column++;
- chunk_add_after(&nc, tmp);
- }
- }
- }
-
- tmp = chunk_get_next_ncnnl(end, scope_e::PREPROC);
-
- if (tmp == nullptr)
- {
- return;
- }
-
- if (chunk_is_token(tmp, CT_SEMICOLON))
- {
- set_chunk_parent(tmp, CT_ASM);
- }
-} // flag_asm
-
-
-void do_symbol_check(chunk_t *prev, chunk_t *pc, chunk_t *next)
-{
- LOG_FUNC_ENTRY();
- LOG_FMT(LFCNR, "%s(%d): prev is '%s'/%s\n",
- __func__, __LINE__,
- prev->text(), get_token_name(prev->type));
- log_pcf_flags(LFCNR, prev->flags);
- LOG_FMT(LFCNR, "%s(%d): pc is '%s'/%s\n",
- __func__, __LINE__,
- pc->text(), get_token_name(pc->type));
- log_pcf_flags(LFCNR, pc->flags);
- LOG_FMT(LFCNR, "%s(%d): next is '%s'/%s\n",
- __func__, __LINE__,
- next->text(), get_token_name(next->type));
- log_pcf_flags(LFCNR, next->flags);
-
- // separate the uses of CT_ASSIGN sign '='
- // into CT_ASSIGN_DEFAULT_ARG, CT_ASSIGN_FUNC_PROTO
- if ( chunk_is_token(pc, CT_ASSIGN)
- && get_chunk_parent_type(pc) == CT_FUNC_PROTO
- && ( pc->flags.test(PCF_IN_FCN_DEF) // Issue #2236
- || pc->flags.test(PCF_IN_CONST_ARGS)))
- {
- LOG_FMT(LFCNR, "%s(%d): orig_line is %zu, orig_col is %zu, text() '%s'\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text());
- log_pcf_flags(LFCNR, pc->flags);
- set_chunk_type(pc, CT_ASSIGN_DEFAULT_ARG);
- }
-
- if ( ( chunk_is_token(prev, CT_FPAREN_CLOSE)
- || ( ( chunk_is_str(prev, "const", 5)
- || chunk_is_str(prev, "override", 8))
- && chunk_is_token(prev->prev, CT_FPAREN_CLOSE)))
- && chunk_is_token(pc, CT_ASSIGN)
- && ( chunk_is_token(next, CT_DEFAULT)
- || chunk_is_token(next, CT_DELETE)
- || chunk_is_str(next, "0", 1)))
- {
- set_chunk_type(pc, CT_ASSIGN_FUNC_PROTO);
- }
-
- if (chunk_is_token(pc, CT_OC_AT))
- {
- if ( chunk_is_token(next, CT_PAREN_OPEN)
- || chunk_is_token(next, CT_BRACE_OPEN)
- || chunk_is_token(next, CT_SQUARE_OPEN))
- {
- flag_parens(next, PCF_OC_BOXED, next->type, CT_OC_AT, false);
- }
- else
- {
- set_chunk_parent(next, CT_OC_AT);
- }
- }
-
- // D stuff
- if ( language_is_set(LANG_D)
- && chunk_is_token(pc, CT_QUALIFIER)
- && chunk_is_str(pc, "const", 5)
- && chunk_is_token(next, CT_PAREN_OPEN))
- {
- set_chunk_type(pc, CT_D_CAST);
- set_paren_parent(next, pc->type);
- }
-
- if ( chunk_is_token(next, CT_PAREN_OPEN)
- && ( chunk_is_token(pc, CT_D_CAST)
- || chunk_is_token(pc, CT_DELEGATE)
- || chunk_is_token(pc, CT_ALIGN)))
- {
- // mark the parenthesis parent
- chunk_t *tmp = set_paren_parent(next, pc->type);
-
- // For a D cast - convert the next item
- if ( chunk_is_token(pc, CT_D_CAST)
- && tmp != nullptr)
- {
- if (chunk_is_token(tmp, CT_STAR))
- {
- set_chunk_type(tmp, CT_DEREF);
- }
- else if (chunk_is_token(tmp, CT_AMP))
- {
- set_chunk_type(tmp, CT_ADDR);
- }
- else if (chunk_is_token(tmp, CT_MINUS))
- {
- set_chunk_type(tmp, CT_NEG);
- }
- else if (chunk_is_token(tmp, CT_PLUS))
- {
- set_chunk_type(tmp, CT_POS);
- }
- }
-
- /*
- * For a delegate, mark previous words as types and the item after the
- * close paren as a variable def
- */
- if (chunk_is_token(pc, CT_DELEGATE))
- {
- if (tmp != nullptr)
- {
- set_chunk_parent(tmp, CT_DELEGATE);
-
- if (tmp->level == tmp->brace_level)
- {
- chunk_flags_set(tmp, PCF_VAR_1ST_DEF);
- }
- }
-
- for (tmp = chunk_get_prev_ncnnlni(pc); tmp != nullptr; tmp = chunk_get_prev_ncnnlni(tmp)) // Issue #2279
- {
- if ( chunk_is_semicolon(tmp)
- || chunk_is_token(tmp, CT_BRACE_OPEN)
- || chunk_is_token(tmp, CT_VBRACE_OPEN))
- {
- break;
- }
- make_type(tmp);
- }
- }
-
- if ( chunk_is_token(pc, CT_ALIGN)
- && tmp != nullptr)
- {
- if (chunk_is_token(tmp, CT_BRACE_OPEN))
- {
- set_paren_parent(tmp, pc->type);
- }
- else if (chunk_is_token(tmp, CT_COLON))
- {
- set_chunk_parent(tmp, pc->type);
- }
- }
- } // paren open + cast/align/delegate
-
- if (chunk_is_token(pc, CT_INVARIANT))
- {
- if (chunk_is_token(next, CT_PAREN_OPEN))
- {
- set_chunk_parent(next, pc->type);
- chunk_t *tmp = chunk_get_next(next);
-
- while (tmp != nullptr)
- {
- if (chunk_is_token(tmp, CT_PAREN_CLOSE))
- {
- set_chunk_parent(tmp, pc->type);
- break;
- }
- make_type(tmp);
- tmp = chunk_get_next(tmp);
- }
- }
- else
- {
- set_chunk_type(pc, CT_QUALIFIER);
- }
- }
-
- if ( chunk_is_token(prev, CT_BRACE_OPEN)
- && get_chunk_parent_type(prev) != CT_CS_PROPERTY
- && ( chunk_is_token(pc, CT_GETSET)
- || chunk_is_token(pc, CT_GETSET_EMPTY)))
- {
- flag_parens(prev, PCF_NONE, CT_NONE, CT_GETSET, false);
- }
-
- if (chunk_is_token(pc, CT_ASM))
- {
- flag_asm(pc);
- }
-
- // clang stuff - A new derived type is introduced to C and, by extension, Objective-C, C++, and Objective-C++
- if (language_is_set(LANG_C | LANG_CPP | LANG_OC))
- {
- if (chunk_is_token(pc, CT_CARET))
- {
- if ( pc->flags.test(PCF_EXPR_START)
- || pc->flags.test(PCF_IN_PREPROC))
- {
- handle_oc_block_literal(pc);
- }
- }
- }
-
- // Objective C stuff
- if (language_is_set(LANG_OC))
- {
- // Check for message declarations
- if (pc->flags.test(PCF_STMT_START))
- {
- if ( ( chunk_is_str(pc, "-", 1)
- || chunk_is_str(pc, "+", 1))
- && chunk_is_str(next, "(", 1))
- {
- handle_oc_message_decl(pc);
- }
- }
-
- if ( pc->flags.test(PCF_EXPR_START)
- || pc->flags.test(PCF_IN_PREPROC))
- {
- if (chunk_is_token(pc, CT_SQUARE_OPEN))
- {
- handle_oc_message_send(pc);
- }
- }
-
- if (chunk_is_token(pc, CT_OC_PROPERTY))
- {
- handle_oc_property_decl(pc);
- }
-
- if (chunk_is_token(pc, CT_OC_AVAILABLE))
- {
- handle_oc_available(pc);
- }
- }
-
- // C# stuff
- if (language_is_set(LANG_CS))
- {
- // '[assembly: xxx]' stuff
- if ( pc->flags.test(PCF_EXPR_START)
- && chunk_is_token(pc, CT_SQUARE_OPEN))
- {
- handle_cs_square_stmt(pc);
- }
-
- if ( chunk_is_token(next, CT_BRACE_OPEN)
- && get_chunk_parent_type(next) == CT_NONE
- && ( chunk_is_token(pc, CT_SQUARE_CLOSE)
- || chunk_is_token(pc, CT_ANGLE_CLOSE)
- || chunk_is_token(pc, CT_WORD)))
- {
- handle_cs_property(next);
- }
-
- if ( chunk_is_token(pc, CT_SQUARE_CLOSE)
- && chunk_is_token(next, CT_WORD))
- {
- handle_cs_array_type(pc);
- }
-
- if ( ( chunk_is_token(pc, CT_LAMBDA)
- || chunk_is_token(pc, CT_DELEGATE))
- && chunk_is_token(next, CT_BRACE_OPEN))
- {
- set_paren_parent(next, pc->type);
- }
-
- if ( chunk_is_token(pc, CT_WHEN)
- && pc->next != nullptr
- && pc->next->type != CT_SPAREN_OPEN)
- {
- set_chunk_type(pc, CT_WORD);
- }
- }
-
- if ( language_is_set(LANG_JAVA)
- && chunk_is_token(pc, CT_LAMBDA)
- && chunk_is_token(next, CT_BRACE_OPEN))
- {
- set_paren_parent(next, pc->type);
- }
-
- if (chunk_is_token(pc, CT_NEW))
- {
- chunk_t *ts = nullptr;
- chunk_t *tmp = next;
-
- if (chunk_is_token(tmp, CT_TSQUARE))
- {
- ts = tmp;
- tmp = chunk_get_next_ncnnl(tmp);
- }
-
- if ( chunk_is_token(tmp, CT_BRACE_OPEN)
- || chunk_is_token(tmp, CT_PAREN_OPEN))
- {
- set_paren_parent(tmp, pc->type);
-
- if (ts != nullptr)
- {
- set_chunk_parent(ts, pc->type);
- }
- }
- }
- LOG_FMT(LFCNR, "%s(%d): pc is '%s'/%s\n",
- __func__, __LINE__,
- pc->text(), get_token_name(pc->type));
-
- // C++11 Lambda stuff
- if ( language_is_set(LANG_CPP)
- && ( chunk_is_token(pc, CT_SQUARE_OPEN)
- || chunk_is_token(pc, CT_TSQUARE)))
- {
- handle_cpp_lambda(pc);
- }
-
- // FIXME: which language does this apply to?
- // Issue #2432
- if (!language_is_set(LANG_OC))
- {
- if ( chunk_is_token(pc, CT_ASSIGN)
- && chunk_is_token(next, CT_SQUARE_OPEN))
- {
- set_paren_parent(next, CT_ASSIGN);
-
- // Mark one-liner assignment
- chunk_t *tmp = next;
-
- while ((tmp = chunk_get_next_nc(tmp)) != nullptr)
- {
- if (chunk_is_newline(tmp))
- {
- break;
- }
-
- if ( chunk_is_token(tmp, CT_SQUARE_CLOSE)
- && next->level == tmp->level)
- {
- chunk_flags_set(tmp, PCF_ONE_LINER);
- chunk_flags_set(next, PCF_ONE_LINER);
- break;
- }
- }
- }
- }
-
- if (chunk_is_token(pc, CT_ASSERT))
- {
- handle_java_assert(pc);
- }
-
- if (chunk_is_token(pc, CT_ANNOTATION))
- {
- chunk_t *tmp = chunk_get_next_ncnnl(pc);
-
- if (chunk_is_paren_open(tmp))
- {
- set_paren_parent(tmp, CT_ANNOTATION);
- }
- }
-
- if ( chunk_is_token(pc, CT_SIZEOF)
- && language_is_set(LANG_ALLC))
- {
- chunk_t *tmp = chunk_get_next_ncnnl(pc);
-
- if (chunk_is_token(tmp, CT_ELLIPSIS))
- {
- set_chunk_parent(tmp, CT_SIZEOF);
- }
- }
-
- if ( chunk_is_token(pc, CT_DECLTYPE)
- && pc->parent_type != CT_FUNC_DEF)
- {
- chunk_t *tmp = chunk_get_next_ncnnl(pc);
-
- if (chunk_is_paren_open(tmp))
- {
- // decltype may be followed by a braced-init-list
- tmp = set_paren_parent(tmp, CT_DECLTYPE);
-
- if (chunk_is_opening_brace(tmp) && !pc->flags.test(PCF_IN_LAMBDA))
- {
- tmp = set_paren_parent(tmp, CT_BRACED_INIT_LIST);
-
- if (tmp)
- {
- chunk_flags_clr(tmp, PCF_EXPR_START | PCF_STMT_START);
- }
- }
- else
- {
- if (chunk_is_token(tmp, CT_WORD))
- {
- chunk_flags_set(tmp, PCF_VAR_1ST_DEF);
- }
- }
- }
- }
-
- // A [] in C# and D only follows a type
- if ( chunk_is_token(pc, CT_TSQUARE)
- && language_is_set(LANG_D | LANG_CS | LANG_VALA))
- {
- if (chunk_is_token(prev, CT_WORD))
- {
- set_chunk_type(prev, CT_TYPE);
- }
-
- if (chunk_is_token(next, CT_WORD))
- {
- chunk_flags_set(next, PCF_VAR_1ST_DEF);
- }
- }
-
- if ( chunk_is_token(pc, CT_SQL_EXEC)
- || chunk_is_token(pc, CT_SQL_BEGIN)
- || chunk_is_token(pc, CT_SQL_END))
- {
- mark_exec_sql(pc);
- }
-
- if (chunk_is_token(pc, CT_PROTO_WRAP))
- {
- handle_proto_wrap(pc);
- }
-
- // Handle the typedef
- if (chunk_is_token(pc, CT_TYPEDEF))
- {
- fix_typedef(pc);
- }
-
- if ( chunk_is_class_enum_struct_union(pc)
- && chunk_is_not_token(prev, CT_TYPEDEF))
- {
- EnumStructUnionParser parser;
- parser.parse(pc);
- }
-
- if (chunk_is_token(pc, CT_EXTERN))
- {
- if (chunk_is_paren_open(next))
- {
- chunk_t *tmp = flag_parens(next, PCF_NONE, CT_NONE, CT_EXTERN, true);
-
- if (chunk_is_token(tmp, CT_BRACE_OPEN))
- {
- set_paren_parent(tmp, CT_EXTERN);
- }
- }
- else
- {
- // next likely is a string (see tokenize_cleanup.cpp)
- set_chunk_parent(next, CT_EXTERN);
- chunk_t *tmp = chunk_get_next_ncnnl(next);
-
- if (chunk_is_token(tmp, CT_BRACE_OPEN))
- {
- set_paren_parent(tmp, CT_EXTERN);
- }
- }
- }
-
- if (chunk_is_token(pc, CT_TEMPLATE))
- {
- if (language_is_set(LANG_D))
- {
- handle_d_template(pc);
- }
- else
- {
- handle_cpp_template(pc);
- }
- }
-
- if ( chunk_is_token(pc, CT_WORD)
- && chunk_is_token(next, CT_ANGLE_OPEN)
- && get_chunk_parent_type(next) == CT_TEMPLATE)
- {
- mark_template_func(pc, next);
- }
-
- if ( chunk_is_token(pc, CT_SQUARE_CLOSE)
- && chunk_is_token(next, CT_PAREN_OPEN))
- {
- flag_parens(next, PCF_NONE, CT_FPAREN_OPEN, CT_NONE, false);
- }
-
- if (chunk_is_token(pc, CT_TYPE_CAST))
- {
- fix_type_cast(pc);
- }
-
- if ( get_chunk_parent_type(pc) == CT_ASSIGN
- && ( chunk_is_token(pc, CT_BRACE_OPEN)
- || chunk_is_token(pc, CT_SQUARE_OPEN)))
- {
- // Mark everything in here as in assign
- flag_parens(pc, PCF_IN_ARRAY_ASSIGN, pc->type, CT_NONE, false);
- }
-
- if (chunk_is_token(pc, CT_D_TEMPLATE))
- {
- set_paren_parent(next, pc->type);
- }
-
- /*
- * A word before an open paren is a function call or definition.
- * CT_WORD => CT_FUNC_CALL or CT_FUNC_DEF
- */
- if (chunk_is_token(next, CT_PAREN_OPEN))
- {
- chunk_t *tmp = chunk_get_next_ncnnl(next);
-
- if ( language_is_set(LANG_C | LANG_CPP | LANG_OC)
- && chunk_is_token(tmp, CT_CARET))
- {
- handle_oc_block_type(tmp);
-
- // This is the case where a block literal is passed as the first argument of a C-style method invocation.
- if ( ( chunk_is_token(tmp, CT_OC_BLOCK_CARET)
- || chunk_is_token(tmp, CT_CARET))
- && chunk_is_token(pc, CT_WORD))
- {
- LOG_FMT(LFCN, "%s(%d): (1) SET TO CT_FUNC_CALL: orig_line is %zu, orig_col is %zu, text() '%s'\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text());
- set_chunk_type(pc, CT_FUNC_CALL);
- }
- }
- else if ( chunk_is_token(pc, CT_WORD)
- || chunk_is_token(pc, CT_OPERATOR_VAL))
- {
- set_chunk_type(pc, CT_FUNCTION);
- }
- else if (chunk_is_token(pc, CT_FIXED))
- {
- set_chunk_type(pc, CT_FUNCTION);
- set_chunk_parent(pc, CT_FIXED);
- }
- else if (chunk_is_token(pc, CT_TYPE))
- {
- /*
- * If we are on a type, then we are either on a C++ style cast, an
- * array reference, a function or we are on a function type.
- * The only way to tell for sure is to find the close paren and see
- * if it is followed by an open paren.
- * "int(5.6)"
- * "int()"
- * "int(foo)(void)"
- *
- * FIXME: this check can be done better...
- */
- LOG_FMT(LFCNR, "%s(%d): orig_line is %zu, orig_col is %zu, text() '%s'\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text());
-
- bool is_byref_array = false;
-
- if (language_is_set(LANG_CPP))
- {
- // If the open paren is followed by an ampersand, an optional word,
- // a close parenthesis, and an open square bracket, then it is an
- // array being passed by reference, not a cast
- tmp = chunk_get_next_ncnnl(next);
-
- if (chunk_is_token(tmp, CT_AMP))
- {
- auto tmp2 = chunk_get_next_ncnnl(tmp);
-
- if (chunk_is_token(tmp2, CT_WORD))
- {
- tmp2 = chunk_get_next_ncnnl(tmp2);
- }
-
- if (chunk_is_token(tmp2, CT_PAREN_CLOSE))
- {
- tmp2 = chunk_get_next_ncnnl(tmp2);
-
- if (chunk_is_token(tmp2, CT_SQUARE_OPEN))
- {
- is_byref_array = true;
- set_chunk_type(tmp, CT_BYREF);
- }
- }
- }
- }
-
- if (!is_byref_array)
- {
- tmp = chunk_get_next_type(next, CT_PAREN_CLOSE, next->level);
-
- if (tmp != nullptr)
- {
- tmp = chunk_get_next(tmp);
-
- if (chunk_is_token(tmp, CT_PAREN_OPEN))
- {
- set_chunk_type(pc, CT_FUNCTION);
- }
- else
- {
- if ( get_chunk_parent_type(pc) == CT_NONE
- && !pc->flags.test(PCF_IN_TYPEDEF))
- {
- tmp = chunk_get_next_ncnnl(next);
-
- if (chunk_is_token(tmp, CT_PAREN_CLOSE))
- {
- // we have TYPE()
- set_chunk_type(pc, CT_FUNCTION);
- }
- else
- {
- // we have TYPE(...)
- set_chunk_type(pc, CT_CPP_CAST);
- set_paren_parent(next, CT_CPP_CAST);
- }
- }
- }
- }
- }
- }
- }
-
- if (language_is_set(LANG_PAWN))
- {
- if ( chunk_is_token(pc, CT_FUNCTION)
- && pc->brace_level > 0)
- {
- LOG_FMT(LFCN, "%s(%d): (2) SET TO CT_FUNC_CALL: orig_line is %zu, orig_col is %zu, text() '%s'\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text());
- set_chunk_type(pc, CT_FUNC_CALL);
- }
-
- if ( chunk_is_token(pc, CT_STATE)
- && chunk_is_token(next, CT_PAREN_OPEN))
- {
- set_paren_parent(next, pc->type);
- }
- }
- else
- {
- if ( ( chunk_is_token(pc, CT_FUNCTION)
- || chunk_is_token(pc, CT_FUNC_DEF))
- && ( (get_chunk_parent_type(pc) == CT_OC_BLOCK_EXPR)
- || !is_oc_block(pc)))
- {
- mark_function(pc);
- }
- }
-
- // Detect C99 member stuff
- if ( chunk_is_token(pc, CT_MEMBER)
- && ( chunk_is_token(prev, CT_COMMA)
- || chunk_is_token(prev, CT_BRACE_OPEN)))
- {
- set_chunk_type(pc, CT_C99_MEMBER);
- set_chunk_parent(next, CT_C99_MEMBER);
- }
-
- // Mark function parens and braces
- if ( chunk_is_token(pc, CT_FUNC_DEF)
- || chunk_is_token(pc, CT_FUNC_CALL)
- || chunk_is_token(pc, CT_FUNC_CALL_USER)
- || chunk_is_token(pc, CT_FUNC_PROTO))
- {
- chunk_t *tmp = next;
-
- if (chunk_is_token(tmp, CT_SQUARE_OPEN))
- {
- tmp = set_paren_parent(tmp, pc->type);
- }
- else if ( chunk_is_token(tmp, CT_TSQUARE)
- || get_chunk_parent_type(tmp) == CT_OPERATOR)
- {
- tmp = chunk_get_next_ncnnl(tmp);
- }
-
- if (tmp != nullptr)
- {
- if (chunk_is_paren_open(tmp))
- {
- tmp = flag_parens(tmp, PCF_NONE, CT_FPAREN_OPEN, pc->type, false);
-
- if (tmp != nullptr)
- {
- if (chunk_is_token(tmp, CT_BRACE_OPEN))
- {
- if ( get_chunk_parent_type(tmp) != CT_DOUBLE_BRACE
- && !pc->flags.test(PCF_IN_CONST_ARGS))
- {
- set_paren_parent(tmp, pc->type);
- }
- }
- else if ( chunk_is_semicolon(tmp)
- && chunk_is_token(pc, CT_FUNC_PROTO))
- {
- set_chunk_parent(tmp, pc->type);
- }
- }
- }
- }
- }
-
- // Mark the parameters in catch()
- if ( chunk_is_token(pc, CT_CATCH)
- && chunk_is_token(next, CT_SPAREN_OPEN))
- {
- fix_fcn_def_params(next);
- }
-
- if ( chunk_is_token(pc, CT_THROW)
- && chunk_is_token(prev, CT_FPAREN_CLOSE))
- {
- set_chunk_parent(pc, get_chunk_parent_type(prev));
-
- if (chunk_is_token(next, CT_PAREN_OPEN))
- {
- set_paren_parent(next, CT_THROW);
- }
- }
-
- // Mark the braces in: "for_each_entry(xxx) { }"
- if ( chunk_is_token(pc, CT_BRACE_OPEN)
- && get_chunk_parent_type(pc) != CT_DOUBLE_BRACE
- && chunk_is_token(prev, CT_FPAREN_CLOSE)
- && ( get_chunk_parent_type(prev) == CT_FUNC_CALL
- || get_chunk_parent_type(prev) == CT_FUNC_CALL_USER)
- && !pc->flags.test(PCF_IN_CONST_ARGS))
- {
- LOG_FMT(LFCN, "%s(%d): (3) SET TO CT_FUNC_CALL: orig_line is %zu, orig_col is %zu, text() '%s'\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text());
- set_paren_parent(pc, CT_FUNC_CALL);
- }
-
- /*
- * Check for a close parenthesis followed by an open parenthesis,
- * which means that we are on a function type declaration (C/C++ only?).
- * Note that typedefs are already taken care of.
- */
- if ( !pc->flags.test(PCF_IN_TEMPLATE) // Issue #3252
- && get_chunk_parent_type(pc) != CT_CPP_CAST
- && get_chunk_parent_type(pc) != CT_C_CAST
- && !pc->flags.test(PCF_IN_PREPROC)
- && !is_oc_block(pc)
- && get_chunk_parent_type(pc) != CT_OC_MSG_DECL
- && get_chunk_parent_type(pc) != CT_OC_MSG_SPEC
- && chunk_is_str(pc, ")", 1)
- && chunk_is_str(next, "(", 1))
- {
- if (language_is_set(LANG_D))
- {
- flag_parens(next, PCF_NONE, CT_FPAREN_OPEN, CT_FUNC_CALL, false);
- }
- else
- {
- mark_function_type(pc);
- }
- }
-
- if (chunk_is_token(pc, CT_OC_CLASS))
- {
- handle_oc_class(pc);
- }
- // TODO: Check for stuff that can only occur at the start of an statement
-
- if (!language_is_set(LANG_D))
- {
- /*
- * Check a parenthesis pair to see if it is a cast.
- * Note that SPAREN and FPAREN have already been marked.
- */
- if ( chunk_is_token(pc, CT_PAREN_OPEN)
- && ( get_chunk_parent_type(pc) == CT_NONE
- || get_chunk_parent_type(pc) == CT_OC_MSG
- || get_chunk_parent_type(pc) == CT_OC_BLOCK_EXPR
- || get_chunk_parent_type(pc) == CT_CS_SQ_STMT) // Issue # 1256
- && ( chunk_is_token(next, CT_WORD)
- || chunk_is_token(next, CT_TYPE)
- || chunk_is_token(next, CT_STRUCT)
- || chunk_is_token(next, CT_QUALIFIER)
- || chunk_is_token(next, CT_MEMBER)
- || chunk_is_token(next, CT_DC_MEMBER)
- || chunk_is_token(next, CT_ENUM)
- || chunk_is_token(next, CT_UNION))
- && chunk_is_not_token(prev, CT_DECLTYPE)
- && chunk_is_not_token(prev, CT_SIZEOF)
- && get_chunk_parent_type(prev) != CT_SIZEOF
- && get_chunk_parent_type(prev) != CT_OPERATOR
- && !pc->flags.test(PCF_IN_TYPEDEF))
- {
- fix_casts(pc);
- }
- }
-
- if (language_is_set(LANG_CPP))
- {
- chunk_t *nnext = chunk_get_next_ncnnl(next);
-
- // handle parent_type of assigns in special functions (ro5 + pure virtual)
- if ( pc->flags.test_any(PCF_IN_STRUCT | PCF_IN_CLASS)
- && chunk_is_token(pc, CT_ASSIGN)
- && chunk_is_token(nnext, CT_SEMICOLON)
- && ( chunk_is_token(next, CT_DEFAULT)
- || chunk_is_token(next, CT_DELETE)
- || ( chunk_is_token(next, CT_NUMBER)
- && chunk_is_str(next, "0", 1))))
- {
- const size_t level = pc->level;
- bool found_status = false;
- chunk_t *pprev = chunk_get_prev(pc);
-
- for ( ; ( pprev != nullptr
- && pprev->level >= level
- && chunk_is_not_token(pprev, CT_SEMICOLON)
- && chunk_is_not_token(pprev, CT_ACCESS_COLON))
- ; pprev = chunk_get_prev(pprev))
- {
- if (pprev->level != level)
- {
- continue;
- }
-
- if (chunk_is_token(next, CT_NUMBER))
- {
- if ( chunk_is_token(pprev, CT_QUALIFIER)
- && chunk_is_str(pprev, "virtual", 7))
- {
- found_status = true;
- break;
- }
- }
- else
- {
- if ( chunk_is_token(pprev, CT_FUNC_CLASS_PROTO) // ctor/dtor
- || chunk_is_token(pprev, CT_FUNC_PROTO)) // normal function
- {
- found_status = true;
- break;
- }
- }
- }
-
- if (found_status)
- {
- set_chunk_parent(pc, pprev->type);
- }
- }
-
- if (detect_cpp_braced_init_list(pc, next))
- {
- flag_cpp_braced_init_list(pc, next);
- }
- }
-
- // Check for stuff that can only occur at the start of an expression
- if ( pc->flags.test(PCF_EXPR_START)
- || ( prev->flags.test(PCF_EXPR_START)
- && get_chunk_parent_type(pc) == CT_OC_AT))
- {
- // Change STAR, MINUS, and PLUS in the easy cases
- if (chunk_is_token(pc, CT_STAR))
- {
- // issue #596
- // [0x100062020:IN_SPAREN,IN_FOR,STMT_START,EXPR_START,PUNCTUATOR]
- // prev->type is CT_COLON ==> CT_DEREF
- if (chunk_is_token(prev, CT_ANGLE_CLOSE))
- {
- set_chunk_type(pc, CT_PTR_TYPE);
- }
- else if (chunk_is_token(prev, CT_COLON))
- {
- set_chunk_type(pc, CT_DEREF);
- }
- else
- {
- set_chunk_type(pc, CT_DEREF);
- }
- }
-
- if ( language_is_set(LANG_CPP)
- && chunk_is_token(pc, CT_CARET)
- && chunk_is_token(prev, CT_ANGLE_CLOSE))
- {
- set_chunk_type(pc, CT_PTR_TYPE);
- }
-
- if ( language_is_set(LANG_CS)
- && chunk_is_token(pc, CT_QUESTION)
- && chunk_is_token(prev, CT_ANGLE_CLOSE))
- {
- set_chunk_type(pc, CT_PTR_TYPE);
- }
-
- if (chunk_is_token(pc, CT_MINUS))
- {
- set_chunk_type(pc, CT_NEG);
- }
-
- if (chunk_is_token(pc, CT_PLUS))
- {
- set_chunk_type(pc, CT_POS);
- }
-
- if (chunk_is_token(pc, CT_INCDEC_AFTER))
- {
- set_chunk_type(pc, CT_INCDEC_BEFORE);
- }
-
- if (chunk_is_token(pc, CT_AMP))
- {
- if (chunk_is_token(prev, CT_ANGLE_CLOSE)) // Issue #2324
- {
- set_chunk_type(pc, CT_BYREF);
- }
- else
- {
- set_chunk_type(pc, CT_ADDR);
- }
- }
-
- if (chunk_is_token(pc, CT_CARET))
- {
- if (language_is_set(LANG_C | LANG_CPP | LANG_OC))
- {
- // This is likely the start of a block literal
- handle_oc_block_literal(pc);
- }
- }
- }
-
- /*
- * Change the parenthesis pair after a function/macro-function
- * CT_PAREN_OPEN => CT_FPAREN_OPEN
- */
- if (chunk_is_token(pc, CT_MACRO_FUNC))
- {
- flag_parens(next, PCF_IN_FCN_CALL, CT_FPAREN_OPEN, CT_MACRO_FUNC, false);
- }
-
- if ( chunk_is_token(pc, CT_MACRO_OPEN)
- || chunk_is_token(pc, CT_MACRO_ELSE)
- || chunk_is_token(pc, CT_MACRO_CLOSE))
- {
- if (chunk_is_token(next, CT_PAREN_OPEN))
- {
- flag_parens(next, PCF_NONE, CT_FPAREN_OPEN, pc->type, false);
- }
- }
-
- if ( chunk_is_token(pc, CT_DELETE)
- && chunk_is_token(next, CT_TSQUARE))
- {
- set_chunk_parent(next, CT_DELETE);
- }
-
- // Change CT_STAR to CT_PTR_TYPE or CT_ARITH or CT_DEREF
- if ( chunk_is_token(pc, CT_STAR)
- || ( language_is_set(LANG_CPP)
- && chunk_is_token(pc, CT_CARET)))
- {
- if ( chunk_is_paren_close(next)
- || chunk_is_token(next, CT_COMMA))
- {
- set_chunk_type(pc, CT_PTR_TYPE);
- }
- else if ( language_is_set(LANG_OC)
- && chunk_is_token(next, CT_STAR))
- {
- /*
- * Change pointer-to-pointer types in OC_MSG_DECLs
- * from ARITH <===> DEREF to PTR_TYPE <===> PTR_TYPE
- */
- set_chunk_type(pc, CT_PTR_TYPE);
- set_chunk_parent(pc, get_chunk_parent_type(prev));
-
- set_chunk_type(next, CT_PTR_TYPE);
- set_chunk_parent(next, get_chunk_parent_type(pc));
- }
- else if ( chunk_is_token(pc, CT_STAR)
- && ( chunk_is_token(prev, CT_DECLTYPE)
- || chunk_is_token(prev, CT_SIZEOF)
- || chunk_is_token(prev, CT_DELETE)
- || get_chunk_parent_type(pc) == CT_SIZEOF))
- {
- set_chunk_type(pc, CT_DEREF);
- }
- else if ( ( chunk_is_token(prev, CT_WORD)
- && chunk_ends_type(prev)
- && !prev->flags.test(PCF_IN_FCN_CTOR)
- && !prev->flags.test(PCF_IN_ARRAY_ASSIGN)) // Issue #3345
- || chunk_is_token(prev, CT_DC_MEMBER)
- || chunk_is_token(prev, CT_PTR_TYPE))
- {
- LOG_FMT(LFCNR, "%s(%d): pc->orig_line is %zu, orig_col is %zu, text() is '%s', type is %s\n ",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(), get_token_name(pc->type));
- log_pcf_flags(LFCNR, pc->flags);
- set_chunk_type(pc, CT_PTR_TYPE);
- }
- else if ( chunk_is_token(next, CT_SQUARE_OPEN)
- && !language_is_set(LANG_OC)) // Issue #408
- {
- set_chunk_type(pc, CT_PTR_TYPE);
- }
- else if (chunk_is_token(pc, CT_STAR))
- {
- // Add check for CT_DC_MEMBER CT_WORD CT_STAR sequence
- // to convert CT_WORD into CT_TYPE
- // and CT_STAR into CT_PTR_TYPE
- // look for an assign backward, fuction call, return to distinguish between
- // double result = Constants::PI * factor;
- // and
- // ::some::name * foo;
- if ( chunk_is_token(prev, CT_WORD)
- && chunk_is_token(prev->prev, CT_DC_MEMBER)
- && language_is_set(LANG_CPP))
- {
- // Issue 1402
- bool is_multiplication = false;
- chunk_t *tmp = pc;
-
- while (tmp != nullptr)
- {
- if ( chunk_is_token(tmp, CT_SEMICOLON)
- || get_chunk_parent_type(tmp) == CT_CLASS)
- {
- break;
- }
- else if ( chunk_is_token(tmp, CT_ASSIGN)
- || chunk_is_token(tmp, CT_FUNC_CALL)
- || chunk_is_token(tmp, CT_RETURN))
- {
- is_multiplication = true;
- break;
- }
- tmp = chunk_get_prev_ncnnlni(tmp); // Issue #2279
- }
-
- if (is_multiplication)
- {
- // double result = Constants::PI * factor;
- set_chunk_type(pc, CT_ARITH);
- }
- else
- {
- // ::some::name * foo;
- set_chunk_type(prev, CT_TYPE);
- set_chunk_type(pc, CT_PTR_TYPE);
- }
- }
-
- /*
- * A star can have three meanings
- * 1. CT_DEREF = pointer dereferencing
- * 2. CT_PTR_TYPE = pointer definition
- * 3. CT_ARITH = arithmetic multiplication
- *
- * most PCF_PUNCTUATOR chunks except a paren close would make this
- * a deref. A paren close may end a cast or may be part of a macro fcn.
- */
- if (chunk_is_token(prev, CT_TYPE))
- {
- set_chunk_type(pc, CT_PTR_TYPE);
- }
- else if ( chunk_is_token(pc->next, CT_SEMICOLON) // Issue #2319
- || ( chunk_is_token(pc->next, CT_STAR)
- && chunk_is_token(pc->next->next, CT_SEMICOLON)))
- {
- // example:
- // using AbstractLinkPtr = AbstractLink*;
- // using AbstractLinkPtrPtr = AbstractLink**;
- set_chunk_type(pc, CT_PTR_TYPE);
- }
- else if ( ( get_chunk_parent_type(pc) == CT_FUNC_DEF
- && ( chunk_is_opening_brace(next)
- || chunk_is_star(pc->next)))
- || chunk_is_token(next, CT_QUALIFIER)) // Issue #2648
- {
- // example:
- // auto getComponent(Color *color) -> Component * {
- // auto getComponent(Color *color) -> Component ** {
- // auto getComponent(Color *color) -> Component * _Nonnull
- // only to help the vim command }}
- set_chunk_type(pc, CT_PTR_TYPE);
- }
- else if ( chunk_is_token(pc->next, CT_SEMICOLON) // Issue #2319
- || ( chunk_is_token(pc->next, CT_STAR)
- && chunk_is_token(pc->next->next, CT_STAR)))
- {
- // more pointers are NOT yet possible
- fprintf(stderr, "Too many pointers: the maximum level of pointer indirection is 3 (i.e., ***p)\n");
- fprintf(stderr, "at line %zu, column %zu.\n", pc->orig_line, pc->orig_col);
- fprintf(stderr, "Please make a report.\n");
- log_flush(true);
- exit(EX_SOFTWARE);
- }
- else
- {
- // Issue 1402
- set_chunk_type(pc,
- ( prev->flags.test(PCF_PUNCTUATOR)
- && ( !chunk_is_paren_close(prev)
- || chunk_is_token(prev, CT_SPAREN_CLOSE)
- || get_chunk_parent_type(prev) == CT_MACRO_FUNC)
- && chunk_is_not_token(prev, CT_SQUARE_CLOSE)
- && chunk_is_not_token(prev, CT_DC_MEMBER)) ? CT_DEREF : CT_ARITH);
- }
-
- if (pc->flags.test(PCF_IN_TYPEDEF)) // Issue #1255/#633
- {
- chunk_t *tmp = pc;
-
- while (tmp != nullptr)
- {
- if ( chunk_is_token(tmp, CT_SEMICOLON)
- || chunk_is_token(tmp, CT_BRACE_OPEN)
- || chunk_is_token(tmp, CT_SQUARE_OPEN)) // Issue #3342
- {
- break;
- }
- else if (chunk_is_token(tmp, CT_TYPEDEF))
- {
- set_chunk_type(pc, CT_PTR_TYPE);
- }
- tmp = chunk_get_prev_ncnnlni(tmp); // Issue #2279
- }
- }
- }
- }
-
- if (chunk_is_token(pc, CT_AMP))
- {
- if (chunk_is_token(prev, CT_DELETE))
- {
- set_chunk_type(pc, CT_ADDR);
- }
- else if ( chunk_is_token(prev, CT_TYPE)
- || chunk_is_token(prev, CT_QUALIFIER))
- {
- set_chunk_type(pc, CT_BYREF);
- }
- else if ( chunk_is_token(prev, CT_WORD) // Issue #3204
- && chunk_is_token(next, CT_OPERATOR))
- {
- set_chunk_type(pc, CT_BYREF);
- }
- else if ( chunk_is_token(next, CT_FPAREN_CLOSE)
- || chunk_is_token(next, CT_COMMA))
- {
- // fix the bug #654
- // connect(&mapper, SIGNAL(mapped(QString &)), this, SLOT(onSomeEvent(QString &)));
- set_chunk_type(pc, CT_BYREF);
- }
- else if (get_chunk_parent_type(pc) == CT_USING_ALIAS)
- {
- // fix the Issue # 1689
- // using reference = value_type &;
- set_chunk_type(pc->prev, CT_TYPE);
- set_chunk_type(pc, CT_BYREF);
- }
- else
- {
- // Issue # 1398
- if ( pc->flags.test(PCF_IN_FCN_DEF)
- && chunk_is_token(prev, CT_WORD)
- && chunk_is_token(pc, CT_AMP)
- && chunk_is_token(next, CT_WORD))
- {
- /*
- * Change CT_WORD before CT_AMP before CT_WORD to CT_TYPE
- */
- set_chunk_type(prev, CT_TYPE);
- }
- else
- {
- set_chunk_type(pc, CT_ARITH);
-
- if (chunk_is_token(prev, CT_WORD))
- {
- chunk_t *tmp = chunk_get_prev_ncnnlni(prev); // Issue #2279
-
- if (tmp != nullptr)
- {
- if ( chunk_is_semicolon(tmp)
- || chunk_is_token(tmp, CT_BRACE_OPEN)
- || chunk_is_token(tmp, CT_QUALIFIER))
- {
- set_chunk_type(pc, CT_BYREF);
- set_chunk_type(prev, CT_TYPE);
-
- if (!( chunk_is_token(next, CT_OPERATOR)
- || chunk_is_token(next, CT_TYPE)
- || chunk_is_token(next, CT_DC_MEMBER)))
- {
- LOG_FMT(LFCNR, "%s(%d): orig_line is %zu, orig_col is %zu, text() '%s', set PCF_VAR_1ST\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text());
- chunk_flags_set(next, PCF_VAR_1ST);
- }
- }
- else if (chunk_is_token(tmp, CT_DC_MEMBER))
- {
- set_chunk_type(prev, CT_TYPE);
-
- if (chunk_is_not_token(next, CT_TYPE)) // Issue #2103
- {
- set_chunk_type(pc, CT_BYREF);
- }
- }
- }
- }
- }
- }
- }
-
- if ( chunk_is_token(pc, CT_MINUS)
- || chunk_is_token(pc, CT_PLUS))
- {
- if ( chunk_is_token(prev, CT_POS)
- || chunk_is_token(prev, CT_NEG)
- || chunk_is_token(prev, CT_ARITH)
- || chunk_is_token(prev, CT_SHIFT))
- {
- set_chunk_type(pc, chunk_is_token(pc, CT_MINUS) ? CT_NEG : CT_POS);
- }
- else if (chunk_is_token(prev, CT_OC_CLASS))
- {
- set_chunk_type(pc, (chunk_is_token(pc, CT_MINUS)) ? CT_NEG : CT_POS);
- }
- else
- {
- set_chunk_type(pc, CT_ARITH);
- }
- }
-
- /*
- * Bug # 634
- * Check for extern "C" NSString* i;
- * NSString is a type
- * change CT_WORD => CT_TYPE for pc
- * change CT_STAR => CT_PTR_TYPE for pc-next
- */
- if (chunk_is_token(pc, CT_WORD)) // here NSString
- {
- if (pc->next != nullptr) // here *
- {
- if (pc->next->type == CT_STAR) // here *
- {
- // compare text with "C" to find extern "C" instructions
- if (pc->prev != nullptr)
- {
- if (pc->prev->type == CT_STRING)
- {
- if (unc_text::compare(pc->prev->text(), "\"C\"") == 0)
- {
- if (pc->prev->prev->type == CT_EXTERN)
- {
- set_chunk_type(pc, CT_TYPE); // change CT_WORD => CT_TYPE
- set_chunk_type(pc->next, CT_PTR_TYPE); // change CT_STAR => CT_PTR_TYPE
- }
- }
- }
- }
-
- // Issue #322 STDMETHOD(GetValues)(BSTR bsName, REFDATA** pData);
- if ( (pc->next->next != nullptr)
- && pc->next->next->type == CT_STAR
- && pc->flags.test(PCF_IN_CONST_ARGS))
- {
- // change CT_STAR => CT_PTR_TYPE
- set_chunk_type(pc->next, CT_PTR_TYPE);
- set_chunk_type(pc->next->next, CT_PTR_TYPE);
- }
-
- // Issue #222 whatever3 *(func_ptr)( whatever4 *foo2, ...
- if ( (pc->next->next != nullptr)
- && pc->next->next->type == CT_WORD
- && pc->flags.test(PCF_IN_FCN_DEF))
- {
- // look for the opening parenthesis
- // Issue 1403
- chunk_t *tmp = chunk_get_prev_type(pc, CT_FPAREN_OPEN, pc->level - 1);
-
- if ( tmp != nullptr
- && get_chunk_parent_type(tmp) != CT_FUNC_CTOR_VAR)
- {
- set_chunk_type(pc->next, CT_PTR_TYPE);
- }
- }
- }
- }
- }
-
- /*
- * Bug # 634
- * Check for __attribute__((visibility ("default"))) NSString* i;
- * NSString is a type
- * change CT_WORD => CT_TYPE for pc
- * change CT_STAR => CT_PTR_TYPE for pc-next
- */
- if (chunk_is_token(pc, CT_WORD)) // here NSString
- {
- if (pc->next != nullptr) // here *
- {
- if (pc->next->type == CT_STAR) // here *
- {
- chunk_t *tmp = pc;
-
- while ((tmp != nullptr))
- {
- if (chunk_is_token(tmp, CT_ATTRIBUTE))
- {
- LOG_FMT(LFCNR, "%s(%d): ATTRIBUTE found, type is %s, text() '%s'\n",
- __func__, __LINE__, get_token_name(tmp->type), tmp->text());
- LOG_FMT(LFCNR, "for token, type is %s, text() '%s'\n", get_token_name(pc->type), pc->text());
- // change CT_WORD => CT_TYPE
- set_chunk_type(pc, CT_TYPE);
- // change CT_STAR => CT_PTR_TYPE
- set_chunk_type(pc->next, CT_PTR_TYPE);
- }
-
- if (tmp->flags.test(PCF_STMT_START))
- {
- // we are at beginning of the line
- break;
- }
- tmp = chunk_get_prev(tmp);
- }
- }
- }
- }
-
- /*
- * Issue # 1689
- * Check for using reference = value_type&;
- * is it a Type alias, alias template?
- */
- if (chunk_is_token(pc, CT_USING))
- {
- // look for CT_ASSIGN before CT_SEMICOLON at the end of the statement
-
- bool is_preproc = pc->flags.test(PCF_IN_PREPROC);
-
- auto const search_assign = [&pc, &is_preproc]()
- {
- for (chunk_t *temp = pc; temp != nullptr; temp = chunk_get_next_ncnnl(temp))
- {
- LOG_FMT(LFCNR, "%s(%d): orig_line is %zu, orig_col is %zu, text() '%s', type is %s\n",
- __func__, __LINE__, temp->orig_line, temp->orig_col,
- temp->text(), get_token_name(temp->type));
-
- if (chunk_is_token(temp, CT_ASSIGN))
- {
- return(true);
- }
-
- if ( chunk_is_token(temp, CT_SEMICOLON)
- || ( is_preproc
- && ( !temp->flags.test(PCF_IN_PREPROC)
- || chunk_is_token(temp, CT_PREPROC))))
- {
- return(false);
- }
- }
-
- return(false);
- };
-
- const bool assign_found = language_is_set(LANG_D) || search_assign();
-
- if (assign_found)
- {
- // it is a Type alias, alias template
- for (chunk_t *temp = pc; temp != nullptr; temp = chunk_get_next_ncnnl(temp))
- {
- if (get_chunk_parent_type(temp) == CT_NONE)
- {
- set_chunk_parent(temp, CT_USING_ALIAS);
- }
-
- if ( chunk_is_token(temp, CT_SEMICOLON)
- || ( is_preproc
- && ( !temp->flags.test(PCF_IN_PREPROC)
- || chunk_is_token(temp, CT_PREPROC))))
- {
- break;
- }
- }
- }
- }
-
- // Issue #548: inline T && someFunc(foo * *p, bar && q) { }
- if ( chunk_is_token(pc, CT_BOOL)
- && !pc->flags.test(PCF_IN_PREPROC)
- && chunk_is_str(pc, "&&", 2)
- && chunk_ends_type(pc->prev))
- {
- chunk_t *tmp = chunk_get_prev(pc); // Issue #2688
- LOG_FMT(LFCNR, "%s(%d): orig_line is %zu, orig_col is %zu, text() '%s', type is %s\n",
- __func__, __LINE__, tmp->orig_line, tmp->orig_col,
- tmp->text(), get_token_name(tmp->type));
- log_pcf_flags(LFCNR, tmp->flags);
- // look for a type
-
- if (chunk_is_token(tmp, CT_TYPE))
- {
- log_pcf_flags(LFCNR, pc->flags);
- set_chunk_type(pc, CT_BYREF);
- }
- // look next, is there a "assign" before the ";"
- chunk_t *semi = chunk_get_next_type(pc, CT_SEMICOLON, pc->level); // Issue #2688
-
- if (semi != nullptr)
- {
- LOG_FMT(LFCNR, "%s(%d): orig_line is %zu, orig_col is %zu, text() '%s', type is %s\n",
- __func__, __LINE__, semi->orig_line, semi->orig_col,
- semi->text(), get_token_name(semi->type));
-
- for (chunk_t *test_it = pc; test_it != semi; test_it = chunk_get_next(test_it))
- {
- LOG_FMT(LFCNR, "%s(%d): test_it->orig_line is %zu, orig_col is %zu, text() '%s', type is %s\n",
- __func__, __LINE__, test_it->orig_line, test_it->orig_col,
- test_it->text(), get_token_name(test_it->type));
-
- if (chunk_is_token(test_it, CT_ASSIGN))
- {
- // the statement is an assigment
- // && is before assign
- set_chunk_type(pc, CT_BYREF);
- break;
- }
- }
- }
- }
-
- // Issue #1704
- if ( chunk_is_token(pc, CT_INCDEC_AFTER)
- && pc->flags.test(PCF_IN_PREPROC))
- {
- chunk_t *tmp_2 = chunk_get_next(pc);
- log_pcf_flags(LFTYPE, pc->flags);
-
- if (chunk_is_token(tmp_2, CT_WORD))
- {
- set_chunk_type(pc, CT_INCDEC_BEFORE);
- }
- }
-} // do_symbol_check
-
-
-static void check_double_brace_init(chunk_t *bo1)
-{
- LOG_FUNC_ENTRY();
- LOG_FMT(LJDBI, "%s(%d): orig_line is %zu, orig_col is %zu", __func__, __LINE__, bo1->orig_line, bo1->orig_col);
- chunk_t *pc = chunk_get_prev_ncnnlni(bo1); // Issue #2279
-
- if (pc == nullptr)
- {
- return;
- }
-
- if (chunk_is_paren_close(pc))
- {
- chunk_t *bo2 = chunk_get_next(bo1);
-
- if (bo2 == nullptr)
- {
- return;
- }
-
- if (chunk_is_token(bo2, CT_BRACE_OPEN))
- {
- // found a potential double brace
- chunk_t *bc2 = chunk_skip_to_match(bo2);
-
- if (bc2 == nullptr)
- {
- return;
- }
- chunk_t *bc1 = chunk_get_next(bc2);
-
- if (bc1 == nullptr)
- {
- return;
- }
-
- if (chunk_is_token(bc1, CT_BRACE_CLOSE))
- {
- LOG_FMT(LJDBI, " - end, orig_line is %zu, orig_col is %zu\n", bc2->orig_line, bc2->orig_col);
- // delete bo2 and bc1
- bo1->str += bo2->str;
- bo1->orig_col_end = bo2->orig_col_end;
- chunk_del(bo2);
- set_chunk_parent(bo1, CT_DOUBLE_BRACE);
-
- bc2->str += bc1->str;
- bc2->orig_col_end = bc1->orig_col_end;
- chunk_del(bc1);
- set_chunk_parent(bc2, CT_DOUBLE_BRACE);
- return;
- }
- }
- }
- LOG_FMT(LJDBI, " - no\n");
-} // check_double_brace_init
-
-
-void fix_symbols(void)
-{
- LOG_FUNC_ENTRY();
- chunk_t *pc;
- chunk_t dummy;
-
- cpd.unc_stage = unc_stage_e::FIX_SYMBOLS;
-
- mark_define_expressions();
-
- bool is_cpp = language_is_set(LANG_CPP);
- bool is_java = language_is_set(LANG_JAVA);
-
- for (pc = chunk_get_head(); pc != nullptr; pc = chunk_get_next_ncnnl(pc))
- {
- if ( chunk_is_token(pc, CT_FUNC_WRAP)
- || chunk_is_token(pc, CT_TYPE_WRAP))
- {
- handle_wrap(pc);
- }
-
- if (chunk_is_token(pc, CT_ASSIGN))
- {
- mark_lvalue(pc);
- }
- // a brace immediately preceded by word in C++11 is an initializer list though it may also
- // by a type casting initializer list if the word is really a type; sadly uncrustify knows
- // only built-in types and knows nothing of user-defined types
- chunk_t *prev = chunk_get_prev_ncnnlni(pc); // Issue #2279
-
- if ( is_cpp
- && chunk_is_token(pc, CT_BRACE_OPEN)
- && ( chunk_is_token(prev, CT_WORD)
- || chunk_is_token(prev, CT_TYPE)))
- {
- mark_lvalue(pc);
- }
-
- if ( is_java
- && chunk_is_token(pc, CT_BRACE_OPEN))
- {
- check_double_brace_init(pc);
- }
-
- if (chunk_is_token(pc, CT_ATTRIBUTE))
- {
- chunk_t *next = chunk_get_next_ncnnl(pc, scope_e::PREPROC);
-
- if ( next != nullptr
- && chunk_is_token(next, CT_PAREN_OPEN))
- {
- flag_parens(next, PCF_NONE, CT_FPAREN_OPEN, CT_ATTRIBUTE, false);
- }
- }
- }
-
- pc = chunk_get_head();
-
- if (pc == nullptr)
- {
- return;
- }
-
- if ( chunk_is_newline(pc)
- || chunk_is_comment(pc))
- {
- pc = chunk_get_next_ncnnl(pc);
- }
-
- while (pc != nullptr)
- {
- if (chunk_is_token(pc, CT_IGNORED))
- {
- pc = chunk_get_next_ncnnl(pc);
- continue;
- }
- LOG_FMT(LFCNR, "%s(%d): pc->orig_line is %zu, orig_col is %zu, text() is '%s', type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(), get_token_name(pc->type));
- chunk_t *prev = chunk_get_prev_ncnnlni(pc, scope_e::PREPROC); // Issue #2279
-
- if (prev == nullptr)
- {
- prev = &dummy;
- }
- else
- {
- // Issue #2279
- LOG_FMT(LFCNR, "%s(%d): prev(ni)->orig_line is %zu, orig_col is %zu, text() is '%s', type is %s\n",
- __func__, __LINE__, prev->orig_line, prev->orig_col, prev->text(), get_token_name(prev->type));
- }
- chunk_t *next = chunk_get_next_ncnnl(pc, scope_e::PREPROC);
-
- if (next == nullptr)
- {
- next = &dummy;
- }
- else
- {
- // Issue #2279
- LOG_FMT(LFCNR, "%s(%d): next->orig_line is %zu, orig_col is %zu, text() is '%s', type is %s\n",
- __func__, __LINE__, next->orig_line, next->orig_col, next->text(), get_token_name(next->type));
- }
- LOG_FMT(LFCNR, "%s(%d): do_symbol_check(%s, %s, %s)\n",
- __func__, __LINE__, prev->text(), pc->text(), next->text());
- do_symbol_check(prev, pc, next);
- pc = chunk_get_next_ncnnl(pc);
- }
- pawn_add_virtual_semicolons();
- process_returns();
-
- /*
- * 2nd pass - handle variable definitions
- * REVISIT: We need function params marked to do this (?)
- */
- pc = chunk_get_head();
- int square_level = -1;
-
- while (pc != nullptr)
- {
- char copy[1000];
- LOG_FMT(LFCNR, "%s(%d): pc->orig_line is %zu, orig_col is %zu, text() is '%s', type is %s, parent_type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->elided_text(copy), get_token_name(pc->type), get_token_name(pc->parent_type));
-
- // Can't have a variable definition inside [ ]
- if (square_level < 0)
- {
- if (chunk_is_token(pc, CT_SQUARE_OPEN))
- {
- square_level = pc->level;
- }
- }
- else
- {
- if (pc->level <= static_cast<size_t>(square_level))
- {
- square_level = -1;
- }
- }
-
- if ( chunk_is_token(pc, CT_EXTERN)
- && language_is_set(LANG_ALLC))
- {
- chunk_t *next = chunk_get_next_ncnnl(pc);
-
- if (chunk_is_token(next, CT_STRING))
- {
- chunk_t *tmp = chunk_get_next_ncnnl(next);
-
- while (tmp != nullptr)
- {
- if ( chunk_is_token(tmp, CT_TYPE)
- || chunk_is_token(tmp, CT_BRACE_OPEN)
- || chunk_is_token(tmp, CT_ATTRIBUTE))
- {
- break;
- }
-
- if (chunk_is_token(tmp, CT_WORD))
- {
- chunk_flags_set(tmp, PCF_STMT_START | PCF_EXPR_START);
- break;
- }
- tmp = chunk_get_next_ncnnl(tmp);
- }
- }
- }
-
- if ( chunk_is_token(pc, CT_ATTRIBUTE)
- && language_is_set(LANG_ALLC))
- {
- chunk_t *tmp = skip_attribute_next(pc);
-
- if (chunk_is_token(tmp, CT_WORD))
- {
- chunk_flags_set(tmp, PCF_STMT_START | PCF_EXPR_START);
- }
- }
-
- if ( chunk_is_token(pc, CT_BRACE_OPEN) // Issue #2332
- && get_chunk_parent_type(pc) == CT_BRACED_INIT_LIST)
- {
- LOG_FMT(LFCNR, "%s(%d): pc->orig_line is %zu, orig_col is %zu, text() is '%s', look for CT_BRACE_OPEN\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text());
- pc = chunk_get_next_type(pc, CT_BRACE_CLOSE, pc->level);
- }
- /*
- * A variable definition is possible after at the start of a statement
- * that starts with: DC_MEMBER, QUALIFIER, TYPE, or WORD
- */
- // Issue #2279
- // Issue #2478
- LOG_FMT(LFCNR, "%s(%d): pc->orig_line is %zu, orig_col is %zu, text() is '%s', type is %s, parent_type is %s\n ",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->elided_text(copy), get_token_name(pc->type), get_token_name(pc->parent_type));
- log_pcf_flags(LFCNR, pc->flags);
-
- if ( (square_level < 0)
- && pc->flags.test(PCF_STMT_START)
- && ( chunk_is_token(pc, CT_QUALIFIER)
- || chunk_is_token(pc, CT_TYPE)
- || chunk_is_token(pc, CT_TYPENAME)
- || chunk_is_token(pc, CT_DC_MEMBER) // Issue #2478
- || chunk_is_token(pc, CT_WORD))
- && get_chunk_parent_type(pc) != CT_BIT_COLON
- && get_chunk_parent_type(pc) != CT_ENUM
- && !pc->flags.test(PCF_IN_CLASS_BASE)
- && !pc->flags.test(PCF_IN_ENUM))
- {
- pc = fix_variable_definition(pc);
- }
- else
- {
- pc = chunk_get_next_ncnnl(pc);
- }
- }
-} // fix_symbols
-
-
-static void process_returns(void)
-{
- LOG_FUNC_ENTRY();
- chunk_t *pc;
-
- pc = chunk_get_head();
-
- while (pc != nullptr)
- {
- if (chunk_is_not_token(pc, CT_RETURN))
- {
- pc = chunk_get_next_type(pc, CT_RETURN, -1);
- continue;
- }
- pc = process_return(pc);
- }
-}
-
-
-static chunk_t *process_return(chunk_t *pc)
-{
- LOG_FUNC_ENTRY();
- chunk_t *next;
- chunk_t *temp;
- chunk_t *semi;
- chunk_t *cpar;
- chunk_t chunk;
-
- // grab next and bail if it is a semicolon
- next = chunk_ppa_get_next_ncnnl(pc);
-
- if ( next == nullptr
- || chunk_is_semicolon(next)
- || chunk_is_token(next, CT_NEWLINE))
- {
- return(next);
- }
- log_rule_B("nl_return_expr");
-
- if ( options::nl_return_expr() != IARF_IGNORE
- && !pc->flags.test(PCF_IN_PREPROC))
- {
- newline_iarf(pc, options::nl_return_expr());
- }
-
- if (chunk_is_token(next, CT_PAREN_OPEN))
- {
- // See if the return is fully paren'd
- cpar = chunk_get_next_type(next, CT_PAREN_CLOSE, next->level);
-
- if (cpar == nullptr)
- {
- return(nullptr);
- }
- semi = chunk_ppa_get_next_ncnnl(cpar);
-
- if (semi == nullptr)
- {
- return(nullptr);
- }
-
- if ( chunk_is_token(semi, CT_NEWLINE)
- || chunk_is_semicolon(semi))
- {
- log_rule_B("mod_paren_on_return");
-
- if (options::mod_paren_on_return() == IARF_REMOVE)
- {
- LOG_FMT(LRETURN, "%s(%d): removing parens on orig_line %zu\n",
- __func__, __LINE__, pc->orig_line);
-
- // lower the level of everything
- for (temp = next; temp != cpar; temp = chunk_get_next(temp))
- {
- if (temp->level == 0)
- {
- fprintf(stderr, "%s(%d): temp->level is ZERO, cannot be decremented, at line %zu, column %zu\n",
- __func__, __LINE__, temp->orig_line, temp->orig_col);
- log_flush(true);
- exit(EX_SOFTWARE);
- }
- temp->level--;
- }
-
- // delete the parenthesis
- chunk_del(next);
- chunk_del(cpar);
-
- // back up following chunks
- temp = semi;
-
- while ( temp != nullptr
- && chunk_is_not_token(temp, CT_NEWLINE))
- {
- temp->column = temp->column - 2;
- temp->orig_col = temp->orig_col - 2;
- temp->orig_col_end = temp->orig_col_end - 2;
- temp = chunk_get_next(temp);
- }
- }
- else
- {
- LOG_FMT(LRETURN, "%s(%d): keeping parens on orig_line %zu\n",
- __func__, __LINE__, pc->orig_line);
-
- // mark & keep them
- set_chunk_parent(next, CT_RETURN);
- set_chunk_parent(cpar, CT_RETURN);
- }
- return(semi);
- }
- }
- // We don't have a fully paren'd return. Should we add some?
- log_rule_B("mod_paren_on_return");
-
- if (!(options::mod_paren_on_return() & IARF_ADD))
- {
- return(next);
- }
-
- // Issue #1917
- // Never add parens to a braced init list; that breaks the code
- // return {args...}; // C++11 type elision; okay
- // return ({args...}); // ill-formed
- if ( language_is_set(LANG_CPP)
- && chunk_is_token(next, CT_BRACE_OPEN)
- && get_chunk_parent_type(next) == CT_BRACED_INIT_LIST)
- {
- LOG_FMT(LRETURN, "%s(%d): not adding parens around braced initializer"
- " on orig_line %zd\n",
- __func__, __LINE__, pc->orig_line);
- return(next);
- }
- // find the next semicolon on the same level
- semi = next;
-
- if (pc->flags.test(PCF_IN_PREPROC))
- {
- while ((semi = semi->next) != nullptr)
- {
- if (!semi->flags.test(PCF_IN_PREPROC))
- {
- break;
- }
-
- if (semi->level < pc->level)
- {
- return(semi);
- }
-
- if ( chunk_is_semicolon(semi)
- && pc->level == semi->level)
- {
- break;
- }
- }
- }
- else
- {
- while ((semi = chunk_get_next(semi)) != nullptr)
- {
- if (semi->level < pc->level)
- {
- return(semi);
- }
-
- if ( chunk_is_semicolon(semi)
- && pc->level == semi->level)
- {
- break;
- }
- }
- }
-
- if (semi)
- {
- // add the parenthesis
- set_chunk_type(&chunk, CT_PAREN_OPEN);
- set_chunk_parent(&chunk, CT_RETURN);
- chunk.str = "(";
- chunk.level = pc->level;
- chunk.pp_level = pc->pp_level;
- chunk.brace_level = pc->brace_level;
- chunk.orig_line = pc->orig_line;
- chunk.orig_col = next->orig_col - 1;
- chunk.flags = pc->flags & PCF_COPY_FLAGS;
- chunk_add_before(&chunk, next);
-
- set_chunk_type(&chunk, CT_PAREN_CLOSE);
- chunk.str = ")";
- chunk.orig_line = semi->orig_line;
- chunk.orig_col = semi->orig_col - 1;
- cpar = chunk_add_before(&chunk, semi);
-
- LOG_FMT(LRETURN, "%s(%d): added parens on orig_line %zu\n",
- __func__, __LINE__, pc->orig_line);
-
- for (temp = next; temp != cpar; temp = chunk_get_next(temp))
- {
- temp->level++;
- }
- }
- return(semi);
-} // process_return
-
-
-static bool is_oc_block(chunk_t *pc)
-{
- return( pc != nullptr
- && ( get_chunk_parent_type(pc) == CT_OC_BLOCK_TYPE
- || get_chunk_parent_type(pc) == CT_OC_BLOCK_EXPR
- || get_chunk_parent_type(pc) == CT_OC_BLOCK_ARG
- || get_chunk_parent_type(pc) == CT_OC_BLOCK
- || chunk_is_token(pc, CT_OC_BLOCK_CARET)
- || ( pc->next != nullptr
- && pc->next->type == CT_OC_BLOCK_CARET)
- || ( pc->prev != nullptr
- && pc->prev->type == CT_OC_BLOCK_CARET)));
-}
-
-
-void mark_comments(void)
-{
- LOG_FUNC_ENTRY();
-
- cpd.unc_stage = unc_stage_e::MARK_COMMENTS;
-
- bool prev_nl = true;
- chunk_t *cur = chunk_get_head();
-
- while (cur != nullptr)
- {
- chunk_t *next = chunk_get_next_nvb(cur);
- bool next_nl = (next == nullptr) || chunk_is_newline(next);
-
- if (chunk_is_comment(cur))
- {
- if ( next_nl
- && prev_nl)
- {
- set_chunk_parent(cur, CT_COMMENT_WHOLE);
- }
- else if (next_nl)
- {
- set_chunk_parent(cur, CT_COMMENT_END);
- }
- else if (prev_nl)
- {
- set_chunk_parent(cur, CT_COMMENT_START);
- }
- else
- {
- set_chunk_parent(cur, CT_COMMENT_EMBED);
- }
- }
- prev_nl = chunk_is_newline(cur);
- cur = next;
- }
-}
-
-
-static void handle_cpp_template(chunk_t *pc)
-{
- LOG_FUNC_ENTRY();
-
- chunk_t *tmp = chunk_get_next_ncnnl(pc);
-
- if (chunk_is_not_token(tmp, CT_ANGLE_OPEN))
- {
- return;
- }
- set_chunk_parent(tmp, CT_TEMPLATE);
-
- size_t level = tmp->level;
-
- while ((tmp = chunk_get_next(tmp)) != nullptr)
- {
- if ( chunk_is_token(tmp, CT_CLASS)
- || chunk_is_token(tmp, CT_STRUCT))
- {
- set_chunk_type(tmp, CT_TYPE);
- }
- else if ( chunk_is_token(tmp, CT_ANGLE_CLOSE)
- && tmp->level == level)
- {
- set_chunk_parent(tmp, CT_TEMPLATE);
- break;
- }
- }
-
- if (tmp != nullptr)
- {
- tmp = chunk_get_next_ncnnl(tmp);
-
- if (chunk_is_token(tmp, CT_FRIEND))
- {
- // Account for a template friend declaration
- set_chunk_parent(tmp, CT_TEMPLATE);
-
- tmp = chunk_get_next_ncnnl(tmp);
- }
-
- if ( chunk_is_token(tmp, CT_CLASS)
- || chunk_is_token(tmp, CT_STRUCT))
- {
- set_chunk_parent(tmp, CT_TEMPLATE);
-
- // REVISIT: This may be a bit risky - might need to track the { };
- tmp = chunk_get_next_type(tmp, CT_SEMICOLON, tmp->level);
-
- if (tmp != nullptr)
- {
- set_chunk_parent(tmp, CT_TEMPLATE);
- }
- }
- }
-} // handle_cpp_template
-
-
-static void handle_cpp_lambda(chunk_t *sq_o)
-{
- LOG_FUNC_ENTRY();
-
- LOG_FMT(LFCNR, "%s(%d): sq_o is '%s'/%s\n",
- __func__, __LINE__,
- sq_o->text(), get_token_name(sq_o->type));
- chunk_t *ret = nullptr;
-
- // abort if type of the previous token is not contained in this whitelist
- chunk_t *prev = chunk_get_prev_ncnnlni(sq_o); // Issue #2279
-
- if (prev == nullptr)
- {
- LOG_FMT(LFCNR, "%s(%d): prev is nullptr\n", __func__, __LINE__);
- }
- else
- {
- LOG_FMT(LFCNR, "%s(%d): prev is '%s'/%s\n",
- __func__, __LINE__,
- prev->text(), get_token_name(prev->type));
- }
-
- if ( prev == nullptr
- || ( chunk_is_not_token(prev, CT_ASSIGN)
- && chunk_is_not_token(prev, CT_COMMA)
- && chunk_is_not_token(prev, CT_PAREN_OPEN) // allow Js like self invoking lambda syntax: ([](){})();
- && chunk_is_not_token(prev, CT_FPAREN_OPEN)
- && chunk_is_not_token(prev, CT_SQUARE_OPEN)
- && chunk_is_not_token(prev, CT_BRACE_OPEN)
- && chunk_is_not_token(prev, CT_SEMICOLON)
- && chunk_is_not_token(prev, CT_RETURN)))
- {
- LOG_FMT(LFCNR, "%s(%d): return\n", __func__, __LINE__);
- return;
- }
- chunk_t *sq_c = sq_o; // assuming '[]'
-
- if (chunk_is_token(sq_o, CT_SQUARE_OPEN))
- {
- // make sure there is a ']'
- sq_c = chunk_skip_to_match(sq_o);
-
- if (sq_c == nullptr)
- {
- LOG_FMT(LFCNR, "%s(%d): return\n", __func__, __LINE__);
- return;
- }
- }
- chunk_t *pa_o = chunk_get_next_ncnnl(sq_c);
-
- // check to see if there is a lambda-specifier in the pa_o chunk;
- // assuming chunk is CT_EXECUTION_CONTEXT, ignore lambda-specifier
- while (chunk_is_token(pa_o, CT_EXECUTION_CONTEXT))
- {
- // set pa_o to next chunk after this specifier
- pa_o = chunk_get_next_ncnnl(pa_o);
- }
-
- if (pa_o == nullptr)
- {
- LOG_FMT(LFCNR, "%s(%d): return\n", __func__, __LINE__);
- return;
- }
- chunk_t *pa_c = nullptr;
-
- // lambda-declarator '( params )' is optional
- if (chunk_is_token(pa_o, CT_PAREN_OPEN))
- {
- // and now find the ')'
- pa_c = chunk_skip_to_match(pa_o);
-
- if (pa_c == nullptr)
- {
- LOG_FMT(LFCNR, "%s(%d): return\n", __func__, __LINE__);
- return;
- }
- }
- // Check for 'mutable' keyword: '[]() mutable {}' or []() mutable -> ret {}
- chunk_t *br_o = pa_c ? chunk_get_next_ncnnl(pa_c) : pa_o;
-
- if (chunk_is_str(br_o, "mutable", 7))
- {
- br_o = chunk_get_next_ncnnl(br_o);
- }
- //TODO: also check for exception and attribute between [] ... {}
-
- // skip possible arrow syntax: '-> ret'
- if (chunk_is_str(br_o, "->", 2))
- {
- ret = br_o;
- // REVISIT: really should check the stuff we are skipping
- br_o = chunk_get_next_type(br_o, CT_BRACE_OPEN, br_o->level);
- }
-
- // skip possible CT_NOEXCEPT
- if (chunk_is_token(br_o, CT_NOEXCEPT)) // Issue #3321
- {
- ret = br_o;
- // REVISIT: really should check the stuff we are skipping
- br_o = chunk_get_next_type(br_o, CT_BRACE_OPEN, br_o->level);
- }
-
- if ( br_o == nullptr
- || chunk_is_not_token(br_o, CT_BRACE_OPEN))
- {
- LOG_FMT(LFCNR, "%s(%d): br_o is '%s'/%s\n",
- __func__, __LINE__,
- br_o->text(), get_token_name(br_o->type));
- LOG_FMT(LFCNR, "%s(%d): return\n", __func__, __LINE__);
- return;
- }
- // and now find the '}'
- chunk_t *br_c = chunk_skip_to_match(br_o);
-
- if (br_c == nullptr)
- {
- LOG_FMT(LFCNR, "%s(%d): return\n", __func__, __LINE__);
- return;
- }
-
- // This looks like a lambda expression
- if (chunk_is_token(sq_o, CT_TSQUARE))
- {
- // split into two chunks
- chunk_t nc;
-
- nc = *sq_o;
- set_chunk_type(sq_o, CT_SQUARE_OPEN);
- sq_o->str.resize(1);
- /*
- * bug # 664
- *
- * The original orig_col of CT_SQUARE_CLOSE is stored at orig_col_end
- * of CT_TSQUARE. CT_SQUARE_CLOSE orig_col and orig_col_end values
- * are calculate from orig_col_end of CT_TSQUARE.
- */
- nc.orig_col = sq_o->orig_col_end - 1;
- nc.column = static_cast<int>(nc.orig_col);
- nc.orig_col_end = sq_o->orig_col_end;
- sq_o->orig_col_end = sq_o->orig_col + 1;
-
- set_chunk_type(&nc, CT_SQUARE_CLOSE);
- nc.str.pop_front();
- sq_c = chunk_add_after(&nc, sq_o);
- }
- set_chunk_parent(sq_o, CT_CPP_LAMBDA);
- set_chunk_parent(sq_c, CT_CPP_LAMBDA);
-
- if (pa_c != nullptr)
- {
- set_chunk_type(pa_o, CT_LPAREN_OPEN); // Issue #3054
- set_chunk_parent(pa_o, CT_CPP_LAMBDA);
- chunk_set_parent(pa_o, sq_o);
- chunk_set_parent(br_o, sq_o);
- set_chunk_type(pa_c, CT_LPAREN_CLOSE);
- set_chunk_parent(pa_c, CT_CPP_LAMBDA);
- chunk_set_parent(pa_c, sq_o);
- chunk_set_parent(br_c, sq_o);
- }
- set_chunk_parent(br_o, CT_CPP_LAMBDA);
- set_chunk_parent(br_c, CT_CPP_LAMBDA);
-
- if (ret != nullptr)
- {
- set_chunk_type(ret, CT_CPP_LAMBDA_RET);
- ret = chunk_get_next_ncnnl(ret);
-
- while (ret != br_o)
- {
- make_type(ret);
- ret = chunk_get_next_ncnnl(ret);
- }
- }
-
- if (pa_c != nullptr)
- {
- fix_fcn_def_params(pa_o);
- }
- //handle self calling lambda paren
- chunk_t *call_pa_o = chunk_get_next_ncnnl(br_c);
-
- if (chunk_is_token(call_pa_o, CT_PAREN_OPEN))
- {
- chunk_t *call_pa_c = chunk_skip_to_match(call_pa_o);
-
- if (call_pa_c != nullptr)
- {
- set_chunk_type(call_pa_o, CT_FPAREN_OPEN);
- set_chunk_parent(call_pa_o, CT_FUNC_CALL);
- set_chunk_type(call_pa_c, CT_FPAREN_CLOSE);
- set_chunk_parent(call_pa_c, CT_FUNC_CALL);
- }
- }
- mark_cpp_lambda(sq_o);
-} // handle_cpp_lambda
-
-
-static void handle_d_template(chunk_t *pc)
-{
- LOG_FUNC_ENTRY();
-
- chunk_t *name = chunk_get_next_ncnnl(pc);
- chunk_t *po = chunk_get_next_ncnnl(name);
-
- //if (!name || (name->type != CT_WORD && name->type != CT_WORD)) Coverity CID 76000 Same on both sides, 2016-03-16
- if ( name == nullptr
- || chunk_is_not_token(name, CT_WORD))
- {
- // TODO: log an error, expected NAME
- return;
- }
-
- if ( po == nullptr
- || chunk_is_not_token(po, CT_PAREN_OPEN))
- {
- // TODO: log an error, expected '('
- return;
- }
- set_chunk_type(name, CT_TYPE);
- set_chunk_parent(name, CT_TEMPLATE);
- set_chunk_parent(po, CT_TEMPLATE);
-
- ChunkStack cs;
- chunk_t *tmp = get_d_template_types(cs, po);
-
- if ( tmp == nullptr
- || chunk_is_not_token(tmp, CT_PAREN_CLOSE))
- {
- // TODO: log an error, expected ')'
- return;
- }
- set_chunk_parent(tmp, CT_TEMPLATE);
-
- tmp = chunk_get_next_ncnnl(tmp);
-
- if (chunk_is_not_token(tmp, CT_BRACE_OPEN))
- {
- // TODO: log an error, expected '{'
- return;
- }
- set_chunk_parent(tmp, CT_TEMPLATE);
- po = tmp;
-
- tmp = po;
-
- while ( ((tmp = chunk_get_next_ncnnl(tmp)) != nullptr)
- && tmp->level > po->level)
- {
- if ( chunk_is_token(tmp, CT_WORD)
- && chunkstack_match(cs, tmp))
- {
- set_chunk_type(tmp, CT_TYPE);
- }
- }
-// if (!chunk_is_token(tmp, CT_BRACE_CLOSE))
-// {
-// // TODO: log an error, expected '}'
-// }
- set_chunk_parent(tmp, CT_TEMPLATE);
-} // handle_d_template
-
-
-chunk_t *skip_template_next(chunk_t *ang_open)
-{
- if (chunk_is_token(ang_open, CT_ANGLE_OPEN))
- {
- chunk_t *pc = chunk_get_next_type(ang_open, CT_ANGLE_CLOSE, ang_open->level);
- return(chunk_get_next_ncnnl(pc));
- }
- return(ang_open);
-}
-
-
-static void handle_oc_class(chunk_t *pc)
-{
- enum class angle_state_e : unsigned int
- {
- NONE = 0,
- OPEN = 1, // '<' found
- CLOSE = 2, // '>' found
- };
-
- LOG_FUNC_ENTRY();
- chunk_t *tmp;
- bool hit_scope = false;
- bool passed_name = false; // Did we pass the name of the class and now there can be only protocols, not generics
- int generic_level = 0; // level of depth of generic
- angle_state_e as = angle_state_e::NONE;
-
- LOG_FMT(LOCCLASS, "%s(%d): start [%s] [%s] line %zu\n",
- __func__, __LINE__, pc->text(), get_token_name(get_chunk_parent_type(pc)), pc->orig_line);
-
- if (get_chunk_parent_type(pc) == CT_OC_PROTOCOL)
- {
- tmp = chunk_get_next_ncnnl(pc);
-
- if (chunk_is_semicolon(tmp))
- {
- set_chunk_parent(tmp, get_chunk_parent_type(pc));
- LOG_FMT(LOCCLASS, "%s(%d): bail on semicolon\n", __func__, __LINE__);
- return;
- }
- }
- tmp = pc;
-
- while ((tmp = chunk_get_next_nnl(tmp)) != nullptr)
- {
- LOG_FMT(LOCCLASS, "%s(%d): orig_line is %zu, [%s]\n",
- __func__, __LINE__, tmp->orig_line, tmp->text());
-
- if (chunk_is_token(tmp, CT_OC_END))
- {
- break;
- }
-
- if (chunk_is_token(tmp, CT_PAREN_OPEN))
- {
- passed_name = true;
- }
-
- if (chunk_is_str(tmp, "<", 1))
- {
- set_chunk_type(tmp, CT_ANGLE_OPEN);
-
- if (passed_name)
- {
- set_chunk_parent(tmp, CT_OC_PROTO_LIST);
- }
- else
- {
- set_chunk_parent(tmp, CT_OC_GENERIC_SPEC);
- generic_level++;
- }
- as = angle_state_e::OPEN;
- }
-
- if (chunk_is_str(tmp, ">", 1))
- {
- set_chunk_type(tmp, CT_ANGLE_CLOSE);
-
- if (passed_name)
- {
- set_chunk_parent(tmp, CT_OC_PROTO_LIST);
- as = angle_state_e::CLOSE;
- }
- else
- {
- set_chunk_parent(tmp, CT_OC_GENERIC_SPEC);
-
- if (generic_level == 0)
- {
- fprintf(stderr, "%s(%d): generic_level is ZERO, cannot be decremented, at line %zu, column %zu\n",
- __func__, __LINE__, tmp->orig_line, tmp->orig_col);
- log_flush(true);
- exit(EX_SOFTWARE);
- }
- generic_level--;
-
- if (generic_level == 0)
- {
- as = angle_state_e::CLOSE;
- }
- }
- }
-
- if (chunk_is_str(tmp, ">>", 2))
- {
- set_chunk_type(tmp, CT_ANGLE_CLOSE);
- set_chunk_parent(tmp, CT_OC_GENERIC_SPEC);
- split_off_angle_close(tmp);
- generic_level -= 1;
-
- if (generic_level == 0)
- {
- as = angle_state_e::CLOSE;
- }
- }
-
- if ( chunk_is_token(tmp, CT_BRACE_OPEN)
- && get_chunk_parent_type(tmp) != CT_ASSIGN)
- {
- as = angle_state_e::CLOSE;
- set_chunk_parent(tmp, CT_OC_CLASS);
- tmp = chunk_get_next_type(tmp, CT_BRACE_CLOSE, tmp->level);
-
- if ( tmp != nullptr
- && get_chunk_parent_type(tmp) != CT_ASSIGN)
- {
- set_chunk_parent(tmp, CT_OC_CLASS);
- }
- }
- else if (chunk_is_token(tmp, CT_COLON))
- {
- if (as != angle_state_e::OPEN)
- {
- passed_name = true;
- }
- set_chunk_type(tmp, hit_scope ? CT_OC_COLON : CT_CLASS_COLON);
-
- if (chunk_is_token(tmp, CT_CLASS_COLON))
- {
- set_chunk_parent(tmp, CT_OC_CLASS);
- }
- }
- else if ( chunk_is_str(tmp, "-", 1)
- || chunk_is_str(tmp, "+", 1))
- {
- as = angle_state_e::CLOSE;
-
- if (chunk_is_newline(chunk_get_prev(tmp)))
- {
- set_chunk_type(tmp, CT_OC_SCOPE);
- chunk_flags_set(tmp, PCF_STMT_START);
- hit_scope = true;
- }
- }
-
- if (as == angle_state_e::OPEN)
- {
- if (passed_name)
- {
- set_chunk_parent(tmp, CT_OC_PROTO_LIST);
- }
- else
- {
- set_chunk_parent(tmp, CT_OC_GENERIC_SPEC);
- }
- }
- }
-
- if (chunk_is_token(tmp, CT_BRACE_OPEN))
- {
- tmp = chunk_get_next_type(tmp, CT_BRACE_CLOSE, tmp->level);
-
- if (tmp != nullptr)
- {
- set_chunk_parent(tmp, CT_OC_CLASS);
- }
- }
-} // handle_oc_class
-
-
-static void handle_oc_block_literal(chunk_t *pc)
-{
- LOG_FUNC_ENTRY();
- chunk_t *prev = chunk_get_prev_ncnnlni(pc); // Issue #2279
- chunk_t *next = chunk_get_next_ncnnl(pc);
-
- if ( pc == nullptr
- || prev == nullptr
- || next == nullptr)
- {
- return; // let's be paranoid
- }
- /*
- * block literal: '^ RTYPE ( ARGS ) { }'
- * RTYPE and ARGS are optional
- */
- LOG_FMT(LOCBLK, "%s(%d): block literal @ orig_line is %zu, orig_col is %zu\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col);
-
- chunk_t *apo = nullptr; // arg paren open
- chunk_t *bbo = nullptr; // block brace open
- chunk_t *bbc; // block brace close
-
- LOG_FMT(LOCBLK, "%s(%d): + scan", __func__, __LINE__);
- chunk_t *tmp;
-
- for (tmp = next; tmp; tmp = chunk_get_next_ncnnl(tmp))
- {
- /* handle '< protocol >' */
- if (chunk_is_str(tmp, "<", 1))
- {
- chunk_t *ao = tmp;
- chunk_t *ac = chunk_get_next_str(ao, ">", 1, ao->level);
-
- if (ac)
- {
- set_chunk_type(ao, CT_ANGLE_OPEN);
- set_chunk_parent(ao, CT_OC_PROTO_LIST);
- set_chunk_type(ac, CT_ANGLE_CLOSE);
- set_chunk_parent(ac, CT_OC_PROTO_LIST);
-
- for (tmp = chunk_get_next(ao); tmp != ac; tmp = chunk_get_next(tmp))
- {
- tmp->level += 1;
- set_chunk_parent(tmp, CT_OC_PROTO_LIST);
- }
- }
- tmp = chunk_get_next_ncnnl(ac);
- }
- LOG_FMT(LOCBLK, " '%s'", tmp->text());
-
- if ( tmp->level < pc->level
- || chunk_is_token(tmp, CT_SEMICOLON))
- {
- LOG_FMT(LOCBLK, "[DONE]");
- break;
- }
-
- if (tmp->level == pc->level)
- {
- if (chunk_is_paren_open(tmp))
- {
- apo = tmp;
- LOG_FMT(LOCBLK, "[PAREN]");
- }
-
- if (chunk_is_token(tmp, CT_BRACE_OPEN))
- {
- LOG_FMT(LOCBLK, "[BRACE]");
- bbo = tmp;
- break;
- }
- }
- }
-
- // make sure we have braces
- bbc = chunk_skip_to_match(bbo);
-
- if ( bbo == nullptr
- || bbc == nullptr)
- {
- LOG_FMT(LOCBLK, " -- no braces found\n");
- return;
- }
- LOG_FMT(LOCBLK, "\n");
-
- // we are on a block literal for sure
- set_chunk_type(pc, CT_OC_BLOCK_CARET);
- set_chunk_parent(pc, CT_OC_BLOCK_EXPR);
-
- // handle the optional args
- chunk_t *lbp; // last before paren - end of return type, if any
-
- if (apo)
- {
- chunk_t *apc = chunk_skip_to_match(apo); // arg parenthesis close
-
- if (chunk_is_paren_close(apc))
- {
- LOG_FMT(LOCBLK, " -- marking parens @ apo->orig_line is %zu, apo->orig_col is %zu and apc->orig_line is %zu, apc->orig_col is %zu\n",
- apo->orig_line, apo->orig_col, apc->orig_line, apc->orig_col);
- flag_parens(apo, PCF_OC_ATYPE, CT_FPAREN_OPEN, CT_OC_BLOCK_EXPR, true);
- fix_fcn_def_params(apo);
- }
- lbp = chunk_get_prev_ncnnlni(apo); // Issue #2279
- }
- else
- {
- lbp = chunk_get_prev_ncnnlni(bbo); // Issue #2279
- }
-
- // mark the return type, if any
- while (lbp != pc)
- {
- LOG_FMT(LOCBLK, " -- lbp %s[%s]\n", lbp->text(), get_token_name(lbp->type));
- make_type(lbp);
- chunk_flags_set(lbp, PCF_OC_RTYPE);
- set_chunk_parent(lbp, CT_OC_BLOCK_EXPR);
- lbp = chunk_get_prev_ncnnlni(lbp); // Issue #2279
- }
- // mark the braces
- set_chunk_parent(bbo, CT_OC_BLOCK_EXPR);
- set_chunk_parent(bbc, CT_OC_BLOCK_EXPR);
-} // handle_oc_block_literal
-
-
-static void handle_oc_block_type(chunk_t *pc)
-{
- LOG_FUNC_ENTRY();
-
- if (pc == nullptr)
- {
- return;
- }
-
- if (pc->flags.test(PCF_IN_TYPEDEF))
- {
- LOG_FMT(LOCBLK, "%s(%d): skip block type @ orig_line is %zu, orig_col is %zu, -- in typedef\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col);
- return;
- }
- // make sure we have '( ^'
- chunk_t *tpo = chunk_get_prev_ncnnlni(pc); // type paren open Issue #2279
-
- if (chunk_is_paren_open(tpo))
- {
- /*
- * block type: 'RTYPE (^LABEL)(ARGS)'
- * LABEL is optional.
- */
- chunk_t *tpc = chunk_skip_to_match(tpo); // type close paren (after '^')
- chunk_t *nam = chunk_get_prev_ncnnlni(tpc); // name (if any) or '^' Issue #2279
- chunk_t *apo = chunk_get_next_ncnnl(tpc); // arg open paren
- chunk_t *apc = chunk_skip_to_match(apo); // arg close paren
-
- /*
- * If this is a block literal instead of a block type, 'nam'
- * will actually be the closing bracket of the block. We run into
- * this situation if a block literal is enclosed in parentheses.
- */
- if (chunk_is_closing_brace(nam))
- {
- return(handle_oc_block_literal(pc));
- }
-
- // Check apo is '(' or else this might be a block literal. Issue 2643.
- if (!chunk_is_paren_open(apo))
- {
- return(handle_oc_block_literal(pc));
- }
-
- if (chunk_is_paren_close(apc))
- {
- chunk_t *aft = chunk_get_next_ncnnl(apc);
- c_token_t pt;
-
- if (chunk_is_str(nam, "^", 1))
- {
- set_chunk_type(nam, CT_PTR_TYPE);
- pt = CT_FUNC_TYPE;
- }
- else if ( chunk_is_token(aft, CT_ASSIGN)
- || chunk_is_token(aft, CT_SEMICOLON))
- {
- set_chunk_type(nam, CT_FUNC_VAR);
- pt = CT_FUNC_VAR;
- }
- else
- {
- set_chunk_type(nam, CT_FUNC_TYPE);
- pt = CT_FUNC_TYPE;
- }
- LOG_FMT(LOCBLK, "%s(%d): block type @ orig_line is %zu, orig_col is %zu, text() '%s'[%s]\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, nam->text(), get_token_name(nam->type));
- set_chunk_type(pc, CT_PTR_TYPE);
- set_chunk_parent(pc, pt); //CT_OC_BLOCK_TYPE;
- set_chunk_type(tpo, CT_TPAREN_OPEN);
- set_chunk_parent(tpo, pt); //CT_OC_BLOCK_TYPE;
- set_chunk_type(tpc, CT_TPAREN_CLOSE);
- set_chunk_parent(tpc, pt); //CT_OC_BLOCK_TYPE;
- set_chunk_type(apo, CT_FPAREN_OPEN);
- set_chunk_parent(apo, CT_FUNC_PROTO);
- set_chunk_type(apc, CT_FPAREN_CLOSE);
- set_chunk_parent(apc, CT_FUNC_PROTO);
- fix_fcn_def_params(apo);
- mark_function_return_type(nam, chunk_get_prev_ncnnlni(tpo), pt); // Issue #2279
- }
- }
-} // handle_oc_block_type
-
-
-static chunk_t *handle_oc_md_type(chunk_t *paren_open, c_token_t ptype, pcf_flags_t flags, bool &did_it)
-{
- chunk_t *paren_close;
-
- if ( !chunk_is_paren_open(paren_open)
- || ((paren_close = chunk_skip_to_match(paren_open)) == nullptr))
- {
- did_it = false;
- return(paren_open);
- }
- did_it = true;
-
- set_chunk_parent(paren_open, ptype);
- chunk_flags_set(paren_open, flags);
- set_chunk_parent(paren_close, ptype);
- chunk_flags_set(paren_close, flags);
-
- for (chunk_t *cur = chunk_get_next_ncnnl(paren_open);
- cur != paren_close;
- cur = chunk_get_next_ncnnl(cur))
- {
- LOG_FMT(LOCMSGD, " <%s|%s>", cur->text(), get_token_name(cur->type));
- chunk_flags_set(cur, flags);
- make_type(cur);
- }
-
- // returning the chunk after the paren close
- return(chunk_get_next_ncnnl(paren_close));
-}
-
-
-static void handle_oc_message_decl(chunk_t *pc)
-{
- LOG_FUNC_ENTRY();
-
- bool did_it;
- //bool in_paren = false;
- //int paren_cnt = 0;
- //int arg_cnt = 0;
-
- // Figure out if this is a spec or decl
- chunk_t *tmp = pc;
-
- while ((tmp = chunk_get_next(tmp)) != nullptr)
- {
- if (tmp->level < pc->level)
- {
- // should not happen
- return;
- }
-
- if ( chunk_is_token(tmp, CT_SEMICOLON)
- || chunk_is_token(tmp, CT_BRACE_OPEN))
- {
- break;
- }
- }
-
- if (tmp == nullptr)
- {
- return;
- }
- c_token_t pt = chunk_is_token(tmp, CT_SEMICOLON) ? CT_OC_MSG_SPEC : CT_OC_MSG_DECL;
-
- set_chunk_type(pc, CT_OC_SCOPE);
- set_chunk_parent(pc, pt);
-
- LOG_FMT(LOCMSGD, "%s(%d): %s @ orig_line is %zu, orig_col is %zu -",
- __func__, __LINE__, get_token_name(pt), pc->orig_line, pc->orig_col);
-
- // format: -(TYPE) NAME [: (TYPE)NAME
-
- // handle the return type
- tmp = handle_oc_md_type(chunk_get_next_ncnnl(pc), pt, PCF_OC_RTYPE, did_it);
-
- if (!did_it)
- {
- LOG_FMT(LOCMSGD, " -- missing type parens\n");
- return;
- }
-
- // expect the method name/label
- if (chunk_is_not_token(tmp, CT_WORD))
- {
- LOG_FMT(LOCMSGD, " -- missing method name\n");
- return;
- } // expect the method name/label
-
- chunk_t *label = tmp;
-
- set_chunk_type(tmp, pt);
- set_chunk_parent(tmp, pt);
- pc = chunk_get_next_ncnnl(tmp);
-
- LOG_FMT(LOCMSGD, " [%s]%s", pc->text(), get_token_name(pc->type));
-
- // if we have a colon next, we have args
- if ( chunk_is_token(pc, CT_COLON)
- || chunk_is_token(pc, CT_OC_COLON))
- {
- pc = label;
-
- while (true)
- {
- // skip optional label
- if ( chunk_is_token(pc, CT_WORD)
- || chunk_is_token(pc, pt))
- {
- set_chunk_parent(pc, pt);
- pc = chunk_get_next_ncnnl(pc);
- }
-
- // a colon must be next
- if (!chunk_is_str(pc, ":", 1))
- {
- break;
- }
- set_chunk_type(pc, CT_OC_COLON);
- set_chunk_parent(pc, pt);
- pc = chunk_get_next_ncnnl(pc);
-
- // next is the type in parens
- LOG_FMT(LOCMSGD, " (%s)", pc->text());
- tmp = handle_oc_md_type(pc, pt, PCF_OC_ATYPE, did_it);
-
- if (!did_it)
- {
- LOG_FMT(LWARN, "%s(%d): orig_line is %zu, orig_col is %zu expected type\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col);
- break;
- }
- // attributes for a method parameter sit between the parameter type and the parameter name
- pc = skip_attribute_next(tmp);
- // we should now be on the arg name
- chunk_flags_set(pc, PCF_VAR_DEF);
- LOG_FMT(LOCMSGD, " arg[%s]", pc->text());
- pc = chunk_get_next_ncnnl(pc);
- }
- }
- LOG_FMT(LOCMSGD, " end[%s]", pc->text());
-
- if (chunk_is_token(pc, CT_BRACE_OPEN))
- {
- set_chunk_parent(pc, pt);
- pc = chunk_skip_to_match(pc);
-
- if (pc != nullptr)
- {
- set_chunk_parent(pc, pt);
- }
- }
- else if (chunk_is_token(pc, CT_SEMICOLON))
- {
- set_chunk_parent(pc, pt);
- }
- LOG_FMT(LOCMSGD, "\n");
-} // handle_oc_message_decl
-
-
-static void handle_oc_message_send(chunk_t *os)
-{
- LOG_FUNC_ENTRY();
-
- chunk_t *cs = chunk_get_next(os);
-
- while ( cs != nullptr
- && cs->level > os->level)
- {
- cs = chunk_get_next(cs);
- }
-
- if ( cs == nullptr
- || chunk_is_not_token(cs, CT_SQUARE_CLOSE))
- {
- return;
- }
- LOG_FMT(LOCMSG, "%s(%d): orig_line is %zu, orig_col is %zu\n",
- __func__, __LINE__, os->orig_line, os->orig_col);
-
- chunk_t *tmp = chunk_get_next_ncnnl(cs);
-
- if (chunk_is_semicolon(tmp))
- {
- set_chunk_parent(tmp, CT_OC_MSG);
- }
- // expect a word first thing or [...]
- tmp = chunk_get_next_ncnnl(os);
-
- if ( chunk_is_token(tmp, CT_SQUARE_OPEN)
- || chunk_is_token(tmp, CT_PAREN_OPEN)
- || chunk_is_token(tmp, CT_OC_AT))
- {
- chunk_t *tt = chunk_get_next_ncnnl(tmp);
-
- if ( chunk_is_token(tmp, CT_OC_AT)
- && tt != nullptr)
- {
- if ( chunk_is_token(tt, CT_PAREN_OPEN)
- || chunk_is_token(tt, CT_BRACE_OPEN)
- || chunk_is_token(tt, CT_SQUARE_OPEN))
- {
- tmp = tt;
- }
- else
- {
- LOG_FMT(LOCMSG, "%s(%d): tmp->orig_line is %zu, tmp->orig_col is %zu, expected identifier, not '%s' [%s]\n",
- __func__, __LINE__, tmp->orig_line, tmp->orig_col,
- tmp->text(), get_token_name(tmp->type));
- return;
- }
- }
- tmp = chunk_skip_to_match(tmp);
- }
- else if ( chunk_is_not_token(tmp, CT_WORD)
- && chunk_is_not_token(tmp, CT_TYPE)
- && chunk_is_not_token(tmp, CT_THIS)
- && chunk_is_not_token(tmp, CT_STAR)
- && chunk_is_not_token(tmp, CT_STRING))
- {
- LOG_FMT(LOCMSG, "%s(%d): orig_line is %zu, orig_col is %zu, expected identifier, not '%s' [%s]\n",
- __func__, __LINE__, tmp->orig_line, tmp->orig_col,
- tmp->text(), get_token_name(tmp->type));
- return;
- }
- else
- {
- if (chunk_is_star(tmp)) // Issue #2722
- {
- set_chunk_type(tmp, CT_PTR_TYPE);
- tmp = chunk_get_next_ncnnl(tmp);
- }
- chunk_t *tt = chunk_get_next_ncnnl(tmp);
-
- if (chunk_is_paren_open(tt))
- {
- LOG_FMT(LFCN, "%s(%d): (18) SET TO CT_FUNC_CALL: orig_line is %zu, orig_col is %zu, text() '%s'\n",
- __func__, __LINE__, tmp->orig_line, tmp->orig_col, tmp->text());
- set_chunk_type(tmp, CT_FUNC_CALL);
- tmp = chunk_get_prev_ncnnlni(set_paren_parent(tt, CT_FUNC_CALL)); // Issue #2279
- }
- else
- {
- set_chunk_type(tmp, CT_OC_MSG_CLASS);
- }
- }
- set_chunk_parent(os, CT_OC_MSG);
- chunk_flags_set(os, PCF_IN_OC_MSG);
- set_chunk_parent(cs, CT_OC_MSG);
- chunk_flags_set(cs, PCF_IN_OC_MSG);
-
- // handle '< protocol >'
- tmp = chunk_get_next_ncnnl(tmp);
-
- if (chunk_is_str(tmp, "<", 1))
- {
- chunk_t *ao = tmp;
- chunk_t *ac = chunk_get_next_str(ao, ">", 1, ao->level);
-
- if (ac)
- {
- set_chunk_type(ao, CT_ANGLE_OPEN);
- set_chunk_parent(ao, CT_OC_PROTO_LIST);
- set_chunk_type(ac, CT_ANGLE_CLOSE);
- set_chunk_parent(ac, CT_OC_PROTO_LIST);
-
- for (tmp = chunk_get_next(ao); tmp != ac; tmp = chunk_get_next(tmp))
- {
- tmp->level += 1;
- set_chunk_parent(tmp, CT_OC_PROTO_LIST);
- }
- }
- tmp = chunk_get_next_ncnnl(ac);
- }
- // handle 'object.property' and 'collection[index]'
- else
- {
- while (tmp)
- {
- if (chunk_is_token(tmp, CT_MEMBER)) // move past [object.prop1.prop2
- {
- chunk_t *typ = chunk_get_next_ncnnl(tmp);
-
- if ( chunk_is_token(typ, CT_WORD)
- || chunk_is_token(typ, CT_TYPE))
- {
- tmp = chunk_get_next_ncnnl(typ);
- }
- else
- {
- break;
- }
- }
- else if (chunk_is_token(tmp, CT_SQUARE_OPEN)) // move past [collection[index]
- {
- chunk_t *tcs = chunk_get_next_ncnnl(tmp);
-
- while ( tcs != nullptr
- && tcs->level > tmp->level)
- {
- tcs = chunk_get_next_ncnnl(tcs);
- }
-
- if (chunk_is_token(tcs, CT_SQUARE_CLOSE))
- {
- tmp = chunk_get_next_ncnnl(tcs);
- }
- else
- {
- break;
- }
- }
- else
- {
- break;
- }
- }
- }
-
- // [(self.foo.bar) method]
- if (chunk_is_paren_open(tmp))
- {
- tmp = chunk_get_next_ncnnl(chunk_skip_to_match(tmp));
- }
-
- if ( chunk_is_token(tmp, CT_WORD)
- || chunk_is_token(tmp, CT_TYPE))
- {
- set_chunk_type(tmp, CT_OC_MSG_FUNC);
- }
- chunk_t *prev = nullptr;
-
- for (tmp = chunk_get_next(os); tmp != cs; tmp = chunk_get_next(tmp))
- {
- chunk_flags_set(tmp, PCF_IN_OC_MSG);
-
- if (tmp->level == cs->level + 1)
- {
- if (chunk_is_token(tmp, CT_COLON))
- {
- set_chunk_type(tmp, CT_OC_COLON);
-
- if ( chunk_is_token(prev, CT_WORD)
- || chunk_is_token(prev, CT_TYPE))
- {
- // Might be a named param, check previous block
- chunk_t *pp = chunk_get_prev(prev);
-
- if ( pp != nullptr
- && chunk_is_not_token(pp, CT_OC_COLON)
- && chunk_is_not_token(pp, CT_ARITH)
- && chunk_is_not_token(pp, CT_SHIFT)
- && chunk_is_not_token(pp, CT_CARET))
- {
- set_chunk_type(prev, CT_OC_MSG_NAME);
- set_chunk_parent(tmp, CT_OC_MSG_NAME);
- }
- }
- }
- }
- prev = tmp;
- }
-} // handle_oc_message_send
-
-
-static void handle_oc_available(chunk_t *os)
-{
- os = chunk_get_next(os);
-
- while (os != nullptr)
- {
- c_token_t origType = os->type;
- set_chunk_type(os, CT_OC_AVAILABLE_VALUE);
-
- if (origType == CT_PAREN_CLOSE)
- {
- break;
- }
- os = chunk_get_next(os);
- }
-}
-
-
-static void handle_oc_property_decl(chunk_t *os)
-{
- log_rule_B("mod_sort_oc_properties");
-
- if (options::mod_sort_oc_properties())
- {
- typedef std::vector<chunk_t *> ChunkGroup;
-
- chunk_t *next = chunk_get_next(os);
- chunk_t *open_paren = nullptr;
-
- std::vector<ChunkGroup> class_chunks; // class
- std::vector<ChunkGroup> thread_chunks; // atomic, nonatomic
- std::vector<ChunkGroup> readwrite_chunks; // readwrite, readonly
- std::vector<ChunkGroup> ref_chunks; // retain, copy, assign, weak, strong, unsafe_unretained
- std::vector<ChunkGroup> getter_chunks; // getter
- std::vector<ChunkGroup> setter_chunks; // setter
- std::vector<ChunkGroup> nullability_chunks; // nonnull, nullable, null_unspecified, null_resettable
- std::vector<ChunkGroup> other_chunks; // any words other than above
-
- if (chunk_is_token(next, CT_PAREN_OPEN))
- {
- open_paren = next;
- next = chunk_get_next(next);
-
- /*
- * Determine location of the property attributes
- * NOTE: Did not do this in the combine.cpp do_symbol_check as
- * I was not sure what the ramifications of adding a new type
- * for each of the below types would be. It did break some items
- * when I attempted to add them so this is my hack for now.
- */
- while ( next != nullptr
- && chunk_is_not_token(next, CT_PAREN_CLOSE))
- {
- if (chunk_is_token(next, CT_OC_PROPERTY_ATTR))
- {
- if ( chunk_is_str(next, "atomic", 6)
- || chunk_is_str(next, "nonatomic", 9))
- {
- ChunkGroup chunkGroup;
- chunkGroup.push_back(next);
- thread_chunks.push_back(chunkGroup);
- }
- else if ( chunk_is_str(next, "readonly", 8)
- || chunk_is_str(next, "readwrite", 9))
- {
- ChunkGroup chunkGroup;
- chunkGroup.push_back(next);
- readwrite_chunks.push_back(chunkGroup);
- }
- else if ( chunk_is_str(next, "assign", 6)
- || chunk_is_str(next, "retain", 6)
- || chunk_is_str(next, "copy", 4)
- || chunk_is_str(next, "strong", 6)
- || chunk_is_str(next, "weak", 4)
- || chunk_is_str(next, "unsafe_unretained", 17))
- {
- ChunkGroup chunkGroup;
- chunkGroup.push_back(next);
- ref_chunks.push_back(chunkGroup);
- }
- else if (chunk_is_str(next, "getter", 6))
- {
- ChunkGroup chunkGroup;
-
- do
- {
- chunkGroup.push_back(next);
- next = chunk_get_next(next);
- } while ( next
- && chunk_is_not_token(next, CT_COMMA)
- && chunk_is_not_token(next, CT_PAREN_CLOSE));
-
- next = next->prev;
-
- // coverity CID 160946
- if (next == nullptr)
- {
- break;
- }
- getter_chunks.push_back(chunkGroup);
- }
- else if (chunk_is_str(next, "setter", 6))
- {
- ChunkGroup chunkGroup;
-
- do
- {
- chunkGroup.push_back(next);
- next = chunk_get_next(next);
- } while ( next
- && chunk_is_not_token(next, CT_COMMA)
- && chunk_is_not_token(next, CT_PAREN_CLOSE));
-
- next = chunk_get_prev(next);
-
- if (next == nullptr)
- {
- break;
- }
- setter_chunks.push_back(chunkGroup);
- }
- else if ( chunk_is_str(next, "nullable", 8)
- || chunk_is_str(next, "nonnull", 7)
- || chunk_is_str(next, "null_resettable", 15)
- || chunk_is_str(next, "null_unspecified", 16))
- {
- ChunkGroup chunkGroup;
- chunkGroup.push_back(next);
- nullability_chunks.push_back(chunkGroup);
- }
- else if (chunk_is_str(next, "class", 5))
- {
- ChunkGroup chunkGroup;
- chunkGroup.push_back(next);
- class_chunks.push_back(chunkGroup);
- }
- else
- {
- ChunkGroup chunkGroup;
- chunkGroup.push_back(next);
- other_chunks.push_back(chunkGroup);
- }
- }
- else if (chunk_is_word(next))
- {
- if (chunk_is_str(next, "class", 5))
- {
- ChunkGroup chunkGroup;
- chunkGroup.push_back(next);
- class_chunks.push_back(chunkGroup);
- }
- else
- {
- ChunkGroup chunkGroup;
- chunkGroup.push_back(next);
- other_chunks.push_back(chunkGroup);
- }
- }
- next = chunk_get_next(next);
- }
- log_rule_B("mod_sort_oc_property_class_weight");
- int class_w = options::mod_sort_oc_property_class_weight();
- log_rule_B("mod_sort_oc_property_thread_safe_weight");
- int thread_w = options::mod_sort_oc_property_thread_safe_weight();
- log_rule_B("mod_sort_oc_property_readwrite_weight");
- int readwrite_w = options::mod_sort_oc_property_readwrite_weight();
- log_rule_B("mod_sort_oc_property_reference_weight");
- int ref_w = options::mod_sort_oc_property_reference_weight();
- log_rule_B("mod_sort_oc_property_getter_weight");
- int getter_w = options::mod_sort_oc_property_getter_weight();
- log_rule_B("mod_sort_oc_property_setter_weight");
- int setter_w = options::mod_sort_oc_property_setter_weight();
- log_rule_B("mod_sort_oc_property_nullability_weight");
- int nullability_w = options::mod_sort_oc_property_nullability_weight();
-
- //
- std::multimap<int, std::vector<ChunkGroup> > sorted_chunk_map;
- sorted_chunk_map.insert(pair<int, std::vector<ChunkGroup> >(class_w, class_chunks));
- sorted_chunk_map.insert(pair<int, std::vector<ChunkGroup> >(thread_w, thread_chunks));
- sorted_chunk_map.insert(pair<int, std::vector<ChunkGroup> >(readwrite_w, readwrite_chunks));
- sorted_chunk_map.insert(pair<int, std::vector<ChunkGroup> >(ref_w, ref_chunks));
- sorted_chunk_map.insert(pair<int, std::vector<ChunkGroup> >(getter_w, getter_chunks));
- sorted_chunk_map.insert(pair<int, std::vector<ChunkGroup> >(setter_w, setter_chunks));
- sorted_chunk_map.insert(pair<int, std::vector<ChunkGroup> >(nullability_w, nullability_chunks));
- sorted_chunk_map.insert(pair<int, std::vector<ChunkGroup> >(std::numeric_limits<int>::min(), other_chunks));
-
- chunk_t *curr_chunk = open_paren;
-
- for (multimap<int, std::vector<ChunkGroup> >::reverse_iterator it = sorted_chunk_map.rbegin(); it != sorted_chunk_map.rend(); ++it)
- {
- std::vector<ChunkGroup> chunk_groups = (*it).second;
-
- for (auto chunk_group : chunk_groups)
- {
- for (auto chunk : chunk_group)
- {
- chunk->orig_prev_sp = 0;
-
- if (chunk != curr_chunk)
- {
- chunk_move_after(chunk, curr_chunk);
- curr_chunk = chunk;
- }
- else
- {
- curr_chunk = chunk_get_next(curr_chunk);
- }
- }
-
- // add the parenthesis
- chunk_t endchunk;
- set_chunk_type(&endchunk, CT_COMMA);
- set_chunk_parent(&endchunk, get_chunk_parent_type(curr_chunk));
- endchunk.str = ",";
- endchunk.level = curr_chunk->level;
- endchunk.pp_level = curr_chunk->pp_level;
- endchunk.brace_level = curr_chunk->brace_level;
- endchunk.orig_line = curr_chunk->orig_line;
- endchunk.orig_col = curr_chunk->orig_col;
- endchunk.column = curr_chunk->orig_col_end + 1;
- endchunk.flags = curr_chunk->flags & PCF_COPY_FLAGS;
- chunk_add_after(&endchunk, curr_chunk);
- curr_chunk = curr_chunk->next;
- }
- }
-
- // Remove the extra comma's that we did not move
- while ( curr_chunk != nullptr
- && chunk_is_not_token(curr_chunk, CT_PAREN_CLOSE))
- {
- chunk_t *rm_chunk = curr_chunk;
- curr_chunk = chunk_get_next(curr_chunk);
- chunk_del(rm_chunk);
- }
- }
- }
- chunk_t *tmp = chunk_get_next_ncnnl(os);
-
- if (chunk_is_paren_open(tmp))
- {
- tmp = chunk_get_next_ncnnl(chunk_skip_to_match(tmp));
- }
- fix_variable_definition(tmp);
-} // handle_oc_property_decl
-
-
-static void handle_cs_square_stmt(chunk_t *os)
-{
- LOG_FUNC_ENTRY();
-
- chunk_t *cs = chunk_get_next(os);
-
- while ( cs != nullptr
- && cs->level > os->level)
- {
- cs = chunk_get_next(cs);
- }
-
- if ( cs == nullptr
- || chunk_is_not_token(cs, CT_SQUARE_CLOSE))
- {
- return;
- }
- set_chunk_parent(os, CT_CS_SQ_STMT);
- set_chunk_parent(cs, CT_CS_SQ_STMT);
-
- chunk_t *tmp;
-
- for (tmp = chunk_get_next(os); tmp != cs; tmp = chunk_get_next(tmp))
- {
- set_chunk_parent(tmp, CT_CS_SQ_STMT);
-
- if (chunk_is_token(tmp, CT_COLON))
- {
- set_chunk_type(tmp, CT_CS_SQ_COLON);
- }
- }
-
- tmp = chunk_get_next_ncnnl(cs);
-
- if (tmp != nullptr)
- {
- chunk_flags_set(tmp, PCF_STMT_START | PCF_EXPR_START);
- }
-}
-
-
-static void handle_cs_property(chunk_t *bro)
-{
- LOG_FUNC_ENTRY();
-
- set_paren_parent(bro, CT_CS_PROPERTY);
-
- bool did_prop = false;
- chunk_t *pc = bro;
-
- while ((pc = chunk_get_prev_ncnnlni(pc)) != nullptr) // Issue #2279
- {
- if (pc->level == bro->level)
- {
- //prevent scanning back past 'new' in expressions like new List<int> {1,2,3}
- // Issue # 1620, UNI-24090.cs
- if (chunk_is_token(pc, CT_NEW))
- {
- break;
- }
-
- if ( !did_prop
- && ( chunk_is_token(pc, CT_WORD)
- || chunk_is_token(pc, CT_THIS)))
- {
- set_chunk_type(pc, CT_CS_PROPERTY);
- did_prop = true;
- }
- else
- {
- set_chunk_parent(pc, CT_CS_PROPERTY);
- make_type(pc);
- }
-
- if (pc->flags.test(PCF_STMT_START))
- {
- break;
- }
- }
- }
-}
-
-
-static void handle_cs_array_type(chunk_t *pc)
-{
- chunk_t *prev;
-
- for (prev = chunk_get_prev(pc);
- chunk_is_token(prev, CT_COMMA);
- prev = chunk_get_prev(prev))
- {
- // empty
- }
-
- if (chunk_is_token(prev, CT_SQUARE_OPEN))
- {
- while (pc != prev)
- {
- set_chunk_parent(pc, CT_TYPE);
- pc = chunk_get_prev(pc);
- }
- set_chunk_parent(prev, CT_TYPE);
- }
-}
-
-
-static void handle_wrap(chunk_t *pc)
-{
- LOG_FUNC_ENTRY();
- chunk_t *opp = chunk_get_next(pc);
- chunk_t *name = chunk_get_next(opp);
- chunk_t *clp = chunk_get_next(name);
-
- log_rule_B("sp_func_call_paren");
- log_rule_B("sp_cpp_cast_paren");
- iarf_e pav = chunk_is_token(pc, CT_FUNC_WRAP) ?
- options::sp_func_call_paren() :
- options::sp_cpp_cast_paren();
-
- log_rule_B("sp_inside_fparen");
- log_rule_B("sp_inside_paren_cast");
- iarf_e av = chunk_is_token(pc, CT_FUNC_WRAP) ?
- options::sp_inside_fparen() :
- options::sp_inside_paren_cast();
-
- if ( chunk_is_token(clp, CT_PAREN_CLOSE)
- && chunk_is_token(opp, CT_PAREN_OPEN)
- && ( chunk_is_token(name, CT_WORD)
- || chunk_is_token(name, CT_TYPE)))
- {
- const char *psp = (pav & IARF_ADD) ? " " : "";
- const char *fsp = (av & IARF_ADD) ? " " : "";
-
- pc->str.append(psp);
- pc->str.append("(");
- pc->str.append(fsp);
- pc->str.append(name->str);
- pc->str.append(fsp);
- pc->str.append(")");
-
- set_chunk_type(pc, chunk_is_token(pc, CT_FUNC_WRAP) ? CT_FUNCTION : CT_TYPE);
-
- pc->orig_col_end = pc->orig_col + pc->len();
-
- chunk_del(opp);
- chunk_del(name);
- chunk_del(clp);
- }
-} // handle_wrap
-
-
-static void handle_proto_wrap(chunk_t *pc)
-{
- LOG_FUNC_ENTRY();
- chunk_t *opp = chunk_get_next_ncnnl(pc);
- chunk_t *name = chunk_get_next_ncnnl(opp);
- chunk_t *tmp = chunk_get_next_ncnnl(chunk_get_next_ncnnl(name));
- chunk_t *clp = chunk_skip_to_match(opp);
- chunk_t *cma = chunk_get_next_ncnnl(clp);
-
- if ( opp == nullptr
- || name == nullptr
- || tmp == nullptr
- || clp == nullptr
- || cma == nullptr
- || ( chunk_is_not_token(name, CT_WORD)
- && chunk_is_not_token(name, CT_TYPE))
- || chunk_is_not_token(opp, CT_PAREN_OPEN))
- {
- return;
- }
-
- if (chunk_is_token(cma, CT_SEMICOLON))
- {
- set_chunk_type(pc, CT_FUNC_PROTO);
- }
- else if (chunk_is_token(cma, CT_BRACE_OPEN))
- {
- LOG_FMT(LFCN, "%s(%d): (19) SET TO CT_FUNC_DEF: orig_line is %zu, orig_col is %zu, text() '%s'\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text());
- set_chunk_type(pc, CT_FUNC_DEF);
- }
- else
- {
- return;
- }
- set_chunk_parent(opp, pc->type);
- set_chunk_parent(clp, pc->type);
-
- set_chunk_parent(tmp, CT_PROTO_WRAP);
-
- if (chunk_is_token(tmp, CT_PAREN_OPEN))
- {
- fix_fcn_def_params(tmp);
- }
- else
- {
- fix_fcn_def_params(opp);
- set_chunk_type(name, CT_WORD);
- }
- tmp = chunk_skip_to_match(tmp);
-
- if (tmp)
- {
- set_chunk_parent(tmp, CT_PROTO_WRAP);
- }
- // Mark return type (TODO: move to own function)
- tmp = pc;
-
- while ((tmp = chunk_get_prev_ncnnlni(tmp)) != nullptr) // Issue #2279
- {
- if ( !chunk_is_type(tmp)
- && chunk_is_not_token(tmp, CT_OPERATOR)
- && chunk_is_not_token(tmp, CT_WORD)
- && chunk_is_not_token(tmp, CT_ADDR))
- {
- break;
- }
- set_chunk_parent(tmp, pc->type);
- make_type(tmp);
- }
-} // handle_proto_wrap
-
-
-/**
- * Java assert statements are: "assert EXP1 [: EXP2] ;"
- * Mark the parent of the colon and semicolon
- */
-static void handle_java_assert(chunk_t *pc)
-{
- LOG_FUNC_ENTRY();
- bool did_colon = false;
- chunk_t *tmp = pc;
-
- while ((tmp = chunk_get_next(tmp)) != nullptr)
- {
- if (tmp->level == pc->level)
- {
- if ( !did_colon
- && chunk_is_token(tmp, CT_COLON))
- {
- did_colon = true;
- set_chunk_parent(tmp, pc->type);
- }
-
- if (chunk_is_token(tmp, CT_SEMICOLON))
- {
- set_chunk_parent(tmp, pc->type);
- break;
- }
- }
- }
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/combine.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/combine.h
deleted file mode 100644
index a34bf724..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/combine.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/**
- * @file combine.h
- * prototypes for combine.cpp
- *
- * @author Ben Gardner
- * @license GPL v2+
- */
-
-#ifndef COMBINE_H_INCLUDED
-#define COMBINE_H_INCLUDED
-
-#include "chunk_list.h"
-#include "uncrustify_types.h"
-
-
-/**
- * Change CT_INCDEC_AFTER + WORD to CT_INCDEC_BEFORE
- * Change number/word + CT_ADDR to CT_ARITH
- * Change number/word + CT_STAR to CT_ARITH
- * Change number/word + CT_NEG to CT_ARITH
- * Change word + ( to a CT_FUNCTION
- * Change struct/union/enum + CT_WORD => CT_TYPE
- * Force parens on return.
- *
- * TODO: This could be done earlier.
- *
- * Patterns detected:
- * STRUCT/ENUM/UNION + WORD :: WORD => TYPE
- * WORD + '(' :: WORD => FUNCTION
- */
-void fix_symbols(void);
-
-
-/**
- * Examines the whole file and changes CT_COLON to
- * CT_Q_COLON, CT_LABEL_COLON, or CT_CASE_COLON.
- * It also changes the CT_WORD before CT_LABEL_COLON into CT_LABEL.
- */
-void combine_labels(void);
-
-
-//! help function for mark_variable_definition...
-bool go_on(chunk_t *pc, chunk_t *start);
-
-
-//! Sets the parent for comments.
-void mark_comments(void);
-
-
-void make_type(chunk_t *pc);
-
-
-/**
- * Sets the parent of the open paren/brace/square/angle and the closing.
- * Note - it is assumed that pc really does point to an open item and the
- * close must be open + 1.
- *
- * @param start The open paren
- * @param parent The type to assign as the parent
- *
- * @return The chunk after the close paren
- */
-chunk_t *set_paren_parent(chunk_t *start, c_token_t parent);
-
-
-/**
- * This is called on every chunk.
- * First on all non-preprocessor chunks and then on each preprocessor chunk.
- * It does all the detection and classifying.
- * This is only called by fix_symbols.
- * The three parameters never get the value nullptr.
- * it is not necessary to test.
- */
-void do_symbol_check(chunk_t *prev, chunk_t *pc, chunk_t *next);
-
-
-#endif /* COMBINE_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/combine_fix_mark.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/combine_fix_mark.cpp
deleted file mode 100644
index 6213e509..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/combine_fix_mark.cpp
+++ /dev/null
@@ -1,2584 +0,0 @@
-/**
- * @file combine_fix_mark.cpp
- *
- * @author Guy Maurel
- * @license GPL v2+
- * extract fom combine.cpp
- */
-
-#include "combine_fix_mark.h"
-
-#include "combine_skip.h"
-#include "combine_tools.h"
-#include "flag_parens.h"
-#include "log_rules.h"
-
-constexpr static auto LCURRENT = LCOMBINE;
-
-
-void fix_casts(chunk_t *start)
-{
- LOG_FUNC_ENTRY();
- chunk_t *pc;
- chunk_t *prev;
- chunk_t *first;
- chunk_t *after;
- chunk_t *last = nullptr;
- chunk_t *paren_close;
- const char *verb = "likely";
- const char *detail = "";
- size_t count = 0;
- int word_count = 0;
- bool nope;
- bool doubtful_cast = false;
-
-
- LOG_FMT(LCASTS, "%s(%d): start->text() is '%s', orig_line is %zu, orig_col is %zu\n",
- __func__, __LINE__, start->text(), start->orig_line, start->orig_col);
-
- prev = chunk_get_prev_ncnnlni(start); // Issue #2279
-
- if (prev == nullptr)
- {
- return;
- }
-
- if (chunk_is_token(prev, CT_PP_DEFINED))
- {
- LOG_FMT(LCASTS, "%s(%d): -- not a cast - after defined\n",
- __func__, __LINE__);
- return;
- }
-
- if (chunk_is_token(prev, CT_ANGLE_CLOSE))
- {
- LOG_FMT(LCASTS, "%s(%d): -- not a cast - after > (template)\n",
- __func__, __LINE__);
- return;
- }
- // Make sure there is only WORD, TYPE, and '*' or '^' before the close paren
- pc = chunk_get_next_ncnnl(start);
- first = pc;
-
- while ( pc != nullptr
- && ( chunk_is_type(pc)
- || chunk_is_token(pc, CT_WORD)
- || chunk_is_token(pc, CT_QUALIFIER)
- || chunk_is_token(pc, CT_DC_MEMBER)
- || chunk_is_token(pc, CT_PP)
- || chunk_is_token(pc, CT_STAR)
- || chunk_is_token(pc, CT_QUESTION)
- || chunk_is_token(pc, CT_CARET)
- || chunk_is_token(pc, CT_TSQUARE)
- || ( ( chunk_is_token(pc, CT_ANGLE_OPEN)
- || chunk_is_token(pc, CT_ANGLE_CLOSE))
- && language_is_set(LANG_OC | LANG_JAVA))
- || ( ( chunk_is_token(pc, CT_QUESTION)
- || chunk_is_token(pc, CT_COMMA)
- || chunk_is_token(pc, CT_MEMBER))
- && language_is_set(LANG_JAVA))
- || chunk_is_token(pc, CT_AMP)))
- {
- LOG_FMT(LCASTS, "%s(%d): pc->text() is '%s', orig_line is %zu, orig_col is %zu, type is %s\n",
- __func__, __LINE__, pc->text(), pc->orig_line, pc->orig_col, get_token_name(pc->type));
-
- if ( chunk_is_token(pc, CT_WORD)
- || ( chunk_is_token(last, CT_ANGLE_CLOSE)
- && chunk_is_token(pc, CT_DC_MEMBER)))
- {
- word_count++;
- }
- else if ( chunk_is_token(pc, CT_DC_MEMBER)
- || chunk_is_token(pc, CT_MEMBER)
- || chunk_is_token(pc, CT_PP))
- {
- // might be negativ, such as with:
- // a = val + (CFoo::bar_t)7;
- word_count--;
- }
- last = pc;
- pc = chunk_get_next_ncnnl(pc);
- count++;
- }
-
- if ( pc == nullptr
- || chunk_is_not_token(pc, CT_PAREN_CLOSE)
- || chunk_is_token(prev, CT_OC_CLASS))
- {
- LOG_FMT(LCASTS, "%s(%d): -- not a cast, hit type is %s\n",
- __func__, __LINE__, pc == nullptr ? "NULL" : get_token_name(pc->type));
- return;
- }
-
- if (word_count > 1)
- {
- LOG_FMT(LCASTS, "%s(%d): -- too many words: %d\n",
- __func__, __LINE__, word_count);
- return;
- }
- paren_close = pc;
-
- // If last is a type or star/caret, we have a cast for sure
- if ( chunk_is_token(last, CT_STAR)
- || chunk_is_token(last, CT_CARET)
- || chunk_is_token(last, CT_PTR_TYPE)
- || chunk_is_token(last, CT_TYPE)
- || ( chunk_is_token(last, CT_ANGLE_CLOSE)
- && language_is_set(LANG_OC | LANG_JAVA)))
- {
- verb = "for sure";
- }
- else if (count == 1)
- {
- /*
- * We are on a potential cast of the form "(word)".
- * We don't know if the word is a type. So lets guess based on some
- * simple rules:
- * - if all caps, likely a type
- * - if it ends in _t, likely a type
- * - if it's objective-c and the type is id, likely valid
- */
- verb = "guessed";
-
- if ( (last->len() > 3)
- && (last->str[last->len() - 2] == '_')
- && (last->str[last->len() - 1] == 't'))
- {
- detail = " -- '_t'";
- }
- else if (is_ucase_str(last->text(), last->len()))
- {
- detail = " -- upper case";
- }
- else if ( language_is_set(LANG_OC)
- && chunk_is_str(last, "id", 2))
- {
- detail = " -- Objective-C id";
- }
- else
- {
- // If we can't tell for sure whether this is a cast, decide against it
- detail = " -- mixed case";
- doubtful_cast = true;
- }
- /*
- * If the next item is a * or &, the next item after that can't be a
- * number or string.
- *
- * If the next item is a +, the next item has to be a number.
- *
- * If the next item is a -, the next item can't be a string.
- *
- * For this to be a cast, the close paren must be followed by:
- * - constant (number or string)
- * - paren open
- * - word
- *
- * Find the next non-open paren item.
- */
- pc = chunk_get_next_ncnnl(paren_close);
- after = pc;
-
- do
- {
- after = chunk_get_next_ncnnl(after);
- } while (chunk_is_token(after, CT_PAREN_OPEN));
-
- if (after == nullptr)
- {
- LOG_FMT(LCASTS, "%s(%d): -- not a cast - hit NULL\n",
- __func__, __LINE__);
- return;
- }
- nope = false;
-
- if (chunk_is_ptr_operator(pc))
- {
- // star (*) and address (&) are ambiguous
- if ( chunk_is_token(after, CT_NUMBER_FP)
- || chunk_is_token(after, CT_NUMBER)
- || chunk_is_token(after, CT_STRING)
- || doubtful_cast)
- {
- nope = true;
- }
- }
- else if (chunk_is_token(pc, CT_MINUS))
- {
- // (UINT8)-1 or (foo)-1 or (FOO)-'a'
- if ( chunk_is_token(after, CT_STRING)
- || doubtful_cast)
- {
- nope = true;
- }
- }
- else if (chunk_is_token(pc, CT_PLUS))
- {
- // (UINT8)+1 or (foo)+1
- if ( ( chunk_is_not_token(after, CT_NUMBER)
- && chunk_is_not_token(after, CT_NUMBER_FP))
- || doubtful_cast)
- {
- nope = true;
- }
- }
- else if ( chunk_is_not_token(pc, CT_NUMBER_FP)
- && chunk_is_not_token(pc, CT_NUMBER)
- && chunk_is_not_token(pc, CT_WORD)
- && chunk_is_not_token(pc, CT_THIS)
- && chunk_is_not_token(pc, CT_TYPE)
- && chunk_is_not_token(pc, CT_PAREN_OPEN)
- && chunk_is_not_token(pc, CT_STRING)
- && chunk_is_not_token(pc, CT_DECLTYPE)
- && chunk_is_not_token(pc, CT_SIZEOF)
- && get_chunk_parent_type(pc) != CT_SIZEOF
- && chunk_is_not_token(pc, CT_FUNC_CALL)
- && chunk_is_not_token(pc, CT_FUNC_CALL_USER)
- && chunk_is_not_token(pc, CT_FUNCTION)
- && chunk_is_not_token(pc, CT_BRACE_OPEN)
- && (!( chunk_is_token(pc, CT_SQUARE_OPEN)
- && language_is_set(LANG_OC))))
- {
- LOG_FMT(LCASTS, "%s(%d): -- not a cast - followed by text() '%s', type is %s\n",
- __func__, __LINE__, pc->text(), get_token_name(pc->type));
- return;
- }
-
- if (nope)
- {
- LOG_FMT(LCASTS, "%s(%d): -- not a cast - text() '%s' followed by type %s\n",
- __func__, __LINE__, pc->text(), get_token_name(after->type));
- return;
- }
- }
- // if the 'cast' is followed by a semicolon, comma, bool or close parenthesis, it isn't
- pc = chunk_get_next_ncnnl(paren_close);
-
- if (pc == nullptr)
- {
- return;
- }
-
- if ( chunk_is_semicolon(pc)
- || chunk_is_token(pc, CT_COMMA)
- || chunk_is_token(pc, CT_BOOL) // Issue #2151
- || chunk_is_paren_close(pc))
- {
- LOG_FMT(LCASTS, "%s(%d): -- not a cast - followed by type %s\n",
- __func__, __LINE__, get_token_name(pc->type));
- return;
- }
- set_chunk_parent(start, CT_C_CAST);
- set_chunk_parent(paren_close, CT_C_CAST);
-
- LOG_FMT(LCASTS, "%s(%d): -- %s c-cast: (",
- __func__, __LINE__, verb);
-
- for (pc = first;
- pc != nullptr && pc != paren_close;
- pc = chunk_get_next_ncnnl(pc))
- {
- set_chunk_parent(pc, CT_C_CAST);
- make_type(pc);
- LOG_FMT(LCASTS, " %s", pc->text());
- }
-
- LOG_FMT(LCASTS, " )%s\n", detail);
-
- // Mark the next item as an expression start
- pc = chunk_get_next_ncnnl(paren_close);
-
- if (pc != nullptr)
- {
- chunk_flags_set(pc, PCF_EXPR_START);
-
- if (chunk_is_opening_brace(pc))
- {
- set_paren_parent(pc, get_chunk_parent_type(start));
- }
- }
-} // fix_casts
-
-
-void fix_fcn_def_params(chunk_t *start)
-{
- LOG_FUNC_ENTRY();
-
- if (start == nullptr)
- {
- return;
- }
- LOG_FMT(LFCNP, "%s(%d): text() '%s', type is %s, on orig_line %zu, level is %zu\n",
- __func__, __LINE__, start->text(), get_token_name(start->type), start->orig_line, start->level);
-
- while ( start != nullptr
- && !chunk_is_paren_open(start))
- {
- start = chunk_get_next_ncnnl(start);
- }
-
- if (start == nullptr)// Coverity CID 76003, 1100782
- {
- return;
- }
- // ensure start chunk holds a single '(' character
- assert( (start->len() == 1)
- && (start->str[0] == '('));
-
- ChunkStack cs;
- size_t level = start->level + 1;
- chunk_t *pc = start;
-
- while ((pc = chunk_get_next_ncnnl(pc)) != nullptr)
- {
- if ( ( (start->len() == 1)
- && (start->str[0] == ')'))
- || pc->level < level)
- {
- LOG_FMT(LFCNP, "%s(%d): bailed on text() '%s', on orig_line %zu\n",
- __func__, __LINE__, pc->text(), pc->orig_line);
- break;
- }
- LOG_FMT(LFCNP, "%s(%d): %s, text() '%s' on orig_line %zu, level %zu\n",
- __func__, __LINE__, (pc->level > level) ? "skipping" : "looking at",
- pc->text(), pc->orig_line, pc->level);
-
- if (pc->level > level)
- {
- continue;
- }
-
- if ( chunk_is_star(pc)
- || chunk_is_msref(pc)
- || chunk_is_nullable(pc))
- {
- set_chunk_type(pc, CT_PTR_TYPE);
- cs.Push_Back(pc);
- }
- else if ( chunk_is_token(pc, CT_AMP)
- || ( language_is_set(LANG_CPP)
- && chunk_is_str(pc, "&&", 2)))
- {
- set_chunk_type(pc, CT_BYREF);
- cs.Push_Back(pc);
- }
- else if (chunk_is_token(pc, CT_TYPE_WRAP))
- {
- cs.Push_Back(pc);
- }
- else if ( chunk_is_token(pc, CT_WORD)
- || chunk_is_token(pc, CT_TYPE))
- {
- cs.Push_Back(pc);
- }
- else if ( chunk_is_token(pc, CT_COMMA)
- || chunk_is_token(pc, CT_ASSIGN))
- {
- mark_variable_stack(cs, LFCNP);
-
- if (chunk_is_token(pc, CT_ASSIGN))
- {
- // Mark assignment for default param spacing
- set_chunk_parent(pc, CT_FUNC_PROTO);
- }
- }
- }
- mark_variable_stack(cs, LFCNP);
-} // fix_fcn_def_params
-
-
-void fix_type_cast(chunk_t *start)
-{
- LOG_FUNC_ENTRY();
- chunk_t *pc;
-
- pc = chunk_get_next_ncnnl(start);
-
- if ( pc == nullptr
- || chunk_is_not_token(pc, CT_ANGLE_OPEN))
- {
- return;
- }
-
- while ( ((pc = chunk_get_next_ncnnl(pc)) != nullptr)
- && pc->level >= start->level)
- {
- if ( pc->level == start->level
- && chunk_is_token(pc, CT_ANGLE_CLOSE))
- {
- pc = chunk_get_next_ncnnl(pc);
-
- if (pc == nullptr)
- {
- return;
- }
-
- if (chunk_is_str(pc, "(", 1))
- {
- set_paren_parent(pc, CT_TYPE_CAST);
- }
- return;
- }
- make_type(pc);
- }
-} // fix_type_cast
-
-
-void fix_typedef(chunk_t *start)
-{
- LOG_FUNC_ENTRY();
-
- if (start == nullptr)
- {
- return;
- }
- LOG_FMT(LTYPEDEF, "%s(%d): typedef @ orig_line %zu, orig_col %zu\n",
- __func__, __LINE__, start->orig_line, start->orig_col);
-
- chunk_t *the_type = nullptr;
- chunk_t *last_op = nullptr;
-
- /*
- * Mark everything in the typedef and scan for ")(", which makes it a
- * function type
- */
- for (chunk_t *next = chunk_get_next_ncnnl(start, scope_e::PREPROC)
- ; next != nullptr && next->level >= start->level
- ; next = chunk_get_next_ncnnl(next, scope_e::PREPROC))
- {
- chunk_flags_set(next, PCF_IN_TYPEDEF);
-
- if (start->level == next->level)
- {
- if (chunk_is_semicolon(next))
- {
- set_chunk_parent(next, CT_TYPEDEF);
- break;
- }
-
- if (chunk_is_token(next, CT_ATTRIBUTE))
- {
- break;
- }
-
- if ( language_is_set(LANG_D)
- && chunk_is_token(next, CT_ASSIGN))
- {
- set_chunk_parent(next, CT_TYPEDEF);
- break;
- }
- make_type(next);
-
- if (chunk_is_token(next, CT_TYPE))
- {
- the_type = next;
- }
- chunk_flags_clr(next, PCF_VAR_1ST_DEF);
-
- if (*next->str.c_str() == '(')
- {
- last_op = next;
- }
- }
- }
-
- // avoid interpreting typedef NS_ENUM (NSInteger, MyEnum) as a function def
- if ( last_op != nullptr
- && !( language_is_set(LANG_OC)
- && get_chunk_parent_type(last_op) == CT_ENUM))
- {
- flag_parens(last_op, PCF_NONE, CT_FPAREN_OPEN, CT_TYPEDEF, false);
- fix_fcn_def_params(last_op);
-
- the_type = chunk_get_prev_ncnnlni(last_op, scope_e::PREPROC); // Issue #2279
-
- if (the_type == nullptr)
- {
- return;
- }
- chunk_t *open_paren = nullptr;
-
- if (chunk_is_paren_close(the_type))
- {
- open_paren = chunk_skip_to_match_rev(the_type);
- mark_function_type(the_type);
- the_type = chunk_get_prev_ncnnlni(the_type, scope_e::PREPROC); // Issue #2279
-
- if (the_type == nullptr)
- {
- return;
- }
- }
- else
- {
- // must be: "typedef <return type>func(params);"
- set_chunk_type(the_type, CT_FUNC_TYPE);
- }
- set_chunk_parent(the_type, CT_TYPEDEF);
-
- LOG_FMT(LTYPEDEF, "%s(%d): fcn typedef text() '%s', on orig_line %zu\n",
- __func__, __LINE__, the_type->text(), the_type->orig_line);
-
- // If we are aligning on the open parenthesis, grab that instead
- log_rule_B("align_typedef_func");
-
- if ( open_paren != nullptr
- && options::align_typedef_func() == 1)
- {
- the_type = open_paren;
- }
- log_rule_B("align_typedef_func");
-
- if (options::align_typedef_func() != 0)
- {
- LOG_FMT(LTYPEDEF, "%s(%d): -- align anchor on text() %s, @ orig_line %zu, orig_col %zu\n",
- __func__, __LINE__, the_type->text(), the_type->orig_line, the_type->orig_col);
- chunk_flags_set(the_type, PCF_ANCHOR);
- }
- // already did everything we need to do
- return;
- }
- /*
- * Skip over enum/struct/union stuff, as we know it isn't a return type
- * for a function type
- */
- chunk_t *after = chunk_get_next_ncnnl(start, scope_e::PREPROC);
-
- if (after == nullptr)
- {
- return;
- }
-
- if ( chunk_is_not_token(after, CT_ENUM)
- && chunk_is_not_token(after, CT_STRUCT)
- && chunk_is_not_token(after, CT_UNION))
- {
- if (the_type != nullptr)
- {
- // We have just a regular typedef
- LOG_FMT(LTYPEDEF, "%s(%d): regular typedef text() %s, on orig_line %zu\n",
- __func__, __LINE__, the_type->text(), the_type->orig_line);
- chunk_flags_set(the_type, PCF_ANCHOR);
- }
- return;
- }
- // We have a struct/union/enum, next should be either a type or {
- chunk_t *next = chunk_get_next_ncnnl(after, scope_e::PREPROC);
-
- if (next == nullptr)
- {
- return;
- }
-
- if (chunk_is_token(next, CT_TYPE))
- {
- next = chunk_get_next_ncnnl(next, scope_e::PREPROC);
-
- if (next == nullptr)
- {
- return;
- }
- }
-
- if (chunk_is_token(next, CT_BRACE_OPEN))
- {
- // Skip to the closing brace
- chunk_t *br_c = chunk_get_next_type(next, CT_BRACE_CLOSE, next->level, scope_e::PREPROC);
-
- if (br_c != nullptr)
- {
- const c_token_t tag = after->type;
- set_chunk_parent(next, tag);
- set_chunk_parent(br_c, tag);
-
- if (tag == CT_ENUM)
- {
- flag_series(after, br_c, PCF_IN_ENUM);
- }
- else if (tag == CT_STRUCT)
- {
- flag_series(after, br_c, PCF_IN_STRUCT);
- }
- }
- }
-
- if (the_type != nullptr)
- {
- LOG_FMT(LTYPEDEF, "%s(%d): %s typedef text() %s, on orig_line %zu\n",
- __func__, __LINE__, get_token_name(after->type), the_type->text(),
- the_type->orig_line);
- chunk_flags_set(the_type, PCF_ANCHOR);
- }
-} // fix_typedef
-
-
-chunk_t *fix_variable_definition(chunk_t *start)
-{
- LOG_FUNC_ENTRY();
- chunk_t *pc = start;
- chunk_t *end;
- chunk_t *tmp_pc;
- ChunkStack cs;
- int idx;
- int ref_idx;
-
- LOG_FMT(LFVD, "%s(%d): start at pc->orig_line is %zu, pc->orig_col is %zu\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col);
-
- // Scan for words and types and stars oh my!
- while ( chunk_is_token(pc, CT_TYPE)
- || chunk_is_token(pc, CT_WORD)
- || chunk_is_token(pc, CT_QUALIFIER)
- || chunk_is_token(pc, CT_TYPENAME)
- || chunk_is_token(pc, CT_DC_MEMBER)
- || chunk_is_token(pc, CT_MEMBER)
- || chunk_is_token(pc, CT_PP) // Issue #3169
- || chunk_is_ptr_operator(pc))
- {
- LOG_FMT(LFVD, "%s(%d): 1:pc->text() '%s', type is %s\n",
- __func__, __LINE__, pc->text(), get_token_name(pc->type));
- cs.Push_Back(pc);
- pc = chunk_get_next_ncnnl(pc);
-
- if (pc == nullptr)
- {
- LOG_FMT(LFVD, "%s(%d): pc is nullptr\n", __func__, __LINE__);
- return(nullptr);
- }
- LOG_FMT(LFVD, "%s(%d): 2:pc->text() '%s', type is %s\n",
- __func__, __LINE__, pc->text(), get_token_name(pc->type));
-
- // Skip templates and attributes
- pc = skip_template_next(pc);
-
- if (pc == nullptr)
- {
- LOG_FMT(LFVD, "%s(%d): pc is nullptr\n", __func__, __LINE__);
- return(nullptr);
- }
- LOG_FMT(LFVD, "%s(%d): 3:pc->text() '%s', type is %s\n",
- __func__, __LINE__, pc->text(), get_token_name(pc->type));
-
- pc = skip_attribute_next(pc);
-
- if (pc == nullptr)
- {
- LOG_FMT(LFVD, "%s(%d): pc is nullptr\n", __func__, __LINE__);
- return(nullptr);
- }
- LOG_FMT(LFVD, "%s(%d): 4:pc->text() '%s', type is %s\n",
- __func__, __LINE__, pc->text(), get_token_name(pc->type));
-
- if (language_is_set(LANG_JAVA))
- {
- pc = skip_tsquare_next(pc);
- LOG_FMT(LFVD, "%s(%d): 5:pc->text() '%s', type is %s\n", __func__, __LINE__, pc->text(), get_token_name(pc->type));
- }
- }
- end = pc;
-
- if (end == nullptr)
- {
- LOG_FMT(LFVD, "%s(%d): end is nullptr\n", __func__, __LINE__);
- return(nullptr);
- }
- LOG_FMT(LFVD, "%s(%d): end->type is %s\n", __func__, __LINE__, get_token_name(end->type));
-
- if (chunk_is_token(end, CT_FUNC_CTOR_VAR)) // Issue #3010
- {
- return(end);
- }
-
- if ( cs.Len() == 1
- && chunk_is_token(end, CT_BRACE_OPEN)
- && get_chunk_parent_type(end) == CT_BRACED_INIT_LIST)
- {
- set_chunk_type(cs.Get(0)->m_pc, CT_TYPE);
- }
-
- // Function defs are handled elsewhere
- if ( (cs.Len() <= 1)
- || chunk_is_token(end, CT_FUNC_DEF)
- || chunk_is_token(end, CT_FUNC_PROTO)
- || chunk_is_token(end, CT_FUNC_CLASS_DEF)
- || chunk_is_token(end, CT_FUNC_CLASS_PROTO)
- || chunk_is_token(end, CT_OPERATOR))
- {
- return(skip_to_next_statement(end));
- }
- // ref_idx points to the alignable part of the variable definition
- ref_idx = cs.Len() - 1;
-
- // Check for the '::' stuff: "char *Engine::name"
- if ( (cs.Len() >= 3)
- && ( (cs.Get(cs.Len() - 2)->m_pc->type == CT_MEMBER)
- || (cs.Get(cs.Len() - 2)->m_pc->type == CT_DC_MEMBER)))
- {
- idx = cs.Len() - 2;
-
- while (idx > 0)
- {
- tmp_pc = cs.Get(idx)->m_pc;
-
- if ( chunk_is_not_token(tmp_pc, CT_DC_MEMBER)
- && chunk_is_not_token(tmp_pc, CT_MEMBER))
- {
- break;
- }
-
- if (idx == 0)
- {
- fprintf(stderr, "%s(%d): idx is ZERO, cannot be decremented, at line %zu, column %zu\n",
- __func__, __LINE__, tmp_pc->orig_line, tmp_pc->orig_col);
- log_flush(true);
- exit(EX_SOFTWARE);
- }
- idx--;
- tmp_pc = cs.Get(idx)->m_pc;
-
- if ( chunk_is_not_token(tmp_pc, CT_WORD)
- && chunk_is_not_token(tmp_pc, CT_TYPE))
- {
- break;
- }
- make_type(tmp_pc);
- idx--;
- }
- ref_idx = idx + 1;
- }
- tmp_pc = cs.Get(ref_idx)->m_pc;
- LOG_FMT(LFVD, "%s(%d): ref_idx(%d) is '%s'\n", __func__, __LINE__, ref_idx, tmp_pc->text());
-
- // No type part found!
- if (ref_idx <= 0)
- {
- return(skip_to_next_statement(end));
- }
- LOG_FMT(LFVD2, "%s(%d): orig_line is %zu, TYPE : ", __func__, __LINE__, start->orig_line);
-
- for (size_t idxForCs = 0; idxForCs < cs.Len() - 1; idxForCs++)
- {
- tmp_pc = cs.Get(idxForCs)->m_pc;
- make_type(tmp_pc);
- chunk_flags_set(tmp_pc, PCF_VAR_TYPE);
- LOG_FMT(LFVD2, " text() is '%s', type is %s", tmp_pc->text(), get_token_name(tmp_pc->type));
- }
-
- LOG_FMT(LFVD2, "\n");
-
- // OK we have two or more items, mark types up to the end.
- LOG_FMT(LFVD, "%s(%d): pc->orig_line is %zu, pc->orig_col is %zu\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col);
- mark_variable_definition(cs.Get(cs.Len() - 1)->m_pc);
-
- if (chunk_is_token(end, CT_COMMA))
- {
- return(chunk_get_next_ncnnl(end));
- }
- return(skip_to_next_statement(end));
-} // fix_variable_definition
-
-
-void mark_cpp_constructor(chunk_t *pc)
-{
- LOG_FUNC_ENTRY();
- chunk_t *paren_open;
- chunk_t *tmp;
- chunk_t *after;
- chunk_t *var;
- bool is_destr = false;
-
- tmp = chunk_get_prev_ncnnlni(pc); // Issue #2279
-
- if ( chunk_is_token(tmp, CT_INV)
- || chunk_is_token(tmp, CT_DESTRUCTOR))
- {
- set_chunk_type(tmp, CT_DESTRUCTOR);
- set_chunk_parent(pc, CT_DESTRUCTOR);
- is_destr = true;
- }
- LOG_FMT(LFTOR, "%s(%d): orig_line is %zu, orig_col is %zu, FOUND %sSTRUCTOR for '%s'[%s] prev '%s'[%s]\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col,
- is_destr ? "DE" : "CON",
- pc->text(), get_token_name(pc->type),
- tmp->text(), get_token_name(tmp->type));
-
- paren_open = skip_template_next(chunk_get_next_ncnnl(pc));
-
- if (!chunk_is_str(paren_open, "(", 1))
- {
- LOG_FMT(LWARN, "%s:%zu Expected '(', got: [%s]\n",
- cpd.filename.c_str(), paren_open->orig_line,
- paren_open->text());
- return;
- }
- // Mark parameters
- fix_fcn_def_params(paren_open);
- after = flag_parens(paren_open, PCF_IN_FCN_CALL, CT_FPAREN_OPEN, CT_FUNC_CLASS_PROTO, false);
-
- LOG_FMT(LFTOR, "%s(%d): text() '%s'\n", __func__, __LINE__, after->text());
-
- // Scan until the brace open, mark everything
- tmp = paren_open;
- bool hit_colon = false;
-
- while ( tmp != nullptr
- && ( chunk_is_not_token(tmp, CT_BRACE_OPEN)
- || tmp->level != paren_open->level)
- && !chunk_is_semicolon(tmp))
- {
- LOG_FMT(LFTOR, "%s(%d): tmp is '%s', orig_line is %zu, orig_col is %zu\n",
- __func__, __LINE__, tmp->text(), tmp->orig_line, tmp->orig_col);
- chunk_flags_set(tmp, PCF_IN_CONST_ARGS);
- tmp = chunk_get_next_ncnnl(tmp);
-
- if ( chunk_is_str(tmp, ":", 1)
- && tmp->level == paren_open->level)
- {
- set_chunk_type(tmp, CT_CONSTR_COLON);
- hit_colon = true;
- }
-
- if ( hit_colon
- && ( chunk_is_paren_open(tmp)
- || chunk_is_opening_brace(tmp))
- && tmp->level == paren_open->level)
- {
- var = skip_template_prev(chunk_get_prev_ncnnlni(tmp)); // Issue #2279
-
- if ( chunk_is_token(var, CT_TYPE)
- || chunk_is_token(var, CT_WORD))
- {
- set_chunk_type(var, CT_FUNC_CTOR_VAR);
- flag_parens(tmp, PCF_IN_FCN_CALL, CT_FPAREN_OPEN, CT_FUNC_CTOR_VAR, false);
- }
- }
- }
-
- if (chunk_is_token(tmp, CT_BRACE_OPEN))
- {
- set_paren_parent(paren_open, CT_FUNC_CLASS_DEF);
- set_paren_parent(tmp, CT_FUNC_CLASS_DEF);
- LOG_FMT(LFCN, "%s(%d): Marked '%s' as FUNC_CLASS_DEF on orig_line %zu, orig_col %zu\n",
- __func__, __LINE__, pc->text(), pc->orig_line, pc->orig_col);
- }
- else
- {
- set_chunk_parent(tmp, CT_FUNC_CLASS_PROTO);
- set_chunk_type(pc, CT_FUNC_CLASS_PROTO);
- LOG_FMT(LFCN, "%s(%d): Marked '%s' as FUNC_CLASS_PROTO on orig_line %zu, orig_col %zu\n",
- __func__, __LINE__, pc->text(), pc->orig_line, pc->orig_col);
- }
- tmp = chunk_get_prev_ncnnlni(pc); // Issue #2907
-
- if (chunk_is_token(tmp, CT_DESTRUCTOR))
- {
- set_chunk_parent(tmp, pc->type);
- tmp = chunk_get_prev_ncnnlni(tmp);
- }
-
- while (chunk_is_token(tmp, CT_QUALIFIER))
- {
- set_chunk_parent(tmp, pc->type);
- tmp = chunk_get_prev_ncnnlni(tmp);
- }
-} // mark_cpp_constructor
-
-
-void mark_cpp_lambda(chunk_t *square_open)
-{
- if ( chunk_is_token(square_open, CT_SQUARE_OPEN)
- && get_chunk_parent_type(square_open) == CT_CPP_LAMBDA)
- {
- auto *brace_close = chunk_get_next_type(square_open, CT_BRACE_CLOSE, square_open->level);
-
- if (get_chunk_parent_type(brace_close) == CT_CPP_LAMBDA)
- {
- for (auto *pc = square_open; pc != brace_close; pc = chunk_get_next_ncnnl(pc))
- {
- chunk_flags_set(pc, PCF_IN_LAMBDA);
- }
- }
- }
-} // mark_cpp_lambda
-
-
-void mark_define_expressions(void)
-{
- LOG_FUNC_ENTRY();
-
- bool in_define = false;
- bool first = true;
- chunk_t *pc = chunk_get_head();
- chunk_t *prev = pc;
-
- while (pc != nullptr)
- {
- if (!in_define)
- {
- if ( chunk_is_token(pc, CT_PP_DEFINE)
- || chunk_is_token(pc, CT_PP_IF)
- || chunk_is_token(pc, CT_PP_ELSE))
- {
- in_define = true;
- first = true;
- }
- }
- else
- {
- if ( !pc->flags.test(PCF_IN_PREPROC)
- || chunk_is_token(pc, CT_PREPROC))
- {
- in_define = false;
- }
- else
- {
- if ( chunk_is_not_token(pc, CT_MACRO)
- && ( first
- || chunk_is_token(prev, CT_PAREN_OPEN)
- || chunk_is_token(prev, CT_ARITH)
- || chunk_is_token(prev, CT_SHIFT)
- || chunk_is_token(prev, CT_CARET)
- || chunk_is_token(prev, CT_ASSIGN)
- || chunk_is_token(prev, CT_COMPARE)
- || chunk_is_token(prev, CT_RETURN)
- || chunk_is_token(prev, CT_GOTO)
- || chunk_is_token(prev, CT_CONTINUE)
- || chunk_is_token(prev, CT_FPAREN_OPEN)
- || chunk_is_token(prev, CT_SPAREN_OPEN)
- || chunk_is_token(prev, CT_BRACE_OPEN)
- || chunk_is_semicolon(prev)
- || chunk_is_token(prev, CT_COMMA)
- || chunk_is_token(prev, CT_COLON)
- || chunk_is_token(prev, CT_QUESTION)))
- {
- chunk_flags_set(pc, PCF_EXPR_START);
- first = false;
- }
- }
- }
- prev = pc;
- pc = chunk_get_next(pc);
- }
-} // mark_define_expressions
-
-
-void mark_exec_sql(chunk_t *pc)
-{
- LOG_FUNC_ENTRY();
- chunk_t *tmp;
-
- // Change CT_WORD to CT_SQL_WORD
- for (tmp = chunk_get_next(pc); tmp != nullptr; tmp = chunk_get_next(tmp))
- {
- set_chunk_parent(tmp, pc->type);
-
- if (chunk_is_token(tmp, CT_WORD))
- {
- set_chunk_type(tmp, CT_SQL_WORD);
- }
-
- if (chunk_is_token(tmp, CT_SEMICOLON))
- {
- break;
- }
- }
-
- if ( chunk_is_not_token(pc, CT_SQL_BEGIN)
- || tmp == nullptr
- || chunk_is_not_token(tmp, CT_SEMICOLON))
- {
- return;
- }
-
- for (tmp = chunk_get_next(tmp);
- tmp != nullptr && chunk_is_not_token(tmp, CT_SQL_END);
- tmp = chunk_get_next(tmp))
- {
- tmp->level++;
- }
-} // mark_exec_sql
-
-
-void mark_function_return_type(chunk_t *fname, chunk_t *start, c_token_t parent_type)
-{
- LOG_FUNC_ENTRY();
- chunk_t *pc = start;
-
- if (pc != nullptr)
- {
- // Step backwards from pc and mark the parent of the return type
- LOG_FMT(LFCNR, "%s(%d): (backwards) return type for '%s' @ orig_line is %zu, orig_col is %zu\n",
- __func__, __LINE__, fname->text(), fname->orig_line, fname->orig_col);
-
- chunk_t *first = pc;
-
- while (pc != nullptr)
- {
- LOG_FMT(LFCNR, "%s(%d): orig_line is %zu, orig_col is %zu, text() '%s', type is %s, ",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(), get_token_name(pc->type));
- log_pcf_flags(LFCNR, pc->flags);
-
- if (chunk_is_token(pc, CT_ANGLE_CLOSE))
- {
- pc = skip_template_prev(pc);
-
- if ( pc == nullptr
- || chunk_is_token(pc, CT_TEMPLATE))
- {
- //either expression is not complete or this is smth like 'template<T> void func()'
- // - we are not interested in 'template<T>' part
- break;
- }
- else
- {
- //this is smth like 'vector<int> func()' and 'pc' is currently on 'vector' - just proceed
- }
- }
-
- if ( ( !chunk_is_type(pc)
- && chunk_is_not_token(pc, CT_OPERATOR)
- && chunk_is_not_token(pc, CT_WORD)
- && chunk_is_not_token(pc, CT_ADDR))
- || pc->flags.test(PCF_IN_PREPROC))
- {
- break;
- }
-
- if (!chunk_is_ptr_operator(pc))
- {
- first = pc;
- }
- pc = chunk_get_prev_ncnnlni(pc); // Issue #2279
- }
- LOG_FMT(LFCNR, "%s(%d): marking returns...", __func__, __LINE__);
-
- // Changing words to types into tuple return types in CS.
- bool is_return_tuple = false;
-
- if ( chunk_is_token(pc, CT_PAREN_CLOSE)
- && !pc->flags.test(PCF_IN_PREPROC))
- {
- first = chunk_skip_to_match_rev(pc);
- is_return_tuple = true;
- }
- pc = first;
-
- while (pc != nullptr)
- {
- LOG_FMT(LFCNR, " text() '%s', type is %s", pc->text(), get_token_name(pc->type));
-
- if (parent_type != CT_NONE)
- {
- set_chunk_parent(pc, parent_type);
- }
- chunk_t *prev = chunk_get_prev_ncnnlni(pc); // Issue #2279
-
- if ( !is_return_tuple
- || chunk_is_not_token(pc, CT_WORD)
- || ( prev != nullptr
- && chunk_is_not_token(prev, CT_TYPE)))
- {
- make_type(pc);
- }
-
- if (pc == start)
- {
- break;
- }
- pc = chunk_get_next_ncnnl(pc);
-
- //template angles should keep parent type CT_TEMPLATE
- if (chunk_is_token(pc, CT_ANGLE_OPEN))
- {
- pc = chunk_get_next_type(pc, CT_ANGLE_CLOSE, pc->level);
-
- if (pc == start)
- {
- break;
- }
- pc = chunk_get_next_ncnnl(pc);
- }
- }
- LOG_FMT(LFCNR, "\n");
-
- // Back up and mark parent type on friend declarations
- if ( parent_type != CT_NONE
- && first
- && first->flags.test(PCF_IN_CLASS))
- {
- pc = chunk_get_prev_ncnnlni(first); // Issue #2279
-
- if (chunk_is_token(pc, CT_FRIEND))
- {
- LOG_FMT(LFCNR, "%s(%d): marking friend\n", __func__, __LINE__);
- set_chunk_parent(pc, parent_type);
- // A friend might be preceded by a template specification, as in:
- // template <...> friend type func(...);
- // If so, we need to mark that also
- pc = chunk_get_prev_ncnnlni(pc); // Issue #2279
-
- if (chunk_is_token(pc, CT_ANGLE_CLOSE))
- {
- pc = skip_template_prev(pc);
-
- if (chunk_is_token(pc, CT_TEMPLATE))
- {
- LOG_FMT(LFCNR, "%s(%d): marking friend template\n",
- __func__, __LINE__);
- set_chunk_parent(pc, parent_type);
- }
- }
- }
- }
- }
-} // mark_function_return_type
-
-
-void mark_function(chunk_t *pc)
-{
- LOG_FUNC_ENTRY();
-
- if (pc == nullptr)
- {
- return;
- }
- LOG_FMT(LFCN, "%s(%d): orig_line is %zu, orig_col is %zu, text() '%s'\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text());
- chunk_t *prev = chunk_get_prev_ncnnlni(pc); // Issue #2279
- chunk_t *next = chunk_get_next_ncnnl_in_pp(pc);
-
- if (next == nullptr)
- {
- return;
- }
- chunk_t *tmp;
- chunk_t *semi = nullptr;
- chunk_t *paren_open;
- chunk_t *paren_close;
-
- // Find out what is before the operator
- if (get_chunk_parent_type(pc) == CT_OPERATOR)
- {
- LOG_FMT(LFCN, "%s(%d): orig_line is %zu, orig_col is %zu, text() '%s",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text());
- log_pcf_flags(LGUY, pc->flags);
- chunk_t *pc_op = chunk_get_prev_type(pc, CT_OPERATOR, pc->level);
-
- if ( pc_op != nullptr
- && pc_op->flags.test(PCF_EXPR_START))
- {
- LOG_FMT(LFCN, "%s(%d): (4) SET TO CT_FUNC_CALL: orig_line is %zu, orig_col is %zu, text() '%s'\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text());
- set_chunk_type(pc, CT_FUNC_CALL);
- }
-
- if (language_is_set(LANG_CPP))
- {
- tmp = pc;
-
- while ((tmp = chunk_get_prev_ncnnlni(tmp)) != nullptr) // Issue #2279
- {
- if ( chunk_is_token(tmp, CT_BRACE_CLOSE)
- || chunk_is_token(tmp, CT_BRACE_OPEN) // Issue 575
- || chunk_is_token(tmp, CT_SEMICOLON))
- {
- break;
- }
-
- if ( chunk_is_paren_open(tmp)
- && !pc->flags.test(PCF_IN_PREPROC)) // Issue #2703
- {
- LOG_FMT(LFCN, "%s(%d): orig_line is %zu, orig_col is %zu, text() '%s'\n",
- __func__, __LINE__, tmp->orig_line, tmp->orig_col, tmp->text());
- LOG_FMT(LFCN, "%s(%d): (5) SET TO CT_FUNC_CALL: orig_line is %zu, orig_col is %zu, text() '%s'\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text());
- set_chunk_type(pc, CT_FUNC_CALL);
- break;
- }
-
- if (chunk_is_token(tmp, CT_ASSIGN))
- {
- LOG_FMT(LFCN, "%s(%d): (6) SET TO CT_FUNC_CALL: orig_line is %zu, orig_col is %zu, text() '%s'\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text());
- set_chunk_type(pc, CT_FUNC_CALL);
- break;
- }
-
- if (chunk_is_token(tmp, CT_TEMPLATE))
- {
- LOG_FMT(LFCN, "%s(%d): (7) SET TO CT_FUNC_DEF: orig_line is %zu, orig_col is %zu, text() '%s'\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text());
- set_chunk_type(pc, CT_FUNC_DEF);
- break;
- }
-
- if (chunk_is_token(tmp, CT_BRACE_OPEN))
- {
- if (get_chunk_parent_type(tmp) == CT_FUNC_DEF)
- {
- LOG_FMT(LFCN, "%s(%d): (8) SET TO CT_FUNC_CALL: orig_line is %zu, orig_col is %zu, text() '%s'\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text());
- set_chunk_type(pc, CT_FUNC_CALL);
- }
-
- if ( get_chunk_parent_type(tmp) == CT_CLASS
- || get_chunk_parent_type(tmp) == CT_STRUCT)
- {
- LOG_FMT(LFCN, "%s(%d): (9) SET TO CT_FUNC_DEF: orig_line is %zu, orig_col is %zu, text() '%s'\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text());
- set_chunk_type(pc, CT_FUNC_DEF);
- }
- break;
- }
- }
-
- if ( tmp != nullptr
- && chunk_is_not_token(pc, CT_FUNC_CALL))
- {
- // Mark the return type
- while ( (tmp = chunk_get_next_ncnnl(tmp)) != pc
- && tmp != nullptr)
- {
- make_type(tmp); // Mark the return type
- }
- }
- }
- }
-
- if ( chunk_is_ptr_operator(next)
- || chunk_is_newline(next))
- {
- next = chunk_get_next_ncnnl_in_pp(next);
-
- if (next == nullptr)
- {
- return;
- }
- }
- LOG_FMT(LFCN, "%s(%d): orig_line is %zu, orig_col is %zu, text() '%s, type is %s, parent_type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(),
- get_token_name(pc->type), get_token_name(get_chunk_parent_type(pc)));
- LOG_FMT(LFCN, " level is %zu, brace_level is %zu, next->text() '%s', next->type is %s, next->level is %zu\n",
- pc->level, pc->brace_level,
- next->text(), get_token_name(next->type), next->level);
-
- if (pc->flags.test(PCF_IN_CONST_ARGS))
- {
- set_chunk_type(pc, CT_FUNC_CTOR_VAR);
- LOG_FMT(LFCN, "%s(%d): 1) Marked [%s] as FUNC_CTOR_VAR on line %zu col %zu\n",
- __func__, __LINE__, pc->text(), pc->orig_line, pc->orig_col);
- next = skip_template_next(next);
-
- if (next == nullptr)
- {
- return;
- }
- flag_parens(next, PCF_NONE, CT_FPAREN_OPEN, pc->type, true);
- return;
- }
- // Skip over any template and attribute madness
- next = skip_template_next(next);
-
- if (next == nullptr)
- {
- return;
- }
- next = skip_attribute_next(next);
-
- if (next == nullptr)
- {
- return;
- }
- // Find the open and close parenthesis
- paren_open = chunk_get_next_str(pc, "(", 1, pc->level);
- paren_close = chunk_get_next_str(paren_open, ")", 1, pc->level);
-
- if ( paren_open == nullptr
- || paren_close == nullptr)
- {
- LOG_FMT(LFCN, "%s(%d): No parens found for [%s] on orig_line %zu, orig_col %zu\n",
- __func__, __LINE__, pc->text(), pc->orig_line, pc->orig_col);
- return;
- }
- /*
- * This part detects either chained function calls or a function ptr definition.
- * MYTYPE (*func)(void);
- * mWriter( "class Clst_"c )( somestr.getText() )( " : Cluster {"c ).newline;
- *
- * For it to be a function variable def, there must be a '*' followed by a
- * single word.
- *
- * Otherwise, it must be chained function calls.
- */
- tmp = chunk_get_next_ncnnl(paren_close);
-
- if ( tmp != nullptr
- && chunk_is_str(tmp, "(", 1))
- {
- chunk_t *tmp1;
- chunk_t *tmp2;
- chunk_t *tmp3;
-
- // skip over any leading class/namespace in: "T(F::*A)();"
- tmp1 = chunk_get_next_ncnnl(next);
-
- while (tmp1 != nullptr)
- {
- tmp2 = chunk_get_next_ncnnl(tmp1);
-
- if ( !chunk_is_word(tmp1)
- || chunk_is_not_token(tmp2, CT_DC_MEMBER))
- {
- break;
- }
- tmp1 = chunk_get_next_ncnnl(tmp2);
- }
- tmp2 = chunk_get_next_ncnnl(tmp1);
-
- if (chunk_is_str(tmp2, ")", 1))
- {
- tmp3 = tmp2;
- tmp2 = nullptr;
- }
- else
- {
- tmp3 = chunk_get_next_ncnnl(tmp2);
- }
- tmp3 = chunk_get_next_ssq(tmp3);
-
- if ( chunk_is_str(tmp3, ")", 1)
- && ( chunk_is_star(tmp1)
- || chunk_is_msref(tmp1)
- || ( language_is_set(LANG_OC)
- && chunk_is_token(tmp1, CT_CARET)))
- && ( tmp2 == nullptr
- || chunk_is_token(tmp2, CT_WORD)))
- {
- if (tmp2)
- {
- LOG_FMT(LFCN, "%s(%d): orig_line is %zu, orig_col is %zu, function variable '%s', changing '%s' into a type\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, tmp2->text(), pc->text());
- set_chunk_type(tmp2, CT_FUNC_VAR);
- flag_parens(paren_open, PCF_NONE, CT_PAREN_OPEN, CT_FUNC_VAR, false);
-
- LOG_FMT(LFCN, "%s(%d): paren open @ orig_line %zu, orig_col %zu\n",
- __func__, __LINE__, paren_open->orig_line, paren_open->orig_col);
- }
- else
- {
- LOG_FMT(LFCN, "%s(%d): orig_line is %zu, orig_col is %zu, function type, changing '%s' into a type\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text());
-
- if (tmp2)
- {
- set_chunk_type(tmp2, CT_FUNC_TYPE);
- }
- flag_parens(paren_open, PCF_NONE, CT_PAREN_OPEN, CT_FUNC_TYPE, false);
- }
- set_chunk_type(pc, CT_TYPE);
- set_chunk_type(tmp1, CT_PTR_TYPE);
- chunk_flags_clr(pc, PCF_VAR_1ST_DEF);
-
- if (tmp2 != nullptr)
- {
- chunk_flags_set(tmp2, PCF_VAR_1ST_DEF);
- }
- flag_parens(tmp, PCF_NONE, CT_FPAREN_OPEN, CT_FUNC_PROTO, false);
- fix_fcn_def_params(tmp);
- return;
- }
- LOG_FMT(LFCN, "%s(%d): chained function calls? text() is '%s', orig_line is %zu, orig_col is %zu\n",
- __func__, __LINE__, pc->text(), pc->orig_line, pc->orig_col);
- }
-
- // Assume it is a function call if not already labeled
- if (chunk_is_token(pc, CT_FUNCTION))
- {
- LOG_FMT(LFCN, "%s(%d): examine: text() is '%s', orig_line is %zu, orig_col is %zu, type is %s\n",
- __func__, __LINE__, pc->text(), pc->orig_line, pc->orig_col, get_token_name(pc->type));
- // look for an assigment. Issue #575
- chunk_t *temp = chunk_get_next_type(pc, CT_ASSIGN, pc->level);
-
- if (temp != nullptr)
- {
- LOG_FMT(LFCN, "%s(%d): assigment found, orig_line is %zu, orig_col is %zu, text() '%s'\n",
- __func__, __LINE__, temp->orig_line, temp->orig_col, temp->text());
- LOG_FMT(LFCN, "%s(%d): (10) SET TO CT_FUNC_CALL: orig_line is %zu, orig_col is %zu, text() '%s'",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text());
- set_chunk_type(pc, CT_FUNC_CALL);
- }
- else
- {
- LOG_FMT(LFCN, "%s(%d): (11) SET TO %s: orig_line is %zu, orig_col is %zu, text() '%s'",
- __func__, __LINE__, (get_chunk_parent_type(pc) == CT_OPERATOR) ? "CT_FUNC_DEF" : "CT_FUNC_CALL",
- pc->orig_line, pc->orig_col, pc->text());
- set_chunk_type(pc, (get_chunk_parent_type(pc) == CT_OPERATOR) ? CT_FUNC_DEF : CT_FUNC_CALL);
- }
- }
- LOG_FMT(LFCN, "%s(%d): Check for C++ function def, text() is '%s', orig_line is %zu, orig_col is %zu, type is %s\n",
- __func__, __LINE__, pc->text(), pc->orig_line, pc->orig_col, get_token_name(pc->type));
-
- if (prev != nullptr)
- {
- LOG_FMT(LFCN, "%s(%d): prev->text() is '%s', orig_line is %zu, orig_col is %zu, type is %s\n",
- __func__, __LINE__, prev->text(), prev->orig_line, prev->orig_col, get_token_name(prev->type));
- }
-
- // Check for C++ function def
- if ( chunk_is_token(pc, CT_FUNC_CLASS_DEF)
- || ( prev != nullptr
- && ( chunk_is_token(prev, CT_INV)
- || chunk_is_token(prev, CT_DC_MEMBER))))
- {
- chunk_t *destr = nullptr;
-
- if (chunk_is_token(prev, CT_INV))
- {
- // TODO: do we care that this is the destructor?
- set_chunk_type(prev, CT_DESTRUCTOR);
- set_chunk_type(pc, CT_FUNC_CLASS_DEF);
-
- set_chunk_parent(pc, CT_DESTRUCTOR);
-
- destr = prev;
- // Point to the item previous to the class name
- prev = chunk_get_prev_ncnnlnp(prev);
- }
-
- if (chunk_is_token(prev, CT_DC_MEMBER))
- {
- prev = chunk_get_prev_ncnnlnp(prev);
-
- if (prev)
- {
- LOG_FMT(LFCN, "%s(%d): prev->text() is '%s', orig_line is %zu, orig_col is %zu, type is %s\n",
- __func__, __LINE__, prev->text(), prev->orig_line, prev->orig_col,
- get_token_name(prev->type));
- prev = skip_template_prev(prev);
- LOG_FMT(LFCN, "%s(%d): prev->text() is '%s', orig_line is %zu, orig_col is %zu, type is %s\n",
- __func__, __LINE__, prev->text(), prev->orig_line, prev->orig_col,
- get_token_name(prev->type));
- prev = skip_attribute_prev(prev);
- LOG_FMT(LFCN, "%s(%d): prev->text() is '%s', orig_line is %zu, orig_col is %zu, type is %s\n",
- __func__, __LINE__, prev->text(), prev->orig_line, prev->orig_col,
- get_token_name(prev->type));
- }
-
- if ( chunk_is_token(prev, CT_WORD)
- || chunk_is_token(prev, CT_TYPE))
- {
- if (pc->str.equals(prev->str))
- {
- LOG_FMT(LFCN, "%s(%d): pc->text() is '%s', orig_line is %zu, orig_col is %zu, type is %s\n",
- __func__, __LINE__, pc->text(), pc->orig_line, pc->orig_col,
- get_token_name(prev->type));
- set_chunk_type(pc, CT_FUNC_CLASS_DEF);
- LOG_FMT(LFCN, "%s(%d): orig_line is %zu, orig_col is %zu - FOUND %sSTRUCTOR for '%s', type is %s\n",
- __func__, __LINE__,
- prev->orig_line, prev->orig_col,
- (destr != nullptr) ? "DE" : "CON",
- prev->text(), get_token_name(prev->type));
-
- mark_cpp_constructor(pc);
- return;
- }
- // Point to the item previous to the class name
- prev = chunk_get_prev_ncnnlnp(prev);
- }
- }
- }
-
- /*
- * Determine if this is a function call or a function def/proto
- * We check for level==1 to allow the case that a function prototype is
- * wrapped in a macro: "MACRO(void foo(void));"
- */
- if ( chunk_is_token(pc, CT_FUNC_CALL)
- && ( pc->level == pc->brace_level
- || pc->level == 1)
- && !pc->flags.test(PCF_IN_ARRAY_ASSIGN))
- {
- bool isa_def = false;
- bool hit_star = false;
- LOG_FMT(LFCN, "%s(%d): pc->text() is '%s', orig_line is %zu, orig_col is %zu, type is %s\n",
- __func__, __LINE__, pc->text(), pc->orig_line, pc->orig_col,
- get_token_name(pc->type));
-
- if (prev == nullptr)
- {
- LOG_FMT(LFCN, "%s(%d): Checking func call: prev is NULL\n",
- __func__, __LINE__);
- }
- else
- {
- LOG_FMT(LFCN, "%s(%d): Checking func call: prev->text() '%s', prev->type is %s\n",
- __func__, __LINE__, prev->text(), get_token_name(prev->type));
- }
- // if (!chunk_ends_type(prev))
- // {
- // goto bad_ret_type;
- // }
-
- /*
- * REVISIT:
- * a function def can only occur at brace level, but not inside an
- * assignment, structure, enum, or union.
- * The close paren must be followed by an open brace, with an optional
- * qualifier (const) in between.
- * There can be all sorts of template stuff and/or '[]' in the type.
- * This hack mostly checks that.
- *
- * Examples:
- * foo->bar(maid); -- fcn call
- * FOO * bar(); -- fcn proto or class variable
- * FOO foo(); -- fcn proto or class variable
- * FOO foo(1); -- class variable
- * a = FOO * bar(); -- fcn call
- * a.y = foo() * bar(); -- fcn call
- * static const char * const fizz(); -- fcn def
- */
- while (prev != nullptr)
- {
- LOG_FMT(LFCN, "%s(%d): next step with: prev->orig_line is %zu, orig_col is %zu, text() '%s'\n",
- __func__, __LINE__, prev->orig_line, prev->orig_col, prev->text());
-
- if (get_chunk_parent_type(pc) == CT_FIXED)
- {
- isa_def = true;
- }
-
- if (prev->flags.test(PCF_IN_PREPROC))
- {
- prev = chunk_get_prev_ncnnlnp(prev);
- continue;
- }
-
- // Some code slips an attribute between the type and function
- if ( chunk_is_token(prev, CT_FPAREN_CLOSE)
- && get_chunk_parent_type(prev) == CT_ATTRIBUTE)
- {
- prev = skip_attribute_prev(prev);
- continue;
- }
-
- // skip const(TYPE)
- if ( chunk_is_token(prev, CT_PAREN_CLOSE)
- && get_chunk_parent_type(prev) == CT_D_CAST)
- {
- LOG_FMT(LFCN, "%s(%d): --> For sure a prototype or definition\n",
- __func__, __LINE__);
- isa_def = true;
- break;
- }
-
- if (get_chunk_parent_type(prev) == CT_DECLSPEC) // Issue 1289
- {
- prev = chunk_skip_to_match_rev(prev);
- prev = chunk_get_prev(prev);
-
- if (chunk_is_token(prev, CT_DECLSPEC))
- {
- prev = chunk_get_prev(prev);
- }
- }
-
- // if it was determined that this could be a function definition
- // but one of the preceding tokens is a CT_MEMBER than this is not a
- // fcn def, issue #1466
- if ( isa_def
- && chunk_is_token(prev, CT_MEMBER))
- {
- isa_def = false;
- }
-
- // get first chunk before: A::B::pc | this.B.pc | this->B->pc
- if ( chunk_is_token(prev, CT_DC_MEMBER)
- || chunk_is_token(prev, CT_MEMBER))
- {
- while ( chunk_is_token(prev, CT_DC_MEMBER)
- || chunk_is_token(prev, CT_MEMBER))
- {
- prev = chunk_get_prev_ncnnlnp(prev);
-
- if ( prev == nullptr
- || ( chunk_is_not_token(prev, CT_WORD)
- && chunk_is_not_token(prev, CT_TYPE)
- && chunk_is_not_token(prev, CT_THIS)))
- {
- LOG_FMT(LFCN, "%s(%d): --? skipped MEMBER and landed on %s\n",
- __func__, __LINE__, (prev == nullptr) ? "<null>" : get_token_name(prev->type));
- break;
- }
- LOG_FMT(LFCN, "%s(%d): <skip> '%s'\n",
- __func__, __LINE__, prev->text());
-
- // Issue #1112
- // clarification: this will skip the CT_WORD, CT_TYPE or CT_THIS landing on either
- // another CT_DC_MEMBER or CT_MEMBER or a token that indicates the context of the
- // token in question; therefore, exit loop when not a CT_DC_MEMBER or CT_MEMBER
- prev = chunk_get_prev_ncnnlnp(prev);
-
- if (prev == nullptr)
- {
- LOG_FMT(LFCN, "%s(%d): prev is nullptr\n",
- __func__, __LINE__);
- }
- else
- {
- LOG_FMT(LFCN, "%s(%d): orig_line is %zu, orig_col is %zu, text() '%s'\n",
- __func__, __LINE__, prev->orig_line, prev->orig_col, prev->text());
- }
- }
-
- if (prev == nullptr)
- {
- break;
- }
- }
-
- // If we are on a TYPE or WORD, then this could be a proto or def
- if ( chunk_is_token(prev, CT_TYPE)
- || chunk_is_token(prev, CT_WORD))
- {
- if (!hit_star)
- {
- LOG_FMT(LFCN, "%s(%d): --> For sure a prototype or definition\n",
- __func__, __LINE__);
- isa_def = true;
- break;
- }
- chunk_t *prev_prev = chunk_get_prev_ncnnlnp(prev);
-
- if (!chunk_is_token(prev_prev, CT_QUESTION)) // Issue #1753
- {
- LOG_FMT(LFCN, "%s(%d): --> maybe a proto/def\n",
- __func__, __LINE__);
-
- LOG_FMT(LFCN, "%s(%d): prev is '%s', orig_line is %zu, orig_col is %zu, type is %s, parent_type is %s\n",
- __func__, __LINE__, prev->text(), prev->orig_line, prev->orig_col,
- get_token_name(prev->type), get_token_name(get_chunk_parent_type(prev)));
- log_pcf_flags(LFCN, pc->flags);
- isa_def = true;
- }
- }
-
- if (chunk_is_ptr_operator(prev))
- {
- hit_star = true;
- }
-
- if ( chunk_is_not_token(prev, CT_OPERATOR)
- && chunk_is_not_token(prev, CT_TSQUARE)
- && chunk_is_not_token(prev, CT_ANGLE_CLOSE)
- && chunk_is_not_token(prev, CT_QUALIFIER)
- && chunk_is_not_token(prev, CT_TYPE)
- && chunk_is_not_token(prev, CT_WORD)
- && !chunk_is_ptr_operator(prev))
- {
- LOG_FMT(LFCN, "%s(%d): --> Stopping on prev is '%s', orig_line is %zu, orig_col is %zu, type is %s\n",
- __func__, __LINE__, prev->text(), prev->orig_line, prev->orig_col, get_token_name(prev->type));
-
- // certain tokens are unlikely to precede a prototype or definition
- if ( chunk_is_token(prev, CT_ARITH)
- || chunk_is_token(prev, CT_SHIFT)
- || chunk_is_token(prev, CT_ASSIGN)
- || chunk_is_token(prev, CT_COMMA)
- || ( chunk_is_token(prev, CT_STRING)
- && get_chunk_parent_type(prev) != CT_EXTERN) // fixes issue 1259
- || chunk_is_token(prev, CT_STRING_MULTI)
- || chunk_is_token(prev, CT_NUMBER)
- || chunk_is_token(prev, CT_NUMBER_FP)
- || chunk_is_token(prev, CT_FPAREN_OPEN)) // issue #1464
- {
- isa_def = false;
- }
- break;
- }
-
- // Skip over template and attribute stuff
- if (chunk_is_token(prev, CT_ANGLE_CLOSE))
- {
- prev = skip_template_prev(prev);
- }
- else
- {
- prev = chunk_get_prev_ncnnlnp(prev);
- }
- }
- //LOG_FMT(LFCN, " -- stopped on %s [%s]\n",
- // prev->text(), get_token_name(prev->type));
-
- // Fixes issue #1634
- if (chunk_is_paren_close(prev))
- {
- chunk_t *preproc = chunk_get_next_ncnnl(prev);
-
- if (chunk_is_token(preproc, CT_PREPROC))
- {
- size_t pp_level = preproc->pp_level;
-
- if (chunk_is_token(chunk_get_next_ncnnl(preproc), CT_PP_ELSE))
- {
- do
- {
- preproc = chunk_get_prev_ncnnlni(preproc); // Issue #2279
-
- if (chunk_is_token(preproc, CT_PP_IF))
- {
- preproc = chunk_get_prev_ncnnlni(preproc); // Issue #2279
-
- if (preproc->pp_level == pp_level)
- {
- prev = chunk_get_prev_ncnnlnp(preproc);
- break;
- }
- }
- } while (preproc != nullptr);
- }
- }
- }
-
- if ( isa_def
- && prev != nullptr
- && ( ( chunk_is_paren_close(prev)
- && get_chunk_parent_type(prev) != CT_D_CAST
- && get_chunk_parent_type(prev) != CT_MACRO_OPEN // Issue #2726
- && get_chunk_parent_type(prev) != CT_MACRO_CLOSE)
- || chunk_is_token(prev, CT_ASSIGN)
- || chunk_is_token(prev, CT_RETURN)))
- {
- LOG_FMT(LFCN, "%s(%d): -- overriding DEF due to prev is '%s', type is %s\n",
- __func__, __LINE__, prev->text(), get_token_name(prev->type));
- isa_def = false;
- }
-
- // Fixes issue #1266, identification of a tuple return type in CS.
- if ( !isa_def
- && chunk_is_token(prev, CT_PAREN_CLOSE)
- && chunk_get_next_ncnnl(prev) == pc)
- {
- tmp = chunk_skip_to_match_rev(prev);
-
- while ( tmp != nullptr // Issue #2315
- && tmp != prev)
- {
- if ( chunk_is_token(tmp, CT_COMMA)
- && tmp->level == prev->level + 1)
- {
- LOG_FMT(LFCN, "%s(%d): -- overriding call due to tuple return type -- prev is '%s', type is %s\n",
- __func__, __LINE__, prev->text(), get_token_name(prev->type));
- isa_def = true;
- break;
- }
- tmp = chunk_get_next_ncnnl(tmp);
- }
- }
-
- if (isa_def)
- {
- LOG_FMT(LFCN, "%s(%d): pc is '%s', orig_line is %zu, orig_col is %zu, type is %s\n",
- __func__, __LINE__, pc->text(), pc->orig_line, pc->orig_col, get_token_name(pc->type));
- LOG_FMT(LFCN, "%s(%d): (12) SET TO CT_FUNC_DEF: orig_line is %zu, orig_col is %zu, text() '%s'\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text());
- set_chunk_type(pc, CT_FUNC_DEF);
-
- if (prev == nullptr)
- {
- prev = chunk_get_head();
- }
-
- for ( tmp = prev; (tmp != nullptr)
- && tmp != pc; tmp = chunk_get_next_ncnnlnp(tmp))
- {
- LOG_FMT(LFCN, "%s(%d): text() is '%s', type is %s\n",
- __func__, __LINE__, tmp->text(), get_token_name(tmp->type));
- make_type(tmp);
- }
- }
- }
-
- if (chunk_is_not_token(pc, CT_FUNC_DEF))
- {
- LOG_FMT(LFCN, "%s(%d): Detected type %s, text() is '%s', on orig_line %zu, orig_col %zu\n",
- __func__, __LINE__, get_token_name(pc->type),
- pc->text(), pc->orig_line, pc->orig_col);
-
- tmp = flag_parens(next, PCF_IN_FCN_CALL, CT_FPAREN_OPEN, CT_FUNC_CALL, false);
-
- if ( chunk_is_token(tmp, CT_BRACE_OPEN)
- && get_chunk_parent_type(tmp) != CT_DOUBLE_BRACE)
- {
- set_paren_parent(tmp, pc->type);
- }
- return;
- }
- /*
- * We have a function definition or prototype
- * Look for a semicolon or a brace open after the close parenthesis to figure
- * out whether this is a prototype or definition
- */
-
- // See if this is a prototype or implementation
-
- // FIXME: this doesn't take the old K&R parameter definitions into account
-
- // Scan tokens until we hit a brace open (def) or semicolon (proto)
- tmp = paren_close;
-
- while ((tmp = chunk_get_next_ncnnl(tmp)) != nullptr)
- {
- // Only care about brace or semicolon on the same level
- if (tmp->level < pc->level)
- {
- // No semicolon - guess that it is a prototype
- chunk_flags_clr(pc, PCF_VAR_1ST_DEF);
- set_chunk_type(pc, CT_FUNC_PROTO);
- break;
- }
- else if (tmp->level == pc->level)
- {
- if (chunk_is_token(tmp, CT_BRACE_OPEN))
- {
- // its a function def for sure
- break;
- }
- else if (chunk_is_semicolon(tmp))
- {
- // Set the parent for the semicolon for later
- semi = tmp;
- chunk_flags_clr(pc, PCF_VAR_1ST_DEF);
- set_chunk_type(pc, CT_FUNC_PROTO);
- LOG_FMT(LFCN, "%s(%d): 2) Marked text() is '%s', as FUNC_PROTO on orig_line %zu, orig_col %zu\n",
- __func__, __LINE__, pc->text(), pc->orig_line, pc->orig_col);
- break;
- }
- else if (chunk_is_token(pc, CT_COMMA))
- {
- set_chunk_type(pc, CT_FUNC_CTOR_VAR);
- LOG_FMT(LFCN, "%s(%d): 2) Marked text() is '%s', as FUNC_CTOR_VAR on orig_line %zu, orig_col %zu\n",
- __func__, __LINE__, pc->text(), pc->orig_line, pc->orig_col);
- break;
- }
- }
- }
-
- /*
- * C++ syntax is wacky. We need to check to see if a prototype is really a
- * variable definition with parameters passed into the constructor.
- * Unfortunately, without being able to accurately determine if an
- * identifier is a type (which would require us to more or less be a full
- * compiler), the only mostly reliable way to do so is to guess that it is
- * a constructor variable if inside a function body and scan the 'parameter
- * list' for items that are not allowed in a prototype. We search backwards
- * and checking the parent of the containing open braces. If the parent is a
- * class or namespace, then it probably is a prototype.
- */
- if ( language_is_set(LANG_CPP)
- && chunk_is_token(pc, CT_FUNC_PROTO)
- && get_chunk_parent_type(pc) != CT_OPERATOR)
- {
- LOG_FMT(LFPARAM, "%s(%d):", __func__, __LINE__);
- LOG_FMT(LFPARAM, " checking '%s' for constructor variable %s %s\n",
- pc->text(),
- get_token_name(paren_open->type),
- get_token_name(paren_close->type));
-
- /*
- * Check the token at the start of the statement. If it's 'extern', we
- * definitely have a function prototype.
- */
- tmp = pc;
-
- while ( tmp != nullptr
- && !tmp->flags.test(PCF_STMT_START))
- {
- tmp = chunk_get_prev_ncnnlni(tmp); // Issue #2279
- }
- const bool is_extern = ( tmp != nullptr
- && tmp->str.equals("extern"));
-
- /*
- * Scan the parameters looking for:
- * - constant strings
- * - numbers
- * - non-type fields
- * - function calls
- */
- chunk_t *ref = chunk_get_next_ncnnl(paren_open);
- chunk_t *tmp2;
- bool is_param = true;
- tmp = ref;
-
- while (tmp != paren_close)
- {
- tmp2 = chunk_get_next_ncnnl(tmp);
-
- if ( chunk_is_token(tmp, CT_COMMA)
- && (tmp->level == (paren_open->level + 1)))
- {
- if (!can_be_full_param(ref, tmp))
- {
- is_param = false;
- break;
- }
- ref = tmp2;
- }
- tmp = tmp2;
- }
-
- if ( !is_extern
- && is_param
- && ref != tmp)
- {
- if (!can_be_full_param(ref, tmp))
- {
- is_param = false;
- }
- }
-
- if ( !is_extern
- && !is_param)
- {
- set_chunk_type(pc, CT_FUNC_CTOR_VAR);
- LOG_FMT(LFCN, "%s(%d): 3) Marked text() '%s' as FUNC_CTOR_VAR on orig_line %zu, orig_col %zu\n",
- __func__, __LINE__, pc->text(), pc->orig_line, pc->orig_col);
- }
- else if (pc->brace_level > 0)
- {
- chunk_t *br_open = chunk_get_prev_type(pc, CT_BRACE_OPEN, pc->brace_level - 1);
-
- if ( br_open != nullptr
- && get_chunk_parent_type(br_open) != CT_EXTERN
- && get_chunk_parent_type(br_open) != CT_NAMESPACE)
- {
- // Do a check to see if the level is right
- prev = chunk_get_prev_ncnnlni(pc); // Issue #2279
-
- if ( !chunk_is_str(prev, "*", 1)
- && !chunk_is_str(prev, "&", 1))
- {
- chunk_t *p_op = chunk_get_prev_type(pc, CT_BRACE_OPEN, pc->brace_level - 1);
-
- if ( p_op != nullptr
- && get_chunk_parent_type(p_op) != CT_CLASS
- && get_chunk_parent_type(p_op) != CT_STRUCT
- && get_chunk_parent_type(p_op) != CT_NAMESPACE)
- {
- set_chunk_type(pc, CT_FUNC_CTOR_VAR);
- LOG_FMT(LFCN, "%s(%d): 4) Marked text() is'%s', as FUNC_CTOR_VAR on orig_line %zu, orig_col %zu\n",
- __func__, __LINE__, pc->text(), pc->orig_line, pc->orig_col);
- }
- }
- }
- }
- }
-
- if (semi != nullptr)
- {
- set_chunk_parent(semi, pc->type);
- }
-
- // Issue # 1403, 2152
- if (chunk_is_token(paren_open->prev, CT_FUNC_CTOR_VAR))
- {
- flag_parens(paren_open, PCF_IN_FCN_CTOR, CT_FPAREN_OPEN, pc->type, false);
- }
- else
- {
- flag_parens(paren_open, PCF_IN_FCN_DEF, CT_FPAREN_OPEN, pc->type, false);
- }
- //flag_parens(paren_open, PCF_IN_FCN_DEF, CT_FPAREN_OPEN, pc->type, true);
-
- if (chunk_is_token(pc, CT_FUNC_CTOR_VAR))
- {
- chunk_flags_set(pc, PCF_VAR_1ST_DEF);
- return;
- }
-
- if (chunk_is_token(next, CT_TSQUARE))
- {
- next = chunk_get_next_ncnnl(next);
-
- if (next == nullptr)
- {
- return;
- }
- }
- // Mark parameters and return type
- fix_fcn_def_params(next);
- mark_function_return_type(pc, chunk_get_prev_ncnnlni(pc), pc->type); // Issue #2279
-
- /* mark C# where chunk */
- if ( language_is_set(LANG_CS)
- && ( (chunk_is_token(pc, CT_FUNC_DEF))
- || (chunk_is_token(pc, CT_FUNC_PROTO))))
- {
- tmp = chunk_get_next_ncnnl(paren_close);
- pcf_flags_t in_where_spec_flags = PCF_NONE;
-
- while ( tmp != nullptr
- && chunk_is_not_token(tmp, CT_BRACE_OPEN)
- && chunk_is_not_token(tmp, CT_SEMICOLON))
- {
- mark_where_chunk(tmp, pc->type, tmp->flags | in_where_spec_flags);
- in_where_spec_flags = tmp->flags & PCF_IN_WHERE_SPEC;
-
- tmp = chunk_get_next_ncnnl(tmp);
- }
- }
-
- // Find the brace pair and set the parent
- if (chunk_is_token(pc, CT_FUNC_DEF))
- {
- tmp = chunk_get_next_ncnnl(paren_close);
-
- while ( tmp != nullptr
- && chunk_is_not_token(tmp, CT_BRACE_OPEN))
- {
- LOG_FMT(LFCN, "%s(%d): (13) SET TO CT_FUNC_DEF: orig_line is %zu, orig_col is %zu, text() '%s'\n",
- __func__, __LINE__, tmp->orig_line, tmp->orig_col, tmp->text());
- set_chunk_parent(tmp, CT_FUNC_DEF);
-
- if (!chunk_is_semicolon(tmp))
- {
- chunk_flags_set(tmp, PCF_OLD_FCN_PARAMS);
- }
- tmp = chunk_get_next_ncnnl(tmp);
- }
-
- if (chunk_is_token(tmp, CT_BRACE_OPEN))
- {
- LOG_FMT(LFCN, "%s(%d): (14) SET TO CT_FUNC_DEF: orig_line is %zu, orig_col is %zu, text() '%s'\n",
- __func__, __LINE__, tmp->orig_line, tmp->orig_col, tmp->text());
- set_chunk_parent(tmp, CT_FUNC_DEF);
- tmp = chunk_skip_to_match(tmp);
-
- if (tmp != nullptr)
- {
- LOG_FMT(LFCN, "%s(%d): (15) SET TO CT_FUNC_DEF: orig_line is %zu, orig_col is %zu, text() '%s'\n",
- __func__, __LINE__, tmp->orig_line, tmp->orig_col, tmp->text());
- set_chunk_parent(tmp, CT_FUNC_DEF);
- }
- }
- }
-} // mark_function
-
-
-bool mark_function_type(chunk_t *pc)
-{
- LOG_FUNC_ENTRY();
- LOG_FMT(LFTYPE, "%s(%d): type is %s, text() '%s' @ orig_line is %zu, orig_col is %zu\n",
- __func__, __LINE__, get_token_name(pc->type), pc->text(),
- pc->orig_line, pc->orig_col);
-
- size_t star_count = 0;
- size_t word_count = 0;
- chunk_t *ptrcnk = nullptr;
- chunk_t *tmp;
- chunk_t *apo;
- chunk_t *apc;
- chunk_t *aft;
- bool anon = false;
- c_token_t pt, ptp;
-
- // Scan backwards across the name, which can only be a word and single star
- chunk_t *varcnk = chunk_get_prev_ncnnlni(pc); // Issue #2279
-
- varcnk = chunk_get_prev_ssq(varcnk);
-
- if ( varcnk != nullptr
- && !chunk_is_word(varcnk))
- {
- if ( language_is_set(LANG_OC)
- && chunk_is_str(varcnk, "^", 1)
- && chunk_is_paren_open(chunk_get_prev_ncnnlni(varcnk))) // Issue #2279
- {
- // anonymous ObjC block type -- RTYPE (^)(ARGS)
- anon = true;
- }
- else
- {
- LOG_FMT(LFTYPE, "%s(%d): not a word: text() '%s', type is %s, @ orig_line is %zu:, orig_col is %zu\n",
- __func__, __LINE__, varcnk->text(), get_token_name(varcnk->type),
- varcnk->orig_line, varcnk->orig_col);
- goto nogo_exit;
- }
- }
- apo = chunk_get_next_ncnnl(pc);
-
- if (apo == nullptr)
- {
- return(false);
- }
- apc = chunk_skip_to_match(apo);
-
- if ( apc != nullptr
- && ( !chunk_is_paren_open(apo)
- || ((apc = chunk_skip_to_match(apo)) == nullptr)))
- {
- LOG_FMT(LFTYPE, "%s(%d): not followed by parens\n", __func__, __LINE__);
- goto nogo_exit;
- }
- aft = chunk_get_next_ncnnl(apc);
-
- if (chunk_is_token(aft, CT_BRACE_OPEN))
- {
- pt = CT_FUNC_DEF;
- }
- else if ( chunk_is_token(aft, CT_SEMICOLON)
- || chunk_is_token(aft, CT_ASSIGN))
- {
- pt = CT_FUNC_PROTO;
- }
- else
- {
- LOG_FMT(LFTYPE, "%s(%d): not followed by '{' or ';'\n", __func__, __LINE__);
- goto nogo_exit;
- }
- ptp = pc->flags.test(PCF_IN_TYPEDEF) ? CT_FUNC_TYPE : CT_FUNC_VAR;
-
- tmp = pc;
-
- while ((tmp = chunk_get_prev_ncnnlni(tmp)) != nullptr) // Issue #2279
- {
- tmp = chunk_get_prev_ssq(tmp);
-
- LOG_FMT(LFTYPE, " -- type is %s, %s on orig_line %zu, orig_col is %zu",
- get_token_name(tmp->type), tmp->text(),
- tmp->orig_line, tmp->orig_col);
-
- if ( chunk_is_star(tmp)
- || chunk_is_token(tmp, CT_PTR_TYPE)
- || chunk_is_token(tmp, CT_CARET))
- {
- star_count++;
- ptrcnk = tmp;
- LOG_FMT(LFTYPE, " -- PTR_TYPE\n");
- }
- else if ( chunk_is_word(tmp)
- || chunk_is_token(tmp, CT_WORD)
- || chunk_is_token(tmp, CT_TYPE))
- {
- word_count++;
- LOG_FMT(LFTYPE, " -- TYPE(%s)\n", tmp->text());
- }
- else if (chunk_is_token(tmp, CT_DC_MEMBER))
- {
- word_count = 0;
- LOG_FMT(LFTYPE, " -- :: reset word_count\n");
- }
- else if (chunk_is_str(tmp, "(", 1))
- {
- LOG_FMT(LFTYPE, " -- open paren (break)\n");
- break;
- }
- else
- {
- LOG_FMT(LFTYPE, " -- unexpected token: type is %s, text() '%s', on orig_line %zu, orig_col %zu\n",
- get_token_name(tmp->type), tmp->text(),
- tmp->orig_line, tmp->orig_col);
- goto nogo_exit;
- }
- }
-
- // Fixes #issue 1577
- // Allow word count 2 incase of function pointer declaration.
- // Ex: bool (__stdcall* funcptr)(int, int);
- if ( star_count > 1
- || ( word_count > 1
- && !( word_count == 2
- && ptp == CT_FUNC_VAR))
- || ((star_count + word_count) == 0))
- {
- LOG_FMT(LFTYPE, "%s(%d): bad counts word: %zu, star: %zu\n",
- __func__, __LINE__, word_count, star_count);
- goto nogo_exit;
- }
-
- // make sure what appears before the first open paren can be a return type
- if (!chunk_ends_type(chunk_get_prev_ncnnlni(tmp))) // Issue #2279
- {
- goto nogo_exit;
- }
-
- if (ptrcnk)
- {
- set_chunk_type(ptrcnk, CT_PTR_TYPE);
- }
-
- if (!anon)
- {
- if (pc->flags.test(PCF_IN_TYPEDEF))
- {
- set_chunk_type(varcnk, CT_TYPE);
- }
- else
- {
- set_chunk_type(varcnk, CT_FUNC_VAR);
- chunk_flags_set(varcnk, PCF_VAR_1ST_DEF);
- }
- }
- set_chunk_type(pc, CT_TPAREN_CLOSE);
- set_chunk_parent(pc, ptp);
-
- set_chunk_type(apo, CT_FPAREN_OPEN);
- set_chunk_parent(apo, pt);
- set_chunk_type(apc, CT_FPAREN_CLOSE);
- set_chunk_parent(apc, pt);
- fix_fcn_def_params(apo);
-
- if (chunk_is_semicolon(aft))
- {
- set_chunk_parent(aft, aft->flags.test(PCF_IN_TYPEDEF) ? CT_TYPEDEF : CT_FUNC_VAR);
- }
- else if (chunk_is_token(aft, CT_BRACE_OPEN))
- {
- flag_parens(aft, PCF_NONE, CT_NONE, pt, false);
- }
- // Step backwards to the previous open paren and mark everything a
- tmp = pc;
-
- while ((tmp = chunk_get_prev_ncnnlni(tmp)) != nullptr) // Issue #2279
- {
- LOG_FMT(LFTYPE, " ++ type is %s, text() '%s', on orig_line %zu, orig_col %zu\n",
- get_token_name(tmp->type), tmp->text(),
- tmp->orig_line, tmp->orig_col);
-
- if (*tmp->str.c_str() == '(')
- {
- if (!pc->flags.test(PCF_IN_TYPEDEF))
- {
- chunk_flags_set(tmp, PCF_VAR_1ST_DEF);
- }
- set_chunk_type(tmp, CT_TPAREN_OPEN);
- set_chunk_parent(tmp, ptp);
-
- tmp = chunk_get_prev_ncnnlni(tmp); // Issue #2279
-
- if ( chunk_is_token(tmp, CT_FUNCTION)
- || chunk_is_token(tmp, CT_FUNC_CALL)
- || chunk_is_token(tmp, CT_FUNC_CALL_USER)
- || chunk_is_token(tmp, CT_FUNC_DEF)
- || chunk_is_token(tmp, CT_FUNC_PROTO))
- {
- set_chunk_type(tmp, CT_TYPE);
- chunk_flags_clr(tmp, PCF_VAR_1ST_DEF);
- }
- mark_function_return_type(varcnk, tmp, ptp);
- break;
- }
- }
- return(true);
-
-nogo_exit:
- tmp = chunk_get_next_ncnnl(pc);
-
- if (chunk_is_paren_open(tmp))
- {
- LOG_FMT(LFTYPE, "%s(%d): setting FUNC_CALL on orig_line is %zu, orig_col is %zu\n",
- __func__, __LINE__, tmp->orig_line, tmp->orig_col);
- flag_parens(tmp, PCF_NONE, CT_FPAREN_OPEN, CT_FUNC_CALL, false);
- }
- return(false);
-} // mark_function_type
-
-
-void mark_lvalue(chunk_t *pc)
-{
- LOG_FUNC_ENTRY();
- chunk_t *prev;
-
- if (pc->flags.test(PCF_IN_PREPROC))
- {
- return;
- }
-
- for (prev = chunk_get_prev_ncnnlni(pc); // Issue #2279
- prev != nullptr;
- prev = chunk_get_prev_ncnnlni(prev)) // Issue #2279
- {
- if ( prev->level < pc->level
- || chunk_is_token(prev, CT_ACCESS_COLON)
- || chunk_is_token(prev, CT_ASSIGN)
- || chunk_is_token(prev, CT_BOOL)
- || chunk_is_token(prev, CT_COMMA)
- || chunk_is_cpp_inheritance_access_specifier(prev)
- || chunk_is_semicolon(prev)
- || chunk_is_str(prev, "(", 1)
- || chunk_is_str(prev, "{", 1)
- || chunk_is_str(prev, "[", 1)
- || prev->flags.test(PCF_IN_PREPROC)
- || get_chunk_parent_type(prev) == CT_NAMESPACE
- || get_chunk_parent_type(prev) == CT_TEMPLATE)
- {
- break;
- }
- chunk_flags_set(prev, PCF_LVALUE);
-
- if ( prev->level == pc->level
- && chunk_is_str(prev, "&", 1))
- {
- make_type(prev);
- }
- }
-} // mark_lvalue
-
-
-void mark_struct_union_body(chunk_t *start)
-{
- LOG_FUNC_ENTRY();
- chunk_t *pc = start;
-
- while ( pc != nullptr
- && pc->level >= start->level
- && !( pc->level == start->level
- && chunk_is_token(pc, CT_BRACE_CLOSE)))
- {
- if ( chunk_is_token(pc, CT_BRACE_OPEN)
- || chunk_is_token(pc, CT_BRACE_CLOSE)
- || chunk_is_token(pc, CT_SEMICOLON))
- {
- pc = chunk_get_next_ncnnl(pc);
-
- if (pc == nullptr)
- {
- break;
- }
- }
-
- if (chunk_is_token(pc, CT_ALIGN))
- {
- pc = skip_align(pc); // "align(x)" or "align(x):"
-
- if (pc == nullptr)
- {
- break;
- }
- }
- else if (chunk_is_token(pc, CT_AMP))
- {
- pc = skip_expression(pc);
- }
- else
- {
- pc = fix_variable_definition(pc);
-
- if (pc == nullptr)
- {
- break;
- }
- }
- }
-} // mark_struct_union_body
-
-
-void mark_template_func(chunk_t *pc, chunk_t *pc_next)
-{
- LOG_FUNC_ENTRY();
-
- // We know angle_close must be there...
- chunk_t *angle_close = chunk_get_next_type(pc_next, CT_ANGLE_CLOSE, pc->level);
- chunk_t *after = chunk_get_next_ncnnl(angle_close);
-
- if (after != nullptr)
- {
- if (chunk_is_str(after, "(", 1))
- {
- if (angle_close->flags.test(PCF_IN_FCN_CALL))
- {
- LOG_FMT(LTEMPFUNC, "%s(%d): marking '%s' in line %zu as a FUNC_CALL\n",
- __func__, __LINE__, pc->text(), pc->orig_line);
- LOG_FMT(LFCN, "%s(%d): (16) SET TO CT_FUNC_CALL: orig_line is %zu, orig_col is %zu, text() '%s'\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text());
- set_chunk_type(pc, CT_FUNC_CALL);
- flag_parens(after, PCF_IN_FCN_CALL, CT_FPAREN_OPEN, CT_FUNC_CALL, false);
- }
- else
- {
- /*
- * Might be a function def. Must check what is before the template:
- * Func call:
- * BTree.Insert(std::pair<int, double>(*it, double(*it) + 1.0));
- * a = Test<int>(j);
- * std::pair<int, double>(*it, double(*it) + 1.0));
- */
-
- LOG_FMT(LTEMPFUNC, "%s(%d): marking '%s' in line %zu as a FUNC_CALL 2\n",
- __func__, __LINE__, pc->text(), pc->orig_line);
- // its a function!!!
- LOG_FMT(LFCN, "%s(%d): (17) SET TO CT_FUNC_CALL: orig_line is %zu, orig_col is %zu, text() '%s'\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text());
- set_chunk_type(pc, CT_FUNC_CALL);
- mark_function(pc);
- }
- }
- else if (chunk_is_token(after, CT_WORD))
- {
- // its a type!
- set_chunk_type(pc, CT_TYPE);
- chunk_flags_set(pc, PCF_VAR_TYPE);
- chunk_flags_set(after, PCF_VAR_DEF);
- }
- }
-} // mark_template_func
-
-
-chunk_t *mark_variable_definition(chunk_t *start)
-{
- LOG_FUNC_ENTRY();
-
- if (start == nullptr)
- {
- return(nullptr);
- }
- chunk_t *pc = start;
- pcf_flags_t flags = PCF_VAR_1ST_DEF;
-
- LOG_FMT(LVARDEF, "%s(%d): orig_line %zu, orig_col %zu, text() '%s', type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(),
- get_token_name(pc->type));
-
- // Issue #596
- bool bit_field_colon_is_present = false;
-
- while (go_on(pc, start))
- {
- if ( chunk_is_token(pc, CT_WORD)
- || chunk_is_token(pc, CT_FUNC_CTOR_VAR))
- {
- auto const orig_flags = pc->flags;
-
- if (!pc->flags.test(PCF_IN_ENUM))
- {
- chunk_flags_set(pc, flags);
- }
- flags &= ~PCF_VAR_1ST;
- LOG_FMT(LVARDEF, "%s(%d): orig_line is %zu, orig_col is %zu, text() '%s', set PCF_VAR_1ST\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text());
-
- LOG_FMT(LVARDEF,
- "%s(%d): orig_line is %zu, marked text() '%s'[%s]\n"
- " in orig_col %zu, flags: %s -> %s\n",
- __func__, __LINE__, pc->orig_line, pc->text(),
- get_token_name(pc->type), pc->orig_col,
- pcf_flags_str(orig_flags).c_str(),
- pcf_flags_str(pc->flags).c_str());
- }
- else if ( !bit_field_colon_is_present // Issue #2689
- && ( chunk_is_star(pc)
- || chunk_is_msref(pc)))
- {
- set_chunk_type(pc, CT_PTR_TYPE);
- }
- else if (chunk_is_addr(pc))
- {
- set_chunk_type(pc, CT_BYREF);
- }
- else if ( chunk_is_token(pc, CT_SQUARE_OPEN)
- || chunk_is_token(pc, CT_ASSIGN))
- {
- pc = skip_expression(pc);
- continue;
- }
- else if (chunk_is_token(pc, CT_COLON))
- {
- bit_field_colon_is_present = true; // Issue #2689
- }
- pc = chunk_get_next_ncnnl(pc);
- }
- return(pc);
-} // mark_variable_definition
-
-
-void mark_variable_stack(ChunkStack &cs, log_sev_t sev)
-{
- UNUSED(sev);
- LOG_FUNC_ENTRY();
-
- // throw out the last word and mark the rest
- chunk_t *var_name = cs.Pop_Back();
-
- if ( var_name != nullptr
- && var_name->prev != nullptr
- && var_name->prev->type == CT_DC_MEMBER)
- {
- cs.Push_Back(var_name);
- }
-
- if (var_name != nullptr)
- {
- LOG_FMT(LFCNP, "%s(%d): parameter on orig_line %zu, orig_col %zu:\n",
- __func__, __LINE__, var_name->orig_line, var_name->orig_col);
-
- size_t word_cnt = 0;
- chunk_t *word_type;
-
- while ((word_type = cs.Pop_Back()) != nullptr)
- {
- if ( chunk_is_token(word_type, CT_WORD)
- || chunk_is_token(word_type, CT_TYPE))
- {
- LOG_FMT(LFCNP, "%s(%d): parameter on orig_line %zu, orig_col %zu: <%s> as TYPE\n",
- __func__, __LINE__, var_name->orig_line, var_name->orig_col, word_type->text());
- set_chunk_type(word_type, CT_TYPE);
- chunk_flags_set(word_type, PCF_VAR_TYPE);
- }
- word_cnt++;
- }
-
- if (chunk_is_token(var_name, CT_WORD))
- {
- if (word_cnt > 0)
- {
- LOG_FMT(LFCNP, "%s(%d): parameter on orig_line %zu, orig_col %zu: <%s> as VAR\n",
- __func__, __LINE__, var_name->orig_line, var_name->orig_col, var_name->text());
- chunk_flags_set(var_name, PCF_VAR_DEF);
- }
- else
- {
- LOG_FMT(LFCNP, "%s(%d): parameter on orig_line %zu, orig_col %zu: <%s> as TYPE\n",
- __func__, __LINE__, var_name->orig_line, var_name->orig_col, var_name->text());
- set_chunk_type(var_name, CT_TYPE);
- chunk_flags_set(var_name, PCF_VAR_TYPE);
- }
- }
- }
-} // mark_variable_stack
-
-
-pcf_flags_t mark_where_chunk(chunk_t *pc, c_token_t parent_type, pcf_flags_t flags)
-{
- /* TODO: should have options to control spacing around the ':' as well as newline ability for the
- * constraint clauses (should it break up a 'where A : B where C : D' on the same line? wrap? etc.) */
-
- if (chunk_is_token(pc, CT_WHERE))
- {
- set_chunk_type(pc, CT_WHERE_SPEC);
- set_chunk_parent(pc, parent_type);
- flags |= PCF_IN_WHERE_SPEC;
- LOG_FMT(LFTOR, "%s: where-spec on line %zu\n",
- __func__, pc->orig_line);
- }
- else if (flags.test(PCF_IN_WHERE_SPEC))
- {
- if (chunk_is_str(pc, ":", 1))
- {
- set_chunk_type(pc, CT_WHERE_COLON);
- LOG_FMT(LFTOR, "%s: where-spec colon on line %zu\n",
- __func__, pc->orig_line);
- }
- else if ( (chunk_is_token(pc, CT_STRUCT))
- || (chunk_is_token(pc, CT_CLASS)))
- {
- /* class/struct inside of a where-clause confuses parser for indentation; set it as a word so it looks like the rest */
- set_chunk_type(pc, CT_WORD);
- }
- }
-
- if (flags.test(PCF_IN_WHERE_SPEC))
- {
- chunk_flags_set(pc, PCF_IN_WHERE_SPEC);
- }
- return(flags);
-} // mark_where_chunk
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/combine_fix_mark.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/combine_fix_mark.h
deleted file mode 100644
index c0e724dd..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/combine_fix_mark.h
+++ /dev/null
@@ -1,196 +0,0 @@
-/**
- * @file combine_fix_mark.h
- *
- * @author Guy Maurel
- * @license GPL v2+
- * extract from combine.cpp
- */
-
-#ifndef COMBINE_FIX_MARK_H_INCLUDED
-#define COMBINE_FIX_MARK_H_INCLUDED
-
-#include "ChunkStack.h"
-
-
-/**
- * Checks to see if the current paren is part of a cast.
- * We already verified that this doesn't follow function, TYPE, IF, FOR,
- * SWITCH, or WHILE and is followed by WORD, TYPE, STRUCT, ENUM, or UNION.
- *
- * @param start Pointer to the open paren
- */
-void fix_casts(chunk_t *start);
-
-
-/**
- * Simply change any STAR to PTR_TYPE and WORD to TYPE
- *
- * @param start points to the open paren
- */
-void fix_fcn_def_params(chunk_t *start);
-
-
-/**
- * CT_TYPE_CAST follows this pattern:
- * dynamic_cast<...>(...)
- *
- * Mark everything between the <> as a type and set the paren parent
- */
-void fix_type_cast(chunk_t *start);
-
-
-/**
- * We are on a typedef.
- * If the next word is not enum/union/struct, then the last word before the
- * next ',' or ';' or '__attribute__' is a type.
- *
- * typedef [type...] [*] type [, [*]type] ;
- * typedef <return type>([*]func)();
- * typedef <return type>([*]func)(params);
- * typedef <return type>(__stdcall *func)(); Bug # 633 MS-specific extension
- * include the config-file "test/config/MS-calling_conventions.cfg"
- * typedef <return type>func(params);
- * typedef <enum/struct/union> [type] [*] type [, [*]type] ;
- * typedef <enum/struct/union> [type] { ... } [*] type [, [*]type] ;
- */
-void fix_typedef(chunk_t *start);
-
-
-/**
- * We are on the start of a sequence that could be a variable definition
- * - FPAREN_OPEN (parent == CT_FOR)
- * - BRACE_OPEN
- * - SEMICOLON
- */
-chunk_t *fix_variable_definition(chunk_t *start);
-
-
-void mark_cpp_constructor(chunk_t *pc);
-
-
-/**
- * Mark all chunks belonging to a C++ lambda expression
- *
- * @param square_open points to a chunk of type CT_SQUARE_OPEN, and the parent type is
- * assumed to have already been assigned the value CT_CPP_LAMBDA;
- * under this assumption, the function marks all chunks as PCF_IN_LAMBDA
- * until the corresponding closing CT_BRACE_CLOSE (with parent type
- * CT_CPP_LAMBDA) is encountered
- */
-void mark_cpp_lambda(chunk_t *square_open);
-
-
-/**
- * Marks statement starts in a macro body.
- * REVISIT: this may already be done
- */
-void mark_define_expressions(void);
-
-
-/**
- * Just mark every CT_WORD until a semicolon as CT_SQL_WORD.
- * Adjust the levels if pc is CT_SQL_BEGIN
- */
-void mark_exec_sql(chunk_t *pc);
-
-
-/**
- * Changes the return type to type and set the parent.
- *
- * @param pc the last chunk of the return type
- * @param parent_type CT_NONE (no change) or the new parent type
- */
-void mark_function_return_type(chunk_t *fname, chunk_t *start, c_token_t parent_type);
-
-
-/**
- * We are on a function word. we need to:
- * - find out if this is a call or prototype or implementation
- * - mark return type
- * - mark parameter types
- * - mark brace pair
- *
- * REVISIT:
- * This whole function is a mess.
- * It needs to be reworked to eliminate duplicate logic and determine the
- * function type more directly.
- * 1. Skip to the close paren and see what is after.
- * a. semicolon - function call or function proto
- * b. open brace - function call (ie, list_for_each) or function def
- * c. open paren - function type or chained function call
- * d. qualifier - function def or proto, continue to semicolon or open brace
- * 2. Examine the 'parameters' to see if it can be a proto/def
- * 3. Examine what is before the function name to see if it is a proto or call
- * Constructor/destructor detection should have already been done when the
- * 'class' token was encountered (see mark_class_ctor).
- */
-void mark_function(chunk_t *pc);
-
-
-/**
- * Process a function type that is not in a typedef.
- * pc points to the first close paren.
- *
- * void (*func)(params);
- * const char * (*func)(params);
- * const char * (^func)(params); -- Objective C
- *
- * @param pc Points to the first closing paren
- *
- * @return whether a function type was processed
- */
-bool mark_function_type(chunk_t *pc);
-
-
-/**
- * Just hit an assign. Go backwards until we hit an open brace/paren/square or
- * semicolon (TODO: other limiter?) and mark as a LValue.
- */
-void mark_lvalue(chunk_t *pc);
-
-
-/**
- * Examines the stuff between braces { }.
- * There should only be variable definitions and methods.
- * Skip the methods, as they will get handled elsewhere.
- */
-void mark_struct_union_body(chunk_t *start);
-
-
-/**
- * We are on a word followed by a angle open which is part of a template.
- * If the angle close is followed by a open paren, then we are on a template
- * function def or a template function call:
- * Vector2<float>(...) [: ...[, ...]] { ... }
- * Or we could be on a variable def if it's followed by a word:
- * Renderer<rgb32> rend;
- */
-void mark_template_func(chunk_t *pc, chunk_t *pc_next);
-
-
-/**
- * We are on the first word of a variable definition.
- * Mark all the variable names with PCF_VAR_1ST and PCF_VAR_DEF as appropriate.
- * Also mark any '*' encountered as a CT_PTR_TYPE.
- * Skip over []. Go until a ';' is hit.
- *
- * Example input:
- * int a = 3, b, c = 2; ## called with 'a'
- * foo_t f = {1, 2, 3}, g = {5, 6, 7}; ## called with 'f'
- * struct {...} *a, *b; ## called with 'a' or '*'
- * myclass a(4);
- */
-chunk_t *mark_variable_definition(chunk_t *start);
-
-
-void mark_variable_stack(ChunkStack &cs, log_sev_t sev);
-
-
-/**
- * TODO: add doc cmt
- *
- */
-pcf_flags_t mark_where_chunk(chunk_t *pc, c_token_t parent_type, pcf_flags_t flags);
-
-
-#endif /* COMBINE_FIX_MARK_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/combine_labels.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/combine_labels.cpp
deleted file mode 100644
index 9abebc4f..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/combine_labels.cpp
+++ /dev/null
@@ -1,436 +0,0 @@
-/**
- * @file combine_labels.cpp
- *
- * @author Guy Maurel
- * @license GPL v2+
- * extract from combine.h
- */
-
-#include "combine_labels.h"
-
-#include "chunk_list.h"
-#include "cs_top_is_question.h"
-#include "uncrustify.h"
-
-
-chunk_t *chunk_get_next_local(chunk_t *pc, scope_e scope = scope_e::ALL)
-{
- chunk_t *tmp = pc;
-
- do
- {
- tmp = chunk_get_next(tmp, scope);
- } while ( tmp != nullptr
- && ( chunk_is_comment(tmp)
- || chunk_is_token(tmp, CT_NOEXCEPT)));
-
- return(tmp);
-}
-
-
-chunk_t *chunk_get_prev_local(chunk_t *pc, scope_e scope = scope_e::ALL)
-{
- chunk_t *tmp = pc;
-
- do
- {
- tmp = chunk_get_prev(tmp, scope);
- } while ( tmp != nullptr
- && ( chunk_is_comment(tmp)
- || chunk_is_newline(tmp)
- || chunk_is_token(tmp, CT_NOEXCEPT)));
-
- return(tmp);
-}
-
-
-void combine_labels(void)
-{
- LOG_FUNC_ENTRY();
- chunk_t *cur;
- chunk_t *prev;
- chunk_t *next;
- bool hit_case = false;
- bool hit_class = false;
-
- cpd.unc_stage = unc_stage_e::COMBINE_LABELS;
-
- // stack to handle nesting inside of OC messages, which reset the scope
- ChunkStack cs;
-
- prev = chunk_get_head();
-
- if (prev == nullptr)
- {
- return;
- }
- cur = chunk_get_next_nc(prev);
-
- if (cur == nullptr)
- {
- return;
- }
- next = chunk_get_next_nc(cur);
-
- // unlikely that the file will start with a label...
- // prev cur next
- while (next != nullptr)
- {
- if (chunk_is_token(next, CT_NEWLINE))
- {
- LOG_FMT(LFCN, "%s(%d): next->orig_line is %zu, next->orig_col is %zu, <Newline>, nl is %zu\n",
- __func__, __LINE__, next->orig_line, next->orig_col, next->nl_count);
- }
- else if (chunk_is_token(next, CT_VBRACE_OPEN))
- {
- LOG_FMT(LFCN, "%s(%d): next->orig_line is %zu, next->orig_col is %zu, VBRACE_OPEN\n",
- __func__, __LINE__, next->orig_line, next->orig_col);
- }
- else if (chunk_is_token(next, CT_VBRACE_CLOSE))
- {
- LOG_FMT(LFCN, "%s(%d): next->orig_line is %zu, next->orig_col is %zu, VBRACE_CLOSE\n",
- __func__, __LINE__, next->orig_line, next->orig_col);
- }
- else
- {
- LOG_FMT(LFCN, "%s(%d): next->orig_line is %zu, next->orig_col is %zu, text() '%s'\n",
- __func__, __LINE__, next->orig_line, next->orig_col, next->text());
- }
-
- if ( !next->flags.test(PCF_IN_OC_MSG) // filter OC case of [self class] msg send
- && ( chunk_is_token(next, CT_CLASS)
- || chunk_is_token(next, CT_OC_CLASS)
- || chunk_is_token(next, CT_TEMPLATE)))
- {
- hit_class = true;
- }
-
- if ( chunk_is_semicolon(next)
- || chunk_is_token(next, CT_BRACE_OPEN))
- {
- hit_class = false;
- }
-
- if ( chunk_is_token(prev, CT_SQUARE_OPEN)
- && get_chunk_parent_type(prev) == CT_OC_MSG)
- {
- cs.Push_Back(prev);
- }
- else if ( chunk_is_token(next, CT_SQUARE_CLOSE)
- && get_chunk_parent_type(next) == CT_OC_MSG)
- {
- // pop until we hit '['
- while (!cs.Empty())
- {
- chunk_t *t2 = cs.Top()->m_pc;
- cs.Pop_Back();
-
- if (chunk_is_token(t2, CT_SQUARE_OPEN))
- {
- break;
- }
- }
- }
-
- if ( chunk_is_token(next, CT_QUESTION)
- && !next->flags.test(PCF_IN_TEMPLATE))
- {
- cs.Push_Back(next);
- }
- else if (chunk_is_token(next, CT_CASE))
- {
- if (chunk_is_token(cur, CT_GOTO))
- {
- // handle "goto case x;"
- set_chunk_type(next, CT_QUALIFIER);
- }
- else
- {
- hit_case = true;
- }
- }
- else if ( chunk_is_token(next, CT_COLON)
- || ( chunk_is_token(next, CT_OC_COLON)
- && cs_top_is_question(cs, next->level)))
- {
- if (chunk_is_token(cur, CT_DEFAULT))
- {
- set_chunk_type(cur, CT_CASE);
- hit_case = true;
- }
-
- if (cs_top_is_question(cs, next->level))
- {
- set_chunk_type(next, CT_COND_COLON);
- cs.Pop_Back();
- }
- else if (hit_case)
- {
- hit_case = false;
- set_chunk_type(next, CT_CASE_COLON);
- chunk_t *tmp = chunk_get_next_ncnnlnp(next); // Issue #2150
-
- if (chunk_is_token(tmp, CT_BRACE_OPEN))
- {
- set_chunk_parent(tmp, CT_CASE);
- tmp = chunk_get_next_type(tmp, CT_BRACE_CLOSE, tmp->level);
-
- if (tmp != nullptr)
- {
- set_chunk_parent(tmp, CT_CASE);
- }
- }
-
- if ( chunk_is_token(cur, CT_NUMBER)
- && chunk_is_token(prev, CT_ELLIPSIS))
- {
- chunk_t *pre_elipsis = chunk_get_prev_ncnnlnp(prev);
-
- if (chunk_is_token(pre_elipsis, CT_NUMBER))
- {
- set_chunk_type(prev, CT_CASE_ELLIPSIS);
- }
- }
- }
- else if (cur->flags.test(PCF_IN_WHERE_SPEC))
- {
- /* leave colons in where-constraint clauses alone */
- }
- else
- {
- LOG_FMT(LFCN, "%s(%d): prev->text() is '%s', orig_line is %zu, orig_col is %zu\n",
- __func__, __LINE__, prev->text(), prev->orig_line, prev->orig_col);
- LOG_FMT(LFCN, "%s(%d): cur->text() is '%s', orig_line is %zu, orig_col is %zu\n",
- __func__, __LINE__, cur->text(), cur->orig_line, cur->orig_col);
- LOG_FMT(LFCN, "%s(%d): next->text() is '%s', orig_line is %zu, orig_col is %zu\n",
- __func__, __LINE__, next->text(), next->orig_line, next->orig_col);
- chunk_t *nextprev = chunk_get_prev_local(next); // Issue #2279
-
- if (nextprev == nullptr)
- {
- return;
- }
-
- if (language_is_set(LANG_PAWN))
- {
- if ( chunk_is_token(cur, CT_WORD)
- || chunk_is_token(cur, CT_BRACE_CLOSE))
- {
- c_token_t new_type = CT_TAG;
-
- chunk_t *tmp = chunk_get_next_nc(next);
-
- if (tmp == nullptr)
- {
- return;
- }
-
- if ( chunk_is_newline(prev)
- && chunk_is_newline(tmp))
- {
- new_type = CT_LABEL;
- set_chunk_type(next, CT_LABEL_COLON);
- }
- else
- {
- set_chunk_type(next, CT_TAG_COLON);
- }
-
- if (chunk_is_token(cur, CT_WORD))
- {
- set_chunk_type(cur, new_type);
- }
- }
- }
- else if (next->flags.test(PCF_IN_ARRAY_ASSIGN))
- {
- set_chunk_type(next, CT_D_ARRAY_COLON);
- }
- else if (next->flags.test(PCF_IN_FOR))
- {
- set_chunk_type(next, CT_FOR_COLON);
- }
- else if (next->flags.test(PCF_OC_BOXED))
- {
- set_chunk_type(next, CT_OC_DICT_COLON);
- }
- else if (chunk_is_token(cur, CT_WORD))
- {
- chunk_t *tmp = chunk_get_next_nc(next, scope_e::PREPROC);
-
- // Issue #1187
- if (tmp == nullptr)
- {
- return;
- }
- LOG_FMT(LFCN, "%s(%d): orig_line is %zu, orig_col is %zu, tmp '%s': ",
- __func__, __LINE__, tmp->orig_line, tmp->orig_col,
- (chunk_is_token(tmp, CT_NEWLINE)) ? "<Newline>" : tmp->text());
- log_pcf_flags(LGUY, tmp->flags);
-
- if (next->flags.test(PCF_IN_FCN_CALL))
- {
- // Must be a macro thingy, assume some sort of label
- set_chunk_type(next, CT_LABEL_COLON);
- }
- else if ( tmp == nullptr
- || ( chunk_is_not_token(tmp, CT_NUMBER)
- && chunk_is_not_token(tmp, CT_DECLTYPE)
- && chunk_is_not_token(tmp, CT_SIZEOF)
- && get_chunk_parent_type(tmp) != CT_SIZEOF
- && !tmp->flags.test_any(PCF_IN_STRUCT | PCF_IN_CLASS))
- || chunk_is_token(tmp, CT_NEWLINE))
- {
- /*
- * the CT_SIZEOF isn't great - test 31720 happens to use a sizeof expr,
- * but this really should be able to handle any constant expr
- */
- // Fix for #1242
- // For MIDL_INTERFACE classes class name is tokenized as Label.
- // Corrected the identification of Label in c style languages.
- if ( language_is_set(LANG_C | LANG_CPP | LANG_CS)
- && (!language_is_set(LANG_OC)))
- {
- chunk_t *labelPrev = prev;
-
- if (chunk_is_token(labelPrev, CT_NEWLINE))
- {
- labelPrev = chunk_get_prev_ncnnlni(prev); // Issue #2279
- }
-
- if ( labelPrev != nullptr
- && chunk_is_not_token(labelPrev, CT_FPAREN_CLOSE))
- {
- set_chunk_type(cur, CT_LABEL);
- set_chunk_type(next, CT_LABEL_COLON);
- }
- }
- else
- {
- set_chunk_type(cur, CT_LABEL);
- set_chunk_type(next, CT_LABEL_COLON);
- }
- }
- else if (next->flags.test_any(PCF_IN_STRUCT | PCF_IN_CLASS | PCF_IN_TYPEDEF))
- {
- set_chunk_type(next, CT_BIT_COLON);
-
- chunk_t *nnext = chunk_get_next(next);
-
- if (nnext == nullptr)
- {
- return;
- }
-
- while ((nnext = chunk_get_next(nnext)) != nullptr)
- {
- if (chunk_is_token(nnext, CT_SEMICOLON))
- {
- break;
- }
-
- if (chunk_is_token(nnext, CT_COLON))
- {
- set_chunk_type(nnext, CT_BIT_COLON);
- }
- }
- }
- }
- else if (chunk_is_token(nextprev, CT_FPAREN_CLOSE))
- {
- LOG_FMT(LFCN, "%s(%d): nextprev->text() is '%s', orig_line is %zu, orig_col is %zu, type is %s\n",
- __func__, __LINE__, nextprev->text(), nextprev->orig_line, nextprev->orig_col,
- get_token_name(nextprev->type));
- LOG_FMT(LFCN, "%s(%d): next->text() is '%s', orig_line is %zu, orig_col is %zu, type is %s\n",
- __func__, __LINE__, next->text(), next->orig_line, next->orig_col,
- get_token_name(next->type));
-
- // Issue #2172
- if (get_chunk_parent_type(next) == CT_FUNC_DEF)
- {
- LOG_FMT(LFCN, "%s(%d): it's a construct colon\n", __func__, __LINE__);
- // it's a construct colon
- set_chunk_type(next, CT_CONSTR_COLON);
- }
- else
- {
- LOG_FMT(LFCN, "%s(%d): it's a class colon\n", __func__, __LINE__);
- // it's a class colon
- set_chunk_type(next, CT_CLASS_COLON);
- }
- }
- else if (next->level > next->brace_level)
- {
- // ignore it, as it is inside a paren
- }
- else if ( chunk_is_token(cur, CT_TYPE)
- || chunk_is_token(cur, CT_ENUM) // Issue #2584
- || chunk_is_token(nextprev, CT_TYPE)
- || chunk_is_token(nextprev, CT_ENUM)) // Issue #2584
- {
- set_chunk_type(next, CT_BIT_COLON);
- }
- else if ( chunk_is_token(cur, CT_ENUM)
- || chunk_is_token(cur, CT_ACCESS)
- || chunk_is_token(cur, CT_QUALIFIER)
- || get_chunk_parent_type(cur) == CT_ALIGN)
- {
- // ignore it - bit field, align or public/private, etc
- }
- else if ( chunk_is_token(cur, CT_ANGLE_CLOSE)
- || hit_class)
- {
- // ignore it - template thingy
- }
- else if (get_chunk_parent_type(cur) == CT_SQL_EXEC)
- {
- // ignore it - SQL variable name
- }
- else if (get_chunk_parent_type(next) == CT_ASSERT)
- {
- // ignore it - Java assert thing
- }
- else if (get_chunk_parent_type(next) == CT_STRUCT)
- {
- // ignore it
- }
- else
- {
- chunk_t *tmp = chunk_get_next_ncnnl(next);
-
- //tmp = chunk_get_next_local(next);
- if (tmp != nullptr)
-
- {
- LOG_FMT(LFCN, "%s(%d): tmp->text() is '%s', orig_line is %zu, orig_col is %zu, type is %s\n",
- __func__, __LINE__, tmp->text(), tmp->orig_line, tmp->orig_col,
- get_token_name(tmp->type));
-
- if ( chunk_is_token(tmp, CT_BASE)
- || chunk_is_token(tmp, CT_THIS))
- {
- // ignore it, as it is a C# base thingy
- }
- else if (language_is_set(LANG_CS | LANG_D))
- {
- // there should be a better solution for that
- }
- else
- {
- LOG_FMT(LWARN, "%s(%d): %s:%zu unexpected colon in col %zu n-parent=%s c-parent=%s l=%zu bl=%zu\n",
- __func__, __LINE__,
- cpd.filename.c_str(), next->orig_line, next->orig_col,
- get_token_name(get_chunk_parent_type(next)),
- get_token_name(get_chunk_parent_type(cur)),
- next->level, next->brace_level);
- cpd.error_count++;
- }
- }
- }
- }
- }
- prev = cur;
- cur = next;
- next = chunk_get_next_local(next);
- }
-} // combine_labels
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/combine_skip.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/combine_skip.cpp
deleted file mode 100644
index 4e8040f1..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/combine_skip.cpp
+++ /dev/null
@@ -1,329 +0,0 @@
-/**
- * @file combine_skip.cpp
- *
- * @author Guy Maurel
- * @license GPL v2+
- * extract from combine.cpp
- */
-
-#include "combine_skip.h"
-
-#include "combine_tools.h"
-
-
-chunk_t *skip_align(chunk_t *start)
-{
- chunk_t *pc = start;
-
- if (chunk_is_token(pc, CT_ALIGN))
- {
- pc = chunk_get_next_ncnnl(pc);
-
- if (chunk_is_token(pc, CT_PAREN_OPEN))
- {
- pc = chunk_get_next_type(pc, CT_PAREN_CLOSE, pc->level);
- pc = chunk_get_next_ncnnl(pc);
-
- if (chunk_is_token(pc, CT_COLON))
- {
- pc = chunk_get_next_ncnnl(pc);
- }
- }
- }
- return(pc);
-}
-
-
-chunk_t *skip_expression(chunk_t *pc)
-{
- return(chunk_get_next_ncnnl(skip_to_expression_end(pc)));
-}
-
-
-chunk_t *skip_expression_rev(chunk_t *pc)
-{
- return(chunk_get_prev_ncnnlni(skip_to_expression_start(pc)));
-}
-
-
-static chunk_t *skip_to_expression_edge(chunk_t *pc, chunk_t *(*chunk_get_next)(chunk_t *cur, scope_e scope))
-{
- chunk_t *prev = pc;
-
- if ( prev != nullptr
- && chunk_get_next != nullptr)
- {
- std::size_t level = prev->level;
- chunk_t *next = prev;
- std::size_t template_nest = get_cpp_template_angle_nest_level(prev);
-
- while ( next != nullptr
- && next->level >= level)
- {
- /**
- * if we encounter a comma or semicolon at the level of the starting chunk,
- * return the current chunk
- */
- if ( next->level == level
- && ( chunk_is_token(next, CT_COMMA)
- || chunk_is_semicolon(next)))
- {
- break;
- }
- /**
- * check the template nest level; if the current chunk's nest level
- * is less than that of the starting chunk, return the current chunk
- */
- auto next_template_nest = get_cpp_template_angle_nest_level(next);
-
- if (template_nest > next_template_nest)
- {
- break;
- }
- prev = next;
- next = (*chunk_get_next)(next, scope_e::PREPROC);
- }
- }
- return(prev);
-}
-
-
-chunk_t *skip_to_expression_end(chunk_t *pc)
-{
- return(skip_to_expression_edge(pc, chunk_get_next_ncnnl));
-}
-
-
-chunk_t *skip_to_expression_start(chunk_t *pc)
-{
- return(skip_to_expression_edge(pc, chunk_get_prev_ncnnlni));
-}
-
-
-chunk_t *skip_to_next_statement(chunk_t *pc)
-{
- while ( pc != nullptr
- && !chunk_is_semicolon(pc)
- && chunk_is_not_token(pc, CT_BRACE_OPEN)
- && chunk_is_not_token(pc, CT_BRACE_CLOSE))
- {
- pc = chunk_get_next_ncnnl(pc);
- }
- return(pc);
-}
-
-
-chunk_t *skip_parent_types(chunk_t *colon)
-{
- auto pc = chunk_get_next_ncnnlnp(colon);
-
- while (pc)
- {
- // Skip access specifier
- if (chunk_is_token(pc, CT_ACCESS))
- {
- pc = chunk_get_next_ncnnlnp(pc);
- continue;
- }
-
- // Check for a type name
- if (!( chunk_is_token(pc, CT_WORD)
- || chunk_is_token(pc, CT_TYPE)))
- {
- LOG_FMT(LPCU,
- "%s is confused; expected a word at %zu:%zu "
- "following type list at %zu:%zu\n", __func__,
- colon->orig_line, colon->orig_col,
- pc->orig_line, pc->orig_col);
- return(colon);
- }
- // Get next token
- auto next = skip_template_next(chunk_get_next_ncnnlnp(pc));
-
- if ( chunk_is_token(next, CT_DC_MEMBER)
- || chunk_is_token(next, CT_COMMA))
- {
- pc = chunk_get_next_ncnnlnp(next);
- }
- else if (next)
- {
- LOG_FMT(LPCU, "%s -> %zu:%zu ('%s')\n", __func__,
- next->orig_line, next->orig_col, next->text());
- return(next);
- }
- else
- {
- break;
- }
- }
- LOG_FMT(LPCU, "%s: did not find end of type list (start was %zu:%zu)\n",
- __func__, colon->orig_line, colon->orig_col);
- return(colon);
-} // skip_parent_types
-
-
-chunk_t *skip_template_prev(chunk_t *ang_close)
-{
- if (chunk_is_token(ang_close, CT_ANGLE_CLOSE))
- {
- chunk_t *pc = chunk_get_prev_type(ang_close, CT_ANGLE_OPEN, ang_close->level);
- return(chunk_get_prev_ncnnlni(pc)); // Issue #2279
- }
- return(ang_close);
-}
-
-
-chunk_t *skip_tsquare_next(chunk_t *ary_def)
-{
- if ( chunk_is_token(ary_def, CT_SQUARE_OPEN)
- || chunk_is_token(ary_def, CT_TSQUARE))
- {
- return(chunk_get_next_nisq(ary_def));
- }
- return(ary_def);
-}
-
-
-chunk_t *skip_attribute(chunk_t *attr)
-{
- chunk_t *pc = attr;
-
- while (chunk_is_token(pc, CT_ATTRIBUTE))
- {
- pc = chunk_get_next_ncnnl(pc);
-
- if (chunk_is_token(pc, CT_FPAREN_OPEN))
- {
- pc = chunk_get_next_type(pc, CT_FPAREN_CLOSE, pc->level);
- }
- }
- return(pc);
-}
-
-
-chunk_t *skip_attribute_next(chunk_t *attr)
-{
- chunk_t *next = skip_attribute(attr);
-
- if ( next != attr
- && chunk_is_token(next, CT_FPAREN_CLOSE))
- {
- attr = chunk_get_next_ncnnl(next);
- }
- return(attr);
-}
-
-
-chunk_t *skip_attribute_prev(chunk_t *fp_close)
-{
- chunk_t *pc = fp_close;
-
- while (true)
- {
- if ( chunk_is_token(pc, CT_FPAREN_CLOSE)
- && get_chunk_parent_type(pc) == CT_ATTRIBUTE)
- {
- pc = chunk_get_prev_type(pc, CT_ATTRIBUTE, pc->level);
- }
- else if (chunk_is_not_token(pc, CT_ATTRIBUTE))
- {
- break;
- }
- pc = chunk_get_prev_ncnnlni(pc); // Issue #2279
-
- if (pc == nullptr) // Issue #3356
- {
- break;
- }
- }
- return(pc);
-}
-
-
-chunk_t *skip_declspec(chunk_t *pc)
-{
- if (chunk_is_token(pc, CT_DECLSPEC))
- {
- pc = chunk_get_next_ncnnl(pc);
-
- if (chunk_is_token(pc, CT_PAREN_OPEN))
- {
- pc = chunk_skip_to_match(pc);
- }
- }
- return(pc);
-}
-
-
-chunk_t *skip_declspec_next(chunk_t *pc)
-{
- chunk_t *next = skip_declspec(pc);
-
- if ( next != pc
- && chunk_is_token(next, CT_PAREN_CLOSE))
- {
- pc = chunk_get_next_ncnnl(next);
- }
- return(pc);
-}
-
-
-chunk_t *skip_declspec_prev(chunk_t *pc)
-{
- if ( chunk_is_token(pc, CT_PAREN_CLOSE)
- && get_chunk_parent_type(pc) == CT_DECLSPEC)
- {
- pc = chunk_skip_to_match_rev(pc);
- pc = chunk_get_prev_ncnnlni(pc);
-
- if (chunk_is_token(pc, CT_DECLSPEC))
- {
- pc = chunk_get_prev_ncnnlni(pc);
- }
- }
- return(pc);
-}
-
-
-chunk_t *skip_matching_brace_bracket_paren_next(chunk_t *pc)
-{
- if ( chunk_is_token(pc, CT_BRACE_OPEN)
- || chunk_is_token(pc, CT_PAREN_OPEN)
- || chunk_is_token(pc, CT_SQUARE_OPEN))
- {
- pc = chunk_skip_to_match(pc);
-
- if (pc != nullptr)
- {
- /**
- * a matching brace, square bracket, or paren was found;
- * retrieve the subsequent chunk
- */
-
- pc = chunk_get_next_ncnnl(pc);
- }
- }
- return(pc);
-}
-
-
-chunk_t *skip_to_chunk_before_matching_brace_bracket_paren_rev(chunk_t *pc)
-{
- if ( chunk_is_token(pc, CT_BRACE_CLOSE)
- || chunk_is_token(pc, CT_PAREN_CLOSE)
- || chunk_is_token(pc, CT_SQUARE_CLOSE))
- {
- pc = chunk_skip_to_match_rev(pc);
-
- if (pc != nullptr)
- {
- /**
- * a matching brace, square bracket, or paren was found;
- * retrieve the preceding chunk
- */
-
- pc = chunk_get_prev_ncnnlni(pc);
- }
- }
- return(pc);
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/combine_skip.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/combine_skip.h
deleted file mode 100644
index d31d1792..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/combine_skip.h
+++ /dev/null
@@ -1,169 +0,0 @@
-/**
- * @file combine_skip.h
- *
- * @author Guy Maurel
- * @license GPL v2+
- * extract from combine.cpp
- */
-
-#ifndef COMBINE_SKIP_H_INCLUDED
-#define COMBINE_SKIP_H_INCLUDED
-
-#include "chunk_list.h"
-
-
-/**
- * Skips the D 'align()' statement and the colon, if present.
- * align(2) int foo; -- returns 'int'
- * align(4): -- returns 'int'
- * int bar;
- */
-chunk_t *skip_align(chunk_t *start);
-
-
-/**
- * Skips chunks in the forward direction and attempts to find the
- * chunk associated with the end of the current expression; returns
- * the first chunk to satisfy one of the following:
- * 1) Chunk is a comma or semicolon at the level of the starting chunk
- * 2) Preceding chunk is at higher template nest level relative to the
- * current chunk under test
- */
-chunk_t *skip_expression(chunk_t *pc);
-
-
-/**
- * Skips chunks in the reverse direction and attempts to find the
- * chunk associated with the start of the current expression; returns
- * the first chunk to satisfy one of the following:
- * 1) Chunk is a comma or semicolon at the level of the starting chunk
- * 2) Preceding chunk is at lower template nest level relative to the
- * current chunk under test
- */
-chunk_t *skip_expression_rev(chunk_t *pc);
-
-
-/**
- * Skips chunks in the forward direction and attempts to find the
- * chunk associated with the end of the current expression; specifically,
- * the function returns that which immediately precedes a chunk
- * satisfying one of the following:
- * 1) Next chunk is a comma or semicolon at the level of the starting chunk
- * 2) Preceding chunk is at a higher template nest level relative to the
- * subsequent chunk
- */
-chunk_t *skip_to_expression_end(chunk_t *pc);
-
-
-/**
- * Skips chunks in the reverse direction and attempts to find the chunk
- * associated with the start of the current expression; specifically,
- * the function returns that which immediately follows a chunk
- * satisfying one of the following:
- * 1) Prior chunk is a comma or semicolon at the level of the starting chunk
- * 2) Preceding chunk is at a lower template nest level relative to the
- * subsequent chunk
- */
-chunk_t *skip_to_expression_start(chunk_t *pc);
-
-
-/**
- * Skips the list of class/struct parent types.
- */
-chunk_t *skip_parent_types(chunk_t *colon);
-
-
-/**
- * Skips over the rest of the template if ang_open is indeed a CT_ANGLE_OPEN.
- * Points to the chunk after the CT_ANGLE_CLOSE.
- * If the chunk isn't an CT_ANGLE_OPEN, then it is returned.
- */
-chunk_t *skip_template_next(chunk_t *ang_open);
-
-
-/**
- * Skips over the rest of the template if ang_close is indeed a CT_ANGLE_CLOSE.
- * Points to the chunk before the CT_ANGLE_OPEN
- * If the chunk isn't an CT_ANGLE_CLOSE, then it is returned.
- */
-chunk_t *skip_template_prev(chunk_t *ang_close);
-
-
-//! Skips to the start of the next statement.
-chunk_t *skip_to_next_statement(chunk_t *pc);
-
-
-/**
- * Skips the rest of the array definitions if ary_def is indeed a
- * CT_TSQUARE or CT_SQUARE_OPEN
- */
-chunk_t *skip_tsquare_next(chunk_t *ary_def);
-
-
-/**
- * If pc is CT_ATTRIBUTE, then skip it and everything preceding the closing
- * paren; return the chunk marked CT_FPAREN_CLOSE
- * If the chunk isn't a CT_ATTRIBUTE, then it is returned.
- */
-chunk_t *skip_attribute(chunk_t *attr);
-
-
-/**
- * If attr is CT_ATTRIBUTE, then skip it and the parens and return the chunk
- * after the CT_FPAREN_CLOSE.
- * If the chunk isn't an CT_ATTRIBUTE, then it is returned.
- */
-chunk_t *skip_attribute_next(chunk_t *attr);
-
-
-/**
- * If fp_close is a CT_FPAREN_CLOSE with a parent of CT_ATTRIBUTE, then skip it
- * and the '__attribute__' thingy and return the chunk before CT_ATTRIBUTE.
- * Otherwise return fp_close.
- */
-chunk_t *skip_attribute_prev(chunk_t *fp_close);
-
-
-/**
- * If pc is CT_DECLSPEC, then skip it and everything preceding the closing
- * paren; return the chunk marked CT_FPAREN_CLOSE
- * If the chunk isn't a CT_DECLSPEC, then it is returned.
- */
-chunk_t *skip_declspec(chunk_t *pc);
-
-
-/**
- * If pc is CT_DECLSPEC, then skip it and the parens and return the chunk
- * after the CT_FPAREN_CLOSE.
- * If the chunk isn't a CT_DECLSPEC, then it is returned.
- */
-chunk_t *skip_declspec_next(chunk_t *pc);
-
-
-/**
- * If pc is a CT_FPAREN_CLOSE with a parent of CT_DECLSPEC, then skip it
- * and the '__declspec' keyword and return the chunk before CT_DECLSPEC.
- * Otherwise return pc.
- */
-chunk_t *skip_declspec_prev(chunk_t *pc);
-
-
-/**
- * If pc is a CT_BRACE_OPEN, CT_PAREN_OPEN or CT_SQUARE_OPEN, then skip
- * forward to the next non-comment/non-newline chunk following the matching
- * CT_BRACE_CLOSE, CT_PAREN_CLOSE or CT_SQUARE_CLOSE; if pc is none of these
- * upon calling this function, then pc is returned.
- */
-chunk_t *skip_matching_brace_bracket_paren_next(chunk_t *pc);
-
-
-/**
- * If pc is a CT_BRACE_CLOSE, CT_PAREN_CLOSE or CT_SQUARE_CLOSE, then skip
- * in reverse to the first non-comment/non-newline chunk preceding the matching
- * CT_BRACE_OPEN, CT_PAREN_OPEN or CT_SQUARE_OPEN; if pc is none of these upon
- * calling this function, then pc is returned.
- */
-chunk_t *skip_to_chunk_before_matching_brace_bracket_paren_rev(chunk_t *pc);
-
-
-#endif /* COMBINE_SKIP_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/combine_tools.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/combine_tools.cpp
deleted file mode 100644
index 9a942367..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/combine_tools.cpp
+++ /dev/null
@@ -1,559 +0,0 @@
-/**
- * @file combine_tools.cpp
- *
- * @author Guy Maurel
- * @license GPL v2+
- * extract from combine.cpp
- */
-
-#include "combine_tools.h"
-
-#include "unc_ctype.h"
-#include "uncrustify.h"
-
-
-bool can_be_full_param(chunk_t *start, chunk_t *end)
-{
- LOG_FUNC_ENTRY();
-
- LOG_FMT(LFPARAM, "%s(%d): start->text() is '%s', type is %s\n",
- __func__, __LINE__, start->text(), get_token_name(start->type));
- LOG_FMT(LFPARAM, "%s(%d): end->text() is '%s', type is %s\n",
- __func__, __LINE__, end->text(), get_token_name(end->type));
-
- int word_count = 0;
- int type_count = 0;
- chunk_t *pc = nullptr;
- chunk_t *first_word = nullptr;
- bool first_word_set = false;
-
- for (pc = start;
- pc != nullptr && pc != end;
- pc = chunk_get_next_ncnnl(pc, scope_e::PREPROC))
- {
- LOG_FMT(LFPARAM, "%s(%d): pc->text() is '%s', type is %s\n",
- __func__, __LINE__, pc->text(), get_token_name(pc->type));
-
- if ( chunk_is_token(pc, CT_QUALIFIER)
- || chunk_is_token(pc, CT_STRUCT)
- || chunk_is_token(pc, CT_ENUM)
- || chunk_is_token(pc, CT_UNION)
- || chunk_is_token(pc, CT_TYPENAME))
- {
- LOG_FMT(LFPARAM, "%s(%d): <== %s! (yes)\n",
- __func__, __LINE__, get_token_name(pc->type));
- return(true);
- }
-
- if ( chunk_is_token(pc, CT_WORD)
- || chunk_is_token(pc, CT_TYPE))
- {
- ++word_count;
-
- if (!first_word_set)
- {
- first_word = pc;
- first_word_set = true;
- }
-
- if (chunk_is_token(pc, CT_TYPE))
- {
- ++type_count;
- }
- }
- else if ( chunk_is_token(pc, CT_MEMBER)
- || chunk_is_token(pc, CT_DC_MEMBER))
- {
- if (word_count > 0)
- {
- --word_count;
- }
- }
- else if ( pc != start
- && chunk_is_ptr_operator(pc))
- {
- // chunk is OK
- }
- else if (chunk_is_token(pc, CT_ASSIGN))
- {
- // chunk is OK (default values)
- break;
- }
- else if (chunk_is_token(pc, CT_ANGLE_OPEN))
- {
- LOG_FMT(LFPARAM, "%s(%d): <== template\n",
- __func__, __LINE__);
-
- return(true);
- }
- else if (chunk_is_token(pc, CT_ELLIPSIS))
- {
- LOG_FMT(LFPARAM, "%s(%d): <== elipses\n",
- __func__, __LINE__);
-
- return(true);
- }
- else if ( word_count == 0
- && chunk_is_token(pc, CT_PAREN_OPEN))
- {
- // Check for old-school func proto param '(type)'
- chunk_t *tmp1 = chunk_skip_to_match(pc, scope_e::PREPROC);
-
- if (tmp1 == nullptr)
- {
- return(false);
- }
- chunk_t *tmp2 = chunk_get_next_ncnnl(tmp1, scope_e::PREPROC);
-
- if (tmp2 == nullptr)
- {
- return(false);
- }
-
- if ( chunk_is_token(tmp2, CT_COMMA)
- || chunk_is_paren_close(tmp2))
- {
- do
- {
- pc = chunk_get_next_ncnnl(pc, scope_e::PREPROC);
-
- if (pc == nullptr)
- {
- return(false);
- }
- LOG_FMT(LFPARAM, "%s(%d): pc->text() is '%s', type is %s\n",
- __func__, __LINE__, pc->text(), get_token_name(pc->type));
- } while (pc != tmp1);
-
- // reset some vars to allow [] after parens
- word_count = 1;
- type_count = 1;
- }
- else
- {
- LOG_FMT(LFPARAM, "%s(%d): <== '%s' not fcn type!\n",
- __func__, __LINE__, get_token_name(pc->type));
- return(false);
- }
- }
- else if ( ( word_count == 1
- || (word_count == type_count))
- && chunk_is_token(pc, CT_PAREN_OPEN))
- {
- // Check for func proto param 'void (*name)' or 'void (*name)(params)' or 'void (^name)(params)'
- // <name> can be optional
- chunk_t *tmp1 = chunk_get_next_ncnnl(pc, scope_e::PREPROC);
-
- if (tmp1 == nullptr)
- {
- return(false);
- }
- chunk_t *tmp2 = chunk_get_next_ncnnl(tmp1, scope_e::PREPROC);
-
- if (tmp2 == nullptr)
- {
- return(false);
- }
- chunk_t *tmp3 = (chunk_is_str(tmp2, ")", 1)) ? tmp2 : chunk_get_next_ncnnl(tmp2, scope_e::PREPROC);
-
- if (tmp3 == nullptr)
- {
- return(false);
- }
-
- if ( !chunk_is_str(tmp3, ")", 1)
- || !( chunk_is_str(tmp1, "*", 1)
- || chunk_is_str(tmp1, "^", 1)) // Issue #2656
- || !( tmp2->type == CT_WORD
- || chunk_is_str(tmp2, ")", 1)))
- {
- LOG_FMT(LFPARAM, "%s(%d): <== '%s' not fcn type!\n",
- __func__, __LINE__, get_token_name(pc->type));
- return(false);
- }
- LOG_FMT(LFPARAM, "%s(%d): <skip fcn type>\n",
- __func__, __LINE__);
-
- tmp1 = chunk_get_next_ncnnl(tmp3, scope_e::PREPROC);
-
- if (tmp1 == nullptr)
- {
- return(false);
- }
-
- if (chunk_is_str(tmp1, "(", 1))
- {
- tmp3 = chunk_skip_to_match(tmp1, scope_e::PREPROC);
- }
- pc = tmp3;
- LOG_FMT(LFPARAM, "%s(%d): pc->text() is '%s', type is %s\n",
- __func__, __LINE__, pc->text(), get_token_name(pc->type));
-
- // reset some vars to allow [] after parens
- word_count = 1;
- type_count = 1;
- }
- else if (chunk_is_token(pc, CT_TSQUARE))
- {
- // ignore it
- }
- else if ( word_count == 1
- && chunk_is_token(pc, CT_SQUARE_OPEN))
- {
- // skip over any array stuff
- pc = chunk_skip_to_match(pc, scope_e::PREPROC);
- LOG_FMT(LFPARAM, "%s(%d): pc->text() is '%s', type is %s\n",
- __func__, __LINE__, pc->text(), get_token_name(pc->type));
- }
- else if ( word_count == 2
- && chunk_is_token(pc, CT_SQUARE_OPEN))
- {
- // Bug #671: is it such as: bool foo[FOO_MAX]
- pc = chunk_skip_to_match(pc, scope_e::PREPROC);
- LOG_FMT(LFPARAM, "%s(%d): pc->text() is '%s', type is %s\n",
- __func__, __LINE__, pc->text(), get_token_name(pc->type));
- }
- else if ( word_count == 1
- && language_is_set(LANG_CPP)
- && chunk_is_str(pc, "&&", 2))
- {
- // ignore possible 'move' operator
- }
- else
- {
- LOG_FMT(LFPARAM, "%s(%d): <== type is %s, no way!, type count is %d, word count is %d\n",
- __func__, __LINE__, get_token_name(pc->type), type_count, word_count);
- return(false);
- }
- LOG_FMT(LFPARAM, "%s(%d): pc->text() is '%s', type is %s\n",
- __func__, __LINE__, pc->text(), get_token_name(pc->type));
- }
-
- chunk_t *last = chunk_get_prev_ncnnlni(pc); // Issue #2279
-
- LOG_FMT(LFPARAM, "%s(%d): last->text() is '%s', type is %s\n",
- __func__, __LINE__, last->text(), get_token_name(last->type));
-
- if (chunk_is_ptr_operator(last))
- {
- LOG_FMT(LFPARAM, "%s(%d): <== type is %s, sure!\n",
- __func__, __LINE__, get_token_name(last->type));
- return(true);
- }
-
- if ( word_count < 2
- && type_count < 1
- && start->brace_level > 0)
- {
- LOG_FMT(LFPARAM, "%s(%d): !MVP!\n",
- __func__, __LINE__);
- // Oh, joy, we are in Most Vexing Parse territory
- auto const brace =
- chunk_get_prev_type(start, CT_BRACE_OPEN, start->brace_level - 1);
-
- if (brace != nullptr)
- {
- LOG_FMT(LFPARAM, "%s(%d): (matching %s brace at orig_line %zu, orig_col is %zu)",
- __func__, __LINE__,
- get_token_name(get_chunk_parent_type(brace)), brace->orig_line, brace->orig_col);
- }
-
- if ( brace != nullptr
- && ( get_chunk_parent_type(brace) == CT_CLASS
- || get_chunk_parent_type(brace) == CT_STRUCT))
- {
- // A Most Vexing Parse variable declaration cannot occur in the body
- // of a struct/class, so we probably have a function prototype
- LOG_FMT(LFPARAM, "%s(%d): <== type is %s, Likely!\n",
- __func__, __LINE__, (pc == nullptr ? "nullptr" : get_token_name(pc->type)));
- return(true);
- }
- }
- LOG_FMT(LFPARAM, "%s(%d): pc->text() is '%s', word_count is %d, type_count is %d\n",
- __func__, __LINE__, pc->text(), word_count, type_count);
-
- if (first_word != nullptr)
- {
- LOG_FMT(LFPARAM, "%s(%d): first_word->text() is '%s'\n",
- __func__, __LINE__, first_word->text());
- }
- bool ret = ( word_count >= 2
- || ( word_count == 1
- && type_count == 1));
-
- LOG_FMT(LFPARAM, "%s(%d): ret is %s\n",
- __func__, __LINE__, ret ? "TRUE" : "FALSE");
-
- LOG_FMT(LFPARAM, "%s(%d): pc->text() is '%s', ",
- __func__, __LINE__, pc->text());
- LOG_FMT(LFPARAM, "<== type is %s, ",
- (pc == nullptr ? "nullptr" : get_token_name(pc->type)));
-
- if (ret)
- {
- LOG_FMT(LFPARAM, "Yup!\n");
- }
- else
- {
- LOG_FMT(LFPARAM, "Unlikely!\n");
- }
- return(ret);
-} // can_be_full_param
-
-
-bool chunk_ends_type(chunk_t *start)
-{
- LOG_FUNC_ENTRY();
- chunk_t *pc = start;
- bool ret = false;
- size_t cnt = 0;
- bool last_expr = false;
- bool last_lval = false;
-
- bool a = pc->flags.test(PCF_IN_FCN_CTOR);
-
- if (a)
- {
- return(false);
- }
-
- for ( ; pc != nullptr; pc = chunk_get_prev_ncnnlni(pc)) // Issue #2279
- {
- LOG_FMT(LFTYPE, "%s(%d): type is %s, text() '%s', orig_line %zu, orig_col %zu\n ",
- __func__, __LINE__, get_token_name(pc->type), pc->text(),
- pc->orig_line, pc->orig_col);
- log_pcf_flags(LFTYPE, pc->flags);
-
- if ( chunk_is_token(pc, CT_WORD)
- || chunk_is_token(pc, CT_TYPE)
- || chunk_is_token(pc, CT_PTR_TYPE)
- || chunk_is_token(pc, CT_STAR)
- || chunk_is_token(pc, CT_STRUCT)
- || chunk_is_token(pc, CT_DC_MEMBER)
- || chunk_is_token(pc, CT_PP)
- || chunk_is_token(pc, CT_QUALIFIER)
- || ( language_is_set(LANG_CPP | LANG_OC) // Issue #2727
- && get_chunk_parent_type(pc) == CT_TEMPLATE
- && ( chunk_is_token(pc, CT_ANGLE_OPEN)
- || chunk_is_token(pc, CT_ANGLE_CLOSE)))
- || ( language_is_set(LANG_CS)
- && (chunk_is_token(pc, CT_MEMBER))))
- {
- cnt++;
- last_expr = pc->flags.test(PCF_EXPR_START)
- && !pc->flags.test(PCF_IN_FCN_CALL);
- last_lval = pc->flags.test(PCF_LVALUE);
- continue;
- }
- /* If a comma is encountered within a template, it must be
- * considered within the context of its immediate parent
- * template (i.e. argument list nest level)
- */
-
- if ( ( chunk_is_semicolon(pc)
- && !pc->flags.test(PCF_IN_FOR))
- || chunk_is_token(pc, CT_TYPEDEF)
- || chunk_is_token(pc, CT_BRACE_OPEN)
- || chunk_is_token(pc, CT_BRACE_CLOSE)
- || chunk_is_token(pc, CT_VBRACE_CLOSE)
- || chunk_is_token(pc, CT_FPAREN_CLOSE)
- || chunk_is_forin(pc)
- || chunk_is_token(pc, CT_MACRO)
- || chunk_is_token(pc, CT_PP_IF)
- || chunk_is_token(pc, CT_PP_ELSE)
- || chunk_is_token(pc, CT_PP_ENDIF)
- || get_chunk_parent_type(pc) == CT_PP_INCLUDE // Issue #3233
- || ( ( chunk_is_token(pc, CT_COMMA)
- && !pc->flags.test(PCF_IN_FCN_CALL)
- && get_cpp_template_angle_nest_level(start) ==
- get_cpp_template_angle_nest_level(pc))
- && last_expr)
- || ( chunk_is_token(pc, CT_SPAREN_OPEN)
- && last_lval))
- {
- ret = cnt > 0;
- }
- break;
- }
-
- if (pc == nullptr)
- {
- // first token
- ret = true;
- }
- LOG_FMT(LFTYPE, "%s(%d): first token verdict: %s\n",
- __func__, __LINE__, ret ? "yes" : "no");
-
- return(ret);
-} // chunk_ends_type
-
-
-bool chunkstack_match(ChunkStack &cs, chunk_t *pc)
-{
- for (size_t idx = 0; idx < cs.Len(); idx++)
- {
- chunk_t *tmp = cs.GetChunk(idx);
-
- if (pc->str.equals(tmp->str))
- {
- return(true);
- }
- }
-
- return(false);
-} // chunkstack_match
-
-
-void flag_series(chunk_t *start, chunk_t *end, pcf_flags_t set_flags, pcf_flags_t clr_flags, scope_e nav)
-{
- LOG_FUNC_ENTRY();
-
- while ( start != nullptr
- && start != end)
- {
- chunk_flags_upd(start, clr_flags, set_flags);
-
- start = chunk_get_next(start, nav);
-
- if (start == nullptr)
- {
- return;
- }
- }
-
- if (end != nullptr)
- {
- chunk_flags_upd(end, clr_flags, set_flags);
- }
-} // flag_series
-
-
-size_t get_cpp_template_angle_nest_level(chunk_t *pc)
-{
- LOG_FUNC_ENTRY();
- int nestLevel = 0;
-
- while ( pc != nullptr
- && pc->flags.test(PCF_IN_TEMPLATE))
- {
- if ( chunk_is_token(pc, CT_ANGLE_CLOSE)
- && get_chunk_parent_type(pc) == CT_TEMPLATE)
- {
- --nestLevel;
- }
- else if ( chunk_is_token(pc, CT_ANGLE_OPEN)
- && get_chunk_parent_type(pc) == CT_TEMPLATE)
- {
- ++nestLevel;
- }
- pc = chunk_get_prev_ncnnlni(pc);
- }
- return(nestLevel <= 0 ? 0 : size_t(nestLevel));
-}
-
-
-chunk_t *get_d_template_types(ChunkStack &cs, chunk_t *open_paren)
-{
- LOG_FUNC_ENTRY();
- chunk_t *tmp = open_paren;
- bool maybe_type = true;
-
- while ( ((tmp = chunk_get_next_ncnnl(tmp)) != nullptr)
- && tmp->level > open_paren->level)
- {
- if ( chunk_is_token(tmp, CT_TYPE)
- || chunk_is_token(tmp, CT_WORD))
- {
- if (maybe_type)
- {
- make_type(tmp);
- cs.Push_Back(tmp);
- }
- maybe_type = false;
- }
- else if (chunk_is_token(tmp, CT_COMMA))
- {
- maybe_type = true;
- }
- }
- return(tmp);
-} // get_d_template_types
-
-
-bool go_on(chunk_t *pc, chunk_t *start)
-{
- if ( pc == nullptr
- || pc->level != start->level)
- {
- return(false);
- }
-
- if (pc->flags.test(PCF_IN_FOR))
- {
- return( (!chunk_is_semicolon(pc))
- && (!(chunk_is_token(pc, CT_COLON))));
- }
- return(!chunk_is_semicolon(pc));
-} // go_on
-
-
-bool is_ucase_str(const char *str, size_t len)
-{
- while (len-- > 0)
- {
- if (unc_toupper(*str) != *str)
- {
- return(false);
- }
- str++;
- }
- return(true);
-} // is_ucase_str
-
-
-void make_type(chunk_t *pc)
-{
- LOG_FUNC_ENTRY();
-
- if (pc != nullptr)
- {
- if (chunk_is_token(pc, CT_WORD))
- {
- set_chunk_type(pc, CT_TYPE);
- }
- else if ( ( chunk_is_star(pc)
- || chunk_is_msref(pc)
- || chunk_is_nullable(pc))
- && chunk_is_type(pc->prev)) // Issue # 2640
- {
- set_chunk_type(pc, CT_PTR_TYPE);
- }
- else if ( chunk_is_addr(pc)
- && !chunk_is_token(pc->prev, CT_SQUARE_OPEN)) // Issue # 2166
- {
- set_chunk_type(pc, CT_BYREF);
- }
- }
-} // make_type
-
-
-chunk_t *set_paren_parent(chunk_t *start, c_token_t parent)
-{
- LOG_FUNC_ENTRY();
- chunk_t *end;
-
- end = chunk_skip_to_match(start, scope_e::PREPROC);
-
- if (end != nullptr)
- {
- LOG_FMT(LFLPAREN, "%s(%d): %zu:%zu '%s' and %zu:%zu '%s' type is %s, parent_type is %s",
- __func__, __LINE__, start->orig_line, start->orig_col, start->text(),
- end->orig_line, end->orig_col, end->text(),
- get_token_name(start->type), get_token_name(parent));
- log_func_stack_inline(LFLPAREN);
- set_chunk_parent(start, parent);
- set_chunk_parent(end, parent);
- }
- LOG_FMT(LFLPAREN, "%s(%d):\n", __func__, __LINE__);
- return(chunk_get_next_ncnnl(end, scope_e::PREPROC));
-} // set_paren_parent
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/combine_tools.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/combine_tools.h
deleted file mode 100644
index f7f83d12..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/combine_tools.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/**
- * @file combine_tools.h
- *
- * @author Guy Maurel
- * @license GPL v2+
- * extract from combine.cpp
- */
-
-#ifndef COMBINE_TOOLS_H_INCLUDED
-#define COMBINE_TOOLS_H_INCLUDED
-
-#include "chunk_list.h"
-#include "ChunkStack.h"
-
-/**
- * Checks to see if a series of chunks could be a C++ parameter
- * FOO foo(5, &val);
- *
- * WORD means CT_WORD or CT_TYPE
- *
- * "WORD WORD" ==> true
- * "QUALIFIER ??" ==> true
- * "TYPE" ==> true
- * "WORD" ==> true
- * "WORD.WORD" ==> true
- * "WORD::WORD" ==> true
- * "WORD * WORD" ==> true
- * "WORD & WORD" ==> true
- * "NUMBER" ==> false
- * "STRING" ==> false
- * "OPEN PAREN" ==> false
- *
- * @param start the first chunk to look at
- * @param end the chunk after the last one to look at
- */
-bool can_be_full_param(chunk_t *start, chunk_t *end);
-
-
-//! Scan backwards to see if we might be on a type declaration
-bool chunk_ends_type(chunk_t *start);
-
-
-bool chunkstack_match(ChunkStack &cs, chunk_t *pc);
-
-
-///**
-// * Simply change any STAR to PTR_TYPE and WORD to TYPE
-// *
-// * @param start points to the open paren
-// */
-void fix_fcn_def_params(chunk_t *pc);
-
-
-void flag_series(chunk_t *start, chunk_t *end, pcf_flags_t set_flags, pcf_flags_t clr_flags = {}, scope_e nav = scope_e::ALL);
-
-
-/*
- * Checks whether or not a given chunk has a parent cpp template,
- * and if so returns the associated angle bracket nest level
- * with respect to the root parent template; returns 0 if
- * the chunk is not part of a template parameter list
- */
-size_t get_cpp_template_angle_nest_level(chunk_t *pc);
-
-
-/**
- * Parse off the types in the D template args, adds to cs
- * returns the close_paren
- */
-chunk_t *get_d_template_types(ChunkStack &cs, chunk_t *open_paren);
-
-
-//! help function for mark_variable_definition...
-bool go_on(chunk_t *pc, chunk_t *start);
-
-
-bool is_ucase_str(const char *str, size_t len);
-
-
-void make_type(chunk_t *pc);
-
-chunk_t *set_paren_parent(chunk_t *start, c_token_t parent);
-
-
-#endif /* COMBINE_TOOLS_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/compat_win32.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/compat_win32.cpp
deleted file mode 100644
index d7292466..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/compat_win32.cpp
+++ /dev/null
@@ -1,82 +0,0 @@
-/**
- * @file compat_win32.cpp
- * Compatibility functions for win32
- *
- * @author Ben Gardner
- * @license GPL v2+
- */
-
-#if defined (_WIN32) \
- && !defined (__CYGWIN__)
-
-#include "windows_compat.h"
-
-#include <cstdio>
-#include <string>
-
-
-bool unc_getenv(const char *name, std::string &str)
-{
- DWORD len = GetEnvironmentVariableA(name, NULL, 0);
- char *buf;
-
- if (len == 0)
- {
- if (GetLastError() == ERROR_ENVVAR_NOT_FOUND)
- {
- return(false);
- }
- }
- buf = (char *)malloc(len);
-
- if (buf)
- {
- len = GetEnvironmentVariableA(name, buf, len);
- }
- buf[len] = 0;
-
- str = buf;
- //printf("%s: name=%s len=%d value=%s\n", __func__, name, (int)len, str.c_str());
- free(buf);
-
- return(true);
-}
-
-
-bool unc_homedir(std::string &home)
-{
- if (unc_getenv("HOME", home))
- {
- return(true);
- }
-
- if (unc_getenv("USERPROFILE", home))
- {
- return(true);
- }
- std::string hd, hp;
-
- if ( unc_getenv("HOMEDRIVE", hd)
- && unc_getenv("HOMEPATH", hp))
- {
- home = hd + hp;
- return(true);
- }
- return(false);
-}
-
-
-void convert_log_zu2lu(char *fmt)
-{
- for (size_t i = 0; i < strlen(fmt); i++)
- {
- if ( (fmt[i] == '%')
- && (fmt[i + 1] == 'z')
- && (fmt[i + 2] == 'u'))
- {
- fmt[i + 1] = 'l';
- }
- }
-}
-
-#endif /* if defined(_WIN32) && !defined(__CYGWIN__) */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/cs_top_is_question.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/cs_top_is_question.cpp
deleted file mode 100644
index d358912c..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/cs_top_is_question.cpp
+++ /dev/null
@@ -1,20 +0,0 @@
-/**
- * @file cs_top_is_question.cpp
- *
- * @author Guy Maurel
- * @license GPL v2+
- * extract from combine.cpp
- */
-
-#include "cs_top_is_question.h"
-
-#include "chunk_list.h"
-
-
-bool cs_top_is_question(ChunkStack &cs, size_t level)
-{
- chunk_t *pc = cs.Empty() ? nullptr : cs.Top()->m_pc;
-
- return( chunk_is_token(pc, CT_QUESTION)
- && pc->level == level);
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/detect.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/detect.cpp
deleted file mode 100644
index f3629e9f..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/detect.cpp
+++ /dev/null
@@ -1,439 +0,0 @@
-/**
- * @file detect.cpp
- * Scans the parsed file and tries to determine options.
- *
- * @author Ben Gardner
- * @license GPL v2+
- */
-
-#include "detect.h"
-
-#include "prototypes.h"
-
-
-using namespace uncrustify;
-
-
-//! Detect spacing options
-static void detect_space_options(void);
-
-
-class sp_votes
-{
-protected:
- size_t m_add = 0;
- size_t m_remove = 0;
- size_t m_force = 0;
- Option<iarf_e> &m_option;
-
-public:
- sp_votes(Option<iarf_e> &opt)
- : m_option(opt)
- {}
-
- //! Figure out the result of the vote and maybe update *m_av
- ~sp_votes();
-
- void vote(chunk_t *first, chunk_t *second);
-};
-
-
-void sp_votes::vote(chunk_t *first, chunk_t *second)
-{
- if ( first == nullptr
- || chunk_is_newline(first)
- || second == nullptr
- || chunk_is_newline(second))
- {
- return;
- }
- int col_dif = second->column - (first->column + first->len());
-
- if (col_dif == 0)
- {
- m_remove++;
- }
- else if (col_dif == 1)
- {
- m_force++;
- }
- else
- {
- m_add++;
- }
-}
-
-
-//! Figure out the result of the vote and maybe update *m_av
-sp_votes::~sp_votes()
-{
- // no change if no items were added
- if ( m_remove == 0
- && m_add == 0
- && m_force == 0)
- {
- return;
- }
-
- if (m_remove == 0)
- {
- m_option = (m_force > m_add) ? IARF_FORCE : IARF_ADD;
- }
- else if ( m_force == 0
- && m_add == 0)
- {
- m_option = IARF_REMOVE;
- }
- else
- {
- // nothing conclusive. do not alter.
- }
-}
-
-
-// generates "vote_sp_xxx" variable name from uncrustify option name "UO_xxx"
-#define SP_VOTE_VAR(x) sp_votes vote_ ## x(options::x)
-
-
-static void detect_space_options(void)
-{
- SP_VOTE_VAR(sp_arith);
- SP_VOTE_VAR(sp_before_assign);
- SP_VOTE_VAR(sp_after_assign);
- SP_VOTE_VAR(sp_enum_before_assign);
- SP_VOTE_VAR(sp_enum_after_assign);
- SP_VOTE_VAR(sp_bool);
- SP_VOTE_VAR(sp_compare);
- SP_VOTE_VAR(sp_inside_paren);
- SP_VOTE_VAR(sp_paren_paren);
- SP_VOTE_VAR(sp_paren_brace);
- SP_VOTE_VAR(sp_before_ptr_star);
- SP_VOTE_VAR(sp_before_unnamed_ptr_star);
- SP_VOTE_VAR(sp_between_ptr_star);
- SP_VOTE_VAR(sp_after_ptr_star);
- SP_VOTE_VAR(sp_after_byref);
- SP_VOTE_VAR(sp_before_byref);
- SP_VOTE_VAR(sp_before_unnamed_byref);
- SP_VOTE_VAR(sp_after_type);
- SP_VOTE_VAR(sp_template_angle);
- SP_VOTE_VAR(sp_before_angle);
- SP_VOTE_VAR(sp_inside_angle);
- SP_VOTE_VAR(sp_after_angle);
- SP_VOTE_VAR(sp_angle_paren);
- SP_VOTE_VAR(sp_angle_word);
- SP_VOTE_VAR(sp_before_square);
- SP_VOTE_VAR(sp_before_squares);
- SP_VOTE_VAR(sp_inside_square);
- SP_VOTE_VAR(sp_before_sparen);
- SP_VOTE_VAR(sp_inside_sparen);
- SP_VOTE_VAR(sp_after_sparen);
- SP_VOTE_VAR(sp_sparen_brace);
- SP_VOTE_VAR(sp_special_semi);
- SP_VOTE_VAR(sp_before_semi);
- SP_VOTE_VAR(sp_before_semi_for);
- SP_VOTE_VAR(sp_before_semi_for_empty);
- SP_VOTE_VAR(sp_after_semi_for_empty);
- SP_VOTE_VAR(sp_after_comma);
- SP_VOTE_VAR(sp_before_comma);
- SP_VOTE_VAR(sp_after_class_colon);
- SP_VOTE_VAR(sp_before_class_colon);
- SP_VOTE_VAR(sp_inside_braces);
- SP_VOTE_VAR(sp_inside_braces_empty);
- SP_VOTE_VAR(sp_else_brace);
- SP_VOTE_VAR(sp_brace_else);
- SP_VOTE_VAR(sp_catch_brace);
- SP_VOTE_VAR(sp_brace_catch);
- SP_VOTE_VAR(sp_finally_brace);
- SP_VOTE_VAR(sp_brace_finally);
- SP_VOTE_VAR(sp_try_brace);
- SP_VOTE_VAR(sp_getset_brace);
-
- chunk_t *prev = chunk_get_head();
- chunk_t *pc = chunk_get_next(prev);
- chunk_t *next;
-
- while (pc != nullptr)
- {
- next = chunk_get_next(pc);
-
- if (next == nullptr)
- {
- break;
- }
-
- if ( chunk_is_token(pc, CT_ARITH)
- || chunk_is_token(pc, CT_SHIFT))
- {
- vote_sp_arith.vote(pc, next);
- vote_sp_arith.vote(prev, pc);
- }
-
- if (chunk_is_token(pc, CT_ASSIGN))
- {
- if (!pc->flags.test(PCF_IN_ENUM))
- {
- vote_sp_before_assign.vote(prev, pc);
- vote_sp_after_assign.vote(pc, next);
- }
- else
- {
- vote_sp_enum_before_assign.vote(prev, pc);
- vote_sp_enum_after_assign.vote(pc, next);
- }
- }
-
- if (chunk_is_token(pc, CT_SQUARE_OPEN))
- {
- vote_sp_before_square.vote(prev, pc);
- vote_sp_inside_square.vote(pc, next);
- }
-
- if (chunk_is_token(pc, CT_SQUARE_CLOSE))
- {
- vote_sp_inside_square.vote(prev, pc);
- }
-
- if (chunk_is_token(pc, CT_TSQUARE))
- {
- vote_sp_before_squares.vote(prev, pc);
- }
-
- if (chunk_is_token(pc, CT_BOOL))
- {
- vote_sp_bool.vote(prev, pc);
- vote_sp_bool.vote(pc, next);
- }
-
- if (chunk_is_token(pc, CT_COMPARE))
- {
- vote_sp_compare.vote(prev, pc);
- vote_sp_compare.vote(pc, next);
- }
-
- if (chunk_is_token(pc, CT_PAREN_CLOSE))
- {
- vote_sp_inside_paren.vote(prev, pc);
- }
-
- if (chunk_is_token(pc, CT_PAREN_OPEN))
- {
- vote_sp_inside_paren.vote(pc, next);
- }
-
- if ( ( chunk_is_paren_open(pc)
- && chunk_is_paren_open(next))
- || ( chunk_is_paren_close(pc)
- && chunk_is_paren_close(next)))
- {
- vote_sp_paren_paren.vote(pc, next);
- }
-
- if ( chunk_is_paren_close(pc)
- && chunk_is_token(next, CT_BRACE_OPEN))
- {
- vote_sp_paren_brace.vote(pc, next);
- }
-
- if (chunk_is_token(pc, CT_PTR_TYPE))
- {
- if (chunk_is_token(prev, CT_PTR_TYPE))
- {
- vote_sp_between_ptr_star.vote(prev, pc);
- }
- else if (next->type != CT_WORD)
- {
- vote_sp_before_unnamed_ptr_star.vote(prev, pc);
- }
- else
- {
- vote_sp_before_ptr_star.vote(prev, pc);
- }
-
- if (CharTable::IsKw1(next->str[0]))
- {
- vote_sp_after_ptr_star.vote(pc, next);
- }
- }
-
- if (chunk_is_token(pc, CT_BYREF))
- {
- if (next->type != CT_WORD)
- {
- vote_sp_before_unnamed_byref.vote(prev, pc);
- }
- else
- {
- vote_sp_before_byref.vote(prev, pc);
- }
- vote_sp_after_byref.vote(pc, next);
- }
-
- if ( pc->type != CT_PTR_TYPE
- && ( chunk_is_token(prev, CT_QUALIFIER)
- || chunk_is_token(prev, CT_TYPE)))
- {
- vote_sp_after_type.vote(prev, pc);
- }
-
- if (chunk_is_token(pc, CT_ANGLE_OPEN))
- {
- vote_sp_inside_angle.vote(pc, next);
-
- if (chunk_is_token(prev, CT_TEMPLATE))
- {
- vote_sp_template_angle.vote(prev, pc);
- }
- else
- {
- vote_sp_before_angle.vote(prev, pc);
- }
- }
-
- if (chunk_is_token(pc, CT_ANGLE_CLOSE))
- {
- vote_sp_inside_angle.vote(prev, pc);
-
- if (chunk_is_paren_open(next))
- {
- vote_sp_angle_paren.vote(prev, pc);
- }
- else if ( chunk_is_token(next, CT_WORD)
- || CharTable::IsKw1(next->str[0]))
- {
- vote_sp_angle_word.vote(prev, pc);
- }
- else
- {
- vote_sp_after_angle.vote(pc, next);
- }
- }
-
- if (chunk_is_token(pc, CT_SPAREN_OPEN))
- {
- vote_sp_before_sparen.vote(prev, pc);
- vote_sp_inside_sparen.vote(pc, next);
- }
-
- if (chunk_is_token(pc, CT_SPAREN_CLOSE))
- {
- vote_sp_inside_sparen.vote(prev, pc);
-
- if (chunk_is_token(next, CT_BRACE_OPEN))
- {
- vote_sp_sparen_brace.vote(pc, next);
- }
- else
- {
- vote_sp_after_sparen.vote(pc, next);
- }
- }
-
- if (chunk_is_token(pc, CT_SEMICOLON))
- {
- if (get_chunk_parent_type(pc) == CT_FOR)
- {
- if (chunk_is_token(prev, CT_SPAREN_OPEN))
- {
- // empty, ie for (;;)
- // ^ is prev
- // ^ is pc
- vote_sp_before_semi_for_empty.vote(prev, pc);
- }
- else if (chunk_is_token(next, CT_SPAREN_CLOSE))
- {
- // empty, ie for (;;)
- // ^ is pc
- // ^ is next
- vote_sp_after_semi_for_empty.vote(pc, next);
- }
- else if (prev->type != CT_SEMICOLON)
- {
- // empty, ie for (; i < 8;)
- // ^ is pc
- // or
- // ^ is prev
- vote_sp_before_semi_for.vote(prev, pc);
- }
- }
- else if (chunk_is_token(prev, CT_VBRACE_OPEN))
- {
- vote_sp_special_semi.vote(chunk_get_prev(prev), pc);
- }
- else
- {
- vote_sp_before_semi.vote(prev, pc);
- }
- }
-
- if (chunk_is_token(pc, CT_COMMA))
- {
- vote_sp_before_comma.vote(prev, pc);
- vote_sp_after_comma.vote(pc, next);
- }
-
- if (chunk_is_token(pc, CT_CLASS_COLON))
- {
- vote_sp_before_class_colon.vote(prev, pc);
- vote_sp_after_class_colon.vote(pc, next);
- }
-
- if (chunk_is_token(pc, CT_BRACE_OPEN))
- {
- if (chunk_is_token(prev, CT_ELSE))
- {
- vote_sp_else_brace.vote(prev, pc);
- }
- else if (chunk_is_token(prev, CT_CATCH))
- {
- vote_sp_catch_brace.vote(prev, pc);
- }
- else if (chunk_is_token(prev, CT_FINALLY))
- {
- vote_sp_catch_brace.vote(prev, pc);
- }
- else if (chunk_is_token(prev, CT_TRY))
- {
- vote_sp_catch_brace.vote(prev, pc);
- }
- else if (chunk_is_token(prev, CT_GETSET))
- {
- vote_sp_catch_brace.vote(prev, pc);
- }
-
- if (chunk_is_token(next, CT_BRACE_CLOSE))
- {
- vote_sp_inside_braces_empty.vote(pc, next);
- }
- else
- {
- vote_sp_inside_braces.vote(pc, next);
- }
- }
-
- if (chunk_is_token(pc, CT_BRACE_CLOSE))
- {
- vote_sp_inside_braces.vote(prev, pc);
-
- if (chunk_is_token(next, CT_ELSE))
- {
- vote_sp_brace_else.vote(pc, next);
- }
- else if (chunk_is_token(next, CT_CATCH))
- {
- vote_sp_brace_catch.vote(pc, next);
- }
- else if (chunk_is_token(next, CT_FINALLY))
- {
- vote_sp_brace_finally.vote(pc, next);
- }
- }
- prev = pc;
- pc = next;
- }
-} // detect_space_options
-
-
-void detect_options(void)
-{
- detect_space_options();
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/enum_cleanup.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/enum_cleanup.cpp
deleted file mode 100644
index 7c04fbb0..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/enum_cleanup.cpp
+++ /dev/null
@@ -1,79 +0,0 @@
-/**
- * @file enum_cleanup.cpp
- * works on the last comma withing enum
- *
- * @author Guy Maurel Juli 2018
- * @license GPL v2+
- */
-
-#include "enum_cleanup.h"
-
-#include "log_rules.h"
-
-constexpr static auto LCURRENT = LTOK;
-
-using namespace uncrustify;
-
-
-void enum_cleanup(void)
-{
- LOG_FUNC_ENTRY();
-
- log_rule_B("mod_enum_last_comma");
-
- if (options::mod_enum_last_comma() == IARF_IGNORE)
- {
- // nothing to do
- return;
- }
- chunk_t *pc = chunk_get_head(); // Issue #858
-
- while (pc != nullptr)
- {
- if ( get_chunk_parent_type(pc) == CT_ENUM
- && chunk_is_token(pc, CT_BRACE_CLOSE))
- {
- LOG_FMT(LTOK, "%s(%d): orig_line is %zu, type is %s\n",
- __func__, __LINE__, pc->orig_line, get_token_name(pc->type));
- chunk_t *prev = chunk_get_prev_ncnnlnp(pc);
-
- // test of (prev == nullptr) is not necessary
- if (chunk_is_token(prev, CT_COMMA))
- {
- log_rule_B("mod_enum_last_comma");
-
- if (options::mod_enum_last_comma() == IARF_REMOVE)
- {
- chunk_del(prev);
- }
- }
- else
- {
- if (chunk_is_token(prev, CT_BRACE_OPEN)) // Issue #2902
- {
- // nothing betwen CT_BRACE_OPEN and CT_BRACE_CLOSE
- }
- else
- {
- log_rule_B("mod_enum_last_comma");
-
- if ( options::mod_enum_last_comma() == IARF_ADD
- || options::mod_enum_last_comma() == IARF_FORCE)
- {
- // create a comma
- chunk_t comma;
- set_chunk_type(&comma, CT_COMMA);
- comma.orig_line = prev->orig_line;
- comma.orig_col = prev->orig_col + 1;
- comma.nl_count = 0;
- comma.pp_level = 0;
- comma.flags = PCF_NONE;
- comma.str = ",";
- chunk_add_after(&comma, prev);
- }
- }
- }
- }
- pc = chunk_get_next(pc);
- }
-} // enum_cleanup
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/error_types.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/error_types.h
deleted file mode 100644
index f0ebb502..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/error_types.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/**
- * @file error_types.h
- *
- * Defines the error codes that are used throughout uncrustify
- *
- * @license GPL v2+
- */
-#ifndef ERROR_TYPES_H_INCLUDED
-#define ERROR_TYPES_H_INCLUDED
-
-#if 1
-#include <stdlib.h> // provides EXIT_SUCCESS and EXIT FAILURE
-
-// TODO: if we decided to only use EX_OK and EX_xxx we can avoid including stdlib.h here
-
-#else
-// TODO: I left this to show my modifications remove it after the PR was reviewed
-
-// the good old SUCCESS/FAILURE
-#define SUCCESS 0 //! same as EX_OK */
-#define FAILURE -1 //! incompatible to EXIT_FAILURE
-#endif
-
-
-#if defined (WIN32) || defined (__QNXNTO__)
-// Windows does not know sysexists.h. Thus define the error codes
-
-#define EX_OK 0 //! successful termination
-#define EX__BASE 64 //! base value for error messages
-#define EX_USAGE 64 //! command line usage error
-#define EX_DATAERR 65 //! data format error
-#define EX_NOINPUT 66 //! cannot open input
-#define EX_NOUSER 67 //! addressee unknown
-#define EX_NOHOST 68 //! host name unknown
-#define EX_UNAVAILABLE 69 //! service unavailable
-#define EX_SOFTWARE 70 //! internal software error
-#define EX_OSERR 71 //! system error (e.g., can't fork)
-#define EX_OSFILE 72 //! critical OS file missing
-#define EX_CANTCREAT 73 //! can't create (user) output file
-#define EX_IOERR 74 //! input/output error
-#define EX_TEMPFAIL 75 //! temp failure; user is invited to retry
-#define EX_PROTOCOL 76 //! remote error in protocol
-#define EX_NOPERM 77 //! permission denied
-#define EX_CONFIG 78 //! configuration error
-#define EX__MAX 78 //! maximum listed value
-
-#else // not WIN32 or not __QNXNTO__
-// TODO: do all non windows systems know sysexits.h, Linux probably not?
-#include "sysexits.h" // comes from BSD
-#endif
-
-#endif /* ERROR_TYPES_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/flag_braced_init_list.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/flag_braced_init_list.cpp
deleted file mode 100644
index 7e5badac..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/flag_braced_init_list.cpp
+++ /dev/null
@@ -1,108 +0,0 @@
-/**
- * @file flag_braced_init_list.cpp
- *
- * @license GPL v2+
- */
-
-#include "chunk_list.h"
-
-#include "flag_braced_init_list.h"
-
-#include "uncrustify.h"
-
-
-bool detect_cpp_braced_init_list(chunk_t *pc, chunk_t *next)
-{
- LOG_FUNC_ENTRY();
- // Issue #2332
- bool we_have_a_case_before = false;
-
- if (chunk_is_token(pc, CT_COLON))
- {
- // check if we have a case before
- chunk_t *switch_before = chunk_get_prev_type(pc, CT_CASE, pc->level);
-
- if (switch_before != nullptr)
- {
- LOG_FMT(LFCNR, "%s(%d): switch_before->orig_line is %zu, orig_col is %zu, text() is '%s', type is %s\n",
- __func__, __LINE__, switch_before->orig_line, switch_before->orig_col,
- switch_before->text(), get_token_name(switch_before->type));
- we_have_a_case_before = true;
- }
- }
-
- // Detect a braced-init-list
- if ( chunk_is_token(pc, CT_WORD)
- || chunk_is_token(pc, CT_TYPE)
- || chunk_is_token(pc, CT_ASSIGN)
- || chunk_is_token(pc, CT_RETURN)
- || chunk_is_token(pc, CT_COMMA)
- || chunk_is_token(pc, CT_ANGLE_CLOSE)
- || chunk_is_token(pc, CT_SQUARE_CLOSE)
- || chunk_is_token(pc, CT_TSQUARE)
- || chunk_is_token(pc, CT_FPAREN_OPEN)
- || chunk_is_token(pc, CT_QUESTION)
- || ( chunk_is_token(pc, CT_COLON)
- && !we_have_a_case_before)
- || ( chunk_is_token(pc, CT_BRACE_OPEN)
- && ( get_chunk_parent_type(pc) == CT_NONE
- || get_chunk_parent_type(pc) == CT_BRACED_INIT_LIST)))
- {
- log_pcf_flags(LFCNR, pc->flags);
- auto brace_open = chunk_get_next_ncnnl(pc);
-
- if ( chunk_is_token(brace_open, CT_BRACE_OPEN)
- && ( get_chunk_parent_type(brace_open) == CT_NONE
- || get_chunk_parent_type(brace_open) == CT_ASSIGN
- || get_chunk_parent_type(brace_open) == CT_RETURN
- || get_chunk_parent_type(brace_open) == CT_BRACED_INIT_LIST))
- {
- log_pcf_flags(LFCNR, brace_open->flags);
- auto brace_close = chunk_skip_to_match(next);
-
- if (chunk_is_token(brace_close, CT_BRACE_CLOSE))
- {
- return(true);
- }
- }
- }
- return(false);
-} // detect_cpp_braced_init_list
-
-
-void flag_cpp_braced_init_list(chunk_t *pc, chunk_t *next)
-{
- auto brace_open = chunk_get_next_ncnnl(pc);
- auto brace_close = chunk_skip_to_match(next);
-
- set_chunk_parent(brace_open, CT_BRACED_INIT_LIST);
- set_chunk_parent(brace_close, CT_BRACED_INIT_LIST);
-
- auto *tmp = chunk_get_next_ncnnl(brace_close);
-
- if (tmp != nullptr)
- {
- chunk_flags_clr(tmp, PCF_EXPR_START | PCF_STMT_START);
-
- // Flag call operator
- if (chunk_is_token(tmp, CT_PAREN_OPEN))
- {
- if (auto *const c = chunk_skip_to_match(tmp))
- {
- set_chunk_type(tmp, CT_FPAREN_OPEN);
- set_chunk_parent(tmp, CT_FUNC_CALL);
- set_chunk_type(c, CT_FPAREN_CLOSE);
- set_chunk_parent(c, CT_FUNC_CALL);
- }
- }
- }
- // TODO: Change pc->type CT_WORD -> CT_TYPE
- // for the case CT_ASSIGN (and others).
-
- // TODO: Move this block to the fix_fcn_call_args function.
- if ( chunk_is_token(pc, CT_WORD)
- && pc->flags.test(PCF_IN_FCN_CALL))
- {
- set_chunk_type(pc, CT_TYPE);
- }
-} // flag_cpp_braced_init_list
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/flag_braced_init_list.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/flag_braced_init_list.h
deleted file mode 100644
index 4500a260..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/flag_braced_init_list.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/**
- * @file flag_braced_init_list.h
- *
- * @license GPL v2+
- */
-
-#ifndef FLAG_BRACED_INIT_LIST_INCLUDED
-#define FLAG_BRACED_INIT_LIST_INCLUDED
-
-
-/**
- * Detect a cpp braced init list
- */
-bool detect_cpp_braced_init_list(chunk_t *pc, chunk_t *next);
-
-
-/**
- * Flags the opening and closing braces of an expression deemed to be
- * a cpp braced initializer list; a call to detect_cpp_braced_init_list()
- * should first be made prior to calling this function
- */
-void flag_cpp_braced_init_list(chunk_t *pc, chunk_t *next);
-
-
-#endif
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/flag_decltype.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/flag_decltype.cpp
deleted file mode 100644
index c5cc0134..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/flag_decltype.cpp
+++ /dev/null
@@ -1,37 +0,0 @@
-/**
- * @file flag_decltype.cpp
- *
- * @license GPL v2+
- */
-
-#include "chunk_list.h"
-
-
-bool flag_cpp_decltype(chunk_t *pc)
-{
- LOG_FUNC_ENTRY();
-
- if (chunk_is_token(pc, CT_DECLTYPE))
- {
- auto paren_open = chunk_get_next_ncnnl(pc);
-
- if (chunk_is_token(paren_open, CT_PAREN_OPEN))
- {
- auto close_paren = chunk_skip_to_match(paren_open);
-
- if (close_paren != nullptr)
- {
- pc = paren_open;
-
- do
- {
- chunk_flags_set(pc, PCF_IN_DECLTYPE);
- pc = pc->next;
- } while (pc != close_paren);
-
- return(true);
- }
- }
- }
- return(false);
-} // mark_cpp_decltype
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/flag_decltype.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/flag_decltype.h
deleted file mode 100644
index f6946575..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/flag_decltype.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/**
- * @file flag_decltype.h
- *
- * @license GPL v2+
- */
-
-#ifndef FLAG_DECLTYPE_INCLUDED
-#define FLAG_DECLTYPE_INCLUDED
-
-
-/**
- * Flags all chunks within a cpp decltype expression from the opening
- * brace to the closing brace
- *
- * @return Returns true if expression is a valid decltype expression
- */
-bool flag_cpp_decltype(chunk_t *pc);
-
-
-#endif
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/flag_parens.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/flag_parens.cpp
deleted file mode 100644
index c0983745..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/flag_parens.cpp
+++ /dev/null
@@ -1,72 +0,0 @@
-/**
- * @file flag_parens.cpp
- *
- * @author Guy Maurel
- * @license GPL v2+
- */
-
-#include "flag_parens.h"
-
-#include "uncrustify.h"
-
-
-chunk_t *flag_parens(chunk_t *po, pcf_flags_t flags, c_token_t opentype, c_token_t parenttype, bool parent_all)
-{
- LOG_FUNC_ENTRY();
- chunk_t *paren_close;
-
- paren_close = chunk_skip_to_match(po, scope_e::PREPROC);
-
- if (paren_close == nullptr)
- {
- LOG_FMT(LERR, "%s(%d): no match for '%s' at [%zu:%zu]",
- __func__, __LINE__, po->text(), po->orig_line, po->orig_col);
- log_func_stack_inline(LERR);
- cpd.error_count++;
- return(nullptr);
- }
- LOG_FMT(LFLPAREN, "%s(%d): between po is '%s', orig_line is %zu, orig_col is %zu, and\n",
- __func__, __LINE__, po->text(), po->orig_line, po->orig_col);
- LOG_FMT(LFLPAREN, "%s(%d): paren_close is '%s', orig_line is %zu, orig_col is %zu, type is %s, parent_type is %s\n",
- __func__, __LINE__, paren_close->text(), paren_close->orig_line, paren_close->orig_col,
- get_token_name(opentype), get_token_name(parenttype));
- log_func_stack_inline(LFLPAREN);
-
- // the last chunk must be also modified. Issue #2149
- chunk_t *after_paren_close = chunk_get_next(paren_close);
-
- if (po != paren_close)
- {
- if ( flags != PCF_NONE
- || ( parent_all
- && parenttype != CT_NONE))
- {
- chunk_t *pc;
-
- for (pc = chunk_get_next(po, scope_e::PREPROC);
- pc != nullptr && pc != after_paren_close;
- pc = chunk_get_next(pc, scope_e::PREPROC))
- {
- chunk_flags_set(pc, flags);
-
- if (parent_all)
- {
- set_chunk_parent(pc, parenttype);
- }
- }
- }
-
- if (opentype != CT_NONE)
- {
- set_chunk_type(po, opentype);
- set_chunk_type(paren_close, (c_token_t)(opentype + 1));
- }
-
- if (parenttype != CT_NONE)
- {
- set_chunk_parent(po, parenttype);
- set_chunk_parent(paren_close, parenttype);
- }
- }
- return(chunk_get_next_ncnnl(paren_close, scope_e::PREPROC));
-} // flag_parens
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/flag_parens.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/flag_parens.h
deleted file mode 100644
index 5c4d1e43..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/flag_parens.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/**
- * @file flag_parens.h
- *
- * @author Guy Maurel
- * @license GPL v2+
- */
-
-#ifndef FLAG_PARENS_H_INCLUDED
-#define FLAG_PARENS_H_INCLUDED
-
-#include "chunk_list.h"
-
-
-/**
- * Flags everything from the open paren to the close paren.
- *
- * @param po Pointer to the open parenthesis
- * @param flags flags to add
- * @param opentype
- * @param parenttype
- * @param parent_all
- *
- * @return The token after the close paren
- */
-chunk_t *flag_parens(chunk_t *po, pcf_flags_t flags, c_token_t opentype, c_token_t parenttype, bool parent_all);
-
-
-#endif /* FLAG_PARENS_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/frame_list.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/frame_list.cpp
deleted file mode 100644
index 82bc3781..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/frame_list.cpp
+++ /dev/null
@@ -1,299 +0,0 @@
-/**
- * @file frame_list.cpp
- * mainly used to handle preprocessor stuff
- *
- * @author Ben Gardner
- * @license GPL v2+
- */
-
-#include "frame_list.h"
-
-#include "prototypes.h"
-
-
-namespace
-{
-
-void fl_log_frms(log_sev_t logsev, const char *txt, const ParseFrame &frm, const std::vector<ParseFrame> &frames);
-
-
-//! Logs the entire parse frame stack
-void fl_log_all(log_sev_t logsev, const std::vector<ParseFrame> &frames);
-
-
-/**
- * Copy the top element of the frame list into the ParseFrame.
- *
- * If the frame list is empty nothing happens.
- *
- * This is called on #else and #elif.
- */
-void fl_copy_tos(ParseFrame &pf, const std::vector<ParseFrame> &frames);
-
-
-/**
- * Copy the 2nd top element off the list into the ParseFrame.
- * This is called on #else and #elif.
- * The stack contains [...] [base] [if] at this point.
- * We want to copy [base].
- */
-void fl_copy_2nd_tos(ParseFrame &pf, const std::vector<ParseFrame> &frames);
-
-
-//! Deletes the top element from the list.
-void fl_trash_tos(std::vector<ParseFrame> &frames);
-
-
-//! Logs one parse frame
-void fl_log(log_sev_t logsev, const ParseFrame &frm)
-{
- LOG_FMT(logsev, "[%s] BrLevel=%zu Level=%zu PseTos=%zu\n",
- get_token_name(frm.in_ifdef), frm.brace_level, frm.level, frm.size() - 1);
-
- LOG_FMT(logsev, " *");
-
- for (size_t idx = 1; idx < frm.size(); idx++)
- {
- LOG_FMT(logsev, " [%s-%s]", get_token_name(frm.at(idx).type),
- get_brace_stage_name(frm.at(idx).stage));
- }
-
- LOG_FMT(logsev, "\n");
-}
-
-
-void fl_log_frms(log_sev_t logsev,
- const char *txt,
- const ParseFrame &frm,
- const std::vector<ParseFrame> &frames)
-{
- LOG_FMT(logsev, "%s Parse Frames(%zu):", txt, frames.size());
-
- for (size_t idx = 0; idx < frames.size(); idx++)
- {
- LOG_FMT(logsev, " [%s-%zu]", get_token_name(frames.at(idx).in_ifdef),
- frames.at(idx).ref_no);
- }
-
- LOG_FMT(logsev, "-[%s-%zu]\n", get_token_name(frm.in_ifdef), frm.ref_no);
-}
-
-
-void fl_log_all(log_sev_t logsev, const std::vector<ParseFrame> &frames)
-{
- LOG_FMT(logsev, "##=- Parse Frame : %zu entries\n", frames.size());
-
- for (size_t idx = 0; idx < frames.size(); idx++)
- {
- LOG_FMT(logsev, "## idx is %zu, ", idx);
-
- fl_log(logsev, frames.at(idx));
- }
-
- LOG_FMT(logsev, "##=-\n");
-}
-
-
-void fl_copy_tos(ParseFrame &pf, const std::vector<ParseFrame> &frames)
-{
- if (!frames.empty())
- {
- pf = *std::prev(std::end(frames));
- }
- LOG_FMT(LPF, "%s(%d): frame_count is %zu\n", __func__, __LINE__, frames.size());
-}
-
-
-void fl_copy_2nd_tos(ParseFrame &pf, const std::vector<ParseFrame> &frames)
-{
- if (frames.size() > 1)
- {
- pf = *std::prev(std::end(frames), 2);
- }
- LOG_FMT(LPF, "%s(%d): frame_count is %zu\n", __func__, __LINE__, frames.size());
-}
-
-
-void fl_trash_tos(std::vector<ParseFrame> &frames)
-{
- if (!frames.empty())
- {
- frames.pop_back();
- }
- LOG_FMT(LPF, "%s(%d): frame_count is %zu\n", __func__, __LINE__, frames.size());
-}
-
-} // namespace
-
-
-void fl_push(std::vector<ParseFrame> &frames, ParseFrame &frm)
-{
- static int ref_no = 1;
-
- frames.push_back(frm);
- frm.ref_no = ref_no++;
-
- LOG_FMT(LPF, "%s(%d): frame_count is %zu\n", __func__, __LINE__, frames.size());
-}
-
-
-void fl_pop(std::vector<ParseFrame> &frames, ParseFrame &pf)
-{
- if (frames.empty())
- {
- return;
- }
- fl_copy_tos(pf, frames);
- fl_trash_tos(frames);
-}
-
-
-int fl_check(std::vector<ParseFrame> &frames, ParseFrame &frm, int &pp_level, chunk_t *pc)
-{
- if (pc->type != CT_PREPROC)
- {
- return(pp_level);
- }
- chunk_t *next = chunk_get_next(pc);
-
- if (next == nullptr)
- {
- return(pp_level);
- }
-
- if (get_chunk_parent_type(pc) != next->type)
- {
- LOG_FMT(LNOTE, "%s(%d): Preproc parent not set correctly on orig_line %zu: got %s expected %s\n",
- __func__, __LINE__, pc->orig_line, get_token_name(get_chunk_parent_type(pc)),
- get_token_name(next->type));
- set_chunk_parent(pc, next->type);
- }
- LOG_FMT(LPFCHK, "%s(%d): orig_line is %zu, %s\n",
- __func__, __LINE__, pc->orig_line, get_token_name(get_chunk_parent_type(pc)));
- fl_log_frms(LPFCHK, "TOP", frm, frames);
-
-
- int out_pp_level = pp_level;
- const c_token_t in_ifdef = frm.in_ifdef;
- const size_t b4_cnt = frames.size();
-
- const char *txt = nullptr;
-
- if (pc->flags.test(PCF_IN_PREPROC))
- {
- LOG_FMT(LPF, " <In> ");
- fl_log(LPF, frm);
-
- if (get_chunk_parent_type(pc) == CT_PP_IF)
- {
- // An #if pushes a copy of the current frame on the stack
- pp_level++;
- fl_push(frames, frm);
- frm.in_ifdef = CT_PP_IF;
- txt = "if-push";
- }
- else if (get_chunk_parent_type(pc) == CT_PP_ELSE)
- {
- if (out_pp_level == 0)
- {
- fprintf(stderr, "%s(%d): pp_level is ZERO, cannot be decremented, at line %zu, column %zu\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col);
- log_flush(true);
- exit(EX_SOFTWARE);
- }
- out_pp_level--;
-
- /*
- * For #else of #elif, we want to keep the #if part and throw out the
- * else parts.
- * We check to see what the top type is to see if we just push or
- * pop and then push.
- * We need to use the copy right before the if.
- */
- if (frm.in_ifdef == CT_PP_IF)
- {
- // we have [...] [base]-[if], so push an [else]
- fl_push(frames, frm);
- frm.in_ifdef = CT_PP_ELSE;
- }
- // we have [...] [base] [if]-[else], copy [base] over [else]
- fl_copy_2nd_tos(frm, frames);
- frm.in_ifdef = CT_PP_ELSE;
- txt = "else-push";
- }
- else if (get_chunk_parent_type(pc) == CT_PP_ENDIF)
- {
- /*
- * we may have [...] [base] [if]-[else] or [...] [base]-[if].
- * Throw out the [else].
- */
- if (pp_level == 0)
- {
- // cpd.pp_level is ZERO, cannot be decremented.
- fprintf(stderr, "%s(%d): #endif found, at line %zu, column %zu, without corresponding #if\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col);
- log_flush(true);
- exit(EX_SOFTWARE);
- }
- pp_level--;
-
- if (out_pp_level == 0)
- {
- fprintf(stderr, "%s(%d): pp_level is ZERO, cannot be decremented, at line %zu, column %zu\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col);
- log_flush(true);
- exit(EX_SOFTWARE);
- }
- out_pp_level--;
-
- if (frm.in_ifdef == CT_PP_ELSE)
- {
- /*
- * We have: [...] [base] [if]-[else]
- * We want: [...]-[if]
- */
- fl_copy_tos(frm, frames); // [...] [base] [if]-[if]
-
- if (frames.size() < 2)
- {
- fprintf(stderr, "Number of 'frame' is too small.\n");
- fprintf(stderr, "Please make a report.\n");
- log_flush(true);
- exit(EX_SOFTWARE);
- }
- frm.in_ifdef = frames[frames.size() - 2].in_ifdef;
- fl_trash_tos(frames); // [...] [base]-[if]
- fl_trash_tos(frames); // [...]-[if]
-
- txt = "endif-trash/pop";
- }
- else if (frm.in_ifdef == CT_PP_IF)
- {
- /*
- * We have: [...] [base] [if]
- * We want: [...] [base]
- */
- fl_pop(frames, frm);
- txt = "endif-pop";
- }
- else
- {
- txt = "???";
- }
- }
- }
-
- if (txt != nullptr)
- {
- LOG_FMT(LPF, "%s(%d): orig_line is %zu, type is %s: %s in_ifdef is %s/%s, counts is %zu, frame_count is %zu\n",
- __func__, __LINE__, pc->orig_line,
- get_token_name(get_chunk_parent_type(pc)), txt, get_token_name(in_ifdef),
- get_token_name(frm.in_ifdef), b4_cnt, frames.size());
- fl_log_all(LPF, frames);
- LOG_FMT(LPF, " <Out>");
- fl_log(LPF, frm);
- }
- fl_log_frms(LPFCHK, "END", frm, frames);
-
- return(out_pp_level);
-} // fl_check
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/frame_list.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/frame_list.h
deleted file mode 100644
index eef2f00d..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/frame_list.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/**
- * @file frame_list.h
- * mainly used to handle preprocessor stuff
- *
- * @author Ben Gardner
- * @license GPL v2+
- */
-
-#ifndef PARSE_FRAME_H_INCLUDED
-#define PARSE_FRAME_H_INCLUDED
-
-#include "ParseFrame.h"
-#include "uncrustify_types.h"
-
-
-/**
- * Push a copy of a ParseFrame onto the frames list.
- * This is called on #if and #ifdef.
- */
-void fl_push(std::vector<ParseFrame> &frames, ParseFrame &frm);
-
-
-/**
- * Pop the top element off the frame list and copy it into the ParseFrame.
- *
- * Does nothing if the frame list is empty.
- *
- * This is called on #endif
- */
-void fl_pop(std::vector<ParseFrame> &frames, ParseFrame &pf);
-
-
-// TODO: this name is dumb:
-// - what is it checking?
-// - why does is much more than simple checks, it allters kinds of stuff
-//! Returns the pp_indent to use for this line
-int fl_check(std::vector<ParseFrame> &frames, ParseFrame &frm, int &pp_level, chunk_t *pc);
-
-
-#endif /* PARSE_FRAME_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/indent.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/indent.cpp
deleted file mode 100644
index 0006ff1d..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/indent.cpp
+++ /dev/null
@@ -1,4473 +0,0 @@
-/**
- * @file indent.cpp
- * Does all the indenting stuff.
- *
- * @author Ben Gardner
- * @author Guy Maurel October 2015- 2021
- * @license GPL v2+
- */
-
-#include "indent.h"
-
-#include "align.h"
-#include "frame_list.h"
-#include "options_for_QT.h"
-#include "prototypes.h"
-#include "quick_align_again.h"
-#include "space.h"
-
-#ifdef WIN32
-#include <algorithm> // to get max
-#endif // ifdef WIN32
-
-
-constexpr static auto LCURRENT = LINDENT;
-
-using namespace std;
-using namespace uncrustify;
-
-
-/**
- * General indenting approach:
- * Indenting levels are put into a stack.
- *
- * The stack entries contain:
- * - opening type
- * - brace column
- * - continuation column
- *
- * Items that start a new stack item:
- * - preprocessor (new parse frame)
- * - Brace Open (Virtual brace also)
- * - Paren, Square, Angle open
- * - Assignments
- * - C++ '<<' operator (ie, cout << "blah")
- * - case
- * - class colon
- * - return
- * - types
- * - any other continued statement
- *
- * Note that the column of items marked 'PCF_WAS_ALIGNED' is not changed.
- *
- * For an open brace:
- * - indent increases by indent_columns
- * - if part of if/else/do/while/switch/etc, an extra indent may be applied
- * - if in a paren, then cont-col is set to column + 1, ie "({ some code })"
- *
- * Open paren/square/angle:
- * cont-col is set to the column of the item after the open paren, unless
- * followed by a newline, then it is set to (brace-col + indent_columns).
- * Examples:
- * a_really_long_funcion_name(
- * param1, param2);
- * a_really_long_funcion_name(param1,
- * param2);
- *
- * Assignments:
- * Assignments are continued aligned with the first item after the assignment,
- * unless the assign is followed by a newline.
- * Examples:
- * some.variable = asdf + asdf +
- * asdf;
- * some.variable =
- * asdf + asdf + asdf;
- *
- * C++ << operator:
- * Handled the same as assignment.
- * Examples:
- * cout << "this is test number: "
- * << test_number;
- *
- * case:
- * Started with case or default.
- * Terminated with close brace at level or another case or default.
- * Special indenting according to various rules.
- * - indent of case label
- * - indent of case body
- * - how to handle optional braces
- * Examples:
- * {
- * case x: {
- * a++;
- * break;
- * }
- * case y:
- * b--;
- * break;
- * default:
- * c++;
- * break;
- * }
- *
- * Class colon:
- * Indent continuation by indent_columns:
- * class my_class :
- * baseclass1,
- * baseclass2
- * {
- *
- * Return: same as assignments
- * If the return statement is not fully paren'd, then the indent continues at
- * the column of the item after the return. If it is paren'd, then the paren
- * rules apply.
- * return somevalue +
- * othervalue;
- *
- * Type: pretty much the same as assignments
- * Examples:
- * int foo,
- * bar,
- * baz;
- *
- * Any other continued item:
- * There shouldn't be anything not covered by the above cases, but any other
- * continued item is indented by indent_columns:
- * Example:
- * somereallycrazylongname.with[lotsoflongstuff].
- * thatreallyannoysme.whenIhavetomaintain[thecode] = 3;
- */
-
-/**
- * REVISIT: This needs to be re-checked, maybe cleaned up
- *
- * Indents comments in a (hopefully) smart manner.
- *
- * There are two type of comments that get indented:
- * - stand alone (ie, no tokens on the line before the comment)
- * - trailing comments (last token on the line apart from a linefeed)
- * + note that a stand-alone comment is a special case of a trailing
- *
- * The stand alone comments will get indented in one of three ways:
- * - column 1:
- * + There is an empty line before the comment AND the indent level is 0
- * + The comment was originally in column 1
- *
- * - Same column as trailing comment on previous line (ie, aligned)
- * + if originally within TBD (3) columns of the previous comment
- *
- * - syntax indent level
- * + doesn't fit in the previous categories
- *
- * Options modify this behavior:
- * - keep original column (don't move the comment, if possible)
- * - keep relative column (move out the same amount as first item on line)
- * - fix trailing comment in column TBD
- *
- * @param pc The comment, which is the first item on a line
- * @param col The column if this is to be put at indent level
- */
-static void indent_comment(chunk_t *pc, size_t col);
-
-
-static size_t token_indent(c_token_t type);
-
-
-static size_t calc_indent_continue(const ParseFrame &frm, size_t pse_tos);
-
-/**
- * Get candidate chunk first on line to which OC blocks can be indented against.
- */
-static chunk_t *candidate_chunk_first_on_line(chunk_t *pc);
-
-/**
- * We are on a '{' that has parent = OC_BLOCK_EXPR
- * find the column of the param tag
- */
-static chunk_t *oc_msg_block_indent(chunk_t *pc, bool from_brace, bool from_caret, bool from_colon, bool from_keyword);
-
-
-/**
- * returns true if forward or reverse scan reveals only single newlines or comments
- * stops when hits code
- * false if next thing hit is a closing brace, also if 2 newlines in a row
- */
-static bool single_line_comment_indent_rule_applies(chunk_t *start, bool forward);
-
-/**
- * returns true if semicolon on the same level ends any assign operations
- * false if next thing hit is not the end of an assign operation
- */
-static bool is_end_of_assignment(chunk_t *pc, const ParseFrame &frm);
-
-
-void indent_to_column(chunk_t *pc, size_t column)
-{
- LOG_FUNC_ENTRY();
-
- if (column < pc->column)
- {
- column = pc->column;
- }
- reindent_line(pc, column);
-}
-
-
-enum class align_mode_e : unsigned int
-{
- SHIFT, //! shift relative to the current column
- KEEP_ABS, //! try to keep the original absolute column
- KEEP_REL, //! try to keep the original gap
-};
-
-
-void align_to_column(chunk_t *pc, size_t column)
-{
- LOG_FUNC_ENTRY();
-
- if ( pc == nullptr
- || column == pc->column)
- {
- return;
- }
- LOG_FMT(LINDLINE, "%s(%d): orig_line is %zu, orig_col is %zu, text() '%s', type is %s => column is %zu\n",
- __func__, __LINE__, pc->orig_line, pc->column, pc->text(),
- get_token_name(pc->type), column);
-
- const auto col_delta = static_cast<int>(column) - static_cast<int>(pc->column);
- size_t min_col = column;
-
- pc->column = column;
-
- do
- {
- auto *next = chunk_get_next(pc);
-
- if (next == nullptr)
- {
- break;
- }
- const size_t min_delta = space_col_align(pc, next);
- min_col += min_delta;
-
- const auto *prev = pc;
- pc = next;
-
- auto almod = align_mode_e::SHIFT;
-
- if ( chunk_is_comment(pc)
- && get_chunk_parent_type(pc) != CT_COMMENT_EMBED)
- {
- log_rule_B("indent_relative_single_line_comments");
- almod = ( chunk_is_single_line_comment(pc)
- && options::indent_relative_single_line_comments())
- ? align_mode_e::KEEP_REL : align_mode_e::KEEP_ABS;
- }
-
- if (almod == align_mode_e::KEEP_ABS)
- {
- // Keep same absolute column
- pc->column = max(pc->orig_col, min_col);
- }
- else if (almod == align_mode_e::KEEP_REL)
- {
- // Keep same relative column
- auto orig_delta = static_cast<int>(pc->orig_col) - static_cast<int>(prev->orig_col);
- orig_delta = max<int>(orig_delta, min_delta); // keeps orig_delta positive
-
- pc->column = prev->column + static_cast<size_t>(orig_delta);
- }
- else // SHIFT
- {
- // Shift by the same amount, keep above negative values
- pc->column = ( col_delta >= 0
- || cast_abs(pc->column, col_delta) < pc->column)
- ? pc->column + col_delta : 0;
- pc->column = max(pc->column, min_col);
- }
- LOG_FMT(LINDLINED, "%s(%d): %s set column of '%s', type is %s, orig_line is %zu, to col %zu (orig_col was %zu)\n",
- __func__, __LINE__,
- (almod == align_mode_e::KEEP_ABS) ? "abs" :
- (almod == align_mode_e::KEEP_REL) ? "rel" : "sft",
- pc->text(), get_token_name(pc->type), pc->orig_line, pc->column, pc->orig_col);
- } while ( pc != nullptr
- && pc->nl_count == 0);
-} // align_to_column
-
-
-void reindent_line(chunk_t *pc, size_t column)
-{
- LOG_FUNC_ENTRY();
- char copy[1000];
-
- LOG_FMT(LINDLINE, "%s(%d): orig_line is %zu, orig_col is %zu, on '%s' [%s/%s] => %zu\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->elided_text(copy),
- get_token_name(pc->type), get_token_name(get_chunk_parent_type(pc)),
- column);
- log_func_stack_inline(LINDLINE);
-
- if (column == pc->column)
- {
- return;
- }
- auto col_delta = static_cast<int>(column) - static_cast<int>(pc->column);
- auto min_col = column;
-
- pc->column = column;
-
- do
- {
- if (QT_SIGNAL_SLOT_found)
- {
- // fix the bug #654
- // connect(&mapper, SIGNAL(mapped(QString &)), this, SLOT(onSomeEvent(QString &)));
- // look for end of SIGNAL/SLOT block
- if (!pc->flags.test(PCF_IN_QT_MACRO))
- {
- LOG_FMT(LINDLINE, "FLAGS is NOT set: PCF_IN_QT_MACRO\n");
- restore_options_for_QT();
- }
- }
- else
- {
- // look for begin of SIGNAL/SLOT block
- if (pc->flags.test(PCF_IN_QT_MACRO))
- {
- LOG_FMT(LINDLINE, "FLAGS is set: PCF_IN_QT_MACRO\n");
- save_set_options_for_QT(pc->level);
- }
- }
- chunk_t *next = chunk_get_next(pc);
-
- if (next == nullptr)
- {
- break;
- }
-
- if (pc->nl_count)
- {
- min_col = 0;
- col_delta = 0;
- }
- min_col += space_col_align(pc, next);
- pc = next;
-
- const bool is_comment = chunk_is_comment(pc);
- log_rule_B("indent_relative_single_line_comments");
- const bool keep = ( is_comment
- && chunk_is_single_line_comment(pc)
- && options::indent_relative_single_line_comments());
-
- if ( is_comment
- && get_chunk_parent_type(pc) != CT_COMMENT_EMBED
- && !keep)
- {
- pc->column = max(pc->orig_col, min_col);
- LOG_FMT(LINDLINE, "%s(%d): set comment on line %zu to col %zu (orig %zu)\n",
- __func__, __LINE__, pc->orig_line, pc->column, pc->orig_col);
- }
- else
- {
- const auto tmp_col = static_cast<int>(pc->column) + col_delta;
- pc->column = max(tmp_col, static_cast<int>(min_col));
-
- LOG_FMT(LINDLINED, "%s(%d): set column of ", __func__, __LINE__);
-
- if (chunk_is_token(pc, CT_NEWLINE))
- {
- LOG_FMT(LINDLINED, "<Newline>");
- }
- else
- {
- LOG_FMT(LINDLINED, "'%s'", pc->text());
- }
- LOG_FMT(LINDLINED, " to %zu (orig %zu)\n", pc->column, pc->orig_col);
- }
- } while ( pc != nullptr
- && pc->nl_count == 0);
-} // reindent_line
-
-
-static size_t token_indent(c_token_t type)
-{
- switch (type)
- {
- case CT_IF:
- case CT_DO:
- return(3);
-
- case CT_FOR:
- case CT_ELSE: // wacky, but that's what is wanted
- return(4);
-
- case CT_WHILE:
- case CT_USING_STMT:
- return(6);
-
- case CT_SWITCH:
- return(7);
-
- case CT_ELSEIF:
- return(8);
-
- case CT_SYNCHRONIZED:
- return(13);
-
- default:
- return(0);
- }
-}
-
-
-#define indent_column_set(X) \
- do { \
- LOG_FMT(LINDENT2, "%s(%d): orig_line is %zu, indent_column changed from %zu to %zu\n", \
- __func__, __LINE__, pc->orig_line, indent_column, (size_t)X); \
- indent_column = (X); \
- } while (false)
-
-
-static size_t calc_indent_continue(const ParseFrame &frm, size_t pse_tos)
-{
- log_rule_B("indent_continue");
- const int ic = options::indent_continue();
-
- if ( ic < 0
- && frm.at(pse_tos).indent_cont)
- {
- return(frm.at(pse_tos).indent);
- }
- return(frm.at(pse_tos).indent + abs(ic));
-}
-
-
-static size_t calc_indent_continue(const ParseFrame &frm)
-{
- return(calc_indent_continue(frm, frm.size() - 1));
-}
-
-
-static chunk_t *candidate_chunk_first_on_line(chunk_t *pc)
-{
- chunk_t *first = chunk_first_on_line(pc);
-
- log_rule_B("indent_inside_ternary_operator");
-
- if ( options::indent_inside_ternary_operator()
- && ( chunk_is_token(first, CT_QUESTION)
- || chunk_is_token(first, CT_COND_COLON)))
- {
- return(chunk_get_next_ncnnl(first));
- }
- else
- {
- return(first);
- }
-}
-
-
-static chunk_t *oc_msg_block_indent(chunk_t *pc, bool from_brace,
- bool from_caret, bool from_colon,
- bool from_keyword)
-{
- LOG_FUNC_ENTRY();
- chunk_t *tmp = chunk_get_prev_nc(pc);
-
- if (from_brace)
- {
- return(pc);
- }
-
- // Skip to open paren in ':^TYPE *(ARGS) {'
- if (chunk_is_paren_close(tmp))
- {
- tmp = chunk_get_prev_nc(chunk_skip_to_match_rev(tmp));
- }
-
- // // Check for star in ':^TYPE *(ARGS) {'. Issue 2477
- if (chunk_is_token(tmp, CT_PTR_TYPE))
- {
- tmp = chunk_get_prev_nc(tmp);
- }
-
- // Check for type in ':^TYPE *(ARGS) {'. Issue 2482
- if (chunk_is_token(tmp, CT_TYPE))
- {
- tmp = chunk_get_prev_nc(tmp);
- }
- // Check for caret in ':^TYPE *(ARGS) {'
- // Store the caret position
- chunk_t *caret_tmp = nullptr;
-
- if ( tmp != nullptr
- && tmp->type == CT_OC_BLOCK_CARET)
- {
- caret_tmp = tmp;
- }
- else
- {
- caret_tmp = chunk_get_prev_type(tmp, CT_OC_BLOCK_CARET, -1);
- tmp = caret_tmp;
- }
-
- // If we still cannot find caret then return first chunk on the line
- if ( tmp == nullptr
- || tmp->type != CT_OC_BLOCK_CARET)
- {
- return(candidate_chunk_first_on_line(pc));
- }
-
- if (from_caret)
- {
- return(tmp);
- }
- tmp = chunk_get_prev_nc(tmp);
-
- // Check for colon in ':^TYPE *(ARGS) {'
- if (from_colon)
- {
- if ( tmp == nullptr
- || tmp->type != CT_OC_COLON)
- {
- return(candidate_chunk_first_on_line(pc));
- }
- else
- {
- return(tmp);
- }
- }
- tmp = chunk_get_prev_nc(tmp);
-
- if (from_keyword)
- {
- if ( tmp == nullptr
- || ( tmp->type != CT_OC_MSG_NAME
- && tmp->type != CT_OC_MSG_FUNC))
- {
- return(candidate_chunk_first_on_line(pc));
- }
- else
- {
- return(tmp);
- }
- }
- // In almost all the cases, its better to return the first chunk on the line than not indenting at all.
- tmp = candidate_chunk_first_on_line(pc);
- return(tmp);
-} // oc_msg_block_indent
-
-
-#define log_indent() \
- do { _log_indent(__func__, __LINE__, frm); \
- } while (false)
-
-
-static void _log_indent(const char *func, const uint32_t line, const ParseFrame &frm)
-{
- LOG_FMT(LINDLINE, "%s(%d): frm.pse_tos is %zu, ...indent is %zu\n",
- func, line, frm.size() - 1, frm.top().indent);
-}
-
-
-#define log_prev_indent() \
- do { _log_prev_indent(__func__, __LINE__, frm); \
- } while (false)
-
-
-static void _log_prev_indent(const char *func, const uint32_t line, const ParseFrame &frm)
-{
- LOG_FMT(LINDLINE, "%s(%d): frm.pse_tos is %zu, prev....indent is %zu\n",
- func, line, frm.size() - 1, frm.prev().indent);
-}
-
-
-#define log_indent_tmp() \
- do { _log_indent_tmp(__func__, __LINE__, frm); \
- } while (false)
-
-
-static void _log_indent_tmp(const char *func, const uint32_t line, const ParseFrame &frm)
-{
- LOG_FMT(LINDLINE, "%s(%d): frm.pse_tos is %zu, ...indent_tmp is %zu\n",
- func, line, frm.size() - 1, frm.top().indent_tmp);
-}
-
-
-static void quick_indent_again(void)
-{
- LOG_FUNC_ENTRY();
-
- for (chunk_t *pc = chunk_get_head(); pc != nullptr; pc = chunk_get_next(pc))
- {
- if (pc->indent.ref == nullptr)
- {
- continue;
- }
- chunk_t *tmp = chunk_get_prev(pc);
-
- if (!chunk_is_newline(tmp))
- {
- continue;
- }
- const size_t col = pc->indent.ref->column + pc->indent.delta;
- indent_to_column(pc, col);
-
- LOG_FMT(LINDENTAG, "%s(%d): [%zu] indent [%s] to %zu based on [%s] @ %zu:%zu\n",
- __func__, __LINE__, pc->orig_line, pc->text(), col,
- pc->indent.ref->text(), pc->indent.ref->orig_line,
- pc->indent.ref->column);
- }
-}
-
-
-void indent_text(void)
-{
- LOG_FUNC_ENTRY();
- bool did_newline = true;
- size_t vardefcol = 0;
-
- log_rule_B("indent_columns");
- const size_t indent_size = options::indent_columns();
- size_t indent_column = 0;
- int xml_indent = 0;
- size_t sql_col = 0;
- size_t sql_orig_col = 0;
- bool in_func_def = false;
-
-
- std::vector<ParseFrame> frames;
- ParseFrame frm{};
-
-
- chunk_t *pc = chunk_get_head();
- bool classFound = false; // Issue #672
-
- while (pc != nullptr)
- {
- // forces string literal to column-1 [Fix for 1246]
- log_rule_B("indent_col1_multi_string_literal");
-
- if ( (pc->type == CT_STRING_MULTI)
- && !(cpd.lang_flags & LANG_OC) // Issue #1795
- && options::indent_col1_multi_string_literal())
- {
- string str = pc->text();
-
- if ( (str[0] == '@')
- && (chunk_get_prev(pc)->type == CT_NEWLINE))
- {
- indent_column_set(1);
- reindent_line(pc, indent_column);
- pc = chunk_get_next(pc);
- did_newline = false;
- }
- }
-
- if (chunk_is_token(pc, CT_NEWLINE))
- {
- LOG_FMT(LINDLINE, "%s(%d): orig_line is %zu, <Newline>\n",
- __func__, __LINE__, pc->orig_line);
- }
- else if (chunk_is_token(pc, CT_NL_CONT))
- {
- LOG_FMT(LINDLINE, "%s(%d): orig_line is %zu, CT_NL_CONT\n",
- __func__, __LINE__, pc->orig_line);
- }
- else
- {
- char copy[1000];
- LOG_FMT(LINDLINE, "%s(%d): orig_line is %zu, orig_col is %zu, column is %zu, for '%s'\n ",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->column, pc->elided_text(copy));
- log_pcf_flags(LINDLINE, pc->flags);
- }
- log_rule_B("use_options_overriding_for_qt_macros");
-
- if ( options::use_options_overriding_for_qt_macros()
- && ( strcmp(pc->text(), "SIGNAL") == 0
- || strcmp(pc->text(), "SLOT") == 0))
- {
- LOG_FMT(LINDLINE, "%s(%d): orig_line=%zu: type %s SIGNAL/SLOT found\n",
- __func__, __LINE__, pc->orig_line, get_token_name(pc->type));
- }
- // Handle preprocessor transitions
- log_rule_B("indent_brace_parent");
- const size_t parent_token_indent = (options::indent_brace_parent())
- ? token_indent(get_chunk_parent_type(pc)) : 0;
-
- // Handle "force indentation of function definition to start in column 1"
- log_rule_B("indent_func_def_force_col1");
-
- if (options::indent_func_def_force_col1())
- {
- if (!in_func_def)
- {
- chunk_t *next = chunk_get_next_ncnnl(pc);
-
- if ( get_chunk_parent_type(pc) == CT_FUNC_DEF
- || ( chunk_is_token(pc, CT_COMMENT)
- && next != nullptr
- && get_chunk_parent_type(next) == CT_FUNC_DEF))
- {
- in_func_def = true;
- frm.push(pc, __func__, __LINE__);
- frm.top().indent_tmp = 1;
- frm.top().indent = 1;
- frm.top().indent_tab = 1;
- }
- }
- else
- {
- chunk_t *prev = chunk_get_prev(pc);
-
- if ( chunk_is_token(prev, CT_BRACE_CLOSE)
- && get_chunk_parent_type(prev) == CT_FUNC_DEF)
- {
- in_func_def = false;
- LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, text() is '%s', type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(), get_token_name(pc->type));
- frm.pop(__func__, __LINE__);
- }
- }
- }
- // Clean up after a #define, etc
- const bool in_preproc = pc->flags.test(PCF_IN_PREPROC);
-
- if (!in_preproc)
- {
- while ( !frm.empty()
- && frm.top().in_preproc)
- {
- const c_token_t type = frm.top().type;
- LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, text() is '%s', type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(), get_token_name(pc->type));
- frm.pop(__func__, __LINE__);
-
- /*
- * If we just removed an #endregion, then check to see if a
- * PP_REGION_INDENT entry is right below it
- */
- if ( type == CT_PP_ENDREGION
- && frm.top().type == CT_PP_REGION_INDENT)
- {
- LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, text() is '%s', type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(), get_token_name(pc->type));
- frm.pop(__func__, __LINE__);
- }
- }
- }
- else if (chunk_is_token(pc, CT_PREPROC)) // #
- {
- // Close out PP_IF_INDENT before playing with the parse frames
- if ( frm.top().type == CT_PP_IF_INDENT
- && ( get_chunk_parent_type(pc) == CT_PP_ENDIF
- || get_chunk_parent_type(pc) == CT_PP_ELSE))
- {
- LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, text() is '%s', type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(), get_token_name(pc->type));
- frm.pop(__func__, __LINE__);
- }
- ParseFrame frmbkup = frm;
- fl_check(frames, frm, cpd.pp_level, pc);
-
- // Indent the body of a #region here
- log_rule_B("pp_region_indent_code");
-
- if ( options::pp_region_indent_code()
- && get_chunk_parent_type(pc) == CT_PP_REGION)
- {
- chunk_t *next = chunk_get_next(pc);
-
- if (next == nullptr)
- {
- break;
- }
- // Hack to get the logs to look right
- set_chunk_type(next, CT_PP_REGION_INDENT);
- frm.push(next, __func__, __LINE__);
- set_chunk_type(next, CT_PP_REGION);
-
- // Indent one level
- frm.top().indent = frm.prev().indent + indent_size;
- log_indent();
-
- frm.top().indent_tab = frm.prev().indent_tab + indent_size;
- frm.top().indent_tmp = frm.top().indent;
- frm.top().in_preproc = false;
- log_indent_tmp();
- }
- // If option set, remove indent inside switch statement
- log_rule_B("indent_switch_pp");
-
- if ( frm.top().type == CT_CASE
- && !options::indent_switch_pp())
- {
- frm.push(pc, __func__, __LINE__);
- LOG_FMT(LINDPC, "%s(%d): frm.top().indent is %zu, indent_size is %zu\n",
- __func__, __LINE__, frm.top().indent, indent_size);
-
- if (frm.top().indent >= indent_size)
- {
- frm.prev().indent = frm.top().indent - indent_size;
- }
- log_prev_indent();
- }
- // Indent the body of a #if here
- log_rule_B("pp_if_indent_code");
-
- if ( options::pp_if_indent_code()
- && ( get_chunk_parent_type(pc) == CT_PP_IF
- || get_chunk_parent_type(pc) == CT_PP_ELSE))
- {
- chunk_t *next = chunk_get_next(pc);
-
- if (next == nullptr)
- {
- break;
- }
- int should_indent_preproc = true;
- chunk_t *preproc_next = chunk_get_next_nl(pc);
- preproc_next = chunk_get_next_nblank(preproc_next);
-
- /* Look ahead at what's on the line after the #if */
- log_rule_B("pp_indent_brace");
- log_rule_B("pp_indent_func_def");
- log_rule_B("pp_indent_case");
- log_rule_B("pp_indent_extern");
-
- while ( preproc_next != nullptr
- && preproc_next->type != CT_NEWLINE)
- {
- if ( ( ( (chunk_is_token(preproc_next, CT_BRACE_OPEN))
- || (chunk_is_token(preproc_next, CT_BRACE_CLOSE)))
- && !options::pp_indent_brace())
- || ( chunk_is_token(preproc_next, CT_FUNC_DEF)
- && !options::pp_indent_func_def())
- || ( chunk_is_token(preproc_next, CT_CASE)
- && !options::pp_indent_case())
- || ( chunk_is_token(preproc_next, CT_EXTERN)
- && !options::pp_indent_extern()))
- {
- should_indent_preproc = false;
- break;
- }
- preproc_next = chunk_get_next(preproc_next);
- }
-
- if (should_indent_preproc)
- {
- // Hack to get the logs to look right
-
- const c_token_t memtype = next->type;
- set_chunk_type(next, CT_PP_IF_INDENT);
- frm.push(next, __func__, __LINE__);
- set_chunk_type(next, memtype);
-
- // Indent one level except if the #if is a #include guard
- size_t extra = ( pc->pp_level == 0
- && ifdef_over_whole_file())
- ? 0 : indent_size;
-
- frm.top().indent = frm.prev().indent + extra;
- log_indent();
-
- frm.top().indent_tab = frm.prev().indent_tab + extra;
- frm.top().indent_tmp = frm.top().indent;
- frm.top().in_preproc = false;
- log_indent_tmp();
- }
- }
- log_rule_B("indent_member_single");
-
- if (options::indent_member_single())
- {
- if (get_chunk_parent_type(pc) == CT_PP_IF)
- {
- // do nothing
- }
- else if (get_chunk_parent_type(pc) == CT_PP_ELSE)
- {
- if ( frm.top().type == CT_MEMBER
- && frm.top().pop_pc
- && frm.top().pc != frmbkup.top().pc)
- {
- chunk_t *tmp = chunk_get_next_ncnnlnp(pc);
-
- if (tmp != nullptr)
- {
- if ( chunk_is_token(tmp, CT_WORD)
- || chunk_is_token(tmp, CT_TYPE))
- {
- tmp = chunk_get_next_ncnnlnp(pc);
- }
- else if ( chunk_is_token(tmp, CT_FUNC_CALL)
- || chunk_is_token(tmp, CT_FPAREN_OPEN))
- {
- tmp = chunk_get_next_type(tmp, CT_FPAREN_CLOSE, tmp->level);
-
- if (tmp != nullptr)
- {
- tmp = chunk_get_next_ncnnlnp(pc);
- }
- }
-
- if (tmp != nullptr)
- {
- frm.top().pop_pc = tmp;
- }
- }
- }
- }
- else if (get_chunk_parent_type(pc) == CT_PP_ENDIF)
- {
- if ( frmbkup.top().type == CT_MEMBER
- && frm.top().type == CT_MEMBER)
- {
- frm.top().pop_pc = frmbkup.top().pop_pc;
- }
- }
- }
- // Transition into a preproc by creating a dummy indent
- chunk_t *pp_next = chunk_get_next(pc);
-
- if (pp_next == nullptr)
- {
- return;
- }
- frm.push(pp_next, __func__, __LINE__);
-
- if ( get_chunk_parent_type(pc) == CT_PP_DEFINE
- || get_chunk_parent_type(pc) == CT_PP_UNDEF)
- {
- log_rule_B("pp_define_at_level");
- frm.top().indent_tmp = options::pp_define_at_level()
- ? frm.prev().indent_tmp : 1;
- frm.top().indent = frm.top().indent_tmp + indent_size;
- log_indent();
-
- frm.top().indent_tab = frm.top().indent;
- log_indent_tmp();
- }
- else if ( ( get_chunk_parent_type(pc) == CT_PP_PRAGMA
- || get_chunk_parent_type(pc) == CT_PP_OTHER)
- && options::pp_define_at_level())
- {
- log_rule_B("pp_define_at_level");
- frm.top().indent_tmp = frm.prev().indent_tmp;
- frm.top().indent = frm.top().indent_tmp + indent_size;
- log_indent();
-
- frm.top().indent_tab = frm.top().indent;
- log_indent_tmp();
- }
- else if ( get_chunk_parent_type(pc) == CT_PP_INCLUDE
- && options::pp_include_at_level())
- {
- log_rule_B("pp_include_at_level");
- frm.top().indent_tmp = frm.prev().indent_tmp;
- frm.top().indent = frm.top().indent_tmp + indent_size;
- log_indent();
-
- frm.top().indent_tab = frm.top().indent;
- log_indent_tmp();
- }
- else
- {
- if ( (frm.prev().type == CT_PP_REGION_INDENT)
- || ( (frm.prev().type == CT_PP_IF_INDENT)
- && (frm.top().type != CT_PP_ENDIF)))
- {
- frm.top().indent = frm.prev(2).indent;
- log_indent();
- }
- else
- {
- frm.top().indent = frm.prev().indent;
- log_indent();
- }
- log_indent();
-
-
- auto val = 0;
-
- if ( get_chunk_parent_type(pc) == CT_PP_REGION
- || get_chunk_parent_type(pc) == CT_PP_ENDREGION)
- {
- log_rule_B("pp_indent_region");
- val = options::pp_indent_region();
- log_indent();
- }
- else if ( get_chunk_parent_type(pc) == CT_PP_IF
- || get_chunk_parent_type(pc) == CT_PP_ELSE
- || get_chunk_parent_type(pc) == CT_PP_ENDIF)
- {
- log_rule_B("pp_indent_if");
- val = options::pp_indent_if();
- log_indent();
- }
-
- if (val != 0)
- {
- auto &indent = frm.top().indent;
-
- indent = (val > 0) ? val // reassign if positive val,
- : (cast_abs(indent, val) < indent) // else if no underflow
- ? (indent + val) : 0; // reduce, else 0
- }
- frm.top().indent_tmp = frm.top().indent;
- log_indent_tmp();
- }
- }
- // Check for close XML tags "</..."
- log_rule_B("indent_xml_string");
-
- if (options::indent_xml_string() > 0)
- {
- if (chunk_is_token(pc, CT_STRING))
- {
- if ( pc->len() > 4
- && xml_indent > 0
- && pc->str[1] == '<'
- && pc->str[2] == '/')
- {
- log_rule_B("indent_xml_string");
- xml_indent -= options::indent_xml_string();
- }
- }
- else if ( !chunk_is_comment(pc)
- && !chunk_is_newline(pc))
- {
- xml_indent = 0;
- }
- }
- // Handle non-brace closures
- log_indent_tmp();
-
- bool token_used = false;
- size_t old_frm_size;
-
- do
- {
- old_frm_size = frm.size();
-
- // End anything that drops a level
- if ( !chunk_is_newline(pc)
- && !chunk_is_comment(pc)
- && frm.top().level > pc->level)
- {
- LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, text() is '%s', type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(), get_token_name(pc->type));
- frm.pop(__func__, __LINE__);
- }
-
- if (frm.top().level >= pc->level)
- {
- // process virtual braces closes (no text output)
- if ( chunk_is_token(pc, CT_VBRACE_CLOSE)
- && frm.top().type == CT_VBRACE_OPEN)
- {
- LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, text() is '%s', type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(), get_token_name(pc->type));
- frm.pop(__func__, __LINE__);
- pc = chunk_get_next(pc);
-
- if (pc == nullptr)
- {
- // need to break out of both the do and while loops
- goto null_pc;
- }
- }
-
- if ( chunk_is_token(pc, CT_BRACE_CLOSE)
- && get_chunk_parent_type(pc) == CT_ENUM)
- {
- chunk_t *prev_ncnl = chunk_get_prev_ncnnl(pc);
- LOG_FMT(LINDLINE, "%s(%d): prev_ncnl is '%s', prev_ncnl->orig_line is %zu, prev_ncnl->orig_col is %zu\n",
- __func__, __LINE__, prev_ncnl->text(), prev_ncnl->orig_line, prev_ncnl->orig_col);
-
- if (chunk_is_token(prev_ncnl, CT_COMMA))
- {
- LOG_FMT(LINDLINE, "%s(%d): prev_ncnl is comma\n", __func__, __LINE__);
- }
- else
- {
- LOG_FMT(LINDLINE, "%s(%d): prev_ncnl is NOT comma\n", __func__, __LINE__);
- }
- }
-
- // End any assign operations with a semicolon on the same level
- if (is_end_of_assignment(pc, frm))
- {
- LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, text() is '%s', type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(), get_token_name(pc->type));
- frm.pop(__func__, __LINE__);
- }
- // Pop Colon from stack in ternary operator
- // a
- // ? b
- // : e/*top*/;/*pc*/
- log_rule_B("indent_inside_ternary_operator");
-
- if ( options::indent_inside_ternary_operator()
- && (frm.top().type == CT_COND_COLON)
- && ( chunk_is_semicolon(pc)
- || chunk_is_token(pc, CT_COMMA)
- || chunk_is_token(pc, CT_OC_MSG_NAME)
- || chunk_is_token(pc, CT_SPAREN_CLOSE))) // Issue #1130, #1715
- {
- LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, text() is '%s', type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(), get_token_name(pc->type));
- frm.pop(__func__, __LINE__);
- }
-
- // End any assign operations with a semicolon on the same level
- if ( chunk_is_semicolon(pc)
- && ( (frm.top().type == CT_IMPORT)
- || (frm.top().type == CT_USING)))
- {
- LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, text() is '%s', type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(), get_token_name(pc->type));
- frm.pop(__func__, __LINE__);
- }
-
- // End any custom macro-based open/closes
- if ( !token_used
- && (frm.top().type == CT_MACRO_OPEN)
- && chunk_is_token(pc, CT_MACRO_CLOSE))
- {
- token_used = true;
- LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, text() is '%s', type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(), get_token_name(pc->type));
- frm.pop(__func__, __LINE__);
- }
-
- // End any CPP/ObjC class colon stuff
- if ( ( (frm.top().type == CT_CLASS_COLON)
- || (frm.top().type == CT_CONSTR_COLON))
- && ( chunk_is_token(pc, CT_BRACE_OPEN)
- || chunk_is_token(pc, CT_OC_END)
- || chunk_is_token(pc, CT_OC_SCOPE)
- || chunk_is_token(pc, CT_OC_PROPERTY)
- || chunk_is_token(pc, CT_TYPEDEF) // Issue #2675
- || chunk_is_token(pc, CT_MACRO_OPEN)
- || chunk_is_token(pc, CT_MACRO_CLOSE)
- || ( language_is_set(LANG_OC)
- && chunk_is_comment(pc)
- && get_chunk_parent_type(pc) == CT_COMMENT_WHOLE) // Issue #2675
- || chunk_is_semicolon(pc)))
- {
- LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, text() is '%s', type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(), get_token_name(pc->type));
- frm.pop(__func__, __LINE__);
- }
-
- // End ObjC class colon stuff inside of generic definition (like Test<T1: id<T3>>)
- if ( (frm.top().type == CT_CLASS_COLON)
- && chunk_is_token(pc, CT_ANGLE_CLOSE)
- && get_chunk_parent_type(pc) == CT_OC_GENERIC_SPEC)
- {
- LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, text() is '%s', type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(), get_token_name(pc->type));
- frm.pop(__func__, __LINE__);
- }
-
- // End Objc nested message and boxed array
- // TODO: ideally formatting would know which opens occurred on a line and group closes in the same manor
- if ( language_is_set(LANG_OC)
- && chunk_is_token(pc, CT_SQUARE_CLOSE)
- && get_chunk_parent_type(pc) == CT_OC_AT
- && frm.top().level >= pc->level)
- {
- size_t count = 1;
- chunk_t *next = chunk_get_next_nc(pc);
-
- while ( next != nullptr
- && ( ( chunk_is_token(next, CT_BRACE_CLOSE)
- && get_chunk_parent_type(next) == CT_OC_AT)
- || ( chunk_is_token(next, CT_SQUARE_CLOSE)
- && get_chunk_parent_type(next) == CT_OC_AT)
- || ( chunk_is_token(next, CT_SQUARE_CLOSE)
- && get_chunk_parent_type(next) == CT_OC_MSG)))
- {
- count++;
- next = chunk_get_next_nc(next);
- }
- count = std::min(count, frm.size());
-
- if (count > 0)
- {
- while (count-- > 0)
- {
- if (frm.top().type == CT_SQUARE_OPEN)
- {
- if (frm.paren_count == 0)
- {
- fprintf(stderr, "%s(%d): frm.paren_count is ZERO, cannot be decremented, at line %zu, column %zu\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col);
- log_flush(true);
- exit(EX_SOFTWARE);
- }
- frm.paren_count--;
- }
- LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, text() is '%s', type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(), get_token_name(pc->type));
- frm.pop(__func__, __LINE__);
- }
-
- if (next)
- {
- // End any assign operations with a semicolon on the same level
- if (is_end_of_assignment(next, frm))
- {
- LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, text() is '%s', type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(), get_token_name(pc->type));
- frm.pop(__func__, __LINE__);
- }
- }
- // Indent the brace to match outer most brace/square
- indent_column_set(frm.top().indent_tmp);
- continue;
- }
- }
-
- // a case is ended with another case or a close brace
- if ( (frm.top().type == CT_CASE)
- && ( chunk_is_token(pc, CT_BRACE_CLOSE)
- || chunk_is_token(pc, CT_CASE)))
- {
- LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, text() is '%s', type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(), get_token_name(pc->type));
- frm.pop(__func__, __LINE__);
- }
-
- if ( (frm.top().type == CT_MEMBER)
- && frm.top().pop_pc == pc)
- {
- LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, text() is '%s', type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(), get_token_name(pc->type));
- frm.pop(__func__, __LINE__);
- }
-
- if ( (frm.top().type == CT_LAMBDA)
- && ( chunk_is_token(pc, CT_SEMICOLON)
- || chunk_is_token(pc, CT_COMMA)
- || chunk_is_token(pc, CT_BRACE_OPEN)))
- {
- LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, text() is '%s', type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(), get_token_name(pc->type));
- frm.pop(__func__, __LINE__);
- }
- // a class scope is ended with another class scope or a close brace
- log_rule_B("indent_access_spec_body");
-
- if ( options::indent_access_spec_body()
- && (frm.top().type == CT_ACCESS)
- && ( chunk_is_token(pc, CT_BRACE_CLOSE)
- || chunk_is_token(pc, CT_ACCESS)))
- {
- LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, text() is '%s', type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(), get_token_name(pc->type));
- frm.pop(__func__, __LINE__);
- }
-
- // return & throw are ended with a semicolon
- if ( chunk_is_semicolon(pc)
- && ( (frm.top().type == CT_RETURN)
- || (frm.top().type == CT_THROW)))
- {
- LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, text() is '%s', type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(), get_token_name(pc->type));
- frm.pop(__func__, __LINE__);
- }
-
- // an OC SCOPE ('-' or '+') ends with a semicolon or brace open
- if ( (frm.top().type == CT_OC_SCOPE)
- && ( chunk_is_semicolon(pc)
- || chunk_is_token(pc, CT_BRACE_OPEN)))
- {
- LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, text() is '%s', type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(), get_token_name(pc->type));
- frm.pop(__func__, __LINE__);
- }
-
- /*
- * a typedef and an OC SCOPE ('-' or '+') ends with a semicolon or
- * brace open
- */
- if ( (frm.top().type == CT_TYPEDEF)
- && ( chunk_is_semicolon(pc)
- || chunk_is_paren_open(pc)
- || chunk_is_token(pc, CT_BRACE_OPEN)))
- {
- LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, text() is '%s', type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(), get_token_name(pc->type));
- frm.pop(__func__, __LINE__);
- }
-
- // an SQL EXEC is ended with a semicolon
- if ( (frm.top().type == CT_SQL_EXEC)
- && chunk_is_semicolon(pc))
- {
- LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, text() is '%s', type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(), get_token_name(pc->type));
- frm.pop(__func__, __LINE__);
- }
-
- // an CLASS is ended with a semicolon or brace open
- if ( (frm.top().type == CT_CLASS)
- && ( chunk_is_token(pc, CT_CLASS_COLON)
- || chunk_is_token(pc, CT_BRACE_OPEN)
- || chunk_is_semicolon(pc)))
- {
- LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, text() is '%s', type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(), get_token_name(pc->type));
- frm.pop(__func__, __LINE__);
- }
- log_rule_B("indent_oc_inside_msg_sel");
-
- // Pop OC msg selector stack
- if ( options::indent_oc_inside_msg_sel()
- && (frm.top().type != CT_SQUARE_OPEN)
- && frm.top().level >= pc->level
- && ( chunk_is_token(pc, CT_OC_MSG_FUNC)
- || chunk_is_token(pc, CT_OC_MSG_NAME))) // Issue #2658
- {
- LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, text() is '%s', type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(), get_token_name(pc->type));
- frm.pop(__func__, __LINE__);
- }
-
- // Close out parenthesis and squares
- if ( (frm.top().type == (pc->type - 1))
- && ( chunk_is_token(pc, CT_PAREN_CLOSE)
- || chunk_is_token(pc, CT_LPAREN_CLOSE) // Issue #3054
- || chunk_is_token(pc, CT_SPAREN_CLOSE)
- || chunk_is_token(pc, CT_FPAREN_CLOSE)
- || chunk_is_token(pc, CT_SQUARE_CLOSE)
- || chunk_is_token(pc, CT_ANGLE_CLOSE)))
- {
- LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, text() is '%s', type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(), get_token_name(pc->type));
- frm.pop(__func__, __LINE__);
-
- if (frm.paren_count == 0)
- {
- fprintf(stderr, "%s(%d): frm.paren_count is ZERO, cannot be decremented, at line %zu, column %zu\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col);
- log_flush(true);
- exit(EX_SOFTWARE);
- }
- frm.paren_count--;
- }
- }
- } while (old_frm_size > frm.size());
-
- // Grab a copy of the current indent
- indent_column_set(frm.top().indent_tmp);
- log_indent_tmp();
-
- log_rule_B("indent_single_newlines");
-
- if ( chunk_is_token(pc, CT_NEWLINE)
- && options::indent_single_newlines())
- {
- pc->nl_column = indent_column;
- }
-
- if ( !chunk_is_newline(pc)
- && !chunk_is_comment(pc)
- && log_sev_on(LINDPC))
- {
- LOG_FMT(LINDPC, "%s(%d):\n", __func__, __LINE__);
- LOG_FMT(LINDPC, " -=[ pc->orig_line is %zu, orig_col is %zu, text() is '%s' ]=-, frm.size() is %zu\n",
- pc->orig_line, pc->orig_col, pc->text(), frm.size());
-
- for (size_t ttidx = frm.size() - 1; ttidx > 0; ttidx--)
- {
- LOG_FMT(LINDPC, " [%zu %zu:%zu '%s' %s/%s tmp=%zu indent=%zu brace_indent=%zu indent_tab=%zu indent_cont=%d level=%zu pc->brace_level=%zu]\n",
- ttidx,
- frm.at(ttidx).pc->orig_line,
- frm.at(ttidx).pc->orig_col,
- frm.at(ttidx).pc->text(),
- get_token_name(frm.at(ttidx).type),
- get_token_name(frm.at(ttidx).pc->parent_type),
- frm.at(ttidx).indent_tmp,
- frm.at(ttidx).indent,
- frm.at(ttidx).brace_indent,
- frm.at(ttidx).indent_tab,
- frm.at(ttidx).indent_cont,
- frm.at(ttidx).level,
- frm.at(ttidx).pc->brace_level);
- }
- }
- char copy[1000];
- LOG_FMT(LINDENT2, "%s(%d): orig_line is %zu, orig_col is %zu, column is %zu, text() is '%s'\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->column, pc->elided_text(copy));
-
- // Issue #672
- if ( chunk_is_token(pc, CT_BRACE_OPEN)
- && classFound)
- {
- LOG_FMT(LINDENT, "%s(%d): CT_BRACE_OPEN found, CLOSE IT\n",
- __func__, __LINE__);
- LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, text() is '%s', type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(), get_token_name(pc->type));
- frm.pop(__func__, __LINE__);
- frm.top().indent_tmp = 1;
- frm.top().indent = 1;
- frm.top().indent_tab = 1;
- log_indent();
- classFound = false;
- }
- /*
- * Handle stuff that can affect the current indent:
- * - brace close
- * - vbrace open
- * - brace open
- * - case (immediate)
- * - labels (immediate)
- * - class colons (immediate)
- *
- * And some stuff that can't
- * - open paren
- * - open square
- * - assignment
- * - return
- */
- log_rule_B("indent_braces");
- log_rule_B("indent_braces_no_func");
- log_rule_B("indent_braces_no_class");
- log_rule_B("indent_braces_no_struct");
- const bool brace_indent = ( ( chunk_is_token(pc, CT_BRACE_CLOSE)
- || chunk_is_token(pc, CT_BRACE_OPEN))
- && options::indent_braces()
- && ( !options::indent_braces_no_func()
- || get_chunk_parent_type(pc) != CT_FUNC_DEF)
- && ( !options::indent_braces_no_func()
- || get_chunk_parent_type(pc) != CT_FUNC_CLASS_DEF)
- && ( !options::indent_braces_no_class()
- || get_chunk_parent_type(pc) != CT_CLASS)
- && ( !options::indent_braces_no_struct()
- || get_chunk_parent_type(pc) != CT_STRUCT));
-
- if (chunk_is_token(pc, CT_BRACE_CLOSE))
- {
- if (language_is_set(LANG_OC))
- {
- if ( frm.top().type == CT_BRACE_OPEN
- && frm.top().level >= pc->level)
- {
- size_t count = 1;
- chunk_t *next = chunk_get_next_nc(pc);
-
- while ( next != nullptr
- && ( ( chunk_is_token(next, CT_BRACE_CLOSE)
- && get_chunk_parent_type(next) == CT_OC_AT)
- || ( chunk_is_token(next, CT_SQUARE_CLOSE)
- && get_chunk_parent_type(next) == CT_OC_AT)
- || ( chunk_is_token(next, CT_SQUARE_CLOSE)
- && get_chunk_parent_type(next) == CT_OC_MSG)))
- {
- count++;
- next = chunk_get_next_nc(next);
- }
- count = std::min(count, frm.size());
-
- // End Objc nested boxed dictionary
- // TODO: ideally formatting would know which opens occurred on a line and group closes in the same manor
- if ( count > 0
- && chunk_is_token(pc, CT_BRACE_CLOSE)
- && get_chunk_parent_type(pc) == CT_OC_AT)
- {
- if (frm.top().ip.ref)
- {
- pc->indent.ref = frm.top().ip.ref;
- pc->indent.delta = 0;
- }
-
- while (count-- > 0)
- {
- LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, text() is '%s', type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(), get_token_name(pc->type));
- frm.pop(__func__, __LINE__);
- }
-
- if (next)
- {
- // End any assign operations with a semicolon on the same level
- if (is_end_of_assignment(next, frm))
- {
- LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, text() is '%s', type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(), get_token_name(pc->type));
- frm.pop(__func__, __LINE__);
- }
- }
-
- // Indent the brace to match outer most brace/square
- if (frm.top().indent_cont)
- {
- indent_column_set(frm.top().indent_tmp - indent_size);
- }
- else
- {
- indent_column_set(frm.top().indent_tmp);
- }
- }
- else
- {
- // Indent the brace to match the open brace
- indent_column_set(frm.top().brace_indent);
-
- if (frm.top().ip.ref)
- {
- pc->indent.ref = frm.top().ip.ref;
- pc->indent.delta = 0;
- }
- LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, text() is '%s', type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(), get_token_name(pc->type));
- frm.pop(__func__, __LINE__);
- }
- }
- }
- else
- {
- // Indent the brace to match the open brace
- indent_column_set(frm.top().brace_indent);
-
- if (frm.top().ip.ref)
- {
- pc->indent.ref = frm.top().ip.ref;
- pc->indent.delta = 0;
- }
- LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, text() is '%s', type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(), get_token_name(pc->type));
- frm.pop(__func__, __LINE__);
- }
- }
- else if (chunk_is_token(pc, CT_VBRACE_OPEN))
- {
- frm.push(pc, __func__, __LINE__);
-
- log_rule_B("indent_min_vbrace_open");
- size_t iMinIndent = options::indent_min_vbrace_open();
-
- if (indent_size > iMinIndent)
- {
- iMinIndent = indent_size;
- }
- size_t iNewIndent = frm.prev().indent + iMinIndent;
-
- log_rule_B("indent_vbrace_open_on_tabstop");
-
- if (options::indent_vbrace_open_on_tabstop())
- {
- iNewIndent = next_tab_column(iNewIndent);
- }
- frm.top().indent = iNewIndent;
- log_indent();
- frm.top().indent_tmp = frm.top().indent;
- frm.top().indent_tab = frm.top().indent;
- log_indent_tmp();
-
- // Always indent on virtual braces
- indent_column_set(frm.top().indent_tmp);
- }
- else if ( chunk_is_token(pc, CT_BRACE_OPEN)
- && ( pc->next != nullptr
- && pc->next->type != CT_NAMESPACE))
- {
- LOG_FMT(LINDENT2, "%s(%d): orig_line is %zu, orig_col is %zu, text() is '%s'\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text());
- frm.push(pc, __func__, __LINE__);
-
- log_rule_B("indent_macro_brace");
-
- if ( !options::indent_macro_brace()
- && frm.prev().type == CT_PP_DEFINE
- && frm.prev().open_line == frm.top().open_line)
- {
- LOG_FMT(LINDENT2, "%s(%d): indent_macro_brace\n", __func__, __LINE__);
- }
- else if ( options::indent_cpp_lambda_body()
- && get_chunk_parent_type(pc) == CT_CPP_LAMBDA)
- {
- log_rule_B("indent_cpp_lambda_body");
- frm.top().brace_indent = frm.prev().indent;
-
- chunk_t *head = chunk_get_prev_ncnnlnp(frm.top().pc);
- chunk_t *tail = nullptr;
- bool enclosure = frm.prev().pc != chunk_skip_to_match(frm.prev().pc);
- bool linematch = true;
-
- for (auto it = frm.rbegin(); it != frm.rend() && tail == nullptr; ++it)
- {
- if (it->pc && it->pc != frm.top().pc)
- {
- linematch &= are_chunks_in_same_line(it->pc, head);
- }
- chunk_t *match = chunk_skip_to_match(it->pc);
-
- if (match == nullptr)
- {
- continue;
- }
- chunk_t *target = chunk_get_next_ncnnlnp(match);
-
- while ( tail == nullptr
- && target != nullptr)
- {
- if ( chunk_is_semicolon(target)
- && target->level == match->level)
- {
- tail = target;
- }
- else if (target->level < match->level)
- {
- break;
- }
- else
- {
- target = chunk_get_next_ncnnlnp(target);
- }
- }
- }
-
- bool toplevel = true;
-
- for (auto it = frm.rbegin(); it != frm.rend() && tail != nullptr; ++it)
- {
- if (!chunk_is_token(it->pc, CT_FPAREN_OPEN))
- {
- continue;
- }
-
- if (it->pc->level < tail->level)
- {
- toplevel = false;
- break;
- }
- }
-
- // A few things to check:
- // 1. The matching brace is on the same line as the ending semicolon
- // 2a. If it's an assignment, check that both sides of the assignment operator are on the same line
- // 2b. If it's inside some closure, check that all the frames are on the same line, and it is in the top level closure
- if ( options::indent_continue() > 0
- && are_chunks_in_same_line(chunk_skip_to_match(frm.top().pc), tail)
- && ( ( !enclosure
- && options::align_assign_span() == 0
- && !options::indent_align_assign()
- && are_chunks_in_same_line(chunk_get_prev_ncnnlnp(frm.prev().pc), frm.prev().pc)
- && are_chunks_in_same_line(frm.prev().pc, chunk_get_next_ncnnlnp(frm.prev().pc)))
- || ( enclosure
- && linematch
- && toplevel)))
- {
- if (indent_size > frm.top().brace_indent) // if options::indent_indent_columns() is too big
- {
- frm.top().brace_indent = 1;
- }
- else
- {
- frm.top().brace_indent -= indent_size;
- }
- }
- indent_column_set(frm.top().brace_indent);
- frm.top().indent = indent_column + indent_size;
- log_indent();
-
- frm.top().indent_tab = frm.top().indent;
- frm.top().indent_tmp = frm.top().indent;
- log_indent_tmp();
-
- frm.prev().indent_tmp = frm.top().indent_tmp;
- log_indent_tmp();
- }
- else if ( language_is_set(LANG_CPP)
- && options::indent_cpp_lambda_only_once()
- && (get_chunk_parent_type(pc) == CT_CPP_LAMBDA))
- {
- log_rule_B("indent_cpp_lambda_only_once");
-
- size_t namespace_indent_to_ignore = 0; // Issue #1813
- log_rule_B("indent_namespace");
-
- if (!options::indent_namespace())
- {
- for (auto i = frm.rbegin(); i != frm.rend(); ++i)
- {
- if (i->ns_cnt)
- {
- namespace_indent_to_ignore = i->ns_cnt;
- break;
- }
- }
- }
- // Issue # 1296
- frm.top().brace_indent = 1 + ((pc->brace_level - namespace_indent_to_ignore) * indent_size);
- indent_column_set(frm.top().brace_indent);
- frm.top().indent = indent_column + indent_size;
- log_indent();
- frm.top().indent_tab = frm.top().indent;
- frm.top().indent_tmp = frm.top().indent;
- log_indent_tmp();
-
- frm.prev().indent_tmp = frm.top().indent_tmp;
- log_indent_tmp();
- }
- else if ( language_is_set(LANG_CS | LANG_JAVA)
- && options::indent_cs_delegate_brace()
- && ( get_chunk_parent_type(pc) == CT_LAMBDA
- || get_chunk_parent_type(pc) == CT_DELEGATE))
- {
- log_rule_B("indent_cs_delegate_brace");
- frm.top().brace_indent = 1 + ((pc->brace_level + 1) * indent_size);
- indent_column_set(frm.top().brace_indent);
- frm.top().indent = indent_column + indent_size;
- log_indent();
- frm.top().indent_tab = frm.top().indent;
- frm.top().indent_tmp = frm.top().indent;
- log_indent_tmp();
-
- frm.prev().indent_tmp = frm.top().indent_tmp;
- log_indent_tmp();
- }
- else if ( language_is_set(LANG_CS | LANG_JAVA)
- && !options::indent_cs_delegate_brace()
- && !options::indent_align_paren()
- && ( get_chunk_parent_type(pc) == CT_LAMBDA
- || get_chunk_parent_type(pc) == CT_DELEGATE))
- {
- log_rule_B("indent_cs_delegate_brace");
- log_rule_B("indent_align_paren");
- frm.top().brace_indent = frm.prev().indent;
-
- // Issue # 1620, UNI-24090.cs
- if (are_chunks_in_same_line(frm.prev().pc, chunk_get_prev_ncnnlnp(frm.top().pc)))
- {
- frm.top().brace_indent -= indent_size;
- }
- indent_column_set(frm.top().brace_indent);
- frm.top().indent = indent_column + indent_size;
- log_indent();
- frm.top().indent_tab = frm.top().indent;
- frm.top().indent_tmp = frm.top().indent;
- log_indent_tmp();
- frm.prev().indent_tmp = frm.top().indent_tmp;
- log_indent_tmp();
- }
- else if ( !options::indent_paren_open_brace()
- && !language_is_set(LANG_CS)
- && get_chunk_parent_type(pc) == CT_CPP_LAMBDA
- && ( pc->flags.test(PCF_IN_FCN_DEF)
- || pc->flags.test(PCF_IN_FCN_CTOR)) // Issue #2152
- && chunk_is_newline(chunk_get_next_nc(pc)))
- {
- log_rule_B("indent_paren_open_brace");
- // Issue #1165
- LOG_FMT(LINDENT2, "%s(%d): orig_line is %zu, pc->brace_level is %zu, for '%s', pc->level is %zu, pc(-1)->level is %zu\n",
- __func__, __LINE__, pc->orig_line, pc->brace_level, pc->text(), pc->level, frm.prev().pc->level);
- frm.top().brace_indent = 1 + ((pc->brace_level + 1) * indent_size);
- indent_column_set(frm.top().brace_indent);
- frm.top().indent = frm.prev().indent_tmp;
- log_indent();
-
- frm.top().indent_tmp = frm.top().indent;
- log_indent_tmp();
- }
- // any '{' that is inside of a '(' overrides the '(' indent
- else if ( !options::indent_paren_open_brace()
- && chunk_is_paren_open(frm.prev().pc)
- && chunk_is_newline(chunk_get_next_nc(pc)))
- {
- log_rule_B("indent_paren_open_brace");
- LOG_FMT(LINDENT2, "%s(%d): orig_line is %zu, pc->brace_level is %zu, for '%s', pc->level is %zu, pc(-1)->level is %zu\n",
- __func__, __LINE__, pc->orig_line, pc->brace_level, pc->text(), pc->level, frm.prev().pc->level);
- // FIXME: I don't know how much of this is necessary, but it seems to work
- frm.top().brace_indent = 1 + (pc->brace_level * indent_size);
- indent_column_set(frm.top().brace_indent);
- frm.top().indent = indent_column + indent_size;
- log_indent();
-
- if ( (get_chunk_parent_type(pc) == CT_OC_BLOCK_EXPR)
- && pc->flags.test(PCF_IN_OC_MSG))
- {
- frm.top().indent = frm.prev().indent_tmp + indent_size;
- log_indent();
- frm.top().brace_indent = frm.prev().indent_tmp;
- indent_column_set(frm.top().brace_indent);
- }
- frm.top().indent_tab = frm.top().indent;
- frm.top().indent_tmp = frm.top().indent;
- log_indent_tmp();
-
- frm.prev().indent_tmp = frm.top().indent_tmp;
- }
- else if (frm.paren_count != 0)
- {
- if (frm.top().pc->parent_type == CT_OC_BLOCK_EXPR)
- {
- log_rule_B("indent_oc_block_msg");
-
- if ( pc->flags.test(PCF_IN_OC_MSG)
- && options::indent_oc_block_msg())
- {
- frm.top().ip.ref = oc_msg_block_indent(pc, false, false, false, true);
- log_rule_B("indent_oc_block_msg");
- frm.top().ip.delta = options::indent_oc_block_msg();
- }
- log_rule_B("indent_oc_block");
- log_rule_B("indent_oc_block_msg_xcode_style");
-
- if ( options::indent_oc_block()
- || options::indent_oc_block_msg_xcode_style())
- {
- bool in_oc_msg = pc->flags.test(PCF_IN_OC_MSG);
- log_rule_B("indent_oc_block_msg_from_keyword");
- bool indent_from_keyword = options::indent_oc_block_msg_from_keyword()
- && in_oc_msg;
- log_rule_B("indent_oc_block_msg_from_colon");
- bool indent_from_colon = options::indent_oc_block_msg_from_colon()
- && in_oc_msg;
- log_rule_B("indent_oc_block_msg_from_caret");
- bool indent_from_caret = options::indent_oc_block_msg_from_caret()
- && in_oc_msg;
- log_rule_B("indent_oc_block_msg_from_brace");
- bool indent_from_brace = options::indent_oc_block_msg_from_brace()
- && in_oc_msg;
-
- /*
- * In "Xcode indent mode", we want to indent:
- * - if the colon is aligned (namely, if a newline has been
- * added before it), indent_from_brace
- * - otherwise, indent from previous block (the "else" statement here)
- */
- log_rule_B("indent_oc_block_msg_xcode_style");
-
- if (options::indent_oc_block_msg_xcode_style())
- {
- chunk_t *bbc = chunk_skip_to_match(pc); // block brace close '}'
- chunk_t *bbc_next_ncnl = chunk_get_next_ncnnl(bbc);
-
- if ( bbc_next_ncnl->type == CT_OC_MSG_NAME
- || bbc_next_ncnl->type == CT_OC_MSG_FUNC)
- {
- indent_from_brace = false;
- indent_from_colon = false;
- indent_from_caret = false;
- indent_from_keyword = true;
- }
- else
- {
- indent_from_brace = false;
- indent_from_colon = false;
- indent_from_caret = false;
- indent_from_keyword = false;
- }
- }
- chunk_t *ref = oc_msg_block_indent(pc, indent_from_brace,
- indent_from_caret,
- indent_from_colon,
- indent_from_keyword);
-
- if (ref)
- {
- frm.top().indent = indent_size + ref->column;
- }
- else
- {
- frm.top().indent = 1 + ((pc->brace_level + 1) * indent_size);
- }
- log_indent();
- indent_column_set(frm.top().indent - indent_size);
- }
- else
- {
- frm.top().indent = frm.prev().indent_tmp + indent_size;
- log_indent();
- }
- }
- else if ( frm.top().pc->type == CT_BRACE_OPEN
- && frm.top().pc->parent_type == CT_OC_AT)
- {
- // We are inside @{ ... } -- indent one tab from the paren
- if (frm.prev().indent_cont)
- {
- frm.top().indent = frm.prev().indent_tmp;
- }
- else
- {
- frm.top().indent = frm.prev().indent_tmp + indent_size;
- }
- log_indent();
- }
- // Issue # 1620, UNI-24090.cs
- else if ( are_chunks_in_same_line(frm.prev().pc, frm.top().pc)
- && !options::indent_align_paren()
- && chunk_is_paren_open(frm.prev().pc)
- && !pc->flags.test(PCF_ONE_LINER))
- {
- log_rule_B("indent_align_paren");
- // We are inside ({ ... }) -- where { and ( are on the same line, avoiding double indentations.
- frm.top().brace_indent = frm.prev().indent - indent_size;
- indent_column_set(frm.top().brace_indent);
- frm.top().indent = frm.prev().indent_tmp;
- log_indent();
- }
- else if ( are_chunks_in_same_line(frm.prev().pc, chunk_get_prev_ncnnlnp(frm.top().pc))
- && !options::indent_align_paren()
- && chunk_is_paren_open(frm.prev().pc)
- && !pc->flags.test(PCF_ONE_LINER))
- {
- log_rule_B("indent_align_paren");
- // We are inside ({ ... }) -- where { and ( are on adjacent lines, avoiding indentation of brace.
- frm.top().brace_indent = frm.prev().indent - indent_size;
- indent_column_set(frm.top().brace_indent);
- frm.top().indent = frm.prev().indent_tmp;
- log_indent();
- }
- else if ( options::indent_oc_inside_msg_sel()
- && ( frm.prev().type == CT_OC_MSG_FUNC
- || frm.prev().type == CT_OC_MSG_NAME)) // Issue #2658
- {
- log_rule_B("indent_oc_inside_msg_sel");
- // [Class Message:{<here>
- frm.top().indent = frm.prev().pc->column + indent_size;
- log_indent();
- indent_column_set(frm.prev().pc->column);
- }
- else
- {
- // We are inside ({ ... }) -- indent one tab from the paren
- frm.top().indent = frm.prev().indent_tmp + indent_size;
-
- if (!chunk_is_paren_open(frm.prev().pc))
- {
- frm.top().indent_tab = frm.top().indent;
- }
- log_indent();
- }
- }
- else if ( frm.top().pc->type == CT_BRACE_OPEN
- && frm.top().pc->parent_type == CT_OC_AT)
- {
- // We are inside @{ ... } -- indent one tab from the paren
- if (frm.prev().indent_cont)
- {
- frm.top().indent = frm.prev().indent_tmp;
- }
- else
- {
- frm.top().indent = frm.prev().indent_tmp + indent_size;
- frm.top().indent_tab = frm.top().indent;
- }
- log_indent();
- }
- else if ( ( get_chunk_parent_type(pc) == CT_BRACED_INIT_LIST
- || ( !options::indent_compound_literal_return()
- && get_chunk_parent_type(pc) == CT_C_CAST))
- && frm.prev().type == CT_RETURN)
- {
- log_rule_B("indent_compound_literal_return");
-
- // we're returning either a c compound literal (CT_C_CAST) or a
- // C++11 initialization list (CT_BRACED_INIT_LIST), use indent from the return.
- if (frm.prev().indent_cont)
- {
- frm.top().indent = frm.prev().indent_tmp;
- }
- else
- {
- frm.top().indent = frm.prev().indent_tmp + indent_size;
- }
- log_indent();
- }
- else
- {
- // Use the prev indent level + indent_size.
- if (get_chunk_parent_type(pc) == CT_SWITCH)
- {
- frm.top().indent = frm.prev().indent + options::indent_switch_body();
- }
- else
- {
- frm.top().indent = frm.prev().indent + indent_size;
- }
- LOG_FMT(LINDLINE, "%s(%d): frm.pse_tos is %zu, ... indent is %zu\n",
- __func__, __LINE__, frm.size() - 1, frm.top().indent);
- LOG_FMT(LINDLINE, "%s(%d): orig_line is %zu, orig_col is %zu, text() is '%s', parent_type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(),
- get_token_name(get_chunk_parent_type(pc)));
-
- // If this brace is part of a statement, bump it out by indent_brace
- if ( get_chunk_parent_type(pc) == CT_IF
- || get_chunk_parent_type(pc) == CT_ELSE
- || get_chunk_parent_type(pc) == CT_ELSEIF
- || get_chunk_parent_type(pc) == CT_TRY
- || get_chunk_parent_type(pc) == CT_CATCH
- || get_chunk_parent_type(pc) == CT_DO
- || get_chunk_parent_type(pc) == CT_WHILE
- || get_chunk_parent_type(pc) == CT_USING_STMT
- || get_chunk_parent_type(pc) == CT_SWITCH
- || get_chunk_parent_type(pc) == CT_SYNCHRONIZED
- || get_chunk_parent_type(pc) == CT_FOR)
- {
- if (parent_token_indent != 0)
- {
- frm.top().indent += parent_token_indent - indent_size;
- log_indent();
- }
- else
- {
- log_rule_B("indent_brace");
- frm.top().indent += options::indent_brace();
- log_indent();
- indent_column_set(indent_column + options::indent_brace());
- }
- }
- else if (get_chunk_parent_type(pc) == CT_CASE)
- {
- log_rule_B("indent_case_brace");
- const auto tmp_indent = static_cast<int>(frm.prev().indent)
- - static_cast<int>(indent_size)
- + options::indent_case_brace();
-
- /*
- * An open brace with the parent of case does not indent by default
- * UO_indent_case_brace can be used to indent the brace.
- * So we need to take the CASE indent, subtract off the
- * indent_size that was added above and then add indent_case_brace.
- * may take negative value
- */
- indent_column_set(max(tmp_indent, 0));
-
- // Stuff inside the brace still needs to be indented
- frm.top().indent = indent_column + indent_size;
- log_indent();
-
- frm.top().indent_tmp = frm.top().indent;
- log_indent_tmp();
- }
- else if ( get_chunk_parent_type(pc) == CT_CLASS
- && !options::indent_class())
- {
- log_rule_B("indent_class");
- LOG_FMT(LINDENT, "%s(%d): orig_line is %zu, orig_col is %zu, text is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text());
- frm.top().indent -= indent_size;
- log_indent();
- }
- else if (get_chunk_parent_type(pc) == CT_NAMESPACE)
- {
- frm.top().ns_cnt = frm.prev().ns_cnt + 1;
-
- log_rule_B("indent_namespace");
- log_rule_B("indent_namespace_single_indent");
-
- if ( options::indent_namespace()
- && options::indent_namespace_single_indent())
- {
- if (frm.top().ns_cnt >= 2)
- {
- // undo indent on all except the first namespace
- frm.top().indent -= indent_size;
- log_indent();
- }
- indent_column_set(frm.prev(frm.top().ns_cnt).indent);
- }
- else if ( pc->flags.test(PCF_LONG_BLOCK)
- || !options::indent_namespace())
- {
- log_rule_B("indent_namespace");
- // don't indent long blocks
- frm.top().indent -= indent_size;
- log_indent();
- }
- else // indenting 'short' namespace
- {
- log_rule_B("indent_namespace_level");
-
- if (options::indent_namespace_level() > 0)
- {
- frm.top().indent -= indent_size;
- log_indent();
-
- frm.top().indent +=
- options::indent_namespace_level();
- log_indent();
- }
- }
- }
- else if ( get_chunk_parent_type(pc) == CT_EXTERN
- && !options::indent_extern())
- {
- log_rule_B("indent_extern");
- frm.top().indent -= indent_size;
- log_indent();
- }
- frm.top().indent_tab = frm.top().indent;
- }
-
- if (pc->flags.test(PCF_DONT_INDENT))
- {
- frm.top().indent = pc->column;
- log_indent();
-
- indent_column_set(pc->column);
- }
- else
- {
- /*
- * If there isn't a newline between the open brace and the next
- * item, just indent to wherever the next token is.
- * This covers this sort of stuff:
- * { a++;
- * b--; };
- */
- chunk_t *next = chunk_get_next_ncnnl(pc);
-
- if (next == nullptr)
- {
- break;
- }
- chunk_t *prev = chunk_get_prev(pc);
-
- if ( get_chunk_parent_type(pc) == CT_BRACED_INIT_LIST
- && chunk_is_token(prev, CT_BRACE_OPEN)
- && get_chunk_parent_type(prev) == CT_BRACED_INIT_LIST)
- {
- indent_column = frm.prev().brace_indent;
- frm.top().indent = frm.prev().indent;
- log_indent();
- }
- else if ( !chunk_is_newline_between(pc, next)
- && get_chunk_parent_type(next) != CT_BRACED_INIT_LIST
- && options::indent_token_after_brace()
- && !pc->flags.test(PCF_ONE_LINER)) // Issue #1108
- {
- log_rule_B("indent_token_after_brace");
- frm.top().indent = next->column;
- log_indent();
- }
- frm.top().indent_tmp = frm.top().indent;
- frm.top().open_line = pc->orig_line;
- log_indent_tmp();
-
- // Update the indent_column if needed
- if ( brace_indent
- || parent_token_indent != 0)
- {
- indent_column_set(frm.top().indent_tmp);
- log_indent_tmp();
- }
- }
- // Save the brace indent
- frm.top().brace_indent = indent_column;
- }
- else if (chunk_is_token(pc, CT_SQL_END))
- {
- if (frm.top().type == CT_SQL_BEGIN)
- {
- LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, text() is '%s', type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(), get_token_name(pc->type));
- frm.pop(__func__, __LINE__);
- indent_column_set(frm.top().indent_tmp);
- log_indent_tmp();
- }
- }
- else if ( chunk_is_token(pc, CT_SQL_BEGIN)
- || chunk_is_token(pc, CT_MACRO_OPEN)
- || chunk_is_token(pc, CT_CLASS))
- {
- frm.push(pc, __func__, __LINE__);
-
- frm.top().indent = frm.prev().indent + indent_size;
- log_indent();
-
- frm.top().indent_tmp = frm.top().indent;
- frm.top().indent_tab = frm.top().indent;
- log_indent_tmp();
- }
- else if (chunk_is_token(pc, CT_SQL_EXEC))
- {
- frm.push(pc, __func__, __LINE__);
-
- frm.top().indent = frm.prev().indent + indent_size;
- log_indent();
-
- frm.top().indent_tmp = frm.top().indent;
- log_indent_tmp();
- }
- else if (chunk_is_token(pc, CT_MACRO_ELSE))
- {
- if (frm.top().type == CT_MACRO_OPEN)
- {
- indent_column_set(frm.prev().indent);
- }
- }
- else if (chunk_is_token(pc, CT_CASE))
- {
- // Start a case - indent UO_indent_switch_case from the switch level
- log_rule_B("indent_switch_case");
- const size_t tmp = frm.top().indent + indent_size
- - options::indent_switch_body()
- + options::indent_switch_case();
- frm.push(pc, __func__, __LINE__);
-
- frm.top().indent = tmp;
- log_indent();
-
- log_rule_B("indent_case_shift");
- frm.top().indent_tmp = tmp - indent_size + options::indent_case_shift();
- frm.top().indent_tab = tmp;
- log_indent_tmp();
-
- // Always set on case statements
- indent_column_set(frm.top().indent_tmp);
-
- if (options::indent_case_comment())
- {
- // comments before 'case' need to be aligned with the 'case'
- chunk_t *pct = pc;
-
- while ( ((pct = chunk_get_prev_nnl(pct)) != nullptr)
- && chunk_is_comment(pct))
- {
- chunk_t *t2 = chunk_get_prev(pct);
-
- if (chunk_is_newline(t2))
- {
- pct->column = frm.top().indent_tmp;
- pct->column_indent = pct->column;
- }
- }
- }
- }
- else if (chunk_is_token(pc, CT_BREAK))
- {
- chunk_t *prev = chunk_get_prev_ncnnl(pc);
-
- if ( chunk_is_token(prev, CT_BRACE_CLOSE)
- && get_chunk_parent_type(prev) == CT_CASE)
- {
- // issue #663 + issue #1366
- chunk_t *prev_newline = chunk_get_prev_nl(pc);
-
- if (prev_newline != nullptr)
- {
- chunk_t *prev_prev_newline = chunk_get_prev_nl(prev_newline);
-
- if (prev_prev_newline != nullptr)
- {
- // This only affects the 'break', so no need for a stack entry
- indent_column_set(prev_prev_newline->next->column);
- }
- }
- }
- }
- else if (chunk_is_token(pc, CT_LABEL))
- {
- if (options::indent_ignore_label())
- {
- log_rule_B("indent_ignore_label");
- indent_column_set(pc->orig_col);
- }
- else
- {
- log_rule_B("indent_label");
- const auto val = options::indent_label();
- const auto pse_indent = frm.top().indent;
-
- // Labels get sent to the left or backed up
- if (val > 0)
- {
- indent_column_set(val);
-
- chunk_t *next = chunk_get_next(chunk_get_next(pc)); // colon + possible statement
-
- if ( next != nullptr
- && !chunk_is_newline(next)
- // label (+ 2, because there is colon and space after it) must fit into indent
- && (val + static_cast<int>(pc->len()) + 2 <= static_cast<int>(pse_indent)))
- {
- reindent_line(next, pse_indent);
- }
- }
- else
- {
- const auto no_underflow = cast_abs(pse_indent, val) < pse_indent;
- indent_column_set(((no_underflow) ? (pse_indent + val) : 0));
- }
- }
- }
- else if (chunk_is_token(pc, CT_ACCESS))
- {
- log_rule_B("indent_access_spec_body");
-
- if (options::indent_access_spec_body())
- {
- const size_t tmp = frm.top().indent + indent_size;
- frm.push(pc, __func__, __LINE__);
-
- frm.top().indent = tmp;
- log_indent();
-
- frm.top().indent_tmp = tmp - indent_size;
- frm.top().indent_tab = tmp;
- log_indent_tmp();
-
- /*
- * If we are indenting the body, then we must leave the access spec
- * indented at brace level
- */
- indent_column_set(frm.top().indent_tmp);
- // Issues 1161 + 2704
- // comments before 'access specifier' need to be aligned with the 'access specifier'
- // unless it is a Doxygen comment
- chunk_t *pct = pc;
-
- while ( ((pct = chunk_get_prev_nnl(pct)) != nullptr)
- && chunk_is_comment(pct)
- && !chunk_is_Doxygen_comment(pct))
- {
- chunk_t *t2 = chunk_get_prev(pct);
-
- if (chunk_is_newline(t2))
- {
- pct->column = frm.top().indent_tmp;
- pct->column_indent = pct->column;
- }
- }
- }
- else
- {
- // Access spec labels get sent to the left or backed up
- log_rule_B("indent_access_spec");
- const auto val = options::indent_access_spec();
-
- if (val > 0)
- {
- indent_column_set(val);
- }
- else
- {
- const auto pse_indent = frm.top().indent;
- const auto no_underflow = cast_abs(pse_indent, val) < pse_indent;
-
- indent_column_set(no_underflow ? (pse_indent + val) : 0);
- }
- }
- }
- else if ( chunk_is_token(pc, CT_CLASS_COLON)
- || chunk_is_token(pc, CT_CONSTR_COLON))
- {
- // just indent one level
- frm.push(pc, __func__, __LINE__);
-
- frm.top().indent = frm.prev().indent_tmp + indent_size;
- log_indent();
-
- frm.top().indent_tmp = frm.top().indent;
- frm.top().indent_tab = frm.top().indent;
- log_indent_tmp();
-
- if ( options::indent_before_class_colon() != 0
- && chunk_is_token(pc, CT_CLASS_COLON))
- {
- log_rule_B("indent_before_class_colon");
- frm.top().indent_tmp = std::max<ptrdiff_t>(frm.top().indent_tmp + options::indent_before_class_colon(), 0);
- log_indent_tmp();
- }
- indent_column_set(frm.top().indent_tmp);
-
- log_rule_B("indent_class_colon");
-
- if ( options::indent_class_colon()
- && chunk_is_token(pc, CT_CLASS_COLON))
- {
- log_rule_B("indent_class_on_colon");
-
- if (options::indent_class_on_colon())
- {
- frm.top().indent = pc->column;
- log_indent();
- }
- else
- {
- chunk_t *next = chunk_get_next(pc);
-
- if ( next != nullptr
- && !chunk_is_newline(next))
- {
- frm.top().indent = next->column;
- log_indent();
- }
- }
- }
- else if ( options::indent_constr_colon()
- && chunk_is_token(pc, CT_CONSTR_COLON))
- {
- log_rule_B("indent_constr_colon");
- chunk_t *prev = chunk_get_prev(pc);
-
- if (chunk_is_newline(prev))
- {
- log_rule_B("indent_ctor_init_following");
- frm.top().indent += options::indent_ctor_init_following();
- log_indent();
- }
- // TODO: Create a dedicated indent_constr_on_colon?
- log_rule_B("indent_class_on_colon");
-
- if (options::indent_class_on_colon())
- {
- frm.top().indent = pc->column;
- log_indent();
- }
- else if (options::indent_ctor_init() != 0)
- {
- log_rule_B("indent_ctor_init");
- /*
- * If the std::max() calls were specialized with size_t (the type of the underlying variable),
- * they would never actually do their job, because size_t is unsigned and therefore even
- * a "negative" result would be always greater than zero.
- * Using ptrdiff_t (a standard signed type of the same size as size_t) in order to avoid that.
- */
- frm.top().indent = std::max<ptrdiff_t>(frm.top().indent + options::indent_ctor_init(), 0);
- log_indent();
- frm.top().indent_tmp = std::max<ptrdiff_t>(frm.top().indent_tmp + options::indent_ctor_init(), 0);
- frm.top().indent_tab = std::max<ptrdiff_t>(frm.top().indent_tab + options::indent_ctor_init(), 0);
- log_indent_tmp();
- indent_column_set(frm.top().indent_tmp);
- }
- else
- {
- chunk_t *next = chunk_get_next(pc);
-
- if ( next != nullptr
- && !chunk_is_newline(next))
- {
- frm.top().indent = next->column;
- log_indent();
- }
- }
- }
- }
- else if ( chunk_is_token(pc, CT_PAREN_OPEN)
- && ( get_chunk_parent_type(pc) == CT_ASM
- || ( chunk_get_prev_ncnnl(pc) != nullptr
- && chunk_get_prev_ncnnl(pc)->type == CT_ASM))
- && options::indent_ignore_asm_block())
- {
- log_rule_B("indent_ignore_asm_block");
- chunk_t *tmp = chunk_skip_to_match(pc);
-
- int move = 0;
-
- if ( chunk_is_newline(chunk_get_prev(pc))
- && pc->column != indent_column)
- {
- move = indent_column - pc->column;
- }
- else
- {
- move = pc->column - pc->orig_col;
- }
-
- do
- {
- pc->column = pc->orig_col + move;
- pc = chunk_get_next(pc);
- } while (pc != tmp);
-
- reindent_line(pc, indent_column);
- }
- else if ( chunk_is_token(pc, CT_PAREN_OPEN)
- || chunk_is_token(pc, CT_LPAREN_OPEN) // Issue #3054
- || chunk_is_token(pc, CT_SPAREN_OPEN)
- || chunk_is_token(pc, CT_FPAREN_OPEN)
- || chunk_is_token(pc, CT_SQUARE_OPEN)
- || chunk_is_token(pc, CT_ANGLE_OPEN))
- {
- /*
- * Open parenthesis and squares - never update indent_column,
- * unless right after a newline.
- */
- frm.push(pc, __func__, __LINE__);
-
- if ( chunk_is_newline(chunk_get_prev(pc))
- && pc->column != indent_column
- && !pc->flags.test(PCF_DONT_INDENT))
- {
- LOG_FMT(LINDENT, "%s[line %d]: %zu] indent => %zu [%s]\n",
- __func__, __LINE__, pc->orig_line, indent_column, pc->text());
- reindent_line(pc, indent_column);
- }
- frm.top().indent = pc->column + pc->len();
- log_indent();
-
- if ( chunk_is_token(pc, CT_SQUARE_OPEN)
- && language_is_set(LANG_D))
- {
- frm.top().indent_tab = frm.top().indent;
- }
- bool skipped = false;
- log_rule_B("indent_inside_ternary_operator");
- log_rule_B("indent_align_paren");
-
- if ( options::indent_inside_ternary_operator()
- && ( chunk_is_token(pc, CT_FPAREN_OPEN)
- || chunk_is_token(pc, CT_PAREN_OPEN))
- && frm.size() > 2
- && ( frm.prev().type == CT_QUESTION
- || frm.prev().type == CT_COND_COLON)
- && !options::indent_align_paren())
- {
- frm.top().indent = frm.prev().indent_tmp + indent_size;
- log_indent();
- frm.top().indent_tab = frm.top().indent;
- frm.top().indent_tmp = frm.top().indent;
- log_indent_tmp();
- }
- else if ( ( chunk_is_token(pc, CT_FPAREN_OPEN)
- || chunk_is_token(pc, CT_ANGLE_OPEN))
- && ( ( options::indent_func_call_param()
- && ( get_chunk_parent_type(pc) == CT_FUNC_CALL
- || get_chunk_parent_type(pc) == CT_FUNC_CALL_USER))
- || ( options::indent_func_proto_param()
- && ( get_chunk_parent_type(pc) == CT_FUNC_PROTO
- || get_chunk_parent_type(pc) == CT_FUNC_CLASS_PROTO))
- || ( options::indent_func_class_param()
- && ( get_chunk_parent_type(pc) == CT_FUNC_CLASS_DEF
- || get_chunk_parent_type(pc) == CT_FUNC_CLASS_PROTO))
- || ( options::indent_template_param()
- && get_chunk_parent_type(pc) == CT_TEMPLATE)
- || ( options::indent_func_ctor_var_param()
- && get_chunk_parent_type(pc) == CT_FUNC_CTOR_VAR)
- || ( options::indent_func_def_param()
- && get_chunk_parent_type(pc) == CT_FUNC_DEF)
- || ( !options::indent_func_def_param() // Issue #931
- && get_chunk_parent_type(pc) == CT_FUNC_DEF
- && options::indent_func_def_param_paren_pos_threshold() > 0
- && pc->orig_col > options::indent_func_def_param_paren_pos_threshold())))
- {
- log_rule_B("indent_func_call_param");
- log_rule_B("indent_func_proto_param");
- log_rule_B("indent_func_class_param");
- log_rule_B("indent_template_param");
- log_rule_B("indent_func_ctor_var_param");
- log_rule_B("indent_func_def_param");
- log_rule_B("indent_func_def_param_paren_pos_threshold");
- // Skip any continuation indents
- size_t idx = (!frm.empty()) ? frm.size() - 2 : 0;
-
- while ( ( ( idx > 0
- && frm.at(idx).type != CT_BRACE_OPEN
- && frm.at(idx).type != CT_VBRACE_OPEN
- && frm.at(idx).type != CT_PAREN_OPEN
- && frm.at(idx).type != CT_FPAREN_OPEN
- && frm.at(idx).type != CT_SPAREN_OPEN
- && frm.at(idx).type != CT_SQUARE_OPEN
- && frm.at(idx).type != CT_ANGLE_OPEN
- && frm.at(idx).type != CT_CASE
- && frm.at(idx).type != CT_MEMBER
- && frm.at(idx).type != CT_QUESTION
- && frm.at(idx).type != CT_COND_COLON
- && frm.at(idx).type != CT_LAMBDA
- && frm.at(idx).type != CT_ASSIGN_NL)
- || are_chunks_in_same_line(frm.at(idx).pc, frm.top().pc))
- && ( frm.at(idx).type != CT_CLASS_COLON
- && frm.at(idx).type != CT_CONSTR_COLON
- && !( frm.at(idx).type == CT_LAMBDA
- && chunk_get_prev_nc(frm.at(idx).pc)->type == CT_NEWLINE)))
- {
- if (idx == 0)
- {
- fprintf(stderr, "%s(%d): idx is ZERO, cannot be decremented, at line %zu, column %zu\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col);
- log_flush(true);
- exit(EX_SOFTWARE);
- }
- idx--;
- skipped = true;
- }
- // PR#381
- log_rule_B("indent_param");
-
- if (options::indent_param() != 0)
- {
- frm.top().indent = frm.at(idx).indent + options::indent_param();
- log_indent();
- }
- else
- {
- frm.top().indent = frm.at(idx).indent + indent_size;
- log_indent();
- }
- log_rule_B("indent_func_param_double");
-
- if (options::indent_func_param_double())
- {
- // double is: Use both values of the options indent_columns and indent_param
- frm.top().indent += indent_size;
- log_indent();
- }
- frm.top().indent_tab = frm.top().indent;
- }
- else if ( options::indent_oc_inside_msg_sel()
- && chunk_is_token(pc, CT_PAREN_OPEN)
- && frm.size() > 2
- && ( frm.prev().type == CT_OC_MSG_FUNC
- || frm.prev().type == CT_OC_MSG_NAME)
- && !options::indent_align_paren()) // Issue #2658
- {
- log_rule_B("indent_oc_inside_msg_sel");
- log_rule_B("indent_align_paren");
- // When parens are inside OC messages, push on the parse frame stack
- // [Class Message:(<here>
- frm.top().indent = frm.prev().pc->column + indent_size;
- log_indent();
- frm.top().indent_tab = frm.top().indent;
- frm.top().indent_tmp = frm.top().indent;
- log_indent_tmp();
- }
- else if ( chunk_is_token(pc, CT_PAREN_OPEN)
- && !chunk_is_newline(chunk_get_next(pc))
- && !options::indent_align_paren()
- && !pc->flags.test(PCF_IN_SPAREN))
- {
- log_rule_B("indent_align_paren");
- int idx = static_cast<int>(frm.size()) - 2;
-
- while ( idx > 0
- && are_chunks_in_same_line(frm.at(idx).pc, frm.top().pc))
- {
- if (idx == 0)
- {
- fprintf(stderr, "%s(%d): idx is ZERO, cannot be decremented, at line %zu, column %zu\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col);
- log_flush(true);
- exit(EX_SOFTWARE);
- }
- idx--;
- skipped = true;
- }
- frm.top().indent = frm.at(idx).indent + indent_size;
- log_indent();
-
- frm.top().indent_tab = frm.top().indent;
- skipped = true;
- }
- else if ( ( chunk_is_str(pc, "(", 1)
- && !options::indent_paren_nl())
- || ( chunk_is_str(pc, "<", 1)
- && !options::indent_paren_nl()) // TODO: add indent_angle_nl?
- || ( chunk_is_str(pc, "[", 1)
- && !options::indent_square_nl()))
- {
- log_rule_B("indent_paren_nl");
- log_rule_B("indent_square_nl");
- chunk_t *next = chunk_get_next_nc(pc);
-
- if (next == nullptr)
- {
- break;
- }
- log_rule_B("indent_paren_after_func_def");
- log_rule_B("indent_paren_after_func_decl");
- log_rule_B("indent_paren_after_func_call");
-
- if ( chunk_is_newline(next)
- && !options::indent_paren_after_func_def()
- && !options::indent_paren_after_func_decl()
- && !options::indent_paren_after_func_call())
- {
- size_t sub = 2;
-
- if ( (frm.prev().type == CT_ASSIGN)
- || (frm.prev().type == CT_RETURN))
- {
- sub = 3;
- }
- sub = static_cast<int>(frm.size()) - sub;
-
- log_rule_B("indent_align_paren");
-
- if (!options::indent_align_paren())
- {
- sub = static_cast<int>(frm.size()) - 2;
-
- while ( sub > 0
- && are_chunks_in_same_line(frm.at(sub).pc, frm.top().pc))
- {
- if (sub == 0)
- {
- fprintf(stderr, "%s(%d): sub is ZERO, cannot be decremented, at line %zu, column %zu\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col);
- log_flush(true);
- exit(EX_SOFTWARE);
- }
- sub--;
- skipped = true;
- }
-
- if ( ( frm.at(sub + 1).type == CT_CLASS_COLON
- || frm.at(sub + 1).type == CT_CONSTR_COLON)
- && (chunk_is_token(frm.at(sub + 1).pc->prev, CT_NEWLINE)))
- {
- sub = sub + 1;
- }
- }
- frm.top().indent = frm.at(sub).indent + indent_size;
- log_indent();
-
- frm.top().indent_tab = frm.top().indent;
- skipped = true;
- }
- else
- {
- if ( next != nullptr
- && !chunk_is_comment(next))
- {
- if (chunk_is_token(next, CT_SPACE))
- {
- next = chunk_get_next_nc(next);
-
- if (next == nullptr)
- {
- break;
- }
- }
-
- if (chunk_is_comment(next->prev))
- {
- // Issue #2099
- frm.top().indent = next->prev->column;
- }
- else
- {
- frm.top().indent = next->column;
- }
- log_indent();
- }
- }
- }
- log_rule_B("use_indent_continue_only_once");
- log_rule_B("indent_paren_after_func_decl");
- log_rule_B("indent_paren_after_func_def");
- log_rule_B("indent_paren_after_func_call");
-
- if ( !options::use_indent_continue_only_once() // Issue #1160
- && ( chunk_is_token(pc, CT_FPAREN_OPEN)
- && chunk_is_newline(chunk_get_prev(pc)))
- && ( ( ( get_chunk_parent_type(pc) == CT_FUNC_PROTO
- || get_chunk_parent_type(pc) == CT_FUNC_CLASS_PROTO)
- && options::indent_paren_after_func_decl())
- || ( get_chunk_parent_type(pc) == CT_FUNC_DEF
- && options::indent_paren_after_func_def())
- || ( ( get_chunk_parent_type(pc) == CT_FUNC_CALL
- || get_chunk_parent_type(pc) == CT_FUNC_CALL_USER)
- && options::indent_paren_after_func_call())
- || !chunk_is_newline(chunk_get_next(pc))))
- {
- frm.top().indent = frm.prev().indent + indent_size;
- log_indent();
-
- indent_column_set(frm.top().indent);
- }
- log_rule_B("indent_continue");
-
- if ( get_chunk_parent_type(pc) != CT_OC_AT
- && options::indent_continue() != 0
- && !skipped)
- {
- frm.top().indent = frm.prev().indent;
- log_indent();
-
- if ( pc->level == pc->brace_level
- && ( chunk_is_token(pc, CT_FPAREN_OPEN)
- || chunk_is_token(pc, CT_SPAREN_OPEN)
- || ( chunk_is_token(pc, CT_SQUARE_OPEN)
- && get_chunk_parent_type(pc) != CT_OC_MSG)
- || chunk_is_token(pc, CT_ANGLE_OPEN))) // Issue #1170
- {
- //log_rule_B("indent_continue");
- //frm.top().indent += abs(options::indent_continue());
- // frm.top().indent = calc_indent_continue(frm);
- // frm.top().indent_cont = true;
- log_rule_B("use_indent_continue_only_once");
-
- if ( (options::use_indent_continue_only_once())
- && (frm.top().indent_cont)
- && vardefcol != 0)
- {
- /*
- * The value of the indentation for a continuation line is calculate
- * differently if the line is:
- * a declaration :your case with QString fileName ...
- * an assignment :your case with pSettings = new QSettings( ...
- * At the second case the option value might be used twice:
- * at the assignment
- * at the function call (if present)
- * If you want to prevent the double use of the option value
- * you may use the new option :
- * use_indent_continue_only_once
- * with the value "true".
- * use/don't use indent_continue once Guy 2016-05-16
- */
-
- // if vardefcol isn't zero, use it
- frm.top().indent = vardefcol;
- log_indent();
- }
- else
- {
- frm.top().indent = calc_indent_continue(frm);
- log_indent();
- frm.top().indent_cont = true;
-
- log_rule_B("indent_sparen_extra");
-
- if ( chunk_is_token(pc, CT_SPAREN_OPEN)
- && options::indent_sparen_extra() != 0)
- {
- frm.top().indent += options::indent_sparen_extra();
- log_indent();
- }
- }
- }
- }
- frm.top().indent_tmp = frm.top().indent;
- log_indent_tmp();
-
- frm.paren_count++;
- }
- else if ( options::indent_member_single()
- && chunk_is_token(pc, CT_MEMBER)
- && (strcmp(pc->text(), ".") == 0)
- && language_is_set(LANG_CS | LANG_CPP))
- {
- log_rule_B("indent_member_single");
-
- if (frm.top().type != CT_MEMBER)
- {
- frm.push(pc, __func__, __LINE__);
- chunk_t *tmp = chunk_get_prev_ncnnlnp(frm.top().pc);
-
- if (are_chunks_in_same_line(frm.prev().pc, tmp))
- {
- frm.top().indent = frm.prev().indent;
- }
- else
- {
- frm.top().indent = frm.prev().indent + indent_size;
- }
- log_indent();
- frm.top().indent_tmp = frm.top().indent;
- log_indent_tmp();
- }
-
- if (chunk_is_newline(chunk_get_prev(pc)))
- {
- if ( chunk_is_token(pc, CT_MEMBER) // Issue #2890
- && language_is_set(LANG_CPP))
- {
- // will be done at another place
- // look at the comment: XXXXXXXXXXXXXXXXXXXXXXXXXX
- }
- else
- {
- indent_column_set(frm.top().indent);
- reindent_line(pc, indent_column);
- did_newline = false;
- }
- }
- //check for the series of CT_member chunks else pop it.
- chunk_t *tmp = chunk_get_next_ncnnlnp(pc);
-
- if (tmp != nullptr)
- {
- if (chunk_is_token(tmp, CT_FUNC_CALL))
- {
- tmp = chunk_get_next_ncnnlnp(chunk_get_next_type(tmp, CT_FPAREN_CLOSE, tmp->level));
- }
- else if ( chunk_is_token(tmp, CT_WORD)
- || chunk_is_token(tmp, CT_TYPE))
- {
- tmp = chunk_get_next_ncnnlnp(tmp);
- }
- }
-
- if ( tmp != nullptr
- && ( (strcmp(tmp->text(), ".") != 0)
- || tmp->type != CT_MEMBER))
- {
- if (chunk_is_paren_close(tmp))
- {
- tmp = chunk_get_prev_ncnnlnp(tmp);
- }
-
- if ( tmp != nullptr
- && chunk_is_newline(tmp->prev))
- {
- tmp = chunk_get_next_nl(chunk_get_prev_ncnnlnp(tmp));
- }
-
- if (tmp != nullptr)
- {
- frm.top().pop_pc = tmp;
- }
- }
- }
- else if ( chunk_is_token(pc, CT_ASSIGN)
- || chunk_is_token(pc, CT_IMPORT)
- || ( chunk_is_token(pc, CT_USING)
- && language_is_set(LANG_CS)))
- {
- /*
- * if there is a newline after the '=' or the line starts with a '=',
- * just indent one level,
- * otherwise align on the '='.
- */
- if ( chunk_is_token(pc, CT_ASSIGN)
- && chunk_is_newline(chunk_get_prev(pc)))
- {
- if (frm.top().type == CT_ASSIGN_NL)
- {
- frm.top().indent_tmp = frm.top().indent;
- }
- else
- {
- frm.top().indent_tmp = frm.top().indent + indent_size;
- }
- log_indent_tmp();
-
- indent_column_set(frm.top().indent_tmp);
- LOG_FMT(LINDENT, "%s(%d): %zu] assign => %zu [%s]\n",
- __func__, __LINE__, pc->orig_line, indent_column, pc->text());
- reindent_line(pc, frm.top().indent_tmp);
- }
- chunk_t *next = chunk_get_next(pc);
-
- if (next != nullptr)
- {
- /*
- * fixes 1260 , 1268 , 1277 (Extra indentation after line with multiple assignments)
- * For multiple consecutive assignments in single line , the indent of all these
- * assignments should be same and one more than this line's indent.
- * so poping the previous assign and pushing the new one
- */
- if ( frm.top().type == CT_ASSIGN
- && chunk_is_token(pc, CT_ASSIGN))
- {
- LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, text() is '%s', type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(), get_token_name(pc->type));
- frm.pop(__func__, __LINE__);
- }
- frm.push(pc, __func__, __LINE__);
-
- if ( chunk_is_token(pc, CT_ASSIGN)
- && chunk_is_newline(chunk_get_prev(pc)))
- {
- frm.top().type = CT_ASSIGN_NL;
- }
- log_rule_B("indent_continue");
-
- if (options::indent_continue() != 0)
- {
- frm.top().indent = frm.prev().indent;
- log_indent();
-
- if ( pc->level == pc->brace_level
- && ( pc->type != CT_ASSIGN
- || ( get_chunk_parent_type(pc) != CT_FUNC_PROTO
- && get_chunk_parent_type(pc) != CT_FUNC_DEF)))
- {
- log_rule_B("use_indent_continue_only_once");
-
- if ( (options::use_indent_continue_only_once())
- && (frm.top().indent_cont)
- && vardefcol != 0)
- {
- // if vardefcol isn't zero, use it
- frm.top().indent = vardefcol;
- log_indent();
- }
- else
- {
- frm.top().indent = calc_indent_continue(frm);
- log_indent();
-
- vardefcol = frm.top().indent; // use the same variable for the next line
- frm.top().indent_cont = true;
- }
- }
- }
- else if ( chunk_is_newline(next)
- || !options::indent_align_assign())
- {
- log_rule_B("indent_align_assign");
- log_rule_B("indent_off_after_assign");
-
- if (options::indent_off_after_assign()) // Issue #2591
- {
- frm.top().indent = frm.prev().indent_tmp;
- }
- else
- {
- frm.top().indent = frm.prev().indent_tmp + indent_size;
- }
- log_indent();
-
- if ( chunk_is_token(pc, CT_ASSIGN)
- && chunk_is_newline(next))
- {
- frm.top().type = CT_ASSIGN_NL;
- frm.top().indent_tab = frm.top().indent;
- }
- }
- else
- {
- frm.top().indent = pc->column + pc->len() + 1;
- log_indent();
- }
- frm.top().indent_tmp = frm.top().indent;
- log_indent_tmp();
- }
- }
- else if ( chunk_is_token(pc, CT_RETURN)
- || ( chunk_is_token(pc, CT_THROW)
- && get_chunk_parent_type(pc) == CT_NONE))
- {
- // don't count returns inside a () or []
- if ( pc->level == pc->brace_level
- || pc->flags.test(PCF_IN_LAMBDA))
- {
- chunk_t *next = chunk_get_next(pc);
-
- // Avoid indentation on return token set by the option.
- log_rule_B("indent_off_after_return");
-
- // Avoid indentation on return token if the next token is a new token
- // to properly indent object initializers returned by functions.
- log_rule_B("indent_off_after_return_new");
- bool indent_after_return = ( next != nullptr
- && next->type == CT_NEW)
- ? !options::indent_off_after_return_new()
- : !options::indent_off_after_return();
-
- if ( indent_after_return
- || next == nullptr)
- {
- frm.push(pc, __func__, __LINE__);
-
- log_rule_B("indent_single_after_return");
-
- if ( chunk_is_newline(next)
- || ( chunk_is_token(pc, CT_RETURN)
- && options::indent_single_after_return()))
- {
- // apply normal single indentation
- frm.top().indent = frm.prev().indent + indent_size;
- }
- else
- {
- // indent after the return token
- frm.top().indent = frm.prev().indent + pc->len() + 1;
- }
- log_indent();
- frm.top().indent_tmp = frm.prev().indent;
- log_indent_tmp();
- }
- log_indent();
- }
- }
- else if ( chunk_is_token(pc, CT_OC_SCOPE)
- || chunk_is_token(pc, CT_TYPEDEF))
- {
- frm.push(pc, __func__, __LINE__);
- // Issue #405
- frm.top().indent = frm.prev().indent;
- log_indent();
-
- frm.top().indent_tmp = frm.top().indent;
- LOG_FMT(LINDLINE, "%s(%d): .indent is %zu, .indent_tmp is %zu\n",
- __func__, __LINE__, frm.top().indent, frm.top().indent_tmp);
-
- log_rule_B("indent_continue");
-
- if (options::indent_continue() != 0)
- {
- frm.top().indent = calc_indent_continue(frm, frm.size() - 2);
- log_indent();
-
- frm.top().indent_cont = true;
- }
- else
- {
- frm.top().indent = frm.prev().indent + indent_size;
- log_indent();
- }
- }
- else if (chunk_is_token(pc, CT_C99_MEMBER))
- {
- // nothing to do
- }
- else if (chunk_is_token(pc, CT_WHERE_SPEC))
- {
- /* class indentation is ok already, just need to adjust func */
- /* TODO: make this configurable, obviously.. */
- if ( get_chunk_parent_type(pc) == CT_FUNC_DEF
- || get_chunk_parent_type(pc) == CT_FUNC_PROTO
- || ( get_chunk_parent_type(pc) == CT_STRUCT
- && frm.top().type != CT_CLASS_COLON))
- {
- indent_column_set(frm.top().indent + 4);
- }
- }
- else if ( options::indent_inside_ternary_operator()
- && ( chunk_is_token(pc, CT_QUESTION)
- || chunk_is_token(pc, CT_COND_COLON))) // Issue #1130, #1715
- {
- log_rule_B("indent_inside_ternary_operator");
-
- // Pop any colons before because they should already be processed
- while ( chunk_is_token(pc, CT_COND_COLON)
- && frm.top().type == CT_COND_COLON)
- {
- frm.pop(__func__, __LINE__);
- }
- log_rule_B("indent_inside_ternary_operator");
-
- // Pop Question from stack in ternary operator
- if ( options::indent_inside_ternary_operator()
- && chunk_is_token(pc, CT_COND_COLON)
- && frm.top().type == CT_QUESTION)
- {
- LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, text() is '%s', type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(), get_token_name(pc->type));
- frm.pop(__func__, __LINE__);
- indent_column_set(frm.top().indent_tmp);
- }
- frm.push(pc, __func__, __LINE__);
-
- frm.top().indent = frm.prev().indent + indent_size;
- frm.top().indent_tab = frm.top().indent;
- log_indent();
- frm.top().indent_tmp = frm.top().indent;
- log_indent_tmp();
- }
- else if ( chunk_is_token(pc, CT_LAMBDA)
- && (language_is_set(LANG_CS | LANG_JAVA))
- && chunk_get_next_ncnnlnp(pc)->type != CT_BRACE_OPEN
- && options::indent_cs_delegate_body())
- {
- log_rule_B("indent_cs_delegate_body");
- frm.push(pc, __func__, __LINE__);
- frm.top().indent = frm.prev().indent;
- log_indent();
-
- if ( chunk_is_newline(chunk_get_prev_nc(pc))
- && !are_chunks_in_same_line(frm.prev().pc, chunk_get_prev_ncnnl(pc)))
- {
- frm.top().indent = frm.prev().indent + indent_size;
- log_indent();
- reindent_line(pc, (frm.prev().indent + indent_size));
- did_newline = false;
- }
- else if ( chunk_is_newline(chunk_get_next_nc(pc))
- && !are_chunks_in_same_line(frm.prev().pc, frm.top().pc))
- {
- frm.top().indent = frm.prev().indent + indent_size;
- }
- log_indent();
- frm.top().indent_tmp = frm.top().indent;
- log_indent_tmp();
- }
- else if ( options::indent_oc_inside_msg_sel()
- && ( chunk_is_token(pc, CT_OC_MSG_FUNC)
- || chunk_is_token(pc, CT_OC_MSG_NAME))
- && chunk_is_token(chunk_get_next_ncnnl(pc), CT_OC_COLON)) // Issue #2658
- {
- log_rule_B("indent_oc_inside_msg_sel");
- // Pop the OC msg name that is on the top of the stack
- // [Class Message:<here>
- frm.push(pc, __func__, __LINE__);
-
- frm.top().indent = frm.prev().indent;
- frm.top().indent_tab = frm.prev().indent_tab;
- log_indent();
- frm.top().indent_tmp = frm.prev().indent_tmp;
- log_indent_tmp();
- }
- else
- {
- // anything else?
- }
- // Handle shift expression continuation indenting
- size_t shiftcontcol = 0;
-
- log_rule_B("indent_shift");
-
- if ( options::indent_shift()
- && !pc->flags.test(PCF_IN_ENUM)
- && get_chunk_parent_type(pc) != CT_OPERATOR
- && pc->type != CT_COMMENT
- && pc->type != CT_COMMENT_CPP
- && pc->type != CT_COMMENT_MULTI
- && pc->type != CT_BRACE_OPEN
- && pc->level > 0
- && !chunk_is_blank(pc))
- {
- bool in_shift = false;
- bool is_operator = false;
-
- // Are we in such an expression? Go both forwards and backwards.
- chunk_t *tmp = pc;
-
- do
- {
- if (chunk_is_token(tmp, CT_SHIFT))
- {
- in_shift = true;
- LOG_FMT(LINDENT2, "%s(%d): in_shift set to TRUE\n",
- __func__, __LINE__);
-
- tmp = chunk_get_prev_ncnnl(tmp);
-
- if (chunk_is_token(tmp, CT_OPERATOR))
- {
- is_operator = true;
- }
- break;
- }
- tmp = chunk_get_prev_ncnnl(tmp);
- } while ( !in_shift
- && tmp != nullptr
- && tmp->type != CT_SEMICOLON
- && tmp->type != CT_BRACE_OPEN
- && tmp->type != CT_BRACE_CLOSE
- && tmp->type != CT_COMMA
- && tmp->type != CT_SPAREN_OPEN
- && tmp->type != CT_SPAREN_CLOSE);
-
- tmp = pc;
-
- do
- {
- tmp = chunk_get_next_ncnnl(tmp);
-
- if ( tmp != nullptr
- && chunk_is_token(tmp, CT_SHIFT))
- {
- in_shift = true;
- LOG_FMT(LINDENT2, "%s(%d): in_shift set to TRUE\n",
- __func__, __LINE__);
-
- tmp = chunk_get_prev_ncnnl(tmp);
-
- if (chunk_is_token(tmp, CT_OPERATOR))
- {
- is_operator = true;
- }
- break;
- }
- } while ( !in_shift
- && tmp != nullptr
- && tmp->type != CT_SEMICOLON
- && tmp->type != CT_BRACE_OPEN
- && tmp->type != CT_BRACE_CLOSE
- && tmp->type != CT_COMMA
- && tmp->type != CT_SPAREN_OPEN
- && tmp->type != CT_SPAREN_CLOSE);
-
- LOG_FMT(LINDENT2, "%s(%d): in_shift is %s\n",
- __func__, __LINE__, in_shift ? "TRUE" : "FALSE");
- chunk_t *prev_nonl = chunk_get_prev_ncnnl(pc);
- chunk_t *prev2 = chunk_get_prev_nc(pc);
-
- if (( chunk_is_semicolon(prev_nonl)
- || chunk_is_token(prev_nonl, CT_BRACE_OPEN)
- || chunk_is_token(prev_nonl, CT_BRACE_CLOSE)
- || chunk_is_token(prev_nonl, CT_VBRACE_CLOSE)
- || chunk_is_token(prev_nonl, CT_VBRACE_OPEN)
- || chunk_is_token(prev_nonl, CT_CASE_COLON)
- || ( prev_nonl != nullptr
- && prev_nonl->flags.test(PCF_IN_PREPROC)) != pc->flags.test(PCF_IN_PREPROC)
- || chunk_is_token(prev_nonl, CT_COMMA)
- || is_operator))
- {
- in_shift = false;
- }
- LOG_FMT(LINDENT2, "%s(%d): in_shift is %s\n",
- __func__, __LINE__, in_shift ? "TRUE" : "FALSE");
-
- if ( chunk_is_token(prev2, CT_NEWLINE)
- && in_shift)
- {
- shiftcontcol = calc_indent_continue(frm);
- // Setting frm.top().indent_cont = true in the top context when the indent is not also set
- // just leads to compications when succeeding statements try to indent based on being
- // embedded in a continuation. In other words setting frm.top().indent_cont = true
- // should only be set if frm.top().indent is also set.
-
- // Work around the doubly increased indent in RETURNs and assignments
- bool need_workaround = false;
- size_t sub = 0;
-
- for (int i = frm.size() - 1; i >= 0; i--)
- {
- if ( frm.at(i).type == CT_RETURN
- || frm.at(i).type == CT_ASSIGN)
- {
- need_workaround = true;
- sub = frm.size() - i;
- break;
- }
- }
-
- if (need_workaround)
- {
- shiftcontcol = calc_indent_continue(frm, frm.size() - 1 - sub);
- }
- }
- }
-
- // Handle variable definition continuation indenting
- if ( vardefcol == 0
- && ( chunk_is_token(pc, CT_WORD)
- || chunk_is_token(pc, CT_FUNC_CTOR_VAR))
- && !pc->flags.test(PCF_IN_FCN_DEF)
- && pc->flags.test(PCF_VAR_1ST_DEF))
- {
- log_rule_B("indent_continue");
-
- if (options::indent_continue() != 0)
- {
- vardefcol = calc_indent_continue(frm);
- // Setting frm.top().indent_cont = true in the top context when the indent is not also set
- // just leads to compications when succeeding statements try to indent based on being
- // embedded in a continuation. In other words setting frm.top().indent_cont = true
- // should only be set if frm.top().indent is also set.
- }
- else if ( options::indent_var_def_cont()
- || chunk_is_newline(chunk_get_prev(pc)))
- {
- log_rule_B("indent_var_def_cont");
- vardefcol = frm.top().indent + indent_size;
- }
- else
- {
- // Issue #3010
- vardefcol = pc->column;
- // BUT, we need to skip backward over any '*'
- chunk_t *tmp = chunk_get_prev_nc(pc);
-
- while (chunk_is_token(tmp, CT_PTR_TYPE))
- {
- vardefcol = tmp->column;
- tmp = chunk_get_prev_nc(tmp);
- }
- // BUT, we need to skip backward over any '::' or TYPE
- //tmp = chunk_get_prev_nc(pc);
-
- //if (chunk_is_token(tmp, CT_DC_MEMBER))
- //{
- // // look for a type
- // chunk_t *tmp2 = chunk_get_prev_nc(tmp);
- // if (chunk_is_token(tmp2, CT_TYPE))
- // {
- // // we have something like "SomeLongNamespaceName::Foo()"
- // vardefcol = tmp2->column;
- // LOG_FMT(LINDENT, "%s(%d): orig_line is %zu, vardefcol is %zu\n",
- // __func__, __LINE__, pc->orig_line, vardefcol);
- // }
- //}
- }
- }
-
- if ( chunk_is_semicolon(pc)
- || ( chunk_is_token(pc, CT_BRACE_OPEN)
- && get_chunk_parent_type(pc) == CT_FUNCTION))
- {
- vardefcol = 0;
- }
-
- // Indent the line if needed
- if ( did_newline
- && !chunk_is_newline(pc)
- && (pc->len() != 0))
- {
- pc->column_indent = frm.top().indent_tab;
-
- if (frm.top().ip.ref)
- {
- pc->indent.ref = frm.top().ip.ref;
- pc->indent.delta = frm.top().ip.delta;
- }
- LOG_FMT(LINDENT2, "%s(%d): orig_line is %zu, pc->column_indent is %zu, indent_column is %zu, for '%s'\n",
- __func__, __LINE__, pc->orig_line, pc->column_indent, indent_column, pc->elided_text(copy));
-
- /*
- * Check for special continuations.
- * Note that some of these could be done as a stack item like
- * everything else
- */
-
- auto prev = chunk_get_prev_ncnnl(pc);
- auto prevv = chunk_get_prev_ncnnl(prev);
- auto next = chunk_get_next_ncnnl(pc);
-
- bool do_vardefcol = false;
-
- if ( vardefcol > 0
- && pc->level == pc->brace_level
- && ( chunk_is_token(prev, CT_COMMA)
- || chunk_is_token(prev, CT_TYPE)
- || chunk_is_token(prev, CT_PTR_TYPE)
- || chunk_is_token(prev, CT_WORD)))
- {
- chunk_t *tmp = pc;
-
- while (chunk_is_token(tmp, CT_PTR_TYPE))
- {
- tmp = chunk_get_next_ncnnl(tmp);
- }
- LOG_FMT(LINDENT2, "%s(%d): orig_line is %zu, for '%s'",
- __func__, __LINE__, tmp->orig_line, tmp->text());
- LOG_FMT(LINDENT2, " tmp->flags: ");
- log_pcf_flags(LINDENT2, tmp->flags); // Issue #2332
-
- if ( tmp->flags.test(PCF_VAR_DEF)
- && ( chunk_is_token(tmp, CT_WORD)
- || chunk_is_token(tmp, CT_FUNC_CTOR_VAR)))
- {
- do_vardefcol = true;
- }
- }
- //LOG_FMT(LINDENT2, "%s(%d): GUY 2:\n", __func__, __LINE__);
-
- if (pc->flags.test(PCF_DONT_INDENT))
- {
- // no change
- }
- else if ( get_chunk_parent_type(pc) == CT_SQL_EXEC
- && options::indent_preserve_sql())
- {
- log_rule_B("indent_preserve_sql");
- reindent_line(pc, sql_col + (pc->orig_col - sql_orig_col));
- LOG_FMT(LINDENT, "Indent SQL: [%s] to %zu (%zu/%zu)\n",
- pc->text(), pc->column, sql_col, sql_orig_col);
- }
- else if ( !options::indent_member_single()
- && !pc->flags.test(PCF_STMT_START)
- && ( chunk_is_token(pc, CT_MEMBER)
- || ( chunk_is_token(pc, CT_DC_MEMBER)
- && chunk_is_token(prev, CT_TYPE))
- || ( chunk_is_token(prev, CT_MEMBER)
- || ( chunk_is_token(prev, CT_DC_MEMBER)
- && chunk_is_token(prevv, CT_TYPE)))))
- {
- log_rule_B("indent_member_single");
- log_rule_B("indent_member");
- size_t tmp = options::indent_member() + indent_column;
- LOG_FMT(LINDENT, "%s(%d): orig_line is %zu, member => %zu\n",
- __func__, __LINE__, pc->orig_line, tmp);
- reindent_line(pc, tmp);
- }
- else if (do_vardefcol)
- {
- LOG_FMT(LINDENT, "%s(%d): orig_line is %zu, vardefcol is %zu\n",
- __func__, __LINE__, pc->orig_line, vardefcol);
- reindent_line(pc, vardefcol);
- }
- else if (shiftcontcol > 0)
- {
- LOG_FMT(LINDENT, "%s(%d): orig_line is %zu, shiftcontcol is %zu\n",
- __func__, __LINE__, pc->orig_line, shiftcontcol);
- reindent_line(pc, shiftcontcol);
- }
- else if ( chunk_is_token(pc, CT_NAMESPACE)
- && options::indent_namespace()
- && options::indent_namespace_single_indent()
- && frm.top().ns_cnt)
- {
- log_rule_B("indent_namespace");
- log_rule_B("indent_namespace_single_indent");
- LOG_FMT(LINDENT, "%s(%d): orig_line is %zu, Namespace => %zu\n",
- __func__, __LINE__, pc->orig_line, frm.top().brace_indent);
- reindent_line(pc, frm.top().brace_indent);
- }
- else if ( chunk_is_token(pc, CT_STRING)
- && chunk_is_token(prev, CT_STRING)
- && options::indent_align_string())
- {
- log_rule_B("indent_align_string");
- const int tmp = (xml_indent != 0) ? xml_indent : prev->column;
-
- LOG_FMT(LINDENT, "%s(%d): orig_line is %zu, String => %d\n",
- __func__, __LINE__, pc->orig_line, tmp);
- reindent_line(pc, tmp);
- }
- else if (chunk_is_comment(pc))
- {
- LOG_FMT(LINDENT, "%s(%d): orig_line is %zu, comment => %zu\n",
- __func__, __LINE__, pc->orig_line, frm.top().indent_tmp);
- indent_comment(pc, frm.top().indent_tmp);
- }
- else if (chunk_is_token(pc, CT_PREPROC))
- {
- LOG_FMT(LINDENT, "%s(%d): orig_line is %zu, pp-indent => %zu [%s]\n",
- __func__, __LINE__, pc->orig_line, indent_column, pc->text());
- reindent_line(pc, indent_column);
- }
- else if ( chunk_is_paren_close(pc)
- || chunk_is_token(pc, CT_ANGLE_CLOSE))
- {
- /*
- * This is a big hack. We assume that since we hit a paren close,
- * that we just removed a paren open
- */
- LOG_FMT(LINDLINE, "%s(%d): indent_column is %zu\n",
- __func__, __LINE__, indent_column);
-
- if (frm.poped().type == c_token_t(pc->type - 1))
- {
- // Issue # 405
- LOG_FMT(LINDLINE, "%s(%d): orig_line is %zu, orig_col is %zu, text() is '%s', type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(), get_token_name(pc->type));
- chunk_t *ck1 = frm.poped().pc;
- LOG_FMT(LINDLINE, "%s(%d): ck1->orig_line is %zu, ck1->orig_col is %zu, ck1->text() is '%s', ck1->type is %s\n",
- __func__, __LINE__, ck1->orig_line, ck1->orig_col, ck1->text(), get_token_name(ck1->type));
- chunk_t *ck2 = chunk_get_prev(ck1);
- LOG_FMT(LINDLINE, "%s(%d): ck2->orig_line is %zu, ck2->orig_col is %zu, ck2->text() is '%s', ck2->type is %s\n",
- __func__, __LINE__, ck2->orig_line, ck2->orig_col, ck2->text(), get_token_name(ck2->type));
-
- /*
- * If the open parenthesis was the first thing on the line or we
- * are doing mode 1, then put the close parenthesis in the same
- * column
- */
- log_rule_B("indent_paren_close");
-
- if ( chunk_is_newline(ck2)
- || (options::indent_paren_close() == 1))
- {
- LOG_FMT(LINDLINE, "%s(%d): [%zu:%zu] indent_paren_close is 1\n",
- __func__, __LINE__, ck2->orig_line, ck2->orig_col);
- indent_column_set(ck1->column);
- LOG_FMT(LINDLINE, "%s(%d): [%zu:%zu] indent_column set to %zu\n",
- __func__, __LINE__, ck2->orig_line, ck2->orig_col, indent_column);
- }
- else
- {
- log_rule_B("indent_paren_close");
-
- if (options::indent_paren_close() != 2)
- {
- // indent_paren_close is 0 or 1
- LOG_FMT(LINDLINE, "%s(%d): [%zu:%zu] indent_paren_close is 0 or 1\n",
- __func__, __LINE__, ck2->orig_line, ck2->orig_col);
- indent_column_set(frm.poped().indent_tmp);
- LOG_FMT(LINDLINE, "%s(%d): [%zu:%zu] indent_column set to %zu\n",
- __func__, __LINE__, ck2->orig_line, ck2->orig_col, indent_column);
- pc->column_indent = frm.poped().indent_tab;
- log_rule_B("indent_paren_close");
-
- if (options::indent_paren_close() == 1)
- {
- LOG_FMT(LINDLINE, "%s(%d): [%zu:%zu] indent_paren_close is 1\n",
- __func__, __LINE__, ck2->orig_line, ck2->orig_col);
-
- if (indent_column == 0)
- {
- fprintf(stderr, "%s(%d): indent_column is ZERO, cannot be decremented, at line %zu, column %zu\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col);
- log_flush(true);
- exit(EX_SOFTWARE);
- }
- indent_column--;
- LOG_FMT(LINDLINE, "%s(%d): [%zu:%zu] indent_column set to %zu\n",
- __func__, __LINE__, ck2->orig_line, ck2->orig_col, indent_column);
- }
- }
- else
- {
- // indent_paren_close is 2: Indent to the brace level
- LOG_FMT(LINDLINE, "%s(%d): indent_paren_close is 2\n",
- __func__, __LINE__);
- LOG_FMT(LINDLINE, "%s(%d): ck2->orig_line is %zu, ck2->orig_col is %zu, ck2->text() is '%s'\n",
- __func__, __LINE__, ck2->orig_line, ck2->orig_col, ck2->text());
-
- if (chunk_get_prev(pc)->type == CT_NEWLINE)
- {
- LOG_FMT(LINDLINE, "%s(%d): orig_line is %zu, orig_col is %zu, text() is '%s', type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(), get_token_name(pc->type));
- LOG_FMT(LINDLINE, "%s(%d): prev is <newline>\n",
- __func__, __LINE__);
- chunk_t *search = pc;
-
- while (chunk_is_paren_close(chunk_get_next(search)))
- {
- search = chunk_get_next(search);
- }
- chunk_t *searchNext = chunk_get_next(search);
-
- if ( searchNext->type == CT_SEMICOLON
- || searchNext->type == CT_MEMBER // Issue #2582
- || searchNext->type == CT_NEWLINE)
- {
- LOG_FMT(LINDLINE, "%s(%d):\n", __func__, __LINE__);
- search = chunk_skip_to_match_rev(search);
-
- if ( options::indent_oc_inside_msg_sel()
- && chunk_is_token(chunk_get_prev_ncnnl(search), CT_OC_COLON)
- && ( frm.top().type == CT_OC_MSG_FUNC
- || frm.top().type == CT_OC_MSG_NAME)) // Issue #2658
- {
- log_rule_B("indent_oc_inside_msg_sel");
- // [Class Message:(...)<here>
- indent_column_set(frm.top().pc->column);
- }
- else if ( options::indent_inside_ternary_operator()
- && ( frm.top().type == CT_QUESTION
- || frm.top().type == CT_COND_COLON)) // Issue #1130, #1715
- {
- log_rule_B("indent_inside_ternary_operator");
- indent_column_set(frm.top().indent);
- }
- else
- {
- search = chunk_get_next(chunk_get_prev_nl(search));
-
- if (search == nullptr)
- {
- search = chunk_get_head();
- }
- indent_column_set(search->column);
- }
- }
- }
- }
- }
- }
- size_t indent_value = 0;
- LOG_FMT(LINDENT, "%s(%d): orig_line is %zu, closing parenthesis => %zu, text is '%s'\n",
- __func__, __LINE__, pc->orig_line, indent_column, pc->text());
- LOG_FMT(LINDENT, "%s(%d): [%s/%s]\n",
- __func__, __LINE__,
- get_token_name(pc->type), get_token_name(get_chunk_parent_type(pc)));
- chunk_t *prev2 = chunk_get_prev(pc); // Issue #2930
- LOG_FMT(LINDENT, "%s(%d): prev2 is orig_line is %zu, text is '%s'\n",
- __func__, __LINE__, prev2->orig_line, prev2->text());
- chunk_t *next2 = chunk_get_next(pc);
- LOG_FMT(LINDENT, "%s(%d): next2 is orig_line is %zu, text is '%s'\n",
- __func__, __LINE__, next2->orig_line, next2->text());
-
- if ( get_chunk_parent_type(pc) == CT_FUNC_DEF
- && chunk_is_newline(prev2)
- && chunk_is_newline(next2))
- {
- if (options::donot_indent_func_def_close_paren())
- {
- indent_value = 1;
- }
- else
- {
- reindent_line(pc, indent_column);
- indent_value = indent_column;
- }
- }
- else
- {
- indent_value = indent_column;
- }
- reindent_line(pc, indent_value);
- }
- else if (chunk_is_token(pc, CT_COMMA))
- {
- log_rule_B("indent_comma_paren");
- bool comma_paren = options::indent_comma_paren()
- && chunk_is_paren_open(frm.top().pc);
- log_rule_B("indent_comma_brace");
- bool comma_brace = options::indent_comma_brace()
- && chunk_is_opening_brace(frm.top().pc);
-
- if (comma_paren || comma_brace)
- {
- indent_column_set(frm.top().pc->column);
- }
- LOG_FMT(LINDENT, "%s(%d): %zu] comma => %zu [%s]\n",
- __func__, __LINE__, pc->orig_line, indent_column, pc->text());
- reindent_line(pc, indent_column);
- }
- else if ( options::indent_func_const()
- && chunk_is_token(pc, CT_QUALIFIER)
- && strncasecmp(pc->text(), "const", pc->len()) == 0
- && ( next == nullptr
- || chunk_is_token(next, CT_BRACED)
- || chunk_is_token(next, CT_BRACE_OPEN)
- || chunk_is_token(next, CT_NEWLINE)
- || chunk_is_token(next, CT_SEMICOLON)
- || chunk_is_token(next, CT_THROW)
- || chunk_is_token(next, CT_VBRACE_OPEN)))
- {
- // indent const - void GetFoo(void)\n const\n { return (m_Foo); }
- log_rule_B("indent_func_const");
- indent_column_set(frm.top().indent + options::indent_func_const());
- LOG_FMT(LINDENT, "%s(%d): %zu] const => %zu [%s]\n",
- __func__, __LINE__, pc->orig_line, indent_column, pc->text());
- reindent_line(pc, indent_column);
- }
- else if ( options::indent_func_throw()
- && chunk_is_token(pc, CT_THROW)
- && get_chunk_parent_type(pc) != CT_NONE)
- {
- // indent throw - void GetFoo(void)\n throw()\n { return (m_Foo); }
- log_rule_B("indent_func_throw");
- indent_column_set(options::indent_func_throw());
- LOG_FMT(LINDENT, "%s(%d): %zu] throw => %zu [%s]\n",
- __func__, __LINE__, pc->orig_line, indent_column, pc->text());
- reindent_line(pc, indent_column);
- }
- else if ( pc->flags.test(PCF_IN_FOR)
- && options::indent_semicolon_for_paren()
- && chunk_is_token(pc, CT_SEMICOLON))
- {
- log_rule_B("indent_semicolon_for_paren");
- indent_column_set(frm.top().pc->column);
-
- log_rule_B("indent_first_for_expr");
-
- if (options::indent_first_for_expr())
- {
- reindent_line(chunk_get_next(frm.top().pc),
- indent_column + pc->len() + 1);
- }
- LOG_FMT(LINDENT, "%s(%d): %zu] SEMICOLON => %zu [%s]\n",
- __func__, __LINE__, pc->orig_line, indent_column, pc->text());
- reindent_line(pc, indent_column);
- }
- else if (chunk_is_token(pc, CT_BOOL))
- {
- log_rule_B("indent_bool_paren");
-
- if ( options::indent_bool_paren()
- && chunk_is_paren_open(frm.top().pc))
- {
- indent_column_set(frm.top().pc->column);
-
- log_rule_B("indent_first_bool_expr");
-
- if (options::indent_first_bool_expr())
- {
- reindent_line(chunk_get_next(frm.top().pc),
- indent_column + pc->len() + 1);
- }
- }
- LOG_FMT(LINDENT, "%s(%d): %zu] bool => %zu [%s]\n",
- __func__, __LINE__, pc->orig_line, indent_column, pc->text());
- reindent_line(pc, indent_column);
- }
- else if ( options::indent_ternary_operator() == 1
- && chunk_is_token(prev, CT_COND_COLON)
- && ( chunk_is_token(pc, CT_ADDR)
- || chunk_is_token(pc, CT_WORD)
- || chunk_is_token(pc, CT_DEREF)
- || chunk_is_token(pc, CT_NUMBER)
- || chunk_is_token(pc, CT_STRING)
- || chunk_is_token(pc, CT_PAREN_OPEN)))
- {
- log_rule_B("indent_ternary_operator");
- chunk_t *tmp = chunk_get_prev_type(prev, CT_QUESTION, -1);
-
- if (tmp != nullptr)
- {
- tmp = chunk_get_next_ncnnl(tmp);
-
- if (tmp != nullptr)
- {
- LOG_FMT(LINDENT, "%s: %zu] ternarydefcol => %zu [%s]\n",
- __func__, pc->orig_line, tmp->column, pc->text());
- reindent_line(pc, tmp->column);
- }
- }
- }
- else if ( options::indent_ternary_operator() == 2
- && chunk_is_token(pc, CT_COND_COLON))
- {
- log_rule_B("indent_ternary_operator");
- chunk_t *tmp = chunk_get_prev_type(pc, CT_QUESTION, -1);
-
- if (tmp != nullptr)
- {
- LOG_FMT(LINDENT, "%s: %zu] ternarydefcol => %zu [%s]\n",
- __func__, pc->orig_line, tmp->column, pc->text());
- reindent_line(pc, tmp->column);
- }
- }
- else if ( options::indent_oc_inside_msg_sel()
- && ( chunk_is_token(pc, CT_OC_MSG_FUNC)
- || chunk_is_token(pc, CT_OC_MSG_NAME))) // Issue #2658
- {
- log_rule_B("indent_oc_inside_msg_sel");
- reindent_line(pc, frm.top().indent);
- }
- else
- {
- bool use_indent = true;
- const size_t ttidx = frm.size() - 1;
-
- if (ttidx > 0)
- {
- LOG_FMT(LINDPC, "%s(%d): (frm.at(ttidx).pc)->parent_type is %s\n",
- __func__, __LINE__, get_token_name((frm.at(ttidx).pc)->parent_type));
-
- if ((frm.at(ttidx).pc)->parent_type == CT_FUNC_CALL)
- {
- LOG_FMT(LINDPC, "FUNC_CALL OK [%d]\n", __LINE__);
-
- log_rule_B("use_indent_func_call_param");
-
- if (options::use_indent_func_call_param())
- {
- LOG_FMT(LINDPC, "use is true [%d]\n", __LINE__);
- }
- else
- {
- LOG_FMT(LINDPC, "use is false [%d]\n", __LINE__);
- use_indent = false;
- }
- }
- }
- LOG_FMT(LINDENT, "%s(%d): pc->line is %zu, pc->column is %zu, pc->text() is '%s, indent_column is %zu\n",
- __func__, __LINE__, pc->orig_line, pc->column, pc->text(), indent_column);
-
- if ( use_indent
- && pc->type != CT_PP_IGNORE) // Leave indentation alone for PP_IGNORE tokens
- {
- log_rule_B("pos_conditional");
-
- if ( ( chunk_is_token(pc, CT_QUESTION) // Issue #2101
- || chunk_is_token(pc, CT_COND_COLON)) // Issue #2101
- && options::pos_conditional() == TP_IGNORE)
- {
- // do not indent this line
- LOG_FMT(LINDENT, "%s(%d): %zu] don't indent this line\n",
- __func__, __LINE__, pc->orig_line);
- }
- else if (chunk_is_token(pc, CT_BREAK))
- {
- // Issue #1692
- log_rule_B("indent_switch_break_with_case");
-
- // Issue #2281
- if ( options::indent_switch_break_with_case()
- && get_type_of_the_parent(pc) == CT_SWITCH)
- {
- // look for a case before Issue #2735
- chunk_t *whereIsCase = chunk_get_prev_type(pc, CT_CASE, pc->level);
-
- if (whereIsCase != nullptr)
- {
- LOG_FMT(LINDENT, "%s(%d): orig_line is %zu, orig_col is %zu, text() is '%s'\n",
- __func__, __LINE__, whereIsCase->orig_line, whereIsCase->orig_col, whereIsCase->text());
- LOG_FMT(LINDENT, "%s(%d): column is %zu\n",
- __func__, __LINE__, whereIsCase->column);
- reindent_line(pc, whereIsCase->column);
- }
- }
- else
- {
- LOG_FMT(LINDENT, "%s(%d): orig_line is %zu, indent set to %zu, for '%s'\n",
- __func__, __LINE__, pc->orig_line, indent_column, pc->text());
- reindent_line(pc, indent_column);
- }
- }
- else if ( chunk_is_token(pc, CT_MEMBER) // Issue #2890
- && language_is_set(LANG_CPP))
- {
- // comment name: XXXXXXXXXXXXXXXXXXXXXXXXXX
- LOG_FMT(LINDENT, "%s(%d): orig_line is %zu, indent set to %zu, for '%s'\n",
- __func__, __LINE__, pc->orig_line, indent_column, pc->text());
- const size_t frm_size = frm.size();
- LOG_FMT(LINDPC, "%s(%d): frm_size is %zu\n",
- __func__, __LINE__, frm_size);
- // get pc
- LOG_FMT(LINDPC, "%s(%d): text() is '%s', (frm.at(frm_size - 1).pc)->type is %s\n",
- __func__, __LINE__, (frm.at(frm_size - 1).pc)->text(), get_token_name((frm.at(frm_size - 1).pc)->type));
- // get the token before
- const size_t temp_ttidx = frm_size - 2;
-
- if (temp_ttidx == 0)
- {
- indent_column = 1 + indent_size;
- reindent_line(pc, indent_column);
- }
- else if (temp_ttidx > 0)
- {
- chunk_t *token_before = frm.at(temp_ttidx).pc;
- LOG_FMT(LINDPC, "%s(%d): text() is '%s', token_before->type is %s\n",
- __func__, __LINE__, token_before->text(), get_token_name(token_before->type));
-
- size_t vor_col = 0;
-
- if (chunk_is_token(token_before, CT_ASSIGN))
- {
- chunk_t *before_Assign = frm.at(temp_ttidx - 1).pc;
-
- if (before_Assign == nullptr)
- {
- indent_column = 1 + indent_size;
- }
- else
- {
- vor_col = before_Assign->column;
- LOG_FMT(LINDPC, "%s(%d): text() is '%s', before_Assign->type is %s, column is %zu\n",
- __func__, __LINE__, before_Assign->text(), get_token_name(before_Assign->type), vor_col);
- indent_column = vor_col + 2 * indent_size;
- }
- }
- else if (chunk_is_token(token_before, CT_BRACE_OPEN))
- {
- vor_col = token_before->column;
- LOG_FMT(LINDPC, "%s(%d): text() is '%s', token_before->type is %s, column is %zu\n",
- __func__, __LINE__, token_before->text(), get_token_name(token_before->type), vor_col);
- indent_column = vor_col + 2 * indent_size;
- }
- else if (chunk_is_token(token_before, CT_RETURN))
- {
- chunk_t *before_Return = frm.at(temp_ttidx - 1).pc;
- vor_col = before_Return->column;
- LOG_FMT(LINDPC, "%s(%d): text() is '%s', before_Return->type is %s, column is %zu\n",
- __func__, __LINE__, before_Return->text(), get_token_name(before_Return->type), vor_col);
- indent_column = vor_col + 2 * indent_size;
- }
- else
- {
- // TO DO
- }
- reindent_line(pc, indent_column);
- }
- else
- {
- LOG_FMT(LINDPC, "%s(%d): temp_ttidx is zero\n",
- __func__, __LINE__);
- }
- reindent_line(pc, indent_column);
- }
- else
- {
- LOG_FMT(LINDENT, "%s(%d): orig_line is %zu, indent set to %zu, for '%s'\n",
- __func__, __LINE__, pc->orig_line, indent_column, pc->text());
- reindent_line(pc, indent_column);
- }
- }
- else
- {
- // do not indent this line
- LOG_FMT(LINDENT, "%s(%d): %zu] don't indent this line\n",
- __func__, __LINE__, pc->orig_line);
- }
- }
- did_newline = false;
-
- if ( chunk_is_token(pc, CT_SQL_EXEC)
- || chunk_is_token(pc, CT_SQL_BEGIN)
- || chunk_is_token(pc, CT_SQL_END))
- {
- sql_col = pc->column;
- sql_orig_col = pc->orig_col;
- }
-
- // Handle indent for variable defs at the top of a block of code
- if (pc->flags.test(PCF_VAR_TYPE))
- {
- if ( !frm.top().non_vardef
- && (frm.top().type == CT_BRACE_OPEN))
- {
- log_rule_B("indent_var_def_blk");
- const auto val = options::indent_var_def_blk();
-
- if (val != 0)
- {
- auto indent = indent_column;
- indent = (val > 0) ? val // reassign if positive val,
- : (cast_abs(indent, val) < indent) // else if no underflow
- ? (indent + val) : 0; // reduce, else 0
-
- LOG_FMT(LINDENT, "%s(%d): %zu] var_type indent => %zu [%s]\n",
- __func__, __LINE__, pc->orig_line, indent, pc->text());
- reindent_line(pc, indent);
- }
- }
- }
- else if (pc != frm.top().pc)
- {
- frm.top().non_vardef = true;
- }
- }
-
- // if we hit a newline, reset indent_tmp
- if ( chunk_is_newline(pc)
- || chunk_is_token(pc, CT_COMMENT_MULTI)
- || chunk_is_token(pc, CT_COMMENT_CPP))
- {
- log_indent();
- frm.top().indent_tmp = frm.top().indent;
- log_indent_tmp();
-
- /*
- * Handle the case of a multi-line #define w/o anything on the
- * first line (indent_tmp will be 1 or 0)
- */
- if ( chunk_is_token(pc, CT_NL_CONT)
- && (frm.top().indent_tmp <= indent_size))
- {
- frm.top().indent_tmp = indent_size + 1;
- log_indent_tmp();
- }
- // Get ready to indent the next item
- did_newline = true;
- }
- // Check for open XML tags "</..."
- log_rule_B("indent_xml_string");
-
- if ( options::indent_xml_string() > 0
- && chunk_is_token(pc, CT_STRING)
- && pc->len() > 4
- && pc->str[1] == '<'
- && pc->str[2] != '/'
- && pc->str[pc->len() - 3] != '/')
- {
- if (xml_indent <= 0)
- {
- xml_indent = pc->column;
- }
- log_rule_B("indent_xml_string");
- xml_indent += options::indent_xml_string();
- }
- // Issue #672
- log_rule_B("indent_continue_class_head");
-
- if ( chunk_is_token(pc, CT_CLASS)
- && language_is_set(LANG_CPP | LANG_JAVA)
- && options::indent_continue_class_head() != 0
- && !classFound)
- {
- LOG_FMT(LINDENT, "%s(%d): orig_line is %zu, CT_CLASS found and UO_indent_continue != 0, OPEN IT\n",
- __func__, __LINE__, pc->orig_line);
- frm.push(pc, __func__, __LINE__);
- frm.top().indent = options::indent_continue_class_head() + 1;
- log_indent();
-
- frm.top().indent_tmp = frm.top().indent;
- frm.top().indent_tab = frm.top().indent;
- log_indent_tmp();
- classFound = true;
- }
- pc = chunk_get_next(pc);
- }
-null_pc:
-
- // Throw out any stuff inside a preprocessor - no need to warn
- while ( !frm.empty()
- && frm.top().in_preproc)
- {
- frm.pop(__func__, __LINE__);
- }
-
- // Throw out any VBRACE_OPEN at the end - implied with the end of file
- while ( !frm.empty()
- && frm.top().type == CT_VBRACE_OPEN)
- {
- frm.pop(__func__, __LINE__);
- }
-
- for (size_t idx_temp = 1; idx_temp < frm.size(); idx_temp++)
- {
- LOG_FMT(LWARN, "%s(%d): size is %zu\n",
- __func__, __LINE__, frm.size());
- LOG_FMT(LWARN, "%s(%d): File: %s, open_line is %zu, parent is %s: Unmatched %s\n",
- __func__, __LINE__, cpd.filename.c_str(), frm.at(idx_temp).open_line,
- get_token_name(frm.at(idx_temp).parent),
- get_token_name(frm.at(idx_temp).type));
- cpd.error_count++;
- }
-
- LOG_FMT(LINDLINE, "%s(%d): before quick_align_again\n", __func__, __LINE__);
- quick_align_again();
- quick_indent_again();
- LOG_FMT(LINDLINE, "%s(%d): after quick_align_again\n", __func__, __LINE__);
-} // indent_text
-
-
-static bool single_line_comment_indent_rule_applies(chunk_t *start, bool forward)
-{
- LOG_FUNC_ENTRY();
-
- if (!chunk_is_single_line_comment(start))
- {
- return(false);
- }
- chunk_t *pc = start;
- size_t nl_count = 0;
-
- while ((pc = forward ? chunk_get_next(pc) : chunk_get_prev(pc)) != nullptr)
- {
- if (chunk_is_newline(pc))
- {
- if ( nl_count > 0
- || pc->nl_count > 1)
- {
- return(false);
- }
- nl_count++;
- }
- else if (chunk_is_single_line_comment(pc))
- {
- nl_count = 0;
- }
- else if ( chunk_is_token(pc, CT_COMMENT_MULTI)
- || (forward && chunk_is_closing_brace(pc))
- || (!forward && chunk_is_opening_brace(pc)))
- {
- /*
- * check for things we wouldn't want to indent the comment for
- * example: non-single line comment, closing brace
- */
- return(false);
- }
- else
- {
- return(true);
- }
- }
- return(false);
-} // single_line_comment_indent_rule_applies
-
-
-static bool is_end_of_assignment(chunk_t *pc, const ParseFrame &frm)
-{
- return( ( frm.top().type == CT_ASSIGN_NL
- || frm.top().type == CT_MEMBER
- || frm.top().type == CT_ASSIGN)
- && ( chunk_is_semicolon(pc)
- || chunk_is_token(pc, CT_COMMA)
- || chunk_is_token(pc, CT_BRACE_OPEN)
- || chunk_is_token(pc, CT_SPAREN_CLOSE)
- || ( chunk_is_token(pc, CT_SQUARE_OPEN)
- && get_chunk_parent_type(pc) == CT_ASSIGN))
- && get_chunk_parent_type(pc) != CT_CPP_LAMBDA);
-}
-
-
-static size_t calc_comment_next_col_diff(chunk_t *pc)
-{
- chunk_t *next = pc; // assumes pc has a comment type
-
- LOG_FMT(LCMTIND, "%s(%d): next->text() is '%s'\n",
- __func__, __LINE__, next->text());
-
- // Note: every comment is squashed into a single token
- // (including newline chars for multiline comments) and is followed by
- // a newline token (unless there are no more tokens left)
- do
- {
- chunk_t *newline_token = chunk_get_next(next);
- LOG_FMT(LCMTIND, "%s(%d): newline_token->text() is '%s', orig_line is %zu, orig_col is %zu\n",
- __func__, __LINE__, newline_token->text(), newline_token->orig_line, newline_token->orig_col);
-
- if ( newline_token == nullptr
- || newline_token->nl_count > 1)
- {
- return(5000); // FIXME: Max thresh magic number 5000
- }
- next = chunk_get_next(newline_token);
-
- if (next != nullptr)
- {
- LOG_FMT(LCMTIND, "%s(%d): next->text() is '%s', orig_line is %zu, orig_col is %zu\n",
- __func__, __LINE__, next->text(), next->orig_line, next->orig_col);
- }
- } while (chunk_is_comment(next));
-
- if (next == nullptr)
- {
- return(5000); // FIXME: Max thresh magic number 5000
- }
- LOG_FMT(LCMTIND, "%s(%d): next->text() is '%s'\n",
- __func__, __LINE__, next->text());
- // here next is the first non comment, non newline token
- return(next->orig_col > pc->orig_col
- ? next->orig_col - pc->orig_col
- : pc->orig_col - next->orig_col);
-}
-
-
-static void indent_comment(chunk_t *pc, size_t col)
-{
- LOG_FUNC_ENTRY();
- char copy[1000];
-
- LOG_FMT(LCMTIND, "%s(%d): pc->text() is '%s', orig_line %zu, orig_col %zu, level %zu\n",
- __func__, __LINE__, pc->elided_text(copy), pc->orig_line, pc->orig_col, pc->level);
-
- // force column 1 comment to column 1 if not changing them
- log_rule_B("indent_col1_comment");
-
- if ( pc->orig_col == 1
- && !options::indent_col1_comment()
- && !pc->flags.test(PCF_INSERTED))
- {
- LOG_FMT(LCMTIND, "%s(%d): rule 1 - keep in col 1\n", __func__, __LINE__);
- reindent_line(pc, 1);
- return;
- }
- chunk_t *nl = chunk_get_prev(pc);
-
- if (nl != nullptr)
- {
- LOG_FMT(LCMTIND, "%s(%d): nl->text() is '%s', orig_line %zu, orig_col %zu, level %zu\n",
- __func__, __LINE__, nl->text(), nl->orig_line, nl->orig_col, nl->level);
- }
-
- if (pc->orig_col > 1)
- {
- chunk_t *prev = chunk_get_prev(nl);
-
- if (prev != nullptr)
- {
- LOG_FMT(LCMTIND, "%s(%d): prev->text() is '%s', orig_line %zu, orig_col %zu, level %zu\n",
- __func__, __LINE__, prev->text(), prev->orig_line, prev->orig_col, prev->level);
- log_pcf_flags(LCMTIND, prev->flags);
- }
-
- if ( chunk_is_comment(prev)
- && nl->nl_count == 1)
- {
- const size_t prev_col_diff = (prev->orig_col > pc->orig_col)
- ? prev->orig_col - pc->orig_col
- : pc->orig_col - prev->orig_col;
- LOG_FMT(LCMTIND, "%s(%d): prev_col_diff is %zu\n",
- __func__, __LINE__, prev_col_diff);
-
- /*
- * Here we want to align comments that are relatively close one to
- * another but not when the comment is a Doxygen comment (Issue #1134)
- */
- if (prev_col_diff <= options::indent_comment_align_thresh())
- {
- LOG_FMT(LCMTIND, "%s(%d): prev->text() is '%s', Doxygen_comment(prev) is %s\n",
- __func__, __LINE__, prev->text(), chunk_is_Doxygen_comment(prev) ? "TRUE" : "FALSE");
- LOG_FMT(LCMTIND, "%s(%d): pc->text() is '%s', Doxygen_comment(pc) is %s\n",
- __func__, __LINE__, pc->text(), chunk_is_Doxygen_comment(pc) ? "TRUE" : "FALSE");
-
- if (chunk_is_Doxygen_comment(prev) == chunk_is_Doxygen_comment(pc))
- {
- const size_t next_col_diff = calc_comment_next_col_diff(pc);
- LOG_FMT(LCMTIND, "%s(%d): next_col_diff is %zu\n",
- __func__, __LINE__, next_col_diff);
-
- // Align to the previous comment or to the next token?
- if ( prev_col_diff <= next_col_diff
- || next_col_diff == 5000) // FIXME: Max thresh magic number 5000
- {
- LOG_FMT(LCMTIND, "%s(%d): rule 3 - prev comment, coldiff = %zu, now in %zu\n",
- __func__, __LINE__, prev_col_diff, pc->column);
- reindent_line(pc, prev->column);
- return;
- }
- }
- }
- }
- }
- // check if special single-line-comment-before-code rule applies
- log_rule_B("indent_single_line_comments_before");
-
- if ( (options::indent_single_line_comments_before() > 0)
- && single_line_comment_indent_rule_applies(pc, true))
- {
- LOG_FMT(LCMTIND, "%s(%d): rule 4 - indent single line comments before code, now in %zu\n",
- __func__, __LINE__, pc->column);
- reindent_line(pc, col + options::indent_single_line_comments_before());
- return;
- }
- // check if special single-line-comment-after-code rule applies
- log_rule_B("indent_single_line_comments_after");
-
- if ( (options::indent_single_line_comments_after() > 0)
- && single_line_comment_indent_rule_applies(pc, false))
- {
- LOG_FMT(LCMTIND, "%s(%d): rule 4 - indent single line comments after code, now in %zu\n",
- __func__, __LINE__, pc->column);
- reindent_line(pc, col + options::indent_single_line_comments_after());
- return;
- }
- log_rule_B("indent_comment");
-
- if ( pc->orig_col > 1
- && !options::indent_comment())
- {
- LOG_FMT(LCMTIND, "%s(%d): rule 5 - keep in orig_col\n", __func__, __LINE__);
- reindent_line(pc, pc->orig_col);
- return;
- }
- LOG_FMT(LCMTIND, "%s(%d): rule 6 - fall-through, stay in %zu\n",
- __func__, __LINE__, col);
- reindent_line(pc, col);
-} // indent_comment
-
-
-bool ifdef_over_whole_file(void)
-{
- LOG_FUNC_ENTRY();
-
- // if requested, treat an #if that guards the entire file the same as any other #if
- if (options::pp_indent_in_guard())
- {
- return(false);
- }
-
- // the results for this file are cached
- if (cpd.ifdef_over_whole_file)
- {
- return(cpd.ifdef_over_whole_file > 0);
- }
- chunk_t *start_pp = nullptr;
- chunk_t *end_pp = nullptr;
- size_t IFstage = 0;
-
- for (chunk_t *pc = chunk_get_head(); pc != nullptr; pc = chunk_get_next(pc))
- {
- LOG_FMT(LNOTE, "%s(%d): pc->pp_level is %zu, pc->orig_line is %zu, pc->orig_col is %zu, pc->text() is '%s'\n",
- __func__, __LINE__, pc->pp_level, pc->orig_line, pc->orig_col, pc->text());
-
- if ( chunk_is_comment(pc)
- || chunk_is_newline(pc))
- {
- continue;
- }
-
- if (IFstage == 0) // 0 is BEGIN
- {
- // Check the first preprocessor, make sure it is an #if type
- if (pc->type != CT_PREPROC)
- {
- break;
- }
- chunk_t *next = chunk_get_next(pc);
-
- if ( next == nullptr
- || next->type != CT_PP_IF)
- {
- break;
- }
- IFstage = 1; // 1 is CT_PP_IF found
- start_pp = pc;
- }
- else if (IFstage == 1) // 1 is CT_PP_IF found
- {
- // Scan until a preprocessor at level 0 is found - the close to the #if
- if (chunk_is_token(pc, CT_PREPROC))
- {
- if (pc->pp_level == 0)
- {
- IFstage = 2;
- end_pp = pc;
- }
- }
- continue;
- }
- else if (IFstage == 2)
- {
- // We should only see the rest of the preprocessor
- if ( chunk_is_token(pc, CT_PREPROC)
- || !pc->flags.test(PCF_IN_PREPROC))
- {
- IFstage = 0;
- break;
- }
- }
- }
-
- cpd.ifdef_over_whole_file = (IFstage == 2) ? 1 : -1;
-
- if (cpd.ifdef_over_whole_file > 0)
- {
- chunk_flags_set(start_pp, PCF_WF_IF);
- chunk_flags_set(end_pp, PCF_WF_ENDIF);
- }
- LOG_FMT(LNOTE, "The whole file is%s covered by a #IF\n",
- (cpd.ifdef_over_whole_file > 0) ? "" : " NOT");
- return(cpd.ifdef_over_whole_file > 0);
-} // ifdef_over_whole_file
-
-
-void indent_preproc(void)
-{
- LOG_FUNC_ENTRY();
-
- // Scan to see if the whole file is covered by one #ifdef
- const size_t pp_level_sub = ifdef_over_whole_file() ? 1 : 0;
-
- for (chunk_t *pc = chunk_get_head(); pc != nullptr; pc = chunk_get_next(pc))
- {
- LOG_FMT(LPPIS, "%s(%d): orig_line is %zu, orig_col is %zu, pc->text() is '%s'\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text());
-
- if (pc->type != CT_PREPROC)
- {
- continue;
- }
- chunk_t *next = chunk_get_next_ncnnl(pc);
-
- if (next == nullptr)
- {
- break;
- }
- const size_t pp_level = (pc->pp_level > pp_level_sub)
- ? pc->pp_level - pp_level_sub : 0;
-
- // Adjust the indent of the '#'
- log_rule_B("pp_indent");
-
- if (options::pp_indent() & IARF_ADD)
- {
- log_rule_B("pp_indent_count");
- reindent_line(pc, 1 + pp_level * options::pp_indent_count());
- }
- else if (options::pp_indent() & IARF_REMOVE)
- {
- log_rule_B("pp_indent");
- reindent_line(pc, 1);
- }
- // Add spacing by adjusting the length
- log_rule_B("pp_space");
-
- if ( (options::pp_space() != IARF_IGNORE)
- && next != nullptr)
- {
- if (options::pp_space() & IARF_ADD)
- {
- log_rule_B("pp_space_count");
- // Issue #3055
- const size_t mult = max<size_t>(options::pp_space_count(), 1);
- reindent_line(next, pc->column + pc->len() + (pp_level * mult));
- }
- else if (options::pp_space() & IARF_REMOVE)
- {
- log_rule_B("pp_space");
- reindent_line(next, pc->column + pc->len());
- }
- }
- // Mark as already handled if not region stuff or in column 1
- log_rule_B("pp_indent_at_level");
-
- if ( ( !options::pp_indent_at_level()
- || (pc->brace_level <= ((get_chunk_parent_type(pc) == CT_PP_DEFINE) ? 1 : 0)))
- && get_chunk_parent_type(pc) != CT_PP_REGION
- && get_chunk_parent_type(pc) != CT_PP_ENDREGION)
- {
- log_rule_B("pp_define_at_level");
-
- if ( !options::pp_define_at_level()
- || get_chunk_parent_type(pc) != CT_PP_DEFINE)
- {
- chunk_flags_set(pc, PCF_DONT_INDENT);
- }
- }
- LOG_FMT(LPPIS, "%s(%d): orig_line %zu to %zu (len %zu, next->col %zu)\n",
- __func__, __LINE__, pc->orig_line, 1 + pp_level, pc->len(),
- next ? next->column : -1);
- }
-} // indent_preproc
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/indent.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/indent.h
deleted file mode 100644
index dc703eed..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/indent.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/**
- * @file indent.h
- * prototypes for indent.c
- *
- * @author Ben Gardner
- * @license GPL v2+
- */
-#ifndef INDENT_H_INCLUDED
-#define INDENT_H_INCLUDED
-
-#include "uncrustify_types.h"
-
-
-/**
- * Change the top-level indentation only by changing the column member in
- * the chunk structures.
- * The level indicator must already be set.
- */
-void indent_text(void);
-
-
-/**
- * Indent the preprocessor stuff from column 1.
- * FIXME: This is broken if there is a comment or escaped newline
- * between '#' and 'define'.
- */
-void indent_preproc(void);
-
-/**
- *
- * @param pc chunk at the start of the line
- * @param column desired column
- */
-void indent_to_column(chunk_t *pc, size_t column);
-
-
-/**
- * Same as indent_to_column, except we can move both ways
- *
- * @param pc chunk at the start of the line
- * @param column desired column
- */
-void align_to_column(chunk_t *pc, size_t column);
-
-
-//! Scan to see if the whole file is covered by one #ifdef
-bool ifdef_over_whole_file(void);
-
-
-/**
- * Changes the initial indent for a line to the given column
- *
- * @param pc The chunk at the start of the line
- * @param column The desired column
- */
-void reindent_line(chunk_t *pc, size_t column);
-
-
-#endif /* INDENT_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/keywords.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/keywords.cpp
deleted file mode 100644
index 56a8a693..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/keywords.cpp
+++ /dev/null
@@ -1,666 +0,0 @@
-/**
- * @file keywords.cpp
- * Manages the table of keywords.
- *
- * @author Ben Gardner
- * @author Guy Maurel since version 0.62 for uncrustify4Qt
- * October 2015, 2016
- * @license GPL v2+
- */
-
-#include "keywords.h"
-
-#include "args.h"
-#include "prototypes.h"
-
-#include <cerrno>
-#include <map>
-
-
-using namespace std;
-
-// Dynamic keyword map
-typedef map<string, c_token_t> dkwmap;
-static dkwmap dkwm;
-
-
-/**
- * Compares two chunk_tag_t entries using strcmp on the strings
- *
- * @param the 'left' entry
- * @param the 'right' entry
- *
- * @return == 0 if both keywords are equal
- * @return < 0 p1 is smaller than p2
- * @return > 0 p2 is smaller than p1
- */
-static int kw_compare(const void *p1, const void *p2);
-
-
-/**
- * search in static keywords for first occurrence of a given tag
- *
- * @param tag/keyword to search for
- */
-static const chunk_tag_t *kw_static_first(const chunk_tag_t *tag);
-
-
-//static const chunk_tag_t *kw_static_match(const chunk_tag_t *tag);
-static const chunk_tag_t *kw_static_match(const chunk_tag_t *tag, int lang_flags);
-
-/**
- * interesting static keywords - keep sorted.
- * Table includes the Name, Type, and Language flags.
- */
-static chunk_tag_t keywords[] =
-{
- // TODO: it might be useful if users could add there custom keywords to this list
- { "@autoreleasepool", CT_AUTORELEASEPOOL, LANG_OC },
- { "@available", CT_OC_AVAILABLE, LANG_OC },
- { "@catch", CT_CATCH, LANG_OC },
- { "@dynamic", CT_OC_DYNAMIC, LANG_OC },
- { "@end", CT_OC_END, LANG_OC },
- { "@finally", CT_FINALLY, LANG_OC },
- { "@implementation", CT_OC_IMPL, LANG_OC },
- { "@interface", CT_OC_INTF, LANG_OC },
- { "@interface", CT_CLASS, LANG_JAVA },
- { "@private", CT_ACCESS, LANG_OC },
- { "@property", CT_OC_PROPERTY, LANG_OC },
- { "@protected", CT_ACCESS, LANG_OC },
- { "@protocol", CT_OC_PROTOCOL, LANG_OC },
- { "@public", CT_ACCESS, LANG_OC },
- { "@selector", CT_OC_SEL, LANG_OC },
- { "@synchronized", CT_SYNCHRONIZED, LANG_OC },
- { "@synthesize", CT_OC_DYNAMIC, LANG_OC },
- { "@throw", CT_THROW, LANG_OC },
- { "@try", CT_TRY, LANG_OC },
- { "API_AVAILABLE", CT_ATTRIBUTE, LANG_OC },
- { "API_DEPRECATED", CT_ATTRIBUTE, LANG_OC },
- { "API_DEPRECATED_WITH_REPLACEMENT", CT_ATTRIBUTE, LANG_OC },
- { "API_UNAVAILABLE", CT_ATTRIBUTE, LANG_OC },
- { "BOOL", CT_TYPE, LANG_OC },
- { "NS_ENUM", CT_ENUM, LANG_OC },
- { "NS_OPTIONS", CT_ENUM, LANG_OC },
- { "Q_EMIT", CT_Q_EMIT, LANG_CPP }, // guy 2015-10-16
- { "Q_FOREACH", CT_FOR, LANG_CPP }, // guy 2015-09-23
- { "Q_FOREVER", CT_Q_FOREVER, LANG_CPP }, // guy 2015-10-18
- { "Q_GADGET", CT_Q_GADGET, LANG_CPP }, // guy 2016-05-04
- { "Q_OBJECT", CT_COMMENT_EMBED, LANG_CPP },
- { "Q_SIGNALS", CT_ACCESS, LANG_CPP },
- { "_Bool", CT_TYPE, LANG_C },
- { "_Complex", CT_TYPE, LANG_C },
- { "_Imaginary", CT_TYPE, LANG_C },
- { "_Nonnull", CT_QUALIFIER, LANG_OC },
- { "_Null_unspecified", CT_QUALIFIER, LANG_OC },
- { "_Nullable", CT_QUALIFIER, LANG_OC },
- { "_Pragma", CT_PP_PRAGMA, LANG_ALL | FLAG_PP },
- { "__DI__", CT_DI, LANG_C },
- { "__HI__", CT_HI, LANG_C },
- { "__QI__", CT_QI, LANG_C },
- { "__SI__", CT_SI, LANG_C },
- { "__asm__", CT_ASM, LANG_C },
- { "__attribute__", CT_ATTRIBUTE, LANG_C },
- { "__autoreleasing", CT_QUALIFIER, LANG_C },
- { "__block", CT_QUALIFIER, LANG_C },
- { "__bridge", CT_QUALIFIER, LANG_C },
- { "__bridge_retained", CT_QUALIFIER, LANG_C },
- { "__bridge_transfer", CT_QUALIFIER, LANG_C },
- { "__const__", CT_QUALIFIER, LANG_C },
- { "__declspec", CT_DECLSPEC, LANG_C },
- { "__except", CT_CATCH, LANG_C },
- { "__finally", CT_FINALLY, LANG_C },
- { "__has_include", CT_CNG_HASINC, LANG_C | FLAG_PP }, // clang
- { "__has_include_next", CT_CNG_HASINCN, LANG_C | FLAG_PP }, // clang
- { "__inline__", CT_QUALIFIER, LANG_C },
- { "__nonnull", CT_QUALIFIER, LANG_OC },
- { "__nothrow__", CT_NOTHROW, LANG_C },
- { "__null_unspecified", CT_QUALIFIER, LANG_OC },
- { "__nullable", CT_QUALIFIER, LANG_OC },
- { "__pragma", CT_PP_PRAGMA, LANG_ALL | FLAG_PP },
- { "__restrict", CT_QUALIFIER, LANG_C },
- { "__signed__", CT_TYPE, LANG_C },
- { "__strong", CT_QUALIFIER, LANG_C },
- { "__thread", CT_QUALIFIER, LANG_C },
- { "__traits", CT_QUALIFIER, LANG_D },
- { "__try", CT_TRY, LANG_C },
- { "__typeof", CT_DECLTYPE, LANG_C },
- { "__typeof__", CT_DECLTYPE, LANG_C },
- { "__unsafe_unretained", CT_QUALIFIER, LANG_OC },
- { "__unused", CT_ATTRIBUTE, LANG_C },
- { "__volatile__", CT_QUALIFIER, LANG_C },
- { "__weak", CT_QUALIFIER, LANG_C },
- { "__word__", CT_WORD_, LANG_C },
- { "abstract", CT_QUALIFIER, LANG_CS | LANG_D | LANG_JAVA | LANG_VALA | LANG_ECMA },
- { "add", CT_GETSET, LANG_CS },
- { "alias", CT_USING, LANG_D },
- { "align", CT_ALIGN, LANG_D },
- { "alignof", CT_SIZEOF, LANG_CPP },
- { "and", CT_SBOOL, LANG_CPP },
- { "and_eq", CT_SASSIGN, LANG_CPP },
- { "as", CT_AS, LANG_CS | LANG_VALA },
- { "asm", CT_ASM, LANG_C | LANG_D },
- { "asm", CT_PP_ASM, LANG_ALL | FLAG_PP },
- { "assert", CT_ASSERT, LANG_JAVA },
- { "assert", CT_FUNCTION, LANG_D | LANG_PAWN }, // PAWN
- { "assert", CT_PP_ASSERT, LANG_PAWN | FLAG_PP }, // PAWN
- { "auto", CT_TYPE, LANG_C | LANG_D },
- { "base", CT_BASE, LANG_CS | LANG_VALA },
- { "bit", CT_TYPE, LANG_D },
- { "bitand", CT_ARITH, LANG_C },
- { "bitor", CT_ARITH, LANG_C },
- { "body", CT_BODY, LANG_D },
- { "bool", CT_TYPE, LANG_C | LANG_CS | LANG_VALA },
- { "boolean", CT_TYPE, LANG_JAVA | LANG_ECMA },
- { "break", CT_BREAK, LANG_ALL }, // PAWN
- { "byte", CT_TYPE, LANG_CS | LANG_D | LANG_JAVA | LANG_ECMA },
- { "callback", CT_QUALIFIER, LANG_VALA },
- { "case", CT_CASE, LANG_ALL }, // PAWN
- { "cast", CT_D_CAST, LANG_D },
- { "catch", CT_CATCH, LANG_CPP | LANG_CS | LANG_VALA | LANG_D | LANG_JAVA | LANG_ECMA },
- { "cdouble", CT_TYPE, LANG_D },
- { "cent", CT_TYPE, LANG_D },
- { "cfloat", CT_TYPE, LANG_D },
- { "char", CT_CHAR, LANG_PAWN }, // PAWN
- { "char", CT_TYPE, LANG_ALLC },
- { "checked", CT_QUALIFIER, LANG_CS },
- { "class", CT_CLASS, LANG_CPP | LANG_CS | LANG_D | LANG_JAVA | LANG_VALA | LANG_ECMA },
- { "compl", CT_ARITH, LANG_CPP },
- { "const", CT_QUALIFIER, LANG_ALL }, // PAWN
- { "const_cast", CT_TYPE_CAST, LANG_CPP },
- { "constexpr", CT_QUALIFIER, LANG_CPP },
- { "construct", CT_CONSTRUCT, LANG_VALA },
- { "continue", CT_CONTINUE, LANG_ALL }, // PAWN
- { "creal", CT_TYPE, LANG_D },
- { "dchar", CT_TYPE, LANG_D },
- { "debug", CT_DEBUG, LANG_D },
- { "debugger", CT_DEBUGGER, LANG_ECMA },
- { "decltype", CT_DECLTYPE, LANG_CPP },
- { "default", CT_DEFAULT, LANG_ALL }, // PAWN
- { "define", CT_PP_DEFINE, LANG_ALL | FLAG_PP }, // PAWN
- { "defined", CT_DEFINED, LANG_PAWN }, // PAWN
- { "defined", CT_PP_DEFINED, LANG_ALLC | FLAG_PP },
- { "delegate", CT_DELEGATE, LANG_CS | LANG_VALA | LANG_D },
- { "delete", CT_DELETE, LANG_CPP | LANG_D | LANG_ECMA | LANG_VALA },
- { "deprecated", CT_QUALIFIER, LANG_D },
- { "do", CT_DO, LANG_ALL }, // PAWN
- { "double", CT_TYPE, LANG_ALLC },
- { "dynamic_cast", CT_TYPE_CAST, LANG_CPP },
- { "elif", CT_PP_ELSE, LANG_ALLC | FLAG_PP },
- { "else", CT_ELSE, LANG_ALL }, // PAWN
- { "else", CT_PP_ELSE, LANG_ALL | FLAG_PP }, // PAWN
- { "elseif", CT_PP_ELSE, LANG_PAWN | FLAG_PP }, // PAWN
- { "emit", CT_PP_EMIT, LANG_PAWN | FLAG_PP }, // PAWN
- { "endif", CT_PP_ENDIF, LANG_ALL | FLAG_PP }, // PAWN
- { "endinput", CT_PP_ENDINPUT, LANG_PAWN | FLAG_PP }, // PAWN
- { "endregion", CT_PP_ENDREGION, LANG_ALL | FLAG_PP },
- { "endscript", CT_PP_ENDINPUT, LANG_PAWN | FLAG_PP }, // PAWN
- { "enum", CT_ENUM, LANG_ALL }, // PAWN
- { "error", CT_PP_ERROR, LANG_PAWN | FLAG_PP }, // PAWN
- { "event", CT_TYPE, LANG_CS },
- { "exit", CT_FUNCTION, LANG_PAWN }, // PAWN
- { "explicit", CT_QUALIFIER, LANG_CPP | LANG_CS },
- { "export", CT_EXPORT, LANG_CPP | LANG_D | LANG_ECMA },
- { "extends", CT_QUALIFIER, LANG_JAVA | LANG_ECMA },
- { "extern", CT_EXTERN, LANG_C | LANG_CS | LANG_D | LANG_VALA },
- { "false", CT_WORD, LANG_ALL },
- { "file", CT_PP_FILE, LANG_PAWN | FLAG_PP }, // PAWN
- { "final", CT_QUALIFIER, LANG_CPP | LANG_D | LANG_ECMA },
- { "finally", CT_FINALLY, LANG_D | LANG_CS | LANG_VALA | LANG_ECMA | LANG_JAVA },
- { "fixed", CT_FIXED, LANG_CS },
- { "flags", CT_TYPE, LANG_VALA },
- { "float", CT_TYPE, LANG_ALLC },
- { "for", CT_FOR, LANG_ALL }, // PAWN
- { "foreach", CT_FOR, LANG_CS | LANG_D | LANG_VALA },
- { "foreach_reverse", CT_FOR, LANG_D },
- { "forward", CT_FORWARD, LANG_PAWN }, // PAWN
- { "friend", CT_FRIEND, LANG_CPP },
- { "function", CT_FUNCTION, LANG_D | LANG_ECMA },
- { "get", CT_GETSET, LANG_CS | LANG_VALA },
- { "goto", CT_GOTO, LANG_ALL }, // PAWN
- { "idouble", CT_TYPE, LANG_D },
- { "if", CT_IF, LANG_ALL }, // PAWN
- { "if", CT_PP_IF, LANG_ALL | FLAG_PP }, // PAWN
- { "ifdef", CT_PP_IF, LANG_ALLC | FLAG_PP },
- { "ifloat", CT_TYPE, LANG_D },
- { "ifndef", CT_PP_IF, LANG_ALLC | FLAG_PP },
- { "implements", CT_QUALIFIER, LANG_JAVA | LANG_ECMA },
- { "implicit", CT_QUALIFIER, LANG_CS },
- { "import", CT_IMPORT, LANG_D | LANG_JAVA | LANG_ECMA }, // fudged to get indenting
- { "import", CT_PP_INCLUDE, LANG_OC | FLAG_PP }, // ObjectiveC version of include
- { "in", CT_IN, LANG_D | LANG_CS | LANG_VALA | LANG_ECMA | LANG_OC },
- { "include", CT_PP_INCLUDE, LANG_C | LANG_PAWN | FLAG_PP }, // PAWN
- { "inline", CT_QUALIFIER, LANG_C },
- { "inout", CT_QUALIFIER, LANG_D },
- { "instanceof", CT_SIZEOF, LANG_JAVA | LANG_ECMA },
- { "int", CT_TYPE, LANG_ALLC },
- { "interface", CT_CLASS, LANG_CPP | LANG_CS | LANG_D | LANG_JAVA | LANG_VALA | LANG_ECMA },
- { "internal", CT_QUALIFIER, LANG_CS },
- { "invariant", CT_INVARIANT, LANG_D },
- { "ireal", CT_TYPE, LANG_D },
- { "is", CT_SCOMPARE, LANG_D | LANG_CS | LANG_VALA },
- { "lazy", CT_LAZY, LANG_D },
- { "line", CT_PP_LINE, LANG_PAWN | FLAG_PP }, // PAWN
- { "lock", CT_LOCK, LANG_CS | LANG_VALA },
- { "long", CT_TYPE, LANG_ALLC },
- { "macro", CT_D_MACRO, LANG_D },
- { "mixin", CT_CLASS, LANG_D }, // may need special handling
- { "module", CT_D_MODULE, LANG_D },
- { "mutable", CT_QUALIFIER, LANG_CPP },
- { "namespace", CT_NAMESPACE, LANG_CPP | LANG_CS | LANG_VALA },
- { "native", CT_NATIVE, LANG_PAWN }, // PAWN
- { "native", CT_QUALIFIER, LANG_JAVA | LANG_ECMA },
- { "new", CT_NEW, LANG_CPP | LANG_CS | LANG_D | LANG_JAVA | LANG_PAWN | LANG_VALA | LANG_ECMA }, // PAWN
- { "noexcept", CT_NOEXCEPT, LANG_CPP },
- { "nonnull", CT_TYPE, LANG_OC },
- { "not", CT_SARITH, LANG_CPP },
- { "not_eq", CT_SCOMPARE, LANG_CPP },
-// { "null", CT_TYPE, LANG_CS | LANG_D | LANG_JAVA | LANG_VALA },
- { "null_resettable", CT_OC_PROPERTY_ATTR, LANG_OC },
- { "null_unspecified", CT_TYPE, LANG_OC },
- { "nullable", CT_TYPE, LANG_OC },
- { "object", CT_TYPE, LANG_CS },
- { "operator", CT_OPERATOR, LANG_CPP | LANG_CS | LANG_PAWN }, // PAWN
- { "or", CT_SBOOL, LANG_CPP },
- { "or_eq", CT_SASSIGN, LANG_CPP },
- { "out", CT_QUALIFIER, LANG_CS | LANG_D | LANG_VALA },
- { "override", CT_QUALIFIER, LANG_CPP | LANG_CS | LANG_D | LANG_VALA },
- { "package", CT_ACCESS, LANG_D },
- { "package", CT_PACKAGE, LANG_ECMA | LANG_JAVA },
- { "params", CT_TYPE, LANG_CS | LANG_VALA },
- { "pragma", CT_PP_PRAGMA, LANG_ALL | FLAG_PP },
- { "private", CT_ACCESS, LANG_ALLC }, // not C
- { "property", CT_PP_PROPERTY, LANG_CS | FLAG_PP },
- { "protected", CT_ACCESS, LANG_ALLC }, // not C
- { "public", CT_ACCESS, LANG_ALL }, // PAWN // not C
- { "readonly", CT_QUALIFIER, LANG_CS },
- { "real", CT_TYPE, LANG_D },
- { "ref", CT_QUALIFIER, LANG_CS | LANG_VALA },
- { "region", CT_PP_REGION, LANG_ALL | FLAG_PP },
- { "register", CT_QUALIFIER, LANG_C },
- { "reinterpret_cast", CT_TYPE_CAST, LANG_CPP },
- { "remove", CT_GETSET, LANG_CS },
- { "restrict", CT_QUALIFIER, LANG_C },
- { "return", CT_RETURN, LANG_ALL }, // PAWN
- { "sbyte", CT_TYPE, LANG_CS },
- { "scope", CT_D_SCOPE, LANG_D },
- { "sealed", CT_QUALIFIER, LANG_CS },
- { "section", CT_PP_SECTION, LANG_PAWN | FLAG_PP }, // PAWN
- { "self", CT_THIS, LANG_OC },
- { "set", CT_GETSET, LANG_CS | LANG_VALA },
- { "short", CT_TYPE, LANG_ALLC },
- { "signal", CT_ACCESS, LANG_VALA },
- { "signals", CT_ACCESS, LANG_CPP },
- { "signed", CT_TYPE, LANG_C },
- { "size_t", CT_TYPE, LANG_ALLC },
- { "sizeof", CT_SIZEOF, LANG_C | LANG_CS | LANG_VALA | LANG_PAWN }, // PAWN
- { "sleep", CT_SIZEOF, LANG_PAWN }, // PAWN
- { "stackalloc", CT_NEW, LANG_CS },
- { "state", CT_STATE, LANG_PAWN }, // PAWN
- { "static", CT_QUALIFIER, LANG_ALL }, // PAWN
- { "static_cast", CT_TYPE_CAST, LANG_CPP },
- { "stock", CT_STOCK, LANG_PAWN }, // PAWN
- { "strictfp", CT_QUALIFIER, LANG_JAVA },
- { "string", CT_TYPE, LANG_CS | LANG_VALA },
- { "struct", CT_STRUCT, LANG_C | LANG_CS | LANG_D | LANG_VALA },
- { "super", CT_SUPER, LANG_D | LANG_JAVA | LANG_ECMA },
- { "switch", CT_SWITCH, LANG_ALL }, // PAWN
- { "synchronized", CT_QUALIFIER, LANG_D | LANG_ECMA },
- { "synchronized", CT_SYNCHRONIZED, LANG_JAVA },
- { "tagof", CT_TAGOF, LANG_PAWN }, // PAWN
- { "template", CT_TEMPLATE, LANG_CPP | LANG_D },
- { "this", CT_THIS, LANG_CPP | LANG_CS | LANG_D | LANG_JAVA | LANG_VALA | LANG_ECMA },
- { "throw", CT_THROW, LANG_CPP | LANG_CS | LANG_VALA | LANG_D | LANG_JAVA | LANG_ECMA },
- { "throws", CT_QUALIFIER, LANG_JAVA | LANG_ECMA | LANG_VALA },
- { "transient", CT_QUALIFIER, LANG_JAVA | LANG_ECMA },
- { "true", CT_WORD, LANG_ALL },
- { "try", CT_TRY, LANG_CPP | LANG_CS | LANG_D | LANG_JAVA | LANG_ECMA | LANG_VALA },
- { "tryinclude", CT_PP_INCLUDE, LANG_PAWN | FLAG_PP }, // PAWN
- { "typedef", CT_TYPEDEF, LANG_C | LANG_D },
- { "typeid", CT_SIZEOF, LANG_CPP | LANG_D },
- { "typename", CT_TYPENAME, LANG_CPP },
- { "typeof", CT_DECLTYPE, LANG_C },
- { "typeof", CT_SIZEOF, LANG_CS | LANG_D | LANG_VALA | LANG_ECMA },
- { "ubyte", CT_TYPE, LANG_D },
- { "ucent", CT_TYPE, LANG_D },
- { "uint", CT_TYPE, LANG_CS | LANG_VALA | LANG_D },
- { "ulong", CT_TYPE, LANG_CS | LANG_VALA | LANG_D },
- { "unchecked", CT_QUALIFIER, LANG_CS },
- { "undef", CT_PP_UNDEF, LANG_ALL | FLAG_PP }, // PAWN
- { "union", CT_UNION, LANG_C | LANG_D },
- { "unittest", CT_UNITTEST, LANG_D },
- { "unsafe", CT_UNSAFE, LANG_CS },
- { "unsafe_unretained", CT_QUALIFIER, LANG_OC },
- { "unsigned", CT_TYPE, LANG_C },
- { "ushort", CT_TYPE, LANG_CS | LANG_VALA | LANG_D },
- { "using", CT_USING, LANG_CPP | LANG_CS | LANG_VALA },
- { "var", CT_TYPE, LANG_VALA | LANG_ECMA },
- { "version", CT_D_VERSION, LANG_D },
- { "virtual", CT_QUALIFIER, LANG_CPP | LANG_CS | LANG_VALA },
- { "void", CT_TYPE, LANG_ALLC },
- { "volatile", CT_QUALIFIER, LANG_C | LANG_CS | LANG_JAVA | LANG_ECMA },
- { "volatile", CT_VOLATILE, LANG_D },
- { "wchar", CT_TYPE, LANG_D },
- { "wchar_t", CT_TYPE, LANG_C },
- { "weak", CT_QUALIFIER, LANG_VALA },
- { "when", CT_WHEN, LANG_CS },
- { "where", CT_WHERE, LANG_CS },
- { "while", CT_WHILE, LANG_ALL }, // PAWN
- { "with", CT_D_WITH, LANG_D | LANG_ECMA },
- { "xor", CT_SARITH, LANG_CPP },
- { "xor_eq", CT_SASSIGN, LANG_CPP },
-};
-
-
-void init_keywords()
-{
- /* Please read comments above keywords array */
-
- for (int idx = 1; idx < (int)ARRAY_SIZE(keywords); idx++)
- {
- chunk_tag_t *tag = &keywords[idx];
-
- if ( (tag->lang_flags == LANG_ALL)
- || (tag->lang_flags == LANG_ALLC))
- {
- continue;
- }
-
- if ((tag->lang_flags & LANG_C) != 0)
- {
- int lang_flags = LANG_OC;
- const chunk_tag_t *probe = kw_static_match(tag, lang_flags);
-
- if (probe == NULL)
- {
- tag->lang_flags |= lang_flags;
- }
- lang_flags = LANG_CPP;
- probe = kw_static_match(tag, lang_flags);
-
- if (probe == NULL)
- {
- tag->lang_flags |= lang_flags;
- }
- }
- }
-}
-
-
-static int kw_compare(const void *p1, const void *p2)
-{
- const chunk_tag_t *t1 = static_cast<const chunk_tag_t *>(p1);
- const chunk_tag_t *t2 = static_cast<const chunk_tag_t *>(p2);
-
- return(strcmp(t1->tag, t2->tag));
-}
-
-
-bool keywords_are_sorted(void)
-{
- for (int idx = 1; idx < static_cast<int> ARRAY_SIZE(keywords); idx++)
- {
- if (kw_compare(&keywords[idx - 1], &keywords[idx]) > 0)
- {
- fprintf(stderr, "%s: bad sort order at idx %d, words '%s' and '%s'\n",
- __func__, idx - 1, keywords[idx - 1].tag, keywords[idx].tag);
- // coveralls will always complain.
- // these lines are only needed for the developper.
- log_flush(true);
- cpd.error_count++;
- return(false);
- }
- }
-
- return(true);
-}
-
-
-void add_keyword(const std::string &tag, c_token_t type)
-{
- // See if the keyword has already been added
- dkwmap::iterator it = dkwm.find(tag);
-
- if (it != dkwm.end())
- {
- LOG_FMT(LDYNKW, "%s(%d): changed '%s' to '%s'\n",
- __func__, __LINE__, tag.c_str(), get_token_name(type));
- (*it).second = type;
- return;
- }
- // Insert the keyword
- dkwm.insert(dkwmap::value_type(tag, type));
- LOG_FMT(LDYNKW, "%s(%d): added '%s' as '%s'\n",
- __func__, __LINE__, tag.c_str(), get_token_name(type));
-}
-
-
-static const chunk_tag_t *kw_static_first(const chunk_tag_t *tag)
-{
- const chunk_tag_t *prev = tag - 1;
-
- // TODO: avoid pointer arithmetics
- // loop over static keyword array
- while ( prev >= &keywords[0] // not at beginning of keyword array
- && strcmp(prev->tag, tag->tag) == 0) // tags match
- {
- tag = prev;
- prev--;
- }
- return(tag);
-}
-
-
-static const chunk_tag_t *kw_static_match(const chunk_tag_t *tag, int lang_flags)
-{
- bool in_pp = ( cpd.in_preproc != CT_NONE
- && cpd.in_preproc != CT_PP_DEFINE);
-
- for (const chunk_tag_t *iter = kw_static_first(tag);
- iter < &keywords[ARRAY_SIZE(keywords)];
- iter++)
- {
- bool pp_iter = (iter->lang_flags & FLAG_PP) != 0; // forcing value to bool
-
- if ( (strcmp(iter->tag, tag->tag) == 0)
- && language_is_set(iter->lang_flags)
- && (lang_flags & iter->lang_flags)
- && in_pp == pp_iter)
- {
- return(iter);
- }
- }
-
- return(nullptr);
-}
-
-
-c_token_t find_keyword_type(const char *word, size_t len)
-{
- if (len <= 0)
- {
- return(CT_NONE);
- }
- // check the dynamic word list first
- string ss(word, len);
- dkwmap::iterator it = dkwm.find(ss);
-
- if (it != dkwm.end())
- {
- return((*it).second);
- }
- chunk_tag_t key;
-
- key.tag = ss.c_str();
-
- // check the static word list
- const chunk_tag_t *p_ret = static_cast<const chunk_tag_t *>(
- bsearch(&key, keywords, ARRAY_SIZE(keywords), sizeof(keywords[0]), kw_compare));
-
- if (p_ret != nullptr)
- {
- if ( strcmp(p_ret->tag, "__pragma") == 0
- || strcmp(p_ret->tag, "_Pragma") == 0)
- {
- cpd.in_preproc = CT_PREPROC;
- }
- p_ret = kw_static_match(p_ret, cpd.lang_flags);
- }
- return((p_ret != nullptr) ? p_ret->type : CT_WORD);
-}
-
-
-int load_keyword_file(const char *filename)
-{
- FILE *pf = fopen(filename, "r");
-
- if (pf == nullptr)
- {
- LOG_FMT(LERR, "%s: fopen(%s) failed: %s (%d)\n",
- __func__, filename, strerror(errno), errno);
- cpd.error_count++;
- return(EX_IOERR);
- }
- const int max_line_length = 256;
- const int max_arg_count = 2;
-
- // maximal length of a line in the file
- char buf[max_line_length];
- char *args[max_arg_count];
- size_t line_no = 0;
-
- // read file line by line
- while (fgets(buf, max_line_length, pf) != nullptr)
- {
- line_no++;
-
- // remove comments after '#' sign
- char *ptr;
-
- if ((ptr = strchr(buf, '#')) != nullptr)
- {
- *ptr = 0; // set string end where comment begins
- }
- size_t argc = Args::SplitLine(buf, args, max_arg_count);
-
- if (argc > 0)
- {
- if ( argc == 1
- && CharTable::IsKw1(*args[0]))
- {
- add_keyword(args[0], CT_TYPE);
- }
- else
- {
- LOG_FMT(LWARN, "%s:%zu Invalid line (starts with '%s')\n",
- filename, line_no, args[0]);
- cpd.error_count++;
- }
- }
- else
- {
- continue; // the line is empty
- }
- }
- fclose(pf);
- return(EX_OK);
-} // load_keyword_file
-
-
-void print_keywords(FILE *pfile)
-{
- for (const auto &keyword_pair : dkwm)
- {
- c_token_t tt = keyword_pair.second;
-
- if (tt == CT_TYPE)
- {
- fprintf(pfile, "type %*.s%s\n",
- uncrustify::limits::MAX_OPTION_NAME_LEN - 4, " ",
- keyword_pair.first.c_str());
- }
- else if (tt == CT_MACRO_OPEN)
- {
- fprintf(pfile, "macro-open %*.s%s\n",
- uncrustify::limits::MAX_OPTION_NAME_LEN - 11, " ",
- keyword_pair.first.c_str());
- }
- else if (tt == CT_MACRO_CLOSE)
- {
- fprintf(pfile, "macro-close %*.s%s\n",
- uncrustify::limits::MAX_OPTION_NAME_LEN - 12, " ",
- keyword_pair.first.c_str());
- }
- else if (tt == CT_MACRO_ELSE)
- {
- fprintf(pfile, "macro-else %*.s%s\n",
- uncrustify::limits::MAX_OPTION_NAME_LEN - 11, " ",
- keyword_pair.first.c_str());
- }
- else
- {
- const char *tn = get_token_name(tt);
-
- fprintf(pfile, "set %s %*.s%s\n",
- tn,
- uncrustify::limits::MAX_OPTION_NAME_LEN - (4 + static_cast<int>(strlen(tn))),
- " ", keyword_pair.first.c_str());
- }
- }
-}
-
-
-void clear_keyword_file(void)
-{
- dkwm.clear();
-}
-
-
-pattern_class_e get_token_pattern_class(c_token_t tok)
-{
- // TODO: instead of this switch better assign the pattern class to each statement
- switch (tok)
- {
- case CT_IF:
- case CT_ELSEIF:
- case CT_SWITCH:
- case CT_FOR:
- case CT_WHILE:
- case CT_SYNCHRONIZED:
- case CT_USING_STMT:
- case CT_LOCK:
- case CT_D_WITH:
- case CT_D_VERSION_IF:
- case CT_D_SCOPE_IF:
- return(pattern_class_e::PBRACED);
-
- case CT_ELSE:
- return(pattern_class_e::ELSE);
-
- case CT_DO:
- case CT_TRY:
- case CT_FINALLY:
- case CT_BODY:
- case CT_UNITTEST:
- case CT_UNSAFE:
- case CT_VOLATILE:
- case CT_GETSET:
- return(pattern_class_e::BRACED);
-
- case CT_CATCH:
- case CT_D_VERSION:
- case CT_DEBUG:
- return(pattern_class_e::OPBRACED);
-
- case CT_NAMESPACE:
- return(pattern_class_e::VBRACED);
-
- case CT_WHILE_OF_DO:
- return(pattern_class_e::PAREN);
-
- case CT_INVARIANT:
- return(pattern_class_e::OPPAREN);
-
- default:
- return(pattern_class_e::NONE);
- } // switch
-} // get_token_pattern_class
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/keywords.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/keywords.h
deleted file mode 100644
index 3a6f9ea5..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/keywords.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/**
- * @file keywords.h
- * prototypes for keywords.c
- *
- * @author Ben Gardner
- * @license GPL v2+
- */
-
-#ifndef KEYWORDS_H_INCLUDED
-#define KEYWORDS_H_INCLUDED
-
-#include "uncrustify_types.h"
-
-/**
- * Initializes keywords table
- */
-void init_keywords(void);
-
-/**
- * Loads the dynamic keywords from a file
- *
- * @param filename The path to the file to load
- *
- * @retval EX_OK successfully read keywords from file
- * @retval EX_IOERR reading keywords file failed
- */
-int load_keyword_file(const char *filename);
-
-
-/**
- * Search first the dynamic and then the static table for a matching keyword
- *
- * @param word Pointer to the text -- NOT zero terminated
- * @param len The length of the text
- *
- * @return CT_WORD (no match) or the keyword token
- */
-c_token_t find_keyword_type(const char *word, size_t len);
-
-
-/**
- * Adds a keyword to the list of dynamic keywords
- *
- * @param tag The tag (string) must be zero terminated
- * @param type The type, usually CT_TYPE
- */
-void add_keyword(const std::string &tag, c_token_t type);
-
-
-void print_keywords(FILE *pfile);
-
-
-void clear_keyword_file(void);
-
-
-//! Returns the pattern that the keyword needs based on the token
-pattern_class_e get_token_pattern_class(c_token_t tok);
-
-
-bool keywords_are_sorted(void);
-
-
-#endif /* KEYWORDS_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/lang_pawn.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/lang_pawn.cpp
deleted file mode 100644
index a3b3ed65..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/lang_pawn.cpp
+++ /dev/null
@@ -1,523 +0,0 @@
-/**
- * @file lang_pawn.cpp
- * Special functions for pawn stuff
- *
- * @author Ben Gardner
- * @license GPL v2+
- */
-
-#include "lang_pawn.h"
-
-#include "prototypes.h"
-
-using namespace uncrustify;
-
-
-/**
- * Checks to see if a token continues a statement to the next line.
- * We need to check for 'open' braces/paren/etc because the level doesn't
- * change until the token after the open.
- */
-static bool pawn_continued(chunk_t *pc, size_t br_level);
-
-
-/**
- * Functions prototypes and definitions can only appear in level 0.
- *
- * Function prototypes start with "native", "forward", or are just a function
- * with a trailing semicolon instead of a open brace (or something else)
- *
- * somefunc(params) <-- def
- * stock somefunc(params) <-- def
- * somefunc(params); <-- proto
- * forward somefunc(params) <-- proto
- * native somefunc[rect](params) <-- proto
- *
- * Functions start with 'stock', 'static', 'public', or '@' (on level 0)
- *
- * Variable definitions start with 'stock', 'static', 'new', or 'public'.
- */
-static chunk_t *pawn_process_line(chunk_t *start);
-
-
-//! We are on a level 0 function proto of def
-static chunk_t *pawn_mark_function0(chunk_t *start, chunk_t *fcn);
-
-
-/**
- * follows a variable definition at level 0 until the end.
- * Adds a semicolon at the end, if needed.
- */
-static chunk_t *pawn_process_variable(chunk_t *start);
-
-
-static chunk_t *pawn_process_func_def(chunk_t *pc);
-
-
-chunk_t *pawn_add_vsemi_after(chunk_t *pc)
-{
- LOG_FUNC_ENTRY();
-
- if ( chunk_is_token(pc, CT_VSEMICOLON)
- || chunk_is_token(pc, CT_SEMICOLON))
- {
- return(pc);
- }
- chunk_t *next = chunk_get_next_nc(pc);
-
- if ( next != nullptr
- && ( chunk_is_token(next, CT_VSEMICOLON)
- || chunk_is_token(next, CT_SEMICOLON)))
- {
- return(pc);
- }
- chunk_t chunk = *pc;
-
- set_chunk_type(&chunk, CT_VSEMICOLON);
- set_chunk_parent(&chunk, CT_NONE);
- chunk.str = options::mod_pawn_semicolon() ? ";" : "";
- chunk.column += pc->len();
-
- LOG_FMT(LPVSEMI, "%s: Added VSEMI on line %zu, prev='%s' [%s]\n",
- __func__, pc->orig_line, pc->text(),
- get_token_name(pc->type));
-
- return(chunk_add_after(&chunk, pc));
-}
-
-
-void pawn_scrub_vsemi(void)
-{
- constexpr static auto LCURRENT = LPVSEMI;
-
- LOG_FUNC_ENTRY();
-
- log_rule_B("mod_pawn_semicolon");
-
- if (!options::mod_pawn_semicolon())
- {
- return;
- }
-
- for (chunk_t *pc = chunk_get_head(); pc != nullptr; pc = chunk_get_next(pc))
- {
- if (pc->type != CT_VSEMICOLON)
- {
- continue;
- }
- chunk_t *prev = chunk_get_prev_ncnnl(pc);
-
- if (chunk_is_token(prev, CT_BRACE_CLOSE))
- {
- if ( get_chunk_parent_type(prev) == CT_IF
- || get_chunk_parent_type(prev) == CT_ELSE
- || get_chunk_parent_type(prev) == CT_SWITCH
- || get_chunk_parent_type(prev) == CT_CASE
- || get_chunk_parent_type(prev) == CT_WHILE_OF_DO)
- {
- pc->str.clear();
- }
- }
- }
-}
-
-
-static bool pawn_continued(chunk_t *pc, size_t br_level)
-{
- LOG_FUNC_ENTRY();
-
- if (pc == nullptr)
- {
- return(false);
- }
-
- if ( pc->level > br_level
- || chunk_is_token(pc, CT_ARITH)
- || chunk_is_token(pc, CT_SHIFT)
- || chunk_is_token(pc, CT_CARET)
- || chunk_is_token(pc, CT_QUESTION)
- || chunk_is_token(pc, CT_BOOL)
- || chunk_is_token(pc, CT_ASSIGN)
- || chunk_is_token(pc, CT_COMMA)
- || chunk_is_token(pc, CT_COMPARE)
- || chunk_is_token(pc, CT_IF)
- || chunk_is_token(pc, CT_ELSE)
- || chunk_is_token(pc, CT_DO)
- || chunk_is_token(pc, CT_SWITCH)
- || chunk_is_token(pc, CT_WHILE)
- || chunk_is_token(pc, CT_BRACE_OPEN)
- || chunk_is_token(pc, CT_VBRACE_OPEN)
- || chunk_is_token(pc, CT_FPAREN_OPEN)
- || get_chunk_parent_type(pc) == CT_IF
- || get_chunk_parent_type(pc) == CT_ELSE
- || get_chunk_parent_type(pc) == CT_ELSEIF
- || get_chunk_parent_type(pc) == CT_DO
- || get_chunk_parent_type(pc) == CT_FOR
- || get_chunk_parent_type(pc) == CT_SWITCH
- || get_chunk_parent_type(pc) == CT_WHILE
- || get_chunk_parent_type(pc) == CT_FUNC_DEF
- || get_chunk_parent_type(pc) == CT_ENUM
- || pc->flags.test_any(PCF_IN_ENUM | PCF_IN_STRUCT)
- || chunk_is_str(pc, ":", 1)
- || chunk_is_str(pc, "+", 1)
- || chunk_is_str(pc, "-", 1))
- {
- return(true);
- }
- return(false);
-} // pawn_continued
-
-
-void pawn_prescan(void)
-{
- LOG_FUNC_ENTRY();
-
- /*
- * Start at the beginning and step through the entire file, and clean up
- * any questionable stuff
- */
- bool did_nl = true;
- chunk_t *pc = chunk_get_head();
-
- while (pc != nullptr)
- {
- if ( did_nl
- && pc->type != CT_PREPROC
- && !chunk_is_newline(pc)
- && pc->level == 0)
- {
- // pc now points to the start of a line
- pc = pawn_process_line(pc);
- }
-
- // note that continued lines are ignored
- if (pc != nullptr)
- {
- did_nl = (chunk_is_token(pc, CT_NEWLINE));
- }
- pc = chunk_get_next_nc(pc);
- }
-}
-
-
-static chunk_t *pawn_process_line(chunk_t *start)
-{
- LOG_FUNC_ENTRY();
-
- //LOG_FMT(LSYS, "%s: %d - %s\n", __func__,
- // start->orig_line, start->text());
-
- if ( chunk_is_token(start, CT_NEW)
- || chunk_is_str(start, "const", 5))
- {
- return(pawn_process_variable(start));
- }
- // if a open paren is found before an assign, then this is a function
- chunk_t *fcn = nullptr;
-
- if (chunk_is_token(start, CT_WORD))
- {
- fcn = start;
- }
- chunk_t *pc = start;
-
- while ( ((pc = chunk_get_next_nc(pc)) != nullptr)
- && !chunk_is_str(pc, "(", 1)
- && pc->type != CT_ASSIGN
- && pc->type != CT_NEWLINE)
- {
- if ( pc->level == 0
- && ( chunk_is_token(pc, CT_FUNCTION)
- || chunk_is_token(pc, CT_WORD)
- || chunk_is_token(pc, CT_OPERATOR_VAL)))
- {
- fcn = pc;
- }
- }
-
- if (pc != nullptr)
- {
- if (chunk_is_token(pc, CT_ASSIGN))
- {
- return(pawn_process_variable(pc));
- }
- }
-
- if (fcn != nullptr)
- {
- //LOG_FMT(LSYS, "FUNCTION: %s\n", fcn->text());
- return(pawn_mark_function0(start, fcn));
- }
-
- if (chunk_is_token(start, CT_ENUM))
- {
- pc = chunk_get_next_type(start, CT_BRACE_CLOSE, start->level);
- return(pc);
- }
- //LOG_FMT(LSYS, "%s: Don't understand line %d, starting with '%s' [%s]\n",
- // __func__, start->orig_line, start->text(), get_token_name(start->type));
- return(start);
-} // pawn_process_line
-
-
-static chunk_t *pawn_process_variable(chunk_t *start)
-{
- LOG_FUNC_ENTRY();
- chunk_t *prev = nullptr;
- chunk_t *pc = start;
-
- while ((pc = chunk_get_next_nc(pc)) != nullptr)
- {
- if ( chunk_is_token(pc, CT_NEWLINE)
- && prev != nullptr // Issue 2586
- && !pawn_continued(prev, start->level))
- {
- if ( prev->type != CT_VSEMICOLON
- && prev->type != CT_SEMICOLON)
- {
- pawn_add_vsemi_after(prev);
- }
- break;
- }
- prev = pc;
- }
- return(pc);
-}
-
-
-void pawn_add_virtual_semicolons(void)
-{
- LOG_FUNC_ENTRY();
-
- // Add Pawn virtual semicolons
- if (language_is_set(LANG_PAWN))
- {
- chunk_t *prev = nullptr;
- chunk_t *pc = chunk_get_head();
-
- while ((pc = chunk_get_next(pc)) != nullptr)
- {
- if ( !chunk_is_comment(pc)
- && !chunk_is_newline(pc)
- && pc->type != CT_VBRACE_CLOSE
- && pc->type != CT_VBRACE_OPEN)
- {
- prev = pc;
- }
-
- if ( prev == nullptr
- || ( pc->type != CT_NEWLINE
- && pc->type != CT_BRACE_CLOSE
- && pc->type != CT_VBRACE_CLOSE))
- {
- continue;
- }
-
- // we just hit a newline and we have a previous token
- if ( !prev->flags.test(PCF_IN_PREPROC)
- && !prev->flags.test_any(PCF_IN_ENUM | PCF_IN_STRUCT)
- && prev->type != CT_VSEMICOLON
- && prev->type != CT_SEMICOLON
- && !pawn_continued(prev, prev->brace_level))
- {
- pawn_add_vsemi_after(prev);
- prev = nullptr;
- }
- }
- }
-}
-
-
-static chunk_t *pawn_mark_function0(chunk_t *start, chunk_t *fcn)
-{
- LOG_FUNC_ENTRY();
-
- // handle prototypes
- if (start == fcn)
- {
- chunk_t *last = chunk_get_next_type(fcn, CT_PAREN_CLOSE, fcn->level);
- last = chunk_get_next(last);
-
- if (chunk_is_token(last, CT_SEMICOLON))
- {
- LOG_FMT(LPFUNC, "%s: %zu] '%s' proto due to semicolon\n",
- __func__, fcn->orig_line, fcn->text());
- set_chunk_type(fcn, CT_FUNC_PROTO);
- return(last);
- }
- }
- else
- {
- if ( chunk_is_token(start, CT_FORWARD)
- || chunk_is_token(start, CT_NATIVE))
- {
- LOG_FMT(LPFUNC, "%s: %zu] '%s' [%s] proto due to %s\n",
- __func__, fcn->orig_line, fcn->text(),
- get_token_name(fcn->type),
- get_token_name(start->type));
- set_chunk_type(fcn, CT_FUNC_PROTO);
- return(chunk_get_next_nc(fcn));
- }
- }
- // Not a prototype, so it must be a function def
- return(pawn_process_func_def(fcn));
-}
-
-
-static chunk_t *pawn_process_func_def(chunk_t *pc)
-{
- LOG_FUNC_ENTRY();
-
- // We are on a function definition
- set_chunk_type(pc, CT_FUNC_DEF);
-
- LOG_FMT(LPFUNC, "%s: %zu:%zu %s\n",
- __func__, pc->orig_line, pc->orig_col, pc->text());
-
- /*
- * If we don't have a brace open right after the close fparen, then
- * we need to add virtual braces around the function body.
- */
- chunk_t *clp = chunk_get_next_str(pc, ")", 1, 0);
- chunk_t *last = chunk_get_next_ncnnl(clp);
-
- if (last != nullptr)
- {
- LOG_FMT(LPFUNC, "%s: %zu] last is '%s' [%s]\n",
- __func__, last->orig_line, last->text(), get_token_name(last->type));
- }
-
- // See if there is a state clause after the function
- if ( last != nullptr
- && chunk_is_str(last, "<", 1))
- {
- LOG_FMT(LPFUNC, "%s: %zu] '%s' has state angle open %s\n",
- __func__, pc->orig_line, pc->text(), get_token_name(last->type));
-
- set_chunk_type(last, CT_ANGLE_OPEN);
- set_chunk_parent(last, CT_FUNC_DEF);
-
- while ( ((last = chunk_get_next(last)) != nullptr)
- && !chunk_is_str(last, ">", 1))
- {
- // do nothing just search, TODO: use search_chunk
- }
-
- if (last != nullptr)
- {
- LOG_FMT(LPFUNC, "%s: %zu] '%s' has state angle close %s\n",
- __func__, pc->orig_line, pc->text(), get_token_name(last->type));
- set_chunk_type(last, CT_ANGLE_CLOSE);
- set_chunk_parent(last, CT_FUNC_DEF);
- }
- last = chunk_get_next_ncnnl(last);
- }
-
- if (last == nullptr)
- {
- return(last);
- }
-
- if (chunk_is_token(last, CT_BRACE_OPEN))
- {
- set_chunk_parent(last, CT_FUNC_DEF);
- last = chunk_get_next_type(last, CT_BRACE_CLOSE, last->level);
-
- if (last != nullptr)
- {
- set_chunk_parent(last, CT_FUNC_DEF);
- }
- }
- else
- {
- LOG_FMT(LPFUNC, "%s: %zu] '%s' fdef: expected brace open: %s\n",
- __func__, pc->orig_line, pc->text(), get_token_name(last->type));
-
- // do not insert a vbrace before a preproc
- if (last->flags.test(PCF_IN_PREPROC))
- {
- return(last);
- }
- chunk_t chunk = *last;
- chunk.str.clear();
- set_chunk_type(&chunk, CT_VBRACE_OPEN);
- set_chunk_parent(&chunk, CT_FUNC_DEF);
-
- chunk_t *prev = chunk_add_before(&chunk, last);
- last = prev;
-
- // find the next newline at level 0
- prev = chunk_get_next_ncnnl(prev);
-
- do
- {
- LOG_FMT(LPFUNC, "%s:%zu] check %s, level %zu\n",
- __func__, prev->orig_line, get_token_name(prev->type), prev->level);
-
- if ( chunk_is_token(prev, CT_NEWLINE)
- && prev->level == 0)
- {
- chunk_t *next = chunk_get_next_ncnnl(prev);
-
- if ( next != nullptr
- && next->type != CT_ELSE
- && next->type != CT_WHILE_OF_DO)
- {
- break;
- }
- }
- prev->level++;
- prev->brace_level++;
- last = prev;
- } while ((prev = chunk_get_next(prev)) != nullptr);
-
- if (last != nullptr)
- {
- LOG_FMT(LPFUNC, "%s:%zu] ended on %s, level %zu\n",
- __func__, last->orig_line, get_token_name(last->type), last->level);
- }
- chunk = *last;
- chunk.str.clear();
- set_chunk_type(&chunk, CT_VBRACE_CLOSE);
- set_chunk_parent(&chunk, CT_FUNC_DEF);
- chunk.column += last->len();
- chunk.level = 0;
- chunk.brace_level = 0;
- last = chunk_add_after(&chunk, last);
- }
- return(last);
-} // pawn_process_func_def
-
-
-chunk_t *pawn_check_vsemicolon(chunk_t *pc)
-{
- LOG_FUNC_ENTRY();
-
- // Grab the open VBrace
- chunk_t *vb_open = chunk_get_prev_type(pc, CT_VBRACE_OPEN, -1);
-
- /*
- * Grab the item before the newline
- * Don't do anything if:
- * - the only thing previous is the V-Brace open
- * - in a preprocessor
- * - level > (vb_open->level + 1) -- ie, in () or []
- * - it is something that needs a continuation
- * + arith, assign, bool, comma, compare
- */
- chunk_t *prev = chunk_get_prev_ncnnl(pc);
-
- if ( prev == nullptr
- || prev == vb_open
- || prev->flags.test(PCF_IN_PREPROC)
- || pawn_continued(prev, vb_open->level + 1))
- {
- if (prev != nullptr)
- {
- LOG_FMT(LPVSEMI, "%s: no VSEMI on line %zu, prev='%s' [%s]\n",
- __func__, prev->orig_line, prev->text(), get_token_name(prev->type));
- }
- return(pc);
- }
- return(pawn_add_vsemi_after(prev));
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/lang_pawn.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/lang_pawn.h
deleted file mode 100644
index 01fd5908..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/lang_pawn.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/**
- * @file long_pawn.h
- * prototypes for long_pawn.c
- *
- * @author Ben Gardner
- * @license GPL v2+
- */
-#ifndef LONG_PAWN_H_INCLUDED
-#define LONG_PAWN_H_INCLUDED
-
-#include "uncrustify_types.h"
-
-
-/**
- * Does a scan of level 0 BEFORE stuff in combine.cpp is called.
- * At this point, VSemis have been added only in VBraces.
- * Otherwise, all level info is correct, except for unbraced functions.
- *
- * We are looking for unbraced functions.
- */
-void pawn_prescan(void);
-
-
-void pawn_add_virtual_semicolons(void);
-
-
-/**
- * We are in a virtual brace and hit a newline.
- * If this should end the vbrace, then insert a VSEMICOLON and return that.
- *
- * @param pc The newline (CT_NEWLINE)
- *
- * @return Either the newline or the newly inserted virtual semicolon
- */
-chunk_t *pawn_check_vsemicolon(chunk_t *pc);
-
-
-/**
- * Turns certain virtual semicolons invisible.
- * - after a close brace with a parent of switch, case, else, if
- */
-void pawn_scrub_vsemi(void);
-
-
-//! add a semicolon after ...
-chunk_t *pawn_add_vsemi_after(chunk_t *pc);
-
-
-#endif /* LONG_PAWN_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/log_rules.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/log_rules.cpp
deleted file mode 100644
index ebc1082e..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/log_rules.cpp
+++ /dev/null
@@ -1,80 +0,0 @@
-/**
- * @file log_rules.cpp
- * is an extract from space.cpp
- *
- * @author Guy Maurel
- * @license GPL v2+
- */
-
-#include "log_rules.h"
-
-#include "unc_tools.h"
-
-
-void log_rule2(const char *func, size_t line, const char *rule, chunk_t *first, chunk_t *second)
-{
- LOG_FUNC_ENTRY();
-
- if (second->type != CT_NEWLINE)
- {
- LOG_FMT(LSPACE, "%s(%zu): first->orig_line is %zu, first->orig_col is %zu, first->text() is '%s', [%s/%s] <===>\n",
- func, line, first->orig_line, first->orig_col, first->text(),
- get_token_name(first->type), get_token_name(get_chunk_parent_type(first)));
- LOG_FMT(LSPACE, " second->orig_line is %zu, second->orig_col is %zu, second->text() is '%s', [%s/%s] :",
- second->orig_line, second->orig_col, second->text(),
- get_token_name(second->type), get_token_name(get_chunk_parent_type(second)));
- LOG_FMT(LSPACE, " rule %s[line %zu]\n",
- rule, line);
- }
-}
-
-
-#ifdef SUPER_LOG
-
-
-void log_rule3(log_sev_t sev, const char *func, size_t line, const char *rule)
-#else
-
-
-void log_rule3(log_sev_t sev, const char *func, const char *rule)
-#endif
-{
- // some Windows platforms provide a qualified function name ("ABC::XYZ::function_Name")
- // as __func__; call get_unqualified_func_name() to return an unqualified function name
-
- func = get_unqualified_func_name(func);
-
-#ifdef SUPER_LOG
- LOG_FMT(sev, "log_rule(%s:%zu): rule is '%s'\n", func, line, rule);
-#else
- LOG_FMT(sev, "log_rule(%s): rule is '%s'\n", func, rule);
-#endif
-}
-
-
-void log_rule4(const char *rule, chunk_t *first)
-{
- if (cpd.html_file == nullptr)
- {
- return;
- }
-
- if (first->tracking == nullptr)
- {
- first->tracking = new track_list;
- first->tracking->reserve(3);
- }
- // copy the rule
- size_t length = strlen(rule) + 1;
- char *r = (char *)malloc(length);
-
- strcpy(r, rule);
- size_t a_number = get_A_Number();
- Track_nr A = make_pair(a_number, r);
-
- first->tracking->push_back(A);
- size_t sizeOfTrack = first->tracking->size();
-
- LOG_FMT(LSPACE, "log_rule4(%d): rule is '%s', after '%s', at line %zu, tracking number is %zu, size is %zu\n",
- __LINE__, rule, first->text(), first->orig_line, a_number, sizeOfTrack);
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/log_rules.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/log_rules.h
deleted file mode 100644
index 1d73077d..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/log_rules.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/**
- * @file log_rules.h
- * prototypes for log_rules.cpp
- *
- * @author Guy Maurel
- * @license GPL v2+
- */
-
-#ifndef LOG_RULES_H_INCLUDED
-#define LOG_RULES_H_INCLUDED
-
-#include "chunk_list.h"
-#include "uncrustify.h"
-
-using namespace uncrustify;
-
-#if defined DEBUG
-#define log_rule(rule) \
- log_rule2(__func__, __LINE__, (rule), first, second); \
- log_rule4((rule), first)
-#else
-#define log_rule(rule) \
- log_rule2(__func__, __LINE__, (rule), first, second)
-#endif
-
-// if you need more debug informations, remove the comment at the next line
-#define SUPER_LOG 1
-#ifdef SUPER_LOG
-#define log_rule_B(rule) \
- log_rule3(LCURRENT, __func__, __LINE__, (rule))
-#else
-#define log_rule_B(rule) \
- log_rule3(LCURRENT, __func__, (rule))
-#endif
-
-void log_rule2(const char *func, size_t line, const char *rule, chunk_t *first, chunk_t *second);
-
-
-#ifdef SUPER_LOG
-void log_rule3(log_sev_t sev, const char *func, size_t line, const char *rule);
-
-#else
-void log_rule3(log_sev_t sev, const char *func, const char *rule);
-
-#endif
-
-void log_rule4(const char *rule, chunk_t *first);
-
-#endif /* LOG_RULES_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/logger.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/logger.h
deleted file mode 100644
index df63b276..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/logger.h
+++ /dev/null
@@ -1,167 +0,0 @@
-/**
- * @file logger.h
- *
- * Functions to do logging.
- * The macros check whether the logsev is active before evaluating the
- * parameters. Use them instead of the functions.
- *
- * If a log statement ends in a newline, the current log is ended.
- * When the log severity changes, an implicit newline is inserted.
- *
- * @author Ben Gardner
- * @license GPL v2+
- */
-
-#ifndef LOGGER_H_INCLUDED
-#define LOGGER_H_INCLUDED
-
-#include "logmask.h"
-
-#include <cstdio> // FILE
-
-
-/**
- * Initializes the log subsystem - call this first.
- * This function sets the log stream and enables the top 3 sevs (0-2).
- *
- * @param log_file nullptr for stderr or the FILE stream for logs.
- */
-void log_init(FILE *log_file);
-
-
-/**
- * Show or hide the severity prefix "<1>"
- *
- * @param show true=show, false=hide
- */
-void log_show_sev(bool show);
-
-
-/**
- * Returns whether a log severity is active.
- *
- * @param sev severity log level
- *
- * @return true/false
- */
-bool log_sev_on(log_sev_t sev);
-
-
-/**
- * Sets a log sev on or off
- *
- * @param sev severity log level to modify
- * @param val new value for severity log level
- *
- * @return true/false
- */
-void log_set_sev(log_sev_t sev, bool value);
-
-
-/**
- * Sets the log mask
- *
- * @param mask The mask to copy
- */
-void log_set_mask(const log_mask_t &mask);
-
-
-/**
- * Gets the log mask
- *
- * @param mask Where to copy the mask
- */
-void log_get_mask(log_mask_t &mask);
-
-
-#ifdef __MINGW_PRINTF_FORMAT
-// On MinGW, the printf functions can be provided by a number of different
-// implementations, with different format string support. Annontate log_fmt
-// below with the same format attribute as the currently chosen default printf
-// function.
-#define PRINTF_FORMAT __MINGW_PRINTF_FORMAT
-#else
-#define PRINTF_FORMAT printf
-#endif
-
-/**
- * Logs a formatted string -- similar to printf()
- *
- * @param sev The severity
- * @param fmt The format string
- * @param ... Additional arguments
- */
-void log_fmt(log_sev_t sev, const char *fmt, ...) __attribute__((format(PRINTF_FORMAT, 2, 3)));
-
-
-/**
- * Flushes the cached log text to the stream
- *
- * @param force_nl Append NL if not present
- */
-void log_flush(bool force_nl);
-
-
-// it is necessary to make at least one time pro change a check of all the
-// uses of the MACRO LOG_FMT under Linux. This to detect all the used pointers,
-// which might be nullptr.
-// uncomment the define to do that.
-// #define NO_MACRO_VARARG
-
-#ifdef NO_MACRO_VARARG
-#define LOG_FMT log_fmt
-// TODO during debugging add source file and line number
-#else
-#define LOG_FMT(sev, ...) \
- do { if (log_sev_on(sev)) { log_fmt(sev, __VA_ARGS__); } \
- } while (0)
-#endif
-
-
-#define __unqualified_func__ get_unqualified_func_name(__func__)
-
-
-#ifdef DEBUG
-/**
- * This should be called as the first thing in a function.
- * It uses the log_func class to add an entry to the function log stack.
- * It is automatically removed when the function returns.
- */
-#define LOG_FUNC_ENTRY() log_func log_fe = log_func(__unqualified_func__, __LINE__)
-
-
-#else
-#define LOG_FUNC_ENTRY()
-#endif
-
-
-/**
- * This class just adds a entry to the top of the stack on construction and
- * removes it on destruction.
- * RAII for the win.
- */
-class log_func
-{
-public:
- log_func(const char *name, int line);
-
-
- ~log_func();
-};
-
-
-void log_func_stack(log_sev_t sev, const char *prefix = 0, const char *suffix = "\n", size_t skip_cnt = 0);
-
-
-/**
- * Return the unqualified function name from the input argument
- * @param the qualified function name, usually provided by __func__ macro
- * @return the corresponding unqualified name
- */
-const char *get_unqualified_func_name(const char *func);
-
-
-#define log_func_stack_inline(_sev) log_func_stack((_sev), " [CallStack:", "]\n", 0)
-
-
-#endif /* LOGGER_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/newlines.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/newlines.cpp
deleted file mode 100644
index 78b557f2..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/newlines.cpp
+++ /dev/null
@@ -1,6667 +0,0 @@
-/**
- * @file newlines.cpp
- * Adds or removes newlines.
- *
- * Informations
- * "Ignore" means do not change it.
- * "Add" in the context of spaces means make sure there is at least 1.
- * "Add" elsewhere means make sure one is present.
- * "Remove" mean remove the space/brace/newline/etc.
- * "Force" in the context of spaces means ensure that there is exactly 1.
- * "Force" in other contexts means the same as "add".
- *
- * Rmk: spaces = space + nl
- *
- * @author Ben Gardner
- * @author Guy Maurel
- * @license GPL v2+
- */
-
-#include "newlines.h"
-
-#include "align_stack.h"
-#include "combine_skip.h"
-#include "flag_parens.h"
-#include "indent.h"
-#include "keywords.h"
-#include "prototypes.h"
-#include "space.h"
-
-#ifdef WIN32
-#include <algorithm> // to get max
-#endif // ifdef WIN32
-
-
-constexpr static auto LCURRENT = LNEWLINE;
-
-using namespace std;
-using namespace uncrustify;
-
-
-static void mark_change(const char *func, size_t line);
-
-
-/**
- * Check to see if we are allowed to increase the newline count.
- * We can't increase the newline count:
- * - if nl_squeeze_ifdef and a preproc is after the newline.
- * - if eat_blanks_before_close_brace and the next is '}'
- * - unless function contains an empty body and
- * nl_inside_empty_func is non-zero
- * - if eat_blanks_after_open_brace and the prev is '{'
- * - unless the brace belongs to a namespace
- * and nl_inside_namespace is non-zero
- */
-static bool can_increase_nl(chunk_t *nl);
-
-
-/**
- * Basic approach:
- * 1. Find next open brace
- * 2. Find next close brace
- * 3. Determine why the braces are there
- * a. struct/union/enum "enum [name] {"
- * c. assignment "= {"
- * b. if/while/switch/for/etc ") {"
- * d. else "} else {"
- */
-static void setup_newline_add(chunk_t *prev, chunk_t *nl, chunk_t *next);
-
-
-//! Make sure there is a blank line after a commented group of values
-static void newlines_double_space_struct_enum_union(chunk_t *open_brace);
-
-
-//! If requested, make sure each entry in an enum is on its own line
-static void newlines_enum_entries(chunk_t *open_brace, iarf_e av);
-
-
-/**
- * Checks to see if it is OK to add a newline around the chunk.
- * Don't want to break one-liners...
- * return value:
- * true: a new line may be added
- * false: a new line may NOT be added
- */
-static bool one_liner_nl_ok(chunk_t *pc);
-
-
-static void nl_create_one_liner(chunk_t *vbrace_open);
-
-
-static void nl_create_list_liner(chunk_t *brace_open);
-
-
-/**
- * Test if a chunk belongs to a one-liner method definition inside a class body
- */
-static bool is_class_one_liner(chunk_t *pc);
-
-
-/**
- * Test if a chunk may be combined with a function prototype group.
- *
- * If nl_class_leave_one_liner_groups is enabled, a chunk may be combined with
- * a function prototype group if it is a one-liner inside a class body, and is
- * a definition of the same sort as surrounding prototypes. This checks against
- * either the function name, or the function closing brace.
- */
-bool is_func_proto_group(chunk_t *pc, c_token_t one_liner_type);
-
-
-//! Find the next newline or nl_cont
-static void nl_handle_define(chunk_t *pc);
-
-
-/**
- * Does the Ignore, Add, Remove, or Force thing between two chunks
- *
- * @param before The first chunk
- * @param after The second chunk
- * @param av The IARF value
- */
-static void newline_iarf_pair(chunk_t *before, chunk_t *after, iarf_e av, bool check_nl_assign_leave_one_liners = false);
-
-
-/**
- * Adds newlines to multi-line function call/decl/def
- * Start points to the open paren
- */
-static void newline_func_multi_line(chunk_t *start);
-
-
-static void newline_template(chunk_t *start);
-
-
-/**
- * Formats a function declaration
- * Start points to the open paren
- */
-static void newline_func_def_or_call(chunk_t *start);
-
-
-/**
- * Formats a message, adding newlines before the item before the colons.
- *
- * Start points to the open '[' in:
- * [myObject doFooWith:arg1 name:arg2 // some lines with >1 arg
- * error:arg3];
- */
-static void newline_oc_msg(chunk_t *start);
-
-
-//! Ensure that the next non-comment token after close brace is a newline
-static void newline_end_newline(chunk_t *br_close);
-
-
-/**
- * Add or remove a newline between the closing paren and opening brace.
- * Also uncuddles anything on the closing brace. (may get fixed later)
- *
- * "if (...) { \n" or "if (...) \n { \n"
- *
- * For virtual braces, we can only add a newline after the vbrace open.
- * If we do so, also add a newline after the vbrace close.
- */
-static bool newlines_if_for_while_switch(chunk_t *start, iarf_e nl_opt);
-
-
-/**
- * Add or remove extra newline before the chunk.
- * Adds before comments
- * Doesn't do anything if open brace before it
- * "code\n\ncomment\nif (...)" or "code\ncomment\nif (...)"
- */
-static void newlines_if_for_while_switch_pre_blank_lines(chunk_t *start, iarf_e nl_opt);
-
-
-static void blank_line_set(chunk_t *pc, Option<unsigned> &opt);
-
-
-/**
- * Add one/two newline(s) before the chunk.
- * Adds before comments
- * Adds before destructor
- * Doesn't do anything if open brace before it
- * "code\n\ncomment\nif (...)" or "code\ncomment\nif (...)"
- */
-static void newlines_func_pre_blank_lines(chunk_t *start, c_token_t start_type);
-
-
-static chunk_t *get_closing_brace(chunk_t *start);
-
-
-/**
- * remove any consecutive newlines following this chunk
- * skip vbraces
- */
-static void remove_next_newlines(chunk_t *start);
-
-
-/**
- * Add or remove extra newline after end of the block started in chunk.
- * Doesn't do anything if close brace after it
- * Interesting issue is that at this point, nls can be before or after vbraces
- * VBraces will stay VBraces, conversion to real ones should have already happened
- * "if (...)\ncode\ncode" or "if (...)\ncode\n\ncode"
- */
-static void newlines_if_for_while_switch_post_blank_lines(chunk_t *start, iarf_e nl_opt);
-
-
-/**
- * Adds or removes a newline between the keyword and the open brace.
- * If there is something after the '{' on the same line, then
- * the newline is removed unconditionally.
- * If there is a '=' between the keyword and '{', do nothing.
- *
- * "struct [name] {" or "struct [name] \n {"
- */
-static void newlines_struct_union(chunk_t *start, iarf_e nl_opt, bool leave_trailing);
-static void newlines_enum(chunk_t *start);
-static void newlines_namespace(chunk_t *start); // Issue #2186
-
-
-/**
- * Cuddles or un-cuddles a chunk with a previous close brace
- *
- * "} while" vs "} \n while"
- * "} else" vs "} \n else"
- *
- * @param start The chunk - should be CT_ELSE or CT_WHILE_OF_DO
- */
-static void newlines_cuddle_uncuddle(chunk_t *start, iarf_e nl_opt);
-
-
-/**
- * Adds/removes a newline between else and '{'.
- * "else {" or "else \n {"
- */
-static void newlines_do_else(chunk_t *start, iarf_e nl_opt);
-
-
-//! Check if token starts a variable declaration
-static bool is_var_def(chunk_t *pc, chunk_t *next);
-
-
-//! Put newline(s) before and/or after a block of variable definitions
-static chunk_t *newline_def_blk(chunk_t *start, bool fn_top);
-
-
-/**
- * Handles the brace_on_func_line setting and decides if the closing brace
- * of a pair should be right after a newline.
- * The only cases where the closing brace shouldn't be the first thing on a line
- * is where the opening brace has junk after it AND where a one-liner in a
- * class is supposed to be preserved.
- *
- * General rule for break before close brace:
- * If the brace is part of a function (call or definition) OR if the only
- * thing after the opening brace is comments, the there must be a newline
- * before the close brace.
- *
- * Example of no newline before close
- * struct mystring { int len;
- * char str[]; };
- * while (*(++ptr) != 0) { }
- *
- * Examples of newline before close
- * void foo() {
- * }
- */
-static void newlines_brace_pair(chunk_t *br_open);
-
-
-/**
- * Put a empty line between the 'case' statement and the previous case colon
- * or semicolon.
- * Does not work with PAWN (?)
- */
-static void newline_case(chunk_t *start);
-
-
-static void newline_case_colon(chunk_t *start);
-
-
-//! Put a blank line before a return statement, unless it is after an open brace
-static void newline_before_return(chunk_t *start);
-
-
-/**
- * Put a empty line after a return statement, unless it is followed by a
- * close brace.
- *
- * May not work with PAWN
- */
-static void newline_after_return(chunk_t *start);
-
-
-static void blank_line_max(chunk_t *pc, Option<unsigned> &opt);
-
-
-static iarf_e newline_template_option(chunk_t *pc, iarf_e special, iarf_e base, iarf_e fallback);
-
-
-#define MARK_CHANGE() mark_change(__func__, __LINE__)
-
-
-static void mark_change(const char *func, size_t line)
-{
- LOG_FUNC_ENTRY();
-
- cpd.changes++;
-
- if (cpd.pass_count == 0)
- {
- LOG_FMT(LCHANGE, "%s(%d): change %d on %s:%zu\n",
- __func__, __LINE__, cpd.changes, func, line);
- }
-} // mark_change
-
-
-static bool can_increase_nl(chunk_t *nl)
-{
- LOG_FUNC_ENTRY();
-
- chunk_t *prev = chunk_get_prev_nc(nl);
-
- chunk_t *pcmt = chunk_get_prev(nl);
- chunk_t *next = chunk_get_next(nl);
-
- if (options::nl_squeeze_ifdef())
- {
- log_rule_B("nl_squeeze_ifdef");
-
- chunk_t *pp_start = chunk_get_pp_start(prev);
-
- if ( pp_start != nullptr
- && ( get_chunk_parent_type(pp_start) == CT_PP_IF
- || get_chunk_parent_type(pp_start) == CT_PP_ELSE)
- && ( pp_start->level > 0
- || options::nl_squeeze_ifdef_top_level()))
- {
- log_rule_B("nl_squeeze_ifdef_top_level");
- bool rv = ifdef_over_whole_file() && pp_start->flags.test(PCF_WF_IF);
- LOG_FMT(LBLANKD, "%s(%d): nl_squeeze_ifdef %zu (prev) pp_lvl=%zu rv=%d\n",
- __func__, __LINE__, nl->orig_line, nl->pp_level, rv);
- return(rv);
- }
-
- if ( chunk_is_token(next, CT_PREPROC)
- && ( get_chunk_parent_type(next) == CT_PP_ELSE
- || get_chunk_parent_type(next) == CT_PP_ENDIF)
- && ( next->level > 0
- || options::nl_squeeze_ifdef_top_level()))
- {
- log_rule_B("nl_squeeze_ifdef_top_level");
- bool rv = ifdef_over_whole_file() && next->flags.test(PCF_WF_ENDIF);
- LOG_FMT(LBLANKD, "%s(%d): nl_squeeze_ifdef %zu (next) pp_lvl=%zu rv=%d\n",
- __func__, __LINE__, nl->orig_line, nl->pp_level, rv);
- return(rv);
- }
- }
-
- if (chunk_is_token(next, CT_BRACE_CLOSE))
- {
- if ( options::nl_inside_namespace() > 0
- && get_chunk_parent_type(next) == CT_NAMESPACE)
- {
- log_rule_B("nl_inside_namespace");
- LOG_FMT(LBLANKD, "%s(%d): nl_inside_namespace %zu\n",
- __func__, __LINE__, nl->orig_line);
- return(true);
- }
-
- if ( options::nl_inside_empty_func() > 0
- && chunk_is_token(prev, CT_BRACE_OPEN)
- && ( get_chunk_parent_type(next) == CT_FUNC_DEF
- || get_chunk_parent_type(next) == CT_FUNC_CLASS_DEF))
- {
- log_rule_B("nl_inside_empty_func");
- LOG_FMT(LBLANKD, "%s(%d): nl_inside_empty_func %zu\n",
- __func__, __LINE__, nl->orig_line);
- return(true);
- }
-
- if (options::eat_blanks_before_close_brace())
- {
- log_rule_B("eat_blanks_before_close_brace");
- LOG_FMT(LBLANKD, "%s(%d): eat_blanks_before_close_brace %zu\n",
- __func__, __LINE__, nl->orig_line);
- return(false);
- }
- }
-
- if (chunk_is_token(prev, CT_BRACE_CLOSE))
- {
- if ( options::nl_before_namespace()
- && get_chunk_parent_type(prev) == CT_NAMESPACE)
- {
- log_rule_B("nl_before_namespace");
- LOG_FMT(LBLANKD, "%s(%d): nl_before_namespace %zu\n",
- __func__, __LINE__, nl->orig_line);
- return(true);
- }
- }
-
- if (chunk_is_token(prev, CT_BRACE_OPEN))
- {
- if ( options::nl_inside_namespace() > 0
- && get_chunk_parent_type(prev) == CT_NAMESPACE)
- {
- log_rule_B("nl_inside_namespace");
- LOG_FMT(LBLANKD, "%s(%d): nl_inside_namespace %zu\n",
- __func__, __LINE__, nl->orig_line);
- return(true);
- }
-
- if ( options::nl_inside_empty_func() > 0
- && chunk_is_token(next, CT_BRACE_CLOSE)
- && ( get_chunk_parent_type(prev) == CT_FUNC_DEF
- || get_chunk_parent_type(prev) == CT_FUNC_CLASS_DEF))
- {
- log_rule_B("nl_inside_empty_func");
- LOG_FMT(LBLANKD, "%s(%d): nl_inside_empty_func %zu\n",
- __func__, __LINE__, nl->orig_line);
- return(true);
- }
-
- if (options::eat_blanks_after_open_brace())
- {
- log_rule_B("eat_blanks_after_open_brace");
- LOG_FMT(LBLANKD, "%s(%d): eat_blanks_after_open_brace %zu\n",
- __func__, __LINE__, nl->orig_line);
- return(false);
- }
- }
- log_rule_B("nl_start_of_file");
-
- if ( !pcmt
- && (options::nl_start_of_file() != IARF_IGNORE))
- {
- LOG_FMT(LBLANKD, "%s(%d): SOF no prev %zu\n", __func__, __LINE__, nl->orig_line);
- return(false);
- }
- log_rule_B("nl_end_of_file");
-
- if ( !next
- && (options::nl_end_of_file() != IARF_IGNORE))
- {
- LOG_FMT(LBLANKD, "%s(%d): EOF no next %zu\n", __func__, __LINE__, nl->orig_line);
- return(false);
- }
- return(true);
-} // can_increase_nl
-
-
-static void setup_newline_add(chunk_t *prev, chunk_t *nl, chunk_t *next)
-{
- LOG_FUNC_ENTRY();
-
- if ( prev == nullptr
- || nl == nullptr
- || next == nullptr)
- {
- return;
- }
- undo_one_liner(prev);
-
- nl->orig_line = prev->orig_line;
- nl->level = prev->level;
- nl->pp_level = prev->pp_level;
- nl->brace_level = prev->brace_level;
- nl->pp_level = prev->pp_level;
- nl->nl_count = 1;
- nl->flags = (prev->flags & PCF_COPY_FLAGS) & ~PCF_IN_PREPROC;
- nl->orig_col = prev->orig_col_end;
- nl->column = prev->orig_col;
-
- if ( prev->flags.test(PCF_IN_PREPROC)
- && next->flags.test(PCF_IN_PREPROC))
- {
- chunk_flags_set(nl, PCF_IN_PREPROC);
- }
-
- if (nl->flags.test(PCF_IN_PREPROC))
- {
- set_chunk_type(nl, CT_NL_CONT);
- nl->str = "\\\n";
- }
- else
- {
- set_chunk_type(nl, CT_NEWLINE);
- nl->str = "\n";
- }
-} // setup_newline_add
-
-
-void double_newline(chunk_t *nl)
-{
- LOG_FUNC_ENTRY();
-
- chunk_t *prev = chunk_get_prev(nl);
-
- if (prev == nullptr)
- {
- return;
- }
- LOG_FMT(LNEWLINE, "%s(%d): add newline after ", __func__, __LINE__);
-
- if (chunk_is_token(prev, CT_VBRACE_CLOSE))
- {
- LOG_FMT(LNEWLINE, "VBRACE_CLOSE ");
- }
- else
- {
- LOG_FMT(LNEWLINE, "'%s' ", prev->text());
- }
- LOG_FMT(LNEWLINE, "on line %zu", prev->orig_line);
-
- if (!can_increase_nl(nl))
- {
- LOG_FMT(LNEWLINE, " - denied\n");
- return;
- }
- LOG_FMT(LNEWLINE, " - done\n");
-
- if (nl->nl_count != 2)
- {
- nl->nl_count = 2;
- MARK_CHANGE();
- }
-} // double_newline
-
-
-chunk_t *newline_add_before(chunk_t *pc)
-{
- LOG_FUNC_ENTRY();
-
- chunk_t nl;
- chunk_t *prev = chunk_get_prev_nvb(pc);
-
- if (chunk_is_newline(prev))
- {
- // Already has a newline before this chunk
- return(prev);
- }
- LOG_FMT(LNEWLINE, "%s(%d): text() '%s', on orig_line is %zu, orig_col is %zu, pc->column is %zu",
- __func__, __LINE__, pc->text(), pc->orig_line, pc->orig_col, pc->column);
- log_func_stack_inline(LNEWLINE);
-
- setup_newline_add(prev, &nl, pc);
- nl.orig_col = pc->orig_col;
- nl.pp_level = pc->pp_level;
- LOG_FMT(LNEWLINE, "%s(%d): nl.column is %zu\n",
- __func__, __LINE__, nl.column);
-
- MARK_CHANGE();
- return(chunk_add_before(&nl, pc));
-} // newline_add_before
-
-
-chunk_t *newline_force_before(chunk_t *pc)
-{
- LOG_FUNC_ENTRY();
-
- chunk_t *nl = newline_add_before(pc);
-
- if ( nl != nullptr
- && nl->nl_count > 1)
- {
- nl->nl_count = 1;
- MARK_CHANGE();
- }
- return(nl);
-} // newline_force_before
-
-
-chunk_t *newline_add_after(chunk_t *pc)
-{
- LOG_FUNC_ENTRY();
-
- if (pc == nullptr)
- {
- return(nullptr);
- }
- chunk_t *next = chunk_get_next_nvb(pc);
-
- if (chunk_is_newline(next))
- {
- // Already has a newline after this chunk
- return(next);
- }
- LOG_FMT(LNEWLINE, "%s(%d): '%s' on line %zu",
- __func__, __LINE__, pc->text(), pc->orig_line);
- log_func_stack_inline(LNEWLINE);
-
- chunk_t nl;
-
- nl.orig_line = pc->orig_line;
- nl.orig_col = pc->orig_col;
- setup_newline_add(pc, &nl, next);
-
- MARK_CHANGE();
- // TO DO: check why the next statement is necessary
- nl.orig_col = pc->orig_col;
- nl.pp_level = pc->pp_level;
- return(chunk_add_after(&nl, pc));
-} // newline_add_after
-
-
-chunk_t *newline_force_after(chunk_t *pc)
-{
- LOG_FUNC_ENTRY();
-
- chunk_t *nl = newline_add_after(pc); // add a newline
-
- if ( nl != nullptr
- && nl->nl_count > 1) // check if there are more than 1 newline
- {
- nl->nl_count = 1; // if so change the newline count back to 1
- MARK_CHANGE();
- }
- return(nl);
-} // newline_force_after
-
-
-static void newline_end_newline(chunk_t *br_close)
-{
- LOG_FUNC_ENTRY();
-
- chunk_t *next = chunk_get_next(br_close);
- chunk_t nl;
-
- if ( !chunk_is_newline(next)
- && !chunk_is_comment(next))
- {
- nl.orig_line = br_close->orig_line;
- nl.orig_col = br_close->orig_col;
- nl.nl_count = 1;
- nl.pp_level = 0;
- nl.flags = (br_close->flags & PCF_COPY_FLAGS) & ~PCF_IN_PREPROC;
-
- if ( br_close->flags.test(PCF_IN_PREPROC)
- && next != nullptr
- && next->flags.test(PCF_IN_PREPROC))
- {
- nl.flags |= PCF_IN_PREPROC;
- }
-
- if (nl.flags.test(PCF_IN_PREPROC))
- {
- set_chunk_type(&nl, CT_NL_CONT);
- nl.str = "\\\n";
- }
- else
- {
- set_chunk_type(&nl, CT_NEWLINE);
- nl.str = "\n";
- }
- MARK_CHANGE();
- LOG_FMT(LNEWLINE, "%s(%d): %zu:%zu add newline after '%s'\n",
- __func__, __LINE__, br_close->orig_line, br_close->orig_col, br_close->text());
- chunk_add_after(&nl, br_close);
- }
-} // newline_end_newline
-
-
-static void newline_min_after(chunk_t *ref, size_t count, pcf_flag_e flag)
-{
- LOG_FUNC_ENTRY();
-
- LOG_FMT(LNEWLINE, "%s(%d): for '%s', at orig_line %zu, count is %zu, flag is %s:",
- __func__, __LINE__, ref->text(), ref->orig_line, count,
- pcf_flags_str(flag).c_str());
- log_func_stack_inline(LNEWLINE);
-
- chunk_t *pc = ref;
-
- do
- {
- pc = chunk_get_next(pc);
- } while ( pc != nullptr
- && !chunk_is_newline(pc));
-
- if (pc != nullptr) // Coverity CID 76002
- {
- LOG_FMT(LNEWLINE, "%s(%d): type is %s, orig_line %zu, orig_col %zu\n",
- __func__, __LINE__, get_token_name(pc->type), pc->orig_line, pc->orig_col);
- }
- chunk_t *next = chunk_get_next(pc);
-
- if (next == nullptr)
- {
- return;
- }
-
- if ( chunk_is_comment(next)
- && next->nl_count == 1
- && chunk_is_comment(chunk_get_prev(pc)))
- {
- newline_min_after(next, count, flag);
- return;
- }
- chunk_flags_set(pc, flag);
-
- if ( chunk_is_newline(pc)
- && can_increase_nl(pc))
- {
- if (pc->nl_count < count)
- {
- pc->nl_count = count;
- MARK_CHANGE();
- }
- }
-} // newline_min_after
-
-
-chunk_t *newline_add_between(chunk_t *start, chunk_t *end)
-{
- LOG_FUNC_ENTRY();
-
- if ( start == nullptr
- || end == nullptr
- || chunk_is_token(end, CT_IGNORED))
- {
- return(nullptr);
- }
- LOG_FMT(LNEWLINE, "%s(%d): start->text() is '%s', type is %s, orig_line is %zu, orig_col is %zu\n",
- __func__, __LINE__, start->text(), get_token_name(start->type),
- start->orig_line, start->orig_col);
- LOG_FMT(LNEWLINE, "%s(%d): and end->text() is '%s', orig_line is %zu, orig_col is %zu\n ",
- __func__, __LINE__, end->text(), end->orig_line, end->orig_col);
- log_func_stack_inline(LNEWLINE);
-
- // Back-up check for one-liners (should never be true!)
- if (!one_liner_nl_ok(start))
- {
- return(nullptr);
- }
-
- /*
- * Scan for a line break, if there is a line break between start and end
- * we won't add another one
- */
- for (chunk_t *pc = start; pc != end; pc = chunk_get_next(pc))
- {
- if (chunk_is_newline(pc))
- {
- return(pc);
- }
- }
-
- /*
- * If the second one is a brace open, then check to see
- * if a comment + newline follows
- */
- if (chunk_is_token(end, CT_BRACE_OPEN))
- {
- chunk_t *pc = chunk_get_next(end);
-
- if (chunk_is_comment(pc))
- {
- pc = chunk_get_next(pc);
-
- if (chunk_is_newline(pc))
- {
- // are there some more (comment + newline)s ?
- chunk_t *pc1 = chunk_get_next_ncnnl(end);
-
- if (!chunk_is_newline(pc1))
- {
- // yes, go back
- chunk_t *pc2 = chunk_get_prev(pc1);
- pc = pc2;
- }
- }
-
- if (end == pc)
- {
- LOG_FMT(LNEWLINE, "%s(%d): pc1 and pc are identical\n",
- __func__, __LINE__);
- }
- else
- {
- // Move the open brace to after the newline
- chunk_move_after(end, pc);
- }
- LOG_FMT(LNEWLINE, "%s(%d):\n", __func__, __LINE__);
- newline_add_after(end);
- return(pc);
- }
- else
- {
- LOG_FMT(LNEWLINE, "%s(%d):\n", __func__, __LINE__);
- }
- }
- else
- {
- LOG_FMT(LNEWLINE, "%s(%d):\n", __func__, __LINE__);
- }
- chunk_t *tmp = newline_add_before(end);
-
- return(tmp);
-} // newline_add_between
-
-
-void newline_del_between(chunk_t *start, chunk_t *end)
-{
- LOG_FUNC_ENTRY();
-
- LOG_FMT(LNEWLINE, "%s(%d): start->text() is '%s', orig_line is %zu, orig_col is %zu\n",
- __func__, __LINE__, start->text(), start->orig_line, start->orig_col);
- LOG_FMT(LNEWLINE, "%s(%d): and end->text() is '%s', orig_line is %zu, orig_col is %zu: preproc=%c/%c\n",
- __func__, __LINE__, end->text(), end->orig_line, end->orig_col,
- start->flags.test(PCF_IN_PREPROC) ? 'y' : 'n',
- end->flags.test(PCF_IN_PREPROC) ? 'y' : 'n');
- log_func_stack_inline(LNEWLINE);
-
- // Can't remove anything if the preproc status differs
- if (!chunk_same_preproc(start, end))
- {
- return;
- }
- chunk_t *pc = start;
- bool start_removed = false;
-
- do
- {
- chunk_t *next = chunk_get_next(pc);
-
- if (chunk_is_newline(pc))
- {
- chunk_t *prev = chunk_get_prev(pc);
-
- if ( ( !chunk_is_comment(prev)
- && !chunk_is_comment(next))
- || chunk_is_newline(prev)
- || chunk_is_newline(next))
- {
- if (chunk_safe_to_del_nl(pc))
- {
- if (pc == start)
- {
- start_removed = true;
- }
- chunk_del(pc);
- MARK_CHANGE();
-
- if (prev != nullptr)
- {
- align_to_column(next, prev->column + space_col_align(prev, next));
- }
- }
- }
- else
- {
- if (pc->nl_count > 1)
- {
- pc->nl_count = 1;
- MARK_CHANGE();
- }
- }
- }
- pc = next;
- } while (pc != end);
-
- if ( !start_removed
- && chunk_is_str(end, "{", 1)
- && ( chunk_is_str(start, ")", 1)
- || chunk_is_token(start, CT_DO)
- || chunk_is_token(start, CT_ELSE)))
- {
- chunk_move_after(end, start);
- }
-} // newline_del_between
-
-
-void newlines_sparens()
-{
- LOG_FUNC_ENTRY();
-
- //chunk_t *sparen_open;
-
- for (chunk_t *sparen_open = chunk_get_next_type(chunk_get_head(), CT_SPAREN_OPEN, ANY_LEVEL);
- sparen_open != nullptr; sparen_open = chunk_get_next_type(
- sparen_open, CT_SPAREN_OPEN, ANY_LEVEL))
- {
- chunk_t *sparen_close = chunk_get_next_type(sparen_open, CT_SPAREN_CLOSE, sparen_open->level);
-
- if (sparen_close == nullptr)
- {
- continue;
- }
- chunk_t *sparen_content_start = chunk_get_next_nnl(sparen_open);
- chunk_t *sparen_content_end = chunk_get_prev_nnl(sparen_close);
- bool is_multiline = (
- sparen_content_start != sparen_content_end
- && !are_chunks_in_same_line(sparen_content_start, sparen_content_end));
-
- // Add a newline after '(' if an if/for/while/switch condition spans multiple lines,
- // as e.g. required by the ROS 2 development style guidelines:
- // https://index.ros.org/doc/ros2/Contributing/Developer-Guide/#open-versus-cuddled-braces
- if (is_multiline)
- {
- log_rule_B("nl_multi_line_sparen_open");
- newline_iarf(sparen_open, options::nl_multi_line_sparen_open());
- }
-
- // Add a newline before ')' if an if/for/while/switch condition spans multiple lines. Overrides nl_before_if_closing_paren if both are specified.
- if ( is_multiline
- && options::nl_multi_line_sparen_close() != IARF_IGNORE)
- {
- log_rule_B("nl_multi_line_sparen_close");
- newline_iarf(sparen_content_end, options::nl_multi_line_sparen_close());
- }
- else
- {
- // add/remove trailing newline in an if condition
- chunk_t *ctrl_structure = chunk_get_prev_ncnnl(sparen_open);
-
- if ( chunk_is_token(ctrl_structure, CT_IF)
- || chunk_is_token(ctrl_structure, CT_ELSEIF))
- {
- log_rule_B("nl_before_if_closing_paren");
- newline_iarf_pair(sparen_content_end, sparen_close, options::nl_before_if_closing_paren());
- }
- }
- }
-} // newlines_sparens
-
-
-static bool newlines_if_for_while_switch(chunk_t *start, iarf_e nl_opt)
-{
- LOG_FUNC_ENTRY();
-
- log_rule_B("nl_define_macro");
-
- if ( nl_opt == IARF_IGNORE
- || ( start->flags.test(PCF_IN_PREPROC)
- && !options::nl_define_macro()))
- {
- return(false);
- }
- bool retval = false;
- chunk_t *pc = chunk_get_next_ncnnl(start);
-
- if (chunk_is_token(pc, CT_SPAREN_OPEN))
- {
- chunk_t *close_paren = chunk_get_next_type(pc, CT_SPAREN_CLOSE, pc->level);
- chunk_t *brace_open = chunk_get_next_ncnnl(close_paren);
-
- if ( ( chunk_is_token(brace_open, CT_BRACE_OPEN)
- || chunk_is_token(brace_open, CT_VBRACE_OPEN))
- && one_liner_nl_ok(brace_open))
- {
- log_rule_B("nl_multi_line_cond");
-
- if (options::nl_multi_line_cond())
- {
- while ((pc = chunk_get_next(pc)) != close_paren)
- {
- if (chunk_is_newline(pc))
- {
- nl_opt = IARF_ADD;
- break;
- }
- }
- }
-
- if (chunk_is_token(brace_open, CT_VBRACE_OPEN))
- {
- // Can only add - we don't want to create a one-line here
- if (nl_opt & IARF_ADD)
- {
- newline_iarf_pair(close_paren, chunk_get_next_ncnnl(brace_open), nl_opt);
- pc = chunk_get_next_type(brace_open, CT_VBRACE_CLOSE, brace_open->level);
-
- if ( !chunk_is_newline(chunk_get_prev_nc(pc))
- && !chunk_is_newline(chunk_get_next_nc(pc)))
- {
- newline_add_after(pc);
- retval = true;
- }
- }
- }
- else
- {
- newline_iarf_pair(close_paren, brace_open, nl_opt);
- chunk_t *next = chunk_get_next_ncnnl(brace_open);
-
- if (brace_open->type != next->type) // Issue #2836
- {
- newline_add_between(brace_open, chunk_get_next_ncnnl(brace_open));
- }
- // Make sure nothing is cuddled with the closing brace
- pc = chunk_get_next_type(brace_open, CT_BRACE_CLOSE, brace_open->level);
- newline_add_between(pc, chunk_get_next_nblank(pc));
- retval = true;
- }
- }
- }
- return(retval);
-} // newlines_if_for_while_switch
-
-
-static void newlines_if_for_while_switch_pre_blank_lines(chunk_t *start, iarf_e nl_opt)
-{
- LOG_FUNC_ENTRY();
-
- LOG_FMT(LNEWLINE, "%s(%d): start->text() is '%s', type is %s, orig_line is %zu, orig_column is %zu\n",
- __func__, __LINE__, start->text(), get_token_name(start->type), start->orig_line, start->orig_col);
-
- log_rule_B("nl_define_macro");
-
- if ( nl_opt == IARF_IGNORE
- || ( start->flags.test(PCF_IN_PREPROC)
- && !options::nl_define_macro()))
- {
- return;
- }
-
- /*
- * look backwards until we find
- * open brace (don't add or remove)
- * 2 newlines in a row (don't add)
- * something else (don't remove)
- */
- for (chunk_t *pc = chunk_get_prev(start); pc != nullptr; pc = chunk_get_prev(pc))
- {
- size_t level = start->level;
- bool do_add = (nl_opt & IARF_ADD) != IARF_IGNORE; // forcing value to bool
- chunk_t *last_nl = nullptr;
-
- if (chunk_is_newline(pc))
- {
- last_nl = pc;
-
- // if we found 2 or more in a row
- if ( pc->nl_count > 1
- || chunk_is_newline(chunk_get_prev_nvb(pc)))
- {
- // need to remove
- if ( (nl_opt & IARF_REMOVE)
- && !pc->flags.test(PCF_VAR_DEF))
- {
- // if we're also adding, take care of that here
- size_t nl_count = do_add ? 2 : 1;
-
- if (nl_count != pc->nl_count)
- {
- pc->nl_count = nl_count;
- MARK_CHANGE();
- }
- chunk_t *prev;
-
- // can keep using pc because anything other than newline stops loop, and we delete if newline
- while (chunk_is_newline(prev = chunk_get_prev_nvb(pc)))
- {
- // Make sure we don't combine a preproc and non-preproc
- if (!chunk_safe_to_del_nl(prev))
- {
- break;
- }
- chunk_del(prev);
- MARK_CHANGE();
- }
- }
- return;
- }
- }
- else if ( chunk_is_opening_brace(pc)
- || pc->level < level)
- {
- return;
- }
- else if (chunk_is_comment(pc))
- {
- // vbrace close is ok because it won't go into output, so we should skip it
- last_nl = nullptr;
- continue;
- }
- else
- {
- if ( chunk_is_token(pc, CT_CASE_COLON)
- && options::nl_before_ignore_after_case())
- {
- return;
- }
-
- if (do_add) // we found something previously besides a comment or a new line
- {
- // if we have run across a newline
- if (last_nl != nullptr)
- {
- if (last_nl->nl_count < 2)
- {
- double_newline(last_nl);
- }
- }
- else
- {
- chunk_t *next;
-
- // we didn't run into a newline, so we need to add one
- if ( ((next = chunk_get_next(pc)) != nullptr)
- && chunk_is_comment(next))
- {
- pc = next;
- }
-
- if ((last_nl = newline_add_after(pc)) != nullptr)
- {
- double_newline(last_nl);
- }
- }
- }
- return;
- }
- }
-} // newlines_if_for_while_switch_pre_blank_lines
-
-
-static void blank_line_set(chunk_t *pc, Option<unsigned> &opt)
-{
- LOG_FUNC_ENTRY();
-
- if (pc == nullptr)
- {
- return;
- }
- const unsigned optval = opt();
-
- if ( (optval > 0)
- && (pc->nl_count != optval))
- {
- LOG_FMT(LBLANKD, "%s(%d): do_blank_lines: %s set line %zu to %u\n",
- __func__, __LINE__, opt.name(), pc->orig_line, optval);
- pc->nl_count = optval;
- MARK_CHANGE();
- }
-} // blank_line_set
-
-
-bool do_it_newlines_func_pre_blank_lines(chunk_t *last_nl, c_token_t start_type)
-{
- LOG_FUNC_ENTRY();
-
- if (last_nl == nullptr)
- {
- return(false);
- }
- LOG_FMT(LNLFUNCT, "%s(%d): orig_line is %zu, orig_col is %zu, type is %s, text() is '%s'\n",
- __func__, __LINE__,
- last_nl->orig_line, last_nl->orig_col, get_token_name(last_nl->type), last_nl->text());
-
- switch (start_type)
- {
- case CT_FUNC_CLASS_DEF:
- {
- log_rule_B("nl_before_func_class_def");
- bool diff = options::nl_before_func_class_def() <= last_nl->nl_count;
- LOG_FMT(LNLFUNCT, "%s(%d): is %s\n",
- __func__, __LINE__, diff ? "TRUE" : "FALSE");
-
- log_rule_B("nl_before_func_class_def");
-
- if (options::nl_before_func_class_def() != last_nl->nl_count)
- {
- LOG_FMT(LNLFUNCT, "%s(%d): set blank line(s) to %u\n",
- __func__, __LINE__, options::nl_before_func_class_def());
- blank_line_set(last_nl, options::nl_before_func_class_def);
- }
- return(diff);
- }
-
- case CT_FUNC_CLASS_PROTO:
- {
- log_rule_B("nl_before_func_class_proto");
- bool diff = options::nl_before_func_class_proto() <= last_nl->nl_count;
- LOG_FMT(LNLFUNCT, "%s(%d): is %s\n",
- __func__, __LINE__, diff ? "TRUE" : "FALSE");
-
- log_rule_B("nl_before_func_class_proto");
-
- if (options::nl_before_func_class_proto() != last_nl->nl_count)
- {
- LOG_FMT(LNLFUNCT, "%s(%d): set blank line(s) to %u\n",
- __func__, __LINE__, options::nl_before_func_class_proto());
- blank_line_set(last_nl, options::nl_before_func_class_proto);
- }
- return(diff);
- }
-
- case CT_FUNC_DEF:
- {
- LOG_FMT(LNLFUNCT, "%s(%d): nl_before_func_body_def() is %u, last_nl->nl_count is %zu\n",
- __func__, __LINE__, options::nl_before_func_body_def(), last_nl->nl_count);
- log_rule_B("nl_before_func_body_def");
- bool diff = options::nl_before_func_body_def() <= last_nl->nl_count;
- LOG_FMT(LNLFUNCT, "%s(%d): is %s\n",
- __func__, __LINE__, diff ? "TRUE" : "FALSE");
-
- log_rule_B("nl_before_func_body_def");
-
- if (options::nl_before_func_body_def() != last_nl->nl_count)
- {
- LOG_FMT(LNLFUNCT, "%s(%d): set blank line(s) to %u\n",
- __func__, __LINE__, options::nl_before_func_body_def());
- log_rule_B("nl_before_func_body_def");
- blank_line_set(last_nl, options::nl_before_func_body_def);
- }
- LOG_FMT(LNLFUNCT, "%s(%d): nl_before_func_body_def() is %u, last_nl->nl_count is %zu\n",
- __func__, __LINE__, options::nl_before_func_body_def(), last_nl->nl_count);
- return(diff);
- }
-
- case CT_FUNC_PROTO:
- {
- log_rule_B("nl_before_func_body_proto");
- bool diff = options::nl_before_func_body_proto() <= last_nl->nl_count;
- LOG_FMT(LNLFUNCT, "%s(%d): is %s\n",
- __func__, __LINE__, diff ? "TRUE" : "FALSE");
-
- log_rule_B("nl_before_func_body_proto");
-
- if (options::nl_before_func_body_proto() != last_nl->nl_count)
- {
- LOG_FMT(LNLFUNCT, "%s(%d): set blank line(s) to %u\n",
- __func__, __LINE__, options::nl_before_func_body_proto());
- log_rule_B("nl_before_func_body_proto");
- blank_line_set(last_nl, options::nl_before_func_body_proto);
- }
- return(diff);
- }
-
- default:
- {
- LOG_FMT(LERR, "%s(%d): setting to blank line(s) at line %zu not possible\n",
- __func__, __LINE__, last_nl->orig_line);
- return(false);
- }
- } // switch
-} // do_it_newlines_func_pre_blank_lines
-
-
-static void newlines_func_pre_blank_lines(chunk_t *start, c_token_t start_type)
-{
- LOG_FUNC_ENTRY();
-
- log_rule_B("nl_before_func_class_def");
- log_rule_B("nl_before_func_class_proto");
- log_rule_B("nl_before_func_body_def");
- log_rule_B("nl_before_func_body_proto");
-
- if ( start == nullptr
- || ( ( start_type != CT_FUNC_CLASS_DEF
- || options::nl_before_func_class_def() == 0)
- && ( start_type != CT_FUNC_CLASS_PROTO
- || options::nl_before_func_class_proto() == 0)
- && ( start_type != CT_FUNC_DEF
- || options::nl_before_func_body_def() == 0)
- && ( start_type != CT_FUNC_PROTO
- || options::nl_before_func_body_proto() == 0)))
- {
- return;
- }
- LOG_FMT(LNLFUNCT, "%s(%d): set blank line(s): for <NL> at line %zu, column %zu, start_type is %s\n",
- __func__, __LINE__, start->orig_line, start->orig_col, get_token_name(start_type));
- LOG_FMT(LNLFUNCT, "%s(%d): BEGIN set blank line(s) for '%s' at line %zu\n",
- __func__, __LINE__, start->text(), start->orig_line);
- /*
- * look backwards until we find:
- * - open brace (don't add or remove)
- * - two newlines in a row (don't add)
- * - a destructor
- * - something else (don't remove)
- */
- chunk_t *pc = nullptr;
- chunk_t *last_nl = nullptr;
- chunk_t *last_comment = nullptr;
- size_t first_line = start->orig_line;
-
- for (pc = chunk_get_prev(start); pc != nullptr; pc = chunk_get_prev(pc))
- {
- LOG_FMT(LNLFUNCT, "%s(%d): orig_line is %zu, orig_col is %zu, type is %s, text() is '%s', nl_count is %zu\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, get_token_name(pc->type), pc->text(), pc->nl_count);
-
- if (chunk_is_newline(pc))
- {
- last_nl = pc;
- LOG_FMT(LNLFUNCT, "%s(%d): <chunk_is_newline> found at line %zu, column %zu, nl_count is %zu\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->nl_count);
- LOG_FMT(LNLFUNCT, "%s(%d): last_nl set to %zu\n",
- __func__, __LINE__, last_nl->orig_line);
- bool break_now = false;
-
- if (pc->nl_count > 1)
- {
- break_now = do_it_newlines_func_pre_blank_lines(last_nl, start_type);
- LOG_FMT(LNLFUNCT, "%s(%d): break_now is %s\n",
- __func__, __LINE__, break_now ? "TRUE" : "FALSE");
- }
-
- if (break_now)
- {
- break;
- }
- else
- {
- continue;
- }
- }
- else if (chunk_is_comment(pc))
- {
- LOG_FMT(LNLFUNCT, "%s(%d): <chunk_is_comment> found at line %zu, column %zu\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col);
-
- if ( ( pc->orig_line < first_line
- && ((first_line - pc->orig_line
- - (chunk_is_token(pc, CT_COMMENT_MULTI) ? pc->nl_count : 0))) < 2)
- || ( last_comment != nullptr
- && chunk_is_token(pc, CT_COMMENT_CPP) // combine only cpp comments
- && chunk_is_token(last_comment, pc->type) // don't mix comment types
- && last_comment->orig_line > pc->orig_line
- && (last_comment->orig_line - pc->orig_line) < 2))
- {
- last_comment = pc;
- continue;
- }
- bool break_now = do_it_newlines_func_pre_blank_lines(last_nl, start_type);
- LOG_FMT(LNLFUNCT, "%s(%d): break_now is %s\n",
- __func__, __LINE__, break_now ? "TRUE" : "FALSE");
- continue;
- }
- else if ( chunk_is_token(pc, CT_DESTRUCTOR)
- || chunk_is_token(pc, CT_TYPE)
- || chunk_is_token(pc, CT_TEMPLATE)
- || chunk_is_token(pc, CT_QUALIFIER)
- || chunk_is_token(pc, CT_PTR_TYPE)
- || chunk_is_token(pc, CT_BYREF) // Issue #2163
- || chunk_is_token(pc, CT_DC_MEMBER)
- || chunk_is_token(pc, CT_EXTERN)
- || ( chunk_is_token(pc, CT_STRING)
- && get_chunk_parent_type(pc) == CT_EXTERN))
- {
- LOG_FMT(LNLFUNCT, "%s(%d): first_line set to %zu\n",
- __func__, __LINE__, pc->orig_line);
- first_line = pc->orig_line;
- continue;
- }
- else if ( chunk_is_token(pc, CT_ANGLE_CLOSE)
- && get_chunk_parent_type(pc) == CT_TEMPLATE)
- {
- LOG_FMT(LNLFUNCT, "%s(%d):\n", __func__, __LINE__);
- // skip template stuff to add newlines before it
- pc = chunk_skip_to_match_rev(pc);
-
- if (pc != nullptr)
- {
- first_line = pc->orig_line;
- }
- continue;
- }
- else
- {
- LOG_FMT(LNLFUNCT, "%s(%d): else ==================================\n",
- __func__, __LINE__);
- bool break_now = do_it_newlines_func_pre_blank_lines(last_nl, start_type);
- LOG_FMT(LNLFUNCT, "%s(%d): break_now is %s\n",
- __func__, __LINE__, break_now ? "TRUE" : "FALSE");
- break;
- }
- }
-} // newlines_func_pre_blank_lines
-
-
-static chunk_t *get_closing_brace(chunk_t *start)
-{
- LOG_FUNC_ENTRY();
-
- chunk_t *pc;
- size_t level = start->level;
-
- for (pc = start; (pc = chunk_get_next(pc)) != nullptr;)
- {
- if ( ( chunk_is_token(pc, CT_BRACE_CLOSE)
- || chunk_is_token(pc, CT_VBRACE_CLOSE))
- && pc->level == level)
- {
- return(pc);
- }
-
- // for some reason, we can have newlines between if and opening brace that are lower level than either
- if ( !chunk_is_newline(pc)
- && pc->level < level)
- {
- return(nullptr);
- }
- }
-
- return(nullptr);
-} // get_closing_brace
-
-
-static void remove_next_newlines(chunk_t *start)
-{
- LOG_FUNC_ENTRY();
-
- chunk_t *next;
-
- while ((next = chunk_get_next(start)) != nullptr)
- {
- if ( chunk_is_newline(next)
- && chunk_safe_to_del_nl(next))
- {
- chunk_del(next);
- MARK_CHANGE();
- }
- else if (chunk_is_vbrace(next))
- {
- start = next;
- }
- else
- {
- break;
- }
- }
-} // remove_next_newlines
-
-
-static void newlines_if_for_while_switch_post_blank_lines(chunk_t *start, iarf_e nl_opt)
-{
- LOG_FUNC_ENTRY();
-
- chunk_t *prev;
-
- LOG_FMT(LNEWLINE, "%s(%d): start->text() is '%s', type is %s, orig_line is %zu, orig_column is %zu\n",
- __func__, __LINE__, start->text(), get_token_name(start->type), start->orig_line, start->orig_col);
-
- log_rule_B("nl_define_macro");
-
- if ( nl_opt == IARF_IGNORE
- || ( start->flags.test(PCF_IN_PREPROC)
- && !options::nl_define_macro()))
- {
- return;
- }
- chunk_t *pc = get_closing_brace(start);
-
- // first find ending brace
- if (pc == nullptr)
- {
- return;
- }
- LOG_FMT(LNEWLINE, "%s(%d): pc->text() is '%s', type is %s, orig_line is %zu, orig_column is %zu\n",
- __func__, __LINE__, pc->text(), get_token_name(pc->type), pc->orig_line, pc->orig_col);
-
- /*
- * if we're dealing with an if, we actually want to add or remove
- * blank lines after any else
- */
- if (chunk_is_token(start, CT_IF))
- {
- chunk_t *next;
-
- while (true)
- {
- next = chunk_get_next_ncnnl(pc);
-
- if ( next != nullptr
- && ( chunk_is_token(next, CT_ELSE)
- || chunk_is_token(next, CT_ELSEIF)))
- {
- // point to the closing brace of the else
- if ((pc = get_closing_brace(next)) == nullptr)
- {
- return;
- }
- LOG_FMT(LNEWLINE, "%s(%d): pc->text() is '%s', type %s, orig_line %zu, orig_column %zu\n",
- __func__, __LINE__, pc->text(), get_token_name(pc->type), pc->orig_line, pc->orig_col);
- }
- else
- {
- break;
- }
- }
- }
-
- /*
- * if we're dealing with a do/while, we actually want to add or
- * remove blank lines after while and its condition
- */
- if (chunk_is_token(start, CT_DO))
- {
- // point to the next semicolon
- if ((pc = chunk_get_next_type(pc, CT_SEMICOLON, start->level)) == nullptr)
- {
- return;
- }
- LOG_FMT(LNEWLINE, "%s(%d): pc->text() is '%s', type %s, orig_line %zu, orig_column %zu\n",
- __func__, __LINE__, pc->text(), get_token_name(pc->type), pc->orig_line, pc->orig_col);
- }
- bool isVBrace = (chunk_is_token(pc, CT_VBRACE_CLOSE));
-
- if (isVBrace)
- {
- LOG_FMT(LNEWLINE, "%s(%d): isVBrace is TRUE\n", __func__, __LINE__);
- }
- else
- {
- LOG_FMT(LNEWLINE, "%s(%d): isVBrace is FALSE\n", __func__, __LINE__);
- }
-
- if ((prev = chunk_get_prev_nvb(pc)) == nullptr)
- {
- return;
- }
- bool have_pre_vbrace_nl = isVBrace && chunk_is_newline(prev);
-
- if (have_pre_vbrace_nl)
- {
- LOG_FMT(LNEWLINE, "%s(%d): have_pre_vbrace_nl is TRUE\n", __func__, __LINE__);
- }
- else
- {
- LOG_FMT(LNEWLINE, "%s(%d): have_pre_vbrace_nl is FALSE\n", __func__, __LINE__);
- }
-
- if (nl_opt & IARF_REMOVE)
- {
- chunk_t *next;
-
- // if chunk before is a vbrace, remove any newlines after it
- if (have_pre_vbrace_nl)
- {
- if (prev->nl_count != 1)
- {
- prev->nl_count = 1;
- MARK_CHANGE();
- }
- remove_next_newlines(pc);
- }
- else if ( (chunk_is_newline(next = chunk_get_next_nvb(pc)))
- && !next->flags.test(PCF_VAR_DEF))
- {
- // otherwise just deal with newlines after brace
- if (next->nl_count != 1)
- {
- next->nl_count = 1;
- MARK_CHANGE();
- }
- remove_next_newlines(next);
- }
- }
-
- // may have a newline before and after vbrace
- // don't do anything with it if the next non newline chunk is a closing brace
- if (nl_opt & IARF_ADD)
- {
- chunk_t *next;
- chunk_t *nextNNL = chunk_get_next_nnl(pc);
-
- do
- {
- if (nextNNL == nullptr)
- {
- return;
- }
-
- if (chunk_is_not_token(nextNNL, CT_VBRACE_CLOSE))
- {
- next = nextNNL;
- break;
- }
- nextNNL = chunk_get_next_nnl(nextNNL);
- } while (true);
-
- LOG_FMT(LNEWLINE, "%s(%d): next->text() is '%s', type %s, orig_line %zu, orig_column %zu\n",
- __func__, __LINE__, next->text(), get_token_name(next->type), next->orig_line, next->orig_col);
-
- if (chunk_is_not_token(next, CT_BRACE_CLOSE))
- {
- // if vbrace, have to check before and after
- // if chunk before vbrace, check its count
- size_t nl_count = have_pre_vbrace_nl ? prev->nl_count : 0;
- LOG_FMT(LNEWLINE, "%s(%d): nl_count %zu\n", __func__, __LINE__, nl_count);
-
- if (chunk_is_newline(next = chunk_get_next_nvb(pc)))
- {
- LOG_FMT(LNEWLINE, "%s(%d): next->text() is '%s', type %s, orig_line %zu, orig_column %zu\n",
- __func__, __LINE__, next->text(), get_token_name(next->type), next->orig_line, next->orig_col);
- nl_count += next->nl_count;
- LOG_FMT(LNEWLINE, "%s(%d): nl_count is %zu\n", __func__, __LINE__, nl_count);
- }
-
- // if we have no newlines, add one and make it double
- if (nl_count == 0)
- {
- LOG_FMT(LNEWLINE, "%s(%d): nl_count is 0\n", __func__, __LINE__);
-
- if ( ((next = chunk_get_next(pc)) != nullptr)
- && chunk_is_comment(next))
- {
- LOG_FMT(LNEWLINE, "%s(%d): next->text() is '%s', type %s, orig_line %zu, orig_column %zu\n",
- __func__, __LINE__, next->text(), get_token_name(next->type), next->orig_line, next->orig_col);
- pc = next;
- LOG_FMT(LNEWLINE, "%s(%d): pc->text() is '%s', type %s, orig_line %zu, orig_column %zu\n",
- __func__, __LINE__, pc->text(), get_token_name(pc->type), pc->orig_line, pc->orig_col);
- }
-
- if ((next = newline_add_after(pc)) == nullptr)
- {
- return;
- }
- LOG_FMT(LNEWLINE, "%s(%d): next->text() is '%s', type %s, orig_line %zu, orig_column %zu\n",
- __func__, __LINE__, next->text(), get_token_name(next->type), next->orig_line, next->orig_col);
- double_newline(next);
- }
- else if (nl_count == 1) // if we don't have enough newlines
- {
- LOG_FMT(LNEWLINE, "%s(%d): nl_count is 1\n", __func__, __LINE__);
-
- // if we have a preceeding vbrace, add one after it
- if (have_pre_vbrace_nl)
- {
- LOG_FMT(LNEWLINE, "%s(%d): have_pre_vbrace_nl is TRUE\n", __func__, __LINE__);
- next = newline_add_after(pc);
- LOG_FMT(LNEWLINE, "%s(%d): next->text() is '%s', type %s, orig_line %zu, orig_column %zu\n",
- __func__, __LINE__, next->text(), get_token_name(next->type), next->orig_line, next->orig_col);
- }
- else
- {
- LOG_FMT(LNEWLINE, "%s(%d): have_pre_vbrace_nl is FALSE\n", __func__, __LINE__);
- prev = chunk_get_prev_nnl(next);
- LOG_FMT(LNEWLINE, "%s(%d): prev->text() is '%s', type %s, orig_line %zu, orig_column %zu\n",
- __func__, __LINE__, prev->text(), get_token_name(prev->type), prev->orig_line, prev->orig_col);
- pc = chunk_get_next_nl(next);
- LOG_FMT(LNEWLINE, "%s(%d): pc->text() is '%s', type %s, orig_line %zu, orig_column %zu\n",
- __func__, __LINE__, pc->text(), get_token_name(pc->type), pc->orig_line, pc->orig_col);
- chunk_t *pc2 = chunk_get_next(pc);
-
- if (pc2 != nullptr)
- {
- pc = pc2;
- LOG_FMT(LNEWLINE, "%s(%d): pc->text() is '%s', type %s, orig_line %zu, orig_column %zu\n",
- __func__, __LINE__, pc->text(), get_token_name(pc->type), pc->orig_line, pc->orig_col);
- }
- else
- {
- LOG_FMT(LNEWLINE, "%s(%d): no next found: <EOF>\n", __func__, __LINE__);
- }
- log_rule_B("nl_squeeze_ifdef");
-
- if ( chunk_is_token(pc, CT_PREPROC)
- && get_chunk_parent_type(pc) == CT_PP_ENDIF
- && options::nl_squeeze_ifdef())
- {
- LOG_FMT(LNEWLINE, "%s(%d): cannot add newline after orig_line %zu due to nl_squeeze_ifdef\n",
- __func__, __LINE__, prev->orig_line);
- }
- else
- {
- // make newline after double
- LOG_FMT(LNEWLINE, "%s(%d): call double_newline\n", __func__, __LINE__);
- double_newline(next);
- }
- }
- }
- }
- }
-} // newlines_if_for_while_switch_post_blank_lines
-
-
-static void newlines_struct_union(chunk_t *start, iarf_e nl_opt, bool leave_trailing)
-{
- LOG_FUNC_ENTRY();
-
- log_rule_B("nl_define_macro");
-
- if ( nl_opt == IARF_IGNORE
- || ( start->flags.test(PCF_IN_PREPROC)
- && !options::nl_define_macro()))
- {
- return;
- }
- /*
- * step past any junk between the keyword and the open brace
- * Quit if we hit a semicolon or '=', which are not expected.
- */
- size_t level = start->level;
- chunk_t *pc = start;
-
- while ( ((pc = chunk_get_next_ncnnl(pc)) != nullptr)
- && pc->level >= level)
- {
- if ( pc->level == level
- && ( chunk_is_token(pc, CT_BRACE_OPEN)
- || chunk_is_semicolon(pc)
- || chunk_is_token(pc, CT_ASSIGN)))
- {
- break;
- }
- start = pc;
- }
-
- // If we hit a brace open, then we need to toy with the newlines
- if (chunk_is_token(pc, CT_BRACE_OPEN))
- {
- // Skip over embedded C comments
- chunk_t *next = chunk_get_next(pc);
-
- while (chunk_is_token(next, CT_COMMENT))
- {
- next = chunk_get_next(next);
- }
-
- if ( leave_trailing
- && !chunk_is_comment(next)
- && !chunk_is_newline(next))
- {
- nl_opt = IARF_IGNORE;
- }
- newline_iarf_pair(start, pc, nl_opt);
- }
-} // newlines_struct_union
-
-
-// enum {
-// enum class angle_state_e : unsigned int {
-// enum-key attr(optional) identifier(optional) enum-base(optional) { enumerator-list(optional) }
-// enum-key attr(optional) nested-name-specifier(optional) identifier enum-base(optional) ; TODO
-// enum-key - one of enum, enum class or enum struct TODO
-// identifier - the name of the enumeration that's being declared
-// enum-base(C++11) - colon (:), followed by a type-specifier-seq
-// enumerator-list - comma-separated list of enumerator definitions
-static void newlines_enum(chunk_t *start)
-{
- LOG_FUNC_ENTRY();
-
- log_rule_B("nl_define_macro");
-
- if ( start->flags.test(PCF_IN_PREPROC)
- && !options::nl_define_macro())
- {
- return;
- }
- // look for 'enum class'
- chunk_t *pcClass = chunk_get_next_ncnnl(start);
-
- if (chunk_is_token(pcClass, CT_ENUM_CLASS))
- {
- log_rule_B("nl_enum_class");
- newline_iarf_pair(start, pcClass, options::nl_enum_class());
- // look for 'identifier'/ 'type'
- chunk_t *pcType = chunk_get_next_ncnnl(pcClass);
-
- if (chunk_is_token(pcType, CT_TYPE))
- {
- log_rule_B("nl_enum_class_identifier");
- newline_iarf_pair(pcClass, pcType, options::nl_enum_class_identifier());
- // look for ':'
- chunk_t *pcColon = chunk_get_next_ncnnl(pcType);
-
- if (chunk_is_token(pcColon, CT_BIT_COLON))
- {
- log_rule_B("nl_enum_identifier_colon");
- newline_iarf_pair(pcType, pcColon, options::nl_enum_identifier_colon());
- // look for 'type' i.e. unsigned
- chunk_t *pcType1 = chunk_get_next_ncnnl(pcColon);
-
- if (chunk_is_token(pcType1, CT_TYPE))
- {
- log_rule_B("nl_enum_colon_type");
- newline_iarf_pair(pcColon, pcType1, options::nl_enum_colon_type());
- // look for 'type' i.e. int
- chunk_t *pcType2 = chunk_get_next_ncnnl(pcType1);
-
- if (chunk_is_token(pcType2, CT_TYPE))
- {
- log_rule_B("nl_enum_colon_type");
- newline_iarf_pair(pcType1, pcType2, options::nl_enum_colon_type());
- }
- }
- }
- }
- }
- /*
- * step past any junk between the keyword and the open brace
- * Quit if we hit a semicolon or '=', which are not expected.
- */
- size_t level = start->level;
- chunk_t *pc = start;
-
- while ( ((pc = chunk_get_next_ncnnl(pc)) != nullptr)
- && pc->level >= level)
- {
- if ( pc->level == level
- && ( chunk_is_token(pc, CT_BRACE_OPEN)
- || chunk_is_semicolon(pc)
- || chunk_is_token(pc, CT_ASSIGN)))
- {
- break;
- }
- start = pc;
- }
-
- // If we hit a brace open, then we need to toy with the newlines
- if (chunk_is_token(pc, CT_BRACE_OPEN))
- {
- // Skip over embedded C comments
- chunk_t *next = chunk_get_next(pc);
-
- while (chunk_is_token(next, CT_COMMENT))
- {
- next = chunk_get_next(next);
- }
- iarf_e nl_opt;
-
- if ( !chunk_is_comment(next)
- && !chunk_is_newline(next))
- {
- nl_opt = IARF_IGNORE;
- }
- else
- {
- log_rule_B("nl_enum_brace");
- nl_opt = options::nl_enum_brace();
- }
- newline_iarf_pair(start, pc, nl_opt);
- }
-} // newlines_enum
-
-
-// namespace {
-// namespace word {
-// namespace type::word {
-static void newlines_namespace(chunk_t *start)
-{
- LOG_FUNC_ENTRY();
-
- log_rule_B("nl_namespace_brace");
-
- // Add or remove newline between 'namespace' and 'BRACE_OPEN'
- log_rule_B("nl_define_macro");
- iarf_e nl_opt = options::nl_namespace_brace();
-
- if ( nl_opt == IARF_IGNORE
- || ( start->flags.test(PCF_IN_PREPROC)
- && !options::nl_define_macro()))
- {
- return;
- }
- chunk_t *braceOpen = chunk_get_next_type(start, CT_BRACE_OPEN, start->level);
-
- LOG_FMT(LNEWLINE, "%s(%d): braceOpen->orig_line is %zu, orig_col is %zu, text() is '%s'\n",
- __func__, __LINE__, braceOpen->orig_line, braceOpen->orig_col, braceOpen->text());
- // produces much more log output. Use it only debugging purpose
- //log_pcf_flags(LNEWLINE, braceOpen->flags);
-
- if (braceOpen->flags.test(PCF_ONE_LINER))
- {
- LOG_FMT(LNEWLINE, "%s(%d): is one_liner\n",
- __func__, __LINE__);
- return;
- }
- chunk_t *beforeBrace = chunk_get_prev(braceOpen);
-
- LOG_FMT(LNEWLINE, "%s(%d): beforeBrace->orig_line is %zu, orig_col is %zu, text() is '%s'\n",
- __func__, __LINE__, beforeBrace->orig_line, beforeBrace->orig_col, beforeBrace->text());
- // 'namespace' 'BRACE_OPEN'
- newline_iarf_pair(beforeBrace, braceOpen, nl_opt);
-} // newlines_namespace
-
-
-static void newlines_cuddle_uncuddle(chunk_t *start, iarf_e nl_opt)
-{
- LOG_FUNC_ENTRY();
-
- log_rule_B("nl_define_macro");
-
- if ( start->flags.test(PCF_IN_PREPROC)
- && !options::nl_define_macro())
- {
- return;
- }
- chunk_t *br_close = chunk_get_prev_ncnnlni(start); // Issue #2279
-
- if (chunk_is_token(br_close, CT_BRACE_CLOSE))
- {
- newline_iarf_pair(br_close, start, nl_opt);
- }
-} // newlines_cuddle_uncuddle
-
-
-static void newlines_do_else(chunk_t *start, iarf_e nl_opt)
-{
- LOG_FUNC_ENTRY();
-
- log_rule_B("nl_define_macro");
-
- if ( nl_opt == IARF_IGNORE
- || ( start->flags.test(PCF_IN_PREPROC)
- && !options::nl_define_macro()))
- {
- return;
- }
- chunk_t *next = chunk_get_next_ncnnl(start);
-
- if ( next != nullptr
- && ( chunk_is_token(next, CT_BRACE_OPEN)
- || chunk_is_token(next, CT_VBRACE_OPEN)))
- {
- if (!one_liner_nl_ok(next))
- {
- LOG_FMT(LNL1LINE, "%s(%d): a new line may NOT be added\n", __func__, __LINE__);
- return;
- }
- LOG_FMT(LNL1LINE, "%s(%d): a new line may be added\n", __func__, __LINE__);
-
- if (chunk_is_token(next, CT_VBRACE_OPEN))
- {
- // Can only add - we don't want to create a one-line here
- if (nl_opt & IARF_ADD)
- {
- newline_iarf_pair(start, chunk_get_next_ncnnl(next), nl_opt);
- chunk_t *tmp = chunk_get_next_type(next, CT_VBRACE_CLOSE, next->level);
-
- if ( !chunk_is_newline(chunk_get_next_nc(tmp))
- && !chunk_is_newline(chunk_get_prev_nc(tmp)))
- {
- newline_add_after(tmp);
- }
- }
- }
- else
- {
- newline_iarf_pair(start, next, nl_opt);
- newline_add_between(next, chunk_get_next_ncnnl(next));
- }
- }
-} // newlines_do_else
-
-
-static bool is_var_def(chunk_t *pc, chunk_t *next)
-{
- if ( chunk_is_token(pc, CT_DECLTYPE)
- && chunk_is_token(next, CT_PAREN_OPEN))
- {
- // If current token starts a decltype expression, skip it
- next = chunk_skip_to_match(next);
- next = chunk_get_next_ncnnl(next);
- }
- else if (!chunk_is_type(pc))
- {
- // Otherwise, if the current token is not a type --> not a declaration
- return(false);
- }
- else if (chunk_is_token(next, CT_DC_MEMBER))
- {
- // If next token is CT_DC_MEMBER, skip it
- next = chunk_skip_dc_member(next);
- }
- else if (chunk_is_token(next, CT_ANGLE_OPEN))
- {
- // If we have a template type, skip it
- next = chunk_skip_to_match(next);
- next = chunk_get_next_ncnnl(next);
- }
- bool is = ( ( chunk_is_type(next)
- && get_chunk_parent_type(next) != CT_FUNC_DEF) // Issue #2639
- || chunk_is_token(next, CT_WORD)
- || chunk_is_token(next, CT_FUNC_CTOR_VAR));
-
- return(is);
-} // is_var_def
-
-
-// Put newline(s) before and/or after a block of variable definitions
-static chunk_t *newline_def_blk(chunk_t *start, bool fn_top)
-{
- LOG_FUNC_ENTRY();
-
- chunk_t *prev = chunk_get_prev_ncnnlni(start); // Issue #2279
-
- // can't be any variable definitions in a "= {" block
- if (chunk_is_token(prev, CT_ASSIGN))
- {
- chunk_t *tmp = chunk_get_next_type(start, CT_BRACE_CLOSE, start->level);
- return(chunk_get_next_ncnnl(tmp));
- }
- chunk_t *pc = chunk_get_next(start);
- bool did_this_line = false;
- bool first_var_blk = true;
- bool var_blk = false;
-
- while ( pc != nullptr
- && ( pc->level >= start->level
- || pc->level == 0))
- {
- LOG_FMT(LNL1LINE, "%s(%d): pc->orig_line is %zu, pc->orig_col is %zu, text() is '%s'\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text());
-
- chunk_t *next_pc = chunk_get_next(pc);
-
- if (chunk_is_token(next_pc, CT_DC_MEMBER))
- {
- // If next_pc token is CT_DC_MEMBER, skip it
- pc = chunk_skip_dc_member(pc);
- }
-
- if (chunk_is_comment(pc))
- {
- pc = chunk_get_next(pc);
- continue;
- }
-
- // process nested braces
- if (chunk_is_token(pc, CT_BRACE_OPEN))
- {
- pc = newline_def_blk(pc, false);
- continue;
- }
-
- // Done with this brace set?
- if (chunk_is_token(pc, CT_BRACE_CLOSE))
- {
- pc = chunk_get_next(pc);
- break;
- }
-
- if (chunk_is_preproc(pc))
- {
- if (!var_blk)
- {
- pc = chunk_get_next(pc);
- break;
- }
- }
-
- // skip vbraces
- if (chunk_is_token(pc, CT_VBRACE_OPEN))
- {
- pc = chunk_get_next_type(pc, CT_VBRACE_CLOSE, pc->level);
- pc = chunk_get_next(pc);
- continue;
- }
-
- // Ignore stuff inside parenthesis/squares/angles
- if (pc->level > pc->brace_level)
- {
- pc = chunk_get_next(pc);
- continue;
- }
-
- if (chunk_is_newline(pc))
- {
- did_this_line = false;
- pc = chunk_get_next(pc);
- continue;
- }
-
- // Determine if this is a variable definition or code
- if ( !did_this_line
- && chunk_is_not_token(pc, CT_FUNC_CLASS_DEF)
- && chunk_is_not_token(pc, CT_FUNC_CLASS_PROTO)
- && ( (pc->level == (start->level + 1))
- || pc->level == 0))
- {
- chunk_t *next = chunk_get_next_ncnnl(pc);
-
- if ( chunk_is_token(next, CT_PTR_TYPE) // Issue #2692
- || chunk_is_token(next, CT_BYREF)) // Issue #3018
- {
- next = chunk_get_next_ncnnl(next);
- }
-
- if (next == nullptr)
- {
- break;
- }
- LOG_FMT(LNL1LINE, "%s(%d): next->orig_line is %zu, next->orig_col is %zu, text() is '%s'\n",
- __func__, __LINE__, next->orig_line, next->orig_col, next->text());
-
- prev = chunk_get_prev_ncnnl(pc);
-
- while ( chunk_is_token(prev, CT_DC_MEMBER)
- || chunk_is_token(prev, CT_TYPE))
- {
- prev = chunk_get_prev_ncnnl(prev);
- }
-
- if (!(chunk_is_opening_brace(prev) || chunk_is_closing_brace(prev)))
- {
- prev = chunk_get_prev_type(pc, CT_SEMICOLON, pc->level);
- }
-
- if (prev == nullptr)
- {
- prev = chunk_get_prev_type(pc, CT_BRACE_OPEN, pc->level - 1); // Issue #2692
- }
-
- if ( chunk_is_token(prev, CT_STRING)
- && get_chunk_parent_type(prev) == CT_EXTERN
- && chunk_is_token(prev->prev, CT_EXTERN))
- {
- prev = chunk_get_prev_ncnnlni(prev->prev); // Issue #2279
- }
-
- if (is_var_def(pc, next))
- {
- LOG_FMT(LBLANKD, "%s(%d): 'typ==var' found: '%s %s' at line %zu\n",
- __func__, __LINE__, pc->text(), next->text(), pc->orig_line);
- // Put newline(s) before a block of variable definitions
- log_rule_B("nl_var_def_blk_start");
-
- if ( !var_blk
- && first_var_blk
- && options::nl_var_def_blk_start() > 0)
- {
- LOG_FMT(LBLANKD, "%s(%d): pc is '%s', orig_line is %zu\n",
- __func__, __LINE__, pc->text(), pc->orig_line);
- LOG_FMT(LBLANKD, "%s(%d): prev is '%s', orig_line is %zu\n",
- __func__, __LINE__, prev->text(), prev->orig_line);
-
- if (!chunk_is_opening_brace(prev))
- {
- newline_min_after(prev, options::nl_var_def_blk_start(), PCF_VAR_DEF);
- }
- }
-
- // set newlines within var def block
- if (var_blk && (options::nl_var_def_blk_in() > 0))
- {
- log_rule_B("nl_var_def_blk_in");
- prev = chunk_get_prev(pc);
- LOG_FMT(LNL1LINE, "%s(%d): prev->orig_line is %zu, prev->orig_col is %zu, text() is '%s'\n",
- __func__, __LINE__, prev->orig_line, prev->orig_col, prev->text());
-
- if (chunk_is_newline(prev))
- {
- log_rule_B("nl_var_def_blk_in");
-
- if (prev->nl_count > options::nl_var_def_blk_in())
- {
- prev->nl_count = options::nl_var_def_blk_in();
- MARK_CHANGE();
- }
- }
- }
- pc = chunk_get_next_type(pc, CT_SEMICOLON, pc->level);
- var_blk = true;
- }
- else if (var_blk)
- {
- log_rule_B("nl_var_def_blk_end");
-
- if (options::nl_var_def_blk_end() > 0)
- {
- newline_min_after(prev, options::nl_var_def_blk_end(), PCF_VAR_DEF);
- }
- // set blank lines after first var def block
- log_rule_B("nl_func_var_def_blk");
-
- if ( var_blk
- && first_var_blk
- && fn_top
- && (options::nl_func_var_def_blk() > 0))
- {
- LOG_FMT(LBLANKD, "%s(%d): nl_func_var_def_blk at line %zu\n",
- __func__, __LINE__, prev->orig_line);
- log_rule_B("nl_func_var_def_blk");
- newline_min_after(prev, 1 + options::nl_func_var_def_blk(), PCF_VAR_DEF);
- }
- // reset the variables for the next block
- first_var_blk = true;
- var_blk = false;
- }
- }
- else
- {
- if (chunk_is_token(pc, CT_FUNC_CLASS_DEF))
- {
- log_rule_B("nl_var_def_blk_end");
-
- if ( var_blk
- && options::nl_var_def_blk_end() > 0)
- {
- prev = chunk_get_prev(pc);
- prev = chunk_get_prev(prev);
- newline_min_after(prev, options::nl_var_def_blk_end(), PCF_VAR_DEF);
- pc = chunk_get_next(pc);
- first_var_blk = false;
- var_blk = false;
- }
- }
- }
- did_this_line = true;
- pc = chunk_get_next(pc);
- }
- return(pc);
-} // newline_def_blk
-
-
-static bool collapse_empty_body(chunk_t *br_open)
-{
- log_rule_B("nl_collapse_empty_body");
-
- if ( !options::nl_collapse_empty_body()
- || !chunk_is_token(chunk_get_next_nnl(br_open), CT_BRACE_CLOSE))
- {
- return(false);
- }
-
- for (chunk_t *pc = chunk_get_next(br_open)
- ; chunk_is_not_token(pc, CT_BRACE_CLOSE)
- ; pc = chunk_get_next(pc))
- {
- if ( chunk_is_token(pc, CT_NEWLINE)
- && chunk_safe_to_del_nl(pc))
- {
- pc = pc->prev;
- chunk_t *next = pc->next;
- chunk_del(next);
- MARK_CHANGE();
- }
- }
-
- return(true);
-} // collapse_empty_body
-
-
-static void newlines_brace_pair(chunk_t *br_open)
-{
- LOG_FUNC_ENTRY();
-
- log_rule_B("nl_define_macro");
-
- if ( br_open->flags.test(PCF_IN_PREPROC)
- && !options::nl_define_macro())
- {
- return;
- }
-
- //fixes 1235 Add single line namespace support
- if ( chunk_is_token(br_open, CT_BRACE_OPEN)
- && (get_chunk_parent_type(br_open) == CT_NAMESPACE)
- && chunk_is_newline(chunk_get_prev(br_open)))
- {
- chunk_t *chunk_brace_close = chunk_skip_to_match(br_open, scope_e::ALL);
-
- if (chunk_brace_close != nullptr)
- {
- if (are_chunks_in_same_line(br_open, chunk_brace_close))
- {
- log_rule_B("nl_namespace_two_to_one_liner - 1");
-
- if (options::nl_namespace_two_to_one_liner())
- {
- chunk_t *prev = chunk_get_prev_nnl(br_open);
- newline_del_between(prev, br_open);
- }
- /* Below code is to support conversion of 2 liner to 4 liners
- * else
- * {
- * chunk_t *nxt = chunk_get_next(br_open);
- * newline_add_between(br_open, nxt);
- * }*/
- }
- }
- }
- // fix 1247 oneliner function support - converts 4,3,2 liners to oneliner
- log_rule_B("nl_create_func_def_one_liner");
-
- if ( get_chunk_parent_type(br_open) == CT_FUNC_DEF
- && options::nl_create_func_def_one_liner()
- && !br_open->flags.test(PCF_NOT_POSSIBLE)) // Issue #2795
- {
- chunk_t *br_close = chunk_skip_to_match(br_open, scope_e::ALL);
- chunk_t *tmp = chunk_get_prev_ncnnlni(br_open); // Issue #2279
-
- if ( br_close != nullptr // Issue #2594
- && ((br_close->orig_line - br_open->orig_line) <= 2)
- && chunk_is_paren_close(tmp)) // need to check the conditions.
- {
- // Issue #1825
- bool is_it_possible = true;
-
- while ( tmp != nullptr
- && (tmp = chunk_get_next(tmp)) != nullptr
- && !chunk_is_closing_brace(tmp)
- && (chunk_get_next(tmp) != nullptr))
- {
- LOG_FMT(LNL1LINE, "%s(%d): tmp->orig_line is %zu, tmp->orig_col is %zu, text() is '%s'\n",
- __func__, __LINE__, tmp->orig_line, tmp->orig_col, tmp->text());
-
- if (chunk_is_comment(tmp))
- {
- is_it_possible = false;
- break;
- }
- }
-
- if (is_it_possible)
- {
- // Issue 2795
- // we have to check if it could be too long for code_width
- // make a vector to save the chunk
- vector<chunk_t> saved_chunk;
- log_rule_B("code_width");
-
- if (options::code_width() > 0)
- {
- saved_chunk.reserve(16);
- chunk_t *current = chunk_get_prev_ncnnlni(br_open);
- chunk_t *next_br_close = chunk_get_next(br_close);
- current = chunk_get_next(current);
-
- while (current != nullptr)
- {
- LOG_FMT(LNL1LINE, "%s(%d): zu kopieren: current->orig_line is %zu, orig_col is %zu, text() is '%s'\n",
- __func__, __LINE__, current->orig_line, current->orig_col, current->text());
- saved_chunk.push_back(*current);
- chunk_t *the_next = chunk_get_next(current);
-
- if ( the_next == nullptr
- || the_next == next_br_close)
- {
- break;
- }
- current = the_next;
- }
- }
- chunk_t *tmp_1 = chunk_get_prev_ncnnlni(br_open);
-
- while ( tmp_1 != nullptr
- && (tmp_1 = chunk_get_next(tmp_1)) != nullptr
- && !chunk_is_closing_brace(tmp_1)
- && (chunk_get_next(tmp_1) != nullptr))
- {
- LOG_FMT(LNL1LINE, "%s(%d): tmp_1->orig_line is %zu, orig_col is %zu, text() is '%s'\n",
- __func__, __LINE__, tmp_1->orig_line, tmp_1->orig_col, tmp_1->text());
-
- if (chunk_is_newline(tmp_1))
- {
- tmp_1 = chunk_get_prev(tmp_1); // Issue #1825
- newline_iarf_pair(tmp_1, chunk_get_next_ncnnl(tmp_1), IARF_REMOVE);
- }
- }
- chunk_flags_set(br_open, PCF_ONE_LINER); // set the one liner flag if needed
- chunk_flags_set(br_close, PCF_ONE_LINER);
- log_rule_B("code_width");
-
- if ( options::code_width() > 0
- && br_close->column > options::code_width())
- {
- // the created line is too long
- // it is not possible to make an one_liner
- // because the line would be too long
- chunk_flags_set(br_open, PCF_NOT_POSSIBLE);
- // restore the code
- size_t count;
- chunk_t tmp_2;
- chunk_t *current = br_open;
-
- for (count = 0; count < saved_chunk.size(); count++)
- {
- tmp_2 = saved_chunk.at(count);
-
- if (tmp_2.orig_line != current->orig_line)
- {
- // restore the newline
- chunk_t chunk;
- set_chunk_type(&chunk, CT_NEWLINE);
- chunk.orig_line = current->orig_line;
- chunk.orig_col = current->orig_col;
- chunk.pp_level = current->pp_level;
- chunk.nl_count = 1;
- chunk_add_before(&chunk, current);
- LOG_FMT(LNEWLINE, "%s(%d): %zu:%zu add newline before '%s'\n",
- __func__, __LINE__, current->orig_line, current->orig_col, current->text());
- }
- else
- {
- current = chunk_get_next(current);
- }
- }
- }
- }
- }
- }
-
- // Make sure we don't break a one-liner
- if (!one_liner_nl_ok(br_open))
- {
- LOG_FMT(LNL1LINE, "%s(%d): br_open->orig_line is %zu, br_open->orig_col is %zu, a new line may NOT be added\n",
- __func__, __LINE__, br_open->orig_line, br_open->orig_col);
- return;
- }
- LOG_FMT(LNL1LINE, "%s(%d): a new line may be added\n", __func__, __LINE__);
-
- chunk_t *next = chunk_get_next_nc(br_open);
-
- // Insert a newline between the '=' and open brace, if needed
- LOG_FMT(LNL1LINE, "%s(%d): br_open->text() '%s', br_open->type [%s], br_open->parent_type [%s]\n",
- __func__, __LINE__, br_open->text(), get_token_name(br_open->type),
- get_token_name(get_chunk_parent_type(br_open)));
-
- if (get_chunk_parent_type(br_open) == CT_ASSIGN)
- {
- // Only mess with it if the open brace is followed by a newline
- if (chunk_is_newline(next))
- {
- chunk_t *prev = chunk_get_prev_ncnnlni(br_open); // Issue #2279
- log_rule_B("nl_assign_brace");
- newline_iarf_pair(prev, br_open, options::nl_assign_brace());
- }
- }
-
- if ( get_chunk_parent_type(br_open) == CT_OC_MSG_DECL
- || get_chunk_parent_type(br_open) == CT_FUNC_DEF
- || get_chunk_parent_type(br_open) == CT_FUNC_CLASS_DEF
- || get_chunk_parent_type(br_open) == CT_OC_CLASS
- || get_chunk_parent_type(br_open) == CT_CS_PROPERTY
- || get_chunk_parent_type(br_open) == CT_CPP_LAMBDA
- || get_chunk_parent_type(br_open) == CT_FUNC_CALL
- || get_chunk_parent_type(br_open) == CT_FUNC_CALL_USER)
- {
- chunk_t *prev = nullptr;
- iarf_e val;
-
- if (get_chunk_parent_type(br_open) == CT_OC_MSG_DECL)
- {
- log_rule_B("nl_oc_mdef_brace");
- val = options::nl_oc_mdef_brace();
- }
- else
- {
- if ( get_chunk_parent_type(br_open) == CT_FUNC_DEF
- || get_chunk_parent_type(br_open) == CT_FUNC_CLASS_DEF
- || get_chunk_parent_type(br_open) == CT_OC_CLASS)
- {
- val = IARF_NOT_DEFINED;
- log_rule_B("nl_fdef_brace_cond");
- const iarf_e nl_fdef_brace_cond_v = options::nl_fdef_brace_cond();
-
- if (nl_fdef_brace_cond_v != IARF_IGNORE)
- {
- prev = chunk_get_prev_ncnnlni(br_open); // Issue #2279
-
- if (chunk_is_token(prev, CT_FPAREN_CLOSE))
- {
- val = nl_fdef_brace_cond_v;
- }
- }
-
- if (val == IARF_NOT_DEFINED)
- {
- log_rule_B("nl_fdef_brace");
- val = options::nl_fdef_brace();
- }
- }
- else
- {
- log_rule_B("nl_property_brace");
- log_rule_B("nl_cpp_ldef_brace");
- log_rule_B("nl_fcall_brace");
- val = ((get_chunk_parent_type(br_open) == CT_CS_PROPERTY) ?
- options::nl_property_brace() :
- ((get_chunk_parent_type(br_open) == CT_CPP_LAMBDA) ?
- options::nl_cpp_ldef_brace() :
- options::nl_fcall_brace()));
- }
- }
-
- if (val != IARF_IGNORE)
- {
- if (prev == nullptr)
- {
- // Grab the chunk before the open brace
- prev = chunk_get_prev_ncnnlni(br_open); // Issue #2279
- }
- newline_iarf_pair(prev, br_open, val);
- }
- }
-
- if (collapse_empty_body(br_open))
- {
- return;
- }
- //fixes #1245 will add new line between tsquare and brace open based on nl_tsquare_brace
-
- if (chunk_is_token(br_open, CT_BRACE_OPEN))
- {
- chunk_t *chunk_closeing_brace = chunk_skip_to_match(br_open, scope_e::ALL);
-
- if (chunk_closeing_brace != nullptr)
- {
- if (chunk_closeing_brace->orig_line > br_open->orig_line)
- {
- chunk_t *prev = chunk_get_prev_nc(br_open);
-
- if ( chunk_is_token(prev, CT_TSQUARE)
- && chunk_is_newline(next))
- {
- log_rule_B("nl_tsquare_brace");
- newline_iarf_pair(prev, br_open, options::nl_tsquare_brace());
- }
- }
- }
- }
- // Eat any extra newlines after the brace open
- log_rule_B("eat_blanks_after_open_brace");
-
- if (options::eat_blanks_after_open_brace())
- {
- if (chunk_is_newline(next))
- {
- log_rule_B("nl_inside_empty_func");
- log_rule_B("nl_inside_namespace");
-
- if ( options::nl_inside_empty_func() > 0
- && chunk_is_token(chunk_get_next_nnl(br_open), CT_BRACE_CLOSE)
- && ( get_chunk_parent_type(br_open) == CT_FUNC_CLASS_DEF
- || get_chunk_parent_type(br_open) == CT_FUNC_DEF))
- {
- blank_line_set(next, options::nl_inside_empty_func);
- }
- else if ( options::nl_inside_namespace() > 0
- && get_chunk_parent_type(br_open) == CT_NAMESPACE)
- {
- blank_line_set(next, options::nl_inside_namespace);
- }
- else if (next->nl_count > 1)
- {
- next->nl_count = 1;
- LOG_FMT(LBLANKD, "%s(%d): eat_blanks_after_open_brace %zu\n",
- __func__, __LINE__, next->orig_line);
- MARK_CHANGE();
- }
- }
- }
- bool nl_close_brace = false;
-
- // Handle the cases where the brace is part of a function call or definition
- if ( get_chunk_parent_type(br_open) == CT_FUNC_DEF
- || get_chunk_parent_type(br_open) == CT_FUNC_CALL
- || get_chunk_parent_type(br_open) == CT_FUNC_CALL_USER
- || get_chunk_parent_type(br_open) == CT_FUNC_CLASS_DEF
- || get_chunk_parent_type(br_open) == CT_OC_CLASS
- || get_chunk_parent_type(br_open) == CT_OC_MSG_DECL
- || get_chunk_parent_type(br_open) == CT_CS_PROPERTY
- || get_chunk_parent_type(br_open) == CT_CPP_LAMBDA)
- {
- // Need to force a newline before the close brace, if not in a class body
- if (!br_open->flags.test(PCF_IN_CLASS))
- {
- nl_close_brace = true;
- }
- // handle newlines after the open brace
- chunk_t *pc = chunk_get_next_ncnnl(br_open);
- newline_add_between(br_open, pc);
-
- newline_def_blk(br_open, true);
- }
-
- // Handle the cases where the brace is part of a class or struct
- if ( get_chunk_parent_type(br_open) == CT_CLASS
- || get_chunk_parent_type(br_open) == CT_STRUCT)
- {
- newline_def_blk(br_open, false);
- }
- // Grab the matching brace close
- chunk_t *br_close = chunk_get_next_type(br_open, CT_BRACE_CLOSE, br_open->level);
-
- if (br_close == nullptr)
- {
- return;
- }
-
- if (!nl_close_brace)
- {
- /*
- * If the open brace hits a CT_NEWLINE, CT_NL_CONT, CT_COMMENT_MULTI, or
- * CT_COMMENT_CPP without hitting anything other than CT_COMMENT, then
- * there should be a newline before the close brace.
- */
- chunk_t *pc = chunk_get_next(br_open);
-
- while (chunk_is_token(pc, CT_COMMENT))
- {
- pc = chunk_get_next(pc);
- }
-
- if ( chunk_is_newline(pc)
- || chunk_is_comment(pc))
- {
- nl_close_brace = true;
- }
- }
- chunk_t *prev = chunk_get_prev_nblank(br_close);
-
- if (nl_close_brace)
- {
- newline_add_between(prev, br_close);
- }
- else
- {
- newline_del_between(prev, br_close);
- }
-} // newlines_brace_pair
-
-
-static void newline_case(chunk_t *start)
-{
- LOG_FUNC_ENTRY();
-
- // printf("%s case (%s) on line %d col %d\n",
- // __func__, c_chunk_names[start->type],
- // start->orig_line, start->orig_col);
-
- // Scan backwards until a '{' or ';' or ':'. Abort if a multi-newline is found
- chunk_t *prev = start;
-
- do
- {
- prev = chunk_get_prev_nc(prev);
-
- if ( prev != nullptr
- && chunk_is_newline(prev)
- && prev->nl_count > 1)
- {
- return;
- }
- } while ( chunk_is_not_token(prev, CT_BRACE_OPEN)
- && chunk_is_not_token(prev, CT_BRACE_CLOSE)
- && chunk_is_not_token(prev, CT_SEMICOLON)
- && chunk_is_not_token(prev, CT_CASE_COLON));
-
- if (prev == nullptr)
- {
- return;
- }
- chunk_t *pc = newline_add_between(prev, start);
-
- if (pc == nullptr)
- {
- return;
- }
-
- // Only add an extra line after a semicolon or brace close
- if ( chunk_is_token(prev, CT_SEMICOLON)
- || chunk_is_token(prev, CT_BRACE_CLOSE))
- {
- if ( chunk_is_newline(pc)
- && pc->nl_count < 2)
- {
- double_newline(pc);
- }
- }
-} // newline_case
-
-
-static void newline_case_colon(chunk_t *start)
-{
- LOG_FUNC_ENTRY();
-
- // Scan forwards until a non-comment is found
- chunk_t *pc = start;
-
- do
- {
- pc = chunk_get_next(pc);
- } while (chunk_is_comment(pc));
-
- if ( pc != nullptr
- && !chunk_is_newline(pc))
- {
- newline_add_before(pc);
- }
-} // newline_case_colon
-
-
-static void newline_before_return(chunk_t *start)
-{
- LOG_FUNC_ENTRY();
-
- chunk_t *pc = chunk_get_prev(start);
- chunk_t *nl = pc;
-
- // Skip over single preceding newline
- if (chunk_is_newline(pc))
- {
- // Do we already have a blank line?
- if (nl->nl_count > 1)
- {
- return;
- }
- pc = chunk_get_prev(nl);
- }
-
- // Skip over preceding comments that are not a trailing comment, taking
- // into account that comment blocks may span multiple lines.
- // Trailing comments are considered part of the previous token, not the
- // return statement. They are handled below.
- while ( chunk_is_comment(pc)
- && get_chunk_parent_type(pc) != CT_COMMENT_END)
- {
- pc = chunk_get_prev(pc);
-
- if (!chunk_is_newline(pc))
- {
- return;
- }
- nl = pc;
- pc = chunk_get_prev(pc);
- }
- pc = chunk_get_prev(nl);
-
- // Peek over trailing comment of previous token
- if ( chunk_is_comment(pc)
- && get_chunk_parent_type(pc) == CT_COMMENT_END)
- {
- pc = chunk_get_prev(pc);
- }
-
- // Don't add extra blanks after an opening brace or a case statement
- if ( pc == nullptr
- || ( chunk_is_token(pc, CT_BRACE_OPEN)
- || chunk_is_token(pc, CT_VBRACE_OPEN)
- || chunk_is_token(pc, CT_CASE_COLON)))
- {
- return;
- }
-
- if ( chunk_is_newline(nl)
- && nl->nl_count < 2)
- {
- nl->nl_count++;
- MARK_CHANGE();
- }
-} // newline_before_return
-
-
-static void newline_after_return(chunk_t *start)
-{
- LOG_FUNC_ENTRY();
-
- chunk_t *semi = chunk_get_next_type(start, CT_SEMICOLON, start->level);
- chunk_t *after = chunk_get_next_nblank(semi);
-
- // If we hit a brace or an 'else', then a newline isn't needed
- if ( after == nullptr
- || chunk_is_token(after, CT_BRACE_CLOSE)
- || chunk_is_token(after, CT_VBRACE_CLOSE)
- || chunk_is_token(after, CT_ELSE))
- {
- return;
- }
- chunk_t *pc;
-
- for (pc = chunk_get_next(semi); pc != after; pc = chunk_get_next(pc))
- {
- if (chunk_is_token(pc, CT_NEWLINE))
- {
- if (pc->nl_count < 2)
- {
- double_newline(pc);
- }
- return;
- }
- }
-} // newline_after_return
-
-
-static void newline_iarf_pair(chunk_t *before, chunk_t *after, iarf_e av, bool check_nl_assign_leave_one_liners)
-{
- LOG_FUNC_ENTRY();
-
- LOG_FMT(LNEWLINE, "%s(%d): ", __func__, __LINE__);
- log_func_stack(LNEWLINE, "CallStack:");
-
- if ( before == nullptr
- || after == nullptr
- || chunk_is_token(after, CT_IGNORED))
- {
- return;
- }
-
- if (av & IARF_ADD)
- {
- if ( check_nl_assign_leave_one_liners
- && options::nl_assign_leave_one_liners()
- && after->flags.test(PCF_ONE_LINER))
- {
- log_rule_B("nl_assign_leave_one_liners");
- return;
- }
- chunk_t *nl = newline_add_between(before, after);
- LOG_FMT(LNEWLINE, "%s(%d): newline_add_between '%s' and '%s'\n",
- __func__, __LINE__, before->text(), after->text());
-
- if ( nl != nullptr
- && av == IARF_FORCE
- && nl->nl_count > 1)
- {
- nl->nl_count = 1;
- }
- }
- else if (av & IARF_REMOVE)
- {
- LOG_FMT(LNEWLINE, "%s(%d): newline_remove_between '%s' and '%s'\n",
- __func__, __LINE__, before->text(), after->text());
- newline_del_between(before, after);
- }
-} // newline_iarf_pair
-
-
-void newline_iarf(chunk_t *pc, iarf_e av)
-{
- LOG_FUNC_ENTRY();
-
- LOG_FMT(LNFD, "%s(%d): ", __func__, __LINE__);
- log_func_stack(LNFD, "CallStack:");
- chunk_t *after = chunk_get_next_nnl(pc);
-
- if ( chunk_is_token(pc, CT_FPAREN_OPEN) // Issue #2914
- && get_chunk_parent_type(pc) == CT_FUNC_CALL
- && chunk_is_token(after, CT_COMMENT_CPP)
- && options::donot_add_nl_before_cpp_comment())
- {
- return;
- }
- newline_iarf_pair(pc, after, av);
-} // newline_iarf
-
-
-static void newline_func_multi_line(chunk_t *start)
-{
- LOG_FUNC_ENTRY();
-
- LOG_FMT(LNFD, "%s(%d): called on %zu:%zu '%s' [%s/%s]\n",
- __func__, __LINE__, start->orig_line, start->orig_col,
- start->text(), get_token_name(start->type), get_token_name(get_chunk_parent_type(start)));
-
- bool add_start;
- bool add_args;
- bool add_end;
-
- if ( get_chunk_parent_type(start) == CT_FUNC_DEF
- || get_chunk_parent_type(start) == CT_FUNC_CLASS_DEF)
- {
- log_rule_B("nl_func_def_start_multi_line");
- add_start = options::nl_func_def_start_multi_line();
- log_rule_B("nl_func_def_args_multi_line");
- add_args = options::nl_func_def_args_multi_line();
- log_rule_B("nl_func_def_end_multi_line");
- add_end = options::nl_func_def_end_multi_line();
- }
- else if ( get_chunk_parent_type(start) == CT_FUNC_CALL
- || get_chunk_parent_type(start) == CT_FUNC_CALL_USER)
- {
- log_rule_B("nl_func_call_start_multi_line");
- add_start = options::nl_func_call_start_multi_line();
- log_rule_B("nl_func_call_args_multi_line");
- add_args = options::nl_func_call_args_multi_line();
- log_rule_B("nl_func_call_end_multi_line");
- add_end = options::nl_func_call_end_multi_line();
- }
- else
- {
- log_rule_B("nl_func_decl_start_multi_line");
- add_start = options::nl_func_decl_start_multi_line();
- log_rule_B("nl_func_decl_args_multi_line");
- add_args = options::nl_func_decl_args_multi_line();
- log_rule_B("nl_func_decl_end_multi_line");
- add_end = options::nl_func_decl_end_multi_line();
- }
-
- if ( !add_start
- && !add_args
- && !add_end)
- {
- return;
- }
- chunk_t *pc = chunk_get_next_ncnnl(start);
-
- while ( pc != nullptr
- && pc->level > start->level)
- {
- pc = chunk_get_next_ncnnl(pc);
- }
-
- if ( chunk_is_token(pc, CT_FPAREN_CLOSE)
- && chunk_is_newline_between(start, pc))
- {
- chunk_t *start_next = chunk_get_next_ncnnl(start);
- bool has_leading_closure = ( start_next->parent_type == CT_OC_BLOCK_EXPR
- || start_next->parent_type == CT_CPP_LAMBDA
- || chunk_is_token(start_next, CT_BRACE_OPEN));
-
- chunk_t *prev_end = chunk_get_prev_ncnnl(pc);
- bool has_trailing_closure = ( prev_end->parent_type == CT_OC_BLOCK_EXPR
- || prev_end->parent_type == CT_CPP_LAMBDA
- || chunk_is_token(prev_end, CT_BRACE_OPEN));
-
- if ( add_start
- && !chunk_is_newline(chunk_get_next(start)))
- {
- log_rule_B("nl_func_call_args_multi_line_ignore_closures");
-
- if (options::nl_func_call_args_multi_line_ignore_closures())
- {
- if ( !has_leading_closure
- && !has_trailing_closure)
- {
- newline_iarf(start, IARF_ADD);
- }
- }
- else
- {
- newline_iarf(start, IARF_ADD);
- }
- }
-
- if ( add_end
- && !chunk_is_newline(chunk_get_prev(pc)))
- {
- log_rule_B("nl_func_call_args_multi_line_ignore_closures");
-
- if (options::nl_func_call_args_multi_line_ignore_closures())
- {
- if ( !has_leading_closure
- && !has_trailing_closure)
- {
- newline_iarf(chunk_get_prev(pc), IARF_ADD);
- }
- }
- else
- {
- newline_iarf(chunk_get_prev(pc), IARF_ADD);
- }
- }
-
- if (add_args)
- {
- // process the function in reverse and leave the first comma if the option to leave trailing closure
- // is on. nl_func_call_args_multi_line_ignore_trailing_closure
- for (pc = chunk_get_next_ncnnl(start);
- pc != nullptr && pc->level > start->level;
- pc = chunk_get_next_ncnnl(pc))
- {
- if ( chunk_is_token(pc, CT_COMMA)
- && (pc->level == (start->level + 1)))
- {
- chunk_t *tmp = chunk_get_next(pc);
-
- if (chunk_is_comment(tmp))
- {
- pc = tmp;
- }
-
- if (!chunk_is_newline(chunk_get_next(pc)))
- {
- log_rule_B("nl_func_call_args_multi_line_ignore_closures");
-
- if (options::nl_func_call_args_multi_line_ignore_closures())
- {
- chunk_t *prev_comma = chunk_get_prev_ncnnl(pc);
- chunk_t *after_comma = chunk_get_next_ncnnl(pc);
-
- if (!( ( prev_comma->parent_type == CT_OC_BLOCK_EXPR
- || prev_comma->parent_type == CT_CPP_LAMBDA
- || chunk_is_token(prev_comma, CT_BRACE_OPEN))
- || ( after_comma->parent_type == CT_OC_BLOCK_EXPR
- || after_comma->parent_type == CT_CPP_LAMBDA
- || chunk_is_token(after_comma, CT_BRACE_OPEN))))
- {
- newline_iarf(pc, IARF_ADD);
- }
- }
- else
- {
- newline_iarf(pc, IARF_ADD);
- }
- }
- }
- }
- }
- }
-} // newline_func_multi_line
-
-
-static void newline_template(chunk_t *start)
-{
- LOG_FUNC_ENTRY();
-
- LOG_FMT(LNFD, "%s(%d): called on %zu:%zu '%s' [%s/%s]\n",
- __func__, __LINE__, start->orig_line, start->orig_col,
- start->text(), get_token_name(start->type), get_token_name(get_chunk_parent_type(start)));
-
- log_rule_B("nl_template_start");
- bool add_start = options::nl_template_start();
-
- log_rule_B("nl_template_args");
- bool add_args = options::nl_template_args();
-
- log_rule_B("nl_template_end");
- bool add_end = options::nl_template_end();
-
- if ( !add_start
- && !add_args
- && !add_end)
- {
- return;
- }
- chunk_t *pc = chunk_get_next_ncnnl(start);
-
- while ( pc != nullptr
- && pc->level > start->level)
- {
- pc = chunk_get_next_ncnnl(pc);
- }
-
- if (chunk_is_token(pc, CT_ANGLE_CLOSE))
- {
- if (add_start)
- {
- newline_iarf(start, IARF_ADD);
- }
-
- if (add_end)
- {
- newline_iarf(chunk_get_prev(pc), IARF_ADD);
- }
-
- if (add_args)
- {
- chunk_t *pc_1;
-
- for (pc_1 = chunk_get_next_ncnnl(start);
- pc_1 != nullptr && pc_1->level > start->level;
- pc_1 = chunk_get_next_ncnnl(pc_1))
- {
- if ( chunk_is_token(pc_1, CT_COMMA)
- && (pc_1->level == (start->level + 1)))
- {
- chunk_t *tmp = chunk_get_next(pc_1);
-
- if (chunk_is_comment(tmp))
- {
- pc_1 = tmp;
- }
-
- if (!chunk_is_newline(chunk_get_next(pc_1)))
- {
- newline_iarf(pc_1, IARF_ADD);
- }
- }
- }
- }
- }
-} // newline_template
-
-
-static void newline_func_def_or_call(chunk_t *start)
-{
- LOG_FUNC_ENTRY();
-
- LOG_FMT(LNFD, "%s(%d): called on start->text() is '%s', orig_line is %zu, orig_col is %zu, [%s/%s]\n",
- __func__, __LINE__, start->text(), start->orig_line, start->orig_col,
- get_token_name(start->type), get_token_name(get_chunk_parent_type(start)));
-
- bool is_def = (get_chunk_parent_type(start) == CT_FUNC_DEF)
- || get_chunk_parent_type(start) == CT_FUNC_CLASS_DEF;
- bool is_call = (get_chunk_parent_type(start) == CT_FUNC_CALL)
- || get_chunk_parent_type(start) == CT_FUNC_CALL_USER;
-
- LOG_FMT(LNFD, "%s(%d): is_def is %s, is_call is %s\n",
- __func__, __LINE__, is_def ? "TRUE" : "FALSE", is_call ? "TRUE" : "FALSE");
-
- if (is_call)
- {
- log_rule_B("nl_func_call_paren");
- iarf_e atmp = options::nl_func_call_paren();
-
- if (atmp != IARF_IGNORE)
- {
- chunk_t *prev = chunk_get_prev_ncnnlni(start); // Issue #2279
-
- if (prev != nullptr)
- {
- newline_iarf(prev, atmp);
- }
- }
- chunk_t *pc = chunk_get_next_ncnnl(start);
-
- if (chunk_is_str(pc, ")", 1))
- {
- log_rule_B("nl_func_call_paren_empty");
- atmp = options::nl_func_call_paren_empty();
-
- if (atmp != IARF_IGNORE)
- {
- chunk_t *prev = chunk_get_prev_ncnnlni(start); // Issue #2279
-
- if (prev != nullptr)
- {
- newline_iarf(prev, atmp);
- }
- }
- log_rule_B("nl_func_call_empty");
- atmp = options::nl_func_call_empty();
-
- if (atmp != IARF_IGNORE)
- {
- newline_iarf(start, atmp);
- }
- return;
- }
- }
- else
- {
- log_rule_B("nl_func_def_paren");
- log_rule_B("nl_func_paren");
- iarf_e atmp = is_def ? options::nl_func_def_paren()
- : options::nl_func_paren();
- LOG_FMT(LSPACE, "%s(%d): atmp is %s\n",
- __func__, __LINE__,
- (atmp == IARF_IGNORE) ? "IGNORE" :
- (atmp == IARF_ADD) ? "ADD" :
- (atmp == IARF_REMOVE) ? "REMOVE" : "FORCE");
-
- if (atmp != IARF_IGNORE)
- {
- chunk_t *prev = chunk_get_prev_ncnnlni(start); // Issue #2279
-
- if (prev != nullptr)
- {
- newline_iarf(prev, atmp);
- }
- }
- // Handle break newlines type and function
- chunk_t *prev = chunk_get_prev_ncnnlni(start); // Issue #2279
- prev = skip_template_prev(prev);
- // Don't split up a function variable
- prev = chunk_is_paren_close(prev) ? nullptr : chunk_get_prev_ncnnlni(prev); // Issue #2279
-
- log_rule_B("nl_func_class_scope");
-
- if ( chunk_is_token(prev, CT_DC_MEMBER)
- && (options::nl_func_class_scope() != IARF_IGNORE))
- {
- newline_iarf(chunk_get_prev_ncnnlni(prev), options::nl_func_class_scope()); // Issue #2279
- }
-
- if (chunk_is_not_token(prev, CT_ACCESS_COLON))
- {
- chunk_t *tmp;
-
- if (chunk_is_token(prev, CT_OPERATOR))
- {
- tmp = prev;
- prev = chunk_get_prev_ncnnlni(prev); // Issue #2279
- }
- else
- {
- tmp = start;
- }
-
- if (chunk_is_token(prev, CT_DC_MEMBER))
- {
- log_rule_B("nl_func_scope_name");
-
- if (options::nl_func_scope_name() != IARF_IGNORE)
- {
- newline_iarf(prev, options::nl_func_scope_name());
- }
- }
- const chunk_t *tmp_next = chunk_get_next_ncnnl(prev);
-
- if (chunk_is_not_token(tmp_next, CT_FUNC_CLASS_DEF))
- {
- chunk_t *closing = chunk_skip_to_match(tmp);
- chunk_t *brace = chunk_get_next_ncnnl(closing);
- iarf_e a; // Issue #2561
-
- if ( get_chunk_parent_type(tmp) == CT_FUNC_PROTO
- || get_chunk_parent_type(tmp) == CT_FUNC_CLASS_PROTO)
- {
- // proto
- log_rule_B("nl_func_proto_type_name");
- a = options::nl_func_proto_type_name();
- }
- else
- {
- // def
-
- log_rule_B("nl_func_leave_one_liners");
-
- if ( options::nl_func_leave_one_liners()
- && ( brace == nullptr
- || brace->flags.test(PCF_ONE_LINER))) // Issue #1511 and #3274
- {
- a = IARF_IGNORE;
- }
- else
- {
- log_rule_B("nl_func_type_name");
- a = options::nl_func_type_name();
- }
- }
- log_rule_B("nl_func_type_name_class");
-
- if ( tmp->flags.test(PCF_IN_CLASS)
- && (options::nl_func_type_name_class() != IARF_IGNORE))
- {
- a = options::nl_func_type_name_class();
- }
-
- if ( a != IARF_IGNORE
- && prev != nullptr)
- {
- LOG_FMT(LNFD, "%s(%d): prev->text() '%s', orig_line is %zu, orig_col is %zu, [%s/%s]\n",
- __func__, __LINE__, prev->text(), prev->orig_line, prev->orig_col,
- get_token_name(prev->type),
- get_token_name(get_chunk_parent_type(prev)));
-
- if (chunk_is_token(prev, CT_DESTRUCTOR))
- {
- prev = chunk_get_prev_ncnnlni(prev); // Issue #2279
- }
-
- /*
- * If we are on a '::', step back two tokens
- * TODO: do we also need to check for '.' ?
- */
- while (chunk_is_token(prev, CT_DC_MEMBER))
- {
- prev = chunk_get_prev_ncnnlni(prev); // Issue #2279
- prev = skip_template_prev(prev);
- prev = chunk_get_prev_ncnnlni(prev); // Issue #2279
- }
-
- if ( chunk_is_not_token(prev, CT_BRACE_CLOSE)
- && chunk_is_not_token(prev, CT_VBRACE_CLOSE)
- && chunk_is_not_token(prev, CT_BRACE_OPEN)
- && chunk_is_not_token(prev, CT_SEMICOLON)
- && chunk_is_not_token(prev, CT_ACCESS_COLON)
- // #1008: if we landed on an operator check that it is having
- // a type before it, in order to not apply nl_func_type_name
- // on conversion operators as they don't have a normal
- // return type syntax
- && (chunk_is_not_token(tmp_next, CT_OPERATOR) ? true : chunk_is_type(prev)))
- {
- newline_iarf(prev, a);
- }
- }
- }
- }
- chunk_t *pc = chunk_get_next_ncnnl(start);
-
- if (chunk_is_str(pc, ")", 1))
- {
- log_rule_B("nl_func_def_empty");
- log_rule_B("nl_func_decl_empty");
- atmp = is_def ? options::nl_func_def_empty()
- : options::nl_func_decl_empty();
-
- if (atmp != IARF_IGNORE)
- {
- newline_iarf(start, atmp);
- }
- log_rule_B("nl_func_def_paren_empty");
- log_rule_B("nl_func_paren_empty");
- atmp = is_def ? options::nl_func_def_paren_empty()
- : options::nl_func_paren_empty();
-
- if (atmp != IARF_IGNORE)
- {
- prev = chunk_get_prev_ncnnlni(start); // Issue #2279
-
- if (prev != nullptr)
- {
- newline_iarf(prev, atmp);
- }
- }
- return;
- }
- }
- // Now scan for commas
- size_t comma_count = 0;
- chunk_t *tmp;
- chunk_t *pc;
-
- for (pc = chunk_get_next_ncnnl(start);
- pc != nullptr && pc->level > start->level;
- pc = chunk_get_next_ncnnl(pc))
- {
- if ( chunk_is_token(pc, CT_COMMA)
- && (pc->level == (start->level + 1)))
- {
- comma_count++;
- tmp = chunk_get_next(pc);
-
- if (chunk_is_comment(tmp))
- {
- pc = tmp;
- }
-
- if (is_def)
- {
- log_rule_B("nl_func_def_args");
- newline_iarf(pc, options::nl_func_def_args());
- }
- else if (is_call)
- {
- // Issue #2604
- log_rule_B("nl_func_call_args");
- newline_iarf(pc, options::nl_func_call_args());
- }
- else // get_chunk_parent_type(start) == CT_FUNC_DECL
- {
- log_rule_B("nl_func_decl_args");
- newline_iarf(pc, options::nl_func_decl_args());
- }
- }
- }
-
- log_rule_B("nl_func_def_start");
- log_rule_B("nl_func_decl_start");
- iarf_e as = is_def ? options::nl_func_def_start() : options::nl_func_decl_start();
-
- log_rule_B("nl_func_def_end");
- log_rule_B("nl_func_decl_end");
- iarf_e ae = is_def ? options::nl_func_def_end() : options::nl_func_decl_end();
-
- if (comma_count == 0)
- {
- iarf_e atmp;
- log_rule_B("nl_func_def_start_single");
- log_rule_B("nl_func_decl_start_single");
- atmp = is_def ? options::nl_func_def_start_single() :
- options::nl_func_decl_start_single();
-
- if (atmp != IARF_IGNORE)
- {
- as = atmp;
- }
- log_rule_B("nl_func_def_end_single");
- log_rule_B("nl_func_decl_end_single");
- atmp = is_def ? options::nl_func_def_end_single() :
- options::nl_func_decl_end_single();
-
- if (atmp != IARF_IGNORE)
- {
- ae = atmp;
- }
- }
-
- if (!is_call)
- {
- newline_iarf(start, as);
- }
-
- // and fix up the close parenthesis
- if (chunk_is_token(pc, CT_FPAREN_CLOSE))
- {
- chunk_t *prev = chunk_get_prev_nnl(pc);
-
- if ( chunk_is_not_token(prev, CT_FPAREN_OPEN)
- && !is_call)
- {
- newline_iarf(prev, ae);
- }
- newline_func_multi_line(start);
- }
-} // newline_func_def_or_call
-
-
-static void newline_oc_msg(chunk_t *start)
-{
- LOG_FUNC_ENTRY();
-
- chunk_t *sq_c = chunk_skip_to_match(start);
-
- if (sq_c == nullptr)
- {
- return;
- }
- log_rule_B("nl_oc_msg_leave_one_liner");
-
- if (options::nl_oc_msg_leave_one_liner())
- {
- return;
- }
-
- for (chunk_t *pc = chunk_get_next_ncnnl(start); pc; pc = chunk_get_next_ncnnl(pc))
- {
- if (pc->level <= start->level)
- {
- break;
- }
-
- if (chunk_is_token(pc, CT_OC_MSG_NAME))
- {
- newline_add_before(pc);
- }
- }
-} // newline_oc_msg
-
-
-static bool one_liner_nl_ok(chunk_t *pc)
-{
- LOG_FUNC_ENTRY();
-
- LOG_FMT(LNL1LINE, "%s(%d): check type is %s, parent is %s, flag is %s, orig_line is %zu, orig_col is %zu\n",
- __func__, __LINE__, get_token_name(pc->type), get_token_name(get_chunk_parent_type(pc)),
- pcf_flags_str(pc->flags).c_str(), pc->orig_line, pc->orig_col);
-
- if (!pc->flags.test(PCF_ONE_LINER))
- {
- LOG_FMT(LNL1LINE, "%s(%d): true (not 1-liner), a new line may be added\n", __func__, __LINE__);
- return(true);
- }
- // Step back to find the opening brace
- chunk_t *br_open = pc;
-
- if (chunk_is_closing_brace(br_open))
- {
- br_open = chunk_get_prev_type(br_open,
- chunk_is_token(br_open, CT_BRACE_CLOSE) ? CT_BRACE_OPEN : CT_VBRACE_OPEN,
- br_open->level, scope_e::ALL);
- }
- else
- {
- while ( br_open != nullptr
- && br_open->flags.test(PCF_ONE_LINER)
- && !chunk_is_opening_brace(br_open)
- && !chunk_is_closing_brace(br_open))
- {
- br_open = chunk_get_prev(br_open);
- }
- }
- pc = br_open;
-
- if ( pc != nullptr
- && pc->flags.test(PCF_ONE_LINER)
- && ( chunk_is_token(pc, CT_BRACE_OPEN)
- || chunk_is_token(pc, CT_BRACE_CLOSE)
- || chunk_is_token(pc, CT_VBRACE_OPEN)
- || chunk_is_token(pc, CT_VBRACE_CLOSE)))
- {
- log_rule_B("nl_class_leave_one_liners");
-
- if ( options::nl_class_leave_one_liners()
- && pc->flags.test(PCF_IN_CLASS))
- {
- LOG_FMT(LNL1LINE, "%s(%d): false (class)\n", __func__, __LINE__);
- return(false);
- }
- log_rule_B("nl_assign_leave_one_liners");
-
- if ( options::nl_assign_leave_one_liners()
- && get_chunk_parent_type(pc) == CT_ASSIGN)
- {
- LOG_FMT(LNL1LINE, "%s(%d): false (assign)\n", __func__, __LINE__);
- return(false);
- }
- log_rule_B("nl_enum_leave_one_liners");
-
- if ( options::nl_enum_leave_one_liners()
- && get_chunk_parent_type(pc) == CT_ENUM)
- {
- LOG_FMT(LNL1LINE, "%s(%d): false (enum)\n", __func__, __LINE__);
- return(false);
- }
- log_rule_B("nl_getset_leave_one_liners");
-
- if ( options::nl_getset_leave_one_liners()
- && get_chunk_parent_type(pc) == CT_GETSET)
- {
- LOG_FMT(LNL1LINE, "%s(%d): false (get/set), a new line may NOT be added\n", __func__, __LINE__);
- return(false);
- }
- // Issue #UT-98
- log_rule_B("nl_cs_property_leave_one_liners");
-
- if ( options::nl_cs_property_leave_one_liners()
- && get_chunk_parent_type(pc) == CT_CS_PROPERTY)
- {
- LOG_FMT(LNL1LINE, "%s(%d): false (c# property), a new line may NOT be added\n", __func__, __LINE__);
- return(false);
- }
- log_rule_B("nl_func_leave_one_liners");
-
- if ( options::nl_func_leave_one_liners()
- && ( get_chunk_parent_type(pc) == CT_FUNC_DEF
- || get_chunk_parent_type(pc) == CT_FUNC_CLASS_DEF))
- {
- LOG_FMT(LNL1LINE, "%s(%d): false (func def)\n", __func__, __LINE__);
- return(false);
- }
- log_rule_B("nl_func_leave_one_liners");
-
- if ( options::nl_func_leave_one_liners()
- && get_chunk_parent_type(pc) == CT_OC_MSG_DECL)
- {
- LOG_FMT(LNL1LINE, "%s(%d): false (method def)\n", __func__, __LINE__);
- return(false);
- }
- log_rule_B("nl_cpp_lambda_leave_one_liners");
-
- if ( options::nl_cpp_lambda_leave_one_liners()
- && ((get_chunk_parent_type(pc) == CT_CPP_LAMBDA)))
- {
- LOG_FMT(LNL1LINE, "%s(%d): false (lambda)\n", __func__, __LINE__);
- return(false);
- }
- log_rule_B("nl_oc_msg_leave_one_liner");
-
- if ( options::nl_oc_msg_leave_one_liner()
- && pc->flags.test(PCF_IN_OC_MSG))
- {
- LOG_FMT(LNL1LINE, "%s(%d): false (message)\n", __func__, __LINE__);
- return(false);
- }
- log_rule_B("nl_if_leave_one_liners");
-
- if ( options::nl_if_leave_one_liners()
- && ( get_chunk_parent_type(pc) == CT_IF
- || get_chunk_parent_type(pc) == CT_ELSEIF
- || get_chunk_parent_type(pc) == CT_ELSE))
- {
- LOG_FMT(LNL1LINE, "%s(%d): false (if/else)\n", __func__, __LINE__);
- return(false);
- }
- log_rule_B("nl_while_leave_one_liners");
-
- if ( options::nl_while_leave_one_liners()
- && get_chunk_parent_type(pc) == CT_WHILE)
- {
- LOG_FMT(LNL1LINE, "%s(%d): false (while)\n", __func__, __LINE__);
- return(false);
- }
- log_rule_B("nl_do_leave_one_liners");
-
- if ( options::nl_do_leave_one_liners()
- && get_chunk_parent_type(pc) == CT_DO)
- {
- LOG_FMT(LNL1LINE, "%s(%d): false (do)\n", __func__, __LINE__);
- return(false);
- }
- log_rule_B("nl_for_leave_one_liners");
-
- if ( options::nl_for_leave_one_liners()
- && get_chunk_parent_type(pc) == CT_FOR)
- {
- LOG_FMT(LNL1LINE, "%s(%d): false (for)\n", __func__, __LINE__);
- return(false);
- }
- log_rule_B("nl_namespace_two_to_one_liner - 2");
-
- if ( options::nl_namespace_two_to_one_liner()
- && get_chunk_parent_type(pc) == CT_NAMESPACE)
- {
- LOG_FMT(LNL1LINE, "%s(%d): false (namespace)\n", __func__, __LINE__);
- return(false);
- }
- }
- LOG_FMT(LNL1LINE, "%s(%d): true, a new line may be added\n", __func__, __LINE__);
- return(true);
-} // one_liner_nl_ok
-
-
-void undo_one_liner(chunk_t *pc)
-{
- LOG_FUNC_ENTRY();
-
- if ( pc != nullptr
- && pc->flags.test(PCF_ONE_LINER))
- {
- LOG_FMT(LNL1LINE, "%s(%d): pc->text() '%s', orig_line is %zu, orig_col is %zu",
- __func__, __LINE__, pc->text(), pc->orig_line, pc->orig_col);
- chunk_flags_clr(pc, PCF_ONE_LINER);
-
- // scan backward
- LOG_FMT(LNL1LINE, "%s(%d): scan backward\n", __func__, __LINE__);
- chunk_t *tmp = pc;
-
- while ((tmp = chunk_get_prev(tmp)) != nullptr)
- {
- if (!tmp->flags.test(PCF_ONE_LINER))
- {
- LOG_FMT(LNL1LINE, "%s(%d): tmp->text() '%s', orig_line is %zu, orig_col is %zu, --> break\n",
- __func__, __LINE__, tmp->text(), tmp->orig_line, tmp->orig_col);
- break;
- }
- LOG_FMT(LNL1LINE, "%s(%d): clear for tmp->text() '%s', orig_line is %zu, orig_col is %zu",
- __func__, __LINE__, tmp->text(), tmp->orig_line, tmp->orig_col);
- chunk_flags_clr(tmp, PCF_ONE_LINER);
- }
- // scan forward
- LOG_FMT(LNL1LINE, "%s(%d): scan forward\n", __func__, __LINE__);
- tmp = pc;
- LOG_FMT(LNL1LINE, "%s(%d): - \n", __func__, __LINE__);
-
- while ((tmp = chunk_get_next(tmp)) != nullptr)
- {
- if (!tmp->flags.test(PCF_ONE_LINER))
- {
- LOG_FMT(LNL1LINE, "%s(%d): tmp->text() '%s', orig_line is %zu, orig_col is %zu, --> break\n",
- __func__, __LINE__, tmp->text(), tmp->orig_line, tmp->orig_col);
- break;
- }
- LOG_FMT(LNL1LINE, "%s(%d): clear for tmp->text() '%s', orig_line is %zu, orig_col is %zu",
- __func__, __LINE__, tmp->text(), tmp->orig_line, tmp->orig_col);
- chunk_flags_clr(tmp, PCF_ONE_LINER);
- }
- LOG_FMT(LNL1LINE, "\n");
- }
-} // undo_one_liner
-
-
-static void nl_create_one_liner(chunk_t *vbrace_open)
-{
- LOG_FUNC_ENTRY();
-
- // See if we get a newline between the next text and the vbrace_close
- chunk_t *tmp = chunk_get_next_ncnnl(vbrace_open);
- chunk_t *first = tmp;
-
- if ( first == nullptr
- || get_token_pattern_class(first->type) != pattern_class_e::NONE)
- {
- return;
- }
- size_t nl_total = 0;
-
- while (chunk_is_not_token(tmp, CT_VBRACE_CLOSE))
- {
- if (chunk_is_newline(tmp))
- {
- nl_total += tmp->nl_count;
-
- if (nl_total > 1)
- {
- return;
- }
- }
- tmp = chunk_get_next(tmp);
- }
-
- if ( tmp != nullptr
- && first != nullptr)
- {
- newline_del_between(vbrace_open, first);
- }
-} // nl_create_one_liner
-
-
-static void nl_create_list_liner(chunk_t *brace_open)
-{
- LOG_FUNC_ENTRY();
-
- // See if we get a newline between the next text and the vbrace_close
- if (brace_open == nullptr)
- {
- return;
- }
- chunk_t *closing = chunk_get_next_type(brace_open, CT_BRACE_CLOSE, brace_open->level);
- chunk_t *tmp = brace_open;
-
- do
- {
- if (chunk_is_token(tmp, CT_COMMA))
- {
- return;
- }
- tmp = chunk_get_next(tmp);
- } while (tmp != closing);
-
- newline_del_between(brace_open, closing);
-} // nl_create_list_liner
-
-
-void newlines_remove_newlines(void)
-{
- LOG_FUNC_ENTRY();
-
- LOG_FMT(LBLANK, "%s(%d):\n", __func__, __LINE__);
- chunk_t *pc = chunk_get_head();
-
- if (!chunk_is_newline(pc))
- {
- pc = chunk_get_next_nl(pc);
- }
- chunk_t *next;
- chunk_t *prev;
-
- while (pc != nullptr)
- {
- // Remove all newlines not in preproc
- if (!pc->flags.test(PCF_IN_PREPROC))
- {
- next = pc->next;
- prev = pc->prev;
- newline_iarf(pc, IARF_REMOVE);
-
- if (next == chunk_get_head())
- {
- pc = next;
- continue;
- }
- else if ( prev != nullptr
- && !chunk_is_newline(prev->next))
- {
- pc = prev;
- }
- }
- pc = chunk_get_next_nl(pc);
- }
-} // newlines_remove_newlines
-
-
-void newlines_remove_disallowed()
-{
- LOG_FUNC_ENTRY();
-
- chunk_t *pc = chunk_get_head();
- chunk_t *next;
-
- while ((pc = chunk_get_next_nl(pc)) != nullptr)
- {
- LOG_FMT(LBLANKD, "%s(%d): orig_line is %zu, orig_col is %zu, <Newline>, nl is %zu\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->nl_count);
-
- next = chunk_get_next(pc);
-
- if ( next != nullptr
- && !chunk_is_token(next, CT_NEWLINE)
- && !can_increase_nl(pc))
- {
- LOG_FMT(LBLANKD, "%s(%d): force to 1 orig_line is %zu, orig_col is %zu\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col);
-
- if (pc->nl_count != 1)
- {
- pc->nl_count = 1;
- MARK_CHANGE();
- }
- }
- }
-} // newlines_remove_disallowed
-
-
-void newlines_cleanup_angles()
-{
- // Issue #1167
- LOG_FUNC_ENTRY();
-
- for (chunk_t *pc = chunk_get_head(); pc != nullptr; pc = chunk_get_next_ncnnl(pc))
- {
- char copy[1000];
- LOG_FMT(LBLANK, "%s(%d): orig_line is %zu, orig_col is %zu, text() is '%s'\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->elided_text(copy));
-
- if (chunk_is_token(pc, CT_ANGLE_OPEN))
- {
- newline_template(pc);
- }
- }
-} // newlines_cleanup_angles
-
-
-void newlines_cleanup_braces(bool first)
-{
- LOG_FUNC_ENTRY();
-
- // Get the first token that's not an empty line:
- chunk_t *pc;
-
- if (chunk_is_newline(pc = chunk_get_head()))
- {
- pc = chunk_get_next_ncnnl(pc);
- }
-
- for ( ; pc != nullptr; pc = chunk_get_next_ncnnl(pc))
- {
- char copy[1000];
- LOG_FMT(LBLANK, "%s(%d): orig_line is %zu, orig_col is %zu, text() is '%s'\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->elided_text(copy));
-
- if ( chunk_is_token(pc, CT_IF)
- || chunk_is_token(pc, CT_CONSTEXPR))
- {
- log_rule_B("nl_if_brace");
- newlines_if_for_while_switch(pc, options::nl_if_brace());
- }
- else if (chunk_is_token(pc, CT_ELSEIF))
- {
- log_rule_B("nl_elseif_brace");
- iarf_e arg = options::nl_elseif_brace();
- log_rule_B("nl_if_brace");
- newlines_if_for_while_switch(
- pc, (arg != IARF_IGNORE) ? arg : options::nl_if_brace());
- }
- else if (chunk_is_token(pc, CT_FOR))
- {
- log_rule_B("nl_for_brace");
- newlines_if_for_while_switch(pc, options::nl_for_brace());
- }
- else if (chunk_is_token(pc, CT_CATCH))
- {
- log_rule_B("nl_oc_brace_catch");
-
- if ( language_is_set(LANG_OC)
- && (pc->str[0] == '@')
- && (options::nl_oc_brace_catch() != IARF_IGNORE))
- {
- newlines_cuddle_uncuddle(pc, options::nl_oc_brace_catch());
- }
- else
- {
- log_rule_B("nl_brace_catch");
- newlines_cuddle_uncuddle(pc, options::nl_brace_catch());
- }
- chunk_t *next = chunk_get_next_ncnnl(pc);
-
- if (chunk_is_token(next, CT_BRACE_OPEN))
- {
- log_rule_B("nl_oc_catch_brace");
-
- if ( language_is_set(LANG_OC)
- && (options::nl_oc_catch_brace() != IARF_IGNORE))
- {
- log_rule_B("nl_oc_catch_brace");
- newlines_do_else(pc, options::nl_oc_catch_brace());
- }
- else
- {
- log_rule_B("nl_catch_brace");
- newlines_do_else(pc, options::nl_catch_brace());
- }
- }
- else
- {
- log_rule_B("nl_oc_catch_brace");
-
- if ( language_is_set(LANG_OC)
- && (options::nl_oc_catch_brace() != IARF_IGNORE))
- {
- newlines_if_for_while_switch(pc, options::nl_oc_catch_brace());
- }
- else
- {
- log_rule_B("nl_catch_brace");
- newlines_if_for_while_switch(pc, options::nl_catch_brace());
- }
- }
- }
- else if (chunk_is_token(pc, CT_WHILE))
- {
- log_rule_B("nl_while_brace");
- newlines_if_for_while_switch(pc, options::nl_while_brace());
- }
- else if (chunk_is_token(pc, CT_USING_STMT))
- {
- log_rule_B("nl_using_brace");
- newlines_if_for_while_switch(pc, options::nl_using_brace());
- }
- else if (chunk_is_token(pc, CT_D_SCOPE_IF))
- {
- log_rule_B("nl_scope_brace");
- newlines_if_for_while_switch(pc, options::nl_scope_brace());
- }
- else if (chunk_is_token(pc, CT_UNITTEST))
- {
- log_rule_B("nl_unittest_brace");
- newlines_do_else(pc, options::nl_unittest_brace());
- }
- else if (chunk_is_token(pc, CT_D_VERSION_IF))
- {
- log_rule_B("nl_version_brace");
- newlines_if_for_while_switch(pc, options::nl_version_brace());
- }
- else if (chunk_is_token(pc, CT_SWITCH))
- {
- log_rule_B("nl_switch_brace");
- newlines_if_for_while_switch(pc, options::nl_switch_brace());
- }
- else if (chunk_is_token(pc, CT_SYNCHRONIZED))
- {
- log_rule_B("nl_synchronized_brace");
- newlines_if_for_while_switch(pc, options::nl_synchronized_brace());
- }
- else if (chunk_is_token(pc, CT_DO))
- {
- log_rule_B("nl_do_brace");
- newlines_do_else(pc, options::nl_do_brace());
- }
- else if (chunk_is_token(pc, CT_ELSE))
- {
- log_rule_B("nl_brace_else");
- newlines_cuddle_uncuddle(pc, options::nl_brace_else());
- chunk_t *next = chunk_get_next_ncnnl(pc);
-
- if (chunk_is_token(next, CT_ELSEIF))
- {
- log_rule_B("nl_else_if");
- newline_iarf_pair(pc, next, options::nl_else_if());
- }
- log_rule_B("nl_else_brace");
- newlines_do_else(pc, options::nl_else_brace());
- }
- else if (chunk_is_token(pc, CT_TRY))
- {
- log_rule_B("nl_try_brace");
- newlines_do_else(pc, options::nl_try_brace());
- // Issue #1734
- chunk_t *po = chunk_get_next_ncnnl(pc);
- flag_parens(po, PCF_IN_TRY_BLOCK, po->type, CT_NONE, false);
- }
- else if (chunk_is_token(pc, CT_GETSET))
- {
- log_rule_B("nl_getset_brace");
- newlines_do_else(pc, options::nl_getset_brace());
- }
- else if (chunk_is_token(pc, CT_FINALLY))
- {
- log_rule_B("nl_brace_finally");
- newlines_cuddle_uncuddle(pc, options::nl_brace_finally());
- log_rule_B("nl_finally_brace");
- newlines_do_else(pc, options::nl_finally_brace());
- }
- else if (chunk_is_token(pc, CT_WHILE_OF_DO))
- {
- log_rule_B("nl_brace_while");
- newlines_cuddle_uncuddle(pc, options::nl_brace_while());
- }
- else if (chunk_is_token(pc, CT_BRACE_OPEN))
- {
- switch (get_chunk_parent_type(pc))
- {
- case CT_DOUBLE_BRACE:
- {
- log_rule_B("nl_paren_dbrace_open");
-
- if (options::nl_paren_dbrace_open() != IARF_IGNORE)
- {
- chunk_t *prev = chunk_get_prev_ncnnlni(pc, scope_e::PREPROC); // Issue #2279
-
- if (chunk_is_paren_close(prev))
- {
- log_rule_B("nl_paren_dbrace_open");
- newline_iarf_pair(prev, pc, options::nl_paren_dbrace_open());
- }
- }
- break;
- }
-
- case CT_ENUM:
- {
- log_rule_B("nl_enum_own_lines");
-
- if (options::nl_enum_own_lines() != IARF_IGNORE)
- {
- newlines_enum_entries(pc, options::nl_enum_own_lines());
- }
- log_rule_B("nl_ds_struct_enum_cmt");
-
- if (options::nl_ds_struct_enum_cmt())
- {
- newlines_double_space_struct_enum_union(pc);
- }
- break;
- }
-
- case CT_STRUCT:
- case CT_UNION:
- {
- log_rule_B("nl_ds_struct_enum_cmt");
-
- if (options::nl_ds_struct_enum_cmt())
- {
- newlines_double_space_struct_enum_union(pc);
- }
- break;
- }
-
- case CT_CLASS:
- {
- if (pc->level == pc->brace_level)
- {
- log_rule_B("nl_class_brace");
- newlines_do_else(chunk_get_prev_nnl(pc), options::nl_class_brace());
- }
- break;
- }
-
- case CT_OC_CLASS:
- {
- if (pc->level == pc->brace_level)
- {
- chunk_t *tmp = nullptr;
-
- // Request #126
- // introduce two new options
- // look back if we have a @interface or a @implementation
- for (tmp = chunk_get_prev(pc); tmp != nullptr; tmp = chunk_get_prev(tmp))
- {
- LOG_FMT(LBLANK, "%s(%d): orig_line is %zu, orig_col is %zu, text() is '%s'\n",
- __func__, __LINE__, tmp->orig_line, tmp->orig_col, tmp->text());
-
- if ( chunk_is_token(tmp, CT_OC_INTF)
- || chunk_is_token(tmp, CT_OC_IMPL))
- {
- LOG_FMT(LBLANK, "%s(%d): orig_line is %zu, orig_col is %zu, may be remove/force newline before {\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col);
-
- if (chunk_is_token(tmp, CT_OC_INTF))
- {
- log_rule_B("nl_oc_interface_brace");
- newlines_do_else(chunk_get_prev_nnl(pc), options::nl_oc_interface_brace());
- }
- else
- {
- log_rule_B("nl_oc_implementation_brace");
- newlines_do_else(chunk_get_prev_nnl(pc), options::nl_oc_implementation_brace());
- }
- break;
- }
- }
- }
- break;
- }
-
- case CT_BRACED_INIT_LIST:
- {
- // Issue #1052
- log_rule_B("nl_create_list_one_liner");
-
- if (options::nl_create_list_one_liner())
- {
- nl_create_list_liner(pc);
- break;
- }
- chunk_t *prev = chunk_get_prev_nnl(pc);
-
- if ( prev != nullptr
- && ( prev->type == CT_TYPE
- || prev->type == CT_WORD
- || prev->parent_type == CT_TEMPLATE
- || prev->parent_type == CT_DECLTYPE))
- {
- log_rule_B("nl_type_brace_init_lst");
- newline_iarf_pair(prev, pc, options::nl_type_brace_init_lst(), true);
- }
- break;
- }
-
- case CT_OC_BLOCK_EXPR:
- {
- // issue # 477
- log_rule_B("nl_oc_block_brace");
- newline_iarf_pair(chunk_get_prev(pc), pc, options::nl_oc_block_brace());
- break;
- }
-
- case CT_FUNC_CLASS_DEF: // Issue #2343
- {
- if (!one_liner_nl_ok(pc))
- {
- LOG_FMT(LNL1LINE, "a new line may NOT be added\n");
- // no change - preserve one liner body
- }
- else
- {
- log_rule_B("nl_before_opening_brace_func_class_def");
-
- if (options::nl_before_opening_brace_func_class_def() != IARF_IGNORE)
- {
- newline_iarf_pair(chunk_get_prev(pc), pc, options::nl_before_opening_brace_func_class_def());
- }
- }
- }
-
- default:
- {
- break;
- }
- } // switch
-
- log_rule_B("nl_brace_brace");
-
- if (options::nl_brace_brace() != IARF_IGNORE)
- {
- chunk_t *next = chunk_get_next_nc(pc, scope_e::PREPROC);
-
- if (chunk_is_token(next, CT_BRACE_OPEN))
- {
- newline_iarf_pair(pc, next, options::nl_brace_brace());
- }
- }
- chunk_t *next = chunk_get_next_nnl(pc);
-
- if (next == nullptr)
- {
- // do nothing
- }
- else if (chunk_is_token(next, CT_BRACE_CLOSE))
- {
- // TODO: add an option to split open empty statements? { };
- }
- else if (chunk_is_token(next, CT_BRACE_OPEN))
- {
- // already handled
- }
- else
- {
- next = chunk_get_next_ncnnl(pc);
-
- // Handle unnamed temporary direct-list-initialization
- if (get_chunk_parent_type(pc) == CT_BRACED_INIT_LIST)
- {
- log_rule_B("nl_type_brace_init_lst_open");
- newline_iarf_pair(pc, chunk_get_next_nnl(pc),
- options::nl_type_brace_init_lst_open(), true);
- }
- // Handle nl_after_brace_open
- else if ( ( get_chunk_parent_type(pc) == CT_CPP_LAMBDA
- || pc->level == pc->brace_level)
- && options::nl_after_brace_open())
- {
- log_rule_B("nl_after_brace_open");
-
- if (!one_liner_nl_ok(pc))
- {
- LOG_FMT(LNL1LINE, "a new line may NOT be added (nl_after_brace_open)\n");
- // no change - preserve one liner body
- }
- else if ( pc->flags.test(PCF_IN_ARRAY_ASSIGN)
- || pc->flags.test(PCF_IN_PREPROC))
- {
- // no change - don't break up array assignments or preprocessors
- }
- else
- {
- // Step back from next to the first non-newline item
- chunk_t *tmp = chunk_get_prev(next);
-
- while (tmp != pc)
- {
- if (chunk_is_comment(tmp))
- {
- log_rule_B("nl_after_brace_open_cmt");
-
- if ( !options::nl_after_brace_open_cmt()
- && chunk_is_not_token(tmp, CT_COMMENT_MULTI))
- {
- break;
- }
- }
- tmp = chunk_get_prev(tmp);
- }
- // Add the newline
- newline_iarf(tmp, IARF_ADD);
- }
- }
- }
- // braced-init-list is more like a function call with arguments,
- // than curly braces that determine a structure of a source code,
- // so, don't add a newline before a closing brace. Issue #1405.
- log_rule_B("nl_type_brace_init_lst_open");
- log_rule_B("nl_type_brace_init_lst_close");
-
- if (!( get_chunk_parent_type(pc) == CT_BRACED_INIT_LIST
- && options::nl_type_brace_init_lst_open() == IARF_IGNORE
- && options::nl_type_brace_init_lst_close() == IARF_IGNORE))
- {
- newlines_brace_pair(pc);
- }
-
- // Handle nl_before_brace_open
- if ( chunk_is_token(pc, CT_BRACE_OPEN)
- && pc->level == pc->brace_level
- && options::nl_before_brace_open())
- {
- log_rule_B("nl_before_brace_open");
-
- if (!one_liner_nl_ok(pc))
- {
- LOG_FMT(LNL1LINE, "a new line may NOT be added (nl_before_brace_open)\n");
- // no change - preserve one liner body
- }
- else if ( pc->flags.test(PCF_IN_PREPROC)
- || pc->flags.test(PCF_IN_ARRAY_ASSIGN))
- {
- // no change - don't break up array assignments or preprocessors
- }
- else
- {
- // Step back to previous non-newline item
- chunk_t *tmp = chunk_get_prev(pc);
-
- if (!chunk_is_token(tmp, CT_NEWLINE))
- {
- newline_iarf(tmp, IARF_ADD);
- }
- }
- }
- }
- else if (chunk_is_token(pc, CT_BRACE_CLOSE))
- {
- // newline between a close brace and x
- log_rule_B("nl_brace_brace");
-
- if (options::nl_brace_brace() != IARF_IGNORE)
- {
- chunk_t *next = chunk_get_next_nc(pc, scope_e::PREPROC);
-
- if (chunk_is_token(next, CT_BRACE_CLOSE))
- {
- log_rule_B("nl_brace_brace");
- newline_iarf_pair(pc, next, options::nl_brace_brace());
- }
- }
- log_rule_B("nl_brace_square");
-
- if (options::nl_brace_square() != IARF_IGNORE)
- {
- chunk_t *next = chunk_get_next_nc(pc, scope_e::PREPROC);
-
- if (chunk_is_token(next, CT_SQUARE_CLOSE))
- {
- log_rule_B("nl_brace_square");
- newline_iarf_pair(pc, next, options::nl_brace_square());
- }
- }
- log_rule_B("nl_brace_fparen");
-
- if (options::nl_brace_fparen() != IARF_IGNORE)
- {
- chunk_t *next = chunk_get_next_nc(pc, scope_e::PREPROC);
-
- log_rule_B("nl_brace_fparen");
-
- if ( chunk_is_token(next, CT_NEWLINE)
- && (options::nl_brace_fparen() == IARF_REMOVE))
- {
- next = chunk_get_next_nc(next, scope_e::PREPROC); // Issue #1000
- }
-
- if (chunk_is_token(next, CT_FPAREN_CLOSE))
- {
- log_rule_B("nl_brace_fparen");
- newline_iarf_pair(pc, next, options::nl_brace_fparen());
- }
- }
- // newline before a close brace
- log_rule_B("nl_type_brace_init_lst_close");
-
- if ( get_chunk_parent_type(pc) == CT_BRACED_INIT_LIST
- && options::nl_type_brace_init_lst_close() != IARF_IGNORE)
- {
- // Handle unnamed temporary direct-list-initialization
- newline_iarf_pair(chunk_get_prev_nnl(pc), pc,
- options::nl_type_brace_init_lst_close(), true);
- }
- // blanks before a close brace
- log_rule_B("eat_blanks_before_close_brace");
-
- if (options::eat_blanks_before_close_brace())
- {
- // Limit the newlines before the close brace to 1
- chunk_t *prev = chunk_get_prev(pc);
-
- if (chunk_is_newline(prev))
- {
- log_rule_B("nl_inside_namespace");
- log_rule_B("nl_inside_empty_func");
-
- if ( options::nl_inside_empty_func() > 0
- && chunk_is_token(chunk_get_prev_nnl(pc), CT_BRACE_OPEN)
- && ( get_chunk_parent_type(pc) == CT_FUNC_CLASS_DEF
- || get_chunk_parent_type(pc) == CT_FUNC_DEF))
- {
- blank_line_set(prev, options::nl_inside_empty_func);
- }
- else if ( options::nl_inside_namespace() > 0
- && get_chunk_parent_type(pc) == CT_NAMESPACE)
- {
- blank_line_set(prev, options::nl_inside_namespace);
- }
- else if (prev->nl_count != 1)
- {
- prev->nl_count = 1;
- LOG_FMT(LBLANKD, "%s(%d): eat_blanks_before_close_brace %zu\n",
- __func__, __LINE__, prev->orig_line);
- MARK_CHANGE();
- }
- }
- }
- else if ( options::nl_ds_struct_enum_close_brace()
- && ( get_chunk_parent_type(pc) == CT_ENUM
- || get_chunk_parent_type(pc) == CT_STRUCT
- || get_chunk_parent_type(pc) == CT_UNION))
- {
- log_rule_B("nl_ds_struct_enum_close_brace");
-
- if (!pc->flags.test(PCF_ONE_LINER))
- {
- // Make sure the brace is preceded by two newlines
- chunk_t *prev = chunk_get_prev(pc);
-
- if (!chunk_is_newline(prev))
- {
- prev = newline_add_before(pc);
- }
-
- if (prev->nl_count < 2)
- {
- double_newline(prev);
- }
- }
- }
- // Force a newline after a close brace
- log_rule_B("nl_brace_struct_var");
-
- if ( (options::nl_brace_struct_var() != IARF_IGNORE)
- && ( get_chunk_parent_type(pc) == CT_STRUCT
- || get_chunk_parent_type(pc) == CT_ENUM
- || get_chunk_parent_type(pc) == CT_UNION))
- {
- chunk_t *next = chunk_get_next_ncnnl(pc, scope_e::PREPROC);
-
- if ( chunk_is_not_token(next, CT_SEMICOLON)
- && chunk_is_not_token(next, CT_COMMA))
- {
- log_rule_B("nl_brace_struct_var");
- newline_iarf(pc, options::nl_brace_struct_var());
- }
- }
- else if ( get_chunk_parent_type(pc) != CT_OC_AT
- && get_chunk_parent_type(pc) != CT_BRACED_INIT_LIST
- && ( options::nl_after_brace_close()
- || get_chunk_parent_type(pc) == CT_FUNC_CLASS_DEF
- || get_chunk_parent_type(pc) == CT_FUNC_DEF
- || get_chunk_parent_type(pc) == CT_OC_MSG_DECL))
- {
- log_rule_B("nl_after_brace_close");
- chunk_t *next = chunk_get_next(pc);
-
- if ( chunk_is_not_token(next, CT_SEMICOLON)
- && chunk_is_not_token(next, CT_COMMA)
- && chunk_is_not_token(next, CT_SPAREN_CLOSE) // Issue #664
- && chunk_is_not_token(next, CT_SQUARE_CLOSE)
- && chunk_is_not_token(next, CT_FPAREN_CLOSE)
- && chunk_is_not_token(next, CT_PAREN_CLOSE)
- && chunk_is_not_token(next, CT_WHILE_OF_DO)
- && chunk_is_not_token(next, CT_VBRACE_CLOSE) // Issue #666
- && ( chunk_is_not_token(next, CT_BRACE_CLOSE)
- || !next->flags.test(PCF_ONE_LINER)) // #1258
- && !pc->flags.test(PCF_IN_ARRAY_ASSIGN)
- && !pc->flags.test(PCF_IN_TYPEDEF)
- && !chunk_is_newline(next)
- && !chunk_is_comment(next))
- {
- // #1258
- // dont add newline between two consecutive braces closes, if the second is a part of one liner.
- newline_end_newline(pc);
- }
- }
- else if (get_chunk_parent_type(pc) == CT_NAMESPACE)
- {
- log_rule_B("nl_after_namespace");
-
- if (options::nl_after_namespace() > 0)
- {
- chunk_t *next = chunk_get_next_ncnnl(pc, scope_e::PREPROC);
-
- if (next != nullptr)
- {
- newline_add_before(next);
- // newline_iarf(next, IARF_ADD);
- }
- }
- }
- }
- else if (chunk_is_token(pc, CT_VBRACE_OPEN))
- {
- log_rule_B("nl_after_vbrace_open");
- log_rule_B("nl_after_vbrace_open_empty");
-
- if ( options::nl_after_vbrace_open()
- || options::nl_after_vbrace_open_empty())
- {
- chunk_t *next = chunk_get_next(pc, scope_e::PREPROC);
- bool add_it;
-
- if (chunk_is_semicolon(next))
- {
- log_rule_B("nl_after_vbrace_open_empty");
- add_it = options::nl_after_vbrace_open_empty();
- }
- else
- {
- log_rule_B("nl_after_vbrace_open");
- add_it = ( options::nl_after_vbrace_open()
- && chunk_is_not_token(next, CT_VBRACE_CLOSE)
- && !chunk_is_comment(next)
- && !chunk_is_newline(next));
- }
-
- if (add_it)
- {
- newline_iarf(pc, IARF_ADD);
- }
- }
- log_rule_B("nl_create_if_one_liner");
- log_rule_B("nl_create_for_one_liner");
- log_rule_B("nl_create_while_one_liner");
-
- if ( ( ( get_chunk_parent_type(pc) == CT_IF
- || get_chunk_parent_type(pc) == CT_ELSEIF
- || get_chunk_parent_type(pc) == CT_ELSE)
- && options::nl_create_if_one_liner())
- || ( get_chunk_parent_type(pc) == CT_FOR
- && options::nl_create_for_one_liner())
- || ( get_chunk_parent_type(pc) == CT_WHILE
- && options::nl_create_while_one_liner()))
- {
- nl_create_one_liner(pc);
- }
- log_rule_B("nl_split_if_one_liner");
- log_rule_B("nl_split_for_one_liner");
- log_rule_B("nl_split_while_one_liner");
-
- if ( ( ( get_chunk_parent_type(pc) == CT_IF
- || get_chunk_parent_type(pc) == CT_ELSEIF
- || get_chunk_parent_type(pc) == CT_ELSE)
- && options::nl_split_if_one_liner())
- || ( get_chunk_parent_type(pc) == CT_FOR
- && options::nl_split_for_one_liner())
- || ( get_chunk_parent_type(pc) == CT_WHILE
- && options::nl_split_while_one_liner()))
- {
- if (pc->flags.test(PCF_ONE_LINER))
- {
- // split one-liner
- chunk_t *end = chunk_get_next(chunk_get_next_type(pc->next, CT_SEMICOLON, -1));
- // Scan for clear flag
- LOG_FMT(LNEWLINE, "(%d) ", __LINE__);
- LOG_FMT(LNEWLINE, "\n");
-
- for (chunk_t *temp = pc; temp != end; temp = chunk_get_next(temp))
- {
- LOG_FMT(LNEWLINE, "%s(%d): text() is '%s', type is %s, level is %zu\n",
- __func__, __LINE__, temp->text(), get_token_name(temp->type), temp->level);
- // produces much more log output. Use it only debugging purpose
- //log_pcf_flags(LNEWLINE, temp->flags);
- chunk_flags_clr(temp, PCF_ONE_LINER);
- }
-
- // split
- newline_add_between(pc, pc->next);
- }
- }
- }
- else if (chunk_is_token(pc, CT_VBRACE_CLOSE))
- {
- log_rule_B("nl_after_vbrace_close");
-
- if (options::nl_after_vbrace_close())
- {
- if (!chunk_is_newline(chunk_get_next_nc(pc)))
- {
- newline_iarf(pc, IARF_ADD);
- }
- }
- }
- else if ( chunk_is_token(pc, CT_SQUARE_OPEN)
- && get_chunk_parent_type(pc) == CT_OC_MSG)
- {
- log_rule_B("nl_oc_msg_args");
-
- if (options::nl_oc_msg_args())
- {
- newline_oc_msg(pc);
- }
- }
- else if (chunk_is_token(pc, CT_STRUCT))
- {
- log_rule_B("nl_struct_brace");
- newlines_struct_union(pc, options::nl_struct_brace(), true);
- }
- else if (chunk_is_token(pc, CT_UNION))
- {
- log_rule_B("nl_union_brace");
- newlines_struct_union(pc, options::nl_union_brace(), true);
- }
- else if (chunk_is_token(pc, CT_ENUM))
- {
- newlines_enum(pc);
- }
- else if (chunk_is_token(pc, CT_CASE))
- {
- // Note: 'default' also maps to CT_CASE
- log_rule_B("nl_before_case");
-
- if (options::nl_before_case())
- {
- newline_case(pc);
- }
- }
- else if (chunk_is_token(pc, CT_THROW))
- {
- chunk_t *prev = chunk_get_prev(pc);
-
- if ( chunk_is_token(prev, CT_PAREN_CLOSE)
- || chunk_is_token(prev, CT_FPAREN_CLOSE)) // Issue #1122
- {
- log_rule_B("nl_before_throw");
- newline_iarf(chunk_get_prev_ncnnlni(pc), options::nl_before_throw()); // Issue #2279
- }
- }
- else if ( chunk_is_token(pc, CT_QUALIFIER)
- && !strcmp(pc->text(), "throws"))
- {
- chunk_t *prev = chunk_get_prev(pc);
-
- if ( chunk_is_token(prev, CT_PAREN_CLOSE)
- || chunk_is_token(prev, CT_FPAREN_CLOSE)) // Issue #1122
- {
- log_rule_B("nl_before_throw");
- newline_iarf(chunk_get_prev_ncnnlni(pc), options::nl_before_throw()); // Issue #2279
- }
- }
- else if (chunk_is_token(pc, CT_CASE_COLON))
- {
- chunk_t *next = chunk_get_next_nnl(pc);
-
- log_rule_B("nl_case_colon_brace");
-
- if ( chunk_is_token(next, CT_BRACE_OPEN)
- && options::nl_case_colon_brace() != IARF_IGNORE)
- {
- newline_iarf(pc, options::nl_case_colon_brace());
- }
- else if (options::nl_after_case())
- {
- log_rule_B("nl_after_case");
- newline_case_colon(pc);
- }
- }
- else if (chunk_is_token(pc, CT_SPAREN_CLOSE))
- {
- chunk_t *next = chunk_get_next_ncnnl(pc);
-
- if (chunk_is_token(next, CT_BRACE_OPEN))
- {
- /*
- * TODO: this could be used to control newlines between the
- * the if/while/for/switch close parenthesis and the open brace, but
- * that is currently handled elsewhere.
- */
- }
- }
- else if (chunk_is_token(pc, CT_RETURN))
- {
- log_rule_B("nl_before_return");
-
- if (options::nl_before_return())
- {
- newline_before_return(pc);
- }
- log_rule_B("nl_after_return");
-
- if (options::nl_after_return())
- {
- newline_after_return(pc);
- }
- }
- else if (chunk_is_token(pc, CT_SEMICOLON))
- {
- log_rule_B("nl_after_semicolon");
-
- if ( !pc->flags.test(PCF_IN_SPAREN)
- && !pc->flags.test(PCF_IN_PREPROC)
- && options::nl_after_semicolon())
- {
- chunk_t *next = chunk_get_next(pc);
-
- while (chunk_is_token(next, CT_VBRACE_CLOSE))
- {
- next = chunk_get_next(next);
- }
-
- if ( next != nullptr
- && !chunk_is_comment(next)
- && !chunk_is_newline(next))
- {
- if (one_liner_nl_ok(next))
- {
- LOG_FMT(LNL1LINE, "%s(%d): a new line may be added\n", __func__, __LINE__);
- newline_iarf(pc, IARF_ADD);
- }
- else
- {
- LOG_FMT(LNL1LINE, "%s(%d): a new line may NOT be added\n", __func__, __LINE__);
- }
- }
- }
- else if (get_chunk_parent_type(pc) == CT_CLASS)
- {
- log_rule_B("nl_after_class");
-
- if (options::nl_after_class() > 0)
- {
- newline_iarf(pc, IARF_ADD);
- }
- }
- }
- else if (chunk_is_token(pc, CT_FPAREN_OPEN))
- {
- log_rule_B("nl_func_decl_start");
- log_rule_B("nl_func_def_start");
- log_rule_B("nl_func_decl_start_single");
- log_rule_B("nl_func_def_start_single");
- log_rule_B("nl_func_decl_start_multi_line");
- log_rule_B("nl_func_def_start_multi_line");
- log_rule_B("nl_func_decl_args");
- log_rule_B("nl_func_def_args");
- log_rule_B("nl_func_decl_args_multi_line");
- log_rule_B("nl_func_def_args_multi_line");
- log_rule_B("nl_func_decl_end");
- log_rule_B("nl_func_def_end");
- log_rule_B("nl_func_decl_end_single");
- log_rule_B("nl_func_def_end_single");
- log_rule_B("nl_func_decl_end_multi_line");
- log_rule_B("nl_func_def_end_multi_line");
- log_rule_B("nl_func_decl_empty");
- log_rule_B("nl_func_def_empty");
- log_rule_B("nl_func_type_name");
- log_rule_B("nl_func_type_name_class");
- log_rule_B("nl_func_class_scope");
- log_rule_B("nl_func_scope_name");
- log_rule_B("nl_func_proto_type_name");
- log_rule_B("nl_func_paren");
- log_rule_B("nl_func_def_paren");
- log_rule_B("nl_func_def_paren_empty");
- log_rule_B("nl_func_paren_empty");
- log_rule_B("nl_func_call_args");
-
- if ( ( ( get_chunk_parent_type(pc) == CT_FUNC_DEF
- || get_chunk_parent_type(pc) == CT_FUNC_PROTO
- || get_chunk_parent_type(pc) == CT_FUNC_CLASS_DEF
- || get_chunk_parent_type(pc) == CT_FUNC_CLASS_PROTO
- || get_chunk_parent_type(pc) == CT_OPERATOR)
- && ( options::nl_func_decl_start() != IARF_IGNORE
- || options::nl_func_def_start() != IARF_IGNORE
- || options::nl_func_decl_start_single() != IARF_IGNORE
- || options::nl_func_def_start_single() != IARF_IGNORE
- || options::nl_func_decl_start_multi_line()
- || options::nl_func_def_start_multi_line()
- || options::nl_func_decl_args() != IARF_IGNORE
- || options::nl_func_def_args() != IARF_IGNORE
- || options::nl_func_decl_args_multi_line()
- || options::nl_func_def_args_multi_line()
- || options::nl_func_decl_end() != IARF_IGNORE
- || options::nl_func_def_end() != IARF_IGNORE
- || options::nl_func_decl_end_single() != IARF_IGNORE
- || options::nl_func_def_end_single() != IARF_IGNORE
- || options::nl_func_decl_end_multi_line()
- || options::nl_func_def_end_multi_line()
- || options::nl_func_decl_empty() != IARF_IGNORE
- || options::nl_func_def_empty() != IARF_IGNORE
- || options::nl_func_type_name() != IARF_IGNORE
- || options::nl_func_type_name_class() != IARF_IGNORE
- || options::nl_func_class_scope() != IARF_IGNORE
- || options::nl_func_scope_name() != IARF_IGNORE
- || options::nl_func_proto_type_name() != IARF_IGNORE
- || options::nl_func_paren() != IARF_IGNORE
- || options::nl_func_def_paren() != IARF_IGNORE
- || options::nl_func_def_paren_empty() != IARF_IGNORE
- || options::nl_func_paren_empty() != IARF_IGNORE))
-
- || ( get_chunk_parent_type(pc) == CT_FUNC_CALL // Issue #2604
- && options::nl_func_call_args() != IARF_IGNORE))
- {
- newline_func_def_or_call(pc);
- }
- else if ( ( get_chunk_parent_type(pc) == CT_FUNC_CALL // Issue #2020
- || get_chunk_parent_type(pc) == CT_FUNC_CALL_USER)
- && options::nl_func_call_start() != IARF_IGNORE)
- {
- log_rule_B("nl_func_call_start");
- newline_iarf(pc, options::nl_func_call_start());
- }
- else if ( ( get_chunk_parent_type(pc) == CT_FUNC_CALL
- || get_chunk_parent_type(pc) == CT_FUNC_CALL_USER)
- && ( (options::nl_func_call_start_multi_line())
- || (options::nl_func_call_args_multi_line())
- || (options::nl_func_call_end_multi_line())
- || (options::nl_func_call_paren() != IARF_IGNORE)
- || (options::nl_func_call_paren_empty() != IARF_IGNORE)
- || (options::nl_func_call_empty() != IARF_IGNORE)))
- {
- log_rule_B("nl_func_call_start_multi_line");
- log_rule_B("nl_func_call_args_multi_line");
- log_rule_B("nl_func_call_end_multi_line");
- log_rule_B("nl_func_call_paren");
- log_rule_B("nl_func_call_paren_empty");
- log_rule_B("nl_func_call_empty");
-
- if ( options::nl_func_call_paren() != IARF_IGNORE
- || options::nl_func_call_paren_empty() != IARF_IGNORE
- || options::nl_func_call_empty() != IARF_IGNORE)
- {
- newline_func_def_or_call(pc);
- }
- newline_func_multi_line(pc);
- }
- else if ( first
- && (options::nl_remove_extra_newlines() == 1))
- {
- log_rule_B("nl_remove_extra_newlines");
- newline_iarf(pc, IARF_REMOVE);
- }
- }
- else if (chunk_is_token(pc, CT_FPAREN_CLOSE)) // Issue #2758
- {
- if ( ( get_chunk_parent_type(pc) == CT_FUNC_CALL
- || get_chunk_parent_type(pc) == CT_FUNC_CALL_USER)
- && options::nl_func_call_end() != IARF_IGNORE)
- {
- log_rule_B("nl_func_call_end");
- newline_iarf(pc->prev, options::nl_func_call_end());
- }
- }
- else if (chunk_is_token(pc, CT_ANGLE_CLOSE))
- {
- if (get_chunk_parent_type(pc) == CT_TEMPLATE)
- {
- chunk_t *next = chunk_get_next_ncnnl(pc);
-
- if ( next != nullptr
- && next->level == next->brace_level)
- {
- chunk_t *tmp = chunk_get_prev_ncnnlni(chunk_get_prev_type(pc, CT_ANGLE_OPEN, pc->level)); // Issue #2279
-
- if (chunk_is_token(tmp, CT_TEMPLATE))
- {
- if (chunk_is_token(next, CT_USING))
- {
- newline_iarf(pc, options::nl_template_using());
- log_rule_B("nl_template_using");
- }
- else if (get_chunk_parent_type(next) == CT_FUNC_DEF) // function definition
- {
- iarf_e const action =
- newline_template_option(
- pc,
- options::nl_template_func_def_special(),
- options::nl_template_func_def(),
- options::nl_template_func());
- log_rule_B("nl_template_func_def_special");
- log_rule_B("nl_template_func_def");
- log_rule_B("nl_template_func");
- newline_iarf(pc, action);
- }
- else if (get_chunk_parent_type(next) == CT_FUNC_PROTO) // function declaration
- {
- iarf_e const action =
- newline_template_option(
- pc,
- options::nl_template_func_decl_special(),
- options::nl_template_func_decl(),
- options::nl_template_func());
- log_rule_B("nl_template_func_decl_special");
- log_rule_B("nl_template_func_decl");
- log_rule_B("nl_template_func");
- newline_iarf(pc, action);
- }
- else if ( chunk_is_token(next, CT_TYPE)
- || chunk_is_token(next, CT_QUALIFIER)) // variable
- {
- newline_iarf(pc, options::nl_template_var());
- log_rule_B("nl_template_var");
- }
- else if (next->flags.test(PCF_INCOMPLETE)) // class declaration
- {
- iarf_e const action =
- newline_template_option(
- pc,
- options::nl_template_class_decl_special(),
- options::nl_template_class_decl(),
- options::nl_template_class());
- log_rule_B("nl_template_class_decl_special");
- log_rule_B("nl_template_class_decl");
- log_rule_B("nl_template_class");
- newline_iarf(pc, action);
- }
- else // class definition
- {
- iarf_e const action =
- newline_template_option(
- pc,
- options::nl_template_class_def_special(),
- options::nl_template_class_def(),
- options::nl_template_class());
- log_rule_B("nl_template_class_def_special");
- log_rule_B("nl_template_class_def");
- log_rule_B("nl_template_class");
- newline_iarf(pc, action);
- }
- }
- }
- }
- }
- else if ( chunk_is_token(pc, CT_NAMESPACE)
- && get_chunk_parent_type(pc) != CT_USING)
- {
- // Issue #2387
- chunk_t *next = chunk_get_next_ncnnl(pc);
-
- if (next != nullptr)
- {
- next = chunk_get_next_ncnnl(next);
-
- if (!chunk_is_token(next, CT_ASSIGN))
- {
- // Issue #1235
- // Issue #2186
- chunk_t *braceOpen = chunk_get_next_type(pc, CT_BRACE_OPEN, pc->level);
-
- if (braceOpen == nullptr)
- {
- // fatal error
- LOG_FMT(LERR, "%s(%d): Missing BRACE_OPEN after namespace\n orig_line is %zu, orig_col is %zu\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col);
- exit(EXIT_FAILURE);
- }
- LOG_FMT(LNEWLINE, "%s(%d): braceOpen->orig_line is %zu, orig_col is %zu, text() is '%s'\n",
- __func__, __LINE__, braceOpen->orig_line, braceOpen->orig_col, braceOpen->text());
- // produces much more log output. Use it only debugging purpose
- //log_pcf_flags(LNEWLINE, braceOpen->flags);
- newlines_namespace(pc);
- }
- }
- }
- else if (chunk_is_token(pc, CT_SQUARE_OPEN))
- {
- if ( get_chunk_parent_type(pc) == CT_ASSIGN
- && !pc->flags.test(PCF_ONE_LINER))
- {
- chunk_t *tmp = chunk_get_prev_ncnnlni(pc); // Issue #2279
- newline_iarf(tmp, options::nl_assign_square());
- log_rule_B("nl_assign_square");
-
- iarf_e arg = options::nl_after_square_assign();
- log_rule_B("nl_after_square_assign");
-
- if (options::nl_assign_square() & IARF_ADD)
- {
- log_rule_B("nl_assign_square");
- arg = IARF_ADD;
- }
- newline_iarf(pc, arg);
-
- /*
- * if there is a newline after the open, then force a newline
- * before the close
- */
- tmp = chunk_get_next_nc(pc);
-
- if (chunk_is_newline(tmp))
- {
- tmp = chunk_get_next_type(pc, CT_SQUARE_CLOSE, pc->level);
-
- if (tmp != nullptr)
- {
- newline_add_before(tmp);
- }
- }
- }
- }
- else if (chunk_is_token(pc, CT_ACCESS))
- {
- // Make sure there is a newline before an access spec
- if (options::nl_before_access_spec() > 0)
- {
- log_rule_B("nl_before_access_spec");
- chunk_t *prev = chunk_get_prev(pc);
-
- if (!chunk_is_newline(prev))
- {
- newline_add_before(pc);
- }
- }
- }
- else if (chunk_is_token(pc, CT_ACCESS_COLON))
- {
- // Make sure there is a newline after an access spec
- if (options::nl_after_access_spec() > 0)
- {
- log_rule_B("nl_after_access_spec");
- chunk_t *next = chunk_get_next(pc);
-
- if (!chunk_is_newline(next))
- {
- newline_add_before(next);
- }
- }
- }
- else if (chunk_is_token(pc, CT_PP_DEFINE))
- {
- if (options::nl_multi_line_define())
- {
- log_rule_B("nl_multi_line_define");
- nl_handle_define(pc);
- }
- }
- else if ( first
- && (options::nl_remove_extra_newlines() == 1)
- && !pc->flags.test(PCF_IN_PREPROC))
- {
- log_rule_B("nl_remove_extra_newlines");
- newline_iarf(pc, IARF_REMOVE);
- }
- else if ( chunk_is_token(pc, CT_MEMBER)
- && ( language_is_set(LANG_JAVA)
- || language_is_set(LANG_CPP))) // Issue #2574
- {
- // Issue #1124
- if (pc->parent_type != CT_FUNC_DEF)
- {
- newline_iarf(chunk_get_prev_nnl(pc), options::nl_before_member());
- log_rule_B("nl_before_member");
- newline_iarf(pc, options::nl_after_member());
- log_rule_B("nl_after_member");
- }
- }
- else
- {
- // ignore it
- }
- }
-
- newline_def_blk(chunk_get_head(), false);
-} // newlines_cleanup_braces
-
-
-static void nl_handle_define(chunk_t *pc)
-{
- LOG_FUNC_ENTRY();
-
- chunk_t *nl = pc;
- chunk_t *ref = nullptr;
-
- while ((nl = chunk_get_next(nl)) != nullptr)
- {
- if (chunk_is_token(nl, CT_NEWLINE))
- {
- return;
- }
-
- if ( chunk_is_token(nl, CT_MACRO)
- || ( chunk_is_token(nl, CT_FPAREN_CLOSE)
- && get_chunk_parent_type(nl) == CT_MACRO_FUNC))
- {
- ref = nl;
- }
-
- if (chunk_is_token(nl, CT_NL_CONT))
- {
- if (ref != nullptr)
- {
- newline_add_after(ref);
- }
- return;
- }
- }
-} // nl_handle_define
-
-
-void newline_after_multiline_comment(void)
-{
- LOG_FUNC_ENTRY();
-
- for (chunk_t *pc = chunk_get_head(); pc != nullptr; pc = chunk_get_next(pc))
- {
- if (chunk_is_not_token(pc, CT_COMMENT_MULTI))
- {
- continue;
- }
- chunk_t *tmp = pc;
-
- while ( ((tmp = chunk_get_next(tmp)) != nullptr)
- && !chunk_is_newline(tmp))
- {
- if (!chunk_is_comment(tmp))
- {
- newline_add_before(tmp);
- break;
- }
- }
- }
-} // newline_after_multiline_comment
-
-
-void newline_after_label_colon(void)
-{
- LOG_FUNC_ENTRY();
-
- for (chunk_t *pc = chunk_get_head(); pc != nullptr; pc = chunk_get_next(pc))
- {
- if (chunk_is_not_token(pc, CT_LABEL_COLON))
- {
- continue;
- }
- newline_add_after(pc);
- }
-} // newline_after_label_colon
-
-
-static bool is_class_one_liner(chunk_t *pc)
-{
- if ( ( chunk_is_token(pc, CT_FUNC_CLASS_DEF)
- || chunk_is_token(pc, CT_FUNC_DEF))
- && pc->flags.test(PCF_IN_CLASS))
- {
- // Find opening brace
- pc = chunk_get_next_type(pc, CT_BRACE_OPEN, pc->level);
- return( pc != nullptr
- && pc->flags.test(PCF_ONE_LINER));
- }
- return(false);
-} // is_class_one_liner
-
-
-void newlines_insert_blank_lines(void)
-{
- LOG_FUNC_ENTRY();
-
- for (chunk_t *pc = chunk_get_head(); pc != nullptr; pc = chunk_get_next_ncnnl(pc))
- {
- //LOG_FMT(LNEWLINE, "%s(%d): orig_line is %zu, orig_col is %zu, text() '%s', type is %s\n",
- // __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(), get_token_name(pc->type));
- if (chunk_is_token(pc, CT_IF))
- {
- newlines_if_for_while_switch_pre_blank_lines(pc, options::nl_before_if());
- log_rule_B("nl_before_if");
- newlines_if_for_while_switch_post_blank_lines(pc, options::nl_after_if());
- log_rule_B("nl_after_if");
- }
- else if (chunk_is_token(pc, CT_FOR))
- {
- newlines_if_for_while_switch_pre_blank_lines(pc, options::nl_before_for());
- log_rule_B("nl_before_for");
- newlines_if_for_while_switch_post_blank_lines(pc, options::nl_after_for());
- log_rule_B("nl_after_for");
- }
- else if (chunk_is_token(pc, CT_WHILE))
- {
- newlines_if_for_while_switch_pre_blank_lines(pc, options::nl_before_while());
- log_rule_B("nl_before_while");
- newlines_if_for_while_switch_post_blank_lines(pc, options::nl_after_while());
- log_rule_B("nl_after_while");
- }
- else if (chunk_is_token(pc, CT_SWITCH))
- {
- newlines_if_for_while_switch_pre_blank_lines(pc, options::nl_before_switch());
- log_rule_B("nl_before_switch");
- newlines_if_for_while_switch_post_blank_lines(pc, options::nl_after_switch());
- log_rule_B("nl_after_switch");
- }
- else if (chunk_is_token(pc, CT_SYNCHRONIZED))
- {
- newlines_if_for_while_switch_pre_blank_lines(pc, options::nl_before_synchronized());
- log_rule_B("nl_before_synchronized");
- newlines_if_for_while_switch_post_blank_lines(pc, options::nl_after_synchronized());
- log_rule_B("nl_after_synchronized");
- }
- else if (chunk_is_token(pc, CT_DO))
- {
- newlines_if_for_while_switch_pre_blank_lines(pc, options::nl_before_do());
- log_rule_B("nl_before_do");
- newlines_if_for_while_switch_post_blank_lines(pc, options::nl_after_do());
- log_rule_B("nl_after_do");
- }
- else if (chunk_is_token(pc, CT_OC_INTF))
- {
- newlines_if_for_while_switch_pre_blank_lines(pc, options::nl_oc_before_interface());
- log_rule_B("nl_oc_before_interface");
- }
- else if (chunk_is_token(pc, CT_OC_END))
- {
- newlines_if_for_while_switch_pre_blank_lines(pc, options::nl_oc_before_end());
- log_rule_B("nl_oc_before_end");
- }
- else if (chunk_is_token(pc, CT_OC_IMPL))
- {
- newlines_if_for_while_switch_pre_blank_lines(pc, options::nl_oc_before_implementation());
- log_rule_B("nl_oc_before_implementation");
- }
- else if ( chunk_is_token(pc, CT_FUNC_CLASS_DEF)
- || chunk_is_token(pc, CT_FUNC_DEF)
- || chunk_is_token(pc, CT_FUNC_CLASS_PROTO)
- || chunk_is_token(pc, CT_FUNC_PROTO))
- {
- if ( options::nl_class_leave_one_liner_groups()
- && is_class_one_liner(pc))
- {
- log_rule_B("nl_class_leave_one_liner_groups");
- newlines_func_pre_blank_lines(pc, CT_FUNC_PROTO);
- }
- else
- {
- newlines_func_pre_blank_lines(pc, pc->type);
- }
- }
- else
- {
- // ignore it
- //LOG_FMT(LNEWLINE, "%s(%d): ignore it\n", __func__, __LINE__);
- }
- }
-} // newlines_insert_blank_lines
-
-
-void newlines_functions_remove_extra_blank_lines(void)
-{
- LOG_FUNC_ENTRY();
-
- const size_t nl_max_blank_in_func = options::nl_max_blank_in_func();
-
- log_rule_B("nl_max_blank_in_func");
-
- if (nl_max_blank_in_func == 0)
- {
- LOG_FMT(LNEWLINE, "%s(%d): nl_max_blank_in_func is zero\n", __func__, __LINE__);
- return;
- }
-
- for (chunk_t *pc = chunk_get_head(); pc != nullptr; pc = chunk_get_next(pc))
- {
- LOG_FMT(LNEWLINE, "%s(%d): orig_line is %zu, orig_col is %zu, text() '%s', type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(), get_token_name(pc->type));
-
- if ( chunk_is_not_token(pc, CT_BRACE_OPEN)
- || ( get_chunk_parent_type(pc) != CT_FUNC_DEF
- && get_chunk_parent_type(pc) != CT_CPP_LAMBDA))
- {
- continue;
- }
- const size_t startMoveLevel = pc->level;
-
- while (pc != nullptr)
- {
- if ( chunk_is_token(pc, CT_BRACE_CLOSE)
- && pc->level == startMoveLevel)
- {
- break;
- }
-
- // delete newlines
- if ( !chunk_is_token(pc, CT_COMMENT_MULTI) // Issue #2195
- && pc->nl_count > nl_max_blank_in_func)
- {
- LOG_FMT(LNEWLINE, "%s(%d): orig_line is %zu, orig_col is %zu, text() '%s', type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(), get_token_name(pc->type));
- pc->nl_count = nl_max_blank_in_func;
- MARK_CHANGE();
- remove_next_newlines(pc);
- }
- else
- {
- pc = chunk_get_next(pc);
- }
- }
- }
-} // newlines_functions_remove_extra_blank_lines
-
-
-void newlines_squeeze_ifdef(void)
-{
- LOG_FUNC_ENTRY();
-
- chunk_t *pc;
-
- for (pc = chunk_get_head(); pc != nullptr; pc = chunk_get_next_ncnnl(pc))
- {
- if ( chunk_is_token(pc, CT_PREPROC)
- && ( pc->level > 0
- || options::nl_squeeze_ifdef_top_level()))
- {
- log_rule_B("nl_squeeze_ifdef_top_level");
- chunk_t *ppr = chunk_get_next(pc);
-
- if ( chunk_is_token(ppr, CT_PP_IF)
- || chunk_is_token(ppr, CT_PP_ELSE)
- || chunk_is_token(ppr, CT_PP_ENDIF))
- {
- chunk_t *pnl = nullptr;
- chunk_t *nnl = chunk_get_next_nl(ppr);
-
- if ( chunk_is_token(ppr, CT_PP_ELSE)
- || chunk_is_token(ppr, CT_PP_ENDIF))
- {
- pnl = chunk_get_prev_nl(pc);
- }
- chunk_t *tmp1;
- chunk_t *tmp2;
-
- if (nnl != nullptr)
- {
- if (pnl != nullptr)
- {
- if (pnl->nl_count > 1)
- {
- pnl->nl_count = 1;
- MARK_CHANGE();
-
- tmp1 = chunk_get_prev_nnl(pnl);
- tmp2 = chunk_get_prev_nnl(nnl);
-
- LOG_FMT(LNEWLINE, "%s(%d): moved from after line %zu to after %zu\n",
- __func__, __LINE__, tmp1->orig_line, tmp2->orig_line);
- }
- }
-
- if ( chunk_is_token(ppr, CT_PP_IF)
- || chunk_is_token(ppr, CT_PP_ELSE))
- {
- if (nnl->nl_count > 1)
- {
- tmp1 = chunk_get_prev_nnl(nnl);
- LOG_FMT(LNEWLINE, "%s(%d): trimmed newlines after line %zu from %zu\n",
- __func__, __LINE__, tmp1->orig_line, nnl->nl_count);
- nnl->nl_count = 1;
- MARK_CHANGE();
- }
- }
- }
- }
- }
- }
-} // newlines_squeeze_ifdef
-
-
-void newlines_squeeze_paren_close(void)
-{
- LOG_FUNC_ENTRY();
-
- chunk_t *pc;
-
- for (pc = chunk_get_head(); pc != nullptr; pc = chunk_get_next(pc))
- {
- chunk_t *next;
- chunk_t *prev;
-
- if (chunk_is_token(pc, CT_NEWLINE))
- {
- prev = chunk_get_prev(pc);
- }
- else
- {
- prev = pc;
- }
- next = chunk_get_next(pc);
-
- if ( next != nullptr
- && prev != nullptr
- && chunk_is_paren_close(next)
- && chunk_is_paren_close(prev))
- {
- chunk_t *prev_op = chunk_skip_to_match_rev(prev);
- chunk_t *next_op = chunk_skip_to_match_rev(next);
- bool flag = true;
-
- if (true)
- {
- chunk_t *tmp = prev;
-
- while (chunk_is_paren_close(tmp))
- {
- tmp = chunk_get_prev(tmp);
- }
-
- if (chunk_is_not_token(tmp, CT_NEWLINE))
- {
- flag = false;
- }
- }
-
- if (flag)
- {
- if (are_chunks_in_same_line(next_op, prev_op))
- {
- if (chunk_is_token(pc, CT_NEWLINE))
- {
- pc = next;
- }
- newline_del_between(prev, next);
- }
- else
- {
- newline_add_between(prev, next);
- }
- }
- }
- }
-} // newlines_squeeze_paren_close
-
-
-void newlines_eat_start_end(void)
-{
- LOG_FUNC_ENTRY();
-
- chunk_t *pc;
-
- // Process newlines at the start of the file
- if ( cpd.frag_cols == 0
- && ( (options::nl_start_of_file() & IARF_REMOVE)
- || ( (options::nl_start_of_file() & IARF_ADD)
- && (options::nl_start_of_file_min() > 0))))
- {
- log_rule_B("nl_start_of_file");
- log_rule_B("nl_start_of_file_min");
- pc = chunk_get_head();
-
- if (pc != nullptr)
- {
- if (chunk_is_token(pc, CT_NEWLINE))
- {
- if (options::nl_start_of_file() == IARF_REMOVE)
- {
- log_rule_B("nl_start_of_file");
- LOG_FMT(LBLANKD, "%s(%d): eat_blanks_start_of_file %zu\n",
- __func__, __LINE__, pc->orig_line);
- chunk_del(pc);
- MARK_CHANGE();
- }
- else if ( options::nl_start_of_file() == IARF_FORCE
- || (pc->nl_count < options::nl_start_of_file_min()))
- {
- log_rule_B("nl_start_of_file");
- LOG_FMT(LBLANKD, "%s(%d): set_blanks_start_of_file %zu\n",
- __func__, __LINE__, pc->orig_line);
- pc->nl_count = options::nl_start_of_file_min();
- log_rule_B("nl_start_of_file_min");
- MARK_CHANGE();
- }
- }
- else if ( (options::nl_start_of_file() & IARF_ADD)
- && (options::nl_start_of_file_min() > 0))
- {
- log_rule_B("nl_start_of_file");
- log_rule_B("nl_start_of_file_min");
- chunk_t chunk;
- set_chunk_type(&chunk, CT_NEWLINE);
- chunk.orig_line = pc->orig_line;
- chunk.orig_col = pc->orig_col;
- chunk.pp_level = pc->pp_level;
- chunk.nl_count = options::nl_start_of_file_min();
- log_rule_B("nl_start_of_file_min");
- chunk_add_before(&chunk, pc);
- LOG_FMT(LNEWLINE, "%s(%d): %zu:%zu add newline before '%s'\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text());
- MARK_CHANGE();
- }
- }
- }
-
- // Process newlines at the end of the file
- if ( cpd.frag_cols == 0
- && ( (options::nl_end_of_file() & IARF_REMOVE)
- || ( (options::nl_end_of_file() & IARF_ADD)
- && (options::nl_end_of_file_min() > 0))))
- {
- log_rule_B("nl_end_of_file");
- log_rule_B("nl_end_of_file_min");
- pc = chunk_get_tail();
-
- if (pc != nullptr)
- {
- if (chunk_is_token(pc, CT_NEWLINE))
- {
- if (options::nl_end_of_file() == IARF_REMOVE)
- {
- log_rule_B("nl_end_of_file");
- LOG_FMT(LBLANKD, "%s(%d): eat_blanks_end_of_file %zu\n",
- __func__, __LINE__, pc->orig_line);
- chunk_del(pc);
- MARK_CHANGE();
- }
- else if ( options::nl_end_of_file() == IARF_FORCE
- || (pc->nl_count < options::nl_end_of_file_min()))
- {
- log_rule_B("nl_end_of_file");
- log_rule_B("nl_end_of_file_min");
-
- if (pc->nl_count != options::nl_end_of_file_min())
- {
- log_rule_B("nl_end_of_file_min");
- LOG_FMT(LBLANKD, "%s(%d): set_blanks_end_of_file %zu\n",
- __func__, __LINE__, pc->orig_line);
- pc->nl_count = options::nl_end_of_file_min();
- log_rule_B("nl_end_of_file_min");
- MARK_CHANGE();
- }
- }
- }
- else if ( (options::nl_end_of_file() & IARF_ADD)
- && (options::nl_end_of_file_min() > 0))
- {
- log_rule_B("nl_end_of_file");
- log_rule_B("nl_end_of_file_min");
- chunk_t chunk;
- set_chunk_type(&chunk, CT_NEWLINE);
- chunk.orig_line = pc->orig_line;
- chunk.orig_col = pc->orig_col;
- chunk.pp_level = pc->pp_level;
- chunk.nl_count = options::nl_end_of_file_min();
- log_rule_B("nl_end_of_file_min");
- chunk_add_before(&chunk, nullptr);
- LOG_FMT(LNEWLINE, "%s(%d): %zu:%zu add newline after '%s'\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text());
- MARK_CHANGE();
- }
- }
- }
-} // newlines_eat_start_end
-
-
-void newlines_chunk_pos(c_token_t chunk_type, token_pos_e mode)
-{
- LOG_FUNC_ENTRY();
-
- LOG_FMT(LNEWLINE, "%s(%d): mode is %s\n",
- __func__, __LINE__, to_string(mode));
-
- if ( !(mode & (TP_JOIN | TP_LEAD | TP_TRAIL))
- && chunk_type != CT_COMMA)
- {
- return;
- }
-
- for (chunk_t *pc = chunk_get_head(); pc != nullptr; pc = chunk_get_next_ncnnl(pc))
- {
- char copy[1000];
- LOG_FMT(LNEWLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, text() is '%s'\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->elided_text(copy));
- // produces much more log output. Use it only debugging purpose
- //log_pcf_flags(LNEWLINE, pc->flags);
-
- if (chunk_is_token(pc, chunk_type))
- {
- token_pos_e mode_local;
-
- if (chunk_type == CT_COMMA)
- {
- LOG_FMT(LNEWLINE, "%s(%d): orig_line is %zu, orig_col is %zu, text() is '%s', type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(), get_token_name(pc->type));
- // produces much more log output. Use it only debugging purpose
- //log_pcf_flags(LNEWLINE, pc->flags);
-
- if (pc->flags.test(PCF_IN_CONST_ARGS)) // Issue #2250
- {
- continue;
- }
-
- /*
- * for chunk_type == CT_COMMA
- * we get 'mode' from options::pos_comma()
- * BUT we must take care of options::pos_class_comma()
- * TODO and options::pos_constr_comma()
- */
- if (pc->flags.test(PCF_IN_CLASS_BASE))
- {
- // change mode
- log_rule_B("pos_class_comma");
- mode_local = options::pos_class_comma();
- }
- else if (pc->flags.test(PCF_IN_ENUM))
- {
- log_rule_B("pos_enum_comma");
- mode_local = options::pos_enum_comma();
- }
- else
- {
- mode_local = mode;
- }
- LOG_FMT(LNEWLINE, "%s(%d): mode_local is %s\n",
- __func__, __LINE__, to_string(mode_local));
- }
- else
- {
- mode_local = mode;
- }
- chunk_t *prev = chunk_get_prev_nc(pc);
- chunk_t *next = chunk_get_next_nc(pc);
-
- LOG_FMT(LNEWLINE, "%s(%d): mode_local is %s\n",
- __func__, __LINE__, to_string(mode_local));
-
- LOG_FMT(LNEWLINE, "%s(%d): prev->orig_line is %zu, orig_col is %zu, text() is '%s'\n",
- __func__, __LINE__, prev->orig_line, prev->orig_col, prev->text());
- LOG_FMT(LNEWLINE, "%s(%d): next->orig_line is %zu, orig_col is %zu, text() is '%s'\n",
- __func__, __LINE__, next->orig_line, next->orig_col, next->text());
- size_t nl_flag = ((chunk_is_newline(prev) ? 1 : 0) |
- (chunk_is_newline(next) ? 2 : 0));
- LOG_FMT(LNEWLINE, "%s(%d): nl_flag is %zu\n",
- __func__, __LINE__, nl_flag);
-
- if (mode_local & TP_JOIN)
- {
- if (nl_flag & 1)
- {
- // remove newline if not preceded by a comment
- chunk_t *prev2 = chunk_get_prev(prev);
-
- if ( prev2 != nullptr
- && !(chunk_is_comment(prev2)))
- {
- remove_next_newlines(prev2);
- }
- }
-
- if (nl_flag & 2)
- {
- // remove newline if not followed by a comment or by '{'
- chunk_t *next2 = chunk_get_next(next);
-
- if ( next2 != nullptr
- && !(chunk_is_comment(next2))
- && !(chunk_is_token(next2, CT_BRACE_OPEN)))
- {
- remove_next_newlines(pc);
- }
- }
- continue;
- }
-
- if ( ( nl_flag == 0
- && !(mode_local & (TP_FORCE | TP_BREAK)))
- || ( nl_flag == 3
- && !(mode_local & TP_FORCE)))
- {
- // No newlines and not adding any or both and not forcing
- continue;
- }
-
- if ( ( (mode_local & TP_LEAD)
- && nl_flag == 1)
- || ( (mode_local & TP_TRAIL)
- && nl_flag == 2))
- {
- // Already a newline before (lead) or after (trail)
- continue;
- }
-
- // If there were no newlines, we need to add one
- if (nl_flag == 0)
- {
- if (mode_local & TP_LEAD)
- {
- newline_add_before(pc);
- }
- else
- {
- newline_add_after(pc);
- }
- continue;
- }
-
- // If there were both newlines, we need to remove one
- if (nl_flag == 3)
- {
- if (mode_local & TP_LEAD)
- {
- remove_next_newlines(pc);
- }
- else
- {
- remove_next_newlines(chunk_get_prev_ncnnlni(pc)); // Issue #2279
- }
- continue;
- }
-
- // we need to move the newline
- if (mode_local & TP_LEAD)
- {
- chunk_t *next2 = chunk_get_next(next);
-
- if ( chunk_is_token(next2, CT_PREPROC)
- || ( chunk_type == CT_ASSIGN
- && chunk_is_token(next2, CT_BRACE_OPEN)))
- {
- continue;
- }
-
- if (next->nl_count == 1)
- {
- if ( prev != nullptr
- && !prev->flags.test(PCF_IN_PREPROC))
- {
- // move the CT_BOOL to after the newline
- chunk_move_after(pc, next);
- }
- }
- }
- else
- {
- LOG_FMT(LNEWLINE, "%s(%d): prev->orig_line is %zu, orig_col is %zu, text() is '%s', nl_count is %zu\n",
- __func__, __LINE__, prev->orig_line, prev->orig_col, prev->text(), prev->nl_count);
-
- if (prev->nl_count == 1)
- {
- // Back up to the next non-comment item
- prev = chunk_get_prev_nc(prev);
- LOG_FMT(LNEWLINE, "%s(%d): prev->orig_line is %zu, orig_col is %zu, text() is '%s'\n",
- __func__, __LINE__, prev->orig_line, prev->orig_col, prev->text());
-
- if ( prev != nullptr
- && !chunk_is_newline(prev)
- && !prev->flags.test(PCF_IN_PREPROC)
- && !prev->flags.test(PCF_IN_OC_MSG))
- {
- chunk_move_after(pc, prev);
- }
- }
- }
- }
- }
-} // newlines_chunk_pos
-
-
-void newlines_class_colon_pos(c_token_t tok)
-{
- LOG_FUNC_ENTRY();
-
- token_pos_e tpc;
- token_pos_e pcc;
- iarf_e anc;
- iarf_e ncia;
-
- if (tok == CT_CLASS_COLON)
- {
- tpc = options::pos_class_colon();
- log_rule_B("pos_class_colon");
- anc = options::nl_class_colon();
- log_rule_B("nl_class_colon");
- ncia = options::nl_class_init_args();
- log_rule_B("nl_class_init_args");
- pcc = options::pos_class_comma();
- log_rule_B("pos_class_comma");
- }
- else // tok == CT_CONSTR_COLON
- {
- tpc = options::pos_constr_colon();
- log_rule_B("pos_constr_colon");
- anc = options::nl_constr_colon();
- log_rule_B("nl_constr_colon");
- ncia = options::nl_constr_init_args();
- log_rule_B("nl_constr_init_args");
- pcc = options::pos_constr_comma();
- log_rule_B("pos_constr_comma");
- }
- chunk_t *ccolon = nullptr;
- size_t acv_span = options::align_constr_value_span();
-
- log_rule_B("align_constr_value_span");
- bool with_acv = (acv_span > 0) && language_is_set(LANG_CPP);
- AlignStack constructorValue; // ABC_Member(abc_value)
-
- if (with_acv)
- {
- int acv_thresh = options::align_constr_value_thresh();
- log_rule_B("align_constr_value_thresh");
- size_t acv_gap = options::align_constr_value_gap();
- log_rule_B("align_constr_value_gap");
- constructorValue.Start(acv_span, acv_thresh);
- constructorValue.m_gap = acv_gap;
- constructorValue.m_right_align = !options::align_on_tabstop();
- log_rule_B("align_on_tabstop");
- }
-
- for (chunk_t *pc = chunk_get_head(); pc != nullptr; pc = chunk_get_next_ncnnl(pc))
- {
- if ( ccolon == nullptr
- && chunk_is_not_token(pc, tok))
- {
- continue;
- }
- chunk_t *prev;
- chunk_t *next;
-
- if (chunk_is_token(pc, tok))
- {
- LOG_FMT(LBLANKD, "%s(%d): orig_line is %zu, orig_col is %zu, text() '%s', type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(), get_token_name(pc->type));
- ccolon = pc;
- prev = chunk_get_prev_nc(pc);
- next = chunk_get_next_nc(pc);
-
- if (chunk_is_token(pc, CT_CONSTR_COLON))
- {
- LOG_FMT(LBLANKD, "%s(%d): pc->orig_line is %zu, orig_col is %zu, text() '%s', type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(), get_token_name(pc->type));
- chunk_t *paren_vor_value = chunk_get_next_type(pc, CT_FPAREN_OPEN, pc->level);
-
- if ( with_acv
- && paren_vor_value != nullptr)
- {
- LOG_FMT(LBLANKD, "%s(%d): paren_vor_value->orig_line is %zu, orig_col is %zu, text() '%s', type is %s\n",
- __func__, __LINE__, paren_vor_value->orig_line, paren_vor_value->orig_col,
- paren_vor_value->text(), get_token_name(paren_vor_value->type));
- constructorValue.NewLines(paren_vor_value->nl_count);
- constructorValue.Add(paren_vor_value);
- }
- }
-
- if ( !chunk_is_newline(prev)
- && !chunk_is_newline(next)
- && (anc & IARF_ADD)) // nl_class_colon, nl_constr_colon: 1
-
- {
- newline_add_after(pc);
- prev = chunk_get_prev_nc(pc);
- next = chunk_get_next_nc(pc);
- }
-
- if (anc == IARF_REMOVE) // nl_class_colon, nl_constr_colon: 2
- {
- if ( chunk_is_newline(prev)
- && chunk_safe_to_del_nl(prev))
- {
- chunk_del(prev);
- MARK_CHANGE();
- prev = chunk_get_prev_nc(pc);
- }
-
- if ( chunk_is_newline(next)
- && chunk_safe_to_del_nl(next))
- {
- chunk_del(next);
- MARK_CHANGE();
- next = chunk_get_next_nc(pc);
- }
- }
-
- if (tpc & TP_TRAIL) // pos_class_colon, pos_constr_colon: 4
- {
- if ( chunk_is_newline(prev)
- && prev->nl_count == 1
- && chunk_safe_to_del_nl(prev))
- {
- chunk_swap(pc, prev);
- }
- }
- else if (tpc & TP_LEAD) // pos_class_colon, pos_constr_colon: 3
- {
- if ( chunk_is_newline(next)
- && next->nl_count == 1
- && chunk_safe_to_del_nl(next))
- {
- chunk_swap(pc, next);
- }
- }
- }
- else
- {
- // (pc->type != tok)
- if ( chunk_is_token(pc, CT_BRACE_OPEN)
- || chunk_is_token(pc, CT_SEMICOLON))
- {
- ccolon = nullptr;
-
- if (with_acv)
- {
- constructorValue.End();
- }
- continue;
- }
-
- if ( chunk_is_token(pc, CT_COMMA)
- && pc->level == ccolon->level)
- {
- LOG_FMT(LBLANKD, "%s(%d): orig_line is %zu, orig_col is %zu, text() '%s', type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(), get_token_name(pc->type));
- chunk_t *paren_vor_value = chunk_get_next_type(pc, CT_FPAREN_OPEN, pc->level);
-
- if ( with_acv
- && paren_vor_value != nullptr)
- {
- LOG_FMT(LBLANKD, "%s(%d): paren_vor_value->orig_line is %zu, orig_col is %zu, text() '%s', type is %s\n",
- __func__, __LINE__, paren_vor_value->orig_line, paren_vor_value->orig_col,
- paren_vor_value->text(), get_token_name(paren_vor_value->type));
- constructorValue.NewLines(paren_vor_value->nl_count);
- constructorValue.Add(paren_vor_value);
- }
-
- if (ncia & IARF_ADD) // nl_class_init_args, nl_constr_init_args:
- {
- if (pcc & TP_TRAIL) // pos_class_comma, pos_constr_comma
- {
- if (ncia == IARF_FORCE) // nl_class_init_args, nl_constr_init_args: 5
- {
- chunk_t *after = chunk_get_next(pc); // Issue #2759
-
- if (chunk_is_not_token(after, CT_COMMENT_CPP))
- {
- newline_force_after(pc);
- }
- }
- else
- {
- // (ncia == IARF_ADD) // nl_class_init_args, nl_constr_init_args: 8
- newline_add_after(pc);
- }
- prev = chunk_get_prev_nc(pc);
-
- if ( chunk_is_newline(prev)
- && chunk_safe_to_del_nl(prev))
- {
- chunk_del(prev);
- MARK_CHANGE();
- }
- }
- else if (pcc & TP_LEAD) // pos_class_comma, pos_constr_comma
- {
- if (ncia == IARF_FORCE) // nl_class_init_args, nl_constr_init_args: 7
- {
- newline_force_before(pc);
- }
- else
- {
- // (ncia == IARF_ADD) // nl_class_init_args, nl_constr_init_args: 9
- newline_add_before(pc);
- }
- next = chunk_get_next_nc(pc);
-
- if ( chunk_is_newline(next)
- && chunk_safe_to_del_nl(next))
- {
- chunk_del(next);
- MARK_CHANGE();
- }
- }
- }
- else if (ncia == IARF_REMOVE) // nl_class_init_args, nl_constr_init_args: 6
- {
- next = chunk_get_next(pc);
-
- if ( chunk_is_newline(next)
- && chunk_safe_to_del_nl(next))
- {
- // comma is after
- chunk_del(next);
- MARK_CHANGE();
- }
- else
- {
- prev = chunk_get_prev(pc);
-
- if ( chunk_is_newline(prev)
- && chunk_safe_to_del_nl(prev))
- {
- // comma is before
- chunk_del(prev);
- MARK_CHANGE();
- }
- }
- }
- }
- }
- }
-} // newlines_class_colon_pos
-
-
-static void blank_line_max(chunk_t *pc, Option<unsigned> &opt)
-{
- LOG_FUNC_ENTRY();
-
- if (pc == nullptr)
- {
- return;
- }
- const auto optval = opt();
-
- if ( (optval > 0)
- && (pc->nl_count > optval))
- {
- LOG_FMT(LBLANKD, "%s(%d): do_blank_lines: %s max line %zu\n",
- __func__, __LINE__, opt.name(), pc->orig_line);
- pc->nl_count = optval;
- MARK_CHANGE();
- }
-} // blank_line_max
-
-
-iarf_e newline_template_option(chunk_t *pc, iarf_e special, iarf_e base, iarf_e fallback)
-{
- chunk_t *const prev = chunk_get_prev_ncnnl(pc);
-
- if ( chunk_is_token(prev, CT_ANGLE_OPEN)
- && special != IARF_IGNORE)
- {
- return(special);
- }
- else if (base != IARF_IGNORE)
- {
- return(base);
- }
- else
- {
- return(fallback);
- }
-} // newline_template_option
-
-
-bool is_func_proto_group(chunk_t *pc, c_token_t one_liner_type)
-{
- if ( pc != nullptr
- && options::nl_class_leave_one_liner_groups()
- && ( chunk_is_token(pc, one_liner_type)
- || get_chunk_parent_type(pc) == one_liner_type)
- && pc->flags.test(PCF_IN_CLASS))
- {
- log_rule_B("nl_class_leave_one_liner_groups");
-
- if (chunk_is_token(pc, CT_BRACE_CLOSE))
- {
- return(pc->flags.test(PCF_ONE_LINER));
- }
- else
- {
- // Find opening brace
- pc = chunk_get_next_type(pc, CT_BRACE_OPEN, pc->level);
- return( pc != nullptr
- && pc->flags.test(PCF_ONE_LINER));
- }
- }
- return(false);
-} // is_func_proto_group
-
-
-void do_blank_lines(void)
-{
- LOG_FUNC_ENTRY();
-
- for (chunk_t *pc = chunk_get_head(); pc != nullptr; pc = chunk_get_next(pc))
- {
- if (chunk_is_token(pc, CT_NEWLINE))
- {
- LOG_FMT(LBLANKD, "%s(%d): orig_line is %zu, orig_col is %zu, <Newline>, nl is %zu\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->nl_count);
- }
- else
- {
- char copy[1000];
- LOG_FMT(LBLANKD, "%s(%d): orig_line is %zu, orig_col is %zu, text() '%s', type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->elided_text(copy), get_token_name(pc->type));
- }
- LOG_FMT(LBLANK, "%s(%d): nl_count is %zu\n",
- __func__, __LINE__, pc->nl_count);
-
- //if (pc->type != CT_NEWLINE)
- if (chunk_is_not_token(pc, CT_NEWLINE))
- {
- continue;
- }
- chunk_t *prev = chunk_get_prev_nc(pc);
-
- if (prev != nullptr)
- {
- LOG_FMT(LBLANK, "%s(%d): prev->orig_line is %zu, prev->text() '%s', prev->type is %s\n",
- __func__, __LINE__, pc->orig_line,
- prev->text(), get_token_name(prev->type));
-
- if (chunk_is_token(prev, CT_IGNORED))
- {
- continue;
- }
- }
- chunk_t *next = chunk_get_next(pc);
- chunk_t *pcmt = chunk_get_prev(pc);
-
- bool line_added = false;
-
- /*
- * If this is the first or the last token, pretend that there is an extra
- * line. It will be removed at the end.
- */
- if ( pc == chunk_get_head()
- || next == nullptr)
- {
- line_added = true;
- ++pc->nl_count;
- }
-
- // Limit consecutive newlines
- if ( (options::nl_max() > 0)
- && (pc->nl_count > options::nl_max()))
- {
- log_rule_B("nl_max");
- blank_line_max(pc, options::nl_max);
- }
-
- if (!can_increase_nl(pc))
- {
- LOG_FMT(LBLANKD, "%s(%d): force to 1 orig_line is %zu, orig_col is %zu\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col);
-
- if (pc->nl_count != 1)
- {
- pc->nl_count = 1;
- MARK_CHANGE();
- }
- continue;
- }
-
- // Control blanks before multi-line comments
- if ( (options::nl_before_block_comment() > pc->nl_count)
- && chunk_is_token(next, CT_COMMENT_MULTI))
- {
- log_rule_B("nl_before_block_comment");
-
- // Don't add blanks after an open brace or a case statement
- if ( ( prev == nullptr
- || ( chunk_is_not_token(prev, CT_BRACE_OPEN)
- && chunk_is_not_token(prev, CT_VBRACE_OPEN)
- && chunk_is_not_token(prev, CT_CASE_COLON)))
- && chunk_is_not_token(pcmt, CT_COMMENT_MULTI)) // Issue #2383
- {
- blank_line_set(pc, options::nl_before_block_comment);
- log_rule_B("nl_before_block_comment");
- }
- }
-
- // Control blanks before single line C comments
- if ( (options::nl_before_c_comment() > pc->nl_count)
- && chunk_is_token(next, CT_COMMENT))
- {
- log_rule_B("nl_before_c_comment");
-
- // Don't add blanks after an open brace, a case stamement, or a comment
- if ( ( prev == nullptr
- || ( chunk_is_not_token(prev, CT_BRACE_OPEN)
- && chunk_is_not_token(prev, CT_VBRACE_OPEN)
- && chunk_is_not_token(prev, CT_CASE_COLON)))
- && chunk_is_not_token(pcmt, CT_COMMENT)) // Issue #2383
- {
- blank_line_set(pc, options::nl_before_c_comment);
- log_rule_B("nl_before_c_comment");
- }
- }
-
- // Control blanks before CPP comments
- if ( (options::nl_before_cpp_comment() > pc->nl_count)
- && chunk_is_token(next, CT_COMMENT_CPP))
- {
- log_rule_B("nl_before_cpp_comment");
-
- // Don't add blanks after an open brace or a case statement
- if ( ( prev == nullptr
- || ( chunk_is_not_token(prev, CT_BRACE_OPEN)
- && chunk_is_not_token(prev, CT_VBRACE_OPEN)
- && chunk_is_not_token(prev, CT_CASE_COLON)))
- && chunk_is_not_token(pcmt, CT_COMMENT_CPP)) // Issue #2383
- {
- blank_line_set(pc, options::nl_before_cpp_comment);
- log_rule_B("nl_before_cpp_comment");
- }
- }
-
- // Control blanks before a class/struct
- if ( ( chunk_is_token(prev, CT_SEMICOLON)
- || chunk_is_token(prev, CT_BRACE_CLOSE))
- && ( get_chunk_parent_type(prev) == CT_CLASS
- || get_chunk_parent_type(prev) == CT_STRUCT))
- {
- c_token_t parent_type = get_chunk_parent_type(prev);
- chunk_t *start = chunk_get_prev_type(prev, parent_type, prev->level);
- chunk_t *tmp = start;
-
- // Is this a class/struct template?
- if (get_chunk_parent_type(tmp) == CT_TEMPLATE)
- {
- tmp = chunk_get_prev_type(tmp, CT_TEMPLATE, prev->level);
- tmp = chunk_get_prev_nc(tmp);
- }
- else
- {
- tmp = chunk_get_prev_nc(tmp);
-
- while ( chunk_is_token(tmp, CT_NEWLINE)
- && chunk_is_comment(tmp->prev))
- {
- tmp = chunk_get_prev_nc(tmp->prev);
- }
-
- if (chunk_is_token(tmp, CT_FRIEND))
- {
- // Account for a friend declaration
- tmp = chunk_get_prev_nc(tmp);
- }
- }
-
- while ( chunk_is_token(tmp, CT_NEWLINE)
- && chunk_is_comment(tmp->prev))
- {
- tmp = chunk_get_prev_nc(tmp->prev);
- }
-
- if ( tmp != nullptr
- && !start->flags.test(PCF_INCOMPLETE))
- {
- if (parent_type == CT_CLASS && options::nl_before_class() > tmp->nl_count)
- {
- log_rule_B("nl_before_class");
- blank_line_set(tmp, options::nl_before_class);
- }
- else if (parent_type == CT_STRUCT && options::nl_before_struct() > tmp->nl_count)
- {
- log_rule_B("nl_before_struct");
- blank_line_set(tmp, options::nl_before_struct);
- }
- }
- }
-
- if ( chunk_is_token(prev, CT_BRACE_CLOSE)
- && get_chunk_parent_type(prev) == CT_NAMESPACE)
- {
- // Control blanks before a namespace
- chunk_t *tmp = chunk_get_prev_type(prev, CT_NAMESPACE, prev->level);
- tmp = chunk_get_prev_nc(tmp);
-
- while ( chunk_is_token(tmp, CT_NEWLINE)
- && chunk_is_comment(tmp->prev))
- {
- tmp = chunk_get_prev_nc(tmp->prev);
- }
-
- if ( tmp != nullptr
- && options::nl_before_namespace() > tmp->nl_count)
- {
- log_rule_B("nl_before_namespace");
- blank_line_set(tmp, options::nl_before_namespace);
- }
-
- // Add blanks after namespace
- if (options::nl_after_namespace() > pc->nl_count)
- {
- log_rule_B("nl_after_namespace");
- blank_line_set(pc, options::nl_after_namespace);
- }
- }
-
- // Control blanks inside empty function body
- if ( chunk_is_token(prev, CT_BRACE_OPEN)
- && chunk_is_token(next, CT_BRACE_CLOSE)
- && ( get_chunk_parent_type(prev) == CT_FUNC_DEF
- || get_chunk_parent_type(prev) == CT_FUNC_CLASS_DEF)
- && options::nl_inside_empty_func() > pc->nl_count
- && prev->flags.test(PCF_EMPTY_BODY))
- {
- blank_line_set(pc, options::nl_inside_empty_func);
- log_rule_B("nl_inside_empty_func");
- }
-
- // Control blanks after an access spec
- if ( (options::nl_after_access_spec() > 0)
- && (options::nl_after_access_spec() != pc->nl_count)
- && chunk_is_token(prev, CT_ACCESS_COLON))
- {
- log_rule_B("nl_after_access_spec");
-
- // Don't add blanks before a closing brace
- if ( next == nullptr
- || ( chunk_is_not_token(next, CT_BRACE_CLOSE)
- && chunk_is_not_token(next, CT_VBRACE_CLOSE)))
- {
- log_rule_B("nl_after_access_spec");
- blank_line_set(pc, options::nl_after_access_spec);
- }
- }
-
- // Add blanks after function bodies
- if ( chunk_is_token(prev, CT_BRACE_CLOSE)
- && ( get_chunk_parent_type(prev) == CT_FUNC_DEF
- || get_chunk_parent_type(prev) == CT_FUNC_CLASS_DEF
- || get_chunk_parent_type(prev) == CT_OC_MSG_DECL
- || get_chunk_parent_type(prev) == CT_ASSIGN))
- {
- if (prev->flags.test(PCF_ONE_LINER))
- {
- if (options::nl_after_func_body_one_liner() > pc->nl_count)
- {
- log_rule_B("nl_after_func_body_one_liner");
- blank_line_set(pc, options::nl_after_func_body_one_liner);
- }
- }
- else
- {
- if ( prev->flags.test(PCF_IN_CLASS)
- && (options::nl_after_func_body_class() > 0))
- {
- log_rule_B("nl_after_func_body_class");
-
- if (options::nl_after_func_body_class() != pc->nl_count)
- {
- log_rule_B("nl_after_func_body_class");
- blank_line_set(pc, options::nl_after_func_body_class);
- }
- }
- else if (options::nl_after_func_body() > 0)
- {
- log_rule_B("nl_after_func_body");
-
- // Issue #1734
- if (!(pc->prev->flags.test(PCF_IN_TRY_BLOCK)))
- {
- if (options::nl_after_func_body() != pc->nl_count)
- {
- log_rule_B("nl_after_func_body");
- blank_line_set(pc, options::nl_after_func_body);
- }
- }
- }
- }
- }
-
- // Add blanks after function prototypes
- if ( ( chunk_is_token(prev, CT_SEMICOLON)
- && get_chunk_parent_type(prev) == CT_FUNC_PROTO)
- || is_func_proto_group(prev, CT_FUNC_DEF))
- {
- if (options::nl_after_func_proto() > pc->nl_count)
- {
- log_rule_B("nl_after_func_proto");
- pc->nl_count = options::nl_after_func_proto();
- MARK_CHANGE();
- }
-
- if ( (options::nl_after_func_proto_group() > pc->nl_count)
- && next != nullptr
- && get_chunk_parent_type(next) != CT_FUNC_PROTO
- && !is_func_proto_group(next, CT_FUNC_DEF))
- {
- log_rule_B("nl_after_func_proto_group");
- blank_line_set(pc, options::nl_after_func_proto_group);
- }
- }
-
- // Issue #411: Add blanks after function class prototypes
- if ( ( chunk_is_token(prev, CT_SEMICOLON)
- && get_chunk_parent_type(prev) == CT_FUNC_CLASS_PROTO)
- || is_func_proto_group(prev, CT_FUNC_CLASS_DEF))
- {
- if (options::nl_after_func_class_proto() > pc->nl_count)
- {
- log_rule_B("nl_after_func_class_proto");
- pc->nl_count = options::nl_after_func_class_proto();
- MARK_CHANGE();
- }
-
- if ( (options::nl_after_func_class_proto_group() > pc->nl_count)
- && chunk_is_not_token(next, CT_FUNC_CLASS_PROTO)
- && get_chunk_parent_type(next) != CT_FUNC_CLASS_PROTO
- && !is_func_proto_group(next, CT_FUNC_CLASS_DEF))
- {
- log_rule_B("nl_after_func_class_proto_group");
- blank_line_set(pc, options::nl_after_func_class_proto_group);
- }
- }
-
- // Add blanks after struct/enum/union/class
- if ( ( chunk_is_token(prev, CT_SEMICOLON)
- || chunk_is_token(prev, CT_BRACE_CLOSE))
- && ( get_chunk_parent_type(prev) == CT_STRUCT
- || get_chunk_parent_type(prev) == CT_ENUM
- || get_chunk_parent_type(prev) == CT_UNION
- || get_chunk_parent_type(prev) == CT_CLASS))
- {
- auto &opt = (get_chunk_parent_type(prev) == CT_CLASS
- ? options::nl_after_class
- : options::nl_after_struct);
- log_rule_B("nl_after_class");
- log_rule_B("nl_after_struct");
-
- if (opt() > pc->nl_count)
- {
- // Issue #1702
- // look back if we have a variable
- chunk_t *tmp = pc;
- bool is_var_def = false;
- bool is_fwd_decl = false;
-
- while ((tmp = chunk_get_prev(tmp)) != nullptr)
- {
- if (tmp->level > pc->level)
- {
- continue;
- }
- LOG_FMT(LBLANK, "%s(%d): %zu:%zu token is '%s'\n",
- __func__, __LINE__, tmp->orig_line, tmp->orig_col, tmp->text());
-
- if (tmp->flags.test(PCF_VAR_DEF))
- {
- is_var_def = true;
- break;
- }
-
- if (chunk_is_token(tmp, get_chunk_parent_type(prev)))
- {
- is_fwd_decl = tmp->flags.test(PCF_INCOMPLETE);
- break;
- }
- }
- LOG_FMT(LBLANK, "%s(%d): var_def = %s, fwd_decl = %s\n",
- __func__, __LINE__,
- is_var_def ? "yes" : "no",
- is_fwd_decl ? "yes" : "no");
-
- if ( !is_var_def
- && !is_fwd_decl)
- {
- blank_line_set(pc, opt);
- }
- }
- }
-
- // Change blanks between a function comment and body
- if ( (options::nl_comment_func_def() != 0)
- && chunk_is_token(pcmt, CT_COMMENT_MULTI)
- && get_chunk_parent_type(pcmt) == CT_COMMENT_WHOLE
- && next != nullptr
- && ( get_chunk_parent_type(next) == CT_FUNC_DEF
- || get_chunk_parent_type(next) == CT_FUNC_CLASS_DEF))
- {
- log_rule_B("nl_comment_func_def");
-
- if (options::nl_comment_func_def() != pc->nl_count)
- {
- log_rule_B("nl_comment_func_def");
- blank_line_set(pc, options::nl_comment_func_def);
- }
- }
-
- // Change blanks after a try-catch-finally block
- if ( (options::nl_after_try_catch_finally() != 0)
- && (options::nl_after_try_catch_finally() != pc->nl_count)
- && prev != nullptr
- && next != nullptr)
- {
- log_rule_B("nl_after_try_catch_finally");
-
- if ( chunk_is_token(prev, CT_BRACE_CLOSE)
- && ( get_chunk_parent_type(prev) == CT_CATCH
- || get_chunk_parent_type(prev) == CT_FINALLY))
- {
- if ( chunk_is_not_token(next, CT_BRACE_CLOSE)
- && chunk_is_not_token(next, CT_CATCH)
- && chunk_is_not_token(next, CT_FINALLY))
- {
- blank_line_set(pc, options::nl_after_try_catch_finally);
- log_rule_B("nl_after_try_catch_finally");
- }
- }
- }
-
- // Change blanks after a try-catch-finally block
- if ( (options::nl_between_get_set() != 0)
- && (options::nl_between_get_set() != pc->nl_count)
- && prev != nullptr
- && next != nullptr)
- {
- log_rule_B("nl_between_get_set");
-
- if ( get_chunk_parent_type(prev) == CT_GETSET
- && chunk_is_not_token(next, CT_BRACE_CLOSE)
- && ( chunk_is_token(prev, CT_BRACE_CLOSE)
- || chunk_is_token(prev, CT_SEMICOLON)))
- {
- blank_line_set(pc, options::nl_between_get_set);
- log_rule_B("nl_between_get_set");
- }
- }
-
- // Change blanks after a try-catch-finally block
- if ( (options::nl_around_cs_property() != 0)
- && (options::nl_around_cs_property() != pc->nl_count)
- && prev != nullptr
- && next != nullptr)
- {
- log_rule_B("nl_around_cs_property");
-
- if ( chunk_is_token(prev, CT_BRACE_CLOSE)
- && get_chunk_parent_type(prev) == CT_CS_PROPERTY
- && chunk_is_not_token(next, CT_BRACE_CLOSE))
- {
- blank_line_set(pc, options::nl_around_cs_property);
- log_rule_B("nl_around_cs_property");
- }
- else if ( get_chunk_parent_type(next) == CT_CS_PROPERTY
- && next->flags.test(PCF_STMT_START))
- {
- blank_line_set(pc, options::nl_around_cs_property);
- log_rule_B("nl_around_cs_property");
- }
- }
-
- // Control blanks before an access spec
- if ( (options::nl_before_access_spec() > 0)
- && (options::nl_before_access_spec() != pc->nl_count)
- && chunk_is_token(next, CT_ACCESS))
- {
- log_rule_B("nl_before_access_spec");
-
- // Don't add blanks after an open brace
- if ( prev == nullptr
- || ( chunk_is_not_token(prev, CT_BRACE_OPEN)
- && chunk_is_not_token(prev, CT_VBRACE_OPEN)))
- {
- log_rule_B("nl_before_access_spec");
- blank_line_set(pc, options::nl_before_access_spec);
- }
- }
-
- // Change blanks inside namespace braces
- if ( (options::nl_inside_namespace() != 0)
- && (options::nl_inside_namespace() != pc->nl_count)
- && ( ( chunk_is_token(prev, CT_BRACE_OPEN)
- && get_chunk_parent_type(prev) == CT_NAMESPACE)
- || ( chunk_is_token(next, CT_BRACE_CLOSE)
- && get_chunk_parent_type(next) == CT_NAMESPACE)))
- {
- log_rule_B("nl_inside_namespace");
- blank_line_set(pc, options::nl_inside_namespace);
- }
-
- // Control blanks before a whole-file #ifdef
- if ( options::nl_before_whole_file_ifdef() != 0
- && options::nl_before_whole_file_ifdef() != pc->nl_count
- && chunk_is_token(next, CT_PREPROC)
- && get_chunk_parent_type(next) == CT_PP_IF
- && ifdef_over_whole_file()
- && next->flags.test(PCF_WF_IF))
- {
- log_rule_B("nl_before_whole_file_ifdef");
- blank_line_set(pc, options::nl_before_whole_file_ifdef);
- }
-
- // Control blanks after a whole-file #ifdef
- if ( options::nl_after_whole_file_ifdef() != 0
- && options::nl_after_whole_file_ifdef() != pc->nl_count)
- {
- chunk_t *pp_start = chunk_get_pp_start(prev);
-
- if ( pp_start != nullptr
- && get_chunk_parent_type(pp_start) == CT_PP_IF
- && ifdef_over_whole_file()
- && pp_start->flags.test(PCF_WF_IF))
- {
- log_rule_B("nl_after_whole_file_ifdef");
- blank_line_set(pc, options::nl_after_whole_file_ifdef);
- }
- }
-
- // Control blanks before a whole-file #endif
- if ( options::nl_before_whole_file_endif() != 0
- && options::nl_before_whole_file_endif() != pc->nl_count
- && chunk_is_token(next, CT_PREPROC)
- && get_chunk_parent_type(next) == CT_PP_ENDIF
- && ifdef_over_whole_file()
- && next->flags.test(PCF_WF_ENDIF))
- {
- log_rule_B("nl_before_whole_file_endif");
- blank_line_set(pc, options::nl_before_whole_file_endif);
- }
-
- // Control blanks after a whole-file #endif
- if ( options::nl_after_whole_file_endif() != 0
- && options::nl_after_whole_file_endif() != pc->nl_count)
- {
- chunk_t *pp_start = chunk_get_pp_start(prev);
-
- if ( pp_start != nullptr
- && get_chunk_parent_type(pp_start) == CT_PP_ENDIF
- && ifdef_over_whole_file()
- && pp_start->flags.test(PCF_WF_ENDIF))
- {
- log_rule_B("nl_after_whole_file_endif");
- blank_line_set(pc, options::nl_after_whole_file_endif);
- }
- }
-
- if ( line_added
- && pc->nl_count > 1)
- {
- --pc->nl_count;
- }
- LOG_FMT(LBLANK, "%s(%d): orig_line is %zu, orig_col is %zu, text is '%s', nl_count is now %zu\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(), pc->nl_count);
- }
-} // do_blank_lines
-
-
-void newlines_cleanup_dup(void)
-{
- LOG_FUNC_ENTRY();
-
- chunk_t *pc = chunk_get_head();
- chunk_t *next = pc;
-
- while (pc != nullptr)
- {
- next = chunk_get_next(next);
-
- if ( chunk_is_token(pc, CT_NEWLINE)
- && chunk_is_token(next, CT_NEWLINE))
- {
- next->nl_count = max(pc->nl_count, next->nl_count);
- chunk_del(pc);
- MARK_CHANGE();
- }
- pc = next;
- }
-} // newlines_cleanup_dup
-
-
-static void newlines_enum_entries(chunk_t *open_brace, iarf_e av)
-{
- LOG_FUNC_ENTRY();
-
- chunk_t *pc = open_brace;
-
- while ( (pc = chunk_get_next_nc(pc)) != nullptr
- && pc->level > open_brace->level)
- {
- if ( (pc->level != (open_brace->level + 1))
- || chunk_is_not_token(pc, CT_COMMA)
- || ( chunk_is_token(pc, CT_COMMA)
- && pc->next != nullptr
- && ( pc->next->type == CT_COMMENT_CPP
- || pc->next->type == CT_COMMENT)))
- {
- continue;
- }
- newline_iarf(pc, av);
- }
- newline_iarf(open_brace, av);
-} // newlines_enum_entries
-
-
-static void newlines_double_space_struct_enum_union(chunk_t *open_brace)
-{
- LOG_FUNC_ENTRY();
-
- chunk_t *pc = open_brace;
-
- while ( (pc = chunk_get_next_nc(pc)) != nullptr
- && pc->level > open_brace->level)
- {
- if ( pc->level != (open_brace->level + 1)
- || chunk_is_not_token(pc, CT_NEWLINE))
- {
- continue;
- }
- /*
- * If the newline is NOT after a comment or a brace open and
- * it is before a comment, then make sure that the newline is
- * at least doubled
- */
- chunk_t *prev = chunk_get_prev(pc);
-
- if ( !chunk_is_comment(prev)
- && chunk_is_not_token(prev, CT_BRACE_OPEN)
- && chunk_is_comment(chunk_get_next(pc)))
- {
- if (pc->nl_count < 2)
- {
- double_newline(pc);
- }
- }
- }
-} // newlines_double_space_struct_enum_union
-
-
-void annotations_newlines(void)
-{
- LOG_FUNC_ENTRY();
-
- chunk_t *next;
- chunk_t *prev;
- chunk_t *ae; // last token of the annotation
- chunk_t *pc = chunk_get_head();
-
- while ( (pc = chunk_get_next_type(pc, CT_ANNOTATION, -1)) != nullptr
- && (next = chunk_get_next_nnl(pc)) != nullptr)
- {
- // find the end of this annotation
- if (chunk_is_paren_open(next))
- {
- // TODO: control newline between annotation and '(' ?
- ae = chunk_skip_to_match(next);
- }
- else
- {
- ae = pc;
- }
-
- if (ae == nullptr)
- {
- break;
- }
- LOG_FMT(LANNOT, "%s(%d): orig_line is %zu, orig_col is %zu, annotation is '%s', end @ orig_line %zu, orig_col %zu, is '%s'\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(),
- ae->orig_line, ae->orig_col, ae->text());
-
- prev = chunk_get_prev(ae); // Issue #1845
- LOG_FMT(LANNOT, "%s(%d): prev->orig_line is %zu, orig_col is %zu, text() is '%s'\n",
- __func__, __LINE__, prev->orig_line, prev->orig_col, prev->text());
- next = chunk_get_next_nnl(ae);
-
- if (chunk_is_token(next, CT_ANNOTATION))
- {
- LOG_FMT(LANNOT, "%s(%d): -- nl_between_annotation\n",
- __func__, __LINE__);
- newline_iarf(ae, options::nl_between_annotation());
- log_rule_B("nl_between_annotation");
- }
-
- if (chunk_is_token(next, CT_NEWLINE))
- {
- if (chunk_is_token(next, CT_ANNOTATION))
- {
- LOG_FMT(LANNOT, "%s(%d): -- nl_after_annotation\n",
- __func__, __LINE__);
- newline_iarf(ae, options::nl_after_annotation());
- log_rule_B("nl_after_annotation");
- }
- }
- }
-} // annotations_newlines
-
-
-bool newlines_between(chunk_t *pc_start, chunk_t *pc_end, size_t &newlines, scope_e scope)
-{
- if ( pc_start == nullptr
- || pc_end == nullptr)
- {
- return(false);
- }
- newlines = 0;
-
- chunk_t *it = pc_start;
-
- for ( ; it != nullptr && it != pc_end; it = chunk_get_next(it, scope))
- {
- newlines += it->nl_count;
- }
-
- // newline count is valid if search stopped on expected chunk
- return(it == pc_end);
-} // newlines_between
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/newlines.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/newlines.h
deleted file mode 100644
index cd5d61db..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/newlines.h
+++ /dev/null
@@ -1,206 +0,0 @@
-/**
- * @file newlines.h
- * prototypes for newlines.c
- *
- * @author Ben Gardner
- * @license GPL v2+
- */
-
-#ifndef NEWLINES_H_INCLUDED
-#define NEWLINES_H_INCLUDED
-
-#include "chunk_list.h"
-
-/**
- * Double the newline, if allowed.
- */
-void double_newline(chunk_t *nl);
-
-/**
- * Remove all extra newlines.
- * Modify line breaks as needed.
- */
-void newlines_remove_newlines(void);
-
-
-/**
- * Remove all newlines that fail the checks performed by the can_increase_nl() function
- */
-void newlines_remove_disallowed();
-
-
-/** Step through all chunks, altering newlines inside parens of if/for/while/do as needed.
- * Handles the style options: nl_multi_line_sparen_open, nl_multi_line_sparen_close, nl_before_if_closing_paren
- */
-void newlines_sparens();
-
-//! Step through all chunks.
-void newlines_cleanup_braces(bool first);
-
-
-void newlines_cleanup_angles();
-
-
-//! Handle insertion/removal of blank lines before if/for/while/do and functions
-void newlines_insert_blank_lines(void);
-
-
-/**
- * Handle removal of extra blank lines in functions
- * x <= 0: do nothing, x > 0: allow max x-1 blank lines
- */
-void newlines_functions_remove_extra_blank_lines(void);
-
-
-void newlines_squeeze_ifdef(void);
-
-/**
- * In case of consecutive closing parens, which follow a newline,
- * the closing paren are altered to different lines, as per the respective opening parens.
- * In the given example, first 2 opening paren are in same line, hence the respective closing paren are put in the same line.
- * input:
- * func1(func2(
- * func3(
- * func4(
- * )
- * )
- * )
- * );
- * output:
- * func1(func2(
- * func3(
- * func4(
- * )
- * )
- * ));
- */
-void newlines_squeeze_paren_close(void);
-
-
-//! removes unnecessary newlines at start and end of a file
-void newlines_eat_start_end(void);
-
-
-/**
- * Searches for a chunk of type chunk_type and moves them, if needed.
- * Will not move tokens that are on their own line or have other than
- * exactly 1 newline before (UO_pos_comma == TRAIL) or after (UO_pos_comma == LEAD).
- * We can't remove a newline if it is right before a preprocessor.
- */
-void newlines_chunk_pos(c_token_t chunk_type, uncrustify::token_pos_e mode);
-
-
-/**
- * Searches for CT_CLASS_COLON and moves them, if needed.
- * Also breaks up the args
- */
-void newlines_class_colon_pos(c_token_t tok);
-
-
-void newlines_cleanup_dup(void);
-
-
-void annotations_newlines(void);
-
-
-void newline_after_multiline_comment(void);
-
-
-//! Handle insertion of blank lines after label colons
-void newline_after_label_colon(void);
-
-
-/**
- * Scans for newline tokens and changes the nl_count.
- * A newline token has a minimum nl_count of 1.
- * Note that a blank line is actually 2 newlines, unless the newline is the
- * first chunk.
- * So, most comparisons have +1 below.
- */
-void do_blank_lines(void);
-
-
-/**
- * Clears the PCF_ONE_LINER flag on the current line.
- * Done right before inserting a newline.
- */
-void undo_one_liner(chunk_t *pc);
-
-
-/**
- * Does a simple Ignore, Add, Remove, or Force after the given chunk
- *
- * @param pc The chunk
- * @param av The IARF value
- */
-void newline_iarf(chunk_t *pc, uncrustify::iarf_e av);
-
-
-/**
- * Add a newline before the chunk if there isn't already a newline present.
- * Virtual braces are skipped, as they do not contribute to the output.
- */
-chunk_t *newline_add_before(chunk_t *pc);
-
-
-/**
- * Add a newline after the chunk if there isn't already a newline present.
- * Virtual braces are skipped, as they do not contribute to the output.
- */
-chunk_t *newline_force_before(chunk_t *pc);
-
-
-chunk_t *newline_add_after(chunk_t *pc);
-
-
-chunk_t *newline_force_after(chunk_t *pc);
-
-
-/**
- * Removes any CT_NEWLINE or CT_NL_CONT between start and end.
- * Start must be before end on the chunk list.
- * If the 'PCF_IN_PREPROC' status differs between two tags, we can't remove
- * the newline.
- *
- * @param start The starting chunk (if it is a newline, it will be removed!)
- * @param end The ending chunk (will not be removed, even if it is a newline)
- *
- * @return true/false - removed something
- */
-void newline_del_between(chunk_t *start, chunk_t *end);
-
-
-/**
- * Add a newline between two tokens.
- * If there is already a newline between then, nothing is done.
- * Otherwise a newline is inserted.
- *
- * If end is CT_BRACE_OPEN and a comment and newline follow, then
- * the brace open is moved instead of inserting a newline.
- *
- * In this situation:
- * if (...) { //comment
- *
- * you get:
- * if (...) //comment
- * {
- */
-chunk_t *newline_add_between(chunk_t *start, chunk_t *end);
-
-
-/**
- * Counts newlines between two chunk elements
- *
- * @param pc_start chunk from which the counting of newlines will start
- * @param pc_end chunk at which the counting of newlines will end
- * @param newlines reference in which the amount of newlines will be written to
- * (will be initialized with 0)
- * @param scope specifies region chunks should/should not be considered.
- *
- * @return false if pc_start or pc_end are nullptr or if pc_end is not reached
- * @return true if above cases are not met
- */
-bool newlines_between(chunk_t *pc_start, chunk_t *pc_end, size_t &newlines, scope_e scope = scope_e::ALL);
-
-
-#endif /* NEWLINES_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/option.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/option.cpp
deleted file mode 100644
index 5089f37a..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/option.cpp
+++ /dev/null
@@ -1,1247 +0,0 @@
-/**
- * @file option.cpp
- * Parses the options from the config file.
- *
- * @author Ben Gardner
- * @author Guy Maurel October 2015, 2021
- * @author Matthew Woehlke since version 0.67
- * @license GPL v2+
- */
-
-#include "option.h"
-
-#include "keywords.h"
-#include "uncrustify.h"
-#include "uncrustify_version.h"
-
-#include <fstream>
-#include <unordered_map>
-
-#include <cctype> // to get std::tolower
-#include <cstdarg> // to get va_start, va_end
-
-
-namespace uncrustify
-{
-
-namespace
-{
-
-static const char *DOC_TEXT_END = u8R"___(
-# Meaning of the settings:
-# Ignore - do not do any changes
-# Add - makes sure there is 1 or more space/brace/newline/etc
-# Force - makes sure there is exactly 1 space/brace/newline/etc,
-# behaves like Add in some contexts
-# Remove - removes space/brace/newline/etc
-#
-#
-# - Token(s) can be treated as specific type(s) with the 'set' option:
-# `set tokenType tokenString [tokenString...]`
-#
-# Example:
-# `set BOOL __AND__ __OR__`
-#
-# tokenTypes are defined in src/token_enum.h, use them without the
-# 'CT_' prefix: 'CT_BOOL' => 'BOOL'
-#
-#
-# - Token(s) can be treated as type(s) with the 'type' option.
-# `type tokenString [tokenString...]`
-#
-# Example:
-# `type int c_uint_8 Rectangle`
-#
-# This can also be achieved with `set TYPE int c_uint_8 Rectangle`
-#
-#
-# To embed whitespace in tokenStrings use the '\' escape character, or quote
-# the tokenStrings. These quotes are supported: "'`
-#
-#
-# - Support for the auto detection of languages through the file ending can be
-# added using the 'file_ext' command.
-# `file_ext langType langString [langString..]`
-#
-# Example:
-# `file_ext CPP .ch .cxx .cpp.in`
-#
-# langTypes are defined in uncrusify_types.h in the lang_flag_e enum, use
-# them without the 'LANG_' prefix: 'LANG_CPP' => 'CPP'
-#
-#
-# - Custom macro-based indentation can be set up using 'macro-open',
-# 'macro-else' and 'macro-close'.
-# `(macro-open | macro-else | macro-close) tokenString`
-#
-# Example:
-# `macro-open BEGIN_TEMPLATE_MESSAGE_MAP`
-# `macro-open BEGIN_MESSAGE_MAP`
-# `macro-close END_MESSAGE_MAP`
-#
-#
-)___";
-
-
-std::vector<OptionGroup> option_groups;
-std::unordered_map<std::string, GenericOption *> option_map;
-
-#define LOG_CONFIG(...) \
- do { log_config(); LOG_FMT(LNOTE, __VA_ARGS__); \
- } while (0)
-
-
-//-----------------------------------------------------------------------------
-constexpr int option_level(int major, int minor, int patch = 0)
-{
- return((major << 20) | (minor << 10) | (patch << 0));
-}
-
-
-//-----------------------------------------------------------------------------
-void log_config()
-{
- // Print the name of the configuration file only once
- static bool config_name_logged = false;
-
- if (!config_name_logged)
- {
- LOG_FMT(LNOTE, "log_config: the configuration file is: %s\n",
- cpd.filename.c_str());
- config_name_logged = true;
- }
-}
-
-
-//-----------------------------------------------------------------------------
-// This identity function exists so that all Option<T>::str can simply call
-// to_string(m_val); this function will be used by Option<string>
-std::string to_string(const std::string &in)
-{
- return(in);
-}
-
-using std::to_string;
-
-
-//-----------------------------------------------------------------------------
-std::string to_lower(const char *in, std::string::size_type size = 0)
-{
- std::string out;
-
- if (size > 0)
- {
- out.reserve(size);
- }
-
- while (*in)
- {
- out += static_cast<char>(std::tolower(*in));
- ++in;
- }
- return(out);
-}
-
-
-//-----------------------------------------------------------------------------
-std::string to_lower(const std::string &in)
-{
- return(to_lower(in.data(), in.size()));
-}
-
-
-//-----------------------------------------------------------------------------
-bool is_arg_sep(int ch)
-{
- return( isspace(ch)
- || ch == ','
- || ch == '=');
-}
-
-
-//-----------------------------------------------------------------------------
-bool is_varg_sep(int ch)
-{
- return(ch == '.');
-}
-
-
-//-----------------------------------------------------------------------------
-std::vector<std::string> split_args(std::string in, const char *filename,
- bool (*is_sep)(int))
-{
- std::vector<std::string> out;
- std::string::size_type n = 0;
- std::string::size_type k = in.size();
-
- // Parse input string
- while (n < k)
- {
- // Skip leading space
- while ( n < k
- && is_sep(in[n]))
- {
- ++n;
- }
-
- // Detect comments or trailing space
- if ( n >= k
- || in[n] == '#')
- {
- break;
- }
-
- // Detect and extract quoted string
- if (const auto *quote = strchr("\'\"`", in[n]))
- {
- const auto start = ++n;
-
- for ((void)n; in[n] != *quote; ++n)
- {
- if ( n < k
- && in[n] == '\\')
- {
- in.erase(n, 1);
- --k;
- }
-
- if (n >= k)
- {
- OptionWarning w{ filename };
- w("found unterminated quoted-string");
- return{};
- }
- }
-
- out.push_back(in.substr(start, n - start));
-
- if ( ++n < k
- && !is_sep(in[n]))
- {
- OptionWarning w{ filename };
- w("unexpected text following quoted-string");
- return{};
- }
- continue;
- }
- // Extract anything else
- const auto start = n;
-
- for ((void)n;
- ( n < k
- && !is_sep(in[n]));
- ++n)
- {
- if (in[n] == '\\')
- {
- in.erase(n, 1);
- --k;
- }
-
- if (n >= k)
- {
- OptionWarning w{ filename };
- w("found unterminated quoted-string");
- return{};
- }
- }
-
- out.push_back(in.substr(start, n - start));
- }
- return(out);
-} // split_args
-
-
-//-----------------------------------------------------------------------------
-bool is_path_relative(const std::string &path)
-{
- assert(!path.empty());
-
-#ifdef WIN32
- // Check for partition labels as indication for an absolute path
- // 'X:\path\to\file' style absolute disk path
- if ( path.size() > 1
- && isalpha(path[0])
- && path[1] == ':')
- {
- return(false);
- }
-
- // Check for double backslashs as indication for a network path
- // '\\server\path\to\file style' absolute UNC path
- if ( path.size() > 1
- && path[0] == '\\'
- && path[1] == '\\')
- {
- return(false);
- }
-#endif
-
- // Check for a slash as indication for a filename with leading path
- // '/path/to/file' style absolute path
- return(path[0] != '/');
-}
-
-
-//-----------------------------------------------------------------------------
-void print_description(FILE *pfile, std::string description,
- const char *eol_marker)
-{
- // Descriptions always start with a '\n', so skip the first character
- for (std::string::size_type start = 1, length = description.length();
- ( start != std::string::npos
- && start < length);
- ++start)
- {
- // Check for empty line so we can squelch trailing whitespace
- if (description[start] == '\n')
- {
- fprintf(pfile, "#%s", eol_marker);
- }
- else
- {
- const auto end = description.find('\n', start);
- fprintf(pfile, "# %s%s",
- description.substr(start, end - start).c_str(), eol_marker);
- start = end;
- }
- }
-}
-
-
-//-----------------------------------------------------------------------------
-bool process_option_line_compat_0_68(const std::string &cmd,
- const std::vector<std::string> &args,
- const char *filename)
-{
- if (cmd == "sp_cpp_lambda_paren")
- {
- OptionWarning w{ filename, OptionWarning::MINOR };
- w("option '%s' is deprecated; use '%s' instead",
- cmd.c_str(), options::sp_cpp_lambda_square_paren.name());
-
- UNUSED(options::sp_cpp_lambda_square_paren.read(args[1].c_str()));
- return(true);
- }
- return(false);
-} // process_option_line_compat_0_68
-
-
-bool process_option_line_compat_0_70(const std::string &cmd,
- const char *filename)
-{
- if (cmd == "sp_word_brace") // Issue #2428
- {
- OptionWarning w{ filename, OptionWarning::MINOR };
- w("option '%s' is deprecated; did you want to use '%s' instead?",
- cmd.c_str(), options::sp_type_brace_init_lst.name());
-
- //UNUSED(options::sp_type_brace_init_lst.read(args[1].c_str()));
- return(true);
- }
- return(false);
-} // process_option_line_compat_0_70
-
-
-bool process_option_line_compat_0_73(const std::string &cmd,
- const char *filename)
-{
- if (cmd == "indent_sing_line_comments") // Issue #3249
- {
- OptionWarning w{ filename, OptionWarning::MINOR };
- w("option '%s' is deprecated; did you want to use '%s' instead?",
- cmd.c_str(), options::indent_single_line_comments_before.name());
-
- //UNUSED(options::indent_single_line_comments_before.read(args[1].c_str()));
- return(true);
- }
-
- if (cmd == "sp_before_tr_emb_cmt") // Issue #3339
- {
- OptionWarning w{ filename, OptionWarning::MINOR };
- w("option '%s' is deprecated; did you want to use '%s' instead?",
- cmd.c_str(), options::sp_before_tr_cmt.name());
-
- //UNUSED(options::sp_before_tr_cmt.read(args[1].c_str()));
- return(true);
- }
-
- if (cmd == "sp_num_before_tr_emb_cmt") // Issue #3339
- {
- OptionWarning w{ filename, OptionWarning::MINOR };
- w("option '%s' is deprecated; did you want to use '%s' instead?",
- cmd.c_str(), options::sp_num_before_tr_cmt.name());
-
- //UNUSED(options::sp_num_before_tr_cmt.read(args[1].c_str()));
- return(true);
- }
- return(false);
-} // process_option_line_compat_0_73
-
-} // namespace
-
-///////////////////////////////////////////////////////////////////////////////
-
-//BEGIN Option<T> and helpers
-
-
-//-----------------------------------------------------------------------------
-OptionWarning::OptionWarning(const char *filename, Severity severity)
-{
- if (severity != MINOR)
- {
- ++cpd.error_count;
- }
-
- if (cpd.line_number != 0)
- {
- fprintf(stderr, "%s:%u: ", filename, cpd.line_number);
- }
- else
- {
- fprintf(stderr, "%s: ", filename);
- }
-}
-
-
-//-----------------------------------------------------------------------------
-OptionWarning::OptionWarning(const GenericOption *opt, Severity severity)
-{
- if (severity != MINOR)
- {
- ++cpd.error_count;
- }
- fprintf(stderr, "Option<%s>: at %s:%d: ", to_string(opt->type()),
- cpd.filename.c_str(), cpd.line_number);
-}
-
-
-//-----------------------------------------------------------------------------
-OptionWarning::~OptionWarning()
-{
- fprintf(stderr, "\n");
- log_flush(true);
-}
-
-
-//-----------------------------------------------------------------------------
-void OptionWarning::operator()(const char *fmt, ...)
-{
- va_list args;
-
- va_start(args, fmt);
- vfprintf(stderr, fmt, args);
- va_end(args);
-}
-
-
-//-----------------------------------------------------------------------------
-void GenericOption::warnUnexpectedValue(const char *actual) const
-{
- OptionWarning w{ this };
-
- auto values = possibleValues();
-
- if (values[1] == nullptr)
- {
- w("Expected %s ", *values);
- }
- else
- {
- w("Expected one of ");
-
- while (*values)
- {
- w("'%s'", *values);
-
- if (*(++values))
- {
- w(", ");
- }
- }
- }
- w(", for '%s'; got '%s'", name(), actual);
-}
-
-
-//-----------------------------------------------------------------------------
-void GenericOption::warnIncompatibleReference(const GenericOption *ref) const
-{
- OptionWarning w{ this };
-
- w("%s references option %s with incompatible type %s",
- name(), ref->name(), to_string(ref->type()));
-}
-
-
-//-----------------------------------------------------------------------------
-template<typename T>
-bool read_enum(const char *in, Option<T> &out)
-{
- assert(in);
-
- if (convert_string(in, out.m_val))
- {
- return(true);
- }
-
- if (const auto *const opt = find_option(in))
- {
- if (opt->type() != out.type())
- {
- out.warnIncompatibleReference(opt);
- return(false);
- }
- auto &topt = *static_cast<const Option<T> *>(opt);
- out.m_val = topt();
- return(true);
- }
- out.warnUnexpectedValue(in);
- return(false);
-}
-
-
-//-----------------------------------------------------------------------------
-template<typename T>
-bool read_number(const char *in, Option<T> &out)
-{
- assert(in);
-
- char *c;
- const auto val = std::strtol(in, &c, 10);
-
- if ( *c == 0
- && out.validate(val))
- {
- out.m_val = static_cast<T>(val);
- return(true);
- }
- bool invert = false;
-
- if (strchr("-", in[0]))
- {
- invert = true;
- ++in;
- }
-
- if (const auto *const opt = find_option(in))
- {
- LOG_CONFIG("%s(%d): line_number is %d, option(%s) %s, ref(%s) %s\n",
- __func__, __LINE__, cpd.line_number,
- to_string(out.type()), out.name(),
- to_string(opt->type()), opt->name());
-
- long tval;
-
- if (opt->type() == OT_NUM)
- {
- auto &sopt = *static_cast<const Option<signed> *>(opt);
- tval = static_cast<long>(sopt());
- }
- else if (opt->type() == OT_UNUM)
- {
- auto &uopt = *static_cast<const Option<unsigned> *>(opt);
- tval = static_cast<long>(uopt());
- }
- else
- {
- out.warnIncompatibleReference(opt);
- return(false);
- }
- const auto rval = (invert ? -tval : tval);
-
- if (out.validate(rval))
- {
- out.m_val = static_cast<T>(rval);
- return(true);
- }
- return(false);
- }
- out.warnUnexpectedValue(in);
- return(false);
-} // read_number
-
-
-//-----------------------------------------------------------------------------
-template<typename T>
-void Option<T>::reset()
-{
- m_val = m_default;
-}
-
-
-//-----------------------------------------------------------------------------
-template<typename T>
-std::string Option<T>::str() const
-{
- return(to_string(m_val));
-}
-
-
-//-----------------------------------------------------------------------------
-template<typename T>
-std::string Option<T>::defaultStr() const
-{
- return(m_default != T{} ? to_string(m_default) : std::string{});
-}
-
-// Explicit instantiations
-template class Option<bool>;
-template class Option<iarf_e>;
-template class Option<line_end_e>;
-template class Option<token_pos_e>;
-template class Option<signed>;
-template class Option<unsigned>;
-template class Option<std::string>;
-
-//END Option<T> and helpers
-
-///////////////////////////////////////////////////////////////////////////////
-
-//BEGIN Option<bool>
-
-
-//-----------------------------------------------------------------------------
-template<>
-option_type_e Option<bool>::type() const
-{
- return(OT_BOOL);
-}
-
-
-//-----------------------------------------------------------------------------
-template<>
-const char *const *Option<bool>::possibleValues() const
-{
- static char const *values[] = { "true", "false", nullptr };
-
- return(values);
-}
-
-
-//-----------------------------------------------------------------------------
-template<>
-bool Option<bool>::read(const char *in)
-{
- assert(in);
-
- if (convert_string(in, m_val))
- {
- return(true);
- }
- bool invert = false;
-
- if (strchr("~!-", in[0]))
- {
- invert = true;
- ++in;
- }
-
- if (const auto *const opt = find_option(in))
- {
- if (opt->type() != OT_BOOL)
- {
- warnIncompatibleReference(opt);
- return(false);
- }
- auto &bopt = *static_cast<const Option<bool> *>(opt);
- m_val = (invert ? !bopt() : bopt());
- return(true);
- }
- warnUnexpectedValue(in);
- return(false);
-}
-
-//END Option<bool>
-
-///////////////////////////////////////////////////////////////////////////////
-
-//BEGIN Option<iarf_e>
-
-
-//-----------------------------------------------------------------------------
-template<>
-option_type_e Option<iarf_e>::type() const
-{
- return(OT_IARF);
-}
-
-
-//-----------------------------------------------------------------------------
-template<>
-const char *const *Option<iarf_e>::possibleValues() const
-{
- return(iarf_values);
-}
-
-
-//-----------------------------------------------------------------------------
-template<>
-bool Option<iarf_e>::read(const char *in)
-{
- return(read_enum(in, *this));
-}
-
-//END Option<iarf_e>
-
-///////////////////////////////////////////////////////////////////////////////
-
-//BEGIN Option<line_end_e>
-
-
-//-----------------------------------------------------------------------------
-template<>
-option_type_e Option<line_end_e>::type() const
-{
- return(OT_LINEEND);
-}
-
-
-//-----------------------------------------------------------------------------
-template<>
-const char *const *Option<line_end_e>::possibleValues() const
-{
- return(line_end_values);
-}
-
-
-//-----------------------------------------------------------------------------
-template<>
-bool Option<line_end_e>::read(const char *in)
-{
- return(read_enum(in, *this));
-}
-
-//END Option<line_end_e>
-
-///////////////////////////////////////////////////////////////////////////////
-
-//BEGIN Option<token_pos_e>
-
-
-//-----------------------------------------------------------------------------
-template<>
-option_type_e Option<token_pos_e>::type() const
-{
- return(OT_TOKENPOS);
-}
-
-
-//-----------------------------------------------------------------------------
-template<>
-const char *const *Option<token_pos_e>::possibleValues() const
-{
- return(token_pos_values);
-}
-
-
-//-----------------------------------------------------------------------------
-template<>
-bool Option<token_pos_e>::read(const char *in)
-{
- return(read_enum(in, *this));
-}
-
-//END Option<token_pos_e>
-
-///////////////////////////////////////////////////////////////////////////////
-
-//BEGIN Option<signed>
-
-
-//-----------------------------------------------------------------------------
-template<>
-option_type_e Option<signed>::type() const
-{
- return(OT_NUM);
-}
-
-
-//-----------------------------------------------------------------------------
-template<>
-const char *const *Option<signed>::possibleValues() const
-{
- static char const *values[] = { "number", nullptr };
-
- return(values);
-}
-
-
-//-----------------------------------------------------------------------------
-template<>
-bool Option<signed>::read(const char *in)
-{
- return(read_number(in, *this));
-}
-
-//END Option<signed>
-
-///////////////////////////////////////////////////////////////////////////////
-
-//BEGIN Option<unsigned>
-
-
-//-----------------------------------------------------------------------------
-template<>
-option_type_e Option<unsigned>::type() const
-{
- return(OT_UNUM);
-}
-
-
-//-----------------------------------------------------------------------------
-template<>
-const char *const *Option<unsigned>::possibleValues() const
-{
- static char const *values[] = { "unsigned number", nullptr };
-
- return(values);
-}
-
-
-//-----------------------------------------------------------------------------
-template<>
-bool Option<unsigned>::read(const char *in)
-{
- return(read_number(in, *this));
-}
-
-//END Option<unsigned>
-
-///////////////////////////////////////////////////////////////////////////////
-
-//BEGIN Option<string>
-
-
-//-----------------------------------------------------------------------------
-template<>
-option_type_e Option<std::string>::type() const
-{
- return(OT_STRING);
-}
-
-
-//-----------------------------------------------------------------------------
-template<>
-const char *const *Option<std::string>::possibleValues() const
-{
- static char const *values[] = { "string", nullptr };
-
- return(values);
-}
-
-
-//-----------------------------------------------------------------------------
-template<>
-bool Option<std::string>::read(const char *in)
-{
- m_val = in;
- return(true);
-}
-
-//END Option<string>
-
-///////////////////////////////////////////////////////////////////////////////
-
-//BEGIN global functions for options
-
-
-//-----------------------------------------------------------------------------
-void begin_option_group(const char *description)
-{
- auto g = OptionGroup{ description, {} };
-
- option_groups.push_back(g);
-}
-
-
-//-----------------------------------------------------------------------------
-void register_option(GenericOption *option)
-{
- assert(!option_groups.empty());
-
- option_groups.back().options.push_back(option);
- option_map.emplace(option->name(), option);
-}
-
-
-//-----------------------------------------------------------------------------
-uncrustify::GenericOption *find_option(const char *name)
-{
- const auto iter = option_map.find(to_lower(name));
-
- if (iter != option_map.end())
- {
- return(iter->second);
- }
- return(nullptr);
-}
-
-
-//-----------------------------------------------------------------------------
-OptionGroup *get_option_group(size_t i)
-{
- if (i >= option_groups.size())
- {
- return(nullptr);
- }
- return(&option_groups[i]);
-}
-
-
-//-----------------------------------------------------------------------------
-size_t get_option_count()
-{
- return(option_map.size());
-}
-
-
-//-----------------------------------------------------------------------------
-void process_option_line(const std::string &config_line, const char *filename,
- int &compat_level)
-{
- // Split line into arguments, and punt if no arguments are present
- auto args = split_args(config_line, filename, is_arg_sep);
-
- if (args.empty())
- {
- return;
- }
- // Check for necessary arguments
- const auto &cmd = to_lower(args.front());
-
- if ( cmd == "set"
- || cmd == "file_ext")
- {
- if (args.size() < 3)
- {
- OptionWarning w{ filename };
- w("%s requires at least three arguments", cmd.c_str());
- return;
- }
- }
- else
- {
- if (args.size() < 2)
- {
- OptionWarning w{ filename };
- w("%s requires at least two arguments", cmd.c_str());
- return;
- }
- }
-
- if (cmd == "type")
- {
- for (size_t i = 1; i < args.size(); ++i)
- {
- add_keyword(args[i], CT_TYPE);
- }
- }
- else if (cmd == "macro-open")
- {
- add_keyword(args[1], CT_MACRO_OPEN);
- }
- else if (cmd == "macro-close")
- {
- add_keyword(args[1], CT_MACRO_CLOSE);
- }
- else if (cmd == "macro-else")
- {
- add_keyword(args[1], CT_MACRO_ELSE);
- }
- else if (cmd == "set")
- {
- const auto token = find_token_name(args[1].c_str());
-
- if (token != CT_NONE)
- {
- LOG_FMT(LNOTE, "%s:%d set '%s':",
- filename, cpd.line_number, args[1].c_str());
-
- for (size_t i = 2; i < args.size(); ++i)
- {
- LOG_FMT(LNOTE, " '%s'", args[i].c_str());
- add_keyword(args[i], token);
- }
-
- LOG_FMT(LNOTE, "\n");
- }
- else
- {
- OptionWarning w{ filename };
- w("%s: unknown type '%s'", cmd.c_str(), args[1].c_str());
- }
- }
-#ifndef EMSCRIPTEN
- else if (cmd == "include")
- {
- auto this_line_number = cpd.line_number;
- const auto &include_path = args[1];
-
- if (include_path.empty())
- {
- OptionWarning w{ filename };
- w("include: path cannot be empty");
- }
- else if (is_path_relative(include_path))
- {
- // include is a relative path to the current config file
- unc_text ut = std::string{ filename };
- ut.resize(static_cast<unsigned>(path_dirname_len(filename)));
- ut.append(include_path);
- UNUSED(load_option_file(ut.c_str(), compat_level));
- }
- else
- {
- // include is an absolute path
- UNUSED(load_option_file(include_path.c_str(), compat_level));
- }
- cpd.line_number = this_line_number;
- }
-#endif
- else if (cmd == "file_ext")
- {
- auto *const lang_arg = args[1].c_str();
-
- for (size_t i = 2; i < args.size(); ++i)
- {
- auto *const lang_name = extension_add(args[i].c_str(), lang_arg);
-
- if (lang_name)
- {
- LOG_FMT(LNOTE, "%s:%d file_ext '%s' => '%s'\n",
- filename, cpd.line_number, args[i].c_str(), lang_name);
- }
- else
- {
- OptionWarning w{ filename };
- w("file_ext: unknown language '%s'", lang_arg);
- break;
- }
- }
- }
- else if (cmd == "using")
- {
- auto vargs = split_args(args[1], filename, is_varg_sep);
-
- if (vargs.size() == 2)
- {
- compat_level = option_level(std::stoi(vargs[0]), std::stoi(vargs[1]));
- }
- else if (vargs.size() == 3)
- {
- compat_level = option_level(std::stoi(vargs[0]),
- std::stoi(vargs[1]),
- std::stoi(vargs[2]));
- }
- else
- {
- OptionWarning w{ filename };
- w("%s requires a version number in the form MAJOR.MINOR[.PATCH]",
- cmd.c_str());
- }
- }
- else
- {
- // Must be a regular option = value
- if (compat_level < option_level(0, 69))
- {
- if (process_option_line_compat_0_68(cmd, args, filename))
- {
- return;
- }
- }
-
- if (compat_level < option_level(0, 71))
- {
- if (process_option_line_compat_0_70(cmd, filename))
- {
- return;
- }
- }
-
- if (compat_level < option_level(0, 74))
- {
- if (process_option_line_compat_0_73(cmd, filename))
- {
- return;
- }
- }
- const auto oi = option_map.find(cmd);
-
- if (oi == option_map.end())
- {
- OptionWarning w{ filename };
- w("unknown option '%s'", args[0].c_str());
- }
- else
- {
- UNUSED(oi->second->read(args[1].c_str()));
- }
- }
-} // process_option_line
-
-
-//-----------------------------------------------------------------------------
-bool load_option_file(const char *filename, int compat_level)
-{
- cpd.line_number = 0;
-
-#ifdef WIN32
- // "/dev/null" not understood by "fopen" in Windows
- if (strcasecmp(filename, "/dev/null") == 0)
- {
- return(true);
- }
-#endif
-
- std::ifstream in;
- in.open(filename, std::ifstream::in);
-
- if (!in.good())
- {
- OptionWarning w{ filename };
- w("file could not be opened: %s (%d)\n",
- strerror(errno), errno);
- return(false);
- }
- // Read in the file line by line
- std::string line;
-
- while (std::getline(in, line))
- {
- // check all characters of the line
- size_t howmany = line.length();
- int ch;
-
- for (size_t n = 0; n < howmany; n++)
- {
- ch = line[n];
-
- // ch >= 0 && ch <= 255
- if ( ch < 0
- || ch > 255)
- {
- // error
- // related to PR #3298
- fprintf(stderr, "%s: line %u: Character at position %zu, is not printable.\n", filename, cpd.line_number + 1, n + 1);
- return(false);
- }
- }
-
- ++cpd.line_number;
- process_option_line(line, filename, compat_level);
- }
- return(true);
-} // load_option_file
-
-
-//-----------------------------------------------------------------------------
-const char *get_eol_marker()
-{
- static char eol[3] = { 0x0A, 0x00, 0x00 };
-
- const auto &lines = cpd.newline.get();
-
- for (size_t i = 0; i < lines.size(); ++i)
- {
- eol[i] = static_cast<char>(lines[i]);
- }
-
- return(eol);
-}
-
-
-//-----------------------------------------------------------------------------
-void save_option_file(FILE *pfile, bool with_doc, bool minimal)
-{
- int non_default_values = 0;
- const char *eol_marker = get_eol_marker();
-
- fprintf(pfile, "# %s%s", UNCRUSTIFY_VERSION, eol_marker);
-
- // Print the options by group
- for (auto &og : option_groups)
- {
- bool first = true;
-
- for (auto *option : og.options)
- {
- const auto val = option->str();
-
- if (!option->isDefault())
- {
- ++non_default_values;
- }
- else if (minimal)
- {
- continue;
- }
- //....................................................................
-
- if (with_doc)
- {
- assert(option->description() != nullptr);
- assert(*option->description() != 0);
-
- if (first)
- {
- fprintf(pfile, "%s#%s", eol_marker, eol_marker);
- print_description(pfile, og.description, eol_marker);
- fprintf(pfile, "#%s", eol_marker);
- }
- fprintf(pfile, "%s", eol_marker);
- print_description(pfile, option->description(), eol_marker);
-
- const auto ds = option->defaultStr();
-
- if (!ds.empty())
- {
- fprintf(pfile, "#%s# Default: %s%s",
- eol_marker, ds.c_str(), eol_marker);
- }
- }
- first = false;
-
- const int name_len = static_cast<int>(strlen(option->name()));
- const int pad = name_len < uncrustify::limits::MAX_OPTION_NAME_LEN
- ? (uncrustify::limits::MAX_OPTION_NAME_LEN - name_len)
- : 1;
-
- fprintf(pfile, "%s%*.s= ", option->name(), pad, " ");
-
- if (option->type() == OT_STRING)
- {
- fprintf(pfile, "\"%s\"", val.c_str());
- }
- else
- {
- fprintf(pfile, "%s", val.c_str());
- }
-
- if (with_doc)
- {
- const int val_len = static_cast<int>(val.length());
- fprintf(pfile, "%*.s # ", 8 - val_len, " ");
-
- for (auto pv = option->possibleValues(); *pv; ++pv)
- {
- fprintf(pfile, "%s%s", *pv, pv[1] ? "/" : "");
- }
- }
- fputs(eol_marker, pfile);
- }
- }
-
- if (with_doc)
- {
- fprintf(pfile, "%s", DOC_TEXT_END);
- }
- print_keywords(pfile); // Print custom keywords
- print_extensions(pfile); // Print custom file extensions
-
- fprintf(pfile, "# option(s) with 'not default' value: %d%s#%s",
- non_default_values, eol_marker, eol_marker);
-} // save_option_file
-
-} // namespace uncrustify
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/options.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/options.h
deleted file mode 100644
index e76a4c4f..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/options.h
+++ /dev/null
@@ -1,4048 +0,0 @@
-/**
- * @file options.h
- * Declarations of all the options.
- *
- * September 2020
- * @author Ben Gardner
- * @author Guy Maurel
- * @author Matthew Woehlke
- * @license GPL v2+
- */
-
-#ifndef OPTIONS_H_INCLUDED
-#define OPTIONS_H_INCLUDED
-
-/* NOTE:
- * This file is processed by make_options.py, and must conform to a particular
- * format. Option groups are marked by '//begin ' (in upper case; this example
- * is lower case to prevent being considered a region marker for code folding)
- * followed by the group description. Options consist of two lines of
- * declaration preceded by one or more lines of C++ comments. The comments form
- * the option description and are taken verbatim, aside from stripping the
- * leading '// '. Only comments immediately preceding an option declaration,
- * with no blank lines, are taken as part of the description, so a blank line
- * may be used to separate notations from a description.
- *
- * An option declaration is 'extern TYPE\nNAME;', optionally followed by
- * ' // = VALUE' if the option has a default value that is different from the
- * default-constructed value type of the option. The 'VALUE' must be valid C++
- * code, and is taken verbatim as an argument when creating the option's
- * instantiation. Note also that the line break, as shown, is required.
- */
-
-#include "option_enum.h"
-
-namespace uncrustify
-{
-
-namespace options
-{
-
-using std::string;
-
-///////////////////////////////////////////////////////////////////////////////
-//BEGIN General options
-
-// The type of line endings.
-extern Option<line_end_e>
-newlines; // = LE_AUTO
-
-// The original size of tabs in the input.
-extern BoundedOption<unsigned, 1, 32>
-input_tab_size; // = 8
-
-// The size of tabs in the output (only used if align_with_tabs=true).
-extern BoundedOption<unsigned, 1, 32>
-output_tab_size; // = 8
-
-// The ASCII value of the string escape char, usually 92 (\) or (Pawn) 94 (^).
-extern BoundedOption<unsigned, 0, 255>
-string_escape_char; // = '\\'
-
-// Alternate string escape char (usually only used for Pawn).
-// Only works right before the quote char.
-extern BoundedOption<unsigned, 0, 255>
-string_escape_char2;
-
-// Replace tab characters found in string literals with the escape sequence \t
-// instead.
-extern Option<bool>
-string_replace_tab_chars;
-
-// Allow interpreting '>=' and '>>=' as part of a template in code like
-// 'void f(list<list<B>>=val);'. If true, 'assert(x<0 && y>=3)' will be broken.
-// Improvements to template detection may make this option obsolete.
-extern Option<bool>
-tok_split_gte;
-
-// Disable formatting of NL_CONT ('\\n') ended lines (e.g. multi-line macros).
-extern Option<bool>
-disable_processing_nl_cont;
-
-// Specify the marker used in comments to disable processing of part of the
-// file.
-extern Option<string>
-disable_processing_cmt; // = UNCRUSTIFY_OFF_TEXT
-
-// Specify the marker used in comments to (re)enable processing in a file.
-extern Option<string>
-enable_processing_cmt; // = UNCRUSTIFY_ON_TEXT
-
-// Enable parsing of digraphs.
-extern Option<bool>
-enable_digraphs;
-
-// Option to allow both disable_processing_cmt and enable_processing_cmt
-// strings, if specified, to be interpreted as ECMAScript regular expressions.
-// If true, a regex search will be performed within comments according to the
-// specified patterns in order to disable/enable processing.
-extern Option<bool>
-processing_cmt_as_regex;
-
-// Add or remove the UTF-8 BOM (recommend 'remove').
-extern Option<iarf_e>
-utf8_bom;
-
-// If the file contains bytes with values between 128 and 255, but is not
-// UTF-8, then output as UTF-8.
-extern Option<bool>
-utf8_byte;
-
-// Force the output encoding to UTF-8.
-extern Option<bool>
-utf8_force;
-
-//END
-
-///////////////////////////////////////////////////////////////////////////////
-//BEGIN Spacing options
-
-// Add or remove space around non-assignment symbolic operators ('+', '/', '%',
-// '<<', and so forth).
-extern Option<iarf_e>
-sp_arith;
-
-// Add or remove space around arithmetic operators '+' and '-'.
-//
-// Overrides sp_arith.
-extern Option<iarf_e>
-sp_arith_additive;
-
-// Add or remove space around assignment operator '=', '+=', etc.
-extern Option<iarf_e>
-sp_assign;
-
-// Add or remove space around '=' in C++11 lambda capture specifications.
-//
-// Overrides sp_assign.
-extern Option<iarf_e>
-sp_cpp_lambda_assign;
-
-// Add or remove space after the capture specification of a C++11 lambda when
-// an argument list is present, as in '[] <here> (int x){ ... }'.
-extern Option<iarf_e>
-sp_cpp_lambda_square_paren;
-
-// Add or remove space after the capture specification of a C++11 lambda with
-// no argument list is present, as in '[] <here> { ... }'.
-extern Option<iarf_e>
-sp_cpp_lambda_square_brace;
-
-// Add or remove space after the opening parenthesis and before the closing
-// parenthesis of a argument list of a C++11 lambda, as in
-// '[]( <here> int x <here> ){ ... }'.
-extern Option<iarf_e>
-sp_cpp_lambda_argument_list;
-
-// Add or remove space after the argument list of a C++11 lambda, as in
-// '[](int x) <here> { ... }'.
-extern Option<iarf_e>
-sp_cpp_lambda_paren_brace;
-
-// Add or remove space between a lambda body and its call operator of an
-// immediately invoked lambda, as in '[]( ... ){ ... } <here> ( ... )'.
-extern Option<iarf_e>
-sp_cpp_lambda_fparen;
-
-// Add or remove space around assignment operator '=' in a prototype.
-//
-// If set to ignore, use sp_assign.
-extern Option<iarf_e>
-sp_assign_default;
-
-// Add or remove space before assignment operator '=', '+=', etc.
-//
-// Overrides sp_assign.
-extern Option<iarf_e>
-sp_before_assign;
-
-// Add or remove space after assignment operator '=', '+=', etc.
-//
-// Overrides sp_assign.
-extern Option<iarf_e>
-sp_after_assign;
-
-// Add or remove space in 'NS_ENUM ('.
-extern Option<iarf_e>
-sp_enum_paren;
-
-// Add or remove space around assignment '=' in enum.
-extern Option<iarf_e>
-sp_enum_assign;
-
-// Add or remove space before assignment '=' in enum.
-//
-// Overrides sp_enum_assign.
-extern Option<iarf_e>
-sp_enum_before_assign;
-
-// Add or remove space after assignment '=' in enum.
-//
-// Overrides sp_enum_assign.
-extern Option<iarf_e>
-sp_enum_after_assign;
-
-// Add or remove space around assignment ':' in enum.
-extern Option<iarf_e>
-sp_enum_colon;
-
-// Add or remove space around preprocessor '##' concatenation operator.
-extern Option<iarf_e>
-sp_pp_concat; // = IARF_ADD
-
-// Add or remove space after preprocessor '#' stringify operator.
-// Also affects the '#@' charizing operator.
-extern Option<iarf_e>
-sp_pp_stringify;
-
-// Add or remove space before preprocessor '#' stringify operator
-// as in '#define x(y) L#y'.
-extern Option<iarf_e>
-sp_before_pp_stringify;
-
-// Add or remove space around boolean operators '&&' and '||'.
-extern Option<iarf_e>
-sp_bool;
-
-// Add or remove space around compare operator '<', '>', '==', etc.
-extern Option<iarf_e>
-sp_compare;
-
-// Add or remove space inside '(' and ')'.
-extern Option<iarf_e>
-sp_inside_paren;
-
-// Add or remove space between nested parentheses, i.e. '((' vs. ') )'.
-extern Option<iarf_e>
-sp_paren_paren;
-
-// Add or remove space between back-to-back parentheses, i.e. ')(' vs. ') ('.
-extern Option<iarf_e>
-sp_cparen_oparen;
-
-// Whether to balance spaces inside nested parentheses.
-extern Option<bool>
-sp_balance_nested_parens;
-
-// Add or remove space between ')' and '{'.
-extern Option<iarf_e>
-sp_paren_brace;
-
-// Add or remove space between nested braces, i.e. '{{' vs. '{ {'.
-extern Option<iarf_e>
-sp_brace_brace;
-
-// Add or remove space before pointer star '*'.
-extern Option<iarf_e>
-sp_before_ptr_star;
-
-// Add or remove space before pointer star '*' that isn't followed by a
-// variable name. If set to ignore, sp_before_ptr_star is used instead.
-extern Option<iarf_e>
-sp_before_unnamed_ptr_star;
-
-// Add or remove space between pointer stars '*', as in 'int ***a;'.
-extern Option<iarf_e>
-sp_between_ptr_star;
-
-// Add or remove space after pointer star '*', if followed by a word.
-//
-// Overrides sp_type_func.
-extern Option<iarf_e>
-sp_after_ptr_star;
-
-// Add or remove space after pointer caret '^', if followed by a word.
-extern Option<iarf_e>
-sp_after_ptr_block_caret;
-
-// Add or remove space after pointer star '*', if followed by a qualifier.
-extern Option<iarf_e>
-sp_after_ptr_star_qualifier;
-
-// Add or remove space after a pointer star '*', if followed by a function
-// prototype or function definition.
-//
-// Overrides sp_after_ptr_star and sp_type_func.
-extern Option<iarf_e>
-sp_after_ptr_star_func;
-
-// Add or remove space after a pointer star '*' in the trailing return of a
-// function prototype or function definition.
-extern Option<iarf_e>
-sp_after_ptr_star_trailing;
-
-// Add or remove space between the pointer star '*' and the name of the variable
-// in a function pointer definition.
-extern Option<iarf_e>
-sp_ptr_star_func_var;
-
-// Add or remove space after a pointer star '*', if followed by an open
-// parenthesis, as in 'void* (*)()'.
-extern Option<iarf_e>
-sp_ptr_star_paren;
-
-// Add or remove space before a pointer star '*', if followed by a function
-// prototype or function definition.
-extern Option<iarf_e>
-sp_before_ptr_star_func;
-
-// Add or remove space before a pointer star '*' in the trailing return of a
-// function prototype or function definition.
-extern Option<iarf_e>
-sp_before_ptr_star_trailing;
-
-// Add or remove space before a reference sign '&'.
-extern Option<iarf_e>
-sp_before_byref;
-
-// Add or remove space before a reference sign '&' that isn't followed by a
-// variable name. If set to ignore, sp_before_byref is used instead.
-extern Option<iarf_e>
-sp_before_unnamed_byref;
-
-// Add or remove space after reference sign '&', if followed by a word.
-//
-// Overrides sp_type_func.
-extern Option<iarf_e>
-sp_after_byref;
-
-// Add or remove space after a reference sign '&', if followed by a function
-// prototype or function definition.
-//
-// Overrides sp_after_byref and sp_type_func.
-extern Option<iarf_e>
-sp_after_byref_func;
-
-// Add or remove space before a reference sign '&', if followed by a function
-// prototype or function definition.
-extern Option<iarf_e>
-sp_before_byref_func;
-
-// Add or remove space between type and word. In cases where total removal of
-// whitespace would be a syntax error, a value of 'remove' is treated the same
-// as 'force'.
-//
-// This also affects some other instances of space following a type that are
-// not covered by other options; for example, between the return type and
-// parenthesis of a function type template argument, between the type and
-// parenthesis of an array parameter, or between 'decltype(...)' and the
-// following word.
-extern Option<iarf_e>
-sp_after_type; // = IARF_FORCE
-
-// Add or remove space between 'decltype(...)' and word,
-// brace or function call.
-extern Option<iarf_e>
-sp_after_decltype;
-
-// (D) Add or remove space before the parenthesis in the D constructs
-// 'template Foo(' and 'class Foo('.
-extern Option<iarf_e>
-sp_before_template_paren;
-
-// Add or remove space between 'template' and '<'.
-// If set to ignore, sp_before_angle is used.
-extern Option<iarf_e>
-sp_template_angle;
-
-// Add or remove space before '<'.
-extern Option<iarf_e>
-sp_before_angle;
-
-// Add or remove space inside '<' and '>'.
-extern Option<iarf_e>
-sp_inside_angle;
-
-// Add or remove space inside '<>'.
-extern Option<iarf_e>
-sp_inside_angle_empty;
-
-// Add or remove space between '>' and ':'.
-extern Option<iarf_e>
-sp_angle_colon;
-
-// Add or remove space after '>'.
-extern Option<iarf_e>
-sp_after_angle;
-
-// Add or remove space between '>' and '(' as found in 'new List<byte>(foo);'.
-extern Option<iarf_e>
-sp_angle_paren;
-
-// Add or remove space between '>' and '()' as found in 'new List<byte>();'.
-extern Option<iarf_e>
-sp_angle_paren_empty;
-
-// Add or remove space between '>' and a word as in 'List<byte> m;' or
-// 'template <typename T> static ...'.
-extern Option<iarf_e>
-sp_angle_word;
-
-// Add or remove space between '>' and '>' in '>>' (template stuff).
-extern Option<iarf_e>
-sp_angle_shift; // = IARF_ADD
-
-// (C++11) Permit removal of the space between '>>' in 'foo<bar<int> >'. Note
-// that sp_angle_shift cannot remove the space without this option.
-extern Option<bool>
-sp_permit_cpp11_shift;
-
-// Add or remove space before '(' of control statements ('if', 'for', 'switch',
-// 'while', etc.).
-extern Option<iarf_e>
-sp_before_sparen;
-
-// Add or remove space inside '(' and ')' of control statements other than
-// 'for'.
-extern Option<iarf_e>
-sp_inside_sparen;
-
-// Add or remove space after '(' of control statements other than 'for'.
-//
-// Overrides sp_inside_sparen.
-extern Option<iarf_e>
-sp_inside_sparen_open;
-
-// Add or remove space before ')' of control statements other than 'for'.
-//
-// Overrides sp_inside_sparen.
-extern Option<iarf_e>
-sp_inside_sparen_close;
-
-// Add or remove space inside '(' and ')' of 'for' statements.
-extern Option<iarf_e>
-sp_inside_for;
-
-// Add or remove space after '(' of 'for' statements.
-//
-// Overrides sp_inside_for.
-extern Option<iarf_e>
-sp_inside_for_open;
-
-// Add or remove space before ')' of 'for' statements.
-//
-// Overrides sp_inside_for.
-extern Option<iarf_e>
-sp_inside_for_close;
-
-// Add or remove space between '((' or '))' of control statements.
-extern Option<iarf_e>
-sp_sparen_paren;
-
-// Add or remove space after ')' of control statements.
-extern Option<iarf_e>
-sp_after_sparen;
-
-// Add or remove space between ')' and '{' of control statements.
-extern Option<iarf_e>
-sp_sparen_brace;
-
-// Add or remove space between 'do' and '{'.
-extern Option<iarf_e>
-sp_do_brace_open;
-
-// Add or remove space between '}' and 'while'.
-extern Option<iarf_e>
-sp_brace_close_while;
-
-// Add or remove space between 'while' and '('. Overrides sp_before_sparen.
-extern Option<iarf_e>
-sp_while_paren_open;
-
-// (D) Add or remove space between 'invariant' and '('.
-extern Option<iarf_e>
-sp_invariant_paren;
-
-// (D) Add or remove space after the ')' in 'invariant (C) c'.
-extern Option<iarf_e>
-sp_after_invariant_paren;
-
-// Add or remove space before empty statement ';' on 'if', 'for' and 'while'.
-extern Option<iarf_e>
-sp_special_semi;
-
-// Add or remove space before ';'.
-extern Option<iarf_e>
-sp_before_semi; // = IARF_REMOVE
-
-// Add or remove space before ';' in non-empty 'for' statements.
-extern Option<iarf_e>
-sp_before_semi_for;
-
-// Add or remove space before a semicolon of an empty left part of a for
-// statement, as in 'for ( <here> ; ; )'.
-extern Option<iarf_e>
-sp_before_semi_for_empty;
-
-// Add or remove space between the semicolons of an empty middle part of a for
-// statement, as in 'for ( ; <here> ; )'.
-extern Option<iarf_e>
-sp_between_semi_for_empty;
-
-// Add or remove space after ';', except when followed by a comment.
-extern Option<iarf_e>
-sp_after_semi; // = IARF_ADD
-
-// Add or remove space after ';' in non-empty 'for' statements.
-extern Option<iarf_e>
-sp_after_semi_for; // = IARF_FORCE
-
-// Add or remove space after the final semicolon of an empty part of a for
-// statement, as in 'for ( ; ; <here> )'.
-extern Option<iarf_e>
-sp_after_semi_for_empty;
-
-// Add or remove space before '[' (except '[]').
-extern Option<iarf_e>
-sp_before_square;
-
-// Add or remove space before '[' for a variable definition.
-extern Option<iarf_e>
-sp_before_vardef_square; // = IARF_REMOVE
-
-// Add or remove space before '[' for asm block.
-extern Option<iarf_e>
-sp_before_square_asm_block;
-
-// Add or remove space before '[]'.
-extern Option<iarf_e>
-sp_before_squares;
-
-// Add or remove space before C++17 structured bindings.
-extern Option<iarf_e>
-sp_cpp_before_struct_binding;
-
-// Add or remove space inside a non-empty '[' and ']'.
-extern Option<iarf_e>
-sp_inside_square;
-
-// Add or remove space inside '[]'.
-extern Option<iarf_e>
-sp_inside_square_empty;
-
-// (OC) Add or remove space inside a non-empty Objective-C boxed array '@[' and
-// ']'. If set to ignore, sp_inside_square is used.
-extern Option<iarf_e>
-sp_inside_square_oc_array;
-
-// Add or remove space after ',', i.e. 'a,b' vs. 'a, b'.
-extern Option<iarf_e>
-sp_after_comma;
-
-// Add or remove space before ',', i.e. 'a,b' vs. 'a ,b'.
-extern Option<iarf_e>
-sp_before_comma; // = IARF_REMOVE
-
-// (C#) Add or remove space between ',' and ']' in multidimensional array type
-// like 'int[,,]'.
-extern Option<iarf_e>
-sp_after_mdatype_commas;
-
-// (C#) Add or remove space between '[' and ',' in multidimensional array type
-// like 'int[,,]'.
-extern Option<iarf_e>
-sp_before_mdatype_commas;
-
-// (C#) Add or remove space between ',' in multidimensional array type
-// like 'int[,,]'.
-extern Option<iarf_e>
-sp_between_mdatype_commas;
-
-// Add or remove space between an open parenthesis and comma,
-// i.e. '(,' vs. '( ,'.
-extern Option<iarf_e>
-sp_paren_comma; // = IARF_FORCE
-
-// Add or remove space after the variadic '...' when preceded by a
-// non-punctuator.
-// The value REMOVE will be overriden with FORCE
-extern Option<iarf_e>
-sp_after_ellipsis;
-
-// Add or remove space before the variadic '...' when preceded by a
-// non-punctuator.
-// The value REMOVE will be overriden with FORCE
-extern Option<iarf_e>
-sp_before_ellipsis;
-
-// Add or remove space between a type and '...'.
-extern Option<iarf_e>
-sp_type_ellipsis;
-
-// Add or remove space between a '*' and '...'.
-extern Option<iarf_e>
-sp_ptr_type_ellipsis;
-
-// (D) Add or remove space between a type and '?'.
-extern Option<iarf_e>
-sp_type_question;
-
-// Add or remove space between ')' and '...'.
-extern Option<iarf_e>
-sp_paren_ellipsis;
-
-// Add or remove space between '&&' and '...'.
-extern Option<iarf_e>
-sp_byref_ellipsis;
-
-// Add or remove space between ')' and a qualifier such as 'const'.
-extern Option<iarf_e>
-sp_paren_qualifier;
-
-// Add or remove space between ')' and 'noexcept'.
-extern Option<iarf_e>
-sp_paren_noexcept;
-
-// Add or remove space after class ':'.
-extern Option<iarf_e>
-sp_after_class_colon;
-
-// Add or remove space before class ':'.
-extern Option<iarf_e>
-sp_before_class_colon;
-
-// Add or remove space after class constructor ':'.
-extern Option<iarf_e>
-sp_after_constr_colon; // = IARF_ADD
-
-// Add or remove space before class constructor ':'.
-extern Option<iarf_e>
-sp_before_constr_colon; // = IARF_ADD
-
-// Add or remove space before case ':'.
-extern Option<iarf_e>
-sp_before_case_colon; // = IARF_REMOVE
-
-// Add or remove space between 'operator' and operator sign.
-extern Option<iarf_e>
-sp_after_operator;
-
-// Add or remove space between the operator symbol and the open parenthesis, as
-// in 'operator ++('.
-extern Option<iarf_e>
-sp_after_operator_sym;
-
-// Overrides sp_after_operator_sym when the operator has no arguments, as in
-// 'operator *()'.
-extern Option<iarf_e>
-sp_after_operator_sym_empty;
-
-// Add or remove space after C/D cast, i.e. 'cast(int)a' vs. 'cast(int) a' or
-// '(int)a' vs. '(int) a'.
-extern Option<iarf_e>
-sp_after_cast;
-
-// Add or remove spaces inside cast parentheses.
-extern Option<iarf_e>
-sp_inside_paren_cast;
-
-// Add or remove space between the type and open parenthesis in a C++ cast,
-// i.e. 'int(exp)' vs. 'int (exp)'.
-extern Option<iarf_e>
-sp_cpp_cast_paren;
-
-// Add or remove space between 'sizeof' and '('.
-extern Option<iarf_e>
-sp_sizeof_paren;
-
-// Add or remove space between 'sizeof' and '...'.
-extern Option<iarf_e>
-sp_sizeof_ellipsis;
-
-// Add or remove space between 'sizeof...' and '('.
-extern Option<iarf_e>
-sp_sizeof_ellipsis_paren;
-
-// Add or remove space between '...' and a parameter pack.
-extern Option<iarf_e>
-sp_ellipsis_parameter_pack;
-
-// Add or remove space between a parameter pack and '...'.
-extern Option<iarf_e>
-sp_parameter_pack_ellipsis;
-
-// Add or remove space between 'decltype' and '('.
-extern Option<iarf_e>
-sp_decltype_paren;
-
-// (Pawn) Add or remove space after the tag keyword.
-extern Option<iarf_e>
-sp_after_tag;
-
-// Add or remove space inside enum '{' and '}'.
-extern Option<iarf_e>
-sp_inside_braces_enum;
-
-// Add or remove space inside struct/union '{' and '}'.
-extern Option<iarf_e>
-sp_inside_braces_struct;
-
-// (OC) Add or remove space inside Objective-C boxed dictionary '{' and '}'
-extern Option<iarf_e>
-sp_inside_braces_oc_dict;
-
-// Add or remove space after open brace in an unnamed temporary
-// direct-list-initialization
-// if statement is a brace_init_lst
-// works only if sp_brace_brace is set to ignore.
-extern Option<iarf_e>
-sp_after_type_brace_init_lst_open;
-
-// Add or remove space before close brace in an unnamed temporary
-// direct-list-initialization
-// if statement is a brace_init_lst
-// works only if sp_brace_brace is set to ignore.
-extern Option<iarf_e>
-sp_before_type_brace_init_lst_close;
-
-// Add or remove space inside an unnamed temporary direct-list-initialization
-// if statement is a brace_init_lst
-// works only if sp_brace_brace is set to ignore
-// works only if sp_before_type_brace_init_lst_close is set to ignore.
-extern Option<iarf_e>
-sp_inside_type_brace_init_lst;
-
-// Add or remove space inside '{' and '}'.
-extern Option<iarf_e>
-sp_inside_braces;
-
-// Add or remove space inside '{}'.
-extern Option<iarf_e>
-sp_inside_braces_empty;
-
-// Add or remove space around trailing return operator '->'.
-extern Option<iarf_e>
-sp_trailing_return;
-
-// Add or remove space between return type and function name. A minimum of 1
-// is forced except for pointer return types.
-extern Option<iarf_e>
-sp_type_func;
-
-// Add or remove space between type and open brace of an unnamed temporary
-// direct-list-initialization.
-extern Option<iarf_e>
-sp_type_brace_init_lst;
-
-// Add or remove space between function name and '(' on function declaration.
-extern Option<iarf_e>
-sp_func_proto_paren;
-
-// Add or remove space between function name and '()' on function declaration
-// without parameters.
-extern Option<iarf_e>
-sp_func_proto_paren_empty;
-
-// Add or remove space between function name and '(' with a typedef specifier.
-extern Option<iarf_e>
-sp_func_type_paren;
-
-// Add or remove space between alias name and '(' of a non-pointer function type typedef.
-extern Option<iarf_e>
-sp_func_def_paren;
-
-// Add or remove space between function name and '()' on function definition
-// without parameters.
-extern Option<iarf_e>
-sp_func_def_paren_empty;
-
-// Add or remove space inside empty function '()'.
-// Overrides sp_after_angle unless use_sp_after_angle_always is set to true.
-extern Option<iarf_e>
-sp_inside_fparens;
-
-// Add or remove space inside function '(' and ')'.
-extern Option<iarf_e>
-sp_inside_fparen;
-
-// Add or remove space inside the first parentheses in a function type, as in
-// 'void (*x)(...)'.
-extern Option<iarf_e>
-sp_inside_tparen;
-
-// Add or remove space between the ')' and '(' in a function type, as in
-// 'void (*x)(...)'.
-extern Option<iarf_e>
-sp_after_tparen_close;
-
-// Add or remove space between ']' and '(' when part of a function call.
-extern Option<iarf_e>
-sp_square_fparen;
-
-// Add or remove space between ')' and '{' of function.
-extern Option<iarf_e>
-sp_fparen_brace;
-
-// Add or remove space between ')' and '{' of a function call in object
-// initialization.
-//
-// Overrides sp_fparen_brace.
-extern Option<iarf_e>
-sp_fparen_brace_initializer;
-
-// (Java) Add or remove space between ')' and '{{' of double brace initializer.
-extern Option<iarf_e>
-sp_fparen_dbrace;
-
-// Add or remove space between function name and '(' on function calls.
-extern Option<iarf_e>
-sp_func_call_paren;
-
-// Add or remove space between function name and '()' on function calls without
-// parameters. If set to ignore (the default), sp_func_call_paren is used.
-extern Option<iarf_e>
-sp_func_call_paren_empty;
-
-// Add or remove space between the user function name and '(' on function
-// calls. You need to set a keyword to be a user function in the config file,
-// like:
-// set func_call_user tr _ i18n
-extern Option<iarf_e>
-sp_func_call_user_paren;
-
-// Add or remove space inside user function '(' and ')'.
-extern Option<iarf_e>
-sp_func_call_user_inside_fparen;
-
-// Add or remove space between nested parentheses with user functions,
-// i.e. '((' vs. '( ('.
-extern Option<iarf_e>
-sp_func_call_user_paren_paren;
-
-// Add or remove space between a constructor/destructor and the open
-// parenthesis.
-extern Option<iarf_e>
-sp_func_class_paren;
-
-// Add or remove space between a constructor without parameters or destructor
-// and '()'.
-extern Option<iarf_e>
-sp_func_class_paren_empty;
-
-// Add or remove space after 'return'.
-extern Option<iarf_e>
-sp_return; // = IARF_FORCE
-
-// Add or remove space between 'return' and '('.
-extern Option<iarf_e>
-sp_return_paren;
-
-// Add or remove space between 'return' and '{'.
-extern Option<iarf_e>
-sp_return_brace;
-
-// Add or remove space between '__attribute__' and '('.
-extern Option<iarf_e>
-sp_attribute_paren;
-
-// Add or remove space between 'defined' and '(' in '#if defined (FOO)'.
-extern Option<iarf_e>
-sp_defined_paren;
-
-// Add or remove space between 'throw' and '(' in 'throw (something)'.
-extern Option<iarf_e>
-sp_throw_paren;
-
-// Add or remove space between 'throw' and anything other than '(' as in
-// '@throw [...];'.
-extern Option<iarf_e>
-sp_after_throw;
-
-// Add or remove space between 'catch' and '(' in 'catch (something) { }'.
-// If set to ignore, sp_before_sparen is used.
-extern Option<iarf_e>
-sp_catch_paren;
-
-// (OC) Add or remove space between '@catch' and '('
-// in '@catch (something) { }'. If set to ignore, sp_catch_paren is used.
-extern Option<iarf_e>
-sp_oc_catch_paren;
-
-// (OC) Add or remove space before Objective-C protocol list
-// as in '@protocol Protocol<here><Protocol_A>' or '@interface MyClass : NSObject<here><MyProtocol>'.
-extern Option<iarf_e>
-sp_before_oc_proto_list;
-
-// (OC) Add or remove space between class name and '('
-// in '@interface className(categoryName)<ProtocolName>:BaseClass'
-extern Option<iarf_e>
-sp_oc_classname_paren;
-
-// (D) Add or remove space between 'version' and '('
-// in 'version (something) { }'. If set to ignore, sp_before_sparen is used.
-extern Option<iarf_e>
-sp_version_paren;
-
-// (D) Add or remove space between 'scope' and '('
-// in 'scope (something) { }'. If set to ignore, sp_before_sparen is used.
-extern Option<iarf_e>
-sp_scope_paren;
-
-// Add or remove space between 'super' and '(' in 'super (something)'.
-extern Option<iarf_e>
-sp_super_paren; // = IARF_REMOVE
-
-// Add or remove space between 'this' and '(' in 'this (something)'.
-extern Option<iarf_e>
-sp_this_paren; // = IARF_REMOVE
-
-// Add or remove space between a macro name and its definition.
-extern Option<iarf_e>
-sp_macro;
-
-// Add or remove space between a macro function ')' and its definition.
-extern Option<iarf_e>
-sp_macro_func;
-
-// Add or remove space between 'else' and '{' if on the same line.
-extern Option<iarf_e>
-sp_else_brace;
-
-// Add or remove space between '}' and 'else' if on the same line.
-extern Option<iarf_e>
-sp_brace_else;
-
-// Add or remove space between '}' and the name of a typedef on the same line.
-extern Option<iarf_e>
-sp_brace_typedef;
-
-// Add or remove space before the '{' of a 'catch' statement, if the '{' and
-// 'catch' are on the same line, as in 'catch (decl) <here> {'.
-extern Option<iarf_e>
-sp_catch_brace;
-
-// (OC) Add or remove space before the '{' of a '@catch' statement, if the '{'
-// and '@catch' are on the same line, as in '@catch (decl) <here> {'.
-// If set to ignore, sp_catch_brace is used.
-extern Option<iarf_e>
-sp_oc_catch_brace;
-
-// Add or remove space between '}' and 'catch' if on the same line.
-extern Option<iarf_e>
-sp_brace_catch;
-
-// (OC) Add or remove space between '}' and '@catch' if on the same line.
-// If set to ignore, sp_brace_catch is used.
-extern Option<iarf_e>
-sp_oc_brace_catch;
-
-// Add or remove space between 'finally' and '{' if on the same line.
-extern Option<iarf_e>
-sp_finally_brace;
-
-// Add or remove space between '}' and 'finally' if on the same line.
-extern Option<iarf_e>
-sp_brace_finally;
-
-// Add or remove space between 'try' and '{' if on the same line.
-extern Option<iarf_e>
-sp_try_brace;
-
-// Add or remove space between get/set and '{' if on the same line.
-extern Option<iarf_e>
-sp_getset_brace;
-
-// Add or remove space between a variable and '{' for C++ uniform
-// initialization.
-extern Option<iarf_e>
-sp_word_brace_init_lst;
-
-// Add or remove space between a variable and '{' for a namespace.
-extern Option<iarf_e>
-sp_word_brace_ns; // = IARF_ADD
-
-// Add or remove space before the '::' operator.
-extern Option<iarf_e>
-sp_before_dc;
-
-// Add or remove space after the '::' operator.
-extern Option<iarf_e>
-sp_after_dc;
-
-// (D) Add or remove around the D named array initializer ':' operator.
-extern Option<iarf_e>
-sp_d_array_colon;
-
-// Add or remove space after the '!' (not) unary operator.
-extern Option<iarf_e>
-sp_not; // = IARF_REMOVE
-
-// Add or remove space after the '~' (invert) unary operator.
-extern Option<iarf_e>
-sp_inv; // = IARF_REMOVE
-
-// Add or remove space after the '&' (address-of) unary operator. This does not
-// affect the spacing after a '&' that is part of a type.
-extern Option<iarf_e>
-sp_addr; // = IARF_REMOVE
-
-// Add or remove space around the '.' or '->' operators.
-extern Option<iarf_e>
-sp_member; // = IARF_REMOVE
-
-// Add or remove space after the '*' (dereference) unary operator. This does
-// not affect the spacing after a '*' that is part of a type.
-extern Option<iarf_e>
-sp_deref; // = IARF_REMOVE
-
-// Add or remove space after '+' or '-', as in 'x = -5' or 'y = +7'.
-extern Option<iarf_e>
-sp_sign; // = IARF_REMOVE
-
-// Add or remove space between '++' and '--' the word to which it is being
-// applied, as in '(--x)' or 'y++;'.
-extern Option<iarf_e>
-sp_incdec; // = IARF_REMOVE
-
-// Add or remove space before a backslash-newline at the end of a line.
-extern Option<iarf_e>
-sp_before_nl_cont; // = IARF_ADD
-
-// (OC) Add or remove space after the scope '+' or '-', as in '-(void) foo;'
-// or '+(int) bar;'.
-extern Option<iarf_e>
-sp_after_oc_scope;
-
-// (OC) Add or remove space after the colon in message specs,
-// i.e. '-(int) f:(int) x;' vs. '-(int) f: (int) x;'.
-extern Option<iarf_e>
-sp_after_oc_colon;
-
-// (OC) Add or remove space before the colon in message specs,
-// i.e. '-(int) f: (int) x;' vs. '-(int) f : (int) x;'.
-extern Option<iarf_e>
-sp_before_oc_colon;
-
-// (OC) Add or remove space after the colon in immutable dictionary expression
-// 'NSDictionary *test = @{@"foo" :@"bar"};'.
-extern Option<iarf_e>
-sp_after_oc_dict_colon;
-
-// (OC) Add or remove space before the colon in immutable dictionary expression
-// 'NSDictionary *test = @{@"foo" :@"bar"};'.
-extern Option<iarf_e>
-sp_before_oc_dict_colon;
-
-// (OC) Add or remove space after the colon in message specs,
-// i.e. '[object setValue:1];' vs. '[object setValue: 1];'.
-extern Option<iarf_e>
-sp_after_send_oc_colon;
-
-// (OC) Add or remove space before the colon in message specs,
-// i.e. '[object setValue:1];' vs. '[object setValue :1];'.
-extern Option<iarf_e>
-sp_before_send_oc_colon;
-
-// (OC) Add or remove space after the (type) in message specs,
-// i.e. '-(int)f: (int) x;' vs. '-(int)f: (int)x;'.
-extern Option<iarf_e>
-sp_after_oc_type;
-
-// (OC) Add or remove space after the first (type) in message specs,
-// i.e. '-(int) f:(int)x;' vs. '-(int)f:(int)x;'.
-extern Option<iarf_e>
-sp_after_oc_return_type;
-
-// (OC) Add or remove space between '@selector' and '(',
-// i.e. '@selector(msgName)' vs. '@selector (msgName)'.
-// Also applies to '@protocol()' constructs.
-extern Option<iarf_e>
-sp_after_oc_at_sel;
-
-// (OC) Add or remove space between '@selector(x)' and the following word,
-// i.e. '@selector(foo) a:' vs. '@selector(foo)a:'.
-extern Option<iarf_e>
-sp_after_oc_at_sel_parens;
-
-// (OC) Add or remove space inside '@selector' parentheses,
-// i.e. '@selector(foo)' vs. '@selector( foo )'.
-// Also applies to '@protocol()' constructs.
-extern Option<iarf_e>
-sp_inside_oc_at_sel_parens;
-
-// (OC) Add or remove space before a block pointer caret,
-// i.e. '^int (int arg){...}' vs. ' ^int (int arg){...}'.
-extern Option<iarf_e>
-sp_before_oc_block_caret;
-
-// (OC) Add or remove space after a block pointer caret,
-// i.e. '^int (int arg){...}' vs. '^ int (int arg){...}'.
-extern Option<iarf_e>
-sp_after_oc_block_caret;
-
-// (OC) Add or remove space between the receiver and selector in a message,
-// as in '[receiver selector ...]'.
-extern Option<iarf_e>
-sp_after_oc_msg_receiver;
-
-// (OC) Add or remove space after '@property'.
-extern Option<iarf_e>
-sp_after_oc_property;
-
-// (OC) Add or remove space between '@synchronized' and the open parenthesis,
-// i.e. '@synchronized(foo)' vs. '@synchronized (foo)'.
-extern Option<iarf_e>
-sp_after_oc_synchronized;
-
-// Add or remove space around the ':' in 'b ? t : f'.
-extern Option<iarf_e>
-sp_cond_colon;
-
-// Add or remove space before the ':' in 'b ? t : f'.
-//
-// Overrides sp_cond_colon.
-extern Option<iarf_e>
-sp_cond_colon_before;
-
-// Add or remove space after the ':' in 'b ? t : f'.
-//
-// Overrides sp_cond_colon.
-extern Option<iarf_e>
-sp_cond_colon_after;
-
-// Add or remove space around the '?' in 'b ? t : f'.
-extern Option<iarf_e>
-sp_cond_question;
-
-// Add or remove space before the '?' in 'b ? t : f'.
-//
-// Overrides sp_cond_question.
-extern Option<iarf_e>
-sp_cond_question_before;
-
-// Add or remove space after the '?' in 'b ? t : f'.
-//
-// Overrides sp_cond_question.
-extern Option<iarf_e>
-sp_cond_question_after;
-
-// In the abbreviated ternary form '(a ?: b)', add or remove space between '?'
-// and ':'.
-//
-// Overrides all other sp_cond_* options.
-extern Option<iarf_e>
-sp_cond_ternary_short;
-
-// Fix the spacing between 'case' and the label. Only 'ignore' and 'force' make
-// sense here.
-extern Option<iarf_e>
-sp_case_label;
-
-// (D) Add or remove space around the D '..' operator.
-extern Option<iarf_e>
-sp_range;
-
-// Add or remove space after ':' in a Java/C++11 range-based 'for',
-// as in 'for (Type var : <here> expr)'.
-extern Option<iarf_e>
-sp_after_for_colon;
-
-// Add or remove space before ':' in a Java/C++11 range-based 'for',
-// as in 'for (Type var <here> : expr)'.
-extern Option<iarf_e>
-sp_before_for_colon;
-
-// (D) Add or remove space between 'extern' and '(' as in 'extern <here> (C)'.
-extern Option<iarf_e>
-sp_extern_paren;
-
-// Add or remove space after the opening of a C++ comment, as in '// <here> A'.
-extern Option<iarf_e>
-sp_cmt_cpp_start;
-
-// Add or remove space in a C++ region marker comment, as in '// <here> BEGIN'.
-// A region marker is defined as a comment which is not preceded by other text
-// (i.e. the comment is the first non-whitespace on the line), and which starts
-// with either 'BEGIN' or 'END'.
-//
-// Overrides sp_cmt_cpp_start.
-extern Option<iarf_e>
-sp_cmt_cpp_region;
-
-// If true, space added with sp_cmt_cpp_start will be added after Doxygen
-// sequences like '///', '///<', '//!' and '//!<'.
-extern Option<bool>
-sp_cmt_cpp_doxygen;
-
-// If true, space added with sp_cmt_cpp_start will be added after Qt translator
-// or meta-data comments like '//:', '//=', and '//~'.
-extern Option<bool>
-sp_cmt_cpp_qttr;
-
-// Add or remove space between #else or #endif and a trailing comment.
-extern Option<iarf_e>
-sp_endif_cmt;
-
-// Add or remove space after 'new', 'delete' and 'delete[]'.
-extern Option<iarf_e>
-sp_after_new;
-
-// Add or remove space between 'new' and '(' in 'new()'.
-extern Option<iarf_e>
-sp_between_new_paren;
-
-// Add or remove space between ')' and type in 'new(foo) BAR'.
-extern Option<iarf_e>
-sp_after_newop_paren;
-
-// Add or remove space inside parenthesis of the new operator
-// as in 'new(foo) BAR'.
-extern Option<iarf_e>
-sp_inside_newop_paren;
-
-// Add or remove space after the open parenthesis of the new operator,
-// as in 'new(foo) BAR'.
-//
-// Overrides sp_inside_newop_paren.
-extern Option<iarf_e>
-sp_inside_newop_paren_open;
-
-// Add or remove space before the close parenthesis of the new operator,
-// as in 'new(foo) BAR'.
-//
-// Overrides sp_inside_newop_paren.
-extern Option<iarf_e>
-sp_inside_newop_paren_close;
-
-// Add or remove space before a trailing comment.
-extern Option<iarf_e>
-sp_before_tr_cmt;
-
-// Number of spaces before a trailing comment.
-extern BoundedOption<unsigned, 0, 16>
-sp_num_before_tr_cmt;
-
-// Add or remove space before an embedded comment.
-extern Option<iarf_e>
-sp_before_emb_cmt; // = IARF_FORCE
-
-// Number of spaces before an embedded comment.
-extern BoundedOption<unsigned, 0, 16>
-sp_num_before_emb_cmt; // = 1
-
-// Add or remove space after an embedded comment.
-extern Option<iarf_e>
-sp_after_emb_cmt; // = IARF_FORCE
-
-// Number of spaces after an embedded comment.
-extern BoundedOption<unsigned, 0, 16>
-sp_num_after_emb_cmt; // = 1
-
-// (Java) Add or remove space between an annotation and the open parenthesis.
-extern Option<iarf_e>
-sp_annotation_paren;
-
-// If true, vbrace tokens are dropped to the previous token and skipped.
-extern Option<bool>
-sp_skip_vbrace_tokens;
-
-// Add or remove space after 'noexcept'.
-extern Option<iarf_e>
-sp_after_noexcept;
-
-// Add or remove space after '_'.
-extern Option<iarf_e>
-sp_vala_after_translation;
-
-// If true, a <TAB> is inserted after #define.
-extern Option<bool>
-force_tab_after_define;
-
-//END
-
-///////////////////////////////////////////////////////////////////////////////
-//BEGIN Indenting options
-
-// The number of columns to indent per level. Usually 2, 3, 4, or 8.
-extern BoundedOption<unsigned, 0, 16>
-indent_columns; // = 8
-
-// The continuation indent. If non-zero, this overrides the indent of '(', '['
-// and '=' continuation indents. Negative values are OK; negative value is
-// absolute and not increased for each '(' or '[' level.
-//
-// For FreeBSD, this is set to 4.
-extern BoundedOption<signed, -16, 16>
-indent_continue;
-
-// The continuation indent, only for class header line(s). If non-zero, this
-// overrides the indent of 'class' continuation indents.
-extern BoundedOption<unsigned, 0, 16>
-indent_continue_class_head;
-
-// Whether to indent empty lines (i.e. lines which contain only spaces before
-// the newline character).
-extern Option<bool>
-indent_single_newlines;
-
-// The continuation indent for func_*_param if they are true. If non-zero, this
-// overrides the indent.
-extern BoundedOption<unsigned, 0, 16>
-indent_param;
-
-// How to use tabs when indenting code.
-//
-// 0: Spaces only
-// 1: Indent with tabs to brace level, align with spaces (default)
-// 2: Indent and align with tabs, using spaces when not on a tabstop
-extern BoundedOption<unsigned, 0, 2>
-indent_with_tabs; // = 1
-
-// Whether to indent comments that are not at a brace level with tabs on a
-// tabstop. Requires indent_with_tabs=2. If false, will use spaces.
-extern Option<bool>
-indent_cmt_with_tabs;
-
-// Whether to indent strings broken by '\' so that they line up.
-extern Option<bool>
-indent_align_string;
-
-// The number of spaces to indent multi-line XML strings.
-// Requires indent_align_string=true.
-extern BoundedOption<unsigned, 0, 16>
-indent_xml_string;
-
-// Spaces to indent '{' from level.
-extern BoundedOption<unsigned, 0, 16>
-indent_brace;
-
-// Whether braces are indented to the body level.
-extern Option<bool>
-indent_braces;
-
-// Whether to disable indenting function braces if indent_braces=true.
-extern Option<bool>
-indent_braces_no_func;
-
-// Whether to disable indenting class braces if indent_braces=true.
-extern Option<bool>
-indent_braces_no_class;
-
-// Whether to disable indenting struct braces if indent_braces=true.
-extern Option<bool>
-indent_braces_no_struct;
-
-// Whether to indent based on the size of the brace parent,
-// i.e. 'if' => 3 spaces, 'for' => 4 spaces, etc.
-extern Option<bool>
-indent_brace_parent;
-
-// Whether to indent based on the open parenthesis instead of the open brace
-// in '({\n'.
-extern Option<bool>
-indent_paren_open_brace;
-
-// (C#) Whether to indent the brace of a C# delegate by another level.
-extern Option<bool>
-indent_cs_delegate_brace;
-
-// (C#) Whether to indent a C# delegate (to handle delegates with no brace) by
-// another level.
-extern Option<bool>
-indent_cs_delegate_body;
-
-// Whether to indent the body of a 'namespace'.
-extern Option<bool>
-indent_namespace;
-
-// Whether to indent only the first namespace, and not any nested namespaces.
-// Requires indent_namespace=true.
-extern Option<bool>
-indent_namespace_single_indent;
-
-// The number of spaces to indent a namespace block.
-// If set to zero, use the value indent_columns
-extern BoundedOption<unsigned, 0, 16>
-indent_namespace_level;
-
-// If the body of the namespace is longer than this number, it won't be
-// indented. Requires indent_namespace=true. 0 means no limit.
-extern BoundedOption<unsigned, 0, 255>
-indent_namespace_limit;
-
-// Whether the 'extern "C"' body is indented.
-extern Option<bool>
-indent_extern;
-
-// Whether the 'class' body is indented.
-extern Option<bool>
-indent_class;
-
-// Additional indent before the leading base class colon.
-// Negative values decrease indent down to the first column.
-// Requires a newline break before colon (see pos_class_colon
-// and nl_class_colon)
-extern BoundedOption<signed, -16, 16>
-indent_before_class_colon;
-
-// Whether to indent the stuff after a leading base class colon.
-extern Option<bool>
-indent_class_colon;
-
-// Whether to indent based on a class colon instead of the stuff after the
-// colon. Requires indent_class_colon=true.
-extern Option<bool>
-indent_class_on_colon;
-
-// Whether to indent the stuff after a leading class initializer colon.
-extern Option<bool>
-indent_constr_colon;
-
-// Virtual indent from the ':' for leading member initializers.
-extern BoundedOption<unsigned, 0, 16>
-indent_ctor_init_leading; // = 2
-
-// Virtual indent from the ':' for following member initializers.
-extern BoundedOption<unsigned, 0, 16>
-indent_ctor_init_following; // = 2
-
-// Additional indent for constructor initializer list.
-// Negative values decrease indent down to the first column.
-extern BoundedOption<signed, -16, 16>
-indent_ctor_init;
-
-// Whether to indent 'if' following 'else' as a new block under the 'else'.
-// If false, 'else\nif' is treated as 'else if' for indenting purposes.
-extern Option<bool>
-indent_else_if;
-
-// Amount to indent variable declarations after a open brace.
-//
-// <0: Relative
-// >=0: Absolute
-extern BoundedOption<signed, -16, 16>
-indent_var_def_blk;
-
-// Whether to indent continued variable declarations instead of aligning.
-extern Option<bool>
-indent_var_def_cont;
-
-// Whether to indent continued shift expressions ('<<' and '>>') instead of
-// aligning. Set align_left_shift=false when enabling this.
-extern Option<bool>
-indent_shift;
-
-// Whether to force indentation of function definitions to start in column 1.
-extern Option<bool>
-indent_func_def_force_col1;
-
-// Whether to indent continued function call parameters one indent level,
-// rather than aligning parameters under the open parenthesis.
-extern Option<bool>
-indent_func_call_param;
-
-// Whether to indent continued function definition parameters one indent level,
-// rather than aligning parameters under the open parenthesis.
-extern Option<bool>
-indent_func_def_param;
-
-// for function definitions, only if indent_func_def_param is false
-// Allows to align params when appropriate and indent them when not
-// behave as if it was true if paren position is more than this value
-// if paren position is more than the option value
-extern BoundedOption<unsigned, 0, 160>
-indent_func_def_param_paren_pos_threshold;
-
-// Whether to indent continued function call prototype one indent level,
-// rather than aligning parameters under the open parenthesis.
-extern Option<bool>
-indent_func_proto_param;
-
-// Whether to indent continued function call declaration one indent level,
-// rather than aligning parameters under the open parenthesis.
-extern Option<bool>
-indent_func_class_param;
-
-// Whether to indent continued class variable constructors one indent level,
-// rather than aligning parameters under the open parenthesis.
-extern Option<bool>
-indent_func_ctor_var_param;
-
-// Whether to indent continued template parameter list one indent level,
-// rather than aligning parameters under the open parenthesis.
-extern Option<bool>
-indent_template_param;
-
-// Double the indent for indent_func_xxx_param options.
-// Use both values of the options indent_columns and indent_param.
-extern Option<bool>
-indent_func_param_double;
-
-// Indentation column for standalone 'const' qualifier on a function
-// prototype.
-extern BoundedOption<unsigned, 0, 69>
-indent_func_const;
-
-// Indentation column for standalone 'throw' qualifier on a function
-// prototype.
-extern BoundedOption<unsigned, 0, 41>
-indent_func_throw;
-
-// How to indent within a macro followed by a brace on the same line
-// This allows reducing the indent in macros that have (for example)
-// `do { ... } while (0)` blocks bracketing them.
-//
-// true: add an indent for the brace on the same line as the macro
-// false: do not add an indent for the brace on the same line as the macro
-extern Option<bool>
-indent_macro_brace; // = true
-
-// The number of spaces to indent a continued '->' or '.'.
-// Usually set to 0, 1, or indent_columns.
-extern BoundedOption<unsigned, 0, 16>
-indent_member;
-
-// Whether lines broken at '.' or '->' should be indented by a single indent.
-// The indent_member option will not be effective if this is set to true.
-extern Option<bool>
-indent_member_single;
-
-// Spaces to indent single line ('//') comments on lines before code.
-extern BoundedOption<unsigned, 0, 16>
-indent_single_line_comments_before;
-
-// Spaces to indent single line ('//') comments on lines after code.
-extern BoundedOption<unsigned, 0, 16>
-indent_single_line_comments_after;
-
-// When opening a paren for a control statement (if, for, while, etc), increase
-// the indent level by this value. Negative values decrease the indent level.
-extern BoundedOption<signed, -16, 16>
-indent_sparen_extra;
-
-// Whether to indent trailing single line ('//') comments relative to the code
-// instead of trying to keep the same absolute column.
-extern Option<bool>
-indent_relative_single_line_comments;
-
-// Spaces to indent 'case' from 'switch'. Usually 0 or indent_columns.
-// It might be wise to choose the same value for the option indent_case_brace.
-extern BoundedOption<unsigned, 0, 16>
-indent_switch_case;
-
-// Spaces to indent the body of a 'switch' before any 'case'.
-// Usually the same as indent_columns or indent_switch_case.
-extern BoundedOption<unsigned, 0, 16>
-indent_switch_body;
-
-// Spaces to indent '{' from 'case'. By default, the brace will appear under
-// the 'c' in case. Usually set to 0 or indent_columns. Negative values are OK.
-// It might be wise to choose the same value for the option indent_switch_case.
-extern BoundedOption<signed, -16, 16>
-indent_case_brace;
-
-// indent 'break' with 'case' from 'switch'.
-extern Option<bool>
-indent_switch_break_with_case;
-
-// Whether to indent preprocessor statements inside of switch statements.
-extern Option<bool>
-indent_switch_pp; // = true
-
-// Spaces to shift the 'case' line, without affecting any other lines.
-// Usually 0.
-extern BoundedOption<unsigned, 0, 16>
-indent_case_shift;
-
-// Whether to align comments before 'case' with the 'case'.
-extern Option<bool>
-indent_case_comment; // = true
-
-// Whether to indent comments not found in first column.
-extern Option<bool>
-indent_comment; // = true
-
-// Whether to indent comments found in first column.
-extern Option<bool>
-indent_col1_comment;
-
-// Whether to indent multi string literal in first column.
-extern Option<bool>
-indent_col1_multi_string_literal;
-
-// Align comments on adjacent lines that are this many columns apart or less.
-extern BoundedOption<unsigned, 0, 16>
-indent_comment_align_thresh; // = 3
-
-// Whether to ignore indent for goto labels.
-extern Option<bool>
-indent_ignore_label;
-
-// How to indent goto labels. Requires indent_ignore_label=false.
-//
-// >0: Absolute column where 1 is the leftmost column
-// <=0: Subtract from brace indent
-extern BoundedOption<signed, -16, 16>
-indent_label; // = 1
-
-// How to indent access specifiers that are followed by a
-// colon.
-//
-// >0: Absolute column where 1 is the leftmost column
-// <=0: Subtract from brace indent
-extern BoundedOption<signed, -16, 16>
-indent_access_spec; // = 1
-
-// Whether to indent the code after an access specifier by one level.
-// If true, this option forces 'indent_access_spec=0'.
-extern Option<bool>
-indent_access_spec_body;
-
-// If an open parenthesis is followed by a newline, whether to indent the next
-// line so that it lines up after the open parenthesis (not recommended).
-extern Option<bool>
-indent_paren_nl;
-
-// How to indent a close parenthesis after a newline.
-//
-// 0: Indent to body level (default)
-// 1: Align under the open parenthesis
-// 2: Indent to the brace level
-extern BoundedOption<unsigned, 0, 2>
-indent_paren_close;
-
-// Whether to indent the open parenthesis of a function definition,
-// if the parenthesis is on its own line.
-extern Option<bool>
-indent_paren_after_func_def;
-
-// Whether to indent the open parenthesis of a function declaration,
-// if the parenthesis is on its own line.
-extern Option<bool>
-indent_paren_after_func_decl;
-
-// Whether to indent the open parenthesis of a function call,
-// if the parenthesis is on its own line.
-extern Option<bool>
-indent_paren_after_func_call;
-
-// Whether to indent a comma when inside a brace.
-// If true, aligns under the open brace.
-extern Option<bool>
-indent_comma_brace;
-
-// Whether to indent a comma when inside a parenthesis.
-// If true, aligns under the open parenthesis.
-extern Option<bool>
-indent_comma_paren;
-
-// Whether to indent a Boolean operator when inside a parenthesis.
-// If true, aligns under the open parenthesis.
-extern Option<bool>
-indent_bool_paren;
-
-// Whether to indent a semicolon when inside a for parenthesis.
-// If true, aligns under the open for parenthesis.
-extern Option<bool>
-indent_semicolon_for_paren;
-
-// Whether to align the first expression to following ones
-// if indent_bool_paren=true.
-extern Option<bool>
-indent_first_bool_expr;
-
-// Whether to align the first expression to following ones
-// if indent_semicolon_for_paren=true.
-extern Option<bool>
-indent_first_for_expr;
-
-// If an open square is followed by a newline, whether to indent the next line
-// so that it lines up after the open square (not recommended).
-extern Option<bool>
-indent_square_nl;
-
-// (ESQL/C) Whether to preserve the relative indent of 'EXEC SQL' bodies.
-extern Option<bool>
-indent_preserve_sql;
-
-// Whether to align continued statements at the '='. If false or if the '=' is
-// followed by a newline, the next line is indent one tab.
-extern Option<bool>
-indent_align_assign; // = true
-
-// If true, the indentation of the chunks after a '=' sequence will be set at
-// LHS token indentation column before '='.
-extern Option<bool>
-indent_off_after_assign;
-
-// Whether to align continued statements at the '('. If false or the '(' is
-// followed by a newline, the next line indent is one tab.
-extern Option<bool>
-indent_align_paren; // = true
-
-// (OC) Whether to indent Objective-C code inside message selectors.
-extern Option<bool>
-indent_oc_inside_msg_sel;
-
-// (OC) Whether to indent Objective-C blocks at brace level instead of usual
-// rules.
-extern Option<bool>
-indent_oc_block;
-
-// (OC) Indent for Objective-C blocks in a message relative to the parameter
-// name.
-//
-// =0: Use indent_oc_block rules
-// >0: Use specified number of spaces to indent
-extern BoundedOption<unsigned, 0, 16>
-indent_oc_block_msg;
-
-// (OC) Minimum indent for subsequent parameters
-extern BoundedOption<unsigned, 0, 5000>
-indent_oc_msg_colon;
-
-// (OC) Whether to prioritize aligning with initial colon (and stripping spaces
-// from lines, if necessary).
-extern Option<bool>
-indent_oc_msg_prioritize_first_colon; // = true
-
-// (OC) Whether to indent blocks the way that Xcode does by default
-// (from the keyword if the parameter is on its own line; otherwise, from the
-// previous indentation level). Requires indent_oc_block_msg=true.
-extern Option<bool>
-indent_oc_block_msg_xcode_style;
-
-// (OC) Whether to indent blocks from where the brace is, relative to a
-// message keyword. Requires indent_oc_block_msg=true.
-extern Option<bool>
-indent_oc_block_msg_from_keyword;
-
-// (OC) Whether to indent blocks from where the brace is, relative to a message
-// colon. Requires indent_oc_block_msg=true.
-extern Option<bool>
-indent_oc_block_msg_from_colon;
-
-// (OC) Whether to indent blocks from where the block caret is.
-// Requires indent_oc_block_msg=true.
-extern Option<bool>
-indent_oc_block_msg_from_caret;
-
-// (OC) Whether to indent blocks from where the brace caret is.
-// Requires indent_oc_block_msg=true.
-extern Option<bool>
-indent_oc_block_msg_from_brace;
-
-// When indenting after virtual brace open and newline add further spaces to
-// reach this minimum indent.
-extern BoundedOption<unsigned, 0, 16>
-indent_min_vbrace_open;
-
-// Whether to add further spaces after regular indent to reach next tabstop
-// when indenting after virtual brace open and newline.
-extern Option<bool>
-indent_vbrace_open_on_tabstop;
-
-// How to indent after a brace followed by another token (not a newline).
-// true: indent all contained lines to match the token
-// false: indent all contained lines to match the brace
-extern Option<bool>
-indent_token_after_brace; // = true
-
-// Whether to indent the body of a C++11 lambda.
-extern Option<bool>
-indent_cpp_lambda_body;
-
-// How to indent compound literals that are being returned.
-// true: add both the indent from return & the compound literal open brace
-// (i.e. 2 indent levels)
-// false: only indent 1 level, don't add the indent for the open brace, only
-// add the indent for the return.
-extern Option<bool>
-indent_compound_literal_return; // = true
-
-// (C#) Whether to indent a 'using' block if no braces are used.
-extern Option<bool>
-indent_using_block; // = true
-
-// How to indent the continuation of ternary operator.
-//
-// 0: Off (default)
-// 1: When the `if_false` is a continuation, indent it under `if_false`
-// 2: When the `:` is a continuation, indent it under `?`
-extern BoundedOption<unsigned, 0, 2>
-indent_ternary_operator;
-
-// Whether to indent the statements inside ternary operator.
-extern Option<bool>
-indent_inside_ternary_operator;
-
-// If true, the indentation of the chunks after a `return` sequence will be set at return indentation column.
-extern Option<bool>
-indent_off_after_return;
-
-// If true, the indentation of the chunks after a `return new` sequence will be set at return indentation column.
-extern Option<bool>
-indent_off_after_return_new;
-
-// If true, the tokens after return are indented with regular single indentation. By default (false) the indentation is after the return token.
-extern Option<bool>
-indent_single_after_return;
-
-// Whether to ignore indent and alignment for 'asm' blocks (i.e. assume they
-// have their own indentation).
-extern Option<bool>
-indent_ignore_asm_block;
-
-// Don't indent the close parenthesis of a function definition,
-// if the parenthesis is on its own line.
-extern Option<bool>
-donot_indent_func_def_close_paren;
-
-//END
-
-///////////////////////////////////////////////////////////////////////////////
-//BEGIN Newline adding and removing options
-
-// Whether to collapse empty blocks between '{' and '}'.
-// If true, overrides nl_inside_empty_func
-extern Option<bool>
-nl_collapse_empty_body;
-
-// Don't split one-line braced assignments, as in 'foo_t f = { 1, 2 };'.
-extern Option<bool>
-nl_assign_leave_one_liners;
-
-// Don't split one-line braced statements inside a 'class xx { }' body.
-extern Option<bool>
-nl_class_leave_one_liners;
-
-// Don't split one-line enums, as in 'enum foo { BAR = 15 };'
-extern Option<bool>
-nl_enum_leave_one_liners;
-
-// Don't split one-line get or set functions.
-extern Option<bool>
-nl_getset_leave_one_liners;
-
-// (C#) Don't split one-line property get or set functions.
-extern Option<bool>
-nl_cs_property_leave_one_liners;
-
-// Don't split one-line function definitions, as in 'int foo() { return 0; }'.
-// might modify nl_func_type_name
-extern Option<bool>
-nl_func_leave_one_liners;
-
-// Don't split one-line C++11 lambdas, as in '[]() { return 0; }'.
-extern Option<bool>
-nl_cpp_lambda_leave_one_liners;
-
-// Don't split one-line if/else statements, as in 'if(...) b++;'.
-extern Option<bool>
-nl_if_leave_one_liners;
-
-// Don't split one-line while statements, as in 'while(...) b++;'.
-extern Option<bool>
-nl_while_leave_one_liners;
-
-// Don't split one-line do statements, as in 'do { b++; } while(...);'.
-extern Option<bool>
-nl_do_leave_one_liners;
-
-// Don't split one-line for statements, as in 'for(...) b++;'.
-extern Option<bool>
-nl_for_leave_one_liners;
-
-// (OC) Don't split one-line Objective-C messages.
-extern Option<bool>
-nl_oc_msg_leave_one_liner;
-
-// (OC) Add or remove newline between method declaration and '{'.
-extern Option<iarf_e>
-nl_oc_mdef_brace;
-
-// (OC) Add or remove newline between Objective-C block signature and '{'.
-extern Option<iarf_e>
-nl_oc_block_brace;
-
-// (OC) Add or remove blank line before '@interface' statement.
-extern Option<iarf_e>
-nl_oc_before_interface;
-
-// (OC) Add or remove blank line before '@implementation' statement.
-extern Option<iarf_e>
-nl_oc_before_implementation;
-
-// (OC) Add or remove blank line before '@end' statement.
-extern Option<iarf_e>
-nl_oc_before_end;
-
-// (OC) Add or remove newline between '@interface' and '{'.
-extern Option<iarf_e>
-nl_oc_interface_brace;
-
-// (OC) Add or remove newline between '@implementation' and '{'.
-extern Option<iarf_e>
-nl_oc_implementation_brace;
-
-// Add or remove newlines at the start of the file.
-extern Option<iarf_e>
-nl_start_of_file;
-
-// The minimum number of newlines at the start of the file (only used if
-// nl_start_of_file is 'add' or 'force').
-extern BoundedOption<unsigned, 0, 16>
-nl_start_of_file_min;
-
-// Add or remove newline at the end of the file.
-extern Option<iarf_e>
-nl_end_of_file;
-
-// The minimum number of newlines at the end of the file (only used if
-// nl_end_of_file is 'add' or 'force').
-extern BoundedOption<unsigned, 0, 16>
-nl_end_of_file_min;
-
-// Add or remove newline between '=' and '{'.
-extern Option<iarf_e>
-nl_assign_brace;
-
-// (D) Add or remove newline between '=' and '['.
-extern Option<iarf_e>
-nl_assign_square;
-
-// Add or remove newline between '[]' and '{'.
-extern Option<iarf_e>
-nl_tsquare_brace;
-
-// (D) Add or remove newline after '= ['. Will also affect the newline before
-// the ']'.
-extern Option<iarf_e>
-nl_after_square_assign;
-
-// Add or remove newline between a function call's ')' and '{', as in
-// 'list_for_each(item, &list) { }'.
-extern Option<iarf_e>
-nl_fcall_brace;
-
-// Add or remove newline between 'enum' and '{'.
-extern Option<iarf_e>
-nl_enum_brace;
-
-// Add or remove newline between 'enum' and 'class'.
-extern Option<iarf_e>
-nl_enum_class;
-
-// Add or remove newline between 'enum class' and the identifier.
-extern Option<iarf_e>
-nl_enum_class_identifier;
-
-// Add or remove newline between 'enum class' type and ':'.
-extern Option<iarf_e>
-nl_enum_identifier_colon;
-
-// Add or remove newline between 'enum class identifier :' and type.
-extern Option<iarf_e>
-nl_enum_colon_type;
-
-// Add or remove newline between 'struct and '{'.
-extern Option<iarf_e>
-nl_struct_brace;
-
-// Add or remove newline between 'union' and '{'.
-extern Option<iarf_e>
-nl_union_brace;
-
-// Add or remove newline between 'if' and '{'.
-extern Option<iarf_e>
-nl_if_brace;
-
-// Add or remove newline between '}' and 'else'.
-extern Option<iarf_e>
-nl_brace_else;
-
-// Add or remove newline between 'else if' and '{'. If set to ignore,
-// nl_if_brace is used instead.
-extern Option<iarf_e>
-nl_elseif_brace;
-
-// Add or remove newline between 'else' and '{'.
-extern Option<iarf_e>
-nl_else_brace;
-
-// Add or remove newline between 'else' and 'if'.
-extern Option<iarf_e>
-nl_else_if;
-
-// Add or remove newline before '{' opening brace
-extern Option<iarf_e>
-nl_before_opening_brace_func_class_def;
-
-// Add or remove newline before 'if'/'else if' closing parenthesis.
-extern Option<iarf_e>
-nl_before_if_closing_paren;
-
-// Add or remove newline between '}' and 'finally'.
-extern Option<iarf_e>
-nl_brace_finally;
-
-// Add or remove newline between 'finally' and '{'.
-extern Option<iarf_e>
-nl_finally_brace;
-
-// Add or remove newline between 'try' and '{'.
-extern Option<iarf_e>
-nl_try_brace;
-
-// Add or remove newline between get/set and '{'.
-extern Option<iarf_e>
-nl_getset_brace;
-
-// Add or remove newline between 'for' and '{'.
-extern Option<iarf_e>
-nl_for_brace;
-
-// Add or remove newline before the '{' of a 'catch' statement, as in
-// 'catch (decl) <here> {'.
-extern Option<iarf_e>
-nl_catch_brace;
-
-// (OC) Add or remove newline before the '{' of a '@catch' statement, as in
-// '@catch (decl) <here> {'. If set to ignore, nl_catch_brace is used.
-extern Option<iarf_e>
-nl_oc_catch_brace;
-
-// Add or remove newline between '}' and 'catch'.
-extern Option<iarf_e>
-nl_brace_catch;
-
-// (OC) Add or remove newline between '}' and '@catch'. If set to ignore,
-// nl_brace_catch is used.
-extern Option<iarf_e>
-nl_oc_brace_catch;
-
-// Add or remove newline between '}' and ']'.
-extern Option<iarf_e>
-nl_brace_square;
-
-// Add or remove newline between '}' and ')' in a function invocation.
-extern Option<iarf_e>
-nl_brace_fparen;
-
-// Add or remove newline between 'while' and '{'.
-extern Option<iarf_e>
-nl_while_brace;
-
-// (D) Add or remove newline between 'scope (x)' and '{'.
-extern Option<iarf_e>
-nl_scope_brace;
-
-// (D) Add or remove newline between 'unittest' and '{'.
-extern Option<iarf_e>
-nl_unittest_brace;
-
-// (D) Add or remove newline between 'version (x)' and '{'.
-extern Option<iarf_e>
-nl_version_brace;
-
-// (C#) Add or remove newline between 'using' and '{'.
-extern Option<iarf_e>
-nl_using_brace;
-
-// Add or remove newline between two open or close braces. Due to general
-// newline/brace handling, REMOVE may not work.
-extern Option<iarf_e>
-nl_brace_brace;
-
-// Add or remove newline between 'do' and '{'.
-extern Option<iarf_e>
-nl_do_brace;
-
-// Add or remove newline between '}' and 'while' of 'do' statement.
-extern Option<iarf_e>
-nl_brace_while;
-
-// Add or remove newline between 'switch' and '{'.
-extern Option<iarf_e>
-nl_switch_brace;
-
-// Add or remove newline between 'synchronized' and '{'.
-extern Option<iarf_e>
-nl_synchronized_brace;
-
-// Add a newline between ')' and '{' if the ')' is on a different line than the
-// if/for/etc.
-//
-// Overrides nl_for_brace, nl_if_brace, nl_switch_brace, nl_while_switch and
-// nl_catch_brace.
-extern Option<bool>
-nl_multi_line_cond;
-
-// Add a newline after '(' if an if/for/while/switch condition spans multiple
-// lines
-extern Option<iarf_e>
-nl_multi_line_sparen_open;
-
-// Add a newline before ')' if an if/for/while/switch condition spans multiple
-// lines. Overrides nl_before_if_closing_paren if both are specified.
-extern Option<iarf_e>
-nl_multi_line_sparen_close;
-
-// Force a newline in a define after the macro name for multi-line defines.
-extern Option<bool>
-nl_multi_line_define;
-
-// Whether to add a newline before 'case', and a blank line before a 'case'
-// statement that follows a ';' or '}'.
-extern Option<bool>
-nl_before_case;
-
-// Whether to add a newline after a 'case' statement.
-extern Option<bool>
-nl_after_case;
-
-// Add or remove newline between a case ':' and '{'.
-//
-// Overrides nl_after_case.
-extern Option<iarf_e>
-nl_case_colon_brace;
-
-// Add or remove newline between ')' and 'throw'.
-extern Option<iarf_e>
-nl_before_throw;
-
-// Add or remove newline between 'namespace' and '{'.
-extern Option<iarf_e>
-nl_namespace_brace;
-
-// Add or remove newline after 'template<...>' of a template class.
-extern Option<iarf_e>
-nl_template_class;
-
-// Add or remove newline after 'template<...>' of a template class declaration.
-//
-// Overrides nl_template_class.
-extern Option<iarf_e>
-nl_template_class_decl;
-
-// Add or remove newline after 'template<>' of a specialized class declaration.
-//
-// Overrides nl_template_class_decl.
-extern Option<iarf_e>
-nl_template_class_decl_special;
-
-// Add or remove newline after 'template<...>' of a template class definition.
-//
-// Overrides nl_template_class.
-extern Option<iarf_e>
-nl_template_class_def;
-
-// Add or remove newline after 'template<>' of a specialized class definition.
-//
-// Overrides nl_template_class_def.
-extern Option<iarf_e>
-nl_template_class_def_special;
-
-// Add or remove newline after 'template<...>' of a template function.
-extern Option<iarf_e>
-nl_template_func;
-
-// Add or remove newline after 'template<...>' of a template function
-// declaration.
-//
-// Overrides nl_template_func.
-extern Option<iarf_e>
-nl_template_func_decl;
-
-// Add or remove newline after 'template<>' of a specialized function
-// declaration.
-//
-// Overrides nl_template_func_decl.
-extern Option<iarf_e>
-nl_template_func_decl_special;
-
-// Add or remove newline after 'template<...>' of a template function
-// definition.
-//
-// Overrides nl_template_func.
-extern Option<iarf_e>
-nl_template_func_def;
-
-// Add or remove newline after 'template<>' of a specialized function
-// definition.
-//
-// Overrides nl_template_func_def.
-extern Option<iarf_e>
-nl_template_func_def_special;
-
-// Add or remove newline after 'template<...>' of a template variable.
-extern Option<iarf_e>
-nl_template_var;
-
-// Add or remove newline between 'template<...>' and 'using' of a templated
-// type alias.
-extern Option<iarf_e>
-nl_template_using;
-
-// Add or remove newline between 'class' and '{'.
-extern Option<iarf_e>
-nl_class_brace;
-
-// Add or remove newline before or after (depending on pos_class_comma,
-// may not be IGNORE) each',' in the base class list.
-extern Option<iarf_e>
-nl_class_init_args;
-
-// Add or remove newline after each ',' in the constructor member
-// initialization. Related to nl_constr_colon, pos_constr_colon and
-// pos_constr_comma.
-extern Option<iarf_e>
-nl_constr_init_args;
-
-// Add or remove newline before first element, after comma, and after last
-// element, in 'enum'.
-extern Option<iarf_e>
-nl_enum_own_lines;
-
-// Add or remove newline between return type and function name in a function
-// definition.
-// might be modified by nl_func_leave_one_liners
-extern Option<iarf_e>
-nl_func_type_name;
-
-// Add or remove newline between return type and function name inside a class
-// definition. If set to ignore, nl_func_type_name or nl_func_proto_type_name
-// is used instead.
-extern Option<iarf_e>
-nl_func_type_name_class;
-
-// Add or remove newline between class specification and '::'
-// in 'void A::f() { }'. Only appears in separate member implementation (does
-// not appear with in-line implementation).
-extern Option<iarf_e>
-nl_func_class_scope;
-
-// Add or remove newline between function scope and name, as in
-// 'void A :: <here> f() { }'.
-extern Option<iarf_e>
-nl_func_scope_name;
-
-// Add or remove newline between return type and function name in a prototype.
-extern Option<iarf_e>
-nl_func_proto_type_name;
-
-// Add or remove newline between a function name and the opening '(' in the
-// declaration.
-extern Option<iarf_e>
-nl_func_paren;
-
-// Overrides nl_func_paren for functions with no parameters.
-extern Option<iarf_e>
-nl_func_paren_empty;
-
-// Add or remove newline between a function name and the opening '(' in the
-// definition.
-extern Option<iarf_e>
-nl_func_def_paren;
-
-// Overrides nl_func_def_paren for functions with no parameters.
-extern Option<iarf_e>
-nl_func_def_paren_empty;
-
-// Add or remove newline between a function name and the opening '(' in the
-// call.
-extern Option<iarf_e>
-nl_func_call_paren;
-
-// Overrides nl_func_call_paren for functions with no parameters.
-extern Option<iarf_e>
-nl_func_call_paren_empty;
-
-// Add or remove newline after '(' in a function declaration.
-extern Option<iarf_e>
-nl_func_decl_start;
-
-// Add or remove newline after '(' in a function definition.
-extern Option<iarf_e>
-nl_func_def_start;
-
-// Overrides nl_func_decl_start when there is only one parameter.
-extern Option<iarf_e>
-nl_func_decl_start_single;
-
-// Overrides nl_func_def_start when there is only one parameter.
-extern Option<iarf_e>
-nl_func_def_start_single;
-
-// Whether to add a newline after '(' in a function declaration if '(' and ')'
-// are in different lines. If false, nl_func_decl_start is used instead.
-extern Option<bool>
-nl_func_decl_start_multi_line;
-
-// Whether to add a newline after '(' in a function definition if '(' and ')'
-// are in different lines. If false, nl_func_def_start is used instead.
-extern Option<bool>
-nl_func_def_start_multi_line;
-
-// Add or remove newline after each ',' in a function declaration.
-extern Option<iarf_e>
-nl_func_decl_args;
-
-// Add or remove newline after each ',' in a function definition.
-extern Option<iarf_e>
-nl_func_def_args;
-
-// Add or remove newline after each ',' in a function call.
-extern Option<iarf_e>
-nl_func_call_args;
-
-// Whether to add a newline after each ',' in a function declaration if '('
-// and ')' are in different lines. If false, nl_func_decl_args is used instead.
-extern Option<bool>
-nl_func_decl_args_multi_line;
-
-// Whether to add a newline after each ',' in a function definition if '('
-// and ')' are in different lines. If false, nl_func_def_args is used instead.
-extern Option<bool>
-nl_func_def_args_multi_line;
-
-// Add or remove newline before the ')' in a function declaration.
-extern Option<iarf_e>
-nl_func_decl_end;
-
-// Add or remove newline before the ')' in a function definition.
-extern Option<iarf_e>
-nl_func_def_end;
-
-// Overrides nl_func_decl_end when there is only one parameter.
-extern Option<iarf_e>
-nl_func_decl_end_single;
-
-// Overrides nl_func_def_end when there is only one parameter.
-extern Option<iarf_e>
-nl_func_def_end_single;
-
-// Whether to add a newline before ')' in a function declaration if '(' and ')'
-// are in different lines. If false, nl_func_decl_end is used instead.
-extern Option<bool>
-nl_func_decl_end_multi_line;
-
-// Whether to add a newline before ')' in a function definition if '(' and ')'
-// are in different lines. If false, nl_func_def_end is used instead.
-extern Option<bool>
-nl_func_def_end_multi_line;
-
-// Add or remove newline between '()' in a function declaration.
-extern Option<iarf_e>
-nl_func_decl_empty;
-
-// Add or remove newline between '()' in a function definition.
-extern Option<iarf_e>
-nl_func_def_empty;
-
-// Add or remove newline between '()' in a function call.
-extern Option<iarf_e>
-nl_func_call_empty;
-
-// Whether to add a newline after '(' in a function call,
-// has preference over nl_func_call_start_multi_line.
-extern Option<iarf_e>
-nl_func_call_start;
-
-// Whether to add a newline before ')' in a function call.
-extern Option<iarf_e>
-nl_func_call_end;
-
-// Whether to add a newline after '(' in a function call if '(' and ')' are in
-// different lines.
-extern Option<bool>
-nl_func_call_start_multi_line;
-
-// Whether to add a newline after each ',' in a function call if '(' and ')'
-// are in different lines.
-extern Option<bool>
-nl_func_call_args_multi_line;
-
-// Whether to add a newline before ')' in a function call if '(' and ')' are in
-// different lines.
-extern Option<bool>
-nl_func_call_end_multi_line;
-
-// Whether to respect nl_func_call_XXX option in case of closure args.
-extern Option<bool>
-nl_func_call_args_multi_line_ignore_closures; // false
-
-// Whether to add a newline after '<' of a template parameter list.
-extern Option<bool>
-nl_template_start;
-
-// Whether to add a newline after each ',' in a template parameter list.
-extern Option<bool>
-nl_template_args;
-
-// Whether to add a newline before '>' of a template parameter list.
-extern Option<bool>
-nl_template_end;
-
-// (OC) Whether to put each Objective-C message parameter on a separate line.
-// See nl_oc_msg_leave_one_liner.
-extern Option<bool>
-nl_oc_msg_args;
-
-// Add or remove newline between function signature and '{'.
-extern Option<iarf_e>
-nl_fdef_brace;
-
-// Add or remove newline between function signature and '{',
-// if signature ends with ')'. Overrides nl_fdef_brace.
-extern Option<iarf_e>
-nl_fdef_brace_cond;
-
-// Add or remove newline between C++11 lambda signature and '{'.
-extern Option<iarf_e>
-nl_cpp_ldef_brace;
-
-// Add or remove newline between 'return' and the return expression.
-extern Option<iarf_e>
-nl_return_expr;
-
-// Whether to add a newline after semicolons, except in 'for' statements.
-extern Option<bool>
-nl_after_semicolon;
-
-// (Java) Add or remove newline between the ')' and '{{' of the double brace
-// initializer.
-extern Option<iarf_e>
-nl_paren_dbrace_open;
-
-// Whether to add a newline after the type in an unnamed temporary
-// direct-list-initialization.
-extern Option<iarf_e>
-nl_type_brace_init_lst;
-
-// Whether to add a newline after the open brace in an unnamed temporary
-// direct-list-initialization.
-extern Option<iarf_e>
-nl_type_brace_init_lst_open;
-
-// Whether to add a newline before the close brace in an unnamed temporary
-// direct-list-initialization.
-extern Option<iarf_e>
-nl_type_brace_init_lst_close;
-
-// Whether to add a newline before '{'.
-extern Option<bool>
-nl_before_brace_open;
-
-// Whether to add a newline after '{'.
-extern Option<bool>
-nl_after_brace_open;
-
-// Whether to add a newline between the open brace and a trailing single-line
-// comment. Requires nl_after_brace_open=true.
-extern Option<bool>
-nl_after_brace_open_cmt;
-
-// Whether to add a newline after a virtual brace open with a non-empty body.
-// These occur in un-braced if/while/do/for statement bodies.
-extern Option<bool>
-nl_after_vbrace_open;
-
-// Whether to add a newline after a virtual brace open with an empty body.
-// These occur in un-braced if/while/do/for statement bodies.
-extern Option<bool>
-nl_after_vbrace_open_empty;
-
-// Whether to add a newline after '}'. Does not apply if followed by a
-// necessary ';'.
-extern Option<bool>
-nl_after_brace_close;
-
-// Whether to add a newline after a virtual brace close,
-// as in 'if (foo) a++; <here> return;'.
-extern Option<bool>
-nl_after_vbrace_close;
-
-// Add or remove newline between the close brace and identifier,
-// as in 'struct { int a; } <here> b;'. Affects enumerations, unions and
-// structures. If set to ignore, uses nl_after_brace_close.
-extern Option<iarf_e>
-nl_brace_struct_var;
-
-// Whether to alter newlines in '#define' macros.
-extern Option<bool>
-nl_define_macro;
-
-// Whether to alter newlines between consecutive parenthesis closes. The number
-// of closing parentheses in a line will depend on respective open parenthesis
-// lines.
-extern Option<bool>
-nl_squeeze_paren_close;
-
-// Whether to remove blanks after '#ifxx' and '#elxx', or before '#elxx' and
-// '#endif'. Does not affect top-level #ifdefs.
-extern Option<bool>
-nl_squeeze_ifdef;
-
-// Makes the nl_squeeze_ifdef option affect the top-level #ifdefs as well.
-extern Option<bool>
-nl_squeeze_ifdef_top_level;
-
-// Add or remove blank line before 'if'.
-extern Option<iarf_e>
-nl_before_if;
-
-// Add or remove blank line after 'if' statement. Add/Force work only if the
-// next token is not a closing brace.
-extern Option<iarf_e>
-nl_after_if;
-
-// Add or remove blank line before 'for'.
-extern Option<iarf_e>
-nl_before_for;
-
-// Add or remove blank line after 'for' statement.
-extern Option<iarf_e>
-nl_after_for;
-
-// Add or remove blank line before 'while'.
-extern Option<iarf_e>
-nl_before_while;
-
-// Add or remove blank line after 'while' statement.
-extern Option<iarf_e>
-nl_after_while;
-
-// Add or remove blank line before 'switch'.
-extern Option<iarf_e>
-nl_before_switch;
-
-// Add or remove blank line after 'switch' statement.
-extern Option<iarf_e>
-nl_after_switch;
-
-// Add or remove blank line before 'synchronized'.
-extern Option<iarf_e>
-nl_before_synchronized;
-
-// Add or remove blank line after 'synchronized' statement.
-extern Option<iarf_e>
-nl_after_synchronized;
-
-// Add or remove blank line before 'do'.
-extern Option<iarf_e>
-nl_before_do;
-
-// Add or remove blank line after 'do/while' statement.
-extern Option<iarf_e>
-nl_after_do;
-
-// Ignore nl_before_{if,for,switch,do,synchronized} if the control
-// statement is immediately after a case statement.
-// if nl_before_{if,for,switch,do} is set to remove, this option
-// does nothing.
-extern Option<bool>
-nl_before_ignore_after_case;
-
-// Whether to put a blank line before 'return' statements, unless after an open
-// brace.
-extern Option<bool>
-nl_before_return;
-
-// Whether to put a blank line after 'return' statements, unless followed by a
-// close brace.
-extern Option<bool>
-nl_after_return;
-
-// Whether to put a blank line before a member '.' or '->' operators.
-extern Option<iarf_e>
-nl_before_member;
-
-// (Java) Whether to put a blank line after a member '.' or '->' operators.
-extern Option<iarf_e>
-nl_after_member;
-
-// Whether to double-space commented-entries in 'struct'/'union'/'enum'.
-extern Option<bool>
-nl_ds_struct_enum_cmt;
-
-// Whether to force a newline before '}' of a 'struct'/'union'/'enum'.
-// (Lower priority than eat_blanks_before_close_brace.)
-extern Option<bool>
-nl_ds_struct_enum_close_brace;
-
-// Add or remove newline before or after (depending on pos_class_colon) a class
-// colon, as in 'class Foo <here> : <or here> public Bar'.
-extern Option<iarf_e>
-nl_class_colon;
-
-// Add or remove newline around a class constructor colon. The exact position
-// depends on nl_constr_init_args, pos_constr_colon and pos_constr_comma.
-extern Option<iarf_e>
-nl_constr_colon;
-
-// Whether to collapse a two-line namespace, like 'namespace foo\n{ decl; }'
-// into a single line. If true, prevents other brace newline rules from turning
-// such code into four lines. If true, it also preserves one-liner namespaces.
-extern Option<bool>
-nl_namespace_two_to_one_liner;
-
-// Whether to remove a newline in simple unbraced if statements, turning them
-// into one-liners, as in 'if(b)\n i++;' => 'if(b) i++;'.
-extern Option<bool>
-nl_create_if_one_liner;
-
-// Whether to remove a newline in simple unbraced for statements, turning them
-// into one-liners, as in 'for (...)\n stmt;' => 'for (...) stmt;'.
-extern Option<bool>
-nl_create_for_one_liner;
-
-// Whether to remove a newline in simple unbraced while statements, turning
-// them into one-liners, as in 'while (expr)\n stmt;' => 'while (expr) stmt;'.
-extern Option<bool>
-nl_create_while_one_liner;
-
-// Whether to collapse a function definition whose body (not counting braces)
-// is only one line so that the entire definition (prototype, braces, body) is
-// a single line.
-extern Option<bool>
-nl_create_func_def_one_liner;
-
-// Whether to split one-line simple list definitions into three lines by
-// adding newlines, as in 'int a[12] = { <here> 0 <here> };'.
-extern Option<bool>
-nl_create_list_one_liner;
-
-// Whether to split one-line simple unbraced if statements into two lines by
-// adding a newline, as in 'if(b) <here> i++;'.
-extern Option<bool>
-nl_split_if_one_liner;
-
-// Whether to split one-line simple unbraced for statements into two lines by
-// adding a newline, as in 'for (...) <here> stmt;'.
-extern Option<bool>
-nl_split_for_one_liner;
-
-// Whether to split one-line simple unbraced while statements into two lines by
-// adding a newline, as in 'while (expr) <here> stmt;'.
-extern Option<bool>
-nl_split_while_one_liner;
-
-// Don't add a newline before a cpp-comment in a parameter list of a function
-// call.
-extern Option<bool>
-donot_add_nl_before_cpp_comment;
-
-//END
-
-///////////////////////////////////////////////////////////////////////////////
-//BEGIN Blank line options
-
-// The maximum number of consecutive newlines (3 = 2 blank lines).
-extern BoundedOption<unsigned, 0, 16>
-nl_max;
-
-// The maximum number of consecutive newlines in a function.
-extern BoundedOption<unsigned, 0, 16>
-nl_max_blank_in_func;
-
-// The number of newlines inside an empty function body.
-// This option overrides eat_blanks_after_open_brace and
-// eat_blanks_before_close_brace, but is ignored when
-// nl_collapse_empty_body=true
-extern BoundedOption<unsigned, 0, 16>
-nl_inside_empty_func;
-
-// The number of newlines before a function prototype.
-extern BoundedOption<unsigned, 0, 16>
-nl_before_func_body_proto;
-
-// The number of newlines before a multi-line function definition. Where
-// applicable, this option is overridden with eat_blanks_after_open_brace=true
-extern BoundedOption<unsigned, 0, 16>
-nl_before_func_body_def;
-
-// The number of newlines before a class constructor/destructor prototype.
-extern BoundedOption<unsigned, 0, 16>
-nl_before_func_class_proto;
-
-// The number of newlines before a class constructor/destructor definition.
-extern BoundedOption<unsigned, 0, 16>
-nl_before_func_class_def;
-
-// The number of newlines after a function prototype.
-extern BoundedOption<unsigned, 0, 16>
-nl_after_func_proto;
-
-// The number of newlines after a function prototype, if not followed by
-// another function prototype.
-extern BoundedOption<unsigned, 0, 16>
-nl_after_func_proto_group;
-
-// The number of newlines after a class constructor/destructor prototype.
-extern BoundedOption<unsigned, 0, 16>
-nl_after_func_class_proto;
-
-// The number of newlines after a class constructor/destructor prototype,
-// if not followed by another constructor/destructor prototype.
-extern BoundedOption<unsigned, 0, 16>
-nl_after_func_class_proto_group;
-
-// Whether one-line method definitions inside a class body should be treated
-// as if they were prototypes for the purposes of adding newlines.
-//
-// Requires nl_class_leave_one_liners=true. Overrides nl_before_func_body_def
-// and nl_before_func_class_def for one-liners.
-extern Option<bool>
-nl_class_leave_one_liner_groups;
-
-// The number of newlines after '}' of a multi-line function body.
-extern BoundedOption<unsigned, 0, 16>
-nl_after_func_body;
-
-// The number of newlines after '}' of a multi-line function body in a class
-// declaration. Also affects class constructors/destructors.
-//
-// Overrides nl_after_func_body.
-extern BoundedOption<unsigned, 0, 16>
-nl_after_func_body_class;
-
-// The number of newlines after '}' of a single line function body. Also
-// affects class constructors/destructors.
-//
-// Overrides nl_after_func_body and nl_after_func_body_class.
-extern BoundedOption<unsigned, 0, 16>
-nl_after_func_body_one_liner;
-
-// The number of blank lines after a block of variable definitions at the top
-// of a function body.
-//
-// 0: No change (default).
-extern BoundedOption<unsigned, 0, 16>
-nl_func_var_def_blk;
-
-// The number of newlines before a block of typedefs. If nl_after_access_spec
-// is non-zero, that option takes precedence.
-//
-// 0: No change (default).
-extern BoundedOption<unsigned, 0, 16>
-nl_typedef_blk_start;
-
-// The number of newlines after a block of typedefs.
-//
-// 0: No change (default).
-extern BoundedOption<unsigned, 0, 16>
-nl_typedef_blk_end;
-
-// The maximum number of consecutive newlines within a block of typedefs.
-//
-// 0: No change (default).
-extern BoundedOption<unsigned, 0, 16>
-nl_typedef_blk_in;
-
-// The number of newlines before a block of variable definitions not at the top
-// of a function body. If nl_after_access_spec is non-zero, that option takes
-// precedence.
-//
-// 0: No change (default).
-extern BoundedOption<unsigned, 0, 16>
-nl_var_def_blk_start;
-
-// The number of newlines after a block of variable definitions not at the top
-// of a function body.
-//
-// 0: No change (default).
-extern BoundedOption<unsigned, 0, 16>
-nl_var_def_blk_end;
-
-// The maximum number of consecutive newlines within a block of variable
-// definitions.
-//
-// 0: No change (default).
-extern BoundedOption<unsigned, 0, 16>
-nl_var_def_blk_in;
-
-// The minimum number of newlines before a multi-line comment.
-// Doesn't apply if after a brace open or another multi-line comment.
-extern BoundedOption<unsigned, 0, 16>
-nl_before_block_comment;
-
-// The minimum number of newlines before a single-line C comment.
-// Doesn't apply if after a brace open or other single-line C comments.
-extern BoundedOption<unsigned, 0, 16>
-nl_before_c_comment;
-
-// The minimum number of newlines before a CPP comment.
-// Doesn't apply if after a brace open or other CPP comments.
-extern BoundedOption<unsigned, 0, 16>
-nl_before_cpp_comment;
-
-// Whether to force a newline after a multi-line comment.
-extern Option<bool>
-nl_after_multiline_comment;
-
-// Whether to force a newline after a label's colon.
-extern Option<bool>
-nl_after_label_colon;
-
-// The number of newlines before a struct definition.
-extern BoundedOption<unsigned, 0, 16>
-nl_before_struct;
-
-// The number of newlines after '}' or ';' of a struct/enum/union definition.
-extern BoundedOption<unsigned, 0, 16>
-nl_after_struct;
-
-// The number of newlines before a class definition.
-extern BoundedOption<unsigned, 0, 16>
-nl_before_class;
-
-// The number of newlines after '}' or ';' of a class definition.
-extern BoundedOption<unsigned, 0, 16>
-nl_after_class;
-
-// The number of newlines before a namespace.
-extern BoundedOption<unsigned, 0, 16>
-nl_before_namespace;
-
-// The number of newlines after '{' of a namespace. This also adds newlines
-// before the matching '}'.
-//
-// 0: Apply eat_blanks_after_open_brace or eat_blanks_before_close_brace if
-// applicable, otherwise no change.
-//
-// Overrides eat_blanks_after_open_brace and eat_blanks_before_close_brace.
-extern BoundedOption<unsigned, 0, 16>
-nl_inside_namespace;
-
-// The number of newlines after '}' of a namespace.
-extern BoundedOption<unsigned, 0, 16>
-nl_after_namespace;
-
-// The number of newlines before an access specifier label. This also includes
-// the Qt-specific 'signals:' and 'slots:'. Will not change the newline count
-// if after a brace open.
-//
-// 0: No change (default).
-extern BoundedOption<unsigned, 0, 16>
-nl_before_access_spec;
-
-// The number of newlines after an access specifier label. This also includes
-// the Qt-specific 'signals:' and 'slots:'. Will not change the newline count
-// if after a brace open.
-//
-// 0: No change (default).
-//
-// Overrides nl_typedef_blk_start and nl_var_def_blk_start.
-extern BoundedOption<unsigned, 0, 16>
-nl_after_access_spec;
-
-// The number of newlines between a function definition and the function
-// comment, as in '// comment\n <here> void foo() {...}'.
-//
-// 0: No change (default).
-extern BoundedOption<unsigned, 0, 16>
-nl_comment_func_def;
-
-// The number of newlines after a try-catch-finally block that isn't followed
-// by a brace close.
-//
-// 0: No change (default).
-extern BoundedOption<unsigned, 0, 16>
-nl_after_try_catch_finally;
-
-// (C#) The number of newlines before and after a property, indexer or event
-// declaration.
-//
-// 0: No change (default).
-extern BoundedOption<unsigned, 0, 16>
-nl_around_cs_property;
-
-// (C#) The number of newlines between the get/set/add/remove handlers.
-//
-// 0: No change (default).
-extern BoundedOption<unsigned, 0, 16>
-nl_between_get_set;
-
-// (C#) Add or remove newline between property and the '{'.
-extern Option<iarf_e>
-nl_property_brace;
-
-// Whether to remove blank lines after '{'.
-extern Option<bool>
-eat_blanks_after_open_brace;
-
-// Whether to remove blank lines before '}'.
-extern Option<bool>
-eat_blanks_before_close_brace;
-
-// How aggressively to remove extra newlines not in preprocessor.
-//
-// 0: No change (default)
-// 1: Remove most newlines not handled by other config
-// 2: Remove all newlines and reformat completely by config
-extern BoundedOption<unsigned, 0, 2>
-nl_remove_extra_newlines;
-
-// (Java) Add or remove newline after an annotation statement. Only affects
-// annotations that are after a newline.
-extern Option<iarf_e>
-nl_after_annotation;
-
-// (Java) Add or remove newline between two annotations.
-extern Option<iarf_e>
-nl_between_annotation;
-
-// The number of newlines before a whole-file #ifdef.
-//
-// 0: No change (default).
-extern BoundedOption<unsigned, 0, 16>
-nl_before_whole_file_ifdef;
-
-// The number of newlines after a whole-file #ifdef.
-//
-// 0: No change (default).
-extern BoundedOption<unsigned, 0, 16>
-nl_after_whole_file_ifdef;
-
-// The number of newlines before a whole-file #endif.
-//
-// 0: No change (default).
-extern BoundedOption<unsigned, 0, 16>
-nl_before_whole_file_endif;
-
-// The number of newlines after a whole-file #endif.
-//
-// 0: No change (default).
-extern BoundedOption<unsigned, 0, 16>
-nl_after_whole_file_endif;
-
-//END
-
-///////////////////////////////////////////////////////////////////////////////
-//BEGIN Positioning options
-
-// The position of arithmetic operators in wrapped expressions.
-extern Option<token_pos_e>
-pos_arith;
-
-// The position of assignment in wrapped expressions. Do not affect '='
-// followed by '{'.
-extern Option<token_pos_e>
-pos_assign;
-
-// The position of Boolean operators in wrapped expressions.
-extern Option<token_pos_e>
-pos_bool;
-
-// The position of comparison operators in wrapped expressions.
-extern Option<token_pos_e>
-pos_compare;
-
-// The position of conditional operators, as in the '?' and ':' of
-// 'expr ? stmt : stmt', in wrapped expressions.
-extern Option<token_pos_e>
-pos_conditional;
-
-// The position of the comma in wrapped expressions.
-extern Option<token_pos_e>
-pos_comma;
-
-// The position of the comma in enum entries.
-extern Option<token_pos_e>
-pos_enum_comma;
-
-// The position of the comma in the base class list if there is more than one
-// line. Affects nl_class_init_args.
-extern Option<token_pos_e>
-pos_class_comma;
-
-// The position of the comma in the constructor initialization list.
-// Related to nl_constr_colon, nl_constr_init_args and pos_constr_colon.
-extern Option<token_pos_e>
-pos_constr_comma;
-
-// The position of trailing/leading class colon, between class and base class
-// list. Affects nl_class_colon.
-extern Option<token_pos_e>
-pos_class_colon;
-
-// The position of colons between constructor and member initialization.
-// Related to nl_constr_colon, nl_constr_init_args and pos_constr_comma.
-extern Option<token_pos_e>
-pos_constr_colon;
-
-// The position of shift operators in wrapped expressions.
-extern Option<token_pos_e>
-pos_shift;
-
-//END
-
-///////////////////////////////////////////////////////////////////////////////
-//BEGIN Line splitting options
-
-// Try to limit code width to N columns.
-extern BoundedOption<unsigned, 0, 10000>
-code_width;
-
-// Whether to fully split long 'for' statements at semi-colons.
-extern Option<bool>
-ls_for_split_full;
-
-// Whether to fully split long function prototypes/calls at commas.
-// The option ls_code_width has priority over the option ls_func_split_full.
-extern Option<bool>
-ls_func_split_full;
-
-// Whether to split lines as close to code_width as possible and ignore some
-// groupings.
-// The option ls_code_width has priority over the option ls_func_split_full.
-extern Option<bool>
-ls_code_width;
-
-//END
-
-///////////////////////////////////////////////////////////////////////////////
-//BEGIN Code alignment options (not left column spaces/tabs)
-
-// Whether to keep non-indenting tabs.
-extern Option<bool>
-align_keep_tabs;
-
-// Whether to use tabs for aligning.
-extern Option<bool>
-align_with_tabs;
-
-// Whether to bump out to the next tab when aligning.
-extern Option<bool>
-align_on_tabstop;
-
-// Whether to right-align numbers.
-extern Option<bool>
-align_number_right;
-
-// Whether to keep whitespace not required for alignment.
-extern Option<bool>
-align_keep_extra_space;
-
-// Whether to align variable definitions in prototypes and functions.
-extern Option<bool>
-align_func_params;
-
-// The span for aligning parameter definitions in function on parameter name.
-//
-// 0: Don't align (default).
-extern BoundedOption<unsigned, 0, 16>
-align_func_params_span;
-
-// The threshold for aligning function parameter definitions.
-// Use a negative number for absolute thresholds.
-//
-// 0: No limit (default).
-extern BoundedOption<signed, -1000, 5000>
-align_func_params_thresh;
-
-// The gap for aligning function parameter definitions.
-extern BoundedOption<unsigned, 0, 16>
-align_func_params_gap;
-
-// The span for aligning constructor value.
-//
-// 0: Don't align (default).
-extern BoundedOption<unsigned, 0, 16>
-align_constr_value_span;
-
-// The threshold for aligning constructor value.
-// Use a negative number for absolute thresholds.
-//
-// 0: No limit (default).
-extern BoundedOption<signed, -1000, 5000>
-align_constr_value_thresh;
-
-// The gap for aligning constructor value.
-extern BoundedOption<unsigned, 0, 16>
-align_constr_value_gap;
-
-// Whether to align parameters in single-line functions that have the same
-// name. The function names must already be aligned with each other.
-extern Option<bool>
-align_same_func_call_params;
-
-// The span for aligning function-call parameters for single line functions.
-//
-// 0: Don't align (default).
-extern BoundedOption<unsigned, 0, 5000>
-align_same_func_call_params_span;
-
-// The threshold for aligning function-call parameters for single line
-// functions.
-// Use a negative number for absolute thresholds.
-//
-// 0: No limit (default).
-extern BoundedOption<signed, -1000, 5000>
-align_same_func_call_params_thresh;
-
-// The span for aligning variable definitions.
-//
-// 0: Don't align (default).
-extern BoundedOption<unsigned, 0, 5000>
-align_var_def_span;
-
-// How to consider (or treat) the '*' in the alignment of variable definitions.
-//
-// 0: Part of the type 'void * foo;' (default)
-// 1: Part of the variable 'void *foo;'
-// 2: Dangling 'void *foo;'
-// Dangling: the '*' will not be taken into account when aligning.
-extern BoundedOption<unsigned, 0, 2>
-align_var_def_star_style;
-
-// How to consider (or treat) the '&' in the alignment of variable definitions.
-//
-// 0: Part of the type 'long & foo;' (default)
-// 1: Part of the variable 'long &foo;'
-// 2: Dangling 'long &foo;'
-// Dangling: the '&' will not be taken into account when aligning.
-extern BoundedOption<unsigned, 0, 2>
-align_var_def_amp_style;
-
-// The threshold for aligning variable definitions.
-// Use a negative number for absolute thresholds.
-//
-// 0: No limit (default).
-extern BoundedOption<signed, -1000, 5000>
-align_var_def_thresh;
-
-// The gap for aligning variable definitions.
-extern BoundedOption<unsigned, 0, 16>
-align_var_def_gap;
-
-// Whether to align the colon in struct bit fields.
-extern Option<bool>
-align_var_def_colon;
-
-// The gap for aligning the colon in struct bit fields.
-extern BoundedOption<unsigned, 0, 16>
-align_var_def_colon_gap;
-
-// Whether to align any attribute after the variable name.
-extern Option<bool>
-align_var_def_attribute;
-
-// Whether to align inline struct/enum/union variable definitions.
-extern Option<bool>
-align_var_def_inline;
-
-// The span for aligning on '=' in assignments.
-//
-// 0: Don't align (default).
-extern BoundedOption<unsigned, 0, 5000>
-align_assign_span;
-
-// The span for aligning on '=' in function prototype modifier.
-//
-// 0: Don't align (default).
-extern BoundedOption<unsigned, 0, 5000>
-align_assign_func_proto_span;
-
-// The threshold for aligning on '=' in assignments.
-// Use a negative number for absolute thresholds.
-//
-// 0: No limit (default).
-extern BoundedOption<signed, -1000, 5000>
-align_assign_thresh;
-
-// How to apply align_assign_span to function declaration "assignments", i.e.
-// 'virtual void foo() = 0' or '~foo() = {default|delete}'.
-//
-// 0: Align with other assignments (default)
-// 1: Align with each other, ignoring regular assignments
-// 2: Don't align
-extern BoundedOption<unsigned, 0, 2>
-align_assign_decl_func;
-
-// The span for aligning on '=' in enums.
-//
-// 0: Don't align (default).
-extern BoundedOption<unsigned, 0, 5000>
-align_enum_equ_span;
-
-// The threshold for aligning on '=' in enums.
-// Use a negative number for absolute thresholds.
-//
-// 0: no limit (default).
-extern BoundedOption<signed, -1000, 5000>
-align_enum_equ_thresh;
-
-// The span for aligning class member definitions.
-//
-// 0: Don't align (default).
-extern BoundedOption<unsigned, 0, 5000>
-align_var_class_span;
-
-// The threshold for aligning class member definitions.
-// Use a negative number for absolute thresholds.
-//
-// 0: No limit (default).
-extern BoundedOption<signed, -1000, 5000>
-align_var_class_thresh;
-
-// The gap for aligning class member definitions.
-extern BoundedOption<unsigned, 0, 16>
-align_var_class_gap;
-
-// The span for aligning struct/union member definitions.
-//
-// 0: Don't align (default).
-extern BoundedOption<unsigned, 0, 5000>
-align_var_struct_span;
-
-// The threshold for aligning struct/union member definitions.
-// Use a negative number for absolute thresholds.
-//
-// 0: No limit (default).
-extern BoundedOption<signed, -1000, 5000>
-align_var_struct_thresh;
-
-// The gap for aligning struct/union member definitions.
-extern BoundedOption<unsigned, 0, 16>
-align_var_struct_gap;
-
-// The span for aligning struct initializer values.
-//
-// 0: Don't align (default).
-extern BoundedOption<unsigned, 0, 5000>
-align_struct_init_span;
-
-// The span for aligning single-line typedefs.
-//
-// 0: Don't align (default).
-extern BoundedOption<unsigned, 0, 16>
-align_typedef_span;
-
-// The minimum space between the type and the synonym of a typedef.
-extern BoundedOption<unsigned, 0, 16>
-align_typedef_gap;
-
-// How to align typedef'd functions with other typedefs.
-//
-// 0: Don't mix them at all (default)
-// 1: Align the open parenthesis with the types
-// 2: Align the function type name with the other type names
-extern BoundedOption<unsigned, 0, 2>
-align_typedef_func;
-
-// How to consider (or treat) the '*' in the alignment of typedefs.
-//
-// 0: Part of the typedef type, 'typedef int * pint;' (default)
-// 1: Part of type name: 'typedef int *pint;'
-// 2: Dangling: 'typedef int *pint;'
-// Dangling: the '*' will not be taken into account when aligning.
-extern BoundedOption<unsigned, 0, 2>
-align_typedef_star_style;
-
-// How to consider (or treat) the '&' in the alignment of typedefs.
-//
-// 0: Part of the typedef type, 'typedef int & intref;' (default)
-// 1: Part of type name: 'typedef int &intref;'
-// 2: Dangling: 'typedef int &intref;'
-// Dangling: the '&' will not be taken into account when aligning.
-extern BoundedOption<unsigned, 0, 2>
-align_typedef_amp_style;
-
-// The span for aligning comments that end lines.
-//
-// 0: Don't align (default).
-extern BoundedOption<unsigned, 0, 5000>
-align_right_cmt_span;
-
-// Minimum number of columns between preceding text and a trailing comment in
-// order for the comment to qualify for being aligned. Must be non-zero to have
-// an effect.
-extern BoundedOption<unsigned, 0, 16>
-align_right_cmt_gap;
-
-// If aligning comments, whether to mix with comments after '}' and #endif with
-// less than three spaces before the comment.
-extern Option<bool>
-align_right_cmt_mix;
-
-// Whether to only align trailing comments that are at the same brace level.
-extern Option<bool>
-align_right_cmt_same_level;
-
-// Minimum column at which to align trailing comments. Comments which are
-// aligned beyond this column, but which can be aligned in a lesser column,
-// may be "pulled in".
-//
-// 0: Ignore (default).
-extern BoundedOption<unsigned, 0, 200>
-align_right_cmt_at_col;
-
-// The span for aligning function prototypes.
-//
-// 0: Don't align (default).
-extern BoundedOption<unsigned, 0, 5000>
-align_func_proto_span;
-
-// How to consider (or treat) the '*' in the alignment of function prototypes.
-//
-// 0: Part of the type 'void * foo();' (default)
-// 1: Part of the function 'void *foo();'
-// 2: Dangling 'void *foo();'
-// Dangling: the '*' will not be taken into account when aligning.
-extern BoundedOption<unsigned, 0, 2>
-align_func_proto_star_style;
-
-// How to consider (or treat) the '&' in the alignment of function prototypes.
-//
-// 0: Part of the type 'long & foo();' (default)
-// 1: Part of the function 'long &foo();'
-// 2: Dangling 'long &foo();'
-// Dangling: the '&' will not be taken into account when aligning.
-extern BoundedOption<unsigned, 0, 2>
-align_func_proto_amp_style;
-
-// The threshold for aligning function prototypes.
-// Use a negative number for absolute thresholds.
-//
-// 0: No limit (default).
-extern BoundedOption<signed, -1000, 5000>
-align_func_proto_thresh;
-
-// Minimum gap between the return type and the function name.
-extern BoundedOption<unsigned, 0, 16>
-align_func_proto_gap;
-
-// Whether to align function prototypes on the 'operator' keyword instead of
-// what follows.
-extern Option<bool>
-align_on_operator;
-
-// Whether to mix aligning prototype and variable declarations. If true,
-// align_var_def_XXX options are used instead of align_func_proto_XXX options.
-extern Option<bool>
-align_mix_var_proto;
-
-// Whether to align single-line functions with function prototypes.
-// Uses align_func_proto_span.
-extern Option<bool>
-align_single_line_func;
-
-// Whether to align the open brace of single-line functions.
-// Requires align_single_line_func=true. Uses align_func_proto_span.
-extern Option<bool>
-align_single_line_brace;
-
-// Gap for align_single_line_brace.
-extern BoundedOption<unsigned, 0, 16>
-align_single_line_brace_gap;
-
-// (OC) The span for aligning Objective-C message specifications.
-//
-// 0: Don't align (default).
-extern BoundedOption<unsigned, 0, 5000>
-align_oc_msg_spec_span;
-
-// Whether to align macros wrapped with a backslash and a newline. This will
-// not work right if the macro contains a multi-line comment.
-extern Option<bool>
-align_nl_cont;
-
-// Whether to align macro functions and variables together.
-extern Option<bool>
-align_pp_define_together;
-
-// The span for aligning on '#define' bodies.
-//
-// =0: Don't align (default)
-// >0: Number of lines (including comments) between blocks
-extern BoundedOption<unsigned, 0, 5000>
-align_pp_define_span;
-
-// The minimum space between label and value of a preprocessor define.
-extern BoundedOption<unsigned, 0, 16>
-align_pp_define_gap;
-
-// Whether to align lines that start with '<<' with previous '<<'.
-extern Option<bool>
-align_left_shift; // = true
-
-// Whether to align comma-separated statements following '<<' (as used to
-// initialize Eigen matrices).
-extern Option<bool>
-align_eigen_comma_init;
-
-// Whether to align text after 'asm volatile ()' colons.
-extern Option<bool>
-align_asm_colon;
-
-// (OC) Span for aligning parameters in an Objective-C message call
-// on the ':'.
-//
-// 0: Don't align.
-extern BoundedOption<unsigned, 0, 5000>
-align_oc_msg_colon_span;
-
-// (OC) Whether to always align with the first parameter, even if it is too
-// short.
-extern Option<bool>
-align_oc_msg_colon_first;
-
-// (OC) Whether to align parameters in an Objective-C '+' or '-' declaration
-// on the ':'.
-extern Option<bool>
-align_oc_decl_colon;
-
-// (OC) Whether to not align parameters in an Objectve-C message call if first
-// colon is not on next line of the message call (the same way Xcode does
-// aligment)
-extern Option<bool>
-align_oc_msg_colon_xcode_like;
-
-//END
-
-///////////////////////////////////////////////////////////////////////////////
-//BEGIN Comment modification options
-
-// Try to wrap comments at N columns.
-extern BoundedOption<unsigned, 0, 256>
-cmt_width;
-
-// How to reflow comments.
-//
-// 0: No reflowing (apart from the line wrapping due to cmt_width) (default)
-// 1: No touching at all
-// 2: Full reflow (enable cmt_indent_multi for indent with line wrapping due to cmt_width)
-extern BoundedOption<unsigned, 0, 2>
-cmt_reflow_mode;
-
-// Path to a file that contains regular expressions describing patterns for
-// which the end of one line and the beginning of the next will be folded into
-// the same sentence or paragraph during full comment reflow. The regular
-// expressions are described using ECMAScript syntax. The syntax for this
-// specification is as follows, where "..." indicates the custom regular
-// expression and "n" indicates the nth end_of_prev_line_regex and
-// beg_of_next_line_regex regular expression pair:
-//
-// end_of_prev_line_regex[1] = "...$"
-// beg_of_next_line_regex[1] = "^..."
-// end_of_prev_line_regex[2] = "...$"
-// beg_of_next_line_regex[2] = "^..."
-// .
-// .
-// .
-// end_of_prev_line_regex[n] = "...$"
-// beg_of_next_line_regex[n] = "^..."
-//
-// Note that use of this option overrides the default reflow fold regular
-// expressions, which are internally defined as follows:
-//
-// end_of_prev_line_regex[1] = "[\w,\]\)]$"
-// beg_of_next_line_regex[1] = "^[\w,\[\(]"
-// end_of_prev_line_regex[2] = "\.$"
-// beg_of_next_line_regex[2] = "^[A-Z]"
-extern Option<string>
-cmt_reflow_fold_regex_file;
-
-// Whether to indent wrapped lines to the start of the encompassing paragraph
-// during full comment reflow (cmt_reflow_mode = 2). Overrides the value
-// specified by cmt_sp_after_star_cont.
-//
-// Note that cmt_align_doxygen_javadoc_tags overrides this option for
-// paragraphs associated with javadoc tags
-extern Option<bool>
-cmt_reflow_indent_to_paragraph_start;
-
-// Whether to convert all tabs to spaces in comments. If false, tabs in
-// comments are left alone, unless used for indenting.
-extern Option<bool>
-cmt_convert_tab_to_spaces;
-
-// TODO This description is confusing and should be revised.
-
-// Whether to apply changes to multi-line comments, including cmt_width,
-// keyword substitution and leading chars.
-extern Option<bool>
-cmt_indent_multi; // = true
-
-// Whether to align doxygen javadoc-style tags ('@param', '@return', etc.)
-// and corresponding fields such that groups of consecutive block tags,
-// parameter names, and descriptions align with one another. Overrides that
-// which is specified by the cmt_sp_after_star_cont. If cmt_width > 0, it may
-// be necessary to enable cmt_indent_multi and set cmt_reflow_mode = 2
-// in order to achieve the desired alignment for line-wrapping.
-extern Option<bool>
-cmt_align_doxygen_javadoc_tags;
-
-// The number of spaces to insert after the star and before doxygen
-// javadoc-style tags (@param, @return, etc). Requires enabling
-// cmt_align_doxygen_javadoc_tags. Overrides that which is specified by the
-// cmt_sp_after_star_cont.
-extern BoundedOption<unsigned, 0, 16>
-cmt_sp_before_doxygen_javadoc_tags; // = 1
-
-// Whether to change trailing, single-line c-comments into cpp-comments.
-extern Option<bool>
-cmt_trailing_single_line_c_to_cpp;
-
-// Whether to group c-comments that look like they are in a block.
-extern Option<bool>
-cmt_c_group;
-
-// Whether to put an empty '/*' on the first line of the combined c-comment.
-extern Option<bool>
-cmt_c_nl_start;
-
-// Whether to add a newline before the closing '*/' of the combined c-comment.
-extern Option<bool>
-cmt_c_nl_end;
-
-// Whether to change cpp-comments into c-comments.
-extern Option<bool>
-cmt_cpp_to_c;
-
-// Whether to group cpp-comments that look like they are in a block. Only
-// meaningful if cmt_cpp_to_c=true.
-extern Option<bool>
-cmt_cpp_group;
-
-// Whether to put an empty '/*' on the first line of the combined cpp-comment
-// when converting to a c-comment.
-//
-// Requires cmt_cpp_to_c=true and cmt_cpp_group=true.
-extern Option<bool>
-cmt_cpp_nl_start;
-
-// Whether to add a newline before the closing '*/' of the combined cpp-comment
-// when converting to a c-comment.
-//
-// Requires cmt_cpp_to_c=true and cmt_cpp_group=true.
-extern Option<bool>
-cmt_cpp_nl_end;
-
-// Whether to put a star on subsequent comment lines.
-extern Option<bool>
-cmt_star_cont;
-
-// The number of spaces to insert at the start of subsequent comment lines.
-extern BoundedOption<unsigned, 0, 16>
-cmt_sp_before_star_cont;
-
-// The number of spaces to insert after the star on subsequent comment lines.
-extern BoundedOption<unsigned, 0, 16>
-cmt_sp_after_star_cont;
-
-// TODO This description is confusing and should be revised.
-
-// For multi-line comments with a '*' lead, remove leading spaces if the first
-// and last lines of the comment are the same length.
-extern Option<bool>
-cmt_multi_check_last; // = true
-
-// TODO This description is confusing and should be revised.
-
-// For multi-line comments with a '*' lead, remove leading spaces if the first
-// and last lines of the comment are the same length AND if the length is
-// bigger as the first_len minimum.
-extern BoundedOption<unsigned, 1, 20>
-cmt_multi_first_len_minimum; // = 4
-
-// Path to a file that contains text to insert at the beginning of a file if
-// the file doesn't start with a C/C++ comment. If the inserted text contains
-// '$(filename)', that will be replaced with the current file's name.
-extern Option<string>
-cmt_insert_file_header;
-
-// Path to a file that contains text to insert at the end of a file if the
-// file doesn't end with a C/C++ comment. If the inserted text contains
-// '$(filename)', that will be replaced with the current file's name.
-extern Option<string>
-cmt_insert_file_footer;
-
-// Path to a file that contains text to insert before a function definition if
-// the function isn't preceded by a C/C++ comment. If the inserted text
-// contains '$(function)', '$(javaparam)' or '$(fclass)', these will be
-// replaced with, respectively, the name of the function, the javadoc '@param'
-// and '@return' stuff, or the name of the class to which the member function
-// belongs.
-extern Option<string>
-cmt_insert_func_header;
-
-// Path to a file that contains text to insert before a class if the class
-// isn't preceded by a C/C++ comment. If the inserted text contains '$(class)',
-// that will be replaced with the class name.
-extern Option<string>
-cmt_insert_class_header;
-
-// Path to a file that contains text to insert before an Objective-C message
-// specification, if the method isn't preceded by a C/C++ comment. If the
-// inserted text contains '$(message)' or '$(javaparam)', these will be
-// replaced with, respectively, the name of the function, or the javadoc
-// '@param' and '@return' stuff.
-extern Option<string>
-cmt_insert_oc_msg_header;
-
-// TODO This description may be confusing; consider revising.
-
-// Whether a comment should be inserted if a preprocessor is encountered when
-// stepping backwards from a function name.
-//
-// Applies to cmt_insert_oc_msg_header, cmt_insert_func_header and
-// cmt_insert_class_header.
-extern Option<bool>
-cmt_insert_before_preproc;
-
-// Whether a comment should be inserted if a function is declared inline to a
-// class definition.
-//
-// Applies to cmt_insert_func_header.
-extern Option<bool>
-cmt_insert_before_inlines; // = true
-
-// Whether a comment should be inserted if the function is a class constructor
-// or destructor.
-//
-// Applies to cmt_insert_func_header.
-extern Option<bool>
-cmt_insert_before_ctor_dtor;
-
-//END
-
-///////////////////////////////////////////////////////////////////////////////
-//BEGIN Code modifying options (non-whitespace)
-
-// Add or remove braces on a single-line 'do' statement.
-extern Option<iarf_e>
-mod_full_brace_do;
-
-// Add or remove braces on a single-line 'for' statement.
-extern Option<iarf_e>
-mod_full_brace_for;
-
-// (Pawn) Add or remove braces on a single-line function definition.
-extern Option<iarf_e>
-mod_full_brace_function;
-
-// Add or remove braces on a single-line 'if' statement. Braces will not be
-// removed if the braced statement contains an 'else'.
-extern Option<iarf_e>
-mod_full_brace_if;
-
-// Whether to enforce that all blocks of an 'if'/'else if'/'else' chain either
-// have, or do not have, braces. If true, braces will be added if any block
-// needs braces, and will only be removed if they can be removed from all
-// blocks.
-//
-// Overrides mod_full_brace_if.
-extern Option<bool>
-mod_full_brace_if_chain;
-
-// Whether to add braces to all blocks of an 'if'/'else if'/'else' chain.
-// If true, mod_full_brace_if_chain will only remove braces from an 'if' that
-// does not have an 'else if' or 'else'.
-extern Option<bool>
-mod_full_brace_if_chain_only;
-
-// Add or remove braces on single-line 'while' statement.
-extern Option<iarf_e>
-mod_full_brace_while;
-
-// Add or remove braces on single-line 'using ()' statement.
-extern Option<iarf_e>
-mod_full_brace_using;
-
-// Don't remove braces around statements that span N newlines
-extern BoundedOption<unsigned, 0, 5000>
-mod_full_brace_nl;
-
-// Whether to prevent removal of braces from 'if'/'for'/'while'/etc. blocks
-// which span multiple lines.
-//
-// Affects:
-// mod_full_brace_for
-// mod_full_brace_if
-// mod_full_brace_if_chain
-// mod_full_brace_if_chain_only
-// mod_full_brace_while
-// mod_full_brace_using
-//
-// Does not affect:
-// mod_full_brace_do
-// mod_full_brace_function
-extern Option<bool>
-mod_full_brace_nl_block_rem_mlcond;
-
-// Add or remove unnecessary parenthesis on 'return' statement.
-extern Option<iarf_e>
-mod_paren_on_return;
-
-// (Pawn) Whether to change optional semicolons to real semicolons.
-extern Option<bool>
-mod_pawn_semicolon;
-
-// Whether to fully parenthesize Boolean expressions in 'while' and 'if'
-// statement, as in 'if (a && b > c)' => 'if (a && (b > c))'.
-extern Option<bool>
-mod_full_paren_if_bool;
-
-// Whether to remove superfluous semicolons.
-extern Option<bool>
-mod_remove_extra_semicolon;
-
-// Whether to remove duplicate include.
-extern Option<bool>
-mod_remove_duplicate_include;
-
-// If a function body exceeds the specified number of newlines and doesn't have
-// a comment after the close brace, a comment will be added.
-extern BoundedOption<unsigned, 0, 255>
-mod_add_long_function_closebrace_comment;
-
-// If a namespace body exceeds the specified number of newlines and doesn't
-// have a comment after the close brace, a comment will be added.
-extern BoundedOption<unsigned, 0, 255>
-mod_add_long_namespace_closebrace_comment;
-
-// If a class body exceeds the specified number of newlines and doesn't have a
-// comment after the close brace, a comment will be added.
-extern BoundedOption<unsigned, 0, 255>
-mod_add_long_class_closebrace_comment;
-
-// If a switch body exceeds the specified number of newlines and doesn't have a
-// comment after the close brace, a comment will be added.
-extern BoundedOption<unsigned, 0, 255>
-mod_add_long_switch_closebrace_comment;
-
-// If an #ifdef body exceeds the specified number of newlines and doesn't have
-// a comment after the #endif, a comment will be added.
-extern BoundedOption<unsigned, 0, 255>
-mod_add_long_ifdef_endif_comment;
-
-// If an #ifdef or #else body exceeds the specified number of newlines and
-// doesn't have a comment after the #else, a comment will be added.
-extern BoundedOption<unsigned, 0, 255>
-mod_add_long_ifdef_else_comment;
-
-// Whether to take care of the case by the mod_sort_xx options.
-extern Option<bool>
-mod_sort_case_sensitive;
-
-// Whether to sort consecutive single-line 'import' statements.
-extern Option<bool>
-mod_sort_import;
-
-// (C#) Whether to sort consecutive single-line 'using' statements.
-extern Option<bool>
-mod_sort_using;
-
-// Whether to sort consecutive single-line '#include' statements (C/C++) and
-// '#import' statements (Objective-C). Be aware that this has the potential to
-// break your code if your includes/imports have ordering dependencies.
-extern Option<bool>
-mod_sort_include;
-
-// Whether to prioritize '#include' and '#import' statements that contain
-// filename without extension when sorting is enabled.
-extern Option<bool>
-mod_sort_incl_import_prioritize_filename;
-
-// Whether to prioritize '#include' and '#import' statements that does not
-// contain extensions when sorting is enabled.
-extern Option<bool>
-mod_sort_incl_import_prioritize_extensionless;
-
-// Whether to prioritize '#include' and '#import' statements that contain
-// angle over quotes when sorting is enabled.
-extern Option<bool>
-mod_sort_incl_import_prioritize_angle_over_quotes;
-
-// Whether to ignore file extension in '#include' and '#import' statements
-// for sorting comparison.
-extern Option<bool>
-mod_sort_incl_import_ignore_extension;
-
-// Whether to group '#include' and '#import' statements when sorting is enabled.
-extern Option<bool>
-mod_sort_incl_import_grouping_enabled;
-
-// Whether to move a 'break' that appears after a fully braced 'case' before
-// the close brace, as in 'case X: { ... } break;' => 'case X: { ... break; }'.
-extern Option<bool>
-mod_move_case_break;
-
-// Add or remove braces around a fully braced case statement. Will only remove
-// braces if there are no variable declarations in the block.
-extern Option<iarf_e>
-mod_case_brace;
-
-// Whether to remove a void 'return;' that appears as the last statement in a
-// function.
-extern Option<bool>
-mod_remove_empty_return;
-
-// Add or remove the comma after the last value of an enumeration.
-extern Option<iarf_e>
-mod_enum_last_comma;
-
-// (OC) Whether to organize the properties. If true, properties will be
-// rearranged according to the mod_sort_oc_property_*_weight factors.
-extern Option<bool>
-mod_sort_oc_properties;
-
-// (OC) Weight of a class property modifier.
-extern Option<signed>
-mod_sort_oc_property_class_weight;
-
-// (OC) Weight of 'atomic' and 'nonatomic'.
-extern Option<signed>
-mod_sort_oc_property_thread_safe_weight;
-
-// (OC) Weight of 'readwrite' when organizing properties.
-extern Option<signed>
-mod_sort_oc_property_readwrite_weight;
-
-// (OC) Weight of a reference type specifier ('retain', 'copy', 'assign',
-// 'weak', 'strong') when organizing properties.
-extern Option<signed>
-mod_sort_oc_property_reference_weight;
-
-// (OC) Weight of getter type ('getter=') when organizing properties.
-extern Option<signed>
-mod_sort_oc_property_getter_weight;
-
-// (OC) Weight of setter type ('setter=') when organizing properties.
-extern Option<signed>
-mod_sort_oc_property_setter_weight;
-
-// (OC) Weight of nullability type ('nullable', 'nonnull', 'null_unspecified',
-// 'null_resettable') when organizing properties.
-extern Option<signed>
-mod_sort_oc_property_nullability_weight;
-
-//END
-
-///////////////////////////////////////////////////////////////////////////////
-//BEGIN Preprocessor options
-
-// Add or remove indentation of preprocessor directives inside #if blocks
-// at brace level 0 (file-level).
-extern Option<iarf_e>
-pp_indent;
-
-// Whether to indent #if/#else/#endif at the brace level. If false, these are
-// indented from column 1.
-extern Option<bool>
-pp_indent_at_level;
-
-// Specifies the number of columns to indent preprocessors per level
-// at brace level 0 (file-level). If pp_indent_at_level=false, also specifies
-// the number of columns to indent preprocessors per level
-// at brace level > 0 (function-level).
-extern BoundedOption<unsigned, 0, 16>
-pp_indent_count; // = 1
-
-// Add or remove space after # based on pp_level of #if blocks.
-extern Option<iarf_e>
-pp_space;
-
-// Sets the number of spaces per level added with pp_space.
-extern BoundedOption<unsigned, 0, 16>
-pp_space_count;
-
-// The indent for '#region' and '#endregion' in C# and '#pragma region' in
-// C/C++. Negative values decrease indent down to the first column.
-extern BoundedOption<signed, -16, 16>
-pp_indent_region;
-
-// Whether to indent the code between #region and #endregion.
-extern Option<bool>
-pp_region_indent_code;
-
-// If pp_indent_at_level=true, sets the indent for #if, #else and #endif when
-// not at file-level. Negative values decrease indent down to the first column.
-//
-// =0: Indent preprocessors using output_tab_size
-// >0: Column at which all preprocessors will be indented
-extern BoundedOption<signed, -16, 16>
-pp_indent_if;
-
-// Whether to indent the code between #if, #else and #endif.
-extern Option<bool>
-pp_if_indent_code;
-
-// Whether to indent the body of an #if that encompasses all the code in the file.
-extern Option<bool>
-pp_indent_in_guard;
-
-// Whether to indent '#define' at the brace level. If false, these are
-// indented from column 1.
-extern Option<bool>
-pp_define_at_level;
-
-// Whether to indent '#include' at the brace level.
-extern Option<bool>
-pp_include_at_level;
-
-// Whether to ignore the '#define' body while formatting.
-extern Option<bool>
-pp_ignore_define_body;
-
-// TODO The following descriptions are confusing and suffer from sub-optimal
-// grammar, and should be revised; from here...
-
-// Whether to indent case statements between #if, #else, and #endif.
-// Only applies to the indent of the preprocesser that the case statements
-// directly inside of.
-extern Option<bool>
-pp_indent_case; // = true
-
-// Whether to indent whole function definitions between #if, #else, and #endif.
-// Only applies to the indent of the preprocesser that the function definition
-// is directly inside of.
-extern Option<bool>
-pp_indent_func_def; // = true
-
-// Whether to indent extern C blocks between #if, #else, and #endif.
-// Only applies to the indent of the preprocesser that the extern block is
-// directly inside of.
-extern Option<bool>
-pp_indent_extern; // = true
-
-// Whether to indent braces directly inside #if, #else, and #endif.
-// Only applies to the indent of the preprocesser that the braces are directly
-// inside of.
-extern Option<bool>
-pp_indent_brace; // = true
-
-// TODO ...until here.
-
-//END
-
-///////////////////////////////////////////////////////////////////////////////
-//BEGIN Sort includes options
-
-// The regex for include category with priority 0.
-extern Option<string>
-include_category_0;
-
-// The regex for include category with priority 1.
-extern Option<string>
-include_category_1;
-
-// The regex for include category with priority 2.
-extern Option<string>
-include_category_2;
-
-//END
-
-///////////////////////////////////////////////////////////////////////////////
-//BEGIN Use or Do not Use options
-
-// true: indent_func_call_param will be used (default)
-// false: indent_func_call_param will NOT be used
-extern Option<bool>
-use_indent_func_call_param; // = true
-
-// The value of the indentation for a continuation line is calculated
-// differently if the statement is:
-// - a declaration: your case with QString fileName ...
-// - an assignment: your case with pSettings = new QSettings( ...
-//
-// At the second case the indentation value might be used twice:
-// - at the assignment
-// - at the function call (if present)
-//
-// To prevent the double use of the indentation value, use this option with the
-// value 'true'.
-//
-// true: indent_continue will be used only once
-// false: indent_continue will be used every time (default)
-extern Option<bool>
-use_indent_continue_only_once;
-
-// The value might be used twice:
-// - at the assignment
-// - at the opening brace
-//
-// To prevent the double use of the indentation value, use this option with the
-// value 'true'.
-//
-// true: indentation will be used only once
-// false: indentation will be used every time (default)
-extern Option<bool>
-indent_cpp_lambda_only_once;
-
-// Whether sp_after_angle takes precedence over sp_inside_fparen. This was the
-// historic behavior, but is probably not the desired behavior, so this is off
-// by default.
-extern Option<bool>
-use_sp_after_angle_always;
-
-// Whether to apply special formatting for Qt SIGNAL/SLOT macros. Essentially,
-// this tries to format these so that they match Qt's normalized form (i.e. the
-// result of QMetaObject::normalizedSignature), which can slightly improve the
-// performance of the QObject::connect call, rather than how they would
-// otherwise be formatted.
-//
-// See options_for_QT.cpp for details.
-extern Option<bool>
-use_options_overriding_for_qt_macros; // = true
-
-// If true: the form feed character is removed from the list of whitespace
-// characters. See https://en.cppreference.com/w/cpp/string/byte/isspace.
-extern Option<bool>
-use_form_feed_no_more_as_whitespace_character;
-
-//END
-
-///////////////////////////////////////////////////////////////////////////////
-//BEGIN Warn levels - 1: error, 2: warning (default), 3: note
-
-// (C#) Warning is given if doing tab-to-\t replacement and we have found one
-// in a C# verbatim string literal.
-extern BoundedOption<unsigned, 1, 3>
-warn_level_tabs_found_in_verbatim_string_literals; // = LWARN
-
-// For debugging purpose only.
-
-// Limit the number of loops.
-// Used by uncrustify.cpp to exit from infinite loop.
-// 0: no limit.
-extern Option<signed>
-debug_max_number_of_loops;
-
-// Set the number of the line to protocol;
-// Used in the function prot_the_line if the 2. parameter is zero.
-// 0: nothing protocol.
-extern Option<signed>
-debug_line_number_to_protocol;
-
-// Set the number of second(s) before terminating formatting the current file,
-// 0: no timeout.
-// only for linux
-extern Option<signed>
-debug_timeout;
-
-// Set the number of characters to be printed if the text is too long,
-// 0: do not truncate.
-extern BoundedOption<unsigned, 0, 960>
-debug_truncate;
-
-//END
-
-} // namespace options
-
-} // namespace uncrustify
-
-#endif /* OPTIONS_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/output.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/output.cpp
deleted file mode 100644
index 2736512c..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/output.cpp
+++ /dev/null
@@ -1,3394 +0,0 @@
-/**
- * @file output.cpp
- * Does all the output & comment formatting.
- *
- * @author Ben Gardner
- * @author Guy Maurel October 2015, 2021
- * @license GPL v2+
- */
-
-#include "output.h"
-
-#include "align_tab_column.h"
-#include "braces.h"
-#include "indent.h"
-#include "prototypes.h"
-#include "tokenize.h"
-#include "unc_ctype.h"
-#include "unicode.h"
-
-#include <ctime>
-#include <map>
-#include <regex>
-#include <set>
-
-
-constexpr static auto LCURRENT = LOUTPUT;
-
-using namespace uncrustify;
-
-
-struct cmt_reflow
-{
- chunk_t *pc = nullptr;
- size_t column = 0; //! Column of the comment start
- size_t brace_col = 0; //! Brace column (for indenting with tabs)
- size_t base_col = 0; //! Base column (for indenting with tabs)
- size_t word_count = 0; //! number of words on this line
- size_t xtra_indent = 0; //! extra indent of non-first lines (0 or 1)
- unc_text cont_text; //! fixed text to output at the start of a line (0 to 3 chars)
- bool reflow = false; //! reflow the current line
-};
-
-
-/**
- * A multiline comment
- * The only trick here is that we have to trim out whitespace characters
- * to get the comment to line up.
- */
-static void output_comment_multi(chunk_t *pc);
-
-
-static bool kw_fcn_filename(chunk_t *cmt, unc_text &out_txt);
-
-
-static bool kw_fcn_class(chunk_t *cmt, unc_text &out_txt);
-
-
-static bool kw_fcn_message(chunk_t *cmt, unc_text &out_txt);
-
-
-static bool kw_fcn_category(chunk_t *cmt, unc_text &out_txt);
-
-
-static bool kw_fcn_scope(chunk_t *cmt, unc_text &out_txt);
-
-
-static bool kw_fcn_function(chunk_t *cmt, unc_text &out_txt);
-
-
-/**
- * Adds the javadoc-style @param and @return stuff, based on the params and
- * return value for pc.
- * If the arg list is '()' or '(void)', then no @params are added.
- * Likewise, if the return value is 'void', then no @return is added.
- */
-static bool kw_fcn_javaparam(chunk_t *cmt, unc_text &out_txt);
-
-
-static bool kw_fcn_fclass(chunk_t *cmt, unc_text &out_txt);
-
-
-static bool kw_fcn_year(chunk_t *cmt, unc_text &out_txt);
-
-
-/**
- * Output a multiline comment without any reformatting other than shifting
- * it left or right to get the column right.
- *
- * Trims trailing whitespaces.
- */
-static void output_comment_multi_simple(chunk_t *pc);
-
-
-/**
- * This renders the #if condition to a string buffer.
- *
- * @param[out] dst unc_text buffer to be filled
- * @param[in] ifdef if conditional as chunk list
- */
-static void generate_if_conditional_as_text(unc_text &dst, chunk_t *ifdef);
-
-
-/**
- * Do keyword substitution on a comment.
- * NOTE: it is assumed that a comment will contain at most one of each type
- * of keyword.
- */
-static void do_kw_subst(chunk_t *pc);
-
-
-//! All output text is sent here, one char at a time.
-static void add_char(UINT32 ch, bool is_literal = false);
-
-
-static void add_text(const char *ascii_text);
-
-
-static void add_text(const unc_text &text, bool is_ignored, bool is_literal);
-
-
-/**
- * Count the number of characters to the end of the next chunk of text.
- * If it exceeds the limit, return true.
- */
-static bool next_word_exceeds_limit(const unc_text &text, size_t idx);
-
-
-/**
- * Output a comment to the column using indent_with_tabs and
- * indent_cmt_with_tabs as the rules.
- * base_col is the indent of the first line of the comment.
- * On the first line, column == base_col.
- * On subsequent lines, column >= base_col.
- *
- * @param brace_col the brace-level indent of the comment
- * @param base_col the indent of the start of the comment (multiline)
- * @param column the column that we should end up in
- */
-static void cmt_output_indent(size_t brace_col, size_t base_col, size_t column);
-
-
-/**
- * Checks for and updates the lead chars.
- *
- * @param line the comment line
- *
- * @return 0: not present, >0: number of chars that are part of the lead
- */
-static size_t cmt_parse_lead(const unc_text &line, bool is_last);
-
-
-/**
- * Scans a multiline comment to determine the following:
- * - the extra indent of the non-first line (0 or 1)
- * - the continuation text ('' or '* ')
- *
- * The decision is based on:
- * - cmt_indent_multi
- * - cmt_star_cont
- * - cmt_multi_first_len_minimum
- * - the first line length
- * - the second line leader length
- * - the last line length (without leading space/tab)
- *
- * If the first and last line are the same length and don't contain any alnum
- * chars and (the first line len > 2 or the second leader is the same as the
- * first line length), then the indent is 0.
- *
- * If the leader on the second line is 1 wide or missing, then the indent is 1.
- *
- * Otherwise, the indent is 0.
- *
- * @param str The comment string
- * @param len Length of the comment
- * @param start_col Starting column
- *
- * @return cmt.xtra_indent is set to 0 or 1
- */
-static void calculate_comment_body_indent(cmt_reflow &cmt, const unc_text &str);
-
-
-static int next_up(const unc_text &text, size_t idx, const unc_text &tag);
-
-
-/**
- * Outputs the C comment at pc.
- * C comment combining is done here
- *
- * @return the last chunk output'd
- */
-static chunk_t *output_comment_c(chunk_t *pc);
-
-
-/**
- * Outputs the CPP comment at pc.
- * CPP comment combining is done here
- *
- * @return the last chunk output'd
- */
-static chunk_t *output_comment_cpp(chunk_t *pc);
-
-
-static void cmt_trim_whitespace(unc_text &line, bool in_preproc);
-
-
-/**
- * Outputs a comment. The initial opening '//' may be included in the text.
- * Subsequent openings (if combining comments), should not be included.
- * The closing (for C/D comments) should not be included.
- *
- * TODO:
- * If reflowing text, the comment should be added one word (or line) at a time.
- * A newline should only be sent if a blank line is encountered or if the next
- * line is indented beyond the current line (optional?).
- * If the last char on a line is a ':' or '.', then the next line won't be
- * combined.
- */
-static void add_comment_text(const unc_text &text, cmt_reflow &cmt, bool esc_close, size_t continuation_indent = 0);
-
-
-static void output_cmt_start(cmt_reflow &cmt, chunk_t *pc);
-
-
-/**
- * Checks to see if the current comment can be combined with the next comment.
- * The two can be combined if:
- * 1. They are the same type
- * 2. There is exactly one newline between then
- * 3. They are indented to the same level
- */
-static bool can_combine_comment(chunk_t *pc, cmt_reflow &cmt);
-
-
-#define LOG_CONTTEXT() \
- LOG_FMT(LCONTTEXT, "%s(%d): set cont_text to '%s'\n", __func__, __LINE__, cmt.cont_text.c_str())
-
-
-static void add_spaces()
-{
- while (cpd.spaces > 0)
- {
- write_char(' ');
- cpd.spaces--;
- }
-}
-
-
-static void add_char(UINT32 ch, bool is_literal)
-{
- // If we did a '\r' and it isn't followed by a '\n', then output a newline
- if ( (cpd.last_char == '\r')
- && (ch != '\n'))
- {
- write_string(cpd.newline);
- cpd.column = 1;
- cpd.did_newline = 1;
- cpd.spaces = 0;
- }
-
- // convert a newline into the LF/CRLF/CR sequence
- if (ch == '\n')
- {
- add_spaces();
- write_string(cpd.newline);
- cpd.column = 1;
- cpd.did_newline = 1;
- cpd.spaces = 0;
- }
- else if (ch == '\r') // do not output the CARRIAGERETURN
- {
- // do not output '\r'
- cpd.column = 1;
- cpd.did_newline = 1;
- cpd.spaces = 0;
- }
- else if ( (ch == '\t')
- && cpd.output_tab_as_space)
- {
- size_t endcol = next_tab_column(cpd.column);
-
- while (cpd.column < endcol)
- {
- add_char(' ');
- }
- return;
- }
- else
- {
- // explicitly disallow a tab after a space
- if ( !is_literal
- && ch == '\t'
- && cpd.last_char == ' ')
- {
- log_rule_B("indent_with_tabs");
-
- if (options::indent_with_tabs() == 0)
- {
- size_t endcol = next_tab_column(cpd.column);
-
- while (cpd.column < endcol)
- {
- add_char(' ');
- }
- return;
- }
- }
-
- if ( (ch == ' ')
- && !cpd.output_trailspace)
- {
- cpd.spaces++;
- cpd.column++;
- }
- else
- {
- add_spaces();
- write_char(ch);
-
- if (ch == '\t')
- {
- cpd.column = next_tab_column(cpd.column);
- }
- else
- {
- cpd.column++;
- }
- }
- }
- cpd.last_char = ch;
-} // add_char
-
-
-static void add_text(const char *ascii_text)
-{
- char ch;
-
- while ((ch = *ascii_text) != 0)
- {
- ascii_text++;
- add_char(ch);
- }
-}
-
-
-static void add_text(const unc_text &text, bool is_ignored = false, bool is_literal = false)
-{
- for (size_t idx = 0; idx < text.size(); idx++)
- {
- int ch = text[idx];
-
- if (is_ignored)
- {
- write_char(ch);
- }
- else
- {
- add_char(ch, is_literal);
- }
- }
-}
-
-
-static bool next_word_exceeds_limit(const unc_text &text, size_t idx)
-{
- LOG_FMT(LCONTTEXT, "%s(%d): idx is %zu\n",
- __func__, __LINE__, idx);
- size_t length = 0;
-
- // Count any whitespace
- while ( (idx < text.size())
- && unc_isspace(text[idx]))
- {
- idx++;
- length++;
- }
-
- // Count non-whitespace
- while ( (idx < text.size())
- && !unc_isspace(text[idx]))
- {
- idx++;
- length++;
- }
- return((cpd.column + length - 1) > options::cmt_width());
-}
-
-
-/**
- * Advance to a specific column
- * cpd.column is the current column
- *
- * @param column The column to advance to
- */
-static void output_to_column(size_t column, bool allow_tabs)
-{
- cpd.did_newline = 0;
-
- if (allow_tabs)
- {
- // tab out as far as possible and then use spaces
- size_t next_column = next_tab_column(cpd.column);
-
- while (next_column <= column)
- {
- add_text("\t");
- next_column = next_tab_column(cpd.column);
- }
- }
-
- // space out the final bit
- while (cpd.column < column)
- {
- add_text(" ");
- }
-}
-
-
-static void cmt_output_indent(size_t brace_col, size_t base_col, size_t column)
-{
- log_rule_B("indent_cmt_with_tabs");
- log_rule_B("indent_with_tabs");
- size_t iwt = options::indent_cmt_with_tabs() ? 2 :
- (options::indent_with_tabs() ? 1 : 0);
-
- size_t tab_col = (iwt == 0) ? 0 : ((iwt == 1) ? brace_col : base_col);
-
- // LOG_FMT(LSYS, "%s(brace=%zd base=%zd col=%zd iwt=%zd) tab=%zd cur=%zd\n",
- // __func__, brace_col, base_col, column, iwt, tab_col, cpd.column);
-
- cpd.did_newline = 0;
-
- if ( iwt == 2
- || ( cpd.column == 1
- && iwt == 1))
- {
- // tab out as far as possible and then use spaces
- while (next_tab_column(cpd.column) <= tab_col)
- {
- add_text("\t");
- }
- }
-
- // space out the rest
- while (cpd.column < column)
- {
- add_text(" ");
- }
-} // cmt_output_indent
-
-
-void output_parsed(FILE *pfile, bool withOptions)
-{
- const char *eol_marker = get_eol_marker();
-
- if (withOptions)
- {
- save_option_file(pfile, false, true);
- }
- fprintf(pfile, "# -=====-%s", eol_marker);
- fprintf(pfile, "# number of loops = %d\n", cpd.changes);
- fprintf(pfile, "# -=====-%s", eol_marker);
- fprintf(pfile, "# language = %s\n", language_name_from_flags(cpd.lang_flags));
- fprintf(pfile, "# -=====-%s", eol_marker);
- // MAXLENGTHOFTHENAME must be consider at the format line at the file
- // output.cpp, line 427: fprintf(pfile, "# Line Tag Parent...
- // and 430: ... fprintf(pfile, "%s# %3zu>%19.19s[%19.19s] ...
- // here xx xx xx xx
-#ifdef WIN32
- fprintf(pfile, "# Line Tag Parent_type Type of the parent Columns Br/Lvl/pp Nl Text");
-#else // not WIN32
- fprintf(pfile, "# Line Tag Parent_type Type of the parent Columns Br/Lvl/pp Flag Nl Text");
-#endif // ifdef WIN32
-
- for (chunk_t *pc = chunk_get_head(); pc != nullptr; pc = chunk_get_next(pc))
- {
-#ifdef WIN32
- fprintf(pfile, "%s# %3d>%19.19s|%19.19s|%19.19s[%3d/%3d/%3d/%3d][%d/%d/%d][%d-%d]",
- eol_marker, (int)pc->orig_line, get_token_name(pc->type),
- get_token_name(get_chunk_parent_type(pc)), get_token_name(get_type_of_the_parent(pc)),
- (int)pc->column, (int)pc->orig_col, (int)pc->orig_col_end, (int)pc->orig_prev_sp,
- (int)pc->brace_level, (int)pc->level, (int)pc->pp_level, (int)pc->nl_count, pc->after_tab);
-#else // not WIN32
- fprintf(pfile, "%s# %3zu>%19.19s|%19.19s|%19.19s[%3zu/%3zu/%3zu/%3d][%zu/%zu/%zu]",
- eol_marker, pc->orig_line, get_token_name(pc->type),
- get_token_name(get_chunk_parent_type(pc)), get_token_name(get_type_of_the_parent(pc)),
- pc->column, pc->orig_col, pc->orig_col_end, pc->orig_prev_sp,
- pc->brace_level, pc->level, pc->pp_level);
- fprintf(pfile, "[%11llx]",
- static_cast<pcf_flags_t::int_t>(pc->flags));
- fprintf(pfile, "[%zu-%d]",
- pc->nl_count, pc->after_tab);
-#endif // ifdef WIN32
-
- if ( pc->type != CT_NEWLINE
- && (pc->len() != 0))
- {
- for (size_t cnt = 0; cnt < pc->column; cnt++)
- {
- fprintf(pfile, " ");
- }
-
- if (pc->type != CT_NL_CONT)
- {
- fprintf(pfile, "%s", pc->text());
- }
- else
- {
- fprintf(pfile, "\\");
- }
- }
- }
-
- fprintf(pfile, "%s# -=====-%s", eol_marker, eol_marker);
- fflush(pfile);
-} // output_parsed
-
-
-void output_parsed_csv(FILE *pfile)
-{
- const char *eol_marker = get_eol_marker();
-
- fprintf(pfile, "number of loops,%d,\n", cpd.changes);
- fprintf(pfile, "language,%s,\n", language_name_from_flags(cpd.lang_flags));
- fprintf(pfile, "Line,Tag,Parent_type,Type of the parent,Column,Orig Col Strt,"
- "Orig Col End,Orig Sp Before,Br,Lvl,pp,Flags,Nl Before,Nl After,Text,");
-
- for (chunk_t *pc = chunk_get_head(); pc != nullptr; pc = chunk_get_next(pc))
- {
- fprintf(pfile, "%s%zu,%s,%s,%s,%zu,%zu,%zu,%d,%zu,%zu,%zu,",
- eol_marker, pc->orig_line, get_token_name(pc->type),
- get_token_name(get_chunk_parent_type(pc)), get_token_name(get_type_of_the_parent(pc)),
- pc->column, pc->orig_col, pc->orig_col_end, pc->orig_prev_sp,
- pc->brace_level, pc->level, pc->pp_level);
-
- auto pcf_flag_str = pcf_flags_str(pcf_flag_e(pc->flags));
-#ifdef WIN32
- auto pcf_flag_str_start = pcf_flag_str.find("[") + 1;
-#else // not WIN32
- auto pcf_flag_str_start = pcf_flag_str.find(":") + 1;
-#endif // ifdef WIN32
- auto pcf_flag_str_end = pcf_flag_str.find("]");
- auto pcf_names = pcf_flag_str.substr(pcf_flag_str_start,
- pcf_flag_str_end - pcf_flag_str_start);
- fprintf(pfile, "\"%s\",", pcf_names.c_str());
- fprintf(pfile, "%zu,%d,",
- pc->nl_count, pc->after_tab);
-
- if ( pc->type != CT_NEWLINE
- && (pc->len() != 0))
- {
- fprintf(pfile, "\"");
-
- for (size_t cnt = 0; cnt < pc->column; cnt++)
- {
- fprintf(pfile, " ");
- }
-
- if (pc->type != CT_NL_CONT)
- {
- for (auto *ch = pc->text(); *ch != '\0'; ++ch)
- {
- fprintf(pfile, "%c", *ch);
-
- if (*ch == '"')
- {
- // need to escape the double-quote for csv-format
- fprintf(pfile, "\"");
- }
- }
- }
- else
- {
- fprintf(pfile, "\\");
- }
- fprintf(pfile, "\"");
- }
- }
-
- fflush(pfile);
-} // output_parsed_csv
-
-
-void output_text(FILE *pfile)
-{
- bool tracking = cpd.html_file != nullptr; // special for debugging
-
- cpd.fout = pfile;
- cpd.did_newline = 1;
- cpd.column = 1;
-
- if (cpd.bom)
- {
- write_bom();
- }
- chunk_t *pc;
-
- if (cpd.frag_cols > 0)
- {
- size_t indent = cpd.frag_cols - 1;
-
- // loop over the whole chunk list
- for (pc = chunk_get_head(); pc != nullptr; pc = chunk_get_next(pc))
- {
- pc->column += indent;
- pc->column_indent += indent;
- }
-
- cpd.frag_cols = 0;
- }
-
- if (tracking)
- {
- add_text("<html>\n");
- add_text("<head>\n");
- add_text(" <meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\"/>\n");
- add_text(" <title>Uncrustify: where do the Spaces options work</title>\n");
- add_text("</head>\n");
- add_text("<body lang=\"en-US\">\n");
- add_text("<p>\n");
- add_text("</p>\n");
- add_text("<pre>\n");
- }
- bool write_in_tracking = false;
-
- // loop over the whole chunk list
- for (pc = chunk_get_head(); pc != nullptr; pc = chunk_get_next(pc))
- {
- char copy[1000];
- LOG_FMT(LCONTTEXT, "%s(%d): text() is '%s', type is %s, orig_line is %zu, column is %zu, nl is %zu\n",
- __func__, __LINE__, pc->elided_text(copy), get_token_name(pc->type), pc->orig_line, pc->column, pc->nl_count);
- log_rule_B("cmt_convert_tab_to_spaces");
- cpd.output_tab_as_space = ( options::cmt_convert_tab_to_spaces()
- && chunk_is_comment(pc));
-
- if (chunk_is_token(pc, CT_NEWLINE))
- {
- for (size_t cnt = 0; cnt < pc->nl_count; cnt++)
- {
- if ( cnt > 0
- && pc->nl_column > 1)
- {
- log_rule_B("indent_with_tabs");
- output_to_column(pc->nl_column, (options::indent_with_tabs() == 2));
- }
- add_char('\n');
- }
-
- cpd.did_newline = 1;
- cpd.column = 1;
- LOG_FMT(LOUTIND, " xx\n");
- }
- else if (chunk_is_token(pc, CT_NL_CONT))
- {
- // FIXME: this really shouldn't be done here!
- if (!pc->flags.test(PCF_WAS_ALIGNED))
- {
- // Add or remove space before a backslash-newline at the end of a line.
- log_rule_B("sp_before_nl_cont");
-
- if (options::sp_before_nl_cont() & IARF_REMOVE)
- {
- log_rule_B("sp_before_nl_cont");
- pc->column = cpd.column + (options::sp_before_nl_cont() == IARF_FORCE);
- }
- else
- {
- // Try to keep the same relative spacing
- chunk_t *prev = chunk_get_prev(pc);
-
- if (chunk_is_token(prev, CT_PP_IGNORE))
- {
- /*
- * Want to completely leave alone PP_IGNORE'd blocks because
- * they likely have special column aligned newline
- * continuations (common in multiline macros)
- */
- pc->column = pc->orig_col;
- }
- else
- {
- // Try to keep the same relative spacing
- while ( prev != nullptr
- && prev->orig_col == 0
- && prev->nl_count == 0)
- {
- prev = chunk_get_prev(prev);
- }
-
- if ( prev != nullptr
- && prev->nl_count == 0)
- {
- int orig_sp = (pc->orig_col - prev->orig_col_end);
-
- if ((int)(cpd.column + orig_sp) < 0)
- {
-#ifdef WIN32
- fprintf(stderr, "FATAL: negative value.\n pc->orig_col is %d, prev->orig_col_end is %d\n",
- (int)pc->orig_col, (int)prev->orig_col_end);
-#else // not WIN32
- fprintf(stderr, "FATAL: negative value.\n pc->orig_col is %zu, prev->orig_col_end is %zu\n",
- pc->orig_col, prev->orig_col_end);
-#endif // ifdef WIN32
- log_flush(true);
- exit(EX_SOFTWARE);
- }
- pc->column = cpd.column + orig_sp;
-
- // Add or remove space before a backslash-newline at the end of a line.
- log_rule_B("sp_before_nl_cont");
-
- if ( (options::sp_before_nl_cont() != IARF_IGNORE)
- && (pc->column < (cpd.column + 1)))
- {
- pc->column = cpd.column + 1;
- }
- }
- }
- }
- output_to_column(pc->column, false);
- }
- else
- {
- log_rule_B("indent_with_tabs");
- output_to_column(pc->column, (options::indent_with_tabs() == 2));
- }
- add_char('\\');
- add_char('\n');
- cpd.did_newline = 1;
- cpd.column = 1;
- LOG_FMT(LOUTIND, " \\xx\n");
- }
- else if (chunk_is_token(pc, CT_COMMENT_MULTI))
- {
- log_rule_B("cmt_indent_multi");
-
- if (options::cmt_indent_multi())
- {
- output_comment_multi(pc);
- }
- else
- {
- output_comment_multi_simple(pc);
- }
- }
- else if (chunk_is_token(pc, CT_COMMENT_CPP))
- {
- bool tmp = cpd.output_trailspace;
- /*
- * keep trailing spaces if they are still present in a chunk;
- * note that tokenize() already strips spaces in comments,
- * so if they made it up to here, they are to stay
- */
- cpd.output_trailspace = true;
- pc = output_comment_cpp(pc);
- cpd.output_trailspace = tmp;
- }
- else if (chunk_is_token(pc, CT_COMMENT))
- {
- pc = output_comment_c(pc);
- }
- else if ( chunk_is_token(pc, CT_JUNK)
- || chunk_is_token(pc, CT_IGNORED))
- {
- LOG_FMT(LOUTIND, "%s(%d): orig_line is %zu, orig_col is %zu,\npc->text() >%s<, pc->str.size() is %zu\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(), pc->str.size());
- // do not adjust the column for junk
- add_text(pc->str, true);
- }
- else if (pc->len() == 0)
- {
- // don't do anything for non-visible stuff
- LOG_FMT(LOUTIND, "%s(%d): orig_line is %zu, column is %zu, non-visible stuff: type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->column, get_token_name(pc->type));
- }
- else
- {
- bool allow_tabs;
- cpd.output_trailspace = (chunk_is_token(pc, CT_STRING_MULTI));
-
- // indent to the 'level' first
- if (cpd.did_newline)
- {
- log_rule_B("indent_with_tabs");
-
- if (options::indent_with_tabs() == 1)
- {
- size_t lvlcol;
-
- /*
- * FIXME: it would be better to properly set column_indent in
- * indent_text(), but this hack for '}' and '#' seems to work.
- */
- if ( chunk_is_token(pc, CT_BRACE_CLOSE)
- || chunk_is_token(pc, CT_CASE_COLON)
- || chunk_is_token(pc, CT_PREPROC))
- {
- lvlcol = pc->column;
- }
- else
- {
- lvlcol = pc->column_indent;
-
- if (lvlcol > pc->column)
- {
- lvlcol = pc->column;
- }
- }
-
- if (lvlcol > 1)
- {
- output_to_column(lvlcol, true);
- }
- }
- log_rule_B("indent_with_tabs");
- allow_tabs = (options::indent_with_tabs() == 2)
- || ( chunk_is_comment(pc)
- && options::indent_with_tabs() != 0);
-
- LOG_FMT(LOUTIND, "%s(%d): orig_line is %zu, column is %zu, column_indent is %zu, cpd.column is %zu\n",
- __func__, __LINE__, pc->orig_line, pc->column, pc->column_indent, cpd.column);
- }
- else
- {
- /*
- * Reformatting multi-line comments can screw up the column.
- * Make sure we don't mess up the spacing on this line.
- * This has to be done here because comments are not formatted
- * until the output phase.
- */
- if (pc->column < cpd.column)
- {
- reindent_line(pc, cpd.column);
- }
- // not the first item on a line
- chunk_t *prev = chunk_get_prev(pc);
- log_rule_B("align_with_tabs");
- allow_tabs = ( options::align_with_tabs()
- && pc->flags.test(PCF_WAS_ALIGNED)
- && ((prev->column + prev->len() + 1) != pc->column));
-
- log_rule_B("align_keep_tabs");
-
- if (options::align_keep_tabs())
- {
- allow_tabs |= pc->after_tab;
- }
- LOG_FMT(LOUTIND, "%s(%d): at column %zu(%s)\n",
- __func__, __LINE__, pc->column, (allow_tabs ? "true" : "FALSE"));
- }
- output_to_column(pc->column, allow_tabs);
-
- if (write_in_tracking)
- {
- if (chunk_is_token(pc, CT_ANGLE_OPEN))
- {
- add_text("&lt;", false, false);
- }
- else if (chunk_is_token(pc, CT_ANGLE_CLOSE))
- {
- add_text("&gt;", false, false);
- }
- else
- {
- add_text(pc->str, false, chunk_is_token(pc, CT_STRING));
- }
- write_in_tracking = false;
- }
- else
- {
- add_text(pc->str, false, chunk_is_token(pc, CT_STRING));
- }
-
- if (chunk_is_token(pc, CT_PP_DEFINE)) // Issue #876
- {
- // If true, a <TAB> is inserted after #define.
- log_rule_B("force_tab_after_define");
-
- if (options::force_tab_after_define())
- {
- add_char('\t');
- }
- }
- cpd.did_newline = chunk_is_newline(pc);
- cpd.output_trailspace = false;
- }
-
- if (pc->tracking != nullptr)
- {
- LOG_FMT(LGUY, " Tracking info are: \n");
- LOG_FMT(LGUY, " number of track(s) %zu\n", pc->tracking->size());
- add_text("<a title=\"");
- char tempText[80];
-
- for (size_t track = 0; track < pc->tracking->size(); track++)
- {
- track_list *A = pc->tracking;
- Track_nr B = A->at(track);
- size_t Bfirst = B.first;
- char *Bsecond = B.second;
-
- sprintf(tempText, "%zu", Bfirst);
- add_text(tempText);
- add_text(",");
-
- if (track == pc->tracking->size() - 1)
- {
- sprintf(tempText, "%s", Bsecond);
- add_text(tempText);
- }
- LOG_FMT(LGUY, " %zu, tracking number is %zu\n", track, Bfirst);
- LOG_FMT(LGUY, " %zu, rule is %s\n", track, Bsecond);
- }
-
- add_text("\"><font color=\"red\">M</font></a>");
- write_in_tracking = true;
- }
- }
-
- if (tracking)
- {
- add_text("</pre>\n");
- add_text("</body>\n");
- add_text("</html>\n");
- }
-} // output_text
-
-
-void dump_step(const char *filename, const char *step_description)
-{
- static int file_num = 0;
- char buffer[256];
- FILE *dump_file;
-
- if ( filename == nullptr
- || strlen(filename) == 0)
- {
- return;
- }
-
- // On the first call, also save the options in use
- if (file_num == 0)
- {
- snprintf(buffer, 256, "New dump file: %s_%03d.log - Options in use", filename, file_num);
- log_rule_B(buffer);
-
- snprintf(buffer, 256, "%s_%03d.log", filename, file_num);
- ++file_num;
-
- dump_file = fopen(buffer, "wb");
-
- if (dump_file != nullptr)
- {
- save_option_file(dump_file, false, true);
- fclose(dump_file);
- }
- }
- snprintf(buffer, 256, "New dump file: %s_%03d.log - %s", filename, file_num, step_description);
- log_rule_B(buffer);
-
- snprintf(buffer, 256, "%s_%03d.log", filename, file_num);
- ++file_num;
-
- dump_file = fopen(buffer, "wb");
-
- if (dump_file != nullptr)
- {
- fprintf(dump_file, "STEP: %s\n--------------\n", step_description);
- output_parsed(dump_file, false);
- fclose(dump_file);
- }
-} // dump_step
-
-
-static size_t cmt_parse_lead(const unc_text &line, bool is_last)
-{
- size_t len = 0;
-
- while ( len < 32
- && len < line.size()) // TODO what is the meaning of 32?
- {
- if ( len > 0
- && line[len] == '/')
- {
- // ignore combined comments
- size_t tmp = len + 1;
-
- while ( tmp < line.size()
- && unc_isspace(line[tmp]))
- {
- tmp++;
- }
-
- if ( tmp < line.size()
- && line[tmp] == '/')
- {
- return(1);
- }
- break;
- }
- else if (strchr("*|\\#+", line[len]) == nullptr)
- {
- break; // none of the characters '*|\#+' found in line
- }
- len++;
- }
-
- if (len > 30) // TODO: what is the meaning of 30?
- {
- return(1);
- }
-
- if ( len > 0
- && ( len >= line.size()
- || unc_isspace(line[len])))
- {
- return(len);
- }
-
- if ( len == 1
- && line[0] == '*')
- {
- return(len);
- }
-
- if ( is_last
- && len > 0)
- {
- return(len);
- }
- return(0);
-} // cmt_parse_lead
-
-
-/**
- * Eat whitespace characters starting at the specified index in the forward or reverse direction
- * within a single line
- * @param str the input string containing the comment text
- * @param idx the starting index
- * @param forward if true, searches in the forward direction;
- * if false, searches in the reverse direction
- * @return the first index at which a non-whitespace character is encountered, including
- * a newline character
- */
-template<typename String>
-static int eat_line_whitespace(const String &str,
- int idx, bool
- forward = true)
-{
- auto advance_index = [&](int i)
- {
- return(forward ? i + 1 : i - 1);
- };
-
- auto index_in_range = [&](int i)
- {
- // TODO: the following BREAKS with source code formatting; uncrustify seems to
- // think that the following is a template. This will NEED to be fixed!!!
- // For now, reformulate the statement
- //return(forward ? i<int(str.size()) : i> = 0);
- return(forward ? (i < int(str.size())) : (i >= 0));
- };
-
- while ( index_in_range(idx)
- && str[idx] != '\n'
- && str[idx] != '\r'
- && unc_isspace(str[idx]))
- {
- idx = advance_index(idx);
- }
- return(idx);
-} // eat_line_whitespace
-
-
-/**
- * Returns whether or not a javaparam tag is the leading
- * text in a comment line, with only a sequence of whitespace
- * and/or '*' characters preceding it
- * @param str the input string containing the comment text
- * @param idx the starting index
- * @return true/false
- */
-template<typename String>
-static bool javaparam_tag_is_start_of_line(const String &str, int idx)
-{
- idx = eat_line_whitespace(str,
- str[idx] == '@' ? idx - 1 : idx,
- false);
-
- while (true)
- {
- if ( idx < 0
- || str[idx] == '\n'
- || str[idx] == '\r')
- {
- return(true);
- }
-
- if (str[idx] == '*')
- {
- idx = eat_line_whitespace(str,
- idx - 1,
- false);
- }
- else
- {
- return(false);
- }
- }
-} // javaparam_tag_is_start_of_line
-
-
-/**
- * Attempts to match a doxygen/javadoc-style comment tag
- * @param str the input string containing the comment text
- * @param idx the starting index
- * @return the index of the character immediately following the matched tag,
- * or -1 if no match is found
- */
-static int match_doxygen_javadoc_tag(const std::wstring &str, size_t idx)
-{
- std::wsmatch match;
-
- if (str[idx] == L'@')
- {
- std::wregex criteria(L"(@(?:author|"
- L"deprecated|"
- L"exception|"
- L"param(?:\\s*\\[\\s*(?:in\\s*,\\s*out|in|out)\\s*\\])?|"
- L"return|"
- L"see|"
- L"since|"
- L"throws|"
- L"version)\\b)");
-
- if ( std::regex_search(str.cbegin() + idx, str.cend(), match, criteria)
- && match[1].matched
- && match.position(1) == std::wsmatch::difference_type(0))
- {
- std::set<std::wstring> block_tags =
- {
- L"@author",
- L"@deprecated",
- L"@exception",
- L"@param",
- L"@param[in]",
- L"@param[in,out]",
- L"@param[out]",
- L"@return",
- L"@see",
- L"@since",
- L"@throws",
- L"@version"
- };
- std::wstring result(match[1]);
- result.erase(std::remove_if(result.begin(), result.end(), ::isspace), result.end());
- auto &&it_block_tag = block_tags.find(result);
-
- if ( it_block_tag != block_tags.end()
- && javaparam_tag_is_start_of_line(str, idx))
- {
- return(int(idx + match[1].length()));
- }
- }
- }
- return(-1);
-} // match_javadoc_block_tag
-
-
-static void calculate_doxygen_javadoc_indent_alignment(const std::wstring &str,
- size_t &doxygen_javadoc_param_name_indent,
- size_t &doxygen_javadoc_continuation_indent)
-{
- log_rule_B("cmt_align_doxygen_javadoc_tags");
-
- doxygen_javadoc_continuation_indent = 0;
- doxygen_javadoc_param_name_indent = 0;
-
- if (!options::cmt_align_doxygen_javadoc_tags())
- {
- return;
- }
-
- for (size_t idx = 0; idx < str.size(); ++idx)
- {
- int start_idx = idx;
- int end_idx = match_doxygen_javadoc_tag(str, start_idx);
-
- if (end_idx > start_idx)
- {
- size_t block_tag_width = 1 + std::count_if(str.begin() + start_idx,
- str.begin() + end_idx,
- [](wchar_t ch) {
- return(!unc_isspace(ch));
- });
-
- if (block_tag_width > doxygen_javadoc_param_name_indent)
- {
- doxygen_javadoc_param_name_indent = block_tag_width;
- }
- idx = eat_line_whitespace(str, end_idx);
-
- size_t param_name_width = 0;
-
- if (str.find(L"@param", start_idx) == size_t(start_idx))
- {
- param_name_width = 1;
-
- while (true)
- {
- while ( !unc_isspace(str[idx])
- && str[idx] != ',')
- {
- ++param_name_width;
- ++idx;
- }
- idx = eat_line_whitespace(str, idx);
-
- if (str[idx] != ',')
- {
- break;
- }
- param_name_width += 2;
- idx = eat_line_whitespace(str, idx + 1);
- }
- }
-
- if (param_name_width > doxygen_javadoc_continuation_indent)
- {
- doxygen_javadoc_continuation_indent = param_name_width;
- }
- }
- }
-
- if (doxygen_javadoc_param_name_indent > 0)
- {
- log_rule_B("cmt_sp_before_doxygen_javadoc_tags");
-
- doxygen_javadoc_param_name_indent += options::cmt_sp_before_doxygen_javadoc_tags();
- doxygen_javadoc_continuation_indent += doxygen_javadoc_param_name_indent;
- }
-} // calculate_doxygen_javadoc_indent_alignment
-
-
-static void calculate_comment_body_indent(cmt_reflow &cmt, const unc_text &str)
-{
- cmt.xtra_indent = 0;
-
- log_rule_B("cmt_indent_multi");
-
- if (!options::cmt_indent_multi())
- {
- return;
- }
- size_t idx = 0;
- size_t len = str.size();
- size_t last_len = 0;
-
- log_rule_B("cmt_multi_check_last");
-
- if (options::cmt_multi_check_last())
- {
- // find the last line length
- for (idx = len - 1; idx > 0; idx--)
- {
- if ( str[idx] == '\n'
- || str[idx] == '\r')
- {
- idx++;
-
- while ( idx < len
- && ( str[idx] == ' '
- || str[idx] == '\t'))
- {
- idx++;
- }
- last_len = len - idx;
- break;
- }
- }
- }
- // find the first line length
- size_t first_len = 0;
-
- for (idx = 0; idx < len; idx++)
- {
- if ( str[idx] == '\n'
- || str[idx] == '\r')
- {
- first_len = idx;
-
- while ( str[first_len - 1] == ' '
- || str[first_len - 1] == '\t')
- {
- if (first_len == 0)
- {
- fprintf(stderr, "%s(%d): first_len is ZERO, cannot be decremented.\n",
- __func__, __LINE__);
- log_flush(true);
- exit(EX_SOFTWARE);
- }
- first_len--;
- }
-
- // handle DOS endings
- if ( str[idx] == '\r'
- && str[idx + 1] == '\n')
- {
- idx++;
- }
- idx++;
- break;
- }
- }
-
- // Scan the second line
- size_t width = 0;
-
- for ( ; idx < len - 1; idx++)
- {
- if ( str[idx] == ' '
- || str[idx] == '\t')
- {
- if (width > 0)
- {
- break;
- }
- continue;
- }
-
- if ( str[idx] == '\n'
- || str[idx] == '\r')
- {
- break; // Done with second line
- }
-
- // Count the leading chars
- if ( str[idx] == '*'
- || str[idx] == '|'
- || str[idx] == '\\'
- || str[idx] == '#'
- || str[idx] == '+')
- {
- width++;
- }
- else
- {
- if ( width != 1
- || str[idx - 1] != '*')
- {
- width = 0;
- }
- break;
- }
- }
-
- // LOG_FMT(LSYS, "%s: first=%d last=%d width=%d\n", __func__, first_len, last_len, width);
-
- /*
- * If the first and last line are the same length and don't contain any
- * alphanumeric chars and (the first line len > cmt_multi_first_len_minimum
- * or the second leader is the same as the first line length), then the
- * indent is 0.
- */
- log_rule_B("cmt_multi_first_len_minimum");
-
- if ( first_len == last_len
- && ( first_len > options::cmt_multi_first_len_minimum()
- || first_len == width))
- {
- return;
- }
- cmt.xtra_indent = (width == 2) ? 0 : 1;
-} // calculate_comment_body_indent
-
-
-// TODO: can we use search_next_chunk here?
-static chunk_t *get_next_function(chunk_t *pc)
-{
- while ((pc = chunk_get_next(pc)) != nullptr)
- {
- if ( chunk_is_token(pc, CT_FUNC_DEF)
- || chunk_is_token(pc, CT_FUNC_PROTO)
- || chunk_is_token(pc, CT_FUNC_CLASS_DEF)
- || chunk_is_token(pc, CT_FUNC_CLASS_PROTO)
- || chunk_is_token(pc, CT_OC_MSG_DECL))
- {
- return(pc);
- }
- }
- return(nullptr);
-}
-
-
-static chunk_t *get_next_class(chunk_t *pc)
-{
- return(chunk_get_next(chunk_search_next_cat(pc, CT_CLASS)));
-}
-
-
-static chunk_t *get_prev_category(chunk_t *pc)
-{
- return(chunk_search_prev_cat(pc, CT_OC_CATEGORY));
-}
-
-
-static chunk_t *get_next_scope(chunk_t *pc)
-{
- return(chunk_search_next_cat(pc, CT_OC_SCOPE));
-}
-
-
-static chunk_t *get_prev_oc_class(chunk_t *pc)
-{
- return(chunk_search_prev_cat(pc, CT_OC_CLASS));
-}
-
-
-static int next_up(const unc_text &text, size_t idx, const unc_text &tag)
-{
- size_t offs = 0;
-
- while ( idx < text.size()
- && unc_isspace(text[idx]))
- {
- idx++;
- offs++;
- }
-
- if (text.startswith(tag, idx))
- {
- return(offs);
- }
- return(-1);
-}
-
-
-static void add_comment_text(const unc_text &text,
- cmt_reflow &cmt,
- bool esc_close,
- size_t continuation_indent)
-{
- bool was_star = false;
- bool was_slash = false;
- bool in_word = false;
- size_t len = text.size();
- size_t ch_cnt = 0; // chars since newline
-
- // If the '//' is included write it first else we may wrap an empty line
- size_t idx = 0;
-
- if (text.startswith("//"))
- {
- add_text("//");
- idx += 2;
-
- while (unc_isspace(text[idx]))
- {
- add_char(text[idx++]);
- }
- }
-
- for ( ; idx < len; idx++) // TODO: avoid modifying idx in loop
- {
- // Split the comment
- if (text[idx] == '\n')
- {
- in_word = false;
- add_char('\n');
- cmt_output_indent(cmt.brace_col, cmt.base_col, cmt.column);
-
- if (cmt.xtra_indent > 0)
- {
- add_char(' ');
- }
- // hack to get escaped newlines to align and not duplicate the leading '//'
- int tmp = next_up(text, idx + 1, "//");
-
- if (tmp < 0)
- {
- add_text(cmt.cont_text);
- }
- else
- {
- idx += tmp;
- }
- ch_cnt = 0;
- }
- else if ( cmt.reflow
- && text[idx] == ' '
- && options::cmt_width() > 0
- && ( cpd.column > options::cmt_width()
- || ( ch_cnt > 1
- && next_word_exceeds_limit(text, idx))))
- {
- log_rule_B("cmt_width");
- in_word = false;
- add_char('\n');
- cmt_output_indent(cmt.brace_col, cmt.base_col, cmt.column);
-
- if (cmt.xtra_indent > 0)
- {
- add_char(' ');
- }
- // The number of spaces to insert after the star on subsequent comment lines.
- log_rule_B("cmt_sp_after_star_cont");
-
- /**
- * calculate the output column
- */
- size_t column = options::cmt_sp_after_star_cont();
-
- if ( text[idx + 1] == 42 // this is star *
- && text[idx + 2] == 47) // this is /
- {
- LOG_FMT(LCONTTEXT, "%s(%d): we have a comment end\n",
- __func__, __LINE__);
-
- column += cmt.column;
- }
- else
- {
- add_text(cmt.cont_text);
-
- if (continuation_indent > 0)
- {
- if (options::cmt_align_doxygen_javadoc_tags())
- {
- log_rule_B("cmt_align_doxygen_javadoc_tags");
- }
- else if (options::cmt_reflow_indent_to_paragraph_start())
- {
- log_rule_B("cmt_reflow_indent_to_paragraph_start");
- }
- column += continuation_indent;
-
- log_rule_B("cmt_sp_after_star_cont");
-
- if (column >= options::cmt_sp_after_star_cont())
- {
- column -= options::cmt_sp_after_star_cont();
- }
- }
- /**
- * count the number trailing spaces in the comment continuation text
- */
- size_t num_trailing_sp = 0;
-
- while ( num_trailing_sp < cmt.cont_text.size()
- && unc_isspace(cmt.cont_text[cmt.cont_text.size() - 1 - num_trailing_sp]))
- {
- ++num_trailing_sp;
- }
- column += cpd.column;
-
- if (column >= num_trailing_sp)
- {
- column -= num_trailing_sp;
- }
- }
- output_to_column(column,
- false);
- ch_cnt = 0;
- }
- else
- {
- // Escape a C closure in a CPP comment
- if ( esc_close
- && ( ( was_star
- && text[idx] == '/')
- || ( was_slash
- && text[idx] == '*')))
- {
- add_char(' ');
- }
-
- if ( !in_word
- && !unc_isspace(text[idx]))
- {
- cmt.word_count++;
- }
- in_word = !unc_isspace(text[idx]);
-
- add_char(text[idx]);
- was_star = (text[idx] == '*');
- was_slash = (text[idx] == '/');
- ch_cnt++;
- }
- }
-} // add_comment_text
-
-
-static void output_cmt_start(cmt_reflow &cmt, chunk_t *pc)
-{
- cmt.pc = pc;
- cmt.column = pc->column;
- cmt.brace_col = pc->column_indent;
- cmt.base_col = pc->column_indent;
- cmt.word_count = 0;
- cmt.xtra_indent = 0;
- cmt.cont_text.clear();
- cmt.reflow = false;
-
- // Issue #2752
- log_rule_B("cmt_insert_file_header");
- log_rule_B("cmt_insert_file_footer");
- log_rule_B("cmt_insert_func_header)");
- log_rule_B("cmt_insert_class_header");
- log_rule_B("cmt_insert_oc_msg_header");
-
- if ( options::cmt_insert_file_header().size() > 0
- || options::cmt_insert_file_footer().size() > 0
- || options::cmt_insert_func_header().size() > 0
- || options::cmt_insert_class_header().size() > 0
- || options::cmt_insert_oc_msg_header().size() > 0)
- {
- LOG_FMT(LCONTTEXT, "%s(%d): cmt_insert_file\n", __func__, __LINE__);
- do_kw_subst(pc);
- }
- else
- {
- LOG_FMT(LCONTTEXT, "%s(%d): no cmt_insert_file\n", __func__, __LINE__);
- }
-
- if (cmt.brace_col == 0)
- {
- log_rule_B("output_tab_size");
- cmt.brace_col = 1 + (pc->brace_level * options::output_tab_size());
- }
- // LOG_FMT(LSYS, "%s: line %zd, brace=%zd base=%zd col=%zd orig=%zd aligned=%x\n",
- // __func__, pc->orig_line, cmt.brace_col, cmt.base_col, cmt.column, pc->orig_col,
- // pc->flags & (PCF_WAS_ALIGNED | PCF_RIGHT_COMMENT));
-
- if ( get_chunk_parent_type(pc) == CT_COMMENT_START
- || get_chunk_parent_type(pc) == CT_COMMENT_WHOLE)
- {
- log_rule_B("indent_col1_comment");
-
- if ( !options::indent_col1_comment()
- && pc->orig_col == 1
- && !pc->flags.test(PCF_INSERTED))
- {
- cmt.column = 1;
- cmt.base_col = 1;
- cmt.brace_col = 1;
- }
- }
- // tab aligning code
- log_rule_B("indent_cmt_with_tabs");
-
- if ( options::indent_cmt_with_tabs()
- && ( get_chunk_parent_type(pc) == CT_COMMENT_END
- || get_chunk_parent_type(pc) == CT_COMMENT_WHOLE))
- {
- cmt.column = align_tab_column(cmt.column - 1);
- // LOG_FMT(LSYS, "%s: line %d, orig:%d new:%d\n",
- // __func__, pc->orig_line, pc->column, cmt.column);
- pc->column = cmt.column;
- }
- cmt.base_col = cmt.column;
-
- // LOG_FMT(LSYS, "%s: -- brace=%d base=%d col=%d\n",
- // __func__, cmt.brace_col, cmt.base_col, cmt.column);
-
- // Bump out to the column
- cmt_output_indent(cmt.brace_col, cmt.base_col, cmt.column);
-} // output_cmt_start
-
-
-static bool can_combine_comment(chunk_t *pc, cmt_reflow &cmt)
-{
- // We can't combine if there is something other than a newline next
- if (get_chunk_parent_type(pc) == CT_COMMENT_START)
- {
- return(false);
- }
- // next is a newline for sure, make sure it is a single newline
- chunk_t *next = chunk_get_next(pc);
-
- if ( next != nullptr
- && next->nl_count == 1)
- {
- // Make sure the comment is the same type at the same column
- next = chunk_get_next(next);
-
- if ( chunk_is_token(next, pc->type)
- && ( ( next->column == 1
- && pc->column == 1)
- || ( next->column == cmt.base_col
- && pc->column == cmt.base_col)
- || ( next->column > cmt.base_col
- && get_chunk_parent_type(pc) == CT_COMMENT_END)))
- {
- return(true);
- }
- }
- return(false);
-} // can_combine_comment
-
-
-static chunk_t *output_comment_c(chunk_t *first)
-{
- cmt_reflow cmt;
-
- output_cmt_start(cmt, first);
- log_rule_B("cmt_reflow_mode");
- cmt.reflow = (options::cmt_reflow_mode() != 1);
-
- // See if we can combine this comment with the next comment
- log_rule_B("cmt_c_group");
-
- if ( !options::cmt_c_group()
- || !can_combine_comment(first, cmt))
- {
- // Just add the single comment
- log_rule_B("cmt_star_cont");
- cmt.cont_text = options::cmt_star_cont() ? " * " : " ";
- LOG_CONTTEXT();
-
- log_rule_B("cmt_trailing_single_line_c_to_cpp");
-
- if (options::cmt_trailing_single_line_c_to_cpp() && chunk_is_last_on_line(*first))
- {
- add_text("//");
-
- unc_text tmp;
- tmp.set(first->str, 2, first->len() - 4);
- cmt_trim_whitespace(tmp, false);
- add_comment_text(tmp, cmt, false);
- }
- else
- {
- add_comment_text(first->str, cmt, false);
- }
- return(first);
- }
- log_rule_B("cmt_star_cont");
- cmt.cont_text = options::cmt_star_cont() ? " *" : " ";
- LOG_CONTTEXT();
-
- add_text("/*");
-
- log_rule_B("cmt_c_nl_start");
-
- if (options::cmt_c_nl_start())
- {
- add_comment_text("\n", cmt, false);
- }
- chunk_t *pc = first;
- unc_text tmp;
-
- while (can_combine_comment(pc, cmt))
- {
- LOG_FMT(LCONTTEXT, "%s(%d): text() is '%s'\n",
- __func__, __LINE__, pc->text());
- tmp.set(pc->str, 2, pc->len() - 4);
-
- if ( cpd.last_char == '*'
- && ( tmp[0] == '/'
- || tmp[0] != ' ')) // Issue #1908
- {
- LOG_FMT(LCONTTEXT, "%s(%d): add_text a " "\n", __func__, __LINE__);
- add_text(" ");
- }
- // In case of reflow, original comment could contain trailing spaces before closing the comment, we don't need them after reflow
- LOG_FMT(LCONTTEXT, "%s(%d): trim\n", __func__, __LINE__);
- cmt_trim_whitespace(tmp, false);
- LOG_FMT(LCONTTEXT, "%s(%d): add_comment_text(tmp is '%s')\n",
- __func__, __LINE__, tmp.c_str());
- add_comment_text(tmp, cmt, false);
- LOG_FMT(LCONTTEXT, "%s(%d): add_comment_text(newline)\n",
- __func__, __LINE__);
- add_comment_text("\n", cmt, false);
- pc = chunk_get_next(pc);
- pc = chunk_get_next(pc);
- }
- tmp.set(pc->str, 2, pc->len() - 4);
-
- if ( cpd.last_char == '*'
- && tmp[0] == '/')
- {
- add_text(" ");
- }
- // In case of reflow, original comment could contain trailing spaces before closing the comment, we don't need them after reflow
- cmt_trim_whitespace(tmp, false);
- add_comment_text(tmp, cmt, false);
-
- log_rule_B("cmt_c_nl_end");
-
- if (options::cmt_c_nl_end())
- {
- cmt.cont_text = " ";
- LOG_CONTTEXT();
- add_comment_text("\n", cmt, false);
- }
- add_comment_text("*/", cmt, false);
- return(pc);
-} // output_comment_c
-
-
-static chunk_t *output_comment_cpp(chunk_t *first)
-{
- cmt_reflow cmt;
-
- output_cmt_start(cmt, first);
- log_rule_B("cmt_reflow_mode");
- cmt.reflow = (options::cmt_reflow_mode() != 1);
-
- unc_text leadin = "//"; // default setting to keep previous behaviour
-
- // If true, space is added with sp_cmt_cpp_start will be added after doxygen
- // sequences like '///', '///<', '//!' and '//!<'.
- log_rule_B("sp_cmt_cpp_doxygen");
-
- if (options::sp_cmt_cpp_doxygen()) // special treatment for doxygen style comments (treat as unity)
- {
- const char *sComment = first->text();
- bool grouping = (sComment[2] == '@');
- size_t brace = 3;
-
- if ( sComment[2] == '/'
- || sComment[2] == '!') // doxygen style found!
- {
- leadin += sComment[2]; // at least one additional char (either "///" or "//!")
-
- if (sComment[3] == '<') // and a further one (either "///<" or "//!<")
- {
- leadin += '<';
- }
- else
- {
- grouping = (sComment[3] == '@'); // or a further one (grouping)
- brace = 4;
- }
- }
-
- if ( grouping
- && ( sComment[brace] == '{'
- || sComment[brace] == '}'))
- {
- leadin += '@';
- leadin += sComment[brace];
- }
- }
- // Special treatment for Qt translator or meta-data comments (treat as unity)
- // If true, space is added with sp_cmt_cpp_start will be added after Qt
- // translator or meta-data comments like '//:', '//=', and '//~'.
- log_rule_B("sp_cmt_cpp_qttr");
-
- if (options::sp_cmt_cpp_qttr())
- {
- const int c = first->str[2];
-
- if ( c == ':'
- || c == '='
- || c == '~')
- {
- leadin += c;
- }
- }
- // CPP comments can't be grouped unless they are converted to C comments
- log_rule_B("cmt_cpp_to_c");
-
- if (!options::cmt_cpp_to_c())
- {
- auto const *cmt_text = first->str.c_str() + 2;
- // Add or remove space after the opening of a C++ comment,
- // i.e. '// A' vs. '//A'.
- auto *sp_cmt = &options::sp_cmt_cpp_start;
-
- cmt.cont_text = leadin;
-
- // Get start of comment text
- while ( *cmt_text != '\0'
- && unc_isspace(*cmt_text))
- {
- ++cmt_text;
- }
-
- // Determine if we are dealing with a region marker
- if ( ( !first->prev
- || first->prev->orig_line != first->orig_line)
- && ( strncmp(cmt_text, "BEGIN", 5) == 0
- || strncmp(cmt_text, "END", 3) == 0))
- {
- // If sp_cmt_cpp_region is not ignore, use that instead of
- // sp_cmt_cpp_start
- if (options::sp_cmt_cpp_region() != IARF_IGNORE)
- {
- sp_cmt = &options::sp_cmt_cpp_region;
- }
- }
- // Add or remove space after the opening of a C++ comment,
- // i.e. '// A' vs. '//A'.
- log_rule_B(sp_cmt->name());
-
- if ((*sp_cmt)() != IARF_REMOVE)
- {
- cmt.cont_text += ' ';
- }
- LOG_CONTTEXT();
-
- // Add or remove space after the opening of a C++ comment,
- // i.e. '// A' vs. '//A'.
- log_rule_B(sp_cmt->name());
-
- if ((*sp_cmt)() == IARF_IGNORE)
- {
- add_comment_text(first->str, cmt, false);
- }
- else
- {
- size_t iLISz = leadin.size();
- unc_text tmp(first->str, 0, iLISz);
- add_comment_text(tmp, cmt, false);
-
- tmp.set(first->str, iLISz, first->len() - iLISz);
-
- // Add or remove space after the opening of a C++ comment,
- // i.e. '// A' vs. '//A'.
- log_rule_B("sp_cmt_cpp_start");
-
- if ((*sp_cmt)() & IARF_REMOVE)
- {
- while ( (tmp.size() > 0)
- && unc_isspace(tmp[0]))
- {
- tmp.pop_front();
- }
- }
-
- if (tmp.size() > 0)
- {
- // Add or remove space after the opening of a C++ comment,
- // i.e. '// A' vs. '//A'.
- log_rule_B("sp_cmt_cpp_start");
-
- if ((*sp_cmt)() & IARF_ADD)
- {
- if ( !unc_isspace(tmp[0])
- && (tmp[0] != '/'))
- {
- add_comment_text(" ", cmt, false);
- }
- }
- add_comment_text(tmp, cmt, false);
- }
- }
- return(first);
- }
- // We are going to convert the CPP comments to C comments
- log_rule_B("cmt_star_cont");
- cmt.cont_text = options::cmt_star_cont() ? " * " : " ";
- LOG_CONTTEXT();
-
- unc_text tmp;
-
- // See if we can combine this comment with the next comment
- log_rule_B("cmt_cpp_group");
-
- if ( !options::cmt_cpp_group()
- || !can_combine_comment(first, cmt))
- {
- // nothing to group: just output a single line
- add_text("/*");
-
- // patch # 32, 2012-03-23
- // Add or remove space after the opening of a C++ comment,
- // i.e. '// A' vs. '//A'.
- log_rule_B("sp_cmt_cpp_start");
-
- if ( !unc_isspace(first->str[2])
- && (options::sp_cmt_cpp_start() & IARF_ADD))
- {
- add_char(' ');
- }
- tmp.set(first->str, 2, first->len() - 2);
- add_comment_text(tmp, cmt, true);
- add_text(" */");
- return(first);
- }
- add_text("/*");
-
- log_rule_B("cmt_cpp_nl_start");
-
- if (options::cmt_cpp_nl_start())
- {
- add_comment_text("\n", cmt, false);
- }
- else
- {
- add_text(" ");
- }
- chunk_t *pc = first;
- int offs;
-
- while (can_combine_comment(pc, cmt))
- {
- offs = unc_isspace(pc->str[2]) ? 1 : 0;
- tmp.set(pc->str, 2 + offs, pc->len() - (2 + offs));
-
- if ( cpd.last_char == '*'
- && tmp[0] == '/')
- {
- add_text(" ");
- }
- add_comment_text(tmp, cmt, true);
- add_comment_text("\n", cmt, false);
- pc = chunk_get_next(chunk_get_next(pc));
- }
- offs = unc_isspace(pc->str[2]) ? 1 : 0;
- tmp.set(pc->str, 2 + offs, pc->len() - (2 + offs));
- add_comment_text(tmp, cmt, true);
-
- log_rule_B("cmt_cpp_nl_end");
-
- if (options::cmt_cpp_nl_end())
- {
- cmt.cont_text = "";
- LOG_CONTTEXT();
- add_comment_text("\n", cmt, false);
- }
- add_comment_text(" */", cmt, false);
- return(pc);
-} // output_comment_cpp
-
-
-static void cmt_trim_whitespace(unc_text &line, bool in_preproc)
-{
- // Remove trailing whitespace on the line
- while ( line.size() > 0
- && ( line.back() == ' '
- || line.back() == '\t'))
- {
- line.pop_back();
- }
-
- // Shift back to the comment text, ...
- if ( in_preproc // if in a preproc ...
- && line.size() > 1 // with a line that holds ...
- && line.back() == '\\') // a backslash-newline ...
- {
- bool do_space = false;
-
- // If there was any space before the backslash, change it to 1 space
- line.pop_back();
-
- while ( line.size() > 0
- && ( line.back() == ' '
- || line.back() == '\t'))
- {
- do_space = true;
- line.pop_back();
- }
-
- if (do_space)
- {
- line.append(' ');
- }
- line.append('\\');
- }
-} // cmt_trim_whitespace
-
-
-/**
- * Return an indexed-map of reflow fold end of line/beginning of line regex pairs read
- * from file
- */
-static std::map<std::size_t, std::pair<std::wregex, std::wregex> > get_reflow_fold_regex_map()
-{
- /**
- * TODO: should the following be static to prevent initializing it multiple times?
- */
- static std::map<std::size_t, std::pair<std::wregex, std::wregex> > regex_map;
-
- if (regex_map.empty())
- {
- if (!options::cmt_reflow_fold_regex_file().empty())
- {
- std::wstring raw_wstring(cpd.reflow_fold_regex.raw.begin(),
- cpd.reflow_fold_regex.raw.end());
-
- std::wregex criteria(L"\\s*(?:(?:(beg_of_next)|(end_of_prev))_line_regex)"
- "\\s*\\[\\s*([0-9]+)\\s*\\]\\s*=\\s*\"(.*)\"\\s*"
- "(?=\\r\\n|\\r|\\n|$)");
- std::wsregex_iterator it_regex(raw_wstring.cbegin(), raw_wstring.cend(), criteria);
- std::wsregex_iterator it_regex_end = std::wsregex_iterator();
-
- while (it_regex != it_regex_end)
- {
- std::wsmatch match = *it_regex;
-
- if ( (( match[1].matched
- || match[2].matched))
- && match[3].matched
- && match[4].matched)
- {
- auto &&index = std::stoi(match[3].str());
- std::wregex *p_wregex = match[1].matched ? &regex_map[index].second
- : &regex_map[index].first;
- *p_wregex = match[4].str();
- }
- ++it_regex;
- }
- }
- else
- {
- regex_map.emplace(0L, std::make_pair(L"[\\w,\\]\\)]$", L"^[\\w,\\[\\(]"));
- regex_map.emplace(1L, std::make_pair(L"\\.$", L"^[A-Z]"));
- }
- }
- return(regex_map);
-} // get_reflow_fold_regex_map
-
-
-static void output_comment_multi(chunk_t *pc)
-{
- if (pc == nullptr)
- {
- return;
- }
- cmt_reflow cmt;
-
- char copy[1000];
-
- LOG_FMT(LCONTTEXT, "%s(%d): text() is '%s', type is %s, orig_col is %zu, column is %zu\n",
- __func__, __LINE__, pc->elided_text(copy), get_token_name(pc->type), pc->orig_col, pc->column);
-
- output_cmt_start(cmt, pc);
- log_rule_B("cmt_reflow_mode");
- cmt.reflow = (options::cmt_reflow_mode() != 1);
-
- size_t cmt_col = cmt.base_col;
- int col_diff = pc->orig_col - cmt.base_col;
-
- calculate_comment_body_indent(cmt, pc->str);
-
- log_rule_B("cmt_indent_multi");
- log_rule_B("cmt_star_cont");
- cmt.cont_text = !options::cmt_indent_multi() ? "" :
- (options::cmt_star_cont() ? "* " : " ");
- LOG_CONTTEXT();
-
- std::wstring pc_wstring(pc->str.get().cbegin(),
- pc->str.get().cend());
-
- size_t doxygen_javadoc_param_name_indent = 0;
- size_t doxygen_javadoc_continuation_indent = 0;
- size_t reflow_paragraph_continuation_indent = 0;
-
- calculate_doxygen_javadoc_indent_alignment(pc_wstring,
- doxygen_javadoc_param_name_indent,
- doxygen_javadoc_continuation_indent);
-
- size_t line_count = 0;
- size_t ccol = pc->column; // the col of subsequent comment lines
- size_t cmt_idx = 0;
- bool nl_end = false;
- bool doxygen_javadoc_indent_align = false;
- unc_text line;
-
- /*
- * Get a map of regex pairs that define expressions to match at both the end
- * of the previous line and the beginning of the next line
- */
- auto &&cmt_reflow_regex_map = get_reflow_fold_regex_map();
-
- line.clear();
- LOG_FMT(LCONTTEXT, "%s(%d): pc->len() is %zu\n",
- __func__, __LINE__, pc->len());
- //LOG_FMT(LCONTTEXT, "%s(%d): pc->str is %s\n",
- // __func__, __LINE__, pc->str.c_str());
-
- /**
- * check for enable/disable processing comment strings that may
- * both be embedded within the same multi-line comment
- */
- auto disable_processing_cmt_idx = find_disable_processing_comment_marker(pc->str);
- auto enable_processing_cmt_idx = find_enable_processing_comment_marker(pc->str);
-
- while (cmt_idx < pc->len())
- {
- int ch = pc->str[cmt_idx];
- cmt_idx++;
-
- if ( cmt_idx > std::size_t(disable_processing_cmt_idx)
- && enable_processing_cmt_idx > disable_processing_cmt_idx)
- {
- auto length = enable_processing_cmt_idx - disable_processing_cmt_idx;
- unc_text verbatim_text(pc->str,
- disable_processing_cmt_idx,
- length);
-
- add_text(verbatim_text);
-
- cmt_idx = enable_processing_cmt_idx;
-
- /**
- * check for additional enable/disable processing comment strings that may
- * both be embedded within the same multi-line comment
- */
- disable_processing_cmt_idx = find_disable_processing_comment_marker(pc->str,
- enable_processing_cmt_idx);
- enable_processing_cmt_idx = find_enable_processing_comment_marker(pc->str,
- enable_processing_cmt_idx);
-
- /**
- * it's probably necessary to reset the line count to prevent line
- * continuation characters from being added to the end of the current line
- */
- line_count = 0;
- }
-
- // handle the CRLF and CR endings. convert both to LF
- if (ch == '\r')
- {
- ch = '\n';
-
- if ( cmt_idx < pc->len()
- && pc->str[cmt_idx] == '\n')
- {
- cmt_idx++;
- }
- }
-
- // Find the start column
- if (line.size() == 0)
- {
- nl_end = false;
-
- if (ch == ' ')
- {
- ccol++;
- continue;
- }
- else if (ch == '\t')
- {
- log_rule_B("input_tab_size");
- ccol = calc_next_tab_column(ccol, options::input_tab_size());
- continue;
- }
- else
- {
- LOG_FMT(LCONTTEXT, "%s(%d):ch is %d, %c\n", __func__, __LINE__, ch, char(ch));
- }
- }
-
- if ( ch == '@'
- && options::cmt_align_doxygen_javadoc_tags())
- {
- int start_idx = cmt_idx - 1;
- int end_idx = match_doxygen_javadoc_tag(pc_wstring, start_idx);
-
- if (end_idx > start_idx)
- {
- doxygen_javadoc_indent_align = true;
-
- std::string match(pc->str.get().cbegin() + start_idx,
- pc->str.get().cbegin() + end_idx);
-
- match.erase(std::remove_if(match.begin(),
- match.end(),
- ::isspace),
- match.end());
-
- /**
- * remove whitespace before the '@'
- */
- int line_size_before_indent = line.size();
-
- while ( line_size_before_indent > 0
- && unc_isspace(line.back()))
- {
- line.pop_back();
- --line_size_before_indent;
- }
- log_rule_B("cmt_sp_before_doxygen_javadoc_tags");
-
- int indent = options::cmt_sp_before_doxygen_javadoc_tags();
-
- while (indent-- > 0)
- {
- line.append(' ');
- }
- cmt_idx += (end_idx - start_idx);
- line.append(match.c_str());
-
- bool is_exception_tag = match.find("@exception") != std::string::npos;
- bool is_param_tag = match.find("@param") != std::string::npos;
- bool is_throws_tag = match.find("@throws") != std::string::npos;
-
- if ( is_exception_tag
- || is_param_tag
- || is_throws_tag)
- {
- indent = int(doxygen_javadoc_param_name_indent) - int(line.size());
-
- while (indent-- > -line_size_before_indent)
- {
- line.append(' ');
- }
-
- while (true)
- {
- cmt_idx = eat_line_whitespace(pc->str,
- cmt_idx);
-
- while ( cmt_idx < pc->len()
- && !unc_isspace(pc->str[cmt_idx])
- && pc->str[cmt_idx] != ',')
- {
- line.append(pc->str[cmt_idx++]);
- }
-
- if (!is_param_tag)
- {
- break;
- }
- /**
- * check for the possibility that comma-separated parameter names are present
- */
- cmt_idx = eat_line_whitespace(pc->str,
- cmt_idx);
-
- if (pc->str[cmt_idx] != ',')
- {
- break;
- }
- ++cmt_idx;
- line.append(", ");
- }
- }
- cmt_idx = eat_line_whitespace(pc->str,
- cmt_idx);
- indent = int(doxygen_javadoc_continuation_indent) - int(line.size());
-
- while (indent-- > -line_size_before_indent)
- {
- line.append(' ');
- }
-
- while ( cmt_idx < pc->len()
- && !unc_isspace(pc->str[cmt_idx]))
- {
- line.append(pc->str[cmt_idx++]);
- }
- continue;
- }
- }
- /*
- * Now see if we need/must fold the next line with the current to enable
- * full reflow
- */
- log_rule_B("cmt_reflow_mode");
-
- if ( options::cmt_reflow_mode() == 2
- && ch == '\n'
- && cmt_idx < pc->len())
- {
- int next_nonempty_line = -1;
- int prev_nonempty_line = -1;
- size_t nwidx = line.size();
-
- // strip trailing whitespace from the line collected so far
- while (nwidx > 0)
- {
- nwidx--;
-
- if ( prev_nonempty_line < 0
- && !unc_isspace(line[nwidx])
- && line[nwidx] != '*' // block comment: skip '*' at end of line
- && (pc->flags.test(PCF_IN_PREPROC)
- ? ( line[nwidx] != '\\'
- || ( line[nwidx + 1] != '\r'
- && line[nwidx + 1] != '\n'))
- : true))
- {
- prev_nonempty_line = nwidx; // last non-whitespace char in the previous line
- }
- }
-
- for (size_t nxt_idx = cmt_idx;
- ( nxt_idx < pc->len()
- && pc->str[nxt_idx] != '\r'
- && pc->str[nxt_idx] != '\n');
- nxt_idx++)
- {
- if ( next_nonempty_line < 0
- && !unc_isspace(pc->str[nxt_idx])
- && pc->str[nxt_idx] != '*'
- && (pc->flags.test(PCF_IN_PREPROC)
- ? ( pc->str[nxt_idx] != '\\'
- || ( pc->str[nxt_idx + 1] != '\r'
- && pc->str[nxt_idx + 1] != '\n'))
- : true))
- {
- next_nonempty_line = nxt_idx; // first non-whitespace char in the next line
- }
- }
-
- if ( options::cmt_reflow_indent_to_paragraph_start()
- && next_nonempty_line >= 0
- && ( prev_nonempty_line <= 0
- || doxygen_javadoc_indent_align))
- {
- log_rule_B("cmt_reflow_indent_to_paragraph_start");
-
- int cmt_star_indent = 0;
-
- while ( next_nonempty_line > cmt_star_indent
- && pc->str[next_nonempty_line - cmt_star_indent - 1] != '*')
- {
- ++cmt_star_indent;
- }
- reflow_paragraph_continuation_indent = size_t(cmt_star_indent);
- }
-
- /*
- * see if we should fold up; usually that'd be a YES, but there are a few
- * situations where folding/reflowing by merging lines is frowned upon:
- *
- * - ASCII art in the comments (most often, these are drawings done in +-\/|.,*)
- *
- * - Doxygen/JavaDoc/etc. parameters: these often start with \ or @, at least
- * something clearly non-alphanumeric (you see where we're going with this?)
- *
- * - bullet lists that are closely spaced: bullets are always non-alphanumeric
- * characters, such as '-' or '+' (or, oh horror, '*' - that's bloody ambiguous
- * to parse :-( ... with or without '*' comment start prefix, that's the
- * question, then.)
- *
- * - semi-HTML formatted code, e.g. <pre>...</pre> comment sections (NDoc, etc.)
- *
- * - New lines which form a new paragraph without there having been added an
- * extra empty line between the last sentence and the new one.
- * A bit like this, really; so it is opportune to check if the last line ended
- * in a terminal (that would be the set '.:;!?') and the new line starts with
- * a capital.
- * Though new lines starting with comment delimiters, such as '(', should be
- * pulled up.
- *
- * So it bores down to this: the only folding (& reflowing) that's going to happen
- * is when the next line starts with an alphanumeric character AND the last
- * line didn't end with an non-alphanumeric character, except: ',' AND the next
- * line didn't start with a '*' all of a sudden while the previous one didn't
- * (the ambiguous '*'-for-bullet case!)
- */
- if ( prev_nonempty_line >= 0
- && next_nonempty_line >= int(cmt_idx))
- {
- std::wstring prev_line(line.get().cbegin(),
- line.get().cend());
- std::wstring next_line(pc->str.get().cbegin() + next_nonempty_line,
- pc->str.get().cend());
-
- for (auto &&cmt_reflow_regex_map_entry : cmt_reflow_regex_map)
- {
- auto &&cmt_reflow_regex_pair = cmt_reflow_regex_map_entry.second;
- auto &&end_of_prev_line_regex = cmt_reflow_regex_pair.first;
- auto &&beg_of_next_line_regex = cmt_reflow_regex_pair.second;
- std::wsmatch match[2];
-
- if ( std::regex_search(prev_line, match[0], end_of_prev_line_regex)
- && match[0].position(0) + match[0].length(0) == std::wsmatch::difference_type(line.size())
- && std::regex_search(next_line, match[1], beg_of_next_line_regex)
- && match[1].position(0) == 0)
- {
- // rewind the line to the last non-alpha:
- line.resize(prev_nonempty_line + 1);
-
- // roll the current line forward to the first non-alpha:
- cmt_idx = next_nonempty_line;
- // override the NL and make it a single whitespace:
- ch = ' ';
-
- break;
- }
- }
- }
- }
-
- if (ch == '\n')
- {
- LOG_FMT(LCONTTEXT, "%s(%d):ch is newline\n", __func__, __LINE__);
- }
- else
- {
- LOG_FMT(LCONTTEXT, "%s(%d):ch is %d, %c\n", __func__, __LINE__, ch, char(ch));
- }
- line.append(ch);
-
- // If we just hit an end of line OR we just hit end-of-comment...
- if ( ch == '\n'
- || cmt_idx == pc->len())
- {
- if (ch == '\n')
- {
- LOG_FMT(LCONTTEXT, "%s(%d):ch is newline\n", __func__, __LINE__);
- }
- else
- {
- LOG_FMT(LCONTTEXT, "%s(%d):ch is %d, %c\n", __func__, __LINE__, ch, char(ch));
- }
- line_count++;
- LOG_FMT(LCONTTEXT, "%s(%d):line_count is %zu\n", __func__, __LINE__, line_count);
-
- // strip trailing tabs and spaces before the newline
- if (ch == '\n')
- {
- nl_end = true;
- line.pop_back();
- cmt_trim_whitespace(line, pc->flags.test(PCF_IN_PREPROC));
- }
-
- if (line_count == 1)
- {
- // this is the first line - add unchanged
- add_comment_text(line, cmt, false);
-
- if (nl_end)
- {
- add_char('\n');
- }
- }
- else
- {
- /*
- * This is not the first line, so we need to indent to the
- * correct column. Each line is indented 0 or more spaces.
- */
- // Ensure ccol is not negative
- if (static_cast<int>(ccol) >= col_diff)
- {
- ccol -= col_diff;
- }
-
- if (ccol < (cmt_col + 3))
- {
- ccol = cmt_col + 3;
- }
-
- if (line.size() == 0)
- {
- // Empty line - just a '\n'
- log_rule_B("cmt_star_cont");
-
- if (options::cmt_star_cont())
- {
- // The number of spaces to insert at the start of subsequent comment lines.
- log_rule_B("cmt_sp_before_star_cont");
- cmt.column = cmt_col + options::cmt_sp_before_star_cont();
- cmt_output_indent(cmt.brace_col, cmt.base_col, cmt.column);
-
- if (cmt.xtra_indent > 0)
- {
- add_char(' ');
- }
- // multiline comments can have empty lines with some spaces in them for alignment
- // while adding * symbol and aligning them we don't want to keep these trailing spaces
- unc_text tmp = unc_text(cmt.cont_text);
- cmt_trim_whitespace(tmp, false);
- add_text(tmp);
- }
- add_char('\n');
- }
- else
- {
- /*
- * If this doesn't start with a '*' or '|'.
- * '\name' is a common parameter documentation thing.
- */
- log_rule_B("cmt_indent_multi");
-
- if ( options::cmt_indent_multi()
- && line[0] != '*'
- && line[0] != '|'
- && line[0] != '#'
- && ( line[0] != '\\'
- || unc_isalpha(line[1]))
- && line[0] != '+')
- {
- // The number of spaces to insert at the start of subsequent comment lines.
- log_rule_B("cmt_sp_before_star_cont");
- size_t start_col = cmt_col + options::cmt_sp_before_star_cont();
-
- log_rule_B("cmt_star_cont");
-
- if (options::cmt_star_cont())
- {
- cmt.column = start_col;
- cmt_output_indent(cmt.brace_col, cmt.base_col, cmt.column);
-
- if (cmt.xtra_indent > 0)
- {
- add_char(' ');
- }
- add_text(cmt.cont_text);
- // The number of spaces to insert after the star on subsequent comment lines.
- log_rule_B("cmt_sp_after_star_cont");
- output_to_column(ccol + options::cmt_sp_after_star_cont(), false);
- }
- else
- {
- cmt.column = ccol;
- cmt_output_indent(cmt.brace_col, cmt.base_col, cmt.column);
- }
- }
- else
- {
- // The number of spaces to insert at the start of subsequent comment lines.
- log_rule_B("cmt_sp_before_star_cont");
- cmt.column = cmt_col + options::cmt_sp_before_star_cont();
- cmt_output_indent(cmt.brace_col, cmt.base_col, cmt.column);
-
- if (cmt.xtra_indent > 0)
- {
- add_char(' ');
- }
- size_t idx;
-
- // Checks for and updates the lead chars.
- // @return 0=not present, >0=number of chars that are part of the lead
- idx = cmt_parse_lead(line, (cmt_idx == pc->len()));
-
- if (idx > 0)
- {
- // >0=number of chars that are part of the lead
- cmt.cont_text.set(line, 0, idx);
- LOG_CONTTEXT();
-
- if ( (line.size() >= 2)
- && (line[0] == '*')
- && unc_isalnum(line[1]))
- {
- line.insert(1, ' ');
- }
- }
- else
- {
- // bug #653
- if (language_is_set(LANG_D))
- {
- // 0=no lead char present
- add_text(cmt.cont_text);
- }
- }
- }
- size_t continuation_indent = 0;
-
- if (doxygen_javadoc_indent_align)
- {
- continuation_indent = doxygen_javadoc_continuation_indent;
- }
- else if (reflow_paragraph_continuation_indent > 0)
- {
- continuation_indent = reflow_paragraph_continuation_indent;
- }
- add_comment_text(line,
- cmt,
- false,
- continuation_indent);
-
- if (nl_end)
- {
- add_text("\n");
- }
- }
- }
- line.clear();
- doxygen_javadoc_indent_align = false;
- ccol = 1;
- }
- }
-} // output_comment_multi
-
-
-static bool kw_fcn_filename(chunk_t *cmt, unc_text &out_txt)
-{
- UNUSED(cmt);
- out_txt.append(path_basename(cpd.filename.c_str()));
- return(true);
-}
-
-
-static bool kw_fcn_class(chunk_t *cmt, unc_text &out_txt)
-{
- chunk_t *tmp = nullptr;
-
- if (language_is_set(LANG_CPP | LANG_OC))
- {
- chunk_t *fcn = get_next_function(cmt);
-
- if (chunk_is_token(fcn, CT_OC_MSG_DECL))
- {
- tmp = get_prev_oc_class(cmt);
- }
- else
- {
- tmp = get_next_class(cmt);
- }
- }
- else if (language_is_set(LANG_OC))
- {
- tmp = get_prev_oc_class(cmt);
- }
-
- if (tmp == nullptr)
- {
- tmp = get_next_class(cmt);
- }
-
- if (tmp != nullptr)
- {
- out_txt.append(tmp->str);
-
- while ((tmp = chunk_get_next(tmp)) != nullptr)
- {
- if (tmp->type != CT_DC_MEMBER)
- {
- break;
- }
- tmp = chunk_get_next(tmp);
-
- if (tmp != nullptr)
- {
- out_txt.append("::");
- out_txt.append(tmp->str);
- }
- }
- return(true);
- }
- return(false);
-} // kw_fcn_class
-
-
-static bool kw_fcn_message(chunk_t *cmt, unc_text &out_txt)
-{
- chunk_t *fcn = get_next_function(cmt);
-
- if (!fcn)
- {
- return(false);
- }
- out_txt.append(fcn->str);
-
- chunk_t *tmp = chunk_get_next_ncnnl(fcn);
- chunk_t *word = nullptr;
-
- while (tmp != nullptr)
- {
- if ( chunk_is_token(tmp, CT_BRACE_OPEN)
- || chunk_is_token(tmp, CT_SEMICOLON))
- {
- break;
- }
-
- if (chunk_is_token(tmp, CT_OC_COLON))
- {
- if (word != nullptr)
- {
- out_txt.append(word->str);
- word = nullptr;
- }
- out_txt.append(":");
- }
-
- if (chunk_is_token(tmp, CT_WORD))
- {
- word = tmp;
- }
- tmp = chunk_get_next_ncnnl(tmp);
- }
- return(true);
-} // kw_fcn_message
-
-
-static bool kw_fcn_category(chunk_t *cmt, unc_text &out_txt)
-{
- chunk_t *category = get_prev_category(cmt);
-
- if (category)
- {
- out_txt.append('(');
- out_txt.append(category->str);
- out_txt.append(')');
- }
- return(true);
-} // kw_fcn_category
-
-
-static bool kw_fcn_scope(chunk_t *cmt, unc_text &out_txt)
-{
- chunk_t *scope = get_next_scope(cmt);
-
- if (scope)
- {
- out_txt.append(scope->str);
- return(true);
- }
- return(false);
-} // kw_fcn_scope
-
-
-static bool kw_fcn_function(chunk_t *cmt, unc_text &out_txt)
-{
- chunk_t *fcn = get_next_function(cmt);
-
- if (fcn)
- {
- if (get_chunk_parent_type(fcn) == CT_OPERATOR)
- {
- out_txt.append("operator ");
- }
-
- if ( fcn->prev != nullptr
- && fcn->prev->type == CT_DESTRUCTOR)
- {
- out_txt.append('~');
- }
- out_txt.append(fcn->str);
- return(true);
- }
- return(false);
-}
-
-
-static bool kw_fcn_javaparam(chunk_t *cmt, unc_text &out_txt)
-{
- chunk_t *fcn = get_next_function(cmt);
-
- if (!fcn)
- {
- return(false);
- }
- chunk_t *fpo;
- chunk_t *fpc;
- bool has_param = true;
- bool need_nl = false;
-
- if (chunk_is_token(fcn, CT_OC_MSG_DECL))
- {
- chunk_t *tmp = chunk_get_next_ncnnl(fcn);
- has_param = false;
-
- while (tmp != nullptr)
- {
- if ( chunk_is_token(tmp, CT_BRACE_OPEN)
- || chunk_is_token(tmp, CT_SEMICOLON))
- {
- break;
- }
-
- if (has_param)
- {
- if (need_nl)
- {
- out_txt.append("\n");
- }
- need_nl = true;
- out_txt.append("@param");
- out_txt.append(" ");
- out_txt.append(tmp->str);
- out_txt.append(" TODO");
- }
- has_param = false;
-
- if (chunk_is_token(tmp, CT_PAREN_CLOSE))
- {
- has_param = true;
- }
- tmp = chunk_get_next_ncnnl(tmp);
- }
- fpo = fpc = nullptr;
- }
- else
- {
- fpo = chunk_get_next_type(fcn, CT_FPAREN_OPEN, fcn->level);
-
- if (fpo == nullptr)
- {
- return(true);
- }
- fpc = chunk_get_next_type(fpo, CT_FPAREN_CLOSE, fcn->level);
-
- if (fpc == nullptr)
- {
- return(true);
- }
- }
- chunk_t *tmp;
-
- // Check for 'foo()' and 'foo(void)'
- if (chunk_get_next_ncnnl(fpo) == fpc)
- {
- has_param = false;
- }
- else
- {
- tmp = chunk_get_next_ncnnl(fpo);
-
- if ( (tmp == chunk_get_prev_ncnnl(fpc))
- && chunk_is_str(tmp, "void", 4))
- {
- has_param = false;
- }
- }
-
- if (has_param)
- {
- chunk_t *prev = nullptr;
- tmp = fpo;
-
- while ((tmp = chunk_get_next(tmp)) != nullptr)
- {
- if ( chunk_is_token(tmp, CT_COMMA)
- || tmp == fpc)
- {
- if (need_nl)
- {
- out_txt.append("\n");
- }
- need_nl = true;
- out_txt.append("@param");
-
- if (prev != nullptr)
- {
- out_txt.append(" ");
- out_txt.append(prev->str);
- out_txt.append(" TODO");
- }
- prev = nullptr;
-
- if (tmp == fpc)
- {
- break;
- }
- }
-
- if (chunk_is_token(tmp, CT_WORD))
- {
- prev = tmp;
- }
- }
- }
- // Do the return stuff
- tmp = chunk_get_prev_ncnnl(fcn);
-
- // For Objective-C we need to go to the previous chunk
- if ( tmp != nullptr
- && get_chunk_parent_type(tmp) == CT_OC_MSG_DECL
- && chunk_is_token(tmp, CT_PAREN_CLOSE))
- {
- tmp = chunk_get_prev_ncnnl(tmp);
- }
-
- if ( tmp != nullptr
- && !chunk_is_str(tmp, "void", 4))
- {
- if (need_nl)
- {
- out_txt.append("\n");
- }
- out_txt.append("@return TODO");
- }
- return(true);
-} // kw_fcn_javaparam
-
-
-static bool kw_fcn_fclass(chunk_t *cmt, unc_text &out_txt)
-{
- chunk_t *fcn = get_next_function(cmt);
-
- if (!fcn)
- {
- return(false);
- }
-
- if (fcn->flags.test(PCF_IN_CLASS))
- {
- // if inside a class, we need to find to the class name
- chunk_t *tmp = chunk_get_prev_type(fcn, CT_BRACE_OPEN, fcn->level - 1);
- tmp = chunk_get_prev_type(tmp, CT_CLASS, tmp->level);
- tmp = chunk_get_next_ncnnl(tmp);
-
- while (chunk_is_token(chunk_get_next_ncnnl(tmp), CT_DC_MEMBER))
- {
- tmp = chunk_get_next_ncnnl(tmp);
- tmp = chunk_get_next_ncnnl(tmp);
- }
-
- if (tmp != nullptr)
- {
- out_txt.append(tmp->str);
- return(true);
- }
- }
- else
- {
- // if outside a class, we expect "CLASS::METHOD(...)"
- chunk_t *tmp = chunk_get_prev_ncnnl(fcn);
-
- if (chunk_is_token(tmp, CT_OPERATOR))
- {
- tmp = chunk_get_prev_ncnnl(tmp);
- }
-
- if ( tmp != nullptr
- && ( chunk_is_token(tmp, CT_DC_MEMBER)
- || chunk_is_token(tmp, CT_MEMBER)))
- {
- tmp = chunk_get_prev_ncnnl(tmp);
- out_txt.append(tmp->str);
- return(true);
- }
- }
- return(false);
-} // kw_fcn_fclass
-
-
-static bool kw_fcn_year(chunk_t *cmt, unc_text &out_txt)
-{
- UNUSED(cmt);
- time_t now = time(nullptr);
-
- out_txt.append(std::to_string(1900 + localtime(&now)->tm_year));
- return(true);
-}
-
-
-struct kw_subst_t
-{
- const char *tag;
- bool (*func)(chunk_t *cmt, unc_text &out_txt);
-};
-
-
-static const kw_subst_t kw_subst_table[] =
-{
- { "$(filename)", kw_fcn_filename },
- { "$(class)", kw_fcn_class },
- { "$(message)", kw_fcn_message },
- { "$(category)", kw_fcn_category },
- { "$(scope)", kw_fcn_scope },
- { "$(function)", kw_fcn_function },
- { "$(javaparam)", kw_fcn_javaparam },
- { "$(fclass)", kw_fcn_fclass },
- { "$(year)", kw_fcn_year },
-};
-
-
-static void do_kw_subst(chunk_t *pc)
-{
- for (const auto &kw : kw_subst_table)
- {
- int idx = pc->str.find(kw.tag);
-
- if (idx < 0)
- {
- continue;
- }
- unc_text tmp_txt;
- tmp_txt.clear();
-
- if (kw.func(pc, tmp_txt))
- {
- // if the replacement contains '\n' we need to fix the lead
- if (tmp_txt.find("\n") >= 0)
- {
- size_t nl_idx = pc->str.rfind("\n", idx);
-
- if (nl_idx > 0)
- {
- // idx and nl_idx are both positive
- unc_text nl_txt;
- nl_txt.append("\n");
- nl_idx++;
-
- while ( (nl_idx < static_cast<size_t>(idx))
- && !unc_isalnum(pc->str[nl_idx]))
- {
- nl_txt.append(pc->str[nl_idx++]);
- }
- tmp_txt.replace("\n", nl_txt);
- }
- }
- pc->str.replace(kw.tag, tmp_txt);
- }
- }
-} // do_kw_subst
-
-
-static void output_comment_multi_simple(chunk_t *pc)
-{
- if (pc == nullptr)
- {
- return;
- }
- cmt_reflow cmt;
-
- LOG_FMT(LCONTTEXT, "%s(%d): text() is '%s', type is %s, orig_col is %zu, column is %zu\n",
- __func__, __LINE__, pc->text(), get_token_name(pc->type), pc->orig_col, pc->column);
-
- output_cmt_start(cmt, pc);
-
- // The multiline comment is saved inside one chunk. If the comment is
- // shifted all lines of the comment need to be shifted by the same amount.
- // Save the difference of initial and current position to apply it on every
- // line_column
- const int col_diff = [pc]()
- {
- int diff = 0;
-
- if (chunk_is_newline(chunk_get_prev(pc)))
- {
- // The comment should be indented correctly
- diff = pc->column - pc->orig_col;
- }
- return(diff);
- }();
-
- /**
- * check for enable/disable processing comment strings that may
- * both be embedded within the same multi-line comment
- */
- auto disable_processing_cmt_idx = find_disable_processing_comment_marker(pc->str);
- auto enable_processing_cmt_idx = find_enable_processing_comment_marker(pc->str);
-
- unc_text line;
- size_t line_count = 0;
- size_t line_column = pc->column;
- size_t cmt_idx = 0;
-
- while (cmt_idx < pc->len())
- {
- int ch = pc->str[cmt_idx];
- cmt_idx++;
-
- if ( cmt_idx > std::size_t(disable_processing_cmt_idx)
- && enable_processing_cmt_idx > disable_processing_cmt_idx)
- {
- auto length = enable_processing_cmt_idx - disable_processing_cmt_idx;
- unc_text verbatim_text(pc->str,
- disable_processing_cmt_idx,
- length);
-
- add_text(verbatim_text);
-
- cmt_idx = enable_processing_cmt_idx;
-
- /**
- * check for additional enable/disable processing comment strings that may
- * both be embedded within the same multi-line comment
- */
- disable_processing_cmt_idx = find_disable_processing_comment_marker(pc->str,
- enable_processing_cmt_idx);
- enable_processing_cmt_idx = find_enable_processing_comment_marker(pc->str,
- enable_processing_cmt_idx);
-
- line.clear();
-
- continue;
- }
- // 1: step through leading tabs and spaces to find the start column
- log_rule_B("cmt_convert_tab_to_spaces");
-
- if ( line.size() == 0
- && ( line_column < cmt.base_col
- || options::cmt_convert_tab_to_spaces()))
- {
- if (ch == ' ')
- {
- line_column++;
- continue;
- }
- else if (ch == '\t')
- {
- log_rule_B("input_tab_size");
- line_column = calc_next_tab_column(line_column, options::input_tab_size());
- continue;
- }
- else
- {
- LOG_FMT(LCONTTEXT, "%s(%d):ch is %d, %c\n", __func__, __LINE__, ch, char(ch));
- }
- }
-
- // 2: add chars to line, handle the CRLF and CR endings (convert both to LF)
- if (ch == '\r')
- {
- ch = '\n';
-
- if ( (cmt_idx < pc->len())
- && (pc->str[cmt_idx] == '\n'))
- {
- cmt_idx++;
- }
- }
- LOG_FMT(LCONTTEXT, "%s(%d):Line is %s\n", __func__, __LINE__, line.c_str());
- line.append(ch);
- LOG_FMT(LCONTTEXT, "%s(%d):Line is %s\n", __func__, __LINE__, line.c_str());
-
- // If we just hit an end of line OR we just hit end-of-comment...
- if ( ch == '\n'
- || cmt_idx == pc->len())
- {
- line_count++;
- LOG_FMT(LCONTTEXT, "%s(%d):line_count is %zu\n", __func__, __LINE__, line_count);
-
- // strip trailing tabs and spaces before the newline
- if (ch == '\n')
- {
- line.pop_back();
-
- // Say we aren't in a preproc to prevent changing any bs-nl
- cmt_trim_whitespace(line, false);
-
- line.append('\n');
- }
-
- if (line.size() > 0)
- {
- // unless line contains only a single newline char, indent if the
- // line consists of either:
- if ( line.size() > 1 // more than a single newline char or
- || ch != '\n') // (end-of-comment) a single non newline char
- {
- if (line_count > 1)
- {
- // apply comment column shift without underflowing
- line_column = ( col_diff < 0
- && (cast_abs(line_column, col_diff) > line_column))
- ? 0 : line_column + col_diff;
- }
- cmt.column = line_column;
- cmt_output_indent(cmt.brace_col, cmt.base_col, cmt.column);
- }
- add_text(line);
-
- line.clear();
- }
- line_column = 1;
- }
- }
-} // output_comment_multi_simple
-
-
-static void generate_if_conditional_as_text(unc_text &dst, chunk_t *ifdef)
-{
- int column = -1;
-
- dst.clear();
-
- for (chunk_t *pc = ifdef; pc != nullptr; pc = chunk_get_next(pc))
- {
- if (column == -1)
- {
- column = pc->column;
- }
-
- if ( chunk_is_token(pc, CT_NEWLINE)
- || chunk_is_token(pc, CT_COMMENT_MULTI)
- || chunk_is_token(pc, CT_COMMENT_CPP))
- {
- break;
- }
- else if (chunk_is_token(pc, CT_NL_CONT))
- {
- dst += ' ';
- column = -1;
- }
- else if ( chunk_is_token(pc, CT_COMMENT)
- || chunk_is_token(pc, CT_COMMENT_EMBED))
- {
- }
- else // if (chunk_is_token(pc, CT_JUNK)) || else
- {
- for (int spacing = pc->column - column; spacing > 0; spacing--)
- {
- dst += ' ';
- column++;
- }
-
- dst.append(pc->str);
- column += pc->len();
- }
- }
-} // generate_if_conditional_as_text
-
-
-void add_long_preprocessor_conditional_block_comment(void)
-{
- chunk_t *pp_start = nullptr;
- chunk_t *pp_end = nullptr;
-
- for (chunk_t *pc = chunk_get_head(); pc; pc = chunk_get_next_ncnnl(pc))
- {
- // just track the preproc level:
- if (chunk_is_token(pc, CT_PREPROC))
- {
- pp_end = pp_start = pc;
- }
-
- if ( pc->type != CT_PP_IF
- || !pp_start)
- {
- continue;
- }
-#if 0
- if (pc->flags.test(PCF_IN_PREPROC))
- {
- continue;
- }
-#endif
-
- chunk_t *br_close;
- chunk_t *br_open = pc;
- size_t nl_count = 0;
-
- chunk_t *tmp = pc;
-
- while ((tmp = chunk_get_next(tmp)) != nullptr)
- {
- // just track the preproc level:
- if (chunk_is_token(tmp, CT_PREPROC))
- {
- pp_end = tmp;
- }
-
- if (chunk_is_newline(tmp))
- {
- nl_count += tmp->nl_count;
- }
- else if ( pp_end->pp_level == pp_start->pp_level
- && ( chunk_is_token(tmp, CT_PP_ENDIF)
- || ((chunk_is_token(br_open, CT_PP_IF)) ? (chunk_is_token(tmp, CT_PP_ELSE)) : 0)))
- {
- br_close = tmp;
-
- LOG_FMT(LPPIF, "found #if / %s section on lines %zu and %zu, nl_count=%zu\n",
- (chunk_is_token(tmp, CT_PP_ENDIF) ? "#endif" : "#else"),
- br_open->orig_line, br_close->orig_line, nl_count);
-
- // Found the matching #else or #endif - make sure a newline is next
- tmp = chunk_get_next(tmp);
-
- LOG_FMT(LPPIF, "next item type %d (is %s)\n",
- (tmp ? tmp->type : -1), (tmp ? chunk_is_newline(tmp) ? "newline"
- : chunk_is_comment(tmp) ? "comment" : "other" : "---"));
-
- if ( tmp == nullptr
- || chunk_is_token(tmp, CT_NEWLINE)) // chunk_is_newline(tmp))
- {
- size_t nl_min;
-
- if (chunk_is_token(br_close, CT_PP_ENDIF))
- {
- log_rule_B("mod_add_long_ifdef_endif_comment");
- nl_min = options::mod_add_long_ifdef_endif_comment();
- }
- else
- {
- log_rule_B("mod_add_long_ifdef_else_comment");
- nl_min = options::mod_add_long_ifdef_else_comment();
- }
- const char *txt = !tmp ? "EOF" : ((chunk_is_token(tmp, CT_PP_ENDIF)) ? "#endif" : "#else");
- LOG_FMT(LPPIF, "#if / %s section candidate for augmenting when over NL threshold %zu != 0 (nl_count=%zu)\n",
- txt, nl_min, nl_count);
-
- if ( nl_min > 0
- && nl_count > nl_min) // nl_count is 1 too large at all times as #if line was counted too
- {
- // determine the added comment style
- c_token_t style = (language_is_set(LANG_CPP)) ?
- CT_COMMENT_CPP : CT_COMMENT;
-
- unc_text str;
- generate_if_conditional_as_text(str, br_open);
-
- LOG_FMT(LPPIF, "#if / %s section over threshold %zu (nl_count=%zu) --> insert comment after the %s: %s\n",
- txt, nl_min, nl_count, txt, str.c_str());
-
- // Add a comment after the close brace
- insert_comment_after(br_close, style, str);
- }
- }
-
- // checks both the #else and #endif for a given level, only then look further in the main loop
- if (chunk_is_token(br_close, CT_PP_ENDIF))
- {
- break;
- }
- }
- }
- }
-} // add_long_preprocessor_conditional_block_comment
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
deleted file mode 100644
index 4a2afbaa..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/parameter_pack_cleanup.cpp
+++ /dev/null
@@ -1,68 +0,0 @@
-/**
- * @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
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/parens.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/parens.cpp
deleted file mode 100644
index 51ee4710..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/parens.cpp
+++ /dev/null
@@ -1,205 +0,0 @@
-/**
- * @file parens.cpp
- * Adds or removes parens.
- *
- * @author Ben Gardner
- * @license GPL v2+
- */
-
-#include "parens.h"
-
-#include "log_rules.h"
-
-using namespace uncrustify;
-
-
-//! Add an open parenthesis after first and add a close parenthesis before the last
-static void add_parens_between(chunk_t *first, chunk_t *last);
-
-
-/**
- * Scans between two parens and adds additional parens if needed.
- * This function is recursive. If it hits another open paren, it'll call itself
- * with the new bounds.
- *
- * Adds optional parens in an IF or SWITCH conditional statement.
- *
- * This basically just checks for a CT_COMPARE that isn't surrounded by parens.
- * The edges for the compare are the open, close and any CT_BOOL tokens.
- *
- * This only handles VERY simple patterns:
- * (!a && b) => (!a && b) -- no change
- * (a && b == 1) => (a && (b == 1))
- * (a == 1 || b > 2) => ((a == 1) || (b > 2))
- *
- * FIXME: we really should bail if we transition between a preprocessor and
- * a non-preprocessor
- */
-static void check_bool_parens(chunk_t *popen, chunk_t *pclose, int nest);
-
-
-void do_parens(void)
-{
- constexpr static auto LCURRENT = LPARADD;
-
- LOG_FUNC_ENTRY();
-
- log_rule_B("mod_full_paren_if_bool");
-
- if (options::mod_full_paren_if_bool())
- {
- chunk_t *pc = chunk_get_head();
-
- while ((pc = chunk_get_next_ncnnl(pc)) != nullptr)
- {
- if ( pc->type != CT_SPAREN_OPEN
- || ( get_chunk_parent_type(pc) != CT_IF
- && get_chunk_parent_type(pc) != CT_ELSEIF
- && get_chunk_parent_type(pc) != CT_SWITCH))
- {
- continue;
- }
- // Grab the close sparen
- chunk_t *pclose = chunk_get_next_type(pc, CT_SPAREN_CLOSE, pc->level, scope_e::PREPROC);
-
- if (pclose != nullptr)
- {
- check_bool_parens(pc, pclose, 0);
- pc = pclose;
- }
- }
- }
-}
-
-
-static void add_parens_between(chunk_t *first, chunk_t *last)
-{
- LOG_FUNC_ENTRY();
-
- LOG_FMT(LPARADD, "%s: line %zu between %s [lvl=%zu] and %s [lvl=%zu]\n",
- __func__, first->orig_line,
- first->text(), first->level,
- last->text(), last->level);
-
- // Don't do anything if we have a bad sequence, ie "&& )"
- chunk_t *first_n = chunk_get_next_ncnnl(first);
-
- if (first_n == last)
- {
- return;
- }
- chunk_t pc;
-
- set_chunk_type(&pc, CT_PAREN_OPEN);
- pc.orig_line = first_n->orig_line;
- pc.orig_col = first_n->orig_col;
- pc.str = "(";
- pc.flags = first_n->flags & PCF_COPY_FLAGS;
- pc.level = first_n->level;
- pc.pp_level = first_n->pp_level;
- pc.brace_level = first_n->brace_level;
-
- chunk_add_before(&pc, first_n);
-
- chunk_t *last_p = chunk_get_prev_ncnnl(last, scope_e::PREPROC);
-
- set_chunk_type(&pc, CT_PAREN_CLOSE);
- pc.orig_line = last_p->orig_line;
- pc.orig_col = last_p->orig_col;
- pc.str = ")";
- pc.flags = last_p->flags & PCF_COPY_FLAGS;
- pc.level = last_p->level;
- pc.pp_level = last_p->pp_level;
- pc.brace_level = last_p->brace_level;
-
- chunk_add_after(&pc, last_p);
-
- for (chunk_t *tmp = first_n;
- tmp != last_p;
- tmp = chunk_get_next_ncnnl(tmp))
- {
- tmp->level++;
- }
-
- last_p->level++;
-} // add_parens_between
-
-
-static void check_bool_parens(chunk_t *popen, chunk_t *pclose, int nest)
-{
- LOG_FUNC_ENTRY();
-
- chunk_t *ref = popen;
- bool hit_compare = false;
-
- LOG_FMT(LPARADD, "%s(%d): popen on %zu, col %zu, pclose on %zu, col %zu, level=%zu\n",
- __func__, nest,
- popen->orig_line, popen->orig_col,
- pclose->orig_line, pclose->orig_col,
- popen->level);
-
- chunk_t *pc = popen;
-
- while ( (pc = chunk_get_next_ncnnl(pc)) != nullptr
- && pc != pclose)
- {
- if (pc->flags.test(PCF_IN_PREPROC))
- {
- LOG_FMT(LPARADD2, " -- bail on PP %s [%s] at line %zu col %zu, level %zu\n",
- get_token_name(pc->type),
- pc->text(), pc->orig_line, pc->orig_col, pc->level);
- return;
- }
-
- if ( chunk_is_token(pc, CT_BOOL)
- || chunk_is_token(pc, CT_QUESTION)
- || chunk_is_token(pc, CT_COND_COLON)
- || chunk_is_token(pc, CT_COMMA))
- {
- LOG_FMT(LPARADD2, " -- %s [%s] at line %zu col %zu, level %zu\n",
- get_token_name(pc->type),
- pc->text(), pc->orig_line, pc->orig_col, pc->level);
-
- if (hit_compare)
- {
- hit_compare = false;
-
- if (!language_is_set(LANG_CS))
- {
- add_parens_between(ref, pc);
- }
- }
- ref = pc;
- }
- else if (chunk_is_token(pc, CT_COMPARE))
- {
- LOG_FMT(LPARADD2, " -- compare [%s] at line %zu col %zu, level %zu\n",
- pc->text(), pc->orig_line, pc->orig_col, pc->level);
- hit_compare = true;
- }
- else if (chunk_is_paren_open(pc))
- {
- chunk_t *next = chunk_skip_to_match(pc);
-
- if (next != nullptr)
- {
- check_bool_parens(pc, next, nest + 1);
- pc = next;
- }
- }
- else if ( chunk_is_token(pc, CT_BRACE_OPEN)
- || chunk_is_token(pc, CT_SQUARE_OPEN)
- || chunk_is_token(pc, CT_ANGLE_OPEN))
- {
- // Skip [], {}, and <>
- pc = chunk_skip_to_match(pc);
- }
- }
-
- if ( hit_compare
- && ref != popen
- && !language_is_set(LANG_CS))
- {
- add_parens_between(ref, pclose);
- }
-} // check_bool_parens
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/parens.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/parens.h
deleted file mode 100644
index c0433f92..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/parens.h
+++ /dev/null
@@ -1,18 +0,0 @@
-/**
- * @file parens.h
- * prototypes for parens.c
- *
- * @author Ben Gardner
- * @license GPL v2+
- */
-#ifndef PARENS_H_INCLUDED
-#define PARENS_H_INCLUDED
-
-#include "uncrustify_types.h"
-
-
-//! add parenthesis
-void do_parens(void);
-
-
-#endif /* PARENS_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/parent_for_pp.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/parent_for_pp.cpp
deleted file mode 100644
index 42a3f840..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/parent_for_pp.cpp
+++ /dev/null
@@ -1,53 +0,0 @@
-/**
- * @file parent_for_pp.cpp
- *
- * @author Guy Maurel
- * @license GPL v2+
- */
-
-#include "parent_for_pp.h"
-
-#include "chunk_list.h"
-
-
-void do_parent_for_pp(void)
-{
- LOG_FUNC_ENTRY();
-
- vector<chunk_t *> viz;
-
- chunk_t *pc = chunk_get_head();
-
- while ((pc = chunk_get_next_ncnnl(pc)) != nullptr)
- {
- // CT_PP_IF, // #if, #ifdef, or #ifndef
- // CT_PP_ELSE, // #else or #elif
- // CT_PP_ENDIF, // #endif
- if (chunk_is_token(pc, CT_PP_IF))
- {
- LOG_FMT(LMCB, "%s(%d): IF: orig_line %zu, orig_col is %zu\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col);
- log_pcf_flags(LMCB, pc->flags);
- viz.push_back(pc);
- }
- else if (chunk_is_token(pc, CT_PP_ELSE))
- {
- LOG_FMT(LMCB, "%s(%d): ELSE: orig_line %zu, orig_col is %zu\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col);
- log_pcf_flags(LMCB, pc->flags);
- size_t level = pc->pp_level;
- chunk_t *a = viz.at(level - 1);
- chunk_set_parent(pc, a);
- }
- else if (chunk_is_token(pc, CT_PP_ENDIF))
- {
- LOG_FMT(LMCB, "%s(%d): ENDIF: orig_line %zu, orig_col is %zu\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col);
- log_pcf_flags(LMCB, pc->flags);
- size_t level = pc->pp_level;
- chunk_t *a = viz.at(level);
- chunk_set_parent(pc, a);
- viz.pop_back();
- }
- }
-} // do_parent_for_pp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/pcf_flags.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/pcf_flags.h
deleted file mode 100644
index c0465c14..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/pcf_flags.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/**
- * @file pcf_flags.h
- *
- * @author Guy Maurel
- * @license GPL v2+
- */
-
-#ifndef PCF_FLAGS_STR_INCLUDED
-#define PCF_FLAGS_STR_INCLUDED
-
-#include "enum_flags.h"
-#include "logger.h"
-
-#include <cstddef> // do get the definition of size_t
-
-// and the ever-so-important array size macro
-#ifndef ARRAY_SIZE
-#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
-#endif
-
-using namespace std;
-
-
-constexpr auto pcf_bit(size_t b) -> decltype(0ULL)
-{
- return(1ULL << b);
-}
-
-enum pcf_flag_e : decltype ( 0ULL )
-{
-// Copy flags are in the lower 17 bits
- PCF_NONE = 0ULL,
- PCF_COPY_FLAGS = 0x0001ffffULL,
- PCF_IN_PREPROC = pcf_bit(0), //! in a preprocessor
- PCF_IN_STRUCT = pcf_bit(1), //! in a struct
- PCF_IN_ENUM = pcf_bit(2), //! in enum
- PCF_IN_FCN_DEF = pcf_bit(3), //! inside function def parens
- PCF_IN_FCN_CALL = pcf_bit(4), //! inside function call parens
- PCF_IN_SPAREN = pcf_bit(5), //! inside for/if/while/switch parens
- PCF_IN_TEMPLATE = pcf_bit(6),
- PCF_IN_TYPEDEF = pcf_bit(7),
- PCF_IN_CONST_ARGS = pcf_bit(8),
- PCF_IN_ARRAY_ASSIGN = pcf_bit(9),
- PCF_IN_CLASS = pcf_bit(10),
- PCF_IN_CLASS_BASE = pcf_bit(11),
- PCF_IN_NAMESPACE = pcf_bit(12),
- PCF_IN_FOR = pcf_bit(13),
- PCF_IN_OC_MSG = pcf_bit(14),
- PCF_IN_WHERE_SPEC = pcf_bit(15), /* inside C# 'where' constraint clause on class or function def */
- PCF_IN_DECLTYPE = pcf_bit(16),
-
-// Non-Copy flags are in the upper 47 bits
- PCF_FORCE_SPACE = pcf_bit(17), //! must have a space after this token
- PCF_STMT_START = pcf_bit(18), //! marks the start of a statement
- PCF_EXPR_START = pcf_bit(19),
- PCF_DONT_INDENT = pcf_bit(20), //! already aligned!
- PCF_ALIGN_START = pcf_bit(21),
- PCF_WAS_ALIGNED = pcf_bit(22),
- PCF_VAR_TYPE = pcf_bit(23), //! part of a variable def type
- PCF_VAR_DEF = pcf_bit(24), //! variable name in a variable def
- PCF_VAR_1ST = pcf_bit(25), //! 1st variable def in a statement
- PCF_VAR_1ST_DEF = (PCF_VAR_DEF | PCF_VAR_1ST),
- PCF_VAR_INLINE = pcf_bit(26), //! type was an inline struct/enum/union
- PCF_RIGHT_COMMENT = pcf_bit(27),
- PCF_OLD_FCN_PARAMS = pcf_bit(28),
- PCF_LVALUE = pcf_bit(29), //! left of assignment
- PCF_ONE_LINER = pcf_bit(30),
- PCF_ONE_CLASS = (PCF_ONE_LINER | PCF_IN_CLASS),
- PCF_EMPTY_BODY = pcf_bit(31),
- PCF_ANCHOR = pcf_bit(32), //! aligning anchor
- PCF_PUNCTUATOR = pcf_bit(33),
- PCF_INSERTED = pcf_bit(34), //! chunk was inserted from another file
- PCF_LONG_BLOCK = pcf_bit(35), //! the block is 'long' by some measure
- PCF_OC_BOXED = pcf_bit(36), //! inside OC boxed expression
- PCF_KEEP_BRACE = pcf_bit(37), //! do not remove brace
- PCF_OC_RTYPE = pcf_bit(38), //! inside OC return type
- PCF_OC_ATYPE = pcf_bit(39), //! inside OC arg type
- PCF_WF_ENDIF = pcf_bit(40), //! #endif for whole file ifdef
- PCF_IN_QT_MACRO = pcf_bit(41), //! in a QT-macro, i.e. SIGNAL, SLOT
- PCF_IN_FCN_CTOR = pcf_bit(42), //! inside function constructor
- PCF_IN_TRY_BLOCK = pcf_bit(43), //! inside Function-try-block
- PCF_INCOMPLETE = pcf_bit(44), //! class/struct forward declaration
- PCF_IN_LAMBDA = pcf_bit(45), //! inside a lambda expression
- PCF_WF_IF = pcf_bit(46), //! #if for a whole file ifdef
- PCF_NOT_POSSIBLE = pcf_bit(47), //! it is not possible to make an one_liner
- //! because the line would be too long
-};
-
-UNC_DECLARE_FLAGS(pcf_flags_t, pcf_flag_e);
-UNC_DECLARE_OPERATORS_FOR_FLAGS(pcf_flags_t);
-
-std::string pcf_flags_str(pcf_flags_t flags);
-
-
-void log_pcf_flags(log_sev_t sev, pcf_flags_t flags);
-
-
-#endif /* PCF_FLAGS_STR_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/prototypes.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/prototypes.h
deleted file mode 100644
index dde8edc3..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/prototypes.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/**
- * @file prototypes.h
- * Big jumble of prototypes used in Uncrustify.
- *
- * @author Ben Gardner
- * @license GPL v2+
- */
-
-#ifndef C_PARSE_PROTOTYPES_H_INCLUDED
-#define C_PARSE_PROTOTYPES_H_INCLUDED
-
-#include "chunk_list.h"
-#include "log_rules.h"
-#include "uncrustify_types.h"
-
-#include <deque>
-#include <string>
-
-
-/**
- * Advances to the next tab stop.
- * Column 1 is the left-most column.
- *
- * @param col The current column
- * @param tabsize The tabsize
- * @return the next tabstop column
- */
-static inline size_t calc_next_tab_column(size_t col, size_t tabsize)
-{
- if (col == 0)
- {
- col = 1;
- }
-
- if (cpd.frag_cols > 0)
- {
- col += cpd.frag_cols - 1;
- }
- col = 1 + ((((col - 1) / tabsize) + 1) * tabsize);
-
- if (cpd.frag_cols > 0)
- {
- col -= cpd.frag_cols - 1;
- }
- return(col);
-}
-
-
-/**
- * Advances to the next tab stop for output.
- *
- * @param col The current column
- * @return the next tabstop column
- */
-static inline size_t next_tab_column(size_t col)
-{
- constexpr static auto LCURRENT = LINDENT;
-
- log_rule_B("output_tab_size");
- return(calc_next_tab_column(col, uncrustify::options::output_tab_size()));
-}
-
-
-#endif /* C_PARSE_PROTOTYPES_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/quick_align_again.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/quick_align_again.cpp
deleted file mode 100644
index d63e96e7..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/quick_align_again.cpp
+++ /dev/null
@@ -1,53 +0,0 @@
-/**
- * @file quick_align_again.cpp
- *
- * @author Guy Maurel
- * split from align.cpp
- * @author Ben Gardner
- * @license GPL v2+
- */
-
-#include "quick_align_again.h"
-
-#include "align_stack.h"
-#include "chunk_list.h"
-
-
-void quick_align_again(void)
-{
- LOG_FUNC_ENTRY();
-
- for (chunk_t *pc = chunk_get_head(); pc != nullptr; pc = chunk_get_next(pc))
- {
- char copy[1000];
- LOG_FMT(LALAGAIN, "%s(%d): orig_line is %zu, orig_col is %zu, column is %zu, text() '%s'\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->column, pc->elided_text(copy));
-
- if ( pc->align.next != nullptr
- && pc->flags.test(PCF_ALIGN_START))
- {
- AlignStack as;
- as.Start(100, 0);
- as.m_right_align = pc->align.right_align;
- as.m_star_style = static_cast<AlignStack::StarStyle>(pc->align.star_style);
- as.m_amp_style = static_cast<AlignStack::StarStyle>(pc->align.amp_style);
- as.m_gap = pc->align.gap;
-
- LOG_FMT(LALAGAIN, "%s(%d): pc->text() is '%s', orig_line is %zu\n",
- __func__, __LINE__, pc->text(), pc->orig_line);
- as.Add(pc->align.start);
- chunk_flags_set(pc, PCF_WAS_ALIGNED);
-
- for (chunk_t *tmp = pc->align.next; tmp != nullptr; tmp = tmp->align.next)
- {
- chunk_flags_set(tmp, PCF_WAS_ALIGNED);
- as.Add(tmp->align.start);
- LOG_FMT(LALAGAIN, "%s(%d): => tmp->text() is '%s', orig_line is %zu\n",
- __func__, __LINE__, tmp->text(), tmp->orig_line);
- }
-
- LOG_FMT(LALAGAIN, "\n");
- as.End();
- }
- }
-} // quick_align_again
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/remove_duplicate_include.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/remove_duplicate_include.cpp
deleted file mode 100644
index 118db91c..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/remove_duplicate_include.cpp
+++ /dev/null
@@ -1,94 +0,0 @@
-/**
- * @file remove_duplicate_include.cpp
- *
- * @author Guy Maurel
- * October 2015, 2016
- * @license GPL v2+
- */
-
-#include "remove_duplicate_include.h"
-
-#include "chunk_list.h"
-#include "uncrustify.h"
-
-using std::vector;
-
-
-void remove_duplicate_include(void)
-{
- LOG_FUNC_ENTRY();
-
- vector<chunk_t *> includes;
-
- chunk_t *preproc = nullptr;
- chunk_t *pc = chunk_get_head();
-
- while (pc != nullptr)
- {
- //LOG_FMT(LRMRETURN, "%s(%d): orig_line is %zu, orig_col is %zu, text() is '%s', type is %s, parent_type is %s\n",
- // __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(),
- // get_token_name(pc->type), get_token_name(pc->parent_type));
-
- if (chunk_is_token(pc, CT_PREPROC))
- {
- preproc = pc;
- }
- else if (chunk_is_token(pc, CT_PP_INCLUDE))
- {
- chunk_t *next = chunk_get_next(pc);
-
- //LOG_FMT(LRMRETURN, "%s(%d): orig_line is %zu, orig_col is %zu, text() is '%s', type is %s, parent_type is %s\n",
- // __func__, __LINE__, next->orig_line, next->orig_col, next->text(),
- // get_token_name(next->type), get_token_name(next->parent_type));
- if (includes.empty())
- {
- includes.push_back(next);
- // goto next newline
- pc = chunk_get_next_nl(next);
- }
- else
- {
- //LOG_FMT(LRMRETURN, "%s(%d): size is %zu\n",
- // __func__, __LINE__, includes.size());
- // look for duplicate
- auto ite = includes.end();
-
- for (auto itc = includes.begin(); itc != ite; ++itc)
- {
- chunk_t *current = *itc;
-
- //LOG_FMT(LRMRETURN, "%s(%d): next->text() is '%s'\n",
- // __func__, __LINE__, next->text());
- //LOG_FMT(LRMRETURN, "%s(%d): current->text() is '%s'\n",
- // __func__, __LINE__, current->text());
- if (std::strcmp(next->text(), current->text()) == 0)
- {
- // erase the statement
- chunk_t *temp = pc;
- chunk_t *comment = chunk_get_next(next);
- chunk_t *eol = chunk_get_next_nl(next);
- pc = chunk_get_prev(preproc);
- chunk_del(preproc);
- chunk_del(temp);
- chunk_del(next);
-
- if (comment != eol)
- {
- chunk_del(comment);
- }
- chunk_del(eol);
- break;
- }
- else
- {
- // goto next newline
- pc = chunk_get_next_nl(next);
- // and still look for duplicate
- }
- } // for (auto itc = includes.begin();
- } // if (includes.empty())
- } // else if (chunk_is_token(pc, CT_PP_INCLUDE))
- // get the next token
- pc = chunk_get_next(pc);
- }
-} // remove_duplicate_include
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/remove_duplicate_include.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/remove_duplicate_include.h
deleted file mode 100644
index 97538ba5..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/remove_duplicate_include.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/**
- * @file remove_duplicate_include.h
- * prototypes for remove_duplicate_include.cpp
- *
- * @author Guy Maurel
- * @license GPL v2+
- */
-
-#ifndef REMOVE_DUPLICATE_INCLUDE_H_INCLUDED
-#define REMOVE_DUPLICATE_INCLUDE_H_INCLUDED
-
-#include "chunk_list.h"
-
-/**
- * @brief Remove duplicate include
- */
-void remove_duplicate_include(void);
-
-
-#endif /* REMOVE_DUPLICATE_INCLUDE_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/remove_extra_returns.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/remove_extra_returns.cpp
deleted file mode 100644
index 92cb5b37..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/remove_extra_returns.cpp
+++ /dev/null
@@ -1,84 +0,0 @@
-/**
- * @file remove_extra_returns.cpp
- *
- * @author Guy Maurel
- * October 2015, 2016
- * @license GPL v2+
- * extract from combine.cpp
- */
-
-#include "remove_extra_returns.h"
-
-#include "chunk_list.h"
-#include "uncrustify.h"
-
-
-void remove_extra_returns(void)
-{
- LOG_FUNC_ENTRY();
-
- chunk_t *pc = chunk_get_head();
-
- while (pc != nullptr)
- {
- LOG_FMT(LRMRETURN, "%s(%d): orig_line is %zu, orig_col is %zu, text() is '%s', type is %s, parent_type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(),
- get_token_name(pc->type), get_token_name(pc->parent_type));
-
- if ( chunk_is_token(pc, CT_RETURN)
- && !pc->flags.test(PCF_IN_PREPROC))
- {
- // we might be in a class, check it Issue #2705
- // look for a closing brace
- bool remove_it = false;
- chunk_t *closing_brace = chunk_get_next_type(pc, CT_BRACE_CLOSE, 1);
- LOG_FMT(LRMRETURN, "%s(%d): on orig_line %zu, level is %zu\n",
- __func__, __LINE__, pc->orig_line, pc->level);
-
- if (closing_brace != nullptr)
- {
- if (get_chunk_parent_type(closing_brace) == CT_FUNC_CLASS_DEF)
- {
- // we have a class. Do nothing
- }
- else if ( get_chunk_parent_type(closing_brace) == CT_FUNC_DEF
- && pc->level < 2)
- {
- remove_it = true;
- }
- }
- else
- {
- // it is not a class
- // look for a closing brace
- closing_brace = chunk_get_next_type(pc, CT_BRACE_CLOSE, 0);
- LOG_FMT(LRMRETURN, "%s(%d): on orig_line %zu, level is %zu\n",
- __func__, __LINE__, pc->orig_line, pc->level);
-
- if (closing_brace != nullptr)
- {
- if (get_chunk_parent_type(closing_brace) == CT_FUNC_DEF)
- {
- remove_it = true;
- }
- }
- }
-
- if (remove_it)
- {
- chunk_t *semicolon = chunk_get_next_ncnnl(pc);
-
- if ( semicolon != nullptr
- && chunk_is_token(semicolon, CT_SEMICOLON))
- {
- LOG_FMT(LRMRETURN, "%s(%d): Removed 'return;' on orig_line %zu\n",
- __func__, __LINE__, pc->orig_line);
- chunk_del(pc);
- chunk_del(semicolon);
- pc = closing_brace;
- }
- }
- }
- pc = chunk_get_next(pc);
- }
-} // remove_extra_returns
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/semicolons.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/semicolons.cpp
deleted file mode 100644
index bfb65107..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/semicolons.cpp
+++ /dev/null
@@ -1,125 +0,0 @@
-/**
- * @file semicolons.cpp
- * Removes extra semicolons
- *
- * @author Ben Gardner
- * @license GPL v2+
- */
-
-#include "semicolons.h"
-
-#include "prototypes.h"
-
-
-static void remove_semicolon(chunk_t *pc);
-
-
-/**
- * We are on a semicolon that is after an unidentified brace close.
- * Check for what is before the brace open.
- * Do not remove if it is a square close, word, type, or paren close.
- */
-static void check_unknown_brace_close(chunk_t *semi, chunk_t *brace_close);
-
-
-static void remove_semicolon(chunk_t *pc)
-{
- LOG_FUNC_ENTRY();
- LOG_FMT(LDELSEMI, "%s(%d): Removed semicolon: orig_line is %zu, orig_col is %zu",
- __func__, __LINE__, pc->orig_line, pc->orig_col);
- log_func_stack_inline(LDELSEMI);
- // TODO: do we want to shift stuff back a column?
- chunk_del(pc);
-}
-
-
-void remove_extra_semicolons(void)
-{
- LOG_FUNC_ENTRY();
-
- chunk_t *pc = chunk_get_head();
-
- while (pc != nullptr)
- {
- chunk_t *next = chunk_get_next_ncnnl(pc);
- chunk_t *prev;
-
- if ( chunk_is_token(pc, CT_SEMICOLON)
- && !pc->flags.test(PCF_IN_PREPROC)
- && (prev = chunk_get_prev_ncnnl(pc)) != nullptr)
- {
- LOG_FMT(LSCANSEMI, "%s(%d): Semi orig_line is %zu, orig_col is %zu, parent is %s, prev = '%s' [%s/%s]\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, get_token_name(get_chunk_parent_type(pc)),
- prev->text(),
- get_token_name(prev->type), get_token_name(get_chunk_parent_type(prev)));
-
- if (get_chunk_parent_type(pc) == CT_TYPEDEF)
- {
- // keep it
- }
- else if ( chunk_is_token(prev, CT_BRACE_CLOSE)
- && ( get_chunk_parent_type(prev) == CT_IF
- || get_chunk_parent_type(prev) == CT_ELSEIF
- || get_chunk_parent_type(prev) == CT_ELSE
- || get_chunk_parent_type(prev) == CT_SWITCH
- || get_chunk_parent_type(prev) == CT_WHILE
- || get_chunk_parent_type(prev) == CT_USING_STMT
- || get_chunk_parent_type(prev) == CT_FOR
- || get_chunk_parent_type(prev) == CT_FUNC_DEF
- || get_chunk_parent_type(prev) == CT_OC_MSG_DECL
- || get_chunk_parent_type(prev) == CT_FUNC_CLASS_DEF
- || get_chunk_parent_type(prev) == CT_NAMESPACE))
- {
- remove_semicolon(pc);
- }
- else if ( chunk_is_token(prev, CT_BRACE_CLOSE)
- && get_chunk_parent_type(prev) == CT_NONE)
- {
- check_unknown_brace_close(pc, prev);
- }
- else if ( chunk_is_token(prev, CT_SEMICOLON)
- && get_chunk_parent_type(prev) != CT_FOR)
- {
- remove_semicolon(pc);
- }
- else if ( language_is_set(LANG_D)
- && ( get_chunk_parent_type(prev) == CT_ENUM
- || get_chunk_parent_type(prev) == CT_UNION
- || get_chunk_parent_type(prev) == CT_STRUCT))
- {
- remove_semicolon(pc);
- }
- else if ( language_is_set(LANG_JAVA)
- && get_chunk_parent_type(prev) == CT_SYNCHRONIZED)
- {
- remove_semicolon(pc);
- }
- else if (chunk_is_token(prev, CT_BRACE_OPEN))
- {
- remove_semicolon(pc);
- }
- }
- pc = next;
- }
-} // remove_extra_semicolons
-
-
-static void check_unknown_brace_close(chunk_t *semi, chunk_t *brace_close)
-{
- LOG_FUNC_ENTRY();
- chunk_t *pc = chunk_get_prev_type(brace_close, CT_BRACE_OPEN, brace_close->level);
-
- pc = chunk_get_prev_ncnnl(pc);
-
- if ( pc != nullptr
- && pc->type != CT_RETURN
- && pc->type != CT_WORD
- && pc->type != CT_TYPE
- && pc->type != CT_SQUARE_CLOSE
- && pc->type != CT_ANGLE_CLOSE
- && pc->type != CT_TSQUARE
- && !chunk_is_paren_close(pc))
- {
- remove_semicolon(semi);
- }
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/sorting.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/sorting.cpp
deleted file mode 100644
index bec55749..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/sorting.cpp
+++ /dev/null
@@ -1,698 +0,0 @@
-/**
- * @file sorting.cpp
- * Sorts chunks and imports
- *
- * @author Ben Gardner
- * @license GPL v2+
- */
-
-#include "sorting.h"
-
-#include "newlines.h"
-#include "prototypes.h"
-
-#include <regex>
-
-constexpr static auto LCURRENT = LSORT;
-
-using namespace uncrustify;
-
-Option<std::string> *include_category_options[] =
-{
- &options::include_category_0,
- &options::include_category_1,
- &options::include_category_2,
-};
-constexpr static int kIncludeCategoriesCount = 3;
-
-
-struct include_category
-{
- include_category(const std::string &pattern)
- : regex(pattern)
- {
- }
- std::regex regex;
-};
-
-
-include_category *include_categories[kIncludeCategoriesCount];
-
-
-/**
- * Compare two series of chunks, starting with the given ones.
- * @param pc1 first instance to compare
- * @param pc2 second instance to compare
- * @param tcare take care of case (lower case/ upper case) Issue #2091
- *
- * @retval == 0 both text elements are equal
- * @retval > 0
- * @retval < 0
- */
-static int compare_chunks(chunk_t *pc1, chunk_t *pc2, bool tcare = false);
-
-
-/**
- * Sorting should be pretty rare and should usually only include a few chunks.
- * We need to minimize the number of swaps, as those are expensive.
- * So, we do a min sort.
- */
-static void do_the_sort(chunk_t **chunks, size_t num_chunks);
-
-
-#define MARK_CHANGE() mark_change(__func__, __LINE__)
-
-
-static void mark_change(const char *func, size_t line)
-{
- LOG_FUNC_ENTRY();
- cpd.changes++;
-
- if (cpd.pass_count == 0)
- {
- LOG_FMT(LCHANGE, "%s(%d): change %d on %s:%zu\n",
- __func__, __LINE__, cpd.changes, func, line);
- }
-}
-
-
-static void prepare_categories()
-{
- for (int i = 0; i < kIncludeCategoriesCount; ++i)
- {
- const auto &cat_pattern = (*include_category_options[i])();
-
- if (!cat_pattern.empty())
- {
- include_categories[i] = new include_category(cat_pattern);
- }
- else
- {
- include_categories[i] = nullptr;
- }
- }
-}
-
-
-static void cleanup_categories()
-{
- for (auto &include_category : include_categories)
- {
- if (include_category == nullptr)
- {
- continue;
- }
- delete include_category;
- include_category = NULL;
- }
-}
-
-
-static int get_chunk_priority(chunk_t *pc)
-{
- for (int i = 0; i < kIncludeCategoriesCount; i++)
- {
- if (include_categories[i] != nullptr)
- {
- if (std::regex_match(pc->text(), include_categories[i]->regex))
- {
- return(i);
- }
- }
- }
-
- return(kIncludeCategoriesCount);
-}
-
-
-/**
- * Returns true if the text contains filename without extension.
- */
-static bool text_contains_filename_without_ext(const char *text)
-{
- std::string filepath = cpd.filename;
- size_t slash_idx = filepath.find_last_of("/\\");
- std::string filename_without_ext = filepath;
-
- if ( slash_idx != std::string::npos
- && slash_idx < (filepath.size() - 1))
- {
- std::string filename = filepath.substr(slash_idx + 1);
- size_t dot_idx = filename.find_last_of('.');
- filename_without_ext = filename.substr(0, dot_idx);
- }
- const std::regex special_chars = std::regex(R"([-[\]{}()*+?.,\^$|#\s])");
- const std::string sanitized_filename = std::regex_replace(filename_without_ext, special_chars, R"(\$&)");
- const std::regex filename_pattern = std::regex("\\S?" + sanitized_filename + "\\b.*");
-
- return(std::regex_match(text, filename_pattern));
-}
-
-
-/**
- * Get chunk text without the extension.
- */
-static unc_text get_text_without_ext(const unc_text &chunk_text)
-{
- unc_text result = chunk_text;
- int idx = result.rfind(".", result.size() - 1);
-
- if (idx == -1)
- {
- return(result);
- }
- result.erase(idx, result.size() - idx);
- return(result);
-}
-
-
-/**
- * Returns true if unc_text has "." which implies extension.
- */
-static bool has_dot(const unc_text &chunk_text)
-{
- int idx = chunk_text.rfind(".", chunk_text.size() - 1);
-
- return(idx != -1);
-}
-
-
-/**
- * Returns chunk string required for sorting.
- */
-static unc_text chunk_sort_str(chunk_t *pc)
-{
- if (get_chunk_parent_type(pc) == CT_PP_INCLUDE)
- {
- return(unc_text{ pc->str, 0, pc->len() - 1 });
- }
- return(pc->str);
-}
-
-
-//! Compare two chunks
-static int compare_chunks(chunk_t *pc1, chunk_t *pc2, bool tcare)
-{
- LOG_FUNC_ENTRY();
- LOG_FMT(LSORT, "%s(%d): @begin pc1->len is %zu, line is %zu, column is %zu\n",
- __func__, __LINE__, pc1->len(), pc1->orig_line, pc1->orig_col);
- LOG_FMT(LSORT, "%s(%d): @begin pc2->len is %zu, line is %zu, column is %zu\n",
- __func__, __LINE__, pc2->len(), pc2->orig_line, pc2->orig_col);
-
- if (pc1 == pc2) // same chunk is always identical thus return 0 differences
- {
- return(0);
- }
-
- while ( pc1 != nullptr
- && pc2 != nullptr)
- {
- auto const &s1_ext = chunk_sort_str(pc1);
- auto const &s2_ext = chunk_sort_str(pc2);
-
- log_rule_B("mod_sort_incl_import_ignore_extension");
- auto const &s1 = (options::mod_sort_incl_import_ignore_extension()) ? get_text_without_ext(s1_ext) : s1_ext;
- auto const &s2 = (options::mod_sort_incl_import_ignore_extension()) ? get_text_without_ext(s2_ext) : s2_ext;
- log_rule_B("mod_sort_incl_import_prioritize_filename");
-
- if (options::mod_sort_incl_import_prioritize_filename())
- {
- bool s1_contains_filename = text_contains_filename_without_ext(s1.c_str());
- bool s2_contains_filename = text_contains_filename_without_ext(s2.c_str());
-
- if ( s1_contains_filename
- && !s2_contains_filename)
- {
- return(-1);
- }
- else if ( !s1_contains_filename
- && s2_contains_filename)
- {
- return(1);
- }
- }
-
- if (options::mod_sort_incl_import_prioritize_extensionless())
- {
- log_rule_B("mod_sort_incl_import_prioritize_extensionless");
- const bool s1_has_dot = has_dot(s1_ext);
- const bool s2_has_dot = has_dot(s2_ext);
-
- if ( s1_has_dot
- && !s2_has_dot)
- {
- return(1);
- }
- else if ( !s1_has_dot
- && s2_has_dot)
- {
- return(-1);
- }
- }
-
- if (options::mod_sort_incl_import_prioritize_angle_over_quotes())
- {
- log_rule_B("mod_sort_incl_import_prioritize_angle_over_quotes");
-
- if ( s1.startswith("<")
- && s2.startswith("\""))
- {
- return(-1);
- }
- else if ( s1.startswith("\"")
- && s2.startswith("<"))
- {
- return(1);
- }
- }
- int ppc1 = get_chunk_priority(pc1);
- int ppc2 = get_chunk_priority(pc2);
-
- if (ppc1 != ppc2)
- {
- return(ppc1 - ppc2);
- }
- LOG_FMT(LSORT, "%s(%d): text is %s, pc1->len is %zu, line is %zu, column is %zu\n",
- __func__, __LINE__, pc1->text(), pc1->len(), pc1->orig_line, pc1->orig_col);
- LOG_FMT(LSORT, "%s(%d): text is %s, pc2->len is %zu, line is %zu, column is %zu\n",
- __func__, __LINE__, pc2->text(), pc2->len(), pc2->orig_line, pc2->orig_col);
-
- int ret_val = unc_text::compare(s1, s2, std::min(s1.size(), s2.size()), tcare);
- LOG_FMT(LSORT, "%s(%d): ret_val is %d\n",
- __func__, __LINE__, ret_val);
-
- if (ret_val != 0)
- {
- return(ret_val);
- }
-
- if (pc1->len() != pc2->len())
- {
- return(pc1->len() - pc2->len());
- }
- // Same word, same length. Step to the next chunk.
- pc1 = chunk_get_next(pc1);
- LOG_FMT(LSORT, "%s(%d): text is %s, pc1->len is %zu, line is %zu, column is %zu\n",
- __func__, __LINE__, pc1->text(), pc1->len(), pc1->orig_line, pc1->orig_col);
-
- if (chunk_is_token(pc1, CT_MEMBER))
- {
- pc1 = chunk_get_next(pc1);
- LOG_FMT(LSORT, "%s(%d): text is %s, pc1->len is %zu, line is %zu, column is %zu\n",
- __func__, __LINE__, pc1->text(), pc1->len(), pc1->orig_line, pc1->orig_col);
- }
- pc2 = chunk_get_next(pc2);
- LOG_FMT(LSORT, "%s(%d): text is %s, pc2->len is %zu, line is %zu, column is %zu\n",
- __func__, __LINE__, pc2->text(), pc2->len(), pc2->orig_line, pc2->orig_col);
-
- if (chunk_is_token(pc2, CT_MEMBER))
- {
- pc2 = chunk_get_next(pc2);
- LOG_FMT(LSORT, "%s(%d): text is %s, pc2->len is %zu, line is %zu, column is %zu\n",
- __func__, __LINE__, pc2->text(), pc2->len(), pc2->orig_line, pc2->orig_col);
- }
- LOG_FMT(LSORT, "%s(%d): >>>text is %s, pc1->len is %zu, line is %zu, column is %zu\n",
- __func__, __LINE__, pc1->text(), pc1->len(), pc1->orig_line, pc1->orig_col);
- LOG_FMT(LSORT, "%s(%d): >>>text is %s, pc2->len is %zu, line is %zu, column is %zu\n",
- __func__, __LINE__, pc2->text(), pc2->len(), pc2->orig_line, pc2->orig_col);
-
- // If we hit a newline or nullptr, we are done
- if ( pc1 == nullptr
- || chunk_is_newline(pc1)
- || pc2 == nullptr
- || chunk_is_newline(pc2))
- {
- break;
- }
- }
-
- if ( pc1 == nullptr
- || !chunk_is_newline(pc2))
- {
- return(-1);
- }
-
- if (!chunk_is_newline(pc1))
- {
- return(1);
- }
- return(0);
-} // compare_chunks
-
-
-/**
- * Sorting should be pretty rare and should usually only include a few chunks.
- * We need to minimize the number of swaps, as those are expensive.
- * So, we do a min sort.
- */
-static void do_the_sort(chunk_t **chunks, size_t num_chunks)
-{
- LOG_FUNC_ENTRY();
-
- LOG_FMT(LSORT, "%s(%d): %zu chunks:",
- __func__, __LINE__, num_chunks);
-
- for (size_t idx = 0; idx < num_chunks; idx++)
- {
- LOG_FMT(LSORT, " [%s]", chunks[idx]->text());
- }
-
- LOG_FMT(LSORT, "\n");
-
- size_t start_idx;
-
- log_rule_B("mod_sort_case_sensitive");
- bool take_care = options::mod_sort_case_sensitive(); // Issue #2091
-
- for (start_idx = 0; start_idx < (num_chunks - 1); start_idx++)
- {
- // Find the index of the minimum value
- size_t min_idx = start_idx;
-
- for (size_t idx = start_idx + 1; idx < num_chunks; idx++)
- {
- if (compare_chunks(chunks[idx], chunks[min_idx], take_care) < 0) // Issue #2091
- {
- min_idx = idx;
- }
- }
-
- // Swap the lines if the minimum isn't the first entry
- if (min_idx != start_idx)
- {
- chunk_swap_lines(chunks[start_idx], chunks[min_idx]);
- log_rule_B("mod_sort_incl_import_grouping_enabled");
-
- if (options::mod_sort_incl_import_grouping_enabled())
- {
- chunk_t *pc = chunks[min_idx];
- chunks[min_idx] = chunks[start_idx];
- chunks[start_idx] = pc;
- }
- else
- {
- // Don't need to swap, since we only want the side-effects
- chunks[min_idx] = chunks[start_idx];
- }
- }
- }
-} // do_the_sort
-
-
-/**
- * Remove blank lines between chunks.
- */
-static void remove_blank_lines_between_imports(chunk_t **chunks, size_t num_chunks)
-{
- LOG_FUNC_ENTRY();
-
- if (num_chunks < 2)
- {
- return;
- }
-
- for (size_t idx = 0; idx < (num_chunks - 1); idx++)
- {
- chunk_t *chunk1 = chunk_get_next_nl(chunks[idx]);
- chunk1->nl_count = 1;
- MARK_CHANGE();
- }
-}
-
-
-/**
- * Delete chunks on line having chunk.
- */
-static void delete_chunks_on_line_having_chunk(chunk_t *chunk)
-{
- LOG_FUNC_ENTRY();
-
- chunk_t *pc = chunk_first_on_line(chunk);
-
- while ( pc != nullptr
- && !chunk_is_comment(pc))
- {
- chunk_t *next_pc = chunk_get_next(pc);
- LOG_FMT(LCHUNK, "%s(%d): Removed '%s' on orig_line %zu\n",
- __func__, __LINE__, pc->text(), pc->orig_line);
-
- if (chunk_is_newline(pc))
- {
- chunk_del(pc);
- break;
- }
- else
- {
- chunk_del(pc);
- }
- pc = next_pc;
- }
-}
-
-
-/**
- * Dedupe import/include directives.
- */
-static void dedupe_imports(chunk_t **chunks, size_t num_chunks)
-{
- LOG_FUNC_ENTRY();
- log_rule_B("mod_sort_case_sensitive");
-
- for (size_t idx = 1; idx < num_chunks; idx++)
- {
- auto const &s1 = chunk_sort_str(chunks[idx - 1]);
- auto const &s2 = chunk_sort_str(chunks[idx]);
-
- if (s1.size() != s2.size())
- {
- continue;
- }
- int ret_val = unc_text::compare(s1, s2, std::min(s1.size(), s2.size()), options::mod_sort_case_sensitive());
-
- if (ret_val == 0)
- {
- delete_chunks_on_line_having_chunk(chunks[idx - 1]);
- }
- }
-}
-
-
-/**
- * Add blank line before the chunk.
- */
-static void blankline_add_before(chunk_t *pc)
-{
- chunk_t *newline = newline_add_before(chunk_first_on_line(pc));
-
- if (newline->nl_count < 2)
- {
- double_newline(newline);
- }
-}
-
-
-/**
- * Group imports.
- */
-static void group_imports_by_adding_newlines(chunk_t **chunks, size_t num_chunks)
-{
- LOG_FUNC_ENTRY();
-
- // Group imports based on first character, typically quote or angle.
- int c_idx = -1;
- int c_idx_last = -1;
-
- for (size_t idx = 0; idx < num_chunks; idx++)
- {
- if (chunks[idx]->str.size() > 0)
- {
- c_idx = chunks[idx]->str.at(0);
- }
- else
- {
- c_idx = -1;
- }
-
- if ( c_idx_last != c_idx
- && idx > 0)
- {
- blankline_add_before(chunks[idx]);
- }
- c_idx_last = c_idx;
- }
-
- // Group imports based on having extension.
- bool chunk_has_dot = false;
- bool chunk_last_has_dot = false;
-
- for (size_t idx = 0; idx < num_chunks; idx++)
- {
- chunk_has_dot = has_dot(chunks[idx]->str);
-
- if ( chunk_last_has_dot != chunk_has_dot
- && idx > 0)
- {
- blankline_add_before(chunks[idx]);
- }
- chunk_last_has_dot = chunk_has_dot;
- }
-
- // Group imports based on priority defined by config.
- int chunk_pri = -1;
- int chunk_pri_last = -1;
-
- for (size_t idx = 0; idx < num_chunks; idx++)
- {
- chunk_pri = get_chunk_priority(chunks[idx]);
-
- if ( chunk_pri_last != chunk_pri
- && idx > 0)
- {
- blankline_add_before(chunks[idx]);
- }
- chunk_pri_last = chunk_pri;
- }
-
- // Group imports that contain filename pattern.
- bool chunk_has_filename = false;
- bool last_chunk_has_filename = false;
-
- for (size_t idx = 0; idx < num_chunks; idx++)
- {
- auto const &chunk_text = chunk_sort_str(chunks[idx]);
- chunk_has_filename = text_contains_filename_without_ext(chunk_text.c_str());
-
- if ( !chunk_has_filename
- && last_chunk_has_filename)
- {
- blankline_add_before(chunks[idx]);
- }
- last_chunk_has_filename = chunk_has_filename;
- }
-} // group_imports_by_adding_newlines
-
-
-void sort_imports(void)
-{
- LOG_FUNC_ENTRY();
- const int max_number_to_sort = 1024;
- const int max_lines_to_check_for_sort_after_include = 128;
- const int max_gap_threshold_between_include_to_sort = 32;
-
- chunk_t *chunks[max_number_to_sort];
- size_t num_chunks = 0;
- chunk_t *p_last = nullptr;
- chunk_t *p_imp = nullptr;
- chunk_t *p_imp_last = nullptr;
-
- prepare_categories();
-
- chunk_t *pc = chunk_get_head();
-
- log_rule_B("mod_sort_incl_import_grouping_enabled");
-
- while (pc != nullptr)
- {
- // Simple optimization to limit the sorting. Any MAX_LINES_TO_CHECK_AFTER_INCLUDE lines after last
- // import is seen are ignore from sorting.
- if ( options::mod_sort_incl_import_grouping_enabled()
- && p_imp_last != nullptr
- && (pc->orig_line - p_imp_last->orig_line) > max_lines_to_check_for_sort_after_include)
- {
- break;
- }
- chunk_t *next = chunk_get_next(pc);
-
- if (chunk_is_newline(pc))
- {
- bool did_import = false;
-
- if ( p_imp != nullptr
- && p_last != nullptr
- && ( chunk_is_token(p_last, CT_SEMICOLON)
- || p_imp->flags.test(PCF_IN_PREPROC)))
- {
- if (num_chunks < max_number_to_sort)
- {
- LOG_FMT(LSORT, "%s(%d): p_imp is %s\n",
- __func__, __LINE__, p_imp->text());
- chunks[num_chunks++] = p_imp;
- }
- else
- {
- fprintf(stderr, "Number of 'import' to be sorted is too big for the current value %d.\n", max_number_to_sort);
- fprintf(stderr, "Please make a report.\n");
- log_flush(true);
- cpd.error_count++;
- exit(2);
- }
- did_import = true;
- }
- log_rule_B("mod_sort_incl_import_grouping_enabled");
-
- if ( !did_import
- || ( !options::mod_sort_incl_import_grouping_enabled()
- && pc->nl_count > 1)
- || ( options::mod_sort_incl_import_grouping_enabled()
- && p_imp_last != nullptr
- && (pc->orig_line - p_imp_last->orig_line) > max_gap_threshold_between_include_to_sort)
- || next == nullptr)
- {
- if (num_chunks > 1)
- {
- log_rule_B("mod_sort_incl_import_grouping_enabled");
-
- if (options::mod_sort_incl_import_grouping_enabled())
- {
- remove_blank_lines_between_imports(chunks, num_chunks);
- do_the_sort(chunks, num_chunks);
- group_imports_by_adding_newlines(chunks, num_chunks);
- dedupe_imports(chunks, num_chunks);
- }
- else
- {
- do_the_sort(chunks, num_chunks);
- }
- }
- num_chunks = 0;
- }
- p_imp_last = p_imp;
- p_imp = nullptr;
- p_last = nullptr;
- }
- else if (chunk_is_token(pc, CT_IMPORT))
- {
- log_rule_B("mod_sort_import");
-
- if (options::mod_sort_import())
- {
- p_imp = chunk_get_next(pc);
- }
- }
- else if (chunk_is_token(pc, CT_USING))
- {
- log_rule_B("mod_sort_using");
-
- if (options::mod_sort_using())
- {
- p_imp = chunk_get_next(pc);
- }
- }
- else if (chunk_is_token(pc, CT_PP_INCLUDE))
- {
- log_rule_B("mod_sort_include");
-
- if (options::mod_sort_include())
- {
- p_imp = chunk_get_next(pc);
- p_last = pc;
- }
- }
- else if (!chunk_is_comment(pc))
- {
- p_last = pc;
- }
- pc = next;
- }
- cleanup_categories();
-} // sort_imports
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/space.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/space.cpp
deleted file mode 100644
index fc026a4b..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/space.cpp
+++ /dev/null
@@ -1,3829 +0,0 @@
-/**
- * @file space.cpp
- * Adds or removes inter-chunk spaces.
- *
- * Informations
- * "Ignore" means do not change it.
- * "Add" in the context of spaces means make sure there is at least 1.
- * "Add" elsewhere means make sure one is present.
- * "Remove" mean remove the space/brace/newline/etc.
- * "Force" in the context of spaces means ensure that there is exactly 1.
- * "Force" in other contexts means the same as "add".
- *
- * Rmk: spaces = space + nl
- *
- * @author Ben Gardner
- * @author Guy Maurel, 2015-2021
- * @license GPL v2+
- */
-
-#include "space.h"
-
-#include "log_rules.h"
-#include "options_for_QT.h"
-#include "punctuators.h"
-
-#ifdef WIN32
-#include <algorithm> // to get max
-#endif // ifdef WIN32
-
-using namespace std;
-using namespace uncrustify;
-
-
-/**
- * Decides how to change inter-chunk spacing.
- * Note that the order of the if statements is VERY important.
- *
- * @param first The first chunk
- * @param second The second chunk
- *
- * @return IARF_IGNORE, IARF_ADD, IARF_REMOVE or IARF_FORCE
- */
-static iarf_e do_space(chunk_t *first, chunk_t *second, int &min_sp);
-
-/**
- * Ensure to force the space between the \a first and the \a second chunks
- * if the PCF_FORCE_SPACE flag is set in the \a first.
- *
- * @param first The first chunk
- * @param second The second chunk
- * @param av Av from the do_space()
- *
- * @return IARF_IGNORE, IARF_ADD, IARF_REMOVE or IARF_FORCE
- */
-static iarf_e ensure_force_space(chunk_t *first, chunk_t *second, iarf_e av);
-
-//! type that stores two chunks between those no space shall occur
-struct no_space_table_t
-{
- c_token_t first; //! first chunk
- c_token_t second; //! second chunk
-};
-
-
-/**
- * this table lists out all combos where a space MUST be present
- * CT_UNKNOWN is a wildcard.
- *
- * TODO: some of these are no longer needed.
- */
-const no_space_table_t add_space_table[] =
-{
-#include "add_space_table.h"
-};
-
-
-/**
- * this table lists out all combos where a space should NOT be present
- * CT_UNKNOWN is a wildcard.
- *
- * TODO: some of these are no longer needed.
- */
-const no_space_table_t no_space_table[] =
-{
- { CT_OC_AT, CT_UNKNOWN },
- { CT_INCDEC_BEFORE, CT_WORD },
- { CT_UNKNOWN, CT_INCDEC_AFTER },
- { CT_UNKNOWN, CT_LABEL_COLON },
- { CT_UNKNOWN, CT_ACCESS_COLON },
- { CT_UNKNOWN, CT_SEMICOLON },
- { CT_UNKNOWN, CT_D_TEMPLATE },
- { CT_D_TEMPLATE, CT_UNKNOWN },
- { CT_MACRO_FUNC, CT_FPAREN_OPEN },
- { CT_PAREN_OPEN, CT_UNKNOWN },
- { CT_UNKNOWN, CT_PAREN_CLOSE },
- { CT_FPAREN_OPEN, CT_UNKNOWN },
- { CT_UNKNOWN, CT_SPAREN_CLOSE },
- { CT_SPAREN_OPEN, CT_UNKNOWN },
- { CT_UNKNOWN, CT_FPAREN_CLOSE },
- { CT_UNKNOWN, CT_COMMA },
- { CT_POS, CT_UNKNOWN },
- { CT_STAR, CT_UNKNOWN },
- { CT_VBRACE_CLOSE, CT_UNKNOWN },
- { CT_VBRACE_OPEN, CT_UNKNOWN },
- { CT_UNKNOWN, CT_VBRACE_CLOSE },
- { CT_UNKNOWN, CT_VBRACE_OPEN },
- { CT_PREPROC, CT_UNKNOWN },
- { CT_PREPROC_INDENT, CT_UNKNOWN },
- { CT_NEG, CT_UNKNOWN },
- { CT_UNKNOWN, CT_SQUARE_OPEN },
- { CT_UNKNOWN, CT_SQUARE_CLOSE },
- { CT_SQUARE_OPEN, CT_UNKNOWN },
- { CT_PAREN_CLOSE, CT_WORD },
- { CT_PAREN_CLOSE, CT_FUNC_DEF },
- { CT_PAREN_CLOSE, CT_FUNC_CALL },
- { CT_PAREN_CLOSE, CT_ADDR },
- { CT_PAREN_CLOSE, CT_FPAREN_OPEN },
- { CT_OC_SEL_NAME, CT_OC_SEL_NAME },
- { CT_TYPENAME, CT_TYPE },
-};
-
-
-bool token_is_within_trailing_return(chunk_t *pc)
-{
- // look back for '->' type is TRAILING_RET
- // until CT_FPAREN_CLOSE
- // or CT_FPAREN_OPEN is found
- chunk_t *prev = pc;
-
- while (prev != nullptr)
- {
- if (chunk_is_token(prev, CT_TRAILING_RET))
- {
- return(true);
- }
- else if ( chunk_is_token(prev, CT_FPAREN_CLOSE)
- || chunk_is_token(prev, CT_FPAREN_OPEN))
- {
- return(false);
- }
- else
- {
- prev = chunk_get_prev(prev);
- }
- }
- return(false);
-} // token_is_within_trailing_return
-
-
-/*
- * this function is called for every chunk in the input file.
- * Thus it is important to keep this function efficient
- */
-static iarf_e do_space(chunk_t *first, chunk_t *second, int &min_sp)
-{
- LOG_FUNC_ENTRY();
-
- LOG_FMT(LSPACE, "%s(%d): orig_line is %zu, orig_col is %zu, first->text() '%s', type is %s\n",
- __func__, __LINE__, first->orig_line, first->orig_col, first->text(), get_token_name(first->type));
-
- min_sp = 1;
-
- if ( chunk_is_token(first, CT_IGNORED)
- || chunk_is_token(second, CT_IGNORED))
- {
- log_rule("REMOVE");
- return(IARF_REMOVE);
- }
-
- if ( chunk_is_token(first, CT_PP_IGNORE)
- && chunk_is_token(second, CT_PP_IGNORE))
- {
- // Leave spacing alone between PP_IGNORE tokens as we don't want the default behavior (which is ADD).
- log_rule("PP_IGNORE");
- return(IARF_IGNORE);
- }
-
- if ( chunk_is_token(first, CT_PP)
- || chunk_is_token(second, CT_PP))
- {
- // Add or remove space around preprocessor '##' concatenation operator.
- log_rule("sp_pp_concat");
- return(options::sp_pp_concat());
- }
-
- if (chunk_is_token(first, CT_POUND))
- {
- // Add or remove space after preprocessor '#' stringify operator.
- // Also affects the '#@' charizing operator.
- log_rule("sp_pp_stringify");
- return(options::sp_pp_stringify());
- }
-
- if ( chunk_is_token(second, CT_POUND)
- && second->flags.test(PCF_IN_PREPROC)
- && get_chunk_parent_type(first) != CT_MACRO_FUNC)
- {
- // Add or remove space before preprocessor '#' stringify operator
- // as in '#define x(y) L#y'.
- log_rule("sp_before_pp_stringify");
- return(options::sp_before_pp_stringify());
- }
-
- if ( chunk_is_token(first, CT_SPACE)
- || chunk_is_token(second, CT_SPACE))
- {
- log_rule("REMOVE");
- return(IARF_REMOVE);
- }
-
- if (chunk_is_token(first, CT_DECLSPEC)) // Issue 1289
- {
- log_rule("REMOVE");
- return(IARF_REMOVE);
- }
-
- if ( chunk_is_token(second, CT_NEWLINE)
- || chunk_is_token(second, CT_VBRACE_OPEN))
- {
- log_rule("REMOVE");
- return(IARF_REMOVE);
- }
-
- if ( chunk_is_token(first, CT_VBRACE_OPEN)
- && second->type != CT_NL_CONT
- && second->type != CT_SEMICOLON) // # Issue 1158
- {
- log_rule("FORCE");
- return(IARF_FORCE);
- }
-
- if ( chunk_is_token(first, CT_VBRACE_CLOSE)
- && second->type != CT_NL_CONT)
- {
- log_rule("REMOVE");
- return(IARF_REMOVE);
- }
-
- if (chunk_is_token(second, CT_VSEMICOLON))
- {
- log_rule("REMOVE");
- return(IARF_REMOVE);
- }
-
- if (chunk_is_token(first, CT_MACRO_FUNC))
- {
- log_rule("REMOVE");
- return(IARF_REMOVE);
- }
-
- if (chunk_is_token(second, CT_NL_CONT))
- {
- // Add or remove space before a backslash-newline at the end of a line.
- log_rule("sp_before_nl_cont");
- return(options::sp_before_nl_cont());
- }
-
- if ( language_is_set(LANG_D)
- && ( chunk_is_token(first, CT_D_ARRAY_COLON)
- || chunk_is_token(second, CT_D_ARRAY_COLON)))
- {
- // (D) Add or remove around the D named array initializer ':' operator.
- log_rule("sp_d_array_colon");
- return(options::sp_d_array_colon());
- }
-
- if ( chunk_is_token(first, CT_CASE)
- && (( CharTable::IsKw1(second->str[0])
- || chunk_is_token(second, CT_NUMBER))))
- {
- // Fix the spacing between 'case' and the label. Only 'ignore' and 'force' make
- // sense here.
- log_rule("sp_case_label");
- return(options::sp_case_label() | IARF_ADD);
- }
-
- if (chunk_is_token(first, CT_FOR_COLON))
- {
- // java
- // Add or remove space after ':' in a Java/C++11 range-based 'for',
- // as in 'for (Type var : expr)'.
- log_rule("sp_after_for_colon");
- return(options::sp_after_for_colon());
- }
-
- if (chunk_is_token(second, CT_FOR_COLON))
- {
- // java
- // Add or remove space before ':' in a Java/C++11 range-based 'for',
- // as in 'for (Type var : expr)'.
- log_rule("sp_before_for_colon");
- return(options::sp_before_for_colon());
- }
-
- if ( chunk_is_token(first, CT_QUESTION)
- && chunk_is_token(second, CT_COND_COLON))
- {
- // In the abbreviated ternary form '(a ?: b)', add or remove space between '?'
- // and ':'.
- // Overrides all other sp_cond_* options.
- log_rule("sp_cond_ternary_short");
- return(options::sp_cond_ternary_short());
- }
-
- if ( chunk_is_token(first, CT_QUESTION) // see the tests cpp:34513-34516
- || chunk_is_token(second, CT_QUESTION))
- {
- if ( chunk_is_token(second, CT_QUESTION)
- && (options::sp_cond_question_before() != IARF_IGNORE))
- {
- // Add or remove space before the '?' in 'b ? t : f'.
- // Overrides sp_cond_question.
- log_rule("sp_cond_question_before");
- return(options::sp_cond_question_before());
- }
-
- if ( chunk_is_token(first, CT_QUESTION)
- && (options::sp_cond_question_after() != IARF_IGNORE))
- {
- // Add or remove space after the '?' in 'b ? t : f'.
- // Overrides sp_cond_question.
- log_rule("sp_cond_question_after");
- return(options::sp_cond_question_after());
- }
- // Issue #2596
- // Add or remove space around the '?' in 'b ? t : f'.
- // replace "if (chunk_is_token(first, CT_PAREN_CLOSE) && chunk_is_token(second, CT_QUESTION))"
- log_rule("sp_cond_question");
- return(options::sp_cond_question());
- }
-
- if ( chunk_is_token(first, CT_COND_COLON)
- || chunk_is_token(second, CT_COND_COLON))
- {
- if ( chunk_is_token(second, CT_COND_COLON)
- && (options::sp_cond_colon_before() != IARF_IGNORE))
- {
- // Add or remove space before the ':' in 'b ? t : f'.
- // Overrides sp_cond_colon.
- log_rule("sp_cond_colon_before");
- return(options::sp_cond_colon_before());
- }
-
- if ( chunk_is_token(first, CT_COND_COLON)
- && (options::sp_cond_colon_after() != IARF_IGNORE))
- {
- // Add or remove space after the ':' in 'b ? t : f'.
- // Overrides sp_cond_colon.
- log_rule("sp_cond_colon_after");
- return(options::sp_cond_colon_after());
- }
- // Issue #2596
- // replace "if (chunk_is_token(first, CT_WORD) && chunk_is_token(second, CT_COND_COLON))"
- // Add or remove space around the ':' in 'b ? t : f'.
- log_rule("sp_cond_colon");
- return(options::sp_cond_colon());
- }
-
- if ( language_is_set(LANG_D)
- && ( chunk_is_token(first, CT_RANGE)
- || chunk_is_token(second, CT_RANGE)))
- {
- // (D) Add or remove space around the D '..' operator.
- log_rule("sp_range");
- return(options::sp_range());
- }
-
- if ( chunk_is_token(first, CT_COLON)
- && get_chunk_parent_type(first) == CT_SQL_EXEC)
- {
- log_rule("REMOVE");
- return(IARF_REMOVE);
- }
-
- // Macro stuff can only return IGNORE, ADD, or FORCE
- if (chunk_is_token(first, CT_MACRO))
- {
- // Add or remove space between a macro name and its definition.
- log_rule("sp_macro");
- iarf_e arg = options::sp_macro();
- return(arg | ((arg != IARF_IGNORE) ? IARF_ADD : IARF_IGNORE));
- }
-
- if ( chunk_is_token(first, CT_FPAREN_CLOSE)
- && get_chunk_parent_type(first) == CT_MACRO_FUNC)
- {
- // Add or remove space between a macro function ')' and its definition.
- log_rule("sp_macro_func");
- iarf_e arg = options::sp_macro_func();
- return(arg | ((arg != IARF_IGNORE) ? IARF_ADD : IARF_IGNORE));
- }
-
- if (chunk_is_token(first, CT_PREPROC))
- {
- // Remove spaces, unless we are ignoring. See indent_preproc()
- if (options::pp_space() == IARF_IGNORE)
- {
- log_rule("pp_space");
- log_rule("IGNORE");
- return(IARF_IGNORE);
- }
- log_rule("REMOVE");
- return(IARF_REMOVE);
- }
-
- if (chunk_is_token(second, CT_SEMICOLON)) // see the tests cpp:34517-34519
- {
- if (chunk_is_token(first, CT_VBRACE_OPEN))
- {
- // Add or remove space before ';'.
- log_rule("sp_before_semi");
- return(options::sp_before_semi());
- }
-
- if (get_chunk_parent_type(second) == CT_FOR)
- {
- if (chunk_is_token(first, CT_SPAREN_OPEN))
- {
- // empty, e.g. for (;;)
- // ^ is first
- // ^ is second
- // Add or remove space before a semicolon of an empty left part of a for statement.
- log_rule("sp_before_semi_for_empty");
- return(options::sp_before_semi_for_empty());
- }
-
- if (chunk_is_token(first, CT_SEMICOLON))
- {
- // empty, e.g. for (;;)
- // ^ is first
- // ^ is second
- // Add or remove space between semicolons of an empty middle part of a for statement.
- log_rule("sp_between_semi_for_empty");
- return(options::sp_between_semi_for_empty());
- }
- // Add or remove space before ';' in non-empty 'for' statements.
- log_rule("sp_before_semi_for");
- return(options::sp_before_semi_for());
- }
- iarf_e arg = options::sp_before_semi(); // see the tests cpp:34517-34519
-
- if ( chunk_is_token(first, CT_VBRACE_OPEN) // Issue #2942
- && chunk_is_token(first->prev, CT_SPAREN_CLOSE)
- && get_chunk_parent_type(first) != CT_WHILE_OF_DO)
- {
- // Add or remove space before empty statement ';' on 'if', 'for' and 'while'.
- log_rule("sp_special_semi");
- arg = arg | options::sp_special_semi();
- }
- else
- {
- // Add or remove space before ';'.
- log_rule("sp_before_semi");
- }
- return(arg);
- }
-
- if ( ( chunk_is_token(second, CT_COMMENT)
- || chunk_is_token(second, CT_COMMENT_CPP))
- && ( chunk_is_token(first, CT_PP_ELSE)
- || chunk_is_token(first, CT_PP_ENDIF)))
- {
- set_chunk_type(second, CT_COMMENT_ENDIF);
- // Add or remove space between #else or #endif and a trailing comment.
- log_rule("sp_endif_cmt");
- return(options::sp_endif_cmt());
- }
-
- if ( options::sp_before_tr_cmt() != IARF_IGNORE
- && get_chunk_parent_type(second) == CT_COMMENT_END)
- {
- // Add or remove space before a trailing comment.
- // Number of spaces before a trailing comment.
- log_rule("sp_num_before_tr_cmt");
- min_sp = options::sp_num_before_tr_cmt();
- return(options::sp_before_tr_cmt());
- }
-
- if (get_chunk_parent_type(second) == CT_COMMENT_END)
- {
- switch (second->orig_prev_sp)
- {
- case 0:
- log_rule("orig_prev_sp-REMOVE");
- return(IARF_REMOVE);
-
- case 1:
- log_rule("orig_prev_sp-FORCE");
- return(IARF_FORCE);
-
- default:
- log_rule("orig_prev_sp-ADD");
- return(IARF_ADD);
- }
- }
-
- // "for (;;)" vs. "for (;; )" and "for (a;b;c)" vs. "for (a; b; c)"
- if (chunk_is_token(first, CT_SEMICOLON)) // see the tests cpp:34517-34519
- {
- if (get_chunk_parent_type(first) == CT_FOR)
- {
- if (chunk_is_token(second, CT_SPAREN_CLOSE))
- {
- // Add or remove space after the final semicolon of an empty part of a for
- // statement, as in 'for ( ; ; <here> )'.
- log_rule("sp_after_semi_for_empty");
- return(options::sp_after_semi_for_empty());
- }
-
- if (second->type != CT_SPAREN_CLOSE) // Issue 1324
- {
- // Add or remove space after ';' in non-empty 'for' statements.
- log_rule("sp_after_semi_for");
- return(options::sp_after_semi_for());
- }
- }
- else if ( !chunk_is_comment(second)
- && second->type != CT_BRACE_CLOSE) // issue #197
- {
- // Add or remove space after ';', except when followed by a comment.
- // see the tests cpp:34517-34519
- log_rule("sp_after_semi");
- return(options::sp_after_semi());
- }
- // Let the comment spacing rules handle this
- }
-
- // puts a space in the rare '+-' or '-+'
- if ( ( chunk_is_token(first, CT_NEG)
- || chunk_is_token(first, CT_POS)
- || chunk_is_token(first, CT_ARITH)
- || chunk_is_token(first, CT_SHIFT))
- && ( chunk_is_token(second, CT_NEG)
- || chunk_is_token(second, CT_POS)
- || chunk_is_token(second, CT_ARITH)
- || chunk_is_token(second, CT_SHIFT)))
- {
- log_rule("ADD");
- return(IARF_ADD);
- }
-
- // "return(a);" vs. "return (foo_t)a + 3;" vs. "return a;" vs. "return;"
- if (chunk_is_token(first, CT_RETURN))
- {
- if ( chunk_is_token(second, CT_PAREN_OPEN)
- && get_chunk_parent_type(second) == CT_RETURN)
- {
- // Add or remove space between 'return' and '('.
- log_rule("sp_return_paren");
- return(options::sp_return_paren());
- }
- else if ( chunk_is_token(second, CT_BRACE_OPEN)
- && get_chunk_parent_type(second) == CT_BRACED_INIT_LIST)
- {
- // Add or remove space between 'return' and '{'.
- log_rule("sp_return_brace");
- return(options::sp_return_brace());
- }
- // Everything else requires a space
- // The value REMOVE will be overriden with FORCE
- log_rule("sp_return");
-
- if (options::sp_return() == IARF_REMOVE)
- {
- return(IARF_FORCE);
- }
- return(options::sp_return());
- }
-
- // "sizeof(foo_t)" vs. "sizeof (foo_t)"
- if (chunk_is_token(first, CT_SIZEOF))
- {
- if (chunk_is_token(second, CT_PAREN_OPEN))
- {
- // Add or remove space between 'sizeof' and '('.
- log_rule("sp_sizeof_paren");
- return(options::sp_sizeof_paren());
- }
-
- if (chunk_is_token(second, CT_ELLIPSIS))
- {
- // Add or remove space between 'sizeof' and '...'.
- log_rule("sp_sizeof_ellipsis");
- return(options::sp_sizeof_ellipsis());
- }
- log_rule("FORCE");
- return(IARF_FORCE);
- }
-
- // "decltype(foo_t)" vs. "decltype (foo_t)"
- if (chunk_is_token(first, CT_DECLTYPE))
- {
- if (chunk_is_token(second, CT_PAREN_OPEN))
- {
- // Add or remove space between 'decltype' and '('.
- log_rule("sp_decltype_paren");
- return(options::sp_decltype_paren());
- }
- log_rule("FORCE");
- return(IARF_FORCE);
- }
-
- // handle '::'
- if (chunk_is_token(first, CT_DC_MEMBER))
- {
- // Add or remove space after the '::' operator.
- log_rule("sp_after_dc");
- return(options::sp_after_dc());
- }
-
- // Issue #889
- // mapped_file_source abc((int) ::CW2A(sTemp));
- if ( chunk_is_token(first, CT_PAREN_CLOSE)
- && chunk_is_token(second, CT_DC_MEMBER)
- && second->next != nullptr
- && second->next->type == CT_FUNC_CALL)
- {
- log_rule("sp_after_cast");
- return(options::sp_after_cast());
- }
-
- if (chunk_is_token(second, CT_DC_MEMBER))
- {
- /* '::' at the start of an identifier is not member access, but global scope operator.
- * Detect if previous chunk is keyword
- */
- switch (first->type)
- {
- case CT_SBOOL:
- case CT_SASSIGN:
- case CT_ARITH:
- case CT_SHIFT:
- case CT_CASE:
- case CT_CLASS:
- case CT_DELETE:
- case CT_FRIEND:
- case CT_NAMESPACE:
- case CT_NEW:
- case CT_SARITH:
- case CT_SCOMPARE:
- case CT_OPERATOR:
- case CT_ACCESS:
- case CT_QUALIFIER:
- case CT_RETURN:
- case CT_SIZEOF:
- case CT_DECLTYPE:
- case CT_STRUCT:
- case CT_THROW:
- case CT_TYPEDEF:
- case CT_TYPENAME:
- case CT_UNION:
- case CT_USING:
- log_rule("FORCE");
- return(IARF_FORCE);
-
- default:
- break;
- }
-
- if ( ( chunk_is_token(first, CT_WORD)
- || chunk_is_token(first, CT_TYPE)
- || chunk_is_token(first, CT_PAREN_CLOSE)
- || CharTable::IsKw1(first->str[0]))
- && (strcmp(first->text(), "void") != 0)) // Issue 1249
- {
- // Add or remove space before the '::' operator.
- log_rule("sp_before_dc");
- return(options::sp_before_dc());
- }
- }
-
- // "a,b" vs. "a, b"
- if (chunk_is_token(first, CT_COMMA)) // see the tests cpp:34520-34524
- // see the tests c-sharp:12200-12202
- {
- if ( language_is_set(LANG_CS)
- && get_chunk_parent_type(first) == CT_TYPE)
- {
- // C# multidimensional array type: ',,' vs. ', ,' or ',]' vs. ', ]'
- if (chunk_is_token(second, CT_COMMA))
- {
- // (C#) Add or remove space between ',' in multidimensional array type
- // like 'int[,,]'.
- log_rule("sp_between_mdatype_commas");
- return(options::sp_between_mdatype_commas());
- }
- // (C#) Add or remove space between ',' and ']' in multidimensional array type
- // like 'int[,,]'.
- log_rule("sp_after_mdatype_commas");
- return(options::sp_after_mdatype_commas());
- }
-
- // Fix for issue #1243
- // Don't add extra space after comma immediately followed by Angle close
- if (chunk_is_token(second, CT_ANGLE_CLOSE))
- {
- log_rule("IGNORE");
- return(IARF_IGNORE);
- }
- // Add or remove space after ',', i.e. 'a,b' vs. 'a, b'.
- log_rule("sp_after_comma");
- return(options::sp_after_comma());
- }
-
- // test if we are within a SIGNAL/SLOT call
- if (QT_SIGNAL_SLOT_found)
- {
- if ( chunk_is_token(first, CT_FPAREN_CLOSE)
- && ( chunk_is_token(second, CT_FPAREN_CLOSE)
- || chunk_is_token(second, CT_COMMA)))
- {
- if (second->level == QT_SIGNAL_SLOT_level)
- {
- restoreValues = true;
- }
- }
- }
-
- if (chunk_is_token(second, CT_COMMA))
- {
- if ( language_is_set(LANG_CS)
- && chunk_is_token(first, CT_SQUARE_OPEN)
- && get_chunk_parent_type(first) == CT_TYPE)
- {
- // Only for C#.
- // (C#) Add or remove space between '[' and ',' in multidimensional array type
- // like 'int[,,]'.
- log_rule("sp_before_mdatype_commas");
- return(options::sp_before_mdatype_commas());
- }
-
- if ( chunk_is_token(first, CT_PAREN_OPEN)
- || chunk_is_token(first, CT_FPAREN_OPEN))
- {
- // Add or remove space between an open parenthesis and comma,
- // i.e. '(,' vs. '( ,'.
- log_rule("sp_paren_comma");
- return(options::sp_paren_comma());
- }
- // Add or remove space before ',', i.e. 'a,b' vs. 'a ,b'.
- log_rule("sp_before_comma");
- return(options::sp_before_comma());
- }
-
- if (chunk_is_token(second, CT_ELLIPSIS))
- {
- // type followed by a ellipsis
- chunk_t *tmp = first;
-
- if ( chunk_is_token(tmp, CT_PTR_TYPE)
- || chunk_is_token(tmp, CT_BYREF))
- {
- tmp = chunk_get_prev_ncnnl(tmp);
- }
-
- if ( chunk_is_token(tmp, CT_TYPE)
- || chunk_is_token(tmp, CT_QUALIFIER))
- {
- // Add or remove space between a type and '...'.
- log_rule("sp_type_ellipsis");
- return(options::sp_type_ellipsis());
- }
-
- // non-punc followed by a ellipsis
- if ( !first->flags.test(PCF_PUNCTUATOR)
- && (options::sp_before_ellipsis() != IARF_IGNORE))
- {
- // Add or remove space before the variadic '...' when preceded by a
- // non-punctuator.
- log_rule("sp_before_ellipsis");
- return(options::sp_before_ellipsis());
- }
-
- if ( chunk_is_token(first, CT_FPAREN_CLOSE)
- || chunk_is_token(first, CT_PAREN_CLOSE))
- {
- // Add or remove space between ')' and '...'.
- log_rule("sp_paren_ellipsis");
- return(options::sp_paren_ellipsis());
- }
-
- if (chunk_is_token(first, CT_TAG_COLON))
- {
- log_rule("FORCE");
- return(IARF_FORCE);
- }
-
- if (chunk_is_token(first, CT_BYREF)) // Issue #3309
- {
- log_rule("sp_byref_ellipsis");
- return(options::sp_byref_ellipsis());
- }
-
- if (chunk_is_token(first, CT_PARAMETER_PACK)) // Issue #3309
- {
- log_rule("sp_parameter_pack_ellipsis");
- return(options::sp_parameter_pack_ellipsis());
- }
- }
-
- if (chunk_is_token(first, CT_ELLIPSIS))
- {
- if (chunk_is_token(second, CT_PARAMETER_PACK)) // Issue #3309
- {
- log_rule("sp_ellipsis_parameter_pack");
- return(options::sp_ellipsis_parameter_pack());
- }
-
- if (CharTable::IsKw1(second->str[0]))
- {
- log_rule("FORCE");
- return(IARF_FORCE);
- }
-
- if ( chunk_is_token(second, CT_PAREN_OPEN)
- && first->prev != nullptr
- && chunk_is_token(first->prev, CT_SIZEOF))
- {
- // Add or remove space between 'sizeof...' and '('.
- log_rule("sp_sizeof_ellipsis_paren");
- return(options::sp_sizeof_ellipsis_paren());
- }
- }
-
- if ( language_is_set(LANG_PAWN)
- && chunk_is_token(first, CT_TAG_COLON))
- {
- // (Pawn) Add or remove space after the tag keyword.
- log_rule("sp_after_tag");
- return(options::sp_after_tag());
- }
-
- if (chunk_is_token(second, CT_TAG_COLON))
- {
- log_rule("REMOVE");
- return(IARF_REMOVE);
- }
-
- // handle '~'
- if (chunk_is_token(first, CT_DESTRUCTOR))
- {
- log_rule("REMOVE");
- return(IARF_REMOVE);
- }
-
- if ( language_is_set(LANG_OC)
- && chunk_is_token(first, CT_CATCH)
- && chunk_is_token(second, CT_SPAREN_OPEN)
- && (options::sp_oc_catch_paren() != IARF_IGNORE))
- {
- // (OC) Add or remove space between '@catch' and '('
- // in '@catch (something) { }'. If set to ignore, sp_catch_paren is used.
- log_rule("sp_oc_catch_paren");
- return(options::sp_oc_catch_paren());
- }
-
- if ( language_is_set(LANG_OC)
- && ( chunk_is_token(first, CT_PAREN_CLOSE)
- || chunk_is_token(first, CT_OC_CLASS)
- || chunk_is_token(first, CT_WORD))
- && chunk_is_token(second, CT_ANGLE_OPEN)
- && ( get_chunk_parent_type(second) == CT_OC_PROTO_LIST
- || get_chunk_parent_type(second) == CT_OC_GENERIC_SPEC)
- && (options::sp_before_oc_proto_list() != IARF_IGNORE))
- {
- // (OC) Add or remove space before Objective-C protocol list
- // as in '@protocol Protocol<here><Protocol_A>' or '@interface MyClass : NSObject<here><MyProtocol>'.
- log_rule("sp_before_oc_proto_list");
- return(options::sp_before_oc_proto_list());
- }
-
- if ( language_is_set(LANG_OC)
- && chunk_is_token(first, CT_OC_CLASS)
- && chunk_is_token(second, CT_PAREN_OPEN)
- && (options::sp_oc_classname_paren() != IARF_IGNORE))
- {
- // (OC) Add or remove space between class name and '('
- // in '@interface className(categoryName)<ProtocolName>:BaseClass'
- log_rule("sp_oc_classname_paren");
- return(options::sp_oc_classname_paren());
- }
-
- if ( chunk_is_token(first, CT_CATCH)
- && chunk_is_token(second, CT_SPAREN_OPEN)
- && (options::sp_catch_paren() != IARF_IGNORE))
- {
- // Add or remove space between 'catch' and '(' in 'catch (something) { }'.
- // If set to ignore, sp_before_sparen is used.
- log_rule("sp_catch_paren");
- return(options::sp_catch_paren());
- }
-
- if ( language_is_set(LANG_D)
- && chunk_is_token(first, CT_D_VERSION_IF)
- && chunk_is_token(second, CT_SPAREN_OPEN)
- && (options::sp_version_paren() != IARF_IGNORE))
- {
- // (D) Add or remove space between 'version' and '('
- // in 'version (something) { }'. If set to ignore, sp_before_sparen is used.
- log_rule("sp_version_paren");
- return(options::sp_version_paren());
- }
-
- if ( language_is_set(LANG_D)
- && chunk_is_token(first, CT_D_SCOPE_IF)
- && chunk_is_token(second, CT_SPAREN_OPEN)
- && (options::sp_scope_paren() != IARF_IGNORE))
- {
- // (D) Add or remove space between 'scope' and '('
- // in 'scope (something) { }'. If set to ignore, sp_before_sparen is used.
- log_rule("sp_scope_paren");
- return(options::sp_scope_paren());
- }
-
- if ( language_is_set(LANG_OC)
- && chunk_is_token(first, CT_SYNCHRONIZED)
- && chunk_is_token(second, CT_SPAREN_OPEN))
- {
- // (OC) Add or remove space between '@synchronized' and the open parenthesis,
- // i.e. '@synchronized(foo)' vs. '@synchronized (foo)'.
- log_rule("sp_after_oc_synchronized");
- return(options::sp_after_oc_synchronized());
- }
-
- // "if (" vs. "if("
- if (chunk_is_token(second, CT_SPAREN_OPEN))
- {
- // Add or remove space after 'do' between 'while' and '('. Issue #995
- if ( chunk_is_token(first, CT_WHILE_OF_DO)
- && options::sp_while_paren_open() != IARF_IGNORE)
- {
- log_rule("sp_while_paren_open");
- return(options::sp_while_paren_open());
- }
- // Add or remove space before '(' of other control statements ('if', 'for',
- // 'switch', 'while', etc.).
- log_rule("sp_before_sparen");
- return(options::sp_before_sparen());
- }
-
- if ( chunk_is_token(first, CT_LAMBDA)
- || chunk_is_token(second, CT_LAMBDA))
- {
- // Add or remove space around assignment operator '=', '+=', etc.
- log_rule("sp_assign (lambda)");
- return(options::sp_assign());
- }
-
- // Handle the special lambda case for C++11:
- // [=](Something arg){.....}
- // Add or remove space around '=' in C++11 lambda capture specifications.
- // Overrides sp_assign.
- if ( (options::sp_cpp_lambda_assign() != IARF_IGNORE)
- && ( ( chunk_is_token(first, CT_SQUARE_OPEN)
- && get_chunk_parent_type(first) == CT_CPP_LAMBDA
- && chunk_is_token(second, CT_ASSIGN))
- || ( chunk_is_token(first, CT_ASSIGN)
- && chunk_is_token(second, CT_SQUARE_CLOSE)
- && get_chunk_parent_type(second) == CT_CPP_LAMBDA)))
- {
- log_rule("sp_cpp_lambda_assign");
- return(options::sp_cpp_lambda_assign());
- }
-
- if ( chunk_is_token(first, CT_SQUARE_CLOSE)
- && get_chunk_parent_type(first) == CT_CPP_LAMBDA)
- {
- // Handle the special lambda case for C++11:
- // [](Something arg){.....}
- // Add or remove space after the capture specification of a C++11 lambda when
- // an argument list is present, as in '[] <here> (int x){ ... }'.
- if (chunk_is_token(second, CT_LPAREN_OPEN))
- {
- log_rule("sp_cpp_lambda_square_paren");
- return(options::sp_cpp_lambda_square_paren());
- }
- else if (chunk_is_token(second, CT_BRACE_OPEN))
- {
- // Add or remove space after the capture specification of a C++11 lambda with
- // no argument list is present, as in '[] <here> { ... }'.
- log_rule("sp_cpp_lambda_square_brace");
- return(options::sp_cpp_lambda_square_brace());
- }
- }
-
- if (chunk_is_token(first, CT_LPAREN_OPEN))
- {
- // Add or remove space after the opening parenthesis of a argument list
- // of a C++11 lambda, as in '[]( <here> int x ){ ... }'.
- log_rule("sp_cpp_lambda_argument_list");
- return(options::sp_cpp_lambda_argument_list());
- }
-
- if (chunk_is_token(first, CT_LPAREN_CLOSE))
- {
- if (chunk_is_token(second, CT_BRACE_OPEN))
- {
- // Add or remove space after the argument list of a C++11 lambda, as in
- // '[](int x) <here> { ... }'.
- log_rule("sp_cpp_lambda_paren_brace");
- return(options::sp_cpp_lambda_paren_brace());
- }
- }
-
- if (chunk_is_token(second, CT_LPAREN_CLOSE))
- {
- // Add or remove space before the closing parenthesis of a argument list
- // of a C++11 lambda, as in '[]( int x <here> ){ ... }'.
- log_rule("sp_cpp_lambda_argument_list");
- return(options::sp_cpp_lambda_argument_list());
- }
-
- if ( chunk_is_token(first, CT_BRACE_CLOSE)
- && get_chunk_parent_type(first) == CT_CPP_LAMBDA
- && chunk_is_token(second, CT_FPAREN_OPEN))
- {
- // Add or remove space between a lambda body and its call operator of an
- // immediately invoked lambda, as in '[]( ... ){ ... } <here> ( ... )'.
- log_rule("sp_cpp_lambda_fparen");
- return(options::sp_cpp_lambda_fparen());
- }
-
- if ( chunk_is_token(first, CT_ENUM)
- && chunk_is_token(second, CT_FPAREN_OPEN))
- {
- // Add or remove space in 'NS_ENUM ('.
- log_rule("sp_enum_paren");
- return(options::sp_enum_paren());
- }
-
- if (chunk_is_token(second, CT_ASSIGN))
- {
- if (second->flags.test(PCF_IN_ENUM))
- {
- // Add or remove space before assignment '=' in enum.
- // Overrides sp_enum_assign.
- if (options::sp_enum_before_assign() != IARF_IGNORE)
- {
- log_rule("sp_enum_before_assign");
- return(options::sp_enum_before_assign());
- }
- // Add or remove space around assignment '=' in enum.
- log_rule("sp_enum_assign");
- return(options::sp_enum_assign());
- }
-
- // Add or remove space around assignment operator '=' in a prototype.
- // If set to ignore, use sp_assign.
- if ( (options::sp_assign_default() != IARF_IGNORE)
- && get_chunk_parent_type(second) == CT_FUNC_PROTO)
- {
- log_rule("sp_assign_default");
- return(options::sp_assign_default());
- }
-
- // Add or remove space before assignment operator '=', '+=', etc.
- // Overrides sp_assign.
- if (options::sp_before_assign() != IARF_IGNORE)
- {
- log_rule("sp_before_assign");
- return(options::sp_before_assign());
- }
- // Add or remove space around assignment operator '=', '+=', etc.
- log_rule("sp_assign");
- return(options::sp_assign());
- }
-
- if (chunk_is_token(second, CT_ASSIGN_DEFAULT_ARG))
- {
- // Add or remove space around assignment operator '=' in a prototype.
- // If set to ignore, use sp_assign.
- if ( (options::sp_assign_default() != IARF_IGNORE)
- && get_chunk_parent_type(second) == CT_FUNC_PROTO)
- {
- log_rule("sp_assign_default");
- return(options::sp_assign_default());
- }
-
- // Add or remove space before assignment operator '=', '+=', etc.
- // Overrides sp_assign.
- if (options::sp_before_assign() != IARF_IGNORE)
- {
- log_rule("sp_before_assign");
- return(options::sp_before_assign());
- }
- // Add or remove space around assignment operator '=', '+=', etc.
- log_rule("sp_assign");
- return(options::sp_assign());
- }
-
- if (chunk_is_token(first, CT_ASSIGN))
- {
- if (first->flags.test(PCF_IN_ENUM))
- {
- // Add or remove space after assignment '=' in enum.
- // Overrides sp_enum_assign.
- if (options::sp_enum_after_assign() != IARF_IGNORE)
- {
- log_rule("sp_enum_after_assign");
- return(options::sp_enum_after_assign());
- }
- // Add or remove space around assignment '=' in enum.
- log_rule("sp_enum_assign");
- return(options::sp_enum_assign());
- }
-
- // Add or remove space around assignment operator '=' in a prototype.
- // If set to ignore, use sp_assign.
- if ( (options::sp_assign_default() != IARF_IGNORE)
- && get_chunk_parent_type(first) == CT_FUNC_PROTO)
- {
- log_rule("sp_assign_default");
- return(options::sp_assign_default());
- }
-
- // Add or remove space after assignment operator '=', '+=', etc.
- // Overrides sp_assign.
- if (options::sp_after_assign() != IARF_IGNORE)
- {
- log_rule("sp_after_assign");
- return(options::sp_after_assign());
- }
- // Add or remove space around assignment operator '=', '+=', etc.
- log_rule("sp_assign");
- return(options::sp_assign());
- }
-
- if ( chunk_is_token(first, CT_TRAILING_RET)
- || chunk_is_token(first, CT_CPP_LAMBDA_RET)
- || chunk_is_token(second, CT_TRAILING_RET)
- || chunk_is_token(second, CT_CPP_LAMBDA_RET))
- {
- // Add or remove space around trailing return operator '->'.
- log_rule("sp_trailing_return");
- return(options::sp_trailing_return());
- }
-
- if (chunk_is_token(first, CT_ASSIGN_DEFAULT_ARG))
- {
- // Add or remove space around assignment operator '=' in a prototype.
- // If set to ignore, use sp_assign.
- if ( (options::sp_assign_default() != IARF_IGNORE)
- && get_chunk_parent_type(first) == CT_FUNC_PROTO)
- {
- log_rule("sp_assign_default");
- return(options::sp_assign_default());
- }
-
- // Add or remove space after assignment operator '=', '+=', etc.
- // Overrides sp_assign.
- if (options::sp_after_assign() != IARF_IGNORE)
- {
- log_rule("sp_after_assign");
- return(options::sp_after_assign());
- }
- // Add or remove space around assignment operator '=', '+=', etc.
- log_rule("sp_assign");
- return(options::sp_assign());
- }
-
- if (chunk_is_token(first, CT_BIT_COLON))
- {
- if ( first->flags.test(PCF_IN_ENUM)
- || first->parent_type == CT_ENUM)
- {
- // Add or remove space around assignment ':' in enum.
- log_rule("sp_enum_colon");
- return(options::sp_enum_colon());
- }
- }
-
- if (chunk_is_token(second, CT_BIT_COLON))
- {
- if ( second->flags.test(PCF_IN_ENUM)
- || second->parent_type == CT_ENUM)
- {
- // Add or remove space around assignment ':' in enum.
- log_rule("sp_enum_colon");
- return(options::sp_enum_colon());
- }
- }
-
- if ( chunk_is_token(first, CT_OC_AVAILABLE_VALUE)
- || chunk_is_token(second, CT_OC_AVAILABLE_VALUE))
- {
- log_rule("IGNORE");
- return(IARF_IGNORE);
- }
-
- if (language_is_set(LANG_OC))
- {
- if (chunk_is_token(second, CT_OC_BLOCK_CARET))
- {
- // (OC) Add or remove space before a block pointer caret,
- // i.e. '^int (int arg){...}' vs. ' ^int (int arg){...}'.
- log_rule("sp_before_oc_block_caret");
- return(options::sp_before_oc_block_caret());
- }
-
- if (chunk_is_token(first, CT_OC_BLOCK_CARET))
- {
- // (OC) Add or remove space after a block pointer caret,
- // i.e. '^int (int arg){...}' vs. '^ int (int arg){...}'.
- log_rule("sp_after_oc_block_caret");
- return(options::sp_after_oc_block_caret());
- }
-
- if (chunk_is_token(second, CT_OC_MSG_FUNC))
- {
- if ( (options::sp_after_oc_msg_receiver() == IARF_REMOVE)
- && ( (first->type != CT_SQUARE_CLOSE)
- && (first->type != CT_FPAREN_CLOSE)
- && (first->type != CT_PAREN_CLOSE)))
- {
- log_rule("FORCE");
- return(IARF_FORCE);
- }
- // (OC) Add or remove space between the receiver and selector in a message,
- // as in '[receiver selector ...]'.
- log_rule("sp_after_oc_msg_receiver");
- return(options::sp_after_oc_msg_receiver());
- }
- }
-
- // c++17 structured bindings e.g., "auto [x, y, z]" vs. a[x, y, z]" or "auto const [x, y, z]" vs. "auto const[x, y, z]"
- if ( language_is_set(LANG_CPP)
- && ( chunk_is_token(first, CT_BYREF)
- || chunk_is_token(first, CT_QUALIFIER)
- || chunk_is_token(first, CT_TYPE))
- && chunk_is_token(second, CT_SQUARE_OPEN)
- && get_chunk_parent_type(second) != CT_OC_MSG
- && get_chunk_parent_type(second) != CT_CS_SQ_STMT)
- {
- // Add or remove space before C++17 structured bindings.
- log_rule("sp_cpp_before_struct_binding");
- return(options::sp_cpp_before_struct_binding());
- }
-
- // "a [x]" vs. "a[x]"
- if ( chunk_is_token(second, CT_SQUARE_OPEN)
- && ( get_chunk_parent_type(second) != CT_OC_MSG
- && get_chunk_parent_type(second) != CT_CS_SQ_STMT
- && get_chunk_parent_type(second) != CT_CPP_LAMBDA))
- {
- if ( second->flags.test(PCF_IN_SPAREN)
- && (chunk_is_token(first, CT_IN)))
- {
- log_rule("FORCE");
- return(IARF_FORCE);
- }
-
- if (chunk_is_token(first, CT_ASM_COLON))
- {
- // Add or remove space before '[' for asm block.
- log_rule("sp_before_square_asm_block");
- return(options::sp_before_square_asm_block());
- }
-
- if (first->flags.test(PCF_VAR_DEF))
- {
- // Add or remove space before '[' for a variable definition.
- log_rule("sp_before_vardef_square");
- return(options::sp_before_vardef_square());
- }
- // Add or remove space before '[' (except '[]').
- log_rule("sp_before_square");
- return(options::sp_before_square());
- }
-
- // "byte[]" vs. "byte []"
- if (chunk_is_token(second, CT_TSQUARE))
- {
- // Add or remove space before '[]'.
- log_rule("sp_before_squares");
- return(options::sp_before_squares());
- }
-
- if ( (options::sp_angle_shift() != IARF_IGNORE)
- && chunk_is_token(first, CT_ANGLE_CLOSE)
- && chunk_is_token(second, CT_ANGLE_CLOSE))
- {
- // Add or remove space between '>' and '>' in '>>' (template stuff).
- log_rule("sp_angle_shift");
- return(options::sp_angle_shift());
- }
-
- // spacing around template < > stuff
- if ( chunk_is_token(first, CT_ANGLE_OPEN)
- || chunk_is_token(second, CT_ANGLE_CLOSE))
- {
- if ( chunk_is_token(first, CT_ANGLE_OPEN)
- && chunk_is_token(second, CT_ANGLE_CLOSE))
- {
- // Add or remove space inside '<>'.
- log_rule("sp_inside_angle_empty");
- return(options::sp_inside_angle_empty());
- }
- // Add or remove space inside '<' and '>'.
- log_rule("sp_inside_angle");
- iarf_e op = options::sp_inside_angle();
-
- // special: if we're not supporting digraphs, then we shouldn't create them!
- if ( (op == IARF_REMOVE)
- && !options::enable_digraphs()
- && chunk_is_token(first, CT_ANGLE_OPEN)
- && chunk_is_token(second, CT_DC_MEMBER))
- {
- op = IARF_IGNORE;
- }
- return(op);
- }
-
- if (chunk_is_token(second, CT_ANGLE_OPEN))
- {
- if ( chunk_is_token(first, CT_TEMPLATE)
- && (options::sp_template_angle() != IARF_IGNORE))
- {
- // Add or remove space between 'template' and '<'.
- // If set to ignore, sp_before_angle is used.
- log_rule("sp_template_angle");
- return(options::sp_template_angle());
- }
-
- if (first->type != CT_QUALIFIER)
- {
- // Add or remove space before '<'.
- log_rule("sp_before_angle");
- return(options::sp_before_angle());
- }
- }
-
- if (chunk_is_token(first, CT_ANGLE_CLOSE))
- {
- if ( chunk_is_token(second, CT_WORD)
- || CharTable::IsKw1(second->str[0]))
- {
- // Add or remove space between '>' and a word as in 'List<byte> m;' or
- // 'template <typename T> static ...'.
- log_rule("sp_angle_word");
- return(options::sp_angle_word());
- }
-
- if ( chunk_is_token(second, CT_FPAREN_OPEN)
- || chunk_is_token(second, CT_PAREN_OPEN))
- {
- chunk_t *next = chunk_get_next_ncnnl(second);
-
- if (chunk_is_token(next, CT_FPAREN_CLOSE))
- {
- // Add or remove space between '>' and '()' as found in 'new List<byte>();'.
- log_rule("sp_angle_paren_empty");
- return(options::sp_angle_paren_empty());
- }
- // Add or remove space between '>' and '(' as found in 'new List<byte>(foo);'.
- log_rule("sp_angle_paren");
- return(options::sp_angle_paren());
- }
-
- if (chunk_is_token(second, CT_DC_MEMBER))
- {
- // Add or remove space before the '::' operator.
- log_rule("sp_before_dc");
- return(options::sp_before_dc());
- }
-
- if ( second->type != CT_BYREF
- && second->type != CT_PTR_TYPE
- && second->type != CT_BRACE_OPEN
- && second->type != CT_PAREN_CLOSE)
- {
- if ( chunk_is_token(second, CT_CLASS_COLON)
- && options::sp_angle_colon() != IARF_IGNORE)
- {
- // Add or remove space between '>' and ':'.
- log_rule("sp_angle_colon");
- return(options::sp_angle_colon());
- }
-
- // Whether sp_after_angle takes precedence over sp_inside_fparen. This was the
- // historic behavior, but is probably not the desired behavior, so this is off
- // by default.
- if ( chunk_is_token(second, CT_FPAREN_CLOSE)
- && options::sp_inside_fparen() != IARF_IGNORE
- && !options::use_sp_after_angle_always())
- {
- // Add or remove space between '>' and ')'.
- log_rule("sp_inside_fparen");
- return(options::sp_inside_fparen());
- }
- // Add or remove space after '>'.
- log_rule("sp_after_angle");
- return(options::sp_after_angle());
- }
- }
-
- if (chunk_is_token(first, CT_BYREF)) // see the tests cpp:34509-34512
- {
- if ( get_chunk_parent_type(first) == CT_FUNC_DEF // Issue #3197, #3210
- || get_chunk_parent_type(first) == CT_FUNC_PROTO)
- {
- // Add or remove space after a reference sign '&', if followed by a function
- // prototype or function definition.
- log_rule("sp_after_byref_func"); // byref 2
- return(options::sp_after_byref_func());
- }
-
- if ( ( CharTable::IsKw1(second->str[0])
- && ( options::sp_after_byref() != IARF_IGNORE
- || ( !chunk_is_token(second, CT_FUNC_PROTO)
- && !chunk_is_token(second, CT_FUNC_DEF))))
- || chunk_is_token(second, CT_PAREN_OPEN))
- {
- // Add or remove space after reference sign '&', if followed by a word.
- log_rule("sp_after_byref"); // byref 1
- return(options::sp_after_byref());
- }
- }
-
- if ( chunk_is_token(second, CT_BYREF)
- && !chunk_is_token(first, CT_PAREN_OPEN)) // Issue #1804
- {
- if ( get_chunk_parent_type(second) == CT_FUNC_DEF // Issue #3197, #3210
- || get_chunk_parent_type(second) == CT_FUNC_PROTO)
- {
- // Add or remove space before a reference sign '&', if followed by a function
- // prototype or function definition.
- log_rule("sp_before_byref_func"); // byref 4
- return(options::sp_before_byref_func());
- }
- chunk_t *next = chunk_get_next(second);
-
- if ( next != nullptr
- && ( chunk_is_token(next, CT_COMMA)
- || chunk_is_token(next, CT_FPAREN_CLOSE)
- || chunk_is_token(next, CT_SEMICOLON)))
- {
- if (options::sp_before_unnamed_byref() != IARF_IGNORE)
- {
- // Add or remove space before a reference sign '&' that isn't followed by a
- // variable name. If set to 'ignore', sp_before_byref is used instead.
- log_rule("sp_before_unnamed_byref"); // byref 5
- return(options::sp_before_unnamed_byref());
- }
- else
- {
- // Add or remove space before a reference sign '&'.
- log_rule("sp_before_byref"); // byref 3
- return(options::sp_before_byref());
- }
- }
- // Add or remove space before a reference sign '&'.
- log_rule("sp_before_byref"); // byref 3
- return(options::sp_before_byref());
- }
-
- if (chunk_is_token(first, CT_SPAREN_CLOSE))
- {
- if (chunk_is_token(second, CT_BRACE_OPEN))
- {
- if (get_chunk_parent_type(second) == CT_CATCH)
- {
- if ( language_is_set(LANG_OC)
- && (options::sp_oc_catch_brace() != IARF_IGNORE))
- {
- // (OC) Add or remove space before the '{' of a '@catch' statement, if the '{'
- // and '@catch' are on the same line, as in '@catch (decl) <here> {'.
- // If set to ignore, sp_catch_brace is used.
- // only to help the vim command }}
- log_rule("sp_oc_catch_brace");
- return(options::sp_oc_catch_brace());
- }
-
- if (options::sp_catch_brace() != IARF_IGNORE)
- {
- // Add or remove space before the '{' of a 'catch' statement, if the '{' and
- // 'catch' are on the same line, as in 'catch (decl) <here> {'.
- log_rule("sp_catch_brace");
- return(options::sp_catch_brace());
- }
- }
-
- if (options::sp_sparen_brace() != IARF_IGNORE)
- {
- // Add or remove space between ')' and '{' of control statements.
- log_rule("sp_sparen_brace");
- return(options::sp_sparen_brace());
- }
- }
-
- if ( !chunk_is_comment(second)
- && (options::sp_after_sparen() != IARF_IGNORE))
- {
- // Add or remove space after ')' of control statements.
- log_rule("sp_after_sparen");
- return(options::sp_after_sparen());
- }
- }
-
- if ( chunk_is_token(second, CT_FPAREN_OPEN)
- && get_chunk_parent_type(first) == CT_OPERATOR
- && (options::sp_after_operator_sym() != IARF_IGNORE))
- {
- if ( (options::sp_after_operator_sym_empty() != IARF_IGNORE)
- && chunk_is_token(second, CT_FPAREN_OPEN))
- {
- chunk_t *next = chunk_get_next_ncnnl(second);
-
- if (chunk_is_token(next, CT_FPAREN_CLOSE))
- {
- // Overrides sp_after_operator_sym when the operator has no arguments, as in
- // 'operator *()'.
- log_rule("sp_after_operator_sym_empty");
- return(options::sp_after_operator_sym_empty());
- }
- }
- // Add or remove space between the operator symbol and the open parenthesis, as
- // in 'operator ++('.
- log_rule("sp_after_operator_sym");
- return(options::sp_after_operator_sym());
- }
-
- // Issue #2270
- // Translations under vala
- if ( language_is_set(LANG_VALA)
- && chunk_is_token(first, CT_FUNC_CALL))
- {
- if ( chunk_is_str(first, "_", 1)
- && chunk_is_token(second, CT_FPAREN_OPEN)
- && (options::sp_vala_after_translation() != IARF_IGNORE))
- {
- // Add or remove space after '_'.
- log_rule("sp_vala_after_translation");
- return(options::sp_vala_after_translation());
- }
- }
-
- if ( chunk_is_token(first, CT_MACRO_OPEN)
- || chunk_is_token(first, CT_MACRO_CLOSE)
- || chunk_is_token(first, CT_MACRO_ELSE))
- {
- if (chunk_is_token(second, CT_FPAREN_OPEN))
- {
- // TODO: provide some test data to check this block
- // Add or remove space between function name and '(' on function calls.
- log_rule("sp_func_call_paren");
- return(options::sp_func_call_paren());
- }
- log_rule("IGNORE");
- return(IARF_IGNORE);
- }
-
- // spaces between function and open paren
- if ( chunk_is_token(first, CT_FUNC_CALL)
- || chunk_is_token(first, CT_FUNCTION) // Issue #2665
- || chunk_is_token(first, CT_FUNC_CTOR_VAR)
- || chunk_is_token(first, CT_CNG_HASINC)
- || chunk_is_token(first, CT_CNG_HASINCN)
- || ( chunk_is_token(first, CT_BRACE_CLOSE)
- && first->parent_type == CT_BRACED_INIT_LIST
- && chunk_is_token(second, CT_FPAREN_OPEN)))
- {
- if ( (options::sp_func_call_paren_empty() != IARF_IGNORE)
- && chunk_is_token(second, CT_FPAREN_OPEN))
- {
- chunk_t *next = chunk_get_next_ncnnl(second);
-
- if (chunk_is_token(next, CT_FPAREN_CLOSE))
- {
- // Add or remove space between function name and '()' on function calls without
- // parameters. If set to 'ignore' (the default), sp_func_call_paren is used.
- log_rule("sp_func_call_paren_empty");
- return(options::sp_func_call_paren_empty());
- }
- }
- // Add or remove space between function name and '(' on function calls.
- log_rule("sp_func_call_paren");
- return(options::sp_func_call_paren());
- }
-
- if (chunk_is_token(first, CT_FUNC_CALL_USER))
- {
- // Add or remove space between the user function name and '(' on function
- // calls. You need to set a keyword to be a user function in the config file,
- // like:
- // set func_call_user tr _ i18n
- log_rule("sp_func_call_user_paren");
- return(options::sp_func_call_user_paren());
- }
-
- if ( chunk_is_token(first, CT_ATTRIBUTE)
- && chunk_is_paren_open(second))
- {
- // Add or remove space between '__attribute__' and '('.
- log_rule("sp_attribute_paren");
- return(options::sp_attribute_paren());
- }
-
- if (chunk_is_token(first, CT_FUNC_DEF))
- {
- if ( (options::sp_func_def_paren_empty() != IARF_IGNORE)
- && chunk_is_token(second, CT_FPAREN_OPEN))
- {
- chunk_t *next = chunk_get_next_ncnnl(second);
-
- if (chunk_is_token(next, CT_FPAREN_CLOSE))
- {
- // Add or remove space between function name and '()' on function definition
- // without parameters.
- log_rule("sp_func_def_paren_empty");
- return(options::sp_func_def_paren_empty());
- }
- }
- // Add or remove space between function name and '(' on function definition.
- log_rule("sp_func_def_paren");
- return(options::sp_func_def_paren());
- }
-
- if ( chunk_is_token(first, CT_CPP_CAST)
- || chunk_is_token(first, CT_TYPE_WRAP))
- {
- // Add or remove space between the type and open parenthesis in a C++ cast,
- // i.e. 'int(exp)' vs. 'int (exp)'.
- log_rule("sp_cpp_cast_paren");
- return(options::sp_cpp_cast_paren());
- }
-
- if ( chunk_is_token(first, CT_SPAREN_CLOSE)
- && chunk_is_token(second, CT_WHEN))
- {
- // TODO: provide some test data to check this block
- log_rule("FORCE");
- return(IARF_FORCE); // TODO: make this configurable?
- }
-
- if ( chunk_is_token(first, CT_PAREN_CLOSE)
- && ( chunk_is_token(second, CT_PAREN_OPEN)
- || chunk_is_token(second, CT_FPAREN_OPEN)))
- {
- // "(int)a" vs. "(int) a" or "cast(int)a" vs. "cast(int) a"
- if ( get_chunk_parent_type(first) == CT_C_CAST
- || get_chunk_parent_type(first) == CT_D_CAST)
- {
- // Add or remove space after C/D cast, i.e. 'cast(int)a' vs. 'cast(int) a' or
- // '(int)a' vs. '(int) a'.
- log_rule("sp_after_cast");
- return(options::sp_after_cast());
- }
- // Probably a parenthesized indirect function call or similar (issue #3260)
- log_rule("sp_cparen_oparen");
- return(options::sp_cparen_oparen());
- }
-
- // handle the space between parens in fcn type 'void (*f)(void)'
- if (chunk_is_token(first, CT_TPAREN_CLOSE))
- {
- // Add or remove space between the ')' and '(' in a function type, as in
- // 'void (*x)(...)'.
- log_rule("sp_after_tparen_close");
- return(options::sp_after_tparen_close());
- }
-
- // ")(" vs. ") ("
- if ( ( chunk_is_str(first, ")", 1)
- && chunk_is_str(second, "(", 1))
- || ( chunk_is_paren_close(first)
- && chunk_is_paren_open(second)))
- {
- // Add or remove space between back-to-back parentheses, i.e. ')(' vs. ') ('.
- log_rule("sp_cparen_oparen");
- return(options::sp_cparen_oparen());
- }
-
- if ( chunk_is_token(first, CT_FUNC_PROTO)
- || ( chunk_is_token(second, CT_FPAREN_OPEN)
- && get_chunk_parent_type(second) == CT_FUNC_PROTO))
- {
- if ( (options::sp_func_proto_paren_empty() != IARF_IGNORE)
- && chunk_is_token(second, CT_FPAREN_OPEN))
- {
- chunk_t *next = chunk_get_next_ncnnl(second);
-
- if (chunk_is_token(next, CT_FPAREN_CLOSE))
- {
- // Add or remove space between function name and '()' on function declaration
- // without parameters.
- log_rule("sp_func_proto_paren_empty");
- return(options::sp_func_proto_paren_empty());
- }
- }
- // Add or remove space between function name and '(' on function declaration.
- log_rule("sp_func_proto_paren");
- return(options::sp_func_proto_paren());
- }
-
- // Issue #2437
- if ( chunk_is_token(first, CT_FUNC_TYPE)
- && chunk_is_token(second, CT_FPAREN_OPEN))
- {
- // Add or remove space between function name and '(' with a typedef specifier.
- log_rule("sp_func_type_paren");
- return(options::sp_func_type_paren());
- }
-
- if ( chunk_is_token(first, CT_FUNC_CLASS_DEF)
- || chunk_is_token(first, CT_FUNC_CLASS_PROTO))
- {
- if ( (options::sp_func_class_paren_empty() != IARF_IGNORE)
- && chunk_is_token(second, CT_FPAREN_OPEN))
- {
- chunk_t *next = chunk_get_next_ncnnl(second);
-
- if (chunk_is_token(next, CT_FPAREN_CLOSE))
- {
- // Add or remove space between a constructor without parameters or destructor
- // and '()'.
- log_rule("sp_func_class_paren_empty");
- return(options::sp_func_class_paren_empty());
- }
- }
- // Add or remove space between a constructor/destructor and the open
- // parenthesis.
- log_rule("sp_func_class_paren");
- return(options::sp_func_class_paren());
- }
-
- if ( chunk_is_token(first, CT_CLASS)
- && !first->flags.test(PCF_IN_OC_MSG))
- {
- log_rule("FORCE");
- return(IARF_FORCE);
- }
-
- if ( chunk_is_token(first, CT_BRACE_OPEN)
- && chunk_is_token(second, CT_BRACE_CLOSE))
- {
- // Add or remove space inside '{}'.
- log_rule("sp_inside_braces_empty");
- return(options::sp_inside_braces_empty());
- }
-
- if ( ( chunk_is_token(first, CT_TYPE) // Issue #2428
- || chunk_is_token(first, CT_ANGLE_CLOSE))
- && chunk_is_token(second, CT_BRACE_OPEN)
- && get_chunk_parent_type(second) == CT_BRACED_INIT_LIST)
- {
- iarf_flags_t arg = iarf_flags_t{ options::sp_type_brace_init_lst() };
-
- if ( arg != IARF_IGNORE
- || get_chunk_parent_type(first) != CT_DECLTYPE)
- {
- // 'int{9}' vs. 'int {9}'
- // Add or remove space between type and open brace of an unnamed temporary
- // direct-list-initialization.
- log_rule("sp_type_brace_init_lst");
- return(arg);
- }
- }
-
- if ( ( chunk_is_token(first, CT_WORD) // Issue #2428
- || chunk_is_token(first, CT_SQUARE_CLOSE)
- || chunk_is_token(first, CT_TSQUARE))
- && chunk_is_token(second, CT_BRACE_OPEN)
- && get_chunk_parent_type(second) == CT_BRACED_INIT_LIST)
- {
- // Add or remove space between a variable and '{' for C++ uniform
- // initialization.
- auto arg = iarf_flags_t{ options::sp_word_brace_init_lst() };
-
- if ( arg != IARF_IGNORE
- || get_chunk_parent_type(first) != CT_DECLTYPE)
- {
- // 'a{9}' vs. 'a {9}'
- // Add or remove space between variable/word and open brace of an unnamed
- // temporary direct-list-initialization.
- log_rule("sp_word_brace_init_lst");
- return(arg);
- }
- }
-
- if (chunk_is_token(second, CT_BRACE_CLOSE))
- {
- if (get_chunk_parent_type(second) == CT_ENUM)
- {
- // Add or remove space inside enum '{' and '}'.
- log_rule("sp_inside_braces_enum");
- return(options::sp_inside_braces_enum());
- }
-
- if ( get_chunk_parent_type(second) == CT_STRUCT
- || get_chunk_parent_type(second) == CT_UNION)
- {
- // Fix for issue #1240 adding space in struct initializers
- chunk_t *tmp = chunk_get_prev_ncnnl(chunk_skip_to_match_rev(second));
-
- if (chunk_is_token(tmp, CT_ASSIGN))
- {
- // TODO: provide some test data to check this block
- log_rule("IGNORE");
- return(IARF_IGNORE);
- }
- // Add or remove space inside struct/union '{' and '}'.
- log_rule("sp_inside_braces_struct");
- return(options::sp_inside_braces_struct());
- }
- else if ( language_is_set(LANG_OC)
- && get_chunk_parent_type(second) == CT_OC_AT
- && options::sp_inside_braces_oc_dict() != IARF_IGNORE)
- {
- // (OC) Add or remove space inside Objective-C boxed dictionary '{' and '}'
- log_rule("sp_inside_braces_oc_dict");
- return(options::sp_inside_braces_oc_dict());
- }
-
- if (get_chunk_parent_type(second) == CT_BRACED_INIT_LIST)
- {
- // Add or remove space between nested braces, i.e. '{{' vs. '{ {'.
- // only to help the vim command }}}}
- if ( options::sp_brace_brace() != IARF_IGNORE
- && chunk_is_token(first, CT_BRACE_CLOSE)
- && get_chunk_parent_type(first) == CT_BRACED_INIT_LIST)
- {
- log_rule("sp_brace_brace");
- return(options::sp_brace_brace());
- }
-
- if (options::sp_before_type_brace_init_lst_close() != IARF_IGNORE)
- {
- // Add or remove space before close brace in an unnamed temporary
- // direct-list-initialization
- // if statement is a brace_init_lst
- // works only if sp_brace_brace is set to ignore.
- log_rule("sp_before_type_brace_init_lst_close");
- return(options::sp_before_type_brace_init_lst_close());
- }
-
- if (options::sp_inside_type_brace_init_lst() != IARF_IGNORE)
- {
- // Add or remove space inside an unnamed temporary direct-list-initialization.
- // if statement is a brace_init_lst
- // works only if sp_brace_brace is set to ignore
- // works only if sp_before_type_brace_init_lst_close is set to ignore.
- log_rule("sp_inside_type_brace_init_lst");
- return(options::sp_inside_type_brace_init_lst());
- }
- }
- // Add or remove space inside '{' and '}'.
- log_rule("sp_inside_braces");
- return(options::sp_inside_braces());
- }
-
- if (chunk_is_token(first, CT_D_CAST))
- {
- log_rule("REMOVE");
- return(IARF_REMOVE);
- }
-
- if ( chunk_is_token(first, CT_PP_DEFINED)
- && chunk_is_token(second, CT_PAREN_OPEN))
- {
- // Add or remove space between 'defined' and '(' in '#if defined (FOO)'.
- log_rule("sp_defined_paren");
- return(options::sp_defined_paren());
- }
-
- if (chunk_is_token(first, CT_THROW))
- {
- if (chunk_is_token(second, CT_PAREN_OPEN))
- {
- // Add or remove space between 'throw' and '(' in 'throw (something)'.
- log_rule("sp_throw_paren");
- return(options::sp_throw_paren());
- }
- // Add or remove space between 'throw' and anything other than '(' as in
- // '@throw [...];'.
- log_rule("sp_after_throw");
- return(options::sp_after_throw());
- }
-
- if ( chunk_is_token(first, CT_THIS)
- && chunk_is_token(second, CT_PAREN_OPEN))
- {
- // Add or remove space between 'this' and '(' in 'this (something)'.
- log_rule("sp_this_paren");
- return(options::sp_this_paren());
- }
-
- if ( chunk_is_token(first, CT_STATE)
- && chunk_is_token(second, CT_PAREN_OPEN))
- {
- log_rule("ADD");
- return(IARF_ADD);
- }
-
- if ( chunk_is_token(first, CT_DELEGATE)
- && chunk_is_token(second, CT_PAREN_OPEN))
- {
- log_rule("REMOVE");
- return(IARF_REMOVE);
- }
-
- if ( chunk_is_token(first, CT_MEMBER)
- || chunk_is_token(second, CT_MEMBER))
- {
- // Add or remove space around the '.' or '->' operators.
- log_rule("sp_member");
- return(options::sp_member());
- }
-
- if (chunk_is_token(first, CT_C99_MEMBER))
- {
- // always remove space(s) after then '.' of a C99-member
- log_rule("REMOVE");
- return(IARF_REMOVE);
- }
-
- if ( chunk_is_token(first, CT_SUPER)
- && chunk_is_token(second, CT_PAREN_OPEN))
- {
- // Add or remove space between 'super' and '(' in 'super (something)'.
- log_rule("sp_super_paren");
- return(options::sp_super_paren());
- }
-
- if ( chunk_is_token(first, CT_FPAREN_CLOSE)
- && chunk_is_token(second, CT_BRACE_OPEN))
- {
- if ( language_is_set(LANG_JAVA)
- && get_chunk_parent_type(second) == CT_DOUBLE_BRACE)
- {
- // (Java) Add or remove space between ')' and '{{' of double brace initializer.
- // only to help the vim command }}
- log_rule("sp_fparen_dbrace");
- return(options::sp_fparen_dbrace());
- }
-
- // To fix issue #1234
- // check for initializers and add space or ignore based on the option.
- if (get_chunk_parent_type(first) == CT_FUNC_CALL)
- {
- chunk_t *tmp = chunk_get_prev_type(first, get_chunk_parent_type(first), first->level);
- tmp = chunk_get_prev_ncnnl(tmp);
-
- if (chunk_is_token(tmp, CT_NEW))
- {
- // Add or remove space between ')' and '{' of s function call in object
- // initialization.
- // Overrides sp_fparen_brace.
- log_rule("sp_fparen_brace_initializer");
- return(options::sp_fparen_brace_initializer());
- }
- }
- // Add or remove space between ')' and '{' of function.
- log_rule("sp_fparen_brace");
- return(options::sp_fparen_brace());
- }
-
- if ( chunk_is_token(first, CT_D_TEMPLATE)
- || chunk_is_token(second, CT_D_TEMPLATE))
- {
- log_rule("REMOVE");
- return(IARF_REMOVE);
- }
-
- if ( chunk_is_token(first, CT_ELSE)
- && chunk_is_token(second, CT_BRACE_OPEN))
- {
- // Add or remove space between 'else' and '{' if on the same line.
- log_rule("sp_else_brace");
- return(options::sp_else_brace());
- }
-
- if ( chunk_is_token(first, CT_ELSE)
- && chunk_is_token(second, CT_ELSEIF))
- {
- log_rule("FORCE");
- return(IARF_FORCE);
- }
-
- if ( chunk_is_token(first, CT_FINALLY)
- && chunk_is_token(second, CT_BRACE_OPEN))
- {
- // Add or remove space between 'finally' and '{' if on the same line.
- log_rule("sp_finally_brace");
- return(options::sp_finally_brace());
- }
-
- if ( chunk_is_token(first, CT_TRY)
- && chunk_is_token(second, CT_BRACE_OPEN))
- {
- // Add or remove space between 'try' and '{' if on the same line.
- log_rule("sp_try_brace");
- return(options::sp_try_brace());
- }
-
- if ( chunk_is_token(first, CT_GETSET)
- && chunk_is_token(second, CT_BRACE_OPEN))
- {
- // Add or remove space between get/set and '{' if on the same line.
- log_rule("sp_getset_brace");
- return(options::sp_getset_brace());
- }
-
- if ( chunk_is_token(first, CT_WORD)
- && chunk_is_token(second, CT_BRACE_OPEN))
- {
- if (get_chunk_parent_type(first) == CT_NAMESPACE)
- {
- // Add or remove space between a variable and '{' for a namespace.
- log_rule("sp_word_brace_ns");
- return(options::sp_word_brace_ns());
- }
- }
-
- if ( language_is_set(LANG_D)
- && chunk_is_token(second, CT_PAREN_OPEN)
- && get_chunk_parent_type(second) == CT_INVARIANT)
- {
- // (D) Add or remove space between 'invariant' and '('.
- log_rule("sp_invariant_paren");
- return(options::sp_invariant_paren());
- }
-
- if ( chunk_is_token(first, CT_PAREN_CLOSE)
- && get_chunk_parent_type(first) != CT_DECLTYPE)
- {
- if ( language_is_set(LANG_D)
- && get_chunk_parent_type(first) == CT_INVARIANT)
- {
- // (D) Add or remove space after the ')' in 'invariant (C) c'.
- log_rule("sp_after_invariant_paren");
- return(options::sp_after_invariant_paren());
- }
-
- // "(struct foo) {...}" vs. "(struct foo){...}"
- if (chunk_is_token(second, CT_BRACE_OPEN))
- {
- // Add or remove space between ')' and '{'.
- log_rule("sp_paren_brace");
- return(options::sp_paren_brace());
- }
-
- // D-specific: "delegate(some thing) dg
- if (get_chunk_parent_type(first) == CT_DELEGATE)
- {
- log_rule("ADD");
- return(IARF_ADD);
- }
-
- // PAWN-specific: "state (condition) next"
- if (get_chunk_parent_type(first) == CT_STATE)
- {
- log_rule("ADD");
- return(IARF_ADD);
- }
-
- /* C++ new operator: new(bar) Foo */
- if (get_chunk_parent_type(first) == CT_NEW)
- {
- // Add or remove space between ')' and type in 'new(foo) BAR'.
- log_rule("sp_after_newop_paren");
- return(options::sp_after_newop_paren());
- }
- }
-
- /* "((" vs. "( (" or "))" vs. ") )" */
- // Issue #1342
- if ( ( chunk_is_str(first, "(", 1)
- && chunk_is_str(second, "(", 1))
- || ( chunk_is_str(first, ")", 1)
- && chunk_is_str(second, ")", 1)))
- {
- if (get_chunk_parent_type(second) == CT_FUNC_CALL_USER)
- {
- // Add or remove space between nested parentheses with user functions,
- // i.e. '((' vs. '( ('.
- log_rule("sp_func_call_user_paren_paren");
- return(options::sp_func_call_user_paren_paren());
- }
-
- if ( options::sp_sparen_paren() != IARF_IGNORE
- && ( chunk_is_token(first, CT_SPAREN_OPEN)
- || chunk_is_token(second, CT_SPAREN_CLOSE)))
- {
- // Add or remove space between nested parentheses with control
- // statements, i.e. 'if ((' vs. 'if ( ('. Issue #3209
- log_rule("sp_sparen_paren");
- return(options::sp_sparen_paren());
- }
- // Add or remove space between nested parentheses, i.e. '((' vs. ') )'.
- log_rule("sp_paren_paren");
- return(options::sp_paren_paren());
- }
-
- // "foo(...)" vs. "foo( ... )"
- if ( chunk_is_token(first, CT_FPAREN_OPEN)
- || chunk_is_token(second, CT_FPAREN_CLOSE))
- {
- if ( (get_chunk_parent_type(first) == CT_FUNC_CALL_USER)
- || ( (get_chunk_parent_type(second) == CT_FUNC_CALL_USER)
- && ( (chunk_is_token(first, CT_WORD))
- || (chunk_is_token(first, CT_SQUARE_CLOSE)))))
- {
- // Add or remove space inside user function '(' and ')'.
- log_rule("sp_func_call_user_inside_fparen");
- return(options::sp_func_call_user_inside_fparen());
- }
-
- if ( chunk_is_token(first, CT_FPAREN_OPEN)
- && chunk_is_token(second, CT_FPAREN_CLOSE))
- {
- // Add or remove space inside empty function '()'.
- log_rule("sp_inside_fparens");
- return(options::sp_inside_fparens());
- }
- // Add or remove space inside function '(' and ')'.
- log_rule("sp_inside_fparen");
- return(options::sp_inside_fparen());
- }
-
- // "foo(...)" vs. "foo( ... )"
- if ( chunk_is_token(first, CT_TPAREN_OPEN)
- || chunk_is_token(second, CT_TPAREN_CLOSE))
- {
- // Add or remove space inside the first parentheses in a function type, as in
- // 'void (*x)(...)'.
- log_rule("sp_inside_tparen");
- return(options::sp_inside_tparen());
- }
-
- if ( language_is_set(LANG_OC)
- && chunk_is_token(first, CT_PAREN_CLOSE))
- {
- if ( first->flags.test(PCF_OC_RTYPE) // == CT_OC_RTYPE)
- && ( get_chunk_parent_type(first) == CT_OC_MSG_DECL
- || get_chunk_parent_type(first) == CT_OC_MSG_SPEC))
- {
- // (OC) Add or remove space after the first (type) in message specs,
- // i.e. '-(int) f:(int)x;' vs. '-(int)f:(int)x;'.
- log_rule("sp_after_oc_return_type");
- return(options::sp_after_oc_return_type());
- }
-
- if ( get_chunk_parent_type(first) == CT_OC_MSG_SPEC
- || get_chunk_parent_type(first) == CT_OC_MSG_DECL)
- {
- // (OC) Add or remove space after the (type) in message specs,
- // i.e. '-(int)f: (int) x;' vs. '-(int)f: (int)x;'.
- log_rule("sp_after_oc_type");
- return(options::sp_after_oc_type());
- }
-
- if ( get_chunk_parent_type(first) == CT_OC_SEL
- && second->type != CT_SQUARE_CLOSE)
- {
- // (OC) Add or remove space between '@selector(x)' and the following word,
- // i.e. '@selector(foo) a:' vs. '@selector(foo)a:'.
- log_rule("sp_after_oc_at_sel_parens");
- return(options::sp_after_oc_at_sel_parens());
- }
- }
-
- if ( language_is_set(LANG_OC)
- && options::sp_inside_oc_at_sel_parens() != IARF_IGNORE)
- {
- if ( ( chunk_is_token(first, CT_PAREN_OPEN)
- && ( get_chunk_parent_type(first) == CT_OC_SEL
- || get_chunk_parent_type(first) == CT_OC_PROTOCOL))
- || ( chunk_is_token(second, CT_PAREN_CLOSE)
- && ( get_chunk_parent_type(second) == CT_OC_SEL
- || get_chunk_parent_type(second) == CT_OC_PROTOCOL)))
- {
- // (OC) Add or remove space inside '@selector' parentheses,
- // i.e. '@selector(foo)' vs. '@selector( foo )'.
- // Also applies to '@protocol()' constructs.
- log_rule("sp_inside_oc_at_sel_parens");
- return(options::sp_inside_oc_at_sel_parens());
- }
- }
-
- if ( chunk_is_token(second, CT_PAREN_OPEN)
- && ( chunk_is_token(first, CT_OC_SEL)
- || chunk_is_token(first, CT_OC_PROTOCOL)))
- {
- // (OC) Add or remove space between '@selector' and '(',
- // i.e. '@selector(msgName)' vs. '@selector (msgName)'.
- // Also applies to '@protocol()' constructs.
- log_rule("sp_after_oc_at_sel");
- return(options::sp_after_oc_at_sel());
- }
-
- /*
- * C cast: "(int)" vs. "( int )"
- * D cast: "cast(int)" vs. "cast( int )"
- * CPP cast: "int(a + 3)" vs. "int( a + 3 )"
- */
- if (chunk_is_token(first, CT_PAREN_OPEN))
- {
- if ( get_chunk_parent_type(first) == CT_C_CAST
- || get_chunk_parent_type(first) == CT_CPP_CAST
- || get_chunk_parent_type(first) == CT_D_CAST)
- {
- // Add or remove spaces inside cast parentheses.
- log_rule("sp_inside_paren_cast");
- return(options::sp_inside_paren_cast());
- }
-
- if (get_chunk_parent_type(first) == CT_NEW)
- {
- if (options::sp_inside_newop_paren_open() != IARF_IGNORE)
- {
- // Add or remove space after the open parenthesis of the new operator,
- // as in 'new(foo) BAR'.
- // Overrides sp_inside_newop_paren.
- log_rule("sp_inside_newop_paren_open");
- return(options::sp_inside_newop_paren_open());
- }
-
- if (options::sp_inside_newop_paren() != IARF_IGNORE)
- {
- // Add or remove space inside parenthesis of the new operator
- // as in 'new(foo) BAR'.
- log_rule("sp_inside_newop_paren");
- return(options::sp_inside_newop_paren());
- }
- }
- log_rule("sp_inside_paren");
- return(options::sp_inside_paren());
- }
-
- if (chunk_is_token(second, CT_PAREN_CLOSE))
- {
- if ( get_chunk_parent_type(second) == CT_C_CAST
- || get_chunk_parent_type(second) == CT_CPP_CAST
- || get_chunk_parent_type(second) == CT_D_CAST)
- {
- // Add or remove spaces inside cast parentheses.
- log_rule("sp_inside_paren_cast");
- return(options::sp_inside_paren_cast());
- }
-
- if (get_chunk_parent_type(second) == CT_NEW)
- {
- if (options::sp_inside_newop_paren_close() != IARF_IGNORE)
- {
- // Add or remove space before the close parenthesis of the new operator,
- // as in 'new(foo) BAR'.
- // Overrides sp_inside_newop_paren.
- log_rule("sp_inside_newop_paren_close");
- return(options::sp_inside_newop_paren_close());
- }
-
- if (options::sp_inside_newop_paren() != IARF_IGNORE)
- {
- // Add or remove space inside parenthesis of the new operator
- // as in 'new(foo) BAR'.
- log_rule("sp_inside_newop_paren");
- return(options::sp_inside_newop_paren());
- }
- }
- // Add or remove space inside '(' and ')'.
- log_rule("sp_inside_paren");
- return(options::sp_inside_paren());
- }
-
- if ( chunk_is_token(first, CT_SQUARE_OPEN)
- && chunk_is_token(second, CT_SQUARE_CLOSE))
- {
- // Add or remove space inside '[]'.
- log_rule("sp_inside_square_empty");
- return(options::sp_inside_square_empty());
- }
-
- // "[3]" vs. "[ 3 ]" or for objective-c "@[@3]" vs. "@[ @3 ]"
- if ( chunk_is_token(first, CT_SQUARE_OPEN)
- || chunk_is_token(second, CT_SQUARE_CLOSE))
- {
- if ( language_is_set(LANG_OC)
- && ( ( get_chunk_parent_type(first) == CT_OC_AT
- && chunk_is_token(first, CT_SQUARE_OPEN))
- || ( get_chunk_parent_type(second) == CT_OC_AT
- && chunk_is_token(second, CT_SQUARE_CLOSE)))
- && (options::sp_inside_square_oc_array() != IARF_IGNORE))
- {
- // (OC) Add or remove space inside a non-empty Objective-C boxed array '@[' and
- // ']'. If set to ignore, sp_inside_square is used.
- log_rule("sp_inside_square_oc_array");
- return(options::sp_inside_square_oc_array());
- }
- // Add or remove space inside a non-empty '[' and ']'.
- log_rule("sp_inside_square");
- return(options::sp_inside_square());
- }
-
- if ( chunk_is_token(first, CT_SQUARE_CLOSE)
- && chunk_is_token(second, CT_FPAREN_OPEN))
- {
- // Add or remove space between ']' and '(' when part of a function call.
- log_rule("sp_square_fparen");
- return(options::sp_square_fparen());
- }
-
- // "if(...)" vs. "if( ... )" etc.
- if (chunk_is_token(second, CT_SPAREN_CLOSE))
- {
- if ( get_chunk_parent_type(second) == CT_FOR
- && options::sp_inside_for_open() != IARF_IGNORE)
- {
- // Add or remove space before ')' of 'for' statements.
- // Overrides sp_inside_for.
- log_rule("sp_inside_for_close");
- return(options::sp_inside_for_close());
- }
- else if (options::sp_inside_sparen_open() != IARF_IGNORE)
- {
- // Add or remove space before ')' of other control statements.
- // Overrides sp_inside_sparen.
- log_rule("sp_inside_sparen_close");
- return(options::sp_inside_sparen_close());
- }
- }
-
- if (chunk_is_token(first, CT_SPAREN_OPEN))
- {
- if ( get_chunk_parent_type(first) == CT_FOR
- && options::sp_inside_for_open() != IARF_IGNORE)
- {
- // Add or remove space before ')' of 'for' statements.
- // Overrides sp_inside_for.
- log_rule("sp_inside_for_close");
- return(options::sp_inside_for_close());
- }
- else if (options::sp_inside_sparen_open() != IARF_IGNORE)
- {
- // Add or remove space after '(' of other control statements.
- // Overrides sp_inside_sparen.
- log_rule("sp_inside_sparen_open");
- return(options::sp_inside_sparen_open());
- }
- }
-
- if (chunk_is_token(first, CT_SPAREN_OPEN))
- {
- if (get_chunk_parent_type(first) == CT_FOR)
- {
- // Add or remove space inside '(' and ')' of 'for' statements.
- log_rule("sp_inside_for");
- return(options::sp_inside_for());
- }
- else
- {
- // Add or remove space inside '(' and ')' of other control statements.
- log_rule("sp_inside_sparen");
- return(options::sp_inside_sparen());
- }
- }
-
- if (chunk_is_token(second, CT_SPAREN_CLOSE))
- {
- if (get_chunk_parent_type(second) == CT_FOR)
- {
- // Add or remove space inside '(' and ')' of 'for' statements.
- log_rule("sp_inside_for");
- return(options::sp_inside_for());
- }
- else
- {
- // Add or remove space inside '(' and ')' of other control statements.
- log_rule("sp_inside_sparen");
- return(options::sp_inside_sparen());
- }
- }
-
- if (chunk_is_token(first, CT_CLASS_COLON))
- {
- //chunk_t *a = chunk_get_prev_type(first, CT_OC_INTF, first->level, scope_e::ALL);
- //chunk_t *b = chunk_get_prev_type(first, CT_OC_IMPL, first->level, scope_e::ALL);
- //bool B_a = a != nullptr;
- //bool B_b = b != nullptr;
- if ( get_chunk_parent_type(first) == CT_OC_CLASS
- && ( !chunk_get_prev_type(first, CT_OC_INTF, first->level, scope_e::ALL)
- && !chunk_get_prev_type(first, CT_OC_IMPL, first->level, scope_e::ALL)))
- {
- if (options::sp_after_oc_colon() != IARF_IGNORE)
- {
- // TODO: provide some test data to check this block
- // (OC) Add or remove space after the colon in message specs,
- // i.e. '-(int) f:(int) x;' vs. '-(int) f: (int) x;'.
- log_rule("sp_after_oc_colon");
- return(options::sp_after_oc_colon());
- }
- }
-
- if (options::sp_after_class_colon() != IARF_IGNORE)
- {
- // Add or remove space after class ':'.
- log_rule("sp_after_class_colon");
- return(options::sp_after_class_colon());
- }
- }
-
- if (chunk_is_token(second, CT_CLASS_COLON))
- {
- if ( language_is_set(LANG_OC)
- && get_chunk_parent_type(second) == CT_OC_CLASS
- && ( !chunk_get_prev_type(second, CT_OC_INTF, second->level, scope_e::ALL)
- && !chunk_get_prev_type(second, CT_OC_IMPL, second->level, scope_e::ALL)))
- {
- if ( get_chunk_parent_type(second) == CT_OC_CLASS
- && !chunk_get_prev_type(second, CT_OC_INTF, second->level, scope_e::ALL))
- {
- if (options::sp_before_oc_colon() != IARF_IGNORE)
- {
- // TODO: provide some test data to check this block
- // (OC) Add or remove space before the colon in message specs,
- // i.e. '-(int) f: (int) x;' vs. '-(int) f : (int) x;'.
- log_rule("sp_before_oc_colon");
- return(options::sp_before_oc_colon());
- }
- }
- }
-
- if (options::sp_before_class_colon() != IARF_IGNORE)
- {
- // Add or remove space before class ':'.
- log_rule("sp_before_class_colon");
- return(options::sp_before_class_colon());
- }
- }
-
- if (chunk_is_token(first, CT_CONSTR_COLON))
- {
- min_sp = options::indent_ctor_init_leading() - 1; // default indent is 1 space
- // Add or remove space after class constructor ':'.
- log_rule("sp_after_constr_colon");
- return(options::sp_after_constr_colon());
- }
-
- if (chunk_is_token(second, CT_CONSTR_COLON))
- {
- // Add or remove space before class constructor ':'.
- log_rule("sp_before_constr_colon");
- return(options::sp_before_constr_colon());
- }
-
- if (chunk_is_token(second, CT_CASE_COLON))
- {
- // Add or remove space before case ':'.
- log_rule("sp_before_case_colon");
- return(options::sp_before_case_colon());
- }
-
- if (chunk_is_token(first, CT_DOT))
- {
- log_rule("REMOVE");
- return(IARF_REMOVE);
- }
-
- if (chunk_is_token(second, CT_DOT))
- {
- log_rule("ADD");
- return(IARF_ADD);
- }
-
- if ( chunk_is_token(first, CT_NULLCOND)
- || chunk_is_token(second, CT_NULLCOND))
- {
- // TODO: provide some test data to check this block
- // LANG_CS null conditional operator
- // Add or remove space around the '.' or '->' operators.
- log_rule("sp_member");
- return(options::sp_member());
- }
-
- if ( chunk_is_token(first, CT_ARITH)
- || chunk_is_token(first, CT_SHIFT)
- || chunk_is_token(first, CT_CARET)
- || chunk_is_token(second, CT_ARITH)
- || chunk_is_token(second, CT_SHIFT)
- || chunk_is_token(second, CT_CARET))
- {
- // Add or remove space around arithmetic operators '+' and '-'.
- // Overrides sp_arith.
- if (options::sp_arith_additive() != IARF_IGNORE)
- {
- auto arith_char = ( chunk_is_token(first, CT_ARITH)
- || chunk_is_token(first, CT_SHIFT)
- || chunk_is_token(first, CT_CARET))
- ? first->str[0] : second->str[0];
-
- if ( arith_char == '+'
- || arith_char == '-')
- {
- log_rule("sp_arith_additive");
- return(options::sp_arith_additive());
- }
- }
- // Add or remove space around non-assignment symbolic operators ('+', '/', '%',
- // '<<', and so forth).
- log_rule("sp_arith");
- return(options::sp_arith());
- }
-
- if ( chunk_is_token(first, CT_BOOL)
- || chunk_is_token(second, CT_BOOL))
- {
- // Add or remove space around boolean operators '&&' and '||'.
- iarf_e arg = options::sp_bool();
-
- if ( (options::pos_bool() != TP_IGNORE)
- && first->orig_line != second->orig_line)
- {
- arg = arg | IARF_ADD;
- }
- log_rule("sp_bool");
- return(arg);
- }
-
- if ( chunk_is_token(first, CT_COMPARE)
- || chunk_is_token(second, CT_COMPARE))
- {
- // Add or remove space around compare operator '<', '>', '==', etc.
- log_rule("sp_compare");
- return(options::sp_compare());
- }
-
- if ( chunk_is_token(first, CT_PAREN_OPEN)
- && chunk_is_token(second, CT_PTR_TYPE))
- {
- // TODO: provide some test data to check this block
- log_rule("REMOVE");
- return(IARF_REMOVE);
- }
-
- if (chunk_is_token(first, CT_PTR_TYPE)) // see the tests cpp:34505-34508
- {
- if ( chunk_is_token(second, CT_FPAREN_OPEN)
- || chunk_is_token(second, CT_TPAREN_OPEN))
- {
- // Add or remove space after a pointer star '*', if followed by an open
- // parenthesis, as in 'void* (*)()'.
- log_rule("sp_ptr_star_paren"); // ptr_star 10
- return(options::sp_ptr_star_paren());
- }
- else if (chunk_is_token(second, CT_PTR_TYPE))
- {
- // Add or remove space between pointer stars '*'.
- // as in 'int ***a;'.
- log_rule("sp_between_ptr_star"); // ptr_star 9
- return(options::sp_between_ptr_star());
- }
- else if (chunk_is_token(second, CT_FUNC_VAR))
- {
- // Add or remove space between the pointer star '*' and the name of the
- // variable in a function pointer definition.
- log_rule("sp_ptr_star_func_var");
- return(options::sp_ptr_star_func_var());
- }
- else if ( get_chunk_parent_type(first) == CT_FUNC_DEF
- || get_chunk_parent_type(first) == CT_FUNC_PROTO
- || get_chunk_parent_type(first) == CT_FUNC_VAR)
- {
- if (token_is_within_trailing_return(first))
- {
- // Add or remove space after a pointer star '*', in the trailing return
- // a function prototype or function definition.
- log_rule("sp_after_ptr_star_trailing"); // ptr_star 3
- return(options::sp_after_ptr_star_trailing());
- }
- else
- {
- // Add or remove space after a pointer star '*', if followed by a function
- // prototype or function definition.
- log_rule("sp_after_ptr_star_func"); // ptr_star 2
- return(options::sp_after_ptr_star_func());
- }
- }
- else if (CharTable::IsKw1(second->str[0]))
- {
- chunk_t *prev = chunk_get_prev(first);
-
- if (chunk_is_token(prev, CT_IN))
- {
- // Add or remove space after the '*' (dereference) unary operator. This does
- // not affect the spacing after a '*' that is part of a type.
- log_rule("sp_deref");
- return(options::sp_deref());
- }
- else if ( get_chunk_parent_type(first) == CT_FUNC_VAR
- || get_chunk_parent_type(first) == CT_FUNC_TYPE)
- {
- // Add or remove space after pointer caret '^', if followed by a word.
- log_rule("sp_after_ptr_block_caret");
- return(options::sp_after_ptr_block_caret());
- }
- else if (chunk_is_token(second, CT_QUALIFIER))
- {
- // Add or remove space after pointer star '*', if followed by a qualifier.
- log_rule("sp_after_ptr_star_qualifier"); // ptr_star 4
- return(options::sp_after_ptr_star_qualifier());
- }
- // Add or remove space after pointer star '*', if followed by a word.
- log_rule("sp_after_ptr_star"); // ptr_star 1
- return(options::sp_after_ptr_star());
- }
- else if (chunk_is_token(second, CT_PAREN_OPEN))
- {
- // Add or remove space after pointer star '*', if followed by a word.
- log_rule("sp_after_ptr_star"); // ptr_star 1
- return(options::sp_after_ptr_star());
- }
-
- // must be placed at the end of the block
- // look back for '->' type is TRAILING_RET
- if (token_is_within_trailing_return(first))
- {
- log_rule("sp_after_ptr_star_trailing"); // ptr_star 3
- return(options::sp_after_ptr_star_trailing());
- }
- }
-
- if ( chunk_is_token(second, CT_PTR_TYPE)
- && first->type != CT_IN)
- {
- // look back for '->' type is TRAILING_RET
- if (token_is_within_trailing_return(second))
- {
- log_rule("sp_before_ptr_star_trailing"); // ptr_star 7
- return(options::sp_before_ptr_star_trailing());
- }
-
- if ( language_is_set(LANG_CS)
- && chunk_is_nullable(second))
- {
- min_sp = 0;
- log_rule("REMOVE");
- return(IARF_REMOVE);
- }
-
- // Add or remove space before a pointer star '*', if followed by a function
- // prototype or function definition.
- if (options::sp_before_ptr_star_func() != IARF_IGNORE)
- {
- // Find the next non-'*' chunk
- chunk_t *next = second;
-
- do
- {
- next = chunk_get_next(next);
- } while (chunk_is_token(next, CT_PTR_TYPE));
-
- if ( chunk_is_token(next, CT_FUNC_DEF)
- || chunk_is_token(next, CT_FUNC_PROTO))
- {
- log_rule("sp_before_ptr_star_func"); // ptr_star 6
- return(options::sp_before_ptr_star_func());
- }
- }
-
- // Add or remove space before pointer star '*' that isn't followed by a
- // variable name. If set to 'ignore', sp_before_ptr_star is used instead.
- if (options::sp_before_unnamed_ptr_star() != IARF_IGNORE)
- {
- chunk_t *next = chunk_get_next_nc(second);
-
- while (chunk_is_token(next, CT_PTR_TYPE))
- {
- next = chunk_get_next_nc(next);
- }
-
- if ( next != nullptr
- && next->type != CT_WORD)
- {
- log_rule("sp_before_unnamed_ptr_star"); // ptr_star 8
- return(options::sp_before_unnamed_ptr_star());
- }
- }
-
- // Add or remove space before pointer star '*'.
- if (options::sp_before_ptr_star() != IARF_IGNORE)
- {
- log_rule("sp_before_ptr_star"); // ptr_star 5
- return(options::sp_before_ptr_star());
- }
- }
-
- if (chunk_is_token(first, CT_OPERATOR))
- {
- // Add or remove space between 'operator' and operator sign.
- log_rule("sp_after_operator");
- return(options::sp_after_operator());
- }
-
- if ( chunk_is_token(second, CT_FUNC_PROTO)
- || chunk_is_token(second, CT_FUNC_DEF))
- {
- if ( first->type != CT_PTR_TYPE
- && first->type != CT_BYREF)
- {
- // Add or remove space between return type and function name. A
- // minimum of 1 is forced except for pointer/reference return types.
- log_rule("sp_type_func | ADD");
- return(options::sp_type_func() | IARF_ADD);
- }
- // Add or remove space between return type and function name. A
- // minimum of 1 is forced except for pointer/reference return types.
- log_rule("sp_type_func");
- return(options::sp_type_func());
- }
-
- // "(int)a" vs. "(int) a" or "cast(int)a" vs. "cast(int) a"
- if ( ( get_chunk_parent_type(first) == CT_C_CAST
- || get_chunk_parent_type(first) == CT_D_CAST)
- && chunk_is_token(first, CT_PAREN_CLOSE))
- {
- log_rule("sp_after_cast");
- return(options::sp_after_cast());
- }
-
- if (chunk_is_token(first, CT_BRACE_CLOSE))
- {
- if (chunk_is_token(second, CT_ELSE))
- {
- // Add or remove space between '}' and 'else' if on the same line.
- log_rule("sp_brace_else");
- return(options::sp_brace_else());
- }
-
- if ( language_is_set(LANG_OC)
- && chunk_is_token(second, CT_CATCH)
- && (options::sp_oc_brace_catch() != IARF_IGNORE))
- {
- // TODO: provide some test data to check this block
- // (OC) Add or remove space between '}' and '@catch' if on the same line.
- // If set to ignore, sp_brace_catch is used.
- log_rule("sp_oc_brace_catch");
- return(options::sp_oc_brace_catch());
- }
-
- if (chunk_is_token(second, CT_CATCH))
- {
- // TODO: provide some test data to check this block
- // Add or remove space between '}' and 'catch' if on the same line.
- log_rule("sp_brace_catch");
- return(options::sp_brace_catch());
- }
-
- if (chunk_is_token(second, CT_FINALLY))
- {
- // Add or remove space between '}' and 'finally' if on the same line.
- log_rule("sp_brace_finally");
- return(options::sp_brace_finally());
- }
- }
-
- if (chunk_is_token(first, CT_BRACE_OPEN))
- {
- if (get_chunk_parent_type(first) == CT_ENUM)
- {
- // Add or remove space inside enum '{' and '}'.
- log_rule("sp_inside_braces_enum");
- return(options::sp_inside_braces_enum());
- }
-
- if ( get_chunk_parent_type(first) == CT_STRUCT
- || get_chunk_parent_type(first) == CT_UNION)
- {
- // Fix for issue #1240 adding space in struct initializers
- chunk_t *tmp = chunk_get_prev_ncnnl(first);
-
- if (chunk_is_token(tmp, CT_ASSIGN))
- {
- // TODO: provide some test data to check this block
- log_rule("IGNORE");
- return(IARF_IGNORE);
- }
- // Add or remove space inside struct/union '{' and '}'.
- log_rule("sp_inside_braces_struct");
- return(options::sp_inside_braces_struct());
- }
- else if ( get_chunk_parent_type(first) == CT_OC_AT
- && options::sp_inside_braces_oc_dict() != IARF_IGNORE)
- {
- // (OC) Add or remove space inside Objective-C boxed dictionary '{' and '}'
- log_rule("sp_inside_braces_oc_dict");
- return(options::sp_inside_braces_oc_dict());
- }
-
- if (get_chunk_parent_type(first) == CT_BRACED_INIT_LIST)
- {
- // Add or remove space between nested braces, i.e. '{{' vs. '{ {'.
- // only to help the vim command }}}}
- if ( options::sp_brace_brace() != IARF_IGNORE
- && chunk_is_token(second, CT_BRACE_OPEN)
- && get_chunk_parent_type(second) == CT_BRACED_INIT_LIST)
- {
- log_rule("sp_brace_brace");
- return(options::sp_brace_brace());
- }
-
- if (options::sp_after_type_brace_init_lst_open() != IARF_IGNORE)
- {
- // Add or remove space after open brace in an unnamed temporary
- // direct-list-initialization
- // if statement is a brace_init_lst
- // works only if sp_brace_brace is set to ignore.
- log_rule("sp_after_type_brace_init_lst_open");
- return(options::sp_after_type_brace_init_lst_open());
- }
-
- if (options::sp_inside_type_brace_init_lst() != IARF_IGNORE)
- {
- // Add or remove space inside an unnamed temporary direct-list-initialization
- // if statement is a brace_init_lst
- // works only if sp_brace_brace is set to ignore
- // works only if sp_after_type_brace_init_lst_close is set to ignore.
- log_rule("sp_inside_type_brace_init_lst");
- return(options::sp_inside_type_brace_init_lst());
- }
- }
-
- if (!chunk_is_comment(second))
- {
- // Add or remove space inside '{' and '}'.
- log_rule("sp_inside_braces");
- return(options::sp_inside_braces());
- }
- }
-
- if ( chunk_is_token(first, CT_BRACE_CLOSE)
- && first->flags.test(PCF_IN_TYPEDEF)
- && ( get_chunk_parent_type(first) == CT_ENUM
- || get_chunk_parent_type(first) == CT_STRUCT
- || get_chunk_parent_type(first) == CT_UNION))
- {
- // Add or remove space between '}' and the name of a typedef on the same line.
- log_rule("sp_brace_typedef");
- return(options::sp_brace_typedef());
- }
-
- if ( language_is_set(LANG_D)
- && chunk_is_token(second, CT_PAREN_OPEN)
- && get_chunk_parent_type(second) == CT_TEMPLATE)
- {
- // (D) Add or remove space before the parenthesis in the D constructs
- // 'template Foo(' and 'class Foo('.
- log_rule("sp_before_template_paren");
- return(options::sp_before_template_paren());
- }
-
- // Issue #3080
- if ( chunk_is_token(first, CT_PAREN_CLOSE)
- && get_chunk_parent_type(first) == CT_DECLTYPE
- && ( chunk_is_token(second, CT_WORD)
- || chunk_is_token(second, CT_BRACE_OPEN)
- || chunk_is_token(second, CT_FUNC_CALL)))
- {
- iarf_e arg = options::sp_after_decltype();
- // Add or remove space between 'decltype(...)' and word, brace or function call.
- log_rule("sp_after_decltype");
- return(arg);
- }
-
- // Issue #3080
- if ( !language_is_set(LANG_D)
- && chunk_is_token(first, CT_PAREN_CLOSE)
- && chunk_is_token(second, CT_WORD))
- {
- // Add or remove space between type and word.
- log_rule("sp_after_type");
- return(options::sp_after_type());
- }
-
- if ( language_is_set(LANG_VALA)
- && chunk_is_token(second, CT_QUESTION))
- {
- // TODO: provide some test data to check this block
- // Issue #2090
- // (D) Add or remove space between a type and '?'.
- log_rule("sp_type_question");
- return(options::sp_type_question());
- }
-
- // see if the D template expression is used as a type
- if ( language_is_set(LANG_D)
- && chunk_is_token(first, CT_PAREN_CLOSE)
- && get_chunk_parent_type(first) == CT_D_TEMPLATE)
- {
- if (get_chunk_parent_type(second) == CT_USING_ALIAS)
- {
- log_rule("sp_after_type | ADD");
- return(options::sp_after_type() | IARF_ADD);
- }
-
- if (chunk_is_token(second, CT_WORD))
- {
- chunk_t *open_paren = chunk_skip_to_match_rev(first);
- chunk_t *type = chunk_get_prev(chunk_get_prev(open_paren));
-
- if (chunk_is_token(type, CT_TYPE))
- {
- log_rule("sp_after_type");
- return(options::sp_after_type());
- }
- }
- }
-
- if ( !chunk_is_token(second, CT_PTR_TYPE)
- && ( chunk_is_token(first, CT_QUALIFIER)
- || chunk_is_token(first, CT_TYPE)))
- {
- // Add or remove space between type and word. In cases where total removal of
- // whitespace would be a syntax error, a value of 'remove' is treated the same
- // as 'force'.
- //
- // This also affects some other instances of space following a type that are
- // not covered by other options; for example, between the return type and
- // parenthesis of a function type template argument, between the type and
- // parenthesis of an array parameter, or between 'decltype(...)' and the
- // following word.
- iarf_e arg = options::sp_after_type();
- log_rule("sp_after_type");
- return(arg);
- }
-
- if ( chunk_is_token(first, CT_PTR_TYPE)
- && chunk_is_token(second, CT_ELLIPSIS))
- {
- log_rule("sp_ptr_type_ellipsis");
- return(options::sp_ptr_type_ellipsis());
- }
-
- // If nothing claimed the PTR_TYPE, then return ignore
- if ( chunk_is_token(first, CT_PTR_TYPE)
- || chunk_is_token(second, CT_PTR_TYPE))
- {
- log_rule("IGNORE");
- return(IARF_IGNORE);
- }
-
- if (chunk_is_token(first, CT_NOT))
- {
- // Add or remove space after the '!' (not) unary operator.
- log_rule("sp_not");
- return(options::sp_not());
- }
-
- if (chunk_is_token(first, CT_INV))
- {
- // Add or remove space after the '~' (invert) unary operator.
- log_rule("sp_inv");
- return(options::sp_inv());
- }
-
- if (chunk_is_token(first, CT_ADDR))
- {
- // Add or remove space after the '&' (address-of) unary operator. This does not
- // affect the spacing after a '&' that is part of a type.
- log_rule("sp_addr");
- return(options::sp_addr());
- }
-
- if (chunk_is_token(first, CT_DEREF))
- {
- // Add or remove space after the '*' (dereference) unary operator. This does
- // not affect the spacing after a '*' that is part of a type.
- log_rule("sp_deref");
- return(options::sp_deref());
- }
-
- if ( chunk_is_token(first, CT_POS)
- || chunk_is_token(first, CT_NEG))
- {
- // Add or remove space after '+' or '-', as in 'x = -5' or 'y = +7'.
- log_rule("sp_sign");
- return(options::sp_sign());
- }
-
- if ( chunk_is_token(first, CT_INCDEC_BEFORE)
- || chunk_is_token(second, CT_INCDEC_AFTER))
- {
- // Add or remove space between '++' and '--' the word to which it is being
- // applied, as in '(--x)' or 'y++;'.
- log_rule("sp_incdec");
- return(options::sp_incdec());
- }
-
- if (chunk_is_token(second, CT_CS_SQ_COLON))
- {
- log_rule("REMOVE");
- return(IARF_REMOVE);
- }
-
- if (chunk_is_token(first, CT_CS_SQ_COLON))
- {
- log_rule("FORCE");
- return(IARF_FORCE);
- }
-
- if ( language_is_set(LANG_OC)
- && chunk_is_token(first, CT_OC_SCOPE))
- {
- // (OC) Add or remove space after the scope '+' or '-', as in '-(void) foo;'
- // or '+(int) bar;'.
- log_rule("sp_after_oc_scope");
- return(options::sp_after_oc_scope());
- }
-
- if ( language_is_set(LANG_OC)
- && chunk_is_token(first, CT_OC_DICT_COLON))
- {
- // (OC) Add or remove space after the colon in immutable dictionary expression
- // 'NSDictionary *test = @{@"foo" :@"bar"};'.
- log_rule("sp_after_oc_dict_colon");
- return(options::sp_after_oc_dict_colon());
- }
-
- if ( language_is_set(LANG_OC)
- && chunk_is_token(second, CT_OC_DICT_COLON))
- {
- // (OC) Add or remove space before the colon in immutable dictionary expression
- // 'NSDictionary *test = @{@"foo" :@"bar"};'.
- log_rule("sp_before_oc_dict_colon");
- return(options::sp_before_oc_dict_colon());
- }
-
- if ( language_is_set(LANG_OC)
- && chunk_is_token(first, CT_OC_COLON))
- {
- if (first->flags.test(PCF_IN_OC_MSG))
- {
- // (OC) Add or remove space after the colon in message specs,
- // i.e. '[object setValue:1];' vs. '[object setValue: 1];'.
- log_rule("sp_after_send_oc_colon");
- return(options::sp_after_send_oc_colon());
- }
- // (OC) Add or remove space after the colon in message specs,
- // i.e. '-(int) f:(int) x;' vs. '-(int) f: (int) x;'.
- log_rule("sp_after_oc_colon");
- return(options::sp_after_oc_colon());
- }
-
- if ( language_is_set(LANG_OC)
- && chunk_is_token(second, CT_OC_COLON))
- {
- if ( first->flags.test(PCF_IN_OC_MSG)
- && ( chunk_is_token(first, CT_OC_MSG_FUNC)
- || chunk_is_token(first, CT_OC_MSG_NAME)))
- {
- // (OC) Add or remove space before the colon in message specs,
- // i.e. '[object setValue:1];' vs. '[object setValue :1];'.
- log_rule("sp_before_send_oc_colon");
- return(options::sp_before_send_oc_colon());
- }
- // (OC) Add or remove space before the colon in message specs,
- // i.e. '-(int) f: (int) x;' vs. '-(int) f : (int) x;'.
- log_rule("sp_before_oc_colon");
- return(options::sp_before_oc_colon());
- }
-
- if ( chunk_is_token(second, CT_COMMENT)
- && get_chunk_parent_type(second) == CT_COMMENT_EMBED)
- {
- // Add or remove space before an embedded comment.
- // Number of spaces before an embedded comment.
- log_rule("sp_before_emb_cmt");
- min_sp = options::sp_num_before_emb_cmt();
- return(options::sp_before_emb_cmt());
- }
-
- if (chunk_is_token(first, CT_COMMENT))
- {
- // Add or remove space after an embedded comment.
- // Number of spaces after an embedded comment.
- log_rule("sp_after_emb_cmt");
- min_sp = options::sp_num_after_emb_cmt();
- return(options::sp_after_emb_cmt());
- }
-
- if ( chunk_is_token(first, CT_NEW)
- && chunk_is_token(second, CT_PAREN_OPEN))
- {
- // c# new Constraint, c++ new operator
- // Add or remove space between 'new' and '(' in 'new()'.
- log_rule("sp_between_new_paren");
- return(options::sp_between_new_paren());
- }
-
- if ( chunk_is_token(first, CT_NEW)
- || chunk_is_token(first, CT_DELETE)
- || ( chunk_is_token(first, CT_TSQUARE)
- && get_chunk_parent_type(first) == CT_DELETE))
- {
- // Add or remove space after 'new', 'delete' and 'delete[]'.
- log_rule("sp_after_new");
- return(options::sp_after_new());
- }
-
- if ( language_is_set(LANG_JAVA)
- && chunk_is_token(first, CT_ANNOTATION)
- && chunk_is_paren_open(second))
- {
- // (Java) Add or remove space between an annotation and the open parenthesis.
- log_rule("sp_annotation_paren");
- return(options::sp_annotation_paren());
- }
-
- if ( language_is_set(LANG_OC)
- && chunk_is_token(first, CT_OC_PROPERTY))
- {
- // (OC) Add or remove space after '@property'.
- log_rule("sp_after_oc_property");
- return(options::sp_after_oc_property());
- }
-
- if ( language_is_set(LANG_D)
- && chunk_is_token(first, CT_EXTERN)
- && chunk_is_token(second, CT_PAREN_OPEN))
- {
- // (D) Add or remove space between 'extern' and '(' as in 'extern (C)'.
- log_rule("sp_extern_paren");
- return(options::sp_extern_paren());
- }
-
- if ( chunk_is_token(second, CT_TYPE)
- && ( ( chunk_is_token(first, CT_STRING)
- && get_chunk_parent_type(first) == CT_EXTERN)
- || ( chunk_is_token(first, CT_FPAREN_CLOSE)
- && get_chunk_parent_type(first) == CT_ATTRIBUTE)))
- {
- log_rule("FORCE");
- return(IARF_FORCE); /* TODO: make this configurable? */
- }
-
- if (chunk_is_token(first, CT_NOEXCEPT))
- {
- // Add or remove space after 'noexcept'.
- log_rule("sp_after_noexcept");
- return(options::sp_after_noexcept());
- }
-
- // Issue #2138
- if (chunk_is_token(first, CT_FPAREN_CLOSE))
- {
- if (chunk_is_token(second, CT_QUALIFIER))
- {
- // Add or remove space between ')' and a qualifier such as 'const'.
- log_rule("sp_paren_qualifier");
- return(options::sp_paren_qualifier());
- }
- else if (chunk_is_token(second, CT_NOEXCEPT))
- {
- // Add or remove space between ')' and 'noexcept'.
- log_rule("sp_paren_noexcept");
- return(options::sp_paren_noexcept());
- }
- }
-
- // Issue #2098
- if ( chunk_is_token(first, CT_PP_PRAGMA)
- && chunk_is_token(second, CT_PREPROC_BODY))
- {
- log_rule("REMOVE");
- return(IARF_REMOVE);
- }
-
- // Issue #1733
- if ( chunk_is_token(first, CT_OPERATOR_VAL)
- && chunk_is_token(second, CT_TYPE))
- {
- log_rule("IGNORE");
- return(IARF_IGNORE);
- }
-
- // Issue #995
- if ( chunk_is_token(first, CT_DO)
- && chunk_is_token(second, CT_BRACE_OPEN))
- {
- // Add or remove space between 'do' and '{'.
- log_rule("sp_do_brace_open");
- return(options::sp_do_brace_open());
- }
-
- // Issue #995
- if ( chunk_is_token(first, CT_BRACE_CLOSE)
- && chunk_is_token(second, CT_WHILE_OF_DO))
- {
- // Add or remove space between '}' and 'while.
- log_rule("sp_brace_close_while");
- return(options::sp_brace_close_while());
- }
-
- // TODO: have a look to Issue #2186, why NEWLINE?
- // Issue #2524
- if ( chunk_is_token(first, CT_NEWLINE)
- && chunk_is_token(second, CT_BRACE_OPEN))
- {
- log_rule("IGNORE");
- return(IARF_IGNORE);
- }
-
- // =============================================================
- // categorie 1
- // this table lists out all combos where a space should NOT be present
- // CT_UNKNOWN is a wildcard.
- for (auto it : no_space_table)
- {
- if ( ( it.first == CT_UNKNOWN
- || it.first == first->type)
- && ( it.second == CT_UNKNOWN
- || it.second == second->type))
- {
- log_rule("REMOVE from no_space_table");
- return(IARF_REMOVE);
- }
- }
-
- // =============================================================
- // categorie 2
- // this table lists out all combos where a space MUST be present
- for (auto it : add_space_table)
- {
- if ( it.first == first->type
- && it.second == second->type)
- {
- // TODO: if necessary create a new option
- log_rule("ADD from add_space_table");
- return(IARF_ADD);
- }
- }
-
- // Issue #2386
- if ( chunk_is_token(first, CT_FORM_FEED)
- || chunk_is_token(second, CT_FORM_FEED))
- {
- log_rule("IGNORE");
- return(IARF_IGNORE);
- }
-
- // TODO: if necessary create a new option
- if ( chunk_is_token(first, CT_MACRO_FUNC_CALL)
- && chunk_is_token(second, CT_FPAREN_OPEN))
- {
- log_rule("IGNORE");
- return(IARF_IGNORE);
- }
-
- if ( chunk_is_token(first, CT_CASE_ELLIPSIS)
- && chunk_is_token(second, CT_NUMBER))
- {
- // Add or remove space after the variadic '...' when preceded by a
- // non-punctuator.
- // The value REMOVE will be overriden with FORCE
- if (options::sp_after_ellipsis() == IARF_REMOVE)
- {
- log_rule("sp_after_ellipsis/FORCE");
- return(IARF_FORCE);
- }
- else
- {
- log_rule("sp_after_ellipsis");
- return(options::sp_after_ellipsis());
- }
- }
-
- if ( chunk_is_token(first, CT_NUMBER)
- && chunk_is_token(second, CT_CASE_ELLIPSIS))
- {
- // Add or remove space before the variadic '...' when preceded by a
- // non-punctuator.
- // The value REMOVE will be overriden with FORCE
- if (options::sp_before_ellipsis() == IARF_REMOVE)
- {
- log_rule("sp_before_ellipsis/FORCE");
- return(IARF_FORCE);
- }
- else
- {
- log_rule("sp_before_ellipsis");
- return(options::sp_before_ellipsis());
- }
- }
- // =============================================================
- // categorie 3
- // these lines are only useful for debugging uncrustify itself
- LOG_FMT(LSPACE, "\n\n%s(%d): WARNING: unrecognize do_space:\n",
- __func__, __LINE__);
- LOG_FMT(LSPACE, " first->orig_line is %zu, first->orig_col is %zu, first->text() '%s', first->type is %s\n",
- first->orig_line, first->orig_col, first->text(), get_token_name(first->type));
- LOG_FMT(LSPACE, " second->orig_line is %zu, second->orig_col is %zu, second->text() '%s', second->type is %s\n",
- second->orig_line, second->orig_col, second->text(), get_token_name(second->type));
- LOG_FMT(LSPACE, " Please make a call at https://github.com/uncrustify/uncrustify/issues/new\n");
- LOG_FMT(LSPACE, " or merge the line:\n");
- LOG_FMT(LSPACE, " {%s, %s},\n",
- get_token_name(first->type), get_token_name(second->type));
- LOG_FMT(LSPACE, " in the file <Path_to_uncrustify>/src/add_space_table.h\n");
-
- log_rule("ADD as default value");
- return(IARF_ADD);
-} // do_space
-
-
-static iarf_e ensure_force_space(chunk_t *first, chunk_t *second, iarf_e av)
-{
- if (first->flags.test(PCF_FORCE_SPACE))
- {
- LOG_FMT(LSPACE, "%s(%d): <force between '%s' and '%s'>",
- __func__, __LINE__, first->text(), second->text());
- return(av | IARF_ADD);
- }
- return(av);
-}
-
-
-static iarf_e do_space_ensured(chunk_t *first, chunk_t *second, int &min_sp)
-{
- iarf_e aa = ensure_force_space(first, second, do_space(first, second, min_sp));
-
- return(aa);
-}
-
-
-void space_text(void)
-{
- LOG_FUNC_ENTRY();
-
- chunk_t *pc = chunk_get_head();
-
- if (pc == nullptr)
- {
- return;
- }
- chunk_t *next;
- size_t prev_column;
- size_t column = pc->column;
-
- while (pc != nullptr)
- {
- if (chunk_is_token(pc, CT_NEWLINE))
- {
- LOG_FMT(LSPACE, "%s(%d): orig_line is %zu, orig_col is %zu, <Newline>, nl is %zu\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->nl_count);
- }
- else
- {
- char copy[1000];
- LOG_FMT(LSPACE, "%s(%d): orig_line is %zu, orig_col is %zu, '%s' type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->elided_text(copy), get_token_name(pc->type));
- }
-
- if ( (options::use_options_overriding_for_qt_macros())
- && ( (strcmp(pc->text(), "SIGNAL") == 0)
- || (strcmp(pc->text(), "SLOT") == 0)))
- {
- LOG_FMT(LSPACE, "%s(%d): orig_col is %zu, type is %s SIGNAL/SLOT found\n",
- __func__, __LINE__, pc->orig_line, get_token_name(pc->type));
- chunk_flags_set(pc, PCF_IN_QT_MACRO); // flag the chunk for a second processing
-
- // save the values
- save_set_options_for_QT(pc->level);
- }
-
- // Bug # 637
- // If true, vbrace tokens are dropped to the previous token and skipped.
- if (options::sp_skip_vbrace_tokens())
- {
- next = chunk_get_next(pc);
-
- while ( chunk_is_blank(next)
- && !chunk_is_newline(next)
- && ( chunk_is_token(next, CT_VBRACE_OPEN)
- || chunk_is_token(next, CT_VBRACE_CLOSE)))
- {
- LOG_FMT(LSPACE, "%s(%d): orig_line is %zu, orig_col is %zu, Skip %s (%zu+%zu)\n",
- __func__, __LINE__, next->orig_line, next->orig_col, get_token_name(next->type),
- pc->column, pc->str.size());
- next->column = pc->column + pc->str.size();
- next = chunk_get_next(next);
- }
- }
- else
- {
- next = pc->next;
- }
-
- if (!next)
- {
- break;
- }
-
- // Issue # 481
- // Whether to balance spaces inside nested parentheses.
- if ( QT_SIGNAL_SLOT_found
- && options::sp_balance_nested_parens())
- {
- chunk_t *nn = next->next; // Issue #2734
-
- if ( nn != nullptr
- && chunk_is_token(nn, CT_SPACE))
- {
- chunk_del(nn); // remove the space
- }
- }
-
- /*
- * If the current chunk contains a newline, do not change the column
- * of the next item
- */
- if ( chunk_is_token(pc, CT_NEWLINE)
- || chunk_is_token(pc, CT_NL_CONT)
- || chunk_is_token(pc, CT_COMMENT_MULTI))
- {
- column = next->column;
- }
- else
- {
- // Set to the minimum allowed column
- if (pc->nl_count == 0)
- {
- column += pc->len();
- }
- else
- {
- column = pc->orig_col_end;
- }
- prev_column = column;
-
- /*
- * Apply a general safety check
- * If the two chunks combined will tokenize differently, then we
- * must force a space.
- * Two chunks -- "()" and "[]" will always tokenize differently.
- * They are always safe to not have a space after them.
- */
- chunk_flags_clr(pc, PCF_FORCE_SPACE);
-
- if ( (pc->len() > 0)
- && !chunk_is_str(pc, "[]", 2)
- && !chunk_is_str(pc, "{{", 2)
- && !chunk_is_str(pc, "}}", 2)
- && !chunk_is_str(pc, "()", 2)
- && !pc->str.startswith("@\""))
- {
- // Find the next non-empty chunk on this line
- chunk_t *tmp = next;
-
- // TODO: better use chunk_search here
- while ( tmp != nullptr
- && (tmp->len() == 0)
- && !chunk_is_newline(tmp))
- {
- tmp = chunk_get_next(tmp);
- }
-
- if ( tmp != nullptr
- && tmp->len() > 0)
- {
- bool kw1 = CharTable::IsKw2(pc->str[pc->len() - 1]);
- bool kw2 = CharTable::IsKw1(next->str[0]);
-
- if ( kw1
- && kw2)
- {
- // back-to-back words need a space
- LOG_FMT(LSPACE, "%s(%d): back-to-back words need a space: pc->text() '%s', next->text() '%s'\n",
- __func__, __LINE__, pc->text(), next->text());
- chunk_flags_set(pc, PCF_FORCE_SPACE);
- }
- // TODO: what is the meaning of 4
- else if ( !kw1
- && !kw2
- && (pc->len() < 4)
- && (next->len() < 4))
- {
- // We aren't dealing with keywords. concat and try punctuators
- char buf[9];
- memcpy(buf, pc->text(), pc->len());
- memcpy(buf + pc->len(), next->text(), next->len());
- buf[pc->len() + next->len()] = 0;
-
- const chunk_tag_t *ct;
- ct = find_punctuator(buf, cpd.lang_flags);
-
- if ( ct != nullptr
- && (strlen(ct->tag) != pc->len()))
- {
- // punctuator parsed to a different size..
-
- /*
- * C++11 allows '>>' to mean '> >' in templates:
- * some_func<vector<string>>();
- */
- // (C++11) Permit removal of the space between '>>' in 'foo<bar<int> >'. Note
- // that sp_angle_shift cannot remove the space without this option.
- if ( ( ( language_is_set(LANG_CPP)
- && options::sp_permit_cpp11_shift())
- || (language_is_set(LANG_JAVA | LANG_CS | LANG_VALA | LANG_OC)))
- && chunk_is_token(pc, CT_ANGLE_CLOSE)
- && chunk_is_token(next, CT_ANGLE_CLOSE))
- {
- // allow '>' and '>' to become '>>'
- }
- else if (strcmp(ct->tag, "[]") == 0)
- {
- // this is OK
- }
- else
- {
- LOG_FMT(LSPACE, "%s(%d): : pc->text() is %s, next->text() is %s\n",
- __func__, __LINE__, pc->text(), next->text());
- chunk_flags_set(pc, PCF_FORCE_SPACE);
- }
- }
- }
- }
- }
- int min_sp;
- LOG_FMT(LSPACE, "%s(%d): orig_line is %zu, orig_col is %zu, pc-text() '%s', type is %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text(), get_token_name(pc->type));
- iarf_e av = do_space_ensured(pc, next, min_sp);
- min_sp = max(1, min_sp);
-
- switch (av)
- {
- case IARF_FORCE:
- column += min_sp; // add exactly the specified number of spaces
- break;
-
- case IARF_ADD:
- {
- int delta = min_sp;
-
- if ( next->orig_col >= pc->orig_col_end
- && pc->orig_col_end != 0)
- {
- // Keep the same relative spacing, minimum 1
- delta = next->orig_col - pc->orig_col_end;
-
- if (delta < min_sp)
- {
- delta = min_sp;
- }
- }
- column += delta;
- break;
- }
-
- case IARF_REMOVE:
- // the symbols will be back-to-back "a+3"
- break;
-
- case IARF_IGNORE:
-
- // Keep the same relative spacing, if possible
- if ( next->orig_col >= pc->orig_col_end
- && pc->orig_col_end != 0)
- {
- column += next->orig_col - pc->orig_col_end;
- }
- else
- {
- // preserve the position if virtual brace
- // Issue #1854
- if (chunk_is_token(pc, CT_VBRACE_OPEN))
- {
- column = next->orig_col;
- }
- }
- break;
-
- default:
- // If we got here, something is wrong...
- break;
- } // switch
-
- if ( chunk_is_comment(next)
- && chunk_is_newline(chunk_get_next(next))
- && column < next->orig_col)
- {
- /*
- * do some comment adjustments if sp_before_tr_cmt and sp_endif_cmt
- * did not apply.
- */
- // Add or remove space between #else or #endif and a trailing comment.
- if ( ( options::sp_before_tr_cmt() == IARF_IGNORE
- || get_chunk_parent_type(next) != CT_COMMENT_END)
- && ( options::sp_endif_cmt() == IARF_IGNORE
- || ( pc->type != CT_PP_ELSE
- && pc->type != CT_PP_ENDIF)))
- {
- if (options::indent_relative_single_line_comments())
- {
- // Try to keep relative spacing between tokens
- LOG_FMT(LSPACE, "%s(%d): <relative adj>", __func__, __LINE__);
- LOG_FMT(LSPACE, "%s(%d): pc is '%s', pc->orig_col is %zu, next->orig_col is %zu, pc->orig_col_end is %zu\n",
- __func__, __LINE__, pc->text(),
- pc->orig_col, next->orig_col, pc->orig_col_end);
- column = pc->column + (next->orig_col - pc->orig_col_end);
- }
- else
- {
- /*
- * If there was a space, we need to force one, otherwise
- * try to keep the comment in the same column.
- */
- size_t col_min = pc->column + pc->len() + ((next->orig_prev_sp > 0) ? 1 : 0);
- column = next->orig_col;
-
- if (column < col_min)
- {
- column = col_min;
- }
- LOG_FMT(LSPACE, "%s(%d): <relative set>", __func__, __LINE__);
- }
- }
- }
- next->column = column;
-
- LOG_FMT(LSPACE, " rule = %s @ %zu => %zu\n",
- (av == IARF_IGNORE) ? "IGNORE" :
- (av == IARF_ADD) ? "ADD" :
- (av == IARF_REMOVE) ? "REMOVE" : "FORCE",
- column - prev_column, next->column);
-
- if (restoreValues) // guy 2015-09-22
- {
- restore_options_for_QT();
- }
- }
- pc = next;
-
- if (QT_SIGNAL_SLOT_found)
- {
- // flag the chunk for a second processing
- chunk_flags_set(pc, PCF_IN_QT_MACRO);
- }
- }
-} // space_text
-
-
-void space_text_balance_nested_parens(void)
-{
- LOG_FUNC_ENTRY();
-
- chunk_t *first = chunk_get_head();
-
- while (first != nullptr)
- {
- chunk_t *next = chunk_get_next(first);
-
- if (next == nullptr)
- {
- break;
- }
-
- // if there are two successive opening parenthesis
- if ( chunk_is_str(first, "(", 1)
- && chunk_is_str(next, "(", 1))
- {
- // insert a space between them
- space_add_after(first, 1);
-
- // test after the closing parens Issue #1703
- chunk_t *closing = chunk_get_next_type(first, (c_token_t)(first->type + 1), first->level);
-
- if (closing->orig_col == closing->prev->orig_col_end)
- {
- space_add_after(closing->prev, 1);
- }
- }
- else if ( chunk_is_str(first, ")", 1)
- && chunk_is_str(next, ")", 1))
- {
- // insert a space between the two closing parens
- space_add_after(first, 1);
-
- // test after the opening parens Issue #1703
- chunk_t *opening = chunk_get_prev_type(next, (c_token_t)(next->type - 1), next->level);
-
- if (opening->orig_col_end == opening->next->orig_col)
- {
- space_add_after(opening, 1);
- }
- }
- first = next;
- }
-} // space_text_balance_nested_parens
-
-
-size_t space_needed(chunk_t *first, chunk_t *second)
-{
- LOG_FUNC_ENTRY();
- LOG_FMT(LSPACE, "%s(%d)\n", __func__, __LINE__);
-
- int min_sp;
-
- switch (do_space_ensured(first, second, min_sp))
- {
- case IARF_ADD:
- case IARF_FORCE:
- return(max(1, min_sp));
-
- case IARF_REMOVE:
- return(0);
-
- case IARF_IGNORE:
- default:
- return(second->orig_col > (first->orig_col + first->len()));
- }
-}
-
-
-size_t space_col_align(chunk_t *first, chunk_t *second)
-{
- LOG_FUNC_ENTRY();
-
- LOG_FMT(LSPACE, "%s(%d): first->orig_line is %zu, orig_col is %zu, [%s/%s], text() '%s' <==>\n",
- __func__, __LINE__, first->orig_line, first->orig_col,
- get_token_name(first->type), get_token_name(get_chunk_parent_type(first)),
- first->text());
- LOG_FMT(LSPACE, "%s(%d): second->orig_line is %zu, orig_col is %zu [%s/%s], text() '%s',",
- __func__, __LINE__, second->orig_line, second->orig_col,
- get_token_name(second->type), get_token_name(get_chunk_parent_type(second)),
- second->text());
- log_func_stack_inline(LSPACE);
-
- int min_sp;
- iarf_e av = do_space_ensured(first, second, min_sp);
-
- LOG_FMT(LSPACE, "%s(%d): av is %s\n", __func__, __LINE__, to_string(av));
- size_t coldiff;
-
- if (first->nl_count)
- {
- LOG_FMT(LSPACE, "%s(%d): nl_count is %zu, orig_col_end is %zu\n", __func__, __LINE__, first->nl_count, first->orig_col_end);
- coldiff = first->orig_col_end - 1;
- }
- else
- {
- LOG_FMT(LSPACE, "%s(%d): len is %zu\n", __func__, __LINE__, first->len());
- coldiff = first->len();
- }
- LOG_FMT(LSPACE, "%s(%d): => coldiff is %zu\n", __func__, __LINE__, coldiff);
-
- LOG_FMT(LSPACE, "%s(%d): => av is %s\n", __func__, __LINE__,
- (av == IARF_IGNORE) ? "IGNORE" :
- (av == IARF_ADD) ? "ADD" :
- (av == IARF_REMOVE) ? "REMOVE" : "FORCE");
-
- switch (av)
- {
- case IARF_ADD:
- case IARF_FORCE:
- coldiff++;
- break;
-
- case IARF_REMOVE:
- break;
-
- case IARF_IGNORE: // Issue #2064
- LOG_FMT(LSPACE, "%s(%d): => first->orig_line is %zu\n", __func__, __LINE__, first->orig_line);
- LOG_FMT(LSPACE, "%s(%d): => second->orig_line is %zu\n", __func__, __LINE__, second->orig_line);
- LOG_FMT(LSPACE, "%s(%d): => first->text() is '%s'\n", __func__, __LINE__, first->text());
- LOG_FMT(LSPACE, "%s(%d): => second->text() is '%s'\n", __func__, __LINE__, second->text());
- LOG_FMT(LSPACE, "%s(%d): => first->orig_col is %zu\n", __func__, __LINE__, first->orig_col);
- LOG_FMT(LSPACE, "%s(%d): => second->orig_col is %zu\n", __func__, __LINE__, second->orig_col);
- LOG_FMT(LSPACE, "%s(%d): => first->len() is %zu\n", __func__, __LINE__, first->len());
-
- if ( first->orig_line == second->orig_line
- && second->orig_col > (first->orig_col + first->len()))
- {
- coldiff++;
- }
- break;
-
- default:
- // If we got here, something is wrong...
- break;
- }
- LOG_FMT(LSPACE, "%s(%d): => coldiff is %zu\n", __func__, __LINE__, coldiff);
- return(coldiff);
-} // space_col_align
-
-
-void space_add_after(chunk_t *pc, size_t count)
-{
- LOG_FUNC_ENTRY();
-
- chunk_t *next = chunk_get_next(pc);
-
- // don't add at the end of the file or before a newline
- if ( next == nullptr
- || chunk_is_newline(next))
- {
- return;
- }
-
- // Limit to 16 spaces
- if (count > 16)
- {
- count = 16;
- }
-
- // Two CT_SPACE in a row -- use the max of the two
- if (chunk_is_token(next, CT_SPACE))
- {
- if (next->len() < count)
- {
- while (next->len() < count)
- {
- next->str.append(' ');
- }
- }
- return;
- }
- chunk_t sp;
-
- set_chunk_type(&sp, CT_SPACE);
- sp.flags = pc->flags & PCF_COPY_FLAGS;
- sp.str = " "; // 16 spaces
- sp.str.resize(count);
- sp.level = pc->level;
- sp.brace_level = pc->brace_level;
- sp.pp_level = pc->pp_level;
- sp.column = pc->column + pc->len();
- sp.orig_line = pc->orig_line;
- sp.orig_col = pc->orig_col;
-
- chunk_add_after(&sp, pc);
-} // space_add_after
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/space.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/space.h
deleted file mode 100644
index e856f135..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/space.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/**
- * @file space.h
- * prototypes for space.cpp
- *
- * @author Ben Gardner
- * @license GPL v2+
- */
-#ifndef SPACE_H_INCLUDED
-#define SPACE_H_INCLUDED
-
-#include "uncrustify_types.h"
-
-
-/**
- * Marches through the whole file and checks to see how many spaces should be
- * between two chunks
- */
-void space_text(void);
-
-
-//! Marches through the whole file and adds spaces around nested parenthesis
-void space_text_balance_nested_parens(void);
-
-
-//! Determines if a space is required between two chunks
-size_t space_needed(chunk_t *first, chunk_t *second);
-
-
-/**
- * Calculates the column difference between two chunks.
- * The rules are bent a bit here, as IARF_IGNORE and IARF_ADD become IARF_FORCE.
- * So the column difference is either first->len or first->len + 1.
- *
- * @param first The first chunk
- * @param second The second chunk
- *
- * @return the column difference between the two chunks
- */
-size_t space_col_align(chunk_t *first, chunk_t *second);
-
-
-void space_add_after(chunk_t *pc, size_t count);
-
-
-#endif /* SPACE_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/token_enum.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/token_enum.h
deleted file mode 100644
index 2ffc6b23..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/token_enum.h
+++ /dev/null
@@ -1,399 +0,0 @@
-/**
- * @file token_enum.h
- * List of the different tokens used in the program.
- *
- * @author Ben Gardner
- * @author Guy Maurel since version 0.62 for uncrustify4Qt
- * October 2015
- * @license GPL v2+
- */
-
-#ifndef TOKEN_ENUM_H_INCLUDED
-#define TOKEN_ENUM_H_INCLUDED
-
-/**
- * abbreviations used:
- * CT = chunk type
- */
-
-
-/**
- * This is an enum of all the different chunks/tokens/elements that the
- * program can work with. The parser and scanner assigns one of these to
- * each chunk/token.
- */
-enum c_token_t
-{
- CT_NONE,
- CT_PARENT_NOT_SET,
- CT_EOF,
- CT_UNKNOWN,
-
- CT_JUNK, // junk collected when parsing is disabled
-
- CT_WHITESPACE, // whitespace without any newlines
- CT_SPACE, // a fixed number of spaces to support weird spacing rules
- CT_NEWLINE, // CRA, one or more newlines
- CT_NL_CONT, // CRA, backslash-newline
- CT_FORM_FEED, // character 12
- CT_COMMENT_CPP, // C++ comment (always followed by CT_NEWLINE)
- CT_COMMENT, // C-comment, single line
- CT_COMMENT_MULTI, // Multi-lined comment
- CT_COMMENT_EMBED, // comment parent_type: non-newline before and after
- CT_COMMENT_START, // comment parent_type: newline before
- CT_COMMENT_END, // comment parent_type: newline after
- CT_COMMENT_WHOLE, // comment parent_type: newline before and after
- CT_COMMENT_ENDIF, // C-comment, single line, after ENDIF
-
- CT_IGNORED, // a chunk of ignored text
-
- CT_WORD, // variable, type, function name, etc
- CT_NUMBER,
- CT_NUMBER_FP,
- CT_STRING, // quoted string "hi" or 'a' or <in> for include
- CT_STRING_MULTI, // quoted string with embedded newline
- CT_IF, // built-in keywords
- CT_ELSE,
- CT_ELSEIF,
- CT_CONSTEXPR, // only when preceded by 'if' (otherwise CT_QUALIFIER)
- CT_FOR,
- CT_WHILE,
- CT_WHILE_OF_DO,
- CT_SWITCH,
- CT_CASE,
- CT_DO,
- CT_SYNCHRONIZED,
- CT_VOLATILE,
- CT_TYPEDEF,
- CT_STRUCT,
- CT_ENUM,
- CT_ENUM_CLASS,
- CT_SIZEOF,
- CT_DECLTYPE,
- CT_RETURN,
- CT_BREAK,
- CT_UNION,
- CT_GOTO,
- CT_CONTINUE,
- CT_C_CAST, // C-style cast: "(int)5.6"
- CT_CPP_CAST, // C++-style cast: "int(5.6)"
- CT_D_CAST, // D-style cast: "cast(type)" and "const(type)"
- CT_TYPE_CAST, // static_cast<type>(exp)
- CT_TYPENAME, // typename type
- CT_TEMPLATE, // template<...>
- CT_PARAMETER_PACK, // template<typename ... ARGS>
- CT_WHERE_SPEC, // 'where' : used in C# generic constraint
-
- CT_ASSIGN, // =, +=, /=, etc
- CT_ASSIGN_NL, // Assign followed by a newline - fake item for indenting
- CT_SASSIGN, // 'and_eq'
-
- CT_ASSIGN_DEFAULT_ARG, // Default argument such as
- // Foo( int Foo = 5 );
- CT_ASSIGN_FUNC_PROTO, // function prototype modifier such as
- // void* operator new(std::size_t) = delete;
- // Foo( const Foo & ) = default;
- // Foo( const Foo & ) = 0;
-
- CT_COMPARE, // ==, !=, <=, >=
- CT_SCOMPARE, // compare op that is a string 'is', 'neq'
- CT_BOOL, // || or &&
- CT_SBOOL, // or, and
- CT_ARITH, // +, -, /, etc
- CT_SARITH, // 'not', 'xor'
- CT_SHIFT, // <<, >>
- CT_CARET, // ^
- CT_DEREF, // * dereference
- CT_INCDEC_BEFORE, // ++a or --a
- CT_INCDEC_AFTER, // a++ or a--
- CT_MEMBER, // . or ->
- CT_DC_MEMBER, // ::
- CT_C99_MEMBER, // . in structure stuff
- CT_INV, // ~
- CT_DESTRUCTOR, // ~
- CT_NOT, // !
- CT_D_TEMPLATE, // ! as in Foo!(A)
- CT_ADDR, // &
- CT_NEG, // - as in -1
- CT_POS, // + as in +1
- CT_STAR, // * : raw char to be changed
- CT_PLUS, // + : raw char to be changed
- CT_MINUS, // - : raw char to be changed
- CT_AMP, // & : raw char to be changed
- CT_BYREF, // & in function def/proto params
-
- // CT_BITWISE_AND, // & // is a CT_ARITH
- // CT_BITWISE_OR, // | // is a CT_ARITH
- // CT_BITWISE_EXCLUSIVE_OR,// ^ // is a CT_ARITH
- // CT_BITWISE_NOT, // ~ // is a CT_ARITH
-
- CT_POUND, // #
- CT_PREPROC, // # at the start of a line
- CT_PREPROC_INDENT, // # at the start of a line that gets indented: #region
- CT_PREPROC_BODY, // body of every preproc EXCEPT #define
- CT_PP, // ##
- CT_ELLIPSIS, // ...
- CT_RANGE, // ..
- CT_NULLCOND, // ?.
-
- CT_SEMICOLON,
- CT_VSEMICOLON, // virtual semicolon for PAWN
- CT_COLON,
- CT_ASM_COLON,
- CT_CASE_COLON,
- CT_CASE_ELLIPSIS, // '...' in `case 1 ... 5`:
- CT_CLASS_COLON, // colon after a class def
- CT_CONSTR_COLON, // colon after a constructor
- CT_D_ARRAY_COLON, // D named array initializer colon
- CT_COND_COLON, // conditional colon in 'b ? t : f'
- CT_WHERE_COLON, // C# where-constraint colon (after the type)
- CT_QUESTION,
- CT_COMMA,
-
- CT_ASM,
- CT_ATTRIBUTE,
- CT_AUTORELEASEPOOL, // OC: Autorelease Pool Blocks, used by iOS
- CT_OC_AVAILABLE,
- CT_OC_AVAILABLE_VALUE,
- CT_CATCH,
- CT_WHEN,
- CT_WHERE, // C# where clause
- CT_CLASS,
- CT_DELETE,
- CT_EXPORT,
- CT_FRIEND,
- CT_NAMESPACE,
- CT_PACKAGE,
- CT_NEW, // may turn into CT_PBRACED if followed by a '('
- CT_OPERATOR,
- CT_OPERATOR_VAL,
- CT_ASSIGN_OPERATOR, // the value after 'operator' such as:
- // Foo &operator= ( const Foo & );
- CT_ACCESS,
- CT_ACCESS_COLON,
- CT_THROW,
- CT_NOEXCEPT,
- CT_TRY,
- CT_BRACED_INIT_LIST,
- CT_USING,
- CT_USING_STMT, // using (xxx) ...
- CT_USING_ALIAS, // using identifier attr(optional) = type-id
- CT_D_WITH, // D: parenthetis+braced
- CT_D_MODULE,
- CT_SUPER,
- CT_DELEGATE,
- CT_BODY,
- CT_DEBUG,
- CT_DEBUGGER,
- CT_INVARIANT,
- CT_UNITTEST,
- CT_UNSAFE,
- CT_FINALLY,
- CT_FIXED, // C# fixed
- CT_IMPORT,
- CT_D_SCOPE,
- CT_D_SCOPE_IF,
- CT_LAZY,
- CT_D_MACRO,
- CT_D_VERSION, // turns into CT_D_VERSION_IF if not followed by '='
- CT_D_VERSION_IF, // version(x) { }
-
- // note for parenthetis/brace/square pairs: close MUST be open + 1
- CT_PAREN_OPEN,
- CT_PAREN_CLOSE,
-
- CT_ANGLE_OPEN, // template<T*>
- CT_ANGLE_CLOSE,
-
- CT_SPAREN_OPEN, // 'special' parenthetis after if/for/switch/while/synchronized/catch
- CT_SPAREN_CLOSE,
-
- CT_PPAREN_OPEN, // 'protect' parenthetis to protect a type such as (*int)
- CT_PPAREN_CLOSE, // used at align_func_param
-
- CT_FPAREN_OPEN, // 'function' parenthetis after fcn/macro fcn
- CT_FPAREN_CLOSE,
-
- CT_LPAREN_OPEN, // lambda-declarator parenthetis
- CT_LPAREN_CLOSE,
-
- CT_TPAREN_OPEN, // 'type' parenthetis used in function types
- CT_TPAREN_CLOSE,
-
- CT_BRACE_OPEN, // {...}
- CT_BRACE_CLOSE,
-
- CT_VBRACE_OPEN, // virtual brace, i.e. brace inserted by uncrustify
- CT_VBRACE_CLOSE,
-
- CT_SQUARE_OPEN, // [...]
- CT_SQUARE_CLOSE,
-
- CT_TSQUARE, // special case of []
-
- CT_MACRO_OPEN, // stuff specified via custom-pair
- CT_MACRO_CLOSE,
- CT_MACRO_ELSE,
-
- // aggregate types
- CT_LABEL, // a non-case label
- CT_LABEL_COLON, // the colon for a label
- CT_FUNCTION, // function - unspecified, call mark_function()
- CT_FUNC_CALL, // function call
- CT_FUNC_CALL_USER, // function call (special user)
- CT_FUNC_DEF, // function definition/implementation
- CT_FUNC_TYPE, // function type - foo in "typedef void (*foo)(void)"
- CT_FUNC_VAR, // foo and parent type of first parens in "void (*foo)(void)"
- CT_FUNC_PROTO, // function prototype
- CT_FUNC_START, // global DC member for functions(void ::func())
- CT_FUNC_CLASS_DEF, // ctor or dtor for a class
- CT_FUNC_CLASS_PROTO, // ctor or dtor for a class
- CT_FUNC_CTOR_VAR, // variable or class initialization
- CT_FUNC_WRAP, // macro that wraps the function name
- CT_PROTO_WRAP, // macro: "RETVAL PROTO_WRAP( fcn_name, (PARAMS))". Parens for PARAMS are optional.
- CT_MACRO_FUNC, // function-like macro
- CT_MACRO_FUNC_CALL, // function-like macro call
- CT_MACRO, // a macro def
- CT_QUALIFIER, // static, const, etc
- CT_EXTERN, // extern
- CT_DECLSPEC, // __declspec
- CT_ALIGN, // paren'd qualifier: align(4) struct a { }
- CT_TYPE,
- CT_PTR_TYPE, // a '*' as part of a type
- CT_TYPE_WRAP, // macro that wraps a type name
- CT_CPP_LAMBDA, // parent for '[=](...){...}'
- CT_CPP_LAMBDA_RET, // '->' in '[=](...) -> type {...}'
- CT_EXECUTION_CONTEXT, // Keyword for use in lambda statement: [] CT_EXECUTION_CONTEXT ()->{}
- CT_TRAILING_RET, // '->' in 'auto fname(...) -> type;'
- // '->' in 'auto fname(...) const -> type;'
- CT_BIT_COLON, // a ':' in a variable declaration
-
- CT_OC_DYNAMIC,
- CT_OC_END, // ObjC: @end
- CT_OC_IMPL, // ObjC: @implementation
- CT_OC_INTF, // ObjC: @interface
- CT_OC_PROTOCOL, // ObjC: @protocol or @protocol()
- CT_OC_PROTO_LIST, // ObjC: protocol list < > (parent token only)
- CT_OC_GENERIC_SPEC, // ObjC: specification of generic < >
- CT_OC_PROPERTY, // ObjC: @property
- CT_OC_CLASS, // ObjC: the name after @interface or @implementation
- CT_OC_CLASS_EXT, // ObjC: a pair of empty parens after the class name in a @interface or @implementation
- CT_OC_CATEGORY, // ObjC: the category name in parens after the class name in a @interface or @implementation
- CT_OC_SCOPE, // ObjC: the '-' or '+' in '-(void) func: (int) i;'
- CT_OC_MSG, // ObjC: parent type to '[', ']' and ';' in '[class func : param name: param];'
- CT_OC_MSG_CLASS, // ObjC: 'class' in '[class func : param name: param];' (see also PCF_IN_OC_MSG)
- CT_OC_MSG_FUNC, // ObjC: 'func' in '[class func : param name: param];' (see also PCF_IN_OC_MSG)
- CT_OC_MSG_NAME, // ObjC: 'name' in '[class func : param name: param];' (see also PCF_IN_OC_MSG)
- CT_OC_MSG_SPEC, // ObjC: msg spec '-(void) func: (int) i;'
- CT_OC_MSG_DECL, // ObjC: msg decl '-(void) func: (int) i { }'
- CT_OC_RTYPE, // ObjC: marks parens of the return type after scope
- CT_OC_ATYPE, // ObjC: marks parens of the arg type after scope
- CT_OC_COLON, // ObjC: the colon in a msg spec
- CT_OC_DICT_COLON, // ObjC: colon in dictionary constant: "KEY: VALUE"
- CT_OC_SEL, // ObjC: @selector
- CT_OC_SEL_NAME, // ObjC: selector name
- CT_OC_BLOCK, // ObjC: block parent type.
- CT_OC_BLOCK_ARG, // ObjC: block arguments parent type.
- CT_OC_BLOCK_TYPE, // ObjC: block declaration parent type, e.g. mainly the '(^block_t)' in 'void (^block_t)(int arg);'
- CT_OC_BLOCK_EXPR, // ObjC: block expression with arg: '^(int arg) { arg++; };' and without (called a block literal): '^{ ... };'
- CT_OC_BLOCK_CARET, // ObjC: block pointer caret: '^'
- CT_OC_AT, // ObjC: boxed constants using '@'
- CT_OC_PROPERTY_ATTR, // ObjC: property attribute (strong, weak, readonly, etc...)
-
- // start PP types
- CT_PP_DEFINE, // #define
- CT_PP_DEFINED, // #if defined
- CT_PP_INCLUDE, // #include
- CT_PP_IF, // #if, #ifdef, or #ifndef
- CT_PP_ELSE, // #else or #elif
- CT_PP_ENDIF, // #endif
- CT_PP_ASSERT,
- CT_PP_EMIT,
- CT_PP_ENDINPUT,
- CT_PP_ERROR,
- CT_PP_FILE,
- CT_PP_LINE,
- CT_PP_SECTION,
- CT_PP_ASM, // start of assembly code section
- CT_PP_UNDEF,
- CT_PP_PROPERTY,
-
- CT_PP_BODYCHUNK, // everything after this gets put in CT_PREPROC_BODY
-
- CT_PP_PRAGMA, // pragma's should not be altered
- CT_PP_REGION, // C# #region
- CT_PP_ENDREGION, // C# #endregion
- CT_PP_REGION_INDENT, // Dummy token for indenting a C# #region
- CT_PP_IF_INDENT, // Dummy token for indenting a #if stuff
- CT_PP_IGNORE, // Dummy token for ignoring a certain preprocessor directive (do not do any processing)
- CT_PP_OTHER, // #line, #error, #pragma, etc
- // end PP types
-
- // PAWN stuff
- CT_CHAR,
- CT_DEFINED,
- CT_FORWARD,
- CT_NATIVE,
- CT_STATE,
- CT_STOCK,
- CT_TAGOF,
- CT_DOT,
- CT_TAG,
- CT_TAG_COLON,
-
- // C-sharp
- CT_LOCK, // lock/unlock
- CT_AS,
- CT_IN, // "foreach (T c in x)" or "foo(in char c)" or "in { ..."
- CT_BRACED, // simple braced items: try {}
- CT_THIS, // may turn into CT_PBRACED if followed by a '('
- CT_BASE, // C# thingy
- CT_DEFAULT, // may be changed into CT_CASE
- CT_GETSET, // must be followed by CT_BRACE_OPEN or reverts to CT_WORD
- CT_GETSET_EMPTY, // get/set/add/remove followed by a semicolon
- CT_CONCAT, // The '~' between strings
- CT_CS_SQ_STMT, // '[assembly: xxx]' or '[Attribute()]' or '[Help()]', etc
- CT_CS_SQ_COLON, // the colon in one of those [] thingys
- CT_CS_PROPERTY, // word or ']' followed by '{'
-
- // Embedded SQL - always terminated with a semicolon
- CT_SQL_EXEC, // the 'EXEC' in 'EXEC SQL ...'
- CT_SQL_BEGIN, // the 'BEGINN' in 'EXEC SQL BEGIN ...'
- CT_SQL_END, // the 'END' in 'EXEC SQL END ...'
- CT_SQL_WORD, // CT_WORDs in the 'EXEC SQL' statement
- CT_SQL_ASSIGN, // :=
-
- // Vala stuff
- CT_CONSTRUCT, // braced "construct { }" or qualifier "(construct int x)"
- CT_LAMBDA,
-
- // Java
- CT_ASSERT, // assert EXP1 [ : EXP2 ] ;
- CT_ANNOTATION, // @interface or @something(...)
- CT_FOR_COLON, // colon in "for ( TYPE var: EXPR ) { ... }"
- CT_DOUBLE_BRACE, // parent for double brace
-
- /* Clang */
- CT_CNG_HASINC, // Clang: __has_include()
- CT_CNG_HASINCN, // Clang: __has_include_next()
-
- // extensions for Qt macros
- CT_Q_EMIT, // guy 2015-10-16
- CT_Q_FOREACH, // guy 2015-09-23
- CT_Q_FOREVER, // guy 2015-10-18
- CT_Q_GADGET, // guy 2016-05-04
- CT_Q_OBJECT, // guy 2015-10-16
-
- // Machine Modes
- CT_MODE, // guy 2016-03-11
- CT_DI, // guy 2016-03-11
- CT_HI, // guy 2016-03-11
- CT_QI, // guy 2016-03-11
- CT_SI, // guy 2016-03-11
- CT_NOTHROW, // guy 2016-03-11
- CT_WORD_, // guy 2016-03-11
-
- CT_TOKEN_COUNT_ // NOTE: Keep this the last entry because it's used as a counter.
-};
-
-#endif /* TOKEN_ENUM_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/tokenize.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/tokenize.cpp
deleted file mode 100644
index f412b6f1..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/tokenize.cpp
+++ /dev/null
@@ -1,2863 +0,0 @@
-/**
- * @file tokenize.cpp
- * This file breaks up the text stream into tokens or chunks.
- *
- * Each routine needs to set pc.len and pc.type.
- *
- * @author Ben Gardner
- * @license GPL v2+
- */
-
-#include "tokenize.h"
-
-#include "keywords.h"
-#include "prototypes.h"
-#include "punctuators.h"
-#include "unc_ctype.h"
-
-#include <regex>
-#include <stack>
-
-
-#define LE_COUNT(x) cpd.le_counts[static_cast<size_t>(LE_ ## x)]
-
-constexpr static auto LCURRENT = LTOK;
-
-using namespace std;
-using namespace uncrustify;
-
-
-struct tok_info
-{
- tok_info()
- : last_ch(0)
- , idx(0)
- , row(1)
- , col(1)
- {
- }
-
- size_t last_ch;
- size_t idx;
- size_t row;
- size_t col;
-};
-
-
-struct tok_ctx
-{
- tok_ctx(const deque<int> &d)
- : data(d)
- {
- }
-
-
- //! save before trying to parse something that may fail
- void save()
- {
- save(s);
- }
-
-
- void save(tok_info &info)
- {
- info = c;
- }
-
-
- //! restore previous saved state
- void restore()
- {
- restore(s);
- }
-
-
- void restore(const tok_info &info)
- {
- c = info;
- }
-
-
- bool more()
- {
- return(c.idx < data.size());
- }
-
-
- size_t peek()
- {
- return(more() ? data[c.idx] : 0);
- }
-
-
- size_t peek(size_t idx)
- {
- idx += c.idx;
- return((idx < data.size()) ? data[idx] : 0);
- }
-
-
- size_t get()
- {
- if (more())
- {
- size_t ch = data[c.idx++];
-
- switch (ch)
- {
- case '\t':
- log_rule_B("input_tab_size");
- c.col = calc_next_tab_column(c.col, options::input_tab_size());
- break;
-
- case '\n':
-
- if (c.last_ch != '\r')
- {
- c.row++;
- c.col = 1;
- }
- break;
-
- case '\r':
- c.row++;
- c.col = 1;
- break;
-
- default:
- c.col++;
- break;
- }
- c.last_ch = ch;
- return(ch);
- }
- return(0);
- }
-
-
- bool expect(size_t ch)
- {
- if (peek() == ch)
- {
- get();
- return(true);
- }
- return(false);
- }
-
-
- const deque<int> &data;
- tok_info c; //! current
- tok_info s; //! saved
-};
-
-
-/**
- * Count the number of characters in a quoted string.
- * The next bit of text starts with a quote char " or ' or <.
- * Count the number of characters until the matching character.
- *
- * @param pc The structure to update, str is an input.
- *
- * @return Whether a string was parsed
- */
-static bool parse_string(tok_ctx &ctx, chunk_t &pc, size_t quote_idx, bool allow_escape);
-
-
-/**
- * Literal string, ends with single "
- * Two "" don't end the string.
- *
- * @param pc The structure to update, str is an input.
- *
- * @return Whether a string was parsed
- */
-static bool parse_cs_string(tok_ctx &ctx, chunk_t &pc);
-
-
-/**
- * VALA verbatim string, ends with three quotes (""")
- *
- * @param pc The structure to update, str is an input.
- */
-static void parse_verbatim_string(tok_ctx &ctx, chunk_t &pc);
-
-
-static bool tag_compare(const deque<int> &d, size_t a_idx, size_t b_idx, size_t len);
-
-
-/**
- * Parses a C++0x 'R' string. R"( xxx )" R"tag( )tag" u8R"(x)" uR"(x)"
- * Newlines may be in the string.
- *
- * @param pc structure to update, str is an input.
- */
-static bool parse_cr_string(tok_ctx &ctx, chunk_t &pc, size_t q_idx);
-
-
-/**
- * Count the number of whitespace characters.
- *
- * @param pc The structure to update, str is an input.
- *
- * @return Whether whitespace was parsed
- */
-static bool parse_whitespace(tok_ctx &ctx, chunk_t &pc);
-
-
-/**
- * Called when we hit a backslash.
- * If there is nothing but whitespace until the newline, then this is a
- * backslash newline
- *
- * @param pc structure to update, str is an input
- */
-static bool parse_bs_newline(tok_ctx &ctx, chunk_t &pc);
-
-
-/**
- * Parses any number of tab or space chars followed by a newline.
- * Does not change pc.len if a newline isn't found.
- * This is not the same as parse_whitespace() because it only consumes until
- * a single newline is encountered.
- */
-static bool parse_newline(tok_ctx &ctx);
-
-
-/**
- * PAWN #define is different than C/C++.
- * #define PATTERN REPLACEMENT_TEXT
- * The PATTERN may not contain a space or '[' or ']'.
- * A generic whitespace check should be good enough.
- * Do not change the pattern.
- *
- * @param pc structure to update, str is an input
- */
-static void parse_pawn_pattern(tok_ctx &ctx, chunk_t &pc, c_token_t tt);
-
-
-static bool parse_ignored(tok_ctx &ctx, chunk_t &pc);
-
-
-/**
- * Skips the next bit of whatever and returns the type of block.
- *
- * pc.str is the input text.
- * pc.len in the output length.
- * pc.type is the output type
- * pc.column is output column
- *
- * @param pc The structure to update, str is an input.
- * @param prev_pc The previous structure
- *
- * @return true/false - whether anything was parsed
- */
-static bool parse_next(tok_ctx &ctx, chunk_t &pc, const chunk_t *prev_pc);
-
-
-/**
- * Parses all legal D string constants.
- *
- * Quoted strings:
- * r"Wysiwyg" # WYSIWYG string
- * x"hexstring" # Hexadecimal array
- * `Wysiwyg` # WYSIWYG string
- * 'char' # single character
- * "reg_string" # regular string
- *
- * Non-quoted strings:
- * \x12 # 1-byte hex constant
- * \u1234 # 2-byte hex constant
- * \U12345678 # 4-byte hex constant
- * \123 # octal constant
- * \&amp; # named entity
- * \n # single character
- *
- * @param pc The structure to update, str is an input.
- *
- * @return Whether a string was parsed
- */
-static bool d_parse_string(tok_ctx &ctx, chunk_t &pc);
-
-
-/**
- * Figure of the length of the comment at text.
- * The next bit of text starts with a '/', so it might be a comment.
- * There are three types of comments:
- * - C comments that start with '/ *' and end with '* /'
- * - C++ comments that start with //
- * - D nestable comments '/+' '+/'
- *
- * @param pc The structure to update, str is an input.
- *
- * @return Whether a comment was parsed
- */
-static bool parse_comment(tok_ctx &ctx, chunk_t &pc);
-
-
-/**
- * Figure of the length of the code placeholder at text, if present.
- * This is only for Xcode which sometimes inserts temporary code placeholder chunks, which in plaintext <#look like this#>.
- *
- * @param pc The structure to update, str is an input.
- *
- * @return Whether a placeholder was parsed.
- */
-static bool parse_code_placeholder(tok_ctx &ctx, chunk_t &pc);
-
-
-/**
- * Parse any attached suffix, which may be a user-defined literal suffix.
- * If for a string, explicitly exclude common format and scan specifiers, ie,
- * PRIx32 and SCNx64.
- */
-static void parse_suffix(tok_ctx &ctx, chunk_t &pc, bool forstring);
-
-
-//! check if a symbol holds a boolean value
-static bool is_bin(int ch);
-static bool is_bin_(int ch);
-
-
-//! check if a symbol holds a octal value
-static bool is_oct(int ch);
-static bool is_oct_(int ch);
-
-
-//! check if a symbol holds a decimal value;
-static bool is_dec(int ch);
-static bool is_dec_(int ch);
-
-
-//! check if a symbol holds a hexadecimal value
-static bool is_hex(int ch);
-static bool is_hex_(int ch);
-
-
-/**
- * Count the number of characters in the number.
- * The next bit of text starts with a number (0-9 or '.'), so it is a number.
- * Count the number of characters in the number.
- *
- * This should cover all number formats for all languages.
- * Note that this is not a strict parser. It will happily parse numbers in
- * an invalid format.
- *
- * For example, only D allows underscores in the numbers, but they are
- * allowed in all formats.
- *
- * @param[in,out] pc The structure to update, str is an input.
- *
- * @return Whether a number was parsed
- */
-static bool parse_number(tok_ctx &ctx, chunk_t &pc);
-
-
-static bool d_parse_string(tok_ctx &ctx, chunk_t &pc)
-{
- size_t ch = ctx.peek();
-
- if ( ch == '"'
- || ch == '\'')
- {
- return(parse_string(ctx, pc, 0, true));
- }
-
- if (ch == '`')
- {
- return(parse_string(ctx, pc, 0, false));
- }
-
- if ( ( ch == 'r'
- || ch == 'x')
- && ctx.peek(1) == '"')
- {
- return(parse_string(ctx, pc, 1, false));
- }
-
- if (ch != '\\')
- {
- return(false);
- }
- ctx.save();
- int cnt;
-
- pc.str.clear();
-
- while (ctx.peek() == '\\')
- {
- pc.str.append(ctx.get());
-
- // Check for end of file
- switch (ctx.peek())
- {
- case 'x': // \x HexDigit HexDigit
- cnt = 3;
-
- while (cnt--)
- {
- pc.str.append(ctx.get());
- }
- break;
-
- case 'u': // \u HexDigit (x4)
- cnt = 5;
-
- while (cnt--)
- {
- pc.str.append(ctx.get());
- }
- break;
-
- case 'U': // \U HexDigit (x8)
- cnt = 9;
-
- while (cnt--)
- {
- pc.str.append(ctx.get());
- }
- break;
-
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- // handle up to 3 octal digits
- pc.str.append(ctx.get());
- ch = ctx.peek();
-
- if ( (ch >= '0')
- && (ch <= '7'))
- {
- pc.str.append(ctx.get());
- ch = ctx.peek();
-
- if ( (ch >= '0')
- && (ch <= '7'))
- {
- pc.str.append(ctx.get());
- }
- }
- break;
-
- case '&':
- // \& NamedCharacterEntity ;
- pc.str.append(ctx.get());
-
- while (unc_isalpha(ctx.peek()))
- {
- pc.str.append(ctx.get());
- }
-
- if (ctx.peek() == ';')
- {
- pc.str.append(ctx.get());
- }
- break;
-
- default:
- // Everything else is a single character
- pc.str.append(ctx.get());
- break;
- } // switch
- }
-
- if (pc.str.size() < 1)
- {
- ctx.restore();
- return(false);
- }
- set_chunk_type(&pc, CT_STRING);
- return(true);
-} // d_parse_string
-
-
-#if 0
-
-
-//! A string-in-string search. Like strstr() with a haystack length.
-static const char *str_search(const char *needle, const char *haystack, int haystack_len)
-{
- int needle_len = strlen(needle);
-
- while (haystack_len-- >= needle_len)
- {
- if (memcmp(needle, haystack, needle_len) == 0)
- {
- return(haystack);
- }
- haystack++;
- }
- return(NULL);
-}
-#endif
-
-
-static bool parse_comment(tok_ctx &ctx, chunk_t &pc)
-{
- bool is_d = language_is_set(LANG_D);
- bool is_cs = language_is_set(LANG_CS);
- size_t d_level = 0;
-
- // does this start with '/ /' or '/ *' or '/ +' (d)
- if ( (ctx.peek() != '/')
- || ( (ctx.peek(1) != '*')
- && (ctx.peek(1) != '/')
- && ( (ctx.peek(1) != '+')
- || !is_d)))
- {
- return(false);
- }
- ctx.save();
-
- // account for opening two chars
- pc.str = ctx.get(); // opening '/'
- size_t ch = ctx.get();
-
- pc.str.append(ch); // second char
-
- if (ch == '/')
- {
- set_chunk_type(&pc, CT_COMMENT_CPP);
-
- while (true)
- {
- int bs_cnt = 0;
-
- while (ctx.more())
- {
- ch = ctx.peek();
-
- if ( (ch == '\r')
- || (ch == '\n'))
- {
- break;
- }
-
- if ( (ch == '\\')
- && !is_cs) // backslashes aren't special in comments in C#
- {
- bs_cnt++;
- }
- else
- {
- bs_cnt = 0;
- }
- pc.str.append(ctx.get());
- }
-
- /*
- * If we hit an odd number of backslashes right before the newline,
- * then we keep going.
- */
- if ( ((bs_cnt & 1) == 0)
- || !ctx.more())
- {
- break;
- }
-
- if (ctx.peek() == '\r')
- {
- pc.str.append(ctx.get());
- }
-
- if (ctx.peek() == '\n')
- {
- pc.str.append(ctx.get());
- }
- pc.nl_count++;
- cpd.did_newline = true;
- }
- }
- else if (!ctx.more())
- {
- // unexpected end of file
- ctx.restore();
- return(false);
- }
- else if (ch == '+')
- {
- set_chunk_type(&pc, CT_COMMENT);
- d_level++;
-
- while ( d_level > 0
- && ctx.more())
- {
- if ( (ctx.peek() == '+')
- && (ctx.peek(1) == '/'))
- {
- pc.str.append(ctx.get()); // store the '+'
- pc.str.append(ctx.get()); // store the '/'
- d_level--;
- continue;
- }
-
- if ( (ctx.peek() == '/')
- && (ctx.peek(1) == '+'))
- {
- pc.str.append(ctx.get()); // store the '/'
- pc.str.append(ctx.get()); // store the '+'
- d_level++;
- continue;
- }
- ch = ctx.get();
- pc.str.append(ch);
-
- if ( (ch == '\n')
- || (ch == '\r'))
- {
- set_chunk_type(&pc, CT_COMMENT_MULTI);
- pc.nl_count++;
-
- if (ch == '\r')
- {
- if (ctx.peek() == '\n')
- {
- ++LE_COUNT(CRLF);
- pc.str.append(ctx.get()); // store the '\n'
- }
- else
- {
- ++LE_COUNT(CR);
- }
- }
- else
- {
- ++LE_COUNT(LF);
- }
- }
- }
- }
- else // must be '/ *'
- {
- set_chunk_type(&pc, CT_COMMENT);
-
- while (ctx.more())
- {
- if ( (ctx.peek() == '*')
- && (ctx.peek(1) == '/'))
- {
- pc.str.append(ctx.get()); // store the '*'
- pc.str.append(ctx.get()); // store the '/'
-
- tok_info ss;
- ctx.save(ss);
- size_t oldsize = pc.str.size();
-
- // If there is another C comment right after this one, combine them
- while ( (ctx.peek() == ' ')
- || (ctx.peek() == '\t'))
- {
- pc.str.append(ctx.get());
- }
-
- if ( (ctx.peek() != '/')
- || (ctx.peek(1) != '*'))
- {
- // undo the attempt to join
- ctx.restore(ss);
- pc.str.resize(oldsize);
- break;
- }
- }
- ch = ctx.get();
- pc.str.append(ch);
-
- if ( (ch == '\n')
- || (ch == '\r'))
- {
- set_chunk_type(&pc, CT_COMMENT_MULTI);
- pc.nl_count++;
-
- if (ch == '\r')
- {
- if (ctx.peek() == '\n')
- {
- ++LE_COUNT(CRLF);
- pc.str.append(ctx.get()); // store the '\n'
- }
- else
- {
- ++LE_COUNT(CR);
- }
- }
- else
- {
- ++LE_COUNT(LF);
- }
- }
- }
- }
-
- if (cpd.unc_off)
- {
- bool found_enable_marker = (find_enable_processing_comment_marker(pc.str) >= 0);
-
- if (found_enable_marker)
- {
- const auto &ontext = options::enable_processing_cmt();
-
- LOG_FMT(LBCTRL, "%s(%d): Found '%s' on line %zu\n",
- __func__, __LINE__, ontext.c_str(), pc.orig_line);
- cpd.unc_off = false;
- }
- }
- else
- {
- auto position_disable_processing_cmt = find_disable_processing_comment_marker(pc.str);
- bool found_disable_marker = (position_disable_processing_cmt >= 0);
-
- if (found_disable_marker)
- {
- /**
- * the user may wish to disable processing part of a multiline comment,
- * in which case we'll handle at a late time. Check to see if processing
- * is re-enabled elsewhere in this comment
- */
- auto position_enable_processing_cmt = find_enable_processing_comment_marker(pc.str);
-
- if (position_enable_processing_cmt < position_disable_processing_cmt)
- {
- const auto &offtext = options::disable_processing_cmt();
-
- LOG_FMT(LBCTRL, "%s(%d): Found '%s' on line %zu\n",
- __func__, __LINE__, offtext.c_str(), pc.orig_line);
- cpd.unc_off = true;
- // Issue #842
- cpd.unc_off_used = true;
- }
- }
- }
- return(true);
-} // parse_comment
-
-
-static bool parse_code_placeholder(tok_ctx &ctx, chunk_t &pc)
-{
- if ( (ctx.peek() != '<')
- || (ctx.peek(1) != '#'))
- {
- return(false);
- }
- ctx.save();
-
- // account for opening two chars '<#'
- pc.str = ctx.get();
- pc.str.append(ctx.get());
-
- // grab everything until '#>', fail if not found.
- size_t last1 = 0;
-
- while (ctx.more())
- {
- size_t last2 = last1;
- last1 = ctx.get();
- pc.str.append(last1);
-
- if ( (last2 == '#')
- && (last1 == '>'))
- {
- set_chunk_type(&pc, CT_WORD);
- return(true);
- }
- }
- ctx.restore();
- return(false);
-}
-
-
-static void parse_suffix(tok_ctx &ctx, chunk_t &pc, bool forstring = false)
-{
- if (CharTable::IsKw1(ctx.peek()))
- {
- size_t slen = 0;
- size_t oldsize = pc.str.size();
-
- // don't add the suffix if we see L" or L' or S"
- size_t p1 = ctx.peek();
- size_t p2 = ctx.peek(1);
-
- if ( forstring
- && ( ( (p1 == 'L')
- && ( (p2 == '"')
- || (p2 == '\'')))
- || ( (p1 == 'S')
- && (p2 == '"'))))
- {
- return;
- }
- tok_info ss;
- ctx.save(ss);
-
- while ( ctx.more()
- && CharTable::IsKw2(ctx.peek()))
- {
- slen++;
- pc.str.append(ctx.get());
- }
-
- if ( forstring
- && slen >= 4
- && ( pc.str.startswith("PRI", oldsize)
- || pc.str.startswith("SCN", oldsize)))
- {
- ctx.restore(ss);
- pc.str.resize(oldsize);
- }
- }
-}
-
-
-static bool is_bin(int ch)
-{
- return( (ch == '0')
- || (ch == '1'));
-}
-
-
-static bool is_bin_(int ch)
-{
- return( is_bin(ch)
- || ch == '_'
- || ch == '\'');
-}
-
-
-static bool is_oct(int ch)
-{
- return( (ch >= '0')
- && (ch <= '7'));
-}
-
-
-static bool is_oct_(int ch)
-{
- return( is_oct(ch)
- || ch == '_'
- || ch == '\'');
-}
-
-
-static bool is_dec(int ch)
-{
- return( (ch >= '0')
- && (ch <= '9'));
-}
-
-
-static bool is_dec_(int ch)
-{
- // number separators: JAVA: "_", C++14: "'"
- return( is_dec(ch)
- || (ch == '_')
- || (ch == '\''));
-}
-
-
-static bool is_hex(int ch)
-{
- return( ( (ch >= '0')
- && (ch <= '9'))
- || ( (ch >= 'a')
- && (ch <= 'f'))
- || ( (ch >= 'A')
- && (ch <= 'F')));
-}
-
-
-static bool is_hex_(int ch)
-{
- return( is_hex(ch)
- || ch == '_'
- || ch == '\'');
-}
-
-
-static bool parse_number(tok_ctx &ctx, chunk_t &pc)
-{
- /*
- * A number must start with a digit or a dot, followed by a digit
- * (signs handled elsewhere)
- */
- if ( !is_dec(ctx.peek())
- && ( (ctx.peek() != '.')
- || !is_dec(ctx.peek(1))))
- {
- return(false);
- }
- bool is_float = (ctx.peek() == '.');
-
- if ( is_float
- && (ctx.peek(1) == '.')) // make sure it isn't '..'
- {
- return(false);
- }
- /*
- * Check for Hex, Octal, or Binary
- * Note that only D, C++14 and Pawn support binary
- * Fixes the issue # 1591
- * In c# the numbers starting with 0 are not treated as octal numbers.
- */
- bool did_hex = false;
-
- if ( ctx.peek() == '0'
- && !language_is_set(LANG_CS))
- {
- size_t ch;
- chunk_t pc_temp;
-
- pc.str.append(ctx.get()); // store the '0'
- pc_temp.str.append('0');
-
- // MS constant might have an "h" at the end. Look for it
- ctx.save();
-
- while ( ctx.more()
- && CharTable::IsKw2(ctx.peek()))
- {
- ch = ctx.get();
- pc_temp.str.append(ch);
- }
- ch = pc_temp.str[pc_temp.len() - 1];
- ctx.restore();
- LOG_FMT(LGUY, "%s(%d): pc_temp:%s\n", __func__, __LINE__, pc_temp.text());
-
- if (ch == 'h') // TODO can we combine this in analyze_character
- {
- // we have an MS hexadecimal number with "h" at the end
- LOG_FMT(LGUY, "%s(%d): MS hexadecimal number\n", __func__, __LINE__);
- did_hex = true;
-
- do
- {
- pc.str.append(ctx.get()); // store the rest
- } while (is_hex_(ctx.peek()));
-
- pc.str.append(ctx.get()); // store the h
- LOG_FMT(LGUY, "%s(%d): pc:%s\n", __func__, __LINE__, pc.text());
- }
- else
- {
- switch (unc_toupper(ctx.peek()))
- {
- case 'X': // hex
- did_hex = true;
-
- do
- {
- pc.str.append(ctx.get()); // store the 'x' and then the rest
- } while (is_hex_(ctx.peek()));
-
- break;
-
- case 'B': // binary
-
- do
- {
- pc.str.append(ctx.get()); // store the 'b' and then the rest
- } while (is_bin_(ctx.peek()));
-
- break;
-
- case '0': // octal or decimal
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9':
-
- do
- {
- pc.str.append(ctx.get());
- } while (is_oct_(ctx.peek()));
-
- break;
-
- default:
- // either just 0 or 0.1 or 0UL, etc
- break;
- } // switch
- }
- }
- else
- {
- // Regular int or float
- while (is_dec_(ctx.peek()))
- {
- pc.str.append(ctx.get());
- }
- }
-
- // Check if we stopped on a decimal point & make sure it isn't '..'
- if ( (ctx.peek() == '.')
- && (ctx.peek(1) != '.'))
- {
- // Issue #1265, 5.clamp()
- tok_info ss;
- ctx.save(ss);
-
- while ( ctx.more()
- && CharTable::IsKw2(ctx.peek(1)))
- {
- // skip characters to check for paren open
- ctx.get();
- }
-
- if (ctx.peek(1) == '(')
- {
- ctx.restore(ss);
- set_chunk_type(&pc, CT_NUMBER);
- return(true);
- }
- else
- {
- ctx.restore(ss);
- }
- pc.str.append(ctx.get());
- is_float = true;
-
- if (did_hex)
- {
- while (is_hex_(ctx.peek()))
- {
- pc.str.append(ctx.get());
- }
- }
- else
- {
- while (is_dec_(ctx.peek()))
- {
- pc.str.append(ctx.get());
- }
- }
- }
- /*
- * Check exponent
- * Valid exponents per language (not that it matters):
- * C/C++/D/Java: eEpP
- * C#/Pawn: eE
- */
- size_t tmp = unc_toupper(ctx.peek());
-
- if ( (tmp == 'E')
- || (tmp == 'P'))
- {
- is_float = true;
- pc.str.append(ctx.get());
-
- if ( (ctx.peek() == '+')
- || (ctx.peek() == '-'))
- {
- pc.str.append(ctx.get());
- }
-
- while (is_dec_(ctx.peek()))
- {
- pc.str.append(ctx.get());
- }
- }
-
- /*
- * Check the suffixes
- * Valid suffixes per language (not that it matters):
- * Integer Float
- * C/C++: uUlL64 lLfF
- * C#: uUlL fFdDMm
- * D: uUL ifFL
- * Java: lL fFdD
- * Pawn: (none) (none)
- *
- * Note that i, f, d, and m only appear in floats.
- */
- while (1)
- {
- size_t tmp2 = unc_toupper(ctx.peek());
-
- if ( (tmp2 == 'I')
- || (tmp2 == 'F')
- || (tmp2 == 'D')
- || (tmp2 == 'M'))
- {
- is_float = true;
- }
- else if ( (tmp2 != 'L')
- && (tmp2 != 'U'))
- {
- break;
- }
- pc.str.append(ctx.get());
- }
-
- // skip the Microsoft-specific '32' and '64' suffix
- if ( ( (ctx.peek() == '3')
- && (ctx.peek(1) == '2'))
- || ( (ctx.peek() == '6')
- && (ctx.peek(1) == '4')))
- {
- pc.str.append(ctx.get());
- pc.str.append(ctx.get());
- }
- set_chunk_type(&pc, is_float ? CT_NUMBER_FP : CT_NUMBER);
-
- /*
- * If there is anything left, then we are probably dealing with garbage or
- * some sick macro junk. Eat it.
- */
- parse_suffix(ctx, pc);
-
- return(true);
-} // parse_number
-
-
-static bool parse_string(tok_ctx &ctx, chunk_t &pc, size_t quote_idx, bool allow_escape)
-{
- log_rule_B("string_escape_char");
- const size_t escape_char = options::string_escape_char();
-
- log_rule_B("string_escape_char2");
- const size_t escape_char2 = options::string_escape_char2();
-
- log_rule_B("string_replace_tab_chars");
- const bool should_escape_tabs = ( allow_escape
- && options::string_replace_tab_chars()
- && language_is_set(LANG_ALLC));
-
- pc.str.clear();
-
- while (quote_idx-- > 0)
- {
- pc.str.append(ctx.get());
- }
- set_chunk_type(&pc, CT_STRING);
- const size_t termination_character = CharTable::Get(ctx.peek()) & 0xff;
-
- pc.str.append(ctx.get()); // store the "
-
- bool escaped = false;
-
- while (ctx.more())
- {
- const size_t ch = ctx.get();
-
- // convert char 9 (\t) to chars \t
- if ( (ch == '\t')
- && should_escape_tabs)
- {
- const size_t lastcol = ctx.c.col - 1;
- ctx.c.col = lastcol + 2;
- pc.str.append(escape_char);
- pc.str.append('t');
- continue;
- }
- pc.str.append(ch);
-
- if (ch == '\n')
- {
- pc.nl_count++;
- set_chunk_type(&pc, CT_STRING_MULTI);
- }
- else if ( ch == '\r'
- && ctx.peek() != '\n')
- {
- pc.str.append(ctx.get());
- pc.nl_count++;
- set_chunk_type(&pc, CT_STRING_MULTI);
- }
-
- // if last char in prev loop was escaped the one in the current loop isn't
- if (escaped)
- {
- escaped = false;
- continue;
- }
-
- // see if the current char is a escape char
- if (allow_escape)
- {
- if (ch == escape_char)
- {
- escaped = (escape_char != 0);
- continue;
- }
-
- if ( ch == escape_char2
- && (ctx.peek() == termination_character))
- {
- escaped = allow_escape;
- continue;
- }
- }
-
- if (ch == termination_character)
- {
- break;
- }
- }
- parse_suffix(ctx, pc, true);
- return(true);
-} // parse_string
-
-enum cs_string_t
-{
- CS_STRING_NONE = 0,
- CS_STRING_STRING = 1 << 0, // is any kind of string
- CS_STRING_VERBATIM = 1 << 1, // @"" style string
- CS_STRING_INTERPOLATED = 1 << 2, // $"" or $@"" style string
-};
-
-static cs_string_t operator|=(cs_string_t &value, cs_string_t other)
-{
- return(value = static_cast<cs_string_t>(value | other));
-}
-
-
-static cs_string_t parse_cs_string_start(tok_ctx &ctx, chunk_t &pc)
-{
- cs_string_t stringType = CS_STRING_NONE;
- int offset = 0;
-
- if (ctx.peek(offset) == '$')
- {
- stringType |= CS_STRING_INTERPOLATED;
- ++offset;
- }
-
- if (ctx.peek(offset) == '@')
- {
- stringType |= CS_STRING_VERBATIM;
- ++offset;
- }
-
- if (ctx.peek(offset) == '"')
- {
- stringType |= CS_STRING_STRING;
-
- set_chunk_type(&pc, CT_STRING);
-
- for (int i = 0; i <= offset; ++i)
- {
- pc.str.append(ctx.get());
- }
- }
- else
- {
- stringType = CS_STRING_NONE;
- }
- return(stringType);
-} // parse_cs_string_start
-
-
-struct CsStringParseState
-{
- cs_string_t type;
- int braceDepth;
-
-
- CsStringParseState(cs_string_t stringType)
- {
- type = stringType;
- braceDepth = 0;
- }
-};
-
-
-/**
- * C# strings are complex enough (mostly due to interpolation and nesting) that they need a custom parser.
- */
-static bool parse_cs_string(tok_ctx &ctx, chunk_t &pc)
-{
- cs_string_t stringType = parse_cs_string_start(ctx, pc);
-
- if (stringType == 0)
- {
- return(false);
- }
- // an interpolated string can contain {expressions}, which can contain $"strings", which in turn
- // can contain {expressions}, so we must track both as they are interleaved, in order to properly
- // parse the outermost string.
-
- std::stack<CsStringParseState> parseState; // each entry is a nested string
-
- parseState.push(CsStringParseState(stringType));
-
- log_rule_B("string_replace_tab_chars");
- bool should_escape_tabs = options::string_replace_tab_chars();
-
- while (ctx.more())
- {
- if (parseState.top().braceDepth > 0)
- {
- // all we can do when in an expr is look for expr close with }, or a new string opening. must do this first
- // so we can peek and potentially consume chars for new string openings, before the ch=get() happens later,
- // which is needed for newline processing.
-
- if (ctx.peek() == '}')
- {
- pc.str.append(ctx.get());
-
- if (ctx.peek() == '}')
- {
- pc.str.append(ctx.get()); // in interpolated string, `}}` is escape'd `}`
- }
- else
- {
- --parseState.top().braceDepth;
- }
- continue;
- }
- stringType = parse_cs_string_start(ctx, pc);
-
- if (stringType)
- {
- parseState.push(CsStringParseState(stringType));
- continue;
- }
- }
- int lastcol = ctx.c.col;
- int ch = ctx.get();
-
- pc.str.append(ch);
-
- if (ch == '\n')
- {
- set_chunk_type(&pc, CT_STRING_MULTI);
- pc.nl_count++;
- }
- else if (ch == '\r')
- {
- set_chunk_type(&pc, CT_STRING_MULTI);
- }
- else if (parseState.top().braceDepth > 0)
- {
- // do nothing. if we're in a brace, we only want the newline handling, and skip the rest.
- }
- else if ( (ch == '\t')
- && should_escape_tabs)
- {
- if (parseState.top().type & CS_STRING_VERBATIM)
- {
- if (!cpd.warned_unable_string_replace_tab_chars)
- {
- cpd.warned_unable_string_replace_tab_chars = true;
-
- log_rule_B("warn_level_tabs_found_in_verbatim_string_literals");
- log_sev_t warnlevel = (log_sev_t)options::warn_level_tabs_found_in_verbatim_string_literals();
-
- /*
- * a tab char can't be replaced with \\t because escapes don't
- * work in here-strings. best we can do is warn.
- */
- LOG_FMT(warnlevel, "%s(%d): %s: orig_line is %zu, orig_col is %zu, Detected non-replaceable tab char in literal string\n",
- __func__, __LINE__, cpd.filename.c_str(), pc.orig_line, pc.orig_col);
- LOG_FMT(warnlevel, "%s(%d): Warning is given if doing tab-to-\\t replacement and we have found one in a C# verbatim string literal.\n",
- __func__, __LINE__);
-
- if (warnlevel < LWARN)
- {
- cpd.error_count++;
- }
- }
- }
- else
- {
- ctx.c.col = lastcol + 2;
- pc.str.pop_back(); // remove \t
- pc.str.append("\\t");
-
- continue;
- }
- }
- else if ( ch == '\\'
- && !(parseState.top().type & CS_STRING_VERBATIM))
- {
- // catch escaped quote in order to avoid ending string (but also must handle \\ to avoid accidental 'escape' seq of `\\"`)
- if ( ctx.peek() == '"'
- || ctx.peek() == '\\')
- {
- pc.str.append(ctx.get());
- }
- }
- else if (ch == '"')
- {
- if ( (parseState.top().type & CS_STRING_VERBATIM)
- && (ctx.peek() == '"'))
- {
- // in verbatim string, `""` is escape'd `"`
- pc.str.append(ctx.get());
- }
- else
- {
- // end of string
- parseState.pop();
-
- if (parseState.empty())
- {
- break;
- }
- }
- }
- else if (parseState.top().type & CS_STRING_INTERPOLATED)
- {
- if (ch == '{')
- {
- if (ctx.peek() == '{')
- {
- pc.str.append(ctx.get()); // in interpolated string, `{{` is escape'd `{`
- }
- else
- {
- ++parseState.top().braceDepth;
- }
- }
- }
- }
- return(true);
-} // parse_cs_string
-
-
-static void parse_verbatim_string(tok_ctx &ctx, chunk_t &pc)
-{
- set_chunk_type(&pc, CT_STRING);
-
- // consume the initial """
- pc.str = ctx.get();
- pc.str.append(ctx.get());
- pc.str.append(ctx.get());
-
- // go until we hit a zero (end of file) or a """
- while (ctx.more())
- {
- size_t ch = ctx.get();
- pc.str.append(ch);
-
- if ( (ch == '"')
- && (ctx.peek() == '"')
- && (ctx.peek(1) == '"'))
- {
- pc.str.append(ctx.get());
- pc.str.append(ctx.get());
- break;
- }
-
- if ( (ch == '\n')
- || (ch == '\r'))
- {
- set_chunk_type(&pc, CT_STRING_MULTI);
- pc.nl_count++;
- }
- }
-}
-
-
-static bool tag_compare(const deque<int> &d, size_t a_idx, size_t b_idx, size_t len)
-{
- if (a_idx != b_idx)
- {
- while (len-- > 0)
- {
- if (d[a_idx] != d[b_idx])
- {
- return(false);
- }
- }
- }
- return(true);
-}
-
-
-static bool parse_cr_string(tok_ctx &ctx, chunk_t &pc, size_t q_idx)
-{
- size_t tag_idx = ctx.c.idx + q_idx + 1;
- size_t tag_len = 0;
-
- ctx.save();
-
- // Copy the prefix + " to the string
- pc.str.clear();
- int cnt = q_idx + 1;
-
- while (cnt--)
- {
- pc.str.append(ctx.get());
- }
-
- // Add the tag and get the length of the tag
- while ( ctx.more()
- && (ctx.peek() != '('))
- {
- tag_len++;
- pc.str.append(ctx.get());
- }
-
- if (ctx.peek() != '(')
- {
- ctx.restore();
- return(false);
- }
- set_chunk_type(&pc, CT_STRING);
-
- while (ctx.more())
- {
- if ( (ctx.peek() == ')')
- && (ctx.peek(tag_len + 1) == '"')
- && tag_compare(ctx.data, tag_idx, ctx.c.idx + 1, tag_len))
- {
- cnt = tag_len + 2; // for the )"
-
- while (cnt--)
- {
- pc.str.append(ctx.get());
- }
- parse_suffix(ctx, pc);
- return(true);
- }
-
- if (ctx.peek() == '\n')
- {
- pc.str.append(ctx.get());
- pc.nl_count++;
- set_chunk_type(&pc, CT_STRING_MULTI);
- }
- else
- {
- pc.str.append(ctx.get());
- }
- }
- ctx.restore();
- return(false);
-} // parse_cr_string
-
-
-/**
- * Count the number of characters in a word.
- * The first character is already valid for a keyword
- *
- * @param pc The structure to update, str is an input.
- * @return Whether a word was parsed (always true)
- */
-static bool parse_word(tok_ctx &ctx, chunk_t &pc, bool skipcheck)
-{
- static unc_text intr_txt("@interface");
-
- // The first character is already valid
- pc.str.clear();
- pc.str.append(ctx.get());
-
- while (ctx.more())
- {
- size_t ch = ctx.peek();
-
- if (CharTable::IsKw2(ch))
- {
- pc.str.append(ctx.get());
- }
- else if ( (ch == '\\')
- && (unc_tolower(ctx.peek(1)) == 'u'))
- {
- pc.str.append(ctx.get());
- pc.str.append(ctx.get());
- skipcheck = true;
- }
- else
- {
- break;
- }
-
- // HACK: Non-ASCII character are only allowed in identifiers
- if (ch > 0x7f)
- {
- skipcheck = true;
- }
- }
- set_chunk_type(&pc, CT_WORD);
-
- if (skipcheck)
- {
- return(true);
- }
-
- // Detect pre-processor functions now
- if ( cpd.in_preproc == CT_PP_DEFINE
- && cpd.preproc_ncnl_count == 1)
- {
- if (ctx.peek() == '(')
- {
- set_chunk_type(&pc, CT_MACRO_FUNC);
- }
- else
- {
- set_chunk_type(&pc, CT_MACRO);
-
- log_rule_B("pp_ignore_define_body");
-
- if (options::pp_ignore_define_body())
- {
- /*
- * We are setting the PP_IGNORE preproc state because the following
- * chunks are part of the macro body and will have to be ignored.
- */
- cpd.in_preproc = CT_PP_IGNORE;
- }
- }
- }
- else
- {
- // '@interface' is reserved, not an interface itself
- if ( language_is_set(LANG_JAVA)
- && pc.str.startswith("@")
- && !pc.str.equals(intr_txt))
- {
- set_chunk_type(&pc, CT_ANNOTATION);
- }
- else
- {
- // Turn it into a keyword now
- // Issue #1460 will return "COMMENT_CPP"
- set_chunk_type(&pc, find_keyword_type(pc.text(), pc.str.size()));
-
- /* Special pattern: if we're trying to redirect a preprocessor directive to PP_IGNORE,
- * then ensure we're actually part of a preprocessor before doing the swap, or we'll
- * end up with a function named 'define' as PP_IGNORE. This is necessary because with
- * the config 'set' feature, there's no way to do a pair of tokens as a word
- * substitution. */
- if ( pc.type == CT_PP_IGNORE
- && !cpd.in_preproc)
- {
- set_chunk_type(&pc, find_keyword_type(pc.text(), pc.str.size()));
- }
- else if (pc.type == CT_COMMENT_CPP) // Issue #1460
- {
- size_t ch;
- bool is_cs = language_is_set(LANG_CS);
-
- // read until EOL
- while (true)
- {
- int bs_cnt = 0;
-
- while (ctx.more())
- {
- ch = ctx.peek();
-
- if ( (ch == '\r')
- || (ch == '\n'))
- {
- break;
- }
-
- if ( (ch == '\\')
- && !is_cs) // backslashes aren't special in comments in C#
- {
- bs_cnt++;
- }
- else
- {
- bs_cnt = 0;
- }
- pc.str.append(ctx.get());
- }
-
- /*
- * If we hit an odd number of backslashes right before the newline,
- * then we keep going.
- */
- if ( ((bs_cnt & 1) == 0)
- || !ctx.more())
- {
- break;
- }
-
- if (ctx.peek() == '\r')
- {
- pc.str.append(ctx.get());
- }
-
- if (ctx.peek() == '\n')
- {
- pc.str.append(ctx.get());
- }
- pc.nl_count++;
- cpd.did_newline = true;
- }
- // Store off the end column
- pc.orig_col_end = ctx.c.col;
- }
- }
- }
- return(true);
-} // parse_word
-
-
-static size_t parse_attribute_specifier_sequence(tok_ctx &ctx)
-{
- size_t nested = 0;
- size_t offset = 0;
- size_t parens = 0;
- auto ch1 = ctx.peek(offset++);
-
- while (ch1)
- {
- auto ch2 = ctx.peek(offset++);
-
- while ( ch2 == ' '
- || ch2 == '\n'
- || ch2 == '\r'
- || ch2 == '\t')
- {
- ch2 = ctx.peek(offset++);
- }
-
- if ( nested == 0
- && ch2 != '[')
- {
- break;
- }
-
- if (ch1 == '(')
- {
- ++parens;
- ch1 = ch2;
- continue;
- }
-
- if (ch1 == ')')
- {
- if (parens == 0)
- {
- break;
- }
- --parens;
- ch1 = ch2;
- continue;
- }
-
- if ( ch1 != '['
- && ch1 != ']')
- {
- ch1 = ch2;
- continue;
- }
-
- if (ch2 != ch1)
- {
- if (parens == 0)
- {
- break;
- }
- ch1 = ch2;
- continue;
- }
-
- if (ch1 == '[')
- {
- if ( nested != 0
- && parens == 0)
- {
- break;
- }
- ++nested;
- }
- else if (--nested == 0)
- {
- return(offset);
- }
- ch1 = ctx.peek(offset++);
- }
- return(0);
-} // parse_attribute_specifier_sequence
-
-
-static bool extract_attribute_specifier_sequence(tok_ctx &ctx, chunk_t &pc, size_t length)
-{
- pc.str.clear();
-
- while (length--)
- {
- pc.str.append(ctx.get());
- }
- set_chunk_type(&pc, CT_ATTRIBUTE);
- return(true);
-} // extract_attribute_specifier_sequence
-
-
-static bool parse_whitespace(tok_ctx &ctx, chunk_t &pc)
-{
- size_t nl_count = 0;
- size_t ch = 0;
-
- // REVISIT: use a better whitespace detector?
- while ( ctx.more()
- && unc_isspace(ctx.peek()))
- {
- ch = ctx.get(); // throw away the whitespace char
-
- switch (ch)
- {
- case '\r':
-
- if (ctx.expect('\n'))
- {
- // CRLF ending
- ++LE_COUNT(CRLF);
- }
- else
- {
- // CR ending
- ++LE_COUNT(CR);
- }
- nl_count++;
- pc.orig_prev_sp = 0;
- break;
-
- case '\n':
- // LF ending
- ++LE_COUNT(LF);
- nl_count++;
- pc.orig_prev_sp = 0;
- break;
-
- case '\t':
- log_rule_B("input_tab_size");
- pc.orig_prev_sp += calc_next_tab_column(cpd.column, options::input_tab_size()) - cpd.column;
- break;
-
- case ' ':
- pc.orig_prev_sp++;
- break;
-
- default:
- break;
- }
- }
-
- if (ch != 0)
- {
- pc.str.clear();
- set_chunk_type(&pc, nl_count ? CT_NEWLINE : CT_WHITESPACE);
- pc.nl_count = nl_count;
- pc.after_tab = (ctx.c.last_ch == '\t');
- return(true);
- }
- return(false);
-} // parse_whitespace
-
-
-static bool parse_bs_newline(tok_ctx &ctx, chunk_t &pc)
-{
- ctx.save();
- ctx.get(); // skip the '\'
-
- size_t ch;
-
- while ( ctx.more()
- && unc_isspace(ch = ctx.peek()))
- {
- ctx.get();
-
- if ( (ch == '\r')
- || (ch == '\n'))
- {
- if (ch == '\r')
- {
- ctx.expect('\n');
- }
- set_chunk_type(&pc, CT_NL_CONT);
- pc.str = "\\";
- pc.nl_count = 1;
- return(true);
- }
- }
- ctx.restore();
- return(false);
-}
-
-
-static bool parse_newline(tok_ctx &ctx)
-{
- ctx.save();
-
- // Eat whitespace
- while ( (ctx.peek() == ' ')
- || (ctx.peek() == '\t'))
- {
- ctx.get();
- }
-
- if ( (ctx.peek() == '\r')
- || (ctx.peek() == '\n'))
- {
- if (!ctx.expect('\n'))
- {
- ctx.get();
- ctx.expect('\n');
- }
- return(true);
- }
- ctx.restore();
- return(false);
-}
-
-
-static void parse_pawn_pattern(tok_ctx &ctx, chunk_t &pc, c_token_t tt)
-{
- pc.str.clear();
- set_chunk_type(&pc, tt);
-
- while (!unc_isspace(ctx.peek()))
- {
- // end the pattern on an escaped newline
- if (ctx.peek() == '\\')
- {
- size_t ch = ctx.peek(1);
-
- if ( (ch == '\n')
- || (ch == '\r'))
- {
- break;
- }
- }
- pc.str.append(ctx.get());
- }
-}
-
-
-static bool parse_off_newlines(tok_ctx &ctx, chunk_t &pc)
-{
- size_t nl_count = 0;
-
- // Parse off newlines/blank lines
- while (parse_newline(ctx))
- {
- nl_count++;
- }
-
- if (nl_count > 0)
- {
- pc.nl_count = nl_count;
- set_chunk_type(&pc, CT_NEWLINE);
- return(true);
- }
- return(false);
-}
-
-
-static bool parse_macro(tok_ctx &ctx, chunk_t &pc, const chunk_t *prev_pc)
-{
- if (parse_off_newlines(ctx, pc))
- {
- return(true);
- }
-
- if (parse_comment(ctx, pc)) // allow CT_COMMENT_MULTI within macros
- {
- return(true);
- }
- ctx.save();
- pc.str.clear();
-
- bool continued = ( chunk_is_token(prev_pc, CT_NL_CONT)
- || chunk_is_token(prev_pc, CT_COMMENT_MULTI));
-
- while (ctx.more())
- {
- size_t pk = ctx.peek(), pk1 = ctx.peek(1);
- bool nl = ( pk == '\n'
- || pk == '\r');
- bool nl_cont = ( pk == '\\'
- && ( pk1 == '\n'
- || pk1 == '\r'));
-
- if ( ( nl_cont
- || ( continued
- && nl))
- && pc.str.size() > 0)
- {
- set_chunk_type(&pc, CT_IGNORED);
- return(true);
- }
- else if (nl)
- {
- break;
- }
- pc.str.append(ctx.get());
- }
- pc.str.clear();
- ctx.restore();
- return(false);
-} // parse_macro
-
-
-static bool parse_ignored(tok_ctx &ctx, chunk_t &pc)
-{
- if (parse_off_newlines(ctx, pc))
- {
- return(true);
- }
- // See if the UO_enable_processing_cmt or #pragma endasm / #endasm text is on this line
- ctx.save();
- pc.str.clear();
-
- while ( ctx.more()
- && (ctx.peek() != '\r')
- && (ctx.peek() != '\n'))
- {
- pc.str.append(ctx.get());
- }
-
- if (pc.str.size() == 0)
- {
- // end of file?
- return(false);
- }
-
- // HACK: turn on if we find '#endasm' or '#pragma' and 'endasm' separated by blanks
- if ( ( ( (pc.str.find("#pragma ") >= 0)
- || (pc.str.find("#pragma ") >= 0))
- && ( (pc.str.find(" endasm") >= 0)
- || (pc.str.find(" endasm") >= 0)))
- || (pc.str.find("#endasm") >= 0))
- {
- cpd.unc_off = false;
- ctx.restore();
- pc.str.clear();
- return(false);
- }
- // Note that we aren't actually making sure this is in a comment, yet
- log_rule_B("enable_processing_cmt");
- const auto &ontext = options::enable_processing_cmt();
-
- if (!ontext.empty())
- {
- bool found_enable_pattern = false;
-
- if ( ontext != UNCRUSTIFY_ON_TEXT
- && options::processing_cmt_as_regex())
- {
- std::wstring pc_wstring(pc.str.get().cbegin(),
- pc.str.get().cend());
- std::wregex criteria(std::wstring(ontext.cbegin(),
- ontext.cend()));
-
- found_enable_pattern = std::regex_search(pc_wstring.cbegin(),
- pc_wstring.cend(),
- criteria);
- }
- else
- {
- found_enable_pattern = (pc.str.find(ontext.c_str()) >= 0);
- }
-
- if (!found_enable_pattern)
- {
- set_chunk_type(&pc, CT_IGNORED);
- return(true);
- }
- }
- ctx.restore();
-
- // parse off whitespace leading to the comment
- if (parse_whitespace(ctx, pc))
- {
- set_chunk_type(&pc, CT_IGNORED);
- return(true);
- }
-
- // Look for the ending comment and let it pass
- if ( parse_comment(ctx, pc)
- && !cpd.unc_off)
- {
- return(true);
- }
- // Reset the chunk & scan to until a newline
- pc.str.clear();
-
- while ( ctx.more()
- && (ctx.peek() != '\r')
- && (ctx.peek() != '\n'))
- {
- pc.str.append(ctx.get());
- }
-
- if (pc.str.size() > 0)
- {
- set_chunk_type(&pc, CT_IGNORED);
- return(true);
- }
- return(false);
-} // parse_ignored
-
-
-static bool parse_next(tok_ctx &ctx, chunk_t &pc, const chunk_t *prev_pc)
-{
- if (!ctx.more())
- {
- return(false);
- }
- // Save off the current column
- set_chunk_type(&pc, CT_NONE);
- pc.orig_line = ctx.c.row;
- pc.column = ctx.c.col;
- pc.orig_col = ctx.c.col;
- pc.nl_count = 0;
- pc.flags = PCF_NONE;
-
- // If it is turned off, we put everything except newlines into CT_UNKNOWN
- if (cpd.unc_off)
- {
- if (parse_ignored(ctx, pc))
- {
- return(true);
- }
- }
- log_rule_B("disable_processing_nl_cont");
-
- // Parse macro blocks
- if (options::disable_processing_nl_cont())
- {
- if (parse_macro(ctx, pc, prev_pc))
- {
- return(true);
- }
- }
-
- // Parse whitespace
- if (parse_whitespace(ctx, pc))
- {
- return(true);
- }
-
- // Handle unknown/unhandled preprocessors
- if ( cpd.in_preproc > CT_PP_BODYCHUNK
- && cpd.in_preproc <= CT_PP_OTHER)
- {
- pc.str.clear();
- tok_info ss;
- ctx.save(ss);
- // Chunk to a newline or comment
- set_chunk_type(&pc, CT_PREPROC_BODY);
- size_t last = 0;
-
- while (ctx.more())
- {
- size_t ch = ctx.peek();
-
- // Fix for issue #1752
- // Ignoring extra spaces after ' \ ' for preproc body continuations
- if ( last == '\\'
- && ch == ' ')
- {
- ctx.get();
- continue;
- }
-
- if ( (ch == '\n')
- || (ch == '\r'))
- {
- // Back off if this is an escaped newline
- if (last == '\\')
- {
- ctx.restore(ss);
- pc.str.pop_back();
- }
- break;
- }
-
- // Quit on a C or C++ comment start Issue #1966
- if ( (ch == '/')
- && ( (ctx.peek(1) == '/')
- || (ctx.peek(1) == '*')))
- {
- break;
- }
- last = ch;
- ctx.save(ss);
-
- pc.str.append(ctx.get());
- }
-
- if (pc.str.size() > 0)
- {
- return(true);
- }
- }
-
- // Detect backslash-newline
- if ( (ctx.peek() == '\\')
- && parse_bs_newline(ctx, pc))
- {
- return(true);
- }
-
- // Parse comments
- if (parse_comment(ctx, pc))
- {
- return(true);
- }
-
- // Parse code placeholders
- if (parse_code_placeholder(ctx, pc))
- {
- return(true);
- }
-
- if (language_is_set(LANG_CS))
- {
- if (parse_cs_string(ctx, pc))
- {
- return(true);
- }
-
- // check for non-keyword identifiers such as @if @switch, etc
- if ( (ctx.peek() == '@')
- && CharTable::IsKw1(ctx.peek(1)))
- {
- parse_word(ctx, pc, true);
- return(true);
- }
- }
-
- // handle VALA """ strings """
- if ( language_is_set(LANG_VALA)
- && (ctx.peek() == '"')
- && (ctx.peek(1) == '"')
- && (ctx.peek(2) == '"'))
- {
- parse_verbatim_string(ctx, pc);
- return(true);
- }
- /*
- * handle C++(11) string/char literal prefixes u8|u|U|L|R including all
- * possible combinations and optional R delimiters: R"delim(x)delim"
- */
- auto ch = ctx.peek();
-
- if ( language_is_set(LANG_C | LANG_CPP)
- && ( ch == 'u'
- || ch == 'U'
- || ch == 'R'
- || ch == 'L'))
- {
- auto idx = size_t{};
- auto is_real = false;
-
- if ( ch == 'u'
- && ctx.peek(1) == '8')
- {
- idx = 2;
- }
- else if ( unc_tolower(ch) == 'u'
- || ch == 'L')
- {
- idx++;
- }
-
- if ( language_is_set(LANG_C | LANG_CPP)
- && ctx.peek(idx) == 'R')
- {
- idx++;
- is_real = true;
- }
- const auto quote = ctx.peek(idx);
-
- if (is_real)
- {
- if ( quote == '"'
- && parse_cr_string(ctx, pc, idx))
- {
- return(true);
- }
- }
- else if ( ( quote == '"'
- || quote == '\'')
- && parse_string(ctx, pc, idx, true))
- {
- return(true);
- }
- }
-
- // PAWN specific stuff
- if (language_is_set(LANG_PAWN))
- {
- if ( cpd.preproc_ncnl_count == 1
- && ( cpd.in_preproc == CT_PP_DEFINE
- || cpd.in_preproc == CT_PP_EMIT))
- {
- parse_pawn_pattern(ctx, pc, CT_MACRO);
- return(true);
- }
-
- // Check for PAWN strings: \"hi" or !"hi" or !\"hi" or \!"hi"
- if ( (ctx.peek() == '\\')
- || (ctx.peek() == '!'))
- {
- if (ctx.peek(1) == '"')
- {
- parse_string(ctx, pc, 1, (ctx.peek() == '!'));
- return(true);
- }
-
- if ( ( (ctx.peek(1) == '\\')
- || (ctx.peek(1) == '!'))
- && (ctx.peek(2) == '"'))
- {
- parse_string(ctx, pc, 2, false);
- return(true);
- }
- }
-
- // handle PAWN preprocessor args %0 .. %9
- if ( cpd.in_preproc == CT_PP_DEFINE
- && (ctx.peek() == '%')
- && unc_isdigit(ctx.peek(1)))
- {
- pc.str.clear();
- pc.str.append(ctx.get());
- pc.str.append(ctx.get());
- set_chunk_type(&pc, CT_WORD);
- return(true);
- }
- }
- // Parse strings and character constants
-
-//parse_word(ctx, pc_temp, true);
-//ctx.restore(ctx.c);
- if (parse_number(ctx, pc))
- {
- return(true);
- }
-
- if (language_is_set(LANG_D))
- {
- // D specific stuff
- if (d_parse_string(ctx, pc))
- {
- return(true);
- }
- }
- else
- {
- // Not D stuff
-
- // Check for L'a', L"abc", 'a', "abc", <abc> strings
- ch = ctx.peek();
- size_t ch1 = ctx.peek(1);
-
- if ( ( ( (ch == 'L')
- || (ch == 'S'))
- && ( (ch1 == '"')
- || (ch1 == '\'')))
- || (ch == '"')
- || (ch == '\'')
- || ( (ch == '<')
- && cpd.in_preproc == CT_PP_INCLUDE))
- {
- parse_string(ctx, pc, unc_isalpha(ch) ? 1 : 0, true);
- set_chunk_parent(&pc, CT_PP_INCLUDE);
- return(true);
- }
-
- if ( (ch == '<')
- && cpd.in_preproc == CT_PP_DEFINE)
- {
- if (chunk_is_token(chunk_get_tail(), CT_MACRO))
- {
- // We have "#define XXX <", assume '<' starts an include string
- parse_string(ctx, pc, 0, false);
- return(true);
- }
- }
-
- /* Inside clang's __has_include() could be "path/to/file.h" or system-style <path/to/file.h> */
- if ( (ch == '(')
- && (chunk_get_tail() != nullptr)
- && ( chunk_is_token(chunk_get_tail(), CT_CNG_HASINC)
- || chunk_is_token(chunk_get_tail(), CT_CNG_HASINCN)))
- {
- parse_string(ctx, pc, 0, false);
- return(true);
- }
- }
-
- // Check for Objective C literals and VALA identifiers ('@1', '@if')
- if ( language_is_set(LANG_OC | LANG_VALA)
- && (ctx.peek() == '@'))
- {
- size_t nc = ctx.peek(1);
-
- if (nc == 'R') // Issue #2720
- {
- if (ctx.peek(2) == '"')
- {
- if (parse_cr_string(ctx, pc, 2)) // Issue #3027
- {
- return(true);
- }
- // parse string without escaping
- parse_string(ctx, pc, 2, false);
- return(true);
- }
- }
-
- if ( (nc == '"')
- || (nc == '\''))
- {
- // literal string
- parse_string(ctx, pc, 1, true);
- return(true);
- }
-
- if ( (nc >= '0')
- && (nc <= '9'))
- {
- // literal number
- pc.str.append(ctx.get()); // store the '@'
- parse_number(ctx, pc);
- return(true);
- }
- }
-
- // Check for pawn/ObjectiveC/Java and normal identifiers
- if ( CharTable::IsKw1(ctx.peek())
- || ( (ctx.peek() == '\\')
- && (unc_tolower(ctx.peek(1)) == 'u'))
- || ( (ctx.peek() == '@')
- && CharTable::IsKw1(ctx.peek(1))))
- {
- parse_word(ctx, pc, false);
- return(true);
- }
-
- // Check for C++11/14/17/20 attribute specifier sequences
- if ( language_is_set(LANG_CPP)
- && ctx.peek() == '[')
- {
- if ( !language_is_set(LANG_OC)
- || !chunk_is_token(prev_pc, CT_OC_AT))
- {
- if (auto length = parse_attribute_specifier_sequence(ctx))
- {
- extract_attribute_specifier_sequence(ctx, pc, length);
- return(true);
- }
- }
- }
- // see if we have a punctuator
- char punc_txt[7];
-
- punc_txt[0] = ctx.peek();
- punc_txt[1] = ctx.peek(1);
- punc_txt[2] = ctx.peek(2);
- punc_txt[3] = ctx.peek(3);
- punc_txt[4] = ctx.peek(4);
- punc_txt[5] = ctx.peek(5);
- punc_txt[6] = '\0';
- const chunk_tag_t *punc;
-
- if ((punc = find_punctuator(punc_txt, cpd.lang_flags)) != nullptr)
- {
- int cnt = strlen(punc->tag);
-
- while (cnt--)
- {
- pc.str.append(ctx.get());
- }
- set_chunk_type(&pc, punc->type);
- pc.flags |= PCF_PUNCTUATOR;
- return(true);
- }
- /* When parsing C/C++ files and running into some unknown token,
- * check if matches Objective-C as a last resort, before
- * considering it as garbage.
- */
- int probe_lang_flags = 0;
-
- if (language_is_set(LANG_C | LANG_CPP))
- {
- probe_lang_flags = cpd.lang_flags | LANG_OC;
- }
-
- if (probe_lang_flags != 0)
- {
- if ((punc = find_punctuator(punc_txt, probe_lang_flags)) != NULL)
- {
- cpd.lang_flags = probe_lang_flags;
- int cnt = strlen(punc->tag);
-
- while (cnt--)
- {
- pc.str.append(ctx.get());
- }
- set_chunk_type(&pc, punc->type);
- pc.flags |= PCF_PUNCTUATOR;
- return(true);
- }
- }
- // throw away this character
- set_chunk_type(&pc, CT_UNKNOWN);
- pc.str.append(ctx.get());
-
- LOG_FMT(LWARN, "%s:%zu Garbage in col %d: %x\n",
- cpd.filename.c_str(), pc.orig_line, (int)ctx.c.col, pc.str[0]);
- cpd.error_count++;
- return(true);
-} // parse_next
-
-
-int find_disable_processing_comment_marker(const unc_text &text,
- std::size_t start_idx)
-{
- log_rule_B("disable_processing_cmt");
- const auto &offtext = options::disable_processing_cmt();
- int idx = -1;
-
- if ( !offtext.empty()
- && start_idx < text.size())
- {
- if ( offtext != UNCRUSTIFY_OFF_TEXT
- && options::processing_cmt_as_regex())
- {
- std::wsmatch match;
- std::wstring pc_wstring(text.get().cbegin() + start_idx,
- text.get().cend());
- std::wregex criteria(std::wstring(offtext.cbegin(),
- offtext.cend()));
-
- std::regex_search(pc_wstring.cbegin(),
- pc_wstring.cend(),
- match,
- criteria);
-
- if (!match.empty())
- {
- idx = int(match.position() + start_idx);
- }
- }
- else
- {
- idx = text.find(offtext.c_str(),
- start_idx);
-
- if (idx >= 0)
- {
- idx += int(offtext.size());
- }
- }
-
- /**
- * update the position to the start of the current line
- */
- while ( idx > 0
- && text[idx - 1] != '\n')
- {
- --idx;
- }
- }
- return(idx);
-} // find_disable_processing_comment_marker
-
-
-int find_enable_processing_comment_marker(const unc_text &text,
- std::size_t start_idx)
-{
- log_rule_B("enable_processing_cmt");
- const auto &ontext = options::enable_processing_cmt();
- int idx = -1;
-
- if ( !ontext.empty()
- && start_idx < text.size())
- {
- if ( ontext != UNCRUSTIFY_ON_TEXT
- && options::processing_cmt_as_regex())
- {
- std::wsmatch match;
- std::wstring pc_wstring(text.get().cbegin() + start_idx,
- text.get().cend());
- std::wregex criteria(std::wstring(ontext.cbegin(),
- ontext.cend()));
-
- std::regex_search(pc_wstring.cbegin(),
- pc_wstring.cend(),
- match,
- criteria);
-
- if (!match.empty())
- {
- idx = int(start_idx + match.position() + match.size());
- }
- }
- else
- {
- idx = text.find(ontext.c_str(),
- start_idx);
-
- if (idx >= 0)
- {
- idx += int(ontext.size());
- }
- }
-
- /**
- * update the position to the end of the current line
- */
- if (idx >= 0)
- {
- while ( idx < int(text.size())
- && text[idx] != '\n')
- {
- ++idx;
- }
- }
- }
- return(idx);
-} // find_enable_processing_comment_marker
-
-
-void tokenize(const deque<int> &data, chunk_t *ref)
-{
- tok_ctx ctx(data);
- chunk_t chunk;
- chunk_t *pc = nullptr;
- chunk_t *rprev = nullptr;
- bool last_was_tab = false;
- size_t prev_sp = 0;
- int num_stripped = 0; // Issue #1966
-
- cpd.unc_stage = unc_stage_e::TOKENIZE;
-
- while (ctx.more())
- {
- chunk.reset();
- chunk.pp_level = 0;
-
- if (!parse_next(ctx, chunk, pc))
- {
- LOG_FMT(LERR, "%s:%zu Bailed before the end?\n",
- cpd.filename.c_str(), ctx.c.row);
- cpd.error_count++;
- break;
- }
-
- if ( language_is_set(LANG_JAVA)
- && chunk.type == CT_MEMBER
- && !memcmp(chunk.text(), "->", 2))
- {
- chunk.type = CT_LAMBDA;
- }
-
- // Don't create an entry for whitespace
- if (chunk.type == CT_WHITESPACE)
- {
- last_was_tab = chunk.after_tab;
- prev_sp = chunk.orig_prev_sp;
- continue;
- }
- chunk.orig_prev_sp = prev_sp;
- prev_sp = 0;
-
- if (chunk.type == CT_NEWLINE)
- {
- last_was_tab = chunk.after_tab;
- chunk.after_tab = false;
- chunk.str.clear();
- }
- else if (chunk.type == CT_NL_CONT)
- {
- last_was_tab = chunk.after_tab;
- chunk.after_tab = false;
- chunk.str = "\\\n";
- }
- else
- {
- chunk.after_tab = last_was_tab;
- last_was_tab = false;
- }
-
- if (chunk.type != CT_IGNORED)
- {
- // Issue #1338
- // Strip trailing whitespace (for CPP comments and PP blocks)
- num_stripped = 0; // Issue #1966
-
- while ( (chunk.str.size() > 0)
- && ( (chunk.str[chunk.str.size() - 1] == ' ')
- || (chunk.str[chunk.str.size() - 1] == '\t')))
- {
- // If comment contains backslash '\' followed by whitespace chars, keep last one;
- // this will prevent it from turning '\' into line continuation.
- if ( (chunk.str.size() > 1)
- && (chunk.str[chunk.str.size() - 2] == '\\'))
- {
- break;
- }
- chunk.str.pop_back();
- num_stripped++; // Issue #1966
- }
- }
- // Store off the end column
- chunk.orig_col_end = ctx.c.col;
-
- if ( ( chunk.type == CT_COMMENT_MULTI // Issue #1966
- || chunk.type == CT_COMMENT
- || chunk.type == CT_COMMENT_CPP)
- && (pc != nullptr)
- && chunk_is_token(pc, CT_PP_IGNORE))
- {
- chunk.orig_col_end -= num_stripped;
- }
- // Add the chunk to the list
- rprev = pc;
-
- if (rprev != nullptr)
- {
- chunk_flags_set(pc, rprev->flags & PCF_COPY_FLAGS);
-
- // a newline can't be in a preprocessor
- if (chunk_is_token(pc, CT_NEWLINE))
- {
- chunk_flags_clr(pc, PCF_IN_PREPROC);
- }
- }
-
- if (ref != nullptr)
- {
- chunk.flags |= PCF_INSERTED;
- }
- else
- {
- chunk.flags &= ~PCF_INSERTED;
- }
- pc = chunk_add_before(&chunk, ref);
-
- // A newline marks the end of a preprocessor
- if (chunk_is_token(pc, CT_NEWLINE)) // || chunk_is_token(pc, CT_COMMENT_MULTI))
- {
- cpd.in_preproc = CT_NONE;
- cpd.preproc_ncnl_count = 0;
- }
-
- // Disable indentation when #asm directive found
- if (chunk_is_token(pc, CT_PP_ASM))
- {
- LOG_FMT(LBCTRL, "Found a directive %s on line %zu\n", "#asm", pc->orig_line);
- cpd.unc_off = true;
- }
-
- // Special handling for preprocessor stuff
- if (cpd.in_preproc != CT_NONE)
- {
- chunk_flags_set(pc, PCF_IN_PREPROC);
-
- // Count words after the preprocessor
- if ( !chunk_is_comment(pc)
- && !chunk_is_newline(pc))
- {
- cpd.preproc_ncnl_count++;
- }
-
- // Disable indentation if a #pragma asm directive is found
- if (cpd.in_preproc == CT_PP_PRAGMA)
- {
- if (memcmp(pc->text(), "asm", 3) == 0)
- {
- LOG_FMT(LBCTRL, "Found a pragma %s on line %zu\n", "asm", pc->orig_line);
- cpd.unc_off = true;
- }
- }
-
- // Figure out the type of preprocessor for #include parsing
- if (cpd.in_preproc == CT_PREPROC)
- {
- if ( pc->type < CT_PP_DEFINE
- || pc->type > CT_PP_OTHER)
- {
- set_chunk_type(pc, CT_PP_OTHER);
- }
- cpd.in_preproc = pc->type;
- }
- else if (cpd.in_preproc == CT_PP_IGNORE)
- {
- // ASSERT(options::pp_ignore_define_body());
- if ( !chunk_is_token(pc, CT_NL_CONT)
- && !chunk_is_token(pc, CT_COMMENT_CPP)
- && !chunk_is_token(pc, CT_COMMENT)
- && !chunk_is_token(pc, CT_COMMENT_MULTI)) // Issue #1966
- {
- set_chunk_type(pc, CT_PP_IGNORE);
- }
- }
- else if ( cpd.in_preproc == CT_PP_DEFINE
- && chunk_is_token(pc, CT_PAREN_CLOSE)
- && options::pp_ignore_define_body())
- {
- log_rule_B("pp_ignore_define_body");
- // When we have a PAREN_CLOSE in a PP_DEFINE we should be terminating a MACRO_FUNC
- // arguments list. Therefore we can enter the PP_IGNORE state and ignore next chunks.
- cpd.in_preproc = CT_PP_IGNORE;
- }
- }
- else
- {
- // Check for a preprocessor start
- if ( chunk_is_token(pc, CT_POUND)
- && ( rprev == nullptr
- || chunk_is_token(rprev, CT_NEWLINE)))
- {
- set_chunk_type(pc, CT_PREPROC);
- chunk_flags_set(pc, PCF_IN_PREPROC);
- cpd.in_preproc = CT_PREPROC;
- }
- }
-
- if (chunk_is_token(pc, CT_NEWLINE))
- {
- LOG_FMT(LGUY, "%s(%d): orig_line is %zu, orig_col is %zu, <Newline>, nl is %zu\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->nl_count);
- }
- else if (chunk_is_token(pc, CT_VBRACE_OPEN))
- {
- LOG_FMT(LGUY, "%s(%d): orig_line is %zu, orig_col is %zu, type is %s, orig_col_end is %zu\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, get_token_name(pc->type), pc->orig_col_end);
- }
- else
- {
- char copy[1000];
- LOG_FMT(LGUY, "%s(%d): orig_line is %zu, orig_col is %zu, text() '%s', type is %s, orig_col_end is %zu\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->elided_text(copy), get_token_name(pc->type), pc->orig_col_end);
- }
- }
- // Set the cpd.newline string for this file
- log_rule_B("newlines");
-
- if ( options::newlines() == LE_LF
- || ( options::newlines() == LE_AUTO
- && (LE_COUNT(LF) >= LE_COUNT(CRLF))
- && (LE_COUNT(LF) >= LE_COUNT(CR))))
- {
- // LF line ends
- cpd.newline = "\n";
- LOG_FMT(LLINEENDS, "Using LF line endings\n");
- }
- else if ( options::newlines() == LE_CRLF
- || ( options::newlines() == LE_AUTO
- && (LE_COUNT(CRLF) >= LE_COUNT(LF))
- && (LE_COUNT(CRLF) >= LE_COUNT(CR))))
- {
- // CRLF line ends
- cpd.newline = "\r\n";
- LOG_FMT(LLINEENDS, "Using CRLF line endings\r\n");
- }
- else
- {
- // CR line ends
- cpd.newline = "\r";
- LOG_FMT(LLINEENDS, "Using CR line endings\n");
- }
-} // tokenize
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/tokenize.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/tokenize.h
deleted file mode 100644
index 896dd511..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/tokenize.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/**
- * @file tokenize.h
- * prototypes for tokenize.c
- *
- * @author Ben Gardner
- * @license GPL v2+
- */
-
-#ifndef TOKENIZE_H_INCLUDED
-#define TOKENIZE_H_INCLUDED
-
-#include "uncrustify_types.h"
-
-
-/**
- * Test the input string to see if it satisfies the criteria
- * specified by the disable_processing_cmt option
- * @param text the string to which a match will be attempted
- * @param start_idx the starting index within the string from which the
- * search will be performed
- * @return returns a non-negative position index that points to the beginning
- * of the line containing the marker, if found
- */
-int find_disable_processing_comment_marker(const unc_text &text, std::size_t start_idx = 0);
-
-
-/**
- * Test the input string to see if it satisfies the criteria
- * specified by the enable_processing_cmt option
- * @param text the string to which a match will be attempted
- * @param start_idx the starting index within the string from which the
- * search will be performed
- * @return returns a non-negative position index that points to the end
- * of the line containing the marker, if found
- */
-int find_enable_processing_comment_marker(const unc_text &text, std::size_t start_idx = 0);
-
-
-/**
- * @brief Parse the text into chunks
- *
- * This function parses or tokenizes the whole buffer into a list.
- * It has to do some tricks to parse preprocessors.
- *
- * If output_text() were called immediately after, two things would happen:
- * - trailing whitespace are removed.
- * - leading space & tabs are converted to the appropriate format.
- *
- * All the tokens are inserted before ref. If ref is NULL, they are inserted
- * at the end of the list. Line numbers are relative to the start of the data.
- */
-void tokenize(const std::deque<int> &data, chunk_t *ref);
-
-
-#endif /* TOKENIZE_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/tokenize_cleanup.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/tokenize_cleanup.cpp
deleted file mode 100644
index 23a87479..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/tokenize_cleanup.cpp
+++ /dev/null
@@ -1,1756 +0,0 @@
-/**
- * @file tokenize_cleanup.cpp
- * Looks at simple sequences to refine the chunk types.
- * Examples:
- * - change '[' + ']' into '[]'/
- * - detect "version = 10;" vs "version (xxx) {"
- *
- * @author Ben Gardner
- * @author Guy Maurel 2015, 2021
- * @license GPL v2+
- */
-
-#include "tokenize_cleanup.h"
-
-#include "combine.h"
-#include "combine_skip.h"
-#include "flag_braced_init_list.h"
-#include "flag_decltype.h"
-#include "keywords.h"
-#include "prototypes.h"
-#include "punctuators.h"
-#include "space.h"
-#include "unc_ctype.h"
-
-
-using namespace uncrustify;
-
-
-/**
- * Mark types in a single template argument.
- *
- * @param start chunk to start check at
- * @param end chunk to end check at
- */
-static void check_template_arg(chunk_t *start, chunk_t *end);
-
-
-/**
- * Mark types in template argument(s).
- *
- * @param start chunk to start check at
- * @param end chunk to end check at
- */
-static void check_template_args(chunk_t *start, chunk_t *end);
-
-
-/**
- * If there is nothing but CT_WORD and CT_MEMBER, then it's probably a
- * template thingy. Otherwise, it's likely a comparison.
- *
- * @param start chunk to start check at
- */
-static void check_template(chunk_t *start, bool in_type_cast);
-
-
-/**
- * Convert '>' + '>' into '>>'
- * If we only have a single '>', then change it to CT_COMPARE.
- *
- * @param pc chunk to start at
- */
-static chunk_t *handle_double_angle_close(chunk_t *pc);
-
-
-/**
- * Marks ObjC specific chunks in propery declaration, by setting
- * parent types and chunk types.
- */
-static void cleanup_objc_property(chunk_t *start);
-
-
-/**
- * Marks ObjC specific chunks in propery declaration (getter/setter attribute)
- * Will mark 'test4Setter'and ':' in '@property (setter=test4Setter:, strong) int test4;' as CT_OC_SEL_NAME
- */
-static void mark_selectors_in_property_with_open_paren(chunk_t *open_paren);
-
-
-/**
- * Marks ObjC specific chunks in propery declaration ( attributes)
- * Changes all the CT_WORD and CT_TYPE to CT_OC_PROPERTY_ATTR
- */
-static void mark_attributes_in_property_with_open_paren(chunk_t *open_paren);
-
-
-static chunk_t *handle_double_angle_close(chunk_t *pc)
-{
- chunk_t *next = chunk_get_next(pc);
-
- if (next != nullptr)
- {
- if ( chunk_is_token(pc, CT_ANGLE_CLOSE)
- && chunk_is_token(next, CT_ANGLE_CLOSE)
- && get_chunk_parent_type(pc) == CT_NONE
- && (pc->orig_col_end + 1) == next->orig_col
- && get_chunk_parent_type(next) == CT_NONE)
- {
- pc->str.append('>');
- set_chunk_type(pc, CT_SHIFT);
- pc->orig_col_end = next->orig_col_end;
-
- chunk_t *tmp = chunk_get_next_ncnnl(next);
- chunk_del(next);
- next = tmp;
- }
- else
- {
- // bug #663
- set_chunk_type(pc, CT_COMPARE);
- }
- }
- return(next);
-}
-
-
-void split_off_angle_close(chunk_t *pc)
-{
- const chunk_tag_t *ct = find_punctuator(pc->text() + 1, cpd.lang_flags);
-
- if (ct == nullptr)
- {
- return;
- }
- chunk_t nc = *pc;
-
- pc->str.resize(1);
- pc->orig_col_end = pc->orig_col + 1;
- set_chunk_type(pc, CT_ANGLE_CLOSE);
-
- set_chunk_type(&nc, ct->type);
- nc.str.pop_front();
- nc.orig_col++;
- nc.column++;
- chunk_add_after(&nc, pc);
-}
-
-
-void tokenize_trailing_return_types(void)
-{
- // Issue #2330
- // auto max(int a, int b) -> int;
- // Issue #2460
- // auto f01() -> bool;
- // auto f02() noexcept -> bool;
- // auto f03() noexcept(true) -> bool;
- // auto f04() noexcept(false) -> bool;
- // auto f05() noexcept -> bool = delete;
- // auto f06() noexcept(true) -> bool = delete;
- // auto f07() noexcept(false) -> bool = delete;
- // auto f11() const -> bool;
- // auto f12() const noexcept -> bool;
- // auto f13() const noexcept(true) -> bool;
- // auto f14() const noexcept(false) -> bool;
- // auto f15() const noexcept -> bool = delete;
- // auto f16() const noexcept(true) -> bool = delete;
- // auto f17() const noexcept(false) -> bool = delete;
- // auto f21() throw() -> bool;
- // auto f22() throw() -> bool = delete;
- // auto f23() const throw() -> bool;
- // auto f24() const throw() -> bool = delete;
- chunk_t *pc;
-
- for (pc = chunk_get_head(); pc != nullptr; pc = chunk_get_next_ncnnl(pc))
- {
- char copy[1000];
- LOG_FMT(LNOTE, "%s(%d): orig_line is %zu, orig_col is %zu, text() is '%s'\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->elided_text(copy));
-
- if ( chunk_is_token(pc, CT_MEMBER)
- && (strcmp(pc->text(), "->") == 0))
- {
- chunk_t *tmp = chunk_get_prev_ncnnl(pc);
- chunk_t *tmp_2;
- chunk_t *open_paren;
-
- if (chunk_is_token(tmp, CT_QUALIFIER))
- {
- // auto max(int a, int b) const -> int;
- // auto f11() const -> bool;
- tmp = chunk_get_prev_ncnnl(tmp);
- }
- else if (chunk_is_token(tmp, CT_NOEXCEPT))
- {
- // noexcept is present
- tmp_2 = chunk_get_prev_ncnnl(tmp);
-
- if (chunk_is_token(tmp_2, CT_QUALIFIER))
- {
- // auto f12() const noexcept -> bool;
- // auto f15() const noexcept -> bool = delete;
- tmp = chunk_get_prev_ncnnl(tmp_2);
- }
- else
- {
- // auto f02() noexcept -> bool;
- // auto f05() noexcept -> bool = delete;
- tmp = tmp_2;
- }
- }
- else if (chunk_is_token(tmp, CT_PAREN_CLOSE))
- {
- open_paren = chunk_get_prev_type(tmp, CT_PAREN_OPEN, tmp->level);
- tmp = chunk_get_prev_ncnnl(open_paren);
-
- if (chunk_is_token(tmp, CT_NOEXCEPT))
- {
- // noexcept is present
- tmp_2 = chunk_get_prev_ncnnl(tmp);
-
- if (chunk_is_token(tmp_2, CT_QUALIFIER))
- {
- // auto f13() const noexcept(true) -> bool;
- // auto f14() const noexcept(false) -> bool;
- // auto f16() const noexcept(true) -> bool = delete;
- // auto f17() const noexcept(false) -> bool = delete;
- tmp = chunk_get_prev_ncnnl(tmp_2);
- }
- else
- {
- // auto f03() noexcept(true) -> bool;
- // auto f04() noexcept(false) -> bool;
- // auto f06() noexcept(true) -> bool = delete;
- // auto f07() noexcept(false) -> bool = delete;
- tmp = tmp_2;
- }
- }
- else if (chunk_is_token(tmp, CT_THROW))
- {
- // throw is present
- tmp_2 = chunk_get_prev_ncnnl(tmp);
-
- if (chunk_is_token(tmp_2, CT_QUALIFIER))
- {
- // auto f23() const throw() -> bool;
- // auto f24() const throw() -> bool = delete;
- tmp = chunk_get_prev_ncnnl(tmp_2);
- }
- else
- {
- // auto f21() throw() -> bool;
- // auto f22() throw() -> bool = delete;
- tmp = tmp_2;
- }
- }
- else
- {
- LOG_FMT(LNOTE, "%s(%d): NOT COVERED\n", __func__, __LINE__);
- }
- }
- else
- {
- LOG_FMT(LNOTE, "%s(%d): NOT COVERED\n", __func__, __LINE__);
- }
-
- if ( chunk_is_token(tmp, CT_FPAREN_CLOSE)
- && ( get_chunk_parent_type(tmp) == CT_FUNC_PROTO
- || get_chunk_parent_type(tmp) == CT_FUNC_DEF))
- {
- set_chunk_type(pc, CT_TRAILING_RET);
- LOG_FMT(LNOTE, "%s(%d): set trailing return type for text() is '%s'\n",
- __func__, __LINE__, pc->text()); // Issue #3222
- // TODO
- // https://en.cppreference.com/w/cpp/language/function
- // noptr-declarator ( parameter-list ) cv(optional) ref(optional) except(optional) attr(optional) -> trailing
- chunk_t *next = chunk_get_next_ncnnl(pc);
-
- if (chunk_is_token(next, CT_DECLTYPE))
- {
- // TODO
- }
- else if (chunk_is_token(next, CT_WORD))
- {
- set_chunk_type(next, CT_TYPE); // Issue #3222
- next = chunk_get_next_ncnnl(next);
-
- if ( chunk_is_token(next, CT_ARITH)
- && (next->str[0] == '*'))
- {
- set_chunk_type(next, CT_PTR_TYPE);
- }
- }
- else
- {
- // TODO
- }
- }
- }
- }
-} // tokenize_trailing_return_types
-
-
-void tokenize_cleanup(void)
-{
- LOG_FUNC_ENTRY();
-
- chunk_t *prev = nullptr;
- chunk_t *next;
- bool in_type_cast = false;
-
- cpd.unc_stage = unc_stage_e::TOKENIZE_CLEANUP;
-
- /*
- * Since [] is expected to be TSQUARE for the 'operator', we need to make
- * this change in the first pass.
- */
- chunk_t *pc;
-
- for (pc = chunk_get_head(); pc != nullptr; pc = chunk_get_next_ncnnl(pc))
- {
- if (chunk_is_token(pc, CT_SQUARE_OPEN))
- {
- next = chunk_get_next_ncnnl(pc);
-
- if (chunk_is_token(next, CT_SQUARE_CLOSE))
- {
- // Change '[' + ']' into '[]'
- set_chunk_type(pc, CT_TSQUARE);
- pc->str = "[]";
- /*
- * bug #664: The original orig_col_end of CT_SQUARE_CLOSE is
- * stored at orig_col_end of CT_TSQUARE.
- * pc->orig_col_end += 1;
- */
- pc->orig_col_end = next->orig_col_end;
- chunk_del(next);
- }
- }
-
- if ( chunk_is_token(pc, CT_SEMICOLON)
- && pc->flags.test(PCF_IN_PREPROC)
- && !chunk_get_next_ncnnl(pc, scope_e::PREPROC))
- {
- LOG_FMT(LNOTE, "%s(%d): %s:%zu Detected a macro that ends with a semicolon. Possible failures if used.\n",
- __func__, __LINE__, cpd.filename.c_str(), pc->orig_line);
- }
- }
-
- // change := to CT_SQL_ASSIGN Issue #527
- for (pc = chunk_get_head(); pc != nullptr; pc = chunk_get_next_ncnnl(pc))
- {
- if (chunk_is_token(pc, CT_COLON))
- {
- next = chunk_get_next_ncnnl(pc);
-
- if (chunk_is_token(next, CT_ASSIGN))
- {
- // Change ':' + '=' into ':='
- set_chunk_type(pc, CT_SQL_ASSIGN);
- pc->str = ":=";
- pc->orig_col_end = next->orig_col_end;
- chunk_del(next);
- }
- }
- }
-
- // We can handle everything else in the second pass
- pc = chunk_get_head();
- next = chunk_get_next_ncnnl(pc);
-
- while ( pc != nullptr
- && next != nullptr)
- {
- if ( chunk_is_token(pc, CT_DOT)
- && language_is_set(LANG_ALLC))
- {
- set_chunk_type(pc, CT_MEMBER);
- }
-
- if ( chunk_is_token(pc, CT_NULLCOND)
- && language_is_set(LANG_CS))
- {
- set_chunk_type(pc, CT_MEMBER);
- }
-
- // Determine the version stuff (D only)
- if (chunk_is_token(pc, CT_D_VERSION))
- {
- if (chunk_is_token(next, CT_PAREN_OPEN))
- {
- set_chunk_type(pc, CT_D_VERSION_IF);
- }
- else
- {
- if (next->type != CT_ASSIGN)
- {
- LOG_FMT(LERR, "%s(%d): %s:%zu: version: Unexpected token %s\n",
- __func__, __LINE__, cpd.filename.c_str(), pc->orig_line, get_token_name(next->type));
- cpd.error_count++;
- }
- set_chunk_type(pc, CT_WORD);
- }
- }
-
- // Determine the scope stuff (D only)
- if (chunk_is_token(pc, CT_D_SCOPE))
- {
- if (chunk_is_token(next, CT_PAREN_OPEN))
- {
- set_chunk_type(pc, CT_D_SCOPE_IF);
- }
- else
- {
- set_chunk_type(pc, CT_TYPE);
- }
- }
-
- /*
- * Change CT_BASE before CT_PAREN_OPEN to CT_WORD.
- * public myclass() : base() {}
- * -or-
- * var x = (T)base.y;
- */
- if ( chunk_is_token(pc, CT_BASE)
- && ( chunk_is_token(next, CT_PAREN_OPEN)
- || chunk_is_token(next, CT_DOT)))
- {
- set_chunk_type(pc, CT_WORD);
- }
-
- if ( chunk_is_token(pc, CT_ENUM)
- && ( chunk_is_token(next, CT_STRUCT)
- || chunk_is_token(next, CT_CLASS)))
- {
- set_chunk_type(next, CT_ENUM_CLASS);
- }
- chunk_t *next_non_attr = language_is_set(LANG_CPP) ? skip_attribute_next(next) : next;
-
- /*
- * Change CT_WORD after CT_ENUM, CT_UNION, CT_STRUCT, or CT_CLASS to CT_TYPE
- * Change CT_WORD before CT_WORD to CT_TYPE
- */
- if (chunk_is_token(next_non_attr, CT_WORD))
- {
- if ( chunk_is_token(pc, CT_ENUM)
- || chunk_is_token(pc, CT_ENUM_CLASS)
- || chunk_is_token(pc, CT_UNION)
- || chunk_is_token(pc, CT_STRUCT)
- || chunk_is_token(pc, CT_CLASS))
- {
- set_chunk_type(next_non_attr, CT_TYPE);
- }
-
- if (chunk_is_token(pc, CT_WORD))
- {
- set_chunk_type(pc, CT_TYPE);
- }
- }
-
- /*
- * change extern to qualifier if extern isn't followed by a string or
- * an open parenthesis
- */
- if (chunk_is_token(pc, CT_EXTERN))
- {
- if (chunk_is_token(next, CT_STRING))
- {
- // Probably 'extern "C"'
- }
- else if (chunk_is_token(next, CT_PAREN_OPEN))
- {
- // Probably 'extern (C)'
- }
- else
- {
- // Something else followed by a open brace
- chunk_t *tmp = chunk_get_next_ncnnl(next);
-
- if ( tmp == nullptr
- || tmp->type != CT_BRACE_OPEN)
- {
- set_chunk_type(pc, CT_QUALIFIER);
- }
- }
- }
-
- /*
- * Change CT_STAR to CT_PTR_TYPE if preceded by
- * CT_TYPE, CT_QUALIFIER, or CT_PTR_TYPE
- * or by a
- * CT_WORD which is preceded by CT_DC_MEMBER: '::aaa *b'
- */
- if ( (chunk_is_token(next, CT_STAR))
- || ( language_is_set(LANG_CPP)
- && (chunk_is_token(next, CT_CARET)))
- || ( language_is_set(LANG_CS)
- && (chunk_is_token(next, CT_QUESTION))
- && (strcmp(pc->text(), "null") != 0)))
- {
- if ( chunk_is_token(pc, CT_TYPE)
- || chunk_is_token(pc, CT_QUALIFIER)
- || chunk_is_token(pc, CT_PTR_TYPE))
- {
- set_chunk_type(next, CT_PTR_TYPE);
- }
- }
-
- if ( chunk_is_token(pc, CT_TYPE_CAST)
- && chunk_is_token(next, CT_ANGLE_OPEN))
- {
- set_chunk_parent(next, CT_TYPE_CAST);
- in_type_cast = true;
- }
-
- if (chunk_is_token(pc, CT_DECLTYPE))
- {
- flag_cpp_decltype(pc);
- }
-
- // Change angle open/close to CT_COMPARE, if not a template thingy
- if ( chunk_is_token(pc, CT_ANGLE_OPEN)
- && pc->parent_type != CT_TYPE_CAST)
- {
- /*
- * pretty much all languages except C use <> for something other than
- * comparisons. "#include<xxx>" is handled elsewhere.
- */
- if (language_is_set(LANG_OC | LANG_CPP | LANG_CS | LANG_JAVA | LANG_VALA))
- {
- // bug #663
- check_template(pc, in_type_cast);
- }
- else
- {
- // convert CT_ANGLE_OPEN to CT_COMPARE
- set_chunk_type(pc, CT_COMPARE);
- }
- }
-
- if ( chunk_is_token(pc, CT_ANGLE_CLOSE)
- && pc->parent_type != CT_TEMPLATE)
- {
- if (in_type_cast)
- {
- in_type_cast = false;
- set_chunk_parent(pc, CT_TYPE_CAST);
- }
- else
- {
- next = handle_double_angle_close(pc);
- }
- }
-
- if (language_is_set(LANG_D))
- {
- // Check for the D string concat symbol '~'
- if ( chunk_is_token(pc, CT_INV)
- && ( chunk_is_token(prev, CT_STRING)
- || chunk_is_token(prev, CT_WORD)
- || chunk_is_token(next, CT_STRING)))
- {
- set_chunk_type(pc, CT_CONCAT);
- }
-
- // Check for the D template symbol '!' (word + '!' + word or '(')
- if ( chunk_is_token(pc, CT_NOT)
- && chunk_is_token(prev, CT_WORD)
- && ( chunk_is_token(next, CT_PAREN_OPEN)
- || chunk_is_token(next, CT_WORD)
- || chunk_is_token(next, CT_TYPE)
- || chunk_is_token(next, CT_NUMBER)
- || chunk_is_token(next, CT_NUMBER_FP)
- || chunk_is_token(next, CT_STRING)
- || chunk_is_token(next, CT_STRING_MULTI)))
- {
- set_chunk_type(pc, CT_D_TEMPLATE);
- }
-
- // handle "version(unittest) { }" vs "unittest { }"
- if ( chunk_is_token(pc, CT_UNITTEST)
- && chunk_is_token(prev, CT_PAREN_OPEN))
- {
- set_chunk_type(pc, CT_WORD);
- }
-
- // handle 'static if' and merge the tokens
- if ( chunk_is_token(pc, CT_IF)
- && chunk_is_str(prev, "static", 6))
- {
- // delete PREV and merge with IF
- pc->str.insert(0, ' ');
- pc->str.insert(0, prev->str);
- pc->orig_col = prev->orig_col;
- pc->orig_line = prev->orig_line;
- chunk_t *to_be_deleted = prev;
- prev = chunk_get_prev_ncnnl(prev);
-
- if (prev != nullptr)
- {
- chunk_del(to_be_deleted);
- }
- }
- }
-
- if (language_is_set(LANG_CPP))
- {
- // Change Word before '::' into a type
- if ( chunk_is_token(pc, CT_WORD)
- && chunk_is_token(next, CT_DC_MEMBER))
- {
- prev = chunk_get_prev(pc);
-
- if (prev == nullptr) // Issue #3010
- {
- set_chunk_type(pc, CT_TYPE);
- }
- else
- {
- if (chunk_is_token(prev, CT_COLON))
- {
- // nothing to do
- }
- else
- {
- set_chunk_type(pc, CT_TYPE);
- }
- }
- }
-
- // Set parent type for 'if constexpr'
- if ( chunk_is_token(prev, CT_IF)
- && chunk_is_token(pc, CT_QUALIFIER)
- && chunk_is_str(pc, "constexpr", 9))
- {
- set_chunk_type(pc, CT_CONSTEXPR);
- }
- }
-
- // Change get/set to CT_WORD if not followed by a brace open
- if ( chunk_is_token(pc, CT_GETSET)
- && next->type != CT_BRACE_OPEN)
- {
- if ( chunk_is_token(next, CT_SEMICOLON)
- && ( chunk_is_token(prev, CT_BRACE_CLOSE)
- || chunk_is_token(prev, CT_BRACE_OPEN)
- || chunk_is_token(prev, CT_SEMICOLON)))
- {
- set_chunk_type(pc, CT_GETSET_EMPTY);
- set_chunk_parent(next, CT_GETSET);
- }
- else
- {
- set_chunk_type(pc, CT_WORD);
- }
- }
-
- /*
- * Interface is only a keyword in MS land if followed by 'class' or 'struct'
- * likewise, 'class' may be a member name in Java.
- */
- if ( chunk_is_token(pc, CT_CLASS)
- && !CharTable::IsKw1(next->str[0]))
- {
- if ( chunk_is_not_token(next, CT_DC_MEMBER)
- && chunk_is_not_token(next, CT_ATTRIBUTE)) // Issue #2570
- {
- set_chunk_type(pc, CT_WORD);
- }
- else if ( chunk_is_token(prev, CT_DC_MEMBER)
- || chunk_is_token(prev, CT_TYPE))
- {
- set_chunk_type(pc, CT_TYPE);
- }
- else if (chunk_is_token(next, CT_DC_MEMBER))
- {
- chunk_t *next2 = chunk_get_next_nblank(next);
-
- if ( chunk_is_token(next2, CT_INV) // CT_INV hasn't turned into CT_DESTRUCTOR just yet
- || ( chunk_is_token(next2, CT_CLASS) // constructor isn't turned into CT_FUNC* just yet
- && !strcmp(pc->text(), next2->text())))
- {
- set_chunk_type(pc, CT_TYPE);
- }
- }
- }
-
- /*
- * Change item after operator (>=, ==, etc) to a CT_OPERATOR_VAL
- * Usually the next item is part of the operator.
- * In a few cases the next few tokens are part of it:
- * operator + - common case
- * operator >> - need to combine '>' and '>'
- * operator ()
- * operator [] - already converted to TSQUARE
- * operator new []
- * operator delete []
- * operator const char *
- * operator const B&
- * operator std::allocator<U>
- *
- * In all cases except the last, this will put the entire operator value
- * in one chunk.
- */
- if (chunk_is_token(pc, CT_OPERATOR))
- {
- chunk_t *tmp2 = chunk_get_next(next);
-
- // Handle special case of () operator -- [] already handled
- if (chunk_is_token(next, CT_PAREN_OPEN))
- {
- chunk_t *tmp = chunk_get_next(next);
-
- if (chunk_is_token(tmp, CT_PAREN_CLOSE))
- {
- next->str = "()";
- set_chunk_type(next, CT_OPERATOR_VAL);
- chunk_del(tmp);
- next->orig_col_end += 1;
- }
- }
- else if ( chunk_is_token(next, CT_ANGLE_CLOSE)
- && chunk_is_token(tmp2, CT_ANGLE_CLOSE)
- && tmp2->orig_col == next->orig_col_end)
- {
- next->str.append('>');
- next->orig_col_end++;
- set_chunk_type(next, CT_OPERATOR_VAL);
- chunk_del(tmp2);
- }
- else if (next->flags.test(PCF_PUNCTUATOR))
- {
- set_chunk_type(next, CT_OPERATOR_VAL);
- }
- else
- {
- set_chunk_type(next, CT_TYPE);
-
- /*
- * Replace next with a collection of all tokens that are part of
- * the type.
- */
- tmp2 = next;
- chunk_t *tmp;
-
- while ((tmp = chunk_get_next(tmp2)) != nullptr)
- {
- if ( tmp->type != CT_WORD
- && tmp->type != CT_TYPE
- && tmp->type != CT_QUALIFIER
- && tmp->type != CT_STAR
- && tmp->type != CT_CARET
- && tmp->type != CT_AMP
- && tmp->type != CT_TSQUARE)
- {
- break;
- }
- // Change tmp into a type so that space_needed() works right
- make_type(tmp);
- size_t num_sp = space_needed(tmp2, tmp);
-
- while (num_sp-- > 0)
- {
- next->str.append(" ");
- }
- next->str.append(tmp->str);
- tmp2 = tmp;
- }
-
- while ((tmp2 = chunk_get_next(next)) != tmp)
- {
- chunk_del(tmp2);
- }
- set_chunk_type(next, CT_OPERATOR_VAL);
-
- next->orig_col_end = next->orig_col + next->len();
- }
- set_chunk_parent(next, CT_OPERATOR);
-
- LOG_FMT(LOPERATOR, "%s(%d): %zu:%zu operator '%s'\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, next->text());
- }
-
- // Change private, public, protected into either a qualifier or label
- if (chunk_is_token(pc, CT_ACCESS))
- {
- // Handle Qt slots - maybe should just check for a CT_WORD?
- if ( chunk_is_str(next, "slots", 5)
- || chunk_is_str(next, "Q_SLOTS", 7))
- {
- chunk_t *tmp = chunk_get_next(next);
-
- if (chunk_is_token(tmp, CT_COLON))
- {
- next = tmp;
- }
- }
-
- if (chunk_is_token(next, CT_COLON))
- {
- set_chunk_type(next, CT_ACCESS_COLON);
- chunk_t *tmp;
-
- if ((tmp = chunk_get_next_ncnnl(next)) != nullptr)
- {
- chunk_flags_set(tmp, PCF_STMT_START | PCF_EXPR_START);
- }
- }
- else
- {
- set_chunk_type(pc, ( chunk_is_str(pc, "signals", 7)
- || chunk_is_str(pc, "Q_SIGNALS", 9))
- ? CT_WORD : CT_QUALIFIER);
- }
- }
-
- // Look for <newline> 'EXEC' 'SQL'
- if ( ( chunk_is_str_case(pc, "EXEC", 4)
- && chunk_is_str_case(next, "SQL", 3))
- || ( (*pc->str.c_str() == '$')
- && pc->type != CT_SQL_WORD
- /* but avoid breaking tokenization for C# 6 interpolated strings. */
- && ( !language_is_set(LANG_CS)
- || ( chunk_is_token(pc, CT_STRING)
- && (!pc->str.startswith("$\""))
- && (!pc->str.startswith("$@\""))))))
- {
- chunk_t *tmp = chunk_get_prev(pc);
-
- if (chunk_is_newline(tmp))
- {
- if (*pc->str.c_str() == '$')
- {
- set_chunk_type(pc, CT_SQL_EXEC);
-
- if (pc->len() > 1)
- {
- // SPLIT OFF '$'
- chunk_t nc;
-
- nc = *pc;
- pc->str.resize(1);
- pc->orig_col_end = pc->orig_col + 1;
-
- set_chunk_type(&nc, CT_SQL_WORD);
- nc.str.pop_front();
- nc.orig_col++;
- nc.column++;
- chunk_add_after(&nc, pc);
-
- next = chunk_get_next(pc);
- }
- }
- tmp = chunk_get_next(next);
-
- if (chunk_is_str_case(tmp, "BEGIN", 5))
- {
- set_chunk_type(pc, CT_SQL_BEGIN);
- }
- else if (chunk_is_str_case(tmp, "END", 3))
- {
- set_chunk_type(pc, CT_SQL_END);
- }
- else
- {
- set_chunk_type(pc, CT_SQL_EXEC);
- }
-
- // Change words into CT_SQL_WORD until CT_SEMICOLON
- while (tmp != nullptr)
- {
- if (chunk_is_token(tmp, CT_SEMICOLON))
- {
- break;
- }
-
- if ( (tmp->len() > 0)
- && ( unc_isalpha(*tmp->str.c_str())
- || (*tmp->str.c_str() == '$')))
- {
- set_chunk_type(tmp, CT_SQL_WORD);
- }
- tmp = chunk_get_next_ncnnl(tmp);
- }
- }
- }
-
- // handle MS abomination 'for each'
- if ( chunk_is_token(pc, CT_FOR)
- && chunk_is_str(next, "each", 4)
- && (next == chunk_get_next(pc)))
- {
- // merge the two with a space between
- pc->str.append(' ');
- pc->str += next->str;
- pc->orig_col_end = next->orig_col_end;
- chunk_del(next);
- next = chunk_get_next_ncnnl(pc);
-
- // label the 'in'
- if (chunk_is_token(next, CT_PAREN_OPEN))
- {
- chunk_t *tmp = chunk_get_next_ncnnl(next);
-
- while ( tmp != nullptr
- && tmp->type != CT_PAREN_CLOSE)
- {
- if (chunk_is_str(tmp, "in", 2))
- {
- set_chunk_type(tmp, CT_IN);
- break;
- }
- tmp = chunk_get_next_ncnnl(tmp);
- }
- }
- }
-
- /*
- * ObjectiveC allows keywords to be used as identifiers in some situations
- * This is a dirty hack to allow some of the more common situations.
- */
- if (language_is_set(LANG_OC))
- {
- if ( ( chunk_is_token(pc, CT_IF)
- || chunk_is_token(pc, CT_FOR)
- || chunk_is_token(pc, CT_WHILE))
- && !chunk_is_token(next, CT_PAREN_OPEN))
- {
- set_chunk_type(pc, CT_WORD);
- }
-
- if ( chunk_is_token(pc, CT_DO)
- && ( chunk_is_token(prev, CT_MINUS)
- || chunk_is_token(next, CT_SQUARE_CLOSE)))
- {
- set_chunk_type(pc, CT_WORD);
- }
-
- // Fix self keyword back to word when mixing c++/objective-c
- if ( chunk_is_token(pc, CT_THIS)
- && !strcmp(pc->text(), "self")
- && ( chunk_is_token(next, CT_COMMA)
- || chunk_is_token(next, CT_PAREN_CLOSE)))
- {
- set_chunk_type(pc, CT_WORD);
- }
-
- // Fix self keyword back to word when mixing c++/objective-c
- if ( chunk_is_token(pc, CT_THIS)
- && !strcmp(pc->text(), "self")
- && ( chunk_is_token(next, CT_COMMA)
- || chunk_is_token(next, CT_PAREN_CLOSE)))
- {
- set_chunk_type(pc, CT_WORD);
- }
- }
-
- // Another hack to clean up more keyword abuse
- if ( chunk_is_token(pc, CT_CLASS)
- && ( chunk_is_token(prev, CT_DOT)
- || chunk_is_token(next, CT_DOT)
- || chunk_is_token(prev, CT_MEMBER) // Issue #3031
- || chunk_is_token(next, CT_MEMBER)))
- {
- set_chunk_type(pc, CT_WORD);
- }
-
- // Detect Objective C class name
- if ( chunk_is_token(pc, CT_OC_IMPL)
- || chunk_is_token(pc, CT_OC_INTF)
- || chunk_is_token(pc, CT_OC_PROTOCOL))
- {
- if (next->type != CT_PAREN_OPEN)
- {
- set_chunk_type(next, CT_OC_CLASS);
- }
- set_chunk_parent(next, pc->type);
-
- chunk_t *tmp = chunk_get_next_ncnnl(next);
-
- if (tmp != nullptr)
- {
- chunk_flags_set(tmp, PCF_STMT_START | PCF_EXPR_START);
- }
- tmp = chunk_get_next_type(pc, CT_OC_END, pc->level);
-
- if (tmp != nullptr)
- {
- set_chunk_parent(tmp, pc->type);
- }
- }
-
- if (chunk_is_token(pc, CT_OC_INTF))
- {
- chunk_t *tmp = chunk_get_next_ncnnl(pc, scope_e::PREPROC);
-
- while ( tmp != nullptr
- && tmp->type != CT_OC_END)
- {
- if (get_token_pattern_class(tmp->type) != pattern_class_e::NONE)
- {
- LOG_FMT(LOBJCWORD, "%s(%d): @interface %zu:%zu change '%s' (%s) to CT_WORD\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, tmp->text(),
- get_token_name(tmp->type));
- set_chunk_type(tmp, CT_WORD);
- }
- tmp = chunk_get_next_ncnnl(tmp, scope_e::PREPROC);
- }
- }
-
- /*
- * Detect Objective-C categories and class extensions:
- * @interface ClassName (CategoryName)
- * @implementation ClassName (CategoryName)
- * @interface ClassName ()
- * @implementation ClassName ()
- */
- if ( ( get_chunk_parent_type(pc) == CT_OC_IMPL
- || get_chunk_parent_type(pc) == CT_OC_INTF
- || chunk_is_token(pc, CT_OC_CLASS))
- && chunk_is_token(next, CT_PAREN_OPEN))
- {
- set_chunk_parent(next, get_chunk_parent_type(pc));
-
- chunk_t *tmp = chunk_get_next(next);
-
- if ( tmp != nullptr
- && tmp->next != nullptr)
- {
- if (chunk_is_token(tmp, CT_PAREN_CLOSE))
- {
- //set_chunk_type(tmp, CT_OC_CLASS_EXT);
- set_chunk_parent(tmp, get_chunk_parent_type(pc));
- }
- else
- {
- set_chunk_type(tmp, CT_OC_CATEGORY);
- set_chunk_parent(tmp, get_chunk_parent_type(pc));
- }
- }
- tmp = chunk_get_next_type(pc, CT_PAREN_CLOSE, pc->level);
-
- if (tmp != nullptr)
- {
- set_chunk_parent(tmp, get_chunk_parent_type(pc));
- }
- }
-
- /*
- * Detect Objective C @property:
- * @property NSString *stringProperty;
- * @property(nonatomic, retain) NSMutableDictionary *shareWith;
- */
- if (chunk_is_token(pc, CT_OC_PROPERTY))
- {
- if (next->type != CT_PAREN_OPEN)
- {
- chunk_flags_set(next, PCF_STMT_START | PCF_EXPR_START);
- }
- else
- {
- cleanup_objc_property(pc);
- }
- }
-
- /*
- * Detect Objective C @selector:
- * @selector(msgNameWithNoArg)
- * @selector(msgNameWith1Arg:)
- * @selector(msgNameWith2Args:arg2Name:)
- */
- if ( chunk_is_token(pc, CT_OC_SEL)
- && chunk_is_token(next, CT_PAREN_OPEN))
- {
- set_chunk_parent(next, pc->type);
-
- chunk_t *tmp = chunk_get_next(next);
-
- if (tmp != nullptr)
- {
- set_chunk_type(tmp, CT_OC_SEL_NAME);
- set_chunk_parent(tmp, pc->type);
-
- while ((tmp = chunk_get_next_ncnnl(tmp)) != nullptr)
- {
- if (chunk_is_token(tmp, CT_PAREN_CLOSE))
- {
- set_chunk_parent(tmp, CT_OC_SEL);
- break;
- }
- set_chunk_type(tmp, CT_OC_SEL_NAME);
- set_chunk_parent(tmp, pc->type);
- }
- }
- }
-
- // Handle special preprocessor junk
- if (chunk_is_token(pc, CT_PREPROC))
- {
- set_chunk_parent(pc, next->type);
- }
-
- // Detect "pragma region" and "pragma endregion"
- if ( chunk_is_token(pc, CT_PP_PRAGMA)
- && chunk_is_token(next, CT_PREPROC_BODY))
- {
- if ( (strncmp(next->str.c_str(), "region", 6) == 0)
- || (strncmp(next->str.c_str(), "endregion", 9) == 0))
- // TODO: probably better use strncmp
- {
- set_chunk_type(pc, (*next->str.c_str() == 'r') ? CT_PP_REGION : CT_PP_ENDREGION);
-
- set_chunk_parent(prev, pc->type);
- }
- }
-
- // Change 'default(' into a sizeof-like statement
- if ( language_is_set(LANG_CS)
- && chunk_is_token(pc, CT_DEFAULT)
- && chunk_is_token(next, CT_PAREN_OPEN))
- {
- set_chunk_type(pc, CT_SIZEOF);
- }
-
- if ( chunk_is_token(pc, CT_UNSAFE)
- && next->type != CT_BRACE_OPEN)
- {
- set_chunk_type(pc, CT_QUALIFIER);
- }
-
- if ( ( chunk_is_token(pc, CT_USING)
- || ( chunk_is_token(pc, CT_TRY)
- && language_is_set(LANG_JAVA)))
- && chunk_is_token(next, CT_PAREN_OPEN))
- {
- set_chunk_type(pc, CT_USING_STMT);
- }
-
- // Add minimal support for C++0x rvalue references
- if ( chunk_is_token(pc, CT_BOOL)
- && language_is_set(LANG_CPP)
- && chunk_is_str(pc, "&&", 2))
- {
- if (chunk_is_token(prev, CT_TYPE))
- {
- // Issue # 1002
- if (!pc->flags.test(PCF_IN_TEMPLATE))
- {
- set_chunk_type(pc, CT_BYREF);
- }
- }
- }
-
- /*
- * HACK: treat try followed by a colon as a qualifier to handle this:
- * A::A(int) try : B() { } catch (...) { }
- */
- if ( chunk_is_token(pc, CT_TRY)
- && chunk_is_str(pc, "try", 3)
- && chunk_is_token(next, CT_COLON))
- {
- set_chunk_type(pc, CT_QUALIFIER);
- }
-
- /*
- * If Java's 'synchronized' is in a method declaration, it should be
- * a qualifier.
- */
- if ( language_is_set(LANG_JAVA)
- && chunk_is_token(pc, CT_SYNCHRONIZED)
- && next->type != CT_PAREN_OPEN)
- {
- set_chunk_type(pc, CT_QUALIFIER);
- }
-
- // change CT_DC_MEMBER + CT_FOR into CT_DC_MEMBER + CT_FUNC_CALL
- if ( chunk_is_token(pc, CT_FOR)
- && chunk_is_token(pc->prev, CT_DC_MEMBER))
- {
- set_chunk_type(pc, CT_FUNC_CALL);
- }
- // TODO: determine other stuff here
-
- prev = pc;
- pc = next;
- next = chunk_get_next_ncnnl(pc);
- }
-} // tokenize_cleanup
-
-
-bool invalid_open_angle_template(chunk_t *prev)
-{
- if (prev == nullptr)
- {
- return(false);
- }
- // A template requires a word/type right before the open angle
- return( prev->type != CT_WORD
- && prev->type != CT_TYPE
- && prev->type != CT_COMMA
- && prev->type != CT_QUALIFIER
- && prev->type != CT_OPERATOR_VAL
- && get_chunk_parent_type(prev) != CT_OPERATOR);
-}
-
-
-static void check_template(chunk_t *start, bool in_type_cast)
-{
- LOG_FMT(LTEMPL, "%s(%d): orig_line %zu, orig_col %zu:\n",
- __func__, __LINE__, start->orig_line, start->orig_col);
-
- chunk_t *prev = chunk_get_prev_ncnnl(start, scope_e::PREPROC);
-
- if (prev == nullptr)
- {
- return;
- }
- chunk_t *end;
- chunk_t *pc;
-
- if (chunk_is_token(prev, CT_TEMPLATE))
- {
- LOG_FMT(LTEMPL, "%s(%d): CT_TEMPLATE:\n", __func__, __LINE__);
-
- // We have: "template< ... >", which is a template declaration
- size_t level = 1;
- size_t parens = 0;
-
- for (pc = chunk_get_next_ncnnl(start, scope_e::PREPROC);
- pc != nullptr;
- pc = chunk_get_next_ncnnl(pc, scope_e::PREPROC))
- {
- LOG_FMT(LTEMPL, "%s(%d): type is %s, level is %zu\n",
- __func__, __LINE__, get_token_name(pc->type), level);
-
- if ( (pc->str[0] == '>')
- && (pc->len() > 1))
- {
- if (pc->str[1] == '=') // Issue #1462 and #2565
- {
- LOG_FMT(LTEMPL, "%s(%d): do not split '%s' at orig_line %zu, orig_col %zu\n",
- __func__, __LINE__, pc->text(), pc->orig_line, pc->orig_col);
- }
- else
- {
- LOG_FMT(LTEMPL, "%s(%d): {split '%s' at orig_line %zu, orig_col %zu}\n",
- __func__, __LINE__, pc->text(), pc->orig_line, pc->orig_col);
- split_off_angle_close(pc);
- }
- }
-
- if (chunk_is_token(pc, CT_DECLTYPE))
- {
- flag_cpp_decltype(pc);
- }
- else if (chunk_is_token(pc, CT_PAREN_OPEN))
- {
- ++parens;
- }
- else if (chunk_is_token(pc, CT_PAREN_CLOSE))
- {
- --parens;
- }
-
- if (parens == 0)
- {
- if (chunk_is_str(pc, "<", 1))
- {
- level++;
- }
- else if (chunk_is_str(pc, ">", 1))
- {
- if (level == 0)
- {
- fprintf(stderr, "%s(%d): level is ZERO, cannot be decremented, at line %zu, column %zu\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col);
- log_flush(true);
- exit(EX_SOFTWARE);
- }
- level--;
-
- if (level == 0)
- {
- break;
- }
- }
- }
- }
-
- end = pc;
- }
- else
- {
- /*
- * We may have something like "a< ... >", which is a template where
- * '...' may consist of anything except a semicolon, unbalanced
- * parens, or braces (with one exception being braced initializers
- * embedded within decltypes).
- *
- * For example, braces may be encountered as such in the following
- * snippet of valid C++ code:
- *
- * template<typename T,
- * typename = enable_if_t<is_same<typename decay<T>::type,
- * decltype (make_index_sequence<5> { })>::value>>
- * void foo(T &&arg)
- * {
- *
- * }
- *
- * Finally, if we are inside an 'if' statement and hit a CT_BOOL,
- * then it isn't a template.
- */
-
- if (invalid_open_angle_template(prev))
- {
- LOG_FMT(LTEMPL, "%s(%d): - after type %s + ( - Not a template\n",
- __func__, __LINE__, get_token_name(prev->type));
- set_chunk_type(start, CT_COMPARE);
- return;
- }
- LOG_FMT(LTEMPL, "%s(%d): - prev->type is %s -\n",
- __func__, __LINE__, get_token_name(prev->type));
-
- // Scan back and make sure we aren't inside square parenthesis
- bool in_if = false;
- bool hit_semicolon = false;
- pc = start;
-
- while ((pc = chunk_get_prev_ncnnl(pc, scope_e::PREPROC)) != nullptr)
- {
- if ( ( chunk_is_token(pc, CT_SEMICOLON)
- && hit_semicolon)
- || chunk_is_token(pc, CT_SQUARE_CLOSE))
- {
- break;
- }
-
- if (chunk_is_token(pc, CT_DECLTYPE))
- {
- flag_cpp_decltype(pc);
- }
-
- if (chunk_is_token(pc, CT_BRACE_OPEN))
- {
- if ( !pc->flags.test(PCF_IN_DECLTYPE)
- || !detect_cpp_braced_init_list(pc->prev, pc))
- {
- break;
- }
- flag_cpp_braced_init_list(pc->prev, pc);
- }
-
- if ( chunk_is_token(pc, CT_BRACE_CLOSE)
- && get_chunk_parent_type(pc) != CT_BRACED_INIT_LIST
- && !pc->flags.test(PCF_IN_DECLTYPE))
- {
- break;
- }
-
- if ( chunk_is_token(pc, CT_SEMICOLON)
- && !hit_semicolon)
- {
- hit_semicolon = true;
- }
-
- if ( ( ( chunk_is_token(pc, CT_IF)
- || chunk_is_token(pc, CT_RETURN)
- || chunk_is_token(pc, CT_WHILE)
- || chunk_is_token(pc, CT_WHILE_OF_DO))
- && !hit_semicolon)
- || ( chunk_is_token(pc, CT_FOR)
- && hit_semicolon))
- {
- in_if = true;
- break;
- }
- }
- /*
- * Scan forward to the angle close
- * If we have a comparison in there, then it can't be a template.
- */
- const int max_token_count = 1024;
- c_token_t tokens[max_token_count];
- size_t num_tokens = 1;
-
- tokens[0] = CT_ANGLE_OPEN;
-
- for (pc = chunk_get_next_ncnnl(start, scope_e::PREPROC);
- pc != nullptr;
- pc = chunk_get_next_ncnnl(pc, scope_e::PREPROC))
- {
- constexpr static auto LCURRENT = LTEMPL;
-
- LOG_FMT(LTEMPL, "%s(%d): pc->orig_line is %zu, pc->orig_col is %zu, type is %s, num_tokens is %zu\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, get_token_name(pc->type), num_tokens);
-
- log_rule_B("tok_split_gte");
-
- if (chunk_is_token(pc, CT_BRACE_OPEN)) // Issue #2886
- {
- // look for the closing brace
- chunk_t *A = chunk_skip_to_match(pc);
- LOG_FMT(LTEMPL, "%s(%d): A->orig_line is %zu, A->orig_col is %zu, type is %s\n",
- __func__, __LINE__, A->orig_line, A->orig_col, get_token_name(A->type));
- pc = chunk_get_next(A);
- }
-
- if ( (tokens[num_tokens - 1] == CT_ANGLE_OPEN)
- && (pc->str[0] == '>')
- && (pc->len() > 1)
- && ( options::tok_split_gte()
- || ( ( chunk_is_str(pc, ">>", 2)
- || chunk_is_str(pc, ">>>", 3))
- && ( num_tokens >= 2
- || ( num_tokens >= 1
- && in_type_cast)))))
- {
- LOG_FMT(LTEMPL, "%s(%d): {split '%s' at orig_line %zu, orig_col %zu}\n",
- __func__, __LINE__, pc->text(), pc->orig_line, pc->orig_col);
-
- split_off_angle_close(pc);
- }
-
- if (chunk_is_str(pc, "<", 1))
- {
- if ( num_tokens > 0 && (tokens[num_tokens - 1] == CT_PAREN_OPEN)
- && invalid_open_angle_template(pc->prev))
- {
- set_chunk_type(pc, CT_COMPARE); // Issue #3127
- }
- else
- {
- tokens[num_tokens] = CT_ANGLE_OPEN;
- num_tokens++;
- }
- }
- else if (chunk_is_str(pc, ">", 1))
- {
- if (num_tokens > 0 && (tokens[num_tokens - 1] == CT_PAREN_OPEN))
- {
- handle_double_angle_close(pc);
- }
- else if (--num_tokens <= 0)
- {
- break;
- }
- else if (tokens[num_tokens] != CT_ANGLE_OPEN)
- {
- break; // unbalanced parentheses
- }
- }
- else if ( in_if
- && ( chunk_is_token(pc, CT_BOOL)
- || chunk_is_token(pc, CT_COMPARE)))
- {
- break;
- }
- else if (chunk_is_token(pc, CT_BRACE_OPEN))
- {
- if ( !pc->flags.test(PCF_IN_DECLTYPE)
- || !detect_cpp_braced_init_list(pc->prev, pc))
- {
- break;
- }
- auto brace_open = chunk_get_next_ncnnl(pc);
- auto brace_close = chunk_skip_to_match(brace_open);
-
- set_chunk_parent(brace_open, CT_BRACED_INIT_LIST);
- set_chunk_parent(brace_close, CT_BRACED_INIT_LIST);
- }
- else if ( chunk_is_token(pc, CT_BRACE_CLOSE)
- && get_chunk_parent_type(pc) != CT_BRACED_INIT_LIST
- && !pc->flags.test(PCF_IN_DECLTYPE))
- {
- break;
- }
- else if (chunk_is_token(pc, CT_SEMICOLON))
- {
- break;
- }
- else if (chunk_is_token(pc, CT_PAREN_OPEN))
- {
- if (num_tokens >= max_token_count - 1)
- {
- break;
- }
- tokens[num_tokens] = CT_PAREN_OPEN;
- num_tokens++;
- }
- else if ( chunk_is_token(pc, CT_QUESTION) // Issue #2949
- && language_is_set(LANG_CPP))
- {
- break;
- }
- else if (chunk_is_token(pc, CT_PAREN_CLOSE))
- {
- if (num_tokens == 0)
- {
- fprintf(stderr, "%s(%d): num_tokens is ZERO, cannot be decremented, at line %zu, column %zu\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col);
- log_flush(true);
- exit(EX_SOFTWARE);
- }
- num_tokens--;
-
- if (tokens[num_tokens] != CT_PAREN_OPEN)
- {
- break; // unbalanced parentheses
- }
- }
- }
-
- end = pc;
- }
-
- if (chunk_is_token(end, CT_ANGLE_CLOSE))
- {
- pc = chunk_get_next_ncnnl(end, scope_e::PREPROC);
-
- if ( pc == nullptr
- || pc->type != CT_NUMBER)
- {
- LOG_FMT(LTEMPL, "%s(%d): Template detected\n", __func__, __LINE__);
- LOG_FMT(LTEMPL, "%s(%d): from orig_line %zu, orig_col %zu\n",
- __func__, __LINE__, start->orig_line, start->orig_col);
- LOG_FMT(LTEMPL, "%s(%d): to orig_line %zu, orig_col %zu\n",
- __func__, __LINE__, end->orig_line, end->orig_col);
- set_chunk_parent(start, CT_TEMPLATE);
-
- check_template_args(start, end);
-
- set_chunk_parent(end, CT_TEMPLATE);
- chunk_flags_set(end, PCF_IN_TEMPLATE);
- return;
- }
- }
- LOG_FMT(LTEMPL, "%s(%d): - Not a template: end = %s\n",
- __func__, __LINE__, (end != nullptr) ? get_token_name(end->type) : "<null>");
- set_chunk_type(start, CT_COMPARE);
-} // check_template
-
-
-static void check_template_arg(chunk_t *start, chunk_t *end)
-{
- LOG_FMT(LTEMPL, "%s(%d): Template argument detected\n", __func__, __LINE__);
- LOG_FMT(LTEMPL, "%s(%d): from orig_line %zu, orig_col %zu\n",
- __func__, __LINE__, start->orig_line, start->orig_col);
- LOG_FMT(LTEMPL, "%s(%d): to orig_line %zu, orig_col %zu\n",
- __func__, __LINE__, end->orig_line, end->orig_col);
-
- // Issue #1127
- // MyFoo<mySize * 2> foo1;
- // MyFoo<2*mySize * 2> foo1;
- // Issue #1346
- // use it as ONE line:
- // typename std::enable_if<!std::is_void<T>::value,
- // QVector<T> >::type dummy(const std::function<T*(const S&)>&
- // pFunc, const QVector<S>& pItems)
- // we need two runs
- // 1. run to test if expression is numeric
- bool expressionIsNumeric = false;
- chunk_t *pc = start;
-
- while (pc != end)
- {
- chunk_t *next = chunk_get_next_ncnnl(pc, scope_e::PREPROC);
- // a test "if (next == nullptr)" is not necessary
- chunk_flags_set(pc, PCF_IN_TEMPLATE);
-
- if ( chunk_is_token(pc, CT_DECLTYPE)
- || chunk_is_token(pc, CT_SIZEOF))
- {
- expressionIsNumeric = true;
- break;
- }
-
- if (next->type != CT_PAREN_OPEN)
- {
- if ( chunk_is_token(pc, CT_NUMBER)
- || chunk_is_token(pc, CT_ARITH)
- || chunk_is_token(pc, CT_SHIFT))
- {
- expressionIsNumeric = true;
- break;
- }
- }
- pc = next;
- }
- LOG_FMT(LTEMPL, "%s(%d): expressionIsNumeric is %s\n",
- __func__, __LINE__, expressionIsNumeric ? "TRUE" : "FALSE");
-
- // 2. run to do the work
- if (!expressionIsNumeric)
- {
- pc = start;
-
- while (pc != end)
- {
- chunk_t *next = chunk_get_next_ncnnl(pc, scope_e::PREPROC);
- // a test "if (next == nullptr)" is not necessary
- chunk_flags_set(pc, PCF_IN_TEMPLATE);
-
- chunk_t *prev = chunk_get_prev_ncnnl(pc, scope_e::PREPROC);
- chunk_t *prev2 = chunk_get_prev_ncnnl(prev, scope_e::PREPROC);
-
- if ( chunk_is_token(prev, CT_ELLIPSIS) // Issue #3309
- && chunk_is_token(prev2, CT_TYPENAME))
- {
- set_chunk_type(pc, CT_PARAMETER_PACK);
- }
- else
- {
- make_type(pc);
- }
- pc = next;
- }
- }
-} // check_template_arg
-
-
-static void check_template_args(chunk_t *start, chunk_t *end)
-{
- std::vector<c_token_t> tokens;
-
- // Scan for commas
- chunk_t *pc;
-
- for (pc = chunk_get_next_ncnnl(start, scope_e::PREPROC);
- pc != nullptr && pc != end;
- pc = chunk_get_next_ncnnl(pc, scope_e::PREPROC))
- {
- switch (pc->type)
- {
- case CT_COMMA:
-
- if (tokens.empty())
- {
- // Check current argument
- check_template_args(start, pc);
- start = pc;
- }
- break;
-
- case CT_ANGLE_OPEN:
- case CT_PAREN_OPEN:
- tokens.push_back(pc->type);
- break;
-
- case CT_ANGLE_CLOSE:
-
- if ( !tokens.empty()
- && tokens.back() == CT_ANGLE_OPEN)
- {
- tokens.pop_back();
- }
- break;
-
- case CT_PAREN_CLOSE:
-
- if ( !tokens.empty()
- && tokens.back() == CT_PAREN_OPEN)
- {
- tokens.pop_back();
- }
- break;
-
- default:
- break;
- }
- }
-
- // Check whatever is left
- check_template_arg(start, end);
-} // check_template_args
-
-
-static void cleanup_objc_property(chunk_t *start)
-{
- assert(chunk_is_token(start, CT_OC_PROPERTY));
-
- chunk_t *open_paren = chunk_get_next_type(start, CT_PAREN_OPEN, start->level);
-
- if (open_paren == nullptr)
- {
- LOG_FMT(LTEMPL, "%s(%d): Property is not followed by openning paren\n", __func__, __LINE__);
- return;
- }
- set_chunk_parent(open_paren, start->type);
-
- chunk_t *tmp = chunk_get_next_type(start, CT_PAREN_CLOSE, start->level);
-
- if (tmp != nullptr)
- {
- set_chunk_parent(tmp, start->type);
- tmp = chunk_get_next_ncnnl(tmp);
-
- if (tmp != nullptr)
- {
- chunk_flags_set(tmp, PCF_STMT_START | PCF_EXPR_START);
-
- tmp = chunk_get_next_type(tmp, CT_SEMICOLON, start->level);
-
- if (tmp != nullptr)
- {
- set_chunk_parent(tmp, start->type);
- }
- }
- }
- mark_selectors_in_property_with_open_paren(open_paren);
- mark_attributes_in_property_with_open_paren(open_paren);
-}
-
-
-static void mark_selectors_in_property_with_open_paren(chunk_t *open_paren)
-{
- assert(chunk_is_token(open_paren, CT_PAREN_OPEN));
-
- chunk_t *tmp = open_paren;
-
- while ( tmp != nullptr
- && tmp->type != CT_PAREN_CLOSE)
- {
- if ( chunk_is_token(tmp, CT_WORD)
- && ( chunk_is_str(tmp, "setter", 6)
- || chunk_is_str(tmp, "getter", 6)))
- {
- tmp = tmp->next;
-
- while ( tmp != nullptr
- && tmp->type != CT_COMMA
- && tmp->type != CT_PAREN_CLOSE)
- {
- if ( chunk_is_token(tmp, CT_WORD)
- || chunk_is_str(tmp, ":", 1))
- {
- set_chunk_type(tmp, CT_OC_SEL_NAME);
- }
- tmp = tmp->next;
- }
- }
- else
- {
- tmp = tmp->next;
- }
- }
-}
-
-
-static void mark_attributes_in_property_with_open_paren(chunk_t *open_paren)
-{
- assert(chunk_is_token(open_paren, CT_PAREN_OPEN));
-
- chunk_t *tmp = open_paren;
-
- while ( tmp != nullptr
- && tmp->type != CT_PAREN_CLOSE)
- {
- if ( ( chunk_is_token(tmp, CT_COMMA)
- || chunk_is_token(tmp, CT_PAREN_OPEN))
- && ( chunk_is_token(tmp->next, CT_WORD)
- || chunk_is_token(tmp->next, CT_TYPE)))
- {
- set_chunk_type(tmp->next, CT_OC_PROPERTY_ATTR);
- }
- tmp = tmp->next;
- }
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/tokenize_cleanup.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/tokenize_cleanup.h
deleted file mode 100644
index 4d85cfc4..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/tokenize_cleanup.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/**
- * @file tokenize_cleanup.h
- * prototypes for tokenize_cleanup.c
- *
- * @author Ben Gardner
- * @license GPL v2+
- */
-#ifndef TOKENIZ_CLEANUP_H_INCLUDED
-#define TOKENIZ_CLEANUP_H_INCLUDED
-
-#include "uncrustify_types.h"
-
-
-/**
- * @brief clean up tokens
- *
- * Change certain token types based on simple sequence.
- * Example: change '[' + ']' to '[]'
- * Note that level info is not yet available, so it is OK to do all
- * processing that doesn't need to know level info. (that's very little!)
- */
-void tokenize_cleanup(void);
-
-
-void tokenize_trailing_return_types(void);
-
-
-void split_off_angle_close(chunk_t *pc);
-
-
-#endif /* TOKENIZ_CLEANUP_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/unc_tools.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/unc_tools.cpp
deleted file mode 100644
index f20b5c4a..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/unc_tools.cpp
+++ /dev/null
@@ -1,496 +0,0 @@
-/**
- * @file unc_tools.cpp
- * This file contains lot of tools for debugging
- *
- * @author Guy Maurel
- * October 2015- 2021
- * @license GPL v2+
- */
-
-#include "unc_tools.h"
-
-#include "args.h"
-#include "output.h"
-
-
-/*
- * the test suite Coveralls: https://coveralls.io
- * will complains because these functions are only
- * used at developement time.
- * Don't worry about unsed lines for the functions:
- * prot_the_line
- * prot_the_source
- * examine_Data
- * dump_out
- * dump_in
- */
-
-static size_t counter = 0;
-static size_t tokenCounter;
-
-
-/* protocol of the line
- * examples:
- * prot_the_line(__func__, __LINE__, pc->orig_line, 0);
- * prot_the_line(__func__, __LINE__, 0, 0);
- * prot_the_line(__func__, __LINE__, 6, 5);
- * prot_the_source(__LINE__);
- * log_pcf_flags(LSYS, pc->flags);
- *
- * if actual_line is zero, use the option debug_line_number_to_protocol.
- * if the value is zero, don't make any protocol and return.
- *
- * if partNumber is zero, all the tokens of the line are shown,
- * if partNumber is NOT zero, only the token with this partNumber is shown.
- *
- * prot_the_line_pc(pc_sub, __func__, __LINE__, 6, 5);
- * to get a protocol of a sub branch, which begins with pc_sub
- */
-void prot_the_line(const char *func_name, int theLine, unsigned int actual_line, size_t partNumber)
-{
- prot_the_line_pc(chunk_get_head(), func_name, theLine, actual_line, partNumber);
-}
-
-
-void prot_the_line_pc(chunk_t *pc_sub, const char *func_name, int theLine, unsigned int actual_line, size_t partNumber)
-{
- if (actual_line == 0)
- {
- // use the option debug_line_number_to_protocol.
- actual_line = options::debug_line_number_to_protocol();
-
- if (actual_line == 0)
- {
- // don't make any protocol.
- return;
- }
- }
- counter++;
- tokenCounter = 0;
- LOG_FMT(LGUY, "Prot_the_line:(%s:%d)(%zu)\n", func_name, theLine, counter);
-
- for (chunk_t *pc = pc_sub; pc != nullptr; pc = pc->next)
- {
- if (pc->orig_line == actual_line)
- {
- tokenCounter++;
-
- if ( partNumber == 0
- || partNumber == tokenCounter)
- {
- LOG_FMT(LGUY, " orig_line is %d, (%zu) ", actual_line, tokenCounter);
-
- if (chunk_is_token(pc, CT_VBRACE_OPEN))
- {
- LOG_FMT(LGUY, "<VBRACE_OPEN>, ");
- }
- else if (chunk_is_token(pc, CT_NEWLINE))
- {
- LOG_FMT(LGUY, "<NL>(nl_count is %zu), ", pc->nl_count);
- }
- else if (chunk_is_token(pc, CT_VBRACE_CLOSE))
- {
- LOG_FMT(LGUY, "<CT_VBRACE_CLOSE>, ");
- }
- else if (chunk_is_token(pc, CT_VBRACE_OPEN))
- {
- LOG_FMT(LGUY, "<CT_VBRACE_OPEN>, ");
- }
- else if (chunk_is_token(pc, CT_SPACE))
- {
- LOG_FMT(LGUY, "<CT_SPACE>, ");
- }
- else if (chunk_is_token(pc, CT_IGNORED))
- {
- LOG_FMT(LGUY, "<IGNORED> ");
- }
- else
- {
- LOG_FMT(LGUY, "text() '%s', ", pc->text());
- }
- LOG_FMT(LGUY, " column is %zu, pp_level is %zu, type is %s, parent_type is %s, orig_col is %zu,",
- pc->column, pc->pp_level, get_token_name(pc->type),
- get_token_name(get_chunk_parent_type(pc)), pc->orig_col);
-
- if (chunk_is_token(pc, CT_IGNORED))
- {
- LOG_FMT(LGUY, "\n");
- }
- else
- {
- LOG_FMT(LGUY, " pc->flags: ");
- log_pcf_flags(LGUY, pc->flags);
- }
-
- if (pc->tracking != nullptr)
- {
- LOG_FMT(LGUY, " Tracking info are: \n");
- LOG_FMT(LGUY, " number of track(s) %zu\n", pc->tracking->size());
-
- for (size_t track = 0; track < pc->tracking->size(); track++)
- {
- track_list *A = pc->tracking;
- Track_nr B = A->at(track);
- size_t Bfirst = B.first;
- char *Bsecond = B.second;
-
- LOG_FMT(LGUY, " %zu, tracking number is %zu\n", track, Bfirst);
- LOG_FMT(LGUY, " %zu, rule is %s\n", track, Bsecond);
- }
- }
- }
- }
- }
-
- LOG_FMT(LGUY, "\n");
-} // prot_the_line_pc
-
-
-void prot_all_lines(const char *func_name, int theLine)
-{
- counter++;
- tokenCounter = 0;
- size_t lineNumber = 1;
-
- LOG_FMT(LGUY, "Prot_all_lines:(%s:%d)(%zu)\n", func_name, theLine, counter);
-
- for (chunk_t *pc = chunk_get_head(); pc != nullptr; pc = pc->next)
- {
- tokenCounter++;
-
- LOG_FMT(LGUY, " orig_line is %zu,%zu, pp_level is %zu, ", lineNumber, tokenCounter, pc->pp_level);
-
- if (chunk_is_token(pc, CT_VBRACE_OPEN))
- {
- LOG_FMT(LGUY, "<VBRACE_OPEN>, ");
- }
- else if (chunk_is_token(pc, CT_NEWLINE))
- {
- LOG_FMT(LGUY, "<NL>(nl_count is %zu), ", pc->nl_count);
- tokenCounter = 0;
- lineNumber = lineNumber + pc->nl_count;
- }
- else if (chunk_is_token(pc, CT_VBRACE_CLOSE))
- {
- LOG_FMT(LGUY, "<CT_VBRACE_CLOSE>, ");
- }
- else if (chunk_is_token(pc, CT_VBRACE_OPEN))
- {
- LOG_FMT(LGUY, "<CT_VBRACE_OPEN>, ");
- }
- else if (chunk_is_token(pc, CT_SPACE))
- {
- LOG_FMT(LGUY, "<CT_SPACE>, ");
- }
- else if (chunk_is_token(pc, CT_IGNORED))
- {
- LOG_FMT(LGUY, "<IGNORED> ");
- }
- else
- {
- LOG_FMT(LGUY, "text() '%s', ", pc->text());
- }
- LOG_FMT(LGUY, " column is %zu, type is %s\n",
- pc->column, get_token_name(pc->type));
- }
-} // prot_all_lines
-
-
-void prot_the_source(int theLine)
-{
- counter++;
- LOG_FMT(LGUY, "Prot_the_source:(%d)(%zu)\n", theLine, counter);
- output_text(stderr);
-}
-
-
-// examples:
-// examine_Data(__func__, __LINE__, n);
-void examine_Data(const char *func_name, int theLine, int what)
-{
- LOG_FMT(LGUY, "\n%s:", func_name);
-
- chunk_t *pc;
-
- switch (what)
- {
- case 1:
-
- for (pc = chunk_get_head(); pc != nullptr; pc = pc->next)
- {
- if ( chunk_is_token(pc, CT_SQUARE_CLOSE)
- || chunk_is_token(pc, CT_TSQUARE))
- {
- LOG_FMT(LGUY, "\n");
- LOG_FMT(LGUY, "1:(%d),", theLine);
- LOG_FMT(LGUY, "%s, orig_col=%zu, orig_col_end=%zu\n", pc->text(), pc->orig_col, pc->orig_col_end);
- }
- }
-
- break;
-
- case 2:
- LOG_FMT(LGUY, "2:(%d)\n", theLine);
-
- for (pc = chunk_get_head(); pc != nullptr; pc = pc->next)
- {
- if (pc->orig_line == 7)
- {
- if (chunk_is_token(pc, CT_NEWLINE))
- {
- LOG_FMT(LGUY, "(%zu)<NL> col=%zu\n\n", pc->orig_line, pc->orig_col);
- }
- else
- {
- LOG_FMT(LGUY, "(%zu)%s %s, col=%zu, column=%zu\n", pc->orig_line, pc->text(), get_token_name(pc->type), pc->orig_col, pc->column);
- }
- }
- }
-
- break;
-
- case 3:
- LOG_FMT(LGUY, "3:(%d)\n", theLine);
-
- for (pc = chunk_get_head(); pc != nullptr; pc = pc->next)
- {
- if (chunk_is_token(pc, CT_NEWLINE))
- {
- LOG_FMT(LGUY, "(%zu)<NL> col=%zu\n\n", pc->orig_line, pc->orig_col);
- }
- else
- {
- LOG_FMT(LGUY, "(%zu)%s %s, col=%zu, column=%zu\n", pc->orig_line, pc->text(), get_token_name(pc->type), pc->orig_col, pc->column);
- }
- }
-
- break;
-
- case 4:
- LOG_FMT(LGUY, "4:(%d)\n", theLine);
-
- for (pc = chunk_get_head(); pc != nullptr; pc = pc->next)
- {
- if (pc->orig_line == 6)
- {
- if (chunk_is_token(pc, CT_NEWLINE))
- {
- LOG_FMT(LGUY, "(%zu)<NL> col=%zu\n\n", pc->orig_line, pc->orig_col);
- }
- else
- {
- LOG_FMT(LGUY, "(%zu)%s %s, col=%zu, column=%zu\n", pc->orig_line, pc->text(), get_token_name(pc->type), pc->orig_col, pc->column);
- }
- }
- }
-
- break;
-
- default:
- break;
- } // switch
-} // examine_Data
-
-
-void dump_out(unsigned int type)
-{
- char dumpFileName[300];
-
- if (cpd.dumped_file == nullptr)
- {
- sprintf(dumpFileName, "%s.%u", cpd.filename.c_str(), type);
- }
- else
- {
- sprintf(dumpFileName, "%s.%u", cpd.dumped_file, type);
- }
- FILE *D_file = fopen(dumpFileName, "w");
-
- if (D_file != nullptr)
- {
- for (chunk_t *pc = chunk_get_head(); pc != nullptr; pc = pc->next)
- {
- fprintf(D_file, "[%p]\n", pc);
- fprintf(D_file, " type %s\n", get_token_name(pc->type));
- fprintf(D_file, " orig_line %zu\n", pc->orig_line);
- fprintf(D_file, " orig_col %zu\n", pc->orig_col);
- fprintf(D_file, " orig_col_end %zu\n", pc->orig_col_end);
-
- if (pc->orig_prev_sp != 0)
- {
- fprintf(D_file, " orig_prev_sp %u\n", pc->orig_prev_sp);
- }
-
- if (pc->column != 0)
- {
- fprintf(D_file, " column %zu\n", pc->column);
- }
-
- if (pc->column_indent != 0)
- {
- fprintf(D_file, " column_indent %zu\n", pc->column_indent);
- }
-
- if (pc->nl_count != 0)
- {
- fprintf(D_file, " nl_count %zu\n", pc->nl_count);
- }
-
- if (pc->level != 0)
- {
- fprintf(D_file, " level %zu\n", pc->level);
- }
-
- if (pc->brace_level != 0)
- {
- fprintf(D_file, " brace_level %zu\n", pc->brace_level);
- }
-
- if (pc->pp_level != 0)
- {
- fprintf(D_file, " pp_level %zu\n", pc->pp_level);
- }
-
- if (pc->after_tab != 0)
- {
- fprintf(D_file, " after_tab %d\n", pc->after_tab);
- }
-
- if (pc->type != CT_NEWLINE)
- {
- fprintf(D_file, " text %s\n", pc->text());
- }
- }
-
- fclose(D_file);
- }
-} // dump_out
-
-
-void dump_in(unsigned int type)
-{
- char buffer[256];
- bool aNewChunkIsFound = false;
- chunk_t chunk;
- char dumpFileName[300];
-
- if (cpd.dumped_file == nullptr)
- {
- sprintf(dumpFileName, "%s.%u", cpd.filename.c_str(), type);
- }
- else
- {
- sprintf(dumpFileName, "%s.%u", cpd.dumped_file, type);
- }
- FILE *D_file = fopen(dumpFileName, "r");
-
- if (D_file != nullptr)
- {
- unsigned int lineNumber = 0;
-
- while (fgets(buffer, sizeof(buffer), D_file) != nullptr)
- {
- ++lineNumber;
-
- if (aNewChunkIsFound)
- {
- // look for the next chunk
- char first = buffer[0];
-
- if (first == '[')
- {
- aNewChunkIsFound = false;
- // add the chunk in the list
- chunk_add_before(&chunk, nullptr);
- chunk.reset();
- aNewChunkIsFound = true;
- continue;
- }
- // the line as the form
- // part value
- // Split the line
- const int max_parts_count = 3;
- char *parts[max_parts_count];
- int parts_count = Args::SplitLine(buffer, parts, max_parts_count - 1);
-
- if (parts_count != 2)
- {
- exit(EX_SOFTWARE);
- }
-
- if (strcasecmp(parts[0], "type") == 0)
- {
- c_token_t tokenName = find_token_name(parts[1]);
- set_chunk_type(&chunk, tokenName);
- }
- else if (strcasecmp(parts[0], "orig_line") == 0)
- {
- chunk.orig_line = strtol(parts[1], nullptr, 0);
- }
- else if (strcasecmp(parts[0], "orig_col") == 0)
- {
- chunk.orig_col = strtol(parts[1], nullptr, 0);
- }
- else if (strcasecmp(parts[0], "orig_col_end") == 0)
- {
- chunk.orig_col_end = strtol(parts[1], nullptr, 0);
- }
- else if (strcasecmp(parts[0], "orig_prev_sp") == 0)
- {
- chunk.orig_prev_sp = strtol(parts[1], nullptr, 0);
- }
- else if (strcasecmp(parts[0], "column") == 0)
- {
- chunk.column = strtol(parts[1], nullptr, 0);
- }
- else if (strcasecmp(parts[0], "nl_count") == 0)
- {
- chunk.nl_count = strtol(parts[1], nullptr, 0);
- }
- else if (strcasecmp(parts[0], "text") == 0)
- {
- if (chunk.type != CT_NEWLINE)
- {
- chunk.str = parts[1];
- }
- }
- else
- {
- fprintf(stderr, "on line=%d, for '%s'\n", lineNumber, parts[0]);
- log_flush(true);
- exit(EX_SOFTWARE);
- }
- }
- else
- {
- // look for a new chunk
- char first = buffer[0];
-
- if (first == '[')
- {
- aNewChunkIsFound = true;
- chunk.reset();
- }
- }
- }
- // add the last chunk in the list
- chunk_add_before(&chunk, nullptr);
- fclose(D_file);
- }
- else
- {
- fprintf(stderr, "FATAL: file not found '%s'\n", dumpFileName);
- log_flush(true);
- exit(EX_SOFTWARE);
- }
-} // dump_in
-
-
-size_t number = 0;
-
-
-size_t get_A_Number()
-{
- number = number + 1;
- return(number);
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/unc_tools.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/unc_tools.h
deleted file mode 100644
index 3ee393d7..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/unc_tools.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/**
- * @file unc_tools.h
- *
- * @author Guy Maurel
- * October 2015, 2016, 2017, 2018, 2019, 2020, 2021
- * @license GPL v2+
- */
-
-#ifndef UNC_TOOLS_H_INCLUDED
-#define UNC_TOOLS_H_INCLUDED
-
-#include "prototypes.h"
-
-#if defined DEBUG
-#define PROT_THE_LINE prot_the_line(__func__, __LINE__, 0, 0);
-#else
-#define PROT_THE_LINE /* do nothing */;
-#endif
-
-
-void prot_the_line(const char *func_name, int theLine, unsigned int actual_line, size_t partNumber);
-
-
-void prot_the_line_pc(chunk_t *pc_sub, const char *func_name, int theLine, unsigned int actual_line, size_t partNumber);
-
-
-void prot_all_lines(const char *func_name, int theLine);
-
-
-void prot_the_source(int theLine);
-
-
-void examine_Data(const char *func_name, int theLine, int what);
-
-
-//! dump the chunk list to a file
-void dump_out(unsigned int type);
-
-
-//! create chunk list from a file
-void dump_in(unsigned int type);
-
-
-size_t get_A_Number();
-
-#endif /* UNC_TOOLS_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/uncrustify.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/uncrustify.cpp
deleted file mode 100644
index 6de98934..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/uncrustify.cpp
+++ /dev/null
@@ -1,2691 +0,0 @@
-/**
- * @file uncrustify.cpp
- * This file takes an input C/C++/D/Java file and reformats it.
- *
- * @author Ben Gardner
- * @license GPL v2+
- */
-
-#define DEFINE_CHAR_TABLE
-
-#include "uncrustify.h"
-
-#include "align.h"
-#include "align_nl_cont.h"
-#include "align_preprocessor.h"
-#include "align_trailing_comments.h"
-#include "args.h"
-#include "backup.h"
-#include "brace_cleanup.h"
-#include "braces.h"
-#include "combine.h"
-#include "compat.h"
-#include "detect.h"
-#include "enum_cleanup.h"
-#include "indent.h"
-#include "keywords.h"
-#include "lang_pawn.h"
-#include "newlines.h"
-#include "output.h"
-#include "parameter_pack_cleanup.h"
-#include "parens.h"
-#include "parent_for_pp.h"
-#include "remove_duplicate_include.h"
-#include "remove_extra_returns.h"
-#include "semicolons.h"
-#include "sorting.h"
-#include "space.h"
-#include "token_names.h"
-#include "tokenize.h"
-#include "tokenize_cleanup.h"
-#include "unc_ctype.h"
-#include "unc_tools.h"
-#include "uncrustify_version.h"
-#include "unicode.h"
-#include "universalindentgui.h"
-#include "width.h"
-
-#include <cerrno>
-#include <fcntl.h>
-#include <map>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#ifdef HAVE_SYS_STAT_H
-#include <sys/stat.h>
-#endif
-#ifdef HAVE_STRINGS_H
-#include <strings.h> // provides strcasecmp()
-#endif
-#ifdef HAVE_UTIME_H
-#include <time.h>
-#endif
-
-
-// VS throws an error if an attribute newer than the requested standard level
-// is used; everyone else just ignores it (or warns) like they are supposed to
-
-#if __cplusplus >= 201703L
-#define NODISCARD [[nodiscard]]
-#elif defined (__has_cpp_attribute)
-#if __has_cpp_attribute(nodiscard)
-#define NODISCARD [[nodiscard]]
-#else
-#define NODISCARD
-#endif
-#else
-#define NODISCARD
-#endif
-
-constexpr static auto LCURRENT = LUNC;
-
-using namespace std;
-using namespace uncrustify;
-
-
-// Global data
-cp_data_t cpd;
-
-
-static size_t language_flags_from_name(const char *tag);
-
-
-/**
- * Find the language for the file extension
- * Defaults to C
- *
- * @param filename The name of the file
- * @return LANG_xxx
- */
-static size_t language_flags_from_filename(const char *filename);
-
-
-static bool read_stdin(file_mem &fm);
-
-
-static void uncrustify_start(const deque<int> &data);
-
-
-static bool ends_with(const char *filename, const char *tag, bool case_sensitive);
-
-
-/**
- * Does a source file.
- *
- * @param filename_in the file to read
- * @param filename_out nullptr (stdout) or the file to write
- * @param parsed_file nullptr or the filename for the parsed debug info
- * @param dump_file nullptr or the filename prefix for dumping formatting steps debug info
- * @param no_backup don't create a backup, if filename_out == filename_in
- * @param keep_mtime don't change the mtime (dangerous)
- */
-static void do_source_file(const char *filename_in, const char *filename_out, const char *parsed_file, const char *dump_file, bool no_backup, bool keep_mtime);
-
-
-static void add_file_header();
-
-
-static void add_file_footer();
-
-
-static void add_func_header(c_token_t type, file_mem &fm);
-
-
-static void add_msg_header(c_token_t type, file_mem &fm);
-
-
-static void process_source_list(const char *source_list, const char *prefix, const char *suffix, bool no_backup, bool keep_mtime);
-
-
-static const char *make_output_filename(char *buf, size_t buf_size, const char *filename, const char *prefix, const char *suffix);
-
-
-//! compare the content of two files
-static bool file_content_matches(const string &filename1, const string &filename2);
-
-
-static string fix_filename(const char *filename);
-
-
-static bool bout_content_matches(const file_mem &fm, bool report_status);
-
-
-/**
- * Loads a file into memory
- *
- * @param filename name of file to load
- *
- * @retval true file was loaded successfully
- * @retval false file could not be loaded
- */
-static int load_mem_file(const char *filename, file_mem &fm);
-
-
-/**
- * Try to load the file from the config folder first and then by name
- *
- * @param filename name of file to load
- *
- * @retval true file was loaded successfully
- * @retval false file could not be loaded
- */
-static int load_mem_file_config(const std::string &filename, file_mem &fm);
-
-
-//! print uncrustify version number and terminate
-static void version_exit(void);
-
-
-const char *path_basename(const char *path)
-{
- if (path == nullptr)
- {
- return("");
- }
- const char *last_path = path;
- char ch;
-
- while ((ch = *path) != 0) // check for end of string
- {
- path++;
-
- // Check both slash types to support Linux and Windows
- if ( (ch == '/')
- || (ch == '\\'))
- {
- last_path = path;
- }
- }
- return(last_path);
-}
-
-
-int path_dirname_len(const char *filename)
-{
- if (filename == nullptr)
- {
- return(0);
- }
- // subtracting addresses like this works only on big endian systems
- return(static_cast<int>(path_basename(filename) - filename));
-}
-
-
-void usage_error(const char *msg)
-{
- if (msg != nullptr)
- {
- fprintf(stderr, "%s\n", msg);
- log_flush(true);
- }
- fprintf(stderr, "Try running with -h for usage information\n");
- log_flush(true);
-}
-
-
-static void tease()
-{
- fprintf(stdout,
- "There are currently %d options and minimal documentation.\n"
- "Try UniversalIndentGUI and good luck.\n", (int)get_option_count());
-}
-
-
-void usage(const char *argv0)
-{
- fprintf(stdout,
- "Usage:\n"
- "%s [options] [files ...]\n"
- "\n"
- "If no input files are specified, the input is read from stdin\n"
- "If reading from stdin, you should specify the language using -l\n"
- "or specify a filename using --assume for automatic language detection.\n"
- "\n"
- "If -F is used or files are specified on the command line,\n"
- "the output filename is 'prefix/filename' + suffix\n"
- "\n"
- "When reading from stdin or doing a single file via the '-f' option,\n"
- "the output is dumped to stdout, unless redirected with -o FILE.\n"
- "\n"
- "Errors are always dumped to stderr\n"
- "\n"
- "The '-f' and '-o' options may not be used with '-F' or '--replace'.\n"
- "The '--prefix' and '--suffix' options may not be used with '--replace'.\n"
- "\n"
- "Basic Options:\n"
- " -c CFG : Use the config file CFG, or defaults if CFG is set to '-'.\n"
- " -f FILE : Process the single file FILE (output to stdout, use with -o).\n"
- " -o FILE : Redirect stdout to FILE.\n"
- " -F FILE : Read files to process from FILE, one filename per line (- is stdin).\n"
- " --check : Do not output the new text, instead verify that nothing changes when\n"
- " the file(s) are processed.\n"
- " The status of every file is printed to stderr.\n"
- " The exit code is EXIT_SUCCESS if there were no changes, EXIT_FAILURE otherwise.\n"
- " files : Files to process (can be combined with -F).\n"
- " --suffix SFX : Append SFX to the output filename. The default is '.uncrustify'\n"
- " --prefix PFX : Prepend PFX to the output filename path.\n"
- " --replace : Replace source files (creates a backup).\n"
- " --no-backup : Do not create backup and md5 files. Useful if files are under source control.\n"
- " --if-changed : Write to stdout (or create output FILE) only if a change was detected.\n"
-#ifdef HAVE_UTIME_H
- " --mtime : Preserve mtime on replaced files.\n"
-#endif
- " -l : Language override: C, CPP, D, CS, JAVA, PAWN, OC, OC+, VALA.\n"
- " -t : Load a file with types (usually not needed).\n"
- " -q : Quiet mode - no output on stderr (-L will override).\n"
- " --frag : Code fragment, assume the first line is indented correctly.\n"
- " --assume FN : Uses the filename FN for automatic language detection if reading\n"
- " from stdin unless -l is specified.\n"
- "\n"
- "Config/Help Options:\n"
- " -h -? --help --usage : Print this message and exit.\n"
- " --version : Print the version and exit.\n"
- " --count-options : Print the number of available options and exit.\n"
- " --show-config : Print out option documentation and exit.\n"
- " --update-config : Output a new config file. Use with -o FILE.\n"
- " --update-config-with-doc : Output a new config file. Use with -o FILE.\n"
- " --universalindent : Output a config file for Universal Indent GUI.\n"
- " --detect : Detects the config from a source file. Use with '-f FILE'.\n"
- " Detection is fairly limited.\n"
- " --set <option>=<value> : Sets a new value to a config option.\n"
- "\n"
- "Debug Options:\n"
- " -p FILE : Dump debug info into FILE, or to stdout if FILE is set to '-'.\n"
- " Must be used in combination with '-f FILE'\n"
- " -ds FILE : Dump parsing info at various moments of the formatting process.\n"
- " --dump-steps FILE This creates a series of files named 'FILE_nnn.log', each\n"
- " corresponding to a formatting step in uncrustify.\n"
- " The file 'FILE_000.log' lists the formatting options in use.\n"
- " Must be used in combination with '-f FILE'\n"
- " -L SEV : Set the log severity (see log_levels.h; note 'A' = 'all')\n"
- " -s : Show the log severity in the logs.\n"
- " --decode : Decode remaining args (chunk flags) and exit.\n"
- " --tracking_space FILE : Prepare tracking informations for debugging.\n"
- " Cannot be used with the -o option'\n"
- "\n"
- "Usage Examples\n"
- "cat foo.d | uncrustify -q -c my.cfg -l d\n"
- "uncrustify -c my.cfg -f foo.d\n"
- "uncrustify -c my.cfg -f foo.d -L0-2,20-23,51\n"
- "uncrustify -c my.cfg -f foo.d -o foo.d\n"
- "uncrustify -c my.cfg -f foo.d -o foo.d -ds dump\n"
- "uncrustify -c my.cfg foo.d\n"
- "uncrustify -c my.cfg --replace foo.d\n"
- "uncrustify -c my.cfg --no-backup foo.d\n"
- "uncrustify -c my.cfg --prefix=out -F files.txt\n"
- "\n"
- "Note: Use comments containing ' *INDENT-OFF*' and ' *INDENT-ON*' to disable\n"
- " processing of parts of the source file (these can be overridden with\n"
- " enable_processing_cmt and disable_processing_cmt).\n"
- "\n"
- ,
- path_basename(argv0));
- tease();
-} // usage
-
-
-static void version_exit(void)
-{
- printf("%s\n", UNCRUSTIFY_VERSION);
- exit(EX_OK);
-}
-
-
-NODISCARD static int redir_stdout(const char *output_file)
-{
- FILE *my_stdout = stdout; // Reopen stdout
-
- if (output_file != nullptr)
- {
- my_stdout = freopen(output_file, "wb", stdout);
-
- if (my_stdout == nullptr)
- {
- LOG_FMT(LERR, "Unable to open %s for write: %s (%d)\n",
- output_file, strerror(errno), errno);
- cpd.error_count++;
- usage_error();
- return(EX_IOERR);
- }
- LOG_FMT(LNOTE, "Redirecting output to %s\n", output_file);
- }
- return(EXIT_SUCCESS);
-}
-
-// Currently, the crash handler is only supported while building under MSVC
-#if defined (WIN32) && defined (_MSC_VER)
-
-
-void setup_crash_handling()
-{
- // prevent crash popup. uncrustify is a batch processing tool and a popup is unacceptable.
- ::SetErrorMode(::GetErrorMode() | SEM_NOGPFAULTERRORBOX);
-
- struct local
- {
- static LONG WINAPI crash_filter(_In_ struct _EXCEPTION_POINTERS *exceptionInfo)
- {
- __try
- {
- LOG_FMT(LERR, "crash_filter: exception 0x%08X at [%d:%d] (ip=%p)",
- exceptionInfo->ExceptionRecord->ExceptionCode,
- cpd.line_number, cpd.column,
- exceptionInfo->ExceptionRecord->ExceptionAddress);
- log_func_stack(LERR, " [CallStack:", "]\n", 0);
-
- // treat an exception the same as a parse failure. exceptions can result from parse failures where we
- // do not have specific handling (null-checks for particular parse paths etc.) and callers generally
- // won't care about the difference. they just want to know it failed.
- exit(EXIT_FAILURE);
- }
- __except (EXCEPTION_EXECUTE_HANDLER)
- {
- // have to be careful of crashes in crash handling code
- }
-
- // safety - note that this will not flush like we need, but at least will get the right return code
- ::ExitProcess(EXIT_FAILURE);
- }
- };
-
- // route all crashes through our own handler
- ::SetUnhandledExceptionFilter(local::crash_filter);
-}
-
-#else
-
-
-void setup_crash_handling()
-{
- // TODO: unixes
-}
-
-#endif
-
-
-int main(int argc, char *argv[])
-{
- // initialize the global data
- cpd.unc_off_used = false;
-
- setup_crash_handling();
-
- init_keywords();
-
- // check keyword sort
- assert(keywords_are_sorted());
-
- // Build options map
- register_options();
-
- // If ran without options show the usage info and exit */
- if (argc == 1)
- {
- usage(argv[0]);
- return(EXIT_SUCCESS);
- }
-#ifdef DEBUG
- // make sure we have 'name' not too big
- const int max_name_length = 19;
-
- // maxLengthOfTheName must be consider at the format line at the file
- // output.cpp, line 427: fprintf(pfile, "# Line Tag Parent...
- // and 430: ... fprintf(pfile, "%s# %3zu>%19.19s[%19.19s] ...
- // here xx xx xx xx
- for (size_t token = 0; token < ARRAY_SIZE(token_names); token++)
- {
- const size_t name_length = strlen(token_names[token]);
-
- if (name_length > max_name_length)
- {
- fprintf(stderr, "%s(%d): The token name '%s' is too long (%d)\n",
- __func__, __LINE__, token_names[token], static_cast<int>(name_length));
- fprintf(stderr, "%s(%d): the max token name length is %d\n",
- __func__, __LINE__, max_name_length);
- log_flush(true);
- exit(EX_SOFTWARE);
- }
- }
-
- // make sure we have token_names.h in sync with token_enum.h
- assert(ARRAY_SIZE(token_names) == CT_TOKEN_COUNT_);
-#endif // DEBUG
-
- Args arg(argc, argv);
-
- if ( arg.Present("--version")
- || arg.Present("-v"))
- {
- version_exit();
- }
-
- if ( arg.Present("--help")
- || arg.Present("-h")
- || arg.Present("--usage")
- || arg.Present("-?"))
- {
- usage(argv[0]);
- return(EXIT_SUCCESS);
- }
-
- if (arg.Present("--count-options"))
- {
- tease();
- return(EXIT_SUCCESS);
- }
-
- if (arg.Present("--show-config"))
- {
- save_option_file(stdout, true);
- return(EXIT_SUCCESS);
- }
- cpd.do_check = arg.Present("--check");
- cpd.if_changed = arg.Present("--if-changed");
-
-#ifdef WIN32
- // tell Windows not to change what I write to stdout
- UNUSED(_setmode(_fileno(stdout), _O_BINARY));
-#endif
-
- // Init logging
- log_init(cpd.do_check ? stdout : stderr);
- log_mask_t mask;
-
- if (arg.Present("-q"))
- {
- logmask_from_string("", mask);
- log_set_mask(mask);
- }
- const char *p_arg;
-
- if ( ((p_arg = arg.Param("-L")) != nullptr)
- || ((p_arg = arg.Param("--log")) != nullptr))
- {
- logmask_from_string(p_arg, mask);
- log_set_mask(mask);
- }
- cpd.frag = arg.Present("--frag");
-
- if (arg.Present("--decode"))
- {
- size_t idx = 1;
-
- while ((p_arg = arg.Unused(idx)) != nullptr)
- {
- log_pcf_flags(LSYS, static_cast<pcf_flag_e>(strtoul(p_arg, nullptr, 16)));
- }
- return(EXIT_SUCCESS);
- }
- // Get the config file name
- string cfg_file;
-
- if ( ((p_arg = arg.Param("--config")) != nullptr)
- || ((p_arg = arg.Param("-c")) != nullptr))
- {
- cfg_file = p_arg;
- }
- else if (!unc_getenv("UNCRUSTIFY_CONFIG", cfg_file))
- {
- // Try to find a config file at an alternate location
- string home;
-
- if (unc_homedir(home))
- {
- struct stat tmp_stat = {};
-
- const auto path0 = home + "/.uncrustify.cfg";
- const auto path1 = home + "/uncrustify.cfg";
-
- if (stat(path0.c_str(), &tmp_stat) == 0)
- {
- cfg_file = path0;
- }
- else if (stat(path1.c_str(), &tmp_stat) == 0)
- {
- cfg_file = path1;
- }
- }
- }
- // Get the parsed file name
- const char *parsed_file;
-
- if ( ((parsed_file = arg.Param("--parsed")) != nullptr)
- || ((parsed_file = arg.Param("-p")) != nullptr))
- {
- if ( parsed_file[0] == '-'
- && !parsed_file[1])
- {
- LOG_FMT(LNOTE, "Will print parsed data to stdout\n");
- }
- else
- {
- LOG_FMT(LNOTE, "Will export parsed data to: %s\n", parsed_file);
- }
- }
- // Get the dump file name prefix
- const char *dump_file;
-
- if ( ((dump_file = arg.Param("--dump-steps")) != nullptr)
- || ((dump_file = arg.Param("-ds")) != nullptr))
- {
- LOG_FMT(LNOTE, "Will export formatting steps data to '%s_nnn.log' files\n", dump_file);
- }
-
- // Enable log severities
- if ( arg.Present("-s")
- || arg.Present("--show"))
- {
- log_show_sev(true);
- }
- // Load type files
- size_t idx = 0;
-
- while ((p_arg = arg.Params("-t", idx)) != nullptr)
- {
- load_keyword_file(p_arg);
- }
- // add types
- idx = 0;
-
- while ((p_arg = arg.Params("--type", idx)) != nullptr)
- {
- add_keyword(p_arg, CT_TYPE);
- }
- bool arg_l_is_set = false;
-
- // Check for a language override
- if ((p_arg = arg.Param("-l")) != nullptr)
- {
- arg_l_is_set = true;
- cpd.lang_flags = language_flags_from_name(p_arg);
-
- if (cpd.lang_flags == 0)
- {
- LOG_FMT(LWARN, "Ignoring unknown language: %s\n", p_arg);
- }
- else
- {
- cpd.lang_forced = true;
- }
- }
- // Get the source file name
- const char *source_file;
-
- if ( ((source_file = arg.Param("--file")) == nullptr)
- && ((source_file = arg.Param("-f")) == nullptr))
- {
- // not using a single file, source_file is nullptr
- }
- // Get a source file list
- const char *source_list;
-
- if ( ((source_list = arg.Param("--files")) == nullptr)
- && ((source_list = arg.Param("-F")) == nullptr))
- {
- // not using a file list, source_list is nullptr
- }
- const char *prefix = arg.Param("--prefix");
- const char *suffix = arg.Param("--suffix");
- const char *assume = arg.Param("--assume");
-
- bool no_backup = arg.Present("--no-backup");
- bool replace = arg.Present("--replace");
- bool keep_mtime = arg.Present("--mtime");
- bool update_config = arg.Present("--update-config");
- bool update_config_wd = arg.Present("--update-config-with-doc");
- bool detect = arg.Present("--detect");
- bool pfile_csv = arg.Present("--debug-csv-format");
-
- std::string parsed_file_csv;
-
- if (pfile_csv)
- {
- if ( parsed_file == nullptr
- || ( parsed_file[0] == '-'
- && !parsed_file[1]))
- {
- fprintf(stderr,
- "FAIL: --debug-csv-format option must be used in combination with '-p FILE', where FILE\n"
- " is not set to '-'\n");
- log_flush(true);
- exit(EX_CONFIG);
- }
- else if (!ends_with(parsed_file, ".csv", false))
- {
- parsed_file_csv = parsed_file;
-
- // user-specified parsed filename does not end in a ".csv" extension, so add it
- parsed_file_csv += ".csv";
- parsed_file = parsed_file_csv.c_str();
- }
- }
- // Grab the output override
- const char *output_file = arg.Param("-o");
-
- // for debugging tracking
- cpd.html_file = arg.Param("--tracking_space");
-
- LOG_FMT(LDATA, "%s\n", UNCRUSTIFY_VERSION);
- LOG_FMT(LDATA, "config_file = %s\n", cfg_file.c_str());
- LOG_FMT(LDATA, "output_file = %s\n", (output_file != NULL) ? output_file : "null");
- LOG_FMT(LDATA, "source_file = %s\n", (source_file != NULL) ? source_file : "null");
- LOG_FMT(LDATA, "source_list = %s\n", (source_list != NULL) ? source_list : "null");
- LOG_FMT(LDATA, "tracking = %s\n", (cpd.html_file != NULL) ? cpd.html_file : "null");
- LOG_FMT(LDATA, "prefix = %s\n", (prefix != NULL) ? prefix : "null");
- LOG_FMT(LDATA, "suffix = %s\n", (suffix != NULL) ? suffix : "null");
- LOG_FMT(LDATA, "assume = %s\n", (assume != NULL) ? assume : "null");
- LOG_FMT(LDATA, "replace = %s\n", replace ? "true" : "false");
- LOG_FMT(LDATA, "no_backup = %s\n", no_backup ? "true" : "false");
- LOG_FMT(LDATA, "detect = %s\n", detect ? "true" : "false");
- LOG_FMT(LDATA, "check = %s\n", cpd.do_check ? "true" : "false");
- LOG_FMT(LDATA, "if_changed = %s\n", cpd.if_changed ? "true" : "false");
-
- if ( cpd.do_check
- && ( output_file
- || replace
- || no_backup
- || keep_mtime
- || update_config
- || update_config_wd
- || detect
- || prefix
- || suffix
- || cpd.if_changed))
- {
- usage_error("Cannot use --check with output options.");
- return(EX_NOUSER);
- }
-
- if (!cpd.do_check)
- {
- if (replace)
- {
- if ( prefix != nullptr
- || suffix != nullptr)
- {
- usage_error("Cannot use --replace with --prefix or --suffix");
- return(EX_NOINPUT);
- }
-
- if ( source_file != nullptr
- || output_file != nullptr)
- {
- usage_error("Cannot use --replace with -f or -o");
- return(EX_NOINPUT);
- }
- }
- else if (!no_backup)
- {
- if ( prefix == nullptr
- && suffix == nullptr)
- {
- suffix = ".uncrustify";
- }
- }
- }
-
- /*
- * Try to load the config file, if available.
- * It is optional for "--universalindent", "--parsed" and "--detect", but
- * required for everything else.
- */
- if ( !cfg_file.empty()
- && cfg_file[0] != '-')
- {
- cpd.filename = cfg_file;
-
- if (!load_option_file(cpd.filename.c_str()))
- {
- usage_error("Unable to load the config file");
- return(EX_IOERR);
- }
- // test if all options are compatible to each other
- log_rule_B("nl_max");
-
- if (options::nl_max() > 0)
- {
- // test if one/some option(s) is/are not too big for that
- log_rule_B("nl_func_var_def_blk");
-
- if (options::nl_func_var_def_blk() >= options::nl_max())
- {
- fprintf(stderr, "The option 'nl_func_var_def_blk' is too big against the option 'nl_max'\n");
- log_flush(true);
- exit(EX_CONFIG);
- }
- }
- }
- // Set config options using command line arguments.
- idx = 0;
-
- const size_t max_args_length = 256;
-
- while ((p_arg = arg.Params("--set", idx)) != nullptr)
- {
- size_t argLength = strlen(p_arg);
-
- if (argLength > max_args_length)
- {
- fprintf(stderr, "The buffer is to short for the set argument '%s'\n", p_arg);
- log_flush(true);
- exit(EX_SOFTWARE);
- }
- char buffer[max_args_length];
- strcpy(buffer, p_arg);
-
- // Tokenize and extract key and value
- const char *token = strtok(buffer, "=");
- const char *option = token;
-
- token = strtok(nullptr, "=");
- const char *value = token;
-
- if ( option != nullptr
- && value != nullptr
- && strtok(nullptr, "=") == nullptr) // end of argument reached
- {
- if (auto *opt = uncrustify::find_option(option))
- {
- if (!opt->read(value))
- {
- return(EXIT_FAILURE);
- }
- }
- else
- {
- fprintf(stderr, "Unknown option '%s' to override.\n", buffer);
- log_flush(true);
- return(EXIT_FAILURE);
- }
- }
- else
- {
- // TODO: consider using defines like EX_USAGE from sysexits.h
- usage_error("Error while parsing --set");
- return(EX_USAGE);
- }
- }
-
- if (arg.Present("--universalindent"))
- {
- FILE *pfile = stdout;
-
- if (output_file != nullptr)
- {
- pfile = fopen(output_file, "w");
-
- if (pfile == nullptr)
- {
- fprintf(stderr, "Unable to open %s for write: %s (%d)\n",
- output_file, strerror(errno), errno);
- log_flush(true);
- return(EXIT_FAILURE);
- }
- }
- print_universal_indent_cfg(pfile);
- fclose(pfile);
-
- return(EXIT_SUCCESS);
- }
- // Set the number of second(s) before terminating formatting the current file.
-#ifdef WIN32
- if (options::debug_timeout() > 0)
- {
- fprintf(stderr, "The option 'debug_timeout' is not available under Windows.\n");
- log_flush(true);
- exit(EX_SOFTWARE);
- }
-#else
- if (options::debug_timeout() > 0)
- {
- alarm(options::debug_timeout());
- }
-#endif // ifdef WIN32
-
- if (detect)
- {
- file_mem fm;
-
- if ( source_file == nullptr
- || source_list != nullptr)
- {
- fprintf(stderr, "The --detect option requires a single input file\n");
- log_flush(true);
- return(EXIT_FAILURE);
- }
-
- // Do some simple language detection based on the filename extension
- if ( !cpd.lang_forced
- || cpd.lang_flags == 0)
- {
- cpd.lang_flags = language_flags_from_filename(source_file);
- }
-
- // Try to read in the source file
- if (load_mem_file(source_file, fm) < 0)
- {
- LOG_FMT(LERR, "Failed to load (%s)\n", source_file);
- cpd.error_count++;
- return(EXIT_FAILURE);
- }
- uncrustify_start(fm.data);
- detect_options();
- uncrustify_end();
-
- if (auto error = redir_stdout(output_file))
- {
- return(error);
- }
- save_option_file(stdout, update_config_wd);
- return(EXIT_SUCCESS);
- }
-
- if ( update_config
- || update_config_wd)
- {
- // TODO: complain if file-processing related options are present
- if (auto error = redir_stdout(output_file))
- {
- return(error);
- }
- save_option_file(stdout, update_config_wd);
- return(EXIT_SUCCESS);
- }
-
- /*
- * Everything beyond this point aside from dumping the parse tree is silly
- * without a config file, so complain and bail if we don't have one.
- */
- if ( cfg_file.empty()
- && !parsed_file)
- {
- usage_error("Specify the config file with '-c file' or set UNCRUSTIFY_CONFIG");
- return(EX_IOERR);
- }
- // Done parsing args
-
- // Check for unused args (ignore them)
- idx = 1;
- p_arg = arg.Unused(idx);
-
- // Check args - for multifile options
- if ( source_list != nullptr
- || p_arg != nullptr)
- {
- if (source_file != nullptr)
- {
- usage_error("Cannot specify both the single file option and a multi-file option.");
- return(EX_NOUSER);
- }
-
- if (output_file != nullptr)
- {
- usage_error("Cannot specify -o with a multi-file option.");
- return(EX_NOHOST);
- }
- }
- // This relies on cpd.filename being the config file name
- load_header_files();
-
- if ( cpd.do_check
- || cpd.if_changed)
- {
- cpd.bout = new deque<UINT8>();
- }
- idx = 1;
-
- if ( source_file == nullptr
- && source_list == nullptr
- && arg.Unused(idx) == nullptr)
- {
- if (!arg_l_is_set) // Issue #3064
- {
- if (assume == nullptr)
- {
- LOG_FMT(LERR, "If reading from stdin, you should specify the language using -l\n");
- LOG_FMT(LERR, "or specify a filename using --assume for automatic language detection.\n");
- return(EXIT_FAILURE);
- }
- }
-
- if (cpd.lang_flags == 0)
- {
- if (assume != nullptr)
- {
- cpd.lang_flags = language_flags_from_filename(assume);
- }
- else
- {
- cpd.lang_flags = LANG_C;
- }
- }
-
- if (!cpd.do_check)
- {
- if (auto error = redir_stdout(output_file))
- {
- return(error);
- }
- }
- file_mem fm;
-
- if (!read_stdin(fm))
- {
- LOG_FMT(LERR, "Failed to read stdin\n");
- cpd.error_count++;
- return(100);
- }
- cpd.filename = "stdin";
-
- // Done reading from stdin
- LOG_FMT(LSYS, "Parsing: %d bytes (%d chars) from stdin as language %s\n",
- (int)fm.raw.size(), (int)fm.data.size(),
- language_name_from_flags(cpd.lang_flags));
-
- uncrustify_file(fm, stdout, parsed_file, dump_file);
- }
- else if (source_file != nullptr)
- {
- // Doing a single file
- do_source_file(source_file, output_file, parsed_file, dump_file, no_backup, keep_mtime);
- }
- else
- {
- if (parsed_file != nullptr) // Issue #930
- {
- fprintf(stderr, "FAIL: -p option must be used with the -f option\n");
- log_flush(true);
- exit(EX_CONFIG);
- }
-
- if (dump_file != nullptr)
- {
- fprintf(stderr, "FAIL: -ds/--dump-steps option must be used with the -f option\n");
- log_flush(true);
- exit(EX_CONFIG);
- }
-
- // Doing multiple files, TODO: multiple threads for parallel processing
- if (prefix != nullptr)
- {
- LOG_FMT(LSYS, "Output prefix: %s/\n", prefix);
- }
-
- if (suffix != nullptr)
- {
- LOG_FMT(LSYS, "Output suffix: %s\n", suffix);
- }
- // Do the files on the command line first
- idx = 1;
-
- while ((p_arg = arg.Unused(idx)) != nullptr)
- {
- char outbuf[1024];
- do_source_file(p_arg,
- make_output_filename(outbuf, sizeof(outbuf), p_arg, prefix, suffix),
- nullptr, nullptr, no_backup, keep_mtime);
- }
-
- if (source_list != nullptr)
- {
- process_source_list(source_list, prefix, suffix, no_backup, keep_mtime);
- }
- }
- clear_keyword_file();
-
- if (cpd.error_count != 0)
- {
- return(EXIT_FAILURE);
- }
-
- if ( cpd.do_check
- && cpd.check_fail_cnt != 0)
- {
- return(EXIT_FAILURE);
- }
- return(EXIT_SUCCESS);
-} // main
-
-
-static void process_source_list(const char *source_list,
- const char *prefix, const char *suffix,
- bool no_backup, bool keep_mtime)
-{
- bool from_stdin = strcmp(source_list, "-") == 0;
- FILE *p_file = from_stdin ? stdin : fopen(source_list, "r");
-
- if (p_file == nullptr)
- {
- LOG_FMT(LERR, "%s: fopen(%s) failed: %s (%d)\n",
- __func__, source_list, strerror(errno), errno);
- cpd.error_count++;
- return;
- }
- char linebuf[256];
- int line = 0;
-
- while (fgets(linebuf, sizeof(linebuf), p_file) != nullptr)
- {
- line++;
- char *fname = linebuf;
- int len = strlen(fname);
-
- while ( len > 0
- && unc_isspace(*fname))
- {
- fname++;
- len--;
- }
-
- while ( len > 0
- && unc_isspace(fname[len - 1]))
- {
- len--;
- }
- fname[len] = 0;
-
- while (len-- > 0)
- {
- if (fname[len] == '\\')
- {
- fname[len] = '/';
- }
- }
- LOG_FMT(LFILELIST, "%3d] %s\n", line, fname);
-
- if (fname[0] != '#')
- {
- char outbuf[1024];
- do_source_file(fname,
- make_output_filename(outbuf, sizeof(outbuf), fname, prefix, suffix),
- nullptr, nullptr, no_backup, keep_mtime);
- }
- }
-
- if (!from_stdin)
- {
- fclose(p_file);
- }
-} // process_source_list
-
-
-static bool read_stdin(file_mem &fm)
-{
- deque<UINT8> dq;
- char buf[4096];
-
- fm.raw.clear();
- fm.data.clear();
- fm.enc = char_encoding_e::e_ASCII;
-
- // Re-open stdin in binary mode to preserve newline characters
-#ifdef WIN32
- _setmode(_fileno(stdin), _O_BINARY);
-#endif
-
- while (!feof(stdin))
- {
- int len = fread(buf, 1, sizeof(buf), stdin);
-
- for (int idx = 0; idx < len; idx++)
- {
- dq.push_back(buf[idx]);
- }
- }
- // Copy the raw data from the deque to the vector
- fm.raw.insert(fm.raw.end(), dq.begin(), dq.end());
- return(decode_unicode(fm.raw, fm.data, fm.enc, fm.bom));
-}
-
-
-static void make_folders(const string &filename)
-{
- int last_idx = 0;
- char outname[4096];
-
- snprintf(outname, sizeof(outname), "%s", filename.c_str());
-
- for (int idx = 0; outname[idx] != 0; idx++)
- {
- if ( (outname[idx] == '/')
- || (outname[idx] == '\\'))
- {
- outname[idx] = PATH_SEP;
- }
-
- // search until end of subpath is found
- if ( idx > last_idx
- && (outname[idx] == PATH_SEP))
- {
- outname[idx] = 0; // mark the end of the subpath
-
- // create subfolder if it is not the start symbol of a path
- // and not a Windows drive letter
- if ( (strcmp(&outname[last_idx], ".") != 0)
- && (strcmp(&outname[last_idx], "..") != 0)
- && (!( last_idx == 0
- && idx == 2
- && outname[1] == ':')))
- {
- int status; // Coverity CID 75999
- status = mkdir(outname, 0750);
-
- if ( status != 0
- && errno != EEXIST)
- {
- LOG_FMT(LERR, "%s: Unable to create %s: %s (%d)\n",
- __func__, outname, strerror(errno), errno);
- cpd.error_count++;
- return;
- }
- }
- outname[idx] = PATH_SEP; // reconstruct full path to search for next subpath
- }
-
- if (outname[idx] == PATH_SEP)
- {
- last_idx = idx + 1;
- }
- }
-} // make_folders
-
-
-static int load_mem_file(const char *filename, file_mem &fm)
-{
- int retval = -1;
- struct stat my_stat;
- FILE *p_file;
-
- fm.raw.clear();
- fm.data.clear();
- fm.enc = char_encoding_e::e_ASCII;
-
- // Grab the stat info for the file, return if it cannot be read
- if (stat(filename, &my_stat) < 0)
- {
- return(-1);
- }
-#ifdef HAVE_UTIME_H
- // Save off modification time (mtime)
- fm.utb.modtime = my_stat.st_mtime;
-#endif
-
- // Try to read in the file
- p_file = fopen(filename, "rb");
-
- if (p_file == nullptr)
- {
- return(-1);
- }
- fm.raw.resize(my_stat.st_size);
-
- if (my_stat.st_size == 0) // check if file is empty
- {
- retval = 0;
- fm.bom = false;
- fm.enc = char_encoding_e::e_ASCII;
- fm.data.clear();
- }
- else
- {
- // read the raw data
- if (fread(&fm.raw[0], fm.raw.size(), 1, p_file) != 1)
- {
- LOG_FMT(LERR, "%s: fread(%s) failed: %s (%d)\n",
- __func__, filename, strerror(errno), errno);
- cpd.error_count++;
- }
- else if (!decode_unicode(fm.raw, fm.data, fm.enc, fm.bom))
- {
- LOG_FMT(LERR, "%s: failed to decode the file '%s'\n", __func__, filename);
- cpd.error_count++;
- }
- else
- {
- LOG_FMT(LNOTE, "%s: '%s' encoding looks like %s (%d)\n", __func__, filename,
- fm.enc == char_encoding_e::e_ASCII ? "ASCII" :
- fm.enc == char_encoding_e::e_BYTE ? "BYTES" :
- fm.enc == char_encoding_e::e_UTF8 ? "UTF-8" :
- fm.enc == char_encoding_e::e_UTF16_LE ? "UTF-16-LE" :
- fm.enc == char_encoding_e::e_UTF16_BE ? "UTF-16-BE" : "Error",
- (int)fm.enc);
- retval = 0;
- }
- }
- fclose(p_file);
- return(retval);
-} // load_mem_file
-
-
-static int load_mem_file_config(const std::string &filename, file_mem &fm)
-{
- int retval;
- char buf[1024];
-
- snprintf(buf, sizeof(buf), "%.*s%s",
- path_dirname_len(cpd.filename.c_str()), cpd.filename.c_str(), filename.c_str());
-
- retval = load_mem_file(buf, fm);
-
- if (retval < 0)
- {
- retval = load_mem_file(filename.c_str(), fm);
-
- if (retval < 0)
- {
- LOG_FMT(LERR, "Failed to load (%s) or (%s)\n", buf, filename.c_str());
- cpd.error_count++;
- }
- }
- return(retval);
-}
-
-
-int load_header_files()
-{
- int retval = 0;
-
- log_rule_B("cmt_insert_file_header");
-
- if (!options::cmt_insert_file_header().empty())
- {
- // try to load the file referred to by the options string
- retval |= load_mem_file_config(options::cmt_insert_file_header(),
- cpd.file_hdr);
- }
- log_rule_B("cmt_insert_file_footer");
-
- if (!options::cmt_insert_file_footer().empty())
- {
- retval |= load_mem_file_config(options::cmt_insert_file_footer(),
- cpd.file_ftr);
- }
- log_rule_B("cmt_insert_func_header");
-
- if (!options::cmt_insert_func_header().empty())
- {
- retval |= load_mem_file_config(options::cmt_insert_func_header(),
- cpd.func_hdr);
- }
- log_rule_B("cmt_insert_class_header");
-
- if (!options::cmt_insert_class_header().empty())
- {
- retval |= load_mem_file_config(options::cmt_insert_class_header(),
- cpd.class_hdr);
- }
- log_rule_B("cmt_insert_oc_msg_header");
-
- if (!options::cmt_insert_oc_msg_header().empty())
- {
- retval |= load_mem_file_config(options::cmt_insert_oc_msg_header(),
- cpd.oc_msg_hdr);
- }
- log_rule_B("cmt_reflow_fold_regex_file");
-
- if (!options::cmt_reflow_fold_regex_file().empty())
- {
- retval |= load_mem_file_config(options::cmt_reflow_fold_regex_file(),
- cpd.reflow_fold_regex);
- }
- return(retval);
-} // load_header_files
-
-
-static const char *make_output_filename(char *buf, size_t buf_size,
- const char *filename,
- const char *prefix,
- const char *suffix)
-{
- int len = 0;
-
- if (prefix != nullptr)
- {
- len = snprintf(buf, buf_size, "%s/", prefix);
- }
- snprintf(&buf[len], buf_size - len, "%s%s", filename,
- (suffix != nullptr) ? suffix : "");
-
- return(buf);
-}
-
-
-static bool file_content_matches(const string &filename1, const string &filename2)
-{
- struct stat st1, st2;
- int fd1, fd2;
-
- // Check the file sizes first
- if ( (stat(filename1.c_str(), &st1) != 0)
- || (stat(filename2.c_str(), &st2) != 0)
- || st1.st_size != st2.st_size)
- {
- return(false);
- }
-
- if ((fd1 = open(filename1.c_str(), O_RDONLY)) < 0)
- {
- return(false);
- }
-
- if ((fd2 = open(filename2.c_str(), O_RDONLY)) < 0)
- {
- close(fd1);
- return(false);
- }
- int len1 = 0;
- int len2 = 0;
- UINT8 buf1[1024];
- UINT8 buf2[1024];
-
- memset(buf1, 0, sizeof(buf1));
- memset(buf2, 0, sizeof(buf2));
-
- while ( len1 >= 0
- && len2 >= 0)
- {
- if (len1 == 0)
- {
- len1 = read(fd1, buf1, sizeof(buf1));
- }
-
- if (len2 == 0)
- {
- len2 = read(fd2, buf2, sizeof(buf2));
- }
-
- if ( len1 <= 0
- || len2 <= 0)
- {
- break; // reached end of either files
- // TODO: what is if one file is longer than the other, do we miss that ?
- }
- int minlen = (len1 < len2) ? len1 : len2;
-
- if (memcmp(buf1, buf2, minlen) != 0)
- {
- break; // found a difference
- }
- len1 -= minlen;
- len2 -= minlen;
- }
- close(fd1);
- close(fd2);
-
- return( len1 == 0
- && len2 == 0);
-} // file_content_matches
-
-
-static string fix_filename(const char *filename)
-{
- char *tmp_file;
- string rv;
-
- // Create 'outfile.uncrustify'
- tmp_file = new char[strlen(filename) + 16 + 1]; // + 1 for '// + 1 for '/* + 1 for '\0' */' '
-
- if (tmp_file != nullptr)
- {
- sprintf(tmp_file, "%s.uncrustify", filename);
- }
- rv = tmp_file;
- delete[] tmp_file;
- return(rv);
-}
-
-
-static bool bout_content_matches(const file_mem &fm, bool report_status)
-{
- bool is_same = true;
-
- // compare the old data vs the new data
- if (cpd.bout->size() != fm.raw.size())
- {
- if (report_status)
- {
- fprintf(stderr, "FAIL: %s (File size changed from %u to %u)\n",
- cpd.filename.c_str(), static_cast<int>(fm.raw.size()),
- static_cast<int>(cpd.bout->size()));
- log_flush(true);
- }
- is_same = false;
- }
- else
- {
- for (int idx = 0; idx < static_cast<int>(fm.raw.size()); idx++)
- {
- if (fm.raw[idx] != (*cpd.bout)[idx])
- {
- if (report_status)
- {
- fprintf(stderr, "FAIL: %s (Difference at byte %u)\n",
- cpd.filename.c_str(), idx);
- log_flush(true);
- }
- is_same = false;
- break;
- }
- }
- }
-
- if ( is_same
- && report_status)
- {
- fprintf(stdout, "PASS: %s (%u bytes)\n",
- cpd.filename.c_str(), static_cast<int>(fm.raw.size()));
- }
- return(is_same);
-} // bout_content_matches
-
-
-static void do_source_file(const char *filename_in,
- const char *filename_out,
- const char *parsed_file,
- const char *dump_file,
- bool no_backup,
- bool keep_mtime)
-{
- FILE *pfout = nullptr;
- bool did_open = false;
- bool need_backup = false;
- file_mem fm;
- string filename_tmp;
-
- // Do some simple language detection based on the filename extension
- if ( !cpd.lang_forced
- || cpd.lang_flags == 0)
- {
- cpd.lang_flags = language_flags_from_filename(filename_in);
- }
-
- // Try to read in the source file
- if (load_mem_file(filename_in, fm) < 0)
- {
- LOG_FMT(LERR, "Failed to load (%s)\n", filename_in);
- cpd.error_count++;
- return;
- }
- LOG_FMT(LSYS, "Parsing: %s as language %s\n",
- filename_in, language_name_from_flags(cpd.lang_flags));
-
- cpd.filename = filename_in;
-
- /*
- * If we're only going to write on an actual change, then build the output
- * buffer now and if there were changes, run it through the normal file
- * write path.
- *
- * Future: many code paths could be simplified if 'bout' were always used and not
- * optionally selected in just for do_check and if_changed.
- */
- if (cpd.if_changed)
- {
- /*
- * Cleanup is deferred because we need 'bout' preserved long enough
- * to write it to a file (if it changed).
- */
- uncrustify_file(fm, nullptr, parsed_file, dump_file, true);
-
- if (bout_content_matches(fm, false))
- {
- uncrustify_end();
- return;
- }
- }
-
- if (!cpd.do_check)
- {
- if (filename_out == nullptr)
- {
- pfout = stdout;
- }
- else
- {
- // If the out file is the same as the in file, then use a temp file
- filename_tmp = filename_out;
-
- if (strcmp(filename_in, filename_out) == 0)
- {
- // Create 'outfile.uncrustify'
- filename_tmp = fix_filename(filename_out);
-
- if (!no_backup)
- {
- if (backup_copy_file(filename_in, fm.raw) != EX_OK)
- {
- LOG_FMT(LERR, "%s: Failed to create backup file for %s\n",
- __func__, filename_in);
- cpd.error_count++;
- return;
- }
- need_backup = true;
- }
- }
- make_folders(filename_tmp);
-
- pfout = fopen(filename_tmp.c_str(), "wb");
-
- if (pfout == nullptr)
- {
- LOG_FMT(LERR, "%s: Unable to create %s: %s (%d)\n",
- __func__, filename_tmp.c_str(), strerror(errno), errno);
- cpd.error_count++;
- return;
- }
- did_open = true;
- //LOG_FMT(LSYS, "Output file %s\n", filename_out);
- }
- }
-
- if (cpd.if_changed)
- {
- for (deque<UINT8>::const_iterator i = cpd.bout->begin(), end = cpd.bout->end(); i != end; ++i)
- {
- fputc(*i, pfout);
- }
-
- uncrustify_end();
- }
- else
- {
- uncrustify_file(fm, pfout, parsed_file, dump_file);
- }
-
- if (did_open)
- {
- fclose(pfout);
-
- if (need_backup)
- {
- backup_create_md5_file(filename_in);
- }
-
- if (filename_tmp != filename_out)
- {
- // We need to compare and then do a rename (but avoid redundant test when if_changed set)
- if ( !cpd.if_changed
- && file_content_matches(filename_tmp, filename_out))
- {
- // No change - remove tmp file
- UNUSED(unlink(filename_tmp.c_str()));
- }
- else
- {
- // Change - rename filename_tmp to filename_out
-
-#ifdef WIN32
- /*
- * Atomic rename in windows can't go through stdio rename() func because underneath
- * it calls MoveFileExW without MOVEFILE_REPLACE_EXISTING.
- */
- if (!MoveFileEx(filename_tmp.c_str(), filename_out, MOVEFILE_REPLACE_EXISTING | MOVEFILE_COPY_ALLOWED))
-#else
- if (rename(filename_tmp.c_str(), filename_out) != 0)
-#endif
- {
- LOG_FMT(LERR, "%s: Unable to rename '%s' to '%s'\n",
- __func__, filename_tmp.c_str(), filename_out);
- cpd.error_count++;
- }
- }
- }
-
- if (keep_mtime)
- {
-#ifdef HAVE_UTIME_H
- // update mtime -- don't care if it fails
- fm.utb.actime = time(nullptr);
- UNUSED(utime(filename_in, &fm.utb));
-#endif
- }
- }
-} // do_source_file
-
-
-static void add_file_header()
-{
- if (!chunk_is_comment(chunk_get_head()))
- {
- // TODO: detect the typical #ifndef FOO / #define FOO sequence
- tokenize(cpd.file_hdr.data, chunk_get_head());
- }
-}
-
-
-static void add_file_footer()
-{
- chunk_t *pc = chunk_get_tail();
-
- // Back up if the file ends with a newline
- if ( pc != nullptr
- && chunk_is_newline(pc))
- {
- pc = chunk_get_prev(pc);
- }
-
- if ( pc != nullptr
- && ( !chunk_is_comment(pc)
- || !chunk_is_newline(chunk_get_prev(pc))))
- {
- pc = chunk_get_tail();
-
- if (!chunk_is_newline(pc))
- {
- LOG_FMT(LSYS, "Adding a newline at the end of the file\n");
- newline_add_after(pc);
- }
- tokenize(cpd.file_ftr.data, nullptr);
- }
-}
-
-
-static void add_func_header(c_token_t type, file_mem &fm)
-{
- chunk_t *pc;
- chunk_t *ref;
- chunk_t *tmp;
- bool do_insert;
-
- for (pc = chunk_get_head(); pc != nullptr; pc = chunk_get_next_ncnnlnp(pc))
- {
- if (pc->type != type)
- {
- continue;
- }
- log_rule_B("cmt_insert_before_inlines");
-
- if ( pc->flags.test(PCF_IN_CLASS)
- && !options::cmt_insert_before_inlines())
- {
- continue;
- }
- // Check for one liners for classes. Declarations only. Walk down the chunks.
- ref = pc;
-
- if ( chunk_is_token(ref, CT_CLASS)
- && get_chunk_parent_type(ref) == CT_NONE
- && ref->next)
- {
- ref = ref->next;
-
- if ( chunk_is_token(ref, CT_TYPE)
- && get_chunk_parent_type(ref) == type
- && ref->next)
- {
- ref = ref->next;
-
- if ( chunk_is_token(ref, CT_SEMICOLON)
- && ref->level == pc->level)
- {
- continue;
- }
- }
- }
- // Check for one liners for functions. There'll be a closing brace w/o any newlines. Walk down the chunks.
- ref = pc;
-
- if ( chunk_is_token(ref, CT_FUNC_DEF)
- && get_chunk_parent_type(ref) == CT_NONE
- && ref->next)
- {
- int found_brace = 0; // Set if a close brace is found before a newline
-
- while ( ref->type != CT_NEWLINE
- && (ref = ref->next)) // TODO: is the assignment of ref wanted here?, better move it to the loop
- {
- if (chunk_is_token(ref, CT_BRACE_CLOSE))
- {
- found_brace = 1;
- break;
- }
- }
-
- if (found_brace)
- {
- continue;
- }
- }
- do_insert = false;
-
- /*
- * On a function proto or def. Back up to a close brace or semicolon on
- * the same level
- */
- ref = pc;
-
- while ((ref = chunk_get_prev(ref)) != nullptr)
- {
- // Bail if we change level or find an access specifier colon
- if ( ref->level != pc->level
- || chunk_is_token(ref, CT_ACCESS_COLON))
- {
- do_insert = true;
- break;
- }
-
- // If we hit an angle close, back up to the angle open
- if (chunk_is_token(ref, CT_ANGLE_CLOSE))
- {
- ref = chunk_get_prev_type(ref, CT_ANGLE_OPEN, ref->level, scope_e::PREPROC);
- continue;
- }
-
- // Bail if we hit a preprocessor and cmt_insert_before_preproc is false
- if (ref->flags.test(PCF_IN_PREPROC))
- {
- tmp = chunk_get_prev_type(ref, CT_PREPROC, ref->level);
-
- if ( tmp != nullptr
- && get_chunk_parent_type(tmp) == CT_PP_IF)
- {
- tmp = chunk_get_prev_nnl(tmp);
-
- log_rule_B("cmt_insert_before_preproc");
-
- if ( chunk_is_comment(tmp)
- && !options::cmt_insert_before_preproc())
- {
- break;
- }
- }
- }
-
- // Ignore 'right' comments
- if ( chunk_is_comment(ref)
- && chunk_is_newline(chunk_get_prev(ref)))
- {
- break;
- }
-
- if ( ref->level == pc->level
- && ( ref->flags.test(PCF_IN_PREPROC)
- || chunk_is_token(ref, CT_SEMICOLON)
- || chunk_is_token(ref, CT_BRACE_CLOSE)))
- {
- do_insert = true;
- break;
- }
- }
-
- if ( ref == nullptr
- && !chunk_is_comment(chunk_get_head())
- && get_chunk_parent_type(chunk_get_head()) == type)
- {
- /**
- * In addition to testing for preceding semicolons, closing braces, etc.,
- * we need to also account for the possibility that the function declaration
- * or definition occurs at the very beginning of the file
- */
- tokenize(fm.data, chunk_get_head());
- }
- else if (do_insert)
- {
- // Insert between after and ref
- chunk_t *after = chunk_get_next_ncnnl(ref);
- tokenize(fm.data, after);
-
- for (tmp = chunk_get_next(ref); tmp != after; tmp = chunk_get_next(tmp))
- {
- tmp->level = after->level;
- }
- }
- }
-} // add_func_header
-
-
-static void add_msg_header(c_token_t type, file_mem &fm)
-{
- chunk_t *pc;
- chunk_t *ref;
- chunk_t *tmp;
- bool do_insert;
-
- for (pc = chunk_get_head(); pc != nullptr; pc = chunk_get_next_ncnnlnp(pc))
- {
- if (pc->type != type)
- {
- continue;
- }
- do_insert = false;
-
- /*
- * On a message declaration back up to a Objective-C scope
- * the same level
- */
- ref = pc;
-
- while ((ref = chunk_get_prev(ref)) != nullptr)
- {
- // ignore the CT_TYPE token that is the result type
- if ( ref->level != pc->level
- && ( chunk_is_token(ref, CT_TYPE)
- || chunk_is_token(ref, CT_PTR_TYPE)))
- {
- continue;
- }
-
- // If we hit a parentheses around return type, back up to the open parentheses
- if (chunk_is_token(ref, CT_PAREN_CLOSE))
- {
- ref = chunk_get_prev_type(ref, CT_PAREN_OPEN, ref->level, scope_e::PREPROC);
- continue;
- }
-
- // Bail if we hit a preprocessor and cmt_insert_before_preproc is false
- if (ref->flags.test(PCF_IN_PREPROC))
- {
- tmp = chunk_get_prev_type(ref, CT_PREPROC, ref->level);
-
- if ( tmp != nullptr
- && get_chunk_parent_type(tmp) == CT_PP_IF)
- {
- tmp = chunk_get_prev_nnl(tmp);
-
- log_rule_B("cmt_insert_before_preproc");
-
- if ( chunk_is_comment(tmp)
- && !options::cmt_insert_before_preproc())
- {
- break;
- }
- }
- }
-
- if ( ref->level == pc->level
- && ( ref->flags.test(PCF_IN_PREPROC)
- || chunk_is_token(ref, CT_OC_SCOPE)))
- {
- ref = chunk_get_prev(ref);
-
- if (ref != nullptr)
- {
- // Ignore 'right' comments
- if ( chunk_is_newline(ref)
- && chunk_is_comment(chunk_get_prev(ref)))
- {
- break;
- }
- do_insert = true;
- }
- break;
- }
- }
-
- if (do_insert)
- {
- // Insert between after and ref
- chunk_t *after = chunk_get_next_ncnnl(ref);
- tokenize(fm.data, after);
-
- for (tmp = chunk_get_next(ref); tmp != after; tmp = chunk_get_next(tmp))
- {
- tmp->level = after->level;
- }
- }
- }
-} // add_msg_header
-
-
-static void uncrustify_start(const deque<int> &data)
-{
- // Parse the text into chunks
- tokenize(data, nullptr);
- PROT_THE_LINE
-
- cpd.unc_stage = unc_stage_e::HEADER;
-
- // Get the column for the fragment indent
- if (cpd.frag)
- {
- chunk_t *pc = chunk_get_head();
-
- cpd.frag_cols = (pc != nullptr) ? pc->orig_col : 0;
- }
-
- // Add the file header
- if (!cpd.file_hdr.data.empty())
- {
- add_file_header();
- }
-
- // Add the file footer
- if (!cpd.file_ftr.data.empty())
- {
- add_file_footer();
- }
- /*
- * Change certain token types based on simple sequence.
- * Example: change '[' + ']' to '[]'
- * Note that level info is not yet available, so it is OK to do all
- * processing that doesn't need to know level info. (that's very little!)
- */
- tokenize_cleanup();
-
- /*
- * Detect the brace and paren levels and insert virtual braces.
- * This handles all that nasty preprocessor stuff
- */
- brace_cleanup();
-
- parameter_pack_cleanup();
-
- // At this point, the level information is available and accurate.
-
- if (language_is_set(LANG_PAWN))
- {
- pawn_prescan();
- }
- // Re-type chunks, combine chunks
- fix_symbols();
- tokenize_trailing_return_types();
-
- mark_comments();
-
- // Look at all colons ':' and mark labels, :? sequences, etc.
- combine_labels();
-
- enum_cleanup();
-} // uncrustify_start
-
-
-void uncrustify_file(const file_mem &fm, FILE *pfout, const char *parsed_file,
- const char *dump_file, bool defer_uncrustify_end)
-{
- const deque<int> &data = fm.data;
-
- // Save off the encoding and whether a BOM is required
- cpd.bom = fm.bom;
- cpd.enc = fm.enc;
-
- log_rule_B("utf8_force");
- log_rule_B("utf8_byte");
-
- if ( options::utf8_force()
- || ( (cpd.enc == char_encoding_e::e_BYTE)
- && options::utf8_byte()))
- {
- cpd.enc = char_encoding_e::e_UTF8;
- }
- iarf_e av;
-
- switch (cpd.enc)
- {
- case char_encoding_e::e_UTF8:
- log_rule_B("utf8_bom");
- av = options::utf8_bom();
- break;
-
- case char_encoding_e::e_UTF16_LE:
- case char_encoding_e::e_UTF16_BE:
- av = IARF_FORCE;
- break;
-
- default:
- av = IARF_IGNORE;
- break;
- }
-
- if (av == IARF_REMOVE)
- {
- cpd.bom = false;
- }
- else if (av != IARF_IGNORE)
- {
- cpd.bom = true;
- }
- // Check for embedded 0's (represents a decoding failure or corrupt file)
- size_t count_line = 1;
- size_t count_column = 1;
-
- for (int idx = 0; idx < static_cast<int>(data.size()) - 1; idx++)
- {
- if (data[idx] == 0)
- {
- LOG_FMT(LERR, "An embedded 0 was found in '%s' %zu:%zu.\n",
- cpd.filename.c_str(), count_line, count_column);
- LOG_FMT(LERR, "The file may be encoded in an unsupported Unicode format.\n");
- LOG_FMT(LERR, "Aborting.\n");
- cpd.error_count++;
- return;
- }
- count_column++;
-
- if (data[idx] == '\n')
- {
- count_line++;
- count_column = 1;
- }
- }
-
- uncrustify_start(data);
- dump_step(dump_file, "After uncrustify_start()");
-
- cpd.unc_stage = unc_stage_e::OTHER;
-
- /*
- * Done with detection. Do the rest only if the file will go somewhere.
- * The detection code needs as few changes as possible.
- */
- {
- // Add comments before function defs and classes
- if (!cpd.func_hdr.data.empty())
- {
- add_func_header(CT_FUNC_DEF, cpd.func_hdr);
-
- log_rule_B("cmt_insert_before_ctor_dtor");
-
- if (options::cmt_insert_before_ctor_dtor())
- {
- add_func_header(CT_FUNC_CLASS_DEF, cpd.func_hdr);
- }
- }
-
- if (!cpd.class_hdr.data.empty())
- {
- add_func_header(CT_CLASS, cpd.class_hdr);
- }
-
- if (!cpd.oc_msg_hdr.data.empty())
- {
- add_msg_header(CT_OC_MSG_DECL, cpd.oc_msg_hdr);
- }
- do_parent_for_pp();
- do_braces(); // Change virtual braces into real braces...
-
- // Scrub extra semicolons
- log_rule_B("mod_remove_extra_semicolon");
-
- if (options::mod_remove_extra_semicolon())
- {
- remove_extra_semicolons();
- }
- // Remove unnecessary returns
- log_rule_B("mod_remove_empty_return");
-
- if (options::mod_remove_empty_return())
- {
- remove_extra_returns();
- }
- // Remove duplicate include
- log_rule_B("mod_duplicate_include");
-
- if (options::mod_remove_duplicate_include())
- {
- remove_duplicate_include();
- }
- // Add parens
- do_parens();
-
- // Modify line breaks as needed
- bool first = true;
- int old_changes;
-
- log_rule_B("nl_remove_extra_newlines");
-
- if (options::nl_remove_extra_newlines() == 2)
- {
- newlines_remove_newlines();
- }
- cpd.pass_count = 3;
-
- dump_step(dump_file, "Before first while loop");
-
- do
- {
- old_changes = cpd.changes;
-
- LOG_FMT(LNEWLINE, "Newline loop start: %d\n", cpd.changes);
-
- annotations_newlines();
- newlines_cleanup_dup();
- newlines_sparens();
- newlines_cleanup_braces(first);
- newlines_cleanup_angles(); // Issue #1167
-
- log_rule_B("nl_after_multiline_comment");
-
- if (options::nl_after_multiline_comment())
- {
- newline_after_multiline_comment();
- }
- log_rule_B("nl_after_label_colon");
-
- if (options::nl_after_label_colon())
- {
- newline_after_label_colon();
- }
- newlines_insert_blank_lines();
-
- log_rule_B("pos_bool");
-
- if (options::pos_bool() != TP_IGNORE)
- {
- newlines_chunk_pos(CT_BOOL, options::pos_bool());
- }
- log_rule_B("pos_compare");
-
- if (options::pos_compare() != TP_IGNORE)
- {
- newlines_chunk_pos(CT_COMPARE, options::pos_compare());
- }
- log_rule_B("pos_conditional");
-
- if (options::pos_conditional() != TP_IGNORE)
- {
- newlines_chunk_pos(CT_COND_COLON, options::pos_conditional());
- newlines_chunk_pos(CT_QUESTION, options::pos_conditional());
- }
- log_rule_B("pos_comma");
- log_rule_B("pos_enum_comma");
-
- if ( options::pos_comma() != TP_IGNORE
- || options::pos_enum_comma() != TP_IGNORE)
- {
- newlines_chunk_pos(CT_COMMA, options::pos_comma());
- }
- log_rule_B("pos_assign");
-
- if (options::pos_assign() != TP_IGNORE)
- {
- newlines_chunk_pos(CT_ASSIGN, options::pos_assign());
- }
- log_rule_B("pos_arith");
-
- if (options::pos_arith() != TP_IGNORE)
- {
- newlines_chunk_pos(CT_ARITH, options::pos_arith());
- newlines_chunk_pos(CT_CARET, options::pos_arith());
- }
- log_rule_B("pos_shift");
-
- if (options::pos_shift() != TP_IGNORE)
- {
- newlines_chunk_pos(CT_SHIFT, options::pos_shift());
- }
- newlines_class_colon_pos(CT_CLASS_COLON);
- newlines_class_colon_pos(CT_CONSTR_COLON);
-
- log_rule_B("nl_squeeze_ifdef");
-
- if (options::nl_squeeze_ifdef())
- {
- newlines_squeeze_ifdef();
- }
- log_rule_B("nl_squeeze_paren_close");
-
- if (options::nl_squeeze_paren_close())
- {
- newlines_squeeze_paren_close();
- }
- do_blank_lines();
- newlines_eat_start_end();
- newlines_functions_remove_extra_blank_lines();
- newlines_cleanup_dup();
- first = false;
- dump_step(dump_file, "Inside first while loop");
- } while ( old_changes != cpd.changes
- && cpd.pass_count-- > 0);
-
- mark_comments();
-
- // Add balanced spaces around nested params
- log_rule_B("sp_balance_nested_parens");
-
- if (options::sp_balance_nested_parens())
- {
- space_text_balance_nested_parens();
- }
- // Scrub certain added semicolons
- log_rule_B("mod_pawn_semicolon");
-
- if ( language_is_set(LANG_PAWN)
- && options::mod_pawn_semicolon())
- {
- pawn_scrub_vsemi();
- }
- // Sort imports/using/include
- log_rule_B("mod_sort_import");
- log_rule_B("mod_sort_include");
- log_rule_B("mod_sort_using");
-
- if ( options::mod_sort_import()
- || options::mod_sort_include()
- || options::mod_sort_using())
- {
- sort_imports();
- }
- // Fix same-line inter-chunk spacing
- space_text();
-
- // Do any aligning of preprocessors
- log_rule_B("align_pp_define_span");
-
- if (options::align_pp_define_span() > 0)
- {
- align_preprocessor();
- }
- // Indent the text
- indent_preproc();
- indent_text();
-
- // Insert trailing comments after certain close braces
- log_rule_B("mod_add_long_switch_closebrace_comment");
- log_rule_B("mod_add_long_function_closebrace_comment");
- log_rule_B("mod_add_long_class_closebrace_comment");
- log_rule_B("mod_add_long_namespace_closebrace_comment");
-
- if ( (options::mod_add_long_switch_closebrace_comment() > 0)
- || (options::mod_add_long_function_closebrace_comment() > 0)
- || (options::mod_add_long_class_closebrace_comment() > 0)
- || (options::mod_add_long_namespace_closebrace_comment() > 0))
- {
- add_long_closebrace_comment();
- }
- // Insert trailing comments after certain preprocessor conditional blocks
- log_rule_B("mod_add_long_ifdef_else_comment");
- log_rule_B("mod_add_long_ifdef_endif_comment");
-
- if ( (options::mod_add_long_ifdef_else_comment() > 0)
- || (options::mod_add_long_ifdef_endif_comment() > 0))
- {
- add_long_preprocessor_conditional_block_comment();
- }
- // Align everything else, reindent and break at code_width
- first = true;
-
- dump_step(dump_file, "Before second while loop");
-
- do
- {
- align_all();
- indent_text();
- old_changes = cpd.changes;
-
- log_rule_B("code_width");
-
- if (options::code_width() > 0)
- {
- LOG_FMT(LNEWLINE, "%s(%d): Code_width loop start: %d\n",
- __func__, __LINE__, cpd.changes);
- log_rule_B("debug_max_number_of_loops");
-
- if (options::debug_max_number_of_loops() > 0)
- {
- if (cpd.changes > options::debug_max_number_of_loops()) // Issue #2432
- {
- LOG_FMT(LNEWLINE, "%s(%d): too many loops. Make a report, please.\n",
- __func__, __LINE__);
- log_flush(true);
- exit(EX_SOFTWARE);
- }
- }
- do_code_width();
-
- if ( old_changes != cpd.changes
- && first)
- {
- // retry line breaks caused by splitting 1-liners
- newlines_cleanup_braces(false);
- newlines_insert_blank_lines();
- newlines_functions_remove_extra_blank_lines();
- newlines_remove_disallowed();
- first = false;
- }
- }
- dump_step(dump_file, "Inside second while loop");
- } while (old_changes != cpd.changes);
-
- // And finally, align the backslash newline stuff
- align_right_comments();
-
- log_rule_B("align_nl_cont");
-
- if (options::align_nl_cont())
- {
- align_backslash_newline();
- }
- dump_step(dump_file, "Final version");
-
- // which output is to be done?
- if (cpd.html_file == nullptr)
- {
- // Now render it all to the output file
- output_text(pfout);
- }
- else
- {
- // create the tracking file
- FILE *t_file;
- t_file = fopen(cpd.html_file, "wb");
- output_text(t_file);
- fclose(t_file);
- exit(EX_OK);
- }
- }
-
- // Special hook for dumping parsed data for debugging
- if (parsed_file != nullptr)
- {
- FILE *p_file;
-
- if ( parsed_file[0] == '-'
- && !parsed_file[1])
- {
- p_file = stdout;
- }
- else
- {
- p_file = fopen(parsed_file, "wb");
- }
-
- if (p_file != nullptr)
- {
- if (ends_with(parsed_file, ".csv", false))
- {
- output_parsed_csv(p_file);
- }
- else
- {
- output_parsed(p_file);
- }
-
- if (p_file != stdout)
- {
- fclose(p_file);
- }
- }
- else
- {
- LOG_FMT(LERR, "%s: Failed to open '%s' for write: %s (%d)\n",
- __func__, parsed_file, strerror(errno), errno);
- cpd.error_count++;
- }
- }
-
- if ( cpd.do_check
- && !bout_content_matches(fm, true))
- {
- cpd.check_fail_cnt++;
- }
-
- if (!defer_uncrustify_end)
- {
- uncrustify_end();
- }
-} // uncrustify_file
-
-
-void uncrustify_end()
-{
- // Free all the memory
- chunk_t *pc;
-
- cpd.unc_stage = unc_stage_e::CLEANUP;
-
- while ((pc = chunk_get_head()) != nullptr)
- {
- chunk_del(pc);
- }
-
- if (cpd.bout)
- {
- cpd.bout->clear();
- }
- // Clean up some state variables
- cpd.unc_off = false;
- cpd.al_cnt = 0;
- cpd.did_newline = true;
- cpd.pp_level = 0;
- cpd.changes = 0;
- cpd.in_preproc = CT_NONE;
- memset(cpd.le_counts, 0, sizeof(cpd.le_counts));
- cpd.preproc_ncnl_count = 0;
- cpd.ifdef_over_whole_file = 0;
- cpd.warned_unable_string_replace_tab_chars = false;
-}
-
-
-const char *get_token_name(c_token_t token)
-{
- if ( token >= 0
- && (token < static_cast<int> ARRAY_SIZE(token_names))
- && (token_names[token] != nullptr))
- {
- return(token_names[token]);
- }
- return("???");
-}
-
-
-c_token_t find_token_name(const char *text)
-{
- if ( text != nullptr
- && (*text != 0))
- {
- for (int idx = 1; idx < static_cast<int> ARRAY_SIZE(token_names); idx++)
- {
- if (strcasecmp(text, token_names[idx]) == 0)
- {
- return(static_cast<c_token_t>(idx));
- }
- }
- }
- return(CT_NONE);
-}
-
-
-static bool ends_with(const char *filename, const char *tag, bool case_sensitive = true)
-{
- int len1 = strlen(filename);
- int len2 = strlen(tag);
-
- return( len2 <= len1
- && ( ( case_sensitive
- && (strcmp(&filename[len1 - len2], tag) == 0))
- || ( !case_sensitive
- && (strcasecmp(&filename[len1 - len2], tag) == 0))));
-}
-
-
-struct lang_name_t
-{
- const char *name;
- size_t lang;
-};
-
-static lang_name_t language_names[] =
-{
- { "C", LANG_C },
- { "CPP", LANG_CPP },
- { "D", LANG_D },
- { "CS", LANG_CS },
- { "VALA", LANG_VALA },
- { "JAVA", LANG_JAVA },
- { "PAWN", LANG_PAWN },
- { "OC", LANG_OC },
- { "OC+", LANG_OC | LANG_CPP },
- { "CS+", LANG_CS | LANG_CPP },
- { "ECMA", LANG_ECMA },
- { "C-Header", LANG_OC | LANG_CPP | FLAG_HDR },
-};
-
-
-static size_t language_flags_from_name(const char *name)
-{
- for (const auto &language : language_names)
- {
- if (strcasecmp(name, language.name) == 0)
- {
- return(language.lang);
- }
- }
-
- return(0);
-}
-
-
-const char *language_name_from_flags(size_t lang)
-{
- // Check for an exact match first
- for (auto &language_name : language_names)
- {
- if (language_name.lang == lang)
- {
- return(language_name.name);
- }
- }
-
- // Check for the first set language bit
- for (auto &language_name : language_names)
- {
- if ((language_name.lang & lang) != 0)
- {
- return(language_name.name);
- }
- }
-
- return("???");
-}
-
-
-//! type to map a programming language to a typically used filename extension
-struct lang_ext_t
-{
- const char *ext; //! filename extension typically used for ...
- const char *name; //! a programming language
-};
-
-//! known filename extensions linked to the corresponding programming language
-struct lang_ext_t language_exts[] =
-{
- { ".c", "C" },
- { ".cpp", "CPP" },
- { ".d", "D" },
- { ".cs", "CS" },
- { ".vala", "VALA" },
- { ".java", "JAVA" },
- { ".pawn", "PAWN" },
- { ".p", "PAWN" },
- { ".sma", "PAWN" },
- { ".inl", "PAWN" },
- { ".h", "C-Header" },
- { ".cxx", "CPP" },
- { ".hpp", "CPP" },
- { ".hxx", "CPP" },
- { ".cc", "CPP" },
- { ".cp", "CPP" },
- { ".C", "CPP" },
- { ".CPP", "CPP" },
- { ".c++", "CPP" },
- { ".di", "D" },
- { ".m", "OC" },
- { ".mm", "OC+" },
- { ".sqc", "C" }, // embedded SQL
- { ".es", "ECMA" },
-};
-
-
-const char *get_file_extension(int &idx)
-{
- const char *val = nullptr;
-
- if (idx < static_cast<int> ARRAY_SIZE(language_exts))
- {
- val = language_exts[idx].ext;
- }
- idx++;
- return(val);
-}
-
-
-typedef std::map<string, string> extension_map_t;
-/**
- * maps a file extension to a language flag.
- *
- * @note The "." need to be included, as in ".c". The file extensions
- * ARE case sensitive.
- */
-static extension_map_t g_ext_map;
-
-
-const char *extension_add(const char *ext_text, const char *lang_text)
-{
- size_t lang_flags = language_flags_from_name(lang_text);
-
- if (lang_flags)
- {
- const char *lang_name = language_name_from_flags(lang_flags);
- g_ext_map[string(ext_text)] = lang_name;
- return(lang_name);
- }
- return(nullptr);
-}
-
-
-void print_extensions(FILE *pfile)
-{
- for (auto &language : language_names)
- {
- bool did_one = false;
-
- for (auto &extension_val : g_ext_map)
- {
- if (strcmp(extension_val.second.c_str(), language.name) == 0)
- {
- if (!did_one)
- {
- fprintf(pfile, "file_ext %s", extension_val.second.c_str());
- did_one = true;
- }
- fprintf(pfile, " %s", extension_val.first.c_str());
- }
- }
-
- if (did_one)
- {
- fprintf(pfile, "\n");
- }
- }
-}
-
-
-// TODO: better use enum lang_t for source file language
-static size_t language_flags_from_filename(const char *filename)
-{
- // check custom extensions first
- for (const auto &extension_val : g_ext_map)
- {
- if (ends_with(filename, extension_val.first.c_str()))
- {
- return(language_flags_from_name(extension_val.second.c_str()));
- }
- }
-
- for (auto &lanugage : language_exts)
- {
- if (ends_with(filename, lanugage.ext))
- {
- return(language_flags_from_name(lanugage.name));
- }
- }
-
- // check again without case sensitivity
- for (auto &extension_val : g_ext_map)
- {
- if (ends_with(filename, extension_val.first.c_str(), false))
- {
- return(language_flags_from_name(extension_val.second.c_str()));
- }
- }
-
- for (auto &lanugage : language_exts)
- {
- if (ends_with(filename, lanugage.ext, false))
- {
- return(language_flags_from_name(lanugage.name));
- }
- }
-
- return(LANG_C);
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/uncrustify.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/uncrustify.h
deleted file mode 100644
index 4b6872c7..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/uncrustify.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/**
- * @file uncrustify.h
- * prototypes for uncrustify.c
- *
- * @author Ben Gardner
- * @license GPL v2+
- */
-
-#ifndef UNCRUSTIFY_H_INCLUDED
-#define UNCRUSTIFY_H_INCLUDED
-
-#include "uncrustify_types.h"
-
-#include <stdio.h>
-
-int load_header_files(void);
-
-
-void uncrustify_file(const file_mem &fm, FILE *pfout, const char *parsed_file, const char *dump_filename, bool defer_uncrustify_end = false);
-
-
-void uncrustify_end();
-
-
-const char *get_token_name(c_token_t token);
-
-
-/**
- * Gets the tag text for a language
- *
- * @param lang The LANG_xxx enum
- *
- * @return A string
- */
-const char *language_name_from_flags(size_t lang);
-
-
-/**
- * Grab the token id for the text.
- *
- * @return token, will be CT_NONE on failure to match
- */
-c_token_t find_token_name(const char *text);
-
-std::string pcf_flags_str(pcf_flags_t flags);
-
-
-void log_pcf_flags(log_sev_t sev, pcf_flags_t flags);
-
-
-/**
- * Replace the brain-dead and non-portable basename().
- * Returns a pointer to the character after the last '/'.
- * The returned value always points into path, unless path is nullptr.
- *
- * Input Returns
- * nullptr => ""
- * "/some/path/" => ""
- * "/some/path" => "path"
- * "afile" => "afile"
- *
- * @param path The path to look at
- *
- * @return Pointer to the character after the last path separator
- */
-const char *path_basename(const char *path);
-
-
-/**
- * Returns the length of the directory part of the filename.
- *
- * @param filename filename including full path
- *
- * @return character size of path
- */
-int path_dirname_len(const char *filename);
-
-
-void usage(const char *argv0);
-
-
-void usage_error(const char *msg = nullptr);
-
-
-/**
- * Set idx = 0 before the first call.
- * Done when returns nullptr
- */
-const char *get_file_extension(int &idx);
-
-
-//! Prints custom file extensions to the file
-void print_extensions(FILE *pfile);
-
-
-const char *extension_add(const char *ext_text, const char *lang_text);
-
-
-#endif /* UNCRUSTIFY_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/uncrustify_emscripten.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/uncrustify_emscripten.cpp
deleted file mode 100644
index 2ba7d091..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/uncrustify_emscripten.cpp
+++ /dev/null
@@ -1,1218 +0,0 @@
-/*
- * uncrustify_emscripten.cpp - JavaScript Emscripten binding interface
- *
- * Created on: May 8, 2016
- * Author: Daniel Chumak
- *
- * INTERFACE:
- * ============================================================================
- * unsure about these:
- * --check TODO ???
- * --decode TODO ???
- * --detect TODO needs uncrustify start and end which both are static
- *
- *
- * will not be included:
- * ----------------------------------------------------------------------------
- * -t ( define via multiple --type )
- * -d ( define via multiple --define )
- * --assume ( no files available to guess the lang. based on the filename ending )
- * --files ( no batch processing will be available )
- * --prefix
- * --suffix
- * --assume
- * --no-backup
- * --replace
- * --mtime
- * --universalindent
- * --ds/--dump-steps
- * -help, -h, --usage, -?
- *
- *
- * done:
- * ----------------------------------------------------------------------------
- * --update-config ( use show_config() )
- * --update-config-with-doc ( show_config( bool withDoc = true ) )
- * --version, -v ( use get_version() )
- * --log, -L ( use log_type_enable( log_sev_t sev, bool value ) )
- * -q ( use quiet() )
- * --config, -c ( use loadConfig( string _cfg ) )
- * --file, -f ( use uncrustify( string _file ) )
- * --show ( use log_type_show_name( bool ) )
- * --frag ( use uncrustify( string _file, bool frag = true ) )
- * --type ( use add_keyword( string _type, c_token_t type ) )
- * -l ( use uncrustify() )
- * --parsed, -p ( use debug() )
- */
-
-
-#if defined (__linux__)
-
-
-#include "keywords.h"
-#include "log_levels.h"
-#include "logger.h"
-#include "option.h"
-#include "options.h"
-#include "output.h"
-#include "prototypes.h"
-#include "uncrustify.h"
-#include "uncrustify_version.h"
-#include "unicode.h"
-
-#include <iostream>
-#include <map>
-#include <memory>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unordered_map>
-#include <vector>
-
-
-#ifdef EMSCRIPTEN
-#include <emscripten/bind.h>
-#include <emscripten/val.h>
-using namespace emscripten;
-#else
-#define EMSCRIPTEN_BINDINGS(module) void dummyFcn()
-template<class T>
-struct base {};
-struct emscripten
-{
- template<class... Args>
- emscripten value(Args...) { return{}; }
-
- template<class... Args>
- static emscripten function(Args...) { return{}; }
-
- template<class... Args>
- emscripten property(Args...) { return{}; }
-};
-using Dummy = emscripten;
-
-
-template<class T>
-Dummy enum_(char const *const)
-{
- return(Dummy{});
-}
-
-
-template<class T>
-Dummy register_vector(char const *const)
-{
- return(Dummy{});
-}
-
-
-template<class... Args>
-Dummy class_(char const *const)
-{
- return(Dummy{});
-}
-
-
-template<class T>
-Dummy select_overload(T)
-{
- return(Dummy{});
-}
-#endif
-
-using namespace std;
-using namespace uncrustify;
-
-namespace
-{
-
-/**
- * Loads options from a file represented as a single char array.
- * Modifies: input char array, cpd.line_number
- * Expects: \0 terminated char array
- *
- * @param configString char array that holds the whole config
- * @return EXIT_SUCCESS on success
- */
-int load_option_fileChar(char *configString)
-{
- char *delimPos = &configString[0];
- char *subStringStart = &configString[0];
-
- cpd.line_number = 0;
-
- // TODO: handle compat_level
- int compat_level = 0;
-
- while (true)
- {
- delimPos = strchr(delimPos, '\n');
-
- if (delimPos == nullptr)
- {
- break;
- }
- // replaces \n with \0 -> string including multiple terminated substrings
- *delimPos = '\0';
-
-
- process_option_line(subStringStart, "", compat_level);
-
- delimPos++;
- subStringStart = delimPos;
- }
- //get last line, expectation: ends with \0
- process_option_line(subStringStart, "", compat_level);
-
- return(EXIT_SUCCESS);
-}
-
-
-/**
- * adds a new keyword to Uncrustify's dynamic keyword map (dkwm, keywords.cpp)
- *
- * @param tag: keyword that is going to be added
- * @param type: type of the keyword
- */
-void _add_keyword(string tag, c_token_t type)
-{
- if (tag.empty())
- {
- LOG_FMT(LERR, "%s: input string is empty\n", __func__);
- return;
- }
- add_keyword(tag, type);
-}
-
-
-//! clears Uncrustify's dynamic keyword map (dkwm, keywords.cpp)
-void clear_keywords()
-{
- clear_keyword_file();
-}
-
-
-/**
- * Show or hide the severity prefix "<1>"
- *
- * @param b: true=show, false=hide
- */
-void show_log_type(bool b)
-{
- log_show_sev(b);
-}
-
-
-//! returns the UNCRUSTIFY_VERSION string
-string get_version()
-{
- return(UNCRUSTIFY_VERSION);
-}
-
-
-//! disables all logging messages
-void set_quiet()
-{
- // set empty mask
- log_set_mask({});
-}
-
-
-/**
- * resets value of an option to its default
- *
- * @param name: name of the option
- * @return options enum value of the found option or -1 if option was not found
- */
-int reset_option(string name)
-{
- if (name.empty())
- {
- LOG_FMT(LERR, "%s: name string is empty\n", __func__);
- return(-1);
- }
- const auto option = find_option(name.c_str());
-
- if (option == nullptr)
- {
- LOG_FMT(LERR, "Option %s not found\n", name.c_str());
- return(-1);
- }
- option->reset();
- return(0);
-}
-
-
-/**
- * sets value of an option
- *
- * @param name: name of the option
- * @param value: value that is going to be set
- * @return options enum value of the found option or -1 if option was not found
- */
-int set_option(string name, string value)
-{
- if (name.empty())
- {
- LOG_FMT(LERR, "%s: name string is empty\n", __func__);
- return(-1);
- }
-
- if (value.empty())
- {
- LOG_FMT(LERR, "%s: value string is empty\n", __func__);
- return(-1);
- }
- const auto option = find_option(name.c_str());
-
- if (option == nullptr)
- {
- LOG_FMT(LERR, "Option %s not found\n", name.c_str());
- return(-1);
- }
-
- if (!option->read(value.c_str()))
- {
- LOG_FMT(
- LERR,
- "Failed to set value %s for option: %s of type: %s\n",
- name.c_str(),
- value.c_str(),
- to_string(option->type())
- );
- return(-1);
- }
- return(0);
-}
-
-
-/**
- * returns value of an option
- *
- * @param name: name of the option
- * @return currently set value of the option
- */
-string get_option(string name)
-{
- if (name.empty())
- {
- LOG_FMT(LERR, "%s: input string is empty\n", __func__);
- return("");
- }
- const auto option = find_option(name.c_str());
-
- if (option == nullptr)
- {
- LOG_FMT(LWARN, "Option %s not found\n", name.c_str());
- return("");
- }
- return(option->str());
-}
-
-
-/**
- * returns the config file string based on the current configuration
- *
- * @param withDoc: false=without documentation,
- * true=with documentation text lines
- * @param only_not_default: false=containing all options,
- * true=containing only options with non default values
- * @return returns the config file string based on the current configuration
- */
-string show_config(bool withDoc, bool only_not_default)
-{
- char *buf;
- size_t len;
-
- FILE *stream = open_memstream(&buf, &len);
-
- if (stream == nullptr)
- {
- LOG_FMT(LERR, "Failed to open_memstream\n");
- fflush(stream);
- fclose(stream);
- free(buf);
- return("");
- }
- save_option_file(stream, withDoc, only_not_default);
-
- fflush(stream);
- fclose(stream);
-
- string out(buf);
-
- free(buf);
-
- return(out);
-}
-
-
-/**
- * returns the config file string with all options based on the current configuration
- *
- * @param withDoc: false= without documentation, true=with documentation text lines
- * @return returns the config file string with all options based on the current configuration
- */
-string show_config(bool withDoc)
-{
- return(show_config(withDoc, false));
-}
-
-
-//!returns the config file string with all options and without documentation based on the current configuration
-string show_config()
-{
- return(show_config(false, false));
-}
-
-
-std::vector<OptionGroup *> get_groups()
-{
- std::vector<OptionGroup *> groups;
-
- groups.reserve(5);
-
- for (size_t i = 0; true; ++i)
- {
- OptionGroup *group = get_option_group(i);
-
- if (!group)
- {
- break;
- }
- groups.push_back(group);
- }
-
- return(groups);
-}
-
-
-std::vector<GenericOption *> get_options()
-{
- std::vector<GenericOption *> options;
-
- options.reserve(get_option_count());
-
- for (size_t i = 0; true; ++i)
- {
- OptionGroup *group = get_option_group(i);
-
- if (!group)
- {
- break;
- }
- options.insert(
- end(options),
- begin(group->options),
- end(group->options)
- );
- }
-
- return(options);
-}
-
-
-//! resets all options to their default values
-void reset_options()
-{
- auto options = get_options();
-
- for (auto *option : options)
- {
- option->reset();
- }
-}
-
-
-/**
- * initializes the current libUncrustify instance,
- * used only for emscripten binding here and will be automatically called while
- * module initialization
- */
-void _initialize()
-{
- register_options();
- log_init(stdout);
-
- LOG_FMT(LSYS, "Initialized libUncrustify - " UNCRUSTIFY_VERSION "\n");
-}
-
-
-//! destroys the current libUncrustify instance
-void destruct()
-{
- clear_keyword_file();
-}
-
-
-/**
- * reads option file string, sets the defined options
- *
- * @return returns EXIT_SUCCESS on success
- */
-int _loadConfig(intptr_t _cfg)
-{
- // reset everything in case a config was loaded previously
- clear_keyword_file();
- reset_options();
-
- // embind complains about char* so we use an int to get the pointer and cast
- // it, memory management is done in /emscripten/postfix_module.js
- char *cfg = reinterpret_cast<char *>(_cfg);
-
- if (load_option_fileChar(cfg) != EXIT_SUCCESS)
- {
- LOG_FMT(LERR, "unable to load the config\n");
- return(EXIT_FAILURE);
- }
- // This relies on cpd.filename being the config file name
- load_header_files();
-
- LOG_FMT(LSYS, "finished loading config\n");
- return(EXIT_SUCCESS);
-}
-
-
-/**
- * format string
- *
- * @param file: pointer to the file char* string that is going to be formatted
- * @param langIDX: specifies in which language the input file is written
- * @param frag: true=fragmented code input, false=unfragmented code input
- * @param defer: true=do not perform cleanup of Uncrustify structures
- *
- * @return pointer to the formatted file char* string
- */
-intptr_t _uncrustify(intptr_t _file, lang_flag_e langIDX, bool frag, bool defer)
-{
- // Problem: uncrustify originally is not a lib and uses global vars such as
- // cpd.error_count for the whole program execution
- // to know if errors occurred during the formating step we reset this var here
- cpd.error_count = 0;
- cpd.filename = "stdin";
- cpd.frag = frag;
-
- if (langIDX == 0) // 0 == undefined
- {
- LOG_FMT(LWARN, "language of input file not defined, C++ will be assumed\n");
- cpd.lang_flags = LANG_CPP;
- }
- else
- {
- cpd.lang_flags = langIDX;
- }
- // embind complains about char* so we use an intptr_t to get the pointer and
- // cast it, memory management is done in /emscripten/postfix_module.js
- char *file = reinterpret_cast<char *>(_file);
-
- file_mem fm;
-
- fm.raw.clear();
- fm.data.clear();
- fm.enc = char_encoding_e::e_ASCII;
- fm.raw = vector<UINT8>();
-
- char c;
-
- for (auto idx = 0; (c = file[idx]) != 0; ++idx)
- {
- fm.raw.push_back(c);
- }
-
- if (!decode_unicode(fm.raw, fm.data, fm.enc, fm.bom))
- {
- LOG_FMT(LERR, "Failed to read code\n");
- return(0);
- }
- // Done reading from stdin
- LOG_FMT(LSYS, "Parsing: %d bytes (%d chars) from stdin as language %s\n",
- (int)fm.raw.size(), (int)fm.data.size(),
- language_name_from_flags(cpd.lang_flags));
-
-
- char *buf = nullptr;
- size_t len = 0;
-
- // uncrustify uses FILE instead of streams for its outputs
- // to redirect FILE writes into a char* open_memstream is used
- // windows lacks open_memstream, only UNIX/BSD is supported
- // apparently emscripten has its own implementation, if that is not working
- // see: stackoverflow.com/questions/10305095#answer-10341073
- FILE *stream = open_memstream(&buf, &len);
-
- if (stream == nullptr)
- {
- LOG_FMT(LERR, "Failed to open_memstream\n");
- return(0);
- }
- // TODO One way to implement the --parsed, -p functionality would
- // be to let the uncrustify_file function run, throw away the formated
- // output and return the debug as a string. For this uncrustify_file would
- // need to accept a stream, FILE or a char array pointer in which the output
- // will be stored.
- // Another option would be to check, inside the uncrustify_file function,
- // if the current filename string matches stdout or stderr and use those as
- // output locations. This is the easier fix but the debug info in the
- // browsers console is littered with other unneeded text.
- // Finally, the ugliest solution, would be also possible to re-route
- // either stdout or stderr inside the Module var of emscripten to a js
- // function which passes the debug output into a dedicated output js target.
- // This therefore would introduce the dependency on the user to always have
- // the output js target available.
- uncrustify_file(fm, stream, nullptr, nullptr, defer);
-
- fflush(stream);
- fclose(stream);
-
- if (cpd.error_count != 0)
- {
- LOG_FMT(LWARN, "%d errors occurred during formating\n", cpd.error_count);
- }
-
- if (len == 0)
- {
- return(0);
- }
- // buf is deleted inside js code
- return(reinterpret_cast<intptr_t>(buf));
-} // uncrustify
-
-
-/**
- * format string
- *
- * @param file: pointer to the file char* string that is going to be formatted
- * @param langIDX: specifies in which language the input file is written
- * @param frag: true=fragmented code input, false=unfragmented code input
- *
- * @return pointer to the formatted file char* string
- */
-intptr_t _uncrustify(intptr_t file, lang_flag_e langIDX, bool frag)
-{
- return(_uncrustify(file, langIDX, frag, false));
-}
-
-
-/**
- * format string, assume unfragmented code input
- *
- * @param file: pointer to the file char* string that is going to be formatted
- * @param langIDX: specifies in which language the input file is written
- *
- * @return pointer to the formatted file char* string
- */
-intptr_t _uncrustify(intptr_t file, lang_flag_e langIDX)
-{
- return(_uncrustify(file, langIDX, false, false));
-}
-
-
-/**
- * generate debug output
- *
- * @param file: pointer to the file char* string that is going to be formatted
- * @param langIDX: specifies in which language the input file is written
- * @param frag: true=fragmented code input, false=unfragmented code input
- *
- * @return pointer to the debug file char* string
- */
-intptr_t _debug(intptr_t _file, lang_flag_e langIDX, bool frag)
-{
- auto formatted_str_ptr = _uncrustify(_file, langIDX, frag, true);
- char *formatted_str = reinterpret_cast<char *>(formatted_str_ptr);
-
- // Lazy solution: Throw away the formated file output.
- // Maybe later add option to return both formatted file string and debug
- // file string together ... somehow.
- free(formatted_str);
-
- char *buf = nullptr;
- size_t len = 0;
- FILE *stream = open_memstream(&buf, &len);
-
- if (stream == nullptr)
- {
- LOG_FMT(LERR, "Failed to open_memstream\n");
- return(0);
- }
- output_parsed(stream);
- fflush(stream);
- fclose(stream);
-
- // start deferred _uncrustify cleanup
- uncrustify_end();
-
- if (len == 0)
- {
- return(0);
- }
- // buf is deleted inside js code
- return(reinterpret_cast<intptr_t>(buf));
-} // uncrustify
-
-
-/**
- * generate debug output, assume unfragmented code input
- *
- * @param file: pointer to the file char* string that is going to be formatted
- * @param langIDX: specifies in which language the input file is written
- *
- * @return pointer to the debug file char* string
- */
-intptr_t _debug(intptr_t _file, lang_flag_e langIDX)
-{
- return(_debug(_file, langIDX, false));
-}
-
-} // namespace
-
-EMSCRIPTEN_BINDINGS(MainModule)
-{
- // region enum bindings
- enum_<option_type_e>("OptionType")
- .value("BOOL", option_type_e::BOOL)
- .value("IARF", option_type_e::IARF)
- .value("LINEEND", option_type_e::LINEEND)
- .value("TOKENPOS", option_type_e::TOKENPOS)
- .value("NUM", option_type_e::NUM)
- .value("UNUM", option_type_e::UNUM)
- .value("STRING", option_type_e::STRING);
-
- enum_<iarf_e>("IARF")
- .value("IGNORE", IARF_IGNORE)
- .value("ADD", IARF_ADD)
- .value("REMOVE", IARF_REMOVE)
- .value("FORCE", IARF_FORCE);
-
- enum_<line_end_e>("LineEnd")
- .value("LF", line_end_e::LF)
- .value("CRLF", line_end_e::CRLF)
- .value("CR", line_end_e::CR)
- .value("AUTO", line_end_e::AUTO);
-
- enum_<token_pos_e>("TokenPos")
- .value("IGNORE", token_pos_e::IGNORE)
- .value("BREAK", token_pos_e::BREAK)
- .value("FORCE", token_pos_e::FORCE)
- .value("LEAD", token_pos_e::LEAD)
- .value("TRAIL", token_pos_e::TRAIL)
- .value("JOIN", token_pos_e::JOIN)
- .value("LEAD_BREAK", token_pos_e::LEAD_BREAK)
- .value("LEAD_FORCE", token_pos_e::LEAD_FORCE)
- .value("TRAIL_BREAK", token_pos_e::TRAIL_BREAK)
- .value("TRAIL_FORCE", token_pos_e::TRAIL_FORCE);
-
- enum_<log_sev_t>("LogType")
- .value("SYS", log_sev_t::LSYS)
- .value("ERR", log_sev_t::LERR)
- .value("WARN", log_sev_t::LWARN)
- .value("NOTE", log_sev_t::LNOTE)
- .value("INFO", log_sev_t::LINFO)
- .value("DATA", log_sev_t::LDATA)
- .value("FILELIST", log_sev_t::LFILELIST)
- .value("LINEENDS", log_sev_t::LLINEENDS)
- .value("CASTS", log_sev_t::LCASTS)
- .value("ALBR", log_sev_t::LALBR)
- .value("ALTD", log_sev_t::LALTD)
- .value("ALPP", log_sev_t::LALPP)
- .value("ALPROTO", log_sev_t::LALPROTO)
- .value("ALNLC", log_sev_t::LALNLC)
- .value("ALTC", log_sev_t::LALTC)
- .value("ALADD", log_sev_t::LALADD)
- .value("ALASS", log_sev_t::LALASS)
- .value("FVD", log_sev_t::LFVD)
- .value("FVD2", log_sev_t::LFVD2)
- .value("INDENT", log_sev_t::LINDENT)
- .value("INDENT2", log_sev_t::LINDENT2)
- .value("INDPSE", log_sev_t::LINDPSE)
- .value("INDPC", log_sev_t::LINDPC)
- .value("NEWLINE", log_sev_t::LNEWLINE)
- .value("PF", log_sev_t::LPF)
- .value("STMT", log_sev_t::LSTMT)
- .value("TOK", log_sev_t::LTOK)
- .value("ALRC", log_sev_t::LALRC)
- .value("CMTIND", log_sev_t::LCMTIND)
- .value("INDLINE", log_sev_t::LINDLINE)
- .value("SIB", log_sev_t::LSIB)
- .value("RETURN", log_sev_t::LRETURN)
- .value("BRDEL", log_sev_t::LBRDEL)
- .value("FCN", log_sev_t::LFCN)
- .value("FCNP", log_sev_t::LFCNP)
- .value("PCU", log_sev_t::LPCU)
- .value("DYNKW", log_sev_t::LDYNKW)
- .value("OUTIND", log_sev_t::LOUTIND)
- .value("BCSAFTER", log_sev_t::LBCSAFTER)
- .value("BCSPOP", log_sev_t::LBCSPOP)
- .value("BCSPUSH", log_sev_t::LBCSPUSH)
- .value("BCSSWAP", log_sev_t::LBCSSWAP)
- .value("FTOR", log_sev_t::LFTOR)
- .value("AS", log_sev_t::LAS)
- .value("PPIS", log_sev_t::LPPIS)
- .value("TYPEDEF", log_sev_t::LTYPEDEF)
- .value("VARDEF", log_sev_t::LVARDEF)
- .value("DEFVAL", log_sev_t::LDEFVAL)
- .value("PVSEMI", log_sev_t::LPVSEMI)
- .value("PFUNC", log_sev_t::LPFUNC)
- .value("SPLIT", log_sev_t::LSPLIT)
- .value("FTYPE", log_sev_t::LFTYPE)
- .value("TEMPL", log_sev_t::LTEMPL)
- .value("PARADD", log_sev_t::LPARADD)
- .value("PARADD2", log_sev_t::LPARADD2)
- .value("BLANKD", log_sev_t::LBLANKD)
- .value("TEMPFUNC", log_sev_t::LTEMPFUNC)
- .value("SCANSEMI", log_sev_t::LSCANSEMI)
- .value("DELSEMI", log_sev_t::LDELSEMI)
- .value("FPARAM", log_sev_t::LFPARAM)
- .value("NL1LINE", log_sev_t::LNL1LINE)
- .value("PFCHK", log_sev_t::LPFCHK)
- .value("AVDB", log_sev_t::LAVDB)
- .value("SORT", log_sev_t::LSORT)
- .value("SPACE", log_sev_t::LSPACE)
- .value("ALIGN", log_sev_t::LALIGN)
- .value("ALAGAIN", log_sev_t::LALAGAIN)
- .value("OPERATOR", log_sev_t::LOPERATOR)
- .value("ASFCP", log_sev_t::LASFCP)
- .value("INDLINED", log_sev_t::LINDLINED)
- .value("BCTRL", log_sev_t::LBCTRL)
- .value("RMRETURN", log_sev_t::LRMRETURN)
- .value("PPIF", log_sev_t::LPPIF)
- .value("MCB", log_sev_t::LMCB)
- .value("BRCH", log_sev_t::LBRCH)
- .value("FCNR", log_sev_t::LFCNR)
- .value("OCCLASS", log_sev_t::LOCCLASS)
- .value("OCMSG", log_sev_t::LOCMSG)
- .value("BLANK", log_sev_t::LBLANK)
- .value("OBJCWORD", log_sev_t::LOBJCWORD)
- .value("CHANGE", log_sev_t::LCHANGE)
- .value("CONTTEXT", log_sev_t::LCONTTEXT)
- .value("ANNOT", log_sev_t::LANNOT)
- .value("OCBLK", log_sev_t::LOCBLK)
- .value("FLPAREN", log_sev_t::LFLPAREN)
- .value("OCMSGD", log_sev_t::LOCMSGD)
- .value("INDENTAG", log_sev_t::LINDENTAG)
- .value("NFD", log_sev_t::LNFD)
- .value("JDBI", log_sev_t::LJDBI)
- .value("SETPAR", log_sev_t::LSETPAR)
- .value("SETTYP", log_sev_t::LSETTYP)
- .value("SETFLG", log_sev_t::LSETFLG)
- .value("NLFUNCT", log_sev_t::LNLFUNCT)
- .value("CHUNK", log_sev_t::LCHUNK)
- .value("GUY98", log_sev_t::LGUY98)
- .value("GUY", log_sev_t::LGUY);
-
- enum_<c_token_t>("TokenType")
- .value("NONE", c_token_t::CT_NONE)
- .value("EOF", c_token_t::CT_EOF)
- .value("UNKNOWN", c_token_t::CT_UNKNOWN)
- .value("JUNK", c_token_t::CT_JUNK)
- .value("WHITESPACE", c_token_t::CT_WHITESPACE)
- .value("SPACE", c_token_t::CT_SPACE)
- .value("NEWLINE", c_token_t::CT_NEWLINE)
- .value("NL_CONT", c_token_t::CT_NL_CONT)
- .value("COMMENT_CPP", c_token_t::CT_COMMENT_CPP)
- .value("COMMENT", c_token_t::CT_COMMENT)
- .value("COMMENT_MULTI", c_token_t::CT_COMMENT_MULTI)
- .value("COMMENT_EMBED", c_token_t::CT_COMMENT_EMBED)
- .value("COMMENT_START", c_token_t::CT_COMMENT_START)
- .value("COMMENT_END", c_token_t::CT_COMMENT_END)
- .value("COMMENT_WHOLE", c_token_t::CT_COMMENT_WHOLE)
- .value("COMMENT_ENDIF", c_token_t::CT_COMMENT_ENDIF)
- .value("IGNORED", c_token_t::CT_IGNORED)
- .value("WORD", c_token_t::CT_WORD)
- .value("NUMBER", c_token_t::CT_NUMBER)
- .value("NUMBER_FP", c_token_t::CT_NUMBER_FP)
- .value("STRING", c_token_t::CT_STRING)
- .value("STRING_MULTI", c_token_t::CT_STRING_MULTI)
- .value("IF", c_token_t::CT_IF)
- .value("ELSE", c_token_t::CT_ELSE)
- .value("ELSEIF", c_token_t::CT_ELSEIF)
- .value("FOR", c_token_t::CT_FOR)
- .value("WHILE", c_token_t::CT_WHILE)
- .value("WHILE_OF_DO", c_token_t::CT_WHILE_OF_DO)
- .value("SWITCH", c_token_t::CT_SWITCH)
- .value("CASE", c_token_t::CT_CASE)
- .value("DO", c_token_t::CT_DO)
- .value("SYNCHRONIZED", c_token_t::CT_SYNCHRONIZED)
- .value("VOLATILE", c_token_t::CT_VOLATILE)
- .value("TYPEDEF", c_token_t::CT_TYPEDEF)
- .value("STRUCT", c_token_t::CT_STRUCT)
- .value("ENUM", c_token_t::CT_ENUM)
- .value("ENUM_CLASS", c_token_t::CT_ENUM_CLASS)
- .value("SIZEOF", c_token_t::CT_SIZEOF)
- .value("DECLTYPE", c_token_t::CT_DECLTYPE)
- .value("RETURN", c_token_t::CT_RETURN)
- .value("BREAK", c_token_t::CT_BREAK)
- .value("UNION", c_token_t::CT_UNION)
- .value("GOTO", c_token_t::CT_GOTO)
- .value("CONTINUE", c_token_t::CT_CONTINUE)
- .value("C_CAST", c_token_t::CT_C_CAST)
- .value("CPP_CAST", c_token_t::CT_CPP_CAST)
- .value("D_CAST", c_token_t::CT_D_CAST)
- .value("TYPE_CAST", c_token_t::CT_TYPE_CAST)
- .value("TYPENAME", c_token_t::CT_TYPENAME)
- .value("TEMPLATE", c_token_t::CT_TEMPLATE)
- .value("WHERE_SPEC", c_token_t::CT_WHERE_SPEC)
- .value("ASSIGN", c_token_t::CT_ASSIGN)
- .value("ASSIGN_NL", c_token_t::CT_ASSIGN_NL)
- .value("SASSIGN", c_token_t::CT_SASSIGN)
- .value("ASSIGN_DEFAULT_ARG", c_token_t::CT_ASSIGN_DEFAULT_ARG)
- .value("ASSIGN_FUNC_PROTO", c_token_t::CT_ASSIGN_FUNC_PROTO)
- .value("COMPARE", c_token_t::CT_COMPARE)
- .value("SCOMPARE", c_token_t::CT_SCOMPARE)
- .value("BOOL", c_token_t::CT_BOOL)
- .value("SBOOL", c_token_t::CT_SBOOL)
- .value("ARITH", c_token_t::CT_ARITH)
- .value("SARITH", c_token_t::CT_SARITH)
- .value("CARET", c_token_t::CT_CARET)
- .value("DEREF", c_token_t::CT_DEREF)
- .value("INCDEC_BEFORE", c_token_t::CT_INCDEC_BEFORE)
- .value("INCDEC_AFTER", c_token_t::CT_INCDEC_AFTER)
- .value("MEMBER", c_token_t::CT_MEMBER)
- .value("DC_MEMBER", c_token_t::CT_DC_MEMBER)
- .value("C99_MEMBER", c_token_t::CT_C99_MEMBER)
- .value("INV", c_token_t::CT_INV)
- .value("DESTRUCTOR", c_token_t::CT_DESTRUCTOR)
- .value("NOT", c_token_t::CT_NOT)
- .value("D_TEMPLATE", c_token_t::CT_D_TEMPLATE)
- .value("ADDR", c_token_t::CT_ADDR)
- .value("NEG", c_token_t::CT_NEG)
- .value("POS", c_token_t::CT_POS)
- .value("STAR", c_token_t::CT_STAR)
- .value("PLUS", c_token_t::CT_PLUS)
- .value("MINUS", c_token_t::CT_MINUS)
- .value("AMP", c_token_t::CT_AMP)
- .value("BYREF", c_token_t::CT_BYREF)
- .value("POUND", c_token_t::CT_POUND)
- .value("PREPROC", c_token_t::CT_PREPROC)
- .value("PREPROC_INDENT", c_token_t::CT_PREPROC_INDENT)
- .value("PREPROC_BODY", c_token_t::CT_PREPROC_BODY)
- .value("PP", c_token_t::CT_PP)
- .value("ELLIPSIS", c_token_t::CT_ELLIPSIS)
- .value("RANGE", c_token_t::CT_RANGE)
- .value("NULLCOND", c_token_t::CT_NULLCOND)
- .value("SEMICOLON", c_token_t::CT_SEMICOLON)
- .value("VSEMICOLON", c_token_t::CT_VSEMICOLON)
- .value("COLON", c_token_t::CT_COLON)
- .value("ASM_COLON", c_token_t::CT_ASM_COLON)
- .value("CASE_COLON", c_token_t::CT_CASE_COLON)
- .value("CLASS_COLON", c_token_t::CT_CLASS_COLON)
- .value("CONSTR_COLON", c_token_t::CT_CONSTR_COLON)
- .value("D_ARRAY_COLON", c_token_t::CT_D_ARRAY_COLON)
- .value("COND_COLON", c_token_t::CT_COND_COLON)
- .value("WHERE_COLON", c_token_t::CT_WHERE_COLON)
- .value("QUESTION", c_token_t::CT_QUESTION)
- .value("COMMA", c_token_t::CT_COMMA)
- .value("ASM", c_token_t::CT_ASM)
- .value("ATTRIBUTE", c_token_t::CT_ATTRIBUTE)
- .value("AUTORELEASEPOOL", c_token_t::CT_AUTORELEASEPOOL)
- .value("OC_AVAILABLE", c_token_t::CT_OC_AVAILABLE)
- .value("OC_AVAILABLE_VALUE", c_token_t::CT_OC_AVAILABLE_VALUE)
- .value("CATCH", c_token_t::CT_CATCH)
- .value("WHEN", c_token_t::CT_WHEN)
- .value("WHERE", c_token_t::CT_WHERE)
- .value("CLASS", c_token_t::CT_CLASS)
- .value("DELETE", c_token_t::CT_DELETE)
- .value("EXPORT", c_token_t::CT_EXPORT)
- .value("FRIEND", c_token_t::CT_FRIEND)
- .value("NAMESPACE", c_token_t::CT_NAMESPACE)
- .value("PACKAGE", c_token_t::CT_PACKAGE)
- .value("NEW", c_token_t::CT_NEW)
- .value("OPERATOR", c_token_t::CT_OPERATOR)
- .value("OPERATOR_VAL", c_token_t::CT_OPERATOR_VAL)
- .value("ASSIGN_OPERATOR", c_token_t::CT_ASSIGN_OPERATOR)
- .value("ACCESS", c_token_t::CT_ACCESS)
- .value("ACCESS_COLON", c_token_t::CT_ACCESS_COLON)
- .value("THROW", c_token_t::CT_THROW)
- .value("NOEXCEPT", c_token_t::CT_NOEXCEPT)
- .value("TRY", c_token_t::CT_TRY)
- .value("BRACED_INIT_LIST", c_token_t::CT_BRACED_INIT_LIST)
- .value("USING", c_token_t::CT_USING)
- .value("USING_STMT", c_token_t::CT_USING_STMT)
- .value("USING_ALIAS", c_token_t::CT_USING_ALIAS)
- .value("D_WITH", c_token_t::CT_D_WITH)
- .value("D_MODULE", c_token_t::CT_D_MODULE)
- .value("SUPER", c_token_t::CT_SUPER)
- .value("DELEGATE", c_token_t::CT_DELEGATE)
- .value("BODY", c_token_t::CT_BODY)
- .value("DEBUG", c_token_t::CT_DEBUG)
- .value("DEBUGGER", c_token_t::CT_DEBUGGER)
- .value("INVARIANT", c_token_t::CT_INVARIANT)
- .value("UNITTEST", c_token_t::CT_UNITTEST)
- .value("UNSAFE", c_token_t::CT_UNSAFE)
- .value("FINALLY", c_token_t::CT_FINALLY)
- .value("FIXED", c_token_t::CT_FIXED)
- .value("IMPORT", c_token_t::CT_IMPORT)
- .value("D_SCOPE", c_token_t::CT_D_SCOPE)
- .value("D_SCOPE_IF", c_token_t::CT_D_SCOPE_IF)
- .value("LAZY", c_token_t::CT_LAZY)
- .value("D_MACRO", c_token_t::CT_D_MACRO)
- .value("D_VERSION", c_token_t::CT_D_VERSION)
- .value("D_VERSION_IF", c_token_t::CT_D_VERSION_IF)
- .value("PAREN_OPEN", c_token_t::CT_PAREN_OPEN)
- .value("PAREN_CLOSE", c_token_t::CT_PAREN_CLOSE)
- .value("ANGLE_OPEN", c_token_t::CT_ANGLE_OPEN)
- .value("ANGLE_CLOSE", c_token_t::CT_ANGLE_CLOSE)
- .value("SPAREN_OPEN", c_token_t::CT_SPAREN_OPEN)
- .value("SPAREN_CLOSE", c_token_t::CT_SPAREN_CLOSE)
- .value("FPAREN_OPEN", c_token_t::CT_FPAREN_OPEN)
- .value("FPAREN_CLOSE", c_token_t::CT_FPAREN_CLOSE)
- .value("TPAREN_OPEN", c_token_t::CT_TPAREN_OPEN)
- .value("TPAREN_CLOSE", c_token_t::CT_TPAREN_CLOSE)
- .value("BRACE_OPEN", c_token_t::CT_BRACE_OPEN)
- .value("BRACE_CLOSE", c_token_t::CT_BRACE_CLOSE)
- .value("VBRACE_OPEN", c_token_t::CT_VBRACE_OPEN)
- .value("VBRACE_CLOSE", c_token_t::CT_VBRACE_CLOSE)
- .value("SQUARE_OPEN", c_token_t::CT_SQUARE_OPEN)
- .value("SQUARE_CLOSE", c_token_t::CT_SQUARE_CLOSE)
- .value("TSQUARE", c_token_t::CT_TSQUARE)
- .value("MACRO_OPEN", c_token_t::CT_MACRO_OPEN)
- .value("MACRO_CLOSE", c_token_t::CT_MACRO_CLOSE)
- .value("MACRO_ELSE", c_token_t::CT_MACRO_ELSE)
- .value("LABEL", c_token_t::CT_LABEL)
- .value("LABEL_COLON", c_token_t::CT_LABEL_COLON)
- .value("FUNCTION", c_token_t::CT_FUNCTION)
- .value("FUNC_CALL", c_token_t::CT_FUNC_CALL)
- .value("FUNC_CALL_USER", c_token_t::CT_FUNC_CALL_USER)
- .value("FUNC_DEF", c_token_t::CT_FUNC_DEF)
- .value("FUNC_TYPE", c_token_t::CT_FUNC_TYPE)
- .value("FUNC_VAR", c_token_t::CT_FUNC_VAR)
- .value("FUNC_PROTO", c_token_t::CT_FUNC_PROTO)
- .value("FUNC_START", c_token_t::CT_FUNC_START)
- .value("FUNC_CLASS_DEF", c_token_t::CT_FUNC_CLASS_DEF)
- .value("FUNC_CLASS_PROTO", c_token_t::CT_FUNC_CLASS_PROTO)
- .value("FUNC_CTOR_VAR", c_token_t::CT_FUNC_CTOR_VAR)
- .value("FUNC_WRAP", c_token_t::CT_FUNC_WRAP)
- .value("PROTO_WRAP", c_token_t::CT_PROTO_WRAP)
- .value("MACRO_FUNC", c_token_t::CT_MACRO_FUNC)
- .value("MACRO", c_token_t::CT_MACRO)
- .value("QUALIFIER", c_token_t::CT_QUALIFIER)
- .value("EXTERN", c_token_t::CT_EXTERN)
- .value("DECLSPEC", c_token_t::CT_DECLSPEC)
- .value("ALIGN", c_token_t::CT_ALIGN)
- .value("TYPE", c_token_t::CT_TYPE)
- .value("PTR_TYPE", c_token_t::CT_PTR_TYPE)
- .value("TYPE_WRAP", c_token_t::CT_TYPE_WRAP)
- .value("CPP_LAMBDA", c_token_t::CT_CPP_LAMBDA)
- .value("CPP_LAMBDA_RET", c_token_t::CT_CPP_LAMBDA_RET)
- .value("TRAILING_RET", c_token_t::CT_TRAILING_RET)
- .value("BIT_COLON", c_token_t::CT_BIT_COLON)
- .value("OC_DYNAMIC", c_token_t::CT_OC_DYNAMIC)
- .value("OC_END", c_token_t::CT_OC_END)
- .value("OC_IMPL", c_token_t::CT_OC_IMPL)
- .value("OC_INTF", c_token_t::CT_OC_INTF)
- .value("OC_PROTOCOL", c_token_t::CT_OC_PROTOCOL)
- .value("OC_PROTO_LIST", c_token_t::CT_OC_PROTO_LIST)
- .value("OC_GENERIC_SPEC", c_token_t::CT_OC_GENERIC_SPEC)
- .value("OC_PROPERTY", c_token_t::CT_OC_PROPERTY)
- .value("OC_CLASS", c_token_t::CT_OC_CLASS)
- .value("OC_CLASS_EXT", c_token_t::CT_OC_CLASS_EXT)
- .value("OC_CATEGORY", c_token_t::CT_OC_CATEGORY)
- .value("OC_SCOPE", c_token_t::CT_OC_SCOPE)
- .value("OC_MSG", c_token_t::CT_OC_MSG)
- .value("OC_MSG_CLASS", c_token_t::CT_OC_MSG_CLASS)
- .value("OC_MSG_FUNC", c_token_t::CT_OC_MSG_FUNC)
- .value("OC_MSG_NAME", c_token_t::CT_OC_MSG_NAME)
- .value("OC_MSG_SPEC", c_token_t::CT_OC_MSG_SPEC)
- .value("OC_MSG_DECL", c_token_t::CT_OC_MSG_DECL)
- .value("OC_RTYPE", c_token_t::CT_OC_RTYPE)
- .value("OC_ATYPE", c_token_t::CT_OC_ATYPE)
- .value("OC_COLON", c_token_t::CT_OC_COLON)
- .value("OC_DICT_COLON", c_token_t::CT_OC_DICT_COLON)
- .value("OC_SEL", c_token_t::CT_OC_SEL)
- .value("OC_SEL_NAME", c_token_t::CT_OC_SEL_NAME)
- .value("OC_BLOCK", c_token_t::CT_OC_BLOCK)
- .value("OC_BLOCK_ARG", c_token_t::CT_OC_BLOCK_ARG)
- .value("OC_BLOCK_TYPE", c_token_t::CT_OC_BLOCK_TYPE)
- .value("OC_BLOCK_EXPR", c_token_t::CT_OC_BLOCK_EXPR)
- .value("OC_BLOCK_CARET", c_token_t::CT_OC_BLOCK_CARET)
- .value("OC_AT", c_token_t::CT_OC_AT)
- .value("OC_PROPERTY_ATTR", c_token_t::CT_OC_PROPERTY_ATTR)
- .value("PP_DEFINE", c_token_t::CT_PP_DEFINE)
- .value("PP_DEFINED", c_token_t::CT_PP_DEFINED)
- .value("PP_INCLUDE", c_token_t::CT_PP_INCLUDE)
- .value("PP_IF", c_token_t::CT_PP_IF)
- .value("PP_ELSE", c_token_t::CT_PP_ELSE)
- .value("PP_ENDIF", c_token_t::CT_PP_ENDIF)
- .value("PP_ASSERT", c_token_t::CT_PP_ASSERT)
- .value("PP_EMIT", c_token_t::CT_PP_EMIT)
- .value("PP_ENDINPUT", c_token_t::CT_PP_ENDINPUT)
- .value("PP_ERROR", c_token_t::CT_PP_ERROR)
- .value("PP_FILE", c_token_t::CT_PP_FILE)
- .value("PP_LINE", c_token_t::CT_PP_LINE)
- .value("PP_SECTION", c_token_t::CT_PP_SECTION)
- .value("PP_ASM", c_token_t::CT_PP_ASM)
- .value("PP_UNDEF", c_token_t::CT_PP_UNDEF)
- .value("PP_PROPERTY", c_token_t::CT_PP_PROPERTY)
- .value("PP_BODYCHUNK", c_token_t::CT_PP_BODYCHUNK)
- .value("PP_PRAGMA", c_token_t::CT_PP_PRAGMA)
- .value("PP_REGION", c_token_t::CT_PP_REGION)
- .value("PP_ENDREGION", c_token_t::CT_PP_ENDREGION)
- .value("PP_REGION_INDENT", c_token_t::CT_PP_REGION_INDENT)
- .value("PP_IF_INDENT", c_token_t::CT_PP_IF_INDENT)
- .value("PP_IGNORE", c_token_t::CT_PP_IGNORE)
- .value("PP_OTHER", c_token_t::CT_PP_OTHER)
- .value("CHAR", c_token_t::CT_CHAR)
- .value("DEFINED", c_token_t::CT_DEFINED)
- .value("FORWARD", c_token_t::CT_FORWARD)
- .value("NATIVE", c_token_t::CT_NATIVE)
- .value("STATE", c_token_t::CT_STATE)
- .value("STOCK", c_token_t::CT_STOCK)
- .value("TAGOF", c_token_t::CT_TAGOF)
- .value("DOT", c_token_t::CT_DOT)
- .value("TAG", c_token_t::CT_TAG)
- .value("TAG_COLON", c_token_t::CT_TAG_COLON)
- .value("LOCK", c_token_t::CT_LOCK)
- .value("AS", c_token_t::CT_AS)
- .value("IN", c_token_t::CT_IN)
- .value("BRACED", c_token_t::CT_BRACED)
- .value("THIS", c_token_t::CT_THIS)
- .value("BASE", c_token_t::CT_BASE)
- .value("DEFAULT", c_token_t::CT_DEFAULT)
- .value("GETSET", c_token_t::CT_GETSET)
- .value("GETSET_EMPTY", c_token_t::CT_GETSET_EMPTY)
- .value("CONCAT", c_token_t::CT_CONCAT)
- .value("CS_SQ_STMT", c_token_t::CT_CS_SQ_STMT)
- .value("CS_SQ_COLON", c_token_t::CT_CS_SQ_COLON)
- .value("CS_PROPERTY", c_token_t::CT_CS_PROPERTY)
- .value("SQL_EXEC", c_token_t::CT_SQL_EXEC)
- .value("SQL_BEGIN", c_token_t::CT_SQL_BEGIN)
- .value("SQL_END", c_token_t::CT_SQL_END)
- .value("SQL_WORD", c_token_t::CT_SQL_WORD)
- .value("SQL_ASSIGN", c_token_t::CT_SQL_ASSIGN)
- .value("CONSTRUCT", c_token_t::CT_CONSTRUCT)
- .value("LAMBDA", c_token_t::CT_LAMBDA)
- .value("ASSERT", c_token_t::CT_ASSERT)
- .value("ANNOTATION", c_token_t::CT_ANNOTATION)
- .value("FOR_COLON", c_token_t::CT_FOR_COLON)
- .value("DOUBLE_BRACE", c_token_t::CT_DOUBLE_BRACE)
- .value("CNG_HASINC", c_token_t::CT_CNG_HASINC)
- .value("CNG_HASINCN", c_token_t::CT_CNG_HASINCN)
- .value("Q_EMIT", c_token_t::CT_Q_EMIT)
- .value("Q_FOREACH", c_token_t::CT_Q_FOREACH)
- .value("Q_FOREVER", c_token_t::CT_Q_FOREVER)
- .value("Q_GADGET", c_token_t::CT_Q_GADGET)
- .value("Q_OBJECT", c_token_t::CT_Q_OBJECT)
- .value("MODE", c_token_t::CT_MODE)
- .value("DI", c_token_t::CT_DI)
- .value("HI", c_token_t::CT_HI)
- .value("QI", c_token_t::CT_QI)
- .value("SI", c_token_t::CT_SI)
- .value("NOTHROW", c_token_t::CT_NOTHROW)
- .value("WORD_", c_token_t::CT_WORD_);
-
- enum_<lang_flag_e>("Language")
- .value("C", lang_flag_e::LANG_C)
- .value("CPP", lang_flag_e::LANG_CPP)
- .value("D", lang_flag_e::LANG_D)
- .value("CS", lang_flag_e::LANG_CS)
- .value("JAVA", lang_flag_e::LANG_JAVA)
- .value("OC", lang_flag_e::LANG_OC)
- .value("VALA", lang_flag_e::LANG_VALA)
- .value("PAWN", lang_flag_e::LANG_PAWN)
- .value("ECMA", lang_flag_e::LANG_ECMA);
-
- // endregion enum bindings
-
- register_vector<std::string>("strings");
-
- class_<GenericOption>("GenericOption")
- .function("type", &GenericOption::type)
- .function("description", select_overload<std::string(const GenericOption &)>(
- [](const GenericOption &o)
- {
- return((o.description() != nullptr) ? string(o.description()) : "");
- }))
- .function("name", select_overload<std::string(const GenericOption &)>(
- [](const GenericOption &o)
- {
- return((o.name() != nullptr) ? string(o.name()) : "");
- }))
- .function("possible_values", select_overload<std::vector<std::string>(const GenericOption &)>(
- [](const GenericOption &o)
- {
- std::vector<std::string> strings;
-
- auto ptr = o.possibleValues();
-
- for (auto c = *ptr; c; c = *++ptr)
- {
- strings.push_back(std::string{ c });
- }
-
- return(strings);
- }))
- .function("default", &GenericOption::defaultStr)
- .function("min", &GenericOption::minStr)
- .function("max", &GenericOption::maxStr)
- .function("is_default", &GenericOption::isDefault)
- .function("reset", &GenericOption::reset)
- .function("set", select_overload<bool(GenericOption &o, const std::string &s)>(
- [](GenericOption &o, const std::string &s)
- {
- return(o.read(s.c_str()));
- }))
- .function("value", &GenericOption::str);
-
- register_vector<GenericOption *>("options");
-
- class_<Option<iarf_e>, base<GenericOption> >("OptionIARF")
- .function("value", &Option<iarf_e>::operator());
-
- class_<Option<line_end_e>, base<GenericOption> >("OptionLineEnd")
- .function("value", &Option<line_end_e>::operator());
-
- class_<Option<token_pos_e>, base<GenericOption> >("OptionTokenPos")
- .function("value", &Option<token_pos_e>::operator());
-
- class_<Option<unsigned>, base<GenericOption> >("OptionUnsigned")
- .function("value", &Option<unsigned>::operator());
-
- class_<Option<signed>, base<GenericOption> >("OptionSigned")
- .function("value", &Option<signed>::operator());
-
- class_<Option<std::string>, base<GenericOption> >("OptionString")
- .function("value", &Option<std::string>::operator());
-
- class_<OptionGroup>("OptionGroup")
- .property("description", select_overload<std::string(const OptionGroup &)>(
- [](const OptionGroup &g)
- {
- return(std::string(g.description));
- }))
- .property("options", &OptionGroup::options);
-
- register_vector<OptionGroup *>("groups");
-
- emscripten::function("get_options", &get_options);
- emscripten::function("get_groups", &get_groups);
-
- emscripten::function("_initialize", &_initialize);
- emscripten::function("destruct", &destruct);
-
- emscripten::function("get_version", &get_version);
-
- emscripten::function("add_keyword", &_add_keyword);
- emscripten::function("clear_keywords", &clear_keywords);
-
- emscripten::function("reset_options", &reset_options);
- emscripten::function("option_reset_value", &reset_option);
- emscripten::function("option_set_value", &set_option);
- emscripten::function("option_get_value", &get_option);
-
- emscripten::function("_load_config", &_loadConfig);
- emscripten::function("show_config", select_overload<string(bool, bool)>(&show_config));
- emscripten::function("show_config", select_overload<string(bool)>(&show_config));
- emscripten::function("show_config", select_overload<string()>(&show_config));
-
- emscripten::function("log_type_enable", &log_set_sev);
- emscripten::function("log_type_show_name", &show_log_type);
- emscripten::function("quiet", &set_quiet);
-
- emscripten::function("_uncrustify", select_overload<intptr_t(intptr_t, lang_flag_e, bool, bool)>(&_uncrustify));
- emscripten::function("_uncrustify", select_overload<intptr_t(intptr_t, lang_flag_e, bool)>(&_uncrustify));
- emscripten::function("_uncrustify", select_overload<intptr_t(intptr_t, lang_flag_e)>(&_uncrustify));
-
- emscripten::function("_debug", select_overload<intptr_t(intptr_t, lang_flag_e, bool)>(&_debug));
- emscripten::function("_debug", select_overload<intptr_t(intptr_t, lang_flag_e)>(&_debug));
-};
-
-#endif
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/uncrustify_limits.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/uncrustify_limits.h
deleted file mode 100644
index a03591e7..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/uncrustify_limits.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#pragma once
-
-namespace uncrustify
-{
-
-namespace limits
-{
-
-static constexpr int MAX_OPTION_NAME_LEN = 32;
-static constexpr int AL_SIZE = 8000;
-
-} // namespace limits
-
-} // namespace uncrustify
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/uncrustify_types.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/uncrustify_types.h
deleted file mode 100644
index 1aeb43c3..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/uncrustify_types.h
+++ /dev/null
@@ -1,402 +0,0 @@
-/**
- * @file uncrustify_types.h
- *
- * Defines some types for the uncrustify program
- *
- * @author Ben Gardner
- * @license GPL v2+
- */
-
-#ifndef UNCRUSTIFY_TYPES_H_INCLUDED
-#define UNCRUSTIFY_TYPES_H_INCLUDED
-
-#include "options.h"
-#include "pcf_flags.h"
-#include "token_enum.h" // c_token_t
-#include "unc_text.h"
-#include "uncrustify_limits.h"
-
-#include <assert.h>
-
-#ifdef HAVE_UTIME_H
-#include <utime.h>
-#endif
-
-
-class ParseFrame;
-
-
-/**
- * abbreviations used:
- * SS = star style
- */
-
-/**
- * special strings to mark a part of the input file where
- * uncrustify shall not change anything
- */
-#define UNCRUSTIFY_OFF_TEXT " *INDENT-OFF*"
-#define UNCRUSTIFY_ON_TEXT " *INDENT-ON*"
-
-//! returns type (with removed reference) of a variable
-#define noref_decl_t(X) std::remove_reference<decltype((X))>::type
-
-//! returns type (with removed const and reference) of a variable
-#define nocref_decl_t(X) std::remove_const<noref_decl_t((X))>::type
-
-//! static casts Y to the type (with removed reference) of X
-#define s_cast_noref_decl_t(X, Y) static_cast<nocref_decl_t(X)>(Y)
-
-//! performs abs on Y after static casting it to the type (with removed reference) of X
-#define cast_abs(X, Y) s_cast_noref_decl_t(X, abs(Y))
-
-/**
- * @brief Macro to inform the compiler that a variable is intentionally
- * not in use.
- *
- * @param [in] variableName: The unused variable.
- */
-#define UNUSED(variableName) ((void)variableName)
-
-
-//! Brace stage enum used in brace_cleanup
-enum class brace_stage_e : unsigned int
-{
- NONE,
- PAREN1, //! expected paren after if/catch (C++)/for/switch/synchronized/while
- OP_PAREN1, //! optional paren after catch (C#)
- WOD_PAREN, //! while of do parens
- WOD_SEMI, //! semicolon after while of do
- BRACE_DO, //! do
- BRACE2, //! if/catch/else/finally/for/switch/synchronized/while
- ELSE, //! expecting 'else' after 'if'
- ELSEIF, //! expecting 'if' after 'else'
- WHILE, //! expecting 'while' after 'do'
- CATCH, //! expecting 'catch' or 'finally' after 'try'
- CATCH_WHEN, //! optional 'when' after 'catch'
-};
-
-
-enum class char_encoding_e : unsigned int
-{
- e_ASCII, //! 0-127
- e_BYTE, //! 0-255, not UTF-8
- e_UTF8, //! utf 8 bit wide
- e_UTF16_LE, //! utf 16 bit wide, little endian
- e_UTF16_BE //! utf 16 bit wide, big endian
-};
-
-
-struct chunk_t; //forward declaration
-
-
-/**
- * Sort of like the aligning stuff, but the token indent is relative to the
- * indent of another chunk. This is needed, as that chunk may be aligned and
- * so the indent cannot be determined in the indent code.
- */
-struct indent_ptr_t
-{
- chunk_t *ref;
- int delta;
-};
-
-
-struct align_ptr_t
-{
- chunk_t *next; //! nullptr or the chunk that should be under this one
- bool right_align; //! AlignStack.m_right_align
- size_t star_style; //! AlignStack.m_star_style
- size_t amp_style; //! AlignStack.m_amp_style
- int gap; //! AlignStack.m_gap
-
- /*
- * col_adj is the amount to alter the column for the token.
- * For example, a dangling '*' would be set to -1.
- * A right-aligned word would be a positive value.
- */
- int col_adj;
- chunk_t *ref;
- chunk_t *start;
-};
-
-
-// for debugging purpose only
-typedef std::pair<size_t, char *> Track_nr; // track for "trackNumber" and "rule"
-typedef std::vector<Track_nr> track_list; // liste for many tracks
-
-// This is the main type of this program
-struct chunk_t
-{
- chunk_t()
- {
- reset();
- }
-
-
- //! sets all elements of the struct to their default value
- void reset()
- {
- memset(&align, 0, sizeof(align));
- memset(&indent, 0, sizeof(indent));
- next = nullptr;
- prev = nullptr;
- parent = nullptr;
- type = CT_NONE;
- parent_type = CT_NONE;
- orig_line = 0;
- orig_col = 0;
- orig_col_end = 0;
- orig_prev_sp = 0;
- flags = PCF_NONE;
- column = 0;
- column_indent = 0;
- nl_count = 0;
- nl_column = 0;
- level = 0;
- brace_level = 0;
- pp_level = 999; // use a big value to find some errors
- after_tab = false;
- // for debugging purpose only
- tracking = nullptr;
- str.clear();
- }
-
-
- //! provides the number of characters of string
- size_t len() const
- {
- return(str.size());
- }
-
-
- //! provides the content of a string a zero terminated character pointer
- const char *text() const
- {
- return(str.c_str());
- }
-
-
- // Issue #2984, fill up, if necessary, a copie of the first chars of the text() string
- const char *elided_text(char *for_the_copy)
- {
- const char *test_it = text();
- size_t test_it_length = strlen(test_it);
-
- size_t truncate_value = uncrustify::options::debug_truncate();
-
- if (truncate_value != 0)
- {
- if (test_it_length > truncate_value)
- {
- memset(for_the_copy, 0, 1000);
-
- if (test_it_length < truncate_value + 30)
- {
- strncpy(for_the_copy, test_it, truncate_value - 30);
- for_the_copy[truncate_value - 30] = 0;
- }
- else
- {
- strncpy(for_the_copy, test_it, truncate_value);
- for_the_copy[truncate_value] = 0;
- }
- char *message = strcat(for_the_copy, " ... <The string is truncated>");
-
- return(message);
- }
- else
- {
- return(test_it);
- }
- }
- return(test_it);
- }
-
- chunk_t *next; //! pointer to next chunk in list
- chunk_t *prev; //! pointer to previous chunk in list
- chunk_t *parent; //! pointer to parent chunk(not always set)
- align_ptr_t align;
- indent_ptr_t indent;
- c_token_t type; //! type of the chunk itself
- c_token_t parent_type; //! type of the parent chunk usually CT_NONE
- //! might be different from parent->parent_type (above)
- size_t orig_line; //! line number of chunk in input file
- size_t orig_col; //! column where chunk started in the input file, is always > 0
- size_t orig_col_end; //! column where chunk ended in the input file, is always > 1
- UINT32 orig_prev_sp; //! whitespace before this token
- pcf_flags_t flags; //! see PCF_xxx
- size_t column; //! column of chunk
- size_t column_indent; /** if 1st on a line, set to the 'indent'
- * column, which may be less than the real
- * column used to indent with tabs */
- size_t nl_count; //! number of newlines in CT_NEWLINE
- size_t nl_column; //! column of the subsequent newline entries(all of them should have the same column)
- size_t level; /** nest level in {, (, or [
- * only to help vim command } */
- size_t brace_level; //! nest level in braces only
- size_t pp_level; //! nest level in preprocessor
- bool after_tab; //! whether this token was after a tab
- unc_text str; //! the token text
-
- // for debugging purpose only
- track_list *tracking;
-};
-
-
-//! list of all programming languages Uncrustify supports
-enum lang_flag_e
-{
- LANG_C = 0x0001,
- LANG_CPP = 0x0002,
- LANG_D = 0x0004,
- LANG_CS = 0x0008, //! C# (C-Sharp)
- LANG_JAVA = 0x0010,
- LANG_OC = 0x0020, //! Objective-C
- LANG_VALA = 0x0040,
- LANG_PAWN = 0x0080,
- LANG_ECMA = 0x0100, //! ECMA Script (JavaScript)
-
- LANG_ALLC = 0x017f, /** LANG_C | LANG_CPP | LANG_D | LANG_CS |
- * LANG_JAVA | LANG_OC | LANG_VALA | LANG_ECMA */
- LANG_ALL = 0x0fff, //! applies to all languages
-
- FLAG_HDR = 0x2000, /*<< Header file for C family languages */
- FLAG_DIG = 0x4000, //! digraph/trigraph
- FLAG_PP = 0x8000, //! only appears in a preprocessor
-};
-
-//! Pattern classes for special keywords
-enum class pattern_class_e : unsigned int
-{
- NONE,
- BRACED, /** keyword + braced statement:
- * do, try, finally, body, unittest, unsafe, volatile
- * add, get, remove, set */
- PBRACED, /** keyword + parens + braced statement:
- * if, elseif, switch, for, while, synchronized,
- * using, lock, with, version, CT_D_SCOPE_IF */
- OPBRACED, /** keyword + optional parens + braced statement:
- * catch, version, debug */
- VBRACED, /** keyword + value + braced statement:
- * namespace */
- PAREN, /** keyword + parens:
- * while-of-do */
- OPPAREN, /** keyword + optional parens:
- * invariant (D lang) */
- ELSE, /** Special case of pattern_class_e::BRACED for handling CT_IF
- * else */
-};
-
-//! used to link language keywords with some addition information
-struct chunk_tag_t
-{
- const char *tag; //! name of the keyword e.g. "bool"
- c_token_t type; //! uncrustify type assigned to that keyword
- size_t lang_flags; //! programming language that uses this keyword
-};
-
-
-struct align_t
-{
- size_t col;
- c_token_t type;
- size_t len; //! length of the token + space
-};
-
-//! holds information and data of a file
-struct file_mem
-{
- std::vector<UINT8> raw; //! raw content of file
- std::deque<int> data; //! processed content of file
- bool bom;
- char_encoding_e enc; //! character encoding of file ASCII, utf, etc.
-#ifdef HAVE_UTIME_H
- struct utimbuf utb;
-#endif
-};
-
-enum class unc_stage_e : unsigned int
-{
- TOKENIZE,
- HEADER,
- TOKENIZE_CLEANUP,
- BRACE_CLEANUP,
- FIX_SYMBOLS,
- MARK_COMMENTS,
- COMBINE_LABELS,
- OTHER,
- CLEANUP
-};
-
-struct cp_data_t
-{
- std::deque<UINT8> *bout;
- FILE *fout;
- int last_char;
- bool do_check;
- unc_stage_e unc_stage;
- int check_fail_cnt; //! total failure count
- bool if_changed;
-
- UINT32 error_count; //! counts how many errors occurred so far
- std::string filename;
-
- file_mem file_hdr; // for cmt_insert_file_header
- file_mem file_ftr; // for cmt_insert_file_footer
- file_mem func_hdr; // for cmt_insert_func_header
- file_mem oc_msg_hdr; // for cmt_insert_oc_msg_header
- file_mem class_hdr; // for cmt_insert_class_header
- file_mem reflow_fold_regex; // for cmt_reflow_fold_regex_file
-
- size_t lang_flags; //! defines the language of the source input
- bool lang_forced; //! overwrites automatic language detection
-
- bool unc_off;
- bool unc_off_used; //! true if the `disable_processing_cmt` option was actively used in the processed file
- UINT32 line_number;
- size_t column; //! column for parsing
- UINT16 spaces; //! space count on output
-
- int ifdef_over_whole_file;
-
- bool frag; //! activates code fragment option
- UINT32 frag_cols;
-
- // stuff to auto-detect line endings
- UINT32 le_counts[uncrustify::line_end_styles];
- unc_text newline;
-
- int did_newline; //! flag indicates if a newline was added or converted
- c_token_t in_preproc;
- int preproc_ncnl_count;
- bool output_trailspace;
- bool output_tab_as_space;
-
- bool bom;
- char_encoding_e enc;
-
- // bumped up when a line is split or indented
- int changes;
- int pass_count; //! indicates how often the chunk list shall be processed
-
- align_t al[uncrustify::limits::AL_SIZE];
- size_t al_cnt;
- bool al_c99_array;
-
- bool warned_unable_string_replace_tab_chars;
-
- int pp_level; // TODO: can this ever be -1?
-
- const char *phase_name;
- const char *dumped_file;
- const char *html_file = nullptr; // for debugging purpose only
-};
-
-extern cp_data_t cpd; // TODO: can we avoid this external variable?
-
-const char *get_brace_stage_name(brace_stage_e brace_stage);
-
-const char *get_unc_stage_name(unc_stage_e unc_stage);
-
-#endif /* UNCRUSTIFY_TYPES_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/width.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/width.cpp
deleted file mode 100644
index c5ed4b2f..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/width.cpp
+++ /dev/null
@@ -1,916 +0,0 @@
-/**
- * @file width.cpp
- * Limits line width.
- *
- * @author Ben Gardner
- * @license GPL v2+
- */
-
-#include "width.h"
-
-#include "indent.h"
-#include "newlines.h"
-#include "prototypes.h"
-
-
-constexpr static auto LCURRENT = LSPLIT;
-
-using namespace uncrustify;
-
-
-/**
- * abbreviations used:
- * - fparen = function parenthesis
- */
-
-struct cw_entry
-{
- chunk_t *pc;
- size_t pri;
-};
-
-
-struct token_pri
-{
- c_token_t tok;
- size_t pri;
-};
-
-
-static inline bool is_past_width(chunk_t *pc);
-
-
-//! Split right after the chunk
-static void split_before_chunk(chunk_t *pc);
-
-
-static size_t get_split_pri(c_token_t tok);
-
-
-/**
- * Checks to see if pc is a better spot to split.
- * This should only be called going BACKWARDS (ie prev)
- * A lower level wins
- *
- * Splitting Preference:
- * - semicolon
- * - comma
- * - boolean op
- * - comparison
- * - arithmetic op
- * - assignment
- * - concatenated strings
- * - ? :
- * - function open paren not followed by close paren
- */
-static void try_split_here(cw_entry &ent, chunk_t *pc);
-
-
-/**
- * Scan backwards to find the most appropriate spot to split the line
- * and insert a newline.
- *
- * See if this needs special function handling.
- * Scan backwards and find the best token for the split.
- *
- * @param start The first chunk that exceeded the limit
- */
-static bool split_line(chunk_t *pc);
-
-
-/**
- * Figures out where to split a function def/proto/call
- *
- * For function prototypes and definition. Also function calls where
- * level == brace_level:
- * - find the open function parenthesis
- * + if it doesn't have a newline right after it
- * * see if all parameters will fit individually after the paren
- * * if not, throw a newline after the open paren & return
- * - scan backwards to the open fparen or comma
- * + if there isn't a newline after that item, add one & return
- * + otherwise, add a newline before the start token
- *
- * @param start the offending token
- * @return the token that should have a newline
- * inserted before it
- */
-static void split_fcn_params(chunk_t *start);
-
-
-/**
- * Figures out where to split a template
- *
- *
- * @param start the offending token
- */
-static void split_template(chunk_t *start);
-
-
-/**
- * Splits the parameters at every comma that is at the fparen level.
- *
- * @param start the offending token
- */
-static void split_fcn_params_full(chunk_t *start);
-
-
-/**
- * A for statement is too long.
- * Step backwards and forwards to find the semicolons
- * Try splitting at the semicolons first.
- * If that doesn't work, then look for a comma at paren level.
- * If that doesn't work, then look for an assignment at paren level.
- * If that doesn't work, then give up.
- */
-static void split_for_stmt(chunk_t *start);
-
-
-static inline bool is_past_width(chunk_t *pc)
-{
- // allow char to sit at last column by subtracting 1
- LOG_FMT(LSPLIT, "%s(%d): orig_line is %zu, orig_col is %zu, for %s\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text());
- log_rule_B("code_width");
- return((pc->column + pc->len() - 1) > options::code_width());
-}
-
-
-static void split_before_chunk(chunk_t *pc)
-{
- LOG_FUNC_ENTRY();
- LOG_FMT(LSPLIT, "%s(%d): text() '%s'\n", __func__, __LINE__, pc->text());
-
- if ( !chunk_is_newline(pc)
- && !chunk_is_newline(chunk_get_prev(pc)))
- {
- newline_add_before(pc);
- // reindent needs to include the indent_continue value and was off by one
- log_rule_B("indent_columns");
- log_rule_B("indent_continue");
- reindent_line(pc, pc->brace_level * options::indent_columns() +
- abs(options::indent_continue()) + 1);
- cpd.changes++;
- }
-}
-
-
-void do_code_width(void)
-{
- LOG_FUNC_ENTRY();
- LOG_FMT(LSPLIT, "%s(%d)\n", __func__, __LINE__);
-
- for (chunk_t *pc = chunk_get_head(); pc != nullptr; pc = chunk_get_next(pc))
- {
- if ( !chunk_is_newline(pc)
- && !chunk_is_comment(pc)
- && chunk_is_not_token(pc, CT_SPACE)
- && is_past_width(pc))
- {
- if ( chunk_is_token(pc, CT_VBRACE_CLOSE) // don't break if a vbrace close
- && chunk_is_last_on_line(*pc)) // is the last chunk on its line
- {
- continue;
- }
- bool split_OK = split_line(pc);
-
- if (split_OK)
- {
- LOG_FMT(LSPLIT, "%s(%d): orig_line is %zu, orig_col is %zu, text() '%s'\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text());
- }
- else
- {
- LOG_FMT(LSPLIT, "%s(%d): Bailed! orig_line is %zu, orig_col is %zu, text() '%s'\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text());
- break;
- }
- }
- }
-}
-
-
-static const token_pri pri_table[] =
-{
- { CT_SEMICOLON, 1 },
- { CT_COMMA, 2 },
- { CT_BOOL, 3 },
- { CT_COMPARE, 4 },
- { CT_SHIFT, 5 },
- { CT_ARITH, 6 },
- { CT_CARET, 7 },
- { CT_ASSIGN, 8 },
- { CT_STRING, 9 },
- { CT_FOR_COLON, 10 },
- //{ CT_DC_MEMBER, 11 },
- //{ CT_MEMBER, 11 },
- { CT_QUESTION, 20 }, // allow break in ? : for ls_code_width
- { CT_COND_COLON, 20 },
- { CT_FPAREN_OPEN, 21 }, // break after function open paren not followed by close paren
- { CT_QUALIFIER, 25 },
- { CT_CLASS, 25 },
- { CT_STRUCT, 25 },
- { CT_TYPE, 25 },
- { CT_TYPENAME, 25 },
- { CT_VOLATILE, 25 },
-};
-
-
-static size_t get_split_pri(c_token_t tok)
-{
- for (auto token : pri_table)
- {
- if (token.tok == tok)
- {
- return(token.pri);
- }
- }
-
- return(0);
-}
-
-
-static void try_split_here(cw_entry &ent, chunk_t *pc)
-{
- LOG_FUNC_ENTRY();
-
- LOG_FMT(LSPLIT, "%s(%d): at %s, orig_col=%zu\n", __func__, __LINE__, pc->text(), pc->orig_col);
- size_t pc_pri = get_split_pri(pc->type);
-
- LOG_FMT(LSPLIT, "%s(%d): pc_pri is %zu\n", __func__, __LINE__, pc_pri);
-
- if (pc_pri == 0)
- {
- LOG_FMT(LSPLIT, "%s(%d): pc_pri is 0, return\n", __func__, __LINE__);
- return;
- }
- LOG_FMT(LSPLIT, "%s(%d):\n", __func__, __LINE__);
- // Can't split after a newline
- chunk_t *prev = chunk_get_prev(pc);
-
- if ( prev == nullptr
- || ( chunk_is_newline(prev)
- && chunk_is_not_token(pc, CT_STRING)))
- {
- if (prev != nullptr)
- {
- LOG_FMT(LSPLIT, "%s(%d): Can't split after a newline, orig_line is %zu, return\n",
- __func__, __LINE__, prev->orig_line);
- }
- return;
- }
- LOG_FMT(LSPLIT, "%s(%d):\n", __func__, __LINE__);
-
- // Can't split a function without arguments
- if (chunk_is_token(pc, CT_FPAREN_OPEN))
- {
- chunk_t *next = chunk_get_next(pc);
-
- if (chunk_is_token(next, CT_FPAREN_CLOSE))
- {
- LOG_FMT(LSPLIT, "%s(%d): Can't split a function without arguments, return\n", __func__, __LINE__);
- return;
- }
- }
- LOG_FMT(LSPLIT, "%s(%d):\n", __func__, __LINE__);
-
- // Only split concatenated strings
- if (chunk_is_token(pc, CT_STRING))
- {
- chunk_t *next = chunk_get_next(pc);
-
- if (chunk_is_not_token(next, CT_STRING))
- {
- LOG_FMT(LSPLIT, "%s(%d): Only split concatenated strings, return\n", __func__, __LINE__);
- return;
- }
- }
- LOG_FMT(LSPLIT, "%s(%d):\n", __func__, __LINE__);
-
- // keep common groupings unless ls_code_width
- log_rule_B("ls_code_width");
-
- if ( !options::ls_code_width()
- && pc_pri >= 20)
- {
- LOG_FMT(LSPLIT, "%s(%d): keep common groupings unless ls_code_width, return\n", __func__, __LINE__);
- return;
- }
- LOG_FMT(LSPLIT, "%s(%d):\n", __func__, __LINE__);
-
- // don't break after last term of a qualified type
- if (pc_pri == 25)
- {
- chunk_t *next = chunk_get_next(pc);
-
- if ( chunk_is_not_token(next, CT_WORD)
- && (get_split_pri(next->type) != 25))
- {
- LOG_FMT(LSPLIT, "%s(%d): don't break after last term of a qualified type, return\n", __func__, __LINE__);
- return;
- }
- }
- LOG_FMT(LSPLIT, "%s(%d):\n", __func__, __LINE__);
- // Check levels first
- bool change = false;
-
- if ( ent.pc == nullptr
- || pc->level < ent.pc->level)
- {
- LOG_FMT(LSPLIT, "%s(%d):\n", __func__, __LINE__);
- change = true;
- }
- else
- {
- if ( pc->level >= ent.pc->level
- && pc_pri < ent.pri)
- {
- LOG_FMT(LSPLIT, "%s(%d):\n", __func__, __LINE__);
- change = true;
- }
- }
- LOG_FMT(LSPLIT, "%s(%d): change is %s\n", __func__, __LINE__, change ? "TRUE" : "FALSE");
-
- if (change)
- {
- LOG_FMT(LSPLIT, "%s(%d): do the change\n", __func__, __LINE__);
- ent.pc = pc;
- ent.pri = pc_pri;
- }
-} // try_split_here
-
-
-static bool split_line(chunk_t *start)
-{
- LOG_FUNC_ENTRY();
- LOG_FMT(LSPLIT, "%s(%d): start->text() '%s', orig_line is %zu, orig_col is %zu, type is %s\n",
- __func__, __LINE__, start->text(), start->orig_line, start->orig_col, get_token_name(start->type));
- LOG_FMT(LSPLIT, " start->flags ");
- log_pcf_flags(LSPLIT, start->flags);
- LOG_FMT(LSPLIT, " start->parent_type %s, (PCF_IN_FCN_DEF is %s), (PCF_IN_FCN_CALL is %s)\n",
- get_token_name(get_chunk_parent_type(start)),
- start->flags.test((PCF_IN_FCN_DEF)) ? "TRUE" : "FALSE",
- start->flags.test((PCF_IN_FCN_CALL)) ? "TRUE" : "FALSE");
-
- // break at maximum line length if ls_code_width is true
- // Issue #2432
- if (start->flags.test(PCF_ONE_LINER))
- {
- LOG_FMT(LSPLIT, "%s(%d): ** ONCE LINER SPLIT **\n", __func__, __LINE__);
- undo_one_liner(start);
- newlines_cleanup_braces(false);
- // Issue #1352
- cpd.changes++;
- return(false);
- }
- LOG_FMT(LSPLIT, "%s(%d): before ls_code_width\n", __func__, __LINE__);
-
- log_rule_B("ls_code_width");
-
- if (options::ls_code_width())
- {
- }
- // Check to see if we are in a for statement
- else if (start->flags.test(PCF_IN_FOR))
- {
- LOG_FMT(LSPLIT, " ** FOR SPLIT **\n");
- split_for_stmt(start);
-
- if (!is_past_width(start))
- {
- return(true);
- }
- LOG_FMT(LSPLIT, "%s(%d): for split didn't work\n", __func__, __LINE__);
- }
-
- /*
- * If this is in a function call or prototype, split on commas or right
- * after the open parenthesis
- */
- else if ( start->flags.test(PCF_IN_FCN_DEF)
- || get_chunk_parent_type(start) == CT_FUNC_PROTO // Issue #1169
- || ( (start->level == (start->brace_level + 1))
- && start->flags.test(PCF_IN_FCN_CALL)))
- {
- LOG_FMT(LSPLIT, " ** FUNC SPLIT **\n");
-
- log_rule_B("ls_func_split_full");
-
- if (options::ls_func_split_full())
- {
- split_fcn_params_full(start);
-
- if (!is_past_width(start))
- {
- return(true);
- }
- }
- split_fcn_params(start);
- return(true);
- }
-
- /*
- * If this is in a template, split on commas, Issue #1170
- */
- else if (start->flags.test(PCF_IN_TEMPLATE))
- {
- LOG_FMT(LSPLIT, " ** TEMPLATE SPLIT **\n");
- split_template(start);
- return(true);
- }
- LOG_FMT(LSPLIT, "%s(%d):\n", __func__, __LINE__);
- // Try to find the best spot to split the line
- cw_entry ent;
-
- memset(&ent, 0, sizeof(ent));
- chunk_t *pc = start;
- chunk_t *prev;
-
- while ( ((pc = chunk_get_prev(pc)) != nullptr)
- && !chunk_is_newline(pc))
- {
- LOG_FMT(LSPLIT, "%s(%d): at %s, orig_line is %zu, orig_col is %zu\n",
- __func__, __LINE__, pc->text(), pc->orig_line, pc->orig_col);
-
- if (chunk_is_not_token(pc, CT_SPACE))
- {
- try_split_here(ent, pc);
-
- // break at maximum line length
- log_rule_B("ls_code_width");
-
- if ( ent.pc != nullptr
- && (options::ls_code_width()))
- {
- break;
- }
- }
- }
-
- if (ent.pc == nullptr)
- {
- LOG_FMT(LSPLIT, "%s(%d): TRY_SPLIT yielded NO SOLUTION for orig_line %zu at '%s' [%s]\n",
- __func__, __LINE__, start->orig_line, start->text(), get_token_name(start->type));
- }
- else
- {
- LOG_FMT(LSPLIT, "%s(%d): TRY_SPLIT yielded '%s' [%s] on orig_line %zu\n",
- __func__, __LINE__, ent.pc->text(), get_token_name(ent.pc->type), ent.pc->orig_line);
- LOG_FMT(LSPLIT, "%s(%d): ent at '%s', orig_col is %zu\n",
- __func__, __LINE__, ent.pc->text(), ent.pc->orig_col);
- }
-
- // Break before the token instead of after it according to the pos_xxx rules
- if (ent.pc == nullptr)
- {
- pc = nullptr;
- }
- else
- {
- log_rule_B("pos_arith");
- log_rule_B("pos_assign");
- log_rule_B("pos_compare");
- log_rule_B("pos_conditional");
- log_rule_B("pos_shift");
- log_rule_B("pos_bool");
-
- if ( ( chunk_is_token(ent.pc, CT_SHIFT)
- && (options::pos_shift() & TP_LEAD))
- || ( ( chunk_is_token(ent.pc, CT_ARITH)
- || chunk_is_token(ent.pc, CT_CARET))
- && (options::pos_arith() & TP_LEAD))
- || ( chunk_is_token(ent.pc, CT_ASSIGN)
- && (options::pos_assign() & TP_LEAD))
- || ( chunk_is_token(ent.pc, CT_COMPARE)
- && (options::pos_compare() & TP_LEAD))
- || ( ( chunk_is_token(ent.pc, CT_COND_COLON)
- || chunk_is_token(ent.pc, CT_QUESTION))
- && (options::pos_conditional() & TP_LEAD))
- || ( chunk_is_token(ent.pc, CT_BOOL)
- && (options::pos_bool() & TP_LEAD)))
- {
- pc = ent.pc;
- }
- else
- {
- pc = chunk_get_next(ent.pc);
- }
- LOG_FMT(LSPLIT, "%s(%d): at '%s', orig_col is %zu\n",
- __func__, __LINE__, pc->text(), pc->orig_col);
- }
-
- if (pc == nullptr)
- {
- pc = start;
-
- // Don't break before a close, comma, or colon
- if ( chunk_is_token(start, CT_PAREN_CLOSE)
- || chunk_is_token(start, CT_PAREN_OPEN)
- || chunk_is_token(start, CT_FPAREN_CLOSE)
- || chunk_is_token(start, CT_FPAREN_OPEN)
- || chunk_is_token(start, CT_SPAREN_CLOSE)
- || chunk_is_token(start, CT_SPAREN_OPEN)
- || chunk_is_token(start, CT_ANGLE_CLOSE)
- || chunk_is_token(start, CT_BRACE_CLOSE)
- || chunk_is_token(start, CT_COMMA)
- || chunk_is_token(start, CT_SEMICOLON)
- || chunk_is_token(start, CT_VSEMICOLON)
- || start->len() == 0)
- {
- LOG_FMT(LSPLIT, " ** NO GO **\n");
-
- // TODO: Add in logic to handle 'hard' limits by backing up a token
- return(true);
- }
- }
- // add a newline before pc
- prev = chunk_get_prev(pc);
-
- if ( prev != nullptr
- && !chunk_is_newline(pc)
- && !chunk_is_newline(prev))
- {
- //int plen = (pc->len() < 5) ? pc->len() : 5;
- //int slen = (start->len() < 5) ? start->len() : 5;
- //LOG_FMT(LSPLIT, " '%.*s' [%s], started on token '%.*s' [%s]\n",
- // plen, pc->text(), get_token_name(pc->type),
- // slen, start->text(), get_token_name(start->type));
- LOG_FMT(LSPLIT, "%s(%d): text() '%s', type %s, started on token '%s', type %s\n",
- __func__, __LINE__, pc->text(), get_token_name(pc->type),
- start->text(), get_token_name(start->type));
-
- split_before_chunk(pc);
- }
- return(true);
-} // split_line
-
-
-/*
- * The for statement split algorithm works as follows:
- * 1. Step backwards and forwards to find the semicolons
- * 2. Try splitting at the semicolons first.
- * 3. If that doesn't work, then look for a comma at paren level.
- * 4. If that doesn't work, then look for an assignment at paren level.
- * 5. If that doesn't work, then give up.
- */
-static void split_for_stmt(chunk_t *start)
-{
- LOG_FUNC_ENTRY();
- // how many semicolons (1 or 2) do we need to find
- log_rule_B("ls_for_split_full");
- size_t max_cnt = options::ls_for_split_full() ? 2 : 1;
- chunk_t *open_paren = nullptr;
- size_t nl_cnt = 0;
-
- LOG_FMT(LSPLIT, "%s: starting on %s, line %zu\n",
- __func__, start->text(), start->orig_line);
-
- // Find the open paren so we know the level and count newlines
- chunk_t *pc = start;
-
- while ((pc = chunk_get_prev(pc)) != nullptr)
- {
- if (chunk_is_token(pc, CT_SPAREN_OPEN))
- {
- open_paren = pc;
- break;
- }
-
- if (pc->nl_count > 0)
- {
- nl_cnt += pc->nl_count;
- }
- }
-
- if (open_paren == nullptr)
- {
- LOG_FMT(LSPLIT, "No open paren\n");
- return;
- }
- // see if we started on the semicolon
- int count = 0;
- chunk_t *st[2];
-
- pc = start;
-
- if ( chunk_is_token(pc, CT_SEMICOLON)
- && get_chunk_parent_type(pc) == CT_FOR)
- {
- st[count++] = pc;
- }
-
- // first scan backwards for the semicolons
- while ( (count < static_cast<int>(max_cnt))
- && ((pc = chunk_get_prev(pc)) != nullptr)
- && pc->flags.test(PCF_IN_SPAREN))
- {
- if ( chunk_is_token(pc, CT_SEMICOLON)
- && get_chunk_parent_type(pc) == CT_FOR)
- {
- st[count++] = pc;
- }
- }
- // And now scan forward
- pc = start;
-
- while ( (count < static_cast<int>(max_cnt))
- && ((pc = chunk_get_next(pc)) != nullptr)
- && pc->flags.test(PCF_IN_SPAREN))
- {
- if ( chunk_is_token(pc, CT_SEMICOLON)
- && get_chunk_parent_type(pc) == CT_FOR)
- {
- st[count++] = pc;
- }
- }
-
- while (--count >= 0)
- {
- // TODO: st[0] may be uninitialized here
- LOG_FMT(LSPLIT, "%s(%d): split before %s\n", __func__, __LINE__, st[count]->text());
- split_before_chunk(chunk_get_next(st[count]));
- }
-
- if ( !is_past_width(start)
- || nl_cnt > 0)
- {
- return;
- }
- // Still past width, check for commas at parenthese level
- pc = open_paren;
-
- while ((pc = chunk_get_next(pc)) != start)
- {
- if ( chunk_is_token(pc, CT_COMMA)
- && (pc->level == (open_paren->level + 1)))
- {
- split_before_chunk(chunk_get_next(pc));
-
- if (!is_past_width(pc))
- {
- return;
- }
- }
- }
- // Still past width, check for a assignments at parenthese level
- pc = open_paren;
-
- while ((pc = chunk_get_next(pc)) != start)
- {
- if ( chunk_is_token(pc, CT_ASSIGN)
- && (pc->level == (open_paren->level + 1)))
- {
- split_before_chunk(chunk_get_next(pc));
-
- if (!is_past_width(pc))
- {
- return;
- }
- }
- }
- // Oh, well. We tried.
-} // split_for_stmt
-
-
-static void split_fcn_params_full(chunk_t *start)
-{
- LOG_FUNC_ENTRY();
- LOG_FMT(LSPLIT, "%s(%d): %s\n", __func__, __LINE__, start->text());
-
- // Find the opening function parenthesis
- chunk_t *fpo = start;
-
- LOG_FMT(LSPLIT, " %s(%d): Find the opening function parenthesis\n", __func__, __LINE__);
-
- while ((fpo = chunk_get_prev(fpo)) != nullptr)
- {
- LOG_FMT(LSPLIT, "%s(%d): %s, orig_col is %zu, level is %zu\n",
- __func__, __LINE__, fpo->text(), fpo->orig_col, fpo->level);
-
- if ( chunk_is_token(fpo, CT_FPAREN_OPEN)
- && (fpo->level == start->level - 1))
- {
- break; // opening parenthesis found. Issue #1020
- }
- }
- // Now break after every comma
- chunk_t *pc = fpo;
-
- while ((pc = chunk_get_next_ncnnl(pc)) != nullptr)
- {
- if (pc->level <= fpo->level)
- {
- break;
- }
-
- if ( (pc->level == (fpo->level + 1))
- && chunk_is_token(pc, CT_COMMA))
- {
- split_before_chunk(chunk_get_next(pc));
- }
- }
-}
-
-
-static void split_fcn_params(chunk_t *start)
-{
- LOG_FUNC_ENTRY();
- LOG_FMT(LSPLIT, "%s(%d): start->text() is '%s', orig_line is %zu, orig_col is %zu\n",
- __func__, __LINE__, start->text(), start->orig_line, start->orig_col);
- chunk_t *fpo = start;
-
- if (!chunk_is_token(start, CT_FPAREN_OPEN))
- {
- // Find the opening function parenthesis
- LOG_FMT(LSPLIT, "%s(%d): Find the opening function parenthesis\n", __func__, __LINE__);
-
- while ( ((fpo = chunk_get_prev(fpo)) != nullptr)
- && chunk_is_not_token(fpo, CT_FPAREN_OPEN))
- {
- // do nothing
- LOG_FMT(LSPLIT, "%s(%d): '%s', orig_col is %zu, level is %zu\n",
- __func__, __LINE__, fpo->text(), fpo->orig_col, fpo->level);
- }
- }
- chunk_t *pc = chunk_get_next_ncnnl(fpo);
- size_t min_col = pc->column;
-
- log_rule_B("code_width");
- LOG_FMT(LSPLIT, " mincol is %zu, max_width is %zu\n",
- min_col, options::code_width() - min_col);
-
- int cur_width = 0;
- int last_col = -1;
-
- LOG_FMT(LSPLIT, "%s(%d):look forward until CT_COMMA or CT_FPAREN_CLOSE\n", __func__, __LINE__);
-
- while (pc != nullptr)
- {
- LOG_FMT(LSPLIT, "%s(%d): pc->text() '%s', type is %s\n",
- __func__, __LINE__, pc->text(), get_token_name(pc->type));
-
- if (chunk_is_newline(pc))
- {
- cur_width = 0;
- last_col = -1;
- }
- else
- {
- if (last_col < 0)
- {
- last_col = pc->column;
- LOG_FMT(LSPLIT, "%s(%d): last_col is %d\n",
- __func__, __LINE__, last_col);
- }
- cur_width += (pc->column - last_col) + pc->len();
- last_col = pc->column + pc->len();
-
- LOG_FMT(LSPLIT, "%s(%d): last_col is %d\n",
- __func__, __LINE__, last_col);
-
- if ( chunk_is_token(pc, CT_COMMA)
- || chunk_is_token(pc, CT_FPAREN_CLOSE))
- {
- if (cur_width == 0)
- {
- fprintf(stderr, "%s(%d): cur_width is ZERO, cannot be decremented, at line %zu, column %zu\n",
- __func__, __LINE__, pc->orig_line, pc->orig_col);
- log_flush(true);
- exit(EX_SOFTWARE);
- }
- cur_width--;
- LOG_FMT(LSPLIT, "%s(%d): cur_width is %d\n",
- __func__, __LINE__, cur_width);
-
- log_rule_B("code_width");
-
- if ( ((last_col - 1) > static_cast<int>(options::code_width()))
- || chunk_is_token(pc, CT_FPAREN_CLOSE))
- {
- break;
- }
- }
- }
- pc = chunk_get_next(pc);
- }
- // back up until the prev is a comma
- chunk_t *prev = pc;
-
- LOG_FMT(LSPLIT, "%s(%d): back up until the prev is a comma, begin is '%s', level is %zu\n",
- __func__, __LINE__, prev->text(), prev->level);
-
- while ((prev = chunk_get_prev(prev)) != nullptr)
- {
- LOG_FMT(LSPLIT, "%s(%d): prev->text() is '%s', prev->orig_line is %zu, prev->orig_col is %zu\n",
- __func__, __LINE__, prev->text(), prev->orig_line, prev->orig_col);
- LOG_FMT(LSPLIT, "%s(%d): prev->level is %zu, prev '%s', prev->type is %s\n",
- __func__, __LINE__, prev->level, prev->text(), get_token_name(prev->type));
-
- if ( chunk_is_newline(prev)
- || chunk_is_token(prev, CT_COMMA))
- {
- LOG_FMT(LSPLIT, "%s(%d): found at %zu\n",
- __func__, __LINE__, prev->orig_col);
- break;
- }
- LOG_FMT(LSPLIT, "%s(%d): last_col is %d, prev->len() is %zu\n",
- __func__, __LINE__, last_col, prev->len());
- last_col -= prev->len();
- LOG_FMT(LSPLIT, "%s(%d): last_col is %d\n",
- __func__, __LINE__, last_col);
-
- if (chunk_is_token(prev, CT_FPAREN_OPEN))
- {
- pc = chunk_get_next(prev);
-
- log_rule_B("indent_paren_nl");
-
- if (!options::indent_paren_nl())
- {
- log_rule_B("indent_columns");
- min_col = pc->brace_level * options::indent_columns() + 1;
- LOG_FMT(LSPLIT, "%s(%d): min_col is %zu\n",
- __func__, __LINE__, min_col);
-
- log_rule_B("indent_continue");
-
- if (options::indent_continue() == 0)
- {
- log_rule_B("indent_columns");
- min_col += options::indent_columns();
- }
- else
- {
- min_col += abs(options::indent_continue());
- }
- LOG_FMT(LSPLIT, "%s(%d): min_col is %zu\n",
- __func__, __LINE__, min_col);
- }
-
- // Don't split "()"
- if (pc->type != c_token_t(prev->type + 1))
- {
- break;
- }
- }
- }
-
- if ( prev != nullptr
- && !chunk_is_newline(prev))
- {
- LOG_FMT(LSPLIT, "%s(%d): -- ended on %s --\n",
- __func__, __LINE__, get_token_name(prev->type));
- LOG_FMT(LSPLIT, "%s(%d): min_col is %zu\n",
- __func__, __LINE__, min_col);
- pc = chunk_get_next(prev);
- newline_add_before(pc);
- reindent_line(pc, min_col);
- cpd.changes++;
- }
-} // split_fcn_params
-
-
-static void split_template(chunk_t *start)
-{
- LOG_FUNC_ENTRY();
- LOG_FMT(LSPLIT, " %s(%d): start %s\n", __func__, __LINE__, start->text());
- LOG_FMT(LSPLIT, " %s(%d): back up until the prev is a comma\n", __func__, __LINE__);
-
- // back up until the prev is a comma
- chunk_t *prev = start;
-
- while ((prev = chunk_get_prev(prev)) != nullptr)
- {
- LOG_FMT(LSPLIT, " %s(%d): prev '%s'\n", __func__, __LINE__, prev->text());
-
- if ( chunk_is_newline(prev)
- || chunk_is_token(prev, CT_COMMA))
- {
- break;
- }
- }
-
- if ( prev != nullptr
- && !chunk_is_newline(prev))
- {
- LOG_FMT(LSPLIT, " %s(%d):", __func__, __LINE__);
- LOG_FMT(LSPLIT, " -- ended on %s --\n", get_token_name(prev->type));
- chunk_t *pc = chunk_get_next(prev);
- newline_add_before(pc);
- size_t min_col = 1;
-
- log_rule_B("indent_continue");
-
- if (options::indent_continue() == 0)
- {
- log_rule_B("indent_columns");
- min_col += options::indent_columns();
- }
- else
- {
- min_col += abs(options::indent_continue());
- }
- reindent_line(pc, min_col);
- cpd.changes++;
- }
-} // split_templatefcn_params
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/c-sharp.test b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/c-sharp.test
deleted file mode 100644
index 232315a7..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/c-sharp.test
+++ /dev/null
@@ -1,149 +0,0 @@
-#
-# Test cases specifically for the C# language.
-#
-# Range: 10000 - 19999
-# test.name config.file input.file
-
-10000 cs/mono.cfg cs/simple.cs
-10001 cs/getset.cfg cs/getset.cs
-10002 cs/ben_032.cfg cs/simple.cs
-10003 cs/ben_033.cfg cs/region.cs
-10010 cs/ben_034.cfg cs/var-member.cs
-10011 common/indent_columns-3.cfg cs/strings.cs
-10013 cs/625_where-constraints.cfg cs/625_where-constraints.cs
-
-10020 common/region-0.cfg cs/region.cs
-10021 common/region-1.cfg cs/region.cs
-10022 common/region-2.cfg cs/region.cs
-10023 common/region-3.cfg cs/region.cs
-
-10030 common/sort_imports.cfg cs/sort_using.cs
-10031 cs/mod_sort_using-t.cfg cs/bug_i_935.cs
-10032 cs/sort_using_categ.cfg cs/sort_using_categ.cs
-
-10040 cs/tcf.cfg cs/tcf.cs
-10041 cs/tcf.cfg cs/gs.cs
-10042 cs/ben_036.cfg cs/exception-filters.cs
-
-10050 cs/cs_generics.cfg cs/generics.cs
-
-10060 cs/ben_037.cfg cs/unsafe.cs
-10065 cs/UNI-1975.cfg cs/UNI-1975.cs
-
-10070 cs/ben_038.cfg cs/utf16le.cs
-10071 cs/ben_038.cfg cs/utf16be.cs
-10072 cs/ben_038.cfg cs/utf16le_no_bom.cs
-10073 cs/ben_038.cfg cs/utf16be_no_bom.cs
-10074 cs/UNI-2020.cfg cs/UNI-2020.cs
-
-10080 common/ben_042.cfg cs/property.cs
-
-10090 cs/ben_043.cfg cs/string_multi.cs
-
-10100 common/empty.cfg cs/bug_600.cs
-10101 cs/sf607.cfg cs/sf607.cs
-
-10110 cs/mda_space_a.cfg cs/mdarray_space.cs
-10111 cs/sp_after_comma-a.cfg cs/mdarray_space.cs
-10112 cs/mda_space_c.cfg cs/mdarray_space.cs
-
-10119 common/empty.cfg cs/preserveTabs.cs
-10120 common/empty.cfg cs/cmt_backslash_eol.cs
-
-10130 cs/sp_between_new_paren.cfg cs/sp_between_new_paren.cs
-
-10140 cs/ben_044.cfg cs/remove_semi.cs
-
-10150 cs/ben_045.cfg cs/operator-null-conditional.cs
-10151 cs/sp_assign-a.cfg cs/operator_null-coalescing-assignment.cs
-
-10200 common/empty.cfg cs/logger.cs
-
-10300 common/empty.cfg cs/1822.cs
-
-10628 common/empty.cfg cs/sf628.cs
-10160 common/empty.cfg cs/delegate.cs
-10161 cs/indent_cs_delegate_brace-t.cfg cs/delegate.cs
-12001 cs/bug_620.cfg cs/bug_620.cs
-12002 common/empty.cfg cs/nullable_prop.cs
-12003 cs/ben_043.cfg cs/fncall_as_ctor_in_attr.cs
-12004 cs/verbatim_strings.cfg cs/verbatim_strings.cs
-12005 common/empty.cfg cs/bug_1591.cs
-
-12101 cs/indent_using_block-f.cfg cs/bug_i_679.cs
-
-12102 cs/mod_full_brace_nl_block_rem_mlcond-0.cfg cs/mod_full_brace_nl_block_rem_mlcond.cs
-12103 cs/mod_full_brace_nl_block_rem_mlcond-1.cfg cs/mod_full_brace_nl_block_rem_mlcond.cs
-12104 cs/bug_1637.cfg cs/bug_1637.cs
-12105 cs/bug_1650.cfg cs/bug_1650.cs
-12106 cs/bug_1650.cfg cs/UNI-40685.cs
-12107 cs/mod_full_paren_if_bool.cfg cs/mod_full_paren_if_bool.cs
-12108 cs/Issue_2705.cfg cs/Issue_2705.cs
-
-# test the options sp_ with the value "ignore"
-12200 cs/comma-cs-f.cfg cs/comma.cs
-12201 cs/comma-cs-i.cfg cs/comma.cs
-12202 cs/comma-cs-r.cfg cs/comma.cs
-
-# Adopt some UT tests
-10012 common/empty.cfg cs/621_this-spacing.cs
-10014 common/empty.cfg cs/630_bad-new-init-semicolon-removal.cs
-10015 cs/misc-failures.cfg cs/misc-failures.cs
-10016 cs/new-constraint-paren-space.cfg cs/new-constraint-paren-space.cs
-10018 common/empty.cfg cs/delete-space-oc.mm
-10019 common/empty.cfg cs/func-param-wrap-oc.mm
-10027 cs/U01-Cs.cfg cs/oneline_property.cs
-10028 cs/U02-Cs.cfg cs/ifcolalign.cs
-10029 cs/U03-Cs.cfg cs/when.cs
-10033 cs/U11-Cpp.cfg cs/objc.mm
-10034 cs/U12-Cpp.cfg cs/asm.h.mm
-10035 cs/U13-Cpp.cfg cs/definesalign.h.mm
-10036 cs/U14-Cpp.cfg cs/inttypes.h.mm
-10039 cs/615_nested_usings.cfg cs/615_nested-usings.cs
-10044 cs/U04-Cs.cfg cs/ifcomment.cs
-10045 cs/UNI-1288.cfg cs/UNI-1288.cs
-10046 cs/U15-Cpp.cfg cs/UNI-1333.mm
-10051 cs/UNI-1338.cfg cs/UNI-1338.cs
-10055 cs/U06-Cs.cfg cs/UNI-1345.cs
-10066 cs/UNI-1977.cfg cs/UNI-1977.cs
-10067 cs/UNI-1978.cfg cs/UNI-1978.cs
-10075 cs/UNI-2021.cfg cs/UNI-2021.cs
-10076 cs/UNI-1343.cfg cs/UNI-1343.cs
-10077 cs/U09-Cs.cfg cs/UNI-1919.cs
-10078 cs/U10-Cs.cfg cs/UNI-3484.cs
-10102 cs/U24-Cpp.cfg cs/pp-ignore.mm
-10103 cs/U11-Cs.cfg cs/UNI-2506.cs
-10104 common/empty.cfg cs/UNI-2505.cs
-11011 cs/620_getset-brace.cfg cs/620_getset-brace.cs
-11030 cs/U08-Cpp.cfg cs/argtypes.mm
-11031 cs/U09-Cpp.cfg cs/casting.mm
-11032 cs/U10-Cpp.cfg cs/newlines.mm
-11072 cs/U07-Cs.cfg cs/UNI-2007.cs
-11073 cs/U08-Cs.cfg cs/UNI-2008.cs
-20010 cs/UNI-32658.cfg cs/UNI-32658.cs
-20011 cs/bug_1620.cfg cs/bug_1620.cs
-
-60004 cs/UNI-2684.cfg cs/UNI-2684.cs
-60005 cs/UNI-2685.cfg cs/UNI-2685.cs
-60007 cs/UNI-3083.cfg cs/UNI-3083.cs
-60008 cs/U-J.cfg cs/UNI-17253.cs
-60009 cs/UNI-9917.cfg cs/UNI-9917.cs
-60011 cs/UNI-11095.cfg cs/UNI-11095.mm
-60012 cs/U13-Cs.cfg cs/UNI-12303.cs
-60013 cs/UNI-13955.cfg cs/UNI-13955.cs
-60015 cs/UNI-14131.cfg cs/UNI-14131.cs
-60016 cs/UNI-11662.cfg cs/UNI-11662.cs
-60018 common/UNI-18777.cfg cs/UNI-18777.cs
-60019 common/empty.cfg cs/UNI-18780.cs
-60020 cs/UNI-18829.cfg cs/UNI-18829.cs
-60023 cs/UNI-18437.cfg cs/UNI-18437.cs
-60024 cs/U15-Cs.cfg cs/UNI-19644.cs
-60026 cs/UNI-19895.cfg cs/UNI-19895.cs
-60033 cs/UNI-21730.cfg cs/UNI-21730.cs
-60036 cs/UNI-11993.cfg cs/UNI-11993.cs
-60037 cs/UNI-29933.cfg cs/UNI-29933.cs
-60040 cs/UNI-30498_2.cfg cs/UNI-30498_2.cs
-60041 cs/squeeze-paren-close-Option.cfg cs/squeeze-paren-close-Option.cs
-60042 cs/indent-multistring-coulmn1.cfg cs/indent-multistring-coulmn1.cs
-60044 cs/UNI-37241.cfg cs/UNI-37241.cs
-60045 common/nl_before_after.cfg cs/add-nl-before-namespace.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/c.test b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/c.test
deleted file mode 100644
index eaf30d4e..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/c.test
+++ /dev/null
@@ -1,435 +0,0 @@
-#
-# Test cases specifically for the C language.
-#
-# Range: 00000 - 09999
-# test.name config.file input.file
-
-
-# little general tests ====================================================
-
-00000 common/indent_columns-3.cfg c/comment-indent.c
-00001 c/cpp_to_c-1.cfg c/comment-indent.c
-00002 c/cpp_to_c-2.cfg c/comment-indent.c
-00003 c/cpp_to_c-3.cfg c/comment-indent.c
-00004 c/indent-1.cfg c/switch.c
-00005 c/ben_047.cfg c/cmt-align.c
-00006 common/indent_columns-3.cfg c/comment-convert.c
-00007 c/cpp_to_c-1.cfg c/comment-convert.c
-00008 c/cpp_to_c-2.cfg c/comment-convert.c
-00009 c/cpp_to_c-3.cfg c/comment-convert.c
-
-
-# brace styles
-
-00010 c/ben_048.cfg c/braces.c
-00011 common/brace-allman.cfg c/braces.c
-00012! c/brace-banner.cfg c/braces.c
-00013 c/brace-gnu.cfg c/braces.c
-00014 c/brace-kr.cfg c/braces.c
-00015 c/brace-ws.cfg c/braces.c
-00016 c/brace-ws2.cfg c/braces.c
-
-00020 c/ben_049.cfg c/define-if-indent.c
-00050 c/brace-remove-2.cfg c/brace-remove.c
-00051 c/brace-remove-all.cfg c/brace-remove.c
-00052 c/brace-remove-all.cfg c/brace-remove2.c
-00053 c/nl_brace_test.cfg c/brace.c
-00054 c/if_chain.cfg c/if_chain.c
-00055 c/cgal.cfg c/braces-2.c
-00056 c/brace-remove-all.cfg c/brace-remove3.c
-00057 c/if_chain.cfg c/brace-remove3.c
-00058 c/brace-kr-nobr.cfg c/if_chain.c
-
-00060 c/ben_050.cfg c/braces-2.c
-00061 c/ben_051.cfg c/braces-3.c
-00062 c/ben_052.cfg c/braces-4.c
-00065 c/ben_053.cfg c/braces-5.c
-00066 c/ben_054.cfg c/vb-while.c
-00067 c/ben_055.cfg c/vb-do.c
-
-
-00068 c/ben_056.cfg c/bsnl.c
-00069 c/ben_057.cfg c/vb-pp.c
-
-00070 c/ben_058.cfg c/return-multi.c
-00071 common/ben_042.cfg c/include_define.h
-00072 common/star_pos-0.cfg c/align-proto.c
-00073 common/empty.cfg c/nl_proto_endif.c
-00074 c/clang-has_include.cfg c/clang-has_include.h
-00076 c/1225.cfg c/1225.c
-
-00081 c/else-if-1.cfg c/else-if.c
-00082 c/else-if-2.cfg c/else-if.c
-
-00091 c/cond-1.cfg c/cond.c
-00092 common/indent_columns-3.cfg c/cond.c
-00093 c/sp_cond_colon.cfg c/cond.c
-
-00101 c/ben_061.cfg c/bugs-1.c
-00102 c/space_indent_columns-3.cfg c/bugs-2.c
-00103 c/ben_063.cfg c/bugs-3.c
-00104 c/ben_064.cfg c/bugs-4.c
-00105 c/ben_065.cfg c/bugs-5.c
-00106 common/ben_011.cfg c/bugs-6.c
-00107 common/ben_011.cfg c/bugs-7.c
-00108 common/indent_columns-3.cfg c/bugs-8.c
-
-00110 c/ben_069.cfg c/misc.c
-00111 c/brace-kr-br.cfg c/misc.c
-
-00120 c/sp_cmt_cpp_start-r.cfg c/sp_cmt_cpp_start.c
-00121 common/sp_cmt_cpp_start-a.cfg c/sp_cmt_cpp_start.c
-00122 common/sp_cmt_cpp_start_force.cfg c/sp_cmt_cpp_start.c
-00123 c/cmt_reflow.cfg c/cmt_reflow.c
-
-00130 c/ben_070.cfg c/minus-minus.c
-00135 c/nepenthes.cfg c/br_cmt.c
-
-00140 c/ben_071.cfg c/global-vars.c
-00141 c/ben_072.cfg c/deref.c
-00142 c/ben_073.cfg c/type-cast.c
-00143 c/ben_074.cfg c/t3.in.c
-00144 c/ben_075.cfg c/align-proto-vars.c
-00145 c/ben_076.cfg c/vardefcol.c
-
-
-# casts
-
-00150 c/ben_077.cfg c/casts.c
-00151 c/cast-sp-r.cfg c/casts.c
-00152 c/cast-sp-a.cfg c/casts.c
-00153 c/cast-type.cfg c/casts.c
-00154 common/sp_after_cast.cfg c/casts.c
-00155 c/ben_078.cfg c/cast_brace.c
-
-
-# fcn indents
-
-00160 c/indent_func_param.cfg c/fcn_indent.c
-00161 c/indent_func_call_param.cfg c/fcn_indent.c
-00162 c/indent_func_def_param.cfg c/fcn_indent.c
-00163 c/indent_func_proto_param.cfg c/fcn_indent.c
-00164 c/rdan.cfg c/fcn_indent_func_def_col1.c
-00165 c/sp_func_call_user_inside_fparen.cfg c/sp_func_call_user_inside_fparen.c
-
-00170 common/empty.cfg c/beautifier-off.c
-00180 c/sf538.cfg c/lvalue.c
-
-
-# switch & case stuff
-
-00201 c/case-1.cfg c/case.c
-00202 c/case-2.cfg c/case.c
-00203 c/case-3.cfg c/case.c
-00204 c/bug_1718.cfg c/bug_1718.c
-00205 c/nl_before_return_false.cfg c/case-nl_before_return.c
-00206 c/nl_before_return_true.cfg c/case-nl_before_return.c
-00207 common/nl_before_ignore_after_case.cfg c/nl_before_ignore_after_case.c
-
-
-# structure initializers
-
-00301 c/ben_079.cfg c/align-struct-init.c
-00302 c/ben_080.cfg c/one-liner-init.c
-00303 c/1liner-split.cfg c/one-liner-init.c
-00304 c/1liner-no-split.cfg c/one-liner-init.c
-00305 c/ben_081.cfg c/one-liner-define.c
-
-00310 common/empty.cfg c/sp_embed_comment.c
-
-00320 c/rdan.cfg c/indent_first_bool_expr.c
-
-
-# aligning tresholds
-
-00401 common/align-1.cfg c/align-equ.c
-00402 common/align-1.cfg c/align-var.c
-00403 c/align-2.cfg c/align-var.c
-00404 c/align-3.cfg c/align-var.c
-00405 c/align-3.cfg c/bits.c
-00406 c/bug_i_771.cfg c/bug_i_771.c
-
-00411 c/align_typedef_gap-3_span-5.cfg c/align-typedef.c
-00412 c/align_typedef_gap-3_span-5.cfg c/align-typedef.c
-00413 c/align_typedef_func-1.cfg c/align-typedef.c
-00414 c/align_typedef_func-2.cfg c/align-typedef.c
-00415 c/align_stack.cfg c/align_stack.c
-00416 c/align_sf_call_thresh_416.cfg c/align_sf_call_thresh_416.c
-00417 c/align_sf_call_thresh_417.cfg c/align_sf_call_thresh_417.c
-00418 c/align_sf_call_span_418.cfg c/align_sf_call_span_418.c
-00419 c/align_sf_call_span_419.cfg c/align_sf_call_span_419.c
-00420 c/Issue-2278.cfg c/Issue-2278.c
-
-00421 c/nl_ds_struct_enum_cmt-t.cfg c/nl_ds_struct_enum.c
-00422 c/nl_ds_struct_enum-2.cfg c/nl_ds_struct_enum.c
-00423 c/bug_1702.cfg c/bug_1702.c
-
-00430 common/empty.cfg c/paren-indent.c
-00431 c/indent_paren_close-1.cfg c/paren-indent.c
-00432 c/indent_paren_close-2.cfg c/paren-indent.c
-
-00440 c/bug_489.cfg c/bug_489.c
-
-00451 c/code_width-80.cfg c/enum_gallery.c
-00452 c/nl_enum_own_lines-a.cfg c/enum_gallery.c
-00453! c/nl_enum_own_lines-3.cfg c/enum_gallery.c
-00454 c/nl_enum_own_lines-4.cfg c/enum_gallery.c
-
-00461 c/align_func_proto_star_amp-1.cfg c/align_func_proto_star_amp.h
-00462 c/align_func_proto_star_amp-2.cfg c/align_func_proto_star_amp.h
-00463 c/align_func_proto_star_amp-3.cfg c/align_func_proto_star_amp.h
-00464 c/align_func_proto_star_amp-4.cfg c/align_func_proto_star_amp.h
-00465 c/align_func_proto_star_amp-5.cfg c/align_func_proto_star_amp.h
-00466 c/align_func_proto_star_amp-6.cfg c/align_func_proto_star_amp.h
-00467 c/align_func_proto_star_amp-7.cfg c/align_func_proto_star_amp.h
-00468 c/align_func_proto_star_amp-8.cfg c/align_func_proto_star_amp.h
-00469 c/align_func_proto_star_amp-9.cfg c/align_func_proto_star_amp.h
-
-# boolean and comma positioning
-
-00501 c/bool-pos-eol.cfg c/bool-pos.c
-00502 c/bool-pos-sol.cfg c/bool-pos.c
-00503 c/pos_compare-sol.cfg c/pos_compare.c
-00504 c/pos_compare-eol.cfg c/pos_compare.c
-00505 c/pos_conditional-l.cfg c/pos_conditional.c
-00506 c/pos_conditional-t.cfg c/pos_conditional.c
-00510 c/bool-pos-eol-break.cfg c/bool-pos.c
-00511 c/bool-pos-sol-break.cfg c/bool-pos.c
-00512 common/bool-pos-eol-force.cfg c/bool-pos.c
-00513 c/bool-pos-sol-force.cfg c/bool-pos.c
-00514 c/my_conf.cfg c/my_infile.c
-
-00600 common/indent_columns-3.cfg c/dos.c
-00601 common/indent_columns-3.cfg c/mac.c
-00611 common/empty.cfg c/pp-space.c
-00612 c/pp-indent-2.cfg c/pp-space.c
-00613 c/pp_indent-a.cfg c/pp-space.c
-00614 c/pp-space.cfg c/pp-space.c
-00615 c/pp-indent-2.cfg c/pp-nest.c
-00616 c/pp_if_indent-1.cfg c/pp-if-indent.c
-00617 c/rdan.cfg c/pp-if-indent.c
-00618 c/pp_if_indent-4.cfg c/pp-if-indent.c
-00619 c/Issue_3169.cfg c/Issue_3169.c
-
-00620 c/ben_083.cfg c/indent-assign.c
-00621 c/nl_endif.cfg c/nl_endif.c
-00622 c/indent_assign.cfg c/indent-off-after-assign.c
-
-00631 c/nl_assign1.cfg c/nl_assign.c
-00632 c/nl_assign2.cfg c/nl_assign.c
-00633 c/nl_assign1.cfg c/bug_3156.c
-
-# function def newlines
-00701 common/func-def-1.cfg c/function-def.c
-00702 common/func-def-2.cfg c/function-def.c
-00703 common/func-def-3.cfg c/function-def.c
-
-00710 c/add_long_closebrace_comment_1.cfg c/add_long_comment.c
-
-# nl_after_semicolon and nl_after_open_brace
-
-00721 c/nl_semicolon.cfg c/nl-semicolon.c
-
-# function types
-
-00801 c/ben_084.cfg c/fcn_type.c
-00802 c/ben_085.cfg c/funcfunc.c
-00803 c/sf537.cfg c/fcn_type.c
-
-# code width
-
-00901 c/width.cfg c/code_width.c
-00902 common/width-2.cfg c/code_width.c
-00903 c/width-3.cfg c/code_width.c
-
-# pascal ptr_type
-
-00910 c/pascal_ptr.cfg c/pascal_ptr.c
-00911 c/empty_body.cfg c/pascal_ptr.c
-
-01000 c/mod-paren.cfg c/mod-paren.c
-01001 c/nl-comment.cfg c/nl-comment.c
-01002 c/mod-paren2.cfg c/mod-paren.c
-
-01005 c/mod_case_brace_add.cfg c/mod_case_brace.c
-01006 common/mod_case_brace_rm.cfg c/mod_case_brace.c
-01007 c/mod_move_case_brace.cfg c/mod_case_brace.c
-01008 c/mod_case_brace_add.cfg c/Issue_3366.c
-
-01011 common/del_semicolon.cfg c/semicolons.c
-01012 c/ben_086.cfg c/semicolons.c
-
-01015 common/empty.cfg c/paren_indent.c
-01016 c/align_attr.cfg c/align_attr.c
-
-01020 common/kw_subst.cfg c/kw_subst.c
-01021 common/kw_subst3.cfg c/hello.c
-01022 common/kw_subst3.cfg c/kw_subst.c
-
-01030 c/cmt_indent_multi-f.cfg c/multi.h
-
-01035 common/empty.cfg c/func_wrap.c
-01036 common/sp_inside_fparen-f.cfg c/func_wrap.c
-01037 c/type_wrap.cfg c/type_wrap.c
-
-01040 c/newline_after_endif.cfg c/newline_after_endif.c
-
-01050 c/func_call_user.cfg c/func_call_user.c
-
-01060 common/empty.cfg c/backslash-newline-lex.c
-
-01070 c/label_colon_nl_1.cfg c/various_colons.c
-01071 c/label_colon_nl_2.cfg c/various_colons.c
-
-01080 common/empty.cfg c/bug_1196.c
-
-# big general tests
-
-02000 c/ben_087.cfg c/i2c-core.c
-02001 c/preproc-cleanup.cfg c/directfb.h
-02002 common/ben2.cfg c/i2c-core.c
-
-# clark's style - blank lines before and after flow control, indented comments
-
-02100 common/clark.cfg c/i2c-core.c
-02101 common/clark.cfg c/comment-indent.c
-
-02200 c/xml-str.cfg c/xml.c
-02201 c/xml-str.cfg c/align-string.c
-
-02300 c/ben_088.cfg c/preproc-if.c
-02301 common/d.cfg c/preproc-if.c
-02302 c/cpp_to_c-1.cfg c/nl-cont.c
-02303 c/cpp_to_c-1.cfg c/nl-cont2.c
-
-02310 c/ben_089.cfg c/empty-for.c
-02311 c/ben_090.cfg c/pragma.c
-
-02315 c/pp_ret.cfg c/pp_ret.c
-
-02320 c/nl_create_one_liner.cfg c/nl_create_one_liner.c
-02325 common/sort_imports.cfg c/sort_include.c
-
-02330 c/leave_one_liners.cfg c/one_liners.c
-
-# some embedded sql stuff
-
-02400 c/ben_091.cfg sql/mysql.sqc C
-02401 c/ben_092.cfg sql/sta-select.sqc C
-02402 c/issue_527.cfg sql/issue_527.sqc C
-
-02410 c/pp_if_indent-0.cfg c/ifdef-indent.c
-02411 c/pp_if_indent-1.cfg c/ifdef-indent.c
-02412 c/pp_if_indent-2.cfg c/ifdef-indent.c
-02413 c/pp_if_indent-3.cfg c/ifdef-indent.c
-02414 c/nl_whole_file_ifdef.cfg c/whole_file_ifdef.c
-02415 c/endif.cfg c/endif.c
-02416 c/cmt_nl_end.cfg c/cmt_nl_end.c
-
-02421 c/cmt_multi_check_last-f.cfg c/cmt_multi.c
-02422 common/empty.cfg c/cmt_multi.c
-02423 common/empty.cfg c/cmt_multi_utf8.c
-
-02431 c/align_right_cmt_gap-1.cfg c/cmt_right_align.c
-02432 c/space_indent_columns-3.cfg c/cmt_right_align.c
-
-02440 common/empty.cfg c/string_utf8.c
-02441 common/empty.cfg c/utf8-identifiers.c
-
-02451 c/return-1.cfg c/nl_return_expr.c
-02452 c/return-2.cfg c/nl_return_expr.c
-02453 c/return-3.cfg c/nl_return_expr.c
-02454 c/return-4.cfg c/nl_return_expr.c
-
-02455 common/mod_paren_on_return-a.cfg c/macro-returns.c
-02456 common/mod_paren_on_return-r.cfg c/macro-returns.c
-02457 c/nl_before_return_true.cfg c/nl_before_return.c
-
-02460 c/freebsd.cfg c/freebsd.c
-
-02486 c/doxy-comment-no.cfg c/doxy-comment.c
-02487 c/doxy-comment-yes.cfg c/doxy-comment.c
-
-02501 c/ger.cfg c/custom_types_ssl.c
-02502 c/custom_types_ssl.cfg c/custom_types_ssl.c
-#02503 ger.cfg c/pp_concat_asn1.h
-
-02504 c/align_keep_extra.cfg c/align_keep_extra.c
-
-02510 c/ben_093.cfg c/asm.c
-
-07630 c/indent-vbrace.cfg c/indent-vbrace.c
-
-08399 c/ben_095.cfg c/gh399.c
-
-09594 common/indent_columns-3.cfg c/sf594.c
-09588 common/empty.cfg c/sf588.c
-
-09601 c/sp_after_sparen.cfg c/sp_after_sparen.c
-09602 common/bug_671.cfg c/bug_671.c
-09603 c/indent_ternary_operator-1.cfg c/indent_ternary-1.c
-09604 c/indent_ternary_operator-2.cfg c/indent_ternary-2.c
-09605 common/sp_arith-f.cfg c/negative_value.c
-09606 c/ptr-arith.cfg c/extern.c
-09607 c/ptr-arith.cfg c/attribute.c
-09608 common/aet-func_call_user.cfg c/func_call_user2.c
-09609 c/Issue_2279.cfg c/Issue_2279.c
-
-09610 c/force_tab_after_define-t.cfg c/bug_i_876.c
-09611 common/space_indent_columns-4.cfg c/bug_i_222.c
-09612 common/empty.cfg c/bug_1041.c
-09613 common/empty.cfg c/i1413.c
-09614 common/empty.cfg c/string_prefixes.c
-09615 c/i1564.cfg c/i1564.c
-09616 c/enum_comma_ifdef.cfg c/enum_comma_ifdef.c
-09617 c/Issue_2360-a.cfg c/Issue_2360.c
-09618 c/Issue_2360-b.cfg c/Issue_2360.c
-09619 c/Issue_2411.cfg c/Issue_2411.c
-
-09620 c/Issue_2640.cfg c/Issue_2640.c
-09621 c/preproc-cleanup.cfg c/pp-before-func-def.c
-09622 c/Issue_3356.cfg c/Issue_3356.c
-
-10004 c/ben_094.cfg c/pragma_asm.c
-10005 common/empty.cfg c/i1270.c
-10006 c/bug_2331.cfg c/bug_2331.c
-10007 c/indent_macro_brace-true.cfg c/indent-macro-brace.c
-10008 c/indent_macro_brace-false.cfg c/indent-macro-brace.c
-10009 common/empty.cfg c/return-compound-literal.c
-
-10010 c/indent_compound_literal_return-false.cfg c/return-compound-literal.c
-10011 c/indent_compound_literal_return-true.cfg c/return-compound-literal.c
-10012 c/indent_sparen_extra-8.cfg c/sparen-indent.c
-10013 common/empty.cfg c/sparen-indent.c
-10014 common/indent_continue-8.cfg c/sparen-indent.c
-10015 common/empty.cfg c/Issue_2845.h
-10016 c/Issue_3233.cfg c/Issue_3233.c
-10017 c/sp_sparen_paren-a.cfg c/double-sparen.c
-10018 c/sp_sparen_paren-i.cfg c/double-sparen.c
-10019 c/pp_indent_in_guard.cfg c/include-guard.h
-10020 c/indent_single_line_comments_after.cfg c/single_line_comment_after.c
-10021 common/sp_cparen_oparen-f.cfg c/parenthesized_indirect_call.c
-10022 c/Issue_3269.cfg c/Issue_3269.c
-10023 c/Issue_3272.cfg c/Issue_3272.h
-10024 c/Issue_3274.cfg c/Issue_3274.c
-10025 c/sp_between_semi_for_empty-r.cfg c/forever.c
-10026 c/sp_between_semi_for_empty-i.cfg c/forever.c
-10027 c/Issue_3327.cfg c/Issue_3327.c
-10028 c/sp_emb_cmt-i.cfg c/Issue_3339.c
-10029 c/sp_emb_cmt-f.cfg c/Issue_3339.c
-10030 c/sp_emb_cmt-r.cfg c/Issue_3339.c
-10031 c/sp_after_pointer_star-r.cfg c/Issue_3342.c
-10032 c/sp_after_pointer_star-r.cfg c/Issue_3345.c
-10033 c/pp_include_at_level-true.cfg c/Issue_3343.c
-10034 c/pp_include_at_level-false.cfg c/Issue_3343.c
-10035 c/indent_comment_align_thresh-0.cfg c/comment-indent.c
-10036 c/Issue_3350.cfg c/comment-indent.c
-10037 c/indent_case_comment-true.cfg c/Issue_3362.c
-10038 c/indent_case_comment-false.cfg c/Issue_3362.c
-10039 c/Issue_3370.cfg c/Issue_3370.c
-10040 c/Issue_3377.cfg c/Issue_3377.c
-10041 c/Issue_3351.cfg c/Issue_3351.c
-10042 c/sp_ptr_star_func_var-i.cfg c/Issue_3376.c
-10043 c/sp_ptr_star_func_var-a.cfg c/Issue_3376.c
-10044 c/sp_ptr_star_func_var-r.cfg c/Issue_3376.c
-10045 c/sp_ptr_star_func_var-f.cfg c/Issue_3376.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/21.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/21.txt
deleted file mode 100644
index 7c702d87..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/21.txt
+++ /dev/null
@@ -1,1887 +0,0 @@
-log_rule(indent_text : rule is 'indent_columns'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_inside_ternary_operator'
-log_rule(indent_text : rule is 'indent_access_spec_body'
-log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-indent_text : pc->line is 1, pc->column is 1, pc->text() is 'struct, indent_column is 1
-log_rule(indent_text : rule is 'pos_conditional'
-indent_text : orig_line is 1, indent set to 1, for 'struct'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_inside_ternary_operator'
-log_rule(indent_text : rule is 'indent_access_spec_body'
-log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_inside_ternary_operator'
-log_rule(indent_text : rule is 'indent_access_spec_body'
-log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_inside_ternary_operator'
-log_rule(indent_text : rule is 'indent_access_spec_body'
-log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_macro_brace'
-log_rule(indent_text : rule is 'indent_shift'
-indent_text : pc->line is 2, pc->column is 1, pc->text() is '{, indent_column is 1
-log_rule(indent_text : rule is 'pos_conditional'
-indent_text : orig_line is 2, indent set to 1, for '{'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-indent_text : pc->line is 3, pc->column is 1, pc->text() is 'TelegramIndex, indent_column is 9
-log_rule(indent_text : rule is 'pos_conditional'
-indent_text : orig_line is 3, indent set to 9, for 'TelegramIndex'
-log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
-log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
-log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
-log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
-log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
-log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
-log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
-log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
-log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
-log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
-log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
-log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_inside_ternary_operator'
-log_rule(indent_text : rule is 'indent_align_paren'
-log_rule(indent_text : rule is 'indent_paren_nl'
-log_rule(indent_text : rule is 'indent_square_nl'
-log_rule(indent_text : rule is 'indent_paren_after_func_def'
-log_rule(indent_text : rule is 'indent_paren_after_func_decl'
-log_rule(indent_text : rule is 'indent_paren_after_func_call'
-log_rule(indent_text : rule is 'use_indent_continue_only_once'
-log_rule(indent_text : rule is 'indent_paren_after_func_decl'
-log_rule(indent_text : rule is 'indent_paren_after_func_def'
-log_rule(indent_text : rule is 'indent_paren_after_func_call'
-log_rule(indent_text : rule is 'indent_continue'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_inside_ternary_operator'
-log_rule(indent_text : rule is 'indent_access_spec_body'
-log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_class_colon'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_inside_ternary_operator'
-log_rule(indent_text : rule is 'indent_access_spec_body'
-log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_inside_ternary_operator'
-log_rule(indent_text : rule is 'indent_access_spec_body'
-log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-indent_text : pc->line is 4, pc->column is 1, pc->text() is 'pTelName, indent_column is 17
-log_rule(indent_text : rule is 'pos_conditional'
-indent_text : orig_line is 4, indent set to 17, for 'pTelName'
-log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
-log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
-log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
-log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
-log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_inside_ternary_operator'
-log_rule(indent_text : rule is 'indent_access_spec_body'
-log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_inside_ternary_operator'
-log_rule(indent_text : rule is 'indent_align_paren'
-log_rule(indent_text : rule is 'indent_paren_nl'
-log_rule(indent_text : rule is 'indent_square_nl'
-log_rule(indent_text : rule is 'indent_paren_after_func_def'
-log_rule(indent_text : rule is 'indent_paren_after_func_decl'
-log_rule(indent_text : rule is 'indent_paren_after_func_call'
-log_rule(indent_text : rule is 'use_indent_continue_only_once'
-log_rule(indent_text : rule is 'indent_paren_after_func_decl'
-log_rule(indent_text : rule is 'indent_paren_after_func_def'
-log_rule(indent_text : rule is 'indent_paren_after_func_call'
-log_rule(indent_text : rule is 'indent_continue'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_inside_ternary_operator'
-log_rule(indent_text : rule is 'indent_access_spec_body'
-log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
-log_rule(indent_text : rule is 'indent_inside_ternary_operator'
-log_rule(indent_text : rule is 'indent_access_spec_body'
-log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_inside_ternary_operator'
-log_rule(indent_text : rule is 'indent_access_spec_body'
-log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_inside_ternary_operator'
-log_rule(indent_text : rule is 'indent_access_spec_body'
-log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_inside_ternary_operator'
-log_rule(indent_text : rule is 'indent_access_spec_body'
-log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-indent_text : pc->line is 5, pc->column is 1, pc->text() is 'nTelIndex, indent_column is 17
-log_rule(indent_text : rule is 'pos_conditional'
-indent_text : orig_line is 5, indent set to 17, for 'nTelIndex'
-log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
-log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
-log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
-log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_inside_ternary_operator'
-log_rule(indent_text : rule is 'indent_access_spec_body'
-log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_inside_ternary_operator'
-log_rule(indent_text : rule is 'indent_align_paren'
-log_rule(indent_text : rule is 'indent_paren_nl'
-log_rule(indent_text : rule is 'indent_square_nl'
-log_rule(indent_text : rule is 'indent_paren_after_func_def'
-log_rule(indent_text : rule is 'indent_paren_after_func_decl'
-log_rule(indent_text : rule is 'indent_paren_after_func_call'
-log_rule(indent_text : rule is 'use_indent_continue_only_once'
-log_rule(indent_text : rule is 'indent_paren_after_func_decl'
-log_rule(indent_text : rule is 'indent_paren_after_func_def'
-log_rule(indent_text : rule is 'indent_paren_after_func_call'
-log_rule(indent_text : rule is 'indent_continue'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_inside_ternary_operator'
-log_rule(indent_text : rule is 'indent_access_spec_body'
-log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
-log_rule(indent_text : rule is 'indent_inside_ternary_operator'
-log_rule(indent_text : rule is 'indent_access_spec_body'
-log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_inside_ternary_operator'
-log_rule(indent_text : rule is 'indent_access_spec_body'
-log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_inside_ternary_operator'
-log_rule(indent_text : rule is 'indent_access_spec_body'
-log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_macro_brace'
-log_rule(indent_text : rule is 'indent_shift'
-indent_text : pc->line is 6, pc->column is 1, pc->text() is '{, indent_column is 9
-log_rule(indent_text : rule is 'pos_conditional'
-indent_text : orig_line is 6, indent set to 9, for '{'
-log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_inside_ternary_operator'
-log_rule(indent_text : rule is 'indent_access_spec_body'
-log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-indent_text : pc->line is 7, pc->column is 1, pc->text() is '}, indent_column is 9
-log_rule(indent_text : rule is 'pos_conditional'
-indent_text : orig_line is 7, indent set to 9, for '}'
-log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-indent_text : pc->line is 9, pc->column is 1, pc->text() is '~, indent_column is 9
-log_rule(indent_text : rule is 'pos_conditional'
-indent_text : orig_line is 9, indent set to 9, for '~'
-log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
-log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
-log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
-log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_inside_ternary_operator'
-log_rule(indent_text : rule is 'indent_align_paren'
-log_rule(indent_text : rule is 'indent_paren_nl'
-log_rule(indent_text : rule is 'indent_square_nl'
-log_rule(indent_text : rule is 'indent_paren_after_func_def'
-log_rule(indent_text : rule is 'indent_paren_after_func_decl'
-log_rule(indent_text : rule is 'indent_paren_after_func_call'
-log_rule(indent_text : rule is 'use_indent_continue_only_once'
-log_rule(indent_text : rule is 'indent_paren_after_func_decl'
-log_rule(indent_text : rule is 'indent_paren_after_func_def'
-log_rule(indent_text : rule is 'indent_paren_after_func_call'
-log_rule(indent_text : rule is 'indent_continue'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_inside_ternary_operator'
-log_rule(indent_text : rule is 'indent_access_spec_body'
-log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_macro_brace'
-log_rule(indent_text : rule is 'indent_shift'
-indent_text : pc->line is 10, pc->column is 1, pc->text() is '{, indent_column is 9
-log_rule(indent_text : rule is 'pos_conditional'
-indent_text : orig_line is 10, indent set to 9, for '{'
-log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_inside_ternary_operator'
-log_rule(indent_text : rule is 'indent_access_spec_body'
-log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-indent_text : pc->line is 11, pc->column is 1, pc->text() is '}, indent_column is 9
-log_rule(indent_text : rule is 'pos_conditional'
-indent_text : orig_line is 11, indent set to 9, for '}'
-log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-indent_text : pc->line is 13, pc->column is 1, pc->text() is 'const, indent_column is 9
-log_rule(indent_text : rule is 'pos_conditional'
-indent_text : orig_line is 13, indent set to 9, for 'const'
-log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
-log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
-log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
-log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
-log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
-log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_continue'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-indent_text : pc->line is 14, pc->column is 1, pc->text() is 'unsigned, indent_column is 9
-log_rule(indent_text : rule is 'pos_conditional'
-indent_text : orig_line is 14, indent set to 9, for 'unsigned'
-log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
-log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
-log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
-log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_continue'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_inside_ternary_operator'
-log_rule(indent_text : rule is 'indent_access_spec_body'
-log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-indent_text : pc->line is 15, pc->column is 1, pc->text() is '}, indent_column is 1
-log_rule(indent_text : rule is 'pos_conditional'
-indent_text : orig_line is 15, indent set to 1, for '}'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_inside_ternary_operator'
-log_rule(indent_text : rule is 'indent_access_spec_body'
-log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_inside_ternary_operator'
-log_rule(indent_text : rule is 'indent_access_spec_body'
-log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_columns'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_inside_ternary_operator'
-log_rule(indent_text : rule is 'indent_access_spec_body'
-log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-indent_text : pc->line is 1, pc->column is 1, pc->text() is 'struct, indent_column is 1
-log_rule(indent_text : rule is 'pos_conditional'
-indent_text : orig_line is 1, indent set to 1, for 'struct'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_inside_ternary_operator'
-log_rule(indent_text : rule is 'indent_access_spec_body'
-log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_inside_ternary_operator'
-log_rule(indent_text : rule is 'indent_access_spec_body'
-log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_inside_ternary_operator'
-log_rule(indent_text : rule is 'indent_access_spec_body'
-log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_macro_brace'
-log_rule(indent_text : rule is 'indent_shift'
-indent_text : pc->line is 2, pc->column is 1, pc->text() is '{, indent_column is 1
-log_rule(indent_text : rule is 'pos_conditional'
-indent_text : orig_line is 2, indent set to 1, for '{'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-indent_text : pc->line is 3, pc->column is 9, pc->text() is 'TelegramIndex, indent_column is 9
-log_rule(indent_text : rule is 'pos_conditional'
-indent_text : orig_line is 3, indent set to 9, for 'TelegramIndex'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_inside_ternary_operator'
-log_rule(indent_text : rule is 'indent_align_paren'
-log_rule(indent_text : rule is 'indent_paren_nl'
-log_rule(indent_text : rule is 'indent_square_nl'
-log_rule(indent_text : rule is 'indent_paren_after_func_def'
-log_rule(indent_text : rule is 'indent_paren_after_func_decl'
-log_rule(indent_text : rule is 'indent_paren_after_func_call'
-log_rule(indent_text : rule is 'use_indent_continue_only_once'
-log_rule(indent_text : rule is 'indent_paren_after_func_decl'
-log_rule(indent_text : rule is 'indent_paren_after_func_def'
-log_rule(indent_text : rule is 'indent_paren_after_func_call'
-log_rule(indent_text : rule is 'indent_continue'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_inside_ternary_operator'
-log_rule(indent_text : rule is 'indent_access_spec_body'
-log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_class_colon'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_inside_ternary_operator'
-log_rule(indent_text : rule is 'indent_access_spec_body'
-log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_inside_ternary_operator'
-log_rule(indent_text : rule is 'indent_access_spec_body'
-log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-indent_text : pc->line is 4, pc->column is 17, pc->text() is 'pTelName, indent_column is 17
-log_rule(indent_text : rule is 'pos_conditional'
-indent_text : orig_line is 4, indent set to 17, for 'pTelName'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_inside_ternary_operator'
-log_rule(indent_text : rule is 'indent_access_spec_body'
-log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_inside_ternary_operator'
-log_rule(indent_text : rule is 'indent_align_paren'
-log_rule(indent_text : rule is 'indent_paren_nl'
-log_rule(indent_text : rule is 'indent_square_nl'
-log_rule(indent_text : rule is 'indent_paren_after_func_def'
-log_rule(indent_text : rule is 'indent_paren_after_func_decl'
-log_rule(indent_text : rule is 'indent_paren_after_func_call'
-log_rule(indent_text : rule is 'use_indent_continue_only_once'
-log_rule(indent_text : rule is 'indent_paren_after_func_decl'
-log_rule(indent_text : rule is 'indent_paren_after_func_def'
-log_rule(indent_text : rule is 'indent_paren_after_func_call'
-log_rule(indent_text : rule is 'indent_continue'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_inside_ternary_operator'
-log_rule(indent_text : rule is 'indent_access_spec_body'
-log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
-log_rule(indent_text : rule is 'indent_inside_ternary_operator'
-log_rule(indent_text : rule is 'indent_access_spec_body'
-log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_inside_ternary_operator'
-log_rule(indent_text : rule is 'indent_access_spec_body'
-log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_inside_ternary_operator'
-log_rule(indent_text : rule is 'indent_access_spec_body'
-log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_inside_ternary_operator'
-log_rule(indent_text : rule is 'indent_access_spec_body'
-log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-indent_text : pc->line is 5, pc->column is 17, pc->text() is 'nTelIndex, indent_column is 17
-log_rule(indent_text : rule is 'pos_conditional'
-indent_text : orig_line is 5, indent set to 17, for 'nTelIndex'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_inside_ternary_operator'
-log_rule(indent_text : rule is 'indent_access_spec_body'
-log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_inside_ternary_operator'
-log_rule(indent_text : rule is 'indent_align_paren'
-log_rule(indent_text : rule is 'indent_paren_nl'
-log_rule(indent_text : rule is 'indent_square_nl'
-log_rule(indent_text : rule is 'indent_paren_after_func_def'
-log_rule(indent_text : rule is 'indent_paren_after_func_decl'
-log_rule(indent_text : rule is 'indent_paren_after_func_call'
-log_rule(indent_text : rule is 'use_indent_continue_only_once'
-log_rule(indent_text : rule is 'indent_paren_after_func_decl'
-log_rule(indent_text : rule is 'indent_paren_after_func_def'
-log_rule(indent_text : rule is 'indent_paren_after_func_call'
-log_rule(indent_text : rule is 'indent_continue'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_inside_ternary_operator'
-log_rule(indent_text : rule is 'indent_access_spec_body'
-log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
-log_rule(indent_text : rule is 'indent_inside_ternary_operator'
-log_rule(indent_text : rule is 'indent_access_spec_body'
-log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_inside_ternary_operator'
-log_rule(indent_text : rule is 'indent_access_spec_body'
-log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_inside_ternary_operator'
-log_rule(indent_text : rule is 'indent_access_spec_body'
-log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_macro_brace'
-log_rule(indent_text : rule is 'indent_shift'
-indent_text : pc->line is 6, pc->column is 9, pc->text() is '{, indent_column is 9
-log_rule(indent_text : rule is 'pos_conditional'
-indent_text : orig_line is 6, indent set to 9, for '{'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_inside_ternary_operator'
-log_rule(indent_text : rule is 'indent_access_spec_body'
-log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-indent_text : pc->line is 7, pc->column is 9, pc->text() is '}, indent_column is 9
-log_rule(indent_text : rule is 'pos_conditional'
-indent_text : orig_line is 7, indent set to 9, for '}'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-indent_text : pc->line is 9, pc->column is 9, pc->text() is '~, indent_column is 9
-log_rule(indent_text : rule is 'pos_conditional'
-indent_text : orig_line is 9, indent set to 9, for '~'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_inside_ternary_operator'
-log_rule(indent_text : rule is 'indent_align_paren'
-log_rule(indent_text : rule is 'indent_paren_nl'
-log_rule(indent_text : rule is 'indent_square_nl'
-log_rule(indent_text : rule is 'indent_paren_after_func_def'
-log_rule(indent_text : rule is 'indent_paren_after_func_decl'
-log_rule(indent_text : rule is 'indent_paren_after_func_call'
-log_rule(indent_text : rule is 'use_indent_continue_only_once'
-log_rule(indent_text : rule is 'indent_paren_after_func_decl'
-log_rule(indent_text : rule is 'indent_paren_after_func_def'
-log_rule(indent_text : rule is 'indent_paren_after_func_call'
-log_rule(indent_text : rule is 'indent_continue'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_inside_ternary_operator'
-log_rule(indent_text : rule is 'indent_access_spec_body'
-log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_macro_brace'
-log_rule(indent_text : rule is 'indent_shift'
-indent_text : pc->line is 10, pc->column is 9, pc->text() is '{, indent_column is 9
-log_rule(indent_text : rule is 'pos_conditional'
-indent_text : orig_line is 10, indent set to 9, for '{'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_inside_ternary_operator'
-log_rule(indent_text : rule is 'indent_access_spec_body'
-log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-indent_text : pc->line is 11, pc->column is 9, pc->text() is '}, indent_column is 9
-log_rule(indent_text : rule is 'pos_conditional'
-indent_text : orig_line is 11, indent set to 9, for '}'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-indent_text : pc->line is 13, pc->column is 9, pc->text() is 'const, indent_column is 9
-log_rule(indent_text : rule is 'pos_conditional'
-indent_text : orig_line is 13, indent set to 9, for 'const'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_continue'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-indent_text : pc->line is 14, pc->column is 9, pc->text() is 'unsigned, indent_column is 9
-log_rule(indent_text : rule is 'pos_conditional'
-indent_text : orig_line is 14, indent set to 9, for 'unsigned'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_continue'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_inside_ternary_operator'
-log_rule(indent_text : rule is 'indent_access_spec_body'
-log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-indent_text : pc->line is 15, pc->column is 1, pc->text() is '}, indent_column is 1
-log_rule(indent_text : rule is 'pos_conditional'
-indent_text : orig_line is 15, indent set to 1, for '}'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_inside_ternary_operator'
-log_rule(indent_text : rule is 'indent_access_spec_body'
-log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
-log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
-log_rule(indent_text : rule is 'indent_brace_parent'
-log_rule(indent_text : rule is 'indent_func_def_force_col1'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_inside_ternary_operator'
-log_rule(indent_text : rule is 'indent_access_spec_body'
-log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
-log_rule(indent_text : rule is 'indent_single_newlines'
-log_rule(indent_text : rule is 'indent_braces'
-log_rule(indent_text : rule is 'indent_braces_no_func'
-log_rule(indent_text : rule is 'indent_braces_no_class'
-log_rule(indent_text : rule is 'indent_braces_no_struct'
-log_rule(indent_text : rule is 'indent_shift'
-log_rule(indent_text : rule is 'indent_xml_string'
-log_rule(indent_text : rule is 'indent_continue_class_head'
-log_rule(next_tab_column : rule is 'output_tab_size'
-log_rule(next_tab_column : rule is 'output_tab_size'
-log_rule(next_tab_column : rule is 'output_tab_size'
-log_rule(next_tab_column : rule is 'output_tab_size'
-log_rule(next_tab_column : rule is 'output_tab_size'
-log_rule(next_tab_column : rule is 'output_tab_size'
-log_rule(next_tab_column : rule is 'output_tab_size'
-log_rule(next_tab_column : rule is 'output_tab_size'
-log_rule(next_tab_column : rule is 'output_tab_size'
-log_rule(next_tab_column : rule is 'output_tab_size'
-log_rule(next_tab_column : rule is 'output_tab_size'
-log_rule(next_tab_column : rule is 'output_tab_size'
-log_rule(next_tab_column : rule is 'output_tab_size'
-log_rule(next_tab_column : rule is 'output_tab_size'
-log_rule(next_tab_column : rule is 'output_tab_size'
-log_rule(next_tab_column : rule is 'output_tab_size'
-log_rule(next_tab_column : rule is 'output_tab_size'
-log_rule(next_tab_column : rule is 'output_tab_size'
-log_rule(next_tab_column : rule is 'output_tab_size'
-log_rule(next_tab_column : rule is 'output_tab_size'
-log_rule(next_tab_column : rule is 'output_tab_size'
-log_rule(next_tab_column : rule is 'output_tab_size'
-log_rule(next_tab_column : rule is 'output_tab_size'
-log_rule(next_tab_column : rule is 'output_tab_size'
-log_rule(next_tab_column : rule is 'output_tab_size'
-log_rule(next_tab_column : rule is 'output_tab_size'
-log_rule(next_tab_column : rule is 'output_tab_size'
-log_rule(next_tab_column : rule is 'output_tab_size'
-log_rule(next_tab_column : rule is 'output_tab_size'
-log_rule(next_tab_column : rule is 'output_tab_size'
-log_rule(next_tab_column : rule is 'output_tab_size'
-log_rule(next_tab_column : rule is 'output_tab_size'
-log_rule(next_tab_column : rule is 'output_tab_size'
-log_rule(next_tab_column : rule is 'output_tab_size'
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/25.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/25.txt
deleted file mode 100644
index 12967a1b..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/25.txt
+++ /dev/null
@@ -1,237 +0,0 @@
-Newline loop start: 0
-log_rule(newlines_cleanup_braces : rule is 'nl_struct_brace'
-log_rule(newlines_struct_union : rule is 'nl_define_macro'
-log_rule(newlines_cleanup_braces : rule is 'nl_ds_struct_enum_cmt'
-log_rule(newlines_cleanup_braces : rule is 'nl_brace_brace'
-log_rule(newlines_cleanup_braces : rule is 'nl_type_brace_init_lst_open'
-log_rule(newlines_cleanup_braces : rule is 'nl_type_brace_init_lst_close'
-log_rule(newlines_brace_pair : rule is 'nl_define_macro'
-log_rule(newlines_brace_pair : rule is 'nl_create_func_def_one_liner'
-log_rule(collapse_empty_body : rule is 'nl_collapse_empty_body'
-log_rule(newlines_brace_pair : rule is 'eat_blanks_after_open_brace'
-log_rule(newline_def_blk : rule is 'nl_var_def_blk_end'
-log_rule(newline_def_blk : rule is 'nl_var_def_blk_end'
-log_rule(newline_def_blk : rule is 'nl_var_def_blk_start'
-log_rule(newline_def_blk : rule is 'nl_var_def_blk_start'
-newline_add_between : start->text() is ';', type is SEMICOLON, orig_line is 14, orig_col is 24
-newline_add_between : and end->text() is '}', orig_line is 15, orig_col is 1
- [CallStack]
-log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_start'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_def_start'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_start_single'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_def_start_single'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_start_multi_line'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_def_start_multi_line'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_args'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_def_args'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_args_multi_line'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_def_args_multi_line'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_end'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_def_end'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_end_single'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_def_end_single'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_end_multi_line'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_def_end_multi_line'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_empty'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_def_empty'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_type_name'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_type_name_class'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_class_scope'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_scope_name'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_proto_type_name'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_paren'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_def_paren'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_def_paren_empty'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_paren_empty'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_call_args'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_start'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_def_start'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_start_single'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_def_start_single'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_start_multi_line'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_def_start_multi_line'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_args'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_def_args'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_args_multi_line'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_def_args_multi_line'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_end'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_def_end'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_end_single'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_def_end_single'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_end_multi_line'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_def_end_multi_line'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_empty'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_def_empty'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_type_name'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_type_name_class'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_class_scope'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_scope_name'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_proto_type_name'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_paren'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_def_paren'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_def_paren_empty'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_paren_empty'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_call_args'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_start'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_def_start'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_start_single'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_def_start_single'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_start_multi_line'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_def_start_multi_line'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_args'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_def_args'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_args_multi_line'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_def_args_multi_line'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_end'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_def_end'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_end_single'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_def_end_single'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_end_multi_line'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_def_end_multi_line'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_empty'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_def_empty'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_type_name'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_type_name_class'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_class_scope'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_scope_name'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_proto_type_name'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_paren'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_def_paren'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_def_paren_empty'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_paren_empty'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_call_args'
-log_rule(newlines_cleanup_braces : rule is 'nl_before_opening_brace_func_class_def'
-log_rule(newlines_cleanup_braces : rule is 'nl_brace_brace'
-log_rule(newlines_cleanup_braces : rule is 'nl_type_brace_init_lst_open'
-log_rule(newlines_cleanup_braces : rule is 'nl_type_brace_init_lst_close'
-log_rule(newlines_brace_pair : rule is 'nl_define_macro'
-log_rule(newlines_brace_pair : rule is 'nl_create_func_def_one_liner'
-log_rule(newlines_brace_pair : rule is 'nl_fdef_brace_cond'
-log_rule(newlines_brace_pair : rule is 'nl_fdef_brace'
-log_rule(collapse_empty_body : rule is 'nl_collapse_empty_body'
-log_rule(newlines_brace_pair : rule is 'eat_blanks_after_open_brace'
-newline_add_between : start->text() is '{', type is BRACE_OPEN, orig_line is 6, orig_col is 1
-newline_add_between : and end->text() is '}', orig_line is 7, orig_col is 1
- [CallStack]
-newline_add_between : start->text() is '{', type is BRACE_OPEN, orig_line is 6, orig_col is 1
-newline_add_between : and end->text() is '}', orig_line is 7, orig_col is 1
- [CallStack]
-log_rule(newlines_cleanup_braces : rule is 'nl_brace_brace'
-log_rule(newlines_cleanup_braces : rule is 'nl_brace_square'
-log_rule(newlines_cleanup_braces : rule is 'nl_brace_fparen'
-log_rule(newlines_cleanup_braces : rule is 'nl_type_brace_init_lst_close'
-log_rule(newlines_cleanup_braces : rule is 'eat_blanks_before_close_brace'
-log_rule(newlines_cleanup_braces : rule is 'nl_brace_struct_var'
-log_rule(newlines_cleanup_braces : rule is 'nl_after_brace_close'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_start'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_def_start'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_start_single'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_def_start_single'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_start_multi_line'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_def_start_multi_line'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_args'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_def_args'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_args_multi_line'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_def_args_multi_line'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_end'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_def_end'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_end_single'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_def_end_single'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_end_multi_line'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_def_end_multi_line'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_empty'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_def_empty'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_type_name'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_type_name_class'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_class_scope'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_scope_name'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_proto_type_name'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_paren'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_def_paren'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_def_paren_empty'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_paren_empty'
-log_rule(newlines_cleanup_braces : rule is 'nl_func_call_args'
-log_rule(newlines_cleanup_braces : rule is 'nl_before_opening_brace_func_class_def'
-log_rule(newlines_cleanup_braces : rule is 'nl_brace_brace'
-log_rule(newlines_cleanup_braces : rule is 'nl_type_brace_init_lst_open'
-log_rule(newlines_cleanup_braces : rule is 'nl_type_brace_init_lst_close'
-log_rule(newlines_brace_pair : rule is 'nl_define_macro'
-log_rule(newlines_brace_pair : rule is 'nl_create_func_def_one_liner'
-log_rule(newlines_brace_pair : rule is 'nl_fdef_brace_cond'
-log_rule(newlines_brace_pair : rule is 'nl_fdef_brace'
-log_rule(collapse_empty_body : rule is 'nl_collapse_empty_body'
-log_rule(newlines_brace_pair : rule is 'eat_blanks_after_open_brace'
-newline_add_between : start->text() is '{', type is BRACE_OPEN, orig_line is 10, orig_col is 1
-newline_add_between : and end->text() is '}', orig_line is 11, orig_col is 1
- [CallStack]
-newline_add_between : start->text() is '{', type is BRACE_OPEN, orig_line is 10, orig_col is 1
-newline_add_between : and end->text() is '}', orig_line is 11, orig_col is 1
- [CallStack]
-log_rule(newlines_cleanup_braces : rule is 'nl_brace_brace'
-log_rule(newlines_cleanup_braces : rule is 'nl_brace_square'
-log_rule(newlines_cleanup_braces : rule is 'nl_brace_fparen'
-log_rule(newlines_cleanup_braces : rule is 'nl_type_brace_init_lst_close'
-log_rule(newlines_cleanup_braces : rule is 'eat_blanks_before_close_brace'
-log_rule(newlines_cleanup_braces : rule is 'nl_brace_struct_var'
-log_rule(newlines_cleanup_braces : rule is 'nl_after_brace_close'
-log_rule(newlines_cleanup_braces : rule is 'nl_after_semicolon'
-log_rule(newlines_cleanup_braces : rule is 'nl_after_semicolon'
-log_rule(newlines_cleanup_braces : rule is 'nl_brace_brace'
-log_rule(newlines_cleanup_braces : rule is 'nl_brace_square'
-log_rule(newlines_cleanup_braces : rule is 'nl_brace_fparen'
-log_rule(newlines_cleanup_braces : rule is 'nl_type_brace_init_lst_close'
-log_rule(newlines_cleanup_braces : rule is 'eat_blanks_before_close_brace'
-log_rule(newlines_cleanup_braces : rule is 'nl_brace_struct_var'
-log_rule(newlines_cleanup_braces : rule is 'nl_after_semicolon'
-log_rule(newline_def_blk : rule is 'nl_var_def_blk_end'
-log_rule(newline_def_blk : rule is 'nl_var_def_blk_end'
-log_rule(newline_def_blk : rule is 'nl_var_def_blk_start'
-log_rule(newline_def_blk : rule is 'nl_var_def_blk_start'
-log_rule(newlines_func_pre_blank_lines : rule is 'nl_before_func_class_def'
-log_rule(newlines_func_pre_blank_lines : rule is 'nl_before_func_class_proto'
-log_rule(newlines_func_pre_blank_lines : rule is 'nl_before_func_body_def'
-log_rule(newlines_func_pre_blank_lines : rule is 'nl_before_func_body_proto'
-log_rule(newlines_func_pre_blank_lines : rule is 'nl_before_func_class_def'
-log_rule(newlines_func_pre_blank_lines : rule is 'nl_before_func_class_proto'
-log_rule(newlines_func_pre_blank_lines : rule is 'nl_before_func_body_def'
-log_rule(newlines_func_pre_blank_lines : rule is 'nl_before_func_body_proto'
-log_rule(newlines_class_colon_pos : rule is 'pos_class_colon'
-log_rule(newlines_class_colon_pos : rule is 'nl_class_colon'
-log_rule(newlines_class_colon_pos : rule is 'nl_class_init_args'
-log_rule(newlines_class_colon_pos : rule is 'pos_class_comma'
-log_rule(newlines_class_colon_pos : rule is 'align_constr_value_span'
-log_rule(newlines_class_colon_pos : rule is 'pos_constr_colon'
-log_rule(newlines_class_colon_pos : rule is 'nl_constr_colon'
-log_rule(newlines_class_colon_pos : rule is 'nl_constr_init_args'
-log_rule(newlines_class_colon_pos : rule is 'pos_constr_comma'
-log_rule(newlines_class_colon_pos : rule is 'align_constr_value_span'
-log_rule(can_increase_nl : rule is 'nl_start_of_file'
-log_rule(can_increase_nl : rule is 'nl_end_of_file'
-log_rule(can_increase_nl : rule is 'nl_start_of_file'
-log_rule(can_increase_nl : rule is 'nl_end_of_file'
-log_rule(can_increase_nl : rule is 'nl_start_of_file'
-log_rule(can_increase_nl : rule is 'nl_end_of_file'
-log_rule(can_increase_nl : rule is 'nl_start_of_file'
-log_rule(can_increase_nl : rule is 'nl_end_of_file'
-log_rule(can_increase_nl : rule is 'nl_start_of_file'
-log_rule(can_increase_nl : rule is 'nl_end_of_file'
-log_rule(can_increase_nl : rule is 'nl_start_of_file'
-log_rule(can_increase_nl : rule is 'nl_end_of_file'
-log_rule(can_increase_nl : rule is 'nl_start_of_file'
-log_rule(can_increase_nl : rule is 'nl_end_of_file'
-log_rule(can_increase_nl : rule is 'nl_start_of_file'
-log_rule(can_increase_nl : rule is 'nl_end_of_file'
-log_rule(can_increase_nl : rule is 'nl_start_of_file'
-log_rule(can_increase_nl : rule is 'nl_end_of_file'
-log_rule(can_increase_nl : rule is 'nl_start_of_file'
-log_rule(can_increase_nl : rule is 'nl_end_of_file'
-log_rule(can_increase_nl : rule is 'nl_start_of_file'
-log_rule(can_increase_nl : rule is 'nl_end_of_file'
-log_rule(can_increase_nl : rule is 'nl_start_of_file'
-log_rule(can_increase_nl : rule is 'nl_end_of_file'
-log_rule(can_increase_nl : rule is 'nl_start_of_file'
-log_rule(can_increase_nl : rule is 'nl_end_of_file'
-log_rule(do_blank_lines : rule is 'nl_after_class'
-log_rule(do_blank_lines : rule is 'nl_after_struct'
-log_rule(newlines_functions_remove_extra_blank_lines : rule is 'nl_max_blank_in_func'
-newlines_functions_remove_extra_blank_lines : nl_max_blank_in_func is zero
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/28.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/28.txt
deleted file mode 100644
index f49f675e..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/28.txt
+++ /dev/null
@@ -1,428 +0,0 @@
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(parse_next : rule is 'disable_processing_nl_cont'
-log_rule(tokenize : rule is 'newlines'
-brace_cleanup : orig_line is 1, orig_col is 1, text() is 'struct'
-brace_cleanup : pp_level is 0
-parse_cleanup : orig_line is 1, orig_col is 1, type is STRUCT, tos is 0, TOS.type is EOF, TOS.stage is NONE, []
-parse_cleanup : orig_line is 1, type is STRUCT, text() is 'struct'
-parse_cleanup : frm.stmt_count is 0, frm.expr_count is 0
-parse_cleanup : frm.stmt_count is 1, frm.expr_count is 1
-brace_cleanup : orig_line is 1, orig_col is 8, text() is 'TelegramIndex'
-brace_cleanup : pp_level is 0
-parse_cleanup : orig_line is 1, orig_col is 8, type is TYPE, tos is 0, TOS.type is EOF, TOS.stage is NONE, []
-parse_cleanup : orig_line is 1, type is TYPE, text() is 'TelegramIndex'
-parse_cleanup : frm.stmt_count is 1, frm.expr_count is 1
-parse_cleanup : frm.stmt_count is 2, frm.expr_count is 2
-brace_cleanup : orig_line is 1, orig_col is 21, text() is ''
-brace_cleanup : pp_level is 0
-brace_cleanup : orig_line is 2, orig_col is 1, text() is '{'
-brace_cleanup : pp_level is 0
-parse_cleanup : orig_line is 2, orig_col is 1, type is BRACE_OPEN, tos is 0, TOS.type is EOF, TOS.stage is NONE, []
-parse_cleanup : orig_line is 2, type is BRACE_OPEN, text() is '{'
-parse_cleanup : frm.stmt_count is 2, frm.expr_count is 2
-parse_cleanup : frm.stmt_count is 3, frm.expr_count is 3
-parse_cleanup : frm.stmt_count is 0, frm.expr_count is 0
-brace_cleanup : orig_line is 2, orig_col is 2, text() is ''
-brace_cleanup : pp_level is 0
-brace_cleanup : orig_line is 3, orig_col is 1, text() is 'TelegramIndex'
-brace_cleanup : pp_level is 0
-parse_cleanup : orig_line is 3, orig_col is 1, type is WORD, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, []
-parse_cleanup : orig_line is 3, type is WORD, text() is 'TelegramIndex'
-parse_cleanup : frm.stmt_count is 0, frm.expr_count is 0
-parse_cleanup : frm.stmt_count is 1, frm.expr_count is 1
-brace_cleanup : orig_line is 3, orig_col is 14, text() is '('
-brace_cleanup : pp_level is 0
-parse_cleanup : orig_line is 3, orig_col is 14, type is PAREN_OPEN, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, []
-parse_cleanup : orig_line is 3, type is PAREN_OPEN, text() is '('
-parse_cleanup : frm.stmt_count is 1, frm.expr_count is 1
-parse_cleanup : frm.stmt_count is 2, frm.expr_count is 2
-brace_cleanup : orig_line is 3, orig_col is 15, text() is 'const'
-brace_cleanup : pp_level is 0
-parse_cleanup : orig_line is 3, orig_col is 15, type is QUALIFIER, tos is 2, TOS.type is PAREN_OPEN, TOS.stage is NONE, []
-parse_cleanup : orig_line is 3, type is QUALIFIER, text() is 'const'
-parse_cleanup : frm.stmt_count is 2, frm.expr_count is 0
-parse_cleanup : frm.stmt_count is 3, frm.expr_count is 1
-brace_cleanup : orig_line is 3, orig_col is 21, text() is 'char'
-brace_cleanup : pp_level is 0
-parse_cleanup : orig_line is 3, orig_col is 21, type is TYPE, tos is 2, TOS.type is PAREN_OPEN, TOS.stage is NONE, []
-parse_cleanup : orig_line is 3, type is TYPE, text() is 'char'
-parse_cleanup : frm.stmt_count is 3, frm.expr_count is 1
-parse_cleanup : frm.stmt_count is 4, frm.expr_count is 2
-brace_cleanup : orig_line is 3, orig_col is 25, text() is '*'
-brace_cleanup : pp_level is 0
-parse_cleanup : orig_line is 3, orig_col is 25, type is PTR_TYPE, tos is 2, TOS.type is PAREN_OPEN, TOS.stage is NONE, []
-parse_cleanup : orig_line is 3, type is PTR_TYPE, text() is '*'
-parse_cleanup : frm.stmt_count is 4, frm.expr_count is 2
-parse_cleanup : frm.stmt_count is 5, frm.expr_count is 3
-brace_cleanup : orig_line is 3, orig_col is 27, text() is 'pN'
-brace_cleanup : pp_level is 0
-parse_cleanup : orig_line is 3, orig_col is 27, type is WORD, tos is 2, TOS.type is PAREN_OPEN, TOS.stage is NONE, []
-parse_cleanup : orig_line is 3, type is WORD, text() is 'pN'
-parse_cleanup : frm.stmt_count is 5, frm.expr_count is 3
-parse_cleanup : frm.stmt_count is 6, frm.expr_count is 4
-brace_cleanup : orig_line is 3, orig_col is 29, text() is ','
-brace_cleanup : pp_level is 0
-parse_cleanup : orig_line is 3, orig_col is 29, type is COMMA, tos is 2, TOS.type is PAREN_OPEN, TOS.stage is NONE, []
-parse_cleanup : orig_line is 3, type is COMMA, text() is ','
-parse_cleanup : frm.stmt_count is 6, frm.expr_count is 4
-parse_cleanup : frm.stmt_count is 7, frm.expr_count is 5
-brace_cleanup : orig_line is 3, orig_col is 31, text() is 'unsigned'
-brace_cleanup : pp_level is 0
-parse_cleanup : orig_line is 3, orig_col is 31, type is TYPE, tos is 2, TOS.type is PAREN_OPEN, TOS.stage is NONE, []
-parse_cleanup : orig_line is 3, type is TYPE, text() is 'unsigned'
-parse_cleanup : frm.stmt_count is 7, frm.expr_count is 0
-parse_cleanup : frm.stmt_count is 8, frm.expr_count is 1
-brace_cleanup : orig_line is 3, orig_col is 40, text() is 'long'
-brace_cleanup : pp_level is 0
-parse_cleanup : orig_line is 3, orig_col is 40, type is TYPE, tos is 2, TOS.type is PAREN_OPEN, TOS.stage is NONE, []
-parse_cleanup : orig_line is 3, type is TYPE, text() is 'long'
-parse_cleanup : frm.stmt_count is 8, frm.expr_count is 1
-parse_cleanup : frm.stmt_count is 9, frm.expr_count is 2
-brace_cleanup : orig_line is 3, orig_col is 45, text() is 'nI'
-brace_cleanup : pp_level is 0
-parse_cleanup : orig_line is 3, orig_col is 45, type is WORD, tos is 2, TOS.type is PAREN_OPEN, TOS.stage is NONE, []
-parse_cleanup : orig_line is 3, type is WORD, text() is 'nI'
-parse_cleanup : frm.stmt_count is 9, frm.expr_count is 2
-parse_cleanup : frm.stmt_count is 10, frm.expr_count is 3
-brace_cleanup : orig_line is 3, orig_col is 47, text() is ')'
-brace_cleanup : pp_level is 0
-parse_cleanup : orig_line is 3, orig_col is 47, type is PAREN_CLOSE, tos is 2, TOS.type is PAREN_OPEN, TOS.stage is NONE, []
-parse_cleanup : orig_line is 3, type is PAREN_CLOSE, text() is ')'
-parse_cleanup : frm.stmt_count is 10, frm.expr_count is 3
-parse_cleanup : frm.stmt_count is 11, frm.expr_count is 4
-brace_cleanup : orig_line is 3, orig_col is 49, text() is ':'
-brace_cleanup : pp_level is 0
-parse_cleanup : orig_line is 3, orig_col is 49, type is COLON, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, []
-parse_cleanup : orig_line is 3, type is COLON, text() is ':'
-parse_cleanup : frm.stmt_count is 11, frm.expr_count is 4
-parse_cleanup : frm.stmt_count is 12, frm.expr_count is 5
-parse_cleanup : frm.stmt_count is 0, frm.expr_count is 0
-brace_cleanup : orig_line is 3, orig_col is 50, text() is ''
-brace_cleanup : pp_level is 0
-brace_cleanup : orig_line is 4, orig_col is 1, text() is 'pTelName'
-brace_cleanup : pp_level is 0
-parse_cleanup : orig_line is 4, orig_col is 1, type is WORD, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, []
-parse_cleanup : orig_line is 4, type is WORD, text() is 'pTelName'
-parse_cleanup : frm.stmt_count is 0, frm.expr_count is 0
-parse_cleanup : frm.stmt_count is 1, frm.expr_count is 1
-brace_cleanup : orig_line is 4, orig_col is 9, text() is '('
-brace_cleanup : pp_level is 0
-parse_cleanup : orig_line is 4, orig_col is 9, type is PAREN_OPEN, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, []
-parse_cleanup : orig_line is 4, type is PAREN_OPEN, text() is '('
-parse_cleanup : frm.stmt_count is 1, frm.expr_count is 1
-parse_cleanup : frm.stmt_count is 2, frm.expr_count is 2
-brace_cleanup : orig_line is 4, orig_col is 10, text() is 'pN'
-brace_cleanup : pp_level is 0
-parse_cleanup : orig_line is 4, orig_col is 10, type is WORD, tos is 2, TOS.type is PAREN_OPEN, TOS.stage is NONE, []
-parse_cleanup : orig_line is 4, type is WORD, text() is 'pN'
-parse_cleanup : frm.stmt_count is 2, frm.expr_count is 0
-parse_cleanup : frm.stmt_count is 3, frm.expr_count is 1
-brace_cleanup : orig_line is 4, orig_col is 12, text() is ')'
-brace_cleanup : pp_level is 0
-parse_cleanup : orig_line is 4, orig_col is 12, type is PAREN_CLOSE, tos is 2, TOS.type is PAREN_OPEN, TOS.stage is NONE, []
-parse_cleanup : orig_line is 4, type is PAREN_CLOSE, text() is ')'
-parse_cleanup : frm.stmt_count is 3, frm.expr_count is 1
-parse_cleanup : frm.stmt_count is 4, frm.expr_count is 2
-brace_cleanup : orig_line is 4, orig_col is 13, text() is ','
-brace_cleanup : pp_level is 0
-parse_cleanup : orig_line is 4, orig_col is 13, type is COMMA, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, []
-parse_cleanup : orig_line is 4, type is COMMA, text() is ','
-parse_cleanup : frm.stmt_count is 4, frm.expr_count is 2
-parse_cleanup : frm.stmt_count is 5, frm.expr_count is 3
-brace_cleanup : orig_line is 4, orig_col is 14, text() is ''
-brace_cleanup : pp_level is 0
-brace_cleanup : orig_line is 5, orig_col is 1, text() is 'nTelIndex'
-brace_cleanup : pp_level is 0
-parse_cleanup : orig_line is 5, orig_col is 1, type is WORD, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, []
-parse_cleanup : orig_line is 5, type is WORD, text() is 'nTelIndex'
-parse_cleanup : frm.stmt_count is 5, frm.expr_count is 0
-parse_cleanup : frm.stmt_count is 6, frm.expr_count is 1
-brace_cleanup : orig_line is 5, orig_col is 10, text() is '('
-brace_cleanup : pp_level is 0
-parse_cleanup : orig_line is 5, orig_col is 10, type is PAREN_OPEN, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, []
-parse_cleanup : orig_line is 5, type is PAREN_OPEN, text() is '('
-parse_cleanup : frm.stmt_count is 6, frm.expr_count is 1
-parse_cleanup : frm.stmt_count is 7, frm.expr_count is 2
-brace_cleanup : orig_line is 5, orig_col is 11, text() is 'n'
-brace_cleanup : pp_level is 0
-parse_cleanup : orig_line is 5, orig_col is 11, type is WORD, tos is 2, TOS.type is PAREN_OPEN, TOS.stage is NONE, []
-parse_cleanup : orig_line is 5, type is WORD, text() is 'n'
-parse_cleanup : frm.stmt_count is 7, frm.expr_count is 0
-parse_cleanup : frm.stmt_count is 8, frm.expr_count is 1
-brace_cleanup : orig_line is 5, orig_col is 12, text() is ')'
-brace_cleanup : pp_level is 0
-parse_cleanup : orig_line is 5, orig_col is 12, type is PAREN_CLOSE, tos is 2, TOS.type is PAREN_OPEN, TOS.stage is NONE, []
-parse_cleanup : orig_line is 5, type is PAREN_CLOSE, text() is ')'
-parse_cleanup : frm.stmt_count is 8, frm.expr_count is 1
-parse_cleanup : frm.stmt_count is 9, frm.expr_count is 2
-brace_cleanup : orig_line is 5, orig_col is 13, text() is ''
-brace_cleanup : pp_level is 0
-brace_cleanup : orig_line is 6, orig_col is 1, text() is '{'
-brace_cleanup : pp_level is 0
-parse_cleanup : orig_line is 6, orig_col is 1, type is BRACE_OPEN, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, []
-parse_cleanup : orig_line is 6, type is BRACE_OPEN, text() is '{'
-parse_cleanup : frm.stmt_count is 9, frm.expr_count is 2
-parse_cleanup : frm.stmt_count is 10, frm.expr_count is 3
-parse_cleanup : frm.stmt_count is 0, frm.expr_count is 0
-brace_cleanup : orig_line is 6, orig_col is 2, text() is ''
-brace_cleanup : pp_level is 0
-brace_cleanup : orig_line is 7, orig_col is 1, text() is '}'
-brace_cleanup : pp_level is 0
-parse_cleanup : orig_line is 7, orig_col is 1, type is BRACE_CLOSE, tos is 2, TOS.type is BRACE_OPEN, TOS.stage is NONE, []
-parse_cleanup : orig_line is 7, type is BRACE_CLOSE, text() is '}'
-parse_cleanup : frm.stmt_count is 0, frm.expr_count is 0
-parse_cleanup : frm.stmt_count is 1, frm.expr_count is 1
-parse_cleanup : frm.stmt_count is 0, frm.expr_count is 0
-brace_cleanup : orig_line is 7, orig_col is 2, text() is ''
-brace_cleanup : pp_level is 0
-brace_cleanup : orig_line is 9, orig_col is 1, text() is '~'
-brace_cleanup : pp_level is 0
-parse_cleanup : orig_line is 9, orig_col is 1, type is INV, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, []
-parse_cleanup : orig_line is 9, type is INV, text() is '~'
-parse_cleanup : frm.stmt_count is 0, frm.expr_count is 0
-parse_cleanup : frm.stmt_count is 1, frm.expr_count is 1
-brace_cleanup : orig_line is 9, orig_col is 2, text() is 'TelegramIndex'
-brace_cleanup : pp_level is 0
-parse_cleanup : orig_line is 9, orig_col is 2, type is WORD, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, []
-parse_cleanup : orig_line is 9, type is WORD, text() is 'TelegramIndex'
-parse_cleanup : frm.stmt_count is 1, frm.expr_count is 0
-parse_cleanup : frm.stmt_count is 2, frm.expr_count is 1
-brace_cleanup : orig_line is 9, orig_col is 15, text() is '('
-brace_cleanup : pp_level is 0
-parse_cleanup : orig_line is 9, orig_col is 15, type is PAREN_OPEN, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, []
-parse_cleanup : orig_line is 9, type is PAREN_OPEN, text() is '('
-parse_cleanup : frm.stmt_count is 2, frm.expr_count is 1
-parse_cleanup : frm.stmt_count is 3, frm.expr_count is 2
-brace_cleanup : orig_line is 9, orig_col is 16, text() is ')'
-brace_cleanup : pp_level is 0
-parse_cleanup : orig_line is 9, orig_col is 16, type is PAREN_CLOSE, tos is 2, TOS.type is PAREN_OPEN, TOS.stage is NONE, []
-parse_cleanup : orig_line is 9, type is PAREN_CLOSE, text() is ')'
-parse_cleanup : frm.stmt_count is 3, frm.expr_count is 0
-parse_cleanup : frm.stmt_count is 4, frm.expr_count is 1
-brace_cleanup : orig_line is 9, orig_col is 17, text() is ''
-brace_cleanup : pp_level is 0
-brace_cleanup : orig_line is 10, orig_col is 1, text() is '{'
-brace_cleanup : pp_level is 0
-parse_cleanup : orig_line is 10, orig_col is 1, type is BRACE_OPEN, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, []
-parse_cleanup : orig_line is 10, type is BRACE_OPEN, text() is '{'
-parse_cleanup : frm.stmt_count is 4, frm.expr_count is 1
-parse_cleanup : frm.stmt_count is 5, frm.expr_count is 2
-parse_cleanup : frm.stmt_count is 0, frm.expr_count is 0
-brace_cleanup : orig_line is 10, orig_col is 2, text() is ''
-brace_cleanup : pp_level is 0
-brace_cleanup : orig_line is 11, orig_col is 1, text() is '}'
-brace_cleanup : pp_level is 0
-parse_cleanup : orig_line is 11, orig_col is 1, type is BRACE_CLOSE, tos is 2, TOS.type is BRACE_OPEN, TOS.stage is NONE, []
-parse_cleanup : orig_line is 11, type is BRACE_CLOSE, text() is '}'
-parse_cleanup : frm.stmt_count is 0, frm.expr_count is 0
-parse_cleanup : frm.stmt_count is 1, frm.expr_count is 1
-parse_cleanup : frm.stmt_count is 0, frm.expr_count is 0
-brace_cleanup : orig_line is 11, orig_col is 2, text() is ''
-brace_cleanup : pp_level is 0
-brace_cleanup : orig_line is 13, orig_col is 1, text() is 'const'
-brace_cleanup : pp_level is 0
-parse_cleanup : orig_line is 13, orig_col is 1, type is QUALIFIER, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, []
-parse_cleanup : orig_line is 13, type is QUALIFIER, text() is 'const'
-parse_cleanup : frm.stmt_count is 0, frm.expr_count is 0
-parse_cleanup : frm.stmt_count is 1, frm.expr_count is 1
-brace_cleanup : orig_line is 13, orig_col is 7, text() is 'char'
-brace_cleanup : pp_level is 0
-parse_cleanup : orig_line is 13, orig_col is 7, type is TYPE, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, []
-parse_cleanup : orig_line is 13, type is TYPE, text() is 'char'
-parse_cleanup : frm.stmt_count is 1, frm.expr_count is 1
-parse_cleanup : frm.stmt_count is 2, frm.expr_count is 2
-brace_cleanup : orig_line is 13, orig_col is 11, text() is '*'
-brace_cleanup : pp_level is 0
-parse_cleanup : orig_line is 13, orig_col is 11, type is PTR_TYPE, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, []
-parse_cleanup : orig_line is 13, type is PTR_TYPE, text() is '*'
-parse_cleanup : frm.stmt_count is 2, frm.expr_count is 2
-parse_cleanup : frm.stmt_count is 3, frm.expr_count is 3
-brace_cleanup : orig_line is 13, orig_col is 13, text() is 'const'
-brace_cleanup : pp_level is 0
-parse_cleanup : orig_line is 13, orig_col is 13, type is QUALIFIER, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, []
-parse_cleanup : orig_line is 13, type is QUALIFIER, text() is 'const'
-parse_cleanup : frm.stmt_count is 3, frm.expr_count is 3
-parse_cleanup : frm.stmt_count is 4, frm.expr_count is 4
-brace_cleanup : orig_line is 13, orig_col is 19, text() is 'pTelName'
-brace_cleanup : pp_level is 0
-parse_cleanup : orig_line is 13, orig_col is 19, type is WORD, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, []
-parse_cleanup : orig_line is 13, type is WORD, text() is 'pTelName'
-parse_cleanup : frm.stmt_count is 4, frm.expr_count is 4
-parse_cleanup : frm.stmt_count is 5, frm.expr_count is 5
-brace_cleanup : orig_line is 13, orig_col is 27, text() is ';'
-brace_cleanup : pp_level is 0
-parse_cleanup : orig_line is 13, orig_col is 27, type is SEMICOLON, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, []
-parse_cleanup : orig_line is 13, type is SEMICOLON, text() is ';'
-parse_cleanup : frm.stmt_count is 5, frm.expr_count is 5
-parse_cleanup : frm.stmt_count is 6, frm.expr_count is 6
-parse_cleanup : frm.stmt_count is 0, frm.expr_count is 0
-brace_cleanup : orig_line is 13, orig_col is 28, text() is ''
-brace_cleanup : pp_level is 0
-brace_cleanup : orig_line is 14, orig_col is 1, text() is 'unsigned'
-brace_cleanup : pp_level is 0
-parse_cleanup : orig_line is 14, orig_col is 1, type is TYPE, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, []
-parse_cleanup : orig_line is 14, type is TYPE, text() is 'unsigned'
-parse_cleanup : frm.stmt_count is 0, frm.expr_count is 0
-parse_cleanup : frm.stmt_count is 1, frm.expr_count is 1
-brace_cleanup : orig_line is 14, orig_col is 10, text() is 'long'
-brace_cleanup : pp_level is 0
-parse_cleanup : orig_line is 14, orig_col is 10, type is TYPE, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, []
-parse_cleanup : orig_line is 14, type is TYPE, text() is 'long'
-parse_cleanup : frm.stmt_count is 1, frm.expr_count is 1
-parse_cleanup : frm.stmt_count is 2, frm.expr_count is 2
-brace_cleanup : orig_line is 14, orig_col is 15, text() is 'nTelIndex'
-brace_cleanup : pp_level is 0
-parse_cleanup : orig_line is 14, orig_col is 15, type is WORD, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, []
-parse_cleanup : orig_line is 14, type is WORD, text() is 'nTelIndex'
-parse_cleanup : frm.stmt_count is 2, frm.expr_count is 2
-parse_cleanup : frm.stmt_count is 3, frm.expr_count is 3
-brace_cleanup : orig_line is 14, orig_col is 24, text() is ';'
-brace_cleanup : pp_level is 0
-parse_cleanup : orig_line is 14, orig_col is 24, type is SEMICOLON, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, []
-parse_cleanup : orig_line is 14, type is SEMICOLON, text() is ';'
-parse_cleanup : frm.stmt_count is 3, frm.expr_count is 3
-parse_cleanup : frm.stmt_count is 4, frm.expr_count is 4
-parse_cleanup : frm.stmt_count is 0, frm.expr_count is 0
-brace_cleanup : orig_line is 14, orig_col is 25, text() is ''
-brace_cleanup : pp_level is 0
-brace_cleanup : orig_line is 15, orig_col is 1, text() is '}'
-brace_cleanup : pp_level is 0
-parse_cleanup : orig_line is 15, orig_col is 1, type is BRACE_CLOSE, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, []
-parse_cleanup : orig_line is 15, type is BRACE_CLOSE, text() is '}'
-parse_cleanup : frm.stmt_count is 0, frm.expr_count is 0
-parse_cleanup : frm.stmt_count is 1, frm.expr_count is 1
-parse_cleanup : frm.stmt_count is 0, frm.expr_count is 0
-brace_cleanup : orig_line is 15, orig_col is 2, text() is ';'
-brace_cleanup : pp_level is 0
-parse_cleanup : orig_line is 15, orig_col is 2, type is SEMICOLON, tos is 0, TOS.type is EOF, TOS.stage is NONE, []
-parse_cleanup : orig_line is 15, type is SEMICOLON, text() is ';'
-parse_cleanup : frm.stmt_count is 0, frm.expr_count is 0
-parse_cleanup : frm.stmt_count is 1, frm.expr_count is 1
-parse_cleanup : frm.stmt_count is 0, frm.expr_count is 0
-brace_cleanup : orig_line is 15, orig_col is 3, text() is ''
-brace_cleanup : pp_level is 0
-parameter_pack_cleanup : orig_line is 1, orig_col is 1, text() is 'struct'
-parameter_pack_cleanup : orig_line is 1, orig_col is 8, text() is 'TelegramIndex'
-parameter_pack_cleanup : orig_line is 1, orig_col is 21, text() is ''
-parameter_pack_cleanup : orig_line is 2, orig_col is 1, text() is '{'
-parameter_pack_cleanup : orig_line is 2, orig_col is 2, text() is ''
-parameter_pack_cleanup : orig_line is 3, orig_col is 1, text() is 'TelegramIndex'
-parameter_pack_cleanup : orig_line is 3, orig_col is 14, text() is '('
-parameter_pack_cleanup : orig_line is 3, orig_col is 15, text() is 'const'
-parameter_pack_cleanup : orig_line is 3, orig_col is 21, text() is 'char'
-parameter_pack_cleanup : orig_line is 3, orig_col is 25, text() is '*'
-parameter_pack_cleanup : orig_line is 3, orig_col is 27, text() is 'pN'
-parameter_pack_cleanup : orig_line is 3, orig_col is 29, text() is ','
-parameter_pack_cleanup : orig_line is 3, orig_col is 31, text() is 'unsigned'
-parameter_pack_cleanup : orig_line is 3, orig_col is 40, text() is 'long'
-parameter_pack_cleanup : orig_line is 3, orig_col is 45, text() is 'nI'
-parameter_pack_cleanup : orig_line is 3, orig_col is 47, text() is ')'
-parameter_pack_cleanup : orig_line is 3, orig_col is 49, text() is ':'
-parameter_pack_cleanup : orig_line is 3, orig_col is 50, text() is ''
-parameter_pack_cleanup : orig_line is 4, orig_col is 1, text() is 'pTelName'
-parameter_pack_cleanup : orig_line is 4, orig_col is 9, text() is '('
-parameter_pack_cleanup : orig_line is 4, orig_col is 10, text() is 'pN'
-parameter_pack_cleanup : orig_line is 4, orig_col is 12, text() is ')'
-parameter_pack_cleanup : orig_line is 4, orig_col is 13, text() is ','
-parameter_pack_cleanup : orig_line is 4, orig_col is 14, text() is ''
-parameter_pack_cleanup : orig_line is 5, orig_col is 1, text() is 'nTelIndex'
-parameter_pack_cleanup : orig_line is 5, orig_col is 10, text() is '('
-parameter_pack_cleanup : orig_line is 5, orig_col is 11, text() is 'n'
-parameter_pack_cleanup : orig_line is 5, orig_col is 12, text() is ')'
-parameter_pack_cleanup : orig_line is 5, orig_col is 13, text() is ''
-parameter_pack_cleanup : orig_line is 6, orig_col is 1, text() is '{'
-parameter_pack_cleanup : orig_line is 6, orig_col is 2, text() is ''
-parameter_pack_cleanup : orig_line is 7, orig_col is 1, text() is '}'
-parameter_pack_cleanup : orig_line is 7, orig_col is 2, text() is ''
-parameter_pack_cleanup : orig_line is 9, orig_col is 1, text() is '~'
-parameter_pack_cleanup : orig_line is 9, orig_col is 2, text() is 'TelegramIndex'
-parameter_pack_cleanup : orig_line is 9, orig_col is 15, text() is '('
-parameter_pack_cleanup : orig_line is 9, orig_col is 16, text() is ')'
-parameter_pack_cleanup : orig_line is 9, orig_col is 17, text() is ''
-parameter_pack_cleanup : orig_line is 10, orig_col is 1, text() is '{'
-parameter_pack_cleanup : orig_line is 10, orig_col is 2, text() is ''
-parameter_pack_cleanup : orig_line is 11, orig_col is 1, text() is '}'
-parameter_pack_cleanup : orig_line is 11, orig_col is 2, text() is ''
-parameter_pack_cleanup : orig_line is 13, orig_col is 1, text() is 'const'
-parameter_pack_cleanup : orig_line is 13, orig_col is 7, text() is 'char'
-parameter_pack_cleanup : orig_line is 13, orig_col is 11, text() is '*'
-parameter_pack_cleanup : orig_line is 13, orig_col is 13, text() is 'const'
-parameter_pack_cleanup : orig_line is 13, orig_col is 19, text() is 'pTelName'
-parameter_pack_cleanup : orig_line is 13, orig_col is 27, text() is ';'
-parameter_pack_cleanup : orig_line is 13, orig_col is 28, text() is ''
-parameter_pack_cleanup : orig_line is 14, orig_col is 1, text() is 'unsigned'
-parameter_pack_cleanup : orig_line is 14, orig_col is 10, text() is 'long'
-parameter_pack_cleanup : orig_line is 14, orig_col is 15, text() is 'nTelIndex'
-parameter_pack_cleanup : orig_line is 14, orig_col is 24, text() is ';'
-parameter_pack_cleanup : orig_line is 14, orig_col is 25, text() is ''
-parameter_pack_cleanup : orig_line is 15, orig_col is 1, text() is '}'
-parameter_pack_cleanup : orig_line is 15, orig_col is 2, text() is ';'
-parameter_pack_cleanup : orig_line is 15, orig_col is 3, text() is ''
-log_rule(enum_cleanup : rule is 'mod_enum_last_comma'
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/31.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/31.txt
deleted file mode 100644
index a890e117..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/31.txt
+++ /dev/null
@@ -1,600 +0,0 @@
-indent_text : orig_line is 1, orig_col is 1, column is 1, for 'struct'
- []
-indent_text : frm.pse_tos is 0, ...indent_tmp is 1
-indent_text : frm.pse_tos is 0, ...indent_tmp is 1
-reindent_line : orig_line is 1, orig_col is 1, on 'struct' [STRUCT/NONE] => 1
- [CallStack]
-indent_text : orig_line is 1, orig_col is 8, column is 8, for 'TelegramIndex'
- []
-indent_text : frm.pse_tos is 0, ...indent_tmp is 1
-indent_text : frm.pse_tos is 0, ...indent_tmp is 1
-indent_text : orig_line is 1, <Newline>
-indent_text : frm.pse_tos is 0, ...indent_tmp is 1
-indent_text : frm.pse_tos is 0, ...indent_tmp is 1
-indent_text : frm.pse_tos is 0, ...indent is 1
-indent_text : frm.pse_tos is 0, ...indent_tmp is 1
-indent_text : orig_line is 2, orig_col is 1, column is 1, for '{'
- []
-indent_text : frm.pse_tos is 0, ...indent_tmp is 1
-indent_text : frm.pse_tos is 0, ...indent_tmp is 1
-indent_text : frm.pse_tos is 1, ... indent is 9
-indent_text : orig_line is 2, orig_col is 1, text() is '{', parent_type is STRUCT
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-reindent_line : orig_line is 2, orig_col is 1, on '{' [BRACE_OPEN/STRUCT] => 1
- [CallStack]
-indent_text : orig_line is 2, <Newline>
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 1, ...indent is 9
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : orig_line is 3, orig_col is 1, column is 1, for 'TelegramIndex'
- []
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-reindent_line : orig_line is 3, orig_col is 1, on 'TelegramIndex' [FUNC_CLASS_DEF/NONE] => 9
- [CallStack]
-indent_text : orig_line is 3, orig_col is 14, column is 22, for '('
- []
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 2, ...indent is 23
-indent_text : frm.pse_tos is 2, ...indent is 23
-indent_text : frm.pse_tos is 2, ...indent_tmp is 23
-indent_text : orig_line is 3, orig_col is 15, column is 23, for 'const'
- []
-indent_text : frm.pse_tos is 2, ...indent_tmp is 23
-indent_text : frm.pse_tos is 2, ...indent_tmp is 23
-indent_text : orig_line is 3, orig_col is 21, column is 29, for 'char'
- []
-indent_text : frm.pse_tos is 2, ...indent_tmp is 23
-indent_text : frm.pse_tos is 2, ...indent_tmp is 23
-indent_text : orig_line is 3, orig_col is 25, column is 33, for '*'
- []
-indent_text : frm.pse_tos is 2, ...indent_tmp is 23
-indent_text : frm.pse_tos is 2, ...indent_tmp is 23
-indent_text : orig_line is 3, orig_col is 27, column is 35, for 'pN'
- []
-indent_text : frm.pse_tos is 2, ...indent_tmp is 23
-indent_text : frm.pse_tos is 2, ...indent_tmp is 23
-indent_text : orig_line is 3, orig_col is 29, column is 37, for ','
- []
-indent_text : frm.pse_tos is 2, ...indent_tmp is 23
-indent_text : frm.pse_tos is 2, ...indent_tmp is 23
-indent_text : orig_line is 3, orig_col is 31, column is 39, for 'unsigned'
- []
-indent_text : frm.pse_tos is 2, ...indent_tmp is 23
-indent_text : frm.pse_tos is 2, ...indent_tmp is 23
-indent_text : orig_line is 3, orig_col is 40, column is 48, for 'long'
- []
-indent_text : frm.pse_tos is 2, ...indent_tmp is 23
-indent_text : frm.pse_tos is 2, ...indent_tmp is 23
-indent_text : orig_line is 3, orig_col is 45, column is 53, for 'nI'
- []
-indent_text : frm.pse_tos is 2, ...indent_tmp is 23
-indent_text : frm.pse_tos is 2, ...indent_tmp is 23
-indent_text : orig_line is 3, orig_col is 47, column is 55, for ')'
- []
-indent_text : frm.pse_tos is 2, ...indent_tmp is 23
-indent_text : pc->orig_line is 3, orig_col is 47, text() is ')', type is FPAREN_CLOSE
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : orig_line is 3, orig_col is 49, column is 57, for ':'
- []
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 2, ...indent is 17
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-indent_text : orig_line is 3, <Newline>
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-indent_text : frm.pse_tos is 2, ...indent is 17
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-indent_text : orig_line is 4, orig_col is 1, column is 1, for 'pTelName'
- []
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-reindent_line : orig_line is 4, orig_col is 1, on 'pTelName' [FUNC_CTOR_VAR/NONE] => 17
- [CallStack]
-indent_text : orig_line is 4, orig_col is 9, column is 25, for '('
- []
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-indent_text : frm.pse_tos is 3, ...indent is 26
-indent_text : frm.pse_tos is 3, ...indent is 26
-indent_text : frm.pse_tos is 3, ...indent_tmp is 26
-indent_text : orig_line is 4, orig_col is 10, column is 26, for 'pN'
- []
-indent_text : frm.pse_tos is 3, ...indent_tmp is 26
-indent_text : frm.pse_tos is 3, ...indent_tmp is 26
-indent_text : orig_line is 4, orig_col is 12, column is 28, for ')'
- []
-indent_text : frm.pse_tos is 3, ...indent_tmp is 26
-indent_text : pc->orig_line is 4, orig_col is 12, text() is ')', type is FPAREN_CLOSE
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-indent_text : orig_line is 4, orig_col is 13, column is 29, for ','
- []
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-indent_text : orig_line is 4, <Newline>
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-indent_text : frm.pse_tos is 2, ...indent is 17
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-indent_text : orig_line is 5, orig_col is 1, column is 1, for 'nTelIndex'
- []
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-reindent_line : orig_line is 5, orig_col is 1, on 'nTelIndex' [FUNC_CTOR_VAR/NONE] => 17
- [CallStack]
-indent_text : orig_line is 5, orig_col is 10, column is 26, for '('
- []
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-indent_text : frm.pse_tos is 3, ...indent is 27
-indent_text : frm.pse_tos is 3, ...indent is 27
-indent_text : frm.pse_tos is 3, ...indent_tmp is 27
-indent_text : orig_line is 5, orig_col is 11, column is 27, for 'n'
- []
-indent_text : frm.pse_tos is 3, ...indent_tmp is 27
-indent_text : frm.pse_tos is 3, ...indent_tmp is 27
-indent_text : orig_line is 5, orig_col is 12, column is 28, for ')'
- []
-indent_text : frm.pse_tos is 3, ...indent_tmp is 27
-indent_text : pc->orig_line is 5, orig_col is 12, text() is ')', type is FPAREN_CLOSE
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-indent_text : orig_line is 5, <Newline>
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-indent_text : frm.pse_tos is 2, ...indent is 17
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-indent_text : orig_line is 6, orig_col is 1, column is 1, for '{'
- []
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-indent_text : pc->orig_line is 6, orig_col is 1, text() is '{', type is BRACE_OPEN
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 2, ... indent is 17
-indent_text : orig_line is 6, orig_col is 1, text() is '{', parent_type is FUNC_CLASS_DEF
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-reindent_line : orig_line is 6, orig_col is 1, on '{' [BRACE_OPEN/FUNC_CLASS_DEF] => 9
- [CallStack]
-indent_text : orig_line is 6, <Newline>
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-indent_text : frm.pse_tos is 2, ...indent is 17
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-indent_text : orig_line is 7, orig_col is 1, column is 1, for '}'
- []
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-indent_text : pc->orig_line is 7, orig_col is 1, text() is '}', type is BRACE_CLOSE
-reindent_line : orig_line is 7, orig_col is 1, on '}' [BRACE_CLOSE/FUNC_CLASS_DEF] => 9
- [CallStack]
-indent_text : orig_line is 7, <Newline>
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 1, ...indent is 9
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : orig_line is 9, orig_col is 1, column is 1, for '~'
- []
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-reindent_line : orig_line is 9, orig_col is 1, on '~' [DESTRUCTOR/FUNC_CLASS_DEF] => 9
- [CallStack]
-indent_text : orig_line is 9, orig_col is 2, column is 10, for 'TelegramIndex'
- []
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : orig_line is 9, orig_col is 15, column is 23, for '('
- []
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 2, ...indent is 24
-indent_text : frm.pse_tos is 2, ...indent is 24
-indent_text : frm.pse_tos is 2, ...indent_tmp is 24
-indent_text : orig_line is 9, orig_col is 16, column is 24, for ')'
- []
-indent_text : frm.pse_tos is 2, ...indent_tmp is 24
-indent_text : pc->orig_line is 9, orig_col is 16, text() is ')', type is FPAREN_CLOSE
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : orig_line is 9, <Newline>
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 1, ...indent is 9
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : orig_line is 10, orig_col is 1, column is 1, for '{'
- []
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 2, ... indent is 17
-indent_text : orig_line is 10, orig_col is 1, text() is '{', parent_type is FUNC_CLASS_DEF
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-reindent_line : orig_line is 10, orig_col is 1, on '{' [BRACE_OPEN/FUNC_CLASS_DEF] => 9
- [CallStack]
-indent_text : orig_line is 10, <Newline>
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-indent_text : frm.pse_tos is 2, ...indent is 17
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-indent_text : orig_line is 11, orig_col is 1, column is 1, for '}'
- []
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-indent_text : pc->orig_line is 11, orig_col is 1, text() is '}', type is BRACE_CLOSE
-reindent_line : orig_line is 11, orig_col is 1, on '}' [BRACE_CLOSE/FUNC_CLASS_DEF] => 9
- [CallStack]
-indent_text : orig_line is 11, <Newline>
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 1, ...indent is 9
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : orig_line is 13, orig_col is 1, column is 1, for 'const'
- []
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-reindent_line : orig_line is 13, orig_col is 1, on 'const' [QUALIFIER/NONE] => 9
- [CallStack]
-indent_text : orig_line is 13, orig_col is 7, column is 15, for 'char'
- []
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : orig_line is 13, orig_col is 11, column is 19, for '*'
- []
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : orig_line is 13, orig_col is 13, column is 21, for 'const'
- []
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : orig_line is 13, orig_col is 19, column is 27, for 'pTelName'
- []
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : orig_line is 13, orig_col is 27, column is 35, for ';'
- []
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : orig_line is 13, <Newline>
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 1, ...indent is 9
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : orig_line is 14, orig_col is 1, column is 1, for 'unsigned'
- []
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-reindent_line : orig_line is 14, orig_col is 1, on 'unsigned' [TYPE/NONE] => 9
- [CallStack]
-indent_text : orig_line is 14, orig_col is 10, column is 18, for 'long'
- []
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : orig_line is 14, orig_col is 15, column is 23, for 'nTelIndex'
- []
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : orig_line is 14, orig_col is 24, column is 32, for ';'
- []
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : orig_line is 14, <Newline>
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 1, ...indent is 9
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : orig_line is 15, orig_col is 1, column is 1, for '}'
- []
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : pc->orig_line is 15, orig_col is 1, text() is '}', type is BRACE_CLOSE
-reindent_line : orig_line is 15, orig_col is 1, on '}' [BRACE_CLOSE/STRUCT] => 1
- [CallStack]
-indent_text : orig_line is 15, orig_col is 2, column is 2, for ';'
- []
-indent_text : frm.pse_tos is 0, ...indent_tmp is 1
-indent_text : frm.pse_tos is 0, ...indent_tmp is 1
-indent_text : orig_line is 15, <Newline>
-indent_text : frm.pse_tos is 0, ...indent_tmp is 1
-indent_text : frm.pse_tos is 0, ...indent_tmp is 1
-indent_text : frm.pse_tos is 0, ...indent is 1
-indent_text : frm.pse_tos is 0, ...indent_tmp is 1
-indent_text : before quick_align_again
-indent_text : after quick_align_again
-indent_text : orig_line is 1, orig_col is 1, column is 1, for 'struct'
- []
-indent_text : frm.pse_tos is 0, ...indent_tmp is 1
-indent_text : frm.pse_tos is 0, ...indent_tmp is 1
-reindent_line : orig_line is 1, orig_col is 1, on 'struct' [STRUCT/NONE] => 1
- [CallStack]
-indent_text : orig_line is 1, orig_col is 8, column is 8, for 'TelegramIndex'
- []
-indent_text : frm.pse_tos is 0, ...indent_tmp is 1
-indent_text : frm.pse_tos is 0, ...indent_tmp is 1
-indent_text : orig_line is 1, <Newline>
-indent_text : frm.pse_tos is 0, ...indent_tmp is 1
-indent_text : frm.pse_tos is 0, ...indent_tmp is 1
-indent_text : frm.pse_tos is 0, ...indent is 1
-indent_text : frm.pse_tos is 0, ...indent_tmp is 1
-indent_text : orig_line is 2, orig_col is 1, column is 1, for '{'
- []
-indent_text : frm.pse_tos is 0, ...indent_tmp is 1
-indent_text : frm.pse_tos is 0, ...indent_tmp is 1
-indent_text : frm.pse_tos is 1, ... indent is 9
-indent_text : orig_line is 2, orig_col is 1, text() is '{', parent_type is STRUCT
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-reindent_line : orig_line is 2, orig_col is 1, on '{' [BRACE_OPEN/STRUCT] => 1
- [CallStack]
-indent_text : orig_line is 2, <Newline>
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 1, ...indent is 9
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : orig_line is 3, orig_col is 1, column is 9, for 'TelegramIndex'
- []
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-reindent_line : orig_line is 3, orig_col is 1, on 'TelegramIndex' [FUNC_CLASS_DEF/NONE] => 9
- [CallStack]
-indent_text : orig_line is 3, orig_col is 14, column is 22, for '('
- []
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 2, ...indent is 23
-indent_text : frm.pse_tos is 2, ...indent is 23
-indent_text : frm.pse_tos is 2, ...indent_tmp is 23
-indent_text : orig_line is 3, orig_col is 15, column is 23, for 'const'
- []
-indent_text : frm.pse_tos is 2, ...indent_tmp is 23
-indent_text : frm.pse_tos is 2, ...indent_tmp is 23
-indent_text : orig_line is 3, orig_col is 21, column is 29, for 'char'
- []
-indent_text : frm.pse_tos is 2, ...indent_tmp is 23
-indent_text : frm.pse_tos is 2, ...indent_tmp is 23
-indent_text : orig_line is 3, orig_col is 25, column is 33, for '*'
- []
-indent_text : frm.pse_tos is 2, ...indent_tmp is 23
-indent_text : frm.pse_tos is 2, ...indent_tmp is 23
-indent_text : orig_line is 3, orig_col is 27, column is 35, for 'pN'
- []
-indent_text : frm.pse_tos is 2, ...indent_tmp is 23
-indent_text : frm.pse_tos is 2, ...indent_tmp is 23
-indent_text : orig_line is 3, orig_col is 29, column is 37, for ','
- []
-indent_text : frm.pse_tos is 2, ...indent_tmp is 23
-indent_text : frm.pse_tos is 2, ...indent_tmp is 23
-indent_text : orig_line is 3, orig_col is 31, column is 39, for 'unsigned'
- []
-indent_text : frm.pse_tos is 2, ...indent_tmp is 23
-indent_text : frm.pse_tos is 2, ...indent_tmp is 23
-indent_text : orig_line is 3, orig_col is 40, column is 48, for 'long'
- []
-indent_text : frm.pse_tos is 2, ...indent_tmp is 23
-indent_text : frm.pse_tos is 2, ...indent_tmp is 23
-indent_text : orig_line is 3, orig_col is 45, column is 53, for 'nI'
- []
-indent_text : frm.pse_tos is 2, ...indent_tmp is 23
-indent_text : frm.pse_tos is 2, ...indent_tmp is 23
-indent_text : orig_line is 3, orig_col is 47, column is 55, for ')'
- []
-indent_text : frm.pse_tos is 2, ...indent_tmp is 23
-indent_text : pc->orig_line is 3, orig_col is 47, text() is ')', type is FPAREN_CLOSE
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : orig_line is 3, orig_col is 49, column is 57, for ':'
- []
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 2, ...indent is 17
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-indent_text : orig_line is 3, <Newline>
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-indent_text : frm.pse_tos is 2, ...indent is 17
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-indent_text : orig_line is 4, orig_col is 1, column is 17, for 'pTelName'
- []
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-reindent_line : orig_line is 4, orig_col is 1, on 'pTelName' [FUNC_CTOR_VAR/NONE] => 17
- [CallStack]
-indent_text : orig_line is 4, orig_col is 9, column is 25, for '('
- []
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-indent_text : frm.pse_tos is 3, ...indent is 26
-indent_text : frm.pse_tos is 3, ...indent is 26
-indent_text : frm.pse_tos is 3, ...indent_tmp is 26
-indent_text : orig_line is 4, orig_col is 10, column is 26, for 'pN'
- []
-indent_text : frm.pse_tos is 3, ...indent_tmp is 26
-indent_text : frm.pse_tos is 3, ...indent_tmp is 26
-indent_text : orig_line is 4, orig_col is 12, column is 28, for ')'
- []
-indent_text : frm.pse_tos is 3, ...indent_tmp is 26
-indent_text : pc->orig_line is 4, orig_col is 12, text() is ')', type is FPAREN_CLOSE
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-indent_text : orig_line is 4, orig_col is 13, column is 29, for ','
- []
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-indent_text : orig_line is 4, <Newline>
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-indent_text : frm.pse_tos is 2, ...indent is 17
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-indent_text : orig_line is 5, orig_col is 1, column is 17, for 'nTelIndex'
- []
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-reindent_line : orig_line is 5, orig_col is 1, on 'nTelIndex' [FUNC_CTOR_VAR/NONE] => 17
- [CallStack]
-indent_text : orig_line is 5, orig_col is 10, column is 26, for '('
- []
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-indent_text : frm.pse_tos is 3, ...indent is 27
-indent_text : frm.pse_tos is 3, ...indent is 27
-indent_text : frm.pse_tos is 3, ...indent_tmp is 27
-indent_text : orig_line is 5, orig_col is 11, column is 27, for 'n'
- []
-indent_text : frm.pse_tos is 3, ...indent_tmp is 27
-indent_text : frm.pse_tos is 3, ...indent_tmp is 27
-indent_text : orig_line is 5, orig_col is 12, column is 28, for ')'
- []
-indent_text : frm.pse_tos is 3, ...indent_tmp is 27
-indent_text : pc->orig_line is 5, orig_col is 12, text() is ')', type is FPAREN_CLOSE
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-indent_text : orig_line is 5, <Newline>
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-indent_text : frm.pse_tos is 2, ...indent is 17
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-indent_text : orig_line is 6, orig_col is 1, column is 9, for '{'
- []
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-indent_text : pc->orig_line is 6, orig_col is 1, text() is '{', type is BRACE_OPEN
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 2, ... indent is 17
-indent_text : orig_line is 6, orig_col is 1, text() is '{', parent_type is FUNC_CLASS_DEF
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-reindent_line : orig_line is 6, orig_col is 1, on '{' [BRACE_OPEN/FUNC_CLASS_DEF] => 9
- [CallStack]
-indent_text : orig_line is 6, <Newline>
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-indent_text : frm.pse_tos is 2, ...indent is 17
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-indent_text : orig_line is 7, orig_col is 1, column is 9, for '}'
- []
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-indent_text : pc->orig_line is 7, orig_col is 1, text() is '}', type is BRACE_CLOSE
-reindent_line : orig_line is 7, orig_col is 1, on '}' [BRACE_CLOSE/FUNC_CLASS_DEF] => 9
- [CallStack]
-indent_text : orig_line is 7, <Newline>
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 1, ...indent is 9
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : orig_line is 9, orig_col is 1, column is 9, for '~'
- []
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-reindent_line : orig_line is 9, orig_col is 1, on '~' [DESTRUCTOR/FUNC_CLASS_DEF] => 9
- [CallStack]
-indent_text : orig_line is 9, orig_col is 2, column is 10, for 'TelegramIndex'
- []
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : orig_line is 9, orig_col is 15, column is 23, for '('
- []
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 2, ...indent is 24
-indent_text : frm.pse_tos is 2, ...indent is 24
-indent_text : frm.pse_tos is 2, ...indent_tmp is 24
-indent_text : orig_line is 9, orig_col is 16, column is 24, for ')'
- []
-indent_text : frm.pse_tos is 2, ...indent_tmp is 24
-indent_text : pc->orig_line is 9, orig_col is 16, text() is ')', type is FPAREN_CLOSE
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : orig_line is 9, <Newline>
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 1, ...indent is 9
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : orig_line is 10, orig_col is 1, column is 9, for '{'
- []
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 2, ... indent is 17
-indent_text : orig_line is 10, orig_col is 1, text() is '{', parent_type is FUNC_CLASS_DEF
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-reindent_line : orig_line is 10, orig_col is 1, on '{' [BRACE_OPEN/FUNC_CLASS_DEF] => 9
- [CallStack]
-indent_text : orig_line is 10, <Newline>
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-indent_text : frm.pse_tos is 2, ...indent is 17
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-indent_text : orig_line is 11, orig_col is 1, column is 9, for '}'
- []
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-indent_text : frm.pse_tos is 2, ...indent_tmp is 17
-indent_text : pc->orig_line is 11, orig_col is 1, text() is '}', type is BRACE_CLOSE
-reindent_line : orig_line is 11, orig_col is 1, on '}' [BRACE_CLOSE/FUNC_CLASS_DEF] => 9
- [CallStack]
-indent_text : orig_line is 11, <Newline>
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 1, ...indent is 9
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : orig_line is 13, orig_col is 1, column is 9, for 'const'
- []
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-reindent_line : orig_line is 13, orig_col is 1, on 'const' [QUALIFIER/NONE] => 9
- [CallStack]
-indent_text : orig_line is 13, orig_col is 7, column is 15, for 'char'
- []
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : orig_line is 13, orig_col is 11, column is 19, for '*'
- []
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : orig_line is 13, orig_col is 13, column is 21, for 'const'
- []
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : orig_line is 13, orig_col is 19, column is 27, for 'pTelName'
- []
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : orig_line is 13, orig_col is 27, column is 35, for ';'
- []
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : orig_line is 13, <Newline>
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 1, ...indent is 9
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : orig_line is 14, orig_col is 1, column is 9, for 'unsigned'
- []
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-reindent_line : orig_line is 14, orig_col is 1, on 'unsigned' [TYPE/NONE] => 9
- [CallStack]
-indent_text : orig_line is 14, orig_col is 10, column is 18, for 'long'
- []
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : orig_line is 14, orig_col is 15, column is 23, for 'nTelIndex'
- []
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : orig_line is 14, orig_col is 24, column is 32, for ';'
- []
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : orig_line is 14, <Newline>
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 1, ...indent is 9
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : orig_line is 15, orig_col is 1, column is 1, for '}'
- []
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : frm.pse_tos is 1, ...indent_tmp is 9
-indent_text : pc->orig_line is 15, orig_col is 1, text() is '}', type is BRACE_CLOSE
-reindent_line : orig_line is 15, orig_col is 1, on '}' [BRACE_CLOSE/STRUCT] => 1
- [CallStack]
-indent_text : orig_line is 15, orig_col is 2, column is 2, for ';'
- []
-indent_text : frm.pse_tos is 0, ...indent_tmp is 1
-indent_text : frm.pse_tos is 0, ...indent_tmp is 1
-indent_text : orig_line is 15, <Newline>
-indent_text : frm.pse_tos is 0, ...indent_tmp is 1
-indent_text : frm.pse_tos is 0, ...indent_tmp is 1
-indent_text : frm.pse_tos is 0, ...indent is 1
-indent_text : frm.pse_tos is 0, ...indent_tmp is 1
-indent_text : before quick_align_again
-indent_text : after quick_align_again
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/36.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/36.txt
deleted file mode 100644
index 892f5af5..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/36.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-fix_fcn_def_params : text() '(', type is PAREN_OPEN, on orig_line 3, level is 1
-fix_fcn_def_params : looking at, text() 'const' on orig_line 3, level 2
-fix_fcn_def_params : looking at, text() 'char' on orig_line 3, level 2
-fix_fcn_def_params : looking at, text() '*' on orig_line 3, level 2
-fix_fcn_def_params : looking at, text() 'pN' on orig_line 3, level 2
-fix_fcn_def_params : looking at, text() ',' on orig_line 3, level 2
-mark_variable_stack : parameter on orig_line 3, orig_col 27:
-mark_variable_stack : parameter on orig_line 3, orig_col 27: <char> as TYPE
-mark_variable_stack : parameter on orig_line 3, orig_col 27: <pN> as VAR
-fix_fcn_def_params : looking at, text() 'unsigned' on orig_line 3, level 2
-fix_fcn_def_params : looking at, text() 'long' on orig_line 3, level 2
-fix_fcn_def_params : looking at, text() 'nI' on orig_line 3, level 2
-fix_fcn_def_params : bailed on text() ')', on orig_line 3
-mark_variable_stack : parameter on orig_line 3, orig_col 45:
-mark_variable_stack : parameter on orig_line 3, orig_col 45: <long> as TYPE
-mark_variable_stack : parameter on orig_line 3, orig_col 45: <unsigned> as TYPE
-mark_variable_stack : parameter on orig_line 3, orig_col 45: <nI> as VAR
-fix_fcn_def_params : text() '(', type is PAREN_OPEN, on orig_line 9, level is 1
-fix_fcn_def_params : bailed on text() ')', on orig_line 9
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/66.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/66.txt
deleted file mode 100644
index 71b7804d..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/66.txt
+++ /dev/null
@@ -1,741 +0,0 @@
-space_text : orig_line is 1, orig_col is 1, 'struct' type is STRUCT
-space_text : back-to-back words need a space: pc->text() 'struct', next->text() 'TelegramIndex'
-space_text : orig_line is 1, orig_col is 1, pc-text() 'struct', type is STRUCT
-do_space : orig_line is 1, orig_col is 1, first->text() 'struct', type is STRUCT
-do_space : first->orig_line is 1, first->orig_col is 1, first->text() is 'struct', [STRUCT/NONE] <===>
- second->orig_line is 1, second->orig_col is 8, second->text() is 'TelegramIndex', [TYPE/STRUCT] : rule ADD from add_space_table[ ]
-ensure_force_space : <force between 'struct' and 'TelegramIndex'> rule = ADD @ 1 => 8
-space_text : orig_line is 1, orig_col is 8, 'TelegramIndex' type is TYPE
-space_text : orig_line is 1, orig_col is 8, pc-text() 'TelegramIndex', type is TYPE
-do_space : orig_line is 1, orig_col is 8, first->text() 'TelegramIndex', type is TYPE
- rule = REMOVE @ 0 => 21
-space_text : orig_line is 1, orig_col is 21, <Newline>, nl is 1
-space_text : orig_line is 2, orig_col is 1, '{' type is BRACE_OPEN
-space_text : orig_line is 2, orig_col is 1, pc-text() '{', type is BRACE_OPEN
-do_space : orig_line is 2, orig_col is 1, first->text() '{', type is BRACE_OPEN
- rule = REMOVE @ 0 => 2
-space_text : orig_line is 2, orig_col is 2, <Newline>, nl is 1
-space_text : orig_line is 3, orig_col is 1, 'TelegramIndex' type is FUNC_CLASS_DEF
-space_text : orig_line is 3, orig_col is 1, pc-text() 'TelegramIndex', type is FUNC_CLASS_DEF
-do_space : orig_line is 3, orig_col is 1, first->text() 'TelegramIndex', type is FUNC_CLASS_DEF
-do_space : first->orig_line is 3, first->orig_col is 1, first->text() is 'TelegramIndex', [FUNC_CLASS_DEF/NONE] <===>
- second->orig_line is 3, second->orig_col is 14, second->text() is '(', [FPAREN_OPEN/FUNC_CLASS_DEF] : rule sp_func_class_paren[ ]
- rule = IGNORE @ 0 => 14
-space_text : orig_line is 3, orig_col is 14, '(' type is FPAREN_OPEN
-space_text : orig_line is 3, orig_col is 14, pc-text() '(', type is FPAREN_OPEN
-do_space : orig_line is 3, orig_col is 14, first->text() '(', type is FPAREN_OPEN
-do_space : first->orig_line is 3, first->orig_col is 14, first->text() is '(', [FPAREN_OPEN/FUNC_CLASS_DEF] <===>
- second->orig_line is 3, second->orig_col is 15, second->text() is 'const', [QUALIFIER/NONE] : rule sp_inside_fparen[ ]
- rule = IGNORE @ 0 => 15
-space_text : orig_line is 3, orig_col is 15, 'const' type is QUALIFIER
-space_text : back-to-back words need a space: pc->text() 'const', next->text() 'char'
-space_text : orig_line is 3, orig_col is 15, pc-text() 'const', type is QUALIFIER
-do_space : orig_line is 3, orig_col is 15, first->text() 'const', type is QUALIFIER
-do_space : first->orig_line is 3, first->orig_col is 15, first->text() is 'const', [QUALIFIER/NONE] <===>
- second->orig_line is 3, second->orig_col is 21, second->text() is 'char', [TYPE/NONE] : rule sp_after_type[ ]
-ensure_force_space : <force between 'const' and 'char'> rule = FORCE @ 1 => 21
-space_text : orig_line is 3, orig_col is 21, 'char' type is TYPE
-space_text : orig_line is 3, orig_col is 21, pc-text() 'char', type is TYPE
-do_space : orig_line is 3, orig_col is 21, first->text() 'char', type is TYPE
-do_space : first->orig_line is 3, first->orig_col is 21, first->text() is 'char', [TYPE/NONE] <===>
- second->orig_line is 3, second->orig_col is 25, second->text() is '*', [PTR_TYPE/NONE] : rule IGNORE[ ]
- rule = IGNORE @ 0 => 25
-space_text : orig_line is 3, orig_col is 25, '*' type is PTR_TYPE
-space_text : orig_line is 3, orig_col is 25, pc-text() '*', type is PTR_TYPE
-do_space : orig_line is 3, orig_col is 25, first->text() '*', type is PTR_TYPE
-do_space : first->orig_line is 3, first->orig_col is 25, first->text() is '*', [PTR_TYPE/NONE] <===>
- second->orig_line is 3, second->orig_col is 27, second->text() is 'pN', [WORD/NONE] : rule sp_after_ptr_star[ ]
- rule = IGNORE @ 1 => 27
-space_text : orig_line is 3, orig_col is 27, 'pN' type is WORD
-space_text : orig_line is 3, orig_col is 27, pc-text() 'pN', type is WORD
-do_space : orig_line is 3, orig_col is 27, first->text() 'pN', type is WORD
-do_space : first->orig_line is 3, first->orig_col is 27, first->text() is 'pN', [WORD/NONE] <===>
- second->orig_line is 3, second->orig_col is 29, second->text() is ',', [COMMA/NONE] : rule sp_before_comma[ ]
- rule = REMOVE @ 0 => 29
-space_text : orig_line is 3, orig_col is 29, ',' type is COMMA
-space_text : orig_line is 3, orig_col is 29, pc-text() ',', type is COMMA
-do_space : orig_line is 3, orig_col is 29, first->text() ',', type is COMMA
-do_space : first->orig_line is 3, first->orig_col is 29, first->text() is ',', [COMMA/NONE] <===>
- second->orig_line is 3, second->orig_col is 31, second->text() is 'unsigned', [TYPE/NONE] : rule sp_after_comma[ ]
- rule = IGNORE @ 1 => 31
-space_text : orig_line is 3, orig_col is 31, 'unsigned' type is TYPE
-space_text : back-to-back words need a space: pc->text() 'unsigned', next->text() 'long'
-space_text : orig_line is 3, orig_col is 31, pc-text() 'unsigned', type is TYPE
-do_space : orig_line is 3, orig_col is 31, first->text() 'unsigned', type is TYPE
-do_space : first->orig_line is 3, first->orig_col is 31, first->text() is 'unsigned', [TYPE/NONE] <===>
- second->orig_line is 3, second->orig_col is 40, second->text() is 'long', [TYPE/NONE] : rule sp_after_type[ ]
-ensure_force_space : <force between 'unsigned' and 'long'> rule = FORCE @ 1 => 40
-space_text : orig_line is 3, orig_col is 40, 'long' type is TYPE
-space_text : back-to-back words need a space: pc->text() 'long', next->text() 'nI'
-space_text : orig_line is 3, orig_col is 40, pc-text() 'long', type is TYPE
-do_space : orig_line is 3, orig_col is 40, first->text() 'long', type is TYPE
-do_space : first->orig_line is 3, first->orig_col is 40, first->text() is 'long', [TYPE/NONE] <===>
- second->orig_line is 3, second->orig_col is 45, second->text() is 'nI', [WORD/NONE] : rule sp_after_type[ ]
-ensure_force_space : <force between 'long' and 'nI'> rule = FORCE @ 1 => 45
-space_text : orig_line is 3, orig_col is 45, 'nI' type is WORD
-space_text : orig_line is 3, orig_col is 45, pc-text() 'nI', type is WORD
-do_space : orig_line is 3, orig_col is 45, first->text() 'nI', type is WORD
-do_space : first->orig_line is 3, first->orig_col is 45, first->text() is 'nI', [WORD/NONE] <===>
- second->orig_line is 3, second->orig_col is 47, second->text() is ')', [FPAREN_CLOSE/FUNC_CLASS_DEF] : rule sp_inside_fparen[ ]
- rule = IGNORE @ 0 => 47
-space_text : orig_line is 3, orig_col is 47, ')' type is FPAREN_CLOSE
-space_text : orig_line is 3, orig_col is 47, pc-text() ')', type is FPAREN_CLOSE
-do_space : orig_line is 3, orig_col is 47, first->text() ')', type is FPAREN_CLOSE
-do_space : first->orig_line is 3, first->orig_col is 47, first->text() is ')', [FPAREN_CLOSE/FUNC_CLASS_DEF] <===>
- second->orig_line is 3, second->orig_col is 49, second->text() is ':', [CONSTR_COLON/NONE] : rule sp_before_constr_colon[ ]
- rule = ADD @ 1 => 49
-space_text : orig_line is 3, orig_col is 49, ':' type is CONSTR_COLON
-space_text : orig_line is 3, orig_col is 49, pc-text() ':', type is CONSTR_COLON
-do_space : orig_line is 3, orig_col is 49, first->text() ':', type is CONSTR_COLON
- rule = REMOVE @ 0 => 50
-space_text : orig_line is 3, orig_col is 50, <Newline>, nl is 1
-space_text : orig_line is 4, orig_col is 1, 'pTelName' type is FUNC_CTOR_VAR
-space_text : orig_line is 4, orig_col is 1, pc-text() 'pTelName', type is FUNC_CTOR_VAR
-do_space : orig_line is 4, orig_col is 1, first->text() 'pTelName', type is FUNC_CTOR_VAR
-do_space : first->orig_line is 4, first->orig_col is 1, first->text() is 'pTelName', [FUNC_CTOR_VAR/NONE] <===>
- second->orig_line is 4, second->orig_col is 9, second->text() is '(', [FPAREN_OPEN/FUNC_CTOR_VAR] : rule sp_func_call_paren[ ]
- rule = IGNORE @ 0 => 9
-space_text : orig_line is 4, orig_col is 9, '(' type is FPAREN_OPEN
-space_text : orig_line is 4, orig_col is 9, pc-text() '(', type is FPAREN_OPEN
-do_space : orig_line is 4, orig_col is 9, first->text() '(', type is FPAREN_OPEN
-do_space : first->orig_line is 4, first->orig_col is 9, first->text() is '(', [FPAREN_OPEN/FUNC_CTOR_VAR] <===>
- second->orig_line is 4, second->orig_col is 10, second->text() is 'pN', [WORD/NONE] : rule sp_inside_fparen[ ]
- rule = IGNORE @ 0 => 10
-space_text : orig_line is 4, orig_col is 10, 'pN' type is WORD
-space_text : orig_line is 4, orig_col is 10, pc-text() 'pN', type is WORD
-do_space : orig_line is 4, orig_col is 10, first->text() 'pN', type is WORD
-do_space : first->orig_line is 4, first->orig_col is 10, first->text() is 'pN', [WORD/NONE] <===>
- second->orig_line is 4, second->orig_col is 12, second->text() is ')', [FPAREN_CLOSE/FUNC_CTOR_VAR] : rule sp_inside_fparen[ ]
- rule = IGNORE @ 0 => 12
-space_text : orig_line is 4, orig_col is 12, ')' type is FPAREN_CLOSE
-space_text : orig_line is 4, orig_col is 12, pc-text() ')', type is FPAREN_CLOSE
-do_space : orig_line is 4, orig_col is 12, first->text() ')', type is FPAREN_CLOSE
-do_space : first->orig_line is 4, first->orig_col is 12, first->text() is ')', [FPAREN_CLOSE/FUNC_CTOR_VAR] <===>
- second->orig_line is 4, second->orig_col is 13, second->text() is ',', [COMMA/NONE] : rule sp_before_comma[ ]
- rule = REMOVE @ 0 => 13
-space_text : orig_line is 4, orig_col is 13, ',' type is COMMA
-space_text : orig_line is 4, orig_col is 13, pc-text() ',', type is COMMA
-do_space : orig_line is 4, orig_col is 13, first->text() ',', type is COMMA
- rule = REMOVE @ 0 => 14
-space_text : orig_line is 4, orig_col is 14, <Newline>, nl is 1
-space_text : orig_line is 5, orig_col is 1, 'nTelIndex' type is FUNC_CTOR_VAR
-space_text : orig_line is 5, orig_col is 1, pc-text() 'nTelIndex', type is FUNC_CTOR_VAR
-do_space : orig_line is 5, orig_col is 1, first->text() 'nTelIndex', type is FUNC_CTOR_VAR
-do_space : first->orig_line is 5, first->orig_col is 1, first->text() is 'nTelIndex', [FUNC_CTOR_VAR/NONE] <===>
- second->orig_line is 5, second->orig_col is 10, second->text() is '(', [FPAREN_OPEN/FUNC_CTOR_VAR] : rule sp_func_call_paren[ ]
- rule = IGNORE @ 0 => 10
-space_text : orig_line is 5, orig_col is 10, '(' type is FPAREN_OPEN
-space_text : orig_line is 5, orig_col is 10, pc-text() '(', type is FPAREN_OPEN
-do_space : orig_line is 5, orig_col is 10, first->text() '(', type is FPAREN_OPEN
-do_space : first->orig_line is 5, first->orig_col is 10, first->text() is '(', [FPAREN_OPEN/FUNC_CTOR_VAR] <===>
- second->orig_line is 5, second->orig_col is 11, second->text() is 'n', [WORD/NONE] : rule sp_inside_fparen[ ]
- rule = IGNORE @ 0 => 11
-space_text : orig_line is 5, orig_col is 11, 'n' type is WORD
-space_text : orig_line is 5, orig_col is 11, pc-text() 'n', type is WORD
-do_space : orig_line is 5, orig_col is 11, first->text() 'n', type is WORD
-do_space : first->orig_line is 5, first->orig_col is 11, first->text() is 'n', [WORD/NONE] <===>
- second->orig_line is 5, second->orig_col is 12, second->text() is ')', [FPAREN_CLOSE/FUNC_CTOR_VAR] : rule sp_inside_fparen[ ]
- rule = IGNORE @ 0 => 12
-space_text : orig_line is 5, orig_col is 12, ')' type is FPAREN_CLOSE
-space_text : orig_line is 5, orig_col is 12, pc-text() ')', type is FPAREN_CLOSE
-do_space : orig_line is 5, orig_col is 12, first->text() ')', type is FPAREN_CLOSE
- rule = REMOVE @ 0 => 13
-space_text : orig_line is 5, orig_col is 13, <Newline>, nl is 1
-space_text : orig_line is 6, orig_col is 1, '{' type is BRACE_OPEN
-space_text : orig_line is 6, orig_col is 1, pc-text() '{', type is BRACE_OPEN
-do_space : orig_line is 6, orig_col is 1, first->text() '{', type is BRACE_OPEN
- rule = REMOVE @ 0 => 2
-space_text : orig_line is 6, orig_col is 2, <Newline>, nl is 1
-space_text : orig_line is 7, orig_col is 1, '}' type is BRACE_CLOSE
-space_text : orig_line is 7, orig_col is 1, pc-text() '}', type is BRACE_CLOSE
-do_space : orig_line is 7, orig_col is 1, first->text() '}', type is BRACE_CLOSE
- rule = REMOVE @ 0 => 2
-space_text : orig_line is 7, orig_col is 2, <Newline>, nl is 2
-space_text : orig_line is 9, orig_col is 1, '~' type is DESTRUCTOR
-space_text : orig_line is 9, orig_col is 1, pc-text() '~', type is DESTRUCTOR
-do_space : orig_line is 9, orig_col is 1, first->text() '~', type is DESTRUCTOR
-do_space : first->orig_line is 9, first->orig_col is 1, first->text() is '~', [DESTRUCTOR/FUNC_CLASS_DEF] <===>
- second->orig_line is 9, second->orig_col is 2, second->text() is 'TelegramIndex', [FUNC_CLASS_DEF/DESTRUCTOR] : rule REMOVE[ ]
- rule = REMOVE @ 0 => 2
-space_text : orig_line is 9, orig_col is 2, 'TelegramIndex' type is FUNC_CLASS_DEF
-space_text : orig_line is 9, orig_col is 2, pc-text() 'TelegramIndex', type is FUNC_CLASS_DEF
-do_space : orig_line is 9, orig_col is 2, first->text() 'TelegramIndex', type is FUNC_CLASS_DEF
-do_space : first->orig_line is 9, first->orig_col is 2, first->text() is 'TelegramIndex', [FUNC_CLASS_DEF/DESTRUCTOR] <===>
- second->orig_line is 9, second->orig_col is 15, second->text() is '(', [FPAREN_OPEN/FUNC_CLASS_DEF] : rule sp_func_class_paren[ ]
- rule = IGNORE @ 0 => 15
-space_text : orig_line is 9, orig_col is 15, '(' type is FPAREN_OPEN
-space_text : orig_line is 9, orig_col is 15, pc-text() '(', type is FPAREN_OPEN
-do_space : orig_line is 9, orig_col is 15, first->text() '(', type is FPAREN_OPEN
-do_space : first->orig_line is 9, first->orig_col is 15, first->text() is '(', [FPAREN_OPEN/FUNC_CLASS_DEF] <===>
- second->orig_line is 9, second->orig_col is 16, second->text() is ')', [FPAREN_CLOSE/FUNC_CLASS_DEF] : rule sp_inside_fparens[ ]
- rule = IGNORE @ 0 => 16
-space_text : orig_line is 9, orig_col is 16, ')' type is FPAREN_CLOSE
-space_text : orig_line is 9, orig_col is 16, pc-text() ')', type is FPAREN_CLOSE
-do_space : orig_line is 9, orig_col is 16, first->text() ')', type is FPAREN_CLOSE
- rule = REMOVE @ 0 => 17
-space_text : orig_line is 9, orig_col is 17, <Newline>, nl is 1
-space_text : orig_line is 10, orig_col is 1, '{' type is BRACE_OPEN
-space_text : orig_line is 10, orig_col is 1, pc-text() '{', type is BRACE_OPEN
-do_space : orig_line is 10, orig_col is 1, first->text() '{', type is BRACE_OPEN
- rule = REMOVE @ 0 => 2
-space_text : orig_line is 10, orig_col is 2, <Newline>, nl is 1
-space_text : orig_line is 11, orig_col is 1, '}' type is BRACE_CLOSE
-space_text : orig_line is 11, orig_col is 1, pc-text() '}', type is BRACE_CLOSE
-do_space : orig_line is 11, orig_col is 1, first->text() '}', type is BRACE_CLOSE
- rule = REMOVE @ 0 => 2
-space_text : orig_line is 11, orig_col is 2, <Newline>, nl is 2
-space_text : orig_line is 13, orig_col is 1, 'const' type is QUALIFIER
-space_text : back-to-back words need a space: pc->text() 'const', next->text() 'char'
-space_text : orig_line is 13, orig_col is 1, pc-text() 'const', type is QUALIFIER
-do_space : orig_line is 13, orig_col is 1, first->text() 'const', type is QUALIFIER
-do_space : first->orig_line is 13, first->orig_col is 1, first->text() is 'const', [QUALIFIER/NONE] <===>
- second->orig_line is 13, second->orig_col is 7, second->text() is 'char', [TYPE/NONE] : rule sp_after_type[ ]
-ensure_force_space : <force between 'const' and 'char'> rule = FORCE @ 1 => 7
-space_text : orig_line is 13, orig_col is 7, 'char' type is TYPE
-space_text : orig_line is 13, orig_col is 7, pc-text() 'char', type is TYPE
-do_space : orig_line is 13, orig_col is 7, first->text() 'char', type is TYPE
-do_space : first->orig_line is 13, first->orig_col is 7, first->text() is 'char', [TYPE/NONE] <===>
- second->orig_line is 13, second->orig_col is 11, second->text() is '*', [PTR_TYPE/NONE] : rule IGNORE[ ]
- rule = IGNORE @ 0 => 11
-space_text : orig_line is 13, orig_col is 11, '*' type is PTR_TYPE
-space_text : orig_line is 13, orig_col is 11, pc-text() '*', type is PTR_TYPE
-do_space : orig_line is 13, orig_col is 11, first->text() '*', type is PTR_TYPE
-do_space : first->orig_line is 13, first->orig_col is 11, first->text() is '*', [PTR_TYPE/NONE] <===>
- second->orig_line is 13, second->orig_col is 13, second->text() is 'const', [QUALIFIER/NONE] : rule sp_after_ptr_star_qualifier[ ]
- rule = IGNORE @ 1 => 13
-space_text : orig_line is 13, orig_col is 13, 'const' type is QUALIFIER
-space_text : back-to-back words need a space: pc->text() 'const', next->text() 'pTelName'
-space_text : orig_line is 13, orig_col is 13, pc-text() 'const', type is QUALIFIER
-do_space : orig_line is 13, orig_col is 13, first->text() 'const', type is QUALIFIER
-do_space : first->orig_line is 13, first->orig_col is 13, first->text() is 'const', [QUALIFIER/NONE] <===>
- second->orig_line is 13, second->orig_col is 19, second->text() is 'pTelName', [WORD/NONE] : rule sp_after_type[ ]
-ensure_force_space : <force between 'const' and 'pTelName'> rule = FORCE @ 1 => 19
-space_text : orig_line is 13, orig_col is 19, 'pTelName' type is WORD
-space_text : orig_line is 13, orig_col is 19, pc-text() 'pTelName', type is WORD
-do_space : orig_line is 13, orig_col is 19, first->text() 'pTelName', type is WORD
-do_space : first->orig_line is 13, first->orig_col is 19, first->text() is 'pTelName', [WORD/NONE] <===>
- second->orig_line is 13, second->orig_col is 27, second->text() is ';', [SEMICOLON/NONE] : rule sp_before_semi[ ]
- rule = REMOVE @ 0 => 27
-space_text : orig_line is 13, orig_col is 27, ';' type is SEMICOLON
-space_text : orig_line is 13, orig_col is 27, pc-text() ';', type is SEMICOLON
-do_space : orig_line is 13, orig_col is 27, first->text() ';', type is SEMICOLON
- rule = REMOVE @ 0 => 28
-space_text : orig_line is 13, orig_col is 28, <Newline>, nl is 1
-space_text : orig_line is 14, orig_col is 1, 'unsigned' type is TYPE
-space_text : back-to-back words need a space: pc->text() 'unsigned', next->text() 'long'
-space_text : orig_line is 14, orig_col is 1, pc-text() 'unsigned', type is TYPE
-do_space : orig_line is 14, orig_col is 1, first->text() 'unsigned', type is TYPE
-do_space : first->orig_line is 14, first->orig_col is 1, first->text() is 'unsigned', [TYPE/NONE] <===>
- second->orig_line is 14, second->orig_col is 10, second->text() is 'long', [TYPE/NONE] : rule sp_after_type[ ]
-ensure_force_space : <force between 'unsigned' and 'long'> rule = FORCE @ 1 => 10
-space_text : orig_line is 14, orig_col is 10, 'long' type is TYPE
-space_text : back-to-back words need a space: pc->text() 'long', next->text() 'nTelIndex'
-space_text : orig_line is 14, orig_col is 10, pc-text() 'long', type is TYPE
-do_space : orig_line is 14, orig_col is 10, first->text() 'long', type is TYPE
-do_space : first->orig_line is 14, first->orig_col is 10, first->text() is 'long', [TYPE/NONE] <===>
- second->orig_line is 14, second->orig_col is 15, second->text() is 'nTelIndex', [WORD/NONE] : rule sp_after_type[ ]
-ensure_force_space : <force between 'long' and 'nTelIndex'> rule = FORCE @ 1 => 15
-space_text : orig_line is 14, orig_col is 15, 'nTelIndex' type is WORD
-space_text : orig_line is 14, orig_col is 15, pc-text() 'nTelIndex', type is WORD
-do_space : orig_line is 14, orig_col is 15, first->text() 'nTelIndex', type is WORD
-do_space : first->orig_line is 14, first->orig_col is 15, first->text() is 'nTelIndex', [WORD/NONE] <===>
- second->orig_line is 14, second->orig_col is 24, second->text() is ';', [SEMICOLON/NONE] : rule sp_before_semi[ ]
- rule = REMOVE @ 0 => 24
-space_text : orig_line is 14, orig_col is 24, ';' type is SEMICOLON
-space_text : orig_line is 14, orig_col is 24, pc-text() ';', type is SEMICOLON
-do_space : orig_line is 14, orig_col is 24, first->text() ';', type is SEMICOLON
- rule = REMOVE @ 0 => 25
-space_text : orig_line is 14, orig_col is 25, <Newline>, nl is 1
-space_text : orig_line is 15, orig_col is 1, '}' type is BRACE_CLOSE
-space_text : orig_line is 15, orig_col is 1, pc-text() '}', type is BRACE_CLOSE
-do_space : orig_line is 15, orig_col is 1, first->text() '}', type is BRACE_CLOSE
-do_space : first->orig_line is 15, first->orig_col is 1, first->text() is '}', [BRACE_CLOSE/STRUCT] <===>
- second->orig_line is 15, second->orig_col is 2, second->text() is ';', [SEMICOLON/STRUCT] : rule sp_before_semi[ ]
- rule = REMOVE @ 0 => 2
-space_text : orig_line is 15, orig_col is 2, ';' type is SEMICOLON
-space_text : orig_line is 15, orig_col is 2, pc-text() ';', type is SEMICOLON
-do_space : orig_line is 15, orig_col is 2, first->text() ';', type is SEMICOLON
- rule = REMOVE @ 0 => 3
-space_text : orig_line is 15, orig_col is 3, <Newline>, nl is 2
-space_col_align : first->orig_line is 3, orig_col is 1, [FUNC_CLASS_DEF/NONE], text() 'TelegramIndex' <==>
-space_col_align : second->orig_line is 3, orig_col is 14 [FPAREN_OPEN/FUNC_CLASS_DEF], text() '(', [CallStack]
-do_space : orig_line is 3, orig_col is 1, first->text() 'TelegramIndex', type is FUNC_CLASS_DEF
-do_space : first->orig_line is 3, first->orig_col is 1, first->text() is 'TelegramIndex', [FUNC_CLASS_DEF/NONE] <===>
- second->orig_line is 3, second->orig_col is 14, second->text() is '(', [FPAREN_OPEN/FUNC_CLASS_DEF] : rule sp_func_class_paren[ ]
-space_col_align : av is ignore
-space_col_align : len is 13
-space_col_align : => coldiff is 13
-space_col_align : => av is IGNORE
-space_col_align : => first->orig_line is 3
-space_col_align : => second->orig_line is 3
-space_col_align : => first->text() is 'TelegramIndex'
-space_col_align : => second->text() is '('
-space_col_align : => first->orig_col is 1
-space_col_align : => second->orig_col is 14
-space_col_align : => first->len() is 13
-space_col_align : => coldiff is 13
-space_col_align : first->orig_line is 3, orig_col is 14, [FPAREN_OPEN/FUNC_CLASS_DEF], text() '(' <==>
-space_col_align : second->orig_line is 3, orig_col is 15 [QUALIFIER/NONE], text() 'const', [CallStack]
-do_space : orig_line is 3, orig_col is 14, first->text() '(', type is FPAREN_OPEN
-do_space : first->orig_line is 3, first->orig_col is 14, first->text() is '(', [FPAREN_OPEN/FUNC_CLASS_DEF] <===>
- second->orig_line is 3, second->orig_col is 15, second->text() is 'const', [QUALIFIER/NONE] : rule sp_inside_fparen[ ]
-space_col_align : av is ignore
-space_col_align : len is 1
-space_col_align : => coldiff is 1
-space_col_align : => av is IGNORE
-space_col_align : => first->orig_line is 3
-space_col_align : => second->orig_line is 3
-space_col_align : => first->text() is '('
-space_col_align : => second->text() is 'const'
-space_col_align : => first->orig_col is 14
-space_col_align : => second->orig_col is 15
-space_col_align : => first->len() is 1
-space_col_align : => coldiff is 1
-space_col_align : first->orig_line is 3, orig_col is 15, [QUALIFIER/NONE], text() 'const' <==>
-space_col_align : second->orig_line is 3, orig_col is 21 [TYPE/NONE], text() 'char', [CallStack]
-do_space : orig_line is 3, orig_col is 15, first->text() 'const', type is QUALIFIER
-do_space : first->orig_line is 3, first->orig_col is 15, first->text() is 'const', [QUALIFIER/NONE] <===>
- second->orig_line is 3, second->orig_col is 21, second->text() is 'char', [TYPE/NONE] : rule sp_after_type[ ]
-ensure_force_space : <force between 'const' and 'char'>space_col_align : av is force
-space_col_align : len is 5
-space_col_align : => coldiff is 5
-space_col_align : => av is FORCE
-space_col_align : => coldiff is 6
-space_col_align : first->orig_line is 3, orig_col is 21, [TYPE/NONE], text() 'char' <==>
-space_col_align : second->orig_line is 3, orig_col is 25 [PTR_TYPE/NONE], text() '*', [CallStack]
-do_space : orig_line is 3, orig_col is 21, first->text() 'char', type is TYPE
-do_space : first->orig_line is 3, first->orig_col is 21, first->text() is 'char', [TYPE/NONE] <===>
- second->orig_line is 3, second->orig_col is 25, second->text() is '*', [PTR_TYPE/NONE] : rule IGNORE[ ]
-space_col_align : av is ignore
-space_col_align : len is 4
-space_col_align : => coldiff is 4
-space_col_align : => av is IGNORE
-space_col_align : => first->orig_line is 3
-space_col_align : => second->orig_line is 3
-space_col_align : => first->text() is 'char'
-space_col_align : => second->text() is '*'
-space_col_align : => first->orig_col is 21
-space_col_align : => second->orig_col is 25
-space_col_align : => first->len() is 4
-space_col_align : => coldiff is 4
-space_col_align : first->orig_line is 3, orig_col is 25, [PTR_TYPE/NONE], text() '*' <==>
-space_col_align : second->orig_line is 3, orig_col is 27 [WORD/NONE], text() 'pN', [CallStack]
-do_space : orig_line is 3, orig_col is 25, first->text() '*', type is PTR_TYPE
-do_space : first->orig_line is 3, first->orig_col is 25, first->text() is '*', [PTR_TYPE/NONE] <===>
- second->orig_line is 3, second->orig_col is 27, second->text() is 'pN', [WORD/NONE] : rule sp_after_ptr_star[ ]
-space_col_align : av is ignore
-space_col_align : len is 1
-space_col_align : => coldiff is 1
-space_col_align : => av is IGNORE
-space_col_align : => first->orig_line is 3
-space_col_align : => second->orig_line is 3
-space_col_align : => first->text() is '*'
-space_col_align : => second->text() is 'pN'
-space_col_align : => first->orig_col is 25
-space_col_align : => second->orig_col is 27
-space_col_align : => first->len() is 1
-space_col_align : => coldiff is 2
-space_col_align : first->orig_line is 3, orig_col is 27, [WORD/NONE], text() 'pN' <==>
-space_col_align : second->orig_line is 3, orig_col is 29 [COMMA/NONE], text() ',', [CallStack]
-do_space : orig_line is 3, orig_col is 27, first->text() 'pN', type is WORD
-do_space : first->orig_line is 3, first->orig_col is 27, first->text() is 'pN', [WORD/NONE] <===>
- second->orig_line is 3, second->orig_col is 29, second->text() is ',', [COMMA/NONE] : rule sp_before_comma[ ]
-space_col_align : av is remove
-space_col_align : len is 2
-space_col_align : => coldiff is 2
-space_col_align : => av is REMOVE
-space_col_align : => coldiff is 2
-space_col_align : first->orig_line is 3, orig_col is 29, [COMMA/NONE], text() ',' <==>
-space_col_align : second->orig_line is 3, orig_col is 31 [TYPE/NONE], text() 'unsigned', [CallStack]
-do_space : orig_line is 3, orig_col is 29, first->text() ',', type is COMMA
-do_space : first->orig_line is 3, first->orig_col is 29, first->text() is ',', [COMMA/NONE] <===>
- second->orig_line is 3, second->orig_col is 31, second->text() is 'unsigned', [TYPE/NONE] : rule sp_after_comma[ ]
-space_col_align : av is ignore
-space_col_align : len is 1
-space_col_align : => coldiff is 1
-space_col_align : => av is IGNORE
-space_col_align : => first->orig_line is 3
-space_col_align : => second->orig_line is 3
-space_col_align : => first->text() is ','
-space_col_align : => second->text() is 'unsigned'
-space_col_align : => first->orig_col is 29
-space_col_align : => second->orig_col is 31
-space_col_align : => first->len() is 1
-space_col_align : => coldiff is 2
-space_col_align : first->orig_line is 3, orig_col is 31, [TYPE/NONE], text() 'unsigned' <==>
-space_col_align : second->orig_line is 3, orig_col is 40 [TYPE/NONE], text() 'long', [CallStack]
-do_space : orig_line is 3, orig_col is 31, first->text() 'unsigned', type is TYPE
-do_space : first->orig_line is 3, first->orig_col is 31, first->text() is 'unsigned', [TYPE/NONE] <===>
- second->orig_line is 3, second->orig_col is 40, second->text() is 'long', [TYPE/NONE] : rule sp_after_type[ ]
-ensure_force_space : <force between 'unsigned' and 'long'>space_col_align : av is force
-space_col_align : len is 8
-space_col_align : => coldiff is 8
-space_col_align : => av is FORCE
-space_col_align : => coldiff is 9
-space_col_align : first->orig_line is 3, orig_col is 40, [TYPE/NONE], text() 'long' <==>
-space_col_align : second->orig_line is 3, orig_col is 45 [WORD/NONE], text() 'nI', [CallStack]
-do_space : orig_line is 3, orig_col is 40, first->text() 'long', type is TYPE
-do_space : first->orig_line is 3, first->orig_col is 40, first->text() is 'long', [TYPE/NONE] <===>
- second->orig_line is 3, second->orig_col is 45, second->text() is 'nI', [WORD/NONE] : rule sp_after_type[ ]
-ensure_force_space : <force between 'long' and 'nI'>space_col_align : av is force
-space_col_align : len is 4
-space_col_align : => coldiff is 4
-space_col_align : => av is FORCE
-space_col_align : => coldiff is 5
-space_col_align : first->orig_line is 3, orig_col is 45, [WORD/NONE], text() 'nI' <==>
-space_col_align : second->orig_line is 3, orig_col is 47 [FPAREN_CLOSE/FUNC_CLASS_DEF], text() ')', [CallStack]
-do_space : orig_line is 3, orig_col is 45, first->text() 'nI', type is WORD
-do_space : first->orig_line is 3, first->orig_col is 45, first->text() is 'nI', [WORD/NONE] <===>
- second->orig_line is 3, second->orig_col is 47, second->text() is ')', [FPAREN_CLOSE/FUNC_CLASS_DEF] : rule sp_inside_fparen[ ]
-space_col_align : av is ignore
-space_col_align : len is 2
-space_col_align : => coldiff is 2
-space_col_align : => av is IGNORE
-space_col_align : => first->orig_line is 3
-space_col_align : => second->orig_line is 3
-space_col_align : => first->text() is 'nI'
-space_col_align : => second->text() is ')'
-space_col_align : => first->orig_col is 45
-space_col_align : => second->orig_col is 47
-space_col_align : => first->len() is 2
-space_col_align : => coldiff is 2
-space_col_align : first->orig_line is 3, orig_col is 47, [FPAREN_CLOSE/FUNC_CLASS_DEF], text() ')' <==>
-space_col_align : second->orig_line is 3, orig_col is 49 [CONSTR_COLON/NONE], text() ':', [CallStack]
-do_space : orig_line is 3, orig_col is 47, first->text() ')', type is FPAREN_CLOSE
-do_space : first->orig_line is 3, first->orig_col is 47, first->text() is ')', [FPAREN_CLOSE/FUNC_CLASS_DEF] <===>
- second->orig_line is 3, second->orig_col is 49, second->text() is ':', [CONSTR_COLON/NONE] : rule sp_before_constr_colon[ ]
-space_col_align : av is add
-space_col_align : len is 1
-space_col_align : => coldiff is 1
-space_col_align : => av is ADD
-space_col_align : => coldiff is 2
-space_col_align : first->orig_line is 3, orig_col is 49, [CONSTR_COLON/NONE], text() ':' <==>
-space_col_align : second->orig_line is 3, orig_col is 50 [NEWLINE/NONE], text() '', [CallStack]
-do_space : orig_line is 3, orig_col is 49, first->text() ':', type is CONSTR_COLON
-space_col_align : av is remove
-space_col_align : len is 1
-space_col_align : => coldiff is 1
-space_col_align : => av is REMOVE
-space_col_align : => coldiff is 1
-space_col_align : first->orig_line is 4, orig_col is 1, [FUNC_CTOR_VAR/NONE], text() 'pTelName' <==>
-space_col_align : second->orig_line is 4, orig_col is 9 [FPAREN_OPEN/FUNC_CTOR_VAR], text() '(', [CallStack]
-do_space : orig_line is 4, orig_col is 1, first->text() 'pTelName', type is FUNC_CTOR_VAR
-do_space : first->orig_line is 4, first->orig_col is 1, first->text() is 'pTelName', [FUNC_CTOR_VAR/NONE] <===>
- second->orig_line is 4, second->orig_col is 9, second->text() is '(', [FPAREN_OPEN/FUNC_CTOR_VAR] : rule sp_func_call_paren[ ]
-space_col_align : av is ignore
-space_col_align : len is 8
-space_col_align : => coldiff is 8
-space_col_align : => av is IGNORE
-space_col_align : => first->orig_line is 4
-space_col_align : => second->orig_line is 4
-space_col_align : => first->text() is 'pTelName'
-space_col_align : => second->text() is '('
-space_col_align : => first->orig_col is 1
-space_col_align : => second->orig_col is 9
-space_col_align : => first->len() is 8
-space_col_align : => coldiff is 8
-space_col_align : first->orig_line is 4, orig_col is 9, [FPAREN_OPEN/FUNC_CTOR_VAR], text() '(' <==>
-space_col_align : second->orig_line is 4, orig_col is 10 [WORD/NONE], text() 'pN', [CallStack]
-do_space : orig_line is 4, orig_col is 9, first->text() '(', type is FPAREN_OPEN
-do_space : first->orig_line is 4, first->orig_col is 9, first->text() is '(', [FPAREN_OPEN/FUNC_CTOR_VAR] <===>
- second->orig_line is 4, second->orig_col is 10, second->text() is 'pN', [WORD/NONE] : rule sp_inside_fparen[ ]
-space_col_align : av is ignore
-space_col_align : len is 1
-space_col_align : => coldiff is 1
-space_col_align : => av is IGNORE
-space_col_align : => first->orig_line is 4
-space_col_align : => second->orig_line is 4
-space_col_align : => first->text() is '('
-space_col_align : => second->text() is 'pN'
-space_col_align : => first->orig_col is 9
-space_col_align : => second->orig_col is 10
-space_col_align : => first->len() is 1
-space_col_align : => coldiff is 1
-space_col_align : first->orig_line is 4, orig_col is 10, [WORD/NONE], text() 'pN' <==>
-space_col_align : second->orig_line is 4, orig_col is 12 [FPAREN_CLOSE/FUNC_CTOR_VAR], text() ')', [CallStack]
-do_space : orig_line is 4, orig_col is 10, first->text() 'pN', type is WORD
-do_space : first->orig_line is 4, first->orig_col is 10, first->text() is 'pN', [WORD/NONE] <===>
- second->orig_line is 4, second->orig_col is 12, second->text() is ')', [FPAREN_CLOSE/FUNC_CTOR_VAR] : rule sp_inside_fparen[ ]
-space_col_align : av is ignore
-space_col_align : len is 2
-space_col_align : => coldiff is 2
-space_col_align : => av is IGNORE
-space_col_align : => first->orig_line is 4
-space_col_align : => second->orig_line is 4
-space_col_align : => first->text() is 'pN'
-space_col_align : => second->text() is ')'
-space_col_align : => first->orig_col is 10
-space_col_align : => second->orig_col is 12
-space_col_align : => first->len() is 2
-space_col_align : => coldiff is 2
-space_col_align : first->orig_line is 4, orig_col is 12, [FPAREN_CLOSE/FUNC_CTOR_VAR], text() ')' <==>
-space_col_align : second->orig_line is 4, orig_col is 13 [COMMA/NONE], text() ',', [CallStack]
-do_space : orig_line is 4, orig_col is 12, first->text() ')', type is FPAREN_CLOSE
-do_space : first->orig_line is 4, first->orig_col is 12, first->text() is ')', [FPAREN_CLOSE/FUNC_CTOR_VAR] <===>
- second->orig_line is 4, second->orig_col is 13, second->text() is ',', [COMMA/NONE] : rule sp_before_comma[ ]
-space_col_align : av is remove
-space_col_align : len is 1
-space_col_align : => coldiff is 1
-space_col_align : => av is REMOVE
-space_col_align : => coldiff is 1
-space_col_align : first->orig_line is 4, orig_col is 13, [COMMA/NONE], text() ',' <==>
-space_col_align : second->orig_line is 4, orig_col is 14 [NEWLINE/NONE], text() '', [CallStack]
-do_space : orig_line is 4, orig_col is 13, first->text() ',', type is COMMA
-space_col_align : av is remove
-space_col_align : len is 1
-space_col_align : => coldiff is 1
-space_col_align : => av is REMOVE
-space_col_align : => coldiff is 1
-space_col_align : first->orig_line is 5, orig_col is 1, [FUNC_CTOR_VAR/NONE], text() 'nTelIndex' <==>
-space_col_align : second->orig_line is 5, orig_col is 10 [FPAREN_OPEN/FUNC_CTOR_VAR], text() '(', [CallStack]
-do_space : orig_line is 5, orig_col is 1, first->text() 'nTelIndex', type is FUNC_CTOR_VAR
-do_space : first->orig_line is 5, first->orig_col is 1, first->text() is 'nTelIndex', [FUNC_CTOR_VAR/NONE] <===>
- second->orig_line is 5, second->orig_col is 10, second->text() is '(', [FPAREN_OPEN/FUNC_CTOR_VAR] : rule sp_func_call_paren[ ]
-space_col_align : av is ignore
-space_col_align : len is 9
-space_col_align : => coldiff is 9
-space_col_align : => av is IGNORE
-space_col_align : => first->orig_line is 5
-space_col_align : => second->orig_line is 5
-space_col_align : => first->text() is 'nTelIndex'
-space_col_align : => second->text() is '('
-space_col_align : => first->orig_col is 1
-space_col_align : => second->orig_col is 10
-space_col_align : => first->len() is 9
-space_col_align : => coldiff is 9
-space_col_align : first->orig_line is 5, orig_col is 10, [FPAREN_OPEN/FUNC_CTOR_VAR], text() '(' <==>
-space_col_align : second->orig_line is 5, orig_col is 11 [WORD/NONE], text() 'n', [CallStack]
-do_space : orig_line is 5, orig_col is 10, first->text() '(', type is FPAREN_OPEN
-do_space : first->orig_line is 5, first->orig_col is 10, first->text() is '(', [FPAREN_OPEN/FUNC_CTOR_VAR] <===>
- second->orig_line is 5, second->orig_col is 11, second->text() is 'n', [WORD/NONE] : rule sp_inside_fparen[ ]
-space_col_align : av is ignore
-space_col_align : len is 1
-space_col_align : => coldiff is 1
-space_col_align : => av is IGNORE
-space_col_align : => first->orig_line is 5
-space_col_align : => second->orig_line is 5
-space_col_align : => first->text() is '('
-space_col_align : => second->text() is 'n'
-space_col_align : => first->orig_col is 10
-space_col_align : => second->orig_col is 11
-space_col_align : => first->len() is 1
-space_col_align : => coldiff is 1
-space_col_align : first->orig_line is 5, orig_col is 11, [WORD/NONE], text() 'n' <==>
-space_col_align : second->orig_line is 5, orig_col is 12 [FPAREN_CLOSE/FUNC_CTOR_VAR], text() ')', [CallStack]
-do_space : orig_line is 5, orig_col is 11, first->text() 'n', type is WORD
-do_space : first->orig_line is 5, first->orig_col is 11, first->text() is 'n', [WORD/NONE] <===>
- second->orig_line is 5, second->orig_col is 12, second->text() is ')', [FPAREN_CLOSE/FUNC_CTOR_VAR] : rule sp_inside_fparen[ ]
-space_col_align : av is ignore
-space_col_align : len is 1
-space_col_align : => coldiff is 1
-space_col_align : => av is IGNORE
-space_col_align : => first->orig_line is 5
-space_col_align : => second->orig_line is 5
-space_col_align : => first->text() is 'n'
-space_col_align : => second->text() is ')'
-space_col_align : => first->orig_col is 11
-space_col_align : => second->orig_col is 12
-space_col_align : => first->len() is 1
-space_col_align : => coldiff is 1
-space_col_align : first->orig_line is 5, orig_col is 12, [FPAREN_CLOSE/FUNC_CTOR_VAR], text() ')' <==>
-space_col_align : second->orig_line is 5, orig_col is 13 [NEWLINE/NONE], text() '', [CallStack]
-do_space : orig_line is 5, orig_col is 12, first->text() ')', type is FPAREN_CLOSE
-space_col_align : av is remove
-space_col_align : len is 1
-space_col_align : => coldiff is 1
-space_col_align : => av is REMOVE
-space_col_align : => coldiff is 1
-space_col_align : first->orig_line is 6, orig_col is 1, [BRACE_OPEN/FUNC_CLASS_DEF], text() '{' <==>
-space_col_align : second->orig_line is 6, orig_col is 2 [NEWLINE/NONE], text() '', [CallStack]
-do_space : orig_line is 6, orig_col is 1, first->text() '{', type is BRACE_OPEN
-space_col_align : av is remove
-space_col_align : len is 1
-space_col_align : => coldiff is 1
-space_col_align : => av is REMOVE
-space_col_align : => coldiff is 1
-space_col_align : first->orig_line is 7, orig_col is 1, [BRACE_CLOSE/FUNC_CLASS_DEF], text() '}' <==>
-space_col_align : second->orig_line is 7, orig_col is 2 [NEWLINE/NONE], text() '', [CallStack]
-do_space : orig_line is 7, orig_col is 1, first->text() '}', type is BRACE_CLOSE
-space_col_align : av is remove
-space_col_align : len is 1
-space_col_align : => coldiff is 1
-space_col_align : => av is REMOVE
-space_col_align : => coldiff is 1
-space_col_align : first->orig_line is 9, orig_col is 1, [DESTRUCTOR/FUNC_CLASS_DEF], text() '~' <==>
-space_col_align : second->orig_line is 9, orig_col is 2 [FUNC_CLASS_DEF/DESTRUCTOR], text() 'TelegramIndex', [CallStack]
-do_space : orig_line is 9, orig_col is 1, first->text() '~', type is DESTRUCTOR
-do_space : first->orig_line is 9, first->orig_col is 1, first->text() is '~', [DESTRUCTOR/FUNC_CLASS_DEF] <===>
- second->orig_line is 9, second->orig_col is 2, second->text() is 'TelegramIndex', [FUNC_CLASS_DEF/DESTRUCTOR] : rule REMOVE[ ]
-space_col_align : av is remove
-space_col_align : len is 1
-space_col_align : => coldiff is 1
-space_col_align : => av is REMOVE
-space_col_align : => coldiff is 1
-space_col_align : first->orig_line is 9, orig_col is 2, [FUNC_CLASS_DEF/DESTRUCTOR], text() 'TelegramIndex' <==>
-space_col_align : second->orig_line is 9, orig_col is 15 [FPAREN_OPEN/FUNC_CLASS_DEF], text() '(', [CallStack]
-do_space : orig_line is 9, orig_col is 2, first->text() 'TelegramIndex', type is FUNC_CLASS_DEF
-do_space : first->orig_line is 9, first->orig_col is 2, first->text() is 'TelegramIndex', [FUNC_CLASS_DEF/DESTRUCTOR] <===>
- second->orig_line is 9, second->orig_col is 15, second->text() is '(', [FPAREN_OPEN/FUNC_CLASS_DEF] : rule sp_func_class_paren[ ]
-space_col_align : av is ignore
-space_col_align : len is 13
-space_col_align : => coldiff is 13
-space_col_align : => av is IGNORE
-space_col_align : => first->orig_line is 9
-space_col_align : => second->orig_line is 9
-space_col_align : => first->text() is 'TelegramIndex'
-space_col_align : => second->text() is '('
-space_col_align : => first->orig_col is 2
-space_col_align : => second->orig_col is 15
-space_col_align : => first->len() is 13
-space_col_align : => coldiff is 13
-space_col_align : first->orig_line is 9, orig_col is 15, [FPAREN_OPEN/FUNC_CLASS_DEF], text() '(' <==>
-space_col_align : second->orig_line is 9, orig_col is 16 [FPAREN_CLOSE/FUNC_CLASS_DEF], text() ')', [CallStack]
-do_space : orig_line is 9, orig_col is 15, first->text() '(', type is FPAREN_OPEN
-do_space : first->orig_line is 9, first->orig_col is 15, first->text() is '(', [FPAREN_OPEN/FUNC_CLASS_DEF] <===>
- second->orig_line is 9, second->orig_col is 16, second->text() is ')', [FPAREN_CLOSE/FUNC_CLASS_DEF] : rule sp_inside_fparens[ ]
-space_col_align : av is ignore
-space_col_align : len is 1
-space_col_align : => coldiff is 1
-space_col_align : => av is IGNORE
-space_col_align : => first->orig_line is 9
-space_col_align : => second->orig_line is 9
-space_col_align : => first->text() is '('
-space_col_align : => second->text() is ')'
-space_col_align : => first->orig_col is 15
-space_col_align : => second->orig_col is 16
-space_col_align : => first->len() is 1
-space_col_align : => coldiff is 1
-space_col_align : first->orig_line is 9, orig_col is 16, [FPAREN_CLOSE/FUNC_CLASS_DEF], text() ')' <==>
-space_col_align : second->orig_line is 9, orig_col is 17 [NEWLINE/NONE], text() '', [CallStack]
-do_space : orig_line is 9, orig_col is 16, first->text() ')', type is FPAREN_CLOSE
-space_col_align : av is remove
-space_col_align : len is 1
-space_col_align : => coldiff is 1
-space_col_align : => av is REMOVE
-space_col_align : => coldiff is 1
-space_col_align : first->orig_line is 10, orig_col is 1, [BRACE_OPEN/FUNC_CLASS_DEF], text() '{' <==>
-space_col_align : second->orig_line is 10, orig_col is 2 [NEWLINE/NONE], text() '', [CallStack]
-do_space : orig_line is 10, orig_col is 1, first->text() '{', type is BRACE_OPEN
-space_col_align : av is remove
-space_col_align : len is 1
-space_col_align : => coldiff is 1
-space_col_align : => av is REMOVE
-space_col_align : => coldiff is 1
-space_col_align : first->orig_line is 11, orig_col is 1, [BRACE_CLOSE/FUNC_CLASS_DEF], text() '}' <==>
-space_col_align : second->orig_line is 11, orig_col is 2 [NEWLINE/NONE], text() '', [CallStack]
-do_space : orig_line is 11, orig_col is 1, first->text() '}', type is BRACE_CLOSE
-space_col_align : av is remove
-space_col_align : len is 1
-space_col_align : => coldiff is 1
-space_col_align : => av is REMOVE
-space_col_align : => coldiff is 1
-space_col_align : first->orig_line is 13, orig_col is 1, [QUALIFIER/NONE], text() 'const' <==>
-space_col_align : second->orig_line is 13, orig_col is 7 [TYPE/NONE], text() 'char', [CallStack]
-do_space : orig_line is 13, orig_col is 1, first->text() 'const', type is QUALIFIER
-do_space : first->orig_line is 13, first->orig_col is 1, first->text() is 'const', [QUALIFIER/NONE] <===>
- second->orig_line is 13, second->orig_col is 7, second->text() is 'char', [TYPE/NONE] : rule sp_after_type[ ]
-ensure_force_space : <force between 'const' and 'char'>space_col_align : av is force
-space_col_align : len is 5
-space_col_align : => coldiff is 5
-space_col_align : => av is FORCE
-space_col_align : => coldiff is 6
-space_col_align : first->orig_line is 13, orig_col is 7, [TYPE/NONE], text() 'char' <==>
-space_col_align : second->orig_line is 13, orig_col is 11 [PTR_TYPE/NONE], text() '*', [CallStack]
-do_space : orig_line is 13, orig_col is 7, first->text() 'char', type is TYPE
-do_space : first->orig_line is 13, first->orig_col is 7, first->text() is 'char', [TYPE/NONE] <===>
- second->orig_line is 13, second->orig_col is 11, second->text() is '*', [PTR_TYPE/NONE] : rule IGNORE[ ]
-space_col_align : av is ignore
-space_col_align : len is 4
-space_col_align : => coldiff is 4
-space_col_align : => av is IGNORE
-space_col_align : => first->orig_line is 13
-space_col_align : => second->orig_line is 13
-space_col_align : => first->text() is 'char'
-space_col_align : => second->text() is '*'
-space_col_align : => first->orig_col is 7
-space_col_align : => second->orig_col is 11
-space_col_align : => first->len() is 4
-space_col_align : => coldiff is 4
-space_col_align : first->orig_line is 13, orig_col is 11, [PTR_TYPE/NONE], text() '*' <==>
-space_col_align : second->orig_line is 13, orig_col is 13 [QUALIFIER/NONE], text() 'const', [CallStack]
-do_space : orig_line is 13, orig_col is 11, first->text() '*', type is PTR_TYPE
-do_space : first->orig_line is 13, first->orig_col is 11, first->text() is '*', [PTR_TYPE/NONE] <===>
- second->orig_line is 13, second->orig_col is 13, second->text() is 'const', [QUALIFIER/NONE] : rule sp_after_ptr_star_qualifier[ ]
-space_col_align : av is ignore
-space_col_align : len is 1
-space_col_align : => coldiff is 1
-space_col_align : => av is IGNORE
-space_col_align : => first->orig_line is 13
-space_col_align : => second->orig_line is 13
-space_col_align : => first->text() is '*'
-space_col_align : => second->text() is 'const'
-space_col_align : => first->orig_col is 11
-space_col_align : => second->orig_col is 13
-space_col_align : => first->len() is 1
-space_col_align : => coldiff is 2
-space_col_align : first->orig_line is 13, orig_col is 13, [QUALIFIER/NONE], text() 'const' <==>
-space_col_align : second->orig_line is 13, orig_col is 19 [WORD/NONE], text() 'pTelName', [CallStack]
-do_space : orig_line is 13, orig_col is 13, first->text() 'const', type is QUALIFIER
-do_space : first->orig_line is 13, first->orig_col is 13, first->text() is 'const', [QUALIFIER/NONE] <===>
- second->orig_line is 13, second->orig_col is 19, second->text() is 'pTelName', [WORD/NONE] : rule sp_after_type[ ]
-ensure_force_space : <force between 'const' and 'pTelName'>space_col_align : av is force
-space_col_align : len is 5
-space_col_align : => coldiff is 5
-space_col_align : => av is FORCE
-space_col_align : => coldiff is 6
-space_col_align : first->orig_line is 13, orig_col is 19, [WORD/NONE], text() 'pTelName' <==>
-space_col_align : second->orig_line is 13, orig_col is 27 [SEMICOLON/NONE], text() ';', [CallStack]
-do_space : orig_line is 13, orig_col is 19, first->text() 'pTelName', type is WORD
-do_space : first->orig_line is 13, first->orig_col is 19, first->text() is 'pTelName', [WORD/NONE] <===>
- second->orig_line is 13, second->orig_col is 27, second->text() is ';', [SEMICOLON/NONE] : rule sp_before_semi[ ]
-space_col_align : av is remove
-space_col_align : len is 8
-space_col_align : => coldiff is 8
-space_col_align : => av is REMOVE
-space_col_align : => coldiff is 8
-space_col_align : first->orig_line is 13, orig_col is 27, [SEMICOLON/NONE], text() ';' <==>
-space_col_align : second->orig_line is 13, orig_col is 28 [NEWLINE/NONE], text() '', [CallStack]
-do_space : orig_line is 13, orig_col is 27, first->text() ';', type is SEMICOLON
-space_col_align : av is remove
-space_col_align : len is 1
-space_col_align : => coldiff is 1
-space_col_align : => av is REMOVE
-space_col_align : => coldiff is 1
-space_col_align : first->orig_line is 14, orig_col is 1, [TYPE/NONE], text() 'unsigned' <==>
-space_col_align : second->orig_line is 14, orig_col is 10 [TYPE/NONE], text() 'long', [CallStack]
-do_space : orig_line is 14, orig_col is 1, first->text() 'unsigned', type is TYPE
-do_space : first->orig_line is 14, first->orig_col is 1, first->text() is 'unsigned', [TYPE/NONE] <===>
- second->orig_line is 14, second->orig_col is 10, second->text() is 'long', [TYPE/NONE] : rule sp_after_type[ ]
-ensure_force_space : <force between 'unsigned' and 'long'>space_col_align : av is force
-space_col_align : len is 8
-space_col_align : => coldiff is 8
-space_col_align : => av is FORCE
-space_col_align : => coldiff is 9
-space_col_align : first->orig_line is 14, orig_col is 10, [TYPE/NONE], text() 'long' <==>
-space_col_align : second->orig_line is 14, orig_col is 15 [WORD/NONE], text() 'nTelIndex', [CallStack]
-do_space : orig_line is 14, orig_col is 10, first->text() 'long', type is TYPE
-do_space : first->orig_line is 14, first->orig_col is 10, first->text() is 'long', [TYPE/NONE] <===>
- second->orig_line is 14, second->orig_col is 15, second->text() is 'nTelIndex', [WORD/NONE] : rule sp_after_type[ ]
-ensure_force_space : <force between 'long' and 'nTelIndex'>space_col_align : av is force
-space_col_align : len is 4
-space_col_align : => coldiff is 4
-space_col_align : => av is FORCE
-space_col_align : => coldiff is 5
-space_col_align : first->orig_line is 14, orig_col is 15, [WORD/NONE], text() 'nTelIndex' <==>
-space_col_align : second->orig_line is 14, orig_col is 24 [SEMICOLON/NONE], text() ';', [CallStack]
-do_space : orig_line is 14, orig_col is 15, first->text() 'nTelIndex', type is WORD
-do_space : first->orig_line is 14, first->orig_col is 15, first->text() is 'nTelIndex', [WORD/NONE] <===>
- second->orig_line is 14, second->orig_col is 24, second->text() is ';', [SEMICOLON/NONE] : rule sp_before_semi[ ]
-space_col_align : av is remove
-space_col_align : len is 9
-space_col_align : => coldiff is 9
-space_col_align : => av is REMOVE
-space_col_align : => coldiff is 9
-space_col_align : first->orig_line is 14, orig_col is 24, [SEMICOLON/NONE], text() ';' <==>
-space_col_align : second->orig_line is 14, orig_col is 25 [NEWLINE/NONE], text() '', [CallStack]
-do_space : orig_line is 14, orig_col is 24, first->text() ';', type is SEMICOLON
-space_col_align : av is remove
-space_col_align : len is 1
-space_col_align : => coldiff is 1
-space_col_align : => av is REMOVE
-space_col_align : => coldiff is 1
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/92.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/92.txt
deleted file mode 100644
index eb0d7c05..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/92.txt
+++ /dev/null
@@ -1,196 +0,0 @@
-parse_word : orig_line is 1, orig_col is 1, pc->text() 'struct'
- pc->type is NONE, pc->parent_type is NONE => *type is WORD, *parent_type is NONE
-parse_word : orig_line is 1, orig_col is 1, pc->text() 'struct'
- pc->type is WORD, pc->parent_type is NONE => *type is STRUCT, *parent_type is NONE
-parse_whitespace : orig_line is 1, orig_col is 7, pc->text() ''
- pc->type is NONE, pc->parent_type is NONE => *type is WHITESPACE, *parent_type is NONE
-parse_word : orig_line is 1, orig_col is 8, pc->text() 'TelegramIndex'
- pc->type is NONE, pc->parent_type is NONE => *type is WORD, *parent_type is NONE
-parse_whitespace : orig_line is 1, orig_col is 21, pc->text() <Newline>
- pc->type is NONE, pc->parent_type is NONE => *type is NEWLINE, *parent_type is NONE
-parse_next : orig_line is 2, orig_col is 1, pc->text() '{'
- pc->type is NONE, pc->parent_type is NONE => *type is BRACE_OPEN, *parent_type is NONE
-parse_whitespace : orig_line is 2, orig_col is 2, pc->text() <Newline>
- pc->type is NONE, pc->parent_type is NONE => *type is NEWLINE, *parent_type is NONE
-parse_word : orig_line is 3, orig_col is 1, pc->text() 'TelegramIndex'
- pc->type is NONE, pc->parent_type is NONE => *type is WORD, *parent_type is NONE
-parse_next : orig_line is 3, orig_col is 14, pc->text() '('
- pc->type is NONE, pc->parent_type is NONE => *type is PAREN_OPEN, *parent_type is NONE
-parse_word : orig_line is 3, orig_col is 15, pc->text() 'const'
- pc->type is NONE, pc->parent_type is NONE => *type is WORD, *parent_type is NONE
-parse_word : orig_line is 3, orig_col is 15, pc->text() 'const'
- pc->type is WORD, pc->parent_type is NONE => *type is QUALIFIER, *parent_type is NONE
-parse_whitespace : orig_line is 3, orig_col is 20, pc->text() ''
- pc->type is NONE, pc->parent_type is NONE => *type is WHITESPACE, *parent_type is NONE
-parse_word : orig_line is 3, orig_col is 21, pc->text() 'char'
- pc->type is NONE, pc->parent_type is NONE => *type is WORD, *parent_type is NONE
-parse_word : orig_line is 3, orig_col is 21, pc->text() 'char'
- pc->type is WORD, pc->parent_type is NONE => *type is TYPE, *parent_type is NONE
-parse_next : orig_line is 3, orig_col is 25, pc->text() '*'
- pc->type is NONE, pc->parent_type is NONE => *type is STAR, *parent_type is NONE
-parse_whitespace : orig_line is 3, orig_col is 26, pc->text() ''
- pc->type is NONE, pc->parent_type is NONE => *type is WHITESPACE, *parent_type is NONE
-parse_word : orig_line is 3, orig_col is 27, pc->text() 'pN'
- pc->type is NONE, pc->parent_type is NONE => *type is WORD, *parent_type is NONE
-parse_next : orig_line is 3, orig_col is 29, pc->text() ','
- pc->type is NONE, pc->parent_type is NONE => *type is COMMA, *parent_type is NONE
-parse_whitespace : orig_line is 3, orig_col is 30, pc->text() ''
- pc->type is NONE, pc->parent_type is NONE => *type is WHITESPACE, *parent_type is NONE
-parse_word : orig_line is 3, orig_col is 31, pc->text() 'unsigned'
- pc->type is NONE, pc->parent_type is NONE => *type is WORD, *parent_type is NONE
-parse_word : orig_line is 3, orig_col is 31, pc->text() 'unsigned'
- pc->type is WORD, pc->parent_type is NONE => *type is TYPE, *parent_type is NONE
-parse_whitespace : orig_line is 3, orig_col is 39, pc->text() ''
- pc->type is NONE, pc->parent_type is NONE => *type is WHITESPACE, *parent_type is NONE
-parse_word : orig_line is 3, orig_col is 40, pc->text() 'long'
- pc->type is NONE, pc->parent_type is NONE => *type is WORD, *parent_type is NONE
-parse_word : orig_line is 3, orig_col is 40, pc->text() 'long'
- pc->type is WORD, pc->parent_type is NONE => *type is TYPE, *parent_type is NONE
-parse_whitespace : orig_line is 3, orig_col is 44, pc->text() ''
- pc->type is NONE, pc->parent_type is NONE => *type is WHITESPACE, *parent_type is NONE
-parse_word : orig_line is 3, orig_col is 45, pc->text() 'nI'
- pc->type is NONE, pc->parent_type is NONE => *type is WORD, *parent_type is NONE
-parse_next : orig_line is 3, orig_col is 47, pc->text() ')'
- pc->type is NONE, pc->parent_type is NONE => *type is PAREN_CLOSE, *parent_type is NONE
-parse_whitespace : orig_line is 3, orig_col is 48, pc->text() ''
- pc->type is NONE, pc->parent_type is NONE => *type is WHITESPACE, *parent_type is NONE
-parse_next : orig_line is 3, orig_col is 49, pc->text() ':'
- pc->type is NONE, pc->parent_type is NONE => *type is COLON, *parent_type is NONE
-parse_whitespace : orig_line is 3, orig_col is 50, pc->text() <Newline>
- pc->type is NONE, pc->parent_type is NONE => *type is NEWLINE, *parent_type is NONE
-parse_word : orig_line is 4, orig_col is 1, pc->text() 'pTelName'
- pc->type is NONE, pc->parent_type is NONE => *type is WORD, *parent_type is NONE
-parse_next : orig_line is 4, orig_col is 9, pc->text() '('
- pc->type is NONE, pc->parent_type is NONE => *type is PAREN_OPEN, *parent_type is NONE
-parse_word : orig_line is 4, orig_col is 10, pc->text() 'pN'
- pc->type is NONE, pc->parent_type is NONE => *type is WORD, *parent_type is NONE
-parse_next : orig_line is 4, orig_col is 12, pc->text() ')'
- pc->type is NONE, pc->parent_type is NONE => *type is PAREN_CLOSE, *parent_type is NONE
-parse_next : orig_line is 4, orig_col is 13, pc->text() ','
- pc->type is NONE, pc->parent_type is NONE => *type is COMMA, *parent_type is NONE
-parse_whitespace : orig_line is 4, orig_col is 14, pc->text() <Newline>
- pc->type is NONE, pc->parent_type is NONE => *type is NEWLINE, *parent_type is NONE
-parse_word : orig_line is 5, orig_col is 1, pc->text() 'nTelIndex'
- pc->type is NONE, pc->parent_type is NONE => *type is WORD, *parent_type is NONE
-parse_next : orig_line is 5, orig_col is 10, pc->text() '('
- pc->type is NONE, pc->parent_type is NONE => *type is PAREN_OPEN, *parent_type is NONE
-parse_word : orig_line is 5, orig_col is 11, pc->text() 'n'
- pc->type is NONE, pc->parent_type is NONE => *type is WORD, *parent_type is NONE
-parse_next : orig_line is 5, orig_col is 12, pc->text() ')'
- pc->type is NONE, pc->parent_type is NONE => *type is PAREN_CLOSE, *parent_type is NONE
-parse_whitespace : orig_line is 5, orig_col is 13, pc->text() <Newline>
- pc->type is NONE, pc->parent_type is NONE => *type is NEWLINE, *parent_type is NONE
-parse_next : orig_line is 6, orig_col is 1, pc->text() '{'
- pc->type is NONE, pc->parent_type is NONE => *type is BRACE_OPEN, *parent_type is NONE
-parse_whitespace : orig_line is 6, orig_col is 2, pc->text() <Newline>
- pc->type is NONE, pc->parent_type is NONE => *type is NEWLINE, *parent_type is NONE
-parse_next : orig_line is 7, orig_col is 1, pc->text() '}'
- pc->type is NONE, pc->parent_type is NONE => *type is BRACE_CLOSE, *parent_type is NONE
-parse_whitespace : orig_line is 7, orig_col is 2, pc->text() <Newline>
- pc->type is NONE, pc->parent_type is NONE => *type is NEWLINE, *parent_type is NONE
-parse_next : orig_line is 9, orig_col is 1, pc->text() '~'
- pc->type is NONE, pc->parent_type is NONE => *type is INV, *parent_type is NONE
-parse_word : orig_line is 9, orig_col is 2, pc->text() 'TelegramIndex'
- pc->type is NONE, pc->parent_type is NONE => *type is WORD, *parent_type is NONE
-parse_next : orig_line is 9, orig_col is 15, pc->text() '('
- pc->type is NONE, pc->parent_type is NONE => *type is PAREN_OPEN, *parent_type is NONE
-parse_next : orig_line is 9, orig_col is 16, pc->text() ')'
- pc->type is NONE, pc->parent_type is NONE => *type is PAREN_CLOSE, *parent_type is NONE
-parse_whitespace : orig_line is 9, orig_col is 17, pc->text() <Newline>
- pc->type is NONE, pc->parent_type is NONE => *type is NEWLINE, *parent_type is NONE
-parse_next : orig_line is 10, orig_col is 1, pc->text() '{'
- pc->type is NONE, pc->parent_type is NONE => *type is BRACE_OPEN, *parent_type is NONE
-parse_whitespace : orig_line is 10, orig_col is 2, pc->text() <Newline>
- pc->type is NONE, pc->parent_type is NONE => *type is NEWLINE, *parent_type is NONE
-parse_next : orig_line is 11, orig_col is 1, pc->text() '}'
- pc->type is NONE, pc->parent_type is NONE => *type is BRACE_CLOSE, *parent_type is NONE
-parse_whitespace : orig_line is 11, orig_col is 2, pc->text() <Newline>
- pc->type is NONE, pc->parent_type is NONE => *type is NEWLINE, *parent_type is NONE
-parse_word : orig_line is 13, orig_col is 1, pc->text() 'const'
- pc->type is NONE, pc->parent_type is NONE => *type is WORD, *parent_type is NONE
-parse_word : orig_line is 13, orig_col is 1, pc->text() 'const'
- pc->type is WORD, pc->parent_type is NONE => *type is QUALIFIER, *parent_type is NONE
-parse_whitespace : orig_line is 13, orig_col is 6, pc->text() ''
- pc->type is NONE, pc->parent_type is NONE => *type is WHITESPACE, *parent_type is NONE
-parse_word : orig_line is 13, orig_col is 7, pc->text() 'char'
- pc->type is NONE, pc->parent_type is NONE => *type is WORD, *parent_type is NONE
-parse_word : orig_line is 13, orig_col is 7, pc->text() 'char'
- pc->type is WORD, pc->parent_type is NONE => *type is TYPE, *parent_type is NONE
-parse_next : orig_line is 13, orig_col is 11, pc->text() '*'
- pc->type is NONE, pc->parent_type is NONE => *type is STAR, *parent_type is NONE
-parse_whitespace : orig_line is 13, orig_col is 12, pc->text() ''
- pc->type is NONE, pc->parent_type is NONE => *type is WHITESPACE, *parent_type is NONE
-parse_word : orig_line is 13, orig_col is 13, pc->text() 'const'
- pc->type is NONE, pc->parent_type is NONE => *type is WORD, *parent_type is NONE
-parse_word : orig_line is 13, orig_col is 13, pc->text() 'const'
- pc->type is WORD, pc->parent_type is NONE => *type is QUALIFIER, *parent_type is NONE
-parse_whitespace : orig_line is 13, orig_col is 18, pc->text() ''
- pc->type is NONE, pc->parent_type is NONE => *type is WHITESPACE, *parent_type is NONE
-parse_word : orig_line is 13, orig_col is 19, pc->text() 'pTelName'
- pc->type is NONE, pc->parent_type is NONE => *type is WORD, *parent_type is NONE
-parse_next : orig_line is 13, orig_col is 27, pc->text() ';'
- pc->type is NONE, pc->parent_type is NONE => *type is SEMICOLON, *parent_type is NONE
-parse_whitespace : orig_line is 13, orig_col is 28, pc->text() <Newline>
- pc->type is NONE, pc->parent_type is NONE => *type is NEWLINE, *parent_type is NONE
-parse_word : orig_line is 14, orig_col is 1, pc->text() 'unsigned'
- pc->type is NONE, pc->parent_type is NONE => *type is WORD, *parent_type is NONE
-parse_word : orig_line is 14, orig_col is 1, pc->text() 'unsigned'
- pc->type is WORD, pc->parent_type is NONE => *type is TYPE, *parent_type is NONE
-parse_whitespace : orig_line is 14, orig_col is 9, pc->text() ''
- pc->type is NONE, pc->parent_type is NONE => *type is WHITESPACE, *parent_type is NONE
-parse_word : orig_line is 14, orig_col is 10, pc->text() 'long'
- pc->type is NONE, pc->parent_type is NONE => *type is WORD, *parent_type is NONE
-parse_word : orig_line is 14, orig_col is 10, pc->text() 'long'
- pc->type is WORD, pc->parent_type is NONE => *type is TYPE, *parent_type is NONE
-parse_whitespace : orig_line is 14, orig_col is 14, pc->text() ''
- pc->type is NONE, pc->parent_type is NONE => *type is WHITESPACE, *parent_type is NONE
-parse_word : orig_line is 14, orig_col is 15, pc->text() 'nTelIndex'
- pc->type is NONE, pc->parent_type is NONE => *type is WORD, *parent_type is NONE
-parse_next : orig_line is 14, orig_col is 24, pc->text() ';'
- pc->type is NONE, pc->parent_type is NONE => *type is SEMICOLON, *parent_type is NONE
-parse_whitespace : orig_line is 14, orig_col is 25, pc->text() <Newline>
- pc->type is NONE, pc->parent_type is NONE => *type is NEWLINE, *parent_type is NONE
-parse_next : orig_line is 15, orig_col is 1, pc->text() '}'
- pc->type is NONE, pc->parent_type is NONE => *type is BRACE_CLOSE, *parent_type is NONE
-parse_next : orig_line is 15, orig_col is 2, pc->text() ';'
- pc->type is NONE, pc->parent_type is NONE => *type is SEMICOLON, *parent_type is NONE
-parse_whitespace : orig_line is 15, orig_col is 3, pc->text() <Newline>
- pc->type is NONE, pc->parent_type is NONE => *type is NEWLINE, *parent_type is NONE
-tokenize_cleanup : orig_line is 1, orig_col is 8, pc->text() 'TelegramIndex'
- pc->type is WORD, pc->parent_type is NONE => *type is TYPE, *parent_type is NONE
-tokenize_cleanup : orig_line is 3, orig_col is 25, pc->text() '*'
- pc->type is STAR, pc->parent_type is NONE => *type is PTR_TYPE, *parent_type is NONE
-tokenize_cleanup : orig_line is 13, orig_col is 11, pc->text() '*'
- pc->type is STAR, pc->parent_type is NONE => *type is PTR_TYPE, *parent_type is NONE
-try_find_end_chunk : orig_line is 1, orig_col is 8, pc->text() 'TelegramIndex'
- pc->type is TYPE, pc->parent_type is NONE => *type is WORD, *parent_type is NONE
-make_type : orig_line is 1, orig_col is 8, pc->text() 'TelegramIndex'
- pc->type is WORD, pc->parent_type is NONE => *type is TYPE, *parent_type is NONE
-mark_constructors : orig_line is 3, orig_col is 1, pc->text() 'TelegramIndex'
- pc->type is WORD, pc->parent_type is NONE => *type is FUNC_CLASS_DEF, *parent_type is NONE
-flag_parens : orig_line is 3, orig_col is 14, pc->text() '('
- pc->type is PAREN_OPEN, pc->parent_type is NONE => *type is FPAREN_OPEN, *parent_type is NONE
-flag_parens : orig_line is 3, orig_col is 47, pc->text() ')'
- pc->type is PAREN_CLOSE, pc->parent_type is NONE => *type is FPAREN_CLOSE, *parent_type is NONE
-mark_cpp_constructor : orig_line is 3, orig_col is 49, pc->text() ':'
- pc->type is COLON, pc->parent_type is NONE => *type is CONSTR_COLON, *parent_type is NONE
-mark_cpp_constructor : orig_line is 4, orig_col is 1, pc->text() 'pTelName'
- pc->type is WORD, pc->parent_type is NONE => *type is FUNC_CTOR_VAR, *parent_type is NONE
-flag_parens : orig_line is 4, orig_col is 9, pc->text() '('
- pc->type is PAREN_OPEN, pc->parent_type is NONE => *type is FPAREN_OPEN, *parent_type is NONE
-flag_parens : orig_line is 4, orig_col is 12, pc->text() ')'
- pc->type is PAREN_CLOSE, pc->parent_type is NONE => *type is FPAREN_CLOSE, *parent_type is NONE
-mark_cpp_constructor : orig_line is 5, orig_col is 1, pc->text() 'nTelIndex'
- pc->type is WORD, pc->parent_type is NONE => *type is FUNC_CTOR_VAR, *parent_type is NONE
-flag_parens : orig_line is 5, orig_col is 10, pc->text() '('
- pc->type is PAREN_OPEN, pc->parent_type is NONE => *type is FPAREN_OPEN, *parent_type is NONE
-flag_parens : orig_line is 5, orig_col is 12, pc->text() ')'
- pc->type is PAREN_CLOSE, pc->parent_type is NONE => *type is FPAREN_CLOSE, *parent_type is NONE
-mark_constructors : orig_line is 9, orig_col is 2, pc->text() 'TelegramIndex'
- pc->type is WORD, pc->parent_type is NONE => *type is FUNC_CLASS_DEF, *parent_type is NONE
-mark_cpp_constructor : orig_line is 9, orig_col is 1, pc->text() '~'
- pc->type is INV, pc->parent_type is NONE => *type is DESTRUCTOR, *parent_type is NONE
-flag_parens : orig_line is 9, orig_col is 15, pc->text() '('
- pc->type is PAREN_OPEN, pc->parent_type is NONE => *type is FPAREN_OPEN, *parent_type is NONE
-flag_parens : orig_line is 9, orig_col is 16, pc->text() ')'
- pc->type is PAREN_CLOSE, pc->parent_type is NONE => *type is FPAREN_CLOSE, *parent_type is NONE
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/class_enum_struct_union.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/class_enum_struct_union.txt
deleted file mode 100644
index 4cf1a681..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/class_enum_struct_union.txt
+++ /dev/null
@@ -1,692 +0,0 @@
-
-# option(s) with 'not default' value: 0
-#
-# -=====-
-# number of loops = 1
-# -=====-
-# language = CPP
-# -=====-
-# Line Tag Parent_type Type of the parent Columns Br/Lvl/pp Flag Nl Text
-# 1> COMMENT_MULTI| COMMENT_WHOLE| PARENT_NOT_SET[ 1/ 4/ 7/ 3][0/0/0][ 0][9-0] /**␤ * the enum (and variable declarations thereof) could be of␤ * the following forms:␤ *␤ * "enum type [: integral_type] { ... } [x, ...]"␤ * "enum type [: integral_type]"␤ * "enum class type [: integral_type] { ... } [x, ...]"␤ * "enum class type [: integral_type]"␤ * "enum [: integral_type] { ... } x, ..."␤ */
-# 10> NEWLINE| NONE| PARENT_NOT_SET[ 7/ 7/ 4/ 0][0/0/0][ 0][2-0]
-# 12> COMMENT_MULTI| COMMENT_WHOLE| PARENT_NOT_SET[ 1/ 4/ 7/ 0][0/0/0][ 0][9-0] /**␤ * the class/struct (and variable declarations thereof) could be of␤ * the following forms:␤ *␤ * template<...> class/struct[<...>] [macros/attributes ...] type [: bases ...] { }␤ * template<...> class/struct[<...>] [macros/attributes ...] type␤ * class/struct[ [macros/attributes ...] type [: bases ...] { } [x, ...]␤ * class/struct [macros/attributes ...] type [x, ...]␤ * class/struct [macros/attributes ...] [: bases] { } x, ...␤ */
-# 21> NEWLINE| NONE| PARENT_NOT_SET[ 7/ 7/ 1/ 0][0/0/0][ 0][2-0]
-# 23> PREPROC| PP_DEFINE| PARENT_NOT_SET[ 1/ 1/ 2/ 0][1/1/0][ 2001c0001][0-0] #
-# 23> PP_DEFINE| NONE| PARENT_NOT_SET[ 2/ 2/ 8/ 0][1/1/0][ 20001][0-0] define
-# 23> MACRO_FUNC| NONE| PARENT_NOT_SET[ 9/ 9/ 16/ 1][1/1/0][ 80001][0-0] ALIGNAS
-# 23> FPAREN_OPEN| MACRO_FUNC| PARENT_NOT_SET[ 16/ 16/ 17/ 0][1/1/0][ 200000001][0-0] (
-# 23> WORD| NONE| PARENT_NOT_SET[ 17/ 17/ 31/ 0][1/2/0][ 80011][0-0] byte_alignment
-# 23> FPAREN_CLOSE| MACRO_FUNC| PARENT_NOT_SET[ 31/ 31/ 32/ 0][1/1/0][ 200000011][0-0] )
-# 23> ATTRIBUTE| NONE| PARENT_NOT_SET[ 33/ 33/ 46/ 1][1/1/0][ 1][0-0] __attribute__
-# 23> FPAREN_OPEN| ATTRIBUTE| PARENT_NOT_SET[ 46/ 46/ 47/ 0][1/1/0][ 200000001][0-0] (
-# 23> PAREN_OPEN| NONE| PARENT_NOT_SET[ 47/ 47/ 48/ 0][1/2/0][ 200080001][0-0] (
-# 23> FUNC_CALL| NONE| PARENT_NOT_SET[ 48/ 48/ 55/ 0][1/3/0][ 80001][0-0] aligned
-# 23> FPAREN_OPEN| FUNC_CALL| PARENT_NOT_SET[ 55/ 55/ 56/ 0][1/3/0][ 200000001][0-0] (
-# 23> WORD| NONE| PARENT_NOT_SET[ 56/ 56/ 70/ 0][1/4/0][ 80011][0-0] byte_alignment
-# 23> FPAREN_CLOSE| FUNC_CALL| PARENT_NOT_SET[ 70/ 70/ 71/ 0][1/3/0][ 200000011][0-0] )
-# 23> PAREN_CLOSE| NONE| PARENT_NOT_SET[ 71/ 71/ 72/ 0][1/2/0][ 200000001][0-0] )
-# 23> FPAREN_CLOSE| ATTRIBUTE| PARENT_NOT_SET[ 72/ 72/ 73/ 0][1/1/0][ 200000001][0-0] )
-# 23> NEWLINE| NONE| PARENT_NOT_SET[ 73/ 73/ 1/ 0][0/0/0][ 0][2-0]
-# 25> PREPROC| PP_IF| PARENT_NOT_SET[ 1/ 1/ 2/ 0][0/0/0][ 200100001][0-0] #
-# 25> PP_IF| NONE| PARENT_NOT_SET[ 2/ 2/ 4/ 0][0/0/1][ 20001][0-0] if
-# 25> PP_DEFINED| NONE| PARENT_NOT_SET[ 5/ 5/ 12/ 1][0/0/1][ 80001][0-0] defined
-# 25> PAREN_OPEN| NONE| PARENT_NOT_SET[ 13/ 13/ 14/ 1][0/0/1][ 200000001][0-0] (
-# 25> WORD| NONE| PARENT_NOT_SET[ 14/ 14/ 22/ 0][0/0/1][ 80001][0-0] __unix__
-# 25> PAREN_CLOSE| NONE| PARENT_NOT_SET[ 22/ 22/ 23/ 0][0/0/1][ 200000001][0-0] )
-# 25> BOOL| NONE| PARENT_NOT_SET[ 24/ 24/ 26/ 1][0/0/1][ 200000001][0-0] ||
-# 25> PAREN_OPEN| NONE| PARENT_NOT_SET[ 27/ 27/ 28/ 1][0/0/1][ 200000001][0-0] (
-# 25> PP_DEFINED| NONE| PARENT_NOT_SET[ 28/ 28/ 35/ 0][0/0/1][ 80001][0-0] defined
-# 25> PAREN_OPEN| NONE| PARENT_NOT_SET[ 36/ 36/ 37/ 1][0/0/1][ 200000001][0-0] (
-# 25> WORD| NONE| PARENT_NOT_SET[ 37/ 37/ 46/ 0][0/0/1][ 80001][0-0] __APPLE__
-# 25> PAREN_CLOSE| NONE| PARENT_NOT_SET[ 46/ 46/ 47/ 0][0/0/1][ 200000001][0-0] )
-# 25> BOOL| NONE| PARENT_NOT_SET[ 48/ 48/ 50/ 1][0/0/1][ 200000001][0-0] &&
-# 25> PP_DEFINED| NONE| PARENT_NOT_SET[ 51/ 51/ 58/ 1][0/0/1][ 1][0-0] defined
-# 25> PAREN_OPEN| NONE| PARENT_NOT_SET[ 59/ 59/ 60/ 1][0/0/1][ 200000001][0-0] (
-# 25> WORD| NONE| PARENT_NOT_SET[ 60/ 60/ 68/ 0][0/0/1][ 80001][0-0] __MACH__
-# 25> PAREN_CLOSE| NONE| PARENT_NOT_SET[ 68/ 68/ 69/ 0][0/0/1][ 200000001][0-0] )
-# 25> PAREN_CLOSE| NONE| PARENT_NOT_SET[ 69/ 69/ 70/ 0][0/0/1][ 200000001][0-0] )
-# 25> NEWLINE| NONE| PARENT_NOT_SET[ 70/ 70/ 1/ 0][0/0/1][ 0][1-0]
-# 26> PREPROC| PP_DEFINE| PARENT_NOT_SET[ 1/ 1/ 2/ 0][1/1/1][ 2001c0001][0-0] #
-# 26> PP_DEFINE| NONE| PARENT_NOT_SET[ 2/ 2/ 8/ 0][1/1/1][ 20001][0-0] define
-# 26> MACRO| NONE| PARENT_NOT_SET[ 9/ 9/ 19/ 1][1/1/1][ 20001][0-0] API_EXPORT
-# 26> ATTRIBUTE| NONE| PARENT_NOT_SET[ 20/ 20/ 33/ 1][1/1/1][ 80001][0-0] __attribute__
-# 26> FPAREN_OPEN| ATTRIBUTE| PARENT_NOT_SET[ 34/ 34/ 35/ 1][1/1/1][ 2000c0001][0-0] (
-# 26> PAREN_OPEN| NONE| PARENT_NOT_SET[ 35/ 35/ 36/ 0][1/2/1][ 200080001][0-0] (
-# 26> FUNC_CALL| NONE| PARENT_NOT_SET[ 36/ 36/ 46/ 0][1/3/1][ 80001][0-0] visibility
-# 26> FPAREN_OPEN| FUNC_CALL| PARENT_NOT_SET[ 46/ 46/ 47/ 0][1/3/1][ 200000001][0-0] (
-# 26> STRING| PP_INCLUDE| PARENT_NOT_SET[ 47/ 47/ 56/ 0][1/4/1][ 80011][0-0] "default"
-# 26> FPAREN_CLOSE| FUNC_CALL| PARENT_NOT_SET[ 56/ 56/ 57/ 0][1/3/1][ 200000011][0-0] )
-# 26> PAREN_CLOSE| NONE| PARENT_NOT_SET[ 57/ 57/ 58/ 0][1/2/1][ 200000001][0-0] )
-# 26> FPAREN_CLOSE| ATTRIBUTE| PARENT_NOT_SET[ 58/ 58/ 59/ 0][1/1/1][ 200000001][0-0] )
-# 26> NEWLINE| NONE| PARENT_NOT_SET[ 59/ 59/ 1/ 0][0/0/1][ 0][1-0]
-# 27> PREPROC| PP_ELSE| PARENT_NOT_SET[ 1/ 1/ 2/ 0][0/0/0][ 200100001][0-0] #
-# 27> PP_ELSE| NONE| PP_IF[ 2/ 2/ 6/ 0][0/0/1][ 20001][0-0] elif
-# 27> PP_DEFINED| NONE| PARENT_NOT_SET[ 7/ 7/ 14/ 1][0/0/1][ a0001][0-0] defined
-# 27> WORD| NONE| PARENT_NOT_SET[ 15/ 15/ 21/ 1][0/0/1][ 1][0-0] _WIN32
-# 27> NEWLINE| NONE| PARENT_NOT_SET[ 21/ 21/ 1/ 0][0/0/1][ 0][1-0]
-# 28> PREPROC| PP_DEFINE| PARENT_NOT_SET[ 1/ 1/ 2/ 0][1/1/1][ 2001c0001][0-0] #
-# 28> PP_DEFINE| NONE| PARENT_NOT_SET[ 2/ 2/ 8/ 0][1/1/1][ 20001][0-0] define
-# 28> MACRO| NONE| PARENT_NOT_SET[ 9/ 9/ 19/ 1][1/1/1][ 20001][0-0] API_EXPORT
-# 28> DECLSPEC| NONE| PARENT_NOT_SET[ 20/ 20/ 30/ 1][1/1/1][ c0001][0-0] __declspec
-# 28> PAREN_OPEN| DECLSPEC| PARENT_NOT_SET[ 30/ 30/ 31/ 0][1/1/1][ 200000001][0-0] (
-# 28> WORD| NONE| PARENT_NOT_SET[ 31/ 31/ 40/ 0][1/2/1][ 80001][0-0] dllexport
-# 28> PAREN_CLOSE| DECLSPEC| PARENT_NOT_SET[ 40/ 40/ 41/ 0][1/1/1][ 200000001][0-0] )
-# 28> NEWLINE| NONE| PARENT_NOT_SET[ 41/ 41/ 1/ 0][0/0/1][ 0][1-0]
-# 29> PREPROC| PP_ELSE| PARENT_NOT_SET[ 1/ 1/ 2/ 0][0/0/0][ 200100001][0-0] #
-# 29> PP_ELSE| NONE| PP_IF[ 2/ 2/ 6/ 0][0/0/1][ 1][0-0] else
-# 29> NEWLINE| NONE| PARENT_NOT_SET[ 6/ 6/ 1/ 0][0/0/1][ 0][1-0]
-# 30> PREPROC| PP_DEFINE| PARENT_NOT_SET[ 1/ 1/ 2/ 0][1/1/1][ 2001c0001][0-0] #
-# 30> PP_DEFINE| NONE| PARENT_NOT_SET[ 2/ 2/ 8/ 0][1/1/1][ 20001][0-0] define
-# 30> MACRO| NONE| PARENT_NOT_SET[ 9/ 9/ 19/ 1][1/1/1][ 1][0-0] API_EXPORT
-# 30> NEWLINE| NONE| PARENT_NOT_SET[ 19/ 19/ 1/ 0][0/0/1][ 0][1-0]
-# 31> PREPROC| PP_ENDIF| PARENT_NOT_SET[ 1/ 1/ 2/ 0][0/0/0][ 200100001][0-0] #
-# 31> PP_ENDIF| NONE| PP_IF[ 2/ 2/ 7/ 0][0/0/0][ 1][0-0] endif
-# 31> NEWLINE| NONE| PARENT_NOT_SET[ 7/ 7/ 1/ 0][0/0/0][ 0][2-0]
-# 33> NAMESPACE| NONE| PARENT_NOT_SET[ 1/ 1/ 10/ 0][0/0/0][ e0000][0-0] namespace
-# 33> WORD| NAMESPACE| PARENT_NOT_SET[ 11/ 11/ 26/ 1][0/0/0][ 0][0-0] outer_namespace
-# 33> NEWLINE| NONE| PARENT_NOT_SET[ 26/ 26/ 1/ 0][0/0/0][ 0][1-0]
-# 34> BRACE_OPEN| NAMESPACE| PARENT_NOT_SET[ 1/ 1/ 2/ 0][0/0/0][ 200000000][0-0] {
-# 34> NEWLINE| NONE| PARENT_NOT_SET[ 2/ 2/ 1/ 0][1/1/0][ 1000][2-0]
-# 36> NAMESPACE| NONE| PARENT_NOT_SET[ 1/ 1/ 10/ 0][1/1/0][ e1000][0-0] namespace
-# 36> WORD| NAMESPACE| PARENT_NOT_SET[ 11/ 11/ 26/ 1][1/1/0][ 1000][0-0] inner_namespace
-# 36> NEWLINE| NONE| PARENT_NOT_SET[ 26/ 26/ 1/ 0][1/1/0][ 1000][1-0]
-# 37> BRACE_OPEN| NAMESPACE| PARENT_NOT_SET[ 1/ 1/ 2/ 0][1/1/0][ 200001000][0-0] {
-# 37> NEWLINE| NONE| PARENT_NOT_SET[ 2/ 2/ 1/ 0][2/2/0][ 1000][2-0]
-# 39> CLASS| NONE| PARENT_NOT_SET[ 1/ 1/ 6/ 0][2/2/0][ e1000][0-0] class
-# 39> TYPE| CLASS| PARENT_NOT_SET[ 7/ 7/ 12/ 1][2/2/0][ 1000][0-0] Base1
-# 39> BRACE_OPEN| CLASS| PARENT_NOT_SET[ 13/ 13/ 14/ 1][2/2/0][ 2c0001400][0-0] {
-# 39> BRACE_CLOSE| CLASS| PARENT_NOT_SET[ 15/ 15/ 16/ 1][2/2/0][ 2c0001400][0-0] }
-# 39> SEMICOLON| CLASS| PARENT_NOT_SET[ 16/ 16/ 17/ 0][2/2/0][ 200000000][0-0] ;
-# 39> NEWLINE| NONE| PARENT_NOT_SET[ 17/ 17/ 1/ 0][2/2/0][ 0][2-0]
-# 41> TEMPLATE| NONE| PARENT_NOT_SET[ 1/ 1/ 9/ 0][2/2/0][ c0000][0-0] template
-# 41> ANGLE_OPEN| TEMPLATE| PARENT_NOT_SET[ 9/ 9/ 10/ 0][2/2/0][ 200000040][0-0] <
-# 41> TYPENAME| NONE| PARENT_NOT_SET[ 10/ 10/ 18/ 0][2/3/0][ 80040][0-0] typename
-# 41> ANGLE_CLOSE| TEMPLATE| PARENT_NOT_SET[ 18/ 18/ 19/ 0][2/2/0][ 200000040][0-0] >
-# 41> CLASS| TEMPLATE| PARENT_NOT_SET[ 20/ 20/ 25/ 1][2/2/0][ a0000][0-0] class
-# 41> TYPE| CLASS| PARENT_NOT_SET[ 26/ 26/ 31/ 1][2/2/0][ 0][0-0] Base2
-# 41> BRACE_OPEN| CLASS| PARENT_NOT_SET[ 32/ 32/ 33/ 1][2/2/0][ 2c0000400][0-0] {
-# 41> BRACE_CLOSE| CLASS| PARENT_NOT_SET[ 34/ 34/ 35/ 1][2/2/0][ 2c0000400][0-0] }
-# 41> SEMICOLON| CLASS| PARENT_NOT_SET[ 35/ 35/ 36/ 0][2/2/0][ 200000000][0-0] ;
-# 41> NEWLINE| NONE| PARENT_NOT_SET[ 36/ 36/ 1/ 0][2/2/0][ 0][2-0]
-# 43> BRACE_CLOSE| NAMESPACE| PARENT_NOT_SET[ 1/ 1/ 2/ 0][1/1/0][ 200000000][0-0] }
-# 43> NEWLINE| NONE| PARENT_NOT_SET[ 2/ 2/ 1/ 0][1/1/0][ 0][2-0]
-# 45> BRACE_CLOSE| NAMESPACE| PARENT_NOT_SET[ 1/ 1/ 2/ 0][0/0/0][ 200000000][0-0] }
-# 45> NEWLINE| NONE| PARENT_NOT_SET[ 2/ 2/ 1/ 0][0/0/0][ 0][2-0]
-# 47> COMMENT_CPP| COMMENT_WHOLE| PARENT_NOT_SET[ 1/ 1/ 82/ 0][0/0/0][ 0][0-0] // template<...> class/struct[<...>] [macros/attributes ...] type : bases ... { }
-# 47> NEWLINE| NONE| PARENT_NOT_SET[ 82/ 82/ 1/ 0][0/0/0][ 0][1-0]
-# 48> TEMPLATE| NONE| PARENT_NOT_SET[ 1/ 1/ 9/ 0][0/0/0][ c0000][0-0] template
-# 48> ANGLE_OPEN| TEMPLATE| PARENT_NOT_SET[ 9/ 9/ 10/ 0][0/0/0][ 200000040][0-0] <
-# 48> TYPENAME| NONE| PARENT_NOT_SET[ 10/ 10/ 18/ 0][0/1/0][ 80040][0-0] typename
-# 48> COMMA| NONE| PARENT_NOT_SET[ 18/ 18/ 19/ 0][0/1/0][ 200000040][0-0] ,
-# 48> TYPENAME| NONE| PARENT_NOT_SET[ 20/ 20/ 28/ 1][0/1/0][ 80040][0-0] typename
-# 48> ELLIPSIS| NONE| PARENT_NOT_SET[ 29/ 29/ 32/ 1][0/1/0][ 200000040][0-0] ...
-# 48> ANGLE_CLOSE| TEMPLATE| PARENT_NOT_SET[ 32/ 32/ 33/ 0][0/0/0][ 200000040][0-0] >
-# 48> NEWLINE| NONE| PARENT_NOT_SET[ 33/ 33/ 1/ 0][0/0/0][ 0][1-0]
-# 49> CLASS| TEMPLATE| PARENT_NOT_SET[ 1/ 1/ 6/ 0][0/0/0][ a0000][0-0] class
-# 49> WORD| NONE| PARENT_NOT_SET[ 7/ 7/ 17/ 1][0/0/0][ 20000][0-0] API_EXPORT
-# 49> ATTRIBUTE| NONE| PARENT_NOT_SET[ 18/ 18/ 31/ 1][0/0/0][ 0][0-0] __attribute__
-# 49> FPAREN_OPEN| ATTRIBUTE| PARENT_NOT_SET[ 31/ 31/ 32/ 0][0/0/0][ 200000000][0-0] (
-# 49> PAREN_OPEN| NONE| PARENT_NOT_SET[ 32/ 32/ 33/ 0][0/1/0][ 200080000][0-0] (
-# 49> WORD| NONE| PARENT_NOT_SET[ 33/ 33/ 47/ 0][0/2/0][ 80000][0-0] __deprecated__
-# 49> PAREN_CLOSE| NONE| PARENT_NOT_SET[ 47/ 47/ 48/ 0][0/1/0][ 200000000][0-0] )
-# 49> FPAREN_CLOSE| ATTRIBUTE| PARENT_NOT_SET[ 48/ 48/ 49/ 0][0/0/0][ 200000000][0-0] )
-# 49> MACRO_FUNC_CALL| NONE| PARENT_NOT_SET[ 50/ 50/ 57/ 1][0/0/0][ 0][0-0] ALIGNAS
-# 49> FPAREN_OPEN| MACRO_FUNC_CALL| PARENT_NOT_SET[ 57/ 57/ 58/ 0][0/0/0][ 200000000][0-0] (
-# 49> NUMBER| NONE| PARENT_NOT_SET[ 58/ 58/ 59/ 0][0/1/0][ 80000][0-0] 4
-# 49> FPAREN_CLOSE| MACRO_FUNC_CALL| PARENT_NOT_SET[ 59/ 59/ 60/ 0][0/0/0][ 200000000][0-0] )
-# 49> TYPE| CLASS| PARENT_NOT_SET[ 61/ 61/ 63/ 1][0/0/0][ 0][0-0] c1
-# 49> NEWLINE| NONE| PARENT_NOT_SET[ 63/ 63/ 1/ 0][0/0/0][ 0][1-0]
-# 50> CLASS_COLON| CLASS| PARENT_NOT_SET[ 9/ 1/ 2/ 0][0/0/0][ 200000800][0-0] :
-# 50> QUALIFIER| NONE| PARENT_NOT_SET[ 11/ 3/ 9/ 1][0/0/0][ e0800][0-0] public
-# 50> TYPE| NONE| PARENT_NOT_SET[ 18/ 10/ 25/ 1][0/0/0][ 800][0-0] outer_namespace
-# 50> DC_MEMBER| NONE| PARENT_NOT_SET[ 33/ 25/ 27/ 0][0/0/0][ 200000800][0-0] ::
-# 50> TYPE| NONE| PARENT_NOT_SET[ 35/ 27/ 42/ 0][0/0/0][ 800][0-0] inner_namespace
-# 50> DC_MEMBER| NONE| PARENT_NOT_SET[ 50/ 42/ 44/ 0][0/0/0][ 200000800][0-0] ::
-# 50> TYPE| NONE| PARENT_NOT_SET[ 52/ 44/ 49/ 0][0/0/0][ 800][0-0] Base1
-# 50> COMMA| NONE| PARENT_NOT_SET[ 57/ 49/ 50/ 0][0/0/0][ 200000800][0-0] ,
-# 50> NEWLINE| NONE| PARENT_NOT_SET[ 58/ 50/ 3/ 0][0/0/0][ 0][1-0]
-# 51> QUALIFIER| NONE| PARENT_NOT_SET[ 9/ 3/ 9/ 0][0/0/0][ a0800][0-0] public
-# 51> TYPE| NONE| PARENT_NOT_SET[ 16/ 10/ 25/ 1][0/0/0][ 800][0-0] outer_namespace
-# 51> DC_MEMBER| NONE| PARENT_NOT_SET[ 31/ 25/ 27/ 0][0/0/0][ 200000800][0-0] ::
-# 51> TYPE| NONE| PARENT_NOT_SET[ 33/ 27/ 42/ 0][0/0/0][ 800][0-0] inner_namespace
-# 51> DC_MEMBER| NONE| PARENT_NOT_SET[ 48/ 42/ 44/ 0][0/0/0][ 200000800][0-0] ::
-# 51> TYPE| NONE| PARENT_NOT_SET[ 50/ 44/ 49/ 0][0/0/0][ 800][0-0] Base2
-# 51> ANGLE_OPEN| TEMPLATE| PARENT_NOT_SET[ 55/ 49/ 50/ 0][0/0/0][ 200000840][0-0] <
-# 51> TYPE| NONE| PARENT_NOT_SET[ 56/ 50/ 65/ 0][0/1/0][ 80840][0-0] outer_namespace
-# 51> DC_MEMBER| NONE| PARENT_NOT_SET[ 71/ 65/ 67/ 0][0/1/0][ 200000840][0-0] ::
-# 51> TYPE| NONE| PARENT_NOT_SET[ 73/ 67/ 82/ 0][0/1/0][ 840][0-0] inner_namespace
-# 51> DC_MEMBER| NONE| PARENT_NOT_SET[ 88/ 82/ 84/ 0][0/1/0][ 200000840][0-0] ::
-# 51> TYPE| NONE| PARENT_NOT_SET[ 90/ 84/ 89/ 0][0/1/0][ 840][0-0] Base1
-# 51> ANGLE_CLOSE| TEMPLATE| PARENT_NOT_SET[ 95/ 89/ 90/ 0][0/0/0][ 200000840][0-0] >
-# 51> NEWLINE| NONE| PARENT_NOT_SET[ 96/ 90/ 1/ 0][0/0/0][ 0][1-0]
-# 52> BRACE_OPEN| CLASS| PARENT_NOT_SET[ 1/ 1/ 2/ 0][0/0/0][ 280080400][0-0] {
-# 52> NEWLINE| NONE| PARENT_NOT_SET[ 2/ 2/ 1/ 0][1/1/0][ 400][2-0]
-# 54> BRACE_CLOSE| CLASS| PARENT_NOT_SET[ 1/ 1/ 2/ 0][0/0/0][ 280000400][0-0] }
-# 54> SEMICOLON| CLASS| PARENT_NOT_SET[ 2/ 2/ 3/ 0][0/0/0][ 200000000][0-0] ;
-# 54> NEWLINE| NONE| PARENT_NOT_SET[ 3/ 3/ 1/ 0][0/0/0][ 0][2-0]
-# 56> COMMENT_CPP| COMMENT_WHOLE| PARENT_NOT_SET[ 1/ 1/ 70/ 0][0/0/0][ 0][0-0] // template<...> class/struct[<...>] [macros/attributes ...] type { }
-# 56> NEWLINE| NONE| PARENT_NOT_SET[ 70/ 70/ 1/ 0][0/0/0][ 0][1-0]
-# 57> TEMPLATE| NONE| PARENT_NOT_SET[ 1/ 1/ 9/ 0][0/0/0][ c0000][0-0] template
-# 57> ANGLE_OPEN| TEMPLATE| PARENT_NOT_SET[ 9/ 9/ 10/ 0][0/0/0][ 200000040][0-0] <
-# 57> TYPENAME| NONE| PARENT_NOT_SET[ 10/ 10/ 18/ 0][0/1/0][ 80040][0-0] typename
-# 57> COMMA| NONE| PARENT_NOT_SET[ 18/ 18/ 19/ 0][0/1/0][ 200000040][0-0] ,
-# 57> TYPENAME| NONE| PARENT_NOT_SET[ 20/ 20/ 28/ 1][0/1/0][ 80040][0-0] typename
-# 57> ELLIPSIS| NONE| PARENT_NOT_SET[ 29/ 29/ 32/ 1][0/1/0][ 200000040][0-0] ...
-# 57> ANGLE_CLOSE| TEMPLATE| PARENT_NOT_SET[ 32/ 32/ 33/ 0][0/0/0][ 200000040][0-0] >
-# 57> NEWLINE| NONE| PARENT_NOT_SET[ 33/ 33/ 1/ 0][0/0/0][ 0][1-0]
-# 58> CLASS| TEMPLATE| PARENT_NOT_SET[ 1/ 1/ 6/ 0][0/0/0][ a0000][0-0] class
-# 58> WORD| NONE| PARENT_NOT_SET[ 7/ 7/ 17/ 1][0/0/0][ 20000][0-0] API_EXPORT
-# 58> TYPE| CLASS| PARENT_NOT_SET[ 18/ 18/ 20/ 1][0/0/0][ 0][0-0] c2
-# 58> NEWLINE| NONE| PARENT_NOT_SET[ 20/ 20/ 1/ 0][0/0/0][ 0][1-0]
-# 59> BRACE_OPEN| CLASS| PARENT_NOT_SET[ 1/ 1/ 2/ 0][0/0/0][ 200000400][0-0] {
-# 59> NEWLINE| NONE| PARENT_NOT_SET[ 2/ 2/ 1/ 0][1/1/0][ 400][1-0]
-# 60> ACCESS| NONE| PARENT_NOT_SET[ 1/ 1/ 7/ 0][1/1/0][ c0400][0-0] public
-# 60> ACCESS_COLON| NONE| PARENT_NOT_SET[ 7/ 7/ 8/ 0][1/1/0][ 200000400][0-0] :
-# 60> NEWLINE| NONE| PARENT_NOT_SET[ 8/ 8/ 4/ 0][1/1/0][ 400][2-0]
-# 62> TEMPLATE| NONE| PARENT_NOT_SET[ 1/ 4/ 12/ 0][1/1/0][ c0400][0-0] template
-# 62> ANGLE_OPEN| TEMPLATE| PARENT_NOT_SET[ 9/ 12/ 13/ 0][1/1/0][ 200000440][0-0] <
-# 62> TYPENAME| NONE| PARENT_NOT_SET[ 10/ 13/ 21/ 0][1/2/0][ a0440][0-0] typename
-# 62> TYPE| NONE| PARENT_NOT_SET[ 19/ 22/ 23/ 1][1/2/0][ 440][0-0] T
-# 62> ANGLE_CLOSE| TEMPLATE| PARENT_NOT_SET[ 20/ 23/ 24/ 0][1/1/0][ 200000440][0-0] >
-# 62> NEWLINE| NONE| PARENT_NOT_SET[ 21/ 24/ 4/ 0][1/1/0][ 400][1-0]
-# 63> STRUCT| TEMPLATE| PARENT_NOT_SET[ 1/ 4/ 10/ 0][1/1/0][ a0400][0-0] struct
-# 63> TYPE| STRUCT| PARENT_NOT_SET[ 8/ 11/ 22/ 1][1/1/0][ 400][0-0] inner_class
-# 63> NEWLINE| NONE| PARENT_NOT_SET[ 19/ 22/ 4/ 0][1/1/0][ 400][1-0]
-# 64> BRACE_OPEN| STRUCT| PARENT_NOT_SET[ 1/ 4/ 5/ 0][1/1/0][ 200000400][0-0] {
-# 64> NEWLINE| NONE| PARENT_NOT_SET[ 2/ 5/ 7/ 0][2/2/0][ 402][1-0]
-# 65> QUALIFIER| NONE| PARENT_NOT_SET[ 9/ 7/ 13/ 0][2/2/0][ 8e0402][0-0] static
-# 65> TYPE| NONE| PARENT_NOT_SET[ 16/ 14/ 25/ 1][2/2/0][ 800402][0-0] inner_class
-# 65> ANGLE_OPEN| TEMPLATE| PARENT_NOT_SET[ 27/ 25/ 26/ 0][2/2/0][ 200000442][0-0] <
-# 65> TYPE| NONE| PARENT_NOT_SET[ 28/ 26/ 27/ 0][2/3/0][ 80442][0-0] T
-# 65> ANGLE_CLOSE| TEMPLATE| PARENT_NOT_SET[ 29/ 27/ 28/ 0][2/2/0][ 200000442][0-0] >
-# 65> PTR_TYPE| NONE| PARENT_NOT_SET[ 31/ 29/ 30/ 1][2/2/0][ 200880402][0-0] *
-# 65> WORD| NONE| PARENT_NOT_SET[ 32/ 30/ 43/ 0][2/2/0][ 3080402][0-0] m_inner_class
-# 65> SEMICOLON| NONE| PARENT_NOT_SET[ 45/ 43/ 44/ 0][2/2/0][ 200000402][0-0] ;
-# 65> NEWLINE| NONE| PARENT_NOT_SET[ 46/ 44/ 4/ 0][2/2/0][ 402][1-0]
-# 66> BRACE_CLOSE| STRUCT| PARENT_NOT_SET[ 1/ 4/ 5/ 0][1/1/0][ 200000402][0-0] }
-# 66> SEMICOLON| STRUCT| PARENT_NOT_SET[ 2/ 5/ 6/ 0][1/1/0][ 200000400][0-0] ;
-# 66> NEWLINE| NONE| PARENT_NOT_SET[ 3/ 6/ 1/ 0][1/1/0][ 400][1-0]
-# 67> BRACE_CLOSE| CLASS| PARENT_NOT_SET[ 1/ 1/ 2/ 0][0/0/0][ 200000400][0-0] }
-# 67> SEMICOLON| CLASS| PARENT_NOT_SET[ 2/ 2/ 3/ 0][0/0/0][ 200000000][0-0] ;
-# 67> NEWLINE| NONE| PARENT_NOT_SET[ 3/ 3/ 1/ 0][0/0/0][ 0][2-0]
-# 69> TEMPLATE| NONE| PARENT_NOT_SET[ 1/ 1/ 9/ 0][0/0/0][ c0000][0-0] template
-# 69> ANGLE_OPEN| TEMPLATE| PARENT_NOT_SET[ 9/ 9/ 10/ 0][0/0/0][ 200000040][0-0] <
-# 69> ANGLE_CLOSE| TEMPLATE| PARENT_NOT_SET[ 10/ 10/ 11/ 0][0/0/0][ 200080040][0-0] >
-# 69> TEMPLATE| NONE| PARENT_NOT_SET[ 12/ 12/ 20/ 1][0/0/0][ 80000][0-0] template
-# 69> ANGLE_OPEN| TEMPLATE| PARENT_NOT_SET[ 20/ 20/ 21/ 0][0/0/0][ 200000040][0-0] <
-# 69> ANGLE_CLOSE| TEMPLATE| PARENT_NOT_SET[ 21/ 21/ 22/ 0][0/0/0][ 200080040][0-0] >
-# 69> STRUCT| TEMPLATE| PARENT_NOT_SET[ 23/ 23/ 29/ 1][0/0/0][ a0000][0-0] struct
-# 69> WORD| NONE| PARENT_NOT_SET[ 30/ 30/ 40/ 1][0/0/0][ 20000][0-0] API_EXPORT
-# 69> TYPE| NONE| PARENT_NOT_SET[ 41/ 41/ 43/ 1][0/0/0][ 0][0-0] c2
-# 69> ANGLE_OPEN| TEMPLATE| PARENT_NOT_SET[ 43/ 43/ 44/ 0][0/0/0][ 200000040][0-0] <
-# 69> TYPE| NONE| PARENT_NOT_SET[ 44/ 44/ 47/ 0][0/1/0][ 80040][0-0] int
-# 69> ANGLE_CLOSE| TEMPLATE| PARENT_NOT_SET[ 47/ 47/ 48/ 0][0/0/0][ 200000040][0-0] >
-# 69> DC_MEMBER| NONE| PARENT_NOT_SET[ 48/ 48/ 50/ 0][0/0/0][ 200080000][0-0] ::
-# 69> TYPE| STRUCT| PARENT_NOT_SET[ 50/ 50/ 61/ 0][0/0/0][ 800000][0-0] inner_class
-# 69> ANGLE_OPEN| TEMPLATE| PARENT_NOT_SET[ 61/ 61/ 62/ 0][0/0/0][ 200000040][0-0] <
-# 69> TYPE| NONE| PARENT_NOT_SET[ 62/ 62/ 65/ 0][0/1/0][ 80040][0-0] int
-# 69> ANGLE_CLOSE| TEMPLATE| PARENT_NOT_SET[ 65/ 65/ 66/ 0][0/0/0][ 200000040][0-0] >
-# 69> PTR_TYPE| NONE| PARENT_NOT_SET[ 67/ 67/ 68/ 1][0/0/0][ 200080000][0-0] *
-# 69> TYPE| NONE| PARENT_NOT_SET[ 68/ 68/ 70/ 0][0/0/0][ 80000][0-0] c2
-# 69> ANGLE_OPEN| TEMPLATE| PARENT_NOT_SET[ 70/ 70/ 71/ 0][0/0/0][ 200000040][0-0] <
-# 69> TYPE| NONE| PARENT_NOT_SET[ 71/ 71/ 74/ 0][0/1/0][ 80040][0-0] int
-# 69> ANGLE_CLOSE| TEMPLATE| PARENT_NOT_SET[ 74/ 74/ 75/ 0][0/0/0][ 200000040][0-0] >
-# 69> DC_MEMBER| NONE| PARENT_NOT_SET[ 75/ 75/ 77/ 0][0/0/0][ 200080000][0-0] ::
-# 69> TYPE| NONE| PARENT_NOT_SET[ 77/ 77/ 88/ 0][0/0/0][ 0][0-0] inner_class
-# 69> ANGLE_OPEN| TEMPLATE| PARENT_NOT_SET[ 88/ 88/ 89/ 0][0/0/0][ 200000040][0-0] <
-# 69> TYPE| NONE| PARENT_NOT_SET[ 89/ 89/ 92/ 0][0/1/0][ 80040][0-0] int
-# 69> ANGLE_CLOSE| TEMPLATE| PARENT_NOT_SET[ 92/ 92/ 93/ 0][0/0/0][ 200000040][0-0] >
-# 69> DC_MEMBER| NONE| PARENT_NOT_SET[ 93/ 93/ 95/ 0][0/0/0][ 200080000][0-0] ::
-# 69> WORD| NONE| PARENT_NOT_SET[ 95/ 95/108/ 0][0/0/0][ 23000000][0-0] m_inner_class
-# 69> ASSIGN| NONE| PARENT_NOT_SET[109/109/110/ 1][0/0/0][ 200000000][0-0] =
-# 69> WORD| NONE| PARENT_NOT_SET[111/111/118/ 1][0/0/0][ 80000][0-0] nullptr
-# 69> SEMICOLON| STRUCT| PARENT_NOT_SET[118/118/119/ 0][0/0/0][ 200000000][0-0] ;
-# 69> NEWLINE| NONE| PARENT_NOT_SET[119/119/ 1/ 0][0/0/0][ 0][2-0]
-# 71> COMMENT_CPP| COMMENT_WHOLE| PARENT_NOT_SET[ 1/ 1/ 66/ 0][0/0/0][ 0][0-0] // template<...> class/struct[<...>] [macros/attributes ...] type
-# 71> NEWLINE| NONE| PARENT_NOT_SET[ 66/ 66/ 1/ 0][0/0/0][ 0][1-0]
-# 72> TEMPLATE| NONE| PARENT_NOT_SET[ 1/ 1/ 9/ 0][0/0/0][ c0000][0-0] template
-# 72> ANGLE_OPEN| TEMPLATE| PARENT_NOT_SET[ 9/ 9/ 10/ 0][0/0/0][ 200000040][0-0] <
-# 72> TYPENAME| NONE| PARENT_NOT_SET[ 10/ 10/ 18/ 0][0/1/0][ 80040][0-0] typename
-# 72> COMMA| NONE| PARENT_NOT_SET[ 18/ 18/ 19/ 0][0/1/0][ 200000040][0-0] ,
-# 72> TYPENAME| NONE| PARENT_NOT_SET[ 20/ 20/ 28/ 1][0/1/0][ 80040][0-0] typename
-# 72> ELLIPSIS| NONE| PARENT_NOT_SET[ 29/ 29/ 32/ 1][0/1/0][ 200000040][0-0] ...
-# 72> ANGLE_CLOSE| TEMPLATE| PARENT_NOT_SET[ 32/ 32/ 33/ 0][0/0/0][ 200000040][0-0] >
-# 72> NEWLINE| NONE| PARENT_NOT_SET[ 33/ 33/ 1/ 0][0/0/0][ 0][1-0]
-# 73> CLASS| TEMPLATE| PARENT_NOT_SET[ 1/ 1/ 6/ 0][0/0/0][1000000a0000][0-0] class
-# 73> WORD| NONE| PARENT_NOT_SET[ 7/ 7/ 17/ 1][0/0/0][100000020000][0-0] API_EXPORT
-# 73> TYPE| CLASS| PARENT_NOT_SET[ 18/ 18/ 20/ 1][0/0/0][100000000000][0-0] c2
-# 73> SEMICOLON| CLASS| PARENT_NOT_SET[ 20/ 20/ 21/ 0][0/0/0][ 200000000][0-0] ;
-# 73> NEWLINE| NONE| PARENT_NOT_SET[ 21/ 21/ 1/ 0][0/0/0][ 0][2-0]
-# 75> COMMENT_CPP| COMMENT_WHOLE| PARENT_NOT_SET[ 1/ 1/ 68/ 0][0/0/0][ 0][0-0] // class/struct [macros/attributes ...] type : bases ... { } x, ...
-# 75> NEWLINE| NONE| PARENT_NOT_SET[ 68/ 68/ 1/ 0][0/0/0][ 0][1-0]
-# 76> CLASS| NONE| PARENT_NOT_SET[ 1/ 1/ 6/ 0][0/0/0][ e0000][0-0] class
-# 76> WORD| NONE| PARENT_NOT_SET[ 7/ 7/ 17/ 1][0/0/0][ 20000][0-0] API_EXPORT
-# 76> ATTRIBUTE| NONE| PARENT_NOT_SET[ 18/ 18/ 31/ 1][0/0/0][ 0][0-0] __attribute__
-# 76> FPAREN_OPEN| ATTRIBUTE| PARENT_NOT_SET[ 31/ 31/ 32/ 0][0/0/0][ 200000000][0-0] (
-# 76> PAREN_OPEN| NONE| PARENT_NOT_SET[ 32/ 32/ 33/ 0][0/1/0][ 200080000][0-0] (
-# 76> WORD| NONE| PARENT_NOT_SET[ 33/ 33/ 47/ 0][0/2/0][ 80000][0-0] __deprecated__
-# 76> PAREN_CLOSE| NONE| PARENT_NOT_SET[ 47/ 47/ 48/ 0][0/1/0][ 200000000][0-0] )
-# 76> FPAREN_CLOSE| ATTRIBUTE| PARENT_NOT_SET[ 48/ 48/ 49/ 0][0/0/0][ 200000000][0-0] )
-# 76> MACRO_FUNC_CALL| NONE| PARENT_NOT_SET[ 50/ 50/ 57/ 1][0/0/0][ 0][0-0] ALIGNAS
-# 76> FPAREN_OPEN| MACRO_FUNC_CALL| PARENT_NOT_SET[ 57/ 57/ 58/ 0][0/0/0][ 200000000][0-0] (
-# 76> NUMBER| NONE| PARENT_NOT_SET[ 58/ 58/ 59/ 0][0/1/0][ 80000][0-0] 4
-# 76> FPAREN_CLOSE| MACRO_FUNC_CALL| PARENT_NOT_SET[ 59/ 59/ 60/ 0][0/0/0][ 200000000][0-0] )
-# 76> TYPE| CLASS| PARENT_NOT_SET[ 61/ 61/ 63/ 1][0/0/0][ 800000][0-0] c3
-# 76> NEWLINE| NONE| PARENT_NOT_SET[ 63/ 63/ 1/ 0][0/0/0][ 0][1-0]
-# 77> CLASS_COLON| CLASS| PARENT_NOT_SET[ 9/ 1/ 2/ 0][0/0/0][ 200000800][0-0] :
-# 77> QUALIFIER| NONE| PARENT_NOT_SET[ 11/ 3/ 9/ 1][0/0/0][ e0800][0-0] public
-# 77> TYPE| NONE| PARENT_NOT_SET[ 18/ 10/ 25/ 1][0/0/0][ 800][0-0] outer_namespace
-# 77> DC_MEMBER| NONE| PARENT_NOT_SET[ 33/ 25/ 27/ 0][0/0/0][ 200000800][0-0] ::
-# 77> TYPE| NONE| PARENT_NOT_SET[ 35/ 27/ 42/ 0][0/0/0][ 800][0-0] inner_namespace
-# 77> DC_MEMBER| NONE| PARENT_NOT_SET[ 50/ 42/ 44/ 0][0/0/0][ 200000800][0-0] ::
-# 77> TYPE| NONE| PARENT_NOT_SET[ 52/ 44/ 49/ 0][0/0/0][ 800][0-0] Base2
-# 77> ANGLE_OPEN| TEMPLATE| PARENT_NOT_SET[ 57/ 49/ 50/ 0][0/0/0][ 200000840][0-0] <
-# 77> TYPE| NONE| PARENT_NOT_SET[ 58/ 50/ 53/ 0][0/1/0][ 80840][0-0] int
-# 77> ANGLE_CLOSE| TEMPLATE| PARENT_NOT_SET[ 61/ 53/ 54/ 0][0/0/0][ 200000840][0-0] >
-# 77> COMMA| NONE| PARENT_NOT_SET[ 62/ 54/ 55/ 0][0/0/0][ 200080800][0-0] ,
-# 77> NEWLINE| NONE| PARENT_NOT_SET[ 63/ 55/ 3/ 0][0/0/0][ 0][1-0]
-# 78> QUALIFIER| NONE| PARENT_NOT_SET[ 9/ 3/ 9/ 0][0/0/0][ a0800][0-0] public
-# 78> TYPE| NONE| PARENT_NOT_SET[ 16/ 10/ 12/ 1][0/0/0][ 800][0-0] c2
-# 78> ANGLE_OPEN| TEMPLATE| PARENT_NOT_SET[ 18/ 12/ 13/ 0][0/0/0][ 200000840][0-0] <
-# 78> TYPE| NONE| PARENT_NOT_SET[ 19/ 13/ 16/ 0][0/1/0][ 80840][0-0] int
-# 78> ANGLE_CLOSE| TEMPLATE| PARENT_NOT_SET[ 22/ 16/ 17/ 0][0/0/0][ 200000840][0-0] >
-# 78> DC_MEMBER| NONE| PARENT_NOT_SET[ 23/ 17/ 19/ 0][0/0/0][ 200080800][0-0] ::
-# 78> TYPE| NONE| PARENT_NOT_SET[ 25/ 19/ 30/ 0][0/0/0][ 800][0-0] inner_class
-# 78> ANGLE_OPEN| TEMPLATE| PARENT_NOT_SET[ 36/ 30/ 31/ 0][0/0/0][ 200000840][0-0] <
-# 78> TYPE| NONE| PARENT_NOT_SET[ 37/ 31/ 34/ 0][0/1/0][ 80840][0-0] int
-# 78> ANGLE_CLOSE| TEMPLATE| PARENT_NOT_SET[ 40/ 34/ 35/ 0][0/0/0][ 200000840][0-0] >
-# 78> NEWLINE| NONE| PARENT_NOT_SET[ 41/ 35/ 1/ 0][0/0/0][ 0][1-0]
-# 79> BRACE_OPEN| CLASS| PARENT_NOT_SET[ 1/ 1/ 2/ 0][0/0/0][ 200080400][0-0] {
-# 79> NEWLINE| NONE| PARENT_NOT_SET[ 2/ 2/ 1/ 0][1/1/0][ 400][1-0]
-# 80> ACCESS| NONE| PARENT_NOT_SET[ 1/ 1/ 7/ 0][1/1/0][ c0400][0-0] public
-# 80> ACCESS_COLON| NONE| PARENT_NOT_SET[ 7/ 7/ 8/ 0][1/1/0][ 200000400][0-0] :
-# 80> NEWLINE| NONE| PARENT_NOT_SET[ 8/ 8/ 4/ 0][1/1/0][ 400][1-0]
-# 81> FUNC_CLASS_DEF| NONE| PARENT_NOT_SET[ 1/ 4/ 6/ 0][1/1/0][ c0400][0-0] c3
-# 81> FPAREN_OPEN| FUNC_CLASS_DEF| PARENT_NOT_SET[ 3/ 6/ 7/ 0][1/1/0][ 200000500][0-0] (
-# 81> TYPE| NONE| PARENT_NOT_SET[ 4/ 7/ 10/ 0][1/2/0][ 208a0510][0-0] int
-# 81> WORD| NONE| PARENT_NOT_SET[ 8/ 11/ 12/ 1][1/2/0][ 21000510][0-0] x
-# 81> ASSIGN_DEFAULT_ARG| FUNC_PROTO| PARENT_NOT_SET[ 10/ 13/ 14/ 1][1/2/0][ 200000510][0-0] =
-# 81> NUMBER| NONE| PARENT_NOT_SET[ 12/ 15/ 16/ 1][1/2/0][ 80510][0-0] 0
-# 81> COMMA| NONE| PARENT_NOT_SET[ 13/ 16/ 17/ 0][1/2/0][ 200000510][0-0] ,
-# 81> TYPE| NONE| PARENT_NOT_SET[ 15/ 18/ 21/ 1][1/2/0][ 208a0510][0-0] int
-# 81> WORD| NONE| PARENT_NOT_SET[ 19/ 22/ 23/ 1][1/2/0][ 21000510][0-0] y
-# 81> ASSIGN_DEFAULT_ARG| FUNC_PROTO| PARENT_NOT_SET[ 21/ 24/ 25/ 1][1/2/0][ 200000510][0-0] =
-# 81> NUMBER| NONE| PARENT_NOT_SET[ 23/ 26/ 27/ 1][1/2/0][ 80510][0-0] 0
-# 81> COMMA| NONE| PARENT_NOT_SET[ 24/ 27/ 28/ 0][1/2/0][ 200000510][0-0] ,
-# 81> TYPE| NONE| PARENT_NOT_SET[ 26/ 29/ 32/ 1][1/2/0][ 208a0510][0-0] int
-# 81> WORD| NONE| PARENT_NOT_SET[ 30/ 33/ 34/ 1][1/2/0][ 21000510][0-0] z
-# 81> ASSIGN_DEFAULT_ARG| FUNC_PROTO| PARENT_NOT_SET[ 32/ 35/ 36/ 1][1/2/0][ 200000510][0-0] =
-# 81> NUMBER| NONE| PARENT_NOT_SET[ 34/ 37/ 38/ 1][1/2/0][ 80510][0-0] 0
-# 81> FPAREN_CLOSE| FUNC_CLASS_DEF| PARENT_NOT_SET[ 35/ 38/ 39/ 0][1/1/0][ 200000510][0-0] )
-# 81> CONSTR_COLON| NONE| PARENT_NOT_SET[ 37/ 40/ 41/ 1][1/1/0][ 200000500][0-0] :
-# 81> FUNC_CTOR_VAR| NONE| PARENT_NOT_SET[ 39/ 42/ 45/ 1][1/1/0][ c0500][0-0] m_x
-# 81> FPAREN_OPEN| FUNC_CTOR_VAR| PARENT_NOT_SET[ 42/ 45/ 46/ 0][1/1/0][ 200000500][0-0] (
-# 81> WORD| NONE| PARENT_NOT_SET[ 43/ 46/ 47/ 0][1/2/0][ 80510][0-0] x
-# 81> FPAREN_CLOSE| FUNC_CTOR_VAR| PARENT_NOT_SET[ 44/ 47/ 48/ 0][1/1/0][ 200000510][0-0] )
-# 81> COMMA| NONE| PARENT_NOT_SET[ 45/ 48/ 49/ 0][1/1/0][ 200000500][0-0] ,
-# 81> FUNC_CTOR_VAR| NONE| PARENT_NOT_SET[ 47/ 50/ 53/ 1][1/1/0][ 80500][0-0] m_y
-# 81> FPAREN_OPEN| FUNC_CTOR_VAR| PARENT_NOT_SET[ 50/ 53/ 54/ 0][1/1/0][ 200000500][0-0] (
-# 81> WORD| NONE| PARENT_NOT_SET[ 51/ 54/ 55/ 0][1/2/0][ 80510][0-0] y
-# 81> FPAREN_CLOSE| FUNC_CTOR_VAR| PARENT_NOT_SET[ 52/ 55/ 56/ 0][1/1/0][ 200000510][0-0] )
-# 81> COMMA| NONE| PARENT_NOT_SET[ 53/ 56/ 57/ 0][1/1/0][ 200000500][0-0] ,
-# 81> FUNC_CTOR_VAR| NONE| PARENT_NOT_SET[ 55/ 58/ 61/ 1][1/1/0][ 80500][0-0] m_z
-# 81> FPAREN_OPEN| FUNC_CTOR_VAR| PARENT_NOT_SET[ 58/ 61/ 62/ 0][1/1/0][ 200000500][0-0] (
-# 81> WORD| NONE| PARENT_NOT_SET[ 59/ 62/ 63/ 0][1/2/0][ 80510][0-0] z
-# 81> FPAREN_CLOSE| FUNC_CTOR_VAR| PARENT_NOT_SET[ 60/ 63/ 64/ 0][1/1/0][ 200000510][0-0] )
-# 81> BRACE_OPEN| FUNC_CLASS_DEF| PARENT_NOT_SET[ 62/ 65/ 66/ 1][1/1/0][ 280000400][0-0] {
-# 81> NEWLINE| NONE| PARENT_NOT_SET[ 63/ 67/ 0/ 0][1/1/0][ 400][1-0]
-# 81> BRACE_CLOSE| FUNC_CLASS_DEF| PARENT_NOT_SET[ 1/ 67/ 68/ 1][1/1/0][ 280000400][0-0] }
-# 81> NEWLINE| NONE| PARENT_NOT_SET[ 2/ 68/ 4/ 0][1/1/0][ 400][2-0]
-# 83> TYPE| NONE| PARENT_NOT_SET[ 1/ 4/ 7/ 0][1/1/0][ 8e0400][0-0] int
-# 83> WORD| NONE| PARENT_NOT_SET[ 5/ 8/ 11/ 1][1/1/0][ 3000400][0-0] m_x
-# 83> SEMICOLON| NONE| PARENT_NOT_SET[ 8/ 11/ 12/ 0][1/1/0][ 200000400][0-0] ;
-# 83> NEWLINE| NONE| PARENT_NOT_SET[ 9/ 12/ 4/ 0][1/1/0][ 400][1-0]
-# 84> TYPE| NONE| PARENT_NOT_SET[ 1/ 4/ 7/ 0][1/1/0][ 8e0400][0-0] int
-# 84> WORD| NONE| PARENT_NOT_SET[ 5/ 8/ 11/ 1][1/1/0][ 3000400][0-0] m_y
-# 84> SEMICOLON| NONE| PARENT_NOT_SET[ 8/ 11/ 12/ 0][1/1/0][ 200000400][0-0] ;
-# 84> NEWLINE| NONE| PARENT_NOT_SET[ 9/ 12/ 4/ 0][1/1/0][ 400][1-0]
-# 85> TYPE| NONE| PARENT_NOT_SET[ 1/ 4/ 7/ 0][1/1/0][ 8e0400][0-0] int
-# 85> WORD| NONE| PARENT_NOT_SET[ 5/ 8/ 11/ 1][1/1/0][ 3000400][0-0] m_z
-# 85> SEMICOLON| NONE| PARENT_NOT_SET[ 8/ 11/ 12/ 0][1/1/0][ 200000400][0-0] ;
-# 85> NEWLINE| NONE| PARENT_NOT_SET[ 9/ 12/ 1/ 0][1/1/0][ 400][1-0]
-# 86> BRACE_CLOSE| CLASS| PARENT_NOT_SET[ 1/ 1/ 2/ 0][0/0/0][ 200000400][0-0] }
-# 86> WORD| NONE| PARENT_NOT_SET[ 3/ 3/ 6/ 1][0/0/0][ 70c0000][0-0] c31
-# 86> COMMA| NONE| PARENT_NOT_SET[ 6/ 6/ 7/ 0][0/0/0][ 200000000][0-0] ,
-# 86> PTR_TYPE| CLASS| PARENT_NOT_SET[ 8/ 8/ 9/ 1][0/0/0][ 200080000][0-0] *
-# 86> WORD| NONE| PARENT_NOT_SET[ 9/ 9/ 12/ 0][0/0/0][ 25080000][0-0] c32
-# 86> ASSIGN| NONE| PARENT_NOT_SET[ 13/ 13/ 14/ 1][0/0/0][ 200000000][0-0] =
-# 86> WORD| NONE| PARENT_NOT_SET[ 15/ 15/ 22/ 1][0/0/0][ 80000][0-0] nullptr
-# 86> COMMA| NONE| PARENT_NOT_SET[ 22/ 22/ 23/ 0][0/0/0][ 200000000][0-0] ,
-# 86> PTR_TYPE| CLASS| PARENT_NOT_SET[ 24/ 24/ 25/ 1][0/0/0][ 200080000][0-0] *
-# 86> WORD| NONE| PARENT_NOT_SET[ 25/ 25/ 28/ 0][0/0/0][ 5080000][0-0] c33
-# 86> TSQUARE| NONE| PARENT_NOT_SET[ 28/ 28/ 30/ 0][0/0/0][ 200000000][0-0] []
-# 86> ASSIGN| NONE| PARENT_NOT_SET[ 31/ 31/ 32/ 1][0/0/0][ 200000000][0-0] =
-# 86> BRACE_OPEN| BRACED_INIT_LIST| PARENT_NOT_SET[ 33/ 33/ 34/ 1][0/0/0][ 240080000][0-0] {
-# 86> WORD| NONE| PARENT_NOT_SET[ 35/ 35/ 42/ 1][1/1/0][ 40080000][0-0] nullptr
-# 86> COMMA| NONE| PARENT_NOT_SET[ 42/ 42/ 43/ 0][1/1/0][ 240000000][0-0] ,
-# 86> WORD| NONE| PARENT_NOT_SET[ 44/ 44/ 51/ 1][1/1/0][ 40080000][0-0] nullptr
-# 86> BRACE_CLOSE| BRACED_INIT_LIST| PARENT_NOT_SET[ 52/ 52/ 53/ 1][0/0/0][ 240000000][0-0] }
-# 86> COMMA| NONE| PARENT_NOT_SET[ 53/ 53/ 54/ 0][0/0/0][ 200000000][0-0] ,
-# 86> WORD| NONE| PARENT_NOT_SET[ 55/ 55/ 58/ 1][0/0/0][ 25080000][0-0] c34
-# 86> BRACE_OPEN| BRACED_INIT_LIST| PARENT_NOT_SET[ 58/ 58/ 59/ 0][0/0/0][ 240000000][0-0] {
-# 86> NUMBER| NONE| PARENT_NOT_SET[ 60/ 60/ 61/ 1][1/1/0][ 400c0000][0-0] 0
-# 86> COMMA| NONE| PARENT_NOT_SET[ 61/ 61/ 62/ 0][1/1/0][ 240000000][0-0] ,
-# 86> NUMBER| NONE| PARENT_NOT_SET[ 63/ 63/ 64/ 1][1/1/0][ 40080000][0-0] 1
-# 86> COMMA| NONE| PARENT_NOT_SET[ 64/ 64/ 65/ 0][1/1/0][ 240000000][0-0] ,
-# 86> NUMBER| NONE| PARENT_NOT_SET[ 66/ 66/ 67/ 1][1/1/0][ 40080000][0-0] 2
-# 86> BRACE_CLOSE| BRACED_INIT_LIST| PARENT_NOT_SET[ 67/ 67/ 68/ 0][0/0/0][ 240000000][0-0] }
-# 86> COMMA| NONE| PARENT_NOT_SET[ 68/ 68/ 69/ 0][0/0/0][ 200000000][0-0] ,
-# 86> PTR_TYPE| CLASS| PARENT_NOT_SET[ 70/ 70/ 71/ 1][0/0/0][ 200080000][0-0] *
-# 86> QUALIFIER| NONE| PARENT_NOT_SET[ 72/ 72/ 77/ 1][0/0/0][ a0000][0-0] const
-# 86> FUNC_CALL| NONE| PARENT_NOT_SET[ 78/ 78/ 81/ 1][0/0/0][ 5000000][0-0] c35
-# 86> FPAREN_OPEN| FUNC_CALL| PARENT_NOT_SET[ 81/ 81/ 82/ 0][0/0/0][ 200000000][0-0] (
-# 86> WORD| NONE| PARENT_NOT_SET[ 82/ 82/ 89/ 0][0/1/0][ 80010][0-0] nullptr
-# 86> FPAREN_CLOSE| FUNC_CALL| PARENT_NOT_SET[ 89/ 89/ 90/ 0][0/0/0][ 200000010][0-0] )
-# 86> COMMA| NONE| PARENT_NOT_SET[ 90/ 90/ 91/ 0][0/0/0][ 200000000][0-0] ,
-# 86> FUNC_CALL| NONE| PARENT_NOT_SET[ 92/ 92/ 95/ 1][0/0/0][ 5080000][0-0] c16
-# 86> FPAREN_OPEN| FUNC_CALL| PARENT_NOT_SET[ 95/ 95/ 96/ 0][0/0/0][ 200000000][0-0] (
-# 86> NUMBER| NONE| PARENT_NOT_SET[ 96/ 96/ 97/ 0][0/1/0][ 80010][0-0] 0
-# 86> COMMA| NONE| PARENT_NOT_SET[ 97/ 97/ 98/ 0][0/1/0][ 200000010][0-0] ,
-# 86> NUMBER| NONE| PARENT_NOT_SET[ 99/ 99/100/ 1][0/1/0][ 80010][0-0] 1
-# 86> COMMA| NONE| PARENT_NOT_SET[100/100/101/ 0][0/1/0][ 200000010][0-0] ,
-# 86> NUMBER| NONE| PARENT_NOT_SET[102/102/103/ 1][0/1/0][ 80010][0-0] 2
-# 86> FPAREN_CLOSE| FUNC_CALL| PARENT_NOT_SET[103/103/104/ 0][0/0/0][ 200000010][0-0] )
-# 86> SEMICOLON| CLASS| PARENT_NOT_SET[104/104/105/ 0][0/0/0][ 200000000][0-0] ;
-# 86> NEWLINE| NONE| PARENT_NOT_SET[105/105/ 1/ 0][0/0/0][ 0][2-0]
-# 88> COMMENT_CPP| COMMENT_WHOLE| PARENT_NOT_SET[ 1/ 1/ 52/ 0][0/0/0][ 0][0-0] // class/struct [macros/attributes ...] type x, ...
-# 88> NEWLINE| NONE| PARENT_NOT_SET[ 52/ 52/ 1/ 0][0/0/0][ 0][1-0]
-# 89> CLASS| NONE| PARENT_NOT_SET[ 1/ 1/ 6/ 0][0/0/0][ e0000][0-0] class
-# 89> ATTRIBUTE| NONE| PARENT_NOT_SET[ 7/ 7/ 20/ 1][0/0/0][ 0][0-0] __attribute__
-# 89> FPAREN_OPEN| ATTRIBUTE| PARENT_NOT_SET[ 20/ 20/ 21/ 0][0/0/0][ 200000000][0-0] (
-# 89> PAREN_OPEN| NONE| PARENT_NOT_SET[ 21/ 21/ 22/ 0][0/1/0][ 200080000][0-0] (
-# 89> WORD| NONE| PARENT_NOT_SET[ 22/ 22/ 36/ 0][0/2/0][ 80000][0-0] __deprecated__
-# 89> PAREN_CLOSE| NONE| PARENT_NOT_SET[ 36/ 36/ 37/ 0][0/1/0][ 200000000][0-0] )
-# 89> FPAREN_CLOSE| ATTRIBUTE| PARENT_NOT_SET[ 37/ 37/ 38/ 0][0/0/0][ 200000000][0-0] )
-# 89> WORD| NONE| PARENT_NOT_SET[ 39/ 39/ 49/ 1][0/0/0][ e0000][0-0] API_EXPORT
-# 89> MACRO_FUNC_CALL| NONE| PARENT_NOT_SET[ 50/ 50/ 57/ 1][0/0/0][ 0][0-0] ALIGNAS
-# 89> FPAREN_OPEN| MACRO_FUNC_CALL| PARENT_NOT_SET[ 57/ 57/ 58/ 0][0/0/0][ 200000000][0-0] (
-# 89> NUMBER| NONE| PARENT_NOT_SET[ 58/ 58/ 59/ 0][0/1/0][ 80000][0-0] 4
-# 89> FPAREN_CLOSE| MACRO_FUNC_CALL| PARENT_NOT_SET[ 59/ 59/ 60/ 0][0/0/0][ 200000000][0-0] )
-# 89> TYPE| CLASS| PARENT_NOT_SET[ 61/ 61/ 63/ 1][0/0/0][ 820000][0-0] c3
-# 89> WORD| NONE| PARENT_NOT_SET[ 64/ 64/ 67/ 1][0/0/0][ 3000000][0-0] c41
-# 89> COMMA| NONE| PARENT_NOT_SET[ 67/ 67/ 68/ 0][0/0/0][ 200000000][0-0] ,
-# 89> PTR_TYPE| CLASS| PARENT_NOT_SET[ 69/ 69/ 70/ 1][0/0/0][ 200080000][0-0] *
-# 89> WORD| NONE| PARENT_NOT_SET[ 70/ 70/ 73/ 0][0/0/0][ 21080000][0-0] c42
-# 89> ASSIGN| NONE| PARENT_NOT_SET[ 74/ 74/ 75/ 1][0/0/0][ 200000000][0-0] =
-# 89> WORD| NONE| PARENT_NOT_SET[ 76/ 76/ 79/ 1][0/0/0][ 80000][0-0] c32
-# 89> QUESTION| NONE| PARENT_NOT_SET[ 80/ 80/ 81/ 1][0/0/0][ 200000000][0-0] ?
-# 89> WORD| NONE| PARENT_NOT_SET[ 82/ 82/ 85/ 1][0/0/0][ 80000][0-0] c32
-# 89> COND_COLON| NONE| PARENT_NOT_SET[ 86/ 86/ 87/ 1][0/0/0][ 200000000][0-0] :
-# 89> WORD| NONE| PARENT_NOT_SET[ 88/ 88/ 95/ 1][0/0/0][ c0000][0-0] nullptr
-# 89> COMMA| NONE| PARENT_NOT_SET[ 95/ 95/ 96/ 0][0/0/0][ 200000000][0-0] ,
-# 89> PTR_TYPE| CLASS| PARENT_NOT_SET[ 97/ 97/ 98/ 1][0/0/0][ 200080000][0-0] *
-# 89> WORD| NONE| PARENT_NOT_SET[ 98/ 98/101/ 0][0/0/0][ 1080000][0-0] c43
-# 89> TSQUARE| NONE| PARENT_NOT_SET[101/101/103/ 0][0/0/0][ 200000000][0-0] []
-# 89> ASSIGN| NONE| PARENT_NOT_SET[104/104/105/ 1][0/0/0][ 200000000][0-0] =
-# 89> BRACE_OPEN| BRACED_INIT_LIST| PARENT_NOT_SET[106/106/107/ 1][0/0/0][ 240080000][0-0] {
-# 89> WORD| NONE| PARENT_NOT_SET[108/108/115/ 1][1/1/0][ 40080000][0-0] nullptr
-# 89> COMMA| NONE| PARENT_NOT_SET[115/115/116/ 0][1/1/0][ 240000000][0-0] ,
-# 89> WORD| NONE| PARENT_NOT_SET[117/117/124/ 1][1/1/0][ 40080000][0-0] nullptr
-# 89> BRACE_CLOSE| BRACED_INIT_LIST| PARENT_NOT_SET[125/125/126/ 1][0/0/0][ 240000000][0-0] }
-# 89> COMMA| NONE| PARENT_NOT_SET[126/126/127/ 0][0/0/0][ 200000000][0-0] ,
-# 89> WORD| NONE| PARENT_NOT_SET[128/128/131/ 1][0/0/0][ 21080000][0-0] c44
-# 89> BRACE_OPEN| BRACED_INIT_LIST| PARENT_NOT_SET[131/131/132/ 0][0/0/0][ 240000000][0-0] {
-# 89> NUMBER| NONE| PARENT_NOT_SET[133/133/134/ 1][1/1/0][ 400c0000][0-0] 0
-# 89> COMMA| NONE| PARENT_NOT_SET[134/134/135/ 0][1/1/0][ 240000000][0-0] ,
-# 89> NUMBER| NONE| PARENT_NOT_SET[136/136/137/ 1][1/1/0][ 40080000][0-0] 1
-# 89> COMMA| NONE| PARENT_NOT_SET[137/137/138/ 0][1/1/0][ 240000000][0-0] ,
-# 89> NUMBER| NONE| PARENT_NOT_SET[139/139/140/ 1][1/1/0][ 40080000][0-0] 2
-# 89> BRACE_CLOSE| BRACED_INIT_LIST| PARENT_NOT_SET[140/140/141/ 0][0/0/0][ 240000000][0-0] }
-# 89> COMMA| NONE| PARENT_NOT_SET[141/141/142/ 0][0/0/0][ 200000000][0-0] ,
-# 89> PTR_TYPE| CLASS| PARENT_NOT_SET[143/143/144/ 1][0/0/0][ 200080000][0-0] *
-# 89> QUALIFIER| NONE| PARENT_NOT_SET[145/145/150/ 1][0/0/0][ a0000][0-0] const
-# 89> FUNC_CALL| NONE| PARENT_NOT_SET[151/151/154/ 1][0/0/0][ 1000000][0-0] c45
-# 89> FPAREN_OPEN| FUNC_CALL| PARENT_NOT_SET[154/154/155/ 0][0/0/0][ 200000000][0-0] (
-# 89> WORD| NONE| PARENT_NOT_SET[155/155/162/ 0][0/1/0][ 80010][0-0] nullptr
-# 89> FPAREN_CLOSE| FUNC_CALL| PARENT_NOT_SET[162/162/163/ 0][0/0/0][ 200000010][0-0] )
-# 89> COMMA| NONE| PARENT_NOT_SET[163/163/164/ 0][0/0/0][ 200000000][0-0] ,
-# 89> FUNC_CALL| NONE| PARENT_NOT_SET[165/165/168/ 1][0/0/0][ 1080000][0-0] c46
-# 89> FPAREN_OPEN| FUNC_CALL| PARENT_NOT_SET[168/168/169/ 0][0/0/0][ 200000000][0-0] (
-# 89> NUMBER| NONE| PARENT_NOT_SET[169/169/170/ 0][0/1/0][ 80010][0-0] 0
-# 89> COMMA| NONE| PARENT_NOT_SET[170/170/171/ 0][0/1/0][ 200000010][0-0] ,
-# 89> NUMBER| NONE| PARENT_NOT_SET[172/172/173/ 1][0/1/0][ 80010][0-0] 1
-# 89> COMMA| NONE| PARENT_NOT_SET[173/173/174/ 0][0/1/0][ 200000010][0-0] ,
-# 89> NUMBER| NONE| PARENT_NOT_SET[175/175/176/ 1][0/1/0][ 80010][0-0] 2
-# 89> FPAREN_CLOSE| FUNC_CALL| PARENT_NOT_SET[176/176/177/ 0][0/0/0][ 200000010][0-0] )
-# 89> SEMICOLON| CLASS| PARENT_NOT_SET[177/177/178/ 0][0/0/0][ 200000000][0-0] ;
-# 89> NEWLINE| NONE| PARENT_NOT_SET[178/178/ 1/ 0][0/0/0][ 0][2-0]
-# 91> COMMENT_CPP| COMMENT_WHOLE| PARENT_NOT_SET[ 1/ 1/ 68/ 0][0/0/0][ 0][0-0] // class/struct [macros/attributes ...] type : bases ... { } x, ...
-# 91> NEWLINE| NONE| PARENT_NOT_SET[ 68/ 68/ 1/ 0][0/0/0][ 0][1-0]
-# 92> CLASS| NONE| PARENT_NOT_SET[ 1/ 1/ 6/ 0][0/0/0][ e0000][0-0] class
-# 92> FUNC_CALL| NONE| PARENT_NOT_SET[ 7/ 7/ 14/ 1][0/0/0][ 0][0-0] ALIGNAS
-# 92> FPAREN_OPEN| FUNC_CALL| PARENT_NOT_SET[ 14/ 14/ 15/ 0][0/0/0][ 200000000][0-0] (
-# 92> NUMBER| NONE| PARENT_NOT_SET[ 15/ 15/ 16/ 0][0/1/0][ 80010][0-0] 4
-# 92> FPAREN_CLOSE| FUNC_CALL| PARENT_NOT_SET[ 16/ 16/ 17/ 0][0/0/0][ 200000010][0-0] )
-# 92> WORD| NONE| PARENT_NOT_SET[ 18/ 18/ 28/ 1][0/0/0][ 20000][0-0] API_EXPORT
-# 92> ATTRIBUTE| NONE| PARENT_NOT_SET[ 29/ 29/ 42/ 1][0/0/0][ 0][0-0] __attribute__
-# 92> FPAREN_OPEN| ATTRIBUTE| PARENT_NOT_SET[ 42/ 42/ 43/ 0][0/0/0][ 200000000][0-0] (
-# 92> PAREN_OPEN| NONE| PARENT_NOT_SET[ 43/ 43/ 44/ 0][0/1/0][ 200080000][0-0] (
-# 92> WORD| NONE| PARENT_NOT_SET[ 44/ 44/ 58/ 0][0/2/0][ 80000][0-0] __deprecated__
-# 92> PAREN_CLOSE| NONE| PARENT_NOT_SET[ 58/ 58/ 59/ 0][0/1/0][ 200000000][0-0] )
-# 92> FPAREN_CLOSE| ATTRIBUTE| PARENT_NOT_SET[ 59/ 59/ 60/ 0][0/0/0][ 200000000][0-0] )
-# 92> NEWLINE| NONE| PARENT_NOT_SET[ 60/ 60/ 1/ 0][0/0/0][ 0][1-0]
-# 93> CLASS_COLON| CLASS| PARENT_NOT_SET[ 9/ 1/ 2/ 0][0/0/0][ 200000800][0-0] :
-# 93> QUALIFIER| NONE| PARENT_NOT_SET[ 11/ 3/ 9/ 1][0/0/0][ e0800][0-0] public
-# 93> TYPE| NONE| PARENT_NOT_SET[ 18/ 10/ 25/ 1][0/0/0][ 800][0-0] outer_namespace
-# 93> DC_MEMBER| NONE| PARENT_NOT_SET[ 33/ 25/ 27/ 0][0/0/0][ 200000800][0-0] ::
-# 93> TYPE| NONE| PARENT_NOT_SET[ 35/ 27/ 42/ 0][0/0/0][ 800][0-0] inner_namespace
-# 93> DC_MEMBER| NONE| PARENT_NOT_SET[ 50/ 42/ 44/ 0][0/0/0][ 200000800][0-0] ::
-# 93> TYPE| NONE| PARENT_NOT_SET[ 52/ 44/ 49/ 0][0/0/0][ 800][0-0] Base1
-# 93> NEWLINE| NONE| PARENT_NOT_SET[ 57/ 49/ 1/ 0][0/0/0][ 0][1-0]
-# 94> BRACE_OPEN| CLASS| PARENT_NOT_SET[ 1/ 1/ 2/ 0][0/0/0][ 200000000][0-0] {
-# 94> NEWLINE| NONE| PARENT_NOT_SET[ 2/ 2/ 1/ 0][1/1/0][ 400][1-0]
-# 95> ACCESS| NONE| PARENT_NOT_SET[ 1/ 1/ 7/ 0][1/1/0][ c0400][0-0] public
-# 95> ACCESS_COLON| NONE| PARENT_NOT_SET[ 7/ 7/ 8/ 0][1/1/0][ 200000400][0-0] :
-# 95> NEWLINE| NONE| PARENT_NOT_SET[ 8/ 8/ 4/ 0][1/1/0][ 400][1-0]
-# 96> TYPE| NONE| PARENT_NOT_SET[ 1/ 4/ 7/ 0][1/1/0][ 8e0400][0-0] int
-# 96> WORD| NONE| PARENT_NOT_SET[ 5/ 8/ 11/ 1][1/1/0][ 3000400][0-0] m_x
-# 96> SEMICOLON| NONE| PARENT_NOT_SET[ 8/ 11/ 12/ 0][1/1/0][ 200000400][0-0] ;
-# 96> NEWLINE| NONE| PARENT_NOT_SET[ 9/ 12/ 4/ 0][1/1/0][ 400][1-0]
-# 97> TYPE| NONE| PARENT_NOT_SET[ 1/ 4/ 7/ 0][1/1/0][ 8e0400][0-0] int
-# 97> WORD| NONE| PARENT_NOT_SET[ 5/ 8/ 11/ 1][1/1/0][ 3000400][0-0] m_y
-# 97> SEMICOLON| NONE| PARENT_NOT_SET[ 8/ 11/ 12/ 0][1/1/0][ 200000400][0-0] ;
-# 97> NEWLINE| NONE| PARENT_NOT_SET[ 9/ 12/ 4/ 0][1/1/0][ 400][1-0]
-# 98> TYPE| NONE| PARENT_NOT_SET[ 1/ 4/ 7/ 0][1/1/0][ 8e0400][0-0] int
-# 98> WORD| NONE| PARENT_NOT_SET[ 5/ 8/ 11/ 1][1/1/0][ 3000400][0-0] m_z
-# 98> SEMICOLON| NONE| PARENT_NOT_SET[ 8/ 11/ 12/ 0][1/1/0][ 200000400][0-0] ;
-# 98> NEWLINE| NONE| PARENT_NOT_SET[ 9/ 12/ 1/ 0][1/1/0][ 400][1-0]
-# 99> BRACE_CLOSE| CLASS| PARENT_NOT_SET[ 1/ 1/ 2/ 0][0/0/0][ 200000400][0-0] }
-# 99> WORD| NONE| PARENT_NOT_SET[ 3/ 3/ 6/ 1][0/0/0][ 70c0000][0-0] c51
-# 99> COMMA| NONE| PARENT_NOT_SET[ 6/ 6/ 7/ 0][0/0/0][ 200000000][0-0] ,
-# 99> PTR_TYPE| CLASS| PARENT_NOT_SET[ 8/ 8/ 9/ 1][0/0/0][ 200080000][0-0] *
-# 99> WORD| NONE| PARENT_NOT_SET[ 9/ 9/ 12/ 0][0/0/0][ 25080000][0-0] c52
-# 99> ASSIGN| NONE| PARENT_NOT_SET[ 13/ 13/ 14/ 1][0/0/0][ 200000000][0-0] =
-# 99> WORD| NONE| PARENT_NOT_SET[ 15/ 15/ 22/ 1][0/0/0][ 80000][0-0] nullptr
-# 99> COMMA| NONE| PARENT_NOT_SET[ 22/ 22/ 23/ 0][0/0/0][ 200000000][0-0] ,
-# 99> PTR_TYPE| CLASS| PARENT_NOT_SET[ 24/ 24/ 25/ 1][0/0/0][ 200080000][0-0] *
-# 99> WORD| NONE| PARENT_NOT_SET[ 25/ 25/ 28/ 0][0/0/0][ 5080000][0-0] c53
-# 99> TSQUARE| NONE| PARENT_NOT_SET[ 28/ 28/ 30/ 0][0/0/0][ 200000000][0-0] []
-# 99> ASSIGN| NONE| PARENT_NOT_SET[ 31/ 31/ 32/ 1][0/0/0][ 200000000][0-0] =
-# 99> BRACE_OPEN| BRACED_INIT_LIST| PARENT_NOT_SET[ 33/ 33/ 34/ 1][0/0/0][ 240080000][0-0] {
-# 99> WORD| NONE| PARENT_NOT_SET[ 35/ 35/ 42/ 1][1/1/0][ 40080000][0-0] nullptr
-# 99> COMMA| NONE| PARENT_NOT_SET[ 42/ 42/ 43/ 0][1/1/0][ 240000000][0-0] ,
-# 99> WORD| NONE| PARENT_NOT_SET[ 44/ 44/ 51/ 1][1/1/0][ 40080000][0-0] nullptr
-# 99> BRACE_CLOSE| BRACED_INIT_LIST| PARENT_NOT_SET[ 52/ 52/ 53/ 1][0/0/0][ 240000000][0-0] }
-# 99> SEMICOLON| CLASS| PARENT_NOT_SET[ 53/ 53/ 54/ 0][0/0/0][ 200000000][0-0] ;
-# 99> NEWLINE| NONE| PARENT_NOT_SET[ 54/ 54/ 1/ 0][0/0/0][ 0][3-0]
-# 102> COMMENT_CPP| COMMENT_WHOLE| PARENT_NOT_SET[ 1/ 1/ 44/ 0][0/0/0][ 0][0-0] // enum type : integral_type { ... } x, ...
-# 102> NEWLINE| NONE| PARENT_NOT_SET[ 44/ 44/ 1/ 0][0/0/0][ 0][1-0]
-# 103> ENUM| NONE| PARENT_NOT_SET[ 1/ 1/ 5/ 0][0/0/0][ e0000][0-0] enum
-# 103> TYPE| ENUM| PARENT_NOT_SET[ 6/ 6/ 8/ 1][0/0/0][ 800000][0-0] e1
-# 103> BIT_COLON| ENUM| PARENT_NOT_SET[ 9/ 9/ 10/ 1][0/0/0][ 200000000][0-0] :
-# 103> TYPE| BIT_COLON| PARENT_NOT_SET[ 11/ 11/ 15/ 1][0/0/0][ e0000][0-0] long
-# 103> TYPE| BIT_COLON| PARENT_NOT_SET[ 16/ 16/ 20/ 1][0/0/0][ 0][0-0] long
-# 103> BRACE_OPEN| ENUM| PARENT_NOT_SET[ 21/ 21/ 22/ 1][0/0/0][ 240000000][0-0] {
-# 103> WORD| NONE| PARENT_NOT_SET[ 23/ 23/ 25/ 1][1/1/0][ 400c0004][0-0] a1
-# 103> COMMA| NONE| PARENT_NOT_SET[ 25/ 25/ 26/ 0][1/1/0][ 240000004][0-0] ,
-# 103> WORD| NONE| PARENT_NOT_SET[ 27/ 27/ 29/ 1][1/1/0][ 40080004][0-0] b1
-# 103> COMMA| NONE| PARENT_NOT_SET[ 29/ 29/ 30/ 0][1/1/0][ 240000004][0-0] ,
-# 103> WORD| NONE| PARENT_NOT_SET[ 31/ 31/ 33/ 1][1/1/0][ 40080004][0-0] d1
-# 103> BRACE_CLOSE| ENUM| PARENT_NOT_SET[ 34/ 34/ 35/ 1][0/0/0][ 240000004][0-0] }
-# 103> WORD| NONE| PARENT_NOT_SET[ 36/ 36/ 39/ 1][0/0/0][ 70c0000][0-0] e11
-# 103> COMMA| NONE| PARENT_NOT_SET[ 39/ 39/ 40/ 0][0/0/0][ 200000000][0-0] ,
-# 103> WORD| NONE| PARENT_NOT_SET[ 41/ 41/ 44/ 1][0/0/0][ 5080000][0-0] e12
-# 103> COMMA| NONE| PARENT_NOT_SET[ 44/ 44/ 45/ 0][0/0/0][ 200000000][0-0] ,
-# 103> WORD| NONE| PARENT_NOT_SET[ 46/ 46/ 49/ 1][0/0/0][ 5080000][0-0] e13
-# 103> SEMICOLON| ENUM| PARENT_NOT_SET[ 49/ 49/ 50/ 0][0/0/0][ 200000000][0-0] ;
-# 103> NEWLINE| NONE| PARENT_NOT_SET[ 50/ 50/ 1/ 0][0/0/0][ 0][2-0]
-# 105> COMMENT_CPP| COMMENT_WHOLE| PARENT_NOT_SET[ 1/ 1/ 37/ 0][0/0/0][ 0][0-0] // enum type : integral_type { ... }
-# 105> NEWLINE| NONE| PARENT_NOT_SET[ 37/ 37/ 1/ 0][0/0/0][ 0][1-0]
-# 106> ENUM| NONE| PARENT_NOT_SET[ 1/ 1/ 5/ 0][0/0/0][ e0000][0-0] enum
-# 106> TYPE| ENUM| PARENT_NOT_SET[ 6/ 6/ 8/ 1][0/0/0][ 0][0-0] e2
-# 106> BIT_COLON| ENUM| PARENT_NOT_SET[ 9/ 9/ 10/ 1][0/0/0][ 200000000][0-0] :
-# 106> TYPE| BIT_COLON| PARENT_NOT_SET[ 11/ 11/ 19/ 1][0/0/0][ e0000][0-0] unsigned
-# 106> TYPE| BIT_COLON| PARENT_NOT_SET[ 20/ 20/ 23/ 1][0/0/0][ 0][0-0] int
-# 106> BRACE_OPEN| ENUM| PARENT_NOT_SET[ 24/ 24/ 25/ 1][0/0/0][ 240000000][0-0] {
-# 106> WORD| NONE| PARENT_NOT_SET[ 26/ 26/ 28/ 1][1/1/0][ 400c0004][0-0] a2
-# 106> COMMA| NONE| PARENT_NOT_SET[ 28/ 28/ 29/ 0][1/1/0][ 240000004][0-0] ,
-# 106> WORD| NONE| PARENT_NOT_SET[ 30/ 30/ 32/ 1][1/1/0][ 40080004][0-0] b2
-# 106> COMMA| NONE| PARENT_NOT_SET[ 32/ 32/ 33/ 0][1/1/0][ 240000004][0-0] ,
-# 106> WORD| NONE| PARENT_NOT_SET[ 34/ 34/ 36/ 1][1/1/0][ 40080004][0-0] d2
-# 106> BRACE_CLOSE| ENUM| PARENT_NOT_SET[ 37/ 37/ 38/ 1][0/0/0][ 240000004][0-0] }
-# 106> SEMICOLON| ENUM| PARENT_NOT_SET[ 38/ 38/ 39/ 0][0/0/0][ 200000000][0-0] ;
-# 106> NEWLINE| NONE| PARENT_NOT_SET[ 39/ 39/ 1/ 0][0/0/0][ 0][2-0]
-# 108> COMMENT_CPP| COMMENT_WHOLE| PARENT_NOT_SET[ 1/ 1/ 29/ 0][0/0/0][ 0][0-0] // enum type : integral_type
-# 108> NEWLINE| NONE| PARENT_NOT_SET[ 29/ 29/ 1/ 0][0/0/0][ 0][1-0]
-# 109> ENUM| NONE| PARENT_NOT_SET[ 1/ 1/ 5/ 0][0/0/0][1000000e0000][0-0] enum
-# 109> TYPE| ENUM| PARENT_NOT_SET[ 6/ 6/ 8/ 1][0/0/0][100000000000][0-0] e3
-# 109> BIT_COLON| ENUM| PARENT_NOT_SET[ 9/ 9/ 10/ 1][0/0/0][ 200000000][0-0] :
-# 109> TYPE| BIT_COLON| PARENT_NOT_SET[ 11/ 11/ 16/ 1][0/0/0][ c0000][0-0] short
-# 109> SEMICOLON| ENUM| PARENT_NOT_SET[ 16/ 16/ 17/ 0][0/0/0][ 200000000][0-0] ;
-# 109> NEWLINE| NONE| PARENT_NOT_SET[ 17/ 17/ 1/ 0][0/0/0][ 0][2-0]
-# 111> COMMENT_CPP| COMMENT_WHOLE| PARENT_NOT_SET[ 1/ 1/ 20/ 0][0/0/0][ 0][0-0] // enum type x, ...
-# 111> NEWLINE| NONE| PARENT_NOT_SET[ 20/ 20/ 1/ 0][0/0/0][ 0][1-0]
-# 112> ENUM| NONE| PARENT_NOT_SET[ 1/ 1/ 5/ 0][0/0/0][ e0000][0-0] enum
-# 112> TYPE| ENUM| PARENT_NOT_SET[ 6/ 6/ 8/ 1][0/0/0][ 820000][0-0] e3
-# 112> WORD| NONE| PARENT_NOT_SET[ 9/ 9/ 12/ 1][0/0/0][ 3000000][0-0] e31
-# 112> COMMA| NONE| PARENT_NOT_SET[ 12/ 12/ 13/ 0][0/0/0][ 200000000][0-0] ,
-# 112> WORD| NONE| PARENT_NOT_SET[ 14/ 14/ 17/ 1][0/0/0][ 1080000][0-0] e32
-# 112> SEMICOLON| ENUM| PARENT_NOT_SET[ 17/ 17/ 18/ 0][0/0/0][ 200000000][0-0] ;
-# 112> NEWLINE| NONE| PARENT_NOT_SET[ 18/ 18/ 1/ 0][0/0/0][ 0][2-0]
-# 114> COMMENT_CPP| COMMENT_WHOLE| PARENT_NOT_SET[ 1/ 1/ 50/ 0][0/0/0][ 0][0-0] // enum class type : integral_type { ... } x, ...
-# 114> NEWLINE| NONE| PARENT_NOT_SET[ 50/ 50/ 1/ 0][0/0/0][ 0][1-0]
-# 115> ENUM| NONE| PARENT_NOT_SET[ 1/ 1/ 5/ 0][0/0/0][ e0000][0-0] enum
-# 115> ENUM_CLASS| NONE| PARENT_NOT_SET[ 6/ 6/ 11/ 1][0/0/0][ 20000][0-0] class
-# 115> TYPE| ENUM| PARENT_NOT_SET[ 12/ 12/ 14/ 1][0/0/0][ 800000][0-0] e4
-# 115> BIT_COLON| ENUM| PARENT_NOT_SET[ 15/ 15/ 16/ 1][0/0/0][ 200000000][0-0] :
-# 115> TYPE| BIT_COLON| PARENT_NOT_SET[ 17/ 17/ 21/ 1][0/0/0][ e0000][0-0] long
-# 115> TYPE| BIT_COLON| PARENT_NOT_SET[ 22/ 22/ 26/ 1][0/0/0][ 0][0-0] long
-# 115> BRACE_OPEN| ENUM| PARENT_NOT_SET[ 27/ 27/ 28/ 1][0/0/0][ 240000000][0-0] {
-# 115> WORD| NONE| PARENT_NOT_SET[ 29/ 29/ 31/ 1][1/1/0][ 400c0004][0-0] a4
-# 115> COMMA| NONE| PARENT_NOT_SET[ 31/ 31/ 32/ 0][1/1/0][ 240000004][0-0] ,
-# 115> WORD| NONE| PARENT_NOT_SET[ 33/ 33/ 35/ 1][1/1/0][ 40080004][0-0] b4
-# 115> COMMA| NONE| PARENT_NOT_SET[ 35/ 35/ 36/ 0][1/1/0][ 240000004][0-0] ,
-# 115> WORD| NONE| PARENT_NOT_SET[ 37/ 37/ 39/ 1][1/1/0][ 40080004][0-0] d4
-# 115> BRACE_CLOSE| ENUM| PARENT_NOT_SET[ 40/ 40/ 41/ 1][0/0/0][ 240000004][0-0] }
-# 115> WORD| NONE| PARENT_NOT_SET[ 42/ 42/ 45/ 1][0/0/0][ 70c0000][0-0] e41
-# 115> COMMA| NONE| PARENT_NOT_SET[ 45/ 45/ 46/ 0][0/0/0][ 200000000][0-0] ,
-# 115> WORD| NONE| PARENT_NOT_SET[ 47/ 47/ 50/ 1][0/0/0][ 5080000][0-0] e42
-# 115> COMMA| NONE| PARENT_NOT_SET[ 50/ 50/ 51/ 0][0/0/0][ 200000000][0-0] ,
-# 115> WORD| NONE| PARENT_NOT_SET[ 52/ 52/ 55/ 1][0/0/0][ 5080000][0-0] e43
-# 115> COMMA| NONE| PARENT_NOT_SET[ 55/ 55/ 56/ 0][0/0/0][ 200000000][0-0] ,
-# 115> WORD| NONE| PARENT_NOT_SET[ 57/ 57/ 60/ 1][0/0/0][ 5080000][0-0] e44
-# 115> SEMICOLON| ENUM| PARENT_NOT_SET[ 60/ 60/ 61/ 0][0/0/0][ 200000000][0-0] ;
-# 115> NEWLINE| NONE| PARENT_NOT_SET[ 61/ 61/ 1/ 0][0/0/0][ 0][2-0]
-# 117> COMMENT_CPP| COMMENT_WHOLE| PARENT_NOT_SET[ 1/ 1/ 43/ 0][0/0/0][ 0][0-0] // enum class type : integral_type { ... }
-# 117> NEWLINE| NONE| PARENT_NOT_SET[ 43/ 43/ 1/ 0][0/0/0][ 0][1-0]
-# 118> ENUM| NONE| PARENT_NOT_SET[ 1/ 1/ 5/ 0][0/0/0][ e0000][0-0] enum
-# 118> ENUM_CLASS| NONE| PARENT_NOT_SET[ 6/ 6/ 11/ 1][0/0/0][ 20000][0-0] class
-# 118> TYPE| ENUM| PARENT_NOT_SET[ 12/ 12/ 14/ 1][0/0/0][ 0][0-0] e5
-# 118> BIT_COLON| ENUM| PARENT_NOT_SET[ 15/ 15/ 16/ 1][0/0/0][ 200000000][0-0] :
-# 118> TYPE| BIT_COLON| PARENT_NOT_SET[ 17/ 17/ 25/ 1][0/0/0][ e0000][0-0] unsigned
-# 118> TYPE| BIT_COLON| PARENT_NOT_SET[ 26/ 26/ 29/ 1][0/0/0][ 0][0-0] int
-# 118> BRACE_OPEN| ENUM| PARENT_NOT_SET[ 30/ 30/ 31/ 1][0/0/0][ 240000000][0-0] {
-# 118> WORD| NONE| PARENT_NOT_SET[ 32/ 32/ 34/ 1][1/1/0][ 400c0004][0-0] a5
-# 118> COMMA| NONE| PARENT_NOT_SET[ 34/ 34/ 35/ 0][1/1/0][ 240000004][0-0] ,
-# 118> WORD| NONE| PARENT_NOT_SET[ 36/ 36/ 38/ 1][1/1/0][ 40080004][0-0] b5
-# 118> COMMA| NONE| PARENT_NOT_SET[ 38/ 38/ 39/ 0][1/1/0][ 240000004][0-0] ,
-# 118> WORD| NONE| PARENT_NOT_SET[ 40/ 40/ 42/ 1][1/1/0][ 40080004][0-0] d5
-# 118> BRACE_CLOSE| ENUM| PARENT_NOT_SET[ 43/ 43/ 44/ 1][0/0/0][ 240000004][0-0] }
-# 118> SEMICOLON| ENUM| PARENT_NOT_SET[ 44/ 44/ 45/ 0][0/0/0][ 200000000][0-0] ;
-# 118> NEWLINE| NONE| PARENT_NOT_SET[ 45/ 45/ 1/ 0][0/0/0][ 0][2-0]
-# 120> COMMENT_CPP| COMMENT_WHOLE| PARENT_NOT_SET[ 1/ 1/ 35/ 0][0/0/0][ 0][0-0] // enum class type : integral_type
-# 120> NEWLINE| NONE| PARENT_NOT_SET[ 35/ 35/ 1/ 0][0/0/0][ 0][1-0]
-# 121> ENUM| NONE| PARENT_NOT_SET[ 1/ 1/ 5/ 0][0/0/0][1000000e0000][0-0] enum
-# 121> ENUM_CLASS| NONE| PARENT_NOT_SET[ 6/ 6/ 11/ 1][0/0/0][100000020000][0-0] class
-# 121> TYPE| ENUM| PARENT_NOT_SET[ 12/ 12/ 14/ 1][0/0/0][100000000000][0-0] e6
-# 121> BIT_COLON| ENUM| PARENT_NOT_SET[ 15/ 15/ 16/ 1][0/0/0][ 200000000][0-0] :
-# 121> TYPE| BIT_COLON| PARENT_NOT_SET[ 17/ 17/ 22/ 1][0/0/0][ c0000][0-0] short
-# 121> SEMICOLON| ENUM| PARENT_NOT_SET[ 22/ 22/ 23/ 0][0/0/0][ 200000000][0-0] ;
-# 121> NEWLINE| NONE| PARENT_NOT_SET[ 23/ 23/ 1/ 0][0/0/0][ 0][2-0]
-# 123> COMMENT_CPP| COMMENT_WHOLE| PARENT_NOT_SET[ 1/ 1/ 19/ 0][0/0/0][ 0][0-0] // enum class type
-# 123> NEWLINE| NONE| PARENT_NOT_SET[ 19/ 19/ 1/ 0][0/0/0][ 0][1-0]
-# 124> ENUM| NONE| PARENT_NOT_SET[ 1/ 1/ 5/ 0][0/0/0][1000000e0000][0-0] enum
-# 124> ENUM_CLASS| NONE| PARENT_NOT_SET[ 6/ 6/ 11/ 1][0/0/0][100000020000][0-0] class
-# 124> TYPE| ENUM| PARENT_NOT_SET[ 12/ 12/ 14/ 1][0/0/0][100000000000][0-0] e7
-# 124> SEMICOLON| ENUM| PARENT_NOT_SET[ 14/ 14/ 15/ 0][0/0/0][ 200000000][0-0] ;
-# 124> NEWLINE| NONE| PARENT_NOT_SET[ 15/ 15/ 1/ 0][0/0/0][ 0][2-0]
-# 126> COMMENT_CPP| COMMENT_WHOLE| PARENT_NOT_SET[ 1/ 1/ 39/ 0][0/0/0][ 0][0-0] // enum : integral_type { ... } x, ...
-# 126> NEWLINE| NONE| PARENT_NOT_SET[ 39/ 39/ 1/ 0][0/0/0][ 0][1-0]
-# 127> ENUM| NONE| PARENT_NOT_SET[ 1/ 1/ 5/ 0][0/0/0][ c0000][0-0] enum
-# 127> BIT_COLON| ENUM| PARENT_NOT_SET[ 6/ 6/ 7/ 1][0/0/0][ 200000000][0-0] :
-# 127> TYPE| BIT_COLON| PARENT_NOT_SET[ 8/ 8/ 12/ 1][0/0/0][ e0000][0-0] long
-# 127> TYPE| BIT_COLON| PARENT_NOT_SET[ 13/ 13/ 17/ 1][0/0/0][ 0][0-0] long
-# 127> BRACE_OPEN| ENUM| PARENT_NOT_SET[ 18/ 18/ 19/ 1][0/0/0][ 240000000][0-0] {
-# 127> WORD| NONE| PARENT_NOT_SET[ 20/ 20/ 22/ 1][1/1/0][ 400c0004][0-0] a8
-# 127> COMMA| NONE| PARENT_NOT_SET[ 22/ 22/ 23/ 0][1/1/0][ 240000004][0-0] ,
-# 127> WORD| NONE| PARENT_NOT_SET[ 24/ 24/ 26/ 1][1/1/0][ 40080004][0-0] b8
-# 127> COMMA| NONE| PARENT_NOT_SET[ 26/ 26/ 27/ 0][1/1/0][ 240000004][0-0] ,
-# 127> WORD| NONE| PARENT_NOT_SET[ 28/ 28/ 30/ 1][1/1/0][ 40080004][0-0] c8
-# 127> BRACE_CLOSE| ENUM| PARENT_NOT_SET[ 31/ 31/ 32/ 1][0/0/0][ 240000004][0-0] }
-# 127> WORD| NONE| PARENT_NOT_SET[ 33/ 33/ 36/ 1][0/0/0][ 70c0000][0-0] e81
-# 127> COMMA| NONE| PARENT_NOT_SET[ 36/ 36/ 37/ 0][0/0/0][ 200000000][0-0] ,
-# 127> WORD| NONE| PARENT_NOT_SET[ 38/ 38/ 41/ 1][0/0/0][ 5080000][0-0] e82
-# 127> SEMICOLON| ENUM| PARENT_NOT_SET[ 41/ 41/ 42/ 0][0/0/0][ 200000000][0-0] ;
-# 127> NEWLINE| NONE| PARENT_NOT_SET[ 42/ 42/ 1/ 0][0/0/0][ 0][2-0]
-# 129> COMMENT_CPP| COMMENT_WHOLE| PARENT_NOT_SET[ 1/ 1/ 23/ 0][0/0/0][ 0][0-0] // enum { ... } x, ...
-# 129> NEWLINE| NONE| PARENT_NOT_SET[ 23/ 23/ 1/ 0][0/0/0][ 0][1-0]
-# 130> ENUM| NONE| PARENT_NOT_SET[ 1/ 1/ 5/ 0][0/0/0][ c0000][0-0] enum
-# 130> BRACE_OPEN| ENUM| PARENT_NOT_SET[ 6/ 6/ 7/ 1][0/0/0][ 240000000][0-0] {
-# 130> WORD| NONE| PARENT_NOT_SET[ 8/ 8/ 10/ 1][1/1/0][ 400c0004][0-0] a9
-# 130> COMMA| NONE| PARENT_NOT_SET[ 10/ 10/ 11/ 0][1/1/0][ 240000004][0-0] ,
-# 130> WORD| NONE| PARENT_NOT_SET[ 12/ 12/ 14/ 1][1/1/0][ 40080004][0-0] b9
-# 130> COMMA| NONE| PARENT_NOT_SET[ 14/ 14/ 15/ 0][1/1/0][ 240000004][0-0] ,
-# 130> WORD| NONE| PARENT_NOT_SET[ 16/ 16/ 18/ 1][1/1/0][ 40080004][0-0] c9
-# 130> BRACE_CLOSE| ENUM| PARENT_NOT_SET[ 19/ 19/ 20/ 1][0/0/0][ 240000004][0-0] }
-# 130> WORD| NONE| PARENT_NOT_SET[ 21/ 21/ 24/ 1][0/0/0][ 70c0000][0-0] e91
-# 130> COMMA| NONE| PARENT_NOT_SET[ 24/ 24/ 25/ 0][0/0/0][ 200000000][0-0] ,
-# 130> WORD| NONE| PARENT_NOT_SET[ 26/ 26/ 29/ 1][0/0/0][ 5080000][0-0] e92
-# 130> SEMICOLON| ENUM| PARENT_NOT_SET[ 29/ 29/ 30/ 0][0/0/0][ 200000000][0-0] ;
-# 130> NEWLINE| NONE| PARENT_NOT_SET[ 30/ 30/ 1/ 0][0/0/0][ 0][2-0]
-# 132> UNION| NONE| PARENT_NOT_SET[ 1/ 1/ 6/ 0][0/0/0][ e0000][0-0] union
-# 132> WORD| NONE| PARENT_NOT_SET[ 7/ 7/ 17/ 1][0/0/0][ 20000][0-0] API_EXPORT
-# 132> TYPE| UNION| PARENT_NOT_SET[ 18/ 18/ 20/ 1][0/0/0][ 800000][0-0] u1
-# 132> BRACE_OPEN| UNION| PARENT_NOT_SET[ 21/ 21/ 22/ 1][0/0/0][ 240000000][0-0] {
-# 132> TYPE| NONE| PARENT_NOT_SET[ 23/ 23/ 26/ 1][1/1/0][ 408e0000][0-0] int
-# 132> WORD| NONE| PARENT_NOT_SET[ 27/ 27/ 28/ 1][1/1/0][ 43000000][0-0] x
-# 132> SEMICOLON| NONE| PARENT_NOT_SET[ 28/ 28/ 29/ 0][1/1/0][ 240000000][0-0] ;
-# 132> TYPE| NONE| PARENT_NOT_SET[ 30/ 30/ 34/ 1][1/1/0][ 408e0000][0-0] long
-# 132> WORD| NONE| PARENT_NOT_SET[ 35/ 35/ 36/ 1][1/1/0][ 43000000][0-0] y
-# 132> SEMICOLON| NONE| PARENT_NOT_SET[ 36/ 36/ 37/ 0][1/1/0][ 240000000][0-0] ;
-# 132> BRACE_CLOSE| UNION| PARENT_NOT_SET[ 38/ 38/ 39/ 1][0/0/0][ 240000000][0-0] }
-# 132> WORD| NONE| PARENT_NOT_SET[ 40/ 40/ 43/ 1][0/0/0][ 70c0000][0-0] u11
-# 132> COMMA| NONE| PARENT_NOT_SET[ 43/ 43/ 44/ 0][0/0/0][ 200000000][0-0] ,
-# 132> PTR_TYPE| UNION| PARENT_NOT_SET[ 45/ 45/ 46/ 1][0/0/0][ 200080000][0-0] *
-# 132> WORD| NONE| PARENT_NOT_SET[ 46/ 46/ 49/ 0][0/0/0][ 25080000][0-0] u12
-# 132> ASSIGN| NONE| PARENT_NOT_SET[ 50/ 50/ 51/ 1][0/0/0][ 200000000][0-0] =
-# 132> WORD| NONE| PARENT_NOT_SET[ 52/ 52/ 59/ 1][0/0/0][ 80000][0-0] nullptr
-# 132> COMMA| NONE| PARENT_NOT_SET[ 59/ 59/ 60/ 0][0/0/0][ 200000000][0-0] ,
-# 132> PTR_TYPE| UNION| PARENT_NOT_SET[ 61/ 61/ 62/ 1][0/0/0][ 200080000][0-0] *
-# 132> WORD| NONE| PARENT_NOT_SET[ 62/ 62/ 65/ 0][0/0/0][ 25080000][0-0] u13
-# 132> BRACE_OPEN| BRACED_INIT_LIST| PARENT_NOT_SET[ 65/ 65/ 66/ 0][0/0/0][ 240000000][0-0] {
-# 132> NUMBER| NONE| PARENT_NOT_SET[ 66/ 66/ 67/ 0][1/1/0][ 400c0000][0-0] 0
-# 132> BRACE_CLOSE| BRACED_INIT_LIST| PARENT_NOT_SET[ 67/ 67/ 68/ 0][0/0/0][ 240000000][0-0] }
-# 132> SEMICOLON| UNION| PARENT_NOT_SET[ 68/ 68/ 69/ 0][0/0/0][ 200000000][0-0] ;
-# 132> NEWLINE| NONE| PARENT_NOT_SET[ 69/ 69/ 1/ 0][0/0/0][ 0][2-0]
-# 134> UNION| NONE| PARENT_NOT_SET[ 1/ 1/ 6/ 0][0/0/0][ e0000][0-0] union
-# 134> WORD| NONE| PARENT_NOT_SET[ 7/ 7/ 17/ 1][0/0/0][ 20000][0-0] API_EXPORT
-# 134> TYPE| UNION| PARENT_NOT_SET[ 18/ 18/ 20/ 1][0/0/0][ 820000][0-0] u1
-# 134> WORD| NONE| PARENT_NOT_SET[ 21/ 21/ 24/ 1][0/0/0][ 3000000][0-0] u21
-# 134> SEMICOLON| UNION| PARENT_NOT_SET[ 24/ 24/ 25/ 0][0/0/0][ 200000000][0-0] ;
-# 134> NEWLINE| NONE| PARENT_NOT_SET[ 25/ 25/ 1/ 0][0/0/0][ 0][1-0]
-# -=====-
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/logger_cs_L_99.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/logger_cs_L_99.txt
deleted file mode 100644
index e839831f..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/logger_cs_L_99.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-tokenize(): orig_line is , orig_col is , text() '// Turning on sp_inside_braces=add fixes it, but also changes a lot of initializer code we don't want to touch (like x = {}). May need special support, or perhaps there's a bug..', type is COMMENT_CPP, orig_col_end is
-tokenize(): orig_line is , orig_col is , <Newline>, nl is
-tokenize(): orig_line is , orig_col is , text() '// long comment line(s), such as here, might be too long to produce a correct LOG-file such as', type is COMMENT_CPP, orig_col_end is
-tokenize(): orig_line is , orig_col is , <Newline>, nl is
-tokenize(): orig_line is , orig_col is , text() '// with the use of option -L A', type is COMMENT_CPP, orig_col_end is
-tokenize(): orig_line is , orig_col is , <Newline>, nl is
-tokenize(): orig_line is , orig_col is , text() '// in such a case, the output of the log will be cut.', type is COMMENT_CPP, orig_col_end is
-tokenize(): orig_line is , orig_col is , <Newline>, nl is
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/p.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/p.txt
deleted file mode 100644
index f74c1cb2..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/p.txt
+++ /dev/null
@@ -1,79 +0,0 @@
-
-newlines = crlf
-# option(s) with 'not default' value: 1
-#
-# -=====-
-# number of loops = 0
-# -=====-
-# language = CPP
-# -=====-
-# Line Tag Parent_type Type of the parent Columns Br/Lvl/pp Flag Nl Text
-# 1> PREPROC| PP_DEFINE| PARENT_NOT_SET[ 1/ 1/ 2/ 0][1/1/0][ 2001c0001][0-0] #
-# 1> PP_DEFINE| NONE| PARENT_NOT_SET[ 2/ 2/ 8/ 0][1/1/0][ 20001][0-0] define
-# 1> MACRO| NONE| PARENT_NOT_SET[ 9/ 9/ 10/ 1][1/1/0][ 20001][0-0] x
-# 1> WORD| NONE| PARENT_NOT_SET[ 11/ 11/ 18/ 1][1/1/0][ c0001][0-0] s23_foo
-# 1> ASSIGN| NONE| PARENT_NOT_SET[ 19/ 19/ 21/ 1][1/1/0][ 200000001][0-0] +=
-# 1> NL_CONT| NONE| PARENT_NOT_SET[ 22/ 22/ 1/ 1][1/1/0][ 80001][1-0] \
-# 2> WORD| NONE| PARENT_NOT_SET[ 9/ 1/ 7/ 0][1/1/0][ 80001][0-0] s8_foo
-# 2> ARITH| NONE| PARENT_NOT_SET[ 16/ 8/ 9/ 1][1/1/0][ 200000001][0-0] *
-# 2> WORD| NONE| PARENT_NOT_SET[ 18/ 10/ 17/ 1][1/1/0][ 80001][0-0] s16_bar
-# 2> SEMICOLON| NONE| PARENT_NOT_SET[ 25/ 17/ 18/ 0][1/1/0][ 200000001][0-0] ;
-# 2> NEWLINE| NONE| PARENT_NOT_SET[ 26/ 18/ 1/ 0][0/0/0][ 0][2-0]
-# 4> STRUCT| NONE| PARENT_NOT_SET[ 1/ 1/ 7/ 0][0/0/0][ e0000][0-0] struct
-# 4> TYPE| STRUCT| PARENT_NOT_SET[ 8/ 8/ 21/ 1][0/0/0][ 0][0-0] TelegramIndex
-# 4> NEWLINE| NONE| PARENT_NOT_SET[ 21/ 21/ 1/ 0][0/0/0][ 0][1-0]
-# 5> BRACE_OPEN| STRUCT| PARENT_NOT_SET[ 1/ 1/ 2/ 0][0/0/0][ 200000400][0-0] {
-# 5> NEWLINE| NONE| PARENT_NOT_SET[ 2/ 2/ 1/ 0][1/1/0][ 2][1-0]
-# 6> FUNC_CLASS_DEF| NONE| PARENT_NOT_SET[ 9/ 1/ 14/ 0][1/1/0][ c0402][0-0] TelegramIndex
-# 6> FPAREN_OPEN| FUNC_CLASS_DEF| PARENT_NOT_SET[ 22/ 14/ 15/ 0][1/1/0][ 200000502][0-0] (
-# 6> QUALIFIER| NONE| PARENT_NOT_SET[ 23/ 15/ 20/ 0][1/2/0][ a0512][0-0] const
-# 6> TYPE| NONE| PARENT_NOT_SET[ 29/ 21/ 25/ 1][1/2/0][ 800512][0-0] char
-# 6> PTR_TYPE| NONE| PARENT_NOT_SET[ 33/ 25/ 26/ 0][1/2/0][ 200000512][0-0] *
-# 6> WORD| NONE| PARENT_NOT_SET[ 35/ 27/ 29/ 1][1/2/0][ 1000512][0-0] pN
-# 6> COMMA| NONE| PARENT_NOT_SET[ 37/ 29/ 30/ 0][1/2/0][ 200000512][0-0] ,
-# 6> TYPE| NONE| PARENT_NOT_SET[ 39/ 31/ 39/ 1][1/2/0][ 8a0512][0-0] unsigned
-# 6> TYPE| NONE| PARENT_NOT_SET[ 48/ 40/ 44/ 1][1/2/0][ 820512][0-0] long
-# 6> WORD| NONE| PARENT_NOT_SET[ 53/ 45/ 47/ 1][1/2/0][ 1000512][0-0] nI
-# 6> FPAREN_CLOSE| FUNC_CLASS_DEF| PARENT_NOT_SET[ 55/ 47/ 48/ 0][1/1/0][ 200000512][0-0] )
-# 6> CONSTR_COLON| NONE| PARENT_NOT_SET[ 57/ 49/ 50/ 1][1/1/0][ 200000502][0-0] :
-# 6> NEWLINE| NONE| PARENT_NOT_SET[ 58/ 50/ 1/ 0][1/1/0][ 2][1-0]
-# 7> FUNC_CTOR_VAR| NONE| PARENT_NOT_SET[ 17/ 1/ 9/ 0][1/1/0][ c0502][0-0] pTelName
-# 7> FPAREN_OPEN| FUNC_CTOR_VAR| PARENT_NOT_SET[ 25/ 9/ 10/ 0][1/1/0][ 200000502][0-0] (
-# 7> WORD| NONE| PARENT_NOT_SET[ 26/ 10/ 12/ 0][1/2/0][ 80512][0-0] pN
-# 7> FPAREN_CLOSE| FUNC_CTOR_VAR| PARENT_NOT_SET[ 28/ 12/ 13/ 0][1/1/0][ 200000512][0-0] )
-# 7> COMMA| NONE| PARENT_NOT_SET[ 29/ 13/ 14/ 0][1/1/0][ 200000502][0-0] ,
-# 7> NEWLINE| NONE| PARENT_NOT_SET[ 30/ 14/ 1/ 0][1/1/0][ 2][1-0]
-# 8> FUNC_CTOR_VAR| NONE| PARENT_NOT_SET[ 17/ 1/ 10/ 0][1/1/0][ 80502][0-0] nTelIndex
-# 8> FPAREN_OPEN| FUNC_CTOR_VAR| PARENT_NOT_SET[ 26/ 10/ 11/ 0][1/1/0][ 200000502][0-0] (
-# 8> WORD| NONE| PARENT_NOT_SET[ 27/ 11/ 12/ 0][1/2/0][ 80512][0-0] n
-# 8> FPAREN_CLOSE| FUNC_CTOR_VAR| PARENT_NOT_SET[ 28/ 12/ 13/ 0][1/1/0][ 200000512][0-0] )
-# 8> NEWLINE| NONE| PARENT_NOT_SET[ 29/ 13/ 1/ 0][1/1/0][ 2][1-0]
-# 9> BRACE_OPEN| FUNC_CLASS_DEF| PARENT_NOT_SET[ 9/ 1/ 2/ 0][1/1/0][ 280000402][0-0] {
-# 9> NEWLINE| NONE| PARENT_NOT_SET[ 10/ 2/ 1/ 0][2/2/0][ 2][1-0]
-# 10> BRACE_CLOSE| FUNC_CLASS_DEF| PARENT_NOT_SET[ 9/ 1/ 2/ 0][1/1/0][ 280000402][0-0] }
-# 10> NEWLINE| NONE| PARENT_NOT_SET[ 10/ 2/ 1/ 0][1/1/0][ 2][2-0]
-# 12> DESTRUCTOR| FUNC_CLASS_DEF| PARENT_NOT_SET[ 9/ 1/ 2/ 0][1/1/0][ 2000c0402][0-0] ~
-# 12> FUNC_CLASS_DEF| DESTRUCTOR| PARENT_NOT_SET[ 10/ 2/ 15/ 0][1/1/0][ 80402][0-0] TelegramIndex
-# 12> FPAREN_OPEN| FUNC_CLASS_DEF| PARENT_NOT_SET[ 23/ 15/ 16/ 0][1/1/0][ 200000502][0-0] (
-# 12> FPAREN_CLOSE| FUNC_CLASS_DEF| PARENT_NOT_SET[ 24/ 16/ 17/ 0][1/1/0][ 200000512][0-0] )
-# 12> NEWLINE| NONE| PARENT_NOT_SET[ 25/ 17/ 1/ 0][1/1/0][ 2][1-0]
-# 13> BRACE_OPEN| FUNC_CLASS_DEF| PARENT_NOT_SET[ 9/ 1/ 2/ 0][1/1/0][ 280000402][0-0] {
-# 13> NEWLINE| NONE| PARENT_NOT_SET[ 10/ 2/ 1/ 0][2/2/0][ 2][1-0]
-# 14> BRACE_CLOSE| FUNC_CLASS_DEF| PARENT_NOT_SET[ 9/ 1/ 2/ 0][1/1/0][ 280000402][0-0] }
-# 14> NEWLINE| NONE| PARENT_NOT_SET[ 10/ 2/ 1/ 0][1/1/0][ 2][2-0]
-# 16> QUALIFIER| NONE| PARENT_NOT_SET[ 9/ 1/ 6/ 0][1/1/0][ 8e0402][0-0] const
-# 16> TYPE| NONE| PARENT_NOT_SET[ 15/ 7/ 11/ 1][1/1/0][ 800402][0-0] char
-# 16> PTR_TYPE| NONE| PARENT_NOT_SET[ 19/ 11/ 12/ 0][1/1/0][ 200800402][0-0] *
-# 16> QUALIFIER| NONE| PARENT_NOT_SET[ 21/ 13/ 18/ 1][1/1/0][ 820402][0-0] const
-# 16> WORD| NONE| PARENT_NOT_SET[ 27/ 19/ 27/ 1][1/1/0][ 3000402][0-0] pTelName
-# 16> SEMICOLON| NONE| PARENT_NOT_SET[ 35/ 27/ 28/ 0][1/1/0][ 200000402][0-0] ;
-# 16> NEWLINE| NONE| PARENT_NOT_SET[ 36/ 28/ 1/ 0][1/1/0][ 2][1-0]
-# 17> TYPE| NONE| PARENT_NOT_SET[ 9/ 1/ 9/ 0][1/1/0][ 8e0402][0-0] unsigned
-# 17> TYPE| NONE| PARENT_NOT_SET[ 18/ 10/ 14/ 1][1/1/0][ 820402][0-0] long
-# 17> WORD| NONE| PARENT_NOT_SET[ 23/ 15/ 24/ 1][1/1/0][ 3000402][0-0] nTelIndex
-# 17> SEMICOLON| NONE| PARENT_NOT_SET[ 32/ 24/ 25/ 0][1/1/0][ 200000402][0-0] ;
-# 17> NEWLINE| NONE| PARENT_NOT_SET[ 33/ 25/ 1/ 0][1/1/0][ 2][1-0]
-# 18> BRACE_CLOSE| STRUCT| PARENT_NOT_SET[ 1/ 1/ 2/ 0][0/0/0][ 200000402][0-0] }
-# 18> SEMICOLON| STRUCT| PARENT_NOT_SET[ 2/ 2/ 3/ 0][0/0/0][ 200000000][0-0] ;
-# 18> NEWLINE| NONE| PARENT_NOT_SET[ 3/ 3/ 1/ 0][0/0/0][ 0][2-0]
-# -=====-
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/pc-.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/pc-.txt
deleted file mode 100644
index 63ed3d2c..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/pc-.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-
-# option(s) with 'not default' value: 0
-#
-# -=====-
-# number of loops = 0
-# -=====-
-# language = C
-# -=====-
-# Line Tag Parent_type Type of the parent Columns Br/Lvl/pp Flag Nl Text
-# -=====-
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/replace.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/replace.txt
deleted file mode 100644
index 6addb57b..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/replace.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Parsing: input/I-3310.c as language C
-Parsing: input/backup.h as language C-Header
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/truncate.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/truncate.txt
deleted file mode 100644
index 8c428d84..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/truncate.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-output_text : text() is '// 1 6789A123456789B123456789c12345678 ... <The string is truncated>', type is COMMENT_CPP, orig_line is 1, column is 1, nl is 0
-output_cmt_start : no cmt_insert_file
-output_comment_cpp : set cont_text to '// '
-output_text : text() is '', type is NEWLINE, orig_line is 1, column is 74, nl is 1
-output_text : text() is '// 2 678 ... <The string is truncated>', type is COMMENT_CPP, orig_line is 2, column is 1, nl is 0
-output_cmt_start : no cmt_insert_file
-output_comment_cpp : set cont_text to '// '
-output_text : text() is '', type is NEWLINE, orig_line is 2, column is 40, nl is 1
-output_text : text() is '// 3 6789A123456789B123456789c12345678', type is COMMENT_CPP, orig_line is 3, column is 1, nl is 0
-output_cmt_start : no cmt_insert_file
-output_comment_cpp : set cont_text to '// '
-output_text : text() is '', type is NEWLINE, orig_line is 3, column is 39, nl is 1
-output_text : text() is '// 4 6789A123456789B123456789c1234567', type is COMMENT_CPP, orig_line is 4, column is 1, nl is 0
-output_cmt_start : no cmt_insert_file
-output_comment_cpp : set cont_text to '// '
-output_text : text() is '', type is NEWLINE, orig_line is 4, column is 38, nl is 1
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/universalindent.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/universalindent.cfg
deleted file mode 100644
index bdf8aaba..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/universalindent.cfg
+++ /dev/null
@@ -1,7018 +0,0 @@
-[header]
-categories=General options|Spacing options|Indenting options|Newline adding and removing options|Blank line options|Positioning options|Line splitting options|Code alignment options (not left column spaces/tabs)|Comment modification options|Code modifying options (non-whitespace)|Preprocessor options|Sort includes options|Use or Do not Use options|Warn levels - 1: error, 2: warning (default), 3: note
-cfgFileParameterEnding=cr
-configFilename=uncrustify.cfg
-fileTypes=*.c|*.cpp|*.d|*.cs|*.vala|*.java|*.pawn|*.p|*.sma|*.inl|*.h|*.cxx|*.hpp|*.hxx|*.cc|*.cp|*.C|*.CPP|*.c++|*.di|*.m|*.mm|*.sqc|*.es
-indenterFileName=uncrustify
-indenterName=Uncrustify (C, C++, C#, ObjectiveC, D, Java, Pawn, VALA)
-inputFileName=indentinput
-inputFileParameter="-f "
-manual=http://uncrustify.sourceforge.net/config.txt
-outputFileName=indentoutput
-outputFileParameter="-o "
-stringparaminquotes=false
-parameterOrder=ipo
-showHelpParameter=-h
-stringparaminquotes=false
-useCfgFileParameter="-c "
-
-
-[Newlines]
-Category=0
-Description="<html>The type of line endings.<br/><br/>Default: auto</html>"
-Enabled=false
-EditorType=multiple
-Choices=newlines=lf|newlines=crlf|newlines=cr|newlines=auto
-ChoicesReadable="Newlines Unix|Newlines Win|Newlines Mac|Newlines Auto"
-ValueDefault=auto
-
-[Input Tab Size]
-Category=0
-Description="<html>The original size of tabs in the input.<br/><br/>Default: 8</html>"
-Enabled=false
-EditorType=numeric
-CallName="input_tab_size="
-MinVal=1
-MaxVal=32
-ValueDefault=8
-
-[Output Tab Size]
-Category=0
-Description="<html>The size of tabs in the output (only used if align_with_tabs=true).<br/><br/>Default: 8</html>"
-Enabled=false
-EditorType=numeric
-CallName="output_tab_size="
-MinVal=1
-MaxVal=32
-ValueDefault=8
-
-[String Escape Char]
-Category=0
-Description="<html>The ASCII value of the string escape char, usually 92 (\) or (Pawn) 94 (^).<br/><br/>Default: 92</html>"
-Enabled=false
-EditorType=numeric
-CallName="string_escape_char="
-MinVal=0
-MaxVal=255
-ValueDefault=92
-
-[String Escape Char2]
-Category=0
-Description="<html>Alternate string escape char (usually only used for Pawn).<br/>Only works right before the quote char.</html>"
-Enabled=false
-EditorType=numeric
-CallName="string_escape_char2="
-MinVal=0
-MaxVal=255
-ValueDefault=0
-
-[String Replace Tab Chars]
-Category=0
-Description="<html>Replace tab characters found in string literals with the escape sequence \t<br/>instead.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=string_replace_tab_chars=true|string_replace_tab_chars=false
-ValueDefault=false
-
-[Tok Split Gte]
-Category=0
-Description="<html>Allow interpreting '&gt;=' and '&gt;&gt;=' as part of a template in code like<br/>'void f(list&lt;list&lt;B&gt;&gt;=val);'. If true, 'assert(x&lt;0 &amp;&amp; y&gt;=3)' will be broken.<br/>Improvements to template detection may make this option obsolete.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=tok_split_gte=true|tok_split_gte=false
-ValueDefault=false
-
-[Disable Processing Nl Cont]
-Category=0
-Description="<html>Disable formatting of NL_CONT ('\\n') ended lines (e.g. multi-line macros).</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=disable_processing_nl_cont=true|disable_processing_nl_cont=false
-ValueDefault=false
-
-[Disable Processing Cmt]
-Category=0
-Description="<html>Specify the marker used in comments to disable processing of part of the<br/>file.<br/><br/>Default: *INDENT-OFF*</html>"
-Enabled=false
-CallName=disable_processing_cmt=
-EditorType=string
-ValueDefault= *INDENT-OFF*
-
-[Enable Processing Cmt]
-Category=0
-Description="<html>Specify the marker used in comments to (re)enable processing in a file.<br/><br/>Default: *INDENT-ON*</html>"
-Enabled=false
-CallName=enable_processing_cmt=
-EditorType=string
-ValueDefault= *INDENT-ON*
-
-[Enable Digraphs]
-Category=0
-Description="<html>Enable parsing of digraphs.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=enable_digraphs=true|enable_digraphs=false
-ValueDefault=false
-
-[Processing Cmt As Regex]
-Category=0
-Description="<html>Option to allow both disable_processing_cmt and enable_processing_cmt<br/>strings, if specified, to be interpreted as ECMAScript regular expressions.<br/>If true, a regex search will be performed within comments according to the<br/>specified patterns in order to disable/enable processing.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=processing_cmt_as_regex=true|processing_cmt_as_regex=false
-ValueDefault=false
-
-[Utf8 Bom]
-Category=0
-Description="<html>Add or remove the UTF-8 BOM (recommend 'remove').</html>"
-Enabled=false
-EditorType=multiple
-Choices=utf8_bom=ignore|utf8_bom=add|utf8_bom=remove|utf8_bom=force|utf8_bom=not_defined
-ChoicesReadable="Ignore Utf8 Bom|Add Utf8 Bom|Remove Utf8 Bom|Force Utf8 Bom"
-ValueDefault=ignore
-
-[Utf8 Byte]
-Category=0
-Description="<html>If the file contains bytes with values between 128 and 255, but is not<br/>UTF-8, then output as UTF-8.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=utf8_byte=true|utf8_byte=false
-ValueDefault=false
-
-[Utf8 Force]
-Category=0
-Description="<html>Force the output encoding to UTF-8.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=utf8_force=true|utf8_force=false
-ValueDefault=false
-
-[Sp Arith]
-Category=1
-Description="<html>Add or remove space around non-assignment symbolic operators ('+', '/', '%',<br/>'&lt;&lt;', and so forth).</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_arith=ignore|sp_arith=add|sp_arith=remove|sp_arith=force|sp_arith=not_defined
-ChoicesReadable="Ignore Sp Arith|Add Sp Arith|Remove Sp Arith|Force Sp Arith"
-ValueDefault=ignore
-
-[Sp Arith Additive]
-Category=1
-Description="<html>Add or remove space around arithmetic operators '+' and '-'.<br/><br/>Overrides sp_arith.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_arith_additive=ignore|sp_arith_additive=add|sp_arith_additive=remove|sp_arith_additive=force|sp_arith_additive=not_defined
-ChoicesReadable="Ignore Sp Arith Additive|Add Sp Arith Additive|Remove Sp Arith Additive|Force Sp Arith Additive"
-ValueDefault=ignore
-
-[Sp Assign]
-Category=1
-Description="<html>Add or remove space around assignment operator '=', '+=', etc.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_assign=ignore|sp_assign=add|sp_assign=remove|sp_assign=force|sp_assign=not_defined
-ChoicesReadable="Ignore Sp Assign|Add Sp Assign|Remove Sp Assign|Force Sp Assign"
-ValueDefault=ignore
-
-[Sp Cpp Lambda Assign]
-Category=1
-Description="<html>Add or remove space around '=' in C++11 lambda capture specifications.<br/><br/>Overrides sp_assign.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_cpp_lambda_assign=ignore|sp_cpp_lambda_assign=add|sp_cpp_lambda_assign=remove|sp_cpp_lambda_assign=force|sp_cpp_lambda_assign=not_defined
-ChoicesReadable="Ignore Sp Cpp Lambda Assign|Add Sp Cpp Lambda Assign|Remove Sp Cpp Lambda Assign|Force Sp Cpp Lambda Assign"
-ValueDefault=ignore
-
-[Sp Cpp Lambda Square Paren]
-Category=1
-Description="<html>Add or remove space after the capture specification of a C++11 lambda when<br/>an argument list is present, as in '[] &lt;here&gt; (int x){ ... }'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_cpp_lambda_square_paren=ignore|sp_cpp_lambda_square_paren=add|sp_cpp_lambda_square_paren=remove|sp_cpp_lambda_square_paren=force|sp_cpp_lambda_square_paren=not_defined
-ChoicesReadable="Ignore Sp Cpp Lambda Square Paren|Add Sp Cpp Lambda Square Paren|Remove Sp Cpp Lambda Square Paren|Force Sp Cpp Lambda Square Paren"
-ValueDefault=ignore
-
-[Sp Cpp Lambda Square Brace]
-Category=1
-Description="<html>Add or remove space after the capture specification of a C++11 lambda with<br/>no argument list is present, as in '[] &lt;here&gt; { ... }'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_cpp_lambda_square_brace=ignore|sp_cpp_lambda_square_brace=add|sp_cpp_lambda_square_brace=remove|sp_cpp_lambda_square_brace=force|sp_cpp_lambda_square_brace=not_defined
-ChoicesReadable="Ignore Sp Cpp Lambda Square Brace|Add Sp Cpp Lambda Square Brace|Remove Sp Cpp Lambda Square Brace|Force Sp Cpp Lambda Square Brace"
-ValueDefault=ignore
-
-[Sp Cpp Lambda Argument List]
-Category=1
-Description="<html>Add or remove space after the opening parenthesis and before the closing<br/>parenthesis of a argument list of a C++11 lambda, as in<br/>'[]( &lt;here&gt; int x &lt;here&gt; ){ ... }'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_cpp_lambda_argument_list=ignore|sp_cpp_lambda_argument_list=add|sp_cpp_lambda_argument_list=remove|sp_cpp_lambda_argument_list=force|sp_cpp_lambda_argument_list=not_defined
-ChoicesReadable="Ignore Sp Cpp Lambda Argument List|Add Sp Cpp Lambda Argument List|Remove Sp Cpp Lambda Argument List|Force Sp Cpp Lambda Argument List"
-ValueDefault=ignore
-
-[Sp Cpp Lambda Paren Brace]
-Category=1
-Description="<html>Add or remove space after the argument list of a C++11 lambda, as in<br/>'[](int x) &lt;here&gt; { ... }'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_cpp_lambda_paren_brace=ignore|sp_cpp_lambda_paren_brace=add|sp_cpp_lambda_paren_brace=remove|sp_cpp_lambda_paren_brace=force|sp_cpp_lambda_paren_brace=not_defined
-ChoicesReadable="Ignore Sp Cpp Lambda Paren Brace|Add Sp Cpp Lambda Paren Brace|Remove Sp Cpp Lambda Paren Brace|Force Sp Cpp Lambda Paren Brace"
-ValueDefault=ignore
-
-[Sp Cpp Lambda Fparen]
-Category=1
-Description="<html>Add or remove space between a lambda body and its call operator of an<br/>immediately invoked lambda, as in '[]( ... ){ ... } &lt;here&gt; ( ... )'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_cpp_lambda_fparen=ignore|sp_cpp_lambda_fparen=add|sp_cpp_lambda_fparen=remove|sp_cpp_lambda_fparen=force|sp_cpp_lambda_fparen=not_defined
-ChoicesReadable="Ignore Sp Cpp Lambda Fparen|Add Sp Cpp Lambda Fparen|Remove Sp Cpp Lambda Fparen|Force Sp Cpp Lambda Fparen"
-ValueDefault=ignore
-
-[Sp Assign Default]
-Category=1
-Description="<html>Add or remove space around assignment operator '=' in a prototype.<br/><br/>If set to ignore, use sp_assign.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_assign_default=ignore|sp_assign_default=add|sp_assign_default=remove|sp_assign_default=force|sp_assign_default=not_defined
-ChoicesReadable="Ignore Sp Assign Default|Add Sp Assign Default|Remove Sp Assign Default|Force Sp Assign Default"
-ValueDefault=ignore
-
-[Sp Before Assign]
-Category=1
-Description="<html>Add or remove space before assignment operator '=', '+=', etc.<br/><br/>Overrides sp_assign.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_assign=ignore|sp_before_assign=add|sp_before_assign=remove|sp_before_assign=force|sp_before_assign=not_defined
-ChoicesReadable="Ignore Sp Before Assign|Add Sp Before Assign|Remove Sp Before Assign|Force Sp Before Assign"
-ValueDefault=ignore
-
-[Sp After Assign]
-Category=1
-Description="<html>Add or remove space after assignment operator '=', '+=', etc.<br/><br/>Overrides sp_assign.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_assign=ignore|sp_after_assign=add|sp_after_assign=remove|sp_after_assign=force|sp_after_assign=not_defined
-ChoicesReadable="Ignore Sp After Assign|Add Sp After Assign|Remove Sp After Assign|Force Sp After Assign"
-ValueDefault=ignore
-
-[Sp Enum Paren]
-Category=1
-Description="<html>Add or remove space in 'NS_ENUM ('.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_enum_paren=ignore|sp_enum_paren=add|sp_enum_paren=remove|sp_enum_paren=force|sp_enum_paren=not_defined
-ChoicesReadable="Ignore Sp Enum Paren|Add Sp Enum Paren|Remove Sp Enum Paren|Force Sp Enum Paren"
-ValueDefault=ignore
-
-[Sp Enum Assign]
-Category=1
-Description="<html>Add or remove space around assignment '=' in enum.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_enum_assign=ignore|sp_enum_assign=add|sp_enum_assign=remove|sp_enum_assign=force|sp_enum_assign=not_defined
-ChoicesReadable="Ignore Sp Enum Assign|Add Sp Enum Assign|Remove Sp Enum Assign|Force Sp Enum Assign"
-ValueDefault=ignore
-
-[Sp Enum Before Assign]
-Category=1
-Description="<html>Add or remove space before assignment '=' in enum.<br/><br/>Overrides sp_enum_assign.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_enum_before_assign=ignore|sp_enum_before_assign=add|sp_enum_before_assign=remove|sp_enum_before_assign=force|sp_enum_before_assign=not_defined
-ChoicesReadable="Ignore Sp Enum Before Assign|Add Sp Enum Before Assign|Remove Sp Enum Before Assign|Force Sp Enum Before Assign"
-ValueDefault=ignore
-
-[Sp Enum After Assign]
-Category=1
-Description="<html>Add or remove space after assignment '=' in enum.<br/><br/>Overrides sp_enum_assign.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_enum_after_assign=ignore|sp_enum_after_assign=add|sp_enum_after_assign=remove|sp_enum_after_assign=force|sp_enum_after_assign=not_defined
-ChoicesReadable="Ignore Sp Enum After Assign|Add Sp Enum After Assign|Remove Sp Enum After Assign|Force Sp Enum After Assign"
-ValueDefault=ignore
-
-[Sp Enum Colon]
-Category=1
-Description="<html>Add or remove space around assignment ':' in enum.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_enum_colon=ignore|sp_enum_colon=add|sp_enum_colon=remove|sp_enum_colon=force|sp_enum_colon=not_defined
-ChoicesReadable="Ignore Sp Enum Colon|Add Sp Enum Colon|Remove Sp Enum Colon|Force Sp Enum Colon"
-ValueDefault=ignore
-
-[Sp Pp Concat]
-Category=1
-Description="<html>Add or remove space around preprocessor '##' concatenation operator.<br/><br/>Default: add</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_pp_concat=ignore|sp_pp_concat=add|sp_pp_concat=remove|sp_pp_concat=force|sp_pp_concat=not_defined
-ChoicesReadable="Ignore Sp Pp Concat|Add Sp Pp Concat|Remove Sp Pp Concat|Force Sp Pp Concat"
-ValueDefault=add
-
-[Sp Pp Stringify]
-Category=1
-Description="<html>Add or remove space after preprocessor '#' stringify operator.<br/>Also affects the '#@' charizing operator.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_pp_stringify=ignore|sp_pp_stringify=add|sp_pp_stringify=remove|sp_pp_stringify=force|sp_pp_stringify=not_defined
-ChoicesReadable="Ignore Sp Pp Stringify|Add Sp Pp Stringify|Remove Sp Pp Stringify|Force Sp Pp Stringify"
-ValueDefault=ignore
-
-[Sp Before Pp Stringify]
-Category=1
-Description="<html>Add or remove space before preprocessor '#' stringify operator<br/>as in '#define x(y) L#y'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_pp_stringify=ignore|sp_before_pp_stringify=add|sp_before_pp_stringify=remove|sp_before_pp_stringify=force|sp_before_pp_stringify=not_defined
-ChoicesReadable="Ignore Sp Before Pp Stringify|Add Sp Before Pp Stringify|Remove Sp Before Pp Stringify|Force Sp Before Pp Stringify"
-ValueDefault=ignore
-
-[Sp Bool]
-Category=1
-Description="<html>Add or remove space around boolean operators '&amp;&amp;' and '||'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_bool=ignore|sp_bool=add|sp_bool=remove|sp_bool=force|sp_bool=not_defined
-ChoicesReadable="Ignore Sp Bool|Add Sp Bool|Remove Sp Bool|Force Sp Bool"
-ValueDefault=ignore
-
-[Sp Compare]
-Category=1
-Description="<html>Add or remove space around compare operator '&lt;', '&gt;', '==', etc.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_compare=ignore|sp_compare=add|sp_compare=remove|sp_compare=force|sp_compare=not_defined
-ChoicesReadable="Ignore Sp Compare|Add Sp Compare|Remove Sp Compare|Force Sp Compare"
-ValueDefault=ignore
-
-[Sp Inside Paren]
-Category=1
-Description="<html>Add or remove space inside '(' and ')'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_inside_paren=ignore|sp_inside_paren=add|sp_inside_paren=remove|sp_inside_paren=force|sp_inside_paren=not_defined
-ChoicesReadable="Ignore Sp Inside Paren|Add Sp Inside Paren|Remove Sp Inside Paren|Force Sp Inside Paren"
-ValueDefault=ignore
-
-[Sp Paren Paren]
-Category=1
-Description="<html>Add or remove space between nested parentheses, i.e. '((' vs. ') )'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_paren_paren=ignore|sp_paren_paren=add|sp_paren_paren=remove|sp_paren_paren=force|sp_paren_paren=not_defined
-ChoicesReadable="Ignore Sp Paren Paren|Add Sp Paren Paren|Remove Sp Paren Paren|Force Sp Paren Paren"
-ValueDefault=ignore
-
-[Sp Cparen Oparen]
-Category=1
-Description="<html>Add or remove space between back-to-back parentheses, i.e. ')(' vs. ') ('.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_cparen_oparen=ignore|sp_cparen_oparen=add|sp_cparen_oparen=remove|sp_cparen_oparen=force|sp_cparen_oparen=not_defined
-ChoicesReadable="Ignore Sp Cparen Oparen|Add Sp Cparen Oparen|Remove Sp Cparen Oparen|Force Sp Cparen Oparen"
-ValueDefault=ignore
-
-[Sp Balance Nested Parens]
-Category=1
-Description="<html>Whether to balance spaces inside nested parentheses.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=sp_balance_nested_parens=true|sp_balance_nested_parens=false
-ValueDefault=false
-
-[Sp Paren Brace]
-Category=1
-Description="<html>Add or remove space between ')' and '{'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_paren_brace=ignore|sp_paren_brace=add|sp_paren_brace=remove|sp_paren_brace=force|sp_paren_brace=not_defined
-ChoicesReadable="Ignore Sp Paren Brace|Add Sp Paren Brace|Remove Sp Paren Brace|Force Sp Paren Brace"
-ValueDefault=ignore
-
-[Sp Brace Brace]
-Category=1
-Description="<html>Add or remove space between nested braces, i.e. '{{' vs. '{ {'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_brace_brace=ignore|sp_brace_brace=add|sp_brace_brace=remove|sp_brace_brace=force|sp_brace_brace=not_defined
-ChoicesReadable="Ignore Sp Brace Brace|Add Sp Brace Brace|Remove Sp Brace Brace|Force Sp Brace Brace"
-ValueDefault=ignore
-
-[Sp Before Ptr Star]
-Category=1
-Description="<html>Add or remove space before pointer star '*'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_ptr_star=ignore|sp_before_ptr_star=add|sp_before_ptr_star=remove|sp_before_ptr_star=force|sp_before_ptr_star=not_defined
-ChoicesReadable="Ignore Sp Before Ptr Star|Add Sp Before Ptr Star|Remove Sp Before Ptr Star|Force Sp Before Ptr Star"
-ValueDefault=ignore
-
-[Sp Before Unnamed Ptr Star]
-Category=1
-Description="<html>Add or remove space before pointer star '*' that isn't followed by a<br/>variable name. If set to ignore, sp_before_ptr_star is used instead.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_unnamed_ptr_star=ignore|sp_before_unnamed_ptr_star=add|sp_before_unnamed_ptr_star=remove|sp_before_unnamed_ptr_star=force|sp_before_unnamed_ptr_star=not_defined
-ChoicesReadable="Ignore Sp Before Unnamed Ptr Star|Add Sp Before Unnamed Ptr Star|Remove Sp Before Unnamed Ptr Star|Force Sp Before Unnamed Ptr Star"
-ValueDefault=ignore
-
-[Sp Between Ptr Star]
-Category=1
-Description="<html>Add or remove space between pointer stars '*', as in 'int ***a;'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_between_ptr_star=ignore|sp_between_ptr_star=add|sp_between_ptr_star=remove|sp_between_ptr_star=force|sp_between_ptr_star=not_defined
-ChoicesReadable="Ignore Sp Between Ptr Star|Add Sp Between Ptr Star|Remove Sp Between Ptr Star|Force Sp Between Ptr Star"
-ValueDefault=ignore
-
-[Sp After Ptr Star]
-Category=1
-Description="<html>Add or remove space after pointer star '*', if followed by a word.<br/><br/>Overrides sp_type_func.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_ptr_star=ignore|sp_after_ptr_star=add|sp_after_ptr_star=remove|sp_after_ptr_star=force|sp_after_ptr_star=not_defined
-ChoicesReadable="Ignore Sp After Ptr Star|Add Sp After Ptr Star|Remove Sp After Ptr Star|Force Sp After Ptr Star"
-ValueDefault=ignore
-
-[Sp After Ptr Block Caret]
-Category=1
-Description="<html>Add or remove space after pointer caret '^', if followed by a word.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_ptr_block_caret=ignore|sp_after_ptr_block_caret=add|sp_after_ptr_block_caret=remove|sp_after_ptr_block_caret=force|sp_after_ptr_block_caret=not_defined
-ChoicesReadable="Ignore Sp After Ptr Block Caret|Add Sp After Ptr Block Caret|Remove Sp After Ptr Block Caret|Force Sp After Ptr Block Caret"
-ValueDefault=ignore
-
-[Sp After Ptr Star Qualifier]
-Category=1
-Description="<html>Add or remove space after pointer star '*', if followed by a qualifier.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_ptr_star_qualifier=ignore|sp_after_ptr_star_qualifier=add|sp_after_ptr_star_qualifier=remove|sp_after_ptr_star_qualifier=force|sp_after_ptr_star_qualifier=not_defined
-ChoicesReadable="Ignore Sp After Ptr Star Qualifier|Add Sp After Ptr Star Qualifier|Remove Sp After Ptr Star Qualifier|Force Sp After Ptr Star Qualifier"
-ValueDefault=ignore
-
-[Sp After Ptr Star Func]
-Category=1
-Description="<html>Add or remove space after a pointer star '*', if followed by a function<br/>prototype or function definition.<br/><br/>Overrides sp_after_ptr_star and sp_type_func.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_ptr_star_func=ignore|sp_after_ptr_star_func=add|sp_after_ptr_star_func=remove|sp_after_ptr_star_func=force|sp_after_ptr_star_func=not_defined
-ChoicesReadable="Ignore Sp After Ptr Star Func|Add Sp After Ptr Star Func|Remove Sp After Ptr Star Func|Force Sp After Ptr Star Func"
-ValueDefault=ignore
-
-[Sp After Ptr Star Trailing]
-Category=1
-Description="<html>Add or remove space after a pointer star '*' in the trailing return of a<br/>function prototype or function definition.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_ptr_star_trailing=ignore|sp_after_ptr_star_trailing=add|sp_after_ptr_star_trailing=remove|sp_after_ptr_star_trailing=force|sp_after_ptr_star_trailing=not_defined
-ChoicesReadable="Ignore Sp After Ptr Star Trailing|Add Sp After Ptr Star Trailing|Remove Sp After Ptr Star Trailing|Force Sp After Ptr Star Trailing"
-ValueDefault=ignore
-
-[Sp Ptr Star Func Var]
-Category=1
-Description="<html>Add or remove space between the pointer star '*' and the name of the variable<br/>in a function pointer definition.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_ptr_star_func_var=ignore|sp_ptr_star_func_var=add|sp_ptr_star_func_var=remove|sp_ptr_star_func_var=force|sp_ptr_star_func_var=not_defined
-ChoicesReadable="Ignore Sp Ptr Star Func Var|Add Sp Ptr Star Func Var|Remove Sp Ptr Star Func Var|Force Sp Ptr Star Func Var"
-ValueDefault=ignore
-
-[Sp Ptr Star Paren]
-Category=1
-Description="<html>Add or remove space after a pointer star '*', if followed by an open<br/>parenthesis, as in 'void* (*)()'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_ptr_star_paren=ignore|sp_ptr_star_paren=add|sp_ptr_star_paren=remove|sp_ptr_star_paren=force|sp_ptr_star_paren=not_defined
-ChoicesReadable="Ignore Sp Ptr Star Paren|Add Sp Ptr Star Paren|Remove Sp Ptr Star Paren|Force Sp Ptr Star Paren"
-ValueDefault=ignore
-
-[Sp Before Ptr Star Func]
-Category=1
-Description="<html>Add or remove space before a pointer star '*', if followed by a function<br/>prototype or function definition.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_ptr_star_func=ignore|sp_before_ptr_star_func=add|sp_before_ptr_star_func=remove|sp_before_ptr_star_func=force|sp_before_ptr_star_func=not_defined
-ChoicesReadable="Ignore Sp Before Ptr Star Func|Add Sp Before Ptr Star Func|Remove Sp Before Ptr Star Func|Force Sp Before Ptr Star Func"
-ValueDefault=ignore
-
-[Sp Before Ptr Star Trailing]
-Category=1
-Description="<html>Add or remove space before a pointer star '*' in the trailing return of a<br/>function prototype or function definition.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_ptr_star_trailing=ignore|sp_before_ptr_star_trailing=add|sp_before_ptr_star_trailing=remove|sp_before_ptr_star_trailing=force|sp_before_ptr_star_trailing=not_defined
-ChoicesReadable="Ignore Sp Before Ptr Star Trailing|Add Sp Before Ptr Star Trailing|Remove Sp Before Ptr Star Trailing|Force Sp Before Ptr Star Trailing"
-ValueDefault=ignore
-
-[Sp Before Byref]
-Category=1
-Description="<html>Add or remove space before a reference sign '&amp;'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_byref=ignore|sp_before_byref=add|sp_before_byref=remove|sp_before_byref=force|sp_before_byref=not_defined
-ChoicesReadable="Ignore Sp Before Byref|Add Sp Before Byref|Remove Sp Before Byref|Force Sp Before Byref"
-ValueDefault=ignore
-
-[Sp Before Unnamed Byref]
-Category=1
-Description="<html>Add or remove space before a reference sign '&amp;' that isn't followed by a<br/>variable name. If set to ignore, sp_before_byref is used instead.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_unnamed_byref=ignore|sp_before_unnamed_byref=add|sp_before_unnamed_byref=remove|sp_before_unnamed_byref=force|sp_before_unnamed_byref=not_defined
-ChoicesReadable="Ignore Sp Before Unnamed Byref|Add Sp Before Unnamed Byref|Remove Sp Before Unnamed Byref|Force Sp Before Unnamed Byref"
-ValueDefault=ignore
-
-[Sp After Byref]
-Category=1
-Description="<html>Add or remove space after reference sign '&amp;', if followed by a word.<br/><br/>Overrides sp_type_func.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_byref=ignore|sp_after_byref=add|sp_after_byref=remove|sp_after_byref=force|sp_after_byref=not_defined
-ChoicesReadable="Ignore Sp After Byref|Add Sp After Byref|Remove Sp After Byref|Force Sp After Byref"
-ValueDefault=ignore
-
-[Sp After Byref Func]
-Category=1
-Description="<html>Add or remove space after a reference sign '&amp;', if followed by a function<br/>prototype or function definition.<br/><br/>Overrides sp_after_byref and sp_type_func.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_byref_func=ignore|sp_after_byref_func=add|sp_after_byref_func=remove|sp_after_byref_func=force|sp_after_byref_func=not_defined
-ChoicesReadable="Ignore Sp After Byref Func|Add Sp After Byref Func|Remove Sp After Byref Func|Force Sp After Byref Func"
-ValueDefault=ignore
-
-[Sp Before Byref Func]
-Category=1
-Description="<html>Add or remove space before a reference sign '&amp;', if followed by a function<br/>prototype or function definition.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_byref_func=ignore|sp_before_byref_func=add|sp_before_byref_func=remove|sp_before_byref_func=force|sp_before_byref_func=not_defined
-ChoicesReadable="Ignore Sp Before Byref Func|Add Sp Before Byref Func|Remove Sp Before Byref Func|Force Sp Before Byref Func"
-ValueDefault=ignore
-
-[Sp After Type]
-Category=1
-Description="<html>Add or remove space between type and word. In cases where total removal of<br/>whitespace would be a syntax error, a value of 'remove' is treated the same<br/>as 'force'.<br/><br/>This also affects some other instances of space following a type that are<br/>not covered by other options; for example, between the return type and<br/>parenthesis of a function type template argument, between the type and<br/>parenthesis of an array parameter, or between 'decltype(...)' and the<br/>following word.<br/><br/>Default: force</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_type=ignore|sp_after_type=add|sp_after_type=remove|sp_after_type=force|sp_after_type=not_defined
-ChoicesReadable="Ignore Sp After Type|Add Sp After Type|Remove Sp After Type|Force Sp After Type"
-ValueDefault=force
-
-[Sp After Decltype]
-Category=1
-Description="<html>Add or remove space between 'decltype(...)' and word,<br/>brace or function call.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_decltype=ignore|sp_after_decltype=add|sp_after_decltype=remove|sp_after_decltype=force|sp_after_decltype=not_defined
-ChoicesReadable="Ignore Sp After Decltype|Add Sp After Decltype|Remove Sp After Decltype|Force Sp After Decltype"
-ValueDefault=ignore
-
-[Sp Before Template Paren]
-Category=1
-Description="<html>(D) Add or remove space before the parenthesis in the D constructs<br/>'template Foo(' and 'class Foo('.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_template_paren=ignore|sp_before_template_paren=add|sp_before_template_paren=remove|sp_before_template_paren=force|sp_before_template_paren=not_defined
-ChoicesReadable="Ignore Sp Before Template Paren|Add Sp Before Template Paren|Remove Sp Before Template Paren|Force Sp Before Template Paren"
-ValueDefault=ignore
-
-[Sp Template Angle]
-Category=1
-Description="<html>Add or remove space between 'template' and '&lt;'.<br/>If set to ignore, sp_before_angle is used.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_template_angle=ignore|sp_template_angle=add|sp_template_angle=remove|sp_template_angle=force|sp_template_angle=not_defined
-ChoicesReadable="Ignore Sp Template Angle|Add Sp Template Angle|Remove Sp Template Angle|Force Sp Template Angle"
-ValueDefault=ignore
-
-[Sp Before Angle]
-Category=1
-Description="<html>Add or remove space before '&lt;'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_angle=ignore|sp_before_angle=add|sp_before_angle=remove|sp_before_angle=force|sp_before_angle=not_defined
-ChoicesReadable="Ignore Sp Before Angle|Add Sp Before Angle|Remove Sp Before Angle|Force Sp Before Angle"
-ValueDefault=ignore
-
-[Sp Inside Angle]
-Category=1
-Description="<html>Add or remove space inside '&lt;' and '&gt;'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_inside_angle=ignore|sp_inside_angle=add|sp_inside_angle=remove|sp_inside_angle=force|sp_inside_angle=not_defined
-ChoicesReadable="Ignore Sp Inside Angle|Add Sp Inside Angle|Remove Sp Inside Angle|Force Sp Inside Angle"
-ValueDefault=ignore
-
-[Sp Inside Angle Empty]
-Category=1
-Description="<html>Add or remove space inside '&lt;&gt;'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_inside_angle_empty=ignore|sp_inside_angle_empty=add|sp_inside_angle_empty=remove|sp_inside_angle_empty=force|sp_inside_angle_empty=not_defined
-ChoicesReadable="Ignore Sp Inside Angle Empty|Add Sp Inside Angle Empty|Remove Sp Inside Angle Empty|Force Sp Inside Angle Empty"
-ValueDefault=ignore
-
-[Sp Angle Colon]
-Category=1
-Description="<html>Add or remove space between '&gt;' and ':'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_angle_colon=ignore|sp_angle_colon=add|sp_angle_colon=remove|sp_angle_colon=force|sp_angle_colon=not_defined
-ChoicesReadable="Ignore Sp Angle Colon|Add Sp Angle Colon|Remove Sp Angle Colon|Force Sp Angle Colon"
-ValueDefault=ignore
-
-[Sp After Angle]
-Category=1
-Description="<html>Add or remove space after '&gt;'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_angle=ignore|sp_after_angle=add|sp_after_angle=remove|sp_after_angle=force|sp_after_angle=not_defined
-ChoicesReadable="Ignore Sp After Angle|Add Sp After Angle|Remove Sp After Angle|Force Sp After Angle"
-ValueDefault=ignore
-
-[Sp Angle Paren]
-Category=1
-Description="<html>Add or remove space between '&gt;' and '(' as found in 'new List&lt;byte&gt;(foo);'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_angle_paren=ignore|sp_angle_paren=add|sp_angle_paren=remove|sp_angle_paren=force|sp_angle_paren=not_defined
-ChoicesReadable="Ignore Sp Angle Paren|Add Sp Angle Paren|Remove Sp Angle Paren|Force Sp Angle Paren"
-ValueDefault=ignore
-
-[Sp Angle Paren Empty]
-Category=1
-Description="<html>Add or remove space between '&gt;' and '()' as found in 'new List&lt;byte&gt;();'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_angle_paren_empty=ignore|sp_angle_paren_empty=add|sp_angle_paren_empty=remove|sp_angle_paren_empty=force|sp_angle_paren_empty=not_defined
-ChoicesReadable="Ignore Sp Angle Paren Empty|Add Sp Angle Paren Empty|Remove Sp Angle Paren Empty|Force Sp Angle Paren Empty"
-ValueDefault=ignore
-
-[Sp Angle Word]
-Category=1
-Description="<html>Add or remove space between '&gt;' and a word as in 'List&lt;byte&gt; m;' or<br/>'template &lt;typename T&gt; static ...'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_angle_word=ignore|sp_angle_word=add|sp_angle_word=remove|sp_angle_word=force|sp_angle_word=not_defined
-ChoicesReadable="Ignore Sp Angle Word|Add Sp Angle Word|Remove Sp Angle Word|Force Sp Angle Word"
-ValueDefault=ignore
-
-[Sp Angle Shift]
-Category=1
-Description="<html>Add or remove space between '&gt;' and '&gt;' in '&gt;&gt;' (template stuff).<br/><br/>Default: add</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_angle_shift=ignore|sp_angle_shift=add|sp_angle_shift=remove|sp_angle_shift=force|sp_angle_shift=not_defined
-ChoicesReadable="Ignore Sp Angle Shift|Add Sp Angle Shift|Remove Sp Angle Shift|Force Sp Angle Shift"
-ValueDefault=add
-
-[Sp Permit Cpp11 Shift]
-Category=1
-Description="<html>(C++11) Permit removal of the space between '&gt;&gt;' in 'foo&lt;bar&lt;int&gt; &gt;'. Note<br/>that sp_angle_shift cannot remove the space without this option.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=sp_permit_cpp11_shift=true|sp_permit_cpp11_shift=false
-ValueDefault=false
-
-[Sp Before Sparen]
-Category=1
-Description="<html>Add or remove space before '(' of control statements ('if', 'for', 'switch',<br/>'while', etc.).</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_sparen=ignore|sp_before_sparen=add|sp_before_sparen=remove|sp_before_sparen=force|sp_before_sparen=not_defined
-ChoicesReadable="Ignore Sp Before Sparen|Add Sp Before Sparen|Remove Sp Before Sparen|Force Sp Before Sparen"
-ValueDefault=ignore
-
-[Sp Inside Sparen]
-Category=1
-Description="<html>Add or remove space inside '(' and ')' of control statements other than<br/>'for'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_inside_sparen=ignore|sp_inside_sparen=add|sp_inside_sparen=remove|sp_inside_sparen=force|sp_inside_sparen=not_defined
-ChoicesReadable="Ignore Sp Inside Sparen|Add Sp Inside Sparen|Remove Sp Inside Sparen|Force Sp Inside Sparen"
-ValueDefault=ignore
-
-[Sp Inside Sparen Open]
-Category=1
-Description="<html>Add or remove space after '(' of control statements other than 'for'.<br/><br/>Overrides sp_inside_sparen.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_inside_sparen_open=ignore|sp_inside_sparen_open=add|sp_inside_sparen_open=remove|sp_inside_sparen_open=force|sp_inside_sparen_open=not_defined
-ChoicesReadable="Ignore Sp Inside Sparen Open|Add Sp Inside Sparen Open|Remove Sp Inside Sparen Open|Force Sp Inside Sparen Open"
-ValueDefault=ignore
-
-[Sp Inside Sparen Close]
-Category=1
-Description="<html>Add or remove space before ')' of control statements other than 'for'.<br/><br/>Overrides sp_inside_sparen.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_inside_sparen_close=ignore|sp_inside_sparen_close=add|sp_inside_sparen_close=remove|sp_inside_sparen_close=force|sp_inside_sparen_close=not_defined
-ChoicesReadable="Ignore Sp Inside Sparen Close|Add Sp Inside Sparen Close|Remove Sp Inside Sparen Close|Force Sp Inside Sparen Close"
-ValueDefault=ignore
-
-[Sp Inside For]
-Category=1
-Description="<html>Add or remove space inside '(' and ')' of 'for' statements.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_inside_for=ignore|sp_inside_for=add|sp_inside_for=remove|sp_inside_for=force|sp_inside_for=not_defined
-ChoicesReadable="Ignore Sp Inside For|Add Sp Inside For|Remove Sp Inside For|Force Sp Inside For"
-ValueDefault=ignore
-
-[Sp Inside For Open]
-Category=1
-Description="<html>Add or remove space after '(' of 'for' statements.<br/><br/>Overrides sp_inside_for.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_inside_for_open=ignore|sp_inside_for_open=add|sp_inside_for_open=remove|sp_inside_for_open=force|sp_inside_for_open=not_defined
-ChoicesReadable="Ignore Sp Inside For Open|Add Sp Inside For Open|Remove Sp Inside For Open|Force Sp Inside For Open"
-ValueDefault=ignore
-
-[Sp Inside For Close]
-Category=1
-Description="<html>Add or remove space before ')' of 'for' statements.<br/><br/>Overrides sp_inside_for.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_inside_for_close=ignore|sp_inside_for_close=add|sp_inside_for_close=remove|sp_inside_for_close=force|sp_inside_for_close=not_defined
-ChoicesReadable="Ignore Sp Inside For Close|Add Sp Inside For Close|Remove Sp Inside For Close|Force Sp Inside For Close"
-ValueDefault=ignore
-
-[Sp Sparen Paren]
-Category=1
-Description="<html>Add or remove space between '((' or '))' of control statements.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_sparen_paren=ignore|sp_sparen_paren=add|sp_sparen_paren=remove|sp_sparen_paren=force|sp_sparen_paren=not_defined
-ChoicesReadable="Ignore Sp Sparen Paren|Add Sp Sparen Paren|Remove Sp Sparen Paren|Force Sp Sparen Paren"
-ValueDefault=ignore
-
-[Sp After Sparen]
-Category=1
-Description="<html>Add or remove space after ')' of control statements.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_sparen=ignore|sp_after_sparen=add|sp_after_sparen=remove|sp_after_sparen=force|sp_after_sparen=not_defined
-ChoicesReadable="Ignore Sp After Sparen|Add Sp After Sparen|Remove Sp After Sparen|Force Sp After Sparen"
-ValueDefault=ignore
-
-[Sp Sparen Brace]
-Category=1
-Description="<html>Add or remove space between ')' and '{' of control statements.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_sparen_brace=ignore|sp_sparen_brace=add|sp_sparen_brace=remove|sp_sparen_brace=force|sp_sparen_brace=not_defined
-ChoicesReadable="Ignore Sp Sparen Brace|Add Sp Sparen Brace|Remove Sp Sparen Brace|Force Sp Sparen Brace"
-ValueDefault=ignore
-
-[Sp Do Brace Open]
-Category=1
-Description="<html>Add or remove space between 'do' and '{'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_do_brace_open=ignore|sp_do_brace_open=add|sp_do_brace_open=remove|sp_do_brace_open=force|sp_do_brace_open=not_defined
-ChoicesReadable="Ignore Sp Do Brace Open|Add Sp Do Brace Open|Remove Sp Do Brace Open|Force Sp Do Brace Open"
-ValueDefault=ignore
-
-[Sp Brace Close While]
-Category=1
-Description="<html>Add or remove space between '}' and 'while'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_brace_close_while=ignore|sp_brace_close_while=add|sp_brace_close_while=remove|sp_brace_close_while=force|sp_brace_close_while=not_defined
-ChoicesReadable="Ignore Sp Brace Close While|Add Sp Brace Close While|Remove Sp Brace Close While|Force Sp Brace Close While"
-ValueDefault=ignore
-
-[Sp While Paren Open]
-Category=1
-Description="<html>Add or remove space between 'while' and '('. Overrides sp_before_sparen.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_while_paren_open=ignore|sp_while_paren_open=add|sp_while_paren_open=remove|sp_while_paren_open=force|sp_while_paren_open=not_defined
-ChoicesReadable="Ignore Sp While Paren Open|Add Sp While Paren Open|Remove Sp While Paren Open|Force Sp While Paren Open"
-ValueDefault=ignore
-
-[Sp Invariant Paren]
-Category=1
-Description="<html>(D) Add or remove space between 'invariant' and '('.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_invariant_paren=ignore|sp_invariant_paren=add|sp_invariant_paren=remove|sp_invariant_paren=force|sp_invariant_paren=not_defined
-ChoicesReadable="Ignore Sp Invariant Paren|Add Sp Invariant Paren|Remove Sp Invariant Paren|Force Sp Invariant Paren"
-ValueDefault=ignore
-
-[Sp After Invariant Paren]
-Category=1
-Description="<html>(D) Add or remove space after the ')' in 'invariant (C) c'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_invariant_paren=ignore|sp_after_invariant_paren=add|sp_after_invariant_paren=remove|sp_after_invariant_paren=force|sp_after_invariant_paren=not_defined
-ChoicesReadable="Ignore Sp After Invariant Paren|Add Sp After Invariant Paren|Remove Sp After Invariant Paren|Force Sp After Invariant Paren"
-ValueDefault=ignore
-
-[Sp Special Semi]
-Category=1
-Description="<html>Add or remove space before empty statement ';' on 'if', 'for' and 'while'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_special_semi=ignore|sp_special_semi=add|sp_special_semi=remove|sp_special_semi=force|sp_special_semi=not_defined
-ChoicesReadable="Ignore Sp Special Semi|Add Sp Special Semi|Remove Sp Special Semi|Force Sp Special Semi"
-ValueDefault=ignore
-
-[Sp Before Semi]
-Category=1
-Description="<html>Add or remove space before ';'.<br/><br/>Default: remove</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_semi=ignore|sp_before_semi=add|sp_before_semi=remove|sp_before_semi=force|sp_before_semi=not_defined
-ChoicesReadable="Ignore Sp Before Semi|Add Sp Before Semi|Remove Sp Before Semi|Force Sp Before Semi"
-ValueDefault=remove
-
-[Sp Before Semi For]
-Category=1
-Description="<html>Add or remove space before ';' in non-empty 'for' statements.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_semi_for=ignore|sp_before_semi_for=add|sp_before_semi_for=remove|sp_before_semi_for=force|sp_before_semi_for=not_defined
-ChoicesReadable="Ignore Sp Before Semi For|Add Sp Before Semi For|Remove Sp Before Semi For|Force Sp Before Semi For"
-ValueDefault=ignore
-
-[Sp Before Semi For Empty]
-Category=1
-Description="<html>Add or remove space before a semicolon of an empty left part of a for<br/>statement, as in 'for ( &lt;here&gt; ; ; )'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_semi_for_empty=ignore|sp_before_semi_for_empty=add|sp_before_semi_for_empty=remove|sp_before_semi_for_empty=force|sp_before_semi_for_empty=not_defined
-ChoicesReadable="Ignore Sp Before Semi For Empty|Add Sp Before Semi For Empty|Remove Sp Before Semi For Empty|Force Sp Before Semi For Empty"
-ValueDefault=ignore
-
-[Sp Between Semi For Empty]
-Category=1
-Description="<html>Add or remove space between the semicolons of an empty middle part of a for<br/>statement, as in 'for ( ; &lt;here&gt; ; )'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_between_semi_for_empty=ignore|sp_between_semi_for_empty=add|sp_between_semi_for_empty=remove|sp_between_semi_for_empty=force|sp_between_semi_for_empty=not_defined
-ChoicesReadable="Ignore Sp Between Semi For Empty|Add Sp Between Semi For Empty|Remove Sp Between Semi For Empty|Force Sp Between Semi For Empty"
-ValueDefault=ignore
-
-[Sp After Semi]
-Category=1
-Description="<html>Add or remove space after ';', except when followed by a comment.<br/><br/>Default: add</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_semi=ignore|sp_after_semi=add|sp_after_semi=remove|sp_after_semi=force|sp_after_semi=not_defined
-ChoicesReadable="Ignore Sp After Semi|Add Sp After Semi|Remove Sp After Semi|Force Sp After Semi"
-ValueDefault=add
-
-[Sp After Semi For]
-Category=1
-Description="<html>Add or remove space after ';' in non-empty 'for' statements.<br/><br/>Default: force</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_semi_for=ignore|sp_after_semi_for=add|sp_after_semi_for=remove|sp_after_semi_for=force|sp_after_semi_for=not_defined
-ChoicesReadable="Ignore Sp After Semi For|Add Sp After Semi For|Remove Sp After Semi For|Force Sp After Semi For"
-ValueDefault=force
-
-[Sp After Semi For Empty]
-Category=1
-Description="<html>Add or remove space after the final semicolon of an empty part of a for<br/>statement, as in 'for ( ; ; &lt;here&gt; )'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_semi_for_empty=ignore|sp_after_semi_for_empty=add|sp_after_semi_for_empty=remove|sp_after_semi_for_empty=force|sp_after_semi_for_empty=not_defined
-ChoicesReadable="Ignore Sp After Semi For Empty|Add Sp After Semi For Empty|Remove Sp After Semi For Empty|Force Sp After Semi For Empty"
-ValueDefault=ignore
-
-[Sp Before Square]
-Category=1
-Description="<html>Add or remove space before '[' (except '[]').</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_square=ignore|sp_before_square=add|sp_before_square=remove|sp_before_square=force|sp_before_square=not_defined
-ChoicesReadable="Ignore Sp Before Square|Add Sp Before Square|Remove Sp Before Square|Force Sp Before Square"
-ValueDefault=ignore
-
-[Sp Before Vardef Square]
-Category=1
-Description="<html>Add or remove space before '[' for a variable definition.<br/><br/>Default: remove</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_vardef_square=ignore|sp_before_vardef_square=add|sp_before_vardef_square=remove|sp_before_vardef_square=force|sp_before_vardef_square=not_defined
-ChoicesReadable="Ignore Sp Before Vardef Square|Add Sp Before Vardef Square|Remove Sp Before Vardef Square|Force Sp Before Vardef Square"
-ValueDefault=remove
-
-[Sp Before Square Asm Block]
-Category=1
-Description="<html>Add or remove space before '[' for asm block.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_square_asm_block=ignore|sp_before_square_asm_block=add|sp_before_square_asm_block=remove|sp_before_square_asm_block=force|sp_before_square_asm_block=not_defined
-ChoicesReadable="Ignore Sp Before Square Asm Block|Add Sp Before Square Asm Block|Remove Sp Before Square Asm Block|Force Sp Before Square Asm Block"
-ValueDefault=ignore
-
-[Sp Before Squares]
-Category=1
-Description="<html>Add or remove space before '[]'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_squares=ignore|sp_before_squares=add|sp_before_squares=remove|sp_before_squares=force|sp_before_squares=not_defined
-ChoicesReadable="Ignore Sp Before Squares|Add Sp Before Squares|Remove Sp Before Squares|Force Sp Before Squares"
-ValueDefault=ignore
-
-[Sp Cpp Before Struct Binding]
-Category=1
-Description="<html>Add or remove space before C++17 structured bindings.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_cpp_before_struct_binding=ignore|sp_cpp_before_struct_binding=add|sp_cpp_before_struct_binding=remove|sp_cpp_before_struct_binding=force|sp_cpp_before_struct_binding=not_defined
-ChoicesReadable="Ignore Sp Cpp Before Struct Binding|Add Sp Cpp Before Struct Binding|Remove Sp Cpp Before Struct Binding|Force Sp Cpp Before Struct Binding"
-ValueDefault=ignore
-
-[Sp Inside Square]
-Category=1
-Description="<html>Add or remove space inside a non-empty '[' and ']'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_inside_square=ignore|sp_inside_square=add|sp_inside_square=remove|sp_inside_square=force|sp_inside_square=not_defined
-ChoicesReadable="Ignore Sp Inside Square|Add Sp Inside Square|Remove Sp Inside Square|Force Sp Inside Square"
-ValueDefault=ignore
-
-[Sp Inside Square Empty]
-Category=1
-Description="<html>Add or remove space inside '[]'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_inside_square_empty=ignore|sp_inside_square_empty=add|sp_inside_square_empty=remove|sp_inside_square_empty=force|sp_inside_square_empty=not_defined
-ChoicesReadable="Ignore Sp Inside Square Empty|Add Sp Inside Square Empty|Remove Sp Inside Square Empty|Force Sp Inside Square Empty"
-ValueDefault=ignore
-
-[Sp Inside Square Oc Array]
-Category=1
-Description="<html>(OC) Add or remove space inside a non-empty Objective-C boxed array '@[' and<br/>']'. If set to ignore, sp_inside_square is used.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_inside_square_oc_array=ignore|sp_inside_square_oc_array=add|sp_inside_square_oc_array=remove|sp_inside_square_oc_array=force|sp_inside_square_oc_array=not_defined
-ChoicesReadable="Ignore Sp Inside Square Oc Array|Add Sp Inside Square Oc Array|Remove Sp Inside Square Oc Array|Force Sp Inside Square Oc Array"
-ValueDefault=ignore
-
-[Sp After Comma]
-Category=1
-Description="<html>Add or remove space after ',', i.e. 'a,b' vs. 'a, b'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_comma=ignore|sp_after_comma=add|sp_after_comma=remove|sp_after_comma=force|sp_after_comma=not_defined
-ChoicesReadable="Ignore Sp After Comma|Add Sp After Comma|Remove Sp After Comma|Force Sp After Comma"
-ValueDefault=ignore
-
-[Sp Before Comma]
-Category=1
-Description="<html>Add or remove space before ',', i.e. 'a,b' vs. 'a ,b'.<br/><br/>Default: remove</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_comma=ignore|sp_before_comma=add|sp_before_comma=remove|sp_before_comma=force|sp_before_comma=not_defined
-ChoicesReadable="Ignore Sp Before Comma|Add Sp Before Comma|Remove Sp Before Comma|Force Sp Before Comma"
-ValueDefault=remove
-
-[Sp After Mdatype Commas]
-Category=1
-Description="<html>(C#) Add or remove space between ',' and ']' in multidimensional array type<br/>like 'int[,,]'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_mdatype_commas=ignore|sp_after_mdatype_commas=add|sp_after_mdatype_commas=remove|sp_after_mdatype_commas=force|sp_after_mdatype_commas=not_defined
-ChoicesReadable="Ignore Sp After Mdatype Commas|Add Sp After Mdatype Commas|Remove Sp After Mdatype Commas|Force Sp After Mdatype Commas"
-ValueDefault=ignore
-
-[Sp Before Mdatype Commas]
-Category=1
-Description="<html>(C#) Add or remove space between '[' and ',' in multidimensional array type<br/>like 'int[,,]'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_mdatype_commas=ignore|sp_before_mdatype_commas=add|sp_before_mdatype_commas=remove|sp_before_mdatype_commas=force|sp_before_mdatype_commas=not_defined
-ChoicesReadable="Ignore Sp Before Mdatype Commas|Add Sp Before Mdatype Commas|Remove Sp Before Mdatype Commas|Force Sp Before Mdatype Commas"
-ValueDefault=ignore
-
-[Sp Between Mdatype Commas]
-Category=1
-Description="<html>(C#) Add or remove space between ',' in multidimensional array type<br/>like 'int[,,]'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_between_mdatype_commas=ignore|sp_between_mdatype_commas=add|sp_between_mdatype_commas=remove|sp_between_mdatype_commas=force|sp_between_mdatype_commas=not_defined
-ChoicesReadable="Ignore Sp Between Mdatype Commas|Add Sp Between Mdatype Commas|Remove Sp Between Mdatype Commas|Force Sp Between Mdatype Commas"
-ValueDefault=ignore
-
-[Sp Paren Comma]
-Category=1
-Description="<html>Add or remove space between an open parenthesis and comma,<br/>i.e. '(,' vs. '( ,'.<br/><br/>Default: force</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_paren_comma=ignore|sp_paren_comma=add|sp_paren_comma=remove|sp_paren_comma=force|sp_paren_comma=not_defined
-ChoicesReadable="Ignore Sp Paren Comma|Add Sp Paren Comma|Remove Sp Paren Comma|Force Sp Paren Comma"
-ValueDefault=force
-
-[Sp After Ellipsis]
-Category=1
-Description="<html>Add or remove space after the variadic '...' when preceded by a<br/>non-punctuator.<br/>The value REMOVE will be overriden with FORCE</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_ellipsis=ignore|sp_after_ellipsis=add|sp_after_ellipsis=remove|sp_after_ellipsis=force|sp_after_ellipsis=not_defined
-ChoicesReadable="Ignore Sp After Ellipsis|Add Sp After Ellipsis|Remove Sp After Ellipsis|Force Sp After Ellipsis"
-ValueDefault=ignore
-
-[Sp Before Ellipsis]
-Category=1
-Description="<html>Add or remove space before the variadic '...' when preceded by a<br/>non-punctuator.<br/>The value REMOVE will be overriden with FORCE</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_ellipsis=ignore|sp_before_ellipsis=add|sp_before_ellipsis=remove|sp_before_ellipsis=force|sp_before_ellipsis=not_defined
-ChoicesReadable="Ignore Sp Before Ellipsis|Add Sp Before Ellipsis|Remove Sp Before Ellipsis|Force Sp Before Ellipsis"
-ValueDefault=ignore
-
-[Sp Type Ellipsis]
-Category=1
-Description="<html>Add or remove space between a type and '...'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_type_ellipsis=ignore|sp_type_ellipsis=add|sp_type_ellipsis=remove|sp_type_ellipsis=force|sp_type_ellipsis=not_defined
-ChoicesReadable="Ignore Sp Type Ellipsis|Add Sp Type Ellipsis|Remove Sp Type Ellipsis|Force Sp Type Ellipsis"
-ValueDefault=ignore
-
-[Sp Ptr Type Ellipsis]
-Category=1
-Description="<html>Add or remove space between a '*' and '...'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_ptr_type_ellipsis=ignore|sp_ptr_type_ellipsis=add|sp_ptr_type_ellipsis=remove|sp_ptr_type_ellipsis=force|sp_ptr_type_ellipsis=not_defined
-ChoicesReadable="Ignore Sp Ptr Type Ellipsis|Add Sp Ptr Type Ellipsis|Remove Sp Ptr Type Ellipsis|Force Sp Ptr Type Ellipsis"
-ValueDefault=ignore
-
-[Sp Type Question]
-Category=1
-Description="<html>(D) Add or remove space between a type and '?'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_type_question=ignore|sp_type_question=add|sp_type_question=remove|sp_type_question=force|sp_type_question=not_defined
-ChoicesReadable="Ignore Sp Type Question|Add Sp Type Question|Remove Sp Type Question|Force Sp Type Question"
-ValueDefault=ignore
-
-[Sp Paren Ellipsis]
-Category=1
-Description="<html>Add or remove space between ')' and '...'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_paren_ellipsis=ignore|sp_paren_ellipsis=add|sp_paren_ellipsis=remove|sp_paren_ellipsis=force|sp_paren_ellipsis=not_defined
-ChoicesReadable="Ignore Sp Paren Ellipsis|Add Sp Paren Ellipsis|Remove Sp Paren Ellipsis|Force Sp Paren Ellipsis"
-ValueDefault=ignore
-
-[Sp Byref Ellipsis]
-Category=1
-Description="<html>Add or remove space between '&amp;&amp;' and '...'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_byref_ellipsis=ignore|sp_byref_ellipsis=add|sp_byref_ellipsis=remove|sp_byref_ellipsis=force|sp_byref_ellipsis=not_defined
-ChoicesReadable="Ignore Sp Byref Ellipsis|Add Sp Byref Ellipsis|Remove Sp Byref Ellipsis|Force Sp Byref Ellipsis"
-ValueDefault=ignore
-
-[Sp Paren Qualifier]
-Category=1
-Description="<html>Add or remove space between ')' and a qualifier such as 'const'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_paren_qualifier=ignore|sp_paren_qualifier=add|sp_paren_qualifier=remove|sp_paren_qualifier=force|sp_paren_qualifier=not_defined
-ChoicesReadable="Ignore Sp Paren Qualifier|Add Sp Paren Qualifier|Remove Sp Paren Qualifier|Force Sp Paren Qualifier"
-ValueDefault=ignore
-
-[Sp Paren Noexcept]
-Category=1
-Description="<html>Add or remove space between ')' and 'noexcept'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_paren_noexcept=ignore|sp_paren_noexcept=add|sp_paren_noexcept=remove|sp_paren_noexcept=force|sp_paren_noexcept=not_defined
-ChoicesReadable="Ignore Sp Paren Noexcept|Add Sp Paren Noexcept|Remove Sp Paren Noexcept|Force Sp Paren Noexcept"
-ValueDefault=ignore
-
-[Sp After Class Colon]
-Category=1
-Description="<html>Add or remove space after class ':'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_class_colon=ignore|sp_after_class_colon=add|sp_after_class_colon=remove|sp_after_class_colon=force|sp_after_class_colon=not_defined
-ChoicesReadable="Ignore Sp After Class Colon|Add Sp After Class Colon|Remove Sp After Class Colon|Force Sp After Class Colon"
-ValueDefault=ignore
-
-[Sp Before Class Colon]
-Category=1
-Description="<html>Add or remove space before class ':'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_class_colon=ignore|sp_before_class_colon=add|sp_before_class_colon=remove|sp_before_class_colon=force|sp_before_class_colon=not_defined
-ChoicesReadable="Ignore Sp Before Class Colon|Add Sp Before Class Colon|Remove Sp Before Class Colon|Force Sp Before Class Colon"
-ValueDefault=ignore
-
-[Sp After Constr Colon]
-Category=1
-Description="<html>Add or remove space after class constructor ':'.<br/><br/>Default: add</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_constr_colon=ignore|sp_after_constr_colon=add|sp_after_constr_colon=remove|sp_after_constr_colon=force|sp_after_constr_colon=not_defined
-ChoicesReadable="Ignore Sp After Constr Colon|Add Sp After Constr Colon|Remove Sp After Constr Colon|Force Sp After Constr Colon"
-ValueDefault=add
-
-[Sp Before Constr Colon]
-Category=1
-Description="<html>Add or remove space before class constructor ':'.<br/><br/>Default: add</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_constr_colon=ignore|sp_before_constr_colon=add|sp_before_constr_colon=remove|sp_before_constr_colon=force|sp_before_constr_colon=not_defined
-ChoicesReadable="Ignore Sp Before Constr Colon|Add Sp Before Constr Colon|Remove Sp Before Constr Colon|Force Sp Before Constr Colon"
-ValueDefault=add
-
-[Sp Before Case Colon]
-Category=1
-Description="<html>Add or remove space before case ':'.<br/><br/>Default: remove</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_case_colon=ignore|sp_before_case_colon=add|sp_before_case_colon=remove|sp_before_case_colon=force|sp_before_case_colon=not_defined
-ChoicesReadable="Ignore Sp Before Case Colon|Add Sp Before Case Colon|Remove Sp Before Case Colon|Force Sp Before Case Colon"
-ValueDefault=remove
-
-[Sp After Operator]
-Category=1
-Description="<html>Add or remove space between 'operator' and operator sign.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_operator=ignore|sp_after_operator=add|sp_after_operator=remove|sp_after_operator=force|sp_after_operator=not_defined
-ChoicesReadable="Ignore Sp After Operator|Add Sp After Operator|Remove Sp After Operator|Force Sp After Operator"
-ValueDefault=ignore
-
-[Sp After Operator Sym]
-Category=1
-Description="<html>Add or remove space between the operator symbol and the open parenthesis, as<br/>in 'operator ++('.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_operator_sym=ignore|sp_after_operator_sym=add|sp_after_operator_sym=remove|sp_after_operator_sym=force|sp_after_operator_sym=not_defined
-ChoicesReadable="Ignore Sp After Operator Sym|Add Sp After Operator Sym|Remove Sp After Operator Sym|Force Sp After Operator Sym"
-ValueDefault=ignore
-
-[Sp After Operator Sym Empty]
-Category=1
-Description="<html>Overrides sp_after_operator_sym when the operator has no arguments, as in<br/>'operator *()'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_operator_sym_empty=ignore|sp_after_operator_sym_empty=add|sp_after_operator_sym_empty=remove|sp_after_operator_sym_empty=force|sp_after_operator_sym_empty=not_defined
-ChoicesReadable="Ignore Sp After Operator Sym Empty|Add Sp After Operator Sym Empty|Remove Sp After Operator Sym Empty|Force Sp After Operator Sym Empty"
-ValueDefault=ignore
-
-[Sp After Cast]
-Category=1
-Description="<html>Add or remove space after C/D cast, i.e. 'cast(int)a' vs. 'cast(int) a' or<br/>'(int)a' vs. '(int) a'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_cast=ignore|sp_after_cast=add|sp_after_cast=remove|sp_after_cast=force|sp_after_cast=not_defined
-ChoicesReadable="Ignore Sp After Cast|Add Sp After Cast|Remove Sp After Cast|Force Sp After Cast"
-ValueDefault=ignore
-
-[Sp Inside Paren Cast]
-Category=1
-Description="<html>Add or remove spaces inside cast parentheses.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_inside_paren_cast=ignore|sp_inside_paren_cast=add|sp_inside_paren_cast=remove|sp_inside_paren_cast=force|sp_inside_paren_cast=not_defined
-ChoicesReadable="Ignore Sp Inside Paren Cast|Add Sp Inside Paren Cast|Remove Sp Inside Paren Cast|Force Sp Inside Paren Cast"
-ValueDefault=ignore
-
-[Sp Cpp Cast Paren]
-Category=1
-Description="<html>Add or remove space between the type and open parenthesis in a C++ cast,<br/>i.e. 'int(exp)' vs. 'int (exp)'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_cpp_cast_paren=ignore|sp_cpp_cast_paren=add|sp_cpp_cast_paren=remove|sp_cpp_cast_paren=force|sp_cpp_cast_paren=not_defined
-ChoicesReadable="Ignore Sp Cpp Cast Paren|Add Sp Cpp Cast Paren|Remove Sp Cpp Cast Paren|Force Sp Cpp Cast Paren"
-ValueDefault=ignore
-
-[Sp Sizeof Paren]
-Category=1
-Description="<html>Add or remove space between 'sizeof' and '('.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_sizeof_paren=ignore|sp_sizeof_paren=add|sp_sizeof_paren=remove|sp_sizeof_paren=force|sp_sizeof_paren=not_defined
-ChoicesReadable="Ignore Sp Sizeof Paren|Add Sp Sizeof Paren|Remove Sp Sizeof Paren|Force Sp Sizeof Paren"
-ValueDefault=ignore
-
-[Sp Sizeof Ellipsis]
-Category=1
-Description="<html>Add or remove space between 'sizeof' and '...'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_sizeof_ellipsis=ignore|sp_sizeof_ellipsis=add|sp_sizeof_ellipsis=remove|sp_sizeof_ellipsis=force|sp_sizeof_ellipsis=not_defined
-ChoicesReadable="Ignore Sp Sizeof Ellipsis|Add Sp Sizeof Ellipsis|Remove Sp Sizeof Ellipsis|Force Sp Sizeof Ellipsis"
-ValueDefault=ignore
-
-[Sp Sizeof Ellipsis Paren]
-Category=1
-Description="<html>Add or remove space between 'sizeof...' and '('.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_sizeof_ellipsis_paren=ignore|sp_sizeof_ellipsis_paren=add|sp_sizeof_ellipsis_paren=remove|sp_sizeof_ellipsis_paren=force|sp_sizeof_ellipsis_paren=not_defined
-ChoicesReadable="Ignore Sp Sizeof Ellipsis Paren|Add Sp Sizeof Ellipsis Paren|Remove Sp Sizeof Ellipsis Paren|Force Sp Sizeof Ellipsis Paren"
-ValueDefault=ignore
-
-[Sp Ellipsis Parameter Pack]
-Category=1
-Description="<html>Add or remove space between '...' and a parameter pack.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_ellipsis_parameter_pack=ignore|sp_ellipsis_parameter_pack=add|sp_ellipsis_parameter_pack=remove|sp_ellipsis_parameter_pack=force|sp_ellipsis_parameter_pack=not_defined
-ChoicesReadable="Ignore Sp Ellipsis Parameter Pack|Add Sp Ellipsis Parameter Pack|Remove Sp Ellipsis Parameter Pack|Force Sp Ellipsis Parameter Pack"
-ValueDefault=ignore
-
-[Sp Parameter Pack Ellipsis]
-Category=1
-Description="<html>Add or remove space between a parameter pack and '...'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_parameter_pack_ellipsis=ignore|sp_parameter_pack_ellipsis=add|sp_parameter_pack_ellipsis=remove|sp_parameter_pack_ellipsis=force|sp_parameter_pack_ellipsis=not_defined
-ChoicesReadable="Ignore Sp Parameter Pack Ellipsis|Add Sp Parameter Pack Ellipsis|Remove Sp Parameter Pack Ellipsis|Force Sp Parameter Pack Ellipsis"
-ValueDefault=ignore
-
-[Sp Decltype Paren]
-Category=1
-Description="<html>Add or remove space between 'decltype' and '('.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_decltype_paren=ignore|sp_decltype_paren=add|sp_decltype_paren=remove|sp_decltype_paren=force|sp_decltype_paren=not_defined
-ChoicesReadable="Ignore Sp Decltype Paren|Add Sp Decltype Paren|Remove Sp Decltype Paren|Force Sp Decltype Paren"
-ValueDefault=ignore
-
-[Sp After Tag]
-Category=1
-Description="<html>(Pawn) Add or remove space after the tag keyword.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_tag=ignore|sp_after_tag=add|sp_after_tag=remove|sp_after_tag=force|sp_after_tag=not_defined
-ChoicesReadable="Ignore Sp After Tag|Add Sp After Tag|Remove Sp After Tag|Force Sp After Tag"
-ValueDefault=ignore
-
-[Sp Inside Braces Enum]
-Category=1
-Description="<html>Add or remove space inside enum '{' and '}'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_inside_braces_enum=ignore|sp_inside_braces_enum=add|sp_inside_braces_enum=remove|sp_inside_braces_enum=force|sp_inside_braces_enum=not_defined
-ChoicesReadable="Ignore Sp Inside Braces Enum|Add Sp Inside Braces Enum|Remove Sp Inside Braces Enum|Force Sp Inside Braces Enum"
-ValueDefault=ignore
-
-[Sp Inside Braces Struct]
-Category=1
-Description="<html>Add or remove space inside struct/union '{' and '}'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_inside_braces_struct=ignore|sp_inside_braces_struct=add|sp_inside_braces_struct=remove|sp_inside_braces_struct=force|sp_inside_braces_struct=not_defined
-ChoicesReadable="Ignore Sp Inside Braces Struct|Add Sp Inside Braces Struct|Remove Sp Inside Braces Struct|Force Sp Inside Braces Struct"
-ValueDefault=ignore
-
-[Sp Inside Braces Oc Dict]
-Category=1
-Description="<html>(OC) Add or remove space inside Objective-C boxed dictionary '{' and '}'</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_inside_braces_oc_dict=ignore|sp_inside_braces_oc_dict=add|sp_inside_braces_oc_dict=remove|sp_inside_braces_oc_dict=force|sp_inside_braces_oc_dict=not_defined
-ChoicesReadable="Ignore Sp Inside Braces Oc Dict|Add Sp Inside Braces Oc Dict|Remove Sp Inside Braces Oc Dict|Force Sp Inside Braces Oc Dict"
-ValueDefault=ignore
-
-[Sp After Type Brace Init Lst Open]
-Category=1
-Description="<html>Add or remove space after open brace in an unnamed temporary<br/>direct-list-initialization<br/>if statement is a brace_init_lst<br/>works only if sp_brace_brace is set to ignore.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_type_brace_init_lst_open=ignore|sp_after_type_brace_init_lst_open=add|sp_after_type_brace_init_lst_open=remove|sp_after_type_brace_init_lst_open=force|sp_after_type_brace_init_lst_open=not_defined
-ChoicesReadable="Ignore Sp After Type Brace Init Lst Open|Add Sp After Type Brace Init Lst Open|Remove Sp After Type Brace Init Lst Open|Force Sp After Type Brace Init Lst Open"
-ValueDefault=ignore
-
-[Sp Before Type Brace Init Lst Close]
-Category=1
-Description="<html>Add or remove space before close brace in an unnamed temporary<br/>direct-list-initialization<br/>if statement is a brace_init_lst<br/>works only if sp_brace_brace is set to ignore.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_type_brace_init_lst_close=ignore|sp_before_type_brace_init_lst_close=add|sp_before_type_brace_init_lst_close=remove|sp_before_type_brace_init_lst_close=force|sp_before_type_brace_init_lst_close=not_defined
-ChoicesReadable="Ignore Sp Before Type Brace Init Lst Close|Add Sp Before Type Brace Init Lst Close|Remove Sp Before Type Brace Init Lst Close|Force Sp Before Type Brace Init Lst Close"
-ValueDefault=ignore
-
-[Sp Inside Type Brace Init Lst]
-Category=1
-Description="<html>Add or remove space inside an unnamed temporary direct-list-initialization<br/>if statement is a brace_init_lst<br/>works only if sp_brace_brace is set to ignore<br/>works only if sp_before_type_brace_init_lst_close is set to ignore.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_inside_type_brace_init_lst=ignore|sp_inside_type_brace_init_lst=add|sp_inside_type_brace_init_lst=remove|sp_inside_type_brace_init_lst=force|sp_inside_type_brace_init_lst=not_defined
-ChoicesReadable="Ignore Sp Inside Type Brace Init Lst|Add Sp Inside Type Brace Init Lst|Remove Sp Inside Type Brace Init Lst|Force Sp Inside Type Brace Init Lst"
-ValueDefault=ignore
-
-[Sp Inside Braces]
-Category=1
-Description="<html>Add or remove space inside '{' and '}'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_inside_braces=ignore|sp_inside_braces=add|sp_inside_braces=remove|sp_inside_braces=force|sp_inside_braces=not_defined
-ChoicesReadable="Ignore Sp Inside Braces|Add Sp Inside Braces|Remove Sp Inside Braces|Force Sp Inside Braces"
-ValueDefault=ignore
-
-[Sp Inside Braces Empty]
-Category=1
-Description="<html>Add or remove space inside '{}'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_inside_braces_empty=ignore|sp_inside_braces_empty=add|sp_inside_braces_empty=remove|sp_inside_braces_empty=force|sp_inside_braces_empty=not_defined
-ChoicesReadable="Ignore Sp Inside Braces Empty|Add Sp Inside Braces Empty|Remove Sp Inside Braces Empty|Force Sp Inside Braces Empty"
-ValueDefault=ignore
-
-[Sp Trailing Return]
-Category=1
-Description="<html>Add or remove space around trailing return operator '-&gt;'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_trailing_return=ignore|sp_trailing_return=add|sp_trailing_return=remove|sp_trailing_return=force|sp_trailing_return=not_defined
-ChoicesReadable="Ignore Sp Trailing Return|Add Sp Trailing Return|Remove Sp Trailing Return|Force Sp Trailing Return"
-ValueDefault=ignore
-
-[Sp Type Func]
-Category=1
-Description="<html>Add or remove space between return type and function name. A minimum of 1<br/>is forced except for pointer return types.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_type_func=ignore|sp_type_func=add|sp_type_func=remove|sp_type_func=force|sp_type_func=not_defined
-ChoicesReadable="Ignore Sp Type Func|Add Sp Type Func|Remove Sp Type Func|Force Sp Type Func"
-ValueDefault=ignore
-
-[Sp Type Brace Init Lst]
-Category=1
-Description="<html>Add or remove space between type and open brace of an unnamed temporary<br/>direct-list-initialization.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_type_brace_init_lst=ignore|sp_type_brace_init_lst=add|sp_type_brace_init_lst=remove|sp_type_brace_init_lst=force|sp_type_brace_init_lst=not_defined
-ChoicesReadable="Ignore Sp Type Brace Init Lst|Add Sp Type Brace Init Lst|Remove Sp Type Brace Init Lst|Force Sp Type Brace Init Lst"
-ValueDefault=ignore
-
-[Sp Func Proto Paren]
-Category=1
-Description="<html>Add or remove space between function name and '(' on function declaration.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_func_proto_paren=ignore|sp_func_proto_paren=add|sp_func_proto_paren=remove|sp_func_proto_paren=force|sp_func_proto_paren=not_defined
-ChoicesReadable="Ignore Sp Func Proto Paren|Add Sp Func Proto Paren|Remove Sp Func Proto Paren|Force Sp Func Proto Paren"
-ValueDefault=ignore
-
-[Sp Func Proto Paren Empty]
-Category=1
-Description="<html>Add or remove space between function name and '()' on function declaration<br/>without parameters.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_func_proto_paren_empty=ignore|sp_func_proto_paren_empty=add|sp_func_proto_paren_empty=remove|sp_func_proto_paren_empty=force|sp_func_proto_paren_empty=not_defined
-ChoicesReadable="Ignore Sp Func Proto Paren Empty|Add Sp Func Proto Paren Empty|Remove Sp Func Proto Paren Empty|Force Sp Func Proto Paren Empty"
-ValueDefault=ignore
-
-[Sp Func Type Paren]
-Category=1
-Description="<html>Add or remove space between function name and '(' with a typedef specifier.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_func_type_paren=ignore|sp_func_type_paren=add|sp_func_type_paren=remove|sp_func_type_paren=force|sp_func_type_paren=not_defined
-ChoicesReadable="Ignore Sp Func Type Paren|Add Sp Func Type Paren|Remove Sp Func Type Paren|Force Sp Func Type Paren"
-ValueDefault=ignore
-
-[Sp Func Def Paren]
-Category=1
-Description="<html>Add or remove space between alias name and '(' of a non-pointer function type typedef.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_func_def_paren=ignore|sp_func_def_paren=add|sp_func_def_paren=remove|sp_func_def_paren=force|sp_func_def_paren=not_defined
-ChoicesReadable="Ignore Sp Func Def Paren|Add Sp Func Def Paren|Remove Sp Func Def Paren|Force Sp Func Def Paren"
-ValueDefault=ignore
-
-[Sp Func Def Paren Empty]
-Category=1
-Description="<html>Add or remove space between function name and '()' on function definition<br/>without parameters.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_func_def_paren_empty=ignore|sp_func_def_paren_empty=add|sp_func_def_paren_empty=remove|sp_func_def_paren_empty=force|sp_func_def_paren_empty=not_defined
-ChoicesReadable="Ignore Sp Func Def Paren Empty|Add Sp Func Def Paren Empty|Remove Sp Func Def Paren Empty|Force Sp Func Def Paren Empty"
-ValueDefault=ignore
-
-[Sp Inside Fparens]
-Category=1
-Description="<html>Add or remove space inside empty function '()'.<br/>Overrides sp_after_angle unless use_sp_after_angle_always is set to true.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_inside_fparens=ignore|sp_inside_fparens=add|sp_inside_fparens=remove|sp_inside_fparens=force|sp_inside_fparens=not_defined
-ChoicesReadable="Ignore Sp Inside Fparens|Add Sp Inside Fparens|Remove Sp Inside Fparens|Force Sp Inside Fparens"
-ValueDefault=ignore
-
-[Sp Inside Fparen]
-Category=1
-Description="<html>Add or remove space inside function '(' and ')'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_inside_fparen=ignore|sp_inside_fparen=add|sp_inside_fparen=remove|sp_inside_fparen=force|sp_inside_fparen=not_defined
-ChoicesReadable="Ignore Sp Inside Fparen|Add Sp Inside Fparen|Remove Sp Inside Fparen|Force Sp Inside Fparen"
-ValueDefault=ignore
-
-[Sp Inside Tparen]
-Category=1
-Description="<html>Add or remove space inside the first parentheses in a function type, as in<br/>'void (*x)(...)'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_inside_tparen=ignore|sp_inside_tparen=add|sp_inside_tparen=remove|sp_inside_tparen=force|sp_inside_tparen=not_defined
-ChoicesReadable="Ignore Sp Inside Tparen|Add Sp Inside Tparen|Remove Sp Inside Tparen|Force Sp Inside Tparen"
-ValueDefault=ignore
-
-[Sp After Tparen Close]
-Category=1
-Description="<html>Add or remove space between the ')' and '(' in a function type, as in<br/>'void (*x)(...)'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_tparen_close=ignore|sp_after_tparen_close=add|sp_after_tparen_close=remove|sp_after_tparen_close=force|sp_after_tparen_close=not_defined
-ChoicesReadable="Ignore Sp After Tparen Close|Add Sp After Tparen Close|Remove Sp After Tparen Close|Force Sp After Tparen Close"
-ValueDefault=ignore
-
-[Sp Square Fparen]
-Category=1
-Description="<html>Add or remove space between ']' and '(' when part of a function call.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_square_fparen=ignore|sp_square_fparen=add|sp_square_fparen=remove|sp_square_fparen=force|sp_square_fparen=not_defined
-ChoicesReadable="Ignore Sp Square Fparen|Add Sp Square Fparen|Remove Sp Square Fparen|Force Sp Square Fparen"
-ValueDefault=ignore
-
-[Sp Fparen Brace]
-Category=1
-Description="<html>Add or remove space between ')' and '{' of function.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_fparen_brace=ignore|sp_fparen_brace=add|sp_fparen_brace=remove|sp_fparen_brace=force|sp_fparen_brace=not_defined
-ChoicesReadable="Ignore Sp Fparen Brace|Add Sp Fparen Brace|Remove Sp Fparen Brace|Force Sp Fparen Brace"
-ValueDefault=ignore
-
-[Sp Fparen Brace Initializer]
-Category=1
-Description="<html>Add or remove space between ')' and '{' of a function call in object<br/>initialization.<br/><br/>Overrides sp_fparen_brace.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_fparen_brace_initializer=ignore|sp_fparen_brace_initializer=add|sp_fparen_brace_initializer=remove|sp_fparen_brace_initializer=force|sp_fparen_brace_initializer=not_defined
-ChoicesReadable="Ignore Sp Fparen Brace Initializer|Add Sp Fparen Brace Initializer|Remove Sp Fparen Brace Initializer|Force Sp Fparen Brace Initializer"
-ValueDefault=ignore
-
-[Sp Fparen Dbrace]
-Category=1
-Description="<html>(Java) Add or remove space between ')' and '{{' of double brace initializer.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_fparen_dbrace=ignore|sp_fparen_dbrace=add|sp_fparen_dbrace=remove|sp_fparen_dbrace=force|sp_fparen_dbrace=not_defined
-ChoicesReadable="Ignore Sp Fparen Dbrace|Add Sp Fparen Dbrace|Remove Sp Fparen Dbrace|Force Sp Fparen Dbrace"
-ValueDefault=ignore
-
-[Sp Func Call Paren]
-Category=1
-Description="<html>Add or remove space between function name and '(' on function calls.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_func_call_paren=ignore|sp_func_call_paren=add|sp_func_call_paren=remove|sp_func_call_paren=force|sp_func_call_paren=not_defined
-ChoicesReadable="Ignore Sp Func Call Paren|Add Sp Func Call Paren|Remove Sp Func Call Paren|Force Sp Func Call Paren"
-ValueDefault=ignore
-
-[Sp Func Call Paren Empty]
-Category=1
-Description="<html>Add or remove space between function name and '()' on function calls without<br/>parameters. If set to ignore (the default), sp_func_call_paren is used.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_func_call_paren_empty=ignore|sp_func_call_paren_empty=add|sp_func_call_paren_empty=remove|sp_func_call_paren_empty=force|sp_func_call_paren_empty=not_defined
-ChoicesReadable="Ignore Sp Func Call Paren Empty|Add Sp Func Call Paren Empty|Remove Sp Func Call Paren Empty|Force Sp Func Call Paren Empty"
-ValueDefault=ignore
-
-[Sp Func Call User Paren]
-Category=1
-Description="<html>Add or remove space between the user function name and '(' on function<br/>calls. You need to set a keyword to be a user function in the config file,<br/>like:<br/> set func_call_user tr _ i18n</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_func_call_user_paren=ignore|sp_func_call_user_paren=add|sp_func_call_user_paren=remove|sp_func_call_user_paren=force|sp_func_call_user_paren=not_defined
-ChoicesReadable="Ignore Sp Func Call User Paren|Add Sp Func Call User Paren|Remove Sp Func Call User Paren|Force Sp Func Call User Paren"
-ValueDefault=ignore
-
-[Sp Func Call User Inside Fparen]
-Category=1
-Description="<html>Add or remove space inside user function '(' and ')'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_func_call_user_inside_fparen=ignore|sp_func_call_user_inside_fparen=add|sp_func_call_user_inside_fparen=remove|sp_func_call_user_inside_fparen=force|sp_func_call_user_inside_fparen=not_defined
-ChoicesReadable="Ignore Sp Func Call User Inside Fparen|Add Sp Func Call User Inside Fparen|Remove Sp Func Call User Inside Fparen|Force Sp Func Call User Inside Fparen"
-ValueDefault=ignore
-
-[Sp Func Call User Paren Paren]
-Category=1
-Description="<html>Add or remove space between nested parentheses with user functions,<br/>i.e. '((' vs. '( ('.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_func_call_user_paren_paren=ignore|sp_func_call_user_paren_paren=add|sp_func_call_user_paren_paren=remove|sp_func_call_user_paren_paren=force|sp_func_call_user_paren_paren=not_defined
-ChoicesReadable="Ignore Sp Func Call User Paren Paren|Add Sp Func Call User Paren Paren|Remove Sp Func Call User Paren Paren|Force Sp Func Call User Paren Paren"
-ValueDefault=ignore
-
-[Sp Func Class Paren]
-Category=1
-Description="<html>Add or remove space between a constructor/destructor and the open<br/>parenthesis.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_func_class_paren=ignore|sp_func_class_paren=add|sp_func_class_paren=remove|sp_func_class_paren=force|sp_func_class_paren=not_defined
-ChoicesReadable="Ignore Sp Func Class Paren|Add Sp Func Class Paren|Remove Sp Func Class Paren|Force Sp Func Class Paren"
-ValueDefault=ignore
-
-[Sp Func Class Paren Empty]
-Category=1
-Description="<html>Add or remove space between a constructor without parameters or destructor<br/>and '()'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_func_class_paren_empty=ignore|sp_func_class_paren_empty=add|sp_func_class_paren_empty=remove|sp_func_class_paren_empty=force|sp_func_class_paren_empty=not_defined
-ChoicesReadable="Ignore Sp Func Class Paren Empty|Add Sp Func Class Paren Empty|Remove Sp Func Class Paren Empty|Force Sp Func Class Paren Empty"
-ValueDefault=ignore
-
-[Sp Return]
-Category=1
-Description="<html>Add or remove space after 'return'.<br/><br/>Default: force</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_return=ignore|sp_return=add|sp_return=remove|sp_return=force|sp_return=not_defined
-ChoicesReadable="Ignore Sp Return|Add Sp Return|Remove Sp Return|Force Sp Return"
-ValueDefault=force
-
-[Sp Return Paren]
-Category=1
-Description="<html>Add or remove space between 'return' and '('.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_return_paren=ignore|sp_return_paren=add|sp_return_paren=remove|sp_return_paren=force|sp_return_paren=not_defined
-ChoicesReadable="Ignore Sp Return Paren|Add Sp Return Paren|Remove Sp Return Paren|Force Sp Return Paren"
-ValueDefault=ignore
-
-[Sp Return Brace]
-Category=1
-Description="<html>Add or remove space between 'return' and '{'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_return_brace=ignore|sp_return_brace=add|sp_return_brace=remove|sp_return_brace=force|sp_return_brace=not_defined
-ChoicesReadable="Ignore Sp Return Brace|Add Sp Return Brace|Remove Sp Return Brace|Force Sp Return Brace"
-ValueDefault=ignore
-
-[Sp Attribute Paren]
-Category=1
-Description="<html>Add or remove space between '__attribute__' and '('.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_attribute_paren=ignore|sp_attribute_paren=add|sp_attribute_paren=remove|sp_attribute_paren=force|sp_attribute_paren=not_defined
-ChoicesReadable="Ignore Sp Attribute Paren|Add Sp Attribute Paren|Remove Sp Attribute Paren|Force Sp Attribute Paren"
-ValueDefault=ignore
-
-[Sp Defined Paren]
-Category=1
-Description="<html>Add or remove space between 'defined' and '(' in '#if defined (FOO)'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_defined_paren=ignore|sp_defined_paren=add|sp_defined_paren=remove|sp_defined_paren=force|sp_defined_paren=not_defined
-ChoicesReadable="Ignore Sp Defined Paren|Add Sp Defined Paren|Remove Sp Defined Paren|Force Sp Defined Paren"
-ValueDefault=ignore
-
-[Sp Throw Paren]
-Category=1
-Description="<html>Add or remove space between 'throw' and '(' in 'throw (something)'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_throw_paren=ignore|sp_throw_paren=add|sp_throw_paren=remove|sp_throw_paren=force|sp_throw_paren=not_defined
-ChoicesReadable="Ignore Sp Throw Paren|Add Sp Throw Paren|Remove Sp Throw Paren|Force Sp Throw Paren"
-ValueDefault=ignore
-
-[Sp After Throw]
-Category=1
-Description="<html>Add or remove space between 'throw' and anything other than '(' as in<br/>'@throw [...];'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_throw=ignore|sp_after_throw=add|sp_after_throw=remove|sp_after_throw=force|sp_after_throw=not_defined
-ChoicesReadable="Ignore Sp After Throw|Add Sp After Throw|Remove Sp After Throw|Force Sp After Throw"
-ValueDefault=ignore
-
-[Sp Catch Paren]
-Category=1
-Description="<html>Add or remove space between 'catch' and '(' in 'catch (something) { }'.<br/>If set to ignore, sp_before_sparen is used.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_catch_paren=ignore|sp_catch_paren=add|sp_catch_paren=remove|sp_catch_paren=force|sp_catch_paren=not_defined
-ChoicesReadable="Ignore Sp Catch Paren|Add Sp Catch Paren|Remove Sp Catch Paren|Force Sp Catch Paren"
-ValueDefault=ignore
-
-[Sp Oc Catch Paren]
-Category=1
-Description="<html>(OC) Add or remove space between '@catch' and '('<br/>in '@catch (something) { }'. If set to ignore, sp_catch_paren is used.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_oc_catch_paren=ignore|sp_oc_catch_paren=add|sp_oc_catch_paren=remove|sp_oc_catch_paren=force|sp_oc_catch_paren=not_defined
-ChoicesReadable="Ignore Sp Oc Catch Paren|Add Sp Oc Catch Paren|Remove Sp Oc Catch Paren|Force Sp Oc Catch Paren"
-ValueDefault=ignore
-
-[Sp Before Oc Proto List]
-Category=1
-Description="<html>(OC) Add or remove space before Objective-C protocol list<br/>as in '@protocol Protocol&lt;here&gt;&lt;Protocol_A&gt;' or '@interface MyClass : NSObject&lt;here&gt;&lt;MyProtocol&gt;'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_oc_proto_list=ignore|sp_before_oc_proto_list=add|sp_before_oc_proto_list=remove|sp_before_oc_proto_list=force|sp_before_oc_proto_list=not_defined
-ChoicesReadable="Ignore Sp Before Oc Proto List|Add Sp Before Oc Proto List|Remove Sp Before Oc Proto List|Force Sp Before Oc Proto List"
-ValueDefault=ignore
-
-[Sp Oc Classname Paren]
-Category=1
-Description="<html>(OC) Add or remove space between class name and '('<br/>in '@interface className(categoryName)&lt;ProtocolName&gt;:BaseClass'</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_oc_classname_paren=ignore|sp_oc_classname_paren=add|sp_oc_classname_paren=remove|sp_oc_classname_paren=force|sp_oc_classname_paren=not_defined
-ChoicesReadable="Ignore Sp Oc Classname Paren|Add Sp Oc Classname Paren|Remove Sp Oc Classname Paren|Force Sp Oc Classname Paren"
-ValueDefault=ignore
-
-[Sp Version Paren]
-Category=1
-Description="<html>(D) Add or remove space between 'version' and '('<br/>in 'version (something) { }'. If set to ignore, sp_before_sparen is used.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_version_paren=ignore|sp_version_paren=add|sp_version_paren=remove|sp_version_paren=force|sp_version_paren=not_defined
-ChoicesReadable="Ignore Sp Version Paren|Add Sp Version Paren|Remove Sp Version Paren|Force Sp Version Paren"
-ValueDefault=ignore
-
-[Sp Scope Paren]
-Category=1
-Description="<html>(D) Add or remove space between 'scope' and '('<br/>in 'scope (something) { }'. If set to ignore, sp_before_sparen is used.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_scope_paren=ignore|sp_scope_paren=add|sp_scope_paren=remove|sp_scope_paren=force|sp_scope_paren=not_defined
-ChoicesReadable="Ignore Sp Scope Paren|Add Sp Scope Paren|Remove Sp Scope Paren|Force Sp Scope Paren"
-ValueDefault=ignore
-
-[Sp Super Paren]
-Category=1
-Description="<html>Add or remove space between 'super' and '(' in 'super (something)'.<br/><br/>Default: remove</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_super_paren=ignore|sp_super_paren=add|sp_super_paren=remove|sp_super_paren=force|sp_super_paren=not_defined
-ChoicesReadable="Ignore Sp Super Paren|Add Sp Super Paren|Remove Sp Super Paren|Force Sp Super Paren"
-ValueDefault=remove
-
-[Sp This Paren]
-Category=1
-Description="<html>Add or remove space between 'this' and '(' in 'this (something)'.<br/><br/>Default: remove</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_this_paren=ignore|sp_this_paren=add|sp_this_paren=remove|sp_this_paren=force|sp_this_paren=not_defined
-ChoicesReadable="Ignore Sp This Paren|Add Sp This Paren|Remove Sp This Paren|Force Sp This Paren"
-ValueDefault=remove
-
-[Sp Macro]
-Category=1
-Description="<html>Add or remove space between a macro name and its definition.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_macro=ignore|sp_macro=add|sp_macro=remove|sp_macro=force|sp_macro=not_defined
-ChoicesReadable="Ignore Sp Macro|Add Sp Macro|Remove Sp Macro|Force Sp Macro"
-ValueDefault=ignore
-
-[Sp Macro Func]
-Category=1
-Description="<html>Add or remove space between a macro function ')' and its definition.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_macro_func=ignore|sp_macro_func=add|sp_macro_func=remove|sp_macro_func=force|sp_macro_func=not_defined
-ChoicesReadable="Ignore Sp Macro Func|Add Sp Macro Func|Remove Sp Macro Func|Force Sp Macro Func"
-ValueDefault=ignore
-
-[Sp Else Brace]
-Category=1
-Description="<html>Add or remove space between 'else' and '{' if on the same line.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_else_brace=ignore|sp_else_brace=add|sp_else_brace=remove|sp_else_brace=force|sp_else_brace=not_defined
-ChoicesReadable="Ignore Sp Else Brace|Add Sp Else Brace|Remove Sp Else Brace|Force Sp Else Brace"
-ValueDefault=ignore
-
-[Sp Brace Else]
-Category=1
-Description="<html>Add or remove space between '}' and 'else' if on the same line.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_brace_else=ignore|sp_brace_else=add|sp_brace_else=remove|sp_brace_else=force|sp_brace_else=not_defined
-ChoicesReadable="Ignore Sp Brace Else|Add Sp Brace Else|Remove Sp Brace Else|Force Sp Brace Else"
-ValueDefault=ignore
-
-[Sp Brace Typedef]
-Category=1
-Description="<html>Add or remove space between '}' and the name of a typedef on the same line.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_brace_typedef=ignore|sp_brace_typedef=add|sp_brace_typedef=remove|sp_brace_typedef=force|sp_brace_typedef=not_defined
-ChoicesReadable="Ignore Sp Brace Typedef|Add Sp Brace Typedef|Remove Sp Brace Typedef|Force Sp Brace Typedef"
-ValueDefault=ignore
-
-[Sp Catch Brace]
-Category=1
-Description="<html>Add or remove space before the '{' of a 'catch' statement, if the '{' and<br/>'catch' are on the same line, as in 'catch (decl) &lt;here&gt; {'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_catch_brace=ignore|sp_catch_brace=add|sp_catch_brace=remove|sp_catch_brace=force|sp_catch_brace=not_defined
-ChoicesReadable="Ignore Sp Catch Brace|Add Sp Catch Brace|Remove Sp Catch Brace|Force Sp Catch Brace"
-ValueDefault=ignore
-
-[Sp Oc Catch Brace]
-Category=1
-Description="<html>(OC) Add or remove space before the '{' of a '@catch' statement, if the '{'<br/>and '@catch' are on the same line, as in '@catch (decl) &lt;here&gt; {'.<br/>If set to ignore, sp_catch_brace is used.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_oc_catch_brace=ignore|sp_oc_catch_brace=add|sp_oc_catch_brace=remove|sp_oc_catch_brace=force|sp_oc_catch_brace=not_defined
-ChoicesReadable="Ignore Sp Oc Catch Brace|Add Sp Oc Catch Brace|Remove Sp Oc Catch Brace|Force Sp Oc Catch Brace"
-ValueDefault=ignore
-
-[Sp Brace Catch]
-Category=1
-Description="<html>Add or remove space between '}' and 'catch' if on the same line.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_brace_catch=ignore|sp_brace_catch=add|sp_brace_catch=remove|sp_brace_catch=force|sp_brace_catch=not_defined
-ChoicesReadable="Ignore Sp Brace Catch|Add Sp Brace Catch|Remove Sp Brace Catch|Force Sp Brace Catch"
-ValueDefault=ignore
-
-[Sp Oc Brace Catch]
-Category=1
-Description="<html>(OC) Add or remove space between '}' and '@catch' if on the same line.<br/>If set to ignore, sp_brace_catch is used.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_oc_brace_catch=ignore|sp_oc_brace_catch=add|sp_oc_brace_catch=remove|sp_oc_brace_catch=force|sp_oc_brace_catch=not_defined
-ChoicesReadable="Ignore Sp Oc Brace Catch|Add Sp Oc Brace Catch|Remove Sp Oc Brace Catch|Force Sp Oc Brace Catch"
-ValueDefault=ignore
-
-[Sp Finally Brace]
-Category=1
-Description="<html>Add or remove space between 'finally' and '{' if on the same line.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_finally_brace=ignore|sp_finally_brace=add|sp_finally_brace=remove|sp_finally_brace=force|sp_finally_brace=not_defined
-ChoicesReadable="Ignore Sp Finally Brace|Add Sp Finally Brace|Remove Sp Finally Brace|Force Sp Finally Brace"
-ValueDefault=ignore
-
-[Sp Brace Finally]
-Category=1
-Description="<html>Add or remove space between '}' and 'finally' if on the same line.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_brace_finally=ignore|sp_brace_finally=add|sp_brace_finally=remove|sp_brace_finally=force|sp_brace_finally=not_defined
-ChoicesReadable="Ignore Sp Brace Finally|Add Sp Brace Finally|Remove Sp Brace Finally|Force Sp Brace Finally"
-ValueDefault=ignore
-
-[Sp Try Brace]
-Category=1
-Description="<html>Add or remove space between 'try' and '{' if on the same line.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_try_brace=ignore|sp_try_brace=add|sp_try_brace=remove|sp_try_brace=force|sp_try_brace=not_defined
-ChoicesReadable="Ignore Sp Try Brace|Add Sp Try Brace|Remove Sp Try Brace|Force Sp Try Brace"
-ValueDefault=ignore
-
-[Sp Getset Brace]
-Category=1
-Description="<html>Add or remove space between get/set and '{' if on the same line.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_getset_brace=ignore|sp_getset_brace=add|sp_getset_brace=remove|sp_getset_brace=force|sp_getset_brace=not_defined
-ChoicesReadable="Ignore Sp Getset Brace|Add Sp Getset Brace|Remove Sp Getset Brace|Force Sp Getset Brace"
-ValueDefault=ignore
-
-[Sp Word Brace Init Lst]
-Category=1
-Description="<html>Add or remove space between a variable and '{' for C++ uniform<br/>initialization.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_word_brace_init_lst=ignore|sp_word_brace_init_lst=add|sp_word_brace_init_lst=remove|sp_word_brace_init_lst=force|sp_word_brace_init_lst=not_defined
-ChoicesReadable="Ignore Sp Word Brace Init Lst|Add Sp Word Brace Init Lst|Remove Sp Word Brace Init Lst|Force Sp Word Brace Init Lst"
-ValueDefault=ignore
-
-[Sp Word Brace Ns]
-Category=1
-Description="<html>Add or remove space between a variable and '{' for a namespace.<br/><br/>Default: add</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_word_brace_ns=ignore|sp_word_brace_ns=add|sp_word_brace_ns=remove|sp_word_brace_ns=force|sp_word_brace_ns=not_defined
-ChoicesReadable="Ignore Sp Word Brace Ns|Add Sp Word Brace Ns|Remove Sp Word Brace Ns|Force Sp Word Brace Ns"
-ValueDefault=add
-
-[Sp Before Dc]
-Category=1
-Description="<html>Add or remove space before the '::' operator.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_dc=ignore|sp_before_dc=add|sp_before_dc=remove|sp_before_dc=force|sp_before_dc=not_defined
-ChoicesReadable="Ignore Sp Before Dc|Add Sp Before Dc|Remove Sp Before Dc|Force Sp Before Dc"
-ValueDefault=ignore
-
-[Sp After Dc]
-Category=1
-Description="<html>Add or remove space after the '::' operator.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_dc=ignore|sp_after_dc=add|sp_after_dc=remove|sp_after_dc=force|sp_after_dc=not_defined
-ChoicesReadable="Ignore Sp After Dc|Add Sp After Dc|Remove Sp After Dc|Force Sp After Dc"
-ValueDefault=ignore
-
-[Sp D Array Colon]
-Category=1
-Description="<html>(D) Add or remove around the D named array initializer ':' operator.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_d_array_colon=ignore|sp_d_array_colon=add|sp_d_array_colon=remove|sp_d_array_colon=force|sp_d_array_colon=not_defined
-ChoicesReadable="Ignore Sp D Array Colon|Add Sp D Array Colon|Remove Sp D Array Colon|Force Sp D Array Colon"
-ValueDefault=ignore
-
-[Sp Not]
-Category=1
-Description="<html>Add or remove space after the '!' (not) unary operator.<br/><br/>Default: remove</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_not=ignore|sp_not=add|sp_not=remove|sp_not=force|sp_not=not_defined
-ChoicesReadable="Ignore Sp Not|Add Sp Not|Remove Sp Not|Force Sp Not"
-ValueDefault=remove
-
-[Sp Inv]
-Category=1
-Description="<html>Add or remove space after the '~' (invert) unary operator.<br/><br/>Default: remove</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_inv=ignore|sp_inv=add|sp_inv=remove|sp_inv=force|sp_inv=not_defined
-ChoicesReadable="Ignore Sp Inv|Add Sp Inv|Remove Sp Inv|Force Sp Inv"
-ValueDefault=remove
-
-[Sp Addr]
-Category=1
-Description="<html>Add or remove space after the '&amp;' (address-of) unary operator. This does not<br/>affect the spacing after a '&amp;' that is part of a type.<br/><br/>Default: remove</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_addr=ignore|sp_addr=add|sp_addr=remove|sp_addr=force|sp_addr=not_defined
-ChoicesReadable="Ignore Sp Addr|Add Sp Addr|Remove Sp Addr|Force Sp Addr"
-ValueDefault=remove
-
-[Sp Member]
-Category=1
-Description="<html>Add or remove space around the '.' or '-&gt;' operators.<br/><br/>Default: remove</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_member=ignore|sp_member=add|sp_member=remove|sp_member=force|sp_member=not_defined
-ChoicesReadable="Ignore Sp Member|Add Sp Member|Remove Sp Member|Force Sp Member"
-ValueDefault=remove
-
-[Sp Deref]
-Category=1
-Description="<html>Add or remove space after the '*' (dereference) unary operator. This does<br/>not affect the spacing after a '*' that is part of a type.<br/><br/>Default: remove</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_deref=ignore|sp_deref=add|sp_deref=remove|sp_deref=force|sp_deref=not_defined
-ChoicesReadable="Ignore Sp Deref|Add Sp Deref|Remove Sp Deref|Force Sp Deref"
-ValueDefault=remove
-
-[Sp Sign]
-Category=1
-Description="<html>Add or remove space after '+' or '-', as in 'x = -5' or 'y = +7'.<br/><br/>Default: remove</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_sign=ignore|sp_sign=add|sp_sign=remove|sp_sign=force|sp_sign=not_defined
-ChoicesReadable="Ignore Sp Sign|Add Sp Sign|Remove Sp Sign|Force Sp Sign"
-ValueDefault=remove
-
-[Sp Incdec]
-Category=1
-Description="<html>Add or remove space between '++' and '--' the word to which it is being<br/>applied, as in '(--x)' or 'y++;'.<br/><br/>Default: remove</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_incdec=ignore|sp_incdec=add|sp_incdec=remove|sp_incdec=force|sp_incdec=not_defined
-ChoicesReadable="Ignore Sp Incdec|Add Sp Incdec|Remove Sp Incdec|Force Sp Incdec"
-ValueDefault=remove
-
-[Sp Before Nl Cont]
-Category=1
-Description="<html>Add or remove space before a backslash-newline at the end of a line.<br/><br/>Default: add</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_nl_cont=ignore|sp_before_nl_cont=add|sp_before_nl_cont=remove|sp_before_nl_cont=force|sp_before_nl_cont=not_defined
-ChoicesReadable="Ignore Sp Before Nl Cont|Add Sp Before Nl Cont|Remove Sp Before Nl Cont|Force Sp Before Nl Cont"
-ValueDefault=add
-
-[Sp After Oc Scope]
-Category=1
-Description="<html>(OC) Add or remove space after the scope '+' or '-', as in '-(void) foo;'<br/>or '+(int) bar;'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_oc_scope=ignore|sp_after_oc_scope=add|sp_after_oc_scope=remove|sp_after_oc_scope=force|sp_after_oc_scope=not_defined
-ChoicesReadable="Ignore Sp After Oc Scope|Add Sp After Oc Scope|Remove Sp After Oc Scope|Force Sp After Oc Scope"
-ValueDefault=ignore
-
-[Sp After Oc Colon]
-Category=1
-Description="<html>(OC) Add or remove space after the colon in message specs,<br/>i.e. '-(int) f:(int) x;' vs. '-(int) f: (int) x;'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_oc_colon=ignore|sp_after_oc_colon=add|sp_after_oc_colon=remove|sp_after_oc_colon=force|sp_after_oc_colon=not_defined
-ChoicesReadable="Ignore Sp After Oc Colon|Add Sp After Oc Colon|Remove Sp After Oc Colon|Force Sp After Oc Colon"
-ValueDefault=ignore
-
-[Sp Before Oc Colon]
-Category=1
-Description="<html>(OC) Add or remove space before the colon in message specs,<br/>i.e. '-(int) f: (int) x;' vs. '-(int) f : (int) x;'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_oc_colon=ignore|sp_before_oc_colon=add|sp_before_oc_colon=remove|sp_before_oc_colon=force|sp_before_oc_colon=not_defined
-ChoicesReadable="Ignore Sp Before Oc Colon|Add Sp Before Oc Colon|Remove Sp Before Oc Colon|Force Sp Before Oc Colon"
-ValueDefault=ignore
-
-[Sp After Oc Dict Colon]
-Category=1
-Description="<html>(OC) Add or remove space after the colon in immutable dictionary expression<br/>'NSDictionary *test = @{@"foo" :@"bar"};'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_oc_dict_colon=ignore|sp_after_oc_dict_colon=add|sp_after_oc_dict_colon=remove|sp_after_oc_dict_colon=force|sp_after_oc_dict_colon=not_defined
-ChoicesReadable="Ignore Sp After Oc Dict Colon|Add Sp After Oc Dict Colon|Remove Sp After Oc Dict Colon|Force Sp After Oc Dict Colon"
-ValueDefault=ignore
-
-[Sp Before Oc Dict Colon]
-Category=1
-Description="<html>(OC) Add or remove space before the colon in immutable dictionary expression<br/>'NSDictionary *test = @{@"foo" :@"bar"};'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_oc_dict_colon=ignore|sp_before_oc_dict_colon=add|sp_before_oc_dict_colon=remove|sp_before_oc_dict_colon=force|sp_before_oc_dict_colon=not_defined
-ChoicesReadable="Ignore Sp Before Oc Dict Colon|Add Sp Before Oc Dict Colon|Remove Sp Before Oc Dict Colon|Force Sp Before Oc Dict Colon"
-ValueDefault=ignore
-
-[Sp After Send Oc Colon]
-Category=1
-Description="<html>(OC) Add or remove space after the colon in message specs,<br/>i.e. '[object setValue:1];' vs. '[object setValue: 1];'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_send_oc_colon=ignore|sp_after_send_oc_colon=add|sp_after_send_oc_colon=remove|sp_after_send_oc_colon=force|sp_after_send_oc_colon=not_defined
-ChoicesReadable="Ignore Sp After Send Oc Colon|Add Sp After Send Oc Colon|Remove Sp After Send Oc Colon|Force Sp After Send Oc Colon"
-ValueDefault=ignore
-
-[Sp Before Send Oc Colon]
-Category=1
-Description="<html>(OC) Add or remove space before the colon in message specs,<br/>i.e. '[object setValue:1];' vs. '[object setValue :1];'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_send_oc_colon=ignore|sp_before_send_oc_colon=add|sp_before_send_oc_colon=remove|sp_before_send_oc_colon=force|sp_before_send_oc_colon=not_defined
-ChoicesReadable="Ignore Sp Before Send Oc Colon|Add Sp Before Send Oc Colon|Remove Sp Before Send Oc Colon|Force Sp Before Send Oc Colon"
-ValueDefault=ignore
-
-[Sp After Oc Type]
-Category=1
-Description="<html>(OC) Add or remove space after the (type) in message specs,<br/>i.e. '-(int)f: (int) x;' vs. '-(int)f: (int)x;'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_oc_type=ignore|sp_after_oc_type=add|sp_after_oc_type=remove|sp_after_oc_type=force|sp_after_oc_type=not_defined
-ChoicesReadable="Ignore Sp After Oc Type|Add Sp After Oc Type|Remove Sp After Oc Type|Force Sp After Oc Type"
-ValueDefault=ignore
-
-[Sp After Oc Return Type]
-Category=1
-Description="<html>(OC) Add or remove space after the first (type) in message specs,<br/>i.e. '-(int) f:(int)x;' vs. '-(int)f:(int)x;'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_oc_return_type=ignore|sp_after_oc_return_type=add|sp_after_oc_return_type=remove|sp_after_oc_return_type=force|sp_after_oc_return_type=not_defined
-ChoicesReadable="Ignore Sp After Oc Return Type|Add Sp After Oc Return Type|Remove Sp After Oc Return Type|Force Sp After Oc Return Type"
-ValueDefault=ignore
-
-[Sp After Oc At Sel]
-Category=1
-Description="<html>(OC) Add or remove space between '@selector' and '(',<br/>i.e. '@selector(msgName)' vs. '@selector (msgName)'.<br/>Also applies to '@protocol()' constructs.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_oc_at_sel=ignore|sp_after_oc_at_sel=add|sp_after_oc_at_sel=remove|sp_after_oc_at_sel=force|sp_after_oc_at_sel=not_defined
-ChoicesReadable="Ignore Sp After Oc At Sel|Add Sp After Oc At Sel|Remove Sp After Oc At Sel|Force Sp After Oc At Sel"
-ValueDefault=ignore
-
-[Sp After Oc At Sel Parens]
-Category=1
-Description="<html>(OC) Add or remove space between '@selector(x)' and the following word,<br/>i.e. '@selector(foo) a:' vs. '@selector(foo)a:'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_oc_at_sel_parens=ignore|sp_after_oc_at_sel_parens=add|sp_after_oc_at_sel_parens=remove|sp_after_oc_at_sel_parens=force|sp_after_oc_at_sel_parens=not_defined
-ChoicesReadable="Ignore Sp After Oc At Sel Parens|Add Sp After Oc At Sel Parens|Remove Sp After Oc At Sel Parens|Force Sp After Oc At Sel Parens"
-ValueDefault=ignore
-
-[Sp Inside Oc At Sel Parens]
-Category=1
-Description="<html>(OC) Add or remove space inside '@selector' parentheses,<br/>i.e. '@selector(foo)' vs. '@selector( foo )'.<br/>Also applies to '@protocol()' constructs.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_inside_oc_at_sel_parens=ignore|sp_inside_oc_at_sel_parens=add|sp_inside_oc_at_sel_parens=remove|sp_inside_oc_at_sel_parens=force|sp_inside_oc_at_sel_parens=not_defined
-ChoicesReadable="Ignore Sp Inside Oc At Sel Parens|Add Sp Inside Oc At Sel Parens|Remove Sp Inside Oc At Sel Parens|Force Sp Inside Oc At Sel Parens"
-ValueDefault=ignore
-
-[Sp Before Oc Block Caret]
-Category=1
-Description="<html>(OC) Add or remove space before a block pointer caret,<br/>i.e. '^int (int arg){...}' vs. ' ^int (int arg){...}'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_oc_block_caret=ignore|sp_before_oc_block_caret=add|sp_before_oc_block_caret=remove|sp_before_oc_block_caret=force|sp_before_oc_block_caret=not_defined
-ChoicesReadable="Ignore Sp Before Oc Block Caret|Add Sp Before Oc Block Caret|Remove Sp Before Oc Block Caret|Force Sp Before Oc Block Caret"
-ValueDefault=ignore
-
-[Sp After Oc Block Caret]
-Category=1
-Description="<html>(OC) Add or remove space after a block pointer caret,<br/>i.e. '^int (int arg){...}' vs. '^ int (int arg){...}'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_oc_block_caret=ignore|sp_after_oc_block_caret=add|sp_after_oc_block_caret=remove|sp_after_oc_block_caret=force|sp_after_oc_block_caret=not_defined
-ChoicesReadable="Ignore Sp After Oc Block Caret|Add Sp After Oc Block Caret|Remove Sp After Oc Block Caret|Force Sp After Oc Block Caret"
-ValueDefault=ignore
-
-[Sp After Oc Msg Receiver]
-Category=1
-Description="<html>(OC) Add or remove space between the receiver and selector in a message,<br/>as in '[receiver selector ...]'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_oc_msg_receiver=ignore|sp_after_oc_msg_receiver=add|sp_after_oc_msg_receiver=remove|sp_after_oc_msg_receiver=force|sp_after_oc_msg_receiver=not_defined
-ChoicesReadable="Ignore Sp After Oc Msg Receiver|Add Sp After Oc Msg Receiver|Remove Sp After Oc Msg Receiver|Force Sp After Oc Msg Receiver"
-ValueDefault=ignore
-
-[Sp After Oc Property]
-Category=1
-Description="<html>(OC) Add or remove space after '@property'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_oc_property=ignore|sp_after_oc_property=add|sp_after_oc_property=remove|sp_after_oc_property=force|sp_after_oc_property=not_defined
-ChoicesReadable="Ignore Sp After Oc Property|Add Sp After Oc Property|Remove Sp After Oc Property|Force Sp After Oc Property"
-ValueDefault=ignore
-
-[Sp After Oc Synchronized]
-Category=1
-Description="<html>(OC) Add or remove space between '@synchronized' and the open parenthesis,<br/>i.e. '@synchronized(foo)' vs. '@synchronized (foo)'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_oc_synchronized=ignore|sp_after_oc_synchronized=add|sp_after_oc_synchronized=remove|sp_after_oc_synchronized=force|sp_after_oc_synchronized=not_defined
-ChoicesReadable="Ignore Sp After Oc Synchronized|Add Sp After Oc Synchronized|Remove Sp After Oc Synchronized|Force Sp After Oc Synchronized"
-ValueDefault=ignore
-
-[Sp Cond Colon]
-Category=1
-Description="<html>Add or remove space around the ':' in 'b ? t : f'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_cond_colon=ignore|sp_cond_colon=add|sp_cond_colon=remove|sp_cond_colon=force|sp_cond_colon=not_defined
-ChoicesReadable="Ignore Sp Cond Colon|Add Sp Cond Colon|Remove Sp Cond Colon|Force Sp Cond Colon"
-ValueDefault=ignore
-
-[Sp Cond Colon Before]
-Category=1
-Description="<html>Add or remove space before the ':' in 'b ? t : f'.<br/><br/>Overrides sp_cond_colon.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_cond_colon_before=ignore|sp_cond_colon_before=add|sp_cond_colon_before=remove|sp_cond_colon_before=force|sp_cond_colon_before=not_defined
-ChoicesReadable="Ignore Sp Cond Colon Before|Add Sp Cond Colon Before|Remove Sp Cond Colon Before|Force Sp Cond Colon Before"
-ValueDefault=ignore
-
-[Sp Cond Colon After]
-Category=1
-Description="<html>Add or remove space after the ':' in 'b ? t : f'.<br/><br/>Overrides sp_cond_colon.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_cond_colon_after=ignore|sp_cond_colon_after=add|sp_cond_colon_after=remove|sp_cond_colon_after=force|sp_cond_colon_after=not_defined
-ChoicesReadable="Ignore Sp Cond Colon After|Add Sp Cond Colon After|Remove Sp Cond Colon After|Force Sp Cond Colon After"
-ValueDefault=ignore
-
-[Sp Cond Question]
-Category=1
-Description="<html>Add or remove space around the '?' in 'b ? t : f'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_cond_question=ignore|sp_cond_question=add|sp_cond_question=remove|sp_cond_question=force|sp_cond_question=not_defined
-ChoicesReadable="Ignore Sp Cond Question|Add Sp Cond Question|Remove Sp Cond Question|Force Sp Cond Question"
-ValueDefault=ignore
-
-[Sp Cond Question Before]
-Category=1
-Description="<html>Add or remove space before the '?' in 'b ? t : f'.<br/><br/>Overrides sp_cond_question.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_cond_question_before=ignore|sp_cond_question_before=add|sp_cond_question_before=remove|sp_cond_question_before=force|sp_cond_question_before=not_defined
-ChoicesReadable="Ignore Sp Cond Question Before|Add Sp Cond Question Before|Remove Sp Cond Question Before|Force Sp Cond Question Before"
-ValueDefault=ignore
-
-[Sp Cond Question After]
-Category=1
-Description="<html>Add or remove space after the '?' in 'b ? t : f'.<br/><br/>Overrides sp_cond_question.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_cond_question_after=ignore|sp_cond_question_after=add|sp_cond_question_after=remove|sp_cond_question_after=force|sp_cond_question_after=not_defined
-ChoicesReadable="Ignore Sp Cond Question After|Add Sp Cond Question After|Remove Sp Cond Question After|Force Sp Cond Question After"
-ValueDefault=ignore
-
-[Sp Cond Ternary Short]
-Category=1
-Description="<html>In the abbreviated ternary form '(a ?: b)', add or remove space between '?'<br/>and ':'.<br/><br/>Overrides all other sp_cond_* options.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_cond_ternary_short=ignore|sp_cond_ternary_short=add|sp_cond_ternary_short=remove|sp_cond_ternary_short=force|sp_cond_ternary_short=not_defined
-ChoicesReadable="Ignore Sp Cond Ternary Short|Add Sp Cond Ternary Short|Remove Sp Cond Ternary Short|Force Sp Cond Ternary Short"
-ValueDefault=ignore
-
-[Sp Case Label]
-Category=1
-Description="<html>Fix the spacing between 'case' and the label. Only 'ignore' and 'force' make<br/>sense here.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_case_label=ignore|sp_case_label=add|sp_case_label=remove|sp_case_label=force|sp_case_label=not_defined
-ChoicesReadable="Ignore Sp Case Label|Add Sp Case Label|Remove Sp Case Label|Force Sp Case Label"
-ValueDefault=ignore
-
-[Sp Range]
-Category=1
-Description="<html>(D) Add or remove space around the D '..' operator.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_range=ignore|sp_range=add|sp_range=remove|sp_range=force|sp_range=not_defined
-ChoicesReadable="Ignore Sp Range|Add Sp Range|Remove Sp Range|Force Sp Range"
-ValueDefault=ignore
-
-[Sp After For Colon]
-Category=1
-Description="<html>Add or remove space after ':' in a Java/C++11 range-based 'for',<br/>as in 'for (Type var : &lt;here&gt; expr)'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_for_colon=ignore|sp_after_for_colon=add|sp_after_for_colon=remove|sp_after_for_colon=force|sp_after_for_colon=not_defined
-ChoicesReadable="Ignore Sp After For Colon|Add Sp After For Colon|Remove Sp After For Colon|Force Sp After For Colon"
-ValueDefault=ignore
-
-[Sp Before For Colon]
-Category=1
-Description="<html>Add or remove space before ':' in a Java/C++11 range-based 'for',<br/>as in 'for (Type var &lt;here&gt; : expr)'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_for_colon=ignore|sp_before_for_colon=add|sp_before_for_colon=remove|sp_before_for_colon=force|sp_before_for_colon=not_defined
-ChoicesReadable="Ignore Sp Before For Colon|Add Sp Before For Colon|Remove Sp Before For Colon|Force Sp Before For Colon"
-ValueDefault=ignore
-
-[Sp Extern Paren]
-Category=1
-Description="<html>(D) Add or remove space between 'extern' and '(' as in 'extern &lt;here&gt; (C)'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_extern_paren=ignore|sp_extern_paren=add|sp_extern_paren=remove|sp_extern_paren=force|sp_extern_paren=not_defined
-ChoicesReadable="Ignore Sp Extern Paren|Add Sp Extern Paren|Remove Sp Extern Paren|Force Sp Extern Paren"
-ValueDefault=ignore
-
-[Sp Cmt Cpp Start]
-Category=1
-Description="<html>Add or remove space after the opening of a C++ comment, as in '// &lt;here&gt; A'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_cmt_cpp_start=ignore|sp_cmt_cpp_start=add|sp_cmt_cpp_start=remove|sp_cmt_cpp_start=force|sp_cmt_cpp_start=not_defined
-ChoicesReadable="Ignore Sp Cmt Cpp Start|Add Sp Cmt Cpp Start|Remove Sp Cmt Cpp Start|Force Sp Cmt Cpp Start"
-ValueDefault=ignore
-
-[Sp Cmt Cpp Region]
-Category=1
-Description="<html>Add or remove space in a C++ region marker comment, as in '// &lt;here&gt; BEGIN'.<br/>A region marker is defined as a comment which is not preceded by other text<br/>(i.e. the comment is the first non-whitespace on the line), and which starts<br/>with either 'BEGIN' or 'END'.<br/><br/>Overrides sp_cmt_cpp_start.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_cmt_cpp_region=ignore|sp_cmt_cpp_region=add|sp_cmt_cpp_region=remove|sp_cmt_cpp_region=force|sp_cmt_cpp_region=not_defined
-ChoicesReadable="Ignore Sp Cmt Cpp Region|Add Sp Cmt Cpp Region|Remove Sp Cmt Cpp Region|Force Sp Cmt Cpp Region"
-ValueDefault=ignore
-
-[Sp Cmt Cpp Doxygen]
-Category=1
-Description="<html>If true, space added with sp_cmt_cpp_start will be added after Doxygen<br/>sequences like '///', '///&lt;', '//!' and '//!&lt;'.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=sp_cmt_cpp_doxygen=true|sp_cmt_cpp_doxygen=false
-ValueDefault=false
-
-[Sp Cmt Cpp Qttr]
-Category=1
-Description="<html>If true, space added with sp_cmt_cpp_start will be added after Qt translator<br/>or meta-data comments like '//:', '//=', and '//~'.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=sp_cmt_cpp_qttr=true|sp_cmt_cpp_qttr=false
-ValueDefault=false
-
-[Sp Endif Cmt]
-Category=1
-Description="<html>Add or remove space between #else or #endif and a trailing comment.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_endif_cmt=ignore|sp_endif_cmt=add|sp_endif_cmt=remove|sp_endif_cmt=force|sp_endif_cmt=not_defined
-ChoicesReadable="Ignore Sp Endif Cmt|Add Sp Endif Cmt|Remove Sp Endif Cmt|Force Sp Endif Cmt"
-ValueDefault=ignore
-
-[Sp After New]
-Category=1
-Description="<html>Add or remove space after 'new', 'delete' and 'delete[]'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_new=ignore|sp_after_new=add|sp_after_new=remove|sp_after_new=force|sp_after_new=not_defined
-ChoicesReadable="Ignore Sp After New|Add Sp After New|Remove Sp After New|Force Sp After New"
-ValueDefault=ignore
-
-[Sp Between New Paren]
-Category=1
-Description="<html>Add or remove space between 'new' and '(' in 'new()'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_between_new_paren=ignore|sp_between_new_paren=add|sp_between_new_paren=remove|sp_between_new_paren=force|sp_between_new_paren=not_defined
-ChoicesReadable="Ignore Sp Between New Paren|Add Sp Between New Paren|Remove Sp Between New Paren|Force Sp Between New Paren"
-ValueDefault=ignore
-
-[Sp After Newop Paren]
-Category=1
-Description="<html>Add or remove space between ')' and type in 'new(foo) BAR'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_newop_paren=ignore|sp_after_newop_paren=add|sp_after_newop_paren=remove|sp_after_newop_paren=force|sp_after_newop_paren=not_defined
-ChoicesReadable="Ignore Sp After Newop Paren|Add Sp After Newop Paren|Remove Sp After Newop Paren|Force Sp After Newop Paren"
-ValueDefault=ignore
-
-[Sp Inside Newop Paren]
-Category=1
-Description="<html>Add or remove space inside parenthesis of the new operator<br/>as in 'new(foo) BAR'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_inside_newop_paren=ignore|sp_inside_newop_paren=add|sp_inside_newop_paren=remove|sp_inside_newop_paren=force|sp_inside_newop_paren=not_defined
-ChoicesReadable="Ignore Sp Inside Newop Paren|Add Sp Inside Newop Paren|Remove Sp Inside Newop Paren|Force Sp Inside Newop Paren"
-ValueDefault=ignore
-
-[Sp Inside Newop Paren Open]
-Category=1
-Description="<html>Add or remove space after the open parenthesis of the new operator,<br/>as in 'new(foo) BAR'.<br/><br/>Overrides sp_inside_newop_paren.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_inside_newop_paren_open=ignore|sp_inside_newop_paren_open=add|sp_inside_newop_paren_open=remove|sp_inside_newop_paren_open=force|sp_inside_newop_paren_open=not_defined
-ChoicesReadable="Ignore Sp Inside Newop Paren Open|Add Sp Inside Newop Paren Open|Remove Sp Inside Newop Paren Open|Force Sp Inside Newop Paren Open"
-ValueDefault=ignore
-
-[Sp Inside Newop Paren Close]
-Category=1
-Description="<html>Add or remove space before the close parenthesis of the new operator,<br/>as in 'new(foo) BAR'.<br/><br/>Overrides sp_inside_newop_paren.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_inside_newop_paren_close=ignore|sp_inside_newop_paren_close=add|sp_inside_newop_paren_close=remove|sp_inside_newop_paren_close=force|sp_inside_newop_paren_close=not_defined
-ChoicesReadable="Ignore Sp Inside Newop Paren Close|Add Sp Inside Newop Paren Close|Remove Sp Inside Newop Paren Close|Force Sp Inside Newop Paren Close"
-ValueDefault=ignore
-
-[Sp Before Tr Cmt]
-Category=1
-Description="<html>Add or remove space before a trailing comment.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_tr_cmt=ignore|sp_before_tr_cmt=add|sp_before_tr_cmt=remove|sp_before_tr_cmt=force|sp_before_tr_cmt=not_defined
-ChoicesReadable="Ignore Sp Before Tr Cmt|Add Sp Before Tr Cmt|Remove Sp Before Tr Cmt|Force Sp Before Tr Cmt"
-ValueDefault=ignore
-
-[Sp Num Before Tr Cmt]
-Category=1
-Description="<html>Number of spaces before a trailing comment.</html>"
-Enabled=false
-EditorType=numeric
-CallName="sp_num_before_tr_cmt="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Sp Before Emb Cmt]
-Category=1
-Description="<html>Add or remove space before an embedded comment.<br/><br/>Default: force</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_emb_cmt=ignore|sp_before_emb_cmt=add|sp_before_emb_cmt=remove|sp_before_emb_cmt=force|sp_before_emb_cmt=not_defined
-ChoicesReadable="Ignore Sp Before Emb Cmt|Add Sp Before Emb Cmt|Remove Sp Before Emb Cmt|Force Sp Before Emb Cmt"
-ValueDefault=force
-
-[Sp Num Before Emb Cmt]
-Category=1
-Description="<html>Number of spaces before an embedded comment.<br/><br/>Default: 1</html>"
-Enabled=false
-EditorType=numeric
-CallName="sp_num_before_emb_cmt="
-MinVal=0
-MaxVal=16
-ValueDefault=1
-
-[Sp After Emb Cmt]
-Category=1
-Description="<html>Add or remove space after an embedded comment.<br/><br/>Default: force</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_emb_cmt=ignore|sp_after_emb_cmt=add|sp_after_emb_cmt=remove|sp_after_emb_cmt=force|sp_after_emb_cmt=not_defined
-ChoicesReadable="Ignore Sp After Emb Cmt|Add Sp After Emb Cmt|Remove Sp After Emb Cmt|Force Sp After Emb Cmt"
-ValueDefault=force
-
-[Sp Num After Emb Cmt]
-Category=1
-Description="<html>Number of spaces after an embedded comment.<br/><br/>Default: 1</html>"
-Enabled=false
-EditorType=numeric
-CallName="sp_num_after_emb_cmt="
-MinVal=0
-MaxVal=16
-ValueDefault=1
-
-[Sp Annotation Paren]
-Category=1
-Description="<html>(Java) Add or remove space between an annotation and the open parenthesis.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_annotation_paren=ignore|sp_annotation_paren=add|sp_annotation_paren=remove|sp_annotation_paren=force|sp_annotation_paren=not_defined
-ChoicesReadable="Ignore Sp Annotation Paren|Add Sp Annotation Paren|Remove Sp Annotation Paren|Force Sp Annotation Paren"
-ValueDefault=ignore
-
-[Sp Skip Vbrace Tokens]
-Category=1
-Description="<html>If true, vbrace tokens are dropped to the previous token and skipped.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=sp_skip_vbrace_tokens=true|sp_skip_vbrace_tokens=false
-ValueDefault=false
-
-[Sp After Noexcept]
-Category=1
-Description="<html>Add or remove space after 'noexcept'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_after_noexcept=ignore|sp_after_noexcept=add|sp_after_noexcept=remove|sp_after_noexcept=force|sp_after_noexcept=not_defined
-ChoicesReadable="Ignore Sp After Noexcept|Add Sp After Noexcept|Remove Sp After Noexcept|Force Sp After Noexcept"
-ValueDefault=ignore
-
-[Sp Vala After Translation]
-Category=1
-Description="<html>Add or remove space after '_'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_vala_after_translation=ignore|sp_vala_after_translation=add|sp_vala_after_translation=remove|sp_vala_after_translation=force|sp_vala_after_translation=not_defined
-ChoicesReadable="Ignore Sp Vala After Translation|Add Sp Vala After Translation|Remove Sp Vala After Translation|Force Sp Vala After Translation"
-ValueDefault=ignore
-
-[Force Tab After Define]
-Category=1
-Description="<html>If true, a &lt;TAB&gt; is inserted after #define.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=force_tab_after_define=true|force_tab_after_define=false
-ValueDefault=false
-
-[Indent Columns]
-Category=2
-Description="<html>The number of columns to indent per level. Usually 2, 3, 4, or 8.<br/><br/>Default: 8</html>"
-Enabled=false
-EditorType=numeric
-CallName="indent_columns="
-MinVal=0
-MaxVal=16
-ValueDefault=8
-
-[Indent Continue]
-Category=2
-Description="<html>The continuation indent. If non-zero, this overrides the indent of '(', '['<br/>and '=' continuation indents. Negative values are OK; negative value is<br/>absolute and not increased for each '(' or '[' level.<br/><br/>For FreeBSD, this is set to 4.</html>"
-Enabled=false
-EditorType=numeric
-CallName="indent_continue="
-MinVal=-16
-MaxVal=16
-ValueDefault=0
-
-[Indent Continue Class Head]
-Category=2
-Description="<html>The continuation indent, only for class header line(s). If non-zero, this<br/>overrides the indent of 'class' continuation indents.</html>"
-Enabled=false
-EditorType=numeric
-CallName="indent_continue_class_head="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Indent Single Newlines]
-Category=2
-Description="<html>Whether to indent empty lines (i.e. lines which contain only spaces before<br/>the newline character).</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_single_newlines=true|indent_single_newlines=false
-ValueDefault=false
-
-[Indent Param]
-Category=2
-Description="<html>The continuation indent for func_*_param if they are true. If non-zero, this<br/>overrides the indent.</html>"
-Enabled=false
-EditorType=numeric
-CallName="indent_param="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Indent With Tabs]
-Category=2
-Description="<html>How to use tabs when indenting code.<br/><br/>0: Spaces only<br/>1: Indent with tabs to brace level, align with spaces (default)<br/>2: Indent and align with tabs, using spaces when not on a tabstop<br/><br/>Default: 1</html>"
-Enabled=true
-EditorType=multiple
-Choices="indent_with_tabs=0|indent_with_tabs=1|indent_with_tabs=2"
-ChoicesReadable="Spaces only|Indent with tabs, align with spaces|Indent and align with tabs"
-ValueDefault=1
-
-[Indent Cmt With Tabs]
-Category=2
-Description="<html>Whether to indent comments that are not at a brace level with tabs on a<br/>tabstop. Requires indent_with_tabs=2. If false, will use spaces.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_cmt_with_tabs=true|indent_cmt_with_tabs=false
-ValueDefault=false
-
-[Indent Align String]
-Category=2
-Description="<html>Whether to indent strings broken by '\' so that they line up.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_align_string=true|indent_align_string=false
-ValueDefault=false
-
-[Indent Xml String]
-Category=2
-Description="<html>The number of spaces to indent multi-line XML strings.<br/>Requires indent_align_string=true.</html>"
-Enabled=false
-EditorType=numeric
-CallName="indent_xml_string="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Indent Brace]
-Category=2
-Description="<html>Spaces to indent '{' from level.</html>"
-Enabled=false
-EditorType=numeric
-CallName="indent_brace="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Indent Braces]
-Category=2
-Description="<html>Whether braces are indented to the body level.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_braces=true|indent_braces=false
-ValueDefault=false
-
-[Indent Braces No Func]
-Category=2
-Description="<html>Whether to disable indenting function braces if indent_braces=true.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_braces_no_func=true|indent_braces_no_func=false
-ValueDefault=false
-
-[Indent Braces No Class]
-Category=2
-Description="<html>Whether to disable indenting class braces if indent_braces=true.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_braces_no_class=true|indent_braces_no_class=false
-ValueDefault=false
-
-[Indent Braces No Struct]
-Category=2
-Description="<html>Whether to disable indenting struct braces if indent_braces=true.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_braces_no_struct=true|indent_braces_no_struct=false
-ValueDefault=false
-
-[Indent Brace Parent]
-Category=2
-Description="<html>Whether to indent based on the size of the brace parent,<br/>i.e. 'if' =&gt; 3 spaces, 'for' =&gt; 4 spaces, etc.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_brace_parent=true|indent_brace_parent=false
-ValueDefault=false
-
-[Indent Paren Open Brace]
-Category=2
-Description="<html>Whether to indent based on the open parenthesis instead of the open brace<br/>in '({\n'.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_paren_open_brace=true|indent_paren_open_brace=false
-ValueDefault=false
-
-[Indent Cs Delegate Brace]
-Category=2
-Description="<html>(C#) Whether to indent the brace of a C# delegate by another level.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_cs_delegate_brace=true|indent_cs_delegate_brace=false
-ValueDefault=false
-
-[Indent Cs Delegate Body]
-Category=2
-Description="<html>(C#) Whether to indent a C# delegate (to handle delegates with no brace) by<br/>another level.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_cs_delegate_body=true|indent_cs_delegate_body=false
-ValueDefault=false
-
-[Indent Namespace]
-Category=2
-Description="<html>Whether to indent the body of a 'namespace'.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_namespace=true|indent_namespace=false
-ValueDefault=false
-
-[Indent Namespace Single Indent]
-Category=2
-Description="<html>Whether to indent only the first namespace, and not any nested namespaces.<br/>Requires indent_namespace=true.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_namespace_single_indent=true|indent_namespace_single_indent=false
-ValueDefault=false
-
-[Indent Namespace Level]
-Category=2
-Description="<html>The number of spaces to indent a namespace block.<br/>If set to zero, use the value indent_columns</html>"
-Enabled=false
-EditorType=numeric
-CallName="indent_namespace_level="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Indent Namespace Limit]
-Category=2
-Description="<html>If the body of the namespace is longer than this number, it won't be<br/>indented. Requires indent_namespace=true. 0 means no limit.</html>"
-Enabled=false
-EditorType=numeric
-CallName="indent_namespace_limit="
-MinVal=0
-MaxVal=255
-ValueDefault=0
-
-[Indent Extern]
-Category=2
-Description="<html>Whether the 'extern "C"' body is indented.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_extern=true|indent_extern=false
-ValueDefault=false
-
-[Indent Class]
-Category=2
-Description="<html>Whether the 'class' body is indented.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_class=true|indent_class=false
-ValueDefault=false
-
-[Indent Before Class Colon]
-Category=2
-Description="<html>Additional indent before the leading base class colon.<br/>Negative values decrease indent down to the first column.<br/>Requires a newline break before colon (see pos_class_colon<br/>and nl_class_colon)</html>"
-Enabled=false
-EditorType=numeric
-CallName="indent_before_class_colon="
-MinVal=-16
-MaxVal=16
-ValueDefault=0
-
-[Indent Class Colon]
-Category=2
-Description="<html>Whether to indent the stuff after a leading base class colon.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_class_colon=true|indent_class_colon=false
-ValueDefault=false
-
-[Indent Class On Colon]
-Category=2
-Description="<html>Whether to indent based on a class colon instead of the stuff after the<br/>colon. Requires indent_class_colon=true.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_class_on_colon=true|indent_class_on_colon=false
-ValueDefault=false
-
-[Indent Constr Colon]
-Category=2
-Description="<html>Whether to indent the stuff after a leading class initializer colon.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_constr_colon=true|indent_constr_colon=false
-ValueDefault=false
-
-[Indent Ctor Init Leading]
-Category=2
-Description="<html>Virtual indent from the ':' for leading member initializers.<br/><br/>Default: 2</html>"
-Enabled=false
-EditorType=numeric
-CallName="indent_ctor_init_leading="
-MinVal=0
-MaxVal=16
-ValueDefault=2
-
-[Indent Ctor Init Following]
-Category=2
-Description="<html>Virtual indent from the ':' for following member initializers.<br/><br/>Default: 2</html>"
-Enabled=false
-EditorType=numeric
-CallName="indent_ctor_init_following="
-MinVal=0
-MaxVal=16
-ValueDefault=2
-
-[Indent Ctor Init]
-Category=2
-Description="<html>Additional indent for constructor initializer list.<br/>Negative values decrease indent down to the first column.</html>"
-Enabled=false
-EditorType=numeric
-CallName="indent_ctor_init="
-MinVal=-16
-MaxVal=16
-ValueDefault=0
-
-[Indent Else If]
-Category=2
-Description="<html>Whether to indent 'if' following 'else' as a new block under the 'else'.<br/>If false, 'else\nif' is treated as 'else if' for indenting purposes.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_else_if=true|indent_else_if=false
-ValueDefault=false
-
-[Indent Var Def Blk]
-Category=2
-Description="<html>Amount to indent variable declarations after a open brace.<br/><br/> &lt;0: Relative<br/>&gt;=0: Absolute</html>"
-Enabled=false
-EditorType=numeric
-CallName="indent_var_def_blk="
-MinVal=-16
-MaxVal=16
-ValueDefault=0
-
-[Indent Var Def Cont]
-Category=2
-Description="<html>Whether to indent continued variable declarations instead of aligning.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_var_def_cont=true|indent_var_def_cont=false
-ValueDefault=false
-
-[Indent Shift]
-Category=2
-Description="<html>Whether to indent continued shift expressions ('&lt;&lt;' and '&gt;&gt;') instead of<br/>aligning. Set align_left_shift=false when enabling this.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_shift=true|indent_shift=false
-ValueDefault=false
-
-[Indent Func Def Force Col1]
-Category=2
-Description="<html>Whether to force indentation of function definitions to start in column 1.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_func_def_force_col1=true|indent_func_def_force_col1=false
-ValueDefault=false
-
-[Indent Func Call Param]
-Category=2
-Description="<html>Whether to indent continued function call parameters one indent level,<br/>rather than aligning parameters under the open parenthesis.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_func_call_param=true|indent_func_call_param=false
-ValueDefault=false
-
-[Indent Func Def Param]
-Category=2
-Description="<html>Whether to indent continued function definition parameters one indent level,<br/>rather than aligning parameters under the open parenthesis.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_func_def_param=true|indent_func_def_param=false
-ValueDefault=false
-
-[Indent Func Def Param Paren Pos Threshold]
-Category=2
-Description="<html>for function definitions, only if indent_func_def_param is false<br/>Allows to align params when appropriate and indent them when not<br/>behave as if it was true if paren position is more than this value<br/>if paren position is more than the option value</html>"
-Enabled=false
-EditorType=numeric
-CallName="indent_func_def_param_paren_pos_threshold="
-MinVal=0
-MaxVal=160
-ValueDefault=0
-
-[Indent Func Proto Param]
-Category=2
-Description="<html>Whether to indent continued function call prototype one indent level,<br/>rather than aligning parameters under the open parenthesis.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_func_proto_param=true|indent_func_proto_param=false
-ValueDefault=false
-
-[Indent Func Class Param]
-Category=2
-Description="<html>Whether to indent continued function call declaration one indent level,<br/>rather than aligning parameters under the open parenthesis.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_func_class_param=true|indent_func_class_param=false
-ValueDefault=false
-
-[Indent Func Ctor Var Param]
-Category=2
-Description="<html>Whether to indent continued class variable constructors one indent level,<br/>rather than aligning parameters under the open parenthesis.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_func_ctor_var_param=true|indent_func_ctor_var_param=false
-ValueDefault=false
-
-[Indent Template Param]
-Category=2
-Description="<html>Whether to indent continued template parameter list one indent level,<br/>rather than aligning parameters under the open parenthesis.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_template_param=true|indent_template_param=false
-ValueDefault=false
-
-[Indent Func Param Double]
-Category=2
-Description="<html>Double the indent for indent_func_xxx_param options.<br/>Use both values of the options indent_columns and indent_param.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_func_param_double=true|indent_func_param_double=false
-ValueDefault=false
-
-[Indent Func Const]
-Category=2
-Description="<html>Indentation column for standalone 'const' qualifier on a function<br/>prototype.</html>"
-Enabled=false
-EditorType=numeric
-CallName="indent_func_const="
-MinVal=0
-MaxVal=69
-ValueDefault=0
-
-[Indent Func Throw]
-Category=2
-Description="<html>Indentation column for standalone 'throw' qualifier on a function<br/>prototype.</html>"
-Enabled=false
-EditorType=numeric
-CallName="indent_func_throw="
-MinVal=0
-MaxVal=41
-ValueDefault=0
-
-[Indent Macro Brace]
-Category=2
-Description="<html>How to indent within a macro followed by a brace on the same line<br/>This allows reducing the indent in macros that have (for example)<br/>`do { ... } while ` blocks bracketing them.<br/><br/>true: add an indent for the brace on the same line as the macro<br/>false: do not add an indent for the brace on the same line as the macro<br/><br/>Default: true</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_macro_brace=true|indent_macro_brace=false
-ValueDefault=true
-
-[Indent Member]
-Category=2
-Description="<html>The number of spaces to indent a continued '-&gt;' or '.'.<br/>Usually set to 0, 1, or indent_columns.</html>"
-Enabled=false
-EditorType=numeric
-CallName="indent_member="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Indent Member Single]
-Category=2
-Description="<html>Whether lines broken at '.' or '-&gt;' should be indented by a single indent.<br/>The indent_member option will not be effective if this is set to true.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_member_single=true|indent_member_single=false
-ValueDefault=false
-
-[Indent Single Line Comments Before]
-Category=2
-Description="<html>Spaces to indent single line ('//') comments on lines before code.</html>"
-Enabled=false
-EditorType=numeric
-CallName="indent_single_line_comments_before="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Indent Single Line Comments After]
-Category=2
-Description="<html>Spaces to indent single line ('//') comments on lines after code.</html>"
-Enabled=false
-EditorType=numeric
-CallName="indent_single_line_comments_after="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Indent Sparen Extra]
-Category=2
-Description="<html>When opening a paren for a control statement (if, for, while, etc), increase<br/>the indent level by this value. Negative values decrease the indent level.</html>"
-Enabled=false
-EditorType=numeric
-CallName="indent_sparen_extra="
-MinVal=-16
-MaxVal=16
-ValueDefault=0
-
-[Indent Relative Single Line Comments]
-Category=2
-Description="<html>Whether to indent trailing single line ('//') comments relative to the code<br/>instead of trying to keep the same absolute column.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_relative_single_line_comments=true|indent_relative_single_line_comments=false
-ValueDefault=false
-
-[Indent Switch Case]
-Category=2
-Description="<html>Spaces to indent 'case' from 'switch'. Usually 0 or indent_columns.<br/>It might be wise to choose the same value for the option indent_case_brace.</html>"
-Enabled=false
-EditorType=numeric
-CallName="indent_switch_case="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Indent Switch Body]
-Category=2
-Description="<html>Spaces to indent the body of a 'switch' before any 'case'.<br/>Usually the same as indent_columns or indent_switch_case.</html>"
-Enabled=false
-EditorType=numeric
-CallName="indent_switch_body="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Indent Case Brace]
-Category=2
-Description="<html>Spaces to indent '{' from 'case'. By default, the brace will appear under<br/>the 'c' in case. Usually set to 0 or indent_columns. Negative values are OK.<br/>It might be wise to choose the same value for the option indent_switch_case.</html>"
-Enabled=false
-EditorType=numeric
-CallName="indent_case_brace="
-MinVal=-16
-MaxVal=16
-ValueDefault=0
-
-[Indent Switch Break With Case]
-Category=2
-Description="<html>indent 'break' with 'case' from 'switch'.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_switch_break_with_case=true|indent_switch_break_with_case=false
-ValueDefault=false
-
-[Indent Switch Pp]
-Category=2
-Description="<html>Whether to indent preprocessor statements inside of switch statements.<br/><br/>Default: true</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_switch_pp=true|indent_switch_pp=false
-ValueDefault=true
-
-[Indent Case Shift]
-Category=2
-Description="<html>Spaces to shift the 'case' line, without affecting any other lines.<br/>Usually 0.</html>"
-Enabled=false
-EditorType=numeric
-CallName="indent_case_shift="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Indent Case Comment]
-Category=2
-Description="<html>Whether to align comments before 'case' with the 'case'.<br/><br/>Default: true</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_case_comment=true|indent_case_comment=false
-ValueDefault=true
-
-[Indent Comment]
-Category=2
-Description="<html>Whether to indent comments not found in first column.<br/><br/>Default: true</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_comment=true|indent_comment=false
-ValueDefault=true
-
-[Indent Col1 Comment]
-Category=2
-Description="<html>Whether to indent comments found in first column.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_col1_comment=true|indent_col1_comment=false
-ValueDefault=false
-
-[Indent Col1 Multi String Literal]
-Category=2
-Description="<html>Whether to indent multi string literal in first column.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_col1_multi_string_literal=true|indent_col1_multi_string_literal=false
-ValueDefault=false
-
-[Indent Comment Align Thresh]
-Category=2
-Description="<html>Align comments on adjacent lines that are this many columns apart or less.<br/><br/>Default: 3</html>"
-Enabled=false
-EditorType=numeric
-CallName="indent_comment_align_thresh="
-MinVal=0
-MaxVal=16
-ValueDefault=3
-
-[Indent Ignore Label]
-Category=2
-Description="<html>Whether to ignore indent for goto labels.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_ignore_label=true|indent_ignore_label=false
-ValueDefault=false
-
-[Indent Label]
-Category=2
-Description="<html>How to indent goto labels. Requires indent_ignore_label=false.<br/><br/> &gt;0: Absolute column where 1 is the leftmost column<br/>&lt;=0: Subtract from brace indent<br/><br/>Default: 1</html>"
-Enabled=false
-EditorType=numeric
-CallName="indent_label="
-MinVal=-16
-MaxVal=16
-ValueDefault=1
-
-[Indent Access Spec]
-Category=2
-Description="<html>How to indent access specifiers that are followed by a<br/>colon.<br/><br/> &gt;0: Absolute column where 1 is the leftmost column<br/>&lt;=0: Subtract from brace indent<br/><br/>Default: 1</html>"
-Enabled=false
-EditorType=numeric
-CallName="indent_access_spec="
-MinVal=-16
-MaxVal=16
-ValueDefault=1
-
-[Indent Access Spec Body]
-Category=2
-Description="<html>Whether to indent the code after an access specifier by one level.<br/>If true, this option forces 'indent_access_spec=0'.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_access_spec_body=true|indent_access_spec_body=false
-ValueDefault=false
-
-[Indent Paren Nl]
-Category=2
-Description="<html>If an open parenthesis is followed by a newline, whether to indent the next<br/>line so that it lines up after the open parenthesis (not recommended).</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_paren_nl=true|indent_paren_nl=false
-ValueDefault=false
-
-[Indent Paren Close]
-Category=2
-Description="<html>How to indent a close parenthesis after a newline.<br/><br/>0: Indent to body level (default)<br/>1: Align under the open parenthesis<br/>2: Indent to the brace level</html>"
-Enabled=false
-EditorType=numeric
-CallName="indent_paren_close="
-MinVal=0
-MaxVal=2
-ValueDefault=0
-
-[Indent Paren After Func Def]
-Category=2
-Description="<html>Whether to indent the open parenthesis of a function definition,<br/>if the parenthesis is on its own line.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_paren_after_func_def=true|indent_paren_after_func_def=false
-ValueDefault=false
-
-[Indent Paren After Func Decl]
-Category=2
-Description="<html>Whether to indent the open parenthesis of a function declaration,<br/>if the parenthesis is on its own line.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_paren_after_func_decl=true|indent_paren_after_func_decl=false
-ValueDefault=false
-
-[Indent Paren After Func Call]
-Category=2
-Description="<html>Whether to indent the open parenthesis of a function call,<br/>if the parenthesis is on its own line.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_paren_after_func_call=true|indent_paren_after_func_call=false
-ValueDefault=false
-
-[Indent Comma Brace]
-Category=2
-Description="<html>Whether to indent a comma when inside a brace.<br/>If true, aligns under the open brace.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_comma_brace=true|indent_comma_brace=false
-ValueDefault=false
-
-[Indent Comma Paren]
-Category=2
-Description="<html>Whether to indent a comma when inside a parenthesis.<br/>If true, aligns under the open parenthesis.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_comma_paren=true|indent_comma_paren=false
-ValueDefault=false
-
-[Indent Bool Paren]
-Category=2
-Description="<html>Whether to indent a Boolean operator when inside a parenthesis.<br/>If true, aligns under the open parenthesis.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_bool_paren=true|indent_bool_paren=false
-ValueDefault=false
-
-[Indent Semicolon For Paren]
-Category=2
-Description="<html>Whether to indent a semicolon when inside a for parenthesis.<br/>If true, aligns under the open for parenthesis.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_semicolon_for_paren=true|indent_semicolon_for_paren=false
-ValueDefault=false
-
-[Indent First Bool Expr]
-Category=2
-Description="<html>Whether to align the first expression to following ones<br/>if indent_bool_paren=true.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_first_bool_expr=true|indent_first_bool_expr=false
-ValueDefault=false
-
-[Indent First For Expr]
-Category=2
-Description="<html>Whether to align the first expression to following ones<br/>if indent_semicolon_for_paren=true.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_first_for_expr=true|indent_first_for_expr=false
-ValueDefault=false
-
-[Indent Square Nl]
-Category=2
-Description="<html>If an open square is followed by a newline, whether to indent the next line<br/>so that it lines up after the open square (not recommended).</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_square_nl=true|indent_square_nl=false
-ValueDefault=false
-
-[Indent Preserve Sql]
-Category=2
-Description="<html>(ESQL/C) Whether to preserve the relative indent of 'EXEC SQL' bodies.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_preserve_sql=true|indent_preserve_sql=false
-ValueDefault=false
-
-[Indent Align Assign]
-Category=2
-Description="<html>Whether to align continued statements at the '='. If false or if the '=' is<br/>followed by a newline, the next line is indent one tab.<br/><br/>Default: true</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_align_assign=true|indent_align_assign=false
-ValueDefault=true
-
-[Indent Off After Assign]
-Category=2
-Description="<html>If true, the indentation of the chunks after a '=' sequence will be set at<br/>LHS token indentation column before '='.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_off_after_assign=true|indent_off_after_assign=false
-ValueDefault=false
-
-[Indent Align Paren]
-Category=2
-Description="<html>Whether to align continued statements at the '('. If false or the '(' is<br/>followed by a newline, the next line indent is one tab.<br/><br/>Default: true</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_align_paren=true|indent_align_paren=false
-ValueDefault=true
-
-[Indent Oc Inside Msg Sel]
-Category=2
-Description="<html>(OC) Whether to indent Objective-C code inside message selectors.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_oc_inside_msg_sel=true|indent_oc_inside_msg_sel=false
-ValueDefault=false
-
-[Indent Oc Block]
-Category=2
-Description="<html>(OC) Whether to indent Objective-C blocks at brace level instead of usual<br/>rules.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_oc_block=true|indent_oc_block=false
-ValueDefault=false
-
-[Indent Oc Block Msg]
-Category=2
-Description="<html>(OC) Indent for Objective-C blocks in a message relative to the parameter<br/>name.<br/><br/>=0: Use indent_oc_block rules<br/>&gt;0: Use specified number of spaces to indent</html>"
-Enabled=false
-EditorType=numeric
-CallName="indent_oc_block_msg="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Indent Oc Msg Colon]
-Category=2
-Description="<html>(OC) Minimum indent for subsequent parameters</html>"
-Enabled=false
-EditorType=numeric
-CallName="indent_oc_msg_colon="
-MinVal=0
-MaxVal=5000
-ValueDefault=0
-
-[Indent Oc Msg Prioritize First Colon]
-Category=2
-Description="<html>(OC) Whether to prioritize aligning with initial colon (and stripping spaces<br/>from lines, if necessary).<br/><br/>Default: true</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_oc_msg_prioritize_first_colon=true|indent_oc_msg_prioritize_first_colon=false
-ValueDefault=true
-
-[Indent Oc Block Msg Xcode Style]
-Category=2
-Description="<html>(OC) Whether to indent blocks the way that Xcode does by default<br/>(from the keyword if the parameter is on its own line; otherwise, from the<br/>previous indentation level). Requires indent_oc_block_msg=true.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_oc_block_msg_xcode_style=true|indent_oc_block_msg_xcode_style=false
-ValueDefault=false
-
-[Indent Oc Block Msg From Keyword]
-Category=2
-Description="<html>(OC) Whether to indent blocks from where the brace is, relative to a<br/>message keyword. Requires indent_oc_block_msg=true.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_oc_block_msg_from_keyword=true|indent_oc_block_msg_from_keyword=false
-ValueDefault=false
-
-[Indent Oc Block Msg From Colon]
-Category=2
-Description="<html>(OC) Whether to indent blocks from where the brace is, relative to a message<br/>colon. Requires indent_oc_block_msg=true.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_oc_block_msg_from_colon=true|indent_oc_block_msg_from_colon=false
-ValueDefault=false
-
-[Indent Oc Block Msg From Caret]
-Category=2
-Description="<html>(OC) Whether to indent blocks from where the block caret is.<br/>Requires indent_oc_block_msg=true.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_oc_block_msg_from_caret=true|indent_oc_block_msg_from_caret=false
-ValueDefault=false
-
-[Indent Oc Block Msg From Brace]
-Category=2
-Description="<html>(OC) Whether to indent blocks from where the brace caret is.<br/>Requires indent_oc_block_msg=true.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_oc_block_msg_from_brace=true|indent_oc_block_msg_from_brace=false
-ValueDefault=false
-
-[Indent Min Vbrace Open]
-Category=2
-Description="<html>When indenting after virtual brace open and newline add further spaces to<br/>reach this minimum indent.</html>"
-Enabled=false
-EditorType=numeric
-CallName="indent_min_vbrace_open="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Indent Vbrace Open On Tabstop]
-Category=2
-Description="<html>Whether to add further spaces after regular indent to reach next tabstop<br/>when indenting after virtual brace open and newline.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_vbrace_open_on_tabstop=true|indent_vbrace_open_on_tabstop=false
-ValueDefault=false
-
-[Indent Token After Brace]
-Category=2
-Description="<html>How to indent after a brace followed by another token (not a newline).<br/>true: indent all contained lines to match the token<br/>false: indent all contained lines to match the brace<br/><br/>Default: true</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_token_after_brace=true|indent_token_after_brace=false
-ValueDefault=true
-
-[Indent Cpp Lambda Body]
-Category=2
-Description="<html>Whether to indent the body of a C++11 lambda.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_cpp_lambda_body=true|indent_cpp_lambda_body=false
-ValueDefault=false
-
-[Indent Compound Literal Return]
-Category=2
-Description="<html>How to indent compound literals that are being returned.<br/>true: add both the indent from return &amp; the compound literal open brace<br/> (i.e. 2 indent levels)<br/>false: only indent 1 level, don't add the indent for the open brace, only<br/> add the indent for the return.<br/><br/>Default: true</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_compound_literal_return=true|indent_compound_literal_return=false
-ValueDefault=true
-
-[Indent Using Block]
-Category=2
-Description="<html>(C#) Whether to indent a 'using' block if no braces are used.<br/><br/>Default: true</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_using_block=true|indent_using_block=false
-ValueDefault=true
-
-[Indent Ternary Operator]
-Category=2
-Description="<html>How to indent the continuation of ternary operator.<br/><br/>0: Off (default)<br/>1: When the `if_false` is a continuation, indent it under `if_false`<br/>2: When the `:` is a continuation, indent it under `?`</html>"
-Enabled=false
-EditorType=numeric
-CallName="indent_ternary_operator="
-MinVal=0
-MaxVal=2
-ValueDefault=0
-
-[Indent Inside Ternary Operator]
-Category=2
-Description="<html>Whether to indent the statements inside ternary operator.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_inside_ternary_operator=true|indent_inside_ternary_operator=false
-ValueDefault=false
-
-[Indent Off After Return]
-Category=2
-Description="<html>If true, the indentation of the chunks after a `return` sequence will be set at return indentation column.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_off_after_return=true|indent_off_after_return=false
-ValueDefault=false
-
-[Indent Off After Return New]
-Category=2
-Description="<html>If true, the indentation of the chunks after a `return new` sequence will be set at return indentation column.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_off_after_return_new=true|indent_off_after_return_new=false
-ValueDefault=false
-
-[Indent Single After Return]
-Category=2
-Description="<html>If true, the tokens after return are indented with regular single indentation. By default (false) the indentation is after the return token.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_single_after_return=true|indent_single_after_return=false
-ValueDefault=false
-
-[Indent Ignore Asm Block]
-Category=2
-Description="<html>Whether to ignore indent and alignment for 'asm' blocks (i.e. assume they<br/>have their own indentation).</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_ignore_asm_block=true|indent_ignore_asm_block=false
-ValueDefault=false
-
-[Donot Indent Func Def Close Paren]
-Category=2
-Description="<html>Don't indent the close parenthesis of a function definition,<br/>if the parenthesis is on its own line.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=donot_indent_func_def_close_paren=true|donot_indent_func_def_close_paren=false
-ValueDefault=false
-
-[Nl Collapse Empty Body]
-Category=3
-Description="<html>Whether to collapse empty blocks between '{' and '}'.<br/>If true, overrides nl_inside_empty_func</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_collapse_empty_body=true|nl_collapse_empty_body=false
-ValueDefault=false
-
-[Nl Assign Leave One Liners]
-Category=3
-Description="<html>Don't split one-line braced assignments, as in 'foo_t f = { 1, 2 };'.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_assign_leave_one_liners=true|nl_assign_leave_one_liners=false
-ValueDefault=false
-
-[Nl Class Leave One Liners]
-Category=3
-Description="<html>Don't split one-line braced statements inside a 'class xx { }' body.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_class_leave_one_liners=true|nl_class_leave_one_liners=false
-ValueDefault=false
-
-[Nl Enum Leave One Liners]
-Category=3
-Description="<html>Don't split one-line enums, as in 'enum foo { BAR = 15 };'</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_enum_leave_one_liners=true|nl_enum_leave_one_liners=false
-ValueDefault=false
-
-[Nl Getset Leave One Liners]
-Category=3
-Description="<html>Don't split one-line get or set functions.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_getset_leave_one_liners=true|nl_getset_leave_one_liners=false
-ValueDefault=false
-
-[Nl Cs Property Leave One Liners]
-Category=3
-Description="<html>(C#) Don't split one-line property get or set functions.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_cs_property_leave_one_liners=true|nl_cs_property_leave_one_liners=false
-ValueDefault=false
-
-[Nl Func Leave One Liners]
-Category=3
-Description="<html>Don't split one-line function definitions, as in 'int foo() { return 0; }'.<br/>might modify nl_func_type_name</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_func_leave_one_liners=true|nl_func_leave_one_liners=false
-ValueDefault=false
-
-[Nl Cpp Lambda Leave One Liners]
-Category=3
-Description="<html>Don't split one-line C++11 lambdas, as in '[]() { return 0; }'.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_cpp_lambda_leave_one_liners=true|nl_cpp_lambda_leave_one_liners=false
-ValueDefault=false
-
-[Nl If Leave One Liners]
-Category=3
-Description="<html>Don't split one-line if/else statements, as in 'if(...) b++;'.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_if_leave_one_liners=true|nl_if_leave_one_liners=false
-ValueDefault=false
-
-[Nl While Leave One Liners]
-Category=3
-Description="<html>Don't split one-line while statements, as in 'while(...) b++;'.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_while_leave_one_liners=true|nl_while_leave_one_liners=false
-ValueDefault=false
-
-[Nl Do Leave One Liners]
-Category=3
-Description="<html>Don't split one-line do statements, as in 'do { b++; } while(...);'.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_do_leave_one_liners=true|nl_do_leave_one_liners=false
-ValueDefault=false
-
-[Nl For Leave One Liners]
-Category=3
-Description="<html>Don't split one-line for statements, as in 'for(...) b++;'.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_for_leave_one_liners=true|nl_for_leave_one_liners=false
-ValueDefault=false
-
-[Nl Oc Msg Leave One Liner]
-Category=3
-Description="<html>(OC) Don't split one-line Objective-C messages.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_oc_msg_leave_one_liner=true|nl_oc_msg_leave_one_liner=false
-ValueDefault=false
-
-[Nl Oc Mdef Brace]
-Category=3
-Description="<html>(OC) Add or remove newline between method declaration and '{'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_oc_mdef_brace=ignore|nl_oc_mdef_brace=add|nl_oc_mdef_brace=remove|nl_oc_mdef_brace=force|nl_oc_mdef_brace=not_defined
-ChoicesReadable="Ignore Nl Oc Mdef Brace|Add Nl Oc Mdef Brace|Remove Nl Oc Mdef Brace|Force Nl Oc Mdef Brace"
-ValueDefault=ignore
-
-[Nl Oc Block Brace]
-Category=3
-Description="<html>(OC) Add or remove newline between Objective-C block signature and '{'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_oc_block_brace=ignore|nl_oc_block_brace=add|nl_oc_block_brace=remove|nl_oc_block_brace=force|nl_oc_block_brace=not_defined
-ChoicesReadable="Ignore Nl Oc Block Brace|Add Nl Oc Block Brace|Remove Nl Oc Block Brace|Force Nl Oc Block Brace"
-ValueDefault=ignore
-
-[Nl Oc Before Interface]
-Category=3
-Description="<html>(OC) Add or remove blank line before '@interface' statement.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_oc_before_interface=ignore|nl_oc_before_interface=add|nl_oc_before_interface=remove|nl_oc_before_interface=force|nl_oc_before_interface=not_defined
-ChoicesReadable="Ignore Nl Oc Before Interface|Add Nl Oc Before Interface|Remove Nl Oc Before Interface|Force Nl Oc Before Interface"
-ValueDefault=ignore
-
-[Nl Oc Before Implementation]
-Category=3
-Description="<html>(OC) Add or remove blank line before '@implementation' statement.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_oc_before_implementation=ignore|nl_oc_before_implementation=add|nl_oc_before_implementation=remove|nl_oc_before_implementation=force|nl_oc_before_implementation=not_defined
-ChoicesReadable="Ignore Nl Oc Before Implementation|Add Nl Oc Before Implementation|Remove Nl Oc Before Implementation|Force Nl Oc Before Implementation"
-ValueDefault=ignore
-
-[Nl Oc Before End]
-Category=3
-Description="<html>(OC) Add or remove blank line before '@end' statement.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_oc_before_end=ignore|nl_oc_before_end=add|nl_oc_before_end=remove|nl_oc_before_end=force|nl_oc_before_end=not_defined
-ChoicesReadable="Ignore Nl Oc Before End|Add Nl Oc Before End|Remove Nl Oc Before End|Force Nl Oc Before End"
-ValueDefault=ignore
-
-[Nl Oc Interface Brace]
-Category=3
-Description="<html>(OC) Add or remove newline between '@interface' and '{'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_oc_interface_brace=ignore|nl_oc_interface_brace=add|nl_oc_interface_brace=remove|nl_oc_interface_brace=force|nl_oc_interface_brace=not_defined
-ChoicesReadable="Ignore Nl Oc Interface Brace|Add Nl Oc Interface Brace|Remove Nl Oc Interface Brace|Force Nl Oc Interface Brace"
-ValueDefault=ignore
-
-[Nl Oc Implementation Brace]
-Category=3
-Description="<html>(OC) Add or remove newline between '@implementation' and '{'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_oc_implementation_brace=ignore|nl_oc_implementation_brace=add|nl_oc_implementation_brace=remove|nl_oc_implementation_brace=force|nl_oc_implementation_brace=not_defined
-ChoicesReadable="Ignore Nl Oc Implementation Brace|Add Nl Oc Implementation Brace|Remove Nl Oc Implementation Brace|Force Nl Oc Implementation Brace"
-ValueDefault=ignore
-
-[Nl Start Of File]
-Category=3
-Description="<html>Add or remove newlines at the start of the file.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_start_of_file=ignore|nl_start_of_file=add|nl_start_of_file=remove|nl_start_of_file=force|nl_start_of_file=not_defined
-ChoicesReadable="Ignore Nl Start Of File|Add Nl Start Of File|Remove Nl Start Of File|Force Nl Start Of File"
-ValueDefault=ignore
-
-[Nl Start Of File Min]
-Category=3
-Description="<html>The minimum number of newlines at the start of the file (only used if<br/>nl_start_of_file is 'add' or 'force').</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_start_of_file_min="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl End Of File]
-Category=3
-Description="<html>Add or remove newline at the end of the file.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_end_of_file=ignore|nl_end_of_file=add|nl_end_of_file=remove|nl_end_of_file=force|nl_end_of_file=not_defined
-ChoicesReadable="Ignore Nl End Of File|Add Nl End Of File|Remove Nl End Of File|Force Nl End Of File"
-ValueDefault=ignore
-
-[Nl End Of File Min]
-Category=3
-Description="<html>The minimum number of newlines at the end of the file (only used if<br/>nl_end_of_file is 'add' or 'force').</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_end_of_file_min="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl Assign Brace]
-Category=3
-Description="<html>Add or remove newline between '=' and '{'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_assign_brace=ignore|nl_assign_brace=add|nl_assign_brace=remove|nl_assign_brace=force|nl_assign_brace=not_defined
-ChoicesReadable="Ignore Nl Assign Brace|Add Nl Assign Brace|Remove Nl Assign Brace|Force Nl Assign Brace"
-ValueDefault=ignore
-
-[Nl Assign Square]
-Category=3
-Description="<html>(D) Add or remove newline between '=' and '['.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_assign_square=ignore|nl_assign_square=add|nl_assign_square=remove|nl_assign_square=force|nl_assign_square=not_defined
-ChoicesReadable="Ignore Nl Assign Square|Add Nl Assign Square|Remove Nl Assign Square|Force Nl Assign Square"
-ValueDefault=ignore
-
-[Nl Tsquare Brace]
-Category=3
-Description="<html>Add or remove newline between '[]' and '{'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_tsquare_brace=ignore|nl_tsquare_brace=add|nl_tsquare_brace=remove|nl_tsquare_brace=force|nl_tsquare_brace=not_defined
-ChoicesReadable="Ignore Nl Tsquare Brace|Add Nl Tsquare Brace|Remove Nl Tsquare Brace|Force Nl Tsquare Brace"
-ValueDefault=ignore
-
-[Nl After Square Assign]
-Category=3
-Description="<html>(D) Add or remove newline after '= ['. Will also affect the newline before<br/>the ']'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_after_square_assign=ignore|nl_after_square_assign=add|nl_after_square_assign=remove|nl_after_square_assign=force|nl_after_square_assign=not_defined
-ChoicesReadable="Ignore Nl After Square Assign|Add Nl After Square Assign|Remove Nl After Square Assign|Force Nl After Square Assign"
-ValueDefault=ignore
-
-[Nl Fcall Brace]
-Category=3
-Description="<html>Add or remove newline between a function call's ')' and '{', as in<br/>'list_for_each(item, &amp;list) { }'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_fcall_brace=ignore|nl_fcall_brace=add|nl_fcall_brace=remove|nl_fcall_brace=force|nl_fcall_brace=not_defined
-ChoicesReadable="Ignore Nl Fcall Brace|Add Nl Fcall Brace|Remove Nl Fcall Brace|Force Nl Fcall Brace"
-ValueDefault=ignore
-
-[Nl Enum Brace]
-Category=3
-Description="<html>Add or remove newline between 'enum' and '{'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_enum_brace=ignore|nl_enum_brace=add|nl_enum_brace=remove|nl_enum_brace=force|nl_enum_brace=not_defined
-ChoicesReadable="Ignore Nl Enum Brace|Add Nl Enum Brace|Remove Nl Enum Brace|Force Nl Enum Brace"
-ValueDefault=ignore
-
-[Nl Enum Class]
-Category=3
-Description="<html>Add or remove newline between 'enum' and 'class'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_enum_class=ignore|nl_enum_class=add|nl_enum_class=remove|nl_enum_class=force|nl_enum_class=not_defined
-ChoicesReadable="Ignore Nl Enum Class|Add Nl Enum Class|Remove Nl Enum Class|Force Nl Enum Class"
-ValueDefault=ignore
-
-[Nl Enum Class Identifier]
-Category=3
-Description="<html>Add or remove newline between 'enum class' and the identifier.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_enum_class_identifier=ignore|nl_enum_class_identifier=add|nl_enum_class_identifier=remove|nl_enum_class_identifier=force|nl_enum_class_identifier=not_defined
-ChoicesReadable="Ignore Nl Enum Class Identifier|Add Nl Enum Class Identifier|Remove Nl Enum Class Identifier|Force Nl Enum Class Identifier"
-ValueDefault=ignore
-
-[Nl Enum Identifier Colon]
-Category=3
-Description="<html>Add or remove newline between 'enum class' type and ':'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_enum_identifier_colon=ignore|nl_enum_identifier_colon=add|nl_enum_identifier_colon=remove|nl_enum_identifier_colon=force|nl_enum_identifier_colon=not_defined
-ChoicesReadable="Ignore Nl Enum Identifier Colon|Add Nl Enum Identifier Colon|Remove Nl Enum Identifier Colon|Force Nl Enum Identifier Colon"
-ValueDefault=ignore
-
-[Nl Enum Colon Type]
-Category=3
-Description="<html>Add or remove newline between 'enum class identifier :' and type.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_enum_colon_type=ignore|nl_enum_colon_type=add|nl_enum_colon_type=remove|nl_enum_colon_type=force|nl_enum_colon_type=not_defined
-ChoicesReadable="Ignore Nl Enum Colon Type|Add Nl Enum Colon Type|Remove Nl Enum Colon Type|Force Nl Enum Colon Type"
-ValueDefault=ignore
-
-[Nl Struct Brace]
-Category=3
-Description="<html>Add or remove newline between 'struct and '{'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_struct_brace=ignore|nl_struct_brace=add|nl_struct_brace=remove|nl_struct_brace=force|nl_struct_brace=not_defined
-ChoicesReadable="Ignore Nl Struct Brace|Add Nl Struct Brace|Remove Nl Struct Brace|Force Nl Struct Brace"
-ValueDefault=ignore
-
-[Nl Union Brace]
-Category=3
-Description="<html>Add or remove newline between 'union' and '{'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_union_brace=ignore|nl_union_brace=add|nl_union_brace=remove|nl_union_brace=force|nl_union_brace=not_defined
-ChoicesReadable="Ignore Nl Union Brace|Add Nl Union Brace|Remove Nl Union Brace|Force Nl Union Brace"
-ValueDefault=ignore
-
-[Nl If Brace]
-Category=3
-Description="<html>Add or remove newline between 'if' and '{'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_if_brace=ignore|nl_if_brace=add|nl_if_brace=remove|nl_if_brace=force|nl_if_brace=not_defined
-ChoicesReadable="Ignore Nl If Brace|Add Nl If Brace|Remove Nl If Brace|Force Nl If Brace"
-ValueDefault=ignore
-
-[Nl Brace Else]
-Category=3
-Description="<html>Add or remove newline between '}' and 'else'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_brace_else=ignore|nl_brace_else=add|nl_brace_else=remove|nl_brace_else=force|nl_brace_else=not_defined
-ChoicesReadable="Ignore Nl Brace Else|Add Nl Brace Else|Remove Nl Brace Else|Force Nl Brace Else"
-ValueDefault=ignore
-
-[Nl Elseif Brace]
-Category=3
-Description="<html>Add or remove newline between 'else if' and '{'. If set to ignore,<br/>nl_if_brace is used instead.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_elseif_brace=ignore|nl_elseif_brace=add|nl_elseif_brace=remove|nl_elseif_brace=force|nl_elseif_brace=not_defined
-ChoicesReadable="Ignore Nl Elseif Brace|Add Nl Elseif Brace|Remove Nl Elseif Brace|Force Nl Elseif Brace"
-ValueDefault=ignore
-
-[Nl Else Brace]
-Category=3
-Description="<html>Add or remove newline between 'else' and '{'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_else_brace=ignore|nl_else_brace=add|nl_else_brace=remove|nl_else_brace=force|nl_else_brace=not_defined
-ChoicesReadable="Ignore Nl Else Brace|Add Nl Else Brace|Remove Nl Else Brace|Force Nl Else Brace"
-ValueDefault=ignore
-
-[Nl Else If]
-Category=3
-Description="<html>Add or remove newline between 'else' and 'if'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_else_if=ignore|nl_else_if=add|nl_else_if=remove|nl_else_if=force|nl_else_if=not_defined
-ChoicesReadable="Ignore Nl Else If|Add Nl Else If|Remove Nl Else If|Force Nl Else If"
-ValueDefault=ignore
-
-[Nl Before Opening Brace Func Class Def]
-Category=3
-Description="<html>Add or remove newline before '{' opening brace</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_before_opening_brace_func_class_def=ignore|nl_before_opening_brace_func_class_def=add|nl_before_opening_brace_func_class_def=remove|nl_before_opening_brace_func_class_def=force|nl_before_opening_brace_func_class_def=not_defined
-ChoicesReadable="Ignore Nl Before Opening Brace Func Class Def|Add Nl Before Opening Brace Func Class Def|Remove Nl Before Opening Brace Func Class Def|Force Nl Before Opening Brace Func Class Def"
-ValueDefault=ignore
-
-[Nl Before If Closing Paren]
-Category=3
-Description="<html>Add or remove newline before 'if'/'else if' closing parenthesis.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_before_if_closing_paren=ignore|nl_before_if_closing_paren=add|nl_before_if_closing_paren=remove|nl_before_if_closing_paren=force|nl_before_if_closing_paren=not_defined
-ChoicesReadable="Ignore Nl Before If Closing Paren|Add Nl Before If Closing Paren|Remove Nl Before If Closing Paren|Force Nl Before If Closing Paren"
-ValueDefault=ignore
-
-[Nl Brace Finally]
-Category=3
-Description="<html>Add or remove newline between '}' and 'finally'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_brace_finally=ignore|nl_brace_finally=add|nl_brace_finally=remove|nl_brace_finally=force|nl_brace_finally=not_defined
-ChoicesReadable="Ignore Nl Brace Finally|Add Nl Brace Finally|Remove Nl Brace Finally|Force Nl Brace Finally"
-ValueDefault=ignore
-
-[Nl Finally Brace]
-Category=3
-Description="<html>Add or remove newline between 'finally' and '{'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_finally_brace=ignore|nl_finally_brace=add|nl_finally_brace=remove|nl_finally_brace=force|nl_finally_brace=not_defined
-ChoicesReadable="Ignore Nl Finally Brace|Add Nl Finally Brace|Remove Nl Finally Brace|Force Nl Finally Brace"
-ValueDefault=ignore
-
-[Nl Try Brace]
-Category=3
-Description="<html>Add or remove newline between 'try' and '{'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_try_brace=ignore|nl_try_brace=add|nl_try_brace=remove|nl_try_brace=force|nl_try_brace=not_defined
-ChoicesReadable="Ignore Nl Try Brace|Add Nl Try Brace|Remove Nl Try Brace|Force Nl Try Brace"
-ValueDefault=ignore
-
-[Nl Getset Brace]
-Category=3
-Description="<html>Add or remove newline between get/set and '{'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_getset_brace=ignore|nl_getset_brace=add|nl_getset_brace=remove|nl_getset_brace=force|nl_getset_brace=not_defined
-ChoicesReadable="Ignore Nl Getset Brace|Add Nl Getset Brace|Remove Nl Getset Brace|Force Nl Getset Brace"
-ValueDefault=ignore
-
-[Nl For Brace]
-Category=3
-Description="<html>Add or remove newline between 'for' and '{'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_for_brace=ignore|nl_for_brace=add|nl_for_brace=remove|nl_for_brace=force|nl_for_brace=not_defined
-ChoicesReadable="Ignore Nl For Brace|Add Nl For Brace|Remove Nl For Brace|Force Nl For Brace"
-ValueDefault=ignore
-
-[Nl Catch Brace]
-Category=3
-Description="<html>Add or remove newline before the '{' of a 'catch' statement, as in<br/>'catch (decl) &lt;here&gt; {'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_catch_brace=ignore|nl_catch_brace=add|nl_catch_brace=remove|nl_catch_brace=force|nl_catch_brace=not_defined
-ChoicesReadable="Ignore Nl Catch Brace|Add Nl Catch Brace|Remove Nl Catch Brace|Force Nl Catch Brace"
-ValueDefault=ignore
-
-[Nl Oc Catch Brace]
-Category=3
-Description="<html>(OC) Add or remove newline before the '{' of a '@catch' statement, as in<br/>'@catch (decl) &lt;here&gt; {'. If set to ignore, nl_catch_brace is used.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_oc_catch_brace=ignore|nl_oc_catch_brace=add|nl_oc_catch_brace=remove|nl_oc_catch_brace=force|nl_oc_catch_brace=not_defined
-ChoicesReadable="Ignore Nl Oc Catch Brace|Add Nl Oc Catch Brace|Remove Nl Oc Catch Brace|Force Nl Oc Catch Brace"
-ValueDefault=ignore
-
-[Nl Brace Catch]
-Category=3
-Description="<html>Add or remove newline between '}' and 'catch'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_brace_catch=ignore|nl_brace_catch=add|nl_brace_catch=remove|nl_brace_catch=force|nl_brace_catch=not_defined
-ChoicesReadable="Ignore Nl Brace Catch|Add Nl Brace Catch|Remove Nl Brace Catch|Force Nl Brace Catch"
-ValueDefault=ignore
-
-[Nl Oc Brace Catch]
-Category=3
-Description="<html>(OC) Add or remove newline between '}' and '@catch'. If set to ignore,<br/>nl_brace_catch is used.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_oc_brace_catch=ignore|nl_oc_brace_catch=add|nl_oc_brace_catch=remove|nl_oc_brace_catch=force|nl_oc_brace_catch=not_defined
-ChoicesReadable="Ignore Nl Oc Brace Catch|Add Nl Oc Brace Catch|Remove Nl Oc Brace Catch|Force Nl Oc Brace Catch"
-ValueDefault=ignore
-
-[Nl Brace Square]
-Category=3
-Description="<html>Add or remove newline between '}' and ']'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_brace_square=ignore|nl_brace_square=add|nl_brace_square=remove|nl_brace_square=force|nl_brace_square=not_defined
-ChoicesReadable="Ignore Nl Brace Square|Add Nl Brace Square|Remove Nl Brace Square|Force Nl Brace Square"
-ValueDefault=ignore
-
-[Nl Brace Fparen]
-Category=3
-Description="<html>Add or remove newline between '}' and ')' in a function invocation.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_brace_fparen=ignore|nl_brace_fparen=add|nl_brace_fparen=remove|nl_brace_fparen=force|nl_brace_fparen=not_defined
-ChoicesReadable="Ignore Nl Brace Fparen|Add Nl Brace Fparen|Remove Nl Brace Fparen|Force Nl Brace Fparen"
-ValueDefault=ignore
-
-[Nl While Brace]
-Category=3
-Description="<html>Add or remove newline between 'while' and '{'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_while_brace=ignore|nl_while_brace=add|nl_while_brace=remove|nl_while_brace=force|nl_while_brace=not_defined
-ChoicesReadable="Ignore Nl While Brace|Add Nl While Brace|Remove Nl While Brace|Force Nl While Brace"
-ValueDefault=ignore
-
-[Nl Scope Brace]
-Category=3
-Description="<html>(D) Add or remove newline between 'scope (x)' and '{'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_scope_brace=ignore|nl_scope_brace=add|nl_scope_brace=remove|nl_scope_brace=force|nl_scope_brace=not_defined
-ChoicesReadable="Ignore Nl Scope Brace|Add Nl Scope Brace|Remove Nl Scope Brace|Force Nl Scope Brace"
-ValueDefault=ignore
-
-[Nl Unittest Brace]
-Category=3
-Description="<html>(D) Add or remove newline between 'unittest' and '{'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_unittest_brace=ignore|nl_unittest_brace=add|nl_unittest_brace=remove|nl_unittest_brace=force|nl_unittest_brace=not_defined
-ChoicesReadable="Ignore Nl Unittest Brace|Add Nl Unittest Brace|Remove Nl Unittest Brace|Force Nl Unittest Brace"
-ValueDefault=ignore
-
-[Nl Version Brace]
-Category=3
-Description="<html>(D) Add or remove newline between 'version (x)' and '{'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_version_brace=ignore|nl_version_brace=add|nl_version_brace=remove|nl_version_brace=force|nl_version_brace=not_defined
-ChoicesReadable="Ignore Nl Version Brace|Add Nl Version Brace|Remove Nl Version Brace|Force Nl Version Brace"
-ValueDefault=ignore
-
-[Nl Using Brace]
-Category=3
-Description="<html>(C#) Add or remove newline between 'using' and '{'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_using_brace=ignore|nl_using_brace=add|nl_using_brace=remove|nl_using_brace=force|nl_using_brace=not_defined
-ChoicesReadable="Ignore Nl Using Brace|Add Nl Using Brace|Remove Nl Using Brace|Force Nl Using Brace"
-ValueDefault=ignore
-
-[Nl Brace Brace]
-Category=3
-Description="<html>Add or remove newline between two open or close braces. Due to general<br/>newline/brace handling, REMOVE may not work.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_brace_brace=ignore|nl_brace_brace=add|nl_brace_brace=remove|nl_brace_brace=force|nl_brace_brace=not_defined
-ChoicesReadable="Ignore Nl Brace Brace|Add Nl Brace Brace|Remove Nl Brace Brace|Force Nl Brace Brace"
-ValueDefault=ignore
-
-[Nl Do Brace]
-Category=3
-Description="<html>Add or remove newline between 'do' and '{'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_do_brace=ignore|nl_do_brace=add|nl_do_brace=remove|nl_do_brace=force|nl_do_brace=not_defined
-ChoicesReadable="Ignore Nl Do Brace|Add Nl Do Brace|Remove Nl Do Brace|Force Nl Do Brace"
-ValueDefault=ignore
-
-[Nl Brace While]
-Category=3
-Description="<html>Add or remove newline between '}' and 'while' of 'do' statement.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_brace_while=ignore|nl_brace_while=add|nl_brace_while=remove|nl_brace_while=force|nl_brace_while=not_defined
-ChoicesReadable="Ignore Nl Brace While|Add Nl Brace While|Remove Nl Brace While|Force Nl Brace While"
-ValueDefault=ignore
-
-[Nl Switch Brace]
-Category=3
-Description="<html>Add or remove newline between 'switch' and '{'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_switch_brace=ignore|nl_switch_brace=add|nl_switch_brace=remove|nl_switch_brace=force|nl_switch_brace=not_defined
-ChoicesReadable="Ignore Nl Switch Brace|Add Nl Switch Brace|Remove Nl Switch Brace|Force Nl Switch Brace"
-ValueDefault=ignore
-
-[Nl Synchronized Brace]
-Category=3
-Description="<html>Add or remove newline between 'synchronized' and '{'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_synchronized_brace=ignore|nl_synchronized_brace=add|nl_synchronized_brace=remove|nl_synchronized_brace=force|nl_synchronized_brace=not_defined
-ChoicesReadable="Ignore Nl Synchronized Brace|Add Nl Synchronized Brace|Remove Nl Synchronized Brace|Force Nl Synchronized Brace"
-ValueDefault=ignore
-
-[Nl Multi Line Cond]
-Category=3
-Description="<html>Add a newline between ')' and '{' if the ')' is on a different line than the<br/>if/for/etc.<br/><br/>Overrides nl_for_brace, nl_if_brace, nl_switch_brace, nl_while_switch and<br/>nl_catch_brace.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_multi_line_cond=true|nl_multi_line_cond=false
-ValueDefault=false
-
-[Nl Multi Line Sparen Open]
-Category=3
-Description="<html>Add a newline after '(' if an if/for/while/switch condition spans multiple<br/>lines</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_multi_line_sparen_open=ignore|nl_multi_line_sparen_open=add|nl_multi_line_sparen_open=remove|nl_multi_line_sparen_open=force|nl_multi_line_sparen_open=not_defined
-ChoicesReadable="Ignore Nl Multi Line Sparen Open|Add Nl Multi Line Sparen Open|Remove Nl Multi Line Sparen Open|Force Nl Multi Line Sparen Open"
-ValueDefault=ignore
-
-[Nl Multi Line Sparen Close]
-Category=3
-Description="<html>Add a newline before ')' if an if/for/while/switch condition spans multiple<br/>lines. Overrides nl_before_if_closing_paren if both are specified.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_multi_line_sparen_close=ignore|nl_multi_line_sparen_close=add|nl_multi_line_sparen_close=remove|nl_multi_line_sparen_close=force|nl_multi_line_sparen_close=not_defined
-ChoicesReadable="Ignore Nl Multi Line Sparen Close|Add Nl Multi Line Sparen Close|Remove Nl Multi Line Sparen Close|Force Nl Multi Line Sparen Close"
-ValueDefault=ignore
-
-[Nl Multi Line Define]
-Category=3
-Description="<html>Force a newline in a define after the macro name for multi-line defines.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_multi_line_define=true|nl_multi_line_define=false
-ValueDefault=false
-
-[Nl Before Case]
-Category=3
-Description="<html>Whether to add a newline before 'case', and a blank line before a 'case'<br/>statement that follows a ';' or '}'.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_before_case=true|nl_before_case=false
-ValueDefault=false
-
-[Nl After Case]
-Category=3
-Description="<html>Whether to add a newline after a 'case' statement.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_after_case=true|nl_after_case=false
-ValueDefault=false
-
-[Nl Case Colon Brace]
-Category=3
-Description="<html>Add or remove newline between a case ':' and '{'.<br/><br/>Overrides nl_after_case.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_case_colon_brace=ignore|nl_case_colon_brace=add|nl_case_colon_brace=remove|nl_case_colon_brace=force|nl_case_colon_brace=not_defined
-ChoicesReadable="Ignore Nl Case Colon Brace|Add Nl Case Colon Brace|Remove Nl Case Colon Brace|Force Nl Case Colon Brace"
-ValueDefault=ignore
-
-[Nl Before Throw]
-Category=3
-Description="<html>Add or remove newline between ')' and 'throw'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_before_throw=ignore|nl_before_throw=add|nl_before_throw=remove|nl_before_throw=force|nl_before_throw=not_defined
-ChoicesReadable="Ignore Nl Before Throw|Add Nl Before Throw|Remove Nl Before Throw|Force Nl Before Throw"
-ValueDefault=ignore
-
-[Nl Namespace Brace]
-Category=3
-Description="<html>Add or remove newline between 'namespace' and '{'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_namespace_brace=ignore|nl_namespace_brace=add|nl_namespace_brace=remove|nl_namespace_brace=force|nl_namespace_brace=not_defined
-ChoicesReadable="Ignore Nl Namespace Brace|Add Nl Namespace Brace|Remove Nl Namespace Brace|Force Nl Namespace Brace"
-ValueDefault=ignore
-
-[Nl Template Class]
-Category=3
-Description="<html>Add or remove newline after 'template&lt;...&gt;' of a template class.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_template_class=ignore|nl_template_class=add|nl_template_class=remove|nl_template_class=force|nl_template_class=not_defined
-ChoicesReadable="Ignore Nl Template Class|Add Nl Template Class|Remove Nl Template Class|Force Nl Template Class"
-ValueDefault=ignore
-
-[Nl Template Class Decl]
-Category=3
-Description="<html>Add or remove newline after 'template&lt;...&gt;' of a template class declaration.<br/><br/>Overrides nl_template_class.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_template_class_decl=ignore|nl_template_class_decl=add|nl_template_class_decl=remove|nl_template_class_decl=force|nl_template_class_decl=not_defined
-ChoicesReadable="Ignore Nl Template Class Decl|Add Nl Template Class Decl|Remove Nl Template Class Decl|Force Nl Template Class Decl"
-ValueDefault=ignore
-
-[Nl Template Class Decl Special]
-Category=3
-Description="<html>Add or remove newline after 'template&lt;&gt;' of a specialized class declaration.<br/><br/>Overrides nl_template_class_decl.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_template_class_decl_special=ignore|nl_template_class_decl_special=add|nl_template_class_decl_special=remove|nl_template_class_decl_special=force|nl_template_class_decl_special=not_defined
-ChoicesReadable="Ignore Nl Template Class Decl Special|Add Nl Template Class Decl Special|Remove Nl Template Class Decl Special|Force Nl Template Class Decl Special"
-ValueDefault=ignore
-
-[Nl Template Class Def]
-Category=3
-Description="<html>Add or remove newline after 'template&lt;...&gt;' of a template class definition.<br/><br/>Overrides nl_template_class.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_template_class_def=ignore|nl_template_class_def=add|nl_template_class_def=remove|nl_template_class_def=force|nl_template_class_def=not_defined
-ChoicesReadable="Ignore Nl Template Class Def|Add Nl Template Class Def|Remove Nl Template Class Def|Force Nl Template Class Def"
-ValueDefault=ignore
-
-[Nl Template Class Def Special]
-Category=3
-Description="<html>Add or remove newline after 'template&lt;&gt;' of a specialized class definition.<br/><br/>Overrides nl_template_class_def.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_template_class_def_special=ignore|nl_template_class_def_special=add|nl_template_class_def_special=remove|nl_template_class_def_special=force|nl_template_class_def_special=not_defined
-ChoicesReadable="Ignore Nl Template Class Def Special|Add Nl Template Class Def Special|Remove Nl Template Class Def Special|Force Nl Template Class Def Special"
-ValueDefault=ignore
-
-[Nl Template Func]
-Category=3
-Description="<html>Add or remove newline after 'template&lt;...&gt;' of a template function.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_template_func=ignore|nl_template_func=add|nl_template_func=remove|nl_template_func=force|nl_template_func=not_defined
-ChoicesReadable="Ignore Nl Template Func|Add Nl Template Func|Remove Nl Template Func|Force Nl Template Func"
-ValueDefault=ignore
-
-[Nl Template Func Decl]
-Category=3
-Description="<html>Add or remove newline after 'template&lt;...&gt;' of a template function<br/>declaration.<br/><br/>Overrides nl_template_func.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_template_func_decl=ignore|nl_template_func_decl=add|nl_template_func_decl=remove|nl_template_func_decl=force|nl_template_func_decl=not_defined
-ChoicesReadable="Ignore Nl Template Func Decl|Add Nl Template Func Decl|Remove Nl Template Func Decl|Force Nl Template Func Decl"
-ValueDefault=ignore
-
-[Nl Template Func Decl Special]
-Category=3
-Description="<html>Add or remove newline after 'template&lt;&gt;' of a specialized function<br/>declaration.<br/><br/>Overrides nl_template_func_decl.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_template_func_decl_special=ignore|nl_template_func_decl_special=add|nl_template_func_decl_special=remove|nl_template_func_decl_special=force|nl_template_func_decl_special=not_defined
-ChoicesReadable="Ignore Nl Template Func Decl Special|Add Nl Template Func Decl Special|Remove Nl Template Func Decl Special|Force Nl Template Func Decl Special"
-ValueDefault=ignore
-
-[Nl Template Func Def]
-Category=3
-Description="<html>Add or remove newline after 'template&lt;...&gt;' of a template function<br/>definition.<br/><br/>Overrides nl_template_func.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_template_func_def=ignore|nl_template_func_def=add|nl_template_func_def=remove|nl_template_func_def=force|nl_template_func_def=not_defined
-ChoicesReadable="Ignore Nl Template Func Def|Add Nl Template Func Def|Remove Nl Template Func Def|Force Nl Template Func Def"
-ValueDefault=ignore
-
-[Nl Template Func Def Special]
-Category=3
-Description="<html>Add or remove newline after 'template&lt;&gt;' of a specialized function<br/>definition.<br/><br/>Overrides nl_template_func_def.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_template_func_def_special=ignore|nl_template_func_def_special=add|nl_template_func_def_special=remove|nl_template_func_def_special=force|nl_template_func_def_special=not_defined
-ChoicesReadable="Ignore Nl Template Func Def Special|Add Nl Template Func Def Special|Remove Nl Template Func Def Special|Force Nl Template Func Def Special"
-ValueDefault=ignore
-
-[Nl Template Var]
-Category=3
-Description="<html>Add or remove newline after 'template&lt;...&gt;' of a template variable.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_template_var=ignore|nl_template_var=add|nl_template_var=remove|nl_template_var=force|nl_template_var=not_defined
-ChoicesReadable="Ignore Nl Template Var|Add Nl Template Var|Remove Nl Template Var|Force Nl Template Var"
-ValueDefault=ignore
-
-[Nl Template Using]
-Category=3
-Description="<html>Add or remove newline between 'template&lt;...&gt;' and 'using' of a templated<br/>type alias.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_template_using=ignore|nl_template_using=add|nl_template_using=remove|nl_template_using=force|nl_template_using=not_defined
-ChoicesReadable="Ignore Nl Template Using|Add Nl Template Using|Remove Nl Template Using|Force Nl Template Using"
-ValueDefault=ignore
-
-[Nl Class Brace]
-Category=3
-Description="<html>Add or remove newline between 'class' and '{'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_class_brace=ignore|nl_class_brace=add|nl_class_brace=remove|nl_class_brace=force|nl_class_brace=not_defined
-ChoicesReadable="Ignore Nl Class Brace|Add Nl Class Brace|Remove Nl Class Brace|Force Nl Class Brace"
-ValueDefault=ignore
-
-[Nl Class Init Args]
-Category=3
-Description="<html>Add or remove newline before or after (depending on pos_class_comma,<br/>may not be IGNORE) each',' in the base class list.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_class_init_args=ignore|nl_class_init_args=add|nl_class_init_args=remove|nl_class_init_args=force|nl_class_init_args=not_defined
-ChoicesReadable="Ignore Nl Class Init Args|Add Nl Class Init Args|Remove Nl Class Init Args|Force Nl Class Init Args"
-ValueDefault=ignore
-
-[Nl Constr Init Args]
-Category=3
-Description="<html>Add or remove newline after each ',' in the constructor member<br/>initialization. Related to nl_constr_colon, pos_constr_colon and<br/>pos_constr_comma.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_constr_init_args=ignore|nl_constr_init_args=add|nl_constr_init_args=remove|nl_constr_init_args=force|nl_constr_init_args=not_defined
-ChoicesReadable="Ignore Nl Constr Init Args|Add Nl Constr Init Args|Remove Nl Constr Init Args|Force Nl Constr Init Args"
-ValueDefault=ignore
-
-[Nl Enum Own Lines]
-Category=3
-Description="<html>Add or remove newline before first element, after comma, and after last<br/>element, in 'enum'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_enum_own_lines=ignore|nl_enum_own_lines=add|nl_enum_own_lines=remove|nl_enum_own_lines=force|nl_enum_own_lines=not_defined
-ChoicesReadable="Ignore Nl Enum Own Lines|Add Nl Enum Own Lines|Remove Nl Enum Own Lines|Force Nl Enum Own Lines"
-ValueDefault=ignore
-
-[Nl Func Type Name]
-Category=3
-Description="<html>Add or remove newline between return type and function name in a function<br/>definition.<br/>might be modified by nl_func_leave_one_liners</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_func_type_name=ignore|nl_func_type_name=add|nl_func_type_name=remove|nl_func_type_name=force|nl_func_type_name=not_defined
-ChoicesReadable="Ignore Nl Func Type Name|Add Nl Func Type Name|Remove Nl Func Type Name|Force Nl Func Type Name"
-ValueDefault=ignore
-
-[Nl Func Type Name Class]
-Category=3
-Description="<html>Add or remove newline between return type and function name inside a class<br/>definition. If set to ignore, nl_func_type_name or nl_func_proto_type_name<br/>is used instead.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_func_type_name_class=ignore|nl_func_type_name_class=add|nl_func_type_name_class=remove|nl_func_type_name_class=force|nl_func_type_name_class=not_defined
-ChoicesReadable="Ignore Nl Func Type Name Class|Add Nl Func Type Name Class|Remove Nl Func Type Name Class|Force Nl Func Type Name Class"
-ValueDefault=ignore
-
-[Nl Func Class Scope]
-Category=3
-Description="<html>Add or remove newline between class specification and '::'<br/>in 'void A::f() { }'. Only appears in separate member implementation (does<br/>not appear with in-line implementation).</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_func_class_scope=ignore|nl_func_class_scope=add|nl_func_class_scope=remove|nl_func_class_scope=force|nl_func_class_scope=not_defined
-ChoicesReadable="Ignore Nl Func Class Scope|Add Nl Func Class Scope|Remove Nl Func Class Scope|Force Nl Func Class Scope"
-ValueDefault=ignore
-
-[Nl Func Scope Name]
-Category=3
-Description="<html>Add or remove newline between function scope and name, as in<br/>'void A :: &lt;here&gt; f() { }'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_func_scope_name=ignore|nl_func_scope_name=add|nl_func_scope_name=remove|nl_func_scope_name=force|nl_func_scope_name=not_defined
-ChoicesReadable="Ignore Nl Func Scope Name|Add Nl Func Scope Name|Remove Nl Func Scope Name|Force Nl Func Scope Name"
-ValueDefault=ignore
-
-[Nl Func Proto Type Name]
-Category=3
-Description="<html>Add or remove newline between return type and function name in a prototype.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_func_proto_type_name=ignore|nl_func_proto_type_name=add|nl_func_proto_type_name=remove|nl_func_proto_type_name=force|nl_func_proto_type_name=not_defined
-ChoicesReadable="Ignore Nl Func Proto Type Name|Add Nl Func Proto Type Name|Remove Nl Func Proto Type Name|Force Nl Func Proto Type Name"
-ValueDefault=ignore
-
-[Nl Func Paren]
-Category=3
-Description="<html>Add or remove newline between a function name and the opening '(' in the<br/>declaration.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_func_paren=ignore|nl_func_paren=add|nl_func_paren=remove|nl_func_paren=force|nl_func_paren=not_defined
-ChoicesReadable="Ignore Nl Func Paren|Add Nl Func Paren|Remove Nl Func Paren|Force Nl Func Paren"
-ValueDefault=ignore
-
-[Nl Func Paren Empty]
-Category=3
-Description="<html>Overrides nl_func_paren for functions with no parameters.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_func_paren_empty=ignore|nl_func_paren_empty=add|nl_func_paren_empty=remove|nl_func_paren_empty=force|nl_func_paren_empty=not_defined
-ChoicesReadable="Ignore Nl Func Paren Empty|Add Nl Func Paren Empty|Remove Nl Func Paren Empty|Force Nl Func Paren Empty"
-ValueDefault=ignore
-
-[Nl Func Def Paren]
-Category=3
-Description="<html>Add or remove newline between a function name and the opening '(' in the<br/>definition.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_func_def_paren=ignore|nl_func_def_paren=add|nl_func_def_paren=remove|nl_func_def_paren=force|nl_func_def_paren=not_defined
-ChoicesReadable="Ignore Nl Func Def Paren|Add Nl Func Def Paren|Remove Nl Func Def Paren|Force Nl Func Def Paren"
-ValueDefault=ignore
-
-[Nl Func Def Paren Empty]
-Category=3
-Description="<html>Overrides nl_func_def_paren for functions with no parameters.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_func_def_paren_empty=ignore|nl_func_def_paren_empty=add|nl_func_def_paren_empty=remove|nl_func_def_paren_empty=force|nl_func_def_paren_empty=not_defined
-ChoicesReadable="Ignore Nl Func Def Paren Empty|Add Nl Func Def Paren Empty|Remove Nl Func Def Paren Empty|Force Nl Func Def Paren Empty"
-ValueDefault=ignore
-
-[Nl Func Call Paren]
-Category=3
-Description="<html>Add or remove newline between a function name and the opening '(' in the<br/>call.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_func_call_paren=ignore|nl_func_call_paren=add|nl_func_call_paren=remove|nl_func_call_paren=force|nl_func_call_paren=not_defined
-ChoicesReadable="Ignore Nl Func Call Paren|Add Nl Func Call Paren|Remove Nl Func Call Paren|Force Nl Func Call Paren"
-ValueDefault=ignore
-
-[Nl Func Call Paren Empty]
-Category=3
-Description="<html>Overrides nl_func_call_paren for functions with no parameters.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_func_call_paren_empty=ignore|nl_func_call_paren_empty=add|nl_func_call_paren_empty=remove|nl_func_call_paren_empty=force|nl_func_call_paren_empty=not_defined
-ChoicesReadable="Ignore Nl Func Call Paren Empty|Add Nl Func Call Paren Empty|Remove Nl Func Call Paren Empty|Force Nl Func Call Paren Empty"
-ValueDefault=ignore
-
-[Nl Func Decl Start]
-Category=3
-Description="<html>Add or remove newline after '(' in a function declaration.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_func_decl_start=ignore|nl_func_decl_start=add|nl_func_decl_start=remove|nl_func_decl_start=force|nl_func_decl_start=not_defined
-ChoicesReadable="Ignore Nl Func Decl Start|Add Nl Func Decl Start|Remove Nl Func Decl Start|Force Nl Func Decl Start"
-ValueDefault=ignore
-
-[Nl Func Def Start]
-Category=3
-Description="<html>Add or remove newline after '(' in a function definition.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_func_def_start=ignore|nl_func_def_start=add|nl_func_def_start=remove|nl_func_def_start=force|nl_func_def_start=not_defined
-ChoicesReadable="Ignore Nl Func Def Start|Add Nl Func Def Start|Remove Nl Func Def Start|Force Nl Func Def Start"
-ValueDefault=ignore
-
-[Nl Func Decl Start Single]
-Category=3
-Description="<html>Overrides nl_func_decl_start when there is only one parameter.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_func_decl_start_single=ignore|nl_func_decl_start_single=add|nl_func_decl_start_single=remove|nl_func_decl_start_single=force|nl_func_decl_start_single=not_defined
-ChoicesReadable="Ignore Nl Func Decl Start Single|Add Nl Func Decl Start Single|Remove Nl Func Decl Start Single|Force Nl Func Decl Start Single"
-ValueDefault=ignore
-
-[Nl Func Def Start Single]
-Category=3
-Description="<html>Overrides nl_func_def_start when there is only one parameter.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_func_def_start_single=ignore|nl_func_def_start_single=add|nl_func_def_start_single=remove|nl_func_def_start_single=force|nl_func_def_start_single=not_defined
-ChoicesReadable="Ignore Nl Func Def Start Single|Add Nl Func Def Start Single|Remove Nl Func Def Start Single|Force Nl Func Def Start Single"
-ValueDefault=ignore
-
-[Nl Func Decl Start Multi Line]
-Category=3
-Description="<html>Whether to add a newline after '(' in a function declaration if '(' and ')'<br/>are in different lines. If false, nl_func_decl_start is used instead.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_func_decl_start_multi_line=true|nl_func_decl_start_multi_line=false
-ValueDefault=false
-
-[Nl Func Def Start Multi Line]
-Category=3
-Description="<html>Whether to add a newline after '(' in a function definition if '(' and ')'<br/>are in different lines. If false, nl_func_def_start is used instead.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_func_def_start_multi_line=true|nl_func_def_start_multi_line=false
-ValueDefault=false
-
-[Nl Func Decl Args]
-Category=3
-Description="<html>Add or remove newline after each ',' in a function declaration.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_func_decl_args=ignore|nl_func_decl_args=add|nl_func_decl_args=remove|nl_func_decl_args=force|nl_func_decl_args=not_defined
-ChoicesReadable="Ignore Nl Func Decl Args|Add Nl Func Decl Args|Remove Nl Func Decl Args|Force Nl Func Decl Args"
-ValueDefault=ignore
-
-[Nl Func Def Args]
-Category=3
-Description="<html>Add or remove newline after each ',' in a function definition.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_func_def_args=ignore|nl_func_def_args=add|nl_func_def_args=remove|nl_func_def_args=force|nl_func_def_args=not_defined
-ChoicesReadable="Ignore Nl Func Def Args|Add Nl Func Def Args|Remove Nl Func Def Args|Force Nl Func Def Args"
-ValueDefault=ignore
-
-[Nl Func Call Args]
-Category=3
-Description="<html>Add or remove newline after each ',' in a function call.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_func_call_args=ignore|nl_func_call_args=add|nl_func_call_args=remove|nl_func_call_args=force|nl_func_call_args=not_defined
-ChoicesReadable="Ignore Nl Func Call Args|Add Nl Func Call Args|Remove Nl Func Call Args|Force Nl Func Call Args"
-ValueDefault=ignore
-
-[Nl Func Decl Args Multi Line]
-Category=3
-Description="<html>Whether to add a newline after each ',' in a function declaration if '('<br/>and ')' are in different lines. If false, nl_func_decl_args is used instead.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_func_decl_args_multi_line=true|nl_func_decl_args_multi_line=false
-ValueDefault=false
-
-[Nl Func Def Args Multi Line]
-Category=3
-Description="<html>Whether to add a newline after each ',' in a function definition if '('<br/>and ')' are in different lines. If false, nl_func_def_args is used instead.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_func_def_args_multi_line=true|nl_func_def_args_multi_line=false
-ValueDefault=false
-
-[Nl Func Decl End]
-Category=3
-Description="<html>Add or remove newline before the ')' in a function declaration.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_func_decl_end=ignore|nl_func_decl_end=add|nl_func_decl_end=remove|nl_func_decl_end=force|nl_func_decl_end=not_defined
-ChoicesReadable="Ignore Nl Func Decl End|Add Nl Func Decl End|Remove Nl Func Decl End|Force Nl Func Decl End"
-ValueDefault=ignore
-
-[Nl Func Def End]
-Category=3
-Description="<html>Add or remove newline before the ')' in a function definition.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_func_def_end=ignore|nl_func_def_end=add|nl_func_def_end=remove|nl_func_def_end=force|nl_func_def_end=not_defined
-ChoicesReadable="Ignore Nl Func Def End|Add Nl Func Def End|Remove Nl Func Def End|Force Nl Func Def End"
-ValueDefault=ignore
-
-[Nl Func Decl End Single]
-Category=3
-Description="<html>Overrides nl_func_decl_end when there is only one parameter.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_func_decl_end_single=ignore|nl_func_decl_end_single=add|nl_func_decl_end_single=remove|nl_func_decl_end_single=force|nl_func_decl_end_single=not_defined
-ChoicesReadable="Ignore Nl Func Decl End Single|Add Nl Func Decl End Single|Remove Nl Func Decl End Single|Force Nl Func Decl End Single"
-ValueDefault=ignore
-
-[Nl Func Def End Single]
-Category=3
-Description="<html>Overrides nl_func_def_end when there is only one parameter.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_func_def_end_single=ignore|nl_func_def_end_single=add|nl_func_def_end_single=remove|nl_func_def_end_single=force|nl_func_def_end_single=not_defined
-ChoicesReadable="Ignore Nl Func Def End Single|Add Nl Func Def End Single|Remove Nl Func Def End Single|Force Nl Func Def End Single"
-ValueDefault=ignore
-
-[Nl Func Decl End Multi Line]
-Category=3
-Description="<html>Whether to add a newline before ')' in a function declaration if '(' and ')'<br/>are in different lines. If false, nl_func_decl_end is used instead.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_func_decl_end_multi_line=true|nl_func_decl_end_multi_line=false
-ValueDefault=false
-
-[Nl Func Def End Multi Line]
-Category=3
-Description="<html>Whether to add a newline before ')' in a function definition if '(' and ')'<br/>are in different lines. If false, nl_func_def_end is used instead.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_func_def_end_multi_line=true|nl_func_def_end_multi_line=false
-ValueDefault=false
-
-[Nl Func Decl Empty]
-Category=3
-Description="<html>Add or remove newline between '()' in a function declaration.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_func_decl_empty=ignore|nl_func_decl_empty=add|nl_func_decl_empty=remove|nl_func_decl_empty=force|nl_func_decl_empty=not_defined
-ChoicesReadable="Ignore Nl Func Decl Empty|Add Nl Func Decl Empty|Remove Nl Func Decl Empty|Force Nl Func Decl Empty"
-ValueDefault=ignore
-
-[Nl Func Def Empty]
-Category=3
-Description="<html>Add or remove newline between '()' in a function definition.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_func_def_empty=ignore|nl_func_def_empty=add|nl_func_def_empty=remove|nl_func_def_empty=force|nl_func_def_empty=not_defined
-ChoicesReadable="Ignore Nl Func Def Empty|Add Nl Func Def Empty|Remove Nl Func Def Empty|Force Nl Func Def Empty"
-ValueDefault=ignore
-
-[Nl Func Call Empty]
-Category=3
-Description="<html>Add or remove newline between '()' in a function call.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_func_call_empty=ignore|nl_func_call_empty=add|nl_func_call_empty=remove|nl_func_call_empty=force|nl_func_call_empty=not_defined
-ChoicesReadable="Ignore Nl Func Call Empty|Add Nl Func Call Empty|Remove Nl Func Call Empty|Force Nl Func Call Empty"
-ValueDefault=ignore
-
-[Nl Func Call Start]
-Category=3
-Description="<html>Whether to add a newline after '(' in a function call,<br/>has preference over nl_func_call_start_multi_line.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_func_call_start=ignore|nl_func_call_start=add|nl_func_call_start=remove|nl_func_call_start=force|nl_func_call_start=not_defined
-ChoicesReadable="Ignore Nl Func Call Start|Add Nl Func Call Start|Remove Nl Func Call Start|Force Nl Func Call Start"
-ValueDefault=ignore
-
-[Nl Func Call End]
-Category=3
-Description="<html>Whether to add a newline before ')' in a function call.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_func_call_end=ignore|nl_func_call_end=add|nl_func_call_end=remove|nl_func_call_end=force|nl_func_call_end=not_defined
-ChoicesReadable="Ignore Nl Func Call End|Add Nl Func Call End|Remove Nl Func Call End|Force Nl Func Call End"
-ValueDefault=ignore
-
-[Nl Func Call Start Multi Line]
-Category=3
-Description="<html>Whether to add a newline after '(' in a function call if '(' and ')' are in<br/>different lines.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_func_call_start_multi_line=true|nl_func_call_start_multi_line=false
-ValueDefault=false
-
-[Nl Func Call Args Multi Line]
-Category=3
-Description="<html>Whether to add a newline after each ',' in a function call if '(' and ')'<br/>are in different lines.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_func_call_args_multi_line=true|nl_func_call_args_multi_line=false
-ValueDefault=false
-
-[Nl Func Call End Multi Line]
-Category=3
-Description="<html>Whether to add a newline before ')' in a function call if '(' and ')' are in<br/>different lines.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_func_call_end_multi_line=true|nl_func_call_end_multi_line=false
-ValueDefault=false
-
-[Nl Func Call Args Multi Line Ignore Closures]
-Category=3
-Description="<html>Whether to respect nl_func_call_XXX option in case of closure args.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_func_call_args_multi_line_ignore_closures=true|nl_func_call_args_multi_line_ignore_closures=false
-ValueDefault=false
-
-[Nl Template Start]
-Category=3
-Description="<html>Whether to add a newline after '&lt;' of a template parameter list.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_template_start=true|nl_template_start=false
-ValueDefault=false
-
-[Nl Template Args]
-Category=3
-Description="<html>Whether to add a newline after each ',' in a template parameter list.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_template_args=true|nl_template_args=false
-ValueDefault=false
-
-[Nl Template End]
-Category=3
-Description="<html>Whether to add a newline before '&gt;' of a template parameter list.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_template_end=true|nl_template_end=false
-ValueDefault=false
-
-[Nl Oc Msg Args]
-Category=3
-Description="<html>(OC) Whether to put each Objective-C message parameter on a separate line.<br/>See nl_oc_msg_leave_one_liner.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_oc_msg_args=true|nl_oc_msg_args=false
-ValueDefault=false
-
-[Nl Fdef Brace]
-Category=3
-Description="<html>Add or remove newline between function signature and '{'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_fdef_brace=ignore|nl_fdef_brace=add|nl_fdef_brace=remove|nl_fdef_brace=force|nl_fdef_brace=not_defined
-ChoicesReadable="Ignore Nl Fdef Brace|Add Nl Fdef Brace|Remove Nl Fdef Brace|Force Nl Fdef Brace"
-ValueDefault=ignore
-
-[Nl Fdef Brace Cond]
-Category=3
-Description="<html>Add or remove newline between function signature and '{',<br/>if signature ends with ')'. Overrides nl_fdef_brace.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_fdef_brace_cond=ignore|nl_fdef_brace_cond=add|nl_fdef_brace_cond=remove|nl_fdef_brace_cond=force|nl_fdef_brace_cond=not_defined
-ChoicesReadable="Ignore Nl Fdef Brace Cond|Add Nl Fdef Brace Cond|Remove Nl Fdef Brace Cond|Force Nl Fdef Brace Cond"
-ValueDefault=ignore
-
-[Nl Cpp Ldef Brace]
-Category=3
-Description="<html>Add or remove newline between C++11 lambda signature and '{'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_cpp_ldef_brace=ignore|nl_cpp_ldef_brace=add|nl_cpp_ldef_brace=remove|nl_cpp_ldef_brace=force|nl_cpp_ldef_brace=not_defined
-ChoicesReadable="Ignore Nl Cpp Ldef Brace|Add Nl Cpp Ldef Brace|Remove Nl Cpp Ldef Brace|Force Nl Cpp Ldef Brace"
-ValueDefault=ignore
-
-[Nl Return Expr]
-Category=3
-Description="<html>Add or remove newline between 'return' and the return expression.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_return_expr=ignore|nl_return_expr=add|nl_return_expr=remove|nl_return_expr=force|nl_return_expr=not_defined
-ChoicesReadable="Ignore Nl Return Expr|Add Nl Return Expr|Remove Nl Return Expr|Force Nl Return Expr"
-ValueDefault=ignore
-
-[Nl After Semicolon]
-Category=3
-Description="<html>Whether to add a newline after semicolons, except in 'for' statements.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_after_semicolon=true|nl_after_semicolon=false
-ValueDefault=false
-
-[Nl Paren Dbrace Open]
-Category=3
-Description="<html>(Java) Add or remove newline between the ')' and '{{' of the double brace<br/>initializer.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_paren_dbrace_open=ignore|nl_paren_dbrace_open=add|nl_paren_dbrace_open=remove|nl_paren_dbrace_open=force|nl_paren_dbrace_open=not_defined
-ChoicesReadable="Ignore Nl Paren Dbrace Open|Add Nl Paren Dbrace Open|Remove Nl Paren Dbrace Open|Force Nl Paren Dbrace Open"
-ValueDefault=ignore
-
-[Nl Type Brace Init Lst]
-Category=3
-Description="<html>Whether to add a newline after the type in an unnamed temporary<br/>direct-list-initialization.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_type_brace_init_lst=ignore|nl_type_brace_init_lst=add|nl_type_brace_init_lst=remove|nl_type_brace_init_lst=force|nl_type_brace_init_lst=not_defined
-ChoicesReadable="Ignore Nl Type Brace Init Lst|Add Nl Type Brace Init Lst|Remove Nl Type Brace Init Lst|Force Nl Type Brace Init Lst"
-ValueDefault=ignore
-
-[Nl Type Brace Init Lst Open]
-Category=3
-Description="<html>Whether to add a newline after the open brace in an unnamed temporary<br/>direct-list-initialization.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_type_brace_init_lst_open=ignore|nl_type_brace_init_lst_open=add|nl_type_brace_init_lst_open=remove|nl_type_brace_init_lst_open=force|nl_type_brace_init_lst_open=not_defined
-ChoicesReadable="Ignore Nl Type Brace Init Lst Open|Add Nl Type Brace Init Lst Open|Remove Nl Type Brace Init Lst Open|Force Nl Type Brace Init Lst Open"
-ValueDefault=ignore
-
-[Nl Type Brace Init Lst Close]
-Category=3
-Description="<html>Whether to add a newline before the close brace in an unnamed temporary<br/>direct-list-initialization.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_type_brace_init_lst_close=ignore|nl_type_brace_init_lst_close=add|nl_type_brace_init_lst_close=remove|nl_type_brace_init_lst_close=force|nl_type_brace_init_lst_close=not_defined
-ChoicesReadable="Ignore Nl Type Brace Init Lst Close|Add Nl Type Brace Init Lst Close|Remove Nl Type Brace Init Lst Close|Force Nl Type Brace Init Lst Close"
-ValueDefault=ignore
-
-[Nl Before Brace Open]
-Category=3
-Description="<html>Whether to add a newline before '{'.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_before_brace_open=true|nl_before_brace_open=false
-ValueDefault=false
-
-[Nl After Brace Open]
-Category=3
-Description="<html>Whether to add a newline after '{'.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_after_brace_open=true|nl_after_brace_open=false
-ValueDefault=false
-
-[Nl After Brace Open Cmt]
-Category=3
-Description="<html>Whether to add a newline between the open brace and a trailing single-line<br/>comment. Requires nl_after_brace_open=true.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_after_brace_open_cmt=true|nl_after_brace_open_cmt=false
-ValueDefault=false
-
-[Nl After Vbrace Open]
-Category=3
-Description="<html>Whether to add a newline after a virtual brace open with a non-empty body.<br/>These occur in un-braced if/while/do/for statement bodies.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_after_vbrace_open=true|nl_after_vbrace_open=false
-ValueDefault=false
-
-[Nl After Vbrace Open Empty]
-Category=3
-Description="<html>Whether to add a newline after a virtual brace open with an empty body.<br/>These occur in un-braced if/while/do/for statement bodies.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_after_vbrace_open_empty=true|nl_after_vbrace_open_empty=false
-ValueDefault=false
-
-[Nl After Brace Close]
-Category=3
-Description="<html>Whether to add a newline after '}'. Does not apply if followed by a<br/>necessary ';'.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_after_brace_close=true|nl_after_brace_close=false
-ValueDefault=false
-
-[Nl After Vbrace Close]
-Category=3
-Description="<html>Whether to add a newline after a virtual brace close,<br/>as in 'if (foo) a++; &lt;here&gt; return;'.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_after_vbrace_close=true|nl_after_vbrace_close=false
-ValueDefault=false
-
-[Nl Brace Struct Var]
-Category=3
-Description="<html>Add or remove newline between the close brace and identifier,<br/>as in 'struct { int a; } &lt;here&gt; b;'. Affects enumerations, unions and<br/>structures. If set to ignore, uses nl_after_brace_close.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_brace_struct_var=ignore|nl_brace_struct_var=add|nl_brace_struct_var=remove|nl_brace_struct_var=force|nl_brace_struct_var=not_defined
-ChoicesReadable="Ignore Nl Brace Struct Var|Add Nl Brace Struct Var|Remove Nl Brace Struct Var|Force Nl Brace Struct Var"
-ValueDefault=ignore
-
-[Nl Define Macro]
-Category=3
-Description="<html>Whether to alter newlines in '#define' macros.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_define_macro=true|nl_define_macro=false
-ValueDefault=false
-
-[Nl Squeeze Paren Close]
-Category=3
-Description="<html>Whether to alter newlines between consecutive parenthesis closes. The number<br/>of closing parentheses in a line will depend on respective open parenthesis<br/>lines.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_squeeze_paren_close=true|nl_squeeze_paren_close=false
-ValueDefault=false
-
-[Nl Squeeze Ifdef]
-Category=3
-Description="<html>Whether to remove blanks after '#ifxx' and '#elxx', or before '#elxx' and<br/>'#endif'. Does not affect top-level #ifdefs.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_squeeze_ifdef=true|nl_squeeze_ifdef=false
-ValueDefault=false
-
-[Nl Squeeze Ifdef Top Level]
-Category=3
-Description="<html>Makes the nl_squeeze_ifdef option affect the top-level #ifdefs as well.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_squeeze_ifdef_top_level=true|nl_squeeze_ifdef_top_level=false
-ValueDefault=false
-
-[Nl Before If]
-Category=3
-Description="<html>Add or remove blank line before 'if'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_before_if=ignore|nl_before_if=add|nl_before_if=remove|nl_before_if=force|nl_before_if=not_defined
-ChoicesReadable="Ignore Nl Before If|Add Nl Before If|Remove Nl Before If|Force Nl Before If"
-ValueDefault=ignore
-
-[Nl After If]
-Category=3
-Description="<html>Add or remove blank line after 'if' statement. Add/Force work only if the<br/>next token is not a closing brace.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_after_if=ignore|nl_after_if=add|nl_after_if=remove|nl_after_if=force|nl_after_if=not_defined
-ChoicesReadable="Ignore Nl After If|Add Nl After If|Remove Nl After If|Force Nl After If"
-ValueDefault=ignore
-
-[Nl Before For]
-Category=3
-Description="<html>Add or remove blank line before 'for'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_before_for=ignore|nl_before_for=add|nl_before_for=remove|nl_before_for=force|nl_before_for=not_defined
-ChoicesReadable="Ignore Nl Before For|Add Nl Before For|Remove Nl Before For|Force Nl Before For"
-ValueDefault=ignore
-
-[Nl After For]
-Category=3
-Description="<html>Add or remove blank line after 'for' statement.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_after_for=ignore|nl_after_for=add|nl_after_for=remove|nl_after_for=force|nl_after_for=not_defined
-ChoicesReadable="Ignore Nl After For|Add Nl After For|Remove Nl After For|Force Nl After For"
-ValueDefault=ignore
-
-[Nl Before While]
-Category=3
-Description="<html>Add or remove blank line before 'while'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_before_while=ignore|nl_before_while=add|nl_before_while=remove|nl_before_while=force|nl_before_while=not_defined
-ChoicesReadable="Ignore Nl Before While|Add Nl Before While|Remove Nl Before While|Force Nl Before While"
-ValueDefault=ignore
-
-[Nl After While]
-Category=3
-Description="<html>Add or remove blank line after 'while' statement.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_after_while=ignore|nl_after_while=add|nl_after_while=remove|nl_after_while=force|nl_after_while=not_defined
-ChoicesReadable="Ignore Nl After While|Add Nl After While|Remove Nl After While|Force Nl After While"
-ValueDefault=ignore
-
-[Nl Before Switch]
-Category=3
-Description="<html>Add or remove blank line before 'switch'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_before_switch=ignore|nl_before_switch=add|nl_before_switch=remove|nl_before_switch=force|nl_before_switch=not_defined
-ChoicesReadable="Ignore Nl Before Switch|Add Nl Before Switch|Remove Nl Before Switch|Force Nl Before Switch"
-ValueDefault=ignore
-
-[Nl After Switch]
-Category=3
-Description="<html>Add or remove blank line after 'switch' statement.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_after_switch=ignore|nl_after_switch=add|nl_after_switch=remove|nl_after_switch=force|nl_after_switch=not_defined
-ChoicesReadable="Ignore Nl After Switch|Add Nl After Switch|Remove Nl After Switch|Force Nl After Switch"
-ValueDefault=ignore
-
-[Nl Before Synchronized]
-Category=3
-Description="<html>Add or remove blank line before 'synchronized'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_before_synchronized=ignore|nl_before_synchronized=add|nl_before_synchronized=remove|nl_before_synchronized=force|nl_before_synchronized=not_defined
-ChoicesReadable="Ignore Nl Before Synchronized|Add Nl Before Synchronized|Remove Nl Before Synchronized|Force Nl Before Synchronized"
-ValueDefault=ignore
-
-[Nl After Synchronized]
-Category=3
-Description="<html>Add or remove blank line after 'synchronized' statement.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_after_synchronized=ignore|nl_after_synchronized=add|nl_after_synchronized=remove|nl_after_synchronized=force|nl_after_synchronized=not_defined
-ChoicesReadable="Ignore Nl After Synchronized|Add Nl After Synchronized|Remove Nl After Synchronized|Force Nl After Synchronized"
-ValueDefault=ignore
-
-[Nl Before Do]
-Category=3
-Description="<html>Add or remove blank line before 'do'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_before_do=ignore|nl_before_do=add|nl_before_do=remove|nl_before_do=force|nl_before_do=not_defined
-ChoicesReadable="Ignore Nl Before Do|Add Nl Before Do|Remove Nl Before Do|Force Nl Before Do"
-ValueDefault=ignore
-
-[Nl After Do]
-Category=3
-Description="<html>Add or remove blank line after 'do/while' statement.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_after_do=ignore|nl_after_do=add|nl_after_do=remove|nl_after_do=force|nl_after_do=not_defined
-ChoicesReadable="Ignore Nl After Do|Add Nl After Do|Remove Nl After Do|Force Nl After Do"
-ValueDefault=ignore
-
-[Nl Before Ignore After Case]
-Category=3
-Description="<html>Ignore nl_before_{if,for,switch,do,synchronized} if the control<br/>statement is immediately after a case statement.<br/>if nl_before_{if,for,switch,do} is set to remove, this option<br/>does nothing.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_before_ignore_after_case=true|nl_before_ignore_after_case=false
-ValueDefault=false
-
-[Nl Before Return]
-Category=3
-Description="<html>Whether to put a blank line before 'return' statements, unless after an open<br/>brace.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_before_return=true|nl_before_return=false
-ValueDefault=false
-
-[Nl After Return]
-Category=3
-Description="<html>Whether to put a blank line after 'return' statements, unless followed by a<br/>close brace.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_after_return=true|nl_after_return=false
-ValueDefault=false
-
-[Nl Before Member]
-Category=3
-Description="<html>Whether to put a blank line before a member '.' or '-&gt;' operators.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_before_member=ignore|nl_before_member=add|nl_before_member=remove|nl_before_member=force|nl_before_member=not_defined
-ChoicesReadable="Ignore Nl Before Member|Add Nl Before Member|Remove Nl Before Member|Force Nl Before Member"
-ValueDefault=ignore
-
-[Nl After Member]
-Category=3
-Description="<html>(Java) Whether to put a blank line after a member '.' or '-&gt;' operators.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_after_member=ignore|nl_after_member=add|nl_after_member=remove|nl_after_member=force|nl_after_member=not_defined
-ChoicesReadable="Ignore Nl After Member|Add Nl After Member|Remove Nl After Member|Force Nl After Member"
-ValueDefault=ignore
-
-[Nl Ds Struct Enum Cmt]
-Category=3
-Description="<html>Whether to double-space commented-entries in 'struct'/'union'/'enum'.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_ds_struct_enum_cmt=true|nl_ds_struct_enum_cmt=false
-ValueDefault=false
-
-[Nl Ds Struct Enum Close Brace]
-Category=3
-Description="<html>Whether to force a newline before '}' of a 'struct'/'union'/'enum'.<br/>(Lower priority than eat_blanks_before_close_brace.)</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_ds_struct_enum_close_brace=true|nl_ds_struct_enum_close_brace=false
-ValueDefault=false
-
-[Nl Class Colon]
-Category=3
-Description="<html>Add or remove newline before or after (depending on pos_class_colon) a class<br/>colon, as in 'class Foo &lt;here&gt; : &lt;or here&gt; public Bar'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_class_colon=ignore|nl_class_colon=add|nl_class_colon=remove|nl_class_colon=force|nl_class_colon=not_defined
-ChoicesReadable="Ignore Nl Class Colon|Add Nl Class Colon|Remove Nl Class Colon|Force Nl Class Colon"
-ValueDefault=ignore
-
-[Nl Constr Colon]
-Category=3
-Description="<html>Add or remove newline around a class constructor colon. The exact position<br/>depends on nl_constr_init_args, pos_constr_colon and pos_constr_comma.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_constr_colon=ignore|nl_constr_colon=add|nl_constr_colon=remove|nl_constr_colon=force|nl_constr_colon=not_defined
-ChoicesReadable="Ignore Nl Constr Colon|Add Nl Constr Colon|Remove Nl Constr Colon|Force Nl Constr Colon"
-ValueDefault=ignore
-
-[Nl Namespace Two To One Liner]
-Category=3
-Description="<html>Whether to collapse a two-line namespace, like 'namespace foo\n{ decl; }'<br/>into a single line. If true, prevents other brace newline rules from turning<br/>such code into four lines. If true, it also preserves one-liner namespaces.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_namespace_two_to_one_liner=true|nl_namespace_two_to_one_liner=false
-ValueDefault=false
-
-[Nl Create If One Liner]
-Category=3
-Description="<html>Whether to remove a newline in simple unbraced if statements, turning them<br/>into one-liners, as in 'if(b)\n i++;' =&gt; 'if(b) i++;'.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_create_if_one_liner=true|nl_create_if_one_liner=false
-ValueDefault=false
-
-[Nl Create For One Liner]
-Category=3
-Description="<html>Whether to remove a newline in simple unbraced for statements, turning them<br/>into one-liners, as in 'for (...)\n stmt;' =&gt; 'for (...) stmt;'.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_create_for_one_liner=true|nl_create_for_one_liner=false
-ValueDefault=false
-
-[Nl Create While One Liner]
-Category=3
-Description="<html>Whether to remove a newline in simple unbraced while statements, turning<br/>them into one-liners, as in 'while (expr)\n stmt;' =&gt; 'while (expr) stmt;'.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_create_while_one_liner=true|nl_create_while_one_liner=false
-ValueDefault=false
-
-[Nl Create Func Def One Liner]
-Category=3
-Description="<html>Whether to collapse a function definition whose body (not counting braces)<br/>is only one line so that the entire definition (prototype, braces, body) is<br/>a single line.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_create_func_def_one_liner=true|nl_create_func_def_one_liner=false
-ValueDefault=false
-
-[Nl Create List One Liner]
-Category=3
-Description="<html>Whether to split one-line simple list definitions into three lines by<br/>adding newlines, as in 'int a[12] = { &lt;here&gt; 0 &lt;here&gt; };'.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_create_list_one_liner=true|nl_create_list_one_liner=false
-ValueDefault=false
-
-[Nl Split If One Liner]
-Category=3
-Description="<html>Whether to split one-line simple unbraced if statements into two lines by<br/>adding a newline, as in 'if(b) &lt;here&gt; i++;'.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_split_if_one_liner=true|nl_split_if_one_liner=false
-ValueDefault=false
-
-[Nl Split For One Liner]
-Category=3
-Description="<html>Whether to split one-line simple unbraced for statements into two lines by<br/>adding a newline, as in 'for (...) &lt;here&gt; stmt;'.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_split_for_one_liner=true|nl_split_for_one_liner=false
-ValueDefault=false
-
-[Nl Split While One Liner]
-Category=3
-Description="<html>Whether to split one-line simple unbraced while statements into two lines by<br/>adding a newline, as in 'while (expr) &lt;here&gt; stmt;'.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_split_while_one_liner=true|nl_split_while_one_liner=false
-ValueDefault=false
-
-[Donot Add Nl Before Cpp Comment]
-Category=3
-Description="<html>Don't add a newline before a cpp-comment in a parameter list of a function<br/>call.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=donot_add_nl_before_cpp_comment=true|donot_add_nl_before_cpp_comment=false
-ValueDefault=false
-
-[Nl Max]
-Category=4
-Description="<html>The maximum number of consecutive newlines (3 = 2 blank lines).</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_max="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl Max Blank In Func]
-Category=4
-Description="<html>The maximum number of consecutive newlines in a function.</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_max_blank_in_func="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl Inside Empty Func]
-Category=4
-Description="<html>The number of newlines inside an empty function body.<br/>This option overrides eat_blanks_after_open_brace and<br/>eat_blanks_before_close_brace, but is ignored when<br/>nl_collapse_empty_body=true</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_inside_empty_func="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl Before Func Body Proto]
-Category=4
-Description="<html>The number of newlines before a function prototype.</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_before_func_body_proto="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl Before Func Body Def]
-Category=4
-Description="<html>The number of newlines before a multi-line function definition. Where<br/>applicable, this option is overridden with eat_blanks_after_open_brace=true</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_before_func_body_def="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl Before Func Class Proto]
-Category=4
-Description="<html>The number of newlines before a class constructor/destructor prototype.</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_before_func_class_proto="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl Before Func Class Def]
-Category=4
-Description="<html>The number of newlines before a class constructor/destructor definition.</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_before_func_class_def="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl After Func Proto]
-Category=4
-Description="<html>The number of newlines after a function prototype.</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_after_func_proto="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl After Func Proto Group]
-Category=4
-Description="<html>The number of newlines after a function prototype, if not followed by<br/>another function prototype.</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_after_func_proto_group="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl After Func Class Proto]
-Category=4
-Description="<html>The number of newlines after a class constructor/destructor prototype.</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_after_func_class_proto="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl After Func Class Proto Group]
-Category=4
-Description="<html>The number of newlines after a class constructor/destructor prototype,<br/>if not followed by another constructor/destructor prototype.</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_after_func_class_proto_group="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl Class Leave One Liner Groups]
-Category=4
-Description="<html>Whether one-line method definitions inside a class body should be treated<br/>as if they were prototypes for the purposes of adding newlines.<br/><br/>Requires nl_class_leave_one_liners=true. Overrides nl_before_func_body_def<br/>and nl_before_func_class_def for one-liners.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_class_leave_one_liner_groups=true|nl_class_leave_one_liner_groups=false
-ValueDefault=false
-
-[Nl After Func Body]
-Category=4
-Description="<html>The number of newlines after '}' of a multi-line function body.</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_after_func_body="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl After Func Body Class]
-Category=4
-Description="<html>The number of newlines after '}' of a multi-line function body in a class<br/>declaration. Also affects class constructors/destructors.<br/><br/>Overrides nl_after_func_body.</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_after_func_body_class="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl After Func Body One Liner]
-Category=4
-Description="<html>The number of newlines after '}' of a single line function body. Also<br/>affects class constructors/destructors.<br/><br/>Overrides nl_after_func_body and nl_after_func_body_class.</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_after_func_body_one_liner="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl Func Var Def Blk]
-Category=4
-Description="<html>The number of blank lines after a block of variable definitions at the top<br/>of a function body.<br/><br/>0: No change (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_func_var_def_blk="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl Typedef Blk Start]
-Category=4
-Description="<html>The number of newlines before a block of typedefs. If nl_after_access_spec<br/>is non-zero, that option takes precedence.<br/><br/>0: No change (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_typedef_blk_start="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl Typedef Blk End]
-Category=4
-Description="<html>The number of newlines after a block of typedefs.<br/><br/>0: No change (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_typedef_blk_end="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl Typedef Blk In]
-Category=4
-Description="<html>The maximum number of consecutive newlines within a block of typedefs.<br/><br/>0: No change (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_typedef_blk_in="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl Var Def Blk Start]
-Category=4
-Description="<html>The number of newlines before a block of variable definitions not at the top<br/>of a function body. If nl_after_access_spec is non-zero, that option takes<br/>precedence.<br/><br/>0: No change (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_var_def_blk_start="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl Var Def Blk End]
-Category=4
-Description="<html>The number of newlines after a block of variable definitions not at the top<br/>of a function body.<br/><br/>0: No change (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_var_def_blk_end="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl Var Def Blk In]
-Category=4
-Description="<html>The maximum number of consecutive newlines within a block of variable<br/>definitions.<br/><br/>0: No change (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_var_def_blk_in="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl Before Block Comment]
-Category=4
-Description="<html>The minimum number of newlines before a multi-line comment.<br/>Doesn't apply if after a brace open or another multi-line comment.</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_before_block_comment="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl Before C Comment]
-Category=4
-Description="<html>The minimum number of newlines before a single-line C comment.<br/>Doesn't apply if after a brace open or other single-line C comments.</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_before_c_comment="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl Before Cpp Comment]
-Category=4
-Description="<html>The minimum number of newlines before a CPP comment.<br/>Doesn't apply if after a brace open or other CPP comments.</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_before_cpp_comment="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl After Multiline Comment]
-Category=4
-Description="<html>Whether to force a newline after a multi-line comment.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_after_multiline_comment=true|nl_after_multiline_comment=false
-ValueDefault=false
-
-[Nl After Label Colon]
-Category=4
-Description="<html>Whether to force a newline after a label's colon.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=nl_after_label_colon=true|nl_after_label_colon=false
-ValueDefault=false
-
-[Nl Before Struct]
-Category=4
-Description="<html>The number of newlines before a struct definition.</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_before_struct="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl After Struct]
-Category=4
-Description="<html>The number of newlines after '}' or ';' of a struct/enum/union definition.</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_after_struct="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl Before Class]
-Category=4
-Description="<html>The number of newlines before a class definition.</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_before_class="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl After Class]
-Category=4
-Description="<html>The number of newlines after '}' or ';' of a class definition.</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_after_class="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl Before Namespace]
-Category=4
-Description="<html>The number of newlines before a namespace.</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_before_namespace="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl Inside Namespace]
-Category=4
-Description="<html>The number of newlines after '{' of a namespace. This also adds newlines<br/>before the matching '}'.<br/><br/>0: Apply eat_blanks_after_open_brace or eat_blanks_before_close_brace if<br/> applicable, otherwise no change.<br/><br/>Overrides eat_blanks_after_open_brace and eat_blanks_before_close_brace.</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_inside_namespace="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl After Namespace]
-Category=4
-Description="<html>The number of newlines after '}' of a namespace.</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_after_namespace="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl Before Access Spec]
-Category=4
-Description="<html>The number of newlines before an access specifier label. This also includes<br/>the Qt-specific 'signals:' and 'slots:'. Will not change the newline count<br/>if after a brace open.<br/><br/>0: No change (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_before_access_spec="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl After Access Spec]
-Category=4
-Description="<html>The number of newlines after an access specifier label. This also includes<br/>the Qt-specific 'signals:' and 'slots:'. Will not change the newline count<br/>if after a brace open.<br/><br/>0: No change (default).<br/><br/>Overrides nl_typedef_blk_start and nl_var_def_blk_start.</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_after_access_spec="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl Comment Func Def]
-Category=4
-Description="<html>The number of newlines between a function definition and the function<br/>comment, as in '// comment\n &lt;here&gt; void foo() {...}'.<br/><br/>0: No change (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_comment_func_def="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl After Try Catch Finally]
-Category=4
-Description="<html>The number of newlines after a try-catch-finally block that isn't followed<br/>by a brace close.<br/><br/>0: No change (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_after_try_catch_finally="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl Around Cs Property]
-Category=4
-Description="<html>(C#) The number of newlines before and after a property, indexer or event<br/>declaration.<br/><br/>0: No change (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_around_cs_property="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl Between Get Set]
-Category=4
-Description="<html>(C#) The number of newlines between the get/set/add/remove handlers.<br/><br/>0: No change (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_between_get_set="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl Property Brace]
-Category=4
-Description="<html>(C#) Add or remove newline between property and the '{'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_property_brace=ignore|nl_property_brace=add|nl_property_brace=remove|nl_property_brace=force|nl_property_brace=not_defined
-ChoicesReadable="Ignore Nl Property Brace|Add Nl Property Brace|Remove Nl Property Brace|Force Nl Property Brace"
-ValueDefault=ignore
-
-[Eat Blanks After Open Brace]
-Category=4
-Description="<html>Whether to remove blank lines after '{'.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=eat_blanks_after_open_brace=true|eat_blanks_after_open_brace=false
-ValueDefault=false
-
-[Eat Blanks Before Close Brace]
-Category=4
-Description="<html>Whether to remove blank lines before '}'.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=eat_blanks_before_close_brace=true|eat_blanks_before_close_brace=false
-ValueDefault=false
-
-[Nl Remove Extra Newlines]
-Category=4
-Description="<html>How aggressively to remove extra newlines not in preprocessor.<br/><br/>0: No change (default)<br/>1: Remove most newlines not handled by other config<br/>2: Remove all newlines and reformat completely by config</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_remove_extra_newlines="
-MinVal=0
-MaxVal=2
-ValueDefault=0
-
-[Nl After Annotation]
-Category=4
-Description="<html>(Java) Add or remove newline after an annotation statement. Only affects<br/>annotations that are after a newline.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_after_annotation=ignore|nl_after_annotation=add|nl_after_annotation=remove|nl_after_annotation=force|nl_after_annotation=not_defined
-ChoicesReadable="Ignore Nl After Annotation|Add Nl After Annotation|Remove Nl After Annotation|Force Nl After Annotation"
-ValueDefault=ignore
-
-[Nl Between Annotation]
-Category=4
-Description="<html>(Java) Add or remove newline between two annotations.</html>"
-Enabled=false
-EditorType=multiple
-Choices=nl_between_annotation=ignore|nl_between_annotation=add|nl_between_annotation=remove|nl_between_annotation=force|nl_between_annotation=not_defined
-ChoicesReadable="Ignore Nl Between Annotation|Add Nl Between Annotation|Remove Nl Between Annotation|Force Nl Between Annotation"
-ValueDefault=ignore
-
-[Nl Before Whole File Ifdef]
-Category=4
-Description="<html>The number of newlines before a whole-file #ifdef.<br/><br/>0: No change (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_before_whole_file_ifdef="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl After Whole File Ifdef]
-Category=4
-Description="<html>The number of newlines after a whole-file #ifdef.<br/><br/>0: No change (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_after_whole_file_ifdef="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl Before Whole File Endif]
-Category=4
-Description="<html>The number of newlines before a whole-file #endif.<br/><br/>0: No change (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_before_whole_file_endif="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Nl After Whole File Endif]
-Category=4
-Description="<html>The number of newlines after a whole-file #endif.<br/><br/>0: No change (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="nl_after_whole_file_endif="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Pos Arith]
-Category=5
-Description="<html>The position of arithmetic operators in wrapped expressions.</html>"
-Enabled=false
-EditorType=multiple
-Choices=pos_arith=ignore|pos_arith=break|pos_arith=force|pos_arith=lead|pos_arith=trail|pos_arith=join|pos_arith=lead_break|pos_arith=lead_force|pos_arith=trail_break|pos_arith=trail_force
-ChoicesReadable="Ignore Pos Arith|Break Pos Arith|Force Pos Arith|Lead Pos Arith|Trail Pos Arith|Join Pos Arith|Lead Break Pos Arith|Lead Force Pos Arith|Trail Break Pos Arith|Trail Force Pos Arith"
-ValueDefault=ignore
-
-[Pos Assign]
-Category=5
-Description="<html>The position of assignment in wrapped expressions. Do not affect '='<br/>followed by '{'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=pos_assign=ignore|pos_assign=break|pos_assign=force|pos_assign=lead|pos_assign=trail|pos_assign=join|pos_assign=lead_break|pos_assign=lead_force|pos_assign=trail_break|pos_assign=trail_force
-ChoicesReadable="Ignore Pos Assign|Break Pos Assign|Force Pos Assign|Lead Pos Assign|Trail Pos Assign|Join Pos Assign|Lead Break Pos Assign|Lead Force Pos Assign|Trail Break Pos Assign|Trail Force Pos Assign"
-ValueDefault=ignore
-
-[Pos Bool]
-Category=5
-Description="<html>The position of Boolean operators in wrapped expressions.</html>"
-Enabled=false
-EditorType=multiple
-Choices=pos_bool=ignore|pos_bool=break|pos_bool=force|pos_bool=lead|pos_bool=trail|pos_bool=join|pos_bool=lead_break|pos_bool=lead_force|pos_bool=trail_break|pos_bool=trail_force
-ChoicesReadable="Ignore Pos Bool|Break Pos Bool|Force Pos Bool|Lead Pos Bool|Trail Pos Bool|Join Pos Bool|Lead Break Pos Bool|Lead Force Pos Bool|Trail Break Pos Bool|Trail Force Pos Bool"
-ValueDefault=ignore
-
-[Pos Compare]
-Category=5
-Description="<html>The position of comparison operators in wrapped expressions.</html>"
-Enabled=false
-EditorType=multiple
-Choices=pos_compare=ignore|pos_compare=break|pos_compare=force|pos_compare=lead|pos_compare=trail|pos_compare=join|pos_compare=lead_break|pos_compare=lead_force|pos_compare=trail_break|pos_compare=trail_force
-ChoicesReadable="Ignore Pos Compare|Break Pos Compare|Force Pos Compare|Lead Pos Compare|Trail Pos Compare|Join Pos Compare|Lead Break Pos Compare|Lead Force Pos Compare|Trail Break Pos Compare|Trail Force Pos Compare"
-ValueDefault=ignore
-
-[Pos Conditional]
-Category=5
-Description="<html>The position of conditional operators, as in the '?' and ':' of<br/>'expr ? stmt : stmt', in wrapped expressions.</html>"
-Enabled=false
-EditorType=multiple
-Choices=pos_conditional=ignore|pos_conditional=break|pos_conditional=force|pos_conditional=lead|pos_conditional=trail|pos_conditional=join|pos_conditional=lead_break|pos_conditional=lead_force|pos_conditional=trail_break|pos_conditional=trail_force
-ChoicesReadable="Ignore Pos Conditional|Break Pos Conditional|Force Pos Conditional|Lead Pos Conditional|Trail Pos Conditional|Join Pos Conditional|Lead Break Pos Conditional|Lead Force Pos Conditional|Trail Break Pos Conditional|Trail Force Pos Conditional"
-ValueDefault=ignore
-
-[Pos Comma]
-Category=5
-Description="<html>The position of the comma in wrapped expressions.</html>"
-Enabled=false
-EditorType=multiple
-Choices=pos_comma=ignore|pos_comma=break|pos_comma=force|pos_comma=lead|pos_comma=trail|pos_comma=join|pos_comma=lead_break|pos_comma=lead_force|pos_comma=trail_break|pos_comma=trail_force
-ChoicesReadable="Ignore Pos Comma|Break Pos Comma|Force Pos Comma|Lead Pos Comma|Trail Pos Comma|Join Pos Comma|Lead Break Pos Comma|Lead Force Pos Comma|Trail Break Pos Comma|Trail Force Pos Comma"
-ValueDefault=ignore
-
-[Pos Enum Comma]
-Category=5
-Description="<html>The position of the comma in enum entries.</html>"
-Enabled=false
-EditorType=multiple
-Choices=pos_enum_comma=ignore|pos_enum_comma=break|pos_enum_comma=force|pos_enum_comma=lead|pos_enum_comma=trail|pos_enum_comma=join|pos_enum_comma=lead_break|pos_enum_comma=lead_force|pos_enum_comma=trail_break|pos_enum_comma=trail_force
-ChoicesReadable="Ignore Pos Enum Comma|Break Pos Enum Comma|Force Pos Enum Comma|Lead Pos Enum Comma|Trail Pos Enum Comma|Join Pos Enum Comma|Lead Break Pos Enum Comma|Lead Force Pos Enum Comma|Trail Break Pos Enum Comma|Trail Force Pos Enum Comma"
-ValueDefault=ignore
-
-[Pos Class Comma]
-Category=5
-Description="<html>The position of the comma in the base class list if there is more than one<br/>line. Affects nl_class_init_args.</html>"
-Enabled=false
-EditorType=multiple
-Choices=pos_class_comma=ignore|pos_class_comma=break|pos_class_comma=force|pos_class_comma=lead|pos_class_comma=trail|pos_class_comma=join|pos_class_comma=lead_break|pos_class_comma=lead_force|pos_class_comma=trail_break|pos_class_comma=trail_force
-ChoicesReadable="Ignore Pos Class Comma|Break Pos Class Comma|Force Pos Class Comma|Lead Pos Class Comma|Trail Pos Class Comma|Join Pos Class Comma|Lead Break Pos Class Comma|Lead Force Pos Class Comma|Trail Break Pos Class Comma|Trail Force Pos Class Comma"
-ValueDefault=ignore
-
-[Pos Constr Comma]
-Category=5
-Description="<html>The position of the comma in the constructor initialization list.<br/>Related to nl_constr_colon, nl_constr_init_args and pos_constr_colon.</html>"
-Enabled=false
-EditorType=multiple
-Choices=pos_constr_comma=ignore|pos_constr_comma=break|pos_constr_comma=force|pos_constr_comma=lead|pos_constr_comma=trail|pos_constr_comma=join|pos_constr_comma=lead_break|pos_constr_comma=lead_force|pos_constr_comma=trail_break|pos_constr_comma=trail_force
-ChoicesReadable="Ignore Pos Constr Comma|Break Pos Constr Comma|Force Pos Constr Comma|Lead Pos Constr Comma|Trail Pos Constr Comma|Join Pos Constr Comma|Lead Break Pos Constr Comma|Lead Force Pos Constr Comma|Trail Break Pos Constr Comma|Trail Force Pos Constr Comma"
-ValueDefault=ignore
-
-[Pos Class Colon]
-Category=5
-Description="<html>The position of trailing/leading class colon, between class and base class<br/>list. Affects nl_class_colon.</html>"
-Enabled=false
-EditorType=multiple
-Choices=pos_class_colon=ignore|pos_class_colon=break|pos_class_colon=force|pos_class_colon=lead|pos_class_colon=trail|pos_class_colon=join|pos_class_colon=lead_break|pos_class_colon=lead_force|pos_class_colon=trail_break|pos_class_colon=trail_force
-ChoicesReadable="Ignore Pos Class Colon|Break Pos Class Colon|Force Pos Class Colon|Lead Pos Class Colon|Trail Pos Class Colon|Join Pos Class Colon|Lead Break Pos Class Colon|Lead Force Pos Class Colon|Trail Break Pos Class Colon|Trail Force Pos Class Colon"
-ValueDefault=ignore
-
-[Pos Constr Colon]
-Category=5
-Description="<html>The position of colons between constructor and member initialization.<br/>Related to nl_constr_colon, nl_constr_init_args and pos_constr_comma.</html>"
-Enabled=false
-EditorType=multiple
-Choices=pos_constr_colon=ignore|pos_constr_colon=break|pos_constr_colon=force|pos_constr_colon=lead|pos_constr_colon=trail|pos_constr_colon=join|pos_constr_colon=lead_break|pos_constr_colon=lead_force|pos_constr_colon=trail_break|pos_constr_colon=trail_force
-ChoicesReadable="Ignore Pos Constr Colon|Break Pos Constr Colon|Force Pos Constr Colon|Lead Pos Constr Colon|Trail Pos Constr Colon|Join Pos Constr Colon|Lead Break Pos Constr Colon|Lead Force Pos Constr Colon|Trail Break Pos Constr Colon|Trail Force Pos Constr Colon"
-ValueDefault=ignore
-
-[Pos Shift]
-Category=5
-Description="<html>The position of shift operators in wrapped expressions.</html>"
-Enabled=false
-EditorType=multiple
-Choices=pos_shift=ignore|pos_shift=break|pos_shift=force|pos_shift=lead|pos_shift=trail|pos_shift=join|pos_shift=lead_break|pos_shift=lead_force|pos_shift=trail_break|pos_shift=trail_force
-ChoicesReadable="Ignore Pos Shift|Break Pos Shift|Force Pos Shift|Lead Pos Shift|Trail Pos Shift|Join Pos Shift|Lead Break Pos Shift|Lead Force Pos Shift|Trail Break Pos Shift|Trail Force Pos Shift"
-ValueDefault=ignore
-
-[Code Width]
-Category=6
-Description="<html>Try to limit code width to N columns.</html>"
-Enabled=false
-EditorType=numeric
-CallName="code_width="
-MinVal=0
-MaxVal=10000
-ValueDefault=0
-
-[Ls For Split Full]
-Category=6
-Description="<html>Whether to fully split long 'for' statements at semi-colons.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=ls_for_split_full=true|ls_for_split_full=false
-ValueDefault=false
-
-[Ls Func Split Full]
-Category=6
-Description="<html>Whether to fully split long function prototypes/calls at commas.<br/>The option ls_code_width has priority over the option ls_func_split_full.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=ls_func_split_full=true|ls_func_split_full=false
-ValueDefault=false
-
-[Ls Code Width]
-Category=6
-Description="<html>Whether to split lines as close to code_width as possible and ignore some<br/>groupings.<br/>The option ls_code_width has priority over the option ls_func_split_full.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=ls_code_width=true|ls_code_width=false
-ValueDefault=false
-
-[Align Keep Tabs]
-Category=7
-Description="<html>Whether to keep non-indenting tabs.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=align_keep_tabs=true|align_keep_tabs=false
-ValueDefault=false
-
-[Align With Tabs]
-Category=7
-Description="<html>Whether to use tabs for aligning.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=align_with_tabs=true|align_with_tabs=false
-ValueDefault=false
-
-[Align On Tabstop]
-Category=7
-Description="<html>Whether to bump out to the next tab when aligning.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=align_on_tabstop=true|align_on_tabstop=false
-ValueDefault=false
-
-[Align Number Right]
-Category=7
-Description="<html>Whether to right-align numbers.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=align_number_right=true|align_number_right=false
-ValueDefault=false
-
-[Align Keep Extra Space]
-Category=7
-Description="<html>Whether to keep whitespace not required for alignment.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=align_keep_extra_space=true|align_keep_extra_space=false
-ValueDefault=false
-
-[Align Func Params]
-Category=7
-Description="<html>Whether to align variable definitions in prototypes and functions.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=align_func_params=true|align_func_params=false
-ValueDefault=false
-
-[Align Func Params Span]
-Category=7
-Description="<html>The span for aligning parameter definitions in function on parameter name.<br/><br/>0: Don't align (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_func_params_span="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Align Func Params Thresh]
-Category=7
-Description="<html>The threshold for aligning function parameter definitions.<br/>Use a negative number for absolute thresholds.<br/><br/>0: No limit (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_func_params_thresh="
-MinVal=-1000
-MaxVal=5000
-ValueDefault=0
-
-[Align Func Params Gap]
-Category=7
-Description="<html>The gap for aligning function parameter definitions.</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_func_params_gap="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Align Constr Value Span]
-Category=7
-Description="<html>The span for aligning constructor value.<br/><br/>0: Don't align (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_constr_value_span="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Align Constr Value Thresh]
-Category=7
-Description="<html>The threshold for aligning constructor value.<br/>Use a negative number for absolute thresholds.<br/><br/>0: No limit (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_constr_value_thresh="
-MinVal=-1000
-MaxVal=5000
-ValueDefault=0
-
-[Align Constr Value Gap]
-Category=7
-Description="<html>The gap for aligning constructor value.</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_constr_value_gap="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Align Same Func Call Params]
-Category=7
-Description="<html>Whether to align parameters in single-line functions that have the same<br/>name. The function names must already be aligned with each other.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=align_same_func_call_params=true|align_same_func_call_params=false
-ValueDefault=false
-
-[Align Same Func Call Params Span]
-Category=7
-Description="<html>The span for aligning function-call parameters for single line functions.<br/><br/>0: Don't align (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_same_func_call_params_span="
-MinVal=0
-MaxVal=5000
-ValueDefault=0
-
-[Align Same Func Call Params Thresh]
-Category=7
-Description="<html>The threshold for aligning function-call parameters for single line<br/>functions.<br/>Use a negative number for absolute thresholds.<br/><br/>0: No limit (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_same_func_call_params_thresh="
-MinVal=-1000
-MaxVal=5000
-ValueDefault=0
-
-[Align Var Def Span]
-Category=7
-Description="<html>The span for aligning variable definitions.<br/><br/>0: Don't align (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_var_def_span="
-MinVal=0
-MaxVal=5000
-ValueDefault=0
-
-[Align Var Def Star Style]
-Category=7
-Description="<html>How to consider (or treat) the '*' in the alignment of variable definitions.<br/><br/>0: Part of the type 'void * foo;' (default)<br/>1: Part of the variable 'void *foo;'<br/>2: Dangling 'void *foo;'<br/>Dangling: the '*' will not be taken into account when aligning.</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_var_def_star_style="
-MinVal=0
-MaxVal=2
-ValueDefault=0
-
-[Align Var Def Amp Style]
-Category=7
-Description="<html>How to consider (or treat) the '&amp;' in the alignment of variable definitions.<br/><br/>0: Part of the type 'long &amp; foo;' (default)<br/>1: Part of the variable 'long &amp;foo;'<br/>2: Dangling 'long &amp;foo;'<br/>Dangling: the '&amp;' will not be taken into account when aligning.</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_var_def_amp_style="
-MinVal=0
-MaxVal=2
-ValueDefault=0
-
-[Align Var Def Thresh]
-Category=7
-Description="<html>The threshold for aligning variable definitions.<br/>Use a negative number for absolute thresholds.<br/><br/>0: No limit (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_var_def_thresh="
-MinVal=-1000
-MaxVal=5000
-ValueDefault=0
-
-[Align Var Def Gap]
-Category=7
-Description="<html>The gap for aligning variable definitions.</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_var_def_gap="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Align Var Def Colon]
-Category=7
-Description="<html>Whether to align the colon in struct bit fields.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=align_var_def_colon=true|align_var_def_colon=false
-ValueDefault=false
-
-[Align Var Def Colon Gap]
-Category=7
-Description="<html>The gap for aligning the colon in struct bit fields.</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_var_def_colon_gap="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Align Var Def Attribute]
-Category=7
-Description="<html>Whether to align any attribute after the variable name.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=align_var_def_attribute=true|align_var_def_attribute=false
-ValueDefault=false
-
-[Align Var Def Inline]
-Category=7
-Description="<html>Whether to align inline struct/enum/union variable definitions.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=align_var_def_inline=true|align_var_def_inline=false
-ValueDefault=false
-
-[Align Assign Span]
-Category=7
-Description="<html>The span for aligning on '=' in assignments.<br/><br/>0: Don't align (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_assign_span="
-MinVal=0
-MaxVal=5000
-ValueDefault=0
-
-[Align Assign Func Proto Span]
-Category=7
-Description="<html>The span for aligning on '=' in function prototype modifier.<br/><br/>0: Don't align (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_assign_func_proto_span="
-MinVal=0
-MaxVal=5000
-ValueDefault=0
-
-[Align Assign Thresh]
-Category=7
-Description="<html>The threshold for aligning on '=' in assignments.<br/>Use a negative number for absolute thresholds.<br/><br/>0: No limit (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_assign_thresh="
-MinVal=-1000
-MaxVal=5000
-ValueDefault=0
-
-[Align Assign Decl Func]
-Category=7
-Description="<html>How to apply align_assign_span to function declaration "assignments", i.e.<br/>'virtual void foo() = 0' or '~foo() = {default|delete}'.<br/><br/>0: Align with other assignments (default)<br/>1: Align with each other, ignoring regular assignments<br/>2: Don't align</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_assign_decl_func="
-MinVal=0
-MaxVal=2
-ValueDefault=0
-
-[Align Enum Equ Span]
-Category=7
-Description="<html>The span for aligning on '=' in enums.<br/><br/>0: Don't align (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_enum_equ_span="
-MinVal=0
-MaxVal=5000
-ValueDefault=0
-
-[Align Enum Equ Thresh]
-Category=7
-Description="<html>The threshold for aligning on '=' in enums.<br/>Use a negative number for absolute thresholds.<br/><br/>0: no limit (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_enum_equ_thresh="
-MinVal=-1000
-MaxVal=5000
-ValueDefault=0
-
-[Align Var Class Span]
-Category=7
-Description="<html>The span for aligning class member definitions.<br/><br/>0: Don't align (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_var_class_span="
-MinVal=0
-MaxVal=5000
-ValueDefault=0
-
-[Align Var Class Thresh]
-Category=7
-Description="<html>The threshold for aligning class member definitions.<br/>Use a negative number for absolute thresholds.<br/><br/>0: No limit (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_var_class_thresh="
-MinVal=-1000
-MaxVal=5000
-ValueDefault=0
-
-[Align Var Class Gap]
-Category=7
-Description="<html>The gap for aligning class member definitions.</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_var_class_gap="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Align Var Struct Span]
-Category=7
-Description="<html>The span for aligning struct/union member definitions.<br/><br/>0: Don't align (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_var_struct_span="
-MinVal=0
-MaxVal=5000
-ValueDefault=0
-
-[Align Var Struct Thresh]
-Category=7
-Description="<html>The threshold for aligning struct/union member definitions.<br/>Use a negative number for absolute thresholds.<br/><br/>0: No limit (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_var_struct_thresh="
-MinVal=-1000
-MaxVal=5000
-ValueDefault=0
-
-[Align Var Struct Gap]
-Category=7
-Description="<html>The gap for aligning struct/union member definitions.</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_var_struct_gap="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Align Struct Init Span]
-Category=7
-Description="<html>The span for aligning struct initializer values.<br/><br/>0: Don't align (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_struct_init_span="
-MinVal=0
-MaxVal=5000
-ValueDefault=0
-
-[Align Typedef Span]
-Category=7
-Description="<html>The span for aligning single-line typedefs.<br/><br/>0: Don't align (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_typedef_span="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Align Typedef Gap]
-Category=7
-Description="<html>The minimum space between the type and the synonym of a typedef.</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_typedef_gap="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Align Typedef Func]
-Category=7
-Description="<html>How to align typedef'd functions with other typedefs.<br/><br/>0: Don't mix them at all (default)<br/>1: Align the open parenthesis with the types<br/>2: Align the function type name with the other type names</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_typedef_func="
-MinVal=0
-MaxVal=2
-ValueDefault=0
-
-[Align Typedef Star Style]
-Category=7
-Description="<html>How to consider (or treat) the '*' in the alignment of typedefs.<br/><br/>0: Part of the typedef type, 'typedef int * pint;' (default)<br/>1: Part of type name: 'typedef int *pint;'<br/>2: Dangling: 'typedef int *pint;'<br/>Dangling: the '*' will not be taken into account when aligning.</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_typedef_star_style="
-MinVal=0
-MaxVal=2
-ValueDefault=0
-
-[Align Typedef Amp Style]
-Category=7
-Description="<html>How to consider (or treat) the '&amp;' in the alignment of typedefs.<br/><br/>0: Part of the typedef type, 'typedef int &amp; intref;' (default)<br/>1: Part of type name: 'typedef int &amp;intref;'<br/>2: Dangling: 'typedef int &amp;intref;'<br/>Dangling: the '&amp;' will not be taken into account when aligning.</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_typedef_amp_style="
-MinVal=0
-MaxVal=2
-ValueDefault=0
-
-[Align Right Cmt Span]
-Category=7
-Description="<html>The span for aligning comments that end lines.<br/><br/>0: Don't align (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_right_cmt_span="
-MinVal=0
-MaxVal=5000
-ValueDefault=0
-
-[Align Right Cmt Gap]
-Category=7
-Description="<html>Minimum number of columns between preceding text and a trailing comment in<br/>order for the comment to qualify for being aligned. Must be non-zero to have<br/>an effect.</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_right_cmt_gap="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Align Right Cmt Mix]
-Category=7
-Description="<html>If aligning comments, whether to mix with comments after '}' and #endif with<br/>less than three spaces before the comment.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=align_right_cmt_mix=true|align_right_cmt_mix=false
-ValueDefault=false
-
-[Align Right Cmt Same Level]
-Category=7
-Description="<html>Whether to only align trailing comments that are at the same brace level.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=align_right_cmt_same_level=true|align_right_cmt_same_level=false
-ValueDefault=false
-
-[Align Right Cmt At Col]
-Category=7
-Description="<html>Minimum column at which to align trailing comments. Comments which are<br/>aligned beyond this column, but which can be aligned in a lesser column,<br/>may be "pulled in".<br/><br/>0: Ignore (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_right_cmt_at_col="
-MinVal=0
-MaxVal=200
-ValueDefault=0
-
-[Align Func Proto Span]
-Category=7
-Description="<html>The span for aligning function prototypes.<br/><br/>0: Don't align (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_func_proto_span="
-MinVal=0
-MaxVal=5000
-ValueDefault=0
-
-[Align Func Proto Star Style]
-Category=7
-Description="<html>How to consider (or treat) the '*' in the alignment of function prototypes.<br/><br/>0: Part of the type 'void * foo();' (default)<br/>1: Part of the function 'void *foo();'<br/>2: Dangling 'void *foo();'<br/>Dangling: the '*' will not be taken into account when aligning.</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_func_proto_star_style="
-MinVal=0
-MaxVal=2
-ValueDefault=0
-
-[Align Func Proto Amp Style]
-Category=7
-Description="<html>How to consider (or treat) the '&amp;' in the alignment of function prototypes.<br/><br/>0: Part of the type 'long &amp; foo();' (default)<br/>1: Part of the function 'long &amp;foo();'<br/>2: Dangling 'long &amp;foo();'<br/>Dangling: the '&amp;' will not be taken into account when aligning.</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_func_proto_amp_style="
-MinVal=0
-MaxVal=2
-ValueDefault=0
-
-[Align Func Proto Thresh]
-Category=7
-Description="<html>The threshold for aligning function prototypes.<br/>Use a negative number for absolute thresholds.<br/><br/>0: No limit (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_func_proto_thresh="
-MinVal=-1000
-MaxVal=5000
-ValueDefault=0
-
-[Align Func Proto Gap]
-Category=7
-Description="<html>Minimum gap between the return type and the function name.</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_func_proto_gap="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Align On Operator]
-Category=7
-Description="<html>Whether to align function prototypes on the 'operator' keyword instead of<br/>what follows.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=align_on_operator=true|align_on_operator=false
-ValueDefault=false
-
-[Align Mix Var Proto]
-Category=7
-Description="<html>Whether to mix aligning prototype and variable declarations. If true,<br/>align_var_def_XXX options are used instead of align_func_proto_XXX options.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=align_mix_var_proto=true|align_mix_var_proto=false
-ValueDefault=false
-
-[Align Single Line Func]
-Category=7
-Description="<html>Whether to align single-line functions with function prototypes.<br/>Uses align_func_proto_span.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=align_single_line_func=true|align_single_line_func=false
-ValueDefault=false
-
-[Align Single Line Brace]
-Category=7
-Description="<html>Whether to align the open brace of single-line functions.<br/>Requires align_single_line_func=true. Uses align_func_proto_span.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=align_single_line_brace=true|align_single_line_brace=false
-ValueDefault=false
-
-[Align Single Line Brace Gap]
-Category=7
-Description="<html>Gap for align_single_line_brace.</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_single_line_brace_gap="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Align Oc Msg Spec Span]
-Category=7
-Description="<html>(OC) The span for aligning Objective-C message specifications.<br/><br/>0: Don't align (default).</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_oc_msg_spec_span="
-MinVal=0
-MaxVal=5000
-ValueDefault=0
-
-[Align Nl Cont]
-Category=7
-Description="<html>Whether to align macros wrapped with a backslash and a newline. This will<br/>not work right if the macro contains a multi-line comment.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=align_nl_cont=true|align_nl_cont=false
-ValueDefault=false
-
-[Align Pp Define Together]
-Category=7
-Description="<html>Whether to align macro functions and variables together.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=align_pp_define_together=true|align_pp_define_together=false
-ValueDefault=false
-
-[Align Pp Define Span]
-Category=7
-Description="<html>The span for aligning on '#define' bodies.<br/><br/>=0: Don't align (default)<br/>&gt;0: Number of lines (including comments) between blocks</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_pp_define_span="
-MinVal=0
-MaxVal=5000
-ValueDefault=0
-
-[Align Pp Define Gap]
-Category=7
-Description="<html>The minimum space between label and value of a preprocessor define.</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_pp_define_gap="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Align Left Shift]
-Category=7
-Description="<html>Whether to align lines that start with '&lt;&lt;' with previous '&lt;&lt;'.<br/><br/>Default: true</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=align_left_shift=true|align_left_shift=false
-ValueDefault=true
-
-[Align Eigen Comma Init]
-Category=7
-Description="<html>Whether to align comma-separated statements following '&lt;&lt;' (as used to<br/>initialize Eigen matrices).</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=align_eigen_comma_init=true|align_eigen_comma_init=false
-ValueDefault=false
-
-[Align Asm Colon]
-Category=7
-Description="<html>Whether to align text after 'asm volatile ()' colons.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=align_asm_colon=true|align_asm_colon=false
-ValueDefault=false
-
-[Align Oc Msg Colon Span]
-Category=7
-Description="<html>(OC) Span for aligning parameters in an Objective-C message call<br/>on the ':'.<br/><br/>0: Don't align.</html>"
-Enabled=false
-EditorType=numeric
-CallName="align_oc_msg_colon_span="
-MinVal=0
-MaxVal=5000
-ValueDefault=0
-
-[Align Oc Msg Colon First]
-Category=7
-Description="<html>(OC) Whether to always align with the first parameter, even if it is too<br/>short.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=align_oc_msg_colon_first=true|align_oc_msg_colon_first=false
-ValueDefault=false
-
-[Align Oc Decl Colon]
-Category=7
-Description="<html>(OC) Whether to align parameters in an Objective-C '+' or '-' declaration<br/>on the ':'.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=align_oc_decl_colon=true|align_oc_decl_colon=false
-ValueDefault=false
-
-[Align Oc Msg Colon Xcode Like]
-Category=7
-Description="<html>(OC) Whether to not align parameters in an Objectve-C message call if first<br/>colon is not on next line of the message call (the same way Xcode does<br/>aligment)</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=align_oc_msg_colon_xcode_like=true|align_oc_msg_colon_xcode_like=false
-ValueDefault=false
-
-[Cmt Width]
-Category=8
-Description="<html>Try to wrap comments at N columns.</html>"
-Enabled=false
-EditorType=numeric
-CallName="cmt_width="
-MinVal=0
-MaxVal=256
-ValueDefault=0
-
-[Cmt Reflow Mode]
-Category=8
-Description="<html>How to reflow comments.<br/><br/>0: No reflowing (apart from the line wrapping due to cmt_width) (default)<br/>1: No touching at all<br/>2: Full reflow (enable cmt_indent_multi for indent with line wrapping due to cmt_width)</html>"
-Enabled=false
-EditorType=numeric
-CallName="cmt_reflow_mode="
-MinVal=0
-MaxVal=2
-ValueDefault=0
-
-[Cmt Reflow Fold Regex File]
-Category=8
-Description="<html>Path to a file that contains regular expressions describing patterns for<br/>which the end of one line and the beginning of the next will be folded into<br/>the same sentence or paragraph during full comment reflow. The regular<br/>expressions are described using ECMAScript syntax. The syntax for this<br/>specification is as follows, where "..." indicates the custom regular<br/>expression and "n" indicates the nth end_of_prev_line_regex and<br/>beg_of_next_line_regex regular expression pair:<br/><br/>end_of_prev_line_regex[1] = "...$"<br/>beg_of_next_line_regex[1] = "^..."<br/>end_of_prev_line_regex[2] = "...$"<br/>beg_of_next_line_regex[2] = "^..."<br/> .<br/> .<br/> .<br/>end_of_prev_line_regex[n] = "...$"<br/>beg_of_next_line_regex[n] = "^..."<br/><br/>Note that use of this option overrides the default reflow fold regular<br/>expressions, which are internally defined as follows:<br/><br/>end_of_prev_line_regex[1] = "[\w,\]\)]$"<br/>beg_of_next_line_regex[1] = "^[\w,\[\(]"<br/>end_of_prev_line_regex[2] = "\.$"<br/>beg_of_next_line_regex[2] = "^[A-Z]"</html>"
-Enabled=false
-CallName=cmt_reflow_fold_regex_file=
-EditorType=string
-ValueDefault=
-
-[Cmt Reflow Indent To Paragraph Start]
-Category=8
-Description="<html>Whether to indent wrapped lines to the start of the encompassing paragraph<br/>during full comment reflow (cmt_reflow_mode = 2). Overrides the value<br/>specified by cmt_sp_after_star_cont.<br/><br/>Note that cmt_align_doxygen_javadoc_tags overrides this option for<br/>paragraphs associated with javadoc tags</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=cmt_reflow_indent_to_paragraph_start=true|cmt_reflow_indent_to_paragraph_start=false
-ValueDefault=false
-
-[Cmt Convert Tab To Spaces]
-Category=8
-Description="<html>Whether to convert all tabs to spaces in comments. If false, tabs in<br/>comments are left alone, unless used for indenting.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=cmt_convert_tab_to_spaces=true|cmt_convert_tab_to_spaces=false
-ValueDefault=false
-
-[Cmt Indent Multi]
-Category=8
-Description="<html>Whether to apply changes to multi-line comments, including cmt_width,<br/>keyword substitution and leading chars.<br/><br/>Default: true</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=cmt_indent_multi=true|cmt_indent_multi=false
-ValueDefault=true
-
-[Cmt Align Doxygen Javadoc Tags]
-Category=8
-Description="<html>Whether to align doxygen javadoc-style tags ('@param', '@return', etc.)<br/>and corresponding fields such that groups of consecutive block tags,<br/>parameter names, and descriptions align with one another. Overrides that<br/>which is specified by the cmt_sp_after_star_cont. If cmt_width &gt; 0, it may<br/>be necessary to enable cmt_indent_multi and set cmt_reflow_mode = 2<br/>in order to achieve the desired alignment for line-wrapping.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=cmt_align_doxygen_javadoc_tags=true|cmt_align_doxygen_javadoc_tags=false
-ValueDefault=false
-
-[Cmt Sp Before Doxygen Javadoc Tags]
-Category=8
-Description="<html>The number of spaces to insert after the star and before doxygen<br/>javadoc-style tags (@param, @return, etc). Requires enabling<br/>cmt_align_doxygen_javadoc_tags. Overrides that which is specified by the<br/>cmt_sp_after_star_cont.<br/><br/>Default: 1</html>"
-Enabled=false
-EditorType=numeric
-CallName="cmt_sp_before_doxygen_javadoc_tags="
-MinVal=0
-MaxVal=16
-ValueDefault=1
-
-[Cmt Trailing Single Line C To Cpp]
-Category=8
-Description="<html>Whether to change trailing, single-line c-comments into cpp-comments.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=cmt_trailing_single_line_c_to_cpp=true|cmt_trailing_single_line_c_to_cpp=false
-ValueDefault=false
-
-[Cmt C Group]
-Category=8
-Description="<html>Whether to group c-comments that look like they are in a block.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=cmt_c_group=true|cmt_c_group=false
-ValueDefault=false
-
-[Cmt C Nl Start]
-Category=8
-Description="<html>Whether to put an empty '/*' on the first line of the combined c-comment.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=cmt_c_nl_start=true|cmt_c_nl_start=false
-ValueDefault=false
-
-[Cmt C Nl End]
-Category=8
-Description="<html>Whether to add a newline before the closing '*/' of the combined c-comment.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=cmt_c_nl_end=true|cmt_c_nl_end=false
-ValueDefault=false
-
-[Cmt Cpp To C]
-Category=8
-Description="<html>Whether to change cpp-comments into c-comments.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=cmt_cpp_to_c=true|cmt_cpp_to_c=false
-ValueDefault=false
-
-[Cmt Cpp Group]
-Category=8
-Description="<html>Whether to group cpp-comments that look like they are in a block. Only<br/>meaningful if cmt_cpp_to_c=true.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=cmt_cpp_group=true|cmt_cpp_group=false
-ValueDefault=false
-
-[Cmt Cpp Nl Start]
-Category=8
-Description="<html>Whether to put an empty '/*' on the first line of the combined cpp-comment<br/>when converting to a c-comment.<br/><br/>Requires cmt_cpp_to_c=true and cmt_cpp_group=true.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=cmt_cpp_nl_start=true|cmt_cpp_nl_start=false
-ValueDefault=false
-
-[Cmt Cpp Nl End]
-Category=8
-Description="<html>Whether to add a newline before the closing '*/' of the combined cpp-comment<br/>when converting to a c-comment.<br/><br/>Requires cmt_cpp_to_c=true and cmt_cpp_group=true.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=cmt_cpp_nl_end=true|cmt_cpp_nl_end=false
-ValueDefault=false
-
-[Cmt Star Cont]
-Category=8
-Description="<html>Whether to put a star on subsequent comment lines.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=cmt_star_cont=true|cmt_star_cont=false
-ValueDefault=false
-
-[Cmt Sp Before Star Cont]
-Category=8
-Description="<html>The number of spaces to insert at the start of subsequent comment lines.</html>"
-Enabled=false
-EditorType=numeric
-CallName="cmt_sp_before_star_cont="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Cmt Sp After Star Cont]
-Category=8
-Description="<html>The number of spaces to insert after the star on subsequent comment lines.</html>"
-Enabled=false
-EditorType=numeric
-CallName="cmt_sp_after_star_cont="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Cmt Multi Check Last]
-Category=8
-Description="<html>For multi-line comments with a '*' lead, remove leading spaces if the first<br/>and last lines of the comment are the same length.<br/><br/>Default: true</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=cmt_multi_check_last=true|cmt_multi_check_last=false
-ValueDefault=true
-
-[Cmt Multi First Len Minimum]
-Category=8
-Description="<html>For multi-line comments with a '*' lead, remove leading spaces if the first<br/>and last lines of the comment are the same length AND if the length is<br/>bigger as the first_len minimum.<br/><br/>Default: 4</html>"
-Enabled=false
-EditorType=numeric
-CallName="cmt_multi_first_len_minimum="
-MinVal=1
-MaxVal=20
-ValueDefault=4
-
-[Cmt Insert File Header]
-Category=8
-Description="<html>Path to a file that contains text to insert at the beginning of a file if<br/>the file doesn't start with a C/C++ comment. If the inserted text contains<br/>'$(filename)', that will be replaced with the current file's name.</html>"
-Enabled=false
-CallName=cmt_insert_file_header=
-EditorType=string
-ValueDefault=
-
-[Cmt Insert File Footer]
-Category=8
-Description="<html>Path to a file that contains text to insert at the end of a file if the<br/>file doesn't end with a C/C++ comment. If the inserted text contains<br/>'$(filename)', that will be replaced with the current file's name.</html>"
-Enabled=false
-CallName=cmt_insert_file_footer=
-EditorType=string
-ValueDefault=
-
-[Cmt Insert Func Header]
-Category=8
-Description="<html>Path to a file that contains text to insert before a function definition if<br/>the function isn't preceded by a C/C++ comment. If the inserted text<br/>contains '$(function)', '$(javaparam)' or '$(fclass)', these will be<br/>replaced with, respectively, the name of the function, the javadoc '@param'<br/>and '@return' stuff, or the name of the class to which the member function<br/>belongs.</html>"
-Enabled=false
-CallName=cmt_insert_func_header=
-EditorType=string
-ValueDefault=
-
-[Cmt Insert Class Header]
-Category=8
-Description="<html>Path to a file that contains text to insert before a class if the class<br/>isn't preceded by a C/C++ comment. If the inserted text contains '$(class)',<br/>that will be replaced with the class name.</html>"
-Enabled=false
-CallName=cmt_insert_class_header=
-EditorType=string
-ValueDefault=
-
-[Cmt Insert Oc Msg Header]
-Category=8
-Description="<html>Path to a file that contains text to insert before an Objective-C message<br/>specification, if the method isn't preceded by a C/C++ comment. If the<br/>inserted text contains '$(message)' or '$(javaparam)', these will be<br/>replaced with, respectively, the name of the function, or the javadoc<br/>'@param' and '@return' stuff.</html>"
-Enabled=false
-CallName=cmt_insert_oc_msg_header=
-EditorType=string
-ValueDefault=
-
-[Cmt Insert Before Preproc]
-Category=8
-Description="<html>Whether a comment should be inserted if a preprocessor is encountered when<br/>stepping backwards from a function name.<br/><br/>Applies to cmt_insert_oc_msg_header, cmt_insert_func_header and<br/>cmt_insert_class_header.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=cmt_insert_before_preproc=true|cmt_insert_before_preproc=false
-ValueDefault=false
-
-[Cmt Insert Before Inlines]
-Category=8
-Description="<html>Whether a comment should be inserted if a function is declared inline to a<br/>class definition.<br/><br/>Applies to cmt_insert_func_header.<br/><br/>Default: true</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=cmt_insert_before_inlines=true|cmt_insert_before_inlines=false
-ValueDefault=true
-
-[Cmt Insert Before Ctor Dtor]
-Category=8
-Description="<html>Whether a comment should be inserted if the function is a class constructor<br/>or destructor.<br/><br/>Applies to cmt_insert_func_header.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=cmt_insert_before_ctor_dtor=true|cmt_insert_before_ctor_dtor=false
-ValueDefault=false
-
-[Mod Full Brace Do]
-Category=9
-Description="<html>Add or remove braces on a single-line 'do' statement.</html>"
-Enabled=false
-EditorType=multiple
-Choices=mod_full_brace_do=ignore|mod_full_brace_do=add|mod_full_brace_do=remove|mod_full_brace_do=force|mod_full_brace_do=not_defined
-ChoicesReadable="Ignore Mod Full Brace Do|Add Mod Full Brace Do|Remove Mod Full Brace Do|Force Mod Full Brace Do"
-ValueDefault=ignore
-
-[Mod Full Brace For]
-Category=9
-Description="<html>Add or remove braces on a single-line 'for' statement.</html>"
-Enabled=false
-EditorType=multiple
-Choices=mod_full_brace_for=ignore|mod_full_brace_for=add|mod_full_brace_for=remove|mod_full_brace_for=force|mod_full_brace_for=not_defined
-ChoicesReadable="Ignore Mod Full Brace For|Add Mod Full Brace For|Remove Mod Full Brace For|Force Mod Full Brace For"
-ValueDefault=ignore
-
-[Mod Full Brace Function]
-Category=9
-Description="<html>(Pawn) Add or remove braces on a single-line function definition.</html>"
-Enabled=false
-EditorType=multiple
-Choices=mod_full_brace_function=ignore|mod_full_brace_function=add|mod_full_brace_function=remove|mod_full_brace_function=force|mod_full_brace_function=not_defined
-ChoicesReadable="Ignore Mod Full Brace Function|Add Mod Full Brace Function|Remove Mod Full Brace Function|Force Mod Full Brace Function"
-ValueDefault=ignore
-
-[Mod Full Brace If]
-Category=9
-Description="<html>Add or remove braces on a single-line 'if' statement. Braces will not be<br/>removed if the braced statement contains an 'else'.</html>"
-Enabled=false
-EditorType=multiple
-Choices=mod_full_brace_if=ignore|mod_full_brace_if=add|mod_full_brace_if=remove|mod_full_brace_if=force|mod_full_brace_if=not_defined
-ChoicesReadable="Ignore Mod Full Brace If|Add Mod Full Brace If|Remove Mod Full Brace If|Force Mod Full Brace If"
-ValueDefault=ignore
-
-[Mod Full Brace If Chain]
-Category=9
-Description="<html>Whether to enforce that all blocks of an 'if'/'else if'/'else' chain either<br/>have, or do not have, braces. If true, braces will be added if any block<br/>needs braces, and will only be removed if they can be removed from all<br/>blocks.<br/><br/>Overrides mod_full_brace_if.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=mod_full_brace_if_chain=true|mod_full_brace_if_chain=false
-ValueDefault=false
-
-[Mod Full Brace If Chain Only]
-Category=9
-Description="<html>Whether to add braces to all blocks of an 'if'/'else if'/'else' chain.<br/>If true, mod_full_brace_if_chain will only remove braces from an 'if' that<br/>does not have an 'else if' or 'else'.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=mod_full_brace_if_chain_only=true|mod_full_brace_if_chain_only=false
-ValueDefault=false
-
-[Mod Full Brace While]
-Category=9
-Description="<html>Add or remove braces on single-line 'while' statement.</html>"
-Enabled=false
-EditorType=multiple
-Choices=mod_full_brace_while=ignore|mod_full_brace_while=add|mod_full_brace_while=remove|mod_full_brace_while=force|mod_full_brace_while=not_defined
-ChoicesReadable="Ignore Mod Full Brace While|Add Mod Full Brace While|Remove Mod Full Brace While|Force Mod Full Brace While"
-ValueDefault=ignore
-
-[Mod Full Brace Using]
-Category=9
-Description="<html>Add or remove braces on single-line 'using ()' statement.</html>"
-Enabled=false
-EditorType=multiple
-Choices=mod_full_brace_using=ignore|mod_full_brace_using=add|mod_full_brace_using=remove|mod_full_brace_using=force|mod_full_brace_using=not_defined
-ChoicesReadable="Ignore Mod Full Brace Using|Add Mod Full Brace Using|Remove Mod Full Brace Using|Force Mod Full Brace Using"
-ValueDefault=ignore
-
-[Mod Full Brace Nl]
-Category=9
-Description="<html>Don't remove braces around statements that span N newlines</html>"
-Enabled=false
-EditorType=numeric
-CallName="mod_full_brace_nl="
-MinVal=0
-MaxVal=5000
-ValueDefault=0
-
-[Mod Full Brace Nl Block Rem Mlcond]
-Category=9
-Description="<html>Whether to prevent removal of braces from 'if'/'for'/'while'/etc. blocks<br/>which span multiple lines.<br/><br/>Affects:<br/> mod_full_brace_for<br/> mod_full_brace_if<br/> mod_full_brace_if_chain<br/> mod_full_brace_if_chain_only<br/> mod_full_brace_while<br/> mod_full_brace_using<br/><br/>Does not affect:<br/> mod_full_brace_do<br/> mod_full_brace_function</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=mod_full_brace_nl_block_rem_mlcond=true|mod_full_brace_nl_block_rem_mlcond=false
-ValueDefault=false
-
-[Mod Paren On Return]
-Category=9
-Description="<html>Add or remove unnecessary parenthesis on 'return' statement.</html>"
-Enabled=false
-EditorType=multiple
-Choices=mod_paren_on_return=ignore|mod_paren_on_return=add|mod_paren_on_return=remove|mod_paren_on_return=force|mod_paren_on_return=not_defined
-ChoicesReadable="Ignore Mod Paren On Return|Add Mod Paren On Return|Remove Mod Paren On Return|Force Mod Paren On Return"
-ValueDefault=ignore
-
-[Mod Pawn Semicolon]
-Category=9
-Description="<html>(Pawn) Whether to change optional semicolons to real semicolons.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=mod_pawn_semicolon=true|mod_pawn_semicolon=false
-ValueDefault=false
-
-[Mod Full Paren If Bool]
-Category=9
-Description="<html>Whether to fully parenthesize Boolean expressions in 'while' and 'if'<br/>statement, as in 'if (a &amp;&amp; b &gt; c)' =&gt; 'if (a &amp;&amp; (b &gt; c))'.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=mod_full_paren_if_bool=true|mod_full_paren_if_bool=false
-ValueDefault=false
-
-[Mod Remove Extra Semicolon]
-Category=9
-Description="<html>Whether to remove superfluous semicolons.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=mod_remove_extra_semicolon=true|mod_remove_extra_semicolon=false
-ValueDefault=false
-
-[Mod Remove Duplicate Include]
-Category=9
-Description="<html>Whether to remove duplicate include.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=mod_remove_duplicate_include=true|mod_remove_duplicate_include=false
-ValueDefault=false
-
-[Mod Add Long Function Closebrace Comment]
-Category=9
-Description="<html>If a function body exceeds the specified number of newlines and doesn't have<br/>a comment after the close brace, a comment will be added.</html>"
-Enabled=false
-EditorType=numeric
-CallName="mod_add_long_function_closebrace_comment="
-MinVal=0
-MaxVal=255
-ValueDefault=0
-
-[Mod Add Long Namespace Closebrace Comment]
-Category=9
-Description="<html>If a namespace body exceeds the specified number of newlines and doesn't<br/>have a comment after the close brace, a comment will be added.</html>"
-Enabled=false
-EditorType=numeric
-CallName="mod_add_long_namespace_closebrace_comment="
-MinVal=0
-MaxVal=255
-ValueDefault=0
-
-[Mod Add Long Class Closebrace Comment]
-Category=9
-Description="<html>If a class body exceeds the specified number of newlines and doesn't have a<br/>comment after the close brace, a comment will be added.</html>"
-Enabled=false
-EditorType=numeric
-CallName="mod_add_long_class_closebrace_comment="
-MinVal=0
-MaxVal=255
-ValueDefault=0
-
-[Mod Add Long Switch Closebrace Comment]
-Category=9
-Description="<html>If a switch body exceeds the specified number of newlines and doesn't have a<br/>comment after the close brace, a comment will be added.</html>"
-Enabled=false
-EditorType=numeric
-CallName="mod_add_long_switch_closebrace_comment="
-MinVal=0
-MaxVal=255
-ValueDefault=0
-
-[Mod Add Long Ifdef Endif Comment]
-Category=9
-Description="<html>If an #ifdef body exceeds the specified number of newlines and doesn't have<br/>a comment after the #endif, a comment will be added.</html>"
-Enabled=false
-EditorType=numeric
-CallName="mod_add_long_ifdef_endif_comment="
-MinVal=0
-MaxVal=255
-ValueDefault=0
-
-[Mod Add Long Ifdef Else Comment]
-Category=9
-Description="<html>If an #ifdef or #else body exceeds the specified number of newlines and<br/>doesn't have a comment after the #else, a comment will be added.</html>"
-Enabled=false
-EditorType=numeric
-CallName="mod_add_long_ifdef_else_comment="
-MinVal=0
-MaxVal=255
-ValueDefault=0
-
-[Mod Sort Case Sensitive]
-Category=9
-Description="<html>Whether to take care of the case by the mod_sort_xx options.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=mod_sort_case_sensitive=true|mod_sort_case_sensitive=false
-ValueDefault=false
-
-[Mod Sort Import]
-Category=9
-Description="<html>Whether to sort consecutive single-line 'import' statements.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=mod_sort_import=true|mod_sort_import=false
-ValueDefault=false
-
-[Mod Sort Using]
-Category=9
-Description="<html>(C#) Whether to sort consecutive single-line 'using' statements.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=mod_sort_using=true|mod_sort_using=false
-ValueDefault=false
-
-[Mod Sort Include]
-Category=9
-Description="<html>Whether to sort consecutive single-line '#include' statements (C/C++) and<br/>'#import' statements (Objective-C). Be aware that this has the potential to<br/>break your code if your includes/imports have ordering dependencies.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=mod_sort_include=true|mod_sort_include=false
-ValueDefault=false
-
-[Mod Sort Incl Import Prioritize Filename]
-Category=9
-Description="<html>Whether to prioritize '#include' and '#import' statements that contain<br/>filename without extension when sorting is enabled.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=mod_sort_incl_import_prioritize_filename=true|mod_sort_incl_import_prioritize_filename=false
-ValueDefault=false
-
-[Mod Sort Incl Import Prioritize Extensionless]
-Category=9
-Description="<html>Whether to prioritize '#include' and '#import' statements that does not<br/>contain extensions when sorting is enabled.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=mod_sort_incl_import_prioritize_extensionless=true|mod_sort_incl_import_prioritize_extensionless=false
-ValueDefault=false
-
-[Mod Sort Incl Import Prioritize Angle Over Quotes]
-Category=9
-Description="<html>Whether to prioritize '#include' and '#import' statements that contain<br/>angle over quotes when sorting is enabled.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=mod_sort_incl_import_prioritize_angle_over_quotes=true|mod_sort_incl_import_prioritize_angle_over_quotes=false
-ValueDefault=false
-
-[Mod Sort Incl Import Ignore Extension]
-Category=9
-Description="<html>Whether to ignore file extension in '#include' and '#import' statements<br/>for sorting comparison.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=mod_sort_incl_import_ignore_extension=true|mod_sort_incl_import_ignore_extension=false
-ValueDefault=false
-
-[Mod Sort Incl Import Grouping Enabled]
-Category=9
-Description="<html>Whether to group '#include' and '#import' statements when sorting is enabled.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=mod_sort_incl_import_grouping_enabled=true|mod_sort_incl_import_grouping_enabled=false
-ValueDefault=false
-
-[Mod Move Case Break]
-Category=9
-Description="<html>Whether to move a 'break' that appears after a fully braced 'case' before<br/>the close brace, as in 'case X: { ... } break;' =&gt; 'case X: { ... break; }'.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=mod_move_case_break=true|mod_move_case_break=false
-ValueDefault=false
-
-[Mod Case Brace]
-Category=9
-Description="<html>Add or remove braces around a fully braced case statement. Will only remove<br/>braces if there are no variable declarations in the block.</html>"
-Enabled=false
-EditorType=multiple
-Choices=mod_case_brace=ignore|mod_case_brace=add|mod_case_brace=remove|mod_case_brace=force|mod_case_brace=not_defined
-ChoicesReadable="Ignore Mod Case Brace|Add Mod Case Brace|Remove Mod Case Brace|Force Mod Case Brace"
-ValueDefault=ignore
-
-[Mod Remove Empty Return]
-Category=9
-Description="<html>Whether to remove a void 'return;' that appears as the last statement in a<br/>function.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=mod_remove_empty_return=true|mod_remove_empty_return=false
-ValueDefault=false
-
-[Mod Enum Last Comma]
-Category=9
-Description="<html>Add or remove the comma after the last value of an enumeration.</html>"
-Enabled=false
-EditorType=multiple
-Choices=mod_enum_last_comma=ignore|mod_enum_last_comma=add|mod_enum_last_comma=remove|mod_enum_last_comma=force|mod_enum_last_comma=not_defined
-ChoicesReadable="Ignore Mod Enum Last Comma|Add Mod Enum Last Comma|Remove Mod Enum Last Comma|Force Mod Enum Last Comma"
-ValueDefault=ignore
-
-[Mod Sort Oc Properties]
-Category=9
-Description="<html>(OC) Whether to organize the properties. If true, properties will be<br/>rearranged according to the mod_sort_oc_property_*_weight factors.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=mod_sort_oc_properties=true|mod_sort_oc_properties=false
-ValueDefault=false
-
-[Mod Sort Oc Property Class Weight]
-Category=9
-Description="<html>(OC) Weight of a class property modifier.</html>"
-Enabled=false
-EditorType=numeric
-CallName="mod_sort_oc_property_class_weight="
-MinVal=
-MaxVal=
-ValueDefault=0
-
-[Mod Sort Oc Property Thread Safe Weight]
-Category=9
-Description="<html>(OC) Weight of 'atomic' and 'nonatomic'.</html>"
-Enabled=false
-EditorType=numeric
-CallName="mod_sort_oc_property_thread_safe_weight="
-MinVal=
-MaxVal=
-ValueDefault=0
-
-[Mod Sort Oc Property Readwrite Weight]
-Category=9
-Description="<html>(OC) Weight of 'readwrite' when organizing properties.</html>"
-Enabled=false
-EditorType=numeric
-CallName="mod_sort_oc_property_readwrite_weight="
-MinVal=
-MaxVal=
-ValueDefault=0
-
-[Mod Sort Oc Property Reference Weight]
-Category=9
-Description="<html>(OC) Weight of a reference type specifier ('retain', 'copy', 'assign',<br/>'weak', 'strong') when organizing properties.</html>"
-Enabled=false
-EditorType=numeric
-CallName="mod_sort_oc_property_reference_weight="
-MinVal=
-MaxVal=
-ValueDefault=0
-
-[Mod Sort Oc Property Getter Weight]
-Category=9
-Description="<html>(OC) Weight of getter type ('getter=') when organizing properties.</html>"
-Enabled=false
-EditorType=numeric
-CallName="mod_sort_oc_property_getter_weight="
-MinVal=
-MaxVal=
-ValueDefault=0
-
-[Mod Sort Oc Property Setter Weight]
-Category=9
-Description="<html>(OC) Weight of setter type ('setter=') when organizing properties.</html>"
-Enabled=false
-EditorType=numeric
-CallName="mod_sort_oc_property_setter_weight="
-MinVal=
-MaxVal=
-ValueDefault=0
-
-[Mod Sort Oc Property Nullability Weight]
-Category=9
-Description="<html>(OC) Weight of nullability type ('nullable', 'nonnull', 'null_unspecified',<br/>'null_resettable') when organizing properties.</html>"
-Enabled=false
-EditorType=numeric
-CallName="mod_sort_oc_property_nullability_weight="
-MinVal=
-MaxVal=
-ValueDefault=0
-
-[Pp Indent]
-Category=10
-Description="<html>Add or remove indentation of preprocessor directives inside #if blocks<br/>at brace level 0 (file-level).</html>"
-Enabled=false
-EditorType=multiple
-Choices=pp_indent=ignore|pp_indent=add|pp_indent=remove|pp_indent=force|pp_indent=not_defined
-ChoicesReadable="Ignore Pp Indent|Add Pp Indent|Remove Pp Indent|Force Pp Indent"
-ValueDefault=ignore
-
-[Pp Indent At Level]
-Category=10
-Description="<html>Whether to indent #if/#else/#endif at the brace level. If false, these are<br/>indented from column 1.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=pp_indent_at_level=true|pp_indent_at_level=false
-ValueDefault=false
-
-[Pp Indent Count]
-Category=10
-Description="<html>Specifies the number of columns to indent preprocessors per level<br/>at brace level 0 (file-level). If pp_indent_at_level=false, also specifies<br/>the number of columns to indent preprocessors per level<br/>at brace level &gt; 0 (function-level).<br/><br/>Default: 1</html>"
-Enabled=false
-EditorType=numeric
-CallName="pp_indent_count="
-MinVal=0
-MaxVal=16
-ValueDefault=1
-
-[Pp Space]
-Category=10
-Description="<html>Add or remove space after # based on pp_level of #if blocks.</html>"
-Enabled=false
-EditorType=multiple
-Choices=pp_space=ignore|pp_space=add|pp_space=remove|pp_space=force|pp_space=not_defined
-ChoicesReadable="Ignore Pp Space|Add Pp Space|Remove Pp Space|Force Pp Space"
-ValueDefault=ignore
-
-[Pp Space Count]
-Category=10
-Description="<html>Sets the number of spaces per level added with pp_space.</html>"
-Enabled=false
-EditorType=numeric
-CallName="pp_space_count="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[Pp Indent Region]
-Category=10
-Description="<html>The indent for '#region' and '#endregion' in C# and '#pragma region' in<br/>C/C++. Negative values decrease indent down to the first column.</html>"
-Enabled=false
-EditorType=numeric
-CallName="pp_indent_region="
-MinVal=-16
-MaxVal=16
-ValueDefault=0
-
-[Pp Region Indent Code]
-Category=10
-Description="<html>Whether to indent the code between #region and #endregion.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=pp_region_indent_code=true|pp_region_indent_code=false
-ValueDefault=false
-
-[Pp Indent If]
-Category=10
-Description="<html>If pp_indent_at_level=true, sets the indent for #if, #else and #endif when<br/>not at file-level. Negative values decrease indent down to the first column.<br/><br/>=0: Indent preprocessors using output_tab_size<br/>&gt;0: Column at which all preprocessors will be indented</html>"
-Enabled=false
-EditorType=numeric
-CallName="pp_indent_if="
-MinVal=-16
-MaxVal=16
-ValueDefault=0
-
-[Pp If Indent Code]
-Category=10
-Description="<html>Whether to indent the code between #if, #else and #endif.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=pp_if_indent_code=true|pp_if_indent_code=false
-ValueDefault=false
-
-[Pp Indent In Guard]
-Category=10
-Description="<html>Whether to indent the body of an #if that encompasses all the code in the file.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=pp_indent_in_guard=true|pp_indent_in_guard=false
-ValueDefault=false
-
-[Pp Define At Level]
-Category=10
-Description="<html>Whether to indent '#define' at the brace level. If false, these are<br/>indented from column 1.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=pp_define_at_level=true|pp_define_at_level=false
-ValueDefault=false
-
-[Pp Include At Level]
-Category=10
-Description="<html>Whether to indent '#include' at the brace level.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=pp_include_at_level=true|pp_include_at_level=false
-ValueDefault=false
-
-[Pp Ignore Define Body]
-Category=10
-Description="<html>Whether to ignore the '#define' body while formatting.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=pp_ignore_define_body=true|pp_ignore_define_body=false
-ValueDefault=false
-
-[Pp Indent Case]
-Category=10
-Description="<html>Whether to indent case statements between #if, #else, and #endif.<br/>Only applies to the indent of the preprocesser that the case statements<br/>directly inside of.<br/><br/>Default: true</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=pp_indent_case=true|pp_indent_case=false
-ValueDefault=true
-
-[Pp Indent Func Def]
-Category=10
-Description="<html>Whether to indent whole function definitions between #if, #else, and #endif.<br/>Only applies to the indent of the preprocesser that the function definition<br/>is directly inside of.<br/><br/>Default: true</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=pp_indent_func_def=true|pp_indent_func_def=false
-ValueDefault=true
-
-[Pp Indent Extern]
-Category=10
-Description="<html>Whether to indent extern C blocks between #if, #else, and #endif.<br/>Only applies to the indent of the preprocesser that the extern block is<br/>directly inside of.<br/><br/>Default: true</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=pp_indent_extern=true|pp_indent_extern=false
-ValueDefault=true
-
-[Pp Indent Brace]
-Category=10
-Description="<html>Whether to indent braces directly inside #if, #else, and #endif.<br/>Only applies to the indent of the preprocesser that the braces are directly<br/>inside of.<br/><br/>Default: true</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=pp_indent_brace=true|pp_indent_brace=false
-ValueDefault=true
-
-[Include Category 0]
-Category=11
-Description="<html>The regex for include category with priority 0.</html>"
-Enabled=false
-CallName=include_category_0=
-EditorType=string
-ValueDefault=
-
-[Include Category 1]
-Category=11
-Description="<html>The regex for include category with priority 1.</html>"
-Enabled=false
-CallName=include_category_1=
-EditorType=string
-ValueDefault=
-
-[Include Category 2]
-Category=11
-Description="<html>The regex for include category with priority 2.</html>"
-Enabled=false
-CallName=include_category_2=
-EditorType=string
-ValueDefault=
-
-[Use Indent Func Call Param]
-Category=12
-Description="<html>true: indent_func_call_param will be used (default)<br/>false: indent_func_call_param will NOT be used<br/><br/>Default: true</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=use_indent_func_call_param=true|use_indent_func_call_param=false
-ValueDefault=true
-
-[Use Indent Continue Only Once]
-Category=12
-Description="<html>The value of the indentation for a continuation line is calculated<br/>differently if the statement is:<br/>- a declaration: your case with QString fileName ...<br/>- an assignment: your case with pSettings = new QSettings( ...<br/><br/>At the second case the indentation value might be used twice:<br/>- at the assignment<br/>- at the function call (if present)<br/><br/>To prevent the double use of the indentation value, use this option with the<br/>value 'true'.<br/><br/>true: indent_continue will be used only once<br/>false: indent_continue will be used every time (default)</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=use_indent_continue_only_once=true|use_indent_continue_only_once=false
-ValueDefault=false
-
-[Indent Cpp Lambda Only Once]
-Category=12
-Description="<html>The value might be used twice:<br/>- at the assignment<br/>- at the opening brace<br/><br/>To prevent the double use of the indentation value, use this option with the<br/>value 'true'.<br/><br/>true: indentation will be used only once<br/>false: indentation will be used every time (default)</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=indent_cpp_lambda_only_once=true|indent_cpp_lambda_only_once=false
-ValueDefault=false
-
-[Use Sp After Angle Always]
-Category=12
-Description="<html>Whether sp_after_angle takes precedence over sp_inside_fparen. This was the<br/>historic behavior, but is probably not the desired behavior, so this is off<br/>by default.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=use_sp_after_angle_always=true|use_sp_after_angle_always=false
-ValueDefault=false
-
-[Use Options Overriding For Qt Macros]
-Category=12
-Description="<html>Whether to apply special formatting for Qt SIGNAL/SLOT macros. Essentially,<br/>this tries to format these so that they match Qt's normalized form (i.e. the<br/>result of QMetaObject::normalizedSignature), which can slightly improve the<br/>performance of the QObject::connect call, rather than how they would<br/>otherwise be formatted.<br/><br/>See options_for_QT.cpp for details.<br/><br/>Default: true</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=use_options_overriding_for_qt_macros=true|use_options_overriding_for_qt_macros=false
-ValueDefault=true
-
-[Use Form Feed No More As Whitespace Character]
-Category=12
-Description="<html>If true: the form feed character is removed from the list of whitespace<br/>characters. See https://en.cppreference.com/w/cpp/string/byte/isspace.</html>"
-Enabled=false
-EditorType=boolean
-TrueFalse=use_form_feed_no_more_as_whitespace_character=true|use_form_feed_no_more_as_whitespace_character=false
-ValueDefault=false
-
-[Warn Level Tabs Found In Verbatim String Literals]
-Category=13
-Description="<html>(C#) Warning is given if doing tab-to-\t replacement and we have found one<br/>in a C# verbatim string literal.<br/><br/>Default: 2</html>"
-Enabled=false
-EditorType=numeric
-CallName="warn_level_tabs_found_in_verbatim_string_literals="
-MinVal=1
-MaxVal=3
-ValueDefault=2
-
-[Debug Max Number Of Loops]
-Category=13
-Description="<html>Limit the number of loops.<br/>Used by uncrustify.cpp to exit from infinite loop.<br/>0: no limit.</html>"
-Enabled=false
-EditorType=numeric
-CallName="debug_max_number_of_loops="
-MinVal=
-MaxVal=
-ValueDefault=0
-
-[Debug Line Number To Protocol]
-Category=13
-Description="<html>Set the number of the line to protocol;<br/>Used in the function prot_the_line if the 2. parameter is zero.<br/>0: nothing protocol.</html>"
-Enabled=false
-EditorType=numeric
-CallName="debug_line_number_to_protocol="
-MinVal=
-MaxVal=
-ValueDefault=0
-
-[Debug Timeout]
-Category=13
-Description="<html>Set the number of second(s) before terminating formatting the current file,<br/>0: no timeout.<br/>only for linux</html>"
-Enabled=false
-EditorType=numeric
-CallName="debug_timeout="
-MinVal=
-MaxVal=
-ValueDefault=0
-
-[Debug Truncate]
-Category=13
-Description="<html>Set the number of characters to be printed if the text is too long,<br/>0: do not truncate.</html>"
-Enabled=false
-EditorType=numeric
-CallName="debug_truncate="
-MinVal=0
-MaxVal=960
-ValueDefault=0
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/doxy-comment-yes.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/doxy-comment-yes.cfg
deleted file mode 100644
index 74043b68..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/doxy-comment-yes.cfg
+++ /dev/null
@@ -1,11 +0,0 @@
-sp_cmt_cpp_start = add
-sp_cmt_cpp_doxygen = true
-nl_start_of_file = add
-nl_start_of_file_min = 5
-nl_end_of_file = add
-nl_end_of_file_min = 2
-align_on_tabstop = true
-align_var_def_span = 8
-align_var_def_gap = 8
-align_right_cmt_span = 16
-align_right_cmt_at_col = 64 \ No newline at end of file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/if_chain.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/if_chain.cfg
deleted file mode 100644
index b59d69f8..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/if_chain.cfg
+++ /dev/null
@@ -1,11 +0,0 @@
-sp_before_sparen = force
-sp_inside_sparen = remove
-sp_else_brace = force
-sp_brace_else = force
-nl_if_brace = remove
-nl_brace_else = remove
-nl_else_brace = remove
-align_right_cmt_span = 3
-mod_full_brace_if_chain = true
-mod_full_brace_nl = 3
-mod_full_brace_while = remove \ No newline at end of file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_paren_close-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_paren_close-1.cfg
deleted file mode 100644
index 309be3e5..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_paren_close-1.cfg
+++ /dev/null
@@ -1,6 +0,0 @@
-sp_after_comma = force
-sp_inside_fparen = force
-indent_paren_close = 1
-indent_comma_paren = true
-indent_bool_paren = true
-pos_comma = lead \ No newline at end of file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/issue_527.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/issue_527.cfg
deleted file mode 100644
index 1ab56eb9..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/issue_527.cfg
+++ /dev/null
@@ -1,266 +0,0 @@
-## Ingres coding style config for http://uncrustify.sourceforge.net/
-##
-## Based on defaults.cfg file (from uncrustify-0.40).
-## Main diffs are spaces for tabs and tab length.
-### FIXME find out why old 0.38 version removed spaces in "# if..." 0.40 retains them.
-##
-## There is a GUI from http://universalindent.sourceforge.net/
-## which can use different formatters too, e.g.
-## gnu indent (no suport for EXEC SQL)
-## bcpp
-
-## FIXME try different settings for indent_preserve_sql - not seeing any difference!
-##indent_preserve_sql = false # false/true
-
-# How to run:
-# $ uncrustify -c ./ingres.cfg -f dirtyfile.c > cleanfile.c
-# > uncrustify -c ingres.cfg -f dirtyfile.c > cleanfile.c
-#
-
-##############################
-
-newlines = auto
-input_tab_size = 4
-output_tab_size = 4
-string_escape_char = 92
-string_escape_char2 = 0
-indent_columns = 4
-indent_with_tabs = 0
-indent_align_string = false
-indent_xml_string = 0
-indent_brace = 0
-indent_braces = false
-indent_braces_no_func = false
-indent_brace_parent = false
-indent_namespace = false
-indent_class = false
-indent_class_colon = false
-indent_func_call_param = false
-indent_member = 0
-indent_single_line_comments_before = 0
-indent_switch_case = indent_columns
-indent_case_shift = 0
-indent_case_brace = 0
-indent_col1_comment = false
-indent_label = 1
-indent_access_spec = 1
-indent_paren_nl = false
-indent_paren_close = 0
-indent_comma_paren = false
-indent_bool_paren = false
-indent_square_nl = false
-indent_preserve_sql = false
-sp_arith = ignore
-sp_assign = ignore
-sp_bool = ignore
-sp_compare = ignore
-sp_inside_paren = ignore
-sp_paren_paren = ignore
-sp_balance_nested_parens = false
-sp_paren_brace = ignore
-sp_before_ptr_star = ignore
-sp_between_ptr_star = ignore
-sp_after_ptr_star = ignore
-sp_before_byref = ignore
-sp_after_byref = ignore
-sp_before_angle = ignore
-sp_after_angle = ignore
-sp_angle_paren = ignore
-sp_angle_word = ignore
-sp_before_sparen = add
-sp_inside_sparen = remove
-sp_after_sparen = remove
-sp_sparen_brace = ignore
-sp_special_semi = ignore
-sp_before_semi = remove
-sp_before_semi_for = ignore
-sp_before_semi_for_empty = ignore
-sp_between_semi_for_empty = ignore
-sp_after_semi_for_empty = ignore
-sp_before_square = remove
-sp_before_squares = remove
-sp_inside_square = remove
-sp_after_comma = add
-sp_before_comma = remove
-sp_after_operator = ignore
-sp_after_cast = add
-sp_inside_paren_cast = remove
-sp_sizeof_paren = remove
-sp_after_tag = ignore
-sp_inside_braces_enum = ignore
-sp_inside_braces_struct = ignore
-sp_inside_braces = ignore
-sp_inside_angle = remove
-sp_type_func = remove
-sp_func_proto_paren = remove
-sp_func_def_paren = remove
-sp_inside_fparens = remove
-sp_inside_fparen = remove
-sp_square_fparen = ignore
-sp_fparen_brace = ignore
-sp_func_call_paren = ignore
-sp_func_class_paren = ignore
-sp_return_paren = ignore
-sp_attribute_paren = ignore
-sp_macro = ignore
-sp_macro_func = ignore
-sp_else_brace = ignore
-sp_brace_else = ignore
-sp_catch_brace = ignore
-sp_brace_catch = ignore
-sp_finally_brace = ignore
-sp_brace_finally = ignore
-sp_try_brace = ignore
-sp_getset_brace = ignore
-sp_before_dc = ignore
-sp_after_dc = ignore
-sp_d_array_colon = ignore
-sp_not = remove
-sp_inv = remove
-sp_addr = remove
-sp_deref = remove
-align_keep_tabs = false
-align_with_tabs = false
-align_on_tabstop = false
-align_number_right = false
-align_func_params = false
-align_var_def_span = 1
-align_var_def_star_style = 1
-align_var_def_amp_style = 0
-align_var_def_thresh = 0
-align_var_def_colon = false
-align_var_def_inline = false
-align_assign_span = 0
-align_assign_thresh = 0
-align_enum_equ_span = 0
-align_enum_equ_thresh = 0
-align_var_struct_span = 0
-align_var_struct_thresh = 0
-align_struct_init_span = 0
-align_typedef_gap = 0
-align_typedef_span = 0
-align_typedef_func = 0
-align_typedef_star_style = 0
-align_typedef_amp_style = 0
-align_right_cmt_span = 0
-align_func_proto_span = 0
-align_nl_cont = false
-align_pp_define_gap = 0
-align_pp_define_span = 0
-nl_collapse_empty_body = false
-nl_assign_leave_one_liners = false
-nl_class_leave_one_liners = false
-nl_enum_leave_one_liners = false
-nl_getset_leave_one_liners = false
-nl_func_leave_one_liners = false
-nl_if_leave_one_liners = false
-nl_start_of_file = ignore
-nl_start_of_file_min = 0
-nl_end_of_file = ignore
-nl_end_of_file_min = 0
-nl_assign_brace = ignore
-nl_assign_square = ignore
-nl_after_square_assign = ignore
-nl_func_var_def_blk = 0
-nl_fcall_brace = ignore
-nl_enum_brace = ignore
-nl_struct_brace = ignore
-nl_union_brace = ignore
-nl_if_brace = force
-nl_brace_else = force
-nl_elseif_brace = force
-nl_else_brace = force
-nl_brace_finally = ignore
-nl_finally_brace = ignore
-nl_try_brace = ignore
-nl_getset_brace = ignore
-nl_for_brace = force
-nl_catch_brace = ignore
-nl_brace_catch = ignore
-nl_while_brace = force
-nl_do_brace = force
-nl_brace_while = force
-nl_switch_brace = force
-nl_multi_line_cond = false
-nl_before_case = false
-nl_after_case = false
-nl_namespace_brace = ignore
-nl_template_class = ignore
-nl_class_brace = ignore
-nl_class_init_args = ignore
-nl_func_type_name = ignore
-nl_func_paren = force
-nl_func_decl_start = ignore
-nl_func_decl_args = ignore
-nl_func_decl_end = ignore
-nl_fdef_brace = ignore
-nl_after_return = false
-nl_after_semicolon = false
-nl_after_brace_open = false
-nl_after_vbrace_open = false
-nl_define_macro = false
-nl_squeeze_ifdef = false
-nl_before_if = ignore
-nl_after_if = ignore
-nl_before_for = ignore
-nl_after_for = ignore
-nl_before_while = ignore
-nl_after_while = ignore
-nl_before_switch = ignore
-nl_after_switch = ignore
-nl_before_do = ignore
-nl_after_do = ignore
-nl_ds_struct_enum_cmt = false
-nl_ds_struct_enum_close_brace = false
-nl_class_colon = ignore
-nl_create_if_one_liner = false
-nl_create_for_one_liner = false
-nl_create_while_one_liner = false
-pos_bool = ignore
-pos_comma = ignore
-pos_class_comma = ignore
-pos_class_colon = ignore
-code_width = 0
-ls_for_split_full = false
-ls_func_split_full = false
-nl_max = 0
-nl_after_func_proto = 0
-nl_after_func_proto_group = 0
-nl_after_func_body = 0
-nl_after_func_body_one_liner = 0
-nl_before_block_comment = 0
-nl_before_c_comment = 0
-nl_before_cpp_comment = 0
-nl_after_multiline_comment = false
-nl_before_access_spec = 0
-nl_after_access_spec = 0
-eat_blanks_after_open_brace = false
-eat_blanks_before_close_brace = false
-mod_full_brace_do = ignore
-mod_full_brace_for = ignore
-mod_full_brace_function = ignore
-mod_full_brace_if = ignore
-mod_full_brace_nl = 0
-mod_full_brace_while = ignore
-mod_paren_on_return = ignore
-mod_pawn_semicolon = false
-mod_full_paren_if_bool = false
-mod_remove_extra_semicolon = false
-cmt_width = 0
-cmt_c_group = false
-cmt_c_nl_start = false
-cmt_c_nl_end = false
-cmt_cpp_group = false
-cmt_cpp_nl_start = false
-cmt_cpp_nl_end = false
-cmt_cpp_to_c = false
-cmt_star_cont = false
-cmt_sp_before_star_cont = 0
-cmt_sp_after_star_cont = 0
-pp_indent = ignore
-pp_indent_at_level = false
-pp_space = ignore
-pp_indent_region = 0
-pp_region_indent_code = false
-pp_indent_if = 0
-pp_if_indent_code = false
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/rdan.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/rdan.cfg
deleted file mode 100644
index b000b33d..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/rdan.cfg
+++ /dev/null
@@ -1,33 +0,0 @@
-sp_arith = force
-sp_assign = force
-sp_enum_assign = force
-sp_bool = force
-sp_compare = force
-sp_inside_paren = remove
-sp_before_sparen = force
-indent_columns = 3
-indent_with_tabs = 0
-indent_func_def_force_col1 = true
-indent_col1_comment = true
-indent_bool_paren = true
-indent_first_bool_expr = true
-nl_func_var_def_blk = 2
-nl_if_brace = force
-nl_while_brace = force
-nl_after_semicolon = true
-nl_max = 3
-nl_after_func_proto_group = 2
-nl_after_func_body = 2
-pos_bool = lead_force
-pos_compare = lead
-code_width = 80
-ls_for_split_full = true
-align_assign_span = 1
-align_enum_equ_span = 1
-cmt_width = 80
-cmt_star_cont = true
-mod_full_paren_if_bool = true
-pp_indent = add
-pp_indent_at_level = true
-pp_indent_count = 3
-pp_if_indent_code = true \ No newline at end of file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/aet.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/aet.cfg
deleted file mode 100644
index a5d95a8a..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/aet.cfg
+++ /dev/null
@@ -1,508 +0,0 @@
-# Uncrustify 0.61
-newlines = auto
-input_tab_size = 4
-output_tab_size = 8
-string_escape_char = 92
-string_escape_char2 = 0
-string_replace_tab_chars = true
-tok_split_gte = false
-disable_processing_cmt = "*begin-nonstandard-formatting*"
-enable_processing_cmt = "*end-nonstandard-formatting*"
-utf8_bom = remove
-utf8_byte = false
-utf8_force = false
-indent_columns = 4
-indent_continue = 4
-indent_with_tabs = 0
-indent_cmt_with_tabs = false
-indent_align_string = false
-indent_xml_string = 0
-indent_brace = 0
-indent_braces = false
-indent_braces_no_func = false
-indent_braces_no_class = false
-indent_braces_no_struct = false
-indent_brace_parent = false
-indent_paren_open_brace = false
-indent_namespace = false
-indent_namespace_single_indent = true
-indent_namespace_level = 0
-indent_namespace_limit = 0
-indent_extern = false
-indent_class = true
-indent_class_colon = false
-indent_class_on_colon = false
-indent_constr_colon = false
-indent_ctor_init_leading = 2
-indent_ctor_init = 0
-indent_else_if = false
-indent_var_def_blk = 0
-indent_var_def_cont = false
-indent_shift = false
-indent_func_def_force_col1 = false
-indent_func_call_param = true
-indent_func_def_param = true
-indent_func_proto_param = true
-indent_func_class_param = false
-indent_func_ctor_var_param = false
-indent_template_param = false
-indent_func_param_double = false
-indent_func_const = 0
-indent_func_throw = 0
-indent_member = 0
-indent_single_line_comments_before = 0
-indent_relative_single_line_comments = true
-indent_switch_case = 0
-indent_case_shift = 0
-indent_case_brace = 0
-indent_col1_comment = false
-indent_label = -4
-indent_access_spec = -4
-indent_access_spec_body = false
-indent_paren_nl = false
-indent_paren_close = 0
-indent_comma_paren = false
-indent_bool_paren = false
-indent_first_bool_expr = false
-indent_square_nl = false
-indent_preserve_sql = false
-indent_align_assign = false
-indent_oc_block = false
-indent_oc_block_msg = 0
-indent_oc_msg_colon = 0
-indent_oc_msg_prioritize_first_colon = true
-indent_oc_block_msg_xcode_style = true
-indent_oc_block_msg_from_keyword = false
-indent_oc_block_msg_from_colon = false
-indent_oc_block_msg_from_caret = false
-indent_oc_block_msg_from_brace = false
-indent_min_vbrace_open = 0
-indent_vbrace_open_on_tabstop = false
-sp_arith = force
-sp_assign = add
-sp_cpp_lambda_assign = ignore
-sp_cpp_lambda_square_paren = ignore
-sp_assign_default = add
-sp_before_assign = force
-sp_after_assign = force
-sp_enum_paren = ignore
-sp_enum_assign = add
-sp_enum_before_assign = ignore
-sp_enum_after_assign = ignore
-sp_pp_concat = remove
-sp_pp_stringify = remove
-sp_before_pp_stringify = ignore
-sp_bool = add
-sp_compare = add
-sp_inside_paren = remove
-sp_paren_paren = remove
-sp_cparen_oparen = ignore
-sp_balance_nested_parens = false
-sp_paren_brace = force
-sp_before_ptr_star = force
-sp_before_unnamed_ptr_star = ignore
-sp_between_ptr_star = remove
-sp_after_ptr_star = remove
-sp_after_ptr_star_qualifier = remove
-sp_after_ptr_star_func = remove
-sp_ptr_star_paren = remove
-sp_before_ptr_star_func = force
-sp_before_byref = remove
-sp_before_unnamed_byref = remove
-sp_after_byref = force
-sp_after_byref_func = force
-sp_before_byref_func = remove
-sp_after_type = force
-sp_after_decltype = force
-sp_before_template_paren = ignore
-sp_template_angle = remove
-sp_before_angle = remove
-sp_inside_angle = remove
-sp_after_angle = remove
-sp_angle_paren = remove
-sp_angle_paren_empty = remove
-sp_angle_word = force
-sp_angle_shift = remove
-sp_permit_cpp11_shift = false
-sp_before_sparen = force
-sp_inside_sparen = remove
-sp_inside_sparen_close = ignore
-sp_inside_sparen_open = ignore
-sp_after_sparen = add
-sp_sparen_brace = force
-sp_invariant_paren = ignore
-sp_after_invariant_paren = ignore
-sp_special_semi = force
-sp_before_semi = remove
-sp_before_semi_for = remove
-sp_before_semi_for_empty = remove
-sp_between_semi_for_empty = remove
-sp_after_semi = force
-sp_after_semi_for = force
-sp_after_semi_for_empty = remove
-sp_before_square = remove
-sp_before_squares = remove
-sp_inside_square = remove
-sp_after_comma = add
-sp_before_comma = remove
-sp_after_mdatype_commas = remove
-sp_before_mdatype_commas = remove
-sp_between_mdatype_commas = remove
-sp_paren_comma = remove
-sp_before_ellipsis = ignore
-sp_after_class_colon = force
-sp_before_class_colon = force
-sp_after_constr_colon = ignore
-sp_before_constr_colon = ignore
-sp_before_case_colon = remove
-sp_after_operator = ignore
-sp_after_operator_sym = ignore
-sp_after_cast = force
-sp_inside_paren_cast = remove
-sp_cpp_cast_paren = remove
-sp_sizeof_paren = remove
-sp_decltype_paren = remove
-sp_after_tag = ignore
-sp_inside_braces_enum = add
-sp_inside_braces_struct = ignore
-sp_inside_braces = ignore
-sp_inside_braces_empty = remove
-sp_type_func = force
-sp_func_proto_paren = remove
-sp_func_def_paren = remove
-sp_inside_fparens = remove
-sp_inside_fparen = remove
-sp_inside_tparen = remove
-sp_after_tparen_close = remove
-sp_square_fparen = ignore
-sp_fparen_brace = force
-sp_fparen_dbrace = ignore
-sp_func_call_paren = remove
-sp_func_call_paren_empty = remove
-sp_func_call_user_paren = remove
-sp_func_class_paren = remove
-sp_return_paren = add
-sp_attribute_paren = ignore
-sp_defined_paren = remove
-sp_throw_paren = add
-sp_after_throw = ignore
-sp_catch_paren = add
-sp_version_paren = ignore
-sp_scope_paren = ignore
-sp_macro = ignore
-sp_macro_func = ignore
-sp_else_brace = force
-sp_brace_else = force
-sp_brace_typedef = add
-sp_catch_brace = force
-sp_brace_catch = force
-sp_finally_brace = force
-sp_brace_finally = force
-sp_try_brace = force
-sp_getset_brace = add
-sp_word_brace_init_lst = add
-sp_word_brace_ns = add
-sp_before_dc = remove
-sp_after_dc = remove
-sp_d_array_colon = ignore
-sp_not = remove
-sp_inv = remove
-sp_addr = remove
-sp_member = remove
-sp_deref = remove
-sp_sign = remove
-sp_incdec = remove
-sp_before_nl_cont = add
-sp_after_oc_scope = force
-sp_after_oc_colon = remove
-sp_before_oc_colon = remove
-sp_after_oc_dict_colon = force
-sp_before_oc_dict_colon = remove
-sp_after_send_oc_colon = remove
-sp_before_send_oc_colon = remove
-sp_after_oc_type = remove
-sp_after_oc_return_type = remove
-sp_after_oc_at_sel = remove
-sp_after_oc_at_sel_parens = force
-sp_inside_oc_at_sel_parens = remove
-sp_before_oc_block_caret = remove
-sp_after_oc_block_caret = remove
-sp_after_oc_msg_receiver = force
-sp_after_oc_property = force
-sp_cond_colon = add
-sp_cond_colon_before = ignore
-sp_cond_colon_after = ignore
-sp_cond_question = add
-sp_cond_question_before = ignore
-sp_cond_question_after = ignore
-sp_cond_ternary_short = ignore
-sp_case_label = force
-sp_range = ignore
-sp_after_for_colon = force
-sp_before_for_colon = force
-sp_extern_paren = ignore
-sp_cmt_cpp_start = ignore
-sp_cmt_cpp_doxygen = false
-sp_endif_cmt = ignore
-sp_after_new = force
-sp_between_new_paren = remove
-sp_before_tr_cmt = ignore
-sp_num_before_tr_cmt = 0
-sp_annotation_paren = remove
-align_keep_tabs = false
-align_with_tabs = false
-align_on_tabstop = false
-align_number_right = false
-align_keep_extra_space = false
-align_func_params = false
-align_same_func_call_params = false
-align_var_def_span = 0
-align_var_def_star_style = 0
-align_var_def_amp_style = 0
-align_var_def_thresh = 0
-align_var_def_gap = 0
-align_var_def_colon = false
-align_var_def_attribute = false
-align_var_def_inline = false
-align_assign_span = 0
-align_assign_thresh = 0
-align_enum_equ_span = 0
-align_enum_equ_thresh = 0
-align_var_struct_span = 0
-align_var_struct_thresh = 0
-align_var_struct_gap = 0
-align_struct_init_span = 0
-align_typedef_gap = 0
-align_typedef_span = 0
-align_typedef_func = 0
-align_typedef_star_style = 0
-align_typedef_amp_style = 0
-align_right_cmt_span = 0
-align_right_cmt_mix = false
-align_right_cmt_gap = 0
-align_right_cmt_at_col = 0
-align_func_proto_span = 0
-align_func_proto_gap = 0
-align_on_operator = false
-align_mix_var_proto = false
-align_single_line_func = false
-align_single_line_brace = false
-align_single_line_brace_gap = 0
-align_oc_msg_spec_span = 0
-align_nl_cont = false
-align_pp_define_together = false
-align_pp_define_gap = 0
-align_pp_define_span = 0
-align_left_shift = false
-align_oc_msg_colon_span = 20
-align_oc_msg_colon_first = true
-align_oc_decl_colon = true
-nl_collapse_empty_body = false
-nl_assign_leave_one_liners = true
-nl_class_leave_one_liners = true
-nl_enum_leave_one_liners = true
-nl_getset_leave_one_liners = true
-nl_func_leave_one_liners = true
-nl_cpp_lambda_leave_one_liners = true
-nl_if_leave_one_liners = true
-nl_oc_msg_leave_one_liner = true
-nl_start_of_file = remove
-nl_start_of_file_min = 0
-nl_end_of_file = force
-nl_end_of_file_min = 1
-nl_assign_brace = remove
-nl_assign_square = ignore
-nl_after_square_assign = ignore
-nl_func_var_def_blk = 0
-nl_typedef_blk_start = 0
-nl_typedef_blk_end = 0
-nl_typedef_blk_in = 0
-nl_var_def_blk_start = 0
-nl_var_def_blk_end = 0
-nl_var_def_blk_in = 0
-nl_fcall_brace = ignore
-nl_enum_brace = remove
-nl_struct_brace = remove
-nl_union_brace = remove
-nl_if_brace = remove
-nl_brace_else = remove
-nl_elseif_brace = ignore
-nl_else_brace = remove
-nl_else_if = remove
-nl_brace_finally = remove
-nl_finally_brace = remove
-nl_try_brace = remove
-nl_getset_brace = remove
-nl_for_brace = remove
-nl_catch_brace = remove
-nl_brace_catch = remove
-nl_brace_square = ignore
-nl_brace_fparen = ignore
-nl_while_brace = remove
-nl_scope_brace = ignore
-nl_unittest_brace = ignore
-nl_version_brace = ignore
-nl_using_brace = remove
-nl_brace_brace = ignore
-nl_do_brace = remove
-nl_brace_while = remove
-nl_switch_brace = remove
-nl_multi_line_cond = false
-nl_multi_line_define = false
-nl_before_case = false
-nl_before_throw = ignore
-nl_after_case = false
-nl_case_colon_brace = remove
-nl_namespace_brace = remove
-nl_template_class = ignore
-nl_class_brace = remove
-nl_class_init_args = ignore
-nl_constr_init_args = ignore
-nl_func_type_name = ignore
-nl_func_type_name_class = ignore
-nl_func_scope_name = ignore
-nl_func_proto_type_name = ignore
-nl_func_paren = ignore
-nl_func_def_paren = ignore
-nl_func_decl_start = ignore
-nl_func_def_start = ignore
-nl_func_decl_start_single = ignore
-nl_func_def_start_single = ignore
-nl_func_decl_args = ignore
-nl_func_def_args = ignore
-nl_func_decl_end = ignore
-nl_func_def_end = ignore
-nl_func_decl_end_single = ignore
-nl_func_def_end_single = ignore
-nl_func_decl_empty = ignore
-nl_func_def_empty = ignore
-nl_oc_msg_args = false
-nl_fdef_brace = remove
-nl_cpp_ldef_brace = ignore
-nl_return_expr = ignore
-nl_after_semicolon = false
-nl_paren_dbrace_open = ignore
-nl_after_brace_open = false
-nl_after_brace_open_cmt = false
-nl_after_vbrace_open = false
-nl_after_vbrace_open_empty = false
-nl_after_brace_close = false
-nl_after_vbrace_close = false
-nl_brace_struct_var = ignore
-nl_define_macro = false
-nl_squeeze_ifdef = false
-nl_before_if = ignore
-nl_after_if = ignore
-nl_before_for = ignore
-nl_after_for = ignore
-nl_before_while = ignore
-nl_after_while = ignore
-nl_before_switch = ignore
-nl_after_switch = ignore
-nl_before_do = ignore
-nl_after_do = ignore
-nl_ds_struct_enum_cmt = false
-nl_ds_struct_enum_close_brace = false
-nl_class_colon = ignore
-nl_constr_colon = ignore
-nl_create_if_one_liner = false
-nl_create_for_one_liner = false
-nl_create_while_one_liner = false
-pos_arith = ignore
-pos_assign = ignore
-pos_bool = ignore
-pos_compare = ignore
-pos_conditional = ignore
-pos_comma = ignore
-pos_class_comma = ignore
-pos_constr_comma = ignore
-pos_class_colon = ignore
-pos_constr_colon = ignore
-code_width = 0
-ls_for_split_full = false
-ls_func_split_full = false
-ls_code_width = false
-nl_max = 3
-nl_after_func_proto = 0
-nl_after_func_proto_group = 0
-nl_after_func_body = 2
-nl_after_func_body_class = 0
-nl_after_func_body_one_liner = 0
-nl_before_block_comment = 0
-nl_before_c_comment = 0
-nl_before_cpp_comment = 0
-nl_after_multiline_comment = false
-nl_after_label_colon = false
-nl_after_struct = 0
-nl_after_class = 0
-nl_before_access_spec = 0
-nl_after_access_spec = 0
-nl_comment_func_def = 0
-nl_after_try_catch_finally = 0
-nl_around_cs_property = 0
-nl_between_get_set = 0
-nl_property_brace = force
-eat_blanks_after_open_brace = true
-eat_blanks_before_close_brace = true
-nl_remove_extra_newlines = 0
-nl_before_return = false
-nl_after_return = false
-nl_after_annotation = ignore
-nl_between_annotation = ignore
-mod_full_brace_do = ignore
-mod_full_brace_for = ignore
-mod_full_brace_function = ignore
-mod_full_brace_if = ignore
-mod_full_brace_if_chain = false
-mod_full_brace_nl = 0
-mod_full_brace_while = ignore
-mod_full_brace_using = ignore
-mod_paren_on_return = ignore
-mod_pawn_semicolon = false
-mod_full_paren_if_bool = false
-mod_remove_extra_semicolon = true
-mod_add_long_function_closebrace_comment = 0
-mod_add_long_namespace_closebrace_comment = 0
-mod_add_long_switch_closebrace_comment = 0
-mod_add_long_ifdef_endif_comment = 0
-mod_add_long_ifdef_else_comment = 0
-mod_sort_import = false
-mod_sort_using = false
-mod_sort_include = false
-mod_move_case_break = false
-mod_case_brace = ignore
-mod_remove_empty_return = true
-cmt_width = 0
-cmt_reflow_mode = 0
-cmt_convert_tab_to_spaces = false
-cmt_indent_multi = false
-cmt_c_group = false
-cmt_c_nl_start = false
-cmt_c_nl_end = false
-cmt_cpp_group = false
-cmt_cpp_nl_start = false
-cmt_cpp_nl_end = false
-cmt_cpp_to_c = false
-cmt_star_cont = false
-cmt_sp_before_star_cont = 0
-cmt_sp_after_star_cont = 0
-cmt_multi_check_last = false
-cmt_insert_file_header = ""
-cmt_insert_file_footer = ""
-cmt_insert_func_header = ""
-cmt_insert_class_header = ""
-cmt_insert_oc_msg_header = ""
-cmt_insert_before_preproc = false
-pp_indent = ignore
-pp_indent_at_level = false
-pp_indent_count = 1
-pp_space = ignore
-pp_space_count = 0
-pp_indent_region = 0
-pp_region_indent_code = false
-pp_indent_if = 0
-pp_if_indent_code = false
-pp_define_at_level = false
-
-# Add or remove newline between method declaration and '{'
-nl_oc_mdef_brace = remove
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/attribute_specifier_seqs.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/attribute_specifier_seqs.cfg
deleted file mode 100644
index 8eec117f..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/attribute_specifier_seqs.cfg
+++ /dev/null
@@ -1,2 +0,0 @@
-sp_before_vardef_square = ignore
-sp_type_brace_init_lst = remove
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/d.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/d.cfg
deleted file mode 100644
index d6261dd9..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/d.cfg
+++ /dev/null
@@ -1,49 +0,0 @@
-sp_before_semi_for = remove
-sp_arith = force
-sp_assign = force
-sp_compare = force
-sp_inside_paren = remove
-sp_paren_paren = remove
-sp_before_ptr_star = force
-sp_between_ptr_star = remove
-sp_after_ptr_star = remove
-sp_after_ptr_star_func = remove
-sp_before_sparen = force
-sp_inside_sparen = remove
-sp_inside_for = remove
-sp_before_square = remove
-sp_before_squares = remove
-sp_after_comma = force
-sp_after_cast = remove
-sp_func_proto_paren = remove
-sp_func_def_paren = remove
-sp_inside_fparen = remove
-sp_func_call_paren = remove
-sp_range = force
-sp_while_paren_open = force
-indent_columns = 4
-indent_with_tabs = 0
-indent_class = true
-indent_case_brace = 4
-indent_label = 2
-nl_func_var_def_blk = 1
-nl_enum_brace = add
-nl_if_brace = add
-nl_else_brace = add
-nl_else_if = remove
-nl_for_brace = add
-nl_before_case = true
-nl_fdef_brace = add
-nl_after_brace_open = true
-eat_blanks_after_open_brace = true
-eat_blanks_before_close_brace = true
-nl_after_return = true
-align_var_def_span = 2
-align_var_def_star_style = 1
-align_assign_span = 1
-align_enum_equ_span = 4
-align_var_class_span = 2
-align_typedef_gap = 3
-align_typedef_span = 5
-align_typedef_star_style = 1
-align_right_cmt_span = 3
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/indent_columns-3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/indent_columns-3.cfg
deleted file mode 100644
index 9c9e205f..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/indent_columns-3.cfg
+++ /dev/null
@@ -1,3 +0,0 @@
-indent_columns = 3
-sp_cond_colon = add
-sp_cond_question = add
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/star_pos-0.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/star_pos-0.cfg
deleted file mode 100644
index 6798b186..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/star_pos-0.cfg
+++ /dev/null
@@ -1,11 +0,0 @@
-# Places the byref as follows: "int &foo"
-sp_before_ptr_star = remove
-sp_after_ptr_star = force
-sp_before_byref = remove
-indent_columns = 3
-align_var_def_span = 2
-align_var_struct_span = 2
-align_typedef_gap = 3
-align_typedef_span = 5
-align_typedef_func = 1
-align_func_proto_span = 2 \ No newline at end of file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/633_decl-in-func-typedef.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/633_decl-in-func-typedef.cfg
deleted file mode 100644
index 5ca47821..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/633_decl-in-func-typedef.cfg
+++ /dev/null
@@ -1,4 +0,0 @@
-sp_arith = add
-sp_before_ptr_star = force
-sp_after_ptr_star = remove
-sp_ptr_star_paren = remove
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2149.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2149.cfg
deleted file mode 100644
index 23a8583a..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2149.cfg
+++ /dev/null
@@ -1,3 +0,0 @@
-indent_namespace = true
-indent_continue = 8
-indent_shift = true
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2229.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2229.cfg
deleted file mode 100644
index 8527cbb2..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2229.cfg
+++ /dev/null
@@ -1,10 +0,0 @@
-# Add or remove braces on a single-line 'if' statement. Braces will not be
-# removed if the braced statement contains an 'else'.
-mod_full_brace_if = remove
-
-# Whether to enforce that all blocks of an 'if'/'else if'/'else' chain either
-# have, or do not have, braces. If true, braces will be added if any block
-# needs braces, and will only be removed if they can be removed from all
-# blocks.
-# Overrides mod_full_brace_if.
-mod_full_brace_if_chain = true
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2250.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2250.cfg
deleted file mode 100644
index 94a8d306..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2250.cfg
+++ /dev/null
@@ -1,5 +0,0 @@
-indent_columns = 3
-indent_func_proto_param = true
-indent_func_param_double = true
-nl_cpp_lambda_leave_one_liners = true
-pos_bool = trail
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2594.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2594.cfg
deleted file mode 100644
index 6d847dfc..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2594.cfg
+++ /dev/null
@@ -1,11 +0,0 @@
-output_tab_size = 4
-sp_before_ellipsis = remove
-sp_inside_braces = remove
-sp_brace_else = force
-indent_columns = 4
-nl_func_leave_one_liners = true
-nl_if_brace = add
-nl_brace_else = remove
-nl_create_if_one_liner = true
-mod_full_brace_if_chain = true
-mod_full_brace_nl = 2
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2668.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2668.cfg
deleted file mode 100644
index 7649b34c..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2668.cfg
+++ /dev/null
@@ -1 +0,0 @@
-nl_var_def_blk_end = 2
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3097.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3097.cfg
deleted file mode 100644
index bce2060e..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3097.cfg
+++ /dev/null
@@ -1 +0,0 @@
-nl_var_def_blk_start = 2
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-32657.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-32657.cfg
deleted file mode 100644
index cfc6c300..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-32657.cfg
+++ /dev/null
@@ -1,316 +0,0 @@
-input_tab_size=4
-string_replace_tab_chars=true
-tok_split_gte=false
-disable_processing_cmt=*begin-nonstandard-formatting*
-enable_processing_cmt=*end-nonstandard-formatting*
-utf8_bom=remove
-utf8_byte=false
-utf8_force=false
-indent_columns=4
-indent_with_tabs=0
-indent_cmt_with_tabs=false
-indent_align_string=false
-indent_braces=false
-indent_braces_no_func=false
-indent_braces_no_class=false
-indent_braces_no_struct=false
-indent_brace_parent=false
-indent_cs_delegate_brace=true
-indent_namespace=true
-indent_extern=false
-indent_class=true
-indent_class_colon=false
-indent_else_if=false
-indent_var_def_cont=false
-indent_func_call_param=true
-indent_func_def_param=true
-indent_func_proto_param=true
-indent_func_class_param=false
-indent_func_ctor_var_param=false
-indent_template_param=false
-indent_func_param_double=false
-indent_member_single=false
-indent_relative_single_line_comments=false
-indent_switch_case=4
-indent_case_shift=0
-indent_case_brace=0
-indent_col1_comment=false
-indent_label=-4
-indent_access_spec=-4
-indent_paren_nl=false
-indent_comma_paren=false
-indent_bool_paren=false
-indent_first_bool_expr=false
-indent_square_nl=false
-indent_preserve_sql=false
-indent_align_paren=false
-indent_oc_block_msg_xcode_style=true
-indent_off_after_return_new=true
-indent_single_after_return=true
-sp_arith=add
-sp_assign=add
-sp_assign_default=add
-sp_enum_assign=add
-sp_pp_concat=remove
-sp_pp_stringify=remove
-sp_bool=add
-sp_compare=add
-sp_inside_paren=remove
-sp_paren_paren=remove
-sp_balance_nested_parens=false
-sp_paren_brace=force
-sp_after_type=ignore
-sp_template_angle=remove
-sp_before_angle=remove
-sp_inside_angle=remove
-sp_angle_paren=remove
-sp_angle_paren_empty=remove
-sp_angle_word=add
-sp_angle_shift=remove
-sp_before_sparen=force
-sp_inside_sparen=remove
-sp_after_sparen=add
-sp_sparen_brace=force
-sp_special_semi=force
-sp_before_semi=remove
-sp_before_semi_for=remove
-sp_before_semi_for_empty=remove
-sp_between_semi_for_empty=remove
-sp_after_semi=add
-sp_after_semi_for=force
-sp_after_semi_for_empty=remove
-sp_before_square=remove
-sp_before_squares=remove
-sp_inside_square=remove
-sp_after_comma=add
-sp_before_comma=ignore
-sp_after_mdatype_commas=remove
-sp_before_mdatype_commas=remove
-sp_between_mdatype_commas=remove
-sp_paren_comma=remove
-sp_after_class_colon=force
-sp_before_class_colon=force
-sp_before_case_colon=remove
-sp_after_operator=remove
-sp_after_operator_sym=remove
-sp_after_operator_sym_empty=remove
-sp_after_cast=remove
-sp_inside_paren_cast=remove
-sp_cpp_cast_paren=remove
-sp_sizeof_paren=remove
-sp_inside_braces_enum=add
-sp_inside_braces_empty=remove
-sp_type_func=ignore
-sp_func_proto_paren=remove
-sp_func_def_paren=remove
-sp_inside_fparens=remove
-sp_inside_fparen=remove
-sp_fparen_brace=add
-sp_func_call_paren=remove
-sp_func_call_paren_empty=remove
-sp_func_call_user_paren=remove
-sp_func_class_paren=remove
-sp_return_paren=add
-sp_defined_paren=remove
-sp_throw_paren=add
-sp_catch_paren=add
-sp_brace_typedef=add
-sp_getset_brace=add
-sp_after_dc=remove
-sp_not=remove
-sp_inv=remove
-sp_addr=remove
-sp_member=remove
-sp_deref=remove
-sp_sign=remove
-sp_incdec=remove
-sp_before_nl_cont=add
-sp_after_oc_scope=force
-sp_after_oc_colon=remove
-sp_before_oc_colon=remove
-sp_after_oc_dict_colon=force
-sp_before_oc_dict_colon=remove
-sp_after_send_oc_colon=force
-sp_before_send_oc_colon=remove
-sp_after_oc_type=remove
-sp_after_oc_return_type=remove
-sp_after_oc_at_sel=remove
-sp_inside_oc_at_sel_parens=remove
-sp_cond_colon=add
-sp_cond_question=add
-sp_case_label=ignore
-sp_after_new=force
-sp_between_new_paren=remove
-sp_skip_vbrace_tokens=true
-align_keep_tabs=false
-align_with_tabs=false
-align_on_tabstop=false
-align_number_right=false
-align_func_params=false
-align_same_func_call_params=false
-align_var_def_colon=false
-align_var_def_attribute=false
-align_var_def_inline=false
-align_right_cmt_mix=false
-align_on_operator=false
-align_mix_var_proto=false
-align_single_line_func=false
-align_single_line_brace=false
-align_nl_cont=false
-align_left_shift=false
-nl_collapse_empty_body=false
-nl_assign_leave_one_liners=true
-nl_class_leave_one_liners=true
-nl_enum_leave_one_liners=true
-nl_getset_leave_one_liners=true
-nl_func_leave_one_liners=true
-nl_cpp_lambda_leave_one_liners=true
-nl_if_leave_one_liners=false
-nl_oc_msg_leave_one_liner=true
-nl_start_of_file=remove
-nl_end_of_file=force
-nl_end_of_file_min=1
-nl_assign_brace=force
-nl_enum_brace=force
-nl_struct_brace=force
-nl_union_brace=force
-nl_if_brace=force
-nl_brace_else=force
-nl_else_brace=force
-nl_else_if=remove
-nl_brace_finally=force
-nl_finally_brace=force
-nl_try_brace=force
-nl_getset_brace=force
-nl_for_brace=force
-nl_catch_brace=force
-nl_brace_catch=force
-nl_while_brace=force
-nl_using_brace=force
-nl_brace_brace=ignore
-nl_do_brace=force
-nl_brace_while=force
-nl_switch_brace=force
-nl_multi_line_cond=false
-nl_before_case=false
-nl_after_case=false
-nl_case_colon_brace=force
-nl_namespace_brace=force
-nl_template_class=ignore
-nl_class_brace=force
-nl_fdef_brace=force
-nl_after_semicolon=false
-nl_after_brace_open=false
-nl_after_brace_open_cmt=false
-nl_after_vbrace_open=false
-nl_after_vbrace_open_empty=false
-nl_after_brace_close=false
-nl_after_vbrace_close=false
-nl_squeeze_ifdef=false
-nl_ds_struct_enum_cmt=false
-nl_ds_struct_enum_close_brace=false
-nl_namespace_two_to_one_liner=false
-nl_create_if_one_liner=false
-nl_create_for_one_liner=false
-nl_create_while_one_liner=false
-nl_create_func_def_one_liner=false
-ls_for_split_full=false
-ls_func_split_full=false
-nl_max=3
-nl_after_func_body=2
-nl_after_multiline_comment=false
-nl_property_brace=force
-eat_blanks_after_open_brace=true
-eat_blanks_before_close_brace=true
-nl_after_return=false
-mod_full_brace_if_chain=false
-mod_paren_on_return=ignore
-mod_pawn_semicolon=false
-mod_full_paren_if_bool=false
-mod_remove_extra_semicolon=true
-mod_move_case_break=false
-mod_remove_empty_return=true
-cmt_convert_tab_to_spaces=True
-cmt_indent_multi=false
-cmt_c_group=false
-cmt_c_nl_start=false
-cmt_c_nl_end=false
-cmt_cpp_group=false
-cmt_cpp_nl_start=false
-cmt_cpp_nl_end=false
-cmt_cpp_to_c=false
-cmt_star_cont=false
-cmt_multi_check_last=false
-cmt_insert_before_preproc=false
-pp_space=ignore
-use_options_overriding_for_qt_macros=false
-warn_level_tabs_found_in_verbatim_string_literals=1
-# blocked by https://sourceforge.net/p/uncrustify/bugs/619/
-# can be turned back on at any time
-mod_add_long_ifdef_else_comment=0
-mod_add_long_ifdef_endif_comment=0
-
-# Setting this 'false' will cause an extra tab to be added to function call args from an assignment:
-#
-# x = o.Func2(a, b,
-# y);
-# o.Func2(a, b,
-# y);
-#
-# ...but setting it 'true' is often worse:
-#
-# ExtraReallyLongType reallyLongVariableName = someTest
-# ? someTrueExpr
-# : someFalseExpr
-#
-# ...except sometimes we really do want that. What we need is an indent_align_assign_threshold, or,
-# better but maybe more complicated, indent_align_assign=ignore to leave alone what the engineer did.
-# (currently unreported)
-indent_align_assign=false
-
-# this is causing a few problems, but usually with block comments and autodoc markup. perhaps only add a space
-# if first letter is not a symbol and this is a standalone comment: not preceded or followed by another c++
-# comment line at the same level of indentation.
-# REVISIT: work was done to have it eliminate space for doxygen markup in c6aca7b, maybe can improve on it for us
-# (test using Runtime/Allocator/BucketAllocator.h)
-# IMPORTANT: see task at https://trello.com/c/wUgiuvbX before going further
-#sp_cmt_cpp_start=add
-sp_cmt_cpp_start=ignore
-
-# https://sourceforge.net/p/uncrustify/bugs/619/
-#sp_endif_cmt=force
-sp_endif_cmt=ignore
-
-# want to turn this on, but can't do it without also getting alignment right. try running it on this file as an example:
-# Tools\BugReporterV2\qt_face\lib\src\MainWindow.cpp
-#nl_cpp_ldef_brace=force
-
-# workaround for some nasty macroing we're doing
-set COMMENT PLATFORM_EXCEPTION_SAFEGUARD_PROLOG
-
-# without this, uncrustify will parse and process the contents of #defines, which is super unstable. very easy to get into edge cases it does not support,
-# so just have it treat #defines as black boxes. this will keep all of the contents of the #define as unprocessed.
-pp_ignore_define_body=true
-
-# macros in #includes aren't known to Uncrustify, so have to inform it here for macros that will confuse it
-set MACRO_FUNC ATTRIBUTE_ALIGN
-
-# we have some truly insane deep namespace nesting in il2cpp. :/
-indent_namespace_single_indent=true
-
-# needed for fmod apparently (via HEVAGTool.h - the *'s near F_STDCALL will be interpreted as ARITH without this)
-set COMMENT F_STDCALL
-
-# https://github.com/uncrustify/uncrustify/pull/602
-# https://sourceforge.net/p/uncrustify/bugs/633/
-set COMMENT __cdecl
-set COMMENT __clrcall
-set COMMENT __fastcall
-set COMMENT __stdcall
-set COMMENT __thiscall
-set COMMENT __vectorcall
-set COMMENT WINAPI
-
-# We need to make FAKE_FUNCTION a PROTO_WRAP macro function to help properly tokenize it's parameters.
-# Previously parameters with CT_AMP and CT_STAR were tokenized as CT_ARITH. Support for optional parenthesis added in github PR #629.
-set PROTO_WRAP FAKE_FUNCTION
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_2322.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_2322.cfg
deleted file mode 100644
index 9743a828..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_2322.cfg
+++ /dev/null
@@ -1,11 +0,0 @@
-indent_columns = 4
-output_tab_size = 4
-indent_with_tabs = 0
-sp_while_paren_open = force
-mod_full_brace_if_chain = true
-
-mod_full_brace_for = remove
-mod_full_brace_if = remove
-mod_full_brace_do = remove
-mod_full_brace_while = remove
-mod_full_brace_using = remove
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/func_param.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/func_param.cfg
deleted file mode 100644
index 81ce43a4..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/func_param.cfg
+++ /dev/null
@@ -1,6 +0,0 @@
-sp_paren_paren = remove
-sp_after_ptr_star = remove
-sp_ptr_star_func_var = remove
-sp_func_proto_paren = remove
-sp_inside_fparen = remove
-sp_after_tparen_close = remove
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/functype_param-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/functype_param-f.cfg
deleted file mode 100644
index 746b15f5..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/functype_param-f.cfg
+++ /dev/null
@@ -1,2 +0,0 @@
-sp_after_byref = force
-sp_after_ptr_star = force
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/functype_param-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/functype_param-r.cfg
deleted file mode 100644
index 1576135f..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/functype_param-r.cfg
+++ /dev/null
@@ -1,2 +0,0 @@
-sp_after_byref = remove
-sp_after_ptr_star = remove
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/i1516.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/i1516.cfg
deleted file mode 100644
index 8c03f30e..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/i1516.cfg
+++ /dev/null
@@ -1,4 +0,0 @@
-nl_func_var_def_blk = 2
-nl_var_def_blk_start = 2
-nl_var_def_blk_end = 2
-nl_var_def_blk_in = 1 \ No newline at end of file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/if_chain_braces_2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/if_chain_braces_2.cfg
deleted file mode 100644
index aa9251c7..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/if_chain_braces_2.cfg
+++ /dev/null
@@ -1,2 +0,0 @@
-mod_full_brace_if_chain = true
-mod_full_brace_if_chain_only = true \ No newline at end of file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_comma_brace.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_comma_brace.cfg
deleted file mode 100644
index 635c6cdf..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_comma_brace.cfg
+++ /dev/null
@@ -1,4 +0,0 @@
-code_width = 60
-indent_columns = 4
-indent_comma_brace = true
-indent_with_tabs = 0 \ No newline at end of file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_shift.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_shift.cfg
deleted file mode 100644
index 8a848c34..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_shift.cfg
+++ /dev/null
@@ -1,4 +0,0 @@
-indent_columns = 4
-indent_continue = 4
-indent_shift = true
-align_left_shift = false \ No newline at end of file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_2124-2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_2124-2.cfg
deleted file mode 100644
index 34866fe3..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_2124-2.cfg
+++ /dev/null
@@ -1,2 +0,0 @@
-mod_full_brace_if_chain = true
-mod_full_brace_nl = 1 \ No newline at end of file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/mod_full_brace_if_chain-t.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/mod_full_brace_if_chain-t.cfg
deleted file mode 100644
index 32a552ec..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/mod_full_brace_if_chain-t.cfg
+++ /dev/null
@@ -1 +0,0 @@
-mod_full_brace_if_chain = true \ No newline at end of file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U01-Cs.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U01-Cs.cfg
deleted file mode 100644
index 4edc0426..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U01-Cs.cfg
+++ /dev/null
@@ -1,282 +0,0 @@
-input_tab_size=4
-string_replace_tab_chars=true
-tok_split_gte=false
-disable_processing_cmt=*begin-nonstandard-formatting*
-enable_processing_cmt=*end-nonstandard-formatting*
-utf8_bom=remove
-utf8_byte=false
-utf8_force=false
-indent_columns=4
-indent_with_tabs=0
-indent_cmt_with_tabs=false
-indent_align_string=false
-indent_braces=false
-indent_braces_no_func=false
-indent_braces_no_class=false
-indent_braces_no_struct=false
-indent_brace_parent=false
-indent_cs_delegate_brace=true
-indent_namespace=true
-indent_extern=false
-indent_class=true
-indent_class_colon=false
-indent_else_if=false
-indent_var_def_cont=false
-indent_func_call_param=true
-indent_func_def_param=true
-indent_func_proto_param=true
-indent_func_class_param=false
-indent_func_ctor_var_param=false
-indent_template_param=false
-indent_func_param_double=false
-indent_relative_single_line_comments=false
-indent_switch_case=4
-indent_case_shift=0
-indent_case_brace=0
-indent_col1_comment=false
-indent_label=-4
-indent_access_spec=-4
-indent_paren_nl=false
-indent_comma_paren=false
-indent_bool_paren=false
-indent_first_bool_expr=false
-indent_square_nl=false
-indent_preserve_sql=false
-indent_oc_block_msg_xcode_style=true
-indent_off_after_return_new=true
-indent_single_after_return=true
-sp_arith=add
-sp_assign=add
-sp_assign_default=add
-sp_enum_assign=add
-sp_pp_concat=remove
-sp_pp_stringify=remove
-sp_bool=add
-sp_compare=add
-sp_inside_paren=remove
-sp_paren_paren=remove
-sp_balance_nested_parens=false
-sp_paren_brace=force
-sp_after_type=ignore
-sp_template_angle=remove
-sp_before_angle=remove
-sp_inside_angle=remove
-sp_angle_paren=remove
-sp_angle_paren_empty=remove
-sp_angle_word=add
-sp_angle_shift=remove
-sp_before_sparen=force
-sp_inside_sparen=remove
-sp_after_sparen=add
-sp_sparen_brace=force
-sp_special_semi=force
-sp_before_semi=remove
-sp_before_semi_for=remove
-sp_before_semi_for_empty=remove
-sp_between_semi_for_empty=remove
-sp_after_semi=add
-sp_after_semi_for=force
-sp_after_semi_for_empty=remove
-sp_before_square=remove
-sp_before_squares=remove
-sp_inside_square=remove
-sp_after_comma=add
-sp_before_comma=ignore
-sp_after_mdatype_commas=remove
-sp_before_mdatype_commas=remove
-sp_between_mdatype_commas=remove
-sp_paren_comma=remove
-sp_after_class_colon=force
-sp_before_class_colon=force
-sp_before_case_colon=remove
-sp_after_operator=remove
-sp_after_operator_sym=remove
-sp_after_operator_sym_empty=remove
-sp_after_cast=remove
-sp_inside_paren_cast=remove
-sp_cpp_cast_paren=remove
-sp_sizeof_paren=remove
-sp_inside_braces_enum=add
-sp_inside_braces_empty=remove
-sp_type_func=ignore
-sp_func_proto_paren=remove
-sp_func_def_paren=remove
-sp_inside_fparens=remove
-sp_inside_fparen=remove
-sp_fparen_brace=add
-sp_func_call_paren=remove
-sp_func_call_paren_empty=remove
-sp_func_call_user_paren=remove
-sp_func_class_paren=remove
-sp_return_paren=add
-sp_defined_paren=remove
-sp_throw_paren=add
-sp_catch_paren=add
-sp_brace_typedef=add
-sp_getset_brace=add
-sp_after_dc=remove
-sp_not=remove
-sp_inv=remove
-sp_addr=remove
-sp_member=remove
-sp_deref=remove
-sp_sign=remove
-sp_incdec=remove
-sp_before_nl_cont=add
-sp_after_oc_scope=force
-sp_after_oc_colon=remove
-sp_before_oc_colon=remove
-sp_after_oc_dict_colon=force
-sp_before_oc_dict_colon=remove
-sp_after_send_oc_colon=force
-sp_before_send_oc_colon=remove
-sp_after_oc_type=remove
-sp_after_oc_return_type=remove
-sp_after_oc_at_sel=remove
-sp_inside_oc_at_sel_parens=remove
-sp_cond_colon=add
-sp_cond_question=add
-sp_case_label=ignore
-sp_after_new=force
-sp_between_new_paren=remove
-sp_skip_vbrace_tokens=true
-align_keep_tabs=false
-align_with_tabs=false
-align_on_tabstop=false
-align_number_right=false
-align_func_params=false
-align_same_func_call_params=false
-align_var_def_colon=false
-align_var_def_attribute=false
-align_var_def_inline=false
-align_right_cmt_mix=false
-align_on_operator=false
-align_mix_var_proto=false
-align_single_line_func=false
-align_single_line_brace=false
-align_nl_cont=false
-align_left_shift=false
-nl_collapse_empty_body=false
-nl_assign_leave_one_liners=true
-nl_class_leave_one_liners=true
-nl_enum_leave_one_liners=true
-nl_getset_leave_one_liners=true
-nl_func_leave_one_liners=true
-nl_cpp_lambda_leave_one_liners=true
-nl_if_leave_one_liners=false
-nl_oc_msg_leave_one_liner=true
-nl_start_of_file=remove
-nl_end_of_file=force
-nl_end_of_file_min=1
-nl_assign_brace=force
-nl_enum_brace=force
-nl_struct_brace=force
-nl_union_brace=force
-nl_if_brace=force
-nl_brace_else=force
-nl_else_brace=force
-nl_else_if=remove
-nl_brace_finally=force
-nl_finally_brace=force
-nl_try_brace=force
-nl_getset_brace=force
-nl_for_brace=force
-nl_catch_brace=force
-nl_brace_catch=force
-nl_while_brace=force
-nl_using_brace=force
-nl_brace_brace=ignore
-nl_do_brace=force
-nl_brace_while=force
-nl_switch_brace=force
-nl_multi_line_cond=false
-nl_before_case=false
-nl_after_case=false
-nl_case_colon_brace=force
-nl_namespace_brace=force
-nl_template_class=ignore
-nl_fdef_brace=force
-nl_after_semicolon=false
-nl_after_brace_open=false
-nl_after_brace_open_cmt=false
-nl_after_vbrace_open=false
-nl_after_vbrace_open_empty=false
-nl_after_brace_close=false
-nl_after_vbrace_close=false
-nl_squeeze_ifdef=false
-nl_ds_struct_enum_cmt=false
-nl_ds_struct_enum_close_brace=false
-nl_create_if_one_liner=false
-nl_create_for_one_liner=false
-nl_create_while_one_liner=false
-ls_for_split_full=false
-ls_func_split_full=false
-nl_max=3
-nl_after_func_body=2
-nl_after_multiline_comment=false
-nl_property_brace=force
-eat_blanks_after_open_brace=true
-eat_blanks_before_close_brace=true
-nl_after_return=false
-mod_full_brace_if_chain=false
-mod_paren_on_return=ignore
-mod_pawn_semicolon=false
-mod_full_paren_if_bool=false
-mod_remove_extra_semicolon=true
-mod_move_case_break=false
-mod_remove_empty_return=true
-cmt_indent_multi=false
-cmt_c_group=false
-cmt_c_nl_start=false
-cmt_c_nl_end=false
-cmt_cpp_group=false
-cmt_cpp_nl_start=false
-cmt_cpp_nl_end=false
-cmt_cpp_to_c=false
-cmt_star_cont=false
-cmt_multi_check_last=false
-cmt_insert_before_preproc=false
-pp_space=ignore
-use_options_overriding_for_qt_macros=false
-warn_level_tabs_found_in_verbatim_string_literals=1
-# blocked by https://sourceforge.net/p/uncrustify/bugs/619/
-# can be turned back on at any time
-#mod_add_long_ifdef_else_comment=8
-#mod_add_long_ifdef_endif_comment=8
-mod_add_long_ifdef_else_comment=0
-mod_add_long_ifdef_endif_comment=0
-
-
-
-# Setting this 'false' will cause an extra tab to be added to function call args from an assignment:
-#
-# x = o.Func2(a, b,
-# y);
-# o.Func2(a, b,
-# y);
-#
-# ...but setting it 'true' is often worse:
-#
-# ExtraReallyLongType reallyLongVariableName = someTest
-# ? someTrueExpr
-# : someFalseExpr
-#
-# ...except sometimes we really do want that. What we need is an indent_align_assign_threshold, or,
-# better but maybe more complicated, indent_align_assign=ignore to leave alone what the engineer did.
-# (currently unreported)
-indent_align_assign=false
-
-# this is causing a few problems, but usually with block comments and autodoc markup. perhaps only add a space
-# if first letter is not a symbol and this is a standalone comment: not preceded or followed by another c++
-# comment line at the same level of indentation.
-# REVISIT: work was done to have it eliminate space for doxygen markup in c6aca7b, maybe can improve on it for us
-# (test using Runtime/Allocator/BucketAllocator.h)
-# IMPORTANT: see task at https://trello.com/c/wUgiuvbX before going further
-sp_cmt_cpp_start=ignore
-
-# https://sourceforge.net/p/uncrustify/bugs/619/
-sp_endif_cmt=ignore
-
-# want to turn this on, but can't do it without also getting alignment right. try running it on this file as an example:
-# Tools\BugReporterV2\qt_face\lib\src\MainWindow.cpp
-#nl_cpp_ldef_brace=force
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U07-Cs.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U07-Cs.cfg
deleted file mode 100644
index 62ee120e..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U07-Cs.cfg
+++ /dev/null
@@ -1,283 +0,0 @@
-input_tab_size=4
-string_replace_tab_chars=true
-tok_split_gte=false
-disable_processing_cmt=*begin-nonstandard-formatting*
-enable_processing_cmt=*end-nonstandard-formatting*
-utf8_bom=remove
-utf8_byte=false
-utf8_force=false
-indent_columns=4
-indent_with_tabs=0
-indent_cmt_with_tabs=false
-indent_align_string=false
-indent_braces=false
-indent_braces_no_func=false
-indent_braces_no_class=false
-indent_braces_no_struct=false
-indent_brace_parent=false
-indent_cs_delegate_brace=true
-indent_namespace=true
-indent_extern=false
-indent_class=true
-indent_class_colon=false
-indent_else_if=false
-indent_var_def_cont=false
-indent_func_call_param=true
-indent_func_def_param=true
-indent_func_proto_param=true
-indent_func_class_param=false
-indent_func_ctor_var_param=false
-indent_template_param=false
-indent_func_param_double=false
-indent_relative_single_line_comments=false
-indent_switch_case=4
-indent_case_shift=0
-indent_case_brace=0
-indent_col1_comment=false
-indent_label=-4
-indent_access_spec=-4
-indent_paren_nl=false
-indent_comma_paren=false
-indent_bool_paren=false
-indent_first_bool_expr=false
-indent_square_nl=false
-indent_preserve_sql=false
-indent_oc_block_msg_xcode_style=true
-indent_off_after_return_new=true
-indent_single_after_return=true
-sp_arith=add
-sp_assign=add
-sp_assign_default=add
-sp_enum_assign=add
-sp_pp_concat=remove
-sp_pp_stringify=remove
-sp_bool=add
-sp_compare=add
-sp_inside_paren=remove
-sp_paren_paren=remove
-sp_balance_nested_parens=false
-sp_paren_brace=force
-sp_after_type=ignore
-sp_template_angle=remove
-sp_before_angle=remove
-sp_inside_angle=remove
-sp_angle_paren=remove
-sp_angle_paren_empty=remove
-sp_angle_word=add
-sp_angle_shift=remove
-sp_before_sparen=force
-sp_inside_sparen=remove
-sp_after_sparen=add
-sp_sparen_brace=force
-sp_special_semi=force
-sp_before_semi=remove
-sp_before_semi_for=remove
-sp_before_semi_for_empty=remove
-sp_between_semi_for_empty=remove
-sp_after_semi=add
-sp_after_semi_for=force
-sp_after_semi_for_empty=remove
-sp_before_square=remove
-sp_before_squares=remove
-sp_inside_square=remove
-sp_after_comma=add
-sp_before_comma=ignore
-sp_after_mdatype_commas=remove
-sp_before_mdatype_commas=remove
-sp_between_mdatype_commas=remove
-sp_paren_comma=remove
-sp_after_class_colon=force
-sp_before_class_colon=force
-sp_before_case_colon=remove
-sp_after_operator=remove
-sp_after_operator_sym=remove
-sp_after_operator_sym_empty=remove
-sp_after_cast=remove
-sp_inside_paren_cast=remove
-sp_cpp_cast_paren=remove
-sp_sizeof_paren=remove
-sp_inside_braces_enum=add
-sp_inside_braces_empty=remove
-sp_type_func=ignore
-sp_func_proto_paren=remove
-sp_func_def_paren=remove
-sp_inside_fparens=remove
-sp_inside_fparen=remove
-sp_fparen_brace=add
-sp_func_call_paren=remove
-sp_func_call_paren_empty=remove
-sp_func_call_user_paren=remove
-sp_func_class_paren=remove
-sp_return_paren=add
-sp_defined_paren=remove
-sp_throw_paren=add
-sp_catch_paren=add
-sp_brace_typedef=add
-sp_getset_brace=add
-sp_after_dc=remove
-sp_not=remove
-sp_inv=remove
-sp_addr=remove
-sp_member=remove
-sp_deref=remove
-sp_sign=remove
-sp_incdec=remove
-sp_before_nl_cont=add
-sp_after_oc_scope=force
-sp_after_oc_colon=remove
-sp_before_oc_colon=remove
-sp_after_oc_dict_colon=force
-sp_before_oc_dict_colon=remove
-sp_after_send_oc_colon=force
-sp_before_send_oc_colon=remove
-sp_after_oc_type=remove
-sp_after_oc_return_type=remove
-sp_after_oc_at_sel=remove
-sp_inside_oc_at_sel_parens=remove
-sp_cond_colon=add
-sp_cond_question=add
-sp_case_label=ignore
-sp_after_new=force
-sp_between_new_paren=remove
-sp_skip_vbrace_tokens=true
-align_keep_tabs=false
-align_with_tabs=false
-align_on_tabstop=false
-align_number_right=false
-align_func_params=false
-align_same_func_call_params=false
-align_var_def_colon=false
-align_var_def_attribute=false
-align_var_def_inline=false
-align_right_cmt_mix=false
-align_on_operator=false
-align_mix_var_proto=false
-align_single_line_func=false
-align_single_line_brace=false
-align_nl_cont=false
-align_left_shift=false
-nl_collapse_empty_body=false
-nl_assign_leave_one_liners=true
-nl_class_leave_one_liners=true
-nl_enum_leave_one_liners=true
-nl_getset_leave_one_liners=true
-nl_func_leave_one_liners=true
-nl_cpp_lambda_leave_one_liners=true
-nl_if_leave_one_liners=false
-nl_oc_msg_leave_one_liner=true
-nl_start_of_file=remove
-nl_end_of_file=force
-nl_end_of_file_min=1
-nl_assign_brace=force
-nl_enum_brace=force
-nl_struct_brace=force
-nl_union_brace=force
-nl_if_brace=force
-nl_brace_else=force
-nl_else_brace=force
-nl_else_if=remove
-nl_brace_finally=force
-nl_finally_brace=force
-nl_try_brace=force
-nl_getset_brace=force
-nl_for_brace=force
-nl_catch_brace=force
-nl_brace_catch=force
-nl_while_brace=force
-nl_using_brace=force
-nl_brace_brace=ignore
-nl_do_brace=force
-nl_brace_while=force
-nl_switch_brace=force
-nl_multi_line_cond=false
-nl_before_case=false
-nl_after_case=false
-nl_case_colon_brace=force
-nl_namespace_brace=force
-nl_template_class=ignore
-nl_class_brace=force
-nl_fdef_brace=force
-nl_after_semicolon=false
-nl_after_brace_open=false
-nl_after_brace_open_cmt=false
-nl_after_vbrace_open=false
-nl_after_vbrace_open_empty=false
-nl_after_brace_close=false
-nl_after_vbrace_close=false
-nl_squeeze_ifdef=false
-nl_ds_struct_enum_cmt=false
-nl_ds_struct_enum_close_brace=false
-nl_create_if_one_liner=false
-nl_create_for_one_liner=false
-nl_create_while_one_liner=false
-ls_for_split_full=false
-ls_func_split_full=false
-nl_max=3
-nl_after_multiline_comment=false
-nl_property_brace=force
-eat_blanks_after_open_brace=true
-eat_blanks_before_close_brace=true
-nl_after_return=false
-mod_full_brace_if_chain=false
-mod_paren_on_return=ignore
-mod_pawn_semicolon=false
-mod_full_paren_if_bool=false
-mod_remove_extra_semicolon=true
-mod_move_case_break=false
-mod_remove_empty_return=true
-cmt_indent_multi=false
-cmt_c_group=false
-cmt_c_nl_start=false
-cmt_c_nl_end=false
-cmt_cpp_group=false
-cmt_cpp_nl_start=false
-cmt_cpp_nl_end=false
-cmt_cpp_to_c=false
-cmt_star_cont=false
-cmt_multi_check_last=false
-cmt_insert_before_preproc=false
-pp_space=ignore
-use_options_overriding_for_qt_macros=false
-warn_level_tabs_found_in_verbatim_string_literals=1
-
-# blocked by https://sourceforge.net/p/uncrustify/bugs/619/
-# can be turned back on at any time
-mod_add_long_ifdef_else_comment=0
-mod_add_long_ifdef_endif_comment=0
-
-
-
-# Setting this 'false' will cause an extra tab to be added to function call args from an assignment:
-#
-# x = o.Func2(a, b,
-# y);
-# o.Func2(a, b,
-# y);
-#
-# ...but setting it 'true' is often worse:
-#
-# ExtraReallyLongType reallyLongVariableName = someTest
-# ? someTrueExpr
-# : someFalseExpr
-#
-# ...except sometimes we really do want that. What we need is an indent_align_assign_threshold, or,
-# better but maybe more complicated, indent_align_assign=ignore to leave alone what the engineer did.
-# (currently unreported)
-indent_align_assign=false
-
-# this is causing a few problems, but usually with block comments and autodoc markup. perhaps only add a space
-# if first letter is not a symbol and this is a standalone comment: not preceded or followed by another c++
-# comment line at the same level of indentation.
-# REVISIT: work was done to have it eliminate space for doxygen markup in c6aca7b, maybe can improve on it for us
-# (test using Runtime/Allocator/BucketAllocator.h)
-# IMPORTANT: see task at https://trello.com/c/wUgiuvbX before going further
-#sp_cmt_cpp_start=add
-sp_cmt_cpp_start=ignore
-
-# https://sourceforge.net/p/uncrustify/bugs/619/
-#sp_endif_cmt=force
-sp_endif_cmt=ignore
-
-# want to turn this on, but can't do it without also getting alignment right. try running it on this file as an example:
-# Tools\BugReporterV2\qt_face\lib\src\MainWindow.cpp
-#nl_cpp_ldef_brace=force
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U08-Cs.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U08-Cs.cfg
deleted file mode 100644
index 2378cb43..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U08-Cs.cfg
+++ /dev/null
@@ -1,282 +0,0 @@
-input_tab_size=4
-string_replace_tab_chars=true
-tok_split_gte=false
-disable_processing_cmt=*begin-nonstandard-formatting*
-enable_processing_cmt=*end-nonstandard-formatting*
-utf8_bom=remove
-utf8_byte=false
-utf8_force=false
-indent_columns=4
-indent_with_tabs=0
-indent_cmt_with_tabs=false
-indent_align_string=false
-indent_braces=false
-indent_braces_no_func=false
-indent_braces_no_class=false
-indent_braces_no_struct=false
-indent_brace_parent=false
-indent_cs_delegate_brace=true
-indent_namespace=true
-indent_extern=false
-indent_class=true
-indent_class_colon=false
-indent_else_if=false
-indent_var_def_cont=false
-indent_func_call_param=true
-indent_func_def_param=true
-indent_func_proto_param=true
-indent_func_class_param=false
-indent_func_ctor_var_param=false
-indent_template_param=false
-indent_func_param_double=false
-indent_relative_single_line_comments=false
-indent_switch_case=4
-indent_case_shift=0
-indent_case_brace=0
-indent_col1_comment=false
-indent_label=-4
-indent_access_spec=-4
-indent_paren_nl=false
-indent_comma_paren=false
-indent_bool_paren=false
-indent_first_bool_expr=false
-indent_square_nl=false
-indent_preserve_sql=false
-indent_oc_block_msg_xcode_style=true
-indent_off_after_return_new=true
-indent_single_after_return=true
-sp_arith=add
-sp_assign=add
-sp_assign_default=add
-sp_enum_assign=add
-sp_pp_concat=remove
-sp_pp_stringify=remove
-sp_bool=add
-sp_compare=add
-sp_inside_paren=remove
-sp_paren_paren=remove
-sp_balance_nested_parens=false
-sp_paren_brace=force
-sp_after_type=remove
-sp_template_angle=remove
-sp_before_angle=remove
-sp_inside_angle=remove
-sp_angle_paren=remove
-sp_angle_paren_empty=remove
-sp_angle_word=add
-sp_angle_shift=remove
-sp_before_sparen=force
-sp_inside_sparen=remove
-sp_after_sparen=add
-sp_sparen_brace=force
-sp_special_semi=force
-sp_before_semi=remove
-sp_before_semi_for=remove
-sp_before_semi_for_empty=remove
-sp_between_semi_for_empty=remove
-sp_after_semi=add
-sp_after_semi_for=force
-sp_after_semi_for_empty=remove
-sp_before_square=remove
-sp_before_squares=remove
-sp_inside_square=remove
-sp_after_comma=add
-sp_before_comma=ignore
-sp_after_mdatype_commas=remove
-sp_before_mdatype_commas=remove
-sp_between_mdatype_commas=remove
-sp_paren_comma=remove
-sp_after_class_colon=force
-sp_before_class_colon=force
-sp_before_case_colon=remove
-sp_after_operator=remove
-sp_after_operator_sym=remove
-sp_after_operator_sym_empty=remove
-sp_after_cast=remove
-sp_inside_paren_cast=remove
-sp_cpp_cast_paren=remove
-sp_sizeof_paren=remove
-sp_inside_braces_enum=add
-sp_inside_braces_empty=remove
-sp_type_func=ignore
-sp_func_proto_paren=remove
-sp_func_def_paren=remove
-sp_inside_fparens=remove
-sp_inside_fparen=remove
-sp_fparen_brace=add
-sp_func_call_paren=remove
-sp_func_call_paren_empty=remove
-sp_func_call_user_paren=remove
-sp_func_class_paren=remove
-sp_return_paren=add
-sp_defined_paren=remove
-sp_throw_paren=add
-sp_catch_paren=add
-sp_brace_typedef=add
-sp_getset_brace=add
-sp_after_dc=remove
-sp_not=remove
-sp_inv=remove
-sp_addr=remove
-sp_member=remove
-sp_deref=remove
-sp_sign=remove
-sp_incdec=remove
-sp_before_nl_cont=add
-sp_after_oc_scope=force
-sp_after_oc_colon=remove
-sp_before_oc_colon=remove
-sp_after_oc_dict_colon=force
-sp_before_oc_dict_colon=remove
-sp_after_send_oc_colon=force
-sp_before_send_oc_colon=remove
-sp_after_oc_type=remove
-sp_after_oc_return_type=remove
-sp_after_oc_at_sel=remove
-sp_inside_oc_at_sel_parens=remove
-sp_cond_colon=add
-sp_cond_question=add
-sp_case_label=ignore
-sp_after_new=force
-sp_between_new_paren=remove
-sp_skip_vbrace_tokens=true
-align_keep_tabs=false
-align_with_tabs=false
-align_on_tabstop=false
-align_number_right=false
-align_func_params=false
-align_same_func_call_params=false
-align_var_def_colon=false
-align_var_def_attribute=false
-align_var_def_inline=false
-align_right_cmt_mix=false
-align_on_operator=false
-align_mix_var_proto=false
-align_single_line_func=false
-align_single_line_brace=false
-align_nl_cont=false
-align_left_shift=false
-nl_collapse_empty_body=false
-nl_assign_leave_one_liners=true
-nl_class_leave_one_liners=true
-nl_enum_leave_one_liners=true
-nl_getset_leave_one_liners=true
-nl_func_leave_one_liners=true
-nl_cpp_lambda_leave_one_liners=true
-nl_if_leave_one_liners=false
-nl_oc_msg_leave_one_liner=true
-nl_start_of_file=remove
-nl_end_of_file=force
-nl_end_of_file_min=1
-nl_assign_brace=force
-nl_enum_brace=force
-nl_struct_brace=force
-nl_union_brace=force
-nl_if_brace=force
-nl_brace_else=force
-nl_else_brace=force
-nl_else_if=remove
-nl_brace_finally=force
-nl_finally_brace=force
-nl_try_brace=force
-nl_getset_brace=force
-nl_for_brace=force
-nl_catch_brace=force
-nl_brace_catch=force
-nl_while_brace=force
-nl_using_brace=force
-nl_brace_brace=ignore
-nl_do_brace=force
-nl_brace_while=force
-nl_switch_brace=force
-nl_multi_line_cond=false
-nl_before_case=false
-nl_after_case=false
-nl_case_colon_brace=force
-nl_namespace_brace=force
-nl_template_class=ignore
-nl_class_brace=force
-nl_fdef_brace=force
-nl_after_semicolon=false
-nl_after_brace_open=false
-nl_after_brace_open_cmt=false
-nl_after_vbrace_open=false
-nl_after_vbrace_open_empty=false
-nl_after_brace_close=false
-nl_after_vbrace_close=false
-nl_squeeze_ifdef=false
-nl_ds_struct_enum_cmt=false
-nl_ds_struct_enum_close_brace=false
-nl_create_if_one_liner=false
-nl_create_for_one_liner=false
-nl_create_while_one_liner=false
-ls_for_split_full=false
-ls_func_split_full=false
-nl_max=3
-nl_after_func_body=2
-nl_after_multiline_comment=false
-nl_property_brace=force
-eat_blanks_after_open_brace=true
-eat_blanks_before_close_brace=true
-nl_after_return=false
-mod_paren_on_return=ignore
-mod_pawn_semicolon=false
-mod_full_paren_if_bool=false
-mod_remove_extra_semicolon=true
-mod_move_case_break=false
-mod_remove_empty_return=true
-cmt_indent_multi=false
-cmt_c_group=false
-cmt_c_nl_start=false
-cmt_c_nl_end=false
-cmt_cpp_group=false
-cmt_cpp_nl_start=false
-cmt_cpp_nl_end=false
-cmt_cpp_to_c=false
-cmt_star_cont=false
-cmt_multi_check_last=false
-cmt_insert_before_preproc=false
-pp_space=ignore
-use_options_overriding_for_qt_macros=false
-warn_level_tabs_found_in_verbatim_string_literals=1
-# blocked by https://sourceforge.net/p/uncrustify/bugs/619/
-# can be turned back on at any time
-mod_add_long_ifdef_else_comment=0
-mod_add_long_ifdef_endif_comment=0
-
-
-
-# Setting this 'false' will cause an extra tab to be added to function call args from an assignment:
-#
-# x = o.Func2(a, b,
-# y);
-# o.Func2(a, b,
-# y);
-#
-# ...but setting it 'true' is often worse:
-#
-# ExtraReallyLongType reallyLongVariableName = someTest
-# ? someTrueExpr
-# : someFalseExpr
-#
-# ...except sometimes we really do want that. What we need is an indent_align_assign_threshold, or,
-# better but maybe more complicated, indent_align_assign=ignore to leave alone what the engineer did.
-# (currently unreported)
-indent_align_assign=false
-
-# this is causing a few problems, but usually with block comments and autodoc markup. perhaps only add a space
-# if first letter is not a symbol and this is a standalone comment: not preceded or followed by another c++
-# comment line at the same level of indentation.
-# REVISIT: work was done to have it eliminate space for doxygen markup in c6aca7b, maybe can improve on it for us
-# (test using Runtime/Allocator/BucketAllocator.h)
-# IMPORTANT: see task at https://trello.com/c/wUgiuvbX before going further
-#sp_cmt_cpp_start=add
-sp_cmt_cpp_start=ignore
-
-# https://sourceforge.net/p/uncrustify/bugs/619/
-#sp_endif_cmt=force
-sp_endif_cmt=ignore
-
-# want to turn this on, but can't do it without also getting alignment right. try running it on this file as an example:
-# Tools\BugReporterV2\qt_face\lib\src\MainWindow.cpp
-#nl_cpp_ldef_brace=force
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-11095.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-11095.cfg
deleted file mode 100644
index f5cc4ceb..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-11095.cfg
+++ /dev/null
@@ -1,319 +0,0 @@
-input_tab_size=4
-string_replace_tab_chars=true
-tok_split_gte=false
-disable_processing_cmt=*begin-nonstandard-formatting*
-enable_processing_cmt=*end-nonstandard-formatting*
-utf8_bom=remove
-utf8_byte=false
-utf8_force=false
-indent_columns=4
-indent_with_tabs=0
-indent_cmt_with_tabs=false
-indent_align_string=false
-indent_braces=false
-indent_braces_no_func=false
-indent_braces_no_class=false
-indent_braces_no_struct=false
-indent_brace_parent=false
-indent_cs_delegate_brace=true
-indent_namespace=true
-indent_extern=false
-indent_class=true
-indent_class_colon=false
-indent_else_if=false
-indent_var_def_cont=false
-indent_func_call_param=true
-indent_func_def_param=true
-indent_func_proto_param=true
-indent_func_class_param=false
-indent_func_ctor_var_param=false
-indent_template_param=false
-indent_func_param_double=false
-indent_relative_single_line_comments=false
-indent_switch_case=4
-indent_case_shift=0
-indent_case_brace=0
-indent_col1_comment=false
-indent_label=-4
-indent_access_spec=-4
-indent_paren_nl=false
-indent_comma_paren=false
-indent_bool_paren=false
-indent_first_bool_expr=false
-indent_square_nl=false
-indent_preserve_sql=false
-indent_align_paren=false
-indent_oc_block_msg_xcode_style=true
-indent_off_after_return_new=true
-indent_single_after_return=true
-sp_arith=add
-sp_assign=add
-sp_assign_default=add
-sp_enum_assign=add
-sp_pp_concat=remove
-sp_pp_stringify=remove
-sp_bool=add
-sp_compare=add
-sp_inside_paren=remove
-sp_paren_paren=remove
-sp_balance_nested_parens=false
-sp_paren_brace=force
-sp_after_type=ignore
-sp_template_angle=remove
-sp_before_angle=remove
-sp_inside_angle=remove
-sp_angle_paren=remove
-sp_angle_paren_empty=remove
-sp_angle_word=add
-sp_angle_shift=remove
-sp_before_sparen=force
-sp_inside_sparen=remove
-sp_after_sparen=add
-sp_sparen_brace=force
-sp_special_semi=force
-sp_before_semi=remove
-sp_before_semi_for=remove
-sp_before_semi_for_empty=remove
-sp_between_semi_for_empty=remove
-sp_after_semi=add
-sp_after_semi_for=force
-sp_after_semi_for_empty=remove
-sp_before_square=remove
-sp_before_squares=remove
-sp_inside_square=remove
-sp_after_comma=add
-sp_before_comma=ignore
-sp_after_mdatype_commas=remove
-sp_before_mdatype_commas=remove
-sp_between_mdatype_commas=remove
-sp_paren_comma=remove
-sp_after_class_colon=force
-sp_before_class_colon=force
-sp_before_case_colon=remove
-sp_after_operator=remove
-sp_after_operator_sym=remove
-sp_after_operator_sym_empty=remove
-sp_after_cast=remove
-sp_inside_paren_cast=remove
-sp_cpp_cast_paren=remove
-sp_sizeof_paren=remove
-sp_inside_braces_enum=add
-sp_inside_braces_empty=remove
-sp_type_func=ignore
-sp_func_proto_paren=remove
-sp_func_def_paren=remove
-sp_inside_fparens=remove
-sp_inside_fparen=remove
-sp_fparen_brace=add
-sp_func_call_paren=remove
-sp_func_call_paren_empty=remove
-sp_func_call_user_paren=remove
-sp_func_class_paren=remove
-sp_return_paren=add
-sp_defined_paren=remove
-sp_throw_paren=add
-sp_catch_paren=add
-sp_brace_typedef=add
-sp_getset_brace=add
-sp_after_dc=remove
-sp_not=remove
-sp_inv=remove
-sp_addr=remove
-sp_member=remove
-sp_deref=remove
-sp_sign=remove
-sp_incdec=remove
-sp_before_nl_cont=add
-sp_after_oc_scope=force
-sp_after_oc_colon=remove
-sp_before_oc_colon=remove
-sp_after_oc_dict_colon=force
-sp_before_oc_dict_colon=remove
-sp_after_send_oc_colon=force
-sp_before_send_oc_colon=remove
-sp_after_oc_type=remove
-sp_after_oc_return_type=remove
-sp_after_oc_at_sel=remove
-sp_inside_oc_at_sel_parens=remove
-sp_cond_colon=add
-sp_cond_question=add
-sp_case_label=ignore
-sp_after_new=force
-sp_between_new_paren=remove
-sp_skip_vbrace_tokens=true
-align_keep_tabs=false
-align_with_tabs=false
-align_on_tabstop=false
-align_number_right=false
-align_func_params=false
-align_same_func_call_params=false
-align_var_def_colon=false
-align_var_def_attribute=false
-align_var_def_inline=false
-align_right_cmt_mix=false
-align_on_operator=false
-align_mix_var_proto=false
-align_single_line_func=false
-align_single_line_brace=false
-align_nl_cont=false
-align_left_shift=false
-nl_collapse_empty_body=false
-nl_assign_leave_one_liners=true
-nl_class_leave_one_liners=true
-nl_enum_leave_one_liners=true
-nl_getset_leave_one_liners=true
-nl_func_leave_one_liners=true
-nl_cpp_lambda_leave_one_liners=true
-nl_if_leave_one_liners=false
-nl_oc_msg_leave_one_liner=true
-nl_start_of_file=remove
-nl_end_of_file=force
-nl_end_of_file_min=1
-nl_assign_brace=force
-nl_enum_brace=force
-nl_struct_brace=force
-nl_union_brace=force
-nl_if_brace=force
-nl_brace_else=force
-nl_else_brace=force
-nl_else_if=remove
-nl_brace_finally=force
-nl_finally_brace=force
-nl_try_brace=force
-nl_getset_brace=force
-nl_for_brace=force
-nl_catch_brace=force
-nl_brace_catch=force
-nl_while_brace=force
-nl_using_brace=force
-nl_brace_brace=ignore
-nl_do_brace=force
-nl_brace_while=force
-nl_switch_brace=force
-nl_multi_line_cond=false
-nl_before_case=false
-nl_after_case=false
-nl_case_colon_brace=force
-nl_namespace_brace=force
-nl_template_class=ignore
-nl_class_brace=force
-nl_fdef_brace=force
-nl_after_semicolon=false
-nl_after_brace_open=false
-nl_after_brace_open_cmt=false
-nl_after_vbrace_open=false
-nl_after_vbrace_open_empty=false
-nl_after_brace_close=false
-nl_after_vbrace_close=false
-nl_squeeze_ifdef=false
-nl_ds_struct_enum_cmt=false
-nl_ds_struct_enum_close_brace=false
-nl_namespace_two_to_one_liner=false
-nl_create_if_one_liner=false
-nl_create_for_one_liner=false
-nl_create_while_one_liner=false
-nl_create_func_def_one_liner=false
-ls_for_split_full=false
-ls_func_split_full=false
-nl_max=3
-nl_after_func_body=2
-nl_after_multiline_comment=false
-nl_property_brace=force
-eat_blanks_after_open_brace=true
-eat_blanks_before_close_brace=true
-nl_after_return=false
-mod_full_brace_if_chain=false
-mod_paren_on_return=ignore
-mod_pawn_semicolon=false
-mod_full_paren_if_bool=false
-mod_remove_extra_semicolon=true
-mod_move_case_break=false
-mod_remove_empty_return=true
-cmt_convert_tab_to_spaces=True
-cmt_indent_multi=false
-cmt_c_group=false
-cmt_c_nl_start=false
-cmt_c_nl_end=false
-cmt_cpp_group=false
-cmt_cpp_nl_start=false
-cmt_cpp_nl_end=false
-cmt_cpp_to_c=false
-cmt_star_cont=false
-cmt_multi_check_last=false
-cmt_insert_before_preproc=false
-pp_space=ignore
-use_options_overriding_for_qt_macros=false
-warn_level_tabs_found_in_verbatim_string_literals=1
-# blocked by https://sourceforge.net/p/uncrustify/bugs/619/
-# can be turned back on at any time
-mod_add_long_ifdef_else_comment=0
-mod_add_long_ifdef_endif_comment=0
-
-
-
-# Setting this 'false' will cause an extra tab to be added to function call args from an assignment:
-#
-# x = o.Func2(a, b,
-# y);
-# o.Func2(a, b,
-# y);
-#
-# ...but setting it 'true' is often worse:
-#
-# ExtraReallyLongType reallyLongVariableName = someTest
-# ? someTrueExpr
-# : someFalseExpr
-#
-# ...except sometimes we really do want that. What we need is an indent_align_assign_threshold, or,
-# better but maybe more complicated, indent_align_assign=ignore to leave alone what the engineer did.
-# (currently unreported)
-indent_align_assign=false
-
-# this is causing a few problems, but usually with block comments and autodoc markup. perhaps only add a space
-# if first letter is not a symbol and this is a standalone comment: not preceded or followed by another c++
-# comment line at the same level of indentation.
-# REVISIT: work was done to have it eliminate space for doxygen markup in c6aca7b, maybe can improve on it for us
-# (test using Runtime/Allocator/BucketAllocator.h)
-# IMPORTANT: see task at https://trello.com/c/wUgiuvbX before going further
-#sp_cmt_cpp_start=add
-sp_cmt_cpp_start=ignore
-
-# https://sourceforge.net/p/uncrustify/bugs/619/
-#sp_endif_cmt=force
-sp_endif_cmt=ignore
-
-# want to turn this on, but can't do it without also getting alignment right. try running it on this file as an example:
-# Tools\BugReporterV2\qt_face\lib\src\MainWindow.cpp
-#nl_cpp_ldef_brace=force
-
-# workaround for some nasty macroing we're doing
-set COMMENT PLATFORM_EXCEPTION_SAFEGUARD_PROLOG
-
-# without this, uncrustify will parse and process the contents of #defines, which is super unstable. very easy to get into edge cases it does not support,
-# so just have it treat #defines as black boxes. this will keep all of the contents of the #define as unprocessed.
-pp_ignore_define_body=true
-
-# macros in #includes aren't known to Uncrustify, so have to inform it here for macros that will confuse it
-set MACRO_FUNC ATTRIBUTE_ALIGN
-
-# we have some truly insane deep namespace nesting in il2cpp. :/
-indent_namespace_single_indent=true
-
-# needed for fmod apparently (via HEVAGTool.h - the *'s near F_STDCALL will be interpreted as ARITH without this)
-set COMMENT F_STDCALL
-
-# https://github.com/uncrustify/uncrustify/pull/602
-# https://sourceforge.net/p/uncrustify/bugs/633/
-set COMMENT __cdecl
-set COMMENT __clrcall
-set COMMENT __fastcall
-set COMMENT __stdcall
-set COMMENT __thiscall
-set COMMENT __vectorcall
-set COMMENT WINAPI
-
-# We need to make FAKE_FUNCTION a PROTO_WRAP macro function to help properly tokenize it's parameters.
-# Previously parameters with CT_AMP and CT_STAR were tokenized as CT_ARITH. Support for optional parenthesis added in github PR #629.
-set PROTO_WRAP FAKE_FUNCTION
-nl_create_func_def_one_liner=true
-sp_inside_braces=Add
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-11993.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-11993.cfg
deleted file mode 100644
index 79b2e445..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-11993.cfg
+++ /dev/null
@@ -1,287 +0,0 @@
-input_tab_size=4
-string_replace_tab_chars=true
-tok_split_gte=false
-disable_processing_cmt=*begin-nonstandard-formatting
-enable_processing_cmt=*end-nonstandard-formatting*
-utf8_bom=remove
-utf8_byte=false
-utf8_force=false
-indent_columns=4
-indent_with_tabs=0
-indent_cmt_with_tabs=false
-indent_align_string=false
-indent_braces=false
-indent_braces_no_func=false
-indent_braces_no_class=false
-indent_braces_no_struct=false
-indent_brace_parent=false
-indent_cs_delegate_brace=true
-indent_namespace=true
-indent_extern=false
-indent_class=true
-indent_class_colon=false
-indent_else_if=false
-indent_var_def_cont=false
-indent_func_call_param=true
-indent_func_def_param=true
-indent_func_proto_param=true
-indent_func_class_param=false
-indent_func_ctor_var_param=false
-indent_template_param=false
-indent_func_param_double=false
-indent_member_single=false
-indent_relative_single_line_comments=false
-indent_switch_case=4
-indent_case_shift=0
-indent_case_brace=0
-indent_col1_comment=false
-indent_label=-4
-indent_access_spec=-4
-indent_paren_nl=false
-indent_comma_paren=false
-indent_bool_paren=false
-indent_first_bool_expr=false
-indent_square_nl=false
-indent_preserve_sql=false
-indent_align_paren=false
-indent_oc_block_msg_xcode_style=true
-indent_off_after_return_new=true
-indent_single_after_return=true
-sp_arith=add
-sp_assign=add
-sp_assign_default=add
-sp_enum_assign=add
-sp_pp_concat=remove
-sp_pp_stringify=remove
-sp_bool=add
-sp_compare=add
-sp_inside_paren=remove
-sp_paren_paren=remove
-sp_balance_nested_parens=false
-sp_paren_brace=force
-sp_after_type=ignore
-sp_template_angle=remove
-sp_before_angle=remove
-sp_inside_angle=remove
-sp_angle_paren=remove
-sp_angle_paren_empty=remove
-sp_angle_word=add
-sp_angle_shift=remove
-sp_before_sparen=force
-sp_inside_sparen=remove
-sp_after_sparen=add
-sp_sparen_brace=force
-sp_special_semi=force
-sp_before_semi=remove
-sp_before_semi_for=remove
-sp_before_semi_for_empty=remove
-sp_between_semi_for_empty=remove
-sp_after_semi=add
-sp_after_semi_for=force
-sp_after_semi_for_empty=remove
-sp_before_square=remove
-sp_before_squares=remove
-sp_inside_square=remove
-sp_after_comma=add
-sp_before_comma=ignore
-sp_after_mdatype_commas=remove
-sp_before_mdatype_commas=remove
-sp_between_mdatype_commas=remove
-sp_paren_comma=remove
-sp_after_class_colon=force
-sp_before_class_colon=force
-sp_before_case_colon=remove
-sp_after_operator=remove
-sp_after_operator_sym=remove
-sp_after_operator_sym_empty=remove
-sp_after_cast=remove
-sp_inside_paren_cast=remove
-sp_cpp_cast_paren=remove
-sp_sizeof_paren=remove
-sp_inside_braces_enum=add
-sp_inside_braces_empty=remove
-sp_type_func=ignore
-sp_func_proto_paren=remove
-sp_func_def_paren=remove
-sp_inside_fparens=remove
-sp_inside_fparen=remove
-sp_fparen_brace=add
-sp_func_call_paren=remove
-sp_func_call_paren_empty=remove
-sp_func_call_user_paren=remove
-sp_func_class_paren=remove
-sp_return_paren=add
-sp_defined_paren=remove
-sp_throw_paren=add
-sp_catch_paren=add
-sp_brace_typedef=add
-sp_getset_brace=add
-sp_after_dc=remove
-sp_not=remove
-sp_inv=remove
-sp_addr=remove
-sp_member=remove
-sp_deref=remove
-sp_sign=remove
-sp_incdec=remove
-sp_before_nl_cont=add
-sp_after_oc_scope=force
-sp_after_oc_colon=remove
-sp_before_oc_colon=remove
-sp_after_oc_dict_colon=force
-sp_before_oc_dict_colon=remove
-sp_after_send_oc_colon=force
-sp_before_send_oc_colon=remove
-sp_after_oc_type=remove
-sp_after_oc_return_type=remove
-sp_after_oc_at_sel=remove
-sp_inside_oc_at_sel_parens=remove
-sp_cond_colon=add
-sp_cond_question=add
-sp_case_label=ignore
-sp_after_new=force
-sp_between_new_paren=remove
-sp_skip_vbrace_tokens=true
-align_keep_tabs=false
-align_with_tabs=false
-align_on_tabstop=false
-align_number_right=false
-align_func_params=false
-align_same_func_call_params=false
-align_var_def_colon=false
-align_var_def_attribute=false
-align_var_def_inline=false
-align_right_cmt_mix=false
-align_on_operator=false
-align_mix_var_proto=false
-align_single_line_func=false
-align_single_line_brace=false
-align_nl_cont=false
-align_left_shift=false
-nl_collapse_empty_body=false
-nl_assign_leave_one_liners=true
-nl_class_leave_one_liners=true
-nl_enum_leave_one_liners=true
-nl_getset_leave_one_liners=true
-nl_func_leave_one_liners=true
-nl_cpp_lambda_leave_one_liners=true
-nl_if_leave_one_liners=false
-nl_oc_msg_leave_one_liner=true
-nl_start_of_file=remove
-nl_end_of_file=force
-nl_end_of_file_min=1
-nl_assign_brace=force
-nl_enum_brace=force
-nl_struct_brace=force
-nl_union_brace=force
-nl_if_brace=force
-nl_brace_else=force
-nl_else_brace=force
-nl_else_if=remove
-nl_brace_finally=force
-nl_finally_brace=force
-nl_try_brace=force
-nl_getset_brace=force
-nl_for_brace=force
-nl_catch_brace=force
-nl_brace_catch=force
-nl_while_brace=force
-nl_using_brace=force
-nl_brace_brace=ignore
-nl_do_brace=force
-nl_brace_while=force
-nl_switch_brace=force
-nl_multi_line_cond=false
-nl_before_case=false
-nl_after_case=false
-nl_case_colon_brace=force
-nl_namespace_brace=force
-nl_template_class=ignore
-nl_class_brace=force
-nl_fdef_brace=force
-nl_after_semicolon=false
-nl_after_brace_open=false
-nl_after_brace_open_cmt=false
-nl_after_vbrace_open=false
-nl_after_vbrace_open_empty=false
-nl_after_brace_close=false
-nl_after_vbrace_close=false
-nl_squeeze_ifdef=false
-nl_ds_struct_enum_cmt=false
-nl_ds_struct_enum_close_brace=false
-nl_namespace_two_to_one_liner=false
-nl_create_if_one_liner=false
-nl_create_for_one_liner=false
-nl_create_while_one_liner=false
-nl_create_func_def_one_liner=false
-ls_for_split_full=false
-ls_func_split_full=false
-nl_max=3
-nl_after_func_body=2
-nl_after_multiline_comment=false
-nl_property_brace=force
-eat_blanks_after_open_brace=true
-eat_blanks_before_close_brace=true
-nl_after_return=false
-mod_full_brace_if_chain=false
-mod_paren_on_return=ignore
-mod_pawn_semicolon=false
-mod_full_paren_if_bool=false
-mod_remove_extra_semicolon=true
-mod_move_case_break=false
-mod_remove_empty_return=true
-cmt_convert_tab_to_spaces=True
-cmt_indent_multi=false
-cmt_c_group=false
-cmt_c_nl_start=false
-cmt_c_nl_end=false
-cmt_cpp_group=false
-cmt_cpp_nl_start=false
-cmt_cpp_nl_end=false
-cmt_cpp_to_c=false
-cmt_star_cont=false
-cmt_multi_check_last=false
-cmt_insert_before_preproc=false
-pp_space=ignore
-use_options_overriding_for_qt_macros=false
-warn_level_tabs_found_in_verbatim_string_literals=1
-# blocked by https://sourceforge.net/p/uncrustify/bugs/619/
-# can be turned back on at any time
-mod_add_long_ifdef_else_comment=0
-mod_add_long_ifdef_endif_comment=0
-
-
-# Setting this 'false' will cause an extra tab to be added to function call args from an assignment:
-#
-# x = o.Func2(a, b,
-# y);
-# o.Func2(a, b,
-# y);
-#
-# ...but setting it 'true' is often worse:
-#
-# ExtraReallyLongType reallyLongVariableName = someTest
-# ? someTrueExpr
-# : someFalseExpr
-#
-# ...except sometimes we really do want that. What we need is an indent_align_assign_threshold, or,
-# better but maybe more complicated, indent_align_assign=ignore to leave alone what the engineer did.
-# (currently unreported)
-indent_align_assign=false
-
-# this is causing a few problems, but usually with block comments and autodoc markup. perhaps only add a space
-# if first letter is not a symbol and this is a standalone comment: not preceded or followed by another c++
-# comment line at the same level of indentation.
-# REVISIT: work was done to have it eliminate space for doxygen markup in c6aca7b, maybe can improve on it for us
-# (test using Runtime/Allocator/BucketAllocator.h)
-# IMPORTANT: see task at https://trello.com/c/wUgiuvbX before going further
-#sp_cmt_cpp_start=add
-sp_cmt_cpp_start=ignore
-
-# https://sourceforge.net/p/uncrustify/bugs/619/
-#sp_endif_cmt=force
-sp_endif_cmt=ignore
-
-# want to turn this on, but can't do it without also getting alignment right. try running it on this file as an example:
-# Tools\BugReporterV2\qt_face\lib\src\MainWindow.cpp
-#nl_cpp_ldef_brace=force
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-18437.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-18437.cfg
deleted file mode 100644
index a40e16a6..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-18437.cfg
+++ /dev/null
@@ -1,287 +0,0 @@
-input_tab_size=4
-string_replace_tab_chars=true
-tok_split_gte=false
-disable_processing_cmt=*begin-nonstandard-formatting*
-enable_processing_cmt=*end-nonstandard-formatting*
-utf8_bom=remove
-utf8_byte=false
-utf8_force=false
-indent_columns=4
-indent_with_tabs=0
-indent_cmt_with_tabs=false
-indent_align_string=false
-indent_braces=false
-indent_braces_no_func=false
-indent_braces_no_class=false
-indent_braces_no_struct=false
-indent_brace_parent=false
-indent_cs_delegate_brace=true
-indent_namespace=true
-indent_extern=false
-indent_class=true
-indent_class_colon=false
-indent_else_if=false
-indent_var_def_cont=false
-indent_func_call_param=true
-indent_func_def_param=true
-indent_func_proto_param=true
-indent_func_class_param=false
-indent_func_ctor_var_param=false
-indent_template_param=false
-indent_func_param_double=false
-indent_relative_single_line_comments=false
-indent_switch_case=4
-indent_case_shift=0
-indent_case_brace=0
-indent_col1_comment=false
-indent_label=-4
-indent_access_spec=-4
-indent_paren_nl=false
-indent_comma_paren=false
-indent_bool_paren=false
-indent_first_bool_expr=false
-indent_square_nl=false
-indent_preserve_sql=false
-indent_align_paren=false
-indent_oc_block_msg_xcode_style=true
-indent_off_after_return_new=true
-indent_single_after_return=true
-sp_arith=add
-sp_assign=add
-sp_assign_default=add
-sp_enum_assign=add
-sp_pp_concat=remove
-sp_pp_stringify=remove
-sp_bool=add
-sp_compare=add
-sp_inside_paren=remove
-sp_paren_paren=remove
-sp_balance_nested_parens=false
-sp_paren_brace=force
-sp_after_type=ignore
-sp_template_angle=remove
-sp_before_angle=remove
-sp_inside_angle=remove
-sp_angle_paren=remove
-sp_angle_paren_empty=remove
-sp_angle_word=add
-sp_angle_shift=remove
-sp_before_sparen=force
-sp_inside_sparen=remove
-sp_after_sparen=add
-sp_sparen_brace=force
-sp_special_semi=force
-sp_before_semi=remove
-sp_before_semi_for=remove
-sp_before_semi_for_empty=remove
-sp_between_semi_for_empty=remove
-sp_after_semi=add
-sp_after_semi_for=force
-sp_after_semi_for_empty=remove
-sp_before_square=remove
-sp_before_squares=remove
-sp_inside_square=remove
-sp_after_comma=add
-sp_before_comma=ignore
-sp_after_mdatype_commas=remove
-sp_before_mdatype_commas=remove
-sp_between_mdatype_commas=remove
-sp_paren_comma=remove
-sp_after_class_colon=force
-sp_before_class_colon=force
-sp_before_case_colon=remove
-sp_after_operator=remove
-sp_after_operator_sym=remove
-sp_after_operator_sym_empty=remove
-sp_after_cast=remove
-sp_inside_paren_cast=remove
-sp_cpp_cast_paren=remove
-sp_sizeof_paren=remove
-sp_inside_braces_enum=add
-sp_inside_braces_empty=remove
-sp_type_func=ignore
-sp_func_proto_paren=remove
-sp_func_def_paren=remove
-sp_inside_fparens=remove
-sp_inside_fparen=remove
-sp_fparen_brace=add
-sp_func_call_paren=remove
-sp_func_call_paren_empty=remove
-sp_func_call_user_paren=remove
-sp_func_class_paren=remove
-sp_return_paren=add
-sp_defined_paren=remove
-sp_throw_paren=add
-sp_catch_paren=add
-sp_brace_typedef=add
-sp_getset_brace=add
-sp_after_dc=remove
-sp_not=remove
-sp_inv=remove
-sp_addr=remove
-sp_member=remove
-sp_deref=remove
-sp_sign=remove
-sp_incdec=remove
-sp_before_nl_cont=add
-sp_after_oc_scope=force
-sp_after_oc_colon=remove
-sp_before_oc_colon=remove
-sp_after_oc_dict_colon=force
-sp_before_oc_dict_colon=remove
-sp_after_send_oc_colon=force
-sp_before_send_oc_colon=remove
-sp_after_oc_type=remove
-sp_after_oc_return_type=remove
-sp_after_oc_at_sel=remove
-sp_inside_oc_at_sel_parens=remove
-sp_cond_colon=add
-sp_cond_question=add
-sp_case_label=ignore
-sp_after_new=force
-sp_between_new_paren=remove
-sp_skip_vbrace_tokens=true
-align_keep_tabs=false
-align_with_tabs=false
-align_on_tabstop=false
-align_number_right=false
-align_func_params=false
-align_same_func_call_params=false
-align_var_def_colon=false
-align_var_def_attribute=false
-align_var_def_inline=false
-align_right_cmt_mix=false
-align_on_operator=false
-align_mix_var_proto=false
-align_single_line_func=false
-align_single_line_brace=false
-align_nl_cont=false
-align_left_shift=false
-nl_collapse_empty_body=false
-nl_assign_leave_one_liners=true
-nl_class_leave_one_liners=true
-nl_enum_leave_one_liners=true
-nl_getset_leave_one_liners=true
-nl_func_leave_one_liners=true
-nl_cpp_lambda_leave_one_liners=true
-nl_if_leave_one_liners=false
-nl_oc_msg_leave_one_liner=true
-nl_start_of_file=remove
-nl_end_of_file=force
-nl_end_of_file_min=1
-nl_assign_brace=force
-nl_enum_brace=force
-nl_struct_brace=force
-nl_union_brace=force
-nl_if_brace=force
-nl_brace_else=force
-nl_else_brace=force
-nl_else_if=remove
-nl_brace_finally=force
-nl_finally_brace=force
-nl_try_brace=force
-nl_getset_brace=force
-nl_for_brace=force
-nl_catch_brace=force
-nl_brace_catch=force
-nl_while_brace=force
-nl_using_brace=force
-nl_brace_brace=ignore
-nl_do_brace=force
-nl_brace_while=force
-nl_switch_brace=force
-nl_multi_line_cond=false
-nl_before_case=false
-nl_after_case=false
-nl_case_colon_brace=force
-nl_namespace_brace=force
-nl_template_class=ignore
-nl_class_brace=force
-nl_fdef_brace=force
-nl_after_semicolon=false
-nl_after_brace_open=false
-nl_after_brace_open_cmt=false
-nl_after_vbrace_open=false
-nl_after_vbrace_open_empty=false
-nl_after_brace_close=false
-nl_after_vbrace_close=false
-nl_squeeze_ifdef=false
-nl_ds_struct_enum_cmt=false
-nl_ds_struct_enum_close_brace=false
-nl_namespace_two_to_one_liner=false
-nl_create_if_one_liner=false
-nl_create_for_one_liner=false
-nl_create_while_one_liner=false
-nl_create_func_def_one_liner=false
-ls_for_split_full=false
-ls_func_split_full=false
-nl_max=3
-nl_after_func_body=2
-nl_after_multiline_comment=false
-nl_property_brace=force
-eat_blanks_after_open_brace=true
-eat_blanks_before_close_brace=true
-nl_after_return=false
-mod_full_brace_if_chain=false
-mod_paren_on_return=ignore
-mod_pawn_semicolon=false
-mod_full_paren_if_bool=false
-mod_remove_extra_semicolon=true
-mod_move_case_break=false
-mod_remove_empty_return=true
-cmt_convert_tab_to_spaces=True
-cmt_indent_multi=false
-cmt_c_group=false
-cmt_c_nl_start=false
-cmt_c_nl_end=false
-cmt_cpp_group=false
-cmt_cpp_nl_start=false
-cmt_cpp_nl_end=false
-cmt_cpp_to_c=false
-cmt_star_cont=false
-cmt_multi_check_last=false
-cmt_insert_before_preproc=false
-pp_space=ignore
-use_options_overriding_for_qt_macros=false
-warn_level_tabs_found_in_verbatim_string_literals=1
-# blocked by https://sourceforge.net/p/uncrustify/bugs/619/
-# can be turned back on at any time
-mod_add_long_ifdef_else_comment=0
-mod_add_long_ifdef_endif_comment=0
-
-
-# Setting this 'false' will cause an extra tab to be added to function call args from an assignment:
-#
-# x = o.Func2(a, b,
-# y);
-# o.Func2(a, b,
-# y);
-#
-# ...but setting it 'true' is often worse:
-#
-# ExtraReallyLongType reallyLongVariableName = someTest
-# ? someTrueExpr
-# : someFalseExpr
-#
-# ...except sometimes we really do want that. What we need is an indent_align_assign_threshold, or,
-# better but maybe more complicated, indent_align_assign=ignore to leave alone what the engineer did.
-# (currently unreported)
-indent_align_assign=false
-
-# this is causing a few problems, but usually with block comments and autodoc markup. perhaps only add a space
-# if first letter is not a symbol and this is a standalone comment: not preceded or followed by another c++
-# comment line at the same level of indentation.
-# REVISIT: work was done to have it eliminate space for doxygen markup in c6aca7b, maybe can improve on it for us
-# (test using Runtime/Allocator/BucketAllocator.h)
-# IMPORTANT: see task at https://trello.com/c/wUgiuvbX before going further
-#sp_cmt_cpp_start=add
-sp_cmt_cpp_start=ignore
-
-# https://sourceforge.net/p/uncrustify/bugs/619/
-#sp_endif_cmt=force
-sp_endif_cmt=ignore
-
-# want to turn this on, but can't do it without also getting alignment right. try running it on this file as an example:
-# Tools\BugReporterV2\qt_face\lib\src\MainWindow.cpp
-#nl_cpp_ldef_brace=force
-indent_member_single=true
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-32658.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-32658.cfg
deleted file mode 100644
index 9333a9c5..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-32658.cfg
+++ /dev/null
@@ -1,286 +0,0 @@
-input_tab_size=4
-string_replace_tab_chars=true
-tok_split_gte=false
-disable_processing_cmt=*begin-nonstandard-formatting*
-enable_processing_cmt=*end-nonstandard-formatting*
-utf8_bom=remove
-utf8_byte=false
-utf8_force=false
-indent_columns=4
-indent_with_tabs=0
-indent_cmt_with_tabs=false
-indent_align_string=false
-indent_braces=false
-indent_braces_no_func=false
-indent_braces_no_class=false
-indent_braces_no_struct=false
-indent_brace_parent=false
-indent_cs_delegate_brace=true
-indent_namespace=true
-indent_extern=false
-indent_class=true
-indent_class_colon=false
-indent_else_if=false
-indent_var_def_cont=false
-indent_func_call_param=true
-indent_func_def_param=true
-indent_func_proto_param=true
-indent_func_class_param=false
-indent_func_ctor_var_param=false
-indent_template_param=false
-indent_func_param_double=false
-indent_member_single=false
-indent_relative_single_line_comments=false
-indent_switch_case=4
-indent_case_shift=0
-indent_case_brace=0
-indent_col1_comment=false
-indent_label=-4
-indent_access_spec=-4
-indent_paren_nl=false
-indent_comma_paren=false
-indent_bool_paren=false
-indent_first_bool_expr=false
-indent_square_nl=false
-indent_preserve_sql=false
-indent_align_paren=false
-indent_oc_block_msg_xcode_style=true
-indent_off_after_return_new=true
-indent_single_after_return=true
-sp_arith=add
-sp_assign=add
-sp_assign_default=add
-sp_enum_assign=add
-sp_pp_concat=remove
-sp_pp_stringify=remove
-sp_bool=add
-sp_compare=add
-sp_inside_paren=remove
-sp_paren_paren=remove
-sp_balance_nested_parens=false
-sp_paren_brace=force
-sp_after_type=ignore
-sp_template_angle=remove
-sp_before_angle=remove
-sp_inside_angle=remove
-sp_angle_paren=remove
-sp_angle_paren_empty=remove
-sp_angle_word=add
-sp_angle_shift=remove
-sp_before_sparen=force
-sp_inside_sparen=remove
-sp_after_sparen=add
-sp_sparen_brace=force
-sp_special_semi=force
-sp_before_semi=remove
-sp_before_semi_for=remove
-sp_before_semi_for_empty=remove
-sp_between_semi_for_empty=remove
-sp_after_semi=add
-sp_after_semi_for=force
-sp_after_semi_for_empty=remove
-sp_before_square=remove
-sp_before_squares=remove
-sp_inside_square=remove
-sp_after_comma=add
-sp_before_comma=ignore
-sp_after_mdatype_commas=remove
-sp_before_mdatype_commas=remove
-sp_between_mdatype_commas=remove
-sp_paren_comma=remove
-sp_after_class_colon=force
-sp_before_class_colon=force
-sp_before_case_colon=remove
-sp_after_operator=remove
-sp_after_operator_sym=remove
-sp_after_operator_sym_empty=remove
-sp_after_cast=remove
-sp_inside_paren_cast=remove
-sp_cpp_cast_paren=remove
-sp_sizeof_paren=remove
-sp_inside_braces_enum=add
-sp_inside_braces_empty=remove
-sp_type_func=ignore
-sp_func_proto_paren=remove
-sp_func_def_paren=remove
-sp_inside_fparens=remove
-sp_inside_fparen=remove
-sp_fparen_brace=add
-sp_func_call_paren=remove
-sp_func_call_paren_empty=remove
-sp_func_call_user_paren=remove
-sp_func_class_paren=remove
-sp_return_paren=add
-sp_defined_paren=remove
-sp_throw_paren=add
-sp_catch_paren=add
-sp_brace_typedef=add
-sp_getset_brace=add
-sp_after_dc=remove
-sp_not=remove
-sp_inv=remove
-sp_addr=remove
-sp_member=remove
-sp_deref=remove
-sp_sign=remove
-sp_incdec=remove
-sp_before_nl_cont=add
-sp_after_oc_scope=force
-sp_after_oc_colon=remove
-sp_before_oc_colon=remove
-sp_after_oc_dict_colon=force
-sp_before_oc_dict_colon=remove
-sp_after_send_oc_colon=force
-sp_before_send_oc_colon=remove
-sp_after_oc_type=remove
-sp_after_oc_return_type=remove
-sp_after_oc_at_sel=remove
-sp_inside_oc_at_sel_parens=remove
-sp_cond_colon=add
-sp_cond_question=add
-sp_case_label=ignore
-sp_after_new=force
-sp_between_new_paren=remove
-sp_skip_vbrace_tokens=true
-align_keep_tabs=false
-align_with_tabs=false
-align_on_tabstop=false
-align_number_right=false
-align_func_params=false
-align_same_func_call_params=false
-align_var_def_colon=false
-align_var_def_attribute=false
-align_var_def_inline=false
-align_right_cmt_mix=false
-align_on_operator=false
-align_mix_var_proto=false
-align_single_line_func=false
-align_single_line_brace=false
-align_nl_cont=false
-align_left_shift=false
-nl_collapse_empty_body=false
-nl_assign_leave_one_liners=true
-nl_class_leave_one_liners=true
-nl_enum_leave_one_liners=true
-nl_getset_leave_one_liners=true
-nl_func_leave_one_liners=true
-nl_cpp_lambda_leave_one_liners=true
-nl_if_leave_one_liners=false
-nl_oc_msg_leave_one_liner=true
-nl_start_of_file=remove
-nl_end_of_file=force
-nl_end_of_file_min=1
-nl_assign_brace=force
-nl_enum_brace=force
-nl_struct_brace=force
-nl_union_brace=force
-nl_if_brace=force
-nl_brace_else=force
-nl_else_brace=force
-nl_else_if=remove
-nl_brace_finally=force
-nl_finally_brace=force
-nl_try_brace=force
-nl_getset_brace=force
-nl_for_brace=force
-nl_catch_brace=force
-nl_brace_catch=force
-nl_while_brace=force
-nl_using_brace=force
-nl_brace_brace=ignore
-nl_do_brace=force
-nl_brace_while=force
-nl_switch_brace=force
-nl_multi_line_cond=false
-nl_before_case=false
-nl_after_case=false
-nl_case_colon_brace=force
-nl_namespace_brace=force
-nl_template_class=ignore
-nl_class_brace=force
-nl_fdef_brace=force
-nl_after_semicolon=false
-nl_after_brace_open=false
-nl_after_brace_open_cmt=false
-nl_after_vbrace_open=false
-nl_after_vbrace_open_empty=false
-nl_after_brace_close=false
-nl_after_vbrace_close=false
-nl_squeeze_ifdef=false
-nl_ds_struct_enum_cmt=false
-nl_ds_struct_enum_close_brace=false
-nl_namespace_two_to_one_liner=false
-nl_create_if_one_liner=false
-nl_create_for_one_liner=false
-nl_create_while_one_liner=false
-nl_create_func_def_one_liner=false
-ls_for_split_full=false
-ls_func_split_full=false
-nl_max=3
-nl_after_func_body=2
-nl_after_multiline_comment=false
-nl_property_brace=force
-eat_blanks_after_open_brace=true
-eat_blanks_before_close_brace=true
-nl_after_return=false
-mod_full_brace_if_chain=false
-mod_paren_on_return=ignore
-mod_pawn_semicolon=false
-mod_full_paren_if_bool=false
-mod_remove_extra_semicolon=true
-mod_move_case_break=false
-mod_remove_empty_return=true
-cmt_convert_tab_to_spaces=True
-cmt_indent_multi=false
-cmt_c_group=false
-cmt_c_nl_start=false
-cmt_c_nl_end=false
-cmt_cpp_group=false
-cmt_cpp_nl_start=false
-cmt_cpp_nl_end=false
-cmt_cpp_to_c=false
-cmt_star_cont=false
-cmt_multi_check_last=false
-cmt_insert_before_preproc=false
-pp_space=ignore
-use_options_overriding_for_qt_macros=false
-warn_level_tabs_found_in_verbatim_string_literals=1
-# blocked by https://sourceforge.net/p/uncrustify/bugs/619/
-# can be turned back on at any time
-mod_add_long_ifdef_else_comment=0
-mod_add_long_ifdef_endif_comment=0
-
-# Setting this 'false' will cause an extra tab to be added to function call args from an assignment:
-#
-# x = o.Func2(a, b,
-# y);
-# o.Func2(a, b,
-# y);
-#
-# ...but setting it 'true' is often worse:
-#
-# ExtraReallyLongType reallyLongVariableName = someTest
-# ? someTrueExpr
-# : someFalseExpr
-#
-# ...except sometimes we really do want that. What we need is an indent_align_assign_threshold, or,
-# better but maybe more complicated, indent_align_assign=ignore to leave alone what the engineer did.
-# (currently unreported)
-indent_align_assign=false
-
-# this is causing a few problems, but usually with block comments and autodoc markup. perhaps only add a space
-# if first letter is not a symbol and this is a standalone comment: not preceded or followed by another c++
-# comment line at the same level of indentation.
-# REVISIT: work was done to have it eliminate space for doxygen markup in c6aca7b, maybe can improve on it for us
-# (test using Runtime/Allocator/BucketAllocator.h)
-# IMPORTANT: see task at https://trello.com/c/wUgiuvbX before going further
-#sp_cmt_cpp_start=add
-sp_cmt_cpp_start=ignore
-
-# https://sourceforge.net/p/uncrustify/bugs/619/
-#sp_endif_cmt=force
-sp_endif_cmt=ignore
-
-# want to turn this on, but can't do it without also getting alignment right. try running it on this file as an example:
-# Tools\BugReporterV2\qt_face\lib\src\MainWindow.cpp
-#nl_cpp_ldef_brace=force
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-37241.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-37241.cfg
deleted file mode 100644
index ad1ac1cc..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-37241.cfg
+++ /dev/null
@@ -1,287 +0,0 @@
-input_tab_size=4 # Number
-string_replace_tab_chars=true # { False, True }
-tok_split_gte=false # { False, True }
-disable_processing_cmt=*begin-nonstandard-formatting*
-enable_processing_cmt=*end-nonstandard-formatting*
-utf8_bom=remove # { Ignore, Add, Remove, Force }
-utf8_byte=false # { False, True }
-utf8_force=false # { False, True }
-indent_columns=4 # Number
-indent_with_tabs=0 # Number
-indent_cmt_with_tabs=false # { False, True }
-indent_align_string=false # { False, True }
-indent_braces=false # { False, True }
-indent_braces_no_func=false # { False, True }
-indent_braces_no_class=false # { False, True }
-indent_braces_no_struct=false # { False, True }
-indent_brace_parent=false # { False, True }
-indent_cs_delegate_brace=true # { False, True }
-indent_namespace=true # { False, True }
-indent_extern=false # { False, True }
-indent_class=true # { False, True }
-indent_class_colon=false # { False, True }
-indent_else_if=false # { False, True }
-indent_var_def_cont=false # { False, True }
-indent_func_call_param=true # { False, True }
-indent_func_def_param=true # { False, True }
-indent_func_proto_param=true # { False, True }
-indent_func_class_param=false # { False, True }
-indent_func_ctor_var_param=false # { False, True }
-indent_template_param=false # { False, True }
-indent_func_param_double=false # { False, True }
-indent_member_single=false # false/true
-indent_relative_single_line_comments=false # { False, True }
-indent_switch_case=4 # Number
-indent_case_shift=0 # Number
-indent_case_brace=0 # Number
-indent_col1_comment=false # { False, True }
-indent_label=-4 # Number
-indent_access_spec=-4 # Number
-indent_paren_nl=false # { False, True }
-indent_comma_paren=false # { False, True }
-indent_bool_paren=false # { False, True }
-indent_first_bool_expr=false # { False, True }
-indent_square_nl=false # { False, True }
-indent_preserve_sql=false # { False, True }
-indent_align_paren=false # { False, True }
-indent_oc_block_msg_xcode_style=true # { False, True }
-indent_off_after_return_new=true # { False, True }
-indent_single_after_return=true # { False, True }
-sp_arith=add # { Ignore, Add, Remove, Force }
-sp_assign=add # { Ignore, Add, Remove, Force }
-sp_assign_default=add # { Ignore, Add, Remove, Force }
-sp_enum_assign=add # { Ignore, Add, Remove, Force }
-sp_pp_concat=remove # { Ignore, Add, Remove, Force }
-sp_pp_stringify=remove # { Ignore, Add, Remove, Force }
-sp_bool=add # { Ignore, Add, Remove, Force }
-sp_compare=add # { Ignore, Add, Remove, Force }
-sp_inside_paren=remove # { Ignore, Add, Remove, Force }
-sp_paren_paren=remove # { Ignore, Add, Remove, Force }
-sp_balance_nested_parens=false # { False, True }
-sp_paren_brace=force # { Ignore, Add, Remove, Force }
-sp_after_type=ignore # { Ignore, Add, Remove, Force }
-sp_template_angle=remove # { Ignore, Add, Remove, Force }
-sp_before_angle=remove # { Ignore, Add, Remove, Force }
-sp_inside_angle=remove # { Ignore, Add, Remove, Force }
-sp_angle_paren=remove # { Ignore, Add, Remove, Force }
-sp_angle_paren_empty=remove # { Ignore, Add, Remove, Force }
-sp_angle_word=add # { Ignore, Add, Remove, Force }
-sp_angle_shift=remove # { Ignore, Add, Remove, Force }
-sp_before_sparen=force # { Ignore, Add, Remove, Force }
-sp_inside_sparen=remove # { Ignore, Add, Remove, Force }
-sp_after_sparen=add # { Ignore, Add, Remove, Force }
-sp_sparen_brace=force # { Ignore, Add, Remove, Force }
-sp_special_semi=force # { Ignore, Add, Remove, Force }
-sp_before_semi=remove # { Ignore, Add, Remove, Force }
-sp_before_semi_for=remove # { Ignore, Add, Remove, Force }
-sp_before_semi_for_empty=remove # { Ignore, Add, Remove, Force }
-sp_between_semi_for_empty=remove # { Ignore, Add, Remove, Force }
-sp_after_semi=add # { Ignore, Add, Remove, Force }
-sp_after_semi_for=force # { Ignore, Add, Remove, Force }
-sp_after_semi_for_empty=remove # { Ignore, Add, Remove, Force }
-sp_before_square=remove # { Ignore, Add, Remove, Force }
-sp_before_squares=remove # { Ignore, Add, Remove, Force }
-sp_inside_square=remove # { Ignore, Add, Remove, Force }
-sp_after_comma=add # { Ignore, Add, Remove, Force }
-sp_before_comma=ignore # { Ignore, Add, Remove, Force }
-sp_after_mdatype_commas=remove # { Ignore, Add, Remove, Force }
-sp_before_mdatype_commas=remove # { Ignore, Add, Remove, Force }
-sp_between_mdatype_commas=remove # { Ignore, Add, Remove, Force }
-sp_paren_comma=remove # { Ignore, Add, Remove, Force }
-sp_after_class_colon=force # { Ignore, Add, Remove, Force }
-sp_before_class_colon=force # { Ignore, Add, Remove, Force }
-sp_before_case_colon=remove # { Ignore, Add, Remove, Force }
-sp_after_operator=remove # { Ignore, Add, Remove, Force }
-sp_after_operator_sym=remove # { Ignore, Add, Remove, Force }
-sp_after_operator_sym_empty=remove # { Ignore, Add, Remove, Force }
-sp_after_cast=remove # { Ignore, Add, Remove, Force }
-sp_inside_paren_cast=remove # { Ignore, Add, Remove, Force }
-sp_cpp_cast_paren=remove # { Ignore, Add, Remove, Force }
-sp_sizeof_paren=remove # { Ignore, Add, Remove, Force }
-sp_inside_braces_enum=add # { Ignore, Add, Remove, Force }
-sp_inside_braces_empty=remove # { Ignore, Add, Remove, Force }
-sp_type_func=ignore # { Ignore, Add, Remove, Force }
-sp_func_proto_paren=remove # { Ignore, Add, Remove, Force }
-sp_func_def_paren=remove # { Ignore, Add, Remove, Force }
-sp_inside_fparens=remove # { Ignore, Add, Remove, Force }
-sp_inside_fparen=remove # { Ignore, Add, Remove, Force }
-sp_fparen_brace=add # { Ignore, Add, Remove, Force }
-sp_func_call_paren=remove # { Ignore, Add, Remove, Force }
-sp_func_call_paren_empty=remove # { Ignore, Add, Remove, Force }
-sp_func_call_user_paren=remove # { Ignore, Add, Remove, Force }
-sp_func_class_paren=remove # { Ignore, Add, Remove, Force }
-sp_return_paren=add # { Ignore, Add, Remove, Force }
-sp_defined_paren=remove # { Ignore, Add, Remove, Force }
-sp_throw_paren=add # { Ignore, Add, Remove, Force }
-sp_catch_paren=add # { Ignore, Add, Remove, Force }
-sp_brace_typedef=add # { Ignore, Add, Remove, Force }
-sp_getset_brace=add # { Ignore, Add, Remove, Force }
-sp_after_dc=remove # { Ignore, Add, Remove, Force }
-sp_not=remove # { Ignore, Add, Remove, Force }
-sp_inv=remove # { Ignore, Add, Remove, Force }
-sp_addr=remove # { Ignore, Add, Remove, Force }
-sp_member=remove # { Ignore, Add, Remove, Force }
-sp_deref=remove # { Ignore, Add, Remove, Force }
-sp_sign=remove # { Ignore, Add, Remove, Force }
-sp_incdec=remove # { Ignore, Add, Remove, Force }
-sp_before_nl_cont=add # { Ignore, Add, Remove, Force }
-sp_after_oc_scope=force # { Ignore, Add, Remove, Force }
-sp_after_oc_colon=remove # { Ignore, Add, Remove, Force }
-sp_before_oc_colon=remove # { Ignore, Add, Remove, Force }
-sp_after_oc_dict_colon=force # { Ignore, Add, Remove, Force }
-sp_before_oc_dict_colon=remove # { Ignore, Add, Remove, Force }
-sp_after_send_oc_colon=force # { Ignore, Add, Remove, Force }
-sp_before_send_oc_colon=remove # { Ignore, Add, Remove, Force }
-sp_after_oc_type=remove # { Ignore, Add, Remove, Force }
-sp_after_oc_return_type=remove # { Ignore, Add, Remove, Force }
-sp_after_oc_at_sel=remove # { Ignore, Add, Remove, Force }
-sp_inside_oc_at_sel_parens=remove # { Ignore, Add, Remove, Force }
-sp_cond_colon=add # { Ignore, Add, Remove, Force }
-sp_cond_question=add # { Ignore, Add, Remove, Force }
-sp_case_label=ignore # { Ignore, Add, Remove, Force }
-sp_after_new=force # { Ignore, Add, Remove, Force }
-sp_between_new_paren=remove # { Ignore, Add, Remove, Force }
-sp_skip_vbrace_tokens=true # { False, True }
-align_keep_tabs=false # { False, True }
-align_with_tabs=false # { False, True }
-align_on_tabstop=false # { False, True }
-align_number_right=false # { False, True }
-align_func_params=false # { False, True }
-align_same_func_call_params=false # { False, True }
-align_var_def_colon=false # { False, True }
-align_var_def_attribute=false # { False, True }
-align_var_def_inline=false # { False, True }
-align_right_cmt_mix=false # { False, True }
-align_on_operator=false # { False, True }
-align_mix_var_proto=false # { False, True }
-align_single_line_func=false # { False, True }
-align_single_line_brace=false # { False, True }
-align_nl_cont=false # { False, True }
-align_left_shift=false # { False, True }
-nl_collapse_empty_body=false # { False, True }
-nl_assign_leave_one_liners=true # { False, True }
-nl_class_leave_one_liners=true # { False, True }
-nl_enum_leave_one_liners=true # { False, True }
-nl_getset_leave_one_liners=true # { False, True }
-nl_func_leave_one_liners=true # { False, True }
-nl_cpp_lambda_leave_one_liners=true # { False, True }
-nl_if_leave_one_liners=false # { False, True }
-nl_oc_msg_leave_one_liner=true # { False, True }
-nl_start_of_file=remove # { Ignore, Add, Remove, Force }
-nl_end_of_file=force # { Ignore, Add, Remove, Force }
-nl_end_of_file_min=1 # Number
-nl_assign_brace=force # { Ignore, Add, Remove, Force }
-nl_enum_brace=force # { Ignore, Add, Remove, Force }
-nl_struct_brace=force # { Ignore, Add, Remove, Force }
-nl_union_brace=force # { Ignore, Add, Remove, Force }
-nl_if_brace=force # { Ignore, Add, Remove, Force }
-nl_brace_else=force # { Ignore, Add, Remove, Force }
-nl_else_brace=force # { Ignore, Add, Remove, Force }
-nl_else_if=remove # { Ignore, Add, Remove, Force }
-nl_brace_finally=force # { Ignore, Add, Remove, Force }
-nl_finally_brace=force # { Ignore, Add, Remove, Force }
-nl_try_brace=force # { Ignore, Add, Remove, Force }
-nl_getset_brace=force # { Ignore, Add, Remove, Force }
-nl_for_brace=force # { Ignore, Add, Remove, Force }
-nl_catch_brace=force # { Ignore, Add, Remove, Force }
-nl_brace_catch=force # { Ignore, Add, Remove, Force }
-nl_while_brace=force # { Ignore, Add, Remove, Force }
-nl_using_brace=force # { Ignore, Add, Remove, Force }
-nl_brace_brace=ignore # { Ignore, Add, Remove, Force }
-nl_do_brace=force # { Ignore, Add, Remove, Force }
-nl_brace_while=force # { Ignore, Add, Remove, Force }
-nl_switch_brace=force # { Ignore, Add, Remove, Force }
-nl_multi_line_cond=false # { False, True }
-nl_before_case=false # { False, True }
-nl_after_case=false # { False, True }
-nl_case_colon_brace=force # { Ignore, Add, Remove, Force }
-nl_namespace_brace=force # { Ignore, Add, Remove, Force }
-nl_template_class=ignore # { Ignore, Add, Remove, Force }
-nl_class_brace=force # { Ignore, Add, Remove, Force }
-nl_fdef_brace=force # { Ignore, Add, Remove, Force }
-nl_after_semicolon=false # { False, True }
-nl_after_brace_open=false # { False, True }
-nl_after_brace_open_cmt=false # { False, True }
-nl_after_vbrace_open=false # { False, True }
-nl_after_vbrace_open_empty=false # { False, True }
-nl_after_brace_close=false # { False, True }
-nl_after_vbrace_close=false # { False, True }
-nl_squeeze_ifdef=false # { False, True }
-nl_ds_struct_enum_cmt=false # { False, True }
-nl_ds_struct_enum_close_brace=false # { False, True }
-nl_namespace_two_to_one_liner=false # { False, True }
-nl_create_if_one_liner=false # { False, True }
-nl_create_for_one_liner=false # { False, True }
-nl_create_while_one_liner=false # { False, True }
-nl_create_func_def_one_liner=false # { False, True }
-ls_for_split_full=false # { False, True }
-ls_func_split_full=false # { False, True }
-nl_max=3 # Number
-nl_after_func_body=2 # Number
-nl_after_multiline_comment=false # { False, True }
-nl_property_brace=force # { Ignore, Add, Remove, Force }
-eat_blanks_after_open_brace=true # { False, True }
-eat_blanks_before_close_brace=true # { False, True }
-nl_after_return=false # { False, True }
-mod_full_brace_if_chain=false # { False, True }
-mod_paren_on_return=ignore # { Ignore, Add, Remove, Force }
-mod_pawn_semicolon=false # { False, True }
-mod_full_paren_if_bool=false # { False, True }
-mod_remove_extra_semicolon=true # { False, True }
-mod_move_case_break=false # { False, True }
-mod_remove_empty_return=true # { False, True }
-cmt_convert_tab_to_spaces=True # { False, True }
-cmt_indent_multi=false # { False, True }
-cmt_c_group=false # { False, True }
-cmt_c_nl_start=false # { False, True }
-cmt_c_nl_end=false # { False, True }
-cmt_cpp_group=false # { False, True }
-cmt_cpp_nl_start=false # { False, True }
-cmt_cpp_nl_end=false # { False, True }
-cmt_cpp_to_c=false # { False, True }
-cmt_star_cont=false # { False, True }
-cmt_multi_check_last=false # { False, True }
-cmt_insert_before_preproc=false # { False, True }
-pp_space=ignore # { Ignore, Add, Remove, Force }
-use_options_overriding_for_qt_macros=false # { False, True }
-warn_level_tabs_found_in_verbatim_string_literals=1 # { 1, 2, 3 }
-# blocked by https://sourceforge.net/p/uncrustify/bugs/619/
-# can be turned back on at any time
-mod_add_long_ifdef_else_comment=0
-mod_add_long_ifdef_endif_comment=0
-
-# Setting this 'false' will cause an extra tab to be added to function call args from an assignment:
-#
-# x = o.Func2(a, b,
-# y);
-# o.Func2(a, b,
-# y);
-#
-# ...but setting it 'true' is often worse:
-#
-# ExtraReallyLongType reallyLongVariableName = someTest
-# ? someTrueExpr
-# : someFalseExpr
-#
-# ...except sometimes we really do want that. What we need is an indent_align_assign_threshold, or,
-# better but maybe more complicated, indent_align_assign=ignore to leave alone what the engineer did.
-# (currently unreported)
-indent_align_assign=false
-
-# this is causing a few problems, but usually with block comments and autodoc markup. perhaps only add a space
-# if first letter is not a symbol and this is a standalone comment: not preceded or followed by another c++
-# comment line at the same level of indentation.
-# REVISIT: work was done to have it eliminate space for doxygen markup in c6aca7b, maybe can improve on it for us
-# (test using Runtime/Allocator/BucketAllocator.h)
-# IMPORTANT: see task at https://trello.com/c/wUgiuvbX before going further
-#sp_cmt_cpp_start=add
-sp_cmt_cpp_start=ignore
-
-# https://sourceforge.net/p/uncrustify/bugs/619/
-#sp_endif_cmt=force
-sp_endif_cmt=ignore
-
-# want to turn this on, but can't do it without also getting alignment right. try running it on this file as an example:
-# Tools\BugReporterV2\qt_face\lib\src\MainWindow.cpp
-#nl_cpp_ldef_brace=force
-nl_cs_property_leave_one_liners=true
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/bug_1620.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/bug_1620.cfg
deleted file mode 100644
index 6b14154d..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/bug_1620.cfg
+++ /dev/null
@@ -1,289 +0,0 @@
-input_tab_size=4
-string_replace_tab_chars=true
-tok_split_gte=false
-disable_processing_cmt=*begin-nonstandard-formatting*
-enable_processing_cmt=*end-nonstandard-formatting*
-utf8_bom=remove
-utf8_byte=false
-utf8_force=false
-indent_columns=4
-indent_with_tabs=0
-indent_cmt_with_tabs=false
-indent_align_string=false
-indent_braces=false
-indent_braces_no_func=false
-indent_braces_no_class=false
-indent_braces_no_struct=false
-indent_brace_parent=false
-indent_cs_delegate_brace=true
-indent_namespace=true
-indent_extern=false
-indent_class=true
-indent_class_colon=false
-indent_else_if=false
-indent_var_def_cont=false
-indent_func_call_param=true
-indent_func_def_param=true
-indent_func_proto_param=true
-indent_func_class_param=false
-indent_func_ctor_var_param=false
-indent_template_param=false
-indent_func_param_double=false
-indent_member_single=false
-indent_relative_single_line_comments=false
-indent_switch_case=4
-indent_case_shift=0
-indent_case_brace=0
-indent_col1_comment=false
-indent_label=-4
-indent_access_spec=-4
-indent_paren_nl=false
-indent_comma_paren=false
-indent_bool_paren=false
-indent_first_bool_expr=false
-indent_square_nl=false
-indent_preserve_sql=false
-indent_align_paren=false
-indent_oc_block_msg_xcode_style=true
-indent_off_after_return_new=true
-indent_single_after_return=true
-sp_arith=add
-sp_assign=add
-sp_assign_default=add
-sp_enum_assign=add
-sp_pp_concat=remove
-sp_pp_stringify=remove
-sp_bool=add
-sp_compare=add
-sp_inside_paren=remove
-sp_paren_paren=remove
-sp_balance_nested_parens=false
-sp_paren_brace=force
-sp_after_type=ignore
-sp_template_angle=remove
-sp_before_angle=remove
-sp_inside_angle=remove
-sp_angle_paren=remove
-sp_angle_paren_empty=remove
-sp_angle_word=add
-sp_angle_shift=remove
-sp_before_sparen=force
-sp_inside_sparen=remove
-sp_after_sparen=add
-sp_sparen_brace=force
-sp_special_semi=force
-sp_before_semi=remove
-sp_before_semi_for=remove
-sp_before_semi_for_empty=remove
-sp_between_semi_for_empty=remove
-sp_after_semi=add
-sp_after_semi_for=force
-sp_after_semi_for_empty=remove
-sp_before_square=remove
-sp_before_squares=remove
-sp_inside_square=remove
-sp_after_comma=add
-sp_before_comma=ignore
-sp_after_mdatype_commas=remove
-sp_before_mdatype_commas=remove
-sp_between_mdatype_commas=remove
-sp_paren_comma=remove
-sp_after_class_colon=force
-sp_before_class_colon=force
-sp_before_case_colon=remove
-sp_after_operator=remove
-sp_after_operator_sym=remove
-sp_after_operator_sym_empty=remove
-sp_after_cast=remove
-sp_inside_paren_cast=remove
-sp_cpp_cast_paren=remove
-sp_sizeof_paren=remove
-sp_inside_braces_enum=add
-sp_inside_braces_empty=remove
-sp_type_func=ignore
-sp_func_proto_paren=remove
-sp_func_def_paren=remove
-sp_inside_fparens=remove
-sp_inside_fparen=remove
-sp_fparen_brace=add
-sp_func_call_paren=remove
-sp_func_call_paren_empty=remove
-sp_func_call_user_paren=remove
-sp_func_class_paren=remove
-sp_return_paren=add
-sp_defined_paren=remove
-sp_throw_paren=add
-sp_catch_paren=add
-sp_brace_typedef=add
-sp_getset_brace=add
-sp_after_dc=remove
-sp_not=remove
-sp_inv=remove
-sp_addr=remove
-sp_member=remove
-sp_deref=remove
-sp_sign=remove
-sp_incdec=remove
-sp_before_nl_cont=add
-sp_after_oc_scope=force
-sp_after_oc_colon=remove
-sp_before_oc_colon=remove
-sp_after_oc_dict_colon=force
-sp_before_oc_dict_colon=remove
-sp_after_send_oc_colon=force
-sp_before_send_oc_colon=remove
-sp_after_oc_type=remove
-sp_after_oc_return_type=remove
-sp_after_oc_at_sel=remove
-sp_inside_oc_at_sel_parens=remove
-sp_cond_colon=add
-sp_cond_question=add
-sp_case_label=ignore
-sp_after_new=force
-sp_between_new_paren=remove
-sp_skip_vbrace_tokens=true
-align_keep_tabs=false
-align_with_tabs=false
-align_on_tabstop=false
-align_number_right=false
-align_func_params=false
-align_same_func_call_params=false
-align_var_def_colon=false
-align_var_def_attribute=false
-align_var_def_inline=false
-align_right_cmt_mix=false
-align_on_operator=false
-align_mix_var_proto=false
-align_single_line_func=false
-align_single_line_brace=false
-align_nl_cont=false
-align_left_shift=false
-nl_collapse_empty_body=false
-nl_assign_leave_one_liners=true
-nl_class_leave_one_liners=true
-nl_enum_leave_one_liners=true
-nl_getset_leave_one_liners=true
-nl_func_leave_one_liners=true
-nl_cpp_lambda_leave_one_liners=true
-nl_if_leave_one_liners=false
-nl_oc_msg_leave_one_liner=true
-nl_start_of_file=remove
-nl_end_of_file=force
-nl_end_of_file_min=1
-nl_assign_brace=force
-nl_enum_brace=force
-nl_struct_brace=force
-nl_union_brace=force
-nl_if_brace=force
-nl_brace_else=force
-nl_else_brace=force
-nl_else_if=remove
-nl_brace_finally=force
-nl_finally_brace=force
-nl_try_brace=force
-nl_getset_brace=force
-nl_for_brace=force
-nl_catch_brace=force
-nl_brace_catch=force
-nl_while_brace=force
-nl_using_brace=force
-nl_brace_brace=ignore
-nl_do_brace=force
-nl_brace_while=force
-nl_switch_brace=force
-nl_multi_line_cond=false
-nl_before_case=false
-nl_after_case=false
-nl_case_colon_brace=force
-nl_namespace_brace=force
-nl_template_class=ignore
-nl_class_brace=force
-nl_fdef_brace=force
-nl_after_semicolon=false
-nl_after_brace_open=false
-nl_after_brace_open_cmt=false
-nl_after_vbrace_open=false
-nl_after_vbrace_open_empty=false
-nl_after_brace_close=false
-nl_after_vbrace_close=false
-nl_squeeze_ifdef=false
-nl_ds_struct_enum_cmt=false
-nl_ds_struct_enum_close_brace=false
-nl_namespace_two_to_one_liner=false
-nl_create_if_one_liner=false
-nl_create_for_one_liner=false
-nl_create_while_one_liner=false
-nl_create_func_def_one_liner=false
-ls_for_split_full=false
-ls_func_split_full=false
-nl_max=3
-nl_after_func_body=2
-nl_after_multiline_comment=false
-nl_property_brace=force
-eat_blanks_after_open_brace=true
-eat_blanks_before_close_brace=true
-nl_after_return=false
-mod_full_brace_if_chain=false
-mod_paren_on_return=ignore
-mod_pawn_semicolon=false
-mod_full_paren_if_bool=false
-mod_remove_extra_semicolon=true
-mod_move_case_break=false
-mod_remove_empty_return=true
-cmt_convert_tab_to_spaces=True
-cmt_indent_multi=false
-cmt_c_group=false
-cmt_c_nl_start=false
-cmt_c_nl_end=false
-cmt_cpp_group=false
-cmt_cpp_nl_start=false
-cmt_cpp_nl_end=false
-cmt_cpp_to_c=false
-cmt_star_cont=false
-cmt_multi_check_last=false
-cmt_insert_before_preproc=false
-pp_space=ignore
-use_options_overriding_for_qt_macros=false
-warn_level_tabs_found_in_verbatim_string_literals=1
-mod_add_long_ifdef_else_comment=0
-mod_add_long_ifdef_endif_comment=0
-
-
-
-# Setting this 'false' will cause an extra tab to be added to function call args from an assignment:
-#
-# x = o.Func2(a, b,
-# y);
-# o.Func2(a, b,
-# y);
-#
-# ...but setting it 'true' is often worse:
-#
-# ExtraReallyLongType reallyLongVariableName = someTest
-# ? someTrueExpr
-# : someFalseExpr
-#
-# ...except sometimes we really do want that. What we need is an indent_align_assign_threshold, or,
-# better but maybe more complicated, indent_align_assign=ignore to leave alone what the engineer did.
-# (currently unreported)
-indent_align_assign=false
-
-# this is causing a few problems, but usually with block comments and autodoc markup. perhaps only add a space
-# if first letter is not a symbol and this is a standalone comment: not preceded or followed by another c++
-# comment line at the same level of indentation.
-# REVISIT: work was done to have it eliminate space for doxygen markup in c6aca7b, maybe can improve on it for us
-# (test using Runtime/Allocator/BucketAllocator.h)
-# IMPORTANT: see task at https://trello.com/c/wUgiuvbX before going further
-#sp_cmt_cpp_start=add
-sp_cmt_cpp_start=ignore
-
-# https://sourceforge.net/p/uncrustify/bugs/619/
-#sp_endif_cmt=force
-sp_endif_cmt=ignore
-
-# want to turn this on, but can't do it without also getting alignment right. try running it on this file as an example:
-# Tools\BugReporterV2\qt_face\lib\src\MainWindow.cpp
-#nl_cpp_ldef_brace=force
-indent_paren_open_brace=true
-indent_cs_delegate_brace=false
-indent_paren_close=2
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/bug_1637.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/bug_1637.cfg
deleted file mode 100644
index d083d613..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/bug_1637.cfg
+++ /dev/null
@@ -1,287 +0,0 @@
-input_tab_size=4
-string_replace_tab_chars=true
-tok_split_gte=false
-disable_processing_cmt=*begin-nonstandard-formatting*
-enable_processing_cmt=*end-nonstandard-formatting*
-utf8_bom=remove
-utf8_byte=false
-utf8_force=false
-indent_columns=4
-indent_with_tabs=0
-indent_cmt_with_tabs=false
-indent_align_string=false
-indent_braces=false
-indent_braces_no_func=false
-indent_braces_no_class=false
-indent_braces_no_struct=false
-indent_brace_parent=false
-indent_cs_delegate_brace=true
-indent_namespace=true
-indent_extern=false
-indent_class=true
-indent_class_colon=false
-indent_else_if=false
-indent_var_def_cont=false
-indent_func_call_param=true
-indent_func_def_param=true
-indent_func_proto_param=true
-indent_func_class_param=false
-indent_func_ctor_var_param=false
-indent_template_param=false
-indent_func_param_double=false
-indent_member_single=false
-indent_relative_single_line_comments=false
-indent_switch_case=4
-indent_case_shift=0
-indent_case_brace=0
-indent_col1_comment=false
-indent_label=-4
-indent_access_spec=-4
-indent_paren_nl=false
-indent_comma_paren=false
-indent_bool_paren=false
-indent_first_bool_expr=false
-indent_square_nl=false
-indent_preserve_sql=false
-indent_align_paren=false
-indent_oc_block_msg_xcode_style=true
-indent_off_after_return_new=true
-indent_single_after_return=true
-sp_arith=add
-sp_assign=add
-sp_assign_default=add
-sp_enum_assign=add
-sp_pp_concat=remove
-sp_pp_stringify=remove
-sp_bool=add
-sp_compare=add
-sp_inside_paren=remove
-sp_paren_paren=remove
-sp_balance_nested_parens=false
-sp_paren_brace=force
-sp_after_type=ignore
-sp_template_angle=remove
-sp_before_angle=remove
-sp_inside_angle=remove
-sp_angle_paren=remove
-sp_angle_paren_empty=remove
-sp_angle_word=add
-sp_angle_shift=remove
-sp_before_sparen=force
-sp_inside_sparen=remove
-sp_after_sparen=add
-sp_sparen_brace=force
-sp_special_semi=force
-sp_before_semi=remove
-sp_before_semi_for=remove
-sp_before_semi_for_empty=remove
-sp_between_semi_for_empty=remove
-sp_after_semi=add
-sp_after_semi_for=force
-sp_after_semi_for_empty=remove
-sp_before_square=remove
-sp_before_squares=remove
-sp_inside_square=remove
-sp_after_comma=add
-sp_before_comma=ignore
-sp_after_mdatype_commas=remove
-sp_before_mdatype_commas=remove
-sp_between_mdatype_commas=remove
-sp_paren_comma=remove
-sp_after_class_colon=force
-sp_before_class_colon=force
-sp_before_case_colon=remove
-sp_after_operator=remove
-sp_after_operator_sym=remove
-sp_after_operator_sym_empty=remove
-sp_after_cast=remove
-sp_inside_paren_cast=remove
-sp_cpp_cast_paren=remove
-sp_sizeof_paren=remove
-sp_inside_braces_enum=add
-sp_inside_braces_empty=remove
-sp_type_func=ignore
-sp_func_proto_paren=remove
-sp_func_def_paren=remove
-sp_inside_fparens=remove
-sp_inside_fparen=remove
-sp_fparen_brace=add
-sp_func_call_paren=remove
-sp_func_call_paren_empty=remove
-sp_func_call_user_paren=remove
-sp_func_class_paren=remove
-sp_return_paren=add
-sp_defined_paren=remove
-sp_throw_paren=add
-sp_catch_paren=add
-sp_brace_typedef=add
-sp_getset_brace=add
-sp_after_dc=remove
-sp_not=remove
-sp_inv=remove
-sp_addr=remove
-sp_member=remove
-sp_deref=remove
-sp_sign=remove
-sp_incdec=remove
-sp_before_nl_cont=add
-sp_after_oc_scope=force
-sp_after_oc_colon=remove
-sp_before_oc_colon=remove
-sp_after_oc_dict_colon=force
-sp_before_oc_dict_colon=remove
-sp_after_send_oc_colon=force
-sp_before_send_oc_colon=remove
-sp_after_oc_type=remove
-sp_after_oc_return_type=remove
-sp_after_oc_at_sel=remove
-sp_inside_oc_at_sel_parens=remove
-sp_cond_colon=add
-sp_cond_question=add
-sp_case_label=ignore
-sp_after_new=force
-sp_between_new_paren=remove
-sp_skip_vbrace_tokens=true
-align_keep_tabs=false
-align_with_tabs=false
-align_on_tabstop=false
-align_number_right=false
-align_func_params=false
-align_same_func_call_params=false
-align_var_def_colon=false
-align_var_def_attribute=false
-align_var_def_inline=false
-align_right_cmt_mix=false
-align_on_operator=false
-align_mix_var_proto=false
-align_single_line_func=false
-align_single_line_brace=false
-align_nl_cont=false
-align_left_shift=false
-nl_collapse_empty_body=false
-nl_assign_leave_one_liners=true
-nl_class_leave_one_liners=true
-nl_enum_leave_one_liners=true
-nl_getset_leave_one_liners=true
-nl_func_leave_one_liners=true
-nl_cpp_lambda_leave_one_liners=true
-nl_if_leave_one_liners=false
-nl_oc_msg_leave_one_liner=true
-nl_start_of_file=remove
-nl_end_of_file=force
-nl_end_of_file_min=1
-nl_assign_brace=force
-nl_enum_brace=force
-nl_struct_brace=force
-nl_union_brace=force
-nl_if_brace=force
-nl_brace_else=force
-nl_else_brace=force
-nl_else_if=remove
-nl_brace_finally=force
-nl_finally_brace=force
-nl_try_brace=force
-nl_getset_brace=force
-nl_for_brace=force
-nl_catch_brace=force
-nl_brace_catch=force
-nl_while_brace=force
-nl_using_brace=force
-nl_brace_brace=ignore
-nl_do_brace=force
-nl_brace_while=force
-nl_switch_brace=force
-nl_multi_line_cond=false
-nl_before_case=false
-nl_after_case=false
-nl_case_colon_brace=force
-nl_namespace_brace=force
-nl_template_class=ignore
-nl_class_brace=force
-nl_fdef_brace=force
-nl_after_semicolon=false
-nl_after_brace_open=false
-nl_after_brace_open_cmt=false
-nl_after_vbrace_open=false
-nl_after_vbrace_open_empty=false
-nl_after_brace_close=false
-nl_after_vbrace_close=false
-nl_squeeze_ifdef=false
-nl_ds_struct_enum_cmt=false
-nl_ds_struct_enum_close_brace=false
-nl_namespace_two_to_one_liner=false
-nl_create_if_one_liner=false
-nl_create_for_one_liner=false
-nl_create_while_one_liner=false
-nl_create_func_def_one_liner=false
-ls_for_split_full=false
-ls_func_split_full=false
-nl_max=3
-nl_after_func_body=2
-nl_after_multiline_comment=false
-nl_property_brace=force
-eat_blanks_after_open_brace=true
-eat_blanks_before_close_brace=true
-nl_after_return=false
-mod_full_brace_if_chain=false
-mod_pawn_semicolon=false
-mod_full_paren_if_bool=false
-mod_remove_extra_semicolon=true
-mod_move_case_break=false
-mod_remove_empty_return=true
-cmt_convert_tab_to_spaces=True
-cmt_indent_multi=false
-cmt_c_group=false
-cmt_c_nl_start=false
-cmt_c_nl_end=false
-cmt_cpp_group=false
-cmt_cpp_nl_start=false
-cmt_cpp_nl_end=false
-cmt_cpp_to_c=false
-cmt_star_cont=false
-cmt_multi_check_last=false
-cmt_insert_before_preproc=false
-pp_space=ignore
-use_options_overriding_for_qt_macros=false
-warn_level_tabs_found_in_verbatim_string_literals=1
-mod_add_long_ifdef_else_comment=0
-mod_add_long_ifdef_endif_comment=0
-
-
-
-# Setting this 'false' will cause an extra tab to be added to function call args from an assignment:
-#
-# x = o.Func2(a, b,
-# y);
-# o.Func2(a, b,
-# y);
-#
-# ...but setting it 'true' is often worse:
-#
-# ExtraReallyLongType reallyLongVariableName = someTest
-# ? someTrueExpr
-# : someFalseExpr
-#
-# ...except sometimes we really do want that. What we need is an indent_align_assign_threshold, or,
-# better but maybe more complicated, indent_align_assign=ignore to leave alone what the engineer did.
-# (currently unreported)
-indent_align_assign=false
-
-# this is causing a few problems, but usually with block comments and autodoc markup. perhaps only add a space
-# if first letter is not a symbol and this is a standalone comment: not preceded or followed by another c++
-# comment line at the same level of indentation.
-# REVISIT: work was done to have it eliminate space for doxygen markup in c6aca7b, maybe can improve on it for us
-# (test using Runtime/Allocator/BucketAllocator.h)
-# IMPORTANT: see task at https://trello.com/c/wUgiuvbX before going further
-#sp_cmt_cpp_start=add
-sp_cmt_cpp_start=ignore
-
-# https://sourceforge.net/p/uncrustify/bugs/619/
-#sp_endif_cmt=force
-sp_endif_cmt=ignore
-
-# want to turn this on, but can't do it without also getting alignment right. try running it on this file as an example:
-# Tools\BugReporterV2\qt_face\lib\src\MainWindow.cpp
-#nl_cpp_ldef_brace=force
-
-mod_paren_on_return=remove
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/bug_1650.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/bug_1650.cfg
deleted file mode 100644
index 730c4250..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/bug_1650.cfg
+++ /dev/null
@@ -1,288 +0,0 @@
-input_tab_size=4
-string_replace_tab_chars=true
-tok_split_gte=false
-disable_processing_cmt=*begin-nonstandard-formatting*
-enable_processing_cmt=*end-nonstandard-formatting*
-utf8_bom=remove
-utf8_byte=false
-utf8_force=false
-indent_columns=4
-indent_with_tabs=0
-indent_cmt_with_tabs=false
-indent_align_string=false
-indent_braces=false
-indent_braces_no_func=false
-indent_braces_no_class=false
-indent_braces_no_struct=false
-indent_brace_parent=false
-indent_cs_delegate_brace=true
-indent_namespace=true
-indent_extern=false
-indent_class=true
-indent_class_colon=false
-indent_else_if=false
-indent_var_def_cont=false
-indent_func_call_param=true
-indent_func_def_param=true
-indent_func_proto_param=true
-indent_func_class_param=false
-indent_func_ctor_var_param=false
-indent_template_param=false
-indent_func_param_double=false
-indent_relative_single_line_comments=false
-indent_switch_case=4
-indent_case_shift=0
-indent_case_brace=0
-indent_col1_comment=false
-indent_label=-4
-indent_access_spec=-4
-indent_paren_nl=false
-indent_comma_paren=false
-indent_bool_paren=false
-indent_first_bool_expr=false
-indent_square_nl=false
-indent_preserve_sql=false
-indent_align_paren=false
-indent_oc_block_msg_xcode_style=true
-indent_off_after_return_new=true
-indent_single_after_return=true
-sp_arith=add
-sp_assign=add
-sp_assign_default=add
-sp_enum_assign=add
-sp_pp_concat=remove
-sp_pp_stringify=remove
-sp_bool=add
-sp_compare=add
-sp_inside_paren=remove
-sp_paren_paren=remove
-sp_balance_nested_parens=false
-sp_paren_brace=force
-sp_after_type=ignore
-sp_template_angle=remove
-sp_before_angle=remove
-sp_inside_angle=remove
-sp_angle_paren=remove
-sp_angle_paren_empty=remove
-sp_angle_word=add
-sp_angle_shift=remove
-sp_before_sparen=force
-sp_inside_sparen=remove
-sp_after_sparen=add
-sp_sparen_brace=force
-sp_special_semi=force
-sp_before_semi=remove
-sp_before_semi_for=remove
-sp_before_semi_for_empty=remove
-sp_between_semi_for_empty=remove
-sp_after_semi=add
-sp_after_semi_for=force
-sp_after_semi_for_empty=remove
-sp_before_square=remove
-sp_before_squares=remove
-sp_inside_square=remove
-sp_after_comma=add
-sp_before_comma=ignore
-sp_after_mdatype_commas=remove
-sp_before_mdatype_commas=remove
-sp_between_mdatype_commas=remove
-sp_paren_comma=remove
-sp_after_class_colon=force
-sp_before_class_colon=force
-sp_before_case_colon=remove
-sp_after_operator=remove
-sp_after_operator_sym=remove
-sp_after_operator_sym_empty=remove
-sp_after_cast=remove
-sp_inside_paren_cast=remove
-sp_cpp_cast_paren=remove
-sp_sizeof_paren=remove
-sp_inside_braces_enum=add
-sp_inside_braces_empty=remove
-sp_type_func=ignore
-sp_func_proto_paren=remove
-sp_func_def_paren=remove
-sp_inside_fparens=remove
-sp_inside_fparen=remove
-sp_fparen_brace=add
-sp_func_call_paren=remove
-sp_func_call_paren_empty=remove
-sp_func_call_user_paren=remove
-sp_func_class_paren=remove
-sp_return_paren=add
-sp_defined_paren=remove
-sp_throw_paren=add
-sp_catch_paren=add
-sp_getset_brace=add
-sp_after_dc=remove
-sp_not=remove
-sp_inv=remove
-sp_addr=remove
-sp_member=remove
-sp_deref=remove
-sp_sign=remove
-sp_incdec=remove
-sp_before_nl_cont=add
-sp_after_oc_scope=force
-sp_after_oc_colon=remove
-sp_before_oc_colon=remove
-sp_after_oc_dict_colon=force
-sp_before_oc_dict_colon=remove
-sp_after_send_oc_colon=force
-sp_before_send_oc_colon=remove
-sp_after_oc_type=remove
-sp_after_oc_return_type=remove
-sp_after_oc_at_sel=remove
-sp_inside_oc_at_sel_parens=remove
-sp_cond_colon=add
-sp_cond_question=add
-sp_case_label=ignore
-sp_after_new=force
-sp_between_new_paren=remove
-sp_skip_vbrace_tokens=true
-align_keep_tabs=false
-align_with_tabs=false
-align_on_tabstop=false
-align_number_right=false
-align_func_params=false
-align_same_func_call_params=false
-align_var_def_colon=false
-align_var_def_attribute=false
-align_var_def_inline=false
-align_right_cmt_mix=false
-align_on_operator=false
-align_mix_var_proto=false
-align_single_line_func=false
-align_single_line_brace=false
-align_nl_cont=false
-align_left_shift=false
-nl_collapse_empty_body=false
-nl_assign_leave_one_liners=true
-nl_class_leave_one_liners=true
-nl_enum_leave_one_liners=true
-nl_getset_leave_one_liners=true
-nl_func_leave_one_liners=true
-nl_cpp_lambda_leave_one_liners=true
-nl_if_leave_one_liners=false
-nl_oc_msg_leave_one_liner=true
-nl_start_of_file=remove
-nl_end_of_file=force
-nl_end_of_file_min=1
-nl_assign_brace=force
-nl_enum_brace=force
-nl_struct_brace=force
-nl_union_brace=force
-nl_if_brace=force
-nl_brace_else=force
-nl_else_brace=force
-nl_else_if=remove
-nl_brace_finally=force
-nl_finally_brace=force
-nl_try_brace=force
-nl_getset_brace=force
-nl_for_brace=force
-nl_catch_brace=force
-nl_brace_catch=force
-nl_while_brace=force
-nl_using_brace=force
-nl_brace_brace=ignore
-nl_do_brace=force
-nl_brace_while=force
-nl_switch_brace=force
-nl_multi_line_cond=false
-nl_before_case=false
-nl_after_case=false
-nl_case_colon_brace=force
-nl_namespace_brace=force
-nl_template_class=ignore
-nl_class_brace=force
-nl_fdef_brace=force
-nl_after_semicolon=false
-nl_after_brace_open=false
-nl_after_brace_open_cmt=false
-nl_after_vbrace_open=false
-nl_after_vbrace_open_empty=false
-nl_after_brace_close=false
-nl_after_vbrace_close=false
-nl_squeeze_ifdef=false
-nl_ds_struct_enum_cmt=false
-nl_ds_struct_enum_close_brace=false
-nl_namespace_two_to_one_liner=false
-nl_create_if_one_liner=false
-nl_create_for_one_liner=false
-nl_create_while_one_liner=false
-nl_create_func_def_one_liner=false
-ls_for_split_full=false
-ls_func_split_full=false
-nl_max=3
-nl_after_func_body=2
-nl_after_multiline_comment=false
-nl_property_brace=force
-eat_blanks_after_open_brace=true
-eat_blanks_before_close_brace=true
-nl_after_return=false
-mod_full_brace_if_chain=false
-mod_paren_on_return=ignore
-mod_pawn_semicolon=false
-mod_full_paren_if_bool=false
-mod_remove_extra_semicolon=true
-mod_move_case_break=false
-mod_remove_empty_return=true
-cmt_convert_tab_to_spaces=True
-cmt_indent_multi=false
-cmt_c_group=false
-cmt_c_nl_start=false
-cmt_c_nl_end=false
-cmt_cpp_group=false
-cmt_cpp_nl_start=false
-cmt_cpp_nl_end=false
-cmt_cpp_to_c=false
-cmt_star_cont=false
-cmt_multi_check_last=false
-cmt_insert_before_preproc=false
-pp_space=ignore
-use_options_overriding_for_qt_macros=false
-warn_level_tabs_found_in_verbatim_string_literals=1
-mod_add_long_ifdef_else_comment=0
-mod_add_long_ifdef_endif_comment=0
-
-
-
-# Setting this 'false' will cause an extra tab to be added to function call args from an assignment:
-#
-# x = o.Func2(a, b,
-# y);
-# o.Func2(a, b,
-# y);
-#
-# ...but setting it 'true' is often worse:
-#
-# ExtraReallyLongType reallyLongVariableName = someTest
-# ? someTrueExpr
-# : someFalseExpr
-#
-# ...except sometimes we really do want that. What we need is an indent_align_assign_threshold, or,
-# better but maybe more complicated, indent_align_assign=ignore to leave alone what the engineer did.
-# (currently unreported)
-indent_align_assign=false
-
-# this is causing a few problems, but usually with block comments and autodoc markup. perhaps only add a space
-# if first letter is not a symbol and this is a standalone comment: not preceded or followed by another c++
-# comment line at the same level of indentation.
-# REVISIT: work was done to have it eliminate space for doxygen markup in c6aca7b, maybe can improve on it for us
-# (test using Runtime/Allocator/BucketAllocator.h)
-# IMPORTANT: see task at https://trello.com/c/wUgiuvbX before going further
-#sp_cmt_cpp_start=add
-sp_cmt_cpp_start=ignore
-
-# https://sourceforge.net/p/uncrustify/bugs/619/
-#sp_endif_cmt=force
-sp_endif_cmt=ignore
-
-# want to turn this on, but can't do it without also getting alignment right. try running it on this file as an example:
-# Tools\BugReporterV2\qt_face\lib\src\MainWindow.cpp
-#nl_cpp_ldef_brace=force
-indent_cs_delegate_body=true
-indent_paren_open_brace=true
-indent_member_single=true
-indent_paren_close=2
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/mod_full_brace_nl_block_rem_mlcond-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/mod_full_brace_nl_block_rem_mlcond-1.cfg
deleted file mode 100644
index 800ba158..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/mod_full_brace_nl_block_rem_mlcond-1.cfg
+++ /dev/null
@@ -1,2 +0,0 @@
-mod_full_brace_if_chain = true
-mod_full_brace_nl_block_rem_mlcond = true \ No newline at end of file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/vala/Issue_2090.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/vala/Issue_2090.cfg
deleted file mode 100644
index f6e8529b..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/vala/Issue_2090.cfg
+++ /dev/null
@@ -1,2 +0,0 @@
-sp_type_question = force
-sp_cond_question = add
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cpp.test b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cpp.test
deleted file mode 100644
index 87620719..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cpp.test
+++ /dev/null
@@ -1,1047 +0,0 @@
-#
-# Test cases specifically for the C++ language.
-#
-# Range: 30000 - 39999
-# test.name config.file input.file
-
-# there are additional tests inside imported.test.
-
-02102 common/clark.cfg cpp/indent-c.cpp
-02103 common/clark.cfg cpp/output.cpp
-
-30000 cpp/ben_001.cfg cpp/cout.cpp
-30001 cpp/sp_angle_colon.cfg cpp/alt_tokens.cpp
-30002 cpp/ben_003.cfg cpp/constructor.cpp
-30003 cpp/ben_004.cfg cpp/strings.cpp
-
-30010 cpp/ben_005.cfg cpp/class.h
-30011 cpp/ben_006.cfg cpp/misc.cpp
-30012 cpp/avalon2.cfg cpp/misc2.cpp
-30013 cpp/sim.cfg cpp/sim.h
-30014 common/indent_columns-3.cfg cpp/ctor-var.cpp
-30015 cpp/ben_008.cfg cpp/exception.cpp
-30016 cpp/custom-open.cfg cpp/custom-open.cpp
-30017 cpp/custom-open2.cfg cpp/custom-open.cpp
-30018 cpp/ben_009.cfg cpp/class-addr.h
-30019 cpp/ben_010.cfg cpp/wacky-template.cpp
-
-30020 common/ben_011.cfg cpp/bool.cpp
-30021 cpp/ben_012.cfg cpp/byref.cpp
-30022 cpp/ben_013.cfg cpp/extern_c.h
-30023 cpp/ben_014.cfg cpp/templates.cpp
-30024 cpp/class-nl_func-add.cfg cpp/class-init.cpp
-30025 cpp/class-nl_func-del.cfg cpp/class-init.cpp
-30026 cpp/byref-left.cfg cpp/byref.cpp
-30027 cpp/byref-right.cfg cpp/byref.cpp
-30028 cpp/byref-center.cfg cpp/byref.cpp
-30029 cpp/ben_015.cfg cpp/init_align.h
-
-30030 cpp/avalon.cfg cpp/Timestamp.h
-30031 cpp/avalon.cfg cpp/operator.cpp
-30032 cpp/op-space-force.cfg cpp/operator.cpp
-30033 cpp/op-space-remove.cfg cpp/operator.cpp
-30034 cpp/op-space-force.cfg cpp/operator_proto.cpp
-30035 cpp/op-space-remove.cfg cpp/operator_proto.cpp
-30036 cpp/op-space-remove-align-1.cfg cpp/operator.cpp
-30037 cpp/op-space-remove-align-1.cfg cpp/operator_proto.cpp
-30038 cpp/op-space-remove-align-2.cfg cpp/operator.cpp
-30039 cpp/op-space-remove-align-2.cfg cpp/operator_proto.cpp
-
-30040 cpp/nl_class-r.cfg cpp/nl-class.h
-30041 cpp/nl_class-a.cfg cpp/nl-class.h
-30042 cpp/Issue_2020.cfg cpp/Issue_2020.cpp
-30043 cpp/nl_func_call_empty-r.cfg cpp/nl_func_call_empty.cpp
-30044 cpp/nl_func_call_paren_empty-r.cfg cpp/nl_func_call_paren_empty.cpp
-30045 cpp/nl_func_decl_1.cfg cpp/nl_func_decl.cpp
-30046 cpp/nl_func_decl_2.cfg cpp/nl_func_decl.cpp
-30047 cpp/nl_func_paren_empty.cfg cpp/nl_func_paren_empty.cpp
-30048 cpp/nl_func_def_paren_empty-r.cfg cpp/nl_func_def_paren_empty.cpp
-30049 cpp/nl_func_call_paren-f.cfg cpp/nl_func_call_paren.cpp
-
-30050 cpp/nl_namespace-r.cfg cpp/nl-namespace.h
-30051 cpp/nl_namespace-a.cfg cpp/nl-namespace.h
-30052 cpp/nl_try-a.cfg cpp/try-catch-nl.cpp
-30053 cpp/sp_catch_brace.cfg cpp/exception.cpp
-30054 cpp/Issue_2091.cfg cpp/Issue_2091.cpp
-30055 cpp/nl_after_func_body.cfg cpp/nl_func.cpp
-30056 cpp/nl_after_func_body-2.cfg cpp/nl_func.cpp
-30057 cpp/nl_inside_namespace_1.cfg cpp/nl_inside_namespace.cpp
-30058 cpp/nl_inside_namespace_2.cfg cpp/nl_inside_namespace.cpp
-30059 cpp/Issue_2186.cfg cpp/Issue_2186.cpp
-
-30060 cpp/Issue_1734.cfg cpp/Issue_1734.cpp
-
-# Class colon positioning
-30061 cpp/class-colon-pos-eol.cfg cpp/class-init.cpp
-30062 cpp/class-colon-pos-sol.cfg cpp/class-init.cpp
-30063 cpp/class-colon-pos-eol-add.cfg cpp/class-init.cpp
-30064 cpp/class-colon-pos-sol-add.cfg cpp/class-init.cpp
-30065 cpp/class-colon-pos-sol.cfg cpp/Example.h
-30066 cpp/class-on-colon-indent.cfg cpp/class-init.cpp
-30067 cpp/nl_func_class_scope-a.cfg cpp/nl_func_type_name.cpp
-30068 cpp/nl_func_class_scope-a.cfg cpp/nl_func_scope_name.cpp
-30069 cpp/nl_func_class_scope-a.cfg cpp/class-implementation.cpp
-
-30070 cpp/nl_func_scope_name-a.cfg cpp/nl_func_scope_name.cpp
-30071 cpp/lineEndings-to-Win.cfg cpp/lineEndings-Mac.cpp
-30072 cpp/lineEndings-to-Unix.cfg cpp/lineEndings-Win.cpp
-30073 cpp/lineEndings-to-Mac.cfg cpp/lineEndings-Unix.cpp
-30074 common/empty.cfg cpp/bom.cpp
-30075 common/empty.cfg cpp/goto.cpp
-30076 cpp/Issue_2594.cfg cpp/Issue_2594.cpp
-30077 cpp/Issue_2596.cfg cpp/Issue_2596.cpp
-30078 common/empty.cfg cpp/Issue_2672-a.cpp
-30079 common/empty.cfg cpp/Issue_2672-b.cpp
-
-30080 cpp/nl_brace_brace-a.cfg cpp/nl_brace_brace.cpp
-30081 cpp/Issue_2383.cfg cpp/Issue_2383.cpp
-30082 cpp/Issue_931.cfg cpp/Issue_931.cpp
-30083 cpp/Issue_995-do.cfg cpp/Issue_995-do.cpp
-30084 cpp/Issue_1184.cfg cpp/Issue_1184.cpp
-30085 cpp/nSolve.cfg cpp/align_class.cpp
-30086 cpp/align_class-constr.cfg cpp/align_class-constr.cpp
-30087 cpp/Issue_1511.cfg cpp/Issue_1511.cpp
-30088 cpp/Issue_2561.cfg cpp/Issue_2561.cpp
-30089 cpp/Issue_2281.cfg cpp/Issue_2281.cpp
-
-30090 cpp/bug_488.cfg cpp/bug_488.cpp
-30091 cpp/bug_472.cfg cpp/bug_472.cpp
-30092 cpp/ben_016.cfg cpp/bug_481.cpp
-30093 common/sp_after_cast.cfg cpp/bug_484.cpp
-30094 common/align-1.cfg cpp/bug_495.cpp
-30095 cpp/ben_017.cfg cpp/bug_485.cpp
-30096 cpp/bug_1854.cfg cpp/bug_1854.cpp
-30097 common/align-1.cfg cpp/issue_1946.cpp
-30098 cpp/Issue_2692.cfg cpp/Issue_2692.cpp
-30099 common/sp_arith-f.cfg cpp/bug_1127.cpp
-
-30100 cpp/nl_template-f.cfg cpp/templates.cpp
-30101 cpp/nl_template-r.cfg cpp/templates.cpp
-30102 cpp/template_sp-force.cfg cpp/templates.cpp
-30103 cpp/template_sp-remove.cfg cpp/templates.cpp
-30104 cpp/avalon3.cfg cpp/templ_class.h
-30105 cpp/avalon4.cfg cpp/av.h
-30106 cpp/nl_template-f.cfg cpp/templates2.cpp
-30107 cpp/nl_template-r.cfg cpp/templates2.cpp
-30108 cpp/nl_template-r.cfg cpp/templates3.cpp
-30109 common/empty.cfg cpp/templates4.cpp
-
-30110 cpp/class-nl_func-add2.cfg cpp/class-init.cpp
-30111 cpp/indent_columns-4.cfg cpp/bug_1346.h
-30112 cpp/bug_1432.cfg cpp/bug_1432.cpp
-30113 cpp/bug_1452.cfg cpp/bug_1452.cpp
-30114 cpp/template_sp-remove.cfg cpp/bug_1462.cpp
-30115 common/empty.cfg cpp/Issue_1704.cpp
-30116 cpp/Issue_1052.cfg cpp/Issue_1052.cpp
-30117 cpp/Issue_2343.cfg cpp/Issue_2343.cpp
-30118 cpp/Issue_2758.cfg cpp/Issue_2758.cpp
-30119 cpp/Issue_2879.cfg cpp/Issue_2879.cpp
-
-30120 cpp/template_sp-force.cfg cpp/sp_after_angle.cpp
-30121 cpp/template_sp-remove.cfg cpp/sp_after_angle.cpp
-30122 common/sp_inside_fparen-f.cfg cpp/sp_after_angle.cpp
-30123 cpp/sp_inside_fparen-r.cfg cpp/sp_after_angle.cpp
-30124 cpp/sp_after_angle-1.cfg cpp/sp_after_angle.cpp
-30125 cpp/sp_after_angle-2.cfg cpp/sp_after_angle.cpp
-30126 cpp/sp_after_angle-3.cfg cpp/sp_after_angle.cpp
-30127 common/empty.cfg cpp/Issue_2565.cpp
-30128 cpp/Issue_2873.cfg cpp/Issue_2873.cpp
-30129 cpp/Issue_2890.cfg cpp/Issue_2890.cpp
-
-30130 common/brace-allman.cfg cpp/if-constexpr.cpp
-30131 cpp/Issue_3010.cfg cpp/Issue_3010.cpp
-30132 cpp/sp_brace_catch.cfg cpp/sp_brace_catch.cpp
-30133 cpp/Issue_3252.cfg cpp/Issue_3252.cpp
-
-30200 cpp/bug_1862.cfg cpp/bug_1862.cpp
-30201 cpp/cmt_indent-1.cfg cpp/cmt_indent.cpp
-30202 cpp/cmt_indent-2.cfg cpp/cmt_indent.cpp
-30203 cpp/cmt_indent-3.cfg cpp/cmt_indent.cpp
-30204 cpp/indent_columns-4.cfg cpp/comment-align.cpp
-30205 cpp/indent_columns-4.cfg cpp/cmt_right.cpp
-30206 common/empty.cfg cpp/cmt_backslash_eol.cpp
-30207 cpp/indent_class-t_columns-4.cfg cpp/cmt_indent_pp.h
-30208 cpp/bug_1108.cfg cpp/bug_1108.cpp
-30209 common/empty.cfg cpp/bug_1134.cpp
-
-30210 common/empty.cfg cpp/bug_1338.cpp
-30211 cpp/space_indent_class-t_columns-4.cfg cpp/indent_comment_align_thresh.cpp
-30212 cpp/indent_comment_align_thresh_2.cfg cpp/indent_comment_align_thresh.cpp
-30213 cpp/align_right_comment.cfg cpp/align_right_comment.cpp
-30214 cpp/issue_1887.cfg cpp/align_across_braces.cpp
-30215 common/empty.cfg cpp/Issue_2099.cpp
-30216 cpp/Issue_2302.cfg cpp/Issue_2302.cpp
-30217 common/empty.cfg cpp/2138.cpp
-30218 cpp/sp_trailing_return-f.cfg cpp/trailing_return.cpp
-30219 cpp/sp_trailing_return-r.cfg cpp/trailing_return.cpp
-
-30220 cpp/bug_1340.cfg cpp/bug_1340.cpp
-30221 cpp/Issue_2914.cfg cpp/Issue_2914.cpp
-30222 cpp/sp_assign_default.cfg cpp/trailing_return.cpp
-30223 cpp/sp_enum_colon.cfg cpp/sp_enum_colon.cpp
-30224 cpp/sp_enum_colon-r.cfg cpp/sp_enum_colon.cpp
-30225 common/empty.cfg cpp/Issue_3176.cpp
-30226 cpp/sp_enum_colon-i.cfg cpp/sp_enum_colon.cpp
-30227 cpp/sp_inside_braces_enum-i.cfg cpp/sp_inside_braces_enum.cpp
-30228 cpp/sp_inside_braces_enum-f.cfg cpp/sp_inside_braces_enum.cpp
-30229 cpp/sp_inside_braces_enum-r.cfg cpp/sp_inside_braces_enum.cpp
-
-30230 cpp/sp_type_func-r.cfg cpp/sp_type_func.cpp
-30231 cpp/sp_type_func-f.cfg cpp/sp_type_func.cpp
-30232 cpp/sp_type_func-1.cfg cpp/sp_type_func.cpp
-30233 cpp/sp_type_func-2.cfg cpp/sp_type_func.cpp
-30234 cpp/functype_param-r.cfg cpp/functype_param.cpp
-30235 cpp/functype_param-f.cfg cpp/functype_param.cpp
-
-30240 cpp/align_func_params-t.cfg cpp/align_func_params.cpp
-30241 cpp/align_func_params_span-1.cfg cpp/align_func_params.cpp
-30242 cpp/align_func_params_gap.cfg cpp/align_func_params.cpp
-30243 cpp/align_func_params_thresh_1.cfg cpp/align_func_params.cpp
-30244 cpp/align_func_params_thresh_2.cfg cpp/align_func_params.cpp
-30245 cpp/align_func_params_thresh_3.cfg cpp/align_func_params.cpp
-30246 cpp/align_func_params_thresh_4.cfg cpp/align_func_params.cpp
-30247 common/empty.cfg cpp/Issue_2332.cpp
-30248 cpp/Issue_2831.cfg cpp/Issue_2831.cpp
-30249 cpp/align-330.cfg cpp/align-330.cpp
-
-30250 cpp/align_fcall.cfg cpp/align_fcall.cpp
-30251 cpp/align_fcall-2.cfg cpp/align_fcall.cpp
-30253 common/empty.cfg cpp/align_left_shift.cpp
-30254 common/empty.cfg cpp/align_left_shift2.cpp
-30255 cpp/ben_018.cfg cpp/align_constr.cpp
-30256 common/empty.cfg cpp/func_call.cpp
-30257 cpp/indent_columns-4.cfg cpp/func_call_chain.cpp
-30258 common/indent_columns-3.cfg cpp/casts.cpp
-30259 cpp/sp_after_constr_colon.cfg cpp/sp_after_constr_colon.cpp
-
-30260 cpp/var_def_gap.cfg cpp/var_def_gap.cpp
-30261 cpp/align_var_def_thresh_1.cfg cpp/align_var_def_thresh.cpp
-30262 cpp/align_var_def_thresh_2.cfg cpp/align_var_def_thresh.cpp
-30263 cpp/align_var_def_thresh_3.cfg cpp/align_var_def_thresh.cpp
-30264 cpp/Issue_2668.cfg cpp/Issue_2668.cpp
-30265 cpp/long_br_cmt.cfg cpp/long_br_cmt.cpp
-30266 cpp/Issue_2921.cfg cpp/Issue_2921.cpp
-30267 cpp/Issue_2930.cfg cpp/Issue_2930.cpp
-30268 cpp/Issue_2692.cfg cpp/Issue_3018.cpp
-
-30270 cpp/const_throw.cfg cpp/const_throw.cpp
-30271 cpp/sp_throw_paren-r.cfg cpp/sp_throw_paren.cpp
-30272 cpp/sp_throw_paren-f.cfg cpp/sp_throw_paren.cpp
-30273 common/sp_cparen_oparen-f.cfg cpp/sp_cparen_oparen.cpp
-30274 cpp/sp_cparen_oparen-r.cfg cpp/sp_cparen_oparen.cpp
-30275 common/empty.cfg cpp/bug_1321.cpp
-30278 cpp/bug_1439.cfg cpp/bug_1439.cpp
-30279 common/indent_inside_ternary_operator.cfg cpp/indent-inside-ternary-operator.cpp
-
-30280 cpp/sp_dc.cfg cpp/sf557.cpp
-30281 cpp/Issue_2478.cfg cpp/Issue_2478.cpp
-30282 cpp/Issue_2703.cfg cpp/Issue_2703.cpp
-30283 common/empty.cfg cpp/Issue_3321.h
-
-30290 cpp/indent_shift.cfg cpp/align_left_shift.cpp
-30291 cpp/indent_shift.cfg cpp/indent_shift.cpp
-30292 cpp/align_eigen_comma_init.cfg cpp/eigen.cpp
-30293 cpp/pos_shift-lead.cfg cpp/pos_shift.cpp
-30294 cpp/pos_shift-trail.cfg cpp/pos_shift.cpp
-30295 cpp/pos_shift-join.cfg cpp/pos_shift.cpp
-
-30300 cpp/ben_020.cfg cpp/enum_shr.cpp
-30301 cpp/al.cfg cpp/enum_class.h
-30302 cpp/bug_1315.cfg cpp/bug_1315.cpp
-30303 cpp/Issue_2902.cfg cpp/Issue_2902.cpp
-
-# TODO: Make a tests for a braced_init_list. See also 34153-34166.
-30310 cpp/sp_word_brace_force.cfg cpp/braced_init_list.cpp
-30311 cpp/sp_word_brace_remove.cfg cpp/uniform_initialization.cpp
-30312 cpp/sp_inside_type_brace_init_lst-f.cfg cpp/return_init_list.cpp
-30313 cpp/sp_brace_brace-r.cfg cpp/sp_brace_brace.cpp
-30314 cpp/sp_brace_brace-f.cfg cpp/sp_brace_brace.cpp
-30315 cpp/issue_1997.cfg cpp/return_braced_init.cpp
-30316 cpp/Issue_2428.cfg cpp/Issue_2428.cpp
-30317 cpp/pos_comma-tb.cfg cpp/braced_init_template_decltype.cpp
-30318 cpp/Issue_2949.cfg cpp/Issue_2949.cpp
-30319 cpp/Issue_2886.cfg cpp/Issue_2886.cpp
-
-30320 cpp/sp_return_paren-r.cfg cpp/returns.cpp
-30321 cpp/sp_return_paren-f.cfg cpp/returns.cpp
-30322 cpp/sp_return_brace-r.cfg cpp/returns.cpp
-30323 cpp/sp_return_brace-f.cfg cpp/returns.cpp
-30324 common/mod_paren_on_return-a.cfg cpp/returns.cpp
-30325 common/mod_paren_on_return-r.cfg cpp/returns.cpp
-30326 cpp/indent_off_after_return.cfg cpp/indent_off_after_return.cpp
-30327 cpp/indent_off_after_return.cfg cpp/indent_off_after_return.cpp
-30328 cpp/nl_type_brace_init_lst-f.cfg cpp/call_brace_init_lst.cpp
-30329 cpp/nl_type_brace_init_lst-r.cfg cpp/call_brace_init_lst.cpp
-
-30330 cpp/Issue_3080.cfg cpp/Issue_3080.cpp
-
-30400 common/attribute_specifier_seqs.cfg cpp/attribute_specifier_seqs.cpp
-30401 cpp/Issue_2570.cfg cpp/Issue_2570.cpp
-
-# function def newlines
-30701 common/func-def-1.cfg cpp/function-def.cpp
-30702 common/func-def-2.cfg cpp/function-def.cpp
-30703 common/func-def-3.cfg cpp/function-def.cpp
-
-30705 cpp/func_param.cfg cpp/func_param.cpp
-30706 cpp/bug_1020.cfg cpp/bug_1020.cpp
-
-30711 common/del_semicolon.cfg cpp/semicolons.cpp
-30712 common/empty.cfg cpp/bug_1158.cpp
-30713 common/empty.cfg cpp/fix_for_relational_operators.cpp
-30714 common/empty.cfg cpp/Issue_1733.cpp
-30715 cpp/Issue_2942.cfg cpp/Issue_2942.cpp
-
-30720 cpp/wessex.cfg cpp/custom-open-2.cpp
-30721 cpp/Issue_2386.cfg cpp/Issue_2386.cpp
-
-30730 cpp/qt-1.cfg cpp/qt-1.cpp
-30731 cpp/nl_access_spec.cfg cpp/qt-1.cpp
-30732 cpp/Issue_2734.cfg cpp/Issue_2734.cpp
-
-30740 cpp/sef.cfg cpp/sef.cpp
-30741 cpp/al.cfg cpp/al.cpp
-30742 cpp/indent_columns-2.cfg cpp/delete.cpp
-
-30745 cpp/Issue_2170.cfg cpp/Issue_2170.cpp
-30746 cpp/DefaultAndDelete-0.cfg cpp/DefaultAndDelete.cpp
-30747 cpp/DefaultAndDelete-1.cfg cpp/DefaultAndDelete.cpp
-30748 cpp/DefaultAndDelete-2.cfg cpp/DefaultAndDelete.cpp
-
-# TODO: Reduce the number of options, leave only those that affect lambda.
-# TODO: Add tests for nested lambdas.
-
-30750 cpp/ben_021.cfg cpp/lambda.cpp
-30751 cpp/lambda1.cfg cpp/lambda.cpp
-30752 cpp/lambda2.cfg cpp/lambda.cpp
-30753 cpp/lambda3.cfg cpp/lambda2.cpp
-30754 cpp/indent_with_tabs-0.cfg cpp/bug_i_682.h
-30755 common/empty.cfg cpp/bug_i_938.h
-30756 cpp/bug_1296.cfg cpp/bug_1296.cpp
-30757 cpp/Issue_3054.cfg cpp/Issue_3054.cpp
-30758 cpp/Issue_3054-2.cfg cpp/Issue_3054-2.cpp
-
-30761 cpp/out-668-F.cfg cpp/out-668.cpp
-30762 cpp/out-668-T.cfg cpp/out-668.cpp
-30763 cpp/Issue_2166.cfg cpp/Issue_2166.cpp
-30764 cpp/Issue_2591.cfg cpp/Issue_2591.cpp
-30765 cpp/sp_cpp_lambda_square_paren-i.cfg cpp/lambda.cpp
-30766 cpp/sp_cpp_lambda_square_brace-i.cfg cpp/lambda.cpp
-30767 cpp/sp_cpp_lambda_paren_brace-i.cfg cpp/lambda.cpp
-30768 cpp/sp_cpp_lambda_fparen-i.cfg cpp/sp_cpp_lambda_fparen.cpp
-
-30770 cpp/sp_cpp_lambda_square_paren-r.cfg cpp/lambda.cpp
-30771 cpp/sp_cpp_lambda_square_paren-f.cfg cpp/lambda.cpp
-30772 cpp/sp_cpp_lambda_square_brace-r.cfg cpp/lambda.cpp
-30773 cpp/sp_cpp_lambda_square_brace-f.cfg cpp/lambda.cpp
-30774 cpp/sp_cpp_lambda_paren_brace-r.cfg cpp/lambda.cpp
-30775 cpp/sp_cpp_lambda_paren_brace-f.cfg cpp/lambda.cpp
-30776 cpp/sp_cpp_lambda_fparen-r.cfg cpp/sp_cpp_lambda_fparen.cpp
-30777 cpp/sp_cpp_lambda_fparen-f.cfg cpp/sp_cpp_lambda_fparen.cpp
-
-30780 cpp/lambda_in_one_liner.cfg cpp/lambda_in_one_liner.cpp
-30781 cpp/lambda_in_one_liner.cfg cpp/lambda_brace_list.cpp
-
-30790 cpp/Issue_2795.cfg cpp/Issue_2795.cpp
-30791 cpp/Issue_3203.cfg cpp/Issue_3203.cpp
-
-30800 common/star_pos-0.cfg cpp/align-star-amp-pos.cpp
-30801 cpp/star_pos-1.cfg cpp/align-star-amp-pos.cpp
-30802 cpp/star_pos-2.cfg cpp/align-star-amp-pos.cpp
-30803 cpp/bug_1403.cfg cpp/bug_1403.cpp
-30805 cpp/ptr_star-1.cfg cpp/ptr-star.cpp
-30806 cpp/ptr_star-2.cfg cpp/ptr-star.cpp
-30807 cpp/ptr_star-3.cfg cpp/ptr-star.cpp
-30808 cpp/sp_after_ptr_star_qualifier-f.cfg cpp/ptr-star.cpp
-30809 common/empty.cfg cpp/bug_1289.cpp
-
-30810 cpp/ben_022.cfg cpp/ptr-star.cpp
-30811 cpp/avalon4.cfg cpp/misc3.cpp
-30812 cpp/ben_023.cfg cpp/misc4.cpp
-30813 cpp/ben_024.cfg cpp/misc5.cpp
-30814 common/empty.cfg cpp/misc6.cpp
-30815 common/width-2.cfg cpp/cmt-reflow.cpp
-30816 cpp/cu.cfg cpp/for_long.cpp
-30817 common/indent_columns-3.cfg cpp/cmt-cpp-cont.cpp
-30818 cpp/bug_1169.cfg cpp/bug_1169.cpp
-30819 cpp/bug_1170.cfg cpp/bug_1170.cpp
-
-30820 cpp/pp_define_at_level-1.cfg cpp/pp-define-indent.cpp
-30821 common/empty.cfg cpp/pp_indent_case.cpp
-30822 common/empty.cfg cpp/pp_indent_brace.cpp
-30823 common/empty.cfg cpp/pp_indent_func_def.cpp
-30824 common/empty.cfg cpp/pp_indent_extern.cpp
-30825 cpp/Issue_1966.cfg cpp/Issue_1966.cpp
-30826 cpp/Issue_2319.cfg cpp/Issue_2319.cpp
-30827 cpp/Issue_1167.cfg cpp/Issue_1167.cpp
-30828 cpp/bug_1691.cfg cpp/bug_1691.cpp
-30829 cpp/ptr_star-2.cfg cpp/Issue_2726.cpp
-
-30830 common/kw_subst2.cfg cpp/kw_subst.cpp
-30831 common/kw_subst.cfg cpp/kw_subst2.cpp
-30832 common/kw_subst4.cfg cpp/kw_subst.cpp
-
-30840 cpp/nl_func_type_name_remove.cfg cpp/nl_func_type_name.cpp
-30841 cpp/nl_func_type_name_force.cfg cpp/nl_func_type_name.cpp
-30842 cpp/nl_func_type_name_class.cfg cpp/nl_func_type_name.cpp
-30843 cpp/nl_func_type_name_mixed.cfg cpp/nl_func_type_name.cpp
-30844 cpp/Issue_2771.cfg cpp/Issue_2771.cpp
-30845 cpp/ben_026.cfg cpp/deref.cpp
-30846 cpp/Issue_3197.cfg cpp/Issue_3197.h
-
-30850 common/sp_cmt_cpp_start_force.cfg cpp/sp_cmt_cpp_start.cc
-30852 cpp/sp_paren_qualifier-f.cfg cpp/Issue_2138.cpp
-30853 cpp/sp_paren_noexcept-f.cfg cpp/noexcept.cpp
-30854 cpp/Issue_1703.cfg cpp/Issue_1703.cpp
-30855 common/empty.cfg cpp/cpp_move.cpp
-30856 cpp/sp_cmt_cpp_region-f.cfg cpp/sp_cmt_cpp_region.cpp
-30857 cpp/sp_cmt_cpp_region-r.cfg cpp/sp_cmt_cpp_region.cpp
-
-30860 cpp/sf574.cfg cpp/sf574.cpp
-
-30870 common/cmt_insert-0.cfg cpp/cmt_insert.cpp
-30871 common/cmt_insert-1.cfg cpp/cmt_insert.cpp
-30872 cpp/Issue_2752.cfg cpp/Issue_2752.cpp
-# will also use the file footer.txt
-
-30880 common/empty.cfg cpp/bug_1758.cpp
-30881 cpp/bug_1758-f.cfg cpp/bug_1758-f.cpp
-
-30900 common/region-0.cfg cpp/region.cpp
-30901 common/region-1.cfg cpp/region.cpp
-30902 common/region-2.cfg cpp/region.cpp
-30903 common/region-3.cfg cpp/region.cpp
-30907 cpp/Issue_1813.cfg cpp/Issue_1813.cpp
-30908 cpp/Issue_1813.cfg cpp/Issue_1813-2.cpp
-30909 cpp/Issue_1813.cfg cpp/Issue_1813-3.cpp
-
-30910 cpp/indent_namespace-t.cfg cpp/indent_namespace.h
-30911 cpp/indent_class-t.cfg cpp/indent_namespace.h
-30912 cpp/long_namespace.cfg cpp/long_namespace.cpp
-30913 cpp/indent_namespace-t.cfg cpp/indent_namespace2.h
-30914 cpp/indent_namespace_single_indent.cfg cpp/indent_namespace_single_indent.h
-30915 common/empty.cfg cpp/bug_1235.cpp
-30916 common/empty.cfg cpp/Issue_1737.cpp
-30917 cpp/Issue_2345.cfg cpp/Issue_2345-3.cpp
-30918 cpp/Issue_2345.cfg cpp/Issue_2345-4.cpp
-30919 common/empty.cfg cpp/Issue_2387.cpp
-
-30920 cpp/ben_027.cfg cpp/indent-off.cpp
-30921 cpp/ben_028.cfg cpp/variadic-template.h
-30922 cpp/sp_before_ellipsis-f.cfg cpp/variadic-template.h
-30923 cpp/sf.2886991-f.cfg cpp/sf.2886991.cpp
-30924 cpp/sf.2886991-r.cfg cpp/sf.2886991.cpp
-30925 cpp/sp_func_call_empty.cfg cpp/function-def.cpp
-30926 cpp/sp_func_class_empty.cfg cpp/function-def.cpp
-30927 cpp/sp_func_def_empty.cfg cpp/function-def.cpp
-30928 cpp/sp_func_proto_empty.cfg cpp/function-def.cpp
-30929 cpp/bug_1324.cfg cpp/bug_1324.cpp
-
-30930 common/indent_var_def.cfg cpp/indent_var_def.cpp
-30931 cpp/indent_var_def_cont-t.cfg cpp/indent_var_def_cont.cpp
-30932 common/empty.cfg cpp/indent_var_def_cont.cpp
-30933 cpp/indent_paren_after_func_def-t.cfg cpp/indent_paren_after_func_def.cpp
-30934 cpp/indent_paren_after_func_decl-t.cfg cpp/indent_paren_after_func_decl.cpp
-30935 cpp/ben_029.cfg cpp/indent-misc.cpp
-30936 cpp/indent_braces_no.cfg cpp/indent_braces_no.h
-30937 cpp/indent_param.cfg cpp/indent_param.cpp
-30938 common/empty.cfg cpp/indent_switch_pp.cpp
-30939 cpp/indent_paren_after_func_call-t.cfg cpp/indent_paren_after_func_call.cpp
-
-30940 common/mod_case_brace_rm.cfg cpp/case-brace-remove.cpp
-30941 cpp/Issue_2150.cfg cpp/Issue_2150.cpp
-30942 cpp/Issue_1692.cfg cpp/Issue_1692.cpp
-30943 cpp/Issue_2735.cfg cpp/Issue_2735.cpp
-#30944
-30945 common/sp_before_byref-r.cfg cpp/sf.3266678.cpp
-30946 cpp/sf.3315874.cfg cpp/sf.3315874.h
-30947 cpp/bug_1689.cfg cpp/bug_1689.cpp
-30948 cpp/sp_before_byref_func.cfg cpp/sp_before_byref_func.cpp
-30949 cpp/Issue_2757.cfg cpp/Issue_2757.cpp
-
-30950 cpp/sp_before_tr_emb_cmt-f.cfg cpp/sp_before_tr_emb_cmt_input.cpp
-30951 cpp/sp_before_tr_emb_cmt-a.cfg cpp/sp_before_tr_emb_cmt_input.cpp
-30952 cpp/sp_before_constr_colon.cfg cpp/sp_before_constr_colon.cpp
-30953 cpp/constr_colon.cfg cpp/constr_colon.cpp
-30954 cpp/Issue_2305.cfg cpp/Issue_2305.cpp
-30955 cpp/indent_ctor_init.cfg cpp/indent_ctor_init.cpp
-30956 cpp/indent_ctor_init_following.cfg cpp/indent_ctor_init.cpp
-30957 cpp/negative_indent.cfg cpp/class-init.cpp
-30958 cpp/nl_for_leave_one_liners-f.cfg cpp/nl_for_leave_one_liners.cpp
-30959 cpp/nl_for_leave_one_liners-t.cfg cpp/nl_for_leave_one_liners.cpp
-
-30960 cpp/Issue_2151.cfg cpp/Issue_2151.cpp
-30961 cpp/Issue_2232.cfg cpp/Issue_2232.cpp
-30962 cpp/nl_assign_leave_one_liners.cfg cpp/nl_assign_leave_one_liners.cpp
-30963 cpp/Issue_2907.cfg cpp/Issue_2907.cpp
-30964 cpp/Issue_2823.cfg cpp/Issue_2823.cpp
-
-30970 cpp/Issue_2219.cfg cpp/Issue_2219.cpp
-30971 cpp/Issue_2224.cfg cpp/Issue_2224.cpp
-30972 cpp/Issue_2229.cfg cpp/Issue_2229.cpp
-30973 cpp/Issue_2236.cfg cpp/Issue_2236.cpp
-30974 common/empty.cfg cpp/using-alias-in-define.cpp
-
-31000 common/empty.cfg cpp/digraph.cpp
-31001 cpp/ben_030.cfg cpp/digraph.cpp
-
-31050 common/empty.cfg cpp/pos_assign.cpp
-31051 cpp/pos_assign.cfg cpp/pos_assign.cpp
-
-31101 common/empty.cfg cpp/nl_before_brace_open_test.cpp
-31102 cpp/nl_before_brace_open_1.cfg cpp/nl_before_brace_open_test.cpp
-31103 cpp/nl_before_brace_open_2.cfg cpp/nl_before_brace_open_test.cpp
-31104 cpp/nl_before_brace_open_3.cfg cpp/nl_before_brace_open_test.cpp
-
-31562 cpp/space_indent_class-t_columns-4.cfg cpp/sf562.cpp
-31567 common/align_same_func_call_params-t.cfg cpp/sf567.cpp
-31568 cpp/Issue_2368.cfg cpp/Issue_2368.cpp
-
-31583 common/empty.cfg cpp/sf583.cpp
-31593 common/indent_continue-8.cfg cpp/sf593.cpp
-31594 common/issue_672.cfg cpp/issue_672.cpp
-31595 cpp/issue_1778.cfg cpp/issue_1778.cpp
-31596 cpp/issue_1782.cfg cpp/issue_1782.cpp
-31597 cpp/issue_1804.cfg cpp/issue_1804.cpp
-31598 cpp/Issue_1753.cfg cpp/Issue_1753.cpp
-31599 cpp/sp_paren_ellipsis-i.cfg cpp/parameter-packs.cpp
-
-31600 cpp/sp_paren_ellipsis-f.cfg cpp/parameter-packs.cpp
-31601 cpp/sp_paren_ellipsis-r.cfg cpp/parameter-packs.cpp
-31602 cpp/sp_sizeof_ellipsis-f.cfg cpp/parameter-packs.cpp
-31603 cpp/sp_sizeof_ellipsis-r.cfg cpp/parameter-packs.cpp
-31604 cpp/sp_before_ellipsis-f.cfg cpp/parameter-packs.cpp
-31605 cpp/sp_before_ellipsis-r.cfg cpp/parameter-packs.cpp
-31606 cpp/sp_type_ellipsis-f.cfg cpp/parameter-packs.cpp
-31607 cpp/sp_type_ellipsis-r.cfg cpp/parameter-packs.cpp
-31608 cpp/sp_sizeof_ellipsis_paren-f.cfg cpp/parameter-packs.cpp
-31609 cpp/sp_sizeof_ellipsis_paren-r.cfg cpp/parameter-packs.cpp
-
-31610 cpp/Issue_2085.cfg cpp/Issue_2085.cpp
-31611 cpp/sp_sizeof_ellipsis-i.cfg cpp/parameter-packs.cpp
-31612 cpp/sp_sizeof_ellipsis_paren-i.cfg cpp/parameter-packs.cpp
-31613 cpp/sp_type_ellipsis-i.cfg cpp/parameter-packs.cpp
-31614 cpp/Issue_3309-i.cfg cpp/Issue_3309.cpp
-31615 cpp/Issue_3309-f.cfg cpp/Issue_3309.cpp
-31616 cpp/Issue_3309-r.cfg cpp/Issue_3309.cpp
-
-31620 common/sp_after_type-f.cfg cpp/sp_after_type.cpp
-31621 cpp/sp_after_type-i.cfg cpp/sp_after_type.cpp
-31622 cpp/sp_after_cast-f.cfg cpp/sp_after_type.cpp
-31623 cpp/sp_after_cast-r.cfg cpp/sp_after_type.cpp
-31624 cpp/sp_before_ptr_star-f.cfg cpp/sp_after_type.cpp
-31625 cpp/sp_before_ptr_star-r.cfg cpp/sp_after_type.cpp
-31626 cpp/sp_decltype_paren-f.cfg cpp/issue_1916.cpp
-31627 cpp/sp_decltype_paren-r.cfg cpp/issue_1916.cpp
-31628 cpp/sp_after_decltype-f.cfg cpp/issue_1916.cpp
-31629 cpp/sp_after_decltype-r.cfg cpp/issue_1916.cpp
-
-31630 common/sp_after_type-f.cfg cpp/issue_1916.cpp
-31631 common/sp_after_type-r.cfg cpp/issue_1916.cpp
-31632 cpp/issue_1916.cfg cpp/issue_1916.cpp
-31633 cpp/sp_after_decltype-f.cfg cpp/sp_after_decltype.cpp
-31634 cpp/sp_after_decltype-r.cfg cpp/sp_after_decltype.cpp
-31635 common/empty.cfg cpp/sp_decltype.cpp
-31636 cpp/Issue_1923.cfg cpp/Issue_1923.cpp
-
-31660 cpp/nl_func_var_def_blk-1.cfg cpp/issue_1919.cpp
-31661 cpp/Issue_3097.cfg cpp/Issue_3097.cpp
-
-31700 cpp/toggle_processing_cmt.cfg cpp/toggle_processing_cmt.cpp
-31701 cpp/toggle_processing_cmt2.cfg cpp/toggle_processing_cmt2.cpp
-31702 cpp/toggle_processing_cmt3.cfg cpp/toggle_processing_cmt.cpp
-31703 cpp/toggle_processing_cmt4.cfg cpp/toggle_processing_cmt.cpp
-
-31710 common/empty.cfg cpp/string_replace_tab_chars.cpp
-31711 cpp/string_replace_tab_chars-t.cfg cpp/string_replace_tab_chars.cpp
-
-31720 cpp/ben_031.cfg cpp/bit-colon.cpp
-31721 cpp/Issue_2689.cfg cpp/Issue_2689.cpp
-
-31730 cpp/sp_arith-a.cfg cpp/ms-style-ref.cpp
-
-31740 common/empty.cfg cpp/I2102.cpp
-
-32000 cpp/sp_skip_vbrace_tokens.cfg cpp/sp_skip_vbrace_tokens.cpp
-32001 common/empty.cfg cpp/issue_547_for_each.cpp
-32002 common/empty.cfg cpp/proto-wrap.cpp
-32003 cpp/align_var_class_span-1.cfg cpp/issue_633_typename.cpp
-32004 common/empty.cfg cpp/issue_624_angle.cpp
-32005 cpp/align_var_class_span-1.cfg cpp/issue_633_typename.cpp
-32006 common/space_indent_columns-4.cfg cpp/bug_i_687.cpp
-32007 cpp/Issue_3052.cfg cpp/Issue_3052.cpp
-32008 cpp/Issue_3034.cfg cpp/Issue_3034.cpp
-
-32100 cpp/cpp17.cfg cpp/cpp17.cpp
-32105 cpp/I2103.cfg cpp/I2103.cpp
-
-32115 cpp/2185.cfg cpp/2185.cpp
-
-33000 cpp/tab-0-11.cfg cpp/tab-0.cpp
-33001 cpp/indent_columns-11.cfg cpp/tab-1.cpp
-33002 common/empty.cfg cpp/cmt_convert_tab_to_spaces.cpp
-33003 cpp/cmt_convert_tab_to_spaces-t.cfg cpp/cmt_convert_tab_to_spaces.cpp
-33004 common/sp_cmt_cpp_start-a.cfg cpp/DoxygenComments.cpp
-33005 cpp/sp_cmt.cfg cpp/DoxygenComments.cpp
-33006 common/empty.cfg cpp/string_replace_tab_chars.cpp
-33007 common/empty.cfg cpp/NewLine.cpp
-33008 cpp/NewLine-r.cfg cpp/NewLine.cpp
-33009 cpp/NewLine-f.cfg cpp/NewLine0.cpp
-
-33010 cpp/indent_columns-4.cfg cpp/Q_EMIT.cpp
-33011 cpp/indent_class-t_columns-4.cfg cpp/static.h
-33012 cpp/kdepim2.cfg cpp/Q_SIGNAL_SLOT.cpp
-33013 cpp/kdepim3.cfg cpp/Q_2.cpp
-33014 cpp/indent_columns-4.cfg cpp/DB.cpp
-33015 cpp/kdepim5.cfg cpp/Q_FOREACH.cpp
-33016 cpp/indent_once.cfg cpp/indent.cpp
-33017 cpp/bug_1160.cfg cpp/bug_1160.cpp
-#33018
-33019 cpp/bug_657.cfg cpp/bug_657.cpp
-
-33020 cpp/sp_cmt.cfg cpp/bug_662.cpp
-33021 cpp/bug_633.cfg cpp/bug_633.cpp
-33022 common/empty.cfg cpp/bug_634.cpp
-33023 cpp/indent_once.cfg cpp/bug_651.cpp
-33024 common/empty.cfg cpp/bug_653.cpp
-33025 common/empty.cfg cpp/bug_654.cpp
-33026 common/empty.cfg cpp/bug_631.cpp
-33027 cpp/bug_664.cfg cpp/bug_664.cpp
-33028 cpp/sp_inside_braces_empty-r.cfg cpp/braces_empty.cpp
-33029 cpp/cast.cfg cpp/cast.cpp
-
-33030 common/space_indent_columns-4.cfg cpp/Q_FOREVER.cpp
-33031 cpp/align_assign_span-1.cfg cpp/bug_612.cpp
-33032 cpp/bug_670.cfg cpp/bug_670.cpp
-33033 cpp/bug_670.cfg cpp/bug_670.h
-33034 common/bug_671.cfg cpp/bug_671.h
-33035 cpp/cmt_cpp_to_c-t.cfg cpp/patch_32.cpp
-33036 common/empty.cfg cpp/bug_663.cpp
-33037 cpp/func_class.cfg cpp/func_class.cpp
-33038 cpp/func_class.cfg cpp/func_class.h
-33039 cpp/mod_remove_empty_return-t.cfg cpp/mod_remove_empty_return.cpp
-
-33040 cpp/nl_after_func_proto_group-3.cfg cpp/bug_i_411.cpp
-33041 cpp/nl_after_func_proto-3.cfg cpp/bug_i_411.cpp
-33042 cpp/nl_after_func_class_proto-3.cfg cpp/bug_i_411.cpp
-33043 cpp/bug_i_478.cfg cpp/bug_i_478.cpp
-33044 cpp/sp_before_comma-f.cfg cpp/bug_i_481.cpp
-33045 cpp/indent_columns-4.cfg cpp/bug_i_width.cpp
-33046 cpp/bug_i_409-split.cfg cpp/bug_i_409.cpp
-33047 cpp/bug_i_409-create.cfg cpp/bug_i_409.cpp
-33048 cpp/bug_i_405.cfg cpp/bug_i_405.cpp
-33049 cpp/pp-pragma.cfg cpp/pp-pragma.cpp
-
-33050 common/empty.cfg cpp/issue_523.cpp
-33051 common/empty.cfg cpp/bug_i_503.cpp
-33052 common/empty.cfg cpp/bug_i_512.cpp
-33053 common/space_indent_columns-4.cfg cpp/for_auto.cpp
-33054 common/indent_columns-3.cfg cpp/bug_i_825.cpp
-33056 common/empty.cfg cpp/bug_33056.cpp
-33057 cpp/bug_1349.cfg cpp/bug_1349.cpp
-33058 cpp/Issue_3164.cfg cpp/Issue_3164.cpp
-33039 cpp/mod_remove_empty_return-t.cfg cpp/mod_remove_empty_return.cpp
-33059 cpp/mod_remove_empty_return-t.cfg cpp/mod_remove_empty_return-2.cpp
-
-33060 common/empty.cfg cpp/if_constexpr.cpp
-33061 common/empty.cfg cpp/if_chain_braces.cpp
-33062 cpp/mod_full_brace_if_chain-t.cfg cpp/if_chain_braces.cpp
-33063 common/mod_full_brace_if_chain_only-t.cfg cpp/if_chain_braces.cpp
-33064 cpp/if_chain_braces_2.cfg cpp/if_chain_braces.cpp
-33069 cpp/Issue_2195.cfg cpp/Issue_2195.cpp
-
-33070 cpp/code_width-70.cfg cpp/multi_line.cpp
-33071 cpp/multi_line_1.cfg cpp/multi_line.cpp
-33072 cpp/multi_line_2.cfg cpp/multi_line.cpp
-33073 cpp/multi_line_3.cfg cpp/multi_line.cpp
-33074 cpp/multi_line_4.cfg cpp/multi_line.cpp
-33075 cpp/multi_line_5.cfg cpp/multi_line.cpp
-33076 cpp/multi_line_6.cfg cpp/multi_line.cpp
-33077 cpp/multi_line_7.cfg cpp/multi_line.cpp
-33078 cpp/multi_line_8.cfg cpp/multi_line.cpp
-33079 cpp/multi_line_9.cfg cpp/multi_line.cpp
-
-33080 cpp/multi_line_10.cfg cpp/multi_line.cpp
-33081 common/space_indent_columns-4.cfg cpp/bug_i_552.cpp
-33082 common/empty.cfg cpp/namespace_namespace.cpp
-33083 cpp/bug_i_359.cfg cpp/bug_i_359.cpp
-33084 cpp/op_sym_empty.cfg cpp/op_sym_empty.cpp
-33085 cpp/indent_with_tabs-0.cfg cpp/bug_i_323.cpp
-33086 cpp/indent_class-t.cfg cpp/bug_i_568.cpp
-33087 common/space_indent_columns-4.cfg cpp/bug_i_596.cpp
-33088 common/empty.cfg cpp/bug_i_197.cpp
-33089 cpp/indent_class-t_columns-4.cfg cpp/bug_643.cpp
-
-33090 common/empty.cfg cpp/gh555.cpp
-33091 cpp/no_squeeze_ifdef.cfg cpp/squeeze_ifdef.cpp
-33092 cpp/squeeze_ifdef.cfg cpp/squeeze_ifdef.cpp
-33093 cpp/sp_angle_paren-f.cfg cpp/sp_angle_paren.cpp
-33094 cpp/sp_angle_paren_empty.cfg cpp/sp_angle_paren.cpp
-33095 cpp/bug_i_322.cfg cpp/bug_i_322.cpp
-33096 cpp/squeeze_ifdef_top.cfg cpp/squeeze_ifdef.cpp
-33097 cpp/pos_enum_comma-tf.cfg cpp/enum_comma.h
-33098 cpp/pos_comma-lf.cfg cpp/enum_comma.h
-33099 cpp/enum_comma-3.cfg cpp/enum_comma.h
-
-33100 cpp/enum_comma-4.cfg cpp/enum_comma.h
-33101 cpp/pos_comma-tb.cfg cpp/enum_comma.h
-33102 cpp/enum_comma-6.cfg cpp/enum_comma.h
-33103 cpp/bug_858-f.cfg cpp/bug_858.cpp
-33104 cpp/bug_858-r.cfg cpp/bug_858.cpp
-33105 cpp/bug_1001.cfg cpp/bug_1001.cpp
-33106 common/bool-pos-eol-force.cfg cpp/pos_bool_in_template.h
-33107 cpp/Issue_2688.cfg cpp/Issue_2688.cpp
-33108 cpp/Issue_2045.cfg cpp/Issue_2045.cpp
-33109 common/empty.cfg cpp/Issue_3205.cpp
-
-33110 cpp/enum.cfg cpp/enum.cpp
-33120 cpp/Issue_2149.cfg cpp/Issue_2149.cpp
-
-33150 cpp/indent_columns-4.cfg cpp/bug_i_753.cpp
-33151 cpp/bug_i_752.cfg cpp/bug_i_752.cpp
-33152 cpp/bug_1004.cfg cpp/bug_1004.cpp
-
-33160 common/sp_before_byref-r.cfg cpp/bug_1112.cpp
-33161 common/sp_before_byref-r.cfg cpp/byref-3.cpp
-
-33180 cpp/pp_multi_comment.cfg cpp/pp_multi_comment.cpp
-33181 cpp/Issue_2759.cfg cpp/Issue_2759.cpp
-33182 cpp/Issue_2794.cfg cpp/Issue_2794.cpp
-
-33200 cpp/cmt_multi_first_len_minimum-1.cfg cpp/first_len_minimum.cpp
-
-33201 cpp/indent_ctor_members_twice.cfg cpp/indent_ctor_members_twice.cpp
-33202 cpp/initlist_leading_commas.cfg cpp/initlist_leading_commas.cpp
-33203 cpp/Issue_2574.cfg cpp/Issue_2574.cpp
-33204 cpp/Issue_2582.cfg cpp/Issue_2582.cpp
-33205 cpp/Issue_3198.cfg cpp/Issue_3198.cpp
-
-33210 cpp/disable_nl_cont.cfg cpp/templates4.cpp
-33211 cpp/disable_nl_cont.cfg cpp/pp_multi_comment.cpp
-33212 cpp/disable_nl_cont.cfg cpp/pp-define-indent.cpp
-33213 cpp/disable_nl_cont.cfg cpp/disable_macro.cpp
-33214 cpp/Issue_2742.cfg cpp/Issue_2742.cpp
-33215 cpp/Issue_3055.cfg cpp/Issue_3055.cpp
-33216 cpp/Issue_3055.cfg cpp/Issue_3055-a.cpp
-33217 common/empty.cfg cpp/Issue_3113.cpp
-
-34001 common/nl_before_after.cfg cpp/nl_before_after.h
-34002 common/indent_columns-3.cfg cpp/bug_i_793.cpp
-34003 cpp/nl_max_blank_in_func-1.cfg cpp/nl_max_blank_in_func.cpp
-34004 cpp/nl_max_blank_in_func-4.cfg cpp/nl_max_blank_in_func.cpp
-34005 common/empty.cfg cpp/nl_max_blank_in_func.cpp
-34006 common/empty.cfg cpp/bug_i_575.cpp
-34007 cpp/indent_with_tabs-0.cfg cpp/bug_i_928.cpp
-
-34100 common/empty.cfg cpp/bug_i_525.cpp
-34101 common/empty.cfg cpp/bug_i_646.cpp
-34105 cpp/bug_i_663.cfg cpp/bug_i_663.cpp
-34108 cpp/bug_i_666.cfg cpp/bug_i_666.cpp
-
-34112 cpp/sp_after_cast-r.cfg cpp/bug_i_889.cpp
-34113 cpp/nl_before_func_body_def-1.cfg cpp/bug_902.cpp
-34114 cpp/nl_before_func_body_def-2.cfg cpp/bug_902.cpp
-34115 cpp/nl_before_func_body_def-2.cfg cpp/nl_before_func_body_def.cpp
-34116 cpp/nl_before_func_body_def-2.cfg cpp/issue_2000.cpp
-34117 cpp/extern_func.cfg cpp/extern_func.cpp
-34118 cpp/Issue_2163.cfg cpp/Issue_2163.cpp
-
-34120 cpp/align_assign_span-1.cfg cpp/bug_i_999.cpp
-34121 cpp/bug_1717.cfg cpp/bug_1717.cpp
-34122 cpp/Issue_2440.cfg cpp/Issue_2440.cpp
-34123 cpp/Issue_2440_nl.cfg cpp/Issue_2440_nl.cpp
-
-34130 cpp/nl_brace_fparen-f.cfg cpp/bug_i_1000.cpp
-34131 cpp/nl_brace_fparen-r.cfg cpp/bug_i_1000.cpp
-34132 cpp/new_op_a.cfg cpp/new_op.cpp
-34133 cpp/new_op_f.cfg cpp/new_op.cpp
-34134 cpp/new_op_r.cfg cpp/new_op.cpp
-34135 cpp/new_op_paren_open_close.cfg cpp/new_op.cpp
-34136 cpp/sp_balance_nested_parens.cfg cpp/sp_balance_nested_parens.cpp
-
-34140 common/empty.cfg cpp/bug_1027.cpp
-34141 common/empty.cfg cpp/bug_1005.cpp
-34142 common/sp_before_byref-r.cfg cpp/I1112-1.cpp
-34143 cpp/I1112-2.cfg cpp/I1112-2.cpp
-34144 cpp/sp_before_ptr_star-r.cfg cpp/I1112-3.cpp
-34145 cpp/i683.cfg cpp/i683.cpp
-34146 cpp/sp_bool-f.cfg cpp/bug_1002.cpp
-34147 cpp/sp_bool-r.cfg cpp/bug_1002.cpp
-34148 cpp/nl_before_if_closing_paren-f.cfg cpp/bug_1139.cpp
-34149 cpp/nl_before_if_closing_paren-r.cfg cpp/bug_1139.cpp
-
-34150 common/empty.cfg cpp/bug_1032.cpp
-34151 cpp/indent_else_if-t.cfg cpp/bug_666.cpp
-34152 common/empty.cfg cpp/bug_1068.cpp
-34153 cpp/nl_type_brace_init_lst-f.cfg cpp/type_brace_init_lst.cpp
-34154 cpp/nl_type_brace_init_lst-r.cfg cpp/type_brace_init_lst.cpp
-34155 cpp/nl_type_brace_init_lst_open-f.cfg cpp/type_brace_init_lst.cpp
-34156 cpp/nl_type_brace_init_lst_open-r.cfg cpp/type_brace_init_lst.cpp
-34157 cpp/nl_type_brace_init_lst_close-f.cfg cpp/type_brace_init_lst.cpp
-34158 cpp/nl_type_brace_init_lst_close-r.cfg cpp/type_brace_init_lst.cpp
-34159 cpp/sp_type_brace_init_lst-f.cfg cpp/type_brace_init_lst.cpp
-
-34160 cpp/sp_type_brace_init_lst-r.cfg cpp/type_brace_init_lst.cpp
-34161 cpp/sp_inside_type_brace_init_lst-f.cfg cpp/type_brace_init_lst.cpp
-34162 cpp/sp_inside_type_brace_init_lst-r.cfg cpp/type_brace_init_lst.cpp
-34163 cpp/sp_after_type_brace_init_lst_open-f.cfg cpp/type_brace_init_lst.cpp
-34164 cpp/sp_after_type_brace_init_lst_open-r.cfg cpp/type_brace_init_lst.cpp
-34165 cpp/sp_before_type_brace_init_lst_close-f.cfg cpp/type_brace_init_lst.cpp
-34166 cpp/sp_before_type_brace_init_lst_close-r.cfg cpp/type_brace_init_lst.cpp
-34168 cpp/nl_type_brace_init_lst-r.cfg cpp/Issue_2910.cpp
-34169 cpp/sp_inside_fparens-f.cfg cpp/init-list-call.cpp
-
-34170 common/empty.cfg cpp/i1082.cpp
-34171 common/empty.cfg cpp/i1181.cpp
-34172 common/space_indent_columns-4.cfg cpp/i1165.cpp
-34173 cpp/arith-vs-ptr.cfg cpp/i1464.cpp
-34174 cpp/arith-vs-ptr.cfg cpp/i1466.cpp
-34175 cpp/align_assign_span-1.cfg cpp/i1509.cpp
-34176 cpp/align_assign_span-1.cfg cpp/i1509_bug_1112_correction.cpp
-34177 cpp/sp_func_call_paren.cfg cpp/sp_func_call_paren.cpp
-34178 cpp/Issue_3237.cfg cpp/Issue_3237.cpp
-
-34180 cpp/bug_1402.cfg cpp/bug_1402.cpp
-
-34190 cpp/bug_1003.cfg cpp/bug_1003.cpp
-34191 common/empty.cfg cpp/comment-align-multiline.cpp
-34192 cpp/mod_remove_extra_semicolon-t.cfg cpp/i1207.cpp
-34193 common/empty.cfg cpp/i1218.cpp
-34194 cpp/sp_arith_additive-f.cfg cpp/sp_arith_additive.cpp
-34195 cpp/sp_arith_additive-r.cfg cpp/sp_arith_additive.cpp
-34196 cpp/Issue_1460.cfg cpp/Issue_1460.h
-34197 cpp/bug_1161.cfg cpp/bug_1161.cpp
-34198 cpp/sp_dc.cfg cpp/bug_1249.cpp
-34199 common/empty.cfg cpp/not_lambda.cpp
-
-34200 cpp/i1536.cfg cpp/i1536.cpp
-34201 cpp/mod_add_long_namespace_closebrace_comment-1.cfg cpp/i1565.cpp
-34202 cpp/mod_add_long_namespace_closebrace_comment-1.cfg cpp/i1617.cpp
-34203 cpp/i1516.cfg cpp/i1516.cpp
-34204 cpp/align_func_params_span-1.cfg cpp/func_param_indent_leading_comma.cpp
-34205 cpp/bug_1395.cfg cpp/bug_1395.cpp
-34206 cpp/indent_semicolon_for_paren-t.cfg cpp/for_loop_head.cpp
-34207 cpp/indent_first_for_expr-t.cfg cpp/for_loop_head.cpp
-34208 cpp/nl_func_type_name-r.cfg cpp/conversion_operator.cpp
-34209 cpp/nl-brAfter-fcallParen.cfg cpp/lambda_selfcalling.cpp
-
-# TODO: Find relevant test cases for 'override'.
-34210 common/empty.cfg cpp/override_virtual.cpp
-34211 cpp/anonymous_enum.cfg cpp/anonymous_enum.cpp
-
-34250 common/empty.cfg cpp/bug_1607.cpp
-34251 cpp/bug_1649.cfg cpp/bug_1649.cpp
-34252 cpp/nl_after_func_proto_group-3.cfg cpp/issue_2001.cpp
-34253 cpp/nl_after_func_proto_group-3.cfg cpp/friends.cpp
-34254 cpp/issue_1985.cfg cpp/issue_1985.cpp
-34255 cpp/eat_blanks_after_codewidth.cfg cpp/eat_blanks_after_codewidth.cpp
-34256 cpp/Issue_2836.cfg cpp/Issue_2836.cpp
-
-34280 cpp/UNI-29935.cfg cpp/UNI-29935.cpp
-
-34290 cpp/sp_type_brace_init_lst-f.cfg cpp/brace_brace_init_lst.cpp
-34291 cpp/sp_type_brace_init_lst-r.cfg cpp/brace_brace_init_lst.cpp
-34292 cpp/sp_inside_type_brace_init_lst-f.cfg cpp/brace_brace_init_lst.cpp
-34293 cpp/sp_inside_type_brace_init_lst-r.cfg cpp/brace_brace_init_lst.cpp
-34294 cpp/sp_after_type_brace_init_lst_open-f.cfg cpp/brace_brace_init_lst.cpp
-34295 cpp/sp_after_type_brace_init_lst_open-r.cfg cpp/brace_brace_init_lst.cpp
-34296 cpp/i1768.cfg cpp/i1768.cpp
-34297 cpp/align_assign_decl_func-0.cfg cpp/align-assign-mixed.cpp
-34298 cpp/align_assign_decl_func-1.cfg cpp/align-assign-mixed.cpp
-34299 cpp/align_assign_decl_func-2.cfg cpp/align-assign-mixed.cpp
-
-# __asm__
-34300 cpp/bug_1236.cfg cpp/bug_1236.cpp
-34301 cpp/nl_fdef_brace_cond-f.cfg cpp/nl_fdef_brace_cond-f.cpp
-34302 cpp/nl_fdef_brace_cond-r.cfg cpp/nl_fdef_brace_cond-r.cpp
-34303 cpp/nl_fdef_brace_cond-fr.cfg cpp/nl_fdef_brace_cond-fr.cpp
-34304 cpp/nl_fdef_brace_cond-rf.cfg cpp/nl_fdef_brace_cond-rf.cpp
-34305 cpp/issue_2124-1.cfg cpp/issue_2124-1.cpp
-34306 cpp/issue_2124-2.cfg cpp/issue_2124-2.cpp
-34307 cpp/2203.cfg cpp/2203.cpp
-34308 cpp/enum_comment_wrap.cfg cpp/enum_comment_wrap.cpp
-34309 cpp/issue_2209.cfg cpp/issue_2209-1.cpp
-
-34310 cpp/issue_2209.cfg cpp/issue_2209-2.cpp
-34311 cpp/Issue_2250.cfg cpp/Issue_2250.cpp
-34312 cpp/Issue_2101.cfg cpp/Issue_2101.cpp
-34313 cpp/Issue_2437.cfg cpp/Issue_2437.cpp
-34314 cpp/Issue_2604.cfg cpp/Issue_2604.cpp
-34315 cpp/align_func_proto_thresh_1.cfg cpp/align_func_proto_thresh.cpp
-34316 cpp/align_func_proto_thresh_2.cfg cpp/align_func_proto_thresh.cpp
-34317 cpp/align_func_proto_thresh_3.cfg cpp/align_func_proto_thresh.cpp
-34318 cpp/align_assign_func_proto_1.cfg cpp/align_assign_func_proto.cpp
-34319 cpp/align_func_proto_thresh_4.cfg cpp/align_func_proto_thresh2.cpp
-
-34320 cpp/align_func_proto_thresh_5.cfg cpp/align_func_proto_thresh2.cpp
-34321 cpp/bug_2285.cfg cpp/bug_2285.cpp
-34322 cpp/issue_2623_1.cfg cpp/issue_2623.cpp
-34323 cpp/issue_2623_2.cfg cpp/issue_2623.cpp
-34324 cpp/issue_2623_3.cfg cpp/issue_2623.cpp
-34325 cpp/Issue_3025.cfg cpp/Issue_3025.cpp
-34326 cpp/Issue_3040.cfg cpp/Issue_3040.cpp
-34327 cpp/Issue_3044.cfg cpp/Issue_3044.cpp
-34328 cpp/Issue_3048.cfg cpp/Issue_3048.cpp
-
-34330 cpp/Issue_3061_0nl.cfg cpp/Issue_3061_0nl.cpp
-34331 cpp/Issue_3061_0nl.cfg cpp/Issue_3061_1nl.cpp
-34332 cpp/Issue_3061_0nl.cfg cpp/Issue_3061_2nl.cpp
-34333 cpp/Issue_3061_1nl.cfg cpp/Issue_3061_0nl.cpp
-34334 cpp/Issue_3061_1nl.cfg cpp/Issue_3061_1nl.cpp
-34335 cpp/Issue_3061_1nl.cfg cpp/Issue_3061_2nl.cpp
-34336 cpp/Issue_3061_2nl.cfg cpp/Issue_3061_0nl.cpp
-34337 cpp/Issue_3061_2nl.cfg cpp/Issue_3061_1nl.cpp
-34338 cpp/Issue_3061_2nl.cfg cpp/Issue_3061_2nl.cpp
-34339 cpp/Issue_3061_3nl.cfg cpp/Issue_3061_0nl.cpp
-34340 cpp/Issue_3061_3nl.cfg cpp/Issue_3061_1nl.cpp
-34341 cpp/Issue_3061_3nl.cfg cpp/Issue_3061_2nl.cpp
-
-34350 cpp/indent_comma_brace.cfg cpp/indent_comma_brace_glob.cpp
-34351 cpp/indent_comma_brace.cfg cpp/indent_comma_brace_func.cpp
-
-34360 cpp/nl_before_struct.cfg cpp/nl_before_struct_struct.cpp
-34361 cpp/nl_before_struct.cfg cpp/nl_before_struct_scoped_enum.cpp
-
-# test the options sp_ with the value "ignore"
-34500 cpp/sp_before_case_colon.cfg cpp/sp_before_case_colon.cpp
-34501 cpp/sp_endif_cmt.cfg cpp/sp_endif_cmt.cpp
-34502 cpp/sp_enum_assign-f.cfg cpp/sp_enum_assign.cpp
-34503 cpp/sp_enum_assign-i.cfg cpp/sp_enum_assign.cpp
-34504 cpp/issue_574-i-i.cfg cpp/issue_574-i.cpp
-34505 cpp/Issue_3220-f.cfg cpp/Issue_3220.cpp
-34506 cpp/Issue_3220-i.cfg cpp/Issue_3220.cpp
-34507 cpp/Issue_3220-r.cfg cpp/Issue_3220.cpp
-34508 cpp/Issue_3220-ir.cfg cpp/Issue_3220.cpp
-34509 cpp/byref-ir.cfg cpp/byref-2.cpp
-
-34510 cpp/byref-i.cfg cpp/byref-2.cpp
-34511 cpp/byref-f.cfg cpp/byref-2.cpp
-34512 cpp/byref-r.cfg cpp/byref-2.cpp
-34513 cpp/sp_cond_question-ir.cfg cpp/sp_cond_question.cpp
-34514 cpp/sp_cond_question-i.cfg cpp/sp_cond_question.cpp
-34515 cpp/sp_cond_question-f.cfg cpp/sp_cond_question.cpp
-34516 cpp/sp_cond_question-r.cfg cpp/sp_cond_question.cpp
-34517 cpp/semi-f.cfg cpp/semi.cpp
-34518 cpp/semi-i.cfg cpp/semi.cpp
-34519 cpp/semi-r.cfg cpp/semi.cpp
-
-34520 cpp/comma-f.cfg cpp/comma.cpp
-34521 cpp/comma-i.cfg cpp/comma.cpp
-34522 cpp/comma-r.cfg cpp/comma.cpp
-34523 cpp/ellipsis-i.cfg cpp/gcc_case_ellipsis.cpp
-34524 cpp/sp_bool-i.cfg cpp/bug_1002.cpp
-34525 cpp/sp_paren_brace-f.cfg cpp/sp_paren_brace.cpp
-34526 cpp/sp_paren_brace-i.cfg cpp/sp_paren_brace.cpp
-34527 cpp/sp_paren_brace-r.cfg cpp/sp_paren_brace.cpp
-34528 cpp/cmt_trailing_single_line_c_to_cpp.cfg cpp/cmt_trailing_single_line_c_to_cpp.cpp
-34529 cpp/sp_inside_type_brace_init_lst-iif.cfg cpp/type_brace_init_lst.cpp
-
-34530 cpp/sp_inside_type_brace_init_lst-irf.cfg cpp/type_brace_init_lst.cpp
-34531 cpp/sp_inside_type_brace_init_lst-rf.cfg cpp/type_brace_init_lst.cpp
-34532 cpp/sp_inside_type_brace_init_lst-iii.cfg cpp/type_brace_init_lst.cpp
-34533 cpp/templates-i.cfg cpp/templates.cpp
-34534 cpp/templates-r.cfg cpp/templates.cpp
-34535 cpp/template_sp-ignore.cfg cpp/sp_after_angle.cpp
-34536 cpp/template_sp-remove.cfg cpp/sp_after_angle.cpp
-
-# Adopt some UT tests
-10000 common/empty.cfg cpp/621_this-spacing.cpp
-10001 common/empty.cfg cpp/622_ifdef-indentation.cpp
-10002 cpp/623_caret-spacing.cfg cpp/623_caret-spacing.cpp
-10003 cpp/633_decl-in-func-typedef.cfg cpp/633_decl-in-func-typedef.cpp
-10004 common/empty.cfg cpp/634_extern-c-no-block.cpp
-10005 cpp/Uncrustify.Cpp.cfg cpp/define-indentation.cpp
-10006 cpp/dont-detab-strings.cfg cpp/dont-detab-strings.cpp
-10007 cpp/dont-process-defines.cfg cpp/dont-process-defines.cpp
-10008 common/empty.cfg cpp/PR326_invalid-backslash-eol-csharp.cpp
-10009 cpp/STUCK_macro-difficulties.cfg cpp/STUCK_macro-difficulties.cpp
-
-10020 cpp/U02-Cpp.cfg cpp/macro_spaces.cpp
-10021 cpp/U03-Cpp.cfg cpp/braces_align.cpp
-10022 cpp/U04-Cpp.cfg cpp/foreach.cpp
-10023 cpp/U05-Cpp.cfg cpp/for_auto.cpp
-10024 cpp/U06-Cpp.cfg cpp/ifcomment.cpp
-10025 cpp/U07-Cpp.cfg cpp/qtargs.cpp
-10026 cpp/sp_before_ellipsis-r.cfg cpp/gcc_case_ellipsis.cpp
-10027 cpp/Issue_3058.cfg cpp/Issue_3058.cpp
-10028 cpp/sp_before_ellipsis-f.cfg cpp/gcc_case_ellipsis.cpp
-10029 cpp/sp_after_ellipsis-f.cfg cpp/gcc_case_ellipsis.cpp
-
-10047 cpp/U16-Cpp.cfg cpp/UNI-1334.cpp
-10048 common/empty.cfg cpp/UNI-1335.cpp
-
-10050 cpp/U18-Cpp.cfg cpp/UNI-1337.cpp
-10052 common/empty.cfg cpp/UNI-1339.cpp
-10053 cpp/UNI-1340.cfg cpp/UNI-1340.cpp
-10054 cpp/UNI-1344.cfg cpp/UNI-1344.cpp
-10056 cpp/UNI-1346.cfg cpp/UNI-1346.cpp
-10057 cpp/UNI-1347.cfg cpp/UNI-1347.cpp
-
-10060 cpp/UNI-1350.cfg cpp/UNI-1350.cpp
-10062 cpp/UNI-1356.cfg cpp/UNI-1356.cpp
-10063 cpp/UNI-1358.cfg cpp/UNI-1358.cpp
-10069 common/empty.cfg cpp/UNI-1980.cpp
-
-10070 cpp/U21-Cpp.cfg cpp/UNI-1981.cpp
-10071 common/empty.cfg cpp/UNI-1983.cpp
-10079 cpp/U23-Cpp.cfg cpp/UNI-9650.cpp
-
-10080 cpp/UNI-10496.cfg cpp/UNI-10496.cpp
-
-10100 cpp/issue_564.cfg cpp/issue_564.cpp
-10101 cpp/issue_574.cfg cpp/issue_574.cpp
-10102 cpp/issue_574-i-a.cfg cpp/issue_574.cpp
-10103 cpp/issue_574-i-b.cfg cpp/issue_574.cpp
-
-10566 common/empty.cfg cpp/issue_1752.cpp
-
-11000 cpp/UNI-12046.cfg cpp/UNI-12046.cpp
-
-20002 cpp/UNI-32657.cfg cpp/UNI-32657.cpp
-
-20011 common/empty.cfg cpp/UNI-38381.cpp
-
-60001 cpp/UNI-2650.cfg cpp/UNI-2650.cpp
-60002 cpp/U25-Cpp.cfg cpp/UNI-16283.cpp
-60003 cpp/U26-Cpp.cfg cpp/UNI-1288.cpp
-60006 cpp/UNI-2049.cfg cpp/UNI-2049.cpp
-60017 cpp/U27-Cpp.cfg cpp/UNI-2683.cpp
-
-60022 cpp/U28-Cpp.cfg cpp/UNI-18439.cpp
-60025 cpp/U29-Cpp.cfg cpp/UNI-19894.cpp
-60027 cpp/U30-Cpp.cfg cpp/UNI-21506.cpp
-60028 cpp/U31-Cpp.cfg cpp/UNI-21509.cpp
-60029 common/empty.cfg cpp/UNI-21510.cpp
-
-60030 cpp/U33-Cpp.cfg cpp/UNI-21727.cpp
-60031 common/empty.cfg cpp/UNI-21728.cpp
-60032 common/empty.cfg cpp/UNI-21729.cpp
-60036 cpp/UNI-2680.cfg cpp/UNI-2680.cpp
-60038 cpp/UNI-30088.cfg cpp/UNI-30088.cpp
-60039 cpp/U36-Cpp.cfg cpp/UNI-30628.cpp
-
-60042 common/UNI-18777.cfg cpp/UNI-18777.cpp
-60043 cpp/nl_remove_extra_newlines-1.cfg cpp/i2033.cpp
-60044 cpp/nl_fdef_brace-r__nl_collapse_empty_body-t.cfg cpp/i2116.cpp
-60045 cpp/align_asterisk_after_type_cast.cfg cpp/align_asterisk_after_type_cast.cpp
-60046 cpp/align_continuation_left_shift.cfg cpp/align_continuation_left_shift.cpp
-60047 cpp/align_default_after_override.cfg cpp/align_default_after_override.cpp
-60048 cpp/bug_2322.cfg cpp/bug_2322.cpp
-60049 cpp/bug_2402.cfg cpp/bug_2402.cpp
-
-60050 cpp/mod_remove_extra_semicolon-t.cfg cpp/semicolon-removal-after-ternary-operator.cpp
-60051 cpp/bug_2371.cfg cpp/bug_2371.cpp
-60052 cpp/bug_2433_1.cfg cpp/bug_2433_1.cpp
-60053 cpp/bug_2433_2.cfg cpp/bug_2433_2.cpp
-60054 cpp/interface-keyword-in-cpp.cfg cpp/interface-keyword-in-cpp.cpp
-60055 cpp/issue_3116.cfg cpp/issue_3116.cpp
-60056 cpp/issue_3116.cfg cpp/issue_3116-2.cpp
-60057 cpp/issue_3116-2.cfg cpp/issue_3116.cpp
-60058 cpp/sp_constr_colon-i.cfg cpp/issue_3330.cpp
-60059 cpp/indent_ctor_init_leading.cfg cpp/indent_ctor_init.cpp
-60060 cpp/sp_return-a.cfg cpp/returns.cpp
-60061 cpp/sp_return-f.cfg cpp/returns.cpp
-60062 cpp/sp_return-i.cfg cpp/returns.cpp
-60063 cpp/sp_return-r.cfg cpp/returns.cpp
-60064 cpp/sp_constr_colon-i.cfg cpp/issue_3368.cpp
-60065 cpp/issue_3378.cfg cpp/issue_3378.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00901-code_width.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00901-code_width.c
deleted file mode 100644
index 672f9153..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00901-code_width.c
+++ /dev/null
@@ -1,87 +0,0 @@
-
-static int short_function_name(struct device *dev,
- struct device_driver *drv);
-
-/* Assuming a 60-column limit */
-static int short_function_name(struct device *dev,
- struct device_driver *drv)
-{
- this->translateLabels(labelID,
- completedLabelID,
- selectedLabelID,
- text,
- selectedText,
- completedText,
- fontId,
- selectedFontId,
- completedFontId);
- call_some_really_long_function.of_some_sort(
- some_long_parameter1,
- some_long_parameter2);
-
- abc = call_some_other_really_long_function.of_some_sort(
- some_long_parameter1,
- some_long_parameter2);
-
- abc.def.ghi =
- call_some_other_really_long_function.of_some_sort(
- some_long_parameter1,
- some_long_parameter2);
-
- abcdefghijklmnopqrstuvwxyz = abc + def + ghi + jkl +
- mno + prq + stu + vwx + yz;
-
- return 1;
-}
-
-typedef
- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
- yyyyyyyyyyyyyyyyyyyyyy;
-
-typedef some_return_value (*some_function_type)(another_type
- parameter1,
- another_type
- parameter2);
-
-typedef struct
- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-{
- int yyyyyyyyyyyyyyyyyyyyyy;
-} x_t;
-
-static void some_really_long_function_name(
- struct device *dev,
- struct device_driver *drv)
-{
- if ((some_variable_name &&
- somefunction(param1, param2, param3))) {
- asdfghjk = asdfasdfasd.aasdfasd +
- (asdfasd.asdas * 1234.65);
- }
-
- for (struct something_really_really_excessive *
- a_long_ptr_name = get_first_item();
- a_long_ptr_name != NULL;
- a_long_ptr_name = get_next_item(a_long_ptr_name))
- {
- }
-
- for (a = get_first(); a != NULL; a = get_next(a))
- {
- }
-
- for (a_ptr = get_first(); a_ptr != NULL;
- a_ptr = get_next(a))
- {
- }
-
- register_clcmd( "examine",
- "do_examine",
- -1,
- "-Allows a player to examine the health and armor of a teammate" );
- register_clcmd( "/examine",
- "do_examine",
- -1,
- "-Allows a player to examine the health and armor of a teammate" );
-}
-
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00902-code_width.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00902-code_width.c
deleted file mode 100644
index 9c5a4cec..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00902-code_width.c
+++ /dev/null
@@ -1,76 +0,0 @@
-
-static int short_function_name(struct device *dev,
- struct device_driver *drv);
-
-/* Assuming a 60-column limit */
-static int short_function_name(struct device *dev,
- struct device_driver *drv)
-{
- this->translateLabels(labelID, completedLabelID,
- selectedLabelID, text,
- selectedText, completedText,
- fontId, selectedFontId,
- completedFontId);
- call_some_really_long_function.of_some_sort(
- some_long_parameter1, some_long_parameter2);
-
- abc = call_some_other_really_long_function.of_some_sort(
- some_long_parameter1, some_long_parameter2);
-
- abc.def.ghi =
- call_some_other_really_long_function.of_some_sort(
- some_long_parameter1, some_long_parameter2);
-
- abcdefghijklmnopqrstuvwxyz = abc + def + ghi + jkl +
- mno + prq + stu + vwx + yz;
-
- return 1;
-}
-
-typedef
- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
- yyyyyyyyyyyyyyyyyyyyyy;
-
-typedef some_return_value (*some_function_type)(another_type
- parameter1,
- another_type
- parameter2);
-
-typedef struct
- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-{
- int yyyyyyyyyyyyyyyyyyyyyy;
-} x_t;
-
-static void some_really_long_function_name(
- struct device *dev, struct device_driver *drv)
-{
- if ((some_variable_name &&
- somefunction(param1, param2, param3))) {
- asdfghjk = asdfasdfasd.aasdfasd +
- (asdfasd.asdas * 1234.65);
- }
-
- for (struct something_really_really_excessive *
- a_long_ptr_name = get_first_item();
- a_long_ptr_name != NULL;
- a_long_ptr_name = get_next_item(a_long_ptr_name))
- {
- }
-
- for (a = get_first(); a != NULL; a = get_next(a))
- {
- }
-
- for (a_ptr = get_first();
- a_ptr != NULL;
- a_ptr = get_next(a))
- {
- }
-
- register_clcmd( "examine", "do_examine", -1,
- "-Allows a player to examine the health and armor of a teammate" );
- register_clcmd( "/examine", "do_examine", -1,
- "-Allows a player to examine the health and armor of a teammate" );
-}
-
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00903-code_width.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00903-code_width.c
deleted file mode 100644
index 049e952d..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00903-code_width.c
+++ /dev/null
@@ -1,75 +0,0 @@
-
-static int short_function_name(struct device *dev, struct device_driver *drv);
-
-/* Assuming a 60-column limit */
-static int short_function_name(struct device *dev, struct device_driver *drv)
-{
- this->translateLabels(labelID,
- completedLabelID,
- selectedLabelID,
- text,
- selectedText,
- completedText,
- fontId,
- selectedFontId,
- completedFontId);
- call_some_really_long_function.of_some_sort(some_long_parameter1,
- some_long_parameter2);
-
- abc = call_some_other_really_long_function.of_some_sort(
- some_long_parameter1,
- some_long_parameter2);
-
- abc.def.ghi = call_some_other_really_long_function.of_some_sort(
- some_long_parameter1,
- some_long_parameter2);
-
- abcdefghijklmnopqrstuvwxyz = abc + def + ghi + jkl + mno + prq + stu + vwx +
- yz;
-
- return 1;
-}
-
-typedef xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
- yyyyyyyyyyyyyyyyyyyyyy;
-
-typedef some_return_value (*some_function_type)(another_type parameter1,
- another_type parameter2);
-
-typedef struct xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-{
- int yyyyyyyyyyyyyyyyyyyyyy;
-} x_t;
-
-static void some_really_long_function_name(struct device *dev,
- struct device_driver *drv)
-{
- if ((some_variable_name && somefunction(param1, param2, param3))) {
- asdfghjk = asdfasdfasd.aasdfasd + (asdfasd.asdas * 1234.65);
- }
-
- for (struct something_really_really_excessive *a_long_ptr_name =
- get_first_item();
- a_long_ptr_name != NULL;
- a_long_ptr_name = get_next_item(a_long_ptr_name))
- {
- }
-
- for (a = get_first(); a != NULL; a = get_next(a))
- {
- }
-
- for (a_ptr = get_first(); a_ptr != NULL; a_ptr = get_next(a))
- {
- }
-
- register_clcmd( "examine",
- "do_examine",
- -1,
- "-Allows a player to examine the health and armor of a teammate" );
- register_clcmd( "/examine",
- "do_examine",
- -1,
- "-Allows a player to examine the health and armor of a teammate" );
-}
-
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02487-doxy-comment.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02487-doxy-comment.c
deleted file mode 100644
index 4abad3c8..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02487-doxy-comment.c
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-int a; // a
-int a; /// a
-int a; ///< a
-int a; //! a
-int a; //!< a
-
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/02102-indent-c.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/02102-indent-c.cpp
deleted file mode 100644
index 70648397..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/02102-indent-c.cpp
+++ /dev/null
@@ -1,1024 +0,0 @@
-/**
- * @file indent.cpp
- * Does all the indenting stuff.
- *
- * $Id: indent.cpp 548 2006-10-21 02:31:55Z bengardner $
- */
-#include "uncrustify_types.h"
-#include "chunk_list.h"
-#include "prototypes.h"
-#include <cstdio>
-#include <cstdlib>
-#include <cstring>
-#include <cerrno>
-#include <cctype>
-
-
-/**
- * General indenting approach:
- * Indenting levels are put into a stack.
- *
- * The stack entries contain:
- * - opening type
- * - brace column
- * - continuation column
- *
- * Items that start a new stack item:
- * - preprocessor (new parse frame)
- * - Brace Open (Virtual brace also)
- * - Paren, Square, Angle open
- * - Assignments
- * - C++ '<<' operator (ie, cout << "blah")
- * - case
- * - class colon
- * - return
- * - types
- * - any other continued statement
- *
- * Note that the column of items marked 'PCF_WAS_ALIGNED' is not changed.
- *
- * For an open brace:
- * - indent increases by indent_columns
- * - if part of if/else/do/while/switch/etc, an extra indent may be applied
- * - if in a paren, then cont-col is set to column + 1, ie "({ some code })"
- *
- * Open paren/square/angle:
- * cont-col is set to the column of the item after the open paren, unless
- * followed by a newline, then it is set to (brace-col + indent_columns).
- * Examples:
- * a_really_long_funcion_name(
- * param1, param2);
- * a_really_long_funcion_name(param1,
- * param2);
- *
- * Assignments:
- * Assignments are continued aligned with the first item after the assignment,
- * unless the assign is followed by a newline.
- * Examples:
- * some.variable = asdf + asdf +
- * asdf;
- * some.variable =
- * asdf + asdf + asdf;
- *
- * C++ << operator:
- * Handled the same as assignment.
- * Examples:
- * cout << "this is test number: "
- * << test_number;
- *
- * case:
- * Started with case or default.
- * Terminated with close brace at level or another case or default.
- * Special indenting according to various rules.
- * - indent of case label
- * - indent of case body
- * - how to handle optional braces
- * Examples:
- * {
- * case x: {
- * a++;
- * break;
- * }
- * case y:
- * b--;
- * break;
- * default:
- * c++;
- * break;
- * }
- *
- * Class colon:
- * Indent continuation by indent_columns:
- * class my_class :
- * baseclass1,
- * baseclass2
- * {
- *
- * Return: same as assignemts
- * If the return statement is not fully paren'd, then the indent continues at
- * the column of the item after the return. If it is paren'd, then the paren
- * rules apply.
- * return somevalue +
- * othervalue;
- *
- * Type: pretty much the same as assignments
- * Examples:
- * int foo,
- * bar,
- * baz;
- *
- * Any other continued item:
- * There shouldn't be anything not covered by the above cases, but any other
- * continued item is indented by indent_columns:
- * Example:
- * somereallycrazylongname.with[lotsoflongstuff].
- * thatreallyannoysme.whenIhavetomaintain[thecode] = 3;
- */
-
-static void indent_comment(chunk_t *pc, int col);
-
-
-void indent_to_column(chunk_t *pc, int column)
- {
- if (column < pc->column)
- column = pc->column;
-
- reindent_line(pc, column);
- }
-
-/**
- * Changes the initial indent for a line to the given column
- *
- * @param pc The chunk at the start of the line
- * @param column The desired column
- */
-void reindent_line(chunk_t *pc, int column)
- {
- int col_delta;
- int min_col;
-
- LOG_FMT(LINDLINE, "%s: %d] col %d on %.*s [%s] => %d\n",
- __func__, pc->orig_line, pc->column, pc->len, pc->str,
- get_token_name(pc->type), column);
-
- if (column == pc->column)
- return;
-
- col_delta = column - pc->column;
- pc->column = column;
- min_col = pc->column;
-
- do
- {
- min_col += pc->len;
- pc = chunk_get_next(pc);
-
- if (pc != NULL)
- {
- if (chunk_is_comment(pc))
- {
- pc->column = pc->orig_col;
-
- if (pc->column < min_col)
- pc->column = min_col + 1;
-
- LOG_FMT(LINDLINE, "%s: set comment on line %d to col %d (orig %d)\n",
- __func__, pc->orig_line, pc->column, pc->orig_col);
- }
- else
- {
- pc->column += col_delta;
-
- if (pc->column < min_col)
- pc->column = min_col;
- }
- }
- }
- while ((pc != NULL) && (pc->nl_count == 0));
- }
-
-/**
- * Starts a new entry
- *
- * @param frm The parse frame
- * @param pc The chunk causing the push
- */
-static void indent_pse_push(struct parse_frame& frm, chunk_t *pc)
- {
- static int ref = 0;
-
- /* check the stack depth */
- if (frm.pse_tos < (int)ARRAY_SIZE(frm.pse))
- {
- /* Bump up the index and initialize it */
- frm.pse_tos++;
- memset(&frm.pse[frm.pse_tos], 0, sizeof(frm.pse[frm.pse_tos]));
-
- LOG_FMT(LINDPSE, "%4d] OPEN [%d,%s] level=%d\n",
- pc->orig_line, frm.pse_tos, get_token_name(pc->type), pc->level);
-
- frm.pse[frm.pse_tos].type = pc->type;
- frm.pse[frm.pse_tos].level = pc->level;
- frm.pse[frm.pse_tos].open_line = pc->orig_line;
- frm.pse[frm.pse_tos].ref = ++ref;
- frm.pse[frm.pse_tos].in_preproc = (pc->flags & PCF_IN_PREPROC) != 0;
- }
- }
-
-/**
- * Removes the top entry
- *
- * @param frm The parse frame
- * @param pc The chunk causing the push
- */
-static void indent_pse_pop(struct parse_frame& frm, chunk_t *pc)
- {
- /* Bump up the index and initialize it */
- if (frm.pse_tos > 0)
- {
- if (pc != NULL)
- {
- LOG_FMT(LINDPSE, "%4d] CLOSE [%d,%s] on %s, started on line %d, level=%d/%d\n",
- pc->orig_line, frm.pse_tos,
- get_token_name(frm.pse[frm.pse_tos].type),
- get_token_name(pc->type),
- frm.pse[frm.pse_tos].open_line,
- frm.pse[frm.pse_tos].level,
- pc->level);
- }
- else
- {
- LOG_FMT(LINDPSE, " EOF] CLOSE [%d,%s], started on line %d\n",
- frm.pse_tos, get_token_name(frm.pse[frm.pse_tos].type),
- frm.pse[frm.pse_tos].open_line);
- }
-
- frm.pse_tos--;
- }
- }
-
-static int token_indent(c_token_t type)
- {
- switch (type)
- {
- case CT_IF:
- case CT_DO:
- return 3;
-
- case CT_FOR:
- case CT_ELSE: // wacky, but that's what is wanted
- return 4;
-
- case CT_WHILE:
- return 6;
-
- case CT_SWITCH:
- return 7;
-
- case CT_ELSEIF:
- return 8;
-
- default:
- return 0; //cpd.settings[UO_indent_braces].n;
- }
- }
-
-/**
- * Change the top-level indentation only by changing the column member in
- * the chunk structures.
- * The level indicator must already be set.
- */
-void indent_text(void)
- {
- chunk_t *pc;
- chunk_t *next;
- chunk_t *prev = NULL;
- bool did_newline = true;
- int idx;
- int vardefcol = 0;
- int indent_size = cpd.settings[UO_indent_columns].n;
- int tmp;
- struct parse_frame frm;
- bool in_preproc = false, was_preproc = false;
- int indent_column;
- int cout_col = 0; // for aligning << stuff
- int cout_level = 0; // for aligning << stuff
- int parent_token_indent = 0;
-
- memset(&frm, 0, sizeof(frm));
-
- /* dummy top-level entry */
- frm.pse[0].indent = 1;
- frm.pse[0].indent_tmp = 1;
- frm.pse[0].type = CT_EOF;
-
- pc = chunk_get_head();
-
- while (pc != NULL)
- {
- /* Handle proprocessor transitions */
- was_preproc = in_preproc;
- in_preproc = (pc->flags & PCF_IN_PREPROC) != 0;
-
- if (cpd.settings[UO_indent_brace_parent].b)
- parent_token_indent = token_indent(pc->parent_type);
-
- /* Clean up after a #define */
- if (!in_preproc)
- while ((frm.pse_tos > 0) && frm.pse[frm.pse_tos].in_preproc)
- indent_pse_pop(frm, pc);
-
- else
- {
- pf_check(&frm, pc);
-
- if (!was_preproc)
- {
- /* Transition into a preproc by creating a dummy indent */
- frm.level++;
- indent_pse_push(frm, pc);
-
- frm.pse[frm.pse_tos].indent = 1 + indent_size;
- frm.pse[frm.pse_tos].indent_tmp = frm.pse[frm.pse_tos].indent;
- }
- }
-
- if ((cout_col > 0) &&
- (chunk_is_semicolon(pc) ||
- (pc->level < cout_level)))
- {
- cout_col = 0;
- cout_level = 0;
- }
-
- /**
- * Handle non-brace closures
- */
-
- int old_pse_tos;
-
- do
- {
- old_pse_tos = frm.pse_tos;
-
- /* End anything that drops a level
- * REVISIT: not sure about the preproc check
- */
- if (!chunk_is_newline(pc) &&
- !chunk_is_comment(pc) &&
- ((pc->flags & PCF_IN_PREPROC) == 0) &&
- (frm.pse[frm.pse_tos].level > pc->level))
- indent_pse_pop(frm, pc);
-
- if (frm.pse[frm.pse_tos].level == pc->level)
- {
- /* process virtual braces closes (no text output) */
- if ((pc->type == CT_VBRACE_CLOSE) &&
- (frm.pse[frm.pse_tos].type == CT_VBRACE_OPEN))
- {
- indent_pse_pop(frm, pc);
- frm.level--;
- pc = chunk_get_next(pc);
- }
-
- /* End any assign operations with a semicolon on the same level */
- if ((frm.pse[frm.pse_tos].type == CT_ASSIGN) &&
- (chunk_is_semicolon(pc) ||
- (pc->type == CT_COMMA) ||
- (pc->type == CT_BRACE_OPEN)))
- indent_pse_pop(frm, pc);
-
- /* End any CPP class colon crap */
- if ((frm.pse[frm.pse_tos].type == CT_CLASS_COLON) &&
- ((pc->type == CT_BRACE_OPEN) ||
- chunk_is_semicolon(pc)))
- indent_pse_pop(frm, pc);
-
- /* a case is ended with another case or a close brace */
- if ((frm.pse[frm.pse_tos].type == CT_CASE) &&
- ((pc->type == CT_BRACE_CLOSE) ||
- (pc->type == CT_CASE)))
- indent_pse_pop(frm, pc);
-
- /* a return is ended with a semicolon */
- if ((frm.pse[frm.pse_tos].type == CT_RETURN) &&
- chunk_is_semicolon(pc))
- indent_pse_pop(frm, pc);
-
- /* Close out parens and squares */
- if ((frm.pse[frm.pse_tos].type == (pc->type - 1)) &&
- ((pc->type == CT_PAREN_CLOSE) ||
- (pc->type == CT_SPAREN_CLOSE) ||
- (pc->type == CT_FPAREN_CLOSE) ||
- (pc->type == CT_SQUARE_CLOSE) ||
- (pc->type == CT_ANGLE_CLOSE)))
- {
- indent_pse_pop(frm, pc);
- frm.paren_count--;
- }
- }
- }
- while (old_pse_tos > frm.pse_tos);
-
- /* Grab a copy of the current indent */
- indent_column = frm.pse[frm.pse_tos].indent_tmp;
-
- if (!chunk_is_newline(pc) && !chunk_is_comment(pc))
- {
- LOG_FMT(LINDPC, " -=[ %.*s ]=- top=%d %s %d/%d\n",
- pc->len, pc->str,
- frm.pse_tos,
- get_token_name(frm.pse[frm.pse_tos].type),
- frm.pse[frm.pse_tos].indent_tmp,
- frm.pse[frm.pse_tos].indent);
- }
-
- /**
- * Handle stuff that can affect the current indent:
- * - brace close
- * - vbrace open
- * - brace open
- * - case (immediate)
- * - labels (immediate)
- * - class colons (immediate)
- *
- * And some stuff that can't
- * - open paren
- * - open square
- * - assignment
- * - return
- */
-
- if (pc->type == CT_BRACE_CLOSE)
- {
- if (frm.pse[frm.pse_tos].type == CT_BRACE_OPEN)
- {
- indent_pse_pop(frm, pc);
- frm.level--;
-
- /* Update the indent_column if needed */
- if (!cpd.settings[UO_indent_braces].b &&
- (parent_token_indent == 0))
- indent_column = frm.pse[frm.pse_tos].indent_tmp;
-
- if ((pc->parent_type == CT_IF) ||
- (pc->parent_type == CT_ELSE) ||
- (pc->parent_type == CT_ELSEIF) ||
- (pc->parent_type == CT_DO) ||
- (pc->parent_type == CT_WHILE) ||
- (pc->parent_type == CT_SWITCH) ||
- (pc->parent_type == CT_FOR))
- indent_column += cpd.settings[UO_indent_brace].n;
- }
- }
- else if (pc->type == CT_VBRACE_OPEN)
- {
- frm.level++;
- indent_pse_push(frm, pc);
-
- frm.pse[frm.pse_tos].indent = frm.pse[frm.pse_tos - 1].indent + indent_size;
- frm.pse[frm.pse_tos].indent_tmp = frm.pse[frm.pse_tos].indent;
-
- /* Always indent on virtual braces */
- indent_column = frm.pse[frm.pse_tos].indent_tmp;
- }
- else if (pc->type == CT_BRACE_OPEN)
- {
- frm.level++;
- indent_pse_push(frm, pc);
-
- if (frm.paren_count != 0)
- /* We are inside ({ ... }) -- indent one tab from the paren */
- frm.pse[frm.pse_tos].indent = frm.pse[frm.pse_tos - 1].indent_tmp + indent_size;
- else
- {
- /* Use the prev indent level + indent_size. */
- frm.pse[frm.pse_tos].indent = frm.pse[frm.pse_tos - 1].indent + indent_size;
-
- /* If this brace is part of a statement, bump it out by indent_brace */
- if ((pc->parent_type == CT_IF) ||
- (pc->parent_type == CT_ELSE) ||
- (pc->parent_type == CT_ELSEIF) ||
- (pc->parent_type == CT_DO) ||
- (pc->parent_type == CT_WHILE) ||
- (pc->parent_type == CT_SWITCH) ||
- (pc->parent_type == CT_FOR))
- {
- if (parent_token_indent != 0)
- frm.pse[frm.pse_tos].indent += parent_token_indent - indent_size;
- else
- {
- frm.pse[frm.pse_tos].indent += cpd.settings[UO_indent_brace].n;
- indent_column += cpd.settings[UO_indent_brace].n;
- }
- }
- else if (pc->parent_type == CT_CASE)
- {
- /* The indent_case_brace setting affects the parent CT_CASE */
- frm.pse[frm.pse_tos].indent_tmp += cpd.settings[UO_indent_case_brace].n;
- frm.pse[frm.pse_tos].indent += cpd.settings[UO_indent_case_brace].n;
- }
- else if ((pc->parent_type == CT_CLASS) && !cpd.settings[UO_indent_class].b)
- frm.pse[frm.pse_tos].indent -= indent_size;
- else if ((pc->parent_type == CT_NAMESPACE) && !cpd.settings[UO_indent_namespace].b)
- frm.pse[frm.pse_tos].indent -= indent_size;
- }
-
- if ((pc->flags & PCF_DONT_INDENT) != 0)
- {
- frm.pse[frm.pse_tos].indent = pc->column;
- indent_column = pc->column;
- }
- else
- {
- /**
- * If there isn't a newline between the open brace and the next
- * item, just indent to wherever the next token is.
- * This covers this sort of stuff:
- * { a++;
- * b--; };
- */
- next = chunk_get_next_ncnnl(pc);
-
- if (!chunk_is_newline_between(pc, next))
- frm.pse[frm.pse_tos].indent = next->column;
-
- frm.pse[frm.pse_tos].indent_tmp = frm.pse[frm.pse_tos].indent;
- frm.pse[frm.pse_tos].open_line = pc->orig_line;
-
- /* Update the indent_column if needed */
- if (cpd.settings[UO_indent_braces].n ||
- (parent_token_indent != 0))
- indent_column = frm.pse[frm.pse_tos].indent_tmp;
- }
- }
- else if (pc->type == CT_CASE)
- {
- /* Start a case - indent UO_indent_switch_case from the switch level */
- tmp = frm.pse[frm.pse_tos].indent + cpd.settings[UO_indent_switch_case].n;
-
- indent_pse_push(frm, pc);
-
- frm.pse[frm.pse_tos].indent = tmp;
- frm.pse[frm.pse_tos].indent_tmp = tmp - indent_size;
-
- /* Always set on case statements */
- indent_column = frm.pse[frm.pse_tos].indent_tmp;
- }
- else if (pc->type == CT_LABEL)
- {
- /* Labels get sent to the left or backed up */
- if (cpd.settings[UO_indent_label].n > 0)
- indent_column = cpd.settings[UO_indent_label].n;
- else
- indent_column = frm.pse[frm.pse_tos].indent +
- cpd.settings[UO_indent_label].n;
- }
- else if (pc->type == CT_CLASS_COLON)
- {
- /* just indent one level */
- indent_pse_push(frm, pc);
- frm.pse[frm.pse_tos].indent = frm.pse[frm.pse_tos - 1].indent_tmp + indent_size;
- frm.pse[frm.pse_tos].indent_tmp = frm.pse[frm.pse_tos].indent;
-
- indent_column = frm.pse[frm.pse_tos].indent_tmp;
-
- if (cpd.settings[UO_indent_class_colon].b)
- {
- prev = chunk_get_prev(pc);
-
- if (chunk_is_newline(prev))
- {
- frm.pse[frm.pse_tos].indent += 2;
- /* don't change indent of current line */
- }
- }
- }
- else if ((pc->type == CT_PAREN_OPEN) ||
- (pc->type == CT_SPAREN_OPEN) ||
- (pc->type == CT_FPAREN_OPEN) ||
- (pc->type == CT_SQUARE_OPEN) ||
- (pc->type == CT_ANGLE_OPEN))
- {
- /* Open parens and squares - never update indent_column */
- indent_pse_push(frm, pc);
- frm.pse[frm.pse_tos].indent = pc->column + pc->len;
-
- if (cpd.settings[UO_indent_func_call_param].b &&
- (pc->type == CT_FPAREN_OPEN) &&
- (pc->parent_type == CT_FUNC_CALL))
- frm.pse[frm.pse_tos].indent = frm.pse[frm.pse_tos - 1].indent + indent_size;
-
- if ((chunk_is_str(pc, "(", 1) && !cpd.settings[UO_indent_paren_nl].b) ||
- (chunk_is_str(pc, "[", 1) && !cpd.settings[UO_indent_square_nl].b))
- {
- next = chunk_get_next_nc(pc);
-
- if (chunk_is_newline(next))
- {
- int sub = 1;
-
- if (frm.pse[frm.pse_tos - 1].type == CT_ASSIGN)
- sub = 2;
-
- frm.pse[frm.pse_tos].indent = frm.pse[frm.pse_tos - sub].indent + indent_size;
- }
- }
-
- frm.pse[frm.pse_tos].indent_tmp = frm.pse[frm.pse_tos].indent;
- frm.paren_count++;
- }
- else if (pc->type == CT_ASSIGN)
- {
- /**
- * if there is a newline after the '=', just indent one level,
- * otherwise align on the '='.
- * Never update indent_column.
- */
- next = chunk_get_next(pc);
-
- if (next != NULL)
- {
- indent_pse_push(frm, pc);
-
- if (chunk_is_newline(next))
- frm.pse[frm.pse_tos].indent = frm.pse[frm.pse_tos - 1].indent_tmp + indent_size;
- else
- frm.pse[frm.pse_tos].indent = pc->column + pc->len + 1;
-
- frm.pse[frm.pse_tos].indent_tmp = frm.pse[frm.pse_tos].indent;
- }
- }
- else if (pc->type == CT_RETURN)
- {
- /* don't count returns inside a () or [] */
- if (pc->level == pc->brace_level)
- {
- indent_pse_push(frm, pc);
- frm.pse[frm.pse_tos].indent = frm.pse[frm.pse_tos - 1].indent + pc->len + 1;
- frm.pse[frm.pse_tos].indent_tmp = frm.pse[frm.pse_tos - 1].indent;
- }
- }
- else if (chunk_is_str(pc, "<<", 2))
- {
- if (cout_col == 0)
- {
- cout_col = pc->column;
- cout_level = pc->level;
- }
- }
- else
- {
- /* anything else? */
- }
-
- /**
- * Indent the line if needed
- */
- if (did_newline && !chunk_is_newline(pc) && (pc->len != 0))
- {
- /**
- * Check for special continuations.
- * Note that some of these could be done as a stack item like
- * everything else
- */
-
- prev = chunk_get_prev_ncnnl(pc);
-
- if ((pc->type == CT_MEMBER) ||
- (pc->type == CT_DC_MEMBER) ||
- ((prev != NULL) &&
- ((prev->type == CT_MEMBER) ||
- (prev->type == CT_DC_MEMBER))))
- {
- tmp = cpd.settings[UO_indent_member].n + indent_column;
- LOG_FMT(LINDENT, "%s: %d] member => %d\n",
- __func__, pc->orig_line, tmp);
- reindent_line(pc, tmp);
- }
- else if (chunk_is_str(pc, "<<", 2) && (cout_col > 0))
- {
- LOG_FMT(LINDENT, "%s: %d] cout_col => %d\n",
- __func__, pc->orig_line, cout_col);
- reindent_line(pc, cout_col);
- }
- else if ((vardefcol > 0) &&
- (pc->type == CT_WORD) &&
- ((pc->flags & PCF_VAR_DEF) != 0) &&
- (prev != NULL) && (prev->type == CT_COMMA))
- {
- LOG_FMT(LINDENT, "%s: %d] Vardefcol => %d\n",
- __func__, pc->orig_line, vardefcol);
- reindent_line(pc, vardefcol);
- }
- else if ((pc->type == CT_STRING) && (prev->type == CT_STRING) &&
- cpd.settings[UO_indent_align_string].b)
- {
- LOG_FMT(LINDENT, "%s: %d] String => %d\n",
- __func__, pc->orig_line, prev->column);
- reindent_line(pc, prev->column);
- }
- else if (chunk_is_comment(pc))
- {
- LOG_FMT(LINDENT, "%s: %d] comment => %d\n",
- __func__, pc->orig_line, frm.pse[frm.pse_tos].indent_tmp);
- indent_comment(pc, frm.pse[frm.pse_tos].indent_tmp);
- }
- else if (pc->type == CT_PREPROC)
- {
- /* Preprocs are always in column 1. See indent_preproc() */
- if (pc->column != 1)
- reindent_line(pc, 1);
- }
- else
- {
- if (pc->column != indent_column)
- {
- LOG_FMT(LINDENT, "%s: %d] indent => %d [%.*s]\n",
- __func__, pc->orig_line, indent_column, pc->len, pc->str);
- reindent_line(pc, indent_column);
- }
- }
-
- did_newline = false;
- }
-
- /**
- * Handle variable definition continuation indenting
- */
- if ((pc->type == CT_WORD) &&
- ((pc->flags & PCF_IN_FCN_DEF) == 0) &&
- ((pc->flags & PCF_VAR_1ST_DEF) == PCF_VAR_1ST_DEF))
- vardefcol = pc->column;
-
- if (chunk_is_semicolon(pc) ||
- ((pc->type == CT_BRACE_OPEN) && (pc->parent_type == CT_FUNCTION)))
- vardefcol = 0;
-
- /* if we hit a newline, reset indent_tmp */
- if (chunk_is_newline(pc) ||
- (pc->type == CT_COMMENT_MULTI) ||
- (pc->type == CT_COMMENT_CPP))
- {
- frm.pse[frm.pse_tos].indent_tmp = frm.pse[frm.pse_tos].indent;
-
- /**
- * Handle the case of a multi-line #define w/o anything on the
- * first line (indent_tmp will be 1 or 0)
- */
- if ((pc->type == CT_NL_CONT) &&
- (frm.pse[frm.pse_tos].indent_tmp <= indent_size))
- frm.pse[frm.pse_tos].indent_tmp = indent_size + 1;
-
- /* Get ready to indent the next item */
- did_newline = true;
- }
-
- if (!chunk_is_comment(pc) && !chunk_is_newline(pc))
- prev = pc;
-
- pc = chunk_get_next(pc);
- }
-
- /* Throw out any stuff inside a preprocessor - no need to warn */
- while ((frm.pse_tos > 0) && frm.pse[frm.pse_tos].in_preproc)
- indent_pse_pop(frm, pc);
-
- for (idx = 1; idx <= frm.pse_tos; idx++)
- {
- LOG_FMT(LWARN, "%s:%d Unmatched %s\n",
- cpd.filename, frm.pse[idx].open_line,
- get_token_name(frm.pse[idx].type));
- cpd.error_count++;
- }
- }
-
-/**
- * returns true if forward scan reveals only single newlines or comments
- * stops when hits code
- * false if next thing hit is a closing brace, also if 2 newlines in a row
- */
-
-
-static bool single_line_comment_indent_rule_applies(chunk_t *start)
- {
- chunk_t *pc = start;
- int nl_count = 0;
-
- if (!chunk_is_single_line_comment(pc))
- return false;
-
- /* scan forward, if only single newlines and comments before next line of code, we want to apply */
- while ((pc = chunk_get_next(pc)) != NULL)
- {
- if (chunk_is_newline(pc))
- {
- if (nl_count > 0 || pc->nl_count > 1)
- return false;
-
- nl_count++;
- }
- else
- {
- nl_count = 0;
-
- if (!chunk_is_single_line_comment(pc))
- {
- /* here we check for things to run into that we wouldn't want to indent the comment for */
- /* for example, non-single line comment, closing brace */
- if (chunk_is_comment(pc) || chunk_is_closing_brace(pc))
- return false;
-
- return true;
- }
- }
- }
-
- return false;
- }
-
-/**
- * REVISIT: This needs to be re-checked, maybe cleaned up
- *
- * Indents comments in a (hopefully) smart manner.
- *
- * There are two type of comments that get indented:
- * - stand alone (ie, no tokens on the line before the comment)
- * - trailing comments (last token on the line apart from a linefeed)
- * + note that a stand-alone comment is a special case of a trailing
- *
- * The stand alone comments will get indented in one of three ways:
- * - column 1:
- * + There is an empty line before the comment AND the indent level is 0
- * + The comment was originally in column 1
- *
- * - Same column as trailing comment on previous line (ie, aligned)
- * + if originally within TBD (3) columns of the previous comment
- *
- * - syntax indent level
- * + doesn't fit in the previous categories
- *
- * Options modify this behavior:
- * - keep original column (don't move the comment, if possible)
- * - keep relative column (move out the same amount as first item on line)
- * - fix trailing comment in column TBD
- *
- * @param pc The comment, which is the first item on a line
- * @param col The column if this is to be put at indent level
- */
-static void indent_comment(chunk_t *pc, int col)
- {
- chunk_t *nl;
- chunk_t *prev;
-
- LOG_FMT(LCMTIND, "%s: line %d, col %d, level %d: ", __func__,
- pc->orig_line, pc->orig_col, pc->level);
-
- /* force column 1 comment to column 1 if not changing them */
- if ((pc->orig_col == 1) && !cpd.settings[UO_indent_col1_comment].b)
- {
- LOG_FMT(LCMTIND, "rule 1 - keep in col 1\n");
- pc->column = 1;
- return;
- }
-
- nl = chunk_get_prev(pc);
-
- /* outside of any expression or statement? */
- if (pc->level == 0)
- {
- if ((nl != NULL) && (nl->nl_count > 1))
- {
- LOG_FMT(LCMTIND, "rule 2 - level 0, nl before\n");
- pc->column = 1;
- return;
- }
- }
-
- prev = chunk_get_prev(nl);
-
- if (chunk_is_comment(prev) && (nl->nl_count == 1))
- {
- int coldiff = prev->orig_col - pc->orig_col;
-
- if ((coldiff <= 3) && (coldiff >= -3))
- {
- pc->column = prev->column;
- LOG_FMT(LCMTIND, "rule 3 - prev comment, coldiff = %d, now in %d\n",
- coldiff, pc->column);
- return;
- }
- }
-
- /* check if special single line comment rule applies */
- if (cpd.settings[UO_indent_sing_line_comments].n > 0 && single_line_comment_indent_rule_applies(pc))
- {
- pc->column = col + cpd.settings[UO_indent_sing_line_comments].n;
- LOG_FMT(LCMTIND, "rule 4 - single line comment indent, now in %d\n", pc->column);
- return;
- }
-
- LOG_FMT(LCMTIND, "rule 5 - fall-through, stay in %d\n", col);
-
- pc->column = col;
- }
-
-/**
- * Put spaces on either side of the preproc (#) symbol.
- * This is done by pointing pc->str into pp_str and adjusting the
- * length.
- */
-void indent_preproc(void)
- {
- chunk_t *pc;
- chunk_t *next;
- int pp_level;
- int pp_level_sub = 0;
- int tmp;
-
- /* Define a string of 16 spaces + # + 16 spaces */
- static const char *pp_str = " # ";
- static const char *alt_str = " %: ";
-
- /* Scan to see if the whole file is covered by one #ifdef */
- int stage = 0;
-
- for (pc = chunk_get_head(); pc != NULL; pc = chunk_get_next(pc))
- {
- if (chunk_is_comment(pc) || chunk_is_newline(pc))
- continue;
-
- if (stage == 0)
- {
- /* Check the first PP, make sure it is an #if type */
- if (pc->type != CT_PREPROC)
- break;
-
- next = chunk_get_next(pc);
-
- if ((next == NULL) || (next->type != CT_PP_IF))
- break;
-
- stage = 1;
- }
- else if (stage == 1)
- {
- /* Scan until a PP at level 0 is found - the close to the #if */
- if ((pc->type == CT_PREPROC) &&
- (pc->pp_level == 0))
- stage = 2;
-
- continue;
- }
- else if (stage == 2)
- {
- /* We should only see the rest of the preprocessor */
- if ((pc->type == CT_PREPROC) ||
- ((pc->flags & PCF_IN_PREPROC) == 0))
- {
- stage = 0;
- break;
- }
- }
- }
-
- if (stage == 2)
- {
- LOG_FMT(LINFO, "The whole file is covered by a #IF\n");
- pp_level_sub = 1;
- }
-
- for (pc = chunk_get_head(); pc != NULL; pc = chunk_get_next(pc))
- {
- if (pc->type != CT_PREPROC)
- continue;
-
- if (pc->column != 1)
- {
- /* Don't handle preprocessors that aren't in column 1 */
- LOG_FMT(LINFO, "%s: Line %d doesn't start in column 1 (%d)\n",
- __func__, pc->orig_line, pc->column);
- continue;
- }
-
- /* point into pp_str */
- if (pc->len == 2)
- /* alternate token crap */
- pc->str = &alt_str[16];
- else
- pc->str = &pp_str[16];
-
- pp_level = pc->pp_level - pp_level_sub;
-
- if (pp_level < 0)
- pp_level = 0;
- else if (pp_level > 16)
- pp_level = 16;
-
- /* Note that the indent is removed by default */
- if ((cpd.settings[UO_pp_indent].a & AV_ADD) != 0)
- {
- /* Need to add some spaces */
- pc->str -= pp_level;
- pc->len += pp_level;
- }
- else if (cpd.settings[UO_pp_indent].a == AV_IGNORE)
- {
- tmp = (pc->orig_col <= 16) ? pc->orig_col - 1 : 16;
- pc->str -= tmp;
- pc->len += tmp;
- }
-
- /* Add spacing by adjusting the length */
- if ((cpd.settings[UO_pp_space].a & AV_ADD) != 0)
- pc->len += pp_level;
-
- next = chunk_get_next(pc);
-
- if (next != NULL)
- reindent_line(next, pc->len + 1);
-
- LOG_FMT(LPPIS, "%s: Indent line %d to %d (len %d, next->col %d)\n",
- __func__, pc->orig_line, pp_level, pc->len, next->column);
- }
- }
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/02103-output.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/02103-output.cpp
deleted file mode 100644
index ca003784..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/02103-output.cpp
+++ /dev/null
@@ -1,624 +0,0 @@
-/**
- * @file output.cpp
- * Does all the output & comment formatting.
- *
- * $Id: output.cpp 510 2006-09-20 01:14:56Z bengardner $
- */
-
-#include "uncrustify_types.h"
-#include "prototypes.h"
-#include "chunk_list.h"
-#include <cstring>
-#include <cstdlib>
-
-
-
-void add_char(char ch)
- {
- /* convert a newline into the LF/CRLF/CR sequence */
- if (ch == '\n')
- {
- fputs(cpd.newline, cpd.fout);
- cpd.column = 1;
- cpd.did_newline = 1;
- }
- else
- {
- fputc(ch, cpd.fout);
-
- if (ch == '\t')
- cpd.column = next_tab_column(cpd.column);
- else
- cpd.column++;
- }
- }
-
-void add_text(const char *text)
- {
- char ch;
-
- while ((ch = *text) != 0)
- {
- text++;
- add_char(ch);
- }
- }
-
-void add_text_len(const char *text, int len)
- {
- while (len-- > 0)
- {
- add_char(*text);
- text++;
- }
- }
-
-/**
- * Advance to a specific column
- * cpd.column is the current column
- *
- * @param column The column to advance to
- */
-void output_to_column(int column, bool allow_tabs)
- {
- int nc;
-
- cpd.did_newline = 0;
-
- if (allow_tabs)
- {
- /* tab out as far as possible and then use spaces */
- while ((nc = next_tab_column(cpd.column)) <= column)
- add_text("\t");
- }
-
- /* space out the final bit */
- while (cpd.column < column)
- add_text(" ");
- }
-
-void output_indent(int column, int brace_col)
- {
- if ((cpd.column == 1) && (cpd.settings[UO_indent_with_tabs].n != 0))
- {
- if (cpd.settings[UO_indent_with_tabs].n == 2)
- brace_col = column;
-
- /* tab out as far as possible and then use spaces */
- int nc;
-
- while ((nc = next_tab_column(cpd.column)) <= brace_col)
- add_text("\t");
- }
-
- /* space out the rest */
- while (cpd.column < column)
- add_text(" ");
- }
-
-void output_parsed(FILE *pfile)
- {
- chunk_t *pc;
- int cnt;
-
- output_options(pfile);
- output_defines(pfile);
- output_types(pfile);
-
- fprintf(pfile, "-=====-\n");
- fprintf(pfile, "Line Tag Parent Columns Br/Lvl/pp Flg Nl Text");
-
- for (pc = chunk_get_head(); pc != NULL; pc = chunk_get_next(pc))
- {
- fprintf(pfile, "\n%3d> %13.13s[%13.13s][%2d/%2d/%2d][%d/%d/%d][%6x][%d-%d]",
- pc->orig_line, get_token_name(pc->type),
- get_token_name(pc->parent_type),
- pc->column, pc->orig_col, pc->orig_col_end,
- pc->brace_level, pc->level, pc->pp_level,
- pc->flags, pc->nl_count, pc->after_tab);
-
- if ((pc->type != CT_NEWLINE) && (pc->len != 0))
- {
- for (cnt = 0; cnt < pc->column; cnt++)
- fprintf(pfile, " ");
-
- fprintf(pfile, "%.*s", pc->len, pc->str);
- }
- }
-
- fprintf(pfile, "\n-=====-\n");
- fflush(pfile);
- }
-
-void output_options(FILE *pfile)
- {
- int idx;
- const option_map_value *ptr;
-
- fprintf(pfile, "-== Options ==-\n");
-
- for (idx = 0; idx < UO_option_count; idx++)
- {
- ptr = get_option_name(idx);
-
- if (ptr != NULL)
- {
- if (ptr->type == AT_BOOL)
- {
- fprintf(pfile, "%3d) %32s = %s\n",
- ptr->id, ptr->name,
- cpd.settings[ptr->id].b ? "True" : "False");
- }
- else if (ptr->type == AT_IARF)
- {
- fprintf(pfile, "%3d) %32s = %s\n",
- ptr->id, ptr->name,
- (cpd.settings[ptr->id].a == AV_ADD) ? "Add" :
- (cpd.settings[ptr->id].a == AV_REMOVE) ? "Remove" :
- (cpd.settings[ptr->id].a == AV_FORCE) ? "Force" : "Ignore");
- }
- else if (ptr->type == AT_LINE)
- {
- fprintf(pfile, "%3d) %32s = %s\n",
- ptr->id, ptr->name,
- (cpd.settings[ptr->id].le == LE_AUTO) ? "Auto" :
- (cpd.settings[ptr->id].le == LE_LF) ? "LF" :
- (cpd.settings[ptr->id].le == LE_CRLF) ? "CRLF" :
- (cpd.settings[ptr->id].le == LE_CR) ? "CR" : "???");
- }
- else /* AT_NUM */
- fprintf(pfile, "%3d) %32s = %d\n",
- ptr->id, ptr->name, cpd.settings[ptr->id].n);
- }
- }
- }
-
-/**
- * This renders the chunk list to a file.
- */
-void output_text(FILE *pfile)
- {
- chunk_t *pc;
- chunk_t *prev;
- int cnt;
- int lvlcol;
- bool allow_tabs;
-
- cpd.fout = pfile;
-
- for (pc = chunk_get_head(); pc != NULL; pc = chunk_get_next(pc))
- {
- if (pc->type == CT_NEWLINE)
- {
- for (cnt = 0; cnt < pc->nl_count; cnt++)
- add_char('\n');
-
- cpd.did_newline = 1;
- cpd.column = 1;
- LOG_FMT(LOUTIND, " xx\n");
- }
- else if (pc->type == CT_COMMENT_MULTI)
- output_comment_multi(pc);
- else if (pc->type == CT_COMMENT_CPP)
- pc = output_comment_cpp(pc);
- else if (pc->len == 0)
- /* don't do anything for non-visible stuff */
- LOG_FMT(LOUTIND, " <%d> -", pc->column);
- else
- {
- /* indent to the 'level' first */
- if (cpd.did_newline)
- {
- if (cpd.settings[UO_indent_with_tabs].n == 1)
- {
- lvlcol = 1 + (pc->brace_level * cpd.settings[UO_indent_columns].n);
-
- if ((pc->column >= lvlcol) && (lvlcol > 1))
- output_to_column(lvlcol, true);
- }
-
- allow_tabs = (cpd.settings[UO_indent_with_tabs].n == 2) ||
- (chunk_is_comment(pc) &&
- (cpd.settings[UO_indent_with_tabs].n != 0));
-
- LOG_FMT(LOUTIND, " %d> col %d/%d - ", pc->orig_line, pc->column, cpd.column);
- }
- else
- {
- /* not the first item on a line */
- if (cpd.settings[UO_align_keep_tabs].b)
- allow_tabs = pc->after_tab;
- else
- {
- prev = chunk_get_prev(pc);
- allow_tabs = (cpd.settings[UO_align_with_tabs].b &&
- ((pc->flags & PCF_WAS_ALIGNED) != 0) &&
- (((pc->column - 1) % cpd.settings[UO_output_tab_size].n) == 0) &&
- ((prev->column + prev->len + 1) != pc->column));
- }
-
- LOG_FMT(LOUTIND, " %d -", pc->column);
- }
-
- output_to_column(pc->column, allow_tabs);
- add_text_len(pc->str, pc->len);
- cpd.did_newline = chunk_is_newline(pc);
- }
- }
- }
-
-/**
- * Given a multi-line comemnt block that starts in column X, figure out how
- * much subsequent lines should be indented.
- *
- * The answer is either 0 or 1.
- *
- * The decision is based on:
- * - the first line length
- * - the second line leader length
- * - the last line length
- *
- * If the first and last line are the same length and don't contain any alnum
- * chars and (the first line len > 2 or the second leader is the same as the
- * first line length), then the indent is 0.
- *
- * If the leader on the second line is 1 wide or missing, then the indent is 1.
- *
- * Otherwise, the indent is 0.
- *
- * @param str The comment string
- * @param len Length of the comment
- * @param start_col Starting column
- * @return 0 or 1
- */
-static int calculate_comment_body_indent(const char *str, int len, int start_col)
- {
- int idx = 0;
- int first_len = 0;
- int last_len = 0;
- int width = 0;
-
- /* find the last line length */
- for (idx = len - 1; idx > 0; idx--)
- {
- if ((str[idx] == '\n') || (str[idx] == '\r'))
- {
- idx++;
-
- while ((idx < len) && ((str[idx] == ' ') || (str[idx] == '\t')))
- idx++;
-
- last_len = len - idx;
- break;
- }
- }
-
- /* find the first line length */
- for (idx = 0; idx < len; idx++)
- {
- if ((str[idx] == '\n') || (str[idx] == '\r'))
- {
- first_len = idx;
-
- while ((str[first_len - 1] == ' ') || (str[first_len - 1] == '\t'))
- first_len--;
-
- /* handle DOS endings */
- if ((str[idx] == '\r') && (str[idx + 1] == '\n'))
- idx++;
-
- idx++;
- break;
- }
- }
-
- /* Scan the second line */
- width = 0;
-
- for (/* nada */; idx < len; idx++)
- {
- if ((str[idx] == ' ') || (str[idx] == '\t'))
- {
- if (width > 0)
- break;
-
- continue;
- }
-
- if ((str[idx] == '\n') || (str[idx] == '\r'))
- /* Done with second line */
- break;
-
- /* Count the leading chars */
- if ((str[idx] == '*') ||
- (str[idx] == '|') ||
- (str[idx] == '\\') ||
- (str[idx] == '#') ||
- (str[idx] == '+'))
- width++;
- else
- break;
- }
-
- //LOG_FMT(LSYS, "%s: first=%d last=%d width=%d\n", __func__, first_len, last_len, width);
-
- /*TODO: make the first_len minimum (4) configurable? */
- if ((first_len == last_len) && ((first_len > 4) || first_len == width))
- return 0;
-
- return (width == 2) ? 0 : 1;
- }
-
-/**
- * Outputs the CPP comment at pc.
- * CPP comment combining is done here
- *
- * @return the last chunk output'd
- */
-chunk_t *output_comment_cpp(chunk_t *first)
- {
- int col = first->column;
- int col_br = 1 + (first->brace_level * cpd.settings[UO_indent_columns].n);
-
- /* Make sure we have at least one space past the last token */
- if (first->parent_type == CT_COMMENT_END)
- {
- chunk_t *prev = chunk_get_prev(first);
-
- if (prev != NULL)
- {
- int col_min = prev->column + prev->len + 1;
-
- if (col < col_min)
- col = col_min;
- }
- }
-
- /* Bump out to the column */
- output_indent(col, col_br);
-
- if (!cpd.settings[UO_cmt_cpp_to_c].b)
- {
- add_text_len(first->str, first->len);
- return first;
- }
-
- /* If we are grouping, see if there is something to group */
- bool combined = false;
-
- if (cpd.settings[UO_cmt_cpp_group].b)
- {
- /* next is a newline by definition */
- chunk_t *next = chunk_get_next(first);
-
- if ((next != NULL) && (next->nl_count == 1))
- {
- next = chunk_get_next(next);
-
- /**
- * Only combine the next comment if they are both at indent level or
- * the second one is NOT at indent or less
- *
- * A trailing comment cannot be combined with a comment at indent
- * level or less
- */
- if ((next != NULL) &&
- (next->type == CT_COMMENT_CPP) &&
- (((next->column == 1) && (first->column == 1)) ||
- ((next->column == col_br) && (first->column == col_br)) ||
- ((next->column > col_br) && (first->parent_type == CT_COMMENT_END))))
- combined = true;
- }
- }
-
- if (!combined)
- {
- /* nothing to group: just output a single line */
- add_text_len("/*", 2);
-
- if ((first->str[2] != ' ') && (first->str[2] != '\t'))
- add_char(' ');
-
- add_text_len(&first->str[2], first->len - 2);
- add_text_len(" */", 3);
- return first;
- }
-
- chunk_t *pc = first;
- chunk_t *last = first;
-
- /* Output the first line */
- add_text_len("/*", 2);
-
- if (combined && cpd.settings[UO_cmt_cpp_nl_start].b)
- /* I suppose someone more clever could do this without a goto or
- * repeating too much code...
- */
- goto cpp_newline;
-
- goto cpp_addline;
-
- /* Output combined lines */
- while ((pc = chunk_get_next(pc)) != NULL)
- {
- if ((pc->type == CT_NEWLINE) && (pc->nl_count == 1))
- continue;
-
- if (pc->type != CT_COMMENT_CPP)
- break;
-
- if (((pc->column == 1) && (first->column == 1)) ||
- ((pc->column == col_br) && (first->column == col_br)) ||
- ((pc->column > col_br) && (first->parent_type == CT_COMMENT_END)))
- {
- last = pc;
-cpp_newline:
- add_char('\n');
- output_indent(col, col_br);
- add_char(' ');
- add_char(cpd.settings[UO_cmt_star_cont].b ? '*' : ' ');
-cpp_addline:
-
- if ((pc->str[2] != ' ') && (pc->str[2] != '\t'))
- add_char(' ');
-
- add_text_len(&pc->str[2], pc->len - 2);
- }
- }
-
- if (cpd.settings[UO_cmt_cpp_nl_end].b)
- {
- add_char('\n');
- output_indent(col, col_br);
- }
-
- add_text_len(" */", 3);
- return last;
- }
-
-void output_comment_multi(chunk_t *pc)
- {
- int cmt_col = pc->column;
- const char *cmt_str;
- int remaining;
- char ch;
- chunk_t *prev;
- char line[1024];
- int line_len;
- int line_count = 0;
- int ccol;
- int col_diff = 0;
- int xtra = 1;
-
- prev = chunk_get_prev(pc);
-
- if ((prev != NULL) && (prev->type != CT_NEWLINE))
- cmt_col = pc->orig_col;
- else
- col_diff = pc->orig_col - pc->column;
-
- // fprintf(stderr, "Indenting1 line %d to col %d (orig=%d) col_diff=%d\n",
- // pc->orig_line, cmt_col, pc->orig_col, col_diff);
-
- xtra = calculate_comment_body_indent(pc->str, pc->len, pc->column);
-
- ccol = 1;
- remaining = pc->len;
- cmt_str = pc->str;
- line_len = 0;
-
- while (remaining > 0)
- {
- ch = *cmt_str;
- cmt_str++;
- remaining--;
-
- /* handle the CRLF and CR endings. convert both to LF */
- if (ch == '\r')
- {
- ch = '\n';
-
- if (*cmt_str == '\n')
- {
- cmt_str++;
- remaining--;
- }
- }
-
- /* Find the start column */
- if (line_len == 0)
- {
- if (ch == ' ')
- {
- ccol++;
- continue;
- }
- else if (ch == '\t')
- {
- ccol = calc_next_tab_column(ccol, cpd.settings[UO_input_tab_size].n);
- continue;
- }
- else
- {
- //fprintf(stderr, "%d] Text starts in col %d\n", line_count, ccol);
- }
- }
-
- line[line_len++] = ch;
-
- /* If we just hit an end of line OR we just hit end-of-comment... */
- if ((ch == '\n') || (remaining == 0))
- {
- line_count++;
-
- /* strip trailing tabs and spaces before the newline */
- if (ch == '\n')
- {
- line_len--;
-
- while ((line_len > 0) &&
- ((line[line_len - 1] == ' ') ||
- (line[line_len - 1] == '\t')))
- line_len--;
-
- line[line_len++] = ch;
- }
-
- line[line_len] = 0;
-
- if (line_count == 1)
- {
- /* this is the first line - add unchanged */
-
- /*TODO: need to support indent_with_tabs mode 1 */
- output_to_column(cmt_col, cpd.settings[UO_indent_with_tabs].b);
- add_text_len(line, line_len);
- }
- else
- {
- /* This is not the first line, so we need to indent to the
- * correct column.
- */
- ccol -= col_diff;
-
- if (ccol < cmt_col)
- ccol = cmt_col;
-
- if (line[0] == '\n')
- {
- /* Emtpy line - just a '\n' */
- if (cpd.settings[UO_cmt_star_cont].b)
- {
- output_to_column(cmt_col, cpd.settings[UO_indent_with_tabs].b);
- add_text((xtra == 1) ? " *" : "*");
- }
-
- add_char('\n');
- }
- else
- {
- /* If this doesn't start with a '*' or '|' */
- if ((line[0] != '*') && (line[0] != '|') && (line[0] != '#') &&
- (line[0] != '\\') && (line[0] != '+'))
- {
- output_to_column(cmt_col, cpd.settings[UO_indent_with_tabs].b);
-
- if (cpd.settings[UO_cmt_star_cont].b)
- add_text((xtra == 1) ? " * " : "* ");
- else
- add_text(" ");
-
- output_to_column(ccol, cpd.settings[UO_indent_with_tabs].b);
- }
- else
- output_to_column(cmt_col + xtra, cpd.settings[UO_indent_with_tabs].b);
-
- add_text_len(line, line_len);
- }
- }
-
- line_len = 0;
- ccol = 1;
- }
- }
- }
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10007-dont-process-defines.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10007-dont-process-defines.cpp
deleted file mode 100644
index 56f6852e..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10007-dont-process-defines.cpp
+++ /dev/null
@@ -1,6 +0,0 @@
-#define inline_2 __forceinline
-#define inline(i) inline_##i
-#define foo(x) inline(2) x()
-#define PLD(reg,offset) pld [reg, offset] \
- pld [reg, offset] \
- pld [reg, offset]
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30012-misc2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30012-misc2.cpp
deleted file mode 100644
index c5febbac..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30012-misc2.cpp
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- I tried to modify the spaces when using casts like static_cast etc. by
- using sp_before_angle, sp_after_angle and sp_inside_angle. Even setting
- all of those options to remove results in the following:
- */
-
-myvar = dynamic_cast<MyClass<T>*>(other);
-// expected:
-//myvar = dynamic_cast<MyClass<T>*>(other);
-
-/*
- Sometime pointers and references are still not detected correctly in
- special cases - i guess.
- */
-//When using "sp_before_ptr_star = remove" the result is:
-typedef std::list<StreamedData*>::iterator iterator;
-//typedef std::list<StreamedData *>::iterator iterator;
-//------------------------------^ This space show not be there
-
-typedef void (T::*Routine)(void);
-
-//Similar with "sp_before_byref = remove":
-unsigned long allocate(unsigned long size, void*& p);
-
-//unsigned long allocate(unsigned long size, void* & p);
-//------------------------------------------------^ The same here
-
-void foo(void)
-{
- List<byte> bob = new List<byte>();
-
- /* Align assignments */
- align_assign(chunk_get_head(),
- cpd.settings [UO_align_assign_span].n,
- cpd.settings [UO_align_assign_thresh].n);
-}
-
-Args::Args(int argc, char**argv)
-{
- m_count = argc;
- m_values = argv;
- int len = (argc >> 3) + 1;
- m_used = new UINT8 [len];
- if (m_used != NULL) {
- memset(m_used, 0, len);
- }
-}
-
-void Args(int argc, char**argv)
-{
- m_count = argc;
- m_values = argv;
- int len = (argc >> 3) + 1;
- m_used = new UINT8 [len];
- if (m_used != NULL) {
- memset(m_used, 0, len);
- }
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30218-trailing_return.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30218-trailing_return.cpp
deleted file mode 100644
index be70a23b..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30218-trailing_return.cpp
+++ /dev/null
@@ -1,50 +0,0 @@
-auto f0(int a, int b) -> int;
-
-struct Foo
-{
- auto f01() -> bool;
- auto f02() noexcept -> bool;
- auto f03() noexcept(true) -> bool;
- auto f04() noexcept(false) -> bool;
- auto f05() noexcept -> bool = delete;
- auto f06() noexcept(true) -> bool = delete;
- auto f07() noexcept(false) -> bool = delete;
-
- auto f11() const -> bool;
- auto f12() const noexcept -> bool;
- auto f13() const noexcept(true) -> bool;
- auto f14() const noexcept(false) -> bool;
- auto f15() const noexcept -> bool = delete;
- auto f16() const noexcept(true) -> bool = delete;
- auto f17() const noexcept(false) -> bool = delete;
-
- auto f21() throw() -> bool;
- auto f22() throw() -> bool = delete;
- auto f23() const throw() -> bool;
- auto f24() const throw() -> bool = delete;
-};
-
-struct Bar
-{
- Bar() : m_func([](void*) -> result_t {
- return magic;
- }) {}
-};
-
-void foo()
-{
- auto l = [](int n) -> x_t {
- return n + 5;
- };
- x([](int n) -> x_t {
- return n + 5;
- });
-}
-
-static auto f25() -> bool {
- return true;
-}
-
-static auto f26() const noexcept(true) -> bool {
- return true;
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30219-trailing_return.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30219-trailing_return.cpp
deleted file mode 100644
index e250cbd5..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30219-trailing_return.cpp
+++ /dev/null
@@ -1,50 +0,0 @@
-auto f0(int a, int b)->int;
-
-struct Foo
-{
- auto f01()->bool;
- auto f02() noexcept->bool;
- auto f03() noexcept(true)->bool;
- auto f04() noexcept(false)->bool;
- auto f05() noexcept->bool = delete;
- auto f06() noexcept(true)->bool = delete;
- auto f07() noexcept(false)->bool = delete;
-
- auto f11() const->bool;
- auto f12() const noexcept->bool;
- auto f13() const noexcept(true)->bool;
- auto f14() const noexcept(false)->bool;
- auto f15() const noexcept->bool = delete;
- auto f16() const noexcept(true)->bool = delete;
- auto f17() const noexcept(false)->bool = delete;
-
- auto f21() throw()->bool;
- auto f22() throw()->bool = delete;
- auto f23() const throw()->bool;
- auto f24() const throw()->bool = delete;
-};
-
-struct Bar
-{
- Bar() : m_func([](void*)->result_t {
- return magic;
- }) {}
-};
-
-void foo()
-{
- auto l = [](int n)->x_t {
- return n + 5;
- };
- x([](int n)->x_t {
- return n + 5;
- });
-}
-
-static auto f25()->bool {
- return true;
-}
-
-static auto f26() const noexcept(true)->bool {
- return true;
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30222-trailing_return.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30222-trailing_return.cpp
deleted file mode 100644
index 9c076282..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30222-trailing_return.cpp
+++ /dev/null
@@ -1,50 +0,0 @@
-auto f0(int a, int b) -> int;
-
-struct Foo
-{
- auto f01() -> bool;
- auto f02() noexcept -> bool;
- auto f03() noexcept(true) -> bool;
- auto f04() noexcept(false) -> bool;
- auto f05() noexcept -> bool=delete;
- auto f06() noexcept(true) -> bool=delete;
- auto f07() noexcept(false) -> bool=delete;
-
- auto f11() const -> bool;
- auto f12() const noexcept -> bool;
- auto f13() const noexcept(true) -> bool;
- auto f14() const noexcept(false) -> bool;
- auto f15() const noexcept -> bool=delete;
- auto f16() const noexcept(true) -> bool=delete;
- auto f17() const noexcept(false) -> bool=delete;
-
- auto f21() throw() -> bool;
- auto f22() throw() -> bool=delete;
- auto f23() const throw() -> bool;
- auto f24() const throw() -> bool=delete;
-};
-
-struct Bar
-{
- Bar() : m_func([](void*) -> result_t {
- return magic;
- }) {}
-};
-
-void foo()
-{
- auto l = [](int n) -> x_t {
- return n + 5;
- };
- x([](int n) -> x_t {
- return n + 5;
- });
-}
-
-static auto f25() -> bool {
- return true;
-}
-
-static auto f26() const noexcept(true) -> bool {
- return true;
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30750-lambda.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30750-lambda.cpp
deleted file mode 100644
index 5ba33b05..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30750-lambda.cpp
+++ /dev/null
@@ -1,89 +0,0 @@
-void f1()
-{
- auto a =
- [ = ](int *a, Something& b)
- {
- std::cout << "blah: " << *a;
- };
-}
-
-void f1a()
-{
- std::for_each(a, b,
- [](Something& b)
- {
- std::cout << "blah: " << *a;
- });
-}
-
-void f1b()
-{
- std::for_each(a, b,
- [](int& b) -> foo
- {
- b += 3;
- return(b);
- });
-}
-
-void f2()
-{
- Invoke(a, b,
- [&one, two](int *a, Something& b)
- {
- std::cout << "blah: " << *a;
- });
-}
-
-void f3a()
-{
- auto a = [] {
- };
- auto b = [] {
- return(true);
- };
-}
-
-void f3b()
-{
- Invoke(a, b,
- [&one, two]
- {
- std::cout << "blah: " << one << two;
- });
-}
-
-void f3c()
-{
- int a[]{};
-}
-
-void g1()
-{
- auto a = [ = ](int *a, Something&b) {
- std::cout << "blah: " << *a;
- };
-}
-
-void g1a()
-{
- std::for_each(a, b, [](Something& b) {
- std::cout << "blah: " << *a;
- });
-}
-
-void g1b()
-{
- std::for_each(a, b, [](int& b)->foo {
- b += 3;
- return(b);
- });
-}
-
-void g2()
-{
- Invoke(a, b,
- [&one, two](int *a, Something&b) {
- std::cout << "blah: " << *a;
- });
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30751-lambda.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30751-lambda.cpp
deleted file mode 100644
index 13d35a5a..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30751-lambda.cpp
+++ /dev/null
@@ -1,72 +0,0 @@
-void f1()
-{
- auto a =
- [=] (int *a, Something& b) {
- std::cout << "blah: " << *a;
- };
-}
-
-void f1a()
-{
- std::for_each(a, b,
- [] (Something& b) {
- std::cout << "blah: " << *a;
- });
-}
-
-void f1b()
-{
- std::for_each(a, b,
- [] (int& b) -> foo {
- b += 3;
- return(b);
- });
-}
-
-void f2()
-{
- Invoke(a, b,
- [&one, two] (int *a, Something& b) {
- std::cout << "blah: " << *a;
- });
-}
-
-void f3a()
-{
- auto a = [] {};
- auto b = [] { return(true); };
-}
-
-void f3b()
-{
- Invoke(a, b,
- [&one, two] {
- std::cout << "blah: " << one << two;
- });
-}
-
-void f3c()
-{
- int a[]{};
-}
-
-void g1()
-{
- auto a = [=] (int *a, Something&b) { std::cout << "blah: " << *a; };
-}
-
-void g1a()
-{
- std::for_each(a, b, [] (Something& b) { std::cout << "blah: " << *a; });
-}
-
-void g1b()
-{
- std::for_each(a, b, [] (int& b)->foo { b += 3; return(b); });
-}
-
-void g2()
-{
- Invoke(a, b,
- [&one, two] (int *a, Something&b) { std::cout << "blah: " << *a; });
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30752-lambda.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30752-lambda.cpp
deleted file mode 100644
index 84ca8b21..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30752-lambda.cpp
+++ /dev/null
@@ -1,102 +0,0 @@
-void f1()
-{
- auto a =
- [=] (int *a, Something& b)
- {
- std::cout << "blah: " << *a;
- };
-}
-
-void f1a()
-{
- std::for_each(a, b,
- [] (Something& b)
- {
- std::cout << "blah: " << *a;
- }
- );
-}
-
-void f1b()
-{
- std::for_each(a, b,
- [] (int& b) -> foo
- {
- b += 3;
- return(b);
- }
- );
-}
-
-void f2()
-{
- Invoke(a, b,
- [&one, two] (int *a, Something& b)
- {
- std::cout << "blah: " << *a;
- }
- );
-}
-
-void f3a()
-{
- auto a = []
- {
- };
- auto b = []
- {
- return(true);
- };
-}
-
-void f3b()
-{
- Invoke(a, b,
- [&one, two]
- {
- std::cout << "blah: " << one << two;
- }
- );
-}
-
-void f3c()
-{
- int a[]{};
-}
-
-void g1()
-{
- auto a = [=] (int *a, Something&b)
- {
- std::cout << "blah: " << *a;
- };
-}
-
-void g1a()
-{
- std::for_each(a, b, [] (Something& b)
- {
- std::cout << "blah: " << *a;
- }
- );
-}
-
-void g1b()
-{
- std::for_each(a, b, [] (int& b)->foo
- {
- b += 3;
- return(b);
- }
- );
-}
-
-void g2()
-{
- Invoke(a, b,
- [&one, two] (int *a, Something&b)
- {
- std::cout << "blah: " << *a;
- }
- );
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30753-lambda2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30753-lambda2.cpp
deleted file mode 100644
index 2bcfff9f..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30753-lambda2.cpp
+++ /dev/null
@@ -1,76 +0,0 @@
-void f1()
-{
- auto a =
- [=] (int *a, Something& b){
- std::cout << "blah: " << *a;
- };
-}
-
-void f1a()
-{
- std::for_each(a, b,
- [] (Something& b){
- std::cout << "blah: " << *a;
- }
- );
-}
-
-void f1b()
-{
- std::for_each(a, b,
- [] (int& b) -> foo {
- b += 3;
- return(b);
- }
- );
-}
-
-void f2()
-{
- Invoke(a, b,
- [&one, two] (int *a, Something& b){
- std::cout << "blah: " << *a;
- }
- );
-}
-
-void f3a()
-{
- auto a = [] {};
- auto b = []{ return(true); };
-}
-
-void f3b()
-{
- Invoke(a, b,
- [&one, two]{
- std::cout << "blah: " << one << two;
- }
- );
-}
-
-void f3c()
-{
- int a[]{};
-}
-
-void g1()
-{
- auto a = [=] (int *a, Something&b) { std::cout << "blah: " << *a; };
-}
-
-void g1a()
-{
- std::for_each(a, b, [] (Something& b){ std::cout << "blah: " << *a; });
-}
-
-void g1b()
-{
- std::for_each(a, b, [] (int& b)->foo { b += 3; return(b); });
-}
-
-void g2()
-{
- Invoke(a, b,
- [&one, two] (int *a, Something&b){ std::cout << "blah: " << *a; });
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30756-bug_1296.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30756-bug_1296.cpp
deleted file mode 100644
index 482045df..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30756-bug_1296.cpp
+++ /dev/null
@@ -1,7 +0,0 @@
-int main()
-{
- auto lambda2 = [&]()
- {
- code();
- };
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30765-lambda.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30765-lambda.cpp
deleted file mode 100644
index 6f8c8e55..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30765-lambda.cpp
+++ /dev/null
@@ -1,88 +0,0 @@
-void f1()
-{
- auto a =
- [=] (int *a, Something & b)
- {
- std::cout << "blah: " << *a;
- };
-}
-
-void f1a()
-{
- std::for_each(a, b,
- [](Something & b)
- {
- std::cout << "blah: " << *a;
- });
-}
-
-void f1b()
-{
- std::for_each(a, b,
- [](int & b) -> foo
- {
- b += 3;
- return b;
- });
-}
-
-void f2()
-{
- Invoke(a, b,
- [&one, two](int *a, Something & b)
- {
- std::cout << "blah: " << *a;
- });
-}
-
-void f3a()
-{
- auto a = [] {
- };
- auto b = []{
- return true;
- };
-}
-
-void f3b()
-{
- Invoke(a, b,
- [&one, two]
- {
- std::cout << "blah: " << one << two;
- });
-}
-
-void f3c()
-{
- int a[]{};
-}
-
-void g1()
-{
- auto a = [ = ](int* a, Something &b) {
- std::cout << "blah: " << *a;
- };
-}
-
-void g1a()
-{
- std::for_each(a, b, [](Something& b){
- std::cout<<"blah: "<<*a;
- });
-}
-
-void g1b()
-{
- std::for_each(a, b, [] (int& b)->foo {
- b+=3; return(b);
- });
-}
-
-void g2()
-{
- Invoke(a, b,
- [&one, two] (int *a, Something&b){
- std::cout << "blah: " << *a;
- });
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30766-lambda.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30766-lambda.cpp
deleted file mode 100644
index 6f8c8e55..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30766-lambda.cpp
+++ /dev/null
@@ -1,88 +0,0 @@
-void f1()
-{
- auto a =
- [=] (int *a, Something & b)
- {
- std::cout << "blah: " << *a;
- };
-}
-
-void f1a()
-{
- std::for_each(a, b,
- [](Something & b)
- {
- std::cout << "blah: " << *a;
- });
-}
-
-void f1b()
-{
- std::for_each(a, b,
- [](int & b) -> foo
- {
- b += 3;
- return b;
- });
-}
-
-void f2()
-{
- Invoke(a, b,
- [&one, two](int *a, Something & b)
- {
- std::cout << "blah: " << *a;
- });
-}
-
-void f3a()
-{
- auto a = [] {
- };
- auto b = []{
- return true;
- };
-}
-
-void f3b()
-{
- Invoke(a, b,
- [&one, two]
- {
- std::cout << "blah: " << one << two;
- });
-}
-
-void f3c()
-{
- int a[]{};
-}
-
-void g1()
-{
- auto a = [ = ](int* a, Something &b) {
- std::cout << "blah: " << *a;
- };
-}
-
-void g1a()
-{
- std::for_each(a, b, [](Something& b){
- std::cout<<"blah: "<<*a;
- });
-}
-
-void g1b()
-{
- std::for_each(a, b, [] (int& b)->foo {
- b+=3; return(b);
- });
-}
-
-void g2()
-{
- Invoke(a, b,
- [&one, two] (int *a, Something&b){
- std::cout << "blah: " << *a;
- });
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30767-lambda.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30767-lambda.cpp
deleted file mode 100644
index 6f8c8e55..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30767-lambda.cpp
+++ /dev/null
@@ -1,88 +0,0 @@
-void f1()
-{
- auto a =
- [=] (int *a, Something & b)
- {
- std::cout << "blah: " << *a;
- };
-}
-
-void f1a()
-{
- std::for_each(a, b,
- [](Something & b)
- {
- std::cout << "blah: " << *a;
- });
-}
-
-void f1b()
-{
- std::for_each(a, b,
- [](int & b) -> foo
- {
- b += 3;
- return b;
- });
-}
-
-void f2()
-{
- Invoke(a, b,
- [&one, two](int *a, Something & b)
- {
- std::cout << "blah: " << *a;
- });
-}
-
-void f3a()
-{
- auto a = [] {
- };
- auto b = []{
- return true;
- };
-}
-
-void f3b()
-{
- Invoke(a, b,
- [&one, two]
- {
- std::cout << "blah: " << one << two;
- });
-}
-
-void f3c()
-{
- int a[]{};
-}
-
-void g1()
-{
- auto a = [ = ](int* a, Something &b) {
- std::cout << "blah: " << *a;
- };
-}
-
-void g1a()
-{
- std::for_each(a, b, [](Something& b){
- std::cout<<"blah: "<<*a;
- });
-}
-
-void g1b()
-{
- std::for_each(a, b, [] (int& b)->foo {
- b+=3; return(b);
- });
-}
-
-void g2()
-{
- Invoke(a, b,
- [&one, two] (int *a, Something&b){
- std::cout << "blah: " << *a;
- });
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30770-lambda.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30770-lambda.cpp
deleted file mode 100644
index 25319dcc..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30770-lambda.cpp
+++ /dev/null
@@ -1,88 +0,0 @@
-void f1()
-{
- auto a =
- [ = ](int *a, Something & b)
- {
- std::cout << "blah: " << *a;
- };
-}
-
-void f1a()
-{
- std::for_each(a, b,
- [](Something & b)
- {
- std::cout << "blah: " << *a;
- });
-}
-
-void f1b()
-{
- std::for_each(a, b,
- [](int & b) -> foo
- {
- b += 3;
- return b;
- });
-}
-
-void f2()
-{
- Invoke(a, b,
- [&one, two](int *a, Something & b)
- {
- std::cout << "blah: " << *a;
- });
-}
-
-void f3a()
-{
- auto a = [] {
- };
- auto b = [] {
- return true;
- };
-}
-
-void f3b()
-{
- Invoke(a, b,
- [&one, two]
- {
- std::cout << "blah: " << one << two;
- });
-}
-
-void f3c()
-{
- int a[]{};
-}
-
-void g1()
-{
- auto a = [ = ](int* a, Something &b) {
- std::cout << "blah: " << *a;
- };
-}
-
-void g1a()
-{
- std::for_each(a, b, [](Something& b) {
- std::cout<<"blah: "<<*a;
- });
-}
-
-void g1b()
-{
- std::for_each(a, b, [](int& b)->foo {
- b+=3; return(b);
- });
-}
-
-void g2()
-{
- Invoke(a, b,
- [&one, two](int *a, Something&b) {
- std::cout << "blah: " << *a;
- });
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30771-lambda.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30771-lambda.cpp
deleted file mode 100644
index 1f091e6d..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30771-lambda.cpp
+++ /dev/null
@@ -1,88 +0,0 @@
-void f1()
-{
- auto a =
- [=] (int *a, Something & b)
- {
- std::cout << "blah: " << *a;
- };
-}
-
-void f1a()
-{
- std::for_each(a, b,
- [] (Something & b)
- {
- std::cout << "blah: " << *a;
- });
-}
-
-void f1b()
-{
- std::for_each(a, b,
- [] (int & b) -> foo
- {
- b += 3;
- return b;
- });
-}
-
-void f2()
-{
- Invoke(a, b,
- [&one, two] (int *a, Something & b)
- {
- std::cout << "blah: " << *a;
- });
-}
-
-void f3a()
-{
- auto a = [] {
- };
- auto b = [] {
- return true;
- };
-}
-
-void f3b()
-{
- Invoke(a, b,
- [&one, two]
- {
- std::cout << "blah: " << one << two;
- });
-}
-
-void f3c()
-{
- int a[]{};
-}
-
-void g1()
-{
- auto a = [=] (int* a, Something &b) {
- std::cout << "blah: " << *a;
- };
-}
-
-void g1a()
-{
- std::for_each(a, b, [] (Something& b) {
- std::cout<<"blah: "<<*a;
- });
-}
-
-void g1b()
-{
- std::for_each(a, b, [] (int& b)->foo {
- b+=3; return(b);
- });
-}
-
-void g2()
-{
- Invoke(a, b,
- [&one, two] (int *a, Something&b) {
- std::cout << "blah: " << *a;
- });
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30772-lambda.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30772-lambda.cpp
deleted file mode 100644
index a5e5f3ee..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30772-lambda.cpp
+++ /dev/null
@@ -1,88 +0,0 @@
-void f1()
-{
- auto a =
- [=](int *a, Something & b)
- {
- std::cout << "blah: " << *a;
- };
-}
-
-void f1a()
-{
- std::for_each(a, b,
- [](Something & b)
- {
- std::cout << "blah: " << *a;
- });
-}
-
-void f1b()
-{
- std::for_each(a, b,
- [](int & b) -> foo
- {
- b += 3;
- return b;
- });
-}
-
-void f2()
-{
- Invoke(a, b,
- [&one, two](int *a, Something & b)
- {
- std::cout << "blah: " << *a;
- });
-}
-
-void f3a()
-{
- auto a = []{
- };
- auto b = []{
- return true;
- };
-}
-
-void f3b()
-{
- Invoke(a, b,
- [&one, two]
- {
- std::cout << "blah: " << one << two;
- });
-}
-
-void f3c()
-{
- int a[]{};
-}
-
-void g1()
-{
- auto a = [=](int* a, Something &b){
- std::cout << "blah: " << *a;
- };
-}
-
-void g1a()
-{
- std::for_each(a, b, [](Something& b){
- std::cout<<"blah: "<<*a;
- });
-}
-
-void g1b()
-{
- std::for_each(a, b, [](int& b)->foo {
- b+=3; return(b);
- });
-}
-
-void g2()
-{
- Invoke(a, b,
- [&one, two](int *a, Something&b){
- std::cout << "blah: " << *a;
- });
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30773-lambda.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30773-lambda.cpp
deleted file mode 100644
index 3e628450..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30773-lambda.cpp
+++ /dev/null
@@ -1,88 +0,0 @@
-void f1()
-{
- auto a =
- [=](int *a, Something & b)
- {
- std::cout << "blah: " << *a;
- };
-}
-
-void f1a()
-{
- std::for_each(a, b,
- [](Something & b)
- {
- std::cout << "blah: " << *a;
- });
-}
-
-void f1b()
-{
- std::for_each(a, b,
- [](int & b) -> foo
- {
- b += 3;
- return b;
- });
-}
-
-void f2()
-{
- Invoke(a, b,
- [&one, two](int *a, Something & b)
- {
- std::cout << "blah: " << *a;
- });
-}
-
-void f3a()
-{
- auto a = [] {
- };
- auto b = [] {
- return true;
- };
-}
-
-void f3b()
-{
- Invoke(a, b,
- [&one, two]
- {
- std::cout << "blah: " << one << two;
- });
-}
-
-void f3c()
-{
- int a[]{};
-}
-
-void g1()
-{
- auto a = [=](int* a, Something &b){
- std::cout << "blah: " << *a;
- };
-}
-
-void g1a()
-{
- std::for_each(a, b, [](Something& b){
- std::cout<<"blah: "<<*a;
- });
-}
-
-void g1b()
-{
- std::for_each(a, b, [](int& b)->foo {
- b+=3; return(b);
- });
-}
-
-void g2()
-{
- Invoke(a, b,
- [&one, two](int *a, Something&b){
- std::cout << "blah: " << *a;
- });
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30774-lambda.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30774-lambda.cpp
deleted file mode 100644
index 3e628450..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30774-lambda.cpp
+++ /dev/null
@@ -1,88 +0,0 @@
-void f1()
-{
- auto a =
- [=](int *a, Something & b)
- {
- std::cout << "blah: " << *a;
- };
-}
-
-void f1a()
-{
- std::for_each(a, b,
- [](Something & b)
- {
- std::cout << "blah: " << *a;
- });
-}
-
-void f1b()
-{
- std::for_each(a, b,
- [](int & b) -> foo
- {
- b += 3;
- return b;
- });
-}
-
-void f2()
-{
- Invoke(a, b,
- [&one, two](int *a, Something & b)
- {
- std::cout << "blah: " << *a;
- });
-}
-
-void f3a()
-{
- auto a = [] {
- };
- auto b = [] {
- return true;
- };
-}
-
-void f3b()
-{
- Invoke(a, b,
- [&one, two]
- {
- std::cout << "blah: " << one << two;
- });
-}
-
-void f3c()
-{
- int a[]{};
-}
-
-void g1()
-{
- auto a = [=](int* a, Something &b){
- std::cout << "blah: " << *a;
- };
-}
-
-void g1a()
-{
- std::for_each(a, b, [](Something& b){
- std::cout<<"blah: "<<*a;
- });
-}
-
-void g1b()
-{
- std::for_each(a, b, [](int& b)->foo {
- b+=3; return(b);
- });
-}
-
-void g2()
-{
- Invoke(a, b,
- [&one, two](int *a, Something&b){
- std::cout << "blah: " << *a;
- });
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30775-lambda.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30775-lambda.cpp
deleted file mode 100644
index d86e0d59..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30775-lambda.cpp
+++ /dev/null
@@ -1,88 +0,0 @@
-void f1()
-{
- auto a =
- [=](int *a, Something & b)
- {
- std::cout << "blah: " << *a;
- };
-}
-
-void f1a()
-{
- std::for_each(a, b,
- [](Something & b)
- {
- std::cout << "blah: " << *a;
- });
-}
-
-void f1b()
-{
- std::for_each(a, b,
- [](int & b) -> foo
- {
- b += 3;
- return b;
- });
-}
-
-void f2()
-{
- Invoke(a, b,
- [&one, two](int *a, Something & b)
- {
- std::cout << "blah: " << *a;
- });
-}
-
-void f3a()
-{
- auto a = [] {
- };
- auto b = [] {
- return true;
- };
-}
-
-void f3b()
-{
- Invoke(a, b,
- [&one, two]
- {
- std::cout << "blah: " << one << two;
- });
-}
-
-void f3c()
-{
- int a[]{};
-}
-
-void g1()
-{
- auto a = [=](int* a, Something &b) {
- std::cout << "blah: " << *a;
- };
-}
-
-void g1a()
-{
- std::for_each(a, b, [](Something& b) {
- std::cout<<"blah: "<<*a;
- });
-}
-
-void g1b()
-{
- std::for_each(a, b, [](int& b)->foo {
- b+=3; return(b);
- });
-}
-
-void g2()
-{
- Invoke(a, b,
- [&one, two](int *a, Something&b) {
- std::cout << "blah: " << *a;
- });
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30822-pp_indent_brace.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30822-pp_indent_brace.cpp
deleted file mode 100644
index 4900fa34..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30822-pp_indent_brace.cpp
+++ /dev/null
@@ -1,24 +0,0 @@
-// Example for preprocessor statement in a function definition
-// Config uses more than tested option, uses:
-// pp_if_indent_code = true to enable preprocesser indent
-// pp_indent_brace = false to override preprocessor indent for braces
-MyClass::MyClass()
-{
- if(isSomething)
- {
- DoSomething();
- }
-
-#if (USE_FIVE)
- {
- DoSomethingAlso();
- }
-#endif
-
-#if (USE_SIX)
- {
- Six mySix;
- DoSomethingWithSix(mySix);
- }
-#endif
-} \ No newline at end of file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32105-I2103.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32105-I2103.cpp
deleted file mode 100644
index ba6386dd..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32105-I2103.cpp
+++ /dev/null
@@ -1,2 +0,0 @@
-int i1 = EEnumType::a & EEnumType::b;
-int i2 = a & b;
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33029-cast.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33029-cast.cpp
deleted file mode 100644
index 179c98c8..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33029-cast.cpp
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- a = ( int ) 5.6;
- b = int( 5.6 );
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33043-bug_i_478.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33043-bug_i_478.cpp
deleted file mode 100644
index 0f96e53c..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33043-bug_i_478.cpp
+++ /dev/null
@@ -1,24 +0,0 @@
-{
- QString fileName = QFileDialog::getOpenFileName(this,
- tr("Choose Configuration File"), ui->leStrategyFile->text(),
- tr("Configuration Files (*.cfg);; All Files (*.*)"), 0);
-
- pSettings = new QSettings(QCoreApplication::applicationDirPath() + "/" +
- QCoreApplication::applicationName() + ".ini",
- QSettings::IniFormat);
-}
-int a ()
-{
- double a_very_long_variable = test (foobar1,
- foobar5);
-
- double a_other_very_long = asdfasdfasdfasdfasdf + asdfasfafasdfa +
- asdfasdfasdf - asdfasdf + 56598;
-
- a_other_very_long = asdfasdfasdfasdfasdf + asdfasfafasdfa +
- asdfasdfasdf - asdfasdf + 56598;
-
- testadsfa (dfasdf,
- aaafsdfa);
- return 0;
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33061-if_chain_braces.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33061-if_chain_braces.cpp
deleted file mode 100644
index b544f2bf..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33061-if_chain_braces.cpp
+++ /dev/null
@@ -1,33 +0,0 @@
-
-int foo() {
- if ( a )
- return 1;
- else if ( b )
- return 2;
-
- if ( a )
- return 3;
- else if ( b )
- return 4;
- else {
- a = 5;
- return 5;
- }
-
- if ( a )
- return 6;
- else
- return 7;
-
- if ( a )
- return 8;
-
- if ( b ) {
- return 9;
- }
-
- if ( b ) {
- { b = 5; }
- return 9;
- }
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33062-if_chain_braces.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33062-if_chain_braces.cpp
deleted file mode 100644
index 1973042c..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33062-if_chain_braces.cpp
+++ /dev/null
@@ -1,34 +0,0 @@
-
-int foo() {
- if ( a )
- return 1;
- else if ( b )
- return 2;
-
- if ( a ) {
- return 3;
- }
- else if ( b ) {
- return 4;
- }
- else {
- a = 5;
- return 5;
- }
-
- if ( a )
- return 6;
- else
- return 7;
-
- if ( a )
- return 8;
-
- if ( b )
- return 9;
-
- if ( b ) {
- { b = 5; }
- return 9;
- }
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33063-if_chain_braces.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33063-if_chain_braces.cpp
deleted file mode 100644
index 7a66eeec..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33063-if_chain_braces.cpp
+++ /dev/null
@@ -1,39 +0,0 @@
-
-int foo() {
- if ( a ) {
- return 1;
- }
- else if ( b ) {
- return 2;
- }
-
- if ( a ) {
- return 3;
- }
- else if ( b ) {
- return 4;
- }
- else {
- a = 5;
- return 5;
- }
-
- if ( a ) {
- return 6;
- }
- else{
- return 7;
- }
-
- if ( a )
- return 8;
-
- if ( b ) {
- return 9;
- }
-
- if ( b ) {
- { b = 5; }
- return 9;
- }
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33064-if_chain_braces.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33064-if_chain_braces.cpp
deleted file mode 100644
index 2781fb26..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33064-if_chain_braces.cpp
+++ /dev/null
@@ -1,38 +0,0 @@
-
-int foo() {
- if ( a ) {
- return 1;
- }
- else if ( b ) {
- return 2;
- }
-
- if ( a ) {
- return 3;
- }
- else if ( b ) {
- return 4;
- }
- else {
- a = 5;
- return 5;
- }
-
- if ( a ) {
- return 6;
- }
- else{
- return 7;
- }
-
- if ( a )
- return 8;
-
- if ( b )
- return 9;
-
- if ( b ) {
- { b = 5; }
- return 9;
- }
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33110-enum.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33110-enum.cpp
deleted file mode 100644
index 3872557e..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33110-enum.cpp
+++ /dev/null
@@ -1,203 +0,0 @@
-enum class angle_state_e : unsigned int
-{
- NONE = 0,
- OPEN = 1, //'<' found
- CLOSE = 2, //'>' found
-};
-
-// align.cpp
-enum class comment_align_e : unsigned int
-{
- REGULAR,
- BRACE,
- ENDIF,
-};
-
-// chunk_list.h
-enum class scope_e : unsigned int
-{
- ALL, /**< search in all kind of chunks */
- PREPROC, /**< search only in preprocessor chunks */
-};
-
-// chunk_list.cpp
-enum class direction_e : unsigned int
-{
- FORWARD,
- BACKWARD
-};
-
-// combine.cpp
-{
- enum class angle_state_e : unsigned int
- {
- NONE = 0,
- OPEN = 1, // '<' found
- CLOSE = 2, // '>' found
- };
-}
-
-// indent.cpp
-enum class align_mode_e : unsigned int
-{
- SHIFT, /* shift relative to the current column */
- KEEP_ABS, /* try to keep the original absolute column */
- KEEP_REL, /* try to keep the original gap */
-};
-
-// align_stack.h
-{
- enum StarStyle
- {
- SS_IGNORE, // don't look for prev stars
- SS_INCLUDE, // include prev * before add
- SS_DANGLE // include prev * after add
- };
-}
-
-// log_levels.h
-enum log_sev_t
-{
- LSYS = 0,
- LERR = 1,
- LWARN = 2,
- LNOTE = 3,
- LINFO = 4,
- LDATA = 5,
-
- LFILELIST = 8, /* Files in the file list file */
- LLINEENDS = 9, /* Show which line endings are used */
- LCASTS = 10, /* align casts */
- LALBR = 11, /* align braces */
- LALTD = 12, /* Align Typedef */
- LALPP = 13, /* align #define */
- LALPROTO = 14, /* align prototype */
- LALNLC = 15, /* align backslash-newline */
- LALTC = 16, /* align trailing comments */
- LALADD = 17, /* align add */
- LALASS = 18, /* align assign */
- LFVD = 19, /* fix_var_def */
- LFVD2 = 20, /* fix_var_def-2 */
- LINDENT = 21, /* indent_text */
- LINDENT2 = 22, /* indent_text tab level */
- LINDPSE = 23, /* indent_text stack */
- LINDPC = 24, /* indent play-by-play */
- LNEWLINE = 25, /* newlines */
- LPF = 26, /* Parse Frame */
- LSTMT = 27, /* Marking statements/expressions */
- LTOK = 28, /* Tokenize */
- LALRC = 29, /* align right comment */
- LCMTIND = 30, /* Comment Indent */
- LINDLINE = 31, /* indent line */
- LSIB = 32, /* Scan IB */
- LRETURN = 33, /* add/remove parens for return */
- LBRDEL = 34, /* brace removal */
- LFCN = 35, /* function detection */
- LFCNP = 36, /* function parameters */
- LPCU = 37, /* parse cleanup */
- LDYNKW = 38, /* dynamic keywords */
- LOUTIND = 39, /* output indent */
- LBCSAFTER = 40, /* Brace cleanup stack - after each token */
- LBCSPOP = 41, /* Brace cleanup stack - log pops */
- LBCSPUSH = 42, /* Brace cleanup stack - log push */
- LBCSSWAP = 43, /* Brace cleanup stack - log swaps */
- LFTOR = 44, /* Class Ctor or Dtor */
- LAS = 45, /* align_stack */
- LPPIS = 46, /* Preprocessor Indent and Space */
- LTYPEDEF = 47, /* Typedef and function types */
- LVARDEF = 48, /* Variable def marking */
- LDEFVAL = 49, /* define values */
- LPVSEMI = 50, /* Pawn: virtual semicolons */
- LPFUNC = 51, /* Pawn: function recognition */
- LSPLIT = 52, /* Line splitting */
- LFTYPE = 53, /* Function type detection */
- LTEMPL = 54, /* Template detection */
- LPARADD = 55, /* adding parens in if/while */
- LPARADD2 = 56, /* adding parens in if/while - details */
- LBLANKD = 57, /* blank line details */
- LTEMPFUNC = 58, /* Template function detection */
- LSCANSEMI = 59, /* scan semi colon removal */
- LDELSEMI = 60, /* Removing semicolons */
- LFPARAM = 61, /* Testing for a full parameter */
- LNL1LINE = 62, /* NL check for 1 liners */
- LPFCHK = 63, /* Parse Frame check fcn call */
- LAVDB = 64, /* align var def braces */
- LSORT = 65, /* Sorting */
- LSPACE = 66, /* Space */
- LALIGN = 67, /* align */
- LALAGAIN = 68, /* align again */
- LOPERATOR = 69, /* operator */
- LASFCP = 70, /* Align Same Function Call Params */
- LINDLINED = 71, /* indent line details */
- LBCTRL = 72, /* beautifier control */
- LRMRETURN = 73, /* remove 'return;' */
- LPPIF = 74, /* #if/#else/#endif pair processing */
- LMCB = 75, /* mod_case_brace */
- LBRCH = 76, /* if brace chain */
- LFCNR = 77, /* function return type */
- LOCCLASS = 78, /* OC Class stuff */
- LOCMSG = 79, /* OC Message stuff */
- LBLANK = 80, /* Blank Lines */
- LOBJCWORD = 81, /* Convert keyword to CT_WORD in certain circumstances */
- LCHANGE = 82, /* something changed */
- LCONTTEXT = 83, /* comment cont_text set */
- LANNOT = 84, /* Java annotation */
- LOCBLK = 85, /* OC Block stuff */
- LFLPAREN = 86, /* Flag paren */
- LOCMSGD = 87, /* OC Message declaration */
- LINDENTAG = 88, /* indent again */
- LNFD = 89, /* newline-function-def */
- LJDBI = 90, /* Java Double Brace Init */
- LSETPAR = 91, /* set_chunk_parent() */
- LSETTYP = 92, /* set_chunk_type() */
- LSETFLG = 93, /* set_chunk_flags() */
- LNLFUNCT = 94, /* newlines before function */
- LCHUNK = 95, /* Add or del chunk */
- LGUY98 = 98, /* for guy-test */
- LGUY = 99, /* for guy-test */
-};
-
-// options.h
-enum argtype_e
-{
- AT_BOOL, /**< true / false */
- AT_IARF, /**< Ignore / Add / Remove / Force */
- AT_NUM, /**< Number */
- AT_LINE, /**< Line Endings */
- AT_POS, /**< start/end or Trail/Lead */
- AT_STRING, /**< string value */
- AT_UNUM, /**< unsigned Number */
-};
-
-enum argval_t
-{
- AV_IGNORE = 0,
- AV_ADD = 1,
- AV_REMOVE = 2,
- AV_FORCE = 3, /**< remove + add */
- AV_NOT_DEFINED = 4 /* to be used with QT, SIGNAL SLOT macros */
-};
-
-enum lineends_e
-{
- LE_LF, /* "\n" */
- LE_CRLF, /* "\r\n" */
- LE_CR, /* "\r" */
-
- LE_AUTO, /* keep last */
-};
-
-enum tokenpos_e
-{
- TP_IGNORE = 0, /* don't change it */
- TP_BREAK = 1, /* add a newline before or after the if not present */
- TP_FORCE = 2, /* force a newline on one side and not the other */
- TP_LEAD = 4, /* at the start of a line or leading if wrapped line */
- TP_LEAD_BREAK = (TP_LEAD | TP_BREAK),
- TP_LEAD_FORCE = (TP_LEAD | TP_FORCE),
- TP_TRAIL = 8, /* at the end of a line or trailing if wrapped line */
- TP_TRAIL_BREAK = (TP_TRAIL | TP_BREAK),
- TP_TRAIL_FORCE = (TP_TRAIL | TP_FORCE),
- TP_JOIN = 16, /* remove newlines on both sides */
-};
-
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34173-i1464.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34173-i1464.cpp
deleted file mode 100644
index e4005841..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34173-i1464.cpp
+++ /dev/null
@@ -1 +0,0 @@
-auto p = std::make_pair(r * cos(a), r * sin(a));
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34174-i1466.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34174-i1466.cpp
deleted file mode 100644
index 912488b3..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34174-i1466.cpp
+++ /dev/null
@@ -1 +0,0 @@
-A a = {this->r * cos(b)}; \ No newline at end of file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60050-semicolon-removal-after-ternary-operator.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60050-semicolon-removal-after-ternary-operator.cpp
deleted file mode 100644
index a344480b..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60050-semicolon-removal-after-ternary-operator.cpp
+++ /dev/null
@@ -1,9 +0,0 @@
-std::string StrGet()
-{
- return IsConnected() ? "Connected" : {};
-}
-
-std::string StrGet2()
-{
- return !IsConnected() ? {} : "Connected";
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10018-delete-space-oc.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10018-delete-space-oc.mm
deleted file mode 100644
index 59496772..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10018-delete-space-oc.mm
+++ /dev/null
@@ -1,69 +0,0 @@
-/* EditorApplication */
-
-#include <string>
-
-#ifdef __OBJC__
-#import <Cocoa/Cocoa.h>
-
-class HierarchyState;
-@interface EditorApplication: NSObject
-{
- IBOutlet id m_MainWindow;
- IBOutlet id m_PaneController;
- id m_RenderTimer;
-
- IBOutlet id m_CutItem;
- IBOutlet id m_CopyItem;
- IBOutlet id m_PasteItem;
-
- IBOutlet id m_DuplicateItem;
- IBOutlet id m_DeleteItem;
-
- IBOutlet id m_FrameSelectedItem;
- IBOutlet id m_FindItem;
- IBOutlet id m_SelectAllItem;
-}
-
--(IBAction)SaveAssets: (id)sender;
--(IBAction)CloseScene: (id)sender;
--(IBAction)NewProject: (id)sender;
--(IBAction)OpenProject: (id)sender;
-
--(IBAction)SaveAsSceneToDisk: (id)sender;
-
--(IBAction)EnterSerialNumber: (id)sender;
--(IBAction)ReturnLicense: (id)sender;
--(IBAction)CompileScene: (id)sender;
--(IBAction)CompileSceneAutomatic: (id)sender;
-
--(IBAction)saveDocument: (id)sender;
-
--(IBAction)LoadSceneFromDisk: (id)sender;
-
--(void)RemoveDisplayTimer;
--(void)RegisterUpdateTimer: (int)frequency;
-
--(void)refreshModifiedFile: (NSAppleEventDescriptor*)event withReplyEvent: (NSAppleEventDescriptor*)replyEvent;
--(void)closeFile: (NSAppleEventDescriptor*)event withReplyEvent: (NSAppleEventDescriptor*)replyEvent;
-
--(IBAction)ShowAboutDialog: (id)sender;
--(IBAction)ShowPreferences: (id)sender;
--(IBAction)ShowPackageManager: (id)sender;
-
--(IBAction) delete: (id)sender;
--(IBAction) copy: (id)action;
--(IBAction)paste: (id)action;
--(IBAction)duplicate: (id)action;
--(IBAction)cut: (id)action;
--(IBAction)selectAll: (id)action;
--(IBAction)find: (id)action;
--(IBAction)frameSelected: (id)action;
--(IBAction)frameSelectedWithLock: (id)action;
-
-// Assetstore protocol handler and registration
--(void)registerAssetStoreURLProtocol;
--(void)getUrl: (NSAppleEventDescriptor*)event withReplyEvent: (NSAppleEventDescriptor*)replyEvent;
-
-@end
-
-#endif
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10019-func-param-wrap-oc.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10019-func-param-wrap-oc.mm
deleted file mode 100644
index 6e192eec..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10019-func-param-wrap-oc.mm
+++ /dev/null
@@ -1,5 +0,0 @@
-if(progress <= 0)
-{
- [[NSBezierPath bezierPathWithOvalInRect: NSMakeRect(NSMinX(pieRect)+stroke,NSMinY(pieRect)+stroke,
- NSWidth(pieRect)-2*stroke,NSHeight(pieRect)-2*stroke)] fill];
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10046-UNI-1333.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10046-UNI-1333.mm
deleted file mode 100644
index de887ad0..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10046-UNI-1333.mm
+++ /dev/null
@@ -1,15 +0,0 @@
-// Test if Uncrustify properly handles `@synchronized` keyword for ObjC
-
-// In keywords.cpp there is no @synchronized keyword listed and from what I've seen synchronized is only regarded as a keyword in other languages
-// { "synchronized", CT_QUALIFIER, LANG_D | LANG_JAVA | LANG_ECMA },
-
--(void) foo
-{
- @synchronized(self)
- {
- if (bar)
- {
- bar = false;
- }
- }
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/11032-newlines.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/11032-newlines.mm
deleted file mode 100644
index 49a15913..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/11032-newlines.mm
+++ /dev/null
@@ -1,33 +0,0 @@
-NSString* GetXcodePath()
-{
- return [[NSWorkspace sharedWorkspace] absolutePathForAppBundleWithIdentifier: kXCodeBundleId];
-}
-
-extern "C" EXPORTDLL void LaunchXCode()
-{
- NSString* curApp = GetXcodePath();
- [[NSWorkspace sharedWorkspace] launchApplication: curApp];
-
- NSArray *selectedApps =
- [NSRunningApplication runningApplicationsWithBundleIdentifier: kXCodeBundleId];
-
- for (int i = 0; i < [selectedApps count]; i++)
- {
- NSRunningApplication *app = [selectedApps objectAtIndex: i];
- int count = 0;
- NSLog(@"Checking %@\n", app);
- while (![app isFinishedLaunching] && count++ < 300)
- [[NSRunLoop currentRunLoop] runUntilDate: [NSDate dateWithTimeIntervalSinceNow: 1.0f]];
- }
-}
-
-NSString* MakeNSString(const std::string& string)
-{
- return MakeNSString(string.c_str());
-}
-
-NSString* MakeNSString(const char* string)
-{
- NSString* ret = string? [NSString stringWithUTF8String:string] : nil;
- return ret ? ret : @"";
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40000-HashMap.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40000-HashMap.d
deleted file mode 100644
index 74d0614b..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40000-HashMap.d
+++ /dev/null
@@ -1,1095 +0,0 @@
-/*******************************************************************************
-
- @file HashMap.d
-
- This software is provided 'as-is', without any express or implied
- warranty. In no event will the authors be held liable for damages
- of any kind arising from the use of this software.
-
- Permission is hereby granted to anyone to use this software for any
- purpose, including commercial applications, and to alter it and/or
- redistribute it freely, subject to the following restrictions:
-
- 1. The origin of this software must not be misrepresented; you must
- not claim that you wrote the original software. If you use this
- software in a product, an acknowledgment within documentation of
- said product would be appreciated but is not required.
-
- 2. Altered source versions must be plainly marked as such, and must
- not be misrepresented as being the original software.
-
- 3. This notice may not be removed or altered from any distribution
- of the source.
-
- 4. Derivative works are permitted, but they must carry this notice
- in full and credit the original source.
-
-
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-
- Written by Doug Lea with assistance from members of JCP JSR-166
- Expert Group and released to the public domain, as explained at
- http://creativecommons.org/licenses/publicdomain
-
- @version Initial version, July 2004
- @author Doug Lea; ported/modified by Kris
-
-*******************************************************************************/
-
-module mango.cache.HashMap;
-
-/******************************************************************************
-
-******************************************************************************/
-
-extern (C)
-{
-int memcmp(char *, char *, uint);
-}
-
-
-/**
- * A hash table supporting full concurrency of retrievals and
- * adjustable expected concurrency for updates. This class obeys the
- * same functional specification as {@link java.util.Hashtable}, and
- * includes versions of methods corresponding to each method of
- * <tt>Hashtable</tt>. However, even though all operations are
- * thread-safe, retrieval operations do <em>not</em> entail locking,
- * and there is <em>not</em> any support for locking the entire table
- * in a way that prevents all access. This class is fully
- * interoperable with <tt>Hashtable</tt> in programs that rely on its
- * thread safety but not on its synchronization details.
- *
- * <p> Retrieval operations (including <tt>get</tt>) generally do not
- * block, so may overlap with update operations (including
- * <tt>put</tt> and <tt>remove</tt>). Retrievals reflect the results
- * of the most recently <em>completed</em> update operations holding
- * upon their onset. For aggregate operations such as <tt>putAll</tt>
- * and <tt>clear</tt>, concurrent retrievals may reflect insertion or
- * removal of only some entries. Similarly, Iterators and
- * Enumerations return elements reflecting the state of the hash table
- * at some point at or since the creation of the iterator/enumeration.
- * They do <em>not</em> throw
- * {@link ConcurrentModificationException}. However, iterators are
- * designed to be used by only one thread at a time.
- *
- * <p> The allowed concurrency among update operations is guided by
- * the optional <tt>concurrencyLevel</tt> constructor argument
- * (default 16), which is used as a hint for internal sizing. The
- * table is internally partitioned to try to permit the indicated
- * number of concurrent updates without contention. Because placement
- * in hash tables is essentially random, the actual concurrency will
- * vary. Ideally, you should choose a value to accommodate as many
- * threads as will ever concurrently modify the table. Using a
- * significantly higher value than you need can waste space and time,
- * and a significantly lower value can lead to thread contention. But
- * overestimates and underestimates within an order of magnitude do
- * not usually have much noticeable impact. A value of one is
- * appropriate when it is known that only one thread will modify and
- * all others will only read. Also, resizing this or any other kind of
- * hash table is a relatively slow operation, so, when possible, it is
- * a good idea to provide estimates of expected table sizes in
- * constructors.
- *
- * <p>This class and its views and iterators implement all of the
- * <em>optional</em> methods of the {@link Map} and {@link Iterator}
- * interfaces.
- *
- * <p> Like {@link java.util.Hashtable} but unlike {@link
- * java.util.HashMap}, this class does NOT allow <tt>null</tt> to be
- * used as a key or value.
- *
- * <p>This class is a member of the
- * <a href="{@docRoot}/../guide/collections/index.html">
- * Java Collections Framework</a>.
- *
- * @since 1.5
- * @author Doug Lea
- * @param <K> the type of keys maintained by this map
- * @param <V> the type of mapped values
- */
-
-class HashMap
-{
- alias void[] K;
- alias Object V;
- alias jhash hash; // jhash, fnv, or walter
-
- /*
- * The basic strategy is to subdivide the table among Segments,
- * each of which itself is a concurrently readable hash table.
- */
-
- /* ---------------- Constants -------------- */
-
- /**
- * The default initial number of table slots for this table.
- * Used when not otherwise specified in constructor.
- */
- private const uint DEFAULT_INITIAL_CAPACITY = 16;
-
- /**
- * The maximum capacity, used if a higher value is implicitly
- * specified by either of the constructors with arguments. MUST
- * be a power of two <= 1<<30 to ensure that entries are indexible
- * using ints.
- */
- private const uint MAXIMUM_CAPACITY = 1 << 30;
-
- /**
- * The default load factor for this table. Used when not
- * otherwise specified in constructor.
- */
- private const float DEFAULT_LOAD_FACTOR = 0.75f;
-
- /**
- * The default number of concurrency control segments.
- **/
- private const uint DEFAULT_SEGMENTS = 16;
-
- /**
- * The maximum number of segments to allow; used to bound
- * constructor arguments.
- */
- private const uint MAX_SEGMENTS = 1 << 16; // slightly conservative
-
-
- /* ---------------- Fields -------------- */
-
- /**
- * Mask value for indexing into segments. The upper bits of a
- * key's hash code are used to choose the segment.
- **/
- private final int segmentMask;
-
- /**
- * Shift value for indexing within segments.
- **/
- private final int segmentShift;
-
- /**
- * The segments, each of which is a specialized hash table
- */
- private final Segment[] segments;
-
-
- /* ---------------- Small Utilities -------------- */
-
- /**
- * Returns a hash code for non-null Object x.
- * Uses the same hash code spreader as most other java.util hash tables.
- * @param x the object serving as a key
- * @return the hash code
- */
- private static final uint walter(K x)
- {
- uint h = typeid(char[]).getHash(&x);
-
- h += ~(h << 9);
- h ^= (h >>> 14);
- h += (h << 4);
- h ^= (h >>> 10);
- return h;
- }
-
- /**
- * Returns a hash code for non-null Object x.
- * uses the FNV hash function
- * @param x the object serving as a key
- * @return the hash code
- */
- private static final uint fnv(K x)
- {
- uint hash = 2_166_136_261;
-
- foreach (ubyte c; cast(ubyte[])x)
- {
- hash ^= c;
- hash *= 16_777_619;
- }
- return hash;
- }
-
-
-
- /**
- * hash() -- hash a variable-length key into a 32-bit value
- * k : the key (the unaligned variable-length array of bytes)
- * len : the length of the key, counting by bytes
- * level : can be any 4-byte value
- * Returns a 32-bit value. Every bit of the key affects every bit of
- * the return value. Every 1-bit and 2-bit delta achieves avalanche.
- * About 36+6len instructions.
- *
- * The best hash table sizes are powers of 2. There is no need to do
- * mod a prime (mod is sooo slow!). If you need less than 32 bits,
- * use a bitmask. For example, if you need only 10 bits, do
- * h = (h & hashmask(10));
- * In which case, the hash table should have hashsize(10) elements.
- *
- * If you are hashing n strings (ub1 **)k, do it like this:
- * for (i=0, h=0; i<n; ++i) h = hash( k[i], len[i], h);
- *
- * By Bob Jenkins, 1996. bob_jenkins@burtleburtle.net. You may use this
- * code any way you wish, private, educational, or commercial. It's free.
- *
- * See http://burlteburtle.net/bob/hash/evahash.html
- * Use for hash table lookup, or anything where one collision in 2^32 is
- * acceptable. Do NOT use for cryptographic purposes.
- */
-
- static final uint jhash(K x)
- {
- ubyte *k;
- uint a,
- b,
- c,
- len;
-
- len = x.length;
- k = cast(ubyte *)x;
- a = b = 0x9e3779b9;
-
- // the previous hash value
- c = 0;
-
- // handle most of the key
- while (len >= 12)
- {
- a += *cast(uint *)(k + 0);
- b += *cast(uint *)(k + 4);
- c += *cast(uint *)(k + 8);
-
- a -= b; a -= c; a ^= (c >> 13);
- b -= c; b -= a; b ^= (a << 8);
- c -= a; c -= b; c ^= (b >> 13);
- a -= b; a -= c; a ^= (c >> 12);
- b -= c; b -= a; b ^= (a << 16);
- c -= a; c -= b; c ^= (b >> 5);
- a -= b; a -= c; a ^= (c >> 3);
- b -= c; b -= a; b ^= (a << 10);
- c -= a; c -= b; c ^= (b >> 15);
- k += 12; len -= 12;
- }
-
- // handle the last 11 bytes
- c += x.length;
- switch (len)
- {
- case 11: c += (cast(uint)k[10] << 24);
-
- case 10: c += (cast(uint)k[9] << 16);
-
- case 9: c += (cast(uint)k[8] << 8);
-
- case 8: b += (cast(uint)k[7] << 24);
-
- case 7: b += (cast(uint)k[6] << 16);
-
- case 6: b += (cast(uint)k[5] << 8);
-
- case 5: b += k[4];
-
- case 4: a += (cast(uint)k[3] << 24);
-
- case 3: a += (cast(uint)k[2] << 16);
-
- case 2: a += (cast(uint)k[1] << 8);
-
- case 1: a += k[0];
-
- default:
- }
-
- a -= b; a -= c; a ^= (c >> 13);
- b -= c; b -= a; b ^= (a << 8);
- c -= a; c -= b; c ^= (b >> 13);
- a -= b; a -= c; a ^= (c >> 12);
- b -= c; b -= a; b ^= (a << 16);
- c -= a; c -= b; c ^= (b >> 5);
- a -= b; a -= c; a ^= (c >> 3);
- b -= c; b -= a; b ^= (a << 10);
- c -= a; c -= b; c ^= (b >> 15);
-
- return c;
- }
-
-
- /**
- * Returns the segment that should be used for key with given hash
- * @param hash the hash code for the key
- * @return the segment
- */
- private final Segment segmentFor(uint hash)
- {
- return segments[(hash >>> segmentShift) & segmentMask];
- }
-
- /* ---------------- Inner Classes -------------- */
-
- /**
- * ConcurrentHashMap list entry. Note that this is never exported
- * out as a user-visible Map.Entry.
- *
- * Because the value field is volatile, not final, it is legal wrt
- * the Java Memory Model for an unsynchronized reader to see null
- * instead of initial value when read via a data race. Although a
- * reordering leading to this is not likely to ever actually
- * occur, the Segment.readValueUnderLock method is used as a
- * backup in case a null (pre-initialized) value is ever seen in
- * an unsynchronized access method.
- */
- private static class HashEntry
- {
- final K key;
- final uint hash;
- final V value;
- final HashEntry next;
-
- this(K key, uint hash, HashEntry next, V value)
- {
- this.key = key;
- this.hash = hash;
- this.next = next;
- this.value = value;
- }
- }
-
- /**
- * Segments are specialized versions of hash tables. This
- * subclasses from ReentrantLock opportunistically, just to
- * simplify some locking and avoid separate construction.
- **/
- static class Segment
- {
- /*
- * Segments maintain a table of entry lists that are ALWAYS
- * kept in a consistent state, so can be read without locking.
- * Next fields of nodes are immutable (final). All list
- * additions are performed at the front of each bin. This
- * makes it easy to check changes, and also fast to traverse.
- * When nodes would otherwise be changed, new nodes are
- * created to replace them. This works well for hash tables
- * since the bin lists tend to be short. (The average length
- * is less than two for the default load factor threshold.)
- *
- * Read operations can thus proceed without locking, but rely
- * on selected uses of volatiles to ensure that completed
- * write operations performed by other threads are
- * noticed. For most purposes, the "count" field, tracking the
- * number of elements, serves as that volatile variable
- * ensuring visibility. This is convenient because this field
- * needs to be read in many read operations anyway:
- *
- * - All (unsynchronized) read operations must first read the
- * "count" field, and should not look at table entries if
- * it is 0.
- *
- * - All (synchronized) write operations should write to
- * the "count" field after structurally changing any bin.
- * The operations must not take any action that could even
- * momentarily cause a concurrent read operation to see
- * inconsistent data. This is made easier by the nature of
- * the read operations in Map. For example, no operation
- * can reveal that the table has grown but the threshold
- * has not yet been updated, so there are no atomicity
- * requirements for this with respect to reads.
- *
- * As a guide, all critical volatile reads and writes to the
- * count field are marked in code comments.
- */
-
- /**
- * The number of elements in this segment's region.
- **/
- int count;
-
- /**
- * The table is rehashed when its size exceeds this threshold.
- * (The value of this field is always (int)(capacity *
- * loadFactor).)
- */
- int threshold;
-
- /**
- * The per-segment table. Declared as a raw type, casted
- * to HashEntry<K,V> on each use.
- */
- HashEntry[] table;
-
- /**
- * The load factor for the hash table. Even though this value
- * is same for all segments, it is replicated to avoid needing
- * links to outer object.
- * @serial
- */
- final float loadFactor;
-
- this(int initialCapacity, float lf)
- {
- loadFactor = lf;
- setTable(new HashEntry[initialCapacity]);
- }
-
- /**
- * Set table to new HashEntry array.
- * Call only while holding lock or in constructor.
- **/
- private final void setTable(HashEntry[] newTable)
- {
- threshold = cast(int)(newTable.length * loadFactor);
- volatile table = newTable;
- }
-
- /**
- * Return properly casted first entry of bin for given hash
- */
- private final HashEntry getFirst(uint hash)
- {
- HashEntry[] tab;
-
- volatile tab = table;
- return tab[hash & (tab.length - 1)];
- }
-
- /**
- * Return true if the two keys match
- */
- private static final bool matchKey(K a, K b)
- {
- if (a.length == b.length)
- return cast(bool)(memcmp(cast(char *)a, cast(char *)b, a.length) == 0);
-
- return false;
- }
-
- /* Specialized implementations of map methods */
-
- final V get(K key, uint hash)
- {
- int c;
-
- // read-volatile
- volatile c = count;
- if (c)
- {
- HashEntry e = getFirst(hash);
- while (e)
- {
- if (hash == e.hash && matchKey(key, e.key))
- {
- V v;
- volatile v = e.value;
- if (v)
- return v;
-
- synchronized (this)
- return e.value;
- }
- e = e.next;
- }
- }
- return null;
- }
-
-
- final bool containsKey(K key, uint hash)
- {
- int c;
-
- // read-volatile
- volatile c = count;
- if (c)
- {
- HashEntry e = getFirst(hash);
- while (e)
- {
- if (e.hash == hash && matchKey(key, e.key))
- return true;
-
- e = e.next;
- }
- }
- return false;
- }
-
-
-
- final synchronized V replace(K key, uint hash, V newValue)
- {
- HashEntry e = getFirst(hash);
-
- while (e && (e.hash != hash || !matchKey(key, e.key)))
- e = e.next;
-
- V oldValue = null;
-
- if (e)
- volatile
- {
- oldValue = e.value;
- e.value = newValue;
- }
- return oldValue;
- }
-
-
- final synchronized V put(K key, uint hash, V value, bool onlyIfAbsent)
- {
- int c;
-
- volatile c = count;
- if (c++ > threshold)
- rehash();
-
- HashEntry[] tab;
- volatile tab = table;
- uint index = hash & (tab.length - 1);
- HashEntry first = tab[index];
- HashEntry e = first;
-
- while (e && (e.hash != hash || !matchKey(key, e.key)))
- e = e.next;
-
- V oldValue;
-
- if (e)
- {
- volatile oldValue = e.value;
- if (!onlyIfAbsent)
- volatile e.value = value;
- }
- else
- {
- oldValue = null;
- tab[index] = new HashEntry(key, hash, first, value);
-
- // write-volatile
- volatile count = c;
- }
- return oldValue;
- }
-
-
- private final void rehash()
- {
- HashEntry[] oldTable;
-
- volatile oldTable = table;
- int oldCapacity = oldTable.length;
-
- if (oldCapacity >= MAXIMUM_CAPACITY)
- return;
-
- /*
- * Reclassify nodes in each list to new Map. Because we are
- * using power-of-two expansion, the elements from each bin
- * must either stay at same index, or move with a power of two
- * offset. We eliminate unnecessary node creation by catching
- * cases where old nodes can be reused because their next
- * fields won't change. Statistically, at the default
- * threshold, only about one-sixth of them need cloning when
- * a table doubles. The nodes they replace will be garbage
- * collectable as soon as they are no longer referenced by any
- * reader thread that may be in the midst of traversing table
- * right now.
- */
-
- HashEntry[] newTable = new HashEntry[oldCapacity << 1];
- threshold = cast(int)(newTable.length * loadFactor);
- int sizeMask = newTable.length - 1;
-
- for (int i = 0; i < oldCapacity; ++i)
- {
- // We need to guarantee that any existing reads of old Map can
- // proceed. So we cannot yet null out each bin.
- HashEntry e = oldTable[i];
-
- if (e)
- {
- HashEntry next = e.next;
- uint idx = e.hash & sizeMask;
-
- // Single node on list
- if (next is null)
- newTable[idx] = e;
- else
- {
- // Reuse trailing consecutive sequence at same slot
- HashEntry lastRun = e;
- int lastIdx = idx;
- for (HashEntry last = next; last; last = last.next)
- {
- uint k = last.hash & sizeMask;
- if (k != lastIdx)
- {
- lastIdx = k;
- lastRun = last;
- }
- }
- newTable[lastIdx] = lastRun;
-
- // Clone all remaining nodes
- for (HashEntry p = e; p !is lastRun; p = p.next)
- {
- uint k = p.hash & sizeMask;
- HashEntry n = newTable[k];
- newTable[k] = new HashEntry(p.key, p.hash, n, p.value);
- }
- }
- }
- }
- volatile table = newTable;
- }
-
- /**
- * Remove; match on key only if value null, else match both.
- */
- final synchronized V remove(K key, uint hash, V value)
- {
- int c;
-
- HashEntry[] tab;
-
- volatile c = count - 1;
- volatile tab = table;
-
- uint index = hash & (tab.length - 1);
- HashEntry first = tab[index];
- HashEntry e = first;
-
- while (e && (e.hash != hash || !matchKey(key, e.key)))
- e = e.next;
-
- V oldValue = null;
-
- if (e)
- {
- V v;
- volatile v = e.value;
- if (value is null || value == v)
- {
- oldValue = v;
-
- // All entries following removed node can stay
- // in list, but all preceding ones need to be
- // cloned.
- HashEntry newFirst = e.next;
- for (HashEntry p = first; p !is e; p = p.next)
- newFirst = new HashEntry(p.key, p.hash, newFirst, p.value);
- tab[index] = newFirst;
-
- // write-volatile
- volatile count = c;
- }
- }
- return oldValue;
- }
-
-
- final synchronized void clear()
- {
- if (count)
- {
- HashEntry[] tab;
- volatile tab = table;
-
- for (int i = 0; i < tab.length; i++)
- tab[i] = null;
-
- // write-volatile
- volatile count = 0;
- }
- }
- }
-
-
-
- /* ---------------- Public operations -------------- */
-
- /**
- * Creates a new, empty map with the specified initial
- * capacity and the specified load factor.
- *
- * @param initialCapacity the initial capacity. The implementation
- * performs internal sizing to accommodate this many elements.
- * @param loadFactor the load factor threshold, used to control resizing.
- * @param concurrencyLevel the estimated number of concurrently
- * updating threads. The implementation performs internal sizing
- * to try to accommodate this many threads.
- * @throws IllegalArgumentException if the initial capacity is
- * negative or the load factor or concurrencyLevel are
- * nonpositive.
- */
- public this(uint initialCapacity, float loadFactor, uint concurrencyLevel)
- {
- assert(loadFactor > 0);
-
- if (concurrencyLevel > MAX_SEGMENTS)
- concurrencyLevel = MAX_SEGMENTS;
-
- // Find power-of-two sizes best matching arguments
- int sshift = 0;
- int ssize = 1;
- while (ssize < concurrencyLevel)
- {
- ++sshift;
- ssize <<= 1;
- }
-
- segmentShift = 32 - sshift;
- segmentMask = ssize - 1;
- this.segments = new Segment[ssize];
-
- if (initialCapacity > MAXIMUM_CAPACITY)
- initialCapacity = MAXIMUM_CAPACITY;
-
- int c = initialCapacity / ssize;
- if (c * ssize < initialCapacity)
- ++c;
-
- int cap = 1;
- while (cap < c)
- cap <<= 1;
-
- for (int i = 0; i < this.segments.length; ++i)
- this.segments[i] = new Segment(cap, loadFactor);
- }
-
- /**
- * Creates a new, empty map with the specified initial
- * capacity, and with default load factor and concurrencyLevel.
- *
- * @param initialCapacity The implementation performs internal
- * sizing to accommodate this many elements.
- * @throws IllegalArgumentException if the initial capacity of
- * elements is negative.
- */
- public this(uint initialCapacity)
- {
- this(initialCapacity, DEFAULT_LOAD_FACTOR, DEFAULT_SEGMENTS);
- }
-
- /**
- * Creates a new, empty map with a default initial capacity,
- * load factor, and concurrencyLevel.
- */
- public this()
- {
- this(DEFAULT_INITIAL_CAPACITY, DEFAULT_LOAD_FACTOR, DEFAULT_SEGMENTS);
- }
-
- /**
- * Returns the value to which the specified key is mapped in this table.
- *
- * @param key a key in the table.
- * @return the value to which the key is mapped in this table;
- * <tt>null</tt> if the key is not mapped to any value in
- * this table.
- * @throws NullPointerException if the key is
- * <tt>null</tt>.
- */
- public V get(K key)
- {
- uint hash = hash(key); // throws NullPointerException if key null
-
- return segmentFor(hash).get(key, hash);
- }
-
- /**
- * Tests if the specified object is a key in this table.
- *
- * @param key possible key.
- * @return <tt>true</tt> if and only if the specified object
- * is a key in this table, as determined by the
- * <tt>equals</tt> method; <tt>false</tt> otherwise.
- * @throws NullPointerException if the key is
- * <tt>null</tt>.
- */
- public bool containsKey(K key)
- {
- uint hash = hash(key); // throws NullPointerException if key null
-
- return segmentFor(hash).containsKey(key, hash);
- }
-
- /**
- * Maps the specified <tt>key</tt> to the specified
- * <tt>value</tt> in this table. Neither the key nor the
- * value can be <tt>null</tt>.
- *
- * <p> The value can be retrieved by calling the <tt>get</tt> method
- * with a key that is equal to the original key.
- *
- * @param key the table key.
- * @param value the value.
- * @return the previous value of the specified key in this table,
- * or <tt>null</tt> if it did not have one.
- * @throws NullPointerException if the key or value is
- * <tt>null</tt>.
- */
- public V put(K key, V value)
- {
- assert(value);
-
- uint hash = hash(key);
-
- return segmentFor(hash).put(key, hash, value, false);
- }
-
- /**
- * If the specified key is not already associated
- * with a value, associate it with the given value.
- * This is equivalent to
- * <pre>
- * if (!map.containsKey(key))
- * return map.put(key, value);
- * else
- * return map.get(key);
- * </pre>
- * Except that the action is performed atomically.
- * @param key key with which the specified value is to be associated.
- * @param value value to be associated with the specified key.
- * @return previous value associated with specified key, or <tt>null</tt>
- * if there was no mapping for key.
- * @throws NullPointerException if the specified key or value is
- * <tt>null</tt>.
- */
- public V putIfAbsent(K key, V value)
- {
- assert(value);
-
- uint hash = hash(key);
-
- return segmentFor(hash).put(key, hash, value, true);
- }
-
-
- /**
- * Removes the key (and its corresponding value) from this
- * table. This method does nothing if the key is not in the table.
- *
- * @param key the key that needs to be removed.
- * @return the value to which the key had been mapped in this table,
- * or <tt>null</tt> if the key did not have a mapping.
- * @throws NullPointerException if the key is
- * <tt>null</tt>.
- */
- public V remove(K key)
- {
- uint hash = hash(key);
-
- return segmentFor(hash).remove(key, hash, null);
- }
-
- /**
- * Remove entry for key only if currently mapped to given value.
- * Acts as
- * <pre>
- * if (map.get(key).equals(value)) {
- * map.remove(key);
- * return true;
- * } else return false;
- * </pre>
- * except that the action is performed atomically.
- * @param key key with which the specified value is associated.
- * @param value value associated with the specified key.
- * @return true if the value was removed
- * @throws NullPointerException if the specified key is
- * <tt>null</tt>.
- */
- public bool remove(K key, V value)
- {
- uint hash = hash(key);
-
- return cast(bool)(segmentFor(hash).remove(key, hash, value) !is null);
- }
-
-
- /**
- * Replace entry for key only if currently mapped to some value.
- * Acts as
- * <pre>
- * if ((map.containsKey(key)) {
- * return map.put(key, value);
- * } else return null;
- * </pre>
- * except that the action is performed atomically.
- * @param key key with which the specified value is associated.
- * @param value value to be associated with the specified key.
- * @return previous value associated with specified key, or <tt>null</tt>
- * if there was no mapping for key.
- * @throws NullPointerException if the specified key or value is
- * <tt>null</tt>.
- */
- public V replace(K key, V value)
- {
- assert(value);
-
- uint hash = hash(key);
-
- return segmentFor(hash).replace(key, hash, value);
- }
-
-
- /**
- * Removes all mappings from this map.
- */
- public void clear()
- {
- for (int i = 0; i < segments.length; ++i)
- segments[i].clear();
- }
-
-
- /**
- * Returns an enumeration of the keys in this table.
- *
- * @return an enumeration of the keys in this table.
- * @see #keySet
- */
- public KeyIterator keys()
- {
- return new KeyIterator(this);
- }
-
- /**
- * Returns an enumeration of the values in this table.
- *
- * @return an enumeration of the values in this table.
- * @see #values
- */
- public ValueIterator elements()
- {
- return new ValueIterator(this);
- }
-
- /**********************************************************************
-
- Iterate over all keys in hashmap
-
- **********************************************************************/
-
- int opApply(int delegate(inout char[]) dg)
- {
- int result = 0;
- KeyIterator iterator = keys();
-
- while (iterator.hasNext)
- {
- char[] ca = cast(char[])iterator.next;
- if ((result = dg(ca)) != 0)
- break;
- }
- return result;
- }
-
- /**********************************************************************
-
- Iterate over all keys in hashmap
-
- **********************************************************************/
-
- int opApply(int delegate(inout char[], inout Object) dg)
- {
- int result = 0;
- KeyIterator iterator = keys();
-
- while (iterator.hasNext)
- {
- HashEntry he = iterator.nextElement;
- char[] ca = cast(char[])he.key;
- if ((result = dg(ca, he.value)) != 0)
- break;
- }
- return result;
- }
-
-
- /* ---------------- Iterator Support -------------- */
-
- abstract static class HashIterator
- {
- int nextSegmentIndex;
- int nextTableIndex;
- HashEntry[] currentTable;
- HashEntry nextEntry;
- HashEntry lastReturned;
- HashMap map;
-
- this(HashMap map)
- {
- this.map = map;
- nextSegmentIndex = map.segments.length - 1;
- nextTableIndex = -1;
- advance();
- }
-
- final void advance()
- {
- if (nextEntry !is null && (nextEntry = nextEntry.next) !is null)
- return;
-
- while (nextTableIndex >= 0)
- {
- if ((nextEntry = currentTable[nextTableIndex--]) !is null)
- return;
- }
-
- while (nextSegmentIndex >= 0)
- {
- Segment seg = map.segments[nextSegmentIndex--];
- volatile if (seg.count)
- {
- currentTable = seg.table;
- for (int j = currentTable.length - 1; j >= 0; --j)
- {
- if ((nextEntry = currentTable[j]) !is null)
- {
- nextTableIndex = j - 1;
- return;
- }
- }
- }
- }
- }
-
- public bool hasNext()
- {
- return cast(bool)(nextEntry !is null);
- }
-
- HashEntry nextElement()
- {
- if (nextEntry is null)
- throw new Exception("no such element in HashMap");
-
- lastReturned = nextEntry;
- advance();
- return lastReturned;
- }
- }
-
- static class KeyIterator : HashIterator
- {
- this(HashMap map) {
- super(map);
- }
- public K next()
- {
- return super.nextElement().key;
- }
- }
-
- static class ValueIterator : HashIterator
- {
- this(HashMap map) {
- super(map);
- }
- public V next()
- {
- volatile return super.nextElement().value;
- }
- }
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40002-volatile.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40002-volatile.d
deleted file mode 100644
index 4dbd66dc..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40002-volatile.d
+++ /dev/null
@@ -1,27 +0,0 @@
-void foo(void)
-{
- while (nextSegmentIndex >= 0)
- {
- Segment seg = map.segments[nextSegmentIndex--];
- volatile if (seg.count)
- {
- currentTable = seg.table;
- for (int j = currentTable.length - 1; j >= 0; --j)
- {
- if ((nextEntry = currentTable[j]) !is null)
- {
- nextTableIndex = j - 1;
- return;
- }
- }
- }
- }
-
- if (e)
- volatile
- {
- oldValue = e.value;
- e.value = newValue;
- }
- return oldValue;
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40006-Lexer.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40006-Lexer.d
deleted file mode 100644
index 86e1144a..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40006-Lexer.d
+++ /dev/null
@@ -1,2472 +0,0 @@
-/+
- Copyright (c) 1999-2006 by Digital Mars
- All Rights Reserved
- written by Walter Bright www.digitalmars.com
- License for redistribution is by either the Artistic License in artistic.txt, or the GNU General Public License in gnu.txt.
- See the included readme.txt for details.
- D Language conversion by: J Duncan
- +/
-
-/**
- d language lexer
- */
-
-module dparser.Lexer;
-
-import dparser.Root;
-
-import dparser.Tokens;
-import dparser.Token;
-import dparser.Keyword;
-
-import dparser.Types;
-
-import dparser.Module;
-import dparser.Identifier;
-import dparser.unialpha;
-
-import dparser.OutBuffer;
-
-//private import std.ctype;
-//private import std.string;
-//import dwf.core.debugapi;
-
-int errno = 0;
-
-//#if _WIN32 && __DMC__
-// from \dm\src\include\setlocal.h
-//extern "C" char * __cdecl __locale_decpoint;
-char *__locale_decpoint;
-//#endif
-//const uint LS = 0x2028; // UTF line separator
-//const uint PS = 0x2029; // UTF paragraph separator
-
-//extern int isUniAlpha(unsigned u);
-//extern int HtmlNamedEntity(unsigned char *p, int length);
-
-/**
- Lexer object
- */
-
-class Lexer
-{
- static Identifier[char[]] stringtable;
- static OutBuffer stringbuffer;
- static Token *freelist;
-
- Token token; // current token
- Module mod; // current module
- Loc loc; // for error messages
- ubyte *base; // pointer to start of buffer
- ubyte *end; // past end of buffer
- ubyte *p; // current character
- int doDocComment; // collect doc comment information
- int anyToken; // !=0 means seen at least one token
- int commentToken; // !=0 means comments are TOKcomment's
-
-
- this(Module mod, ubyte *base, uint begoffset, uint endoffset, int doDocComment, int commentToken)
- {
- if (stringbuffer is null)
- stringbuffer = new OutBuffer;
- loc = Loc(mod, 1);
-
- this.base = base;
- this.end = base + endoffset;
- this.p = base + begoffset;
- this.mod = mod;
- this.doDocComment = doDocComment;
- this.commentToken = commentToken;
-
- /*
- If first line starts with '#!', ignore the line
- */
-
- if (p[0] == '#' && p[1] == '!')
- {
- p += 2;
- while (true)
- {
- ubyte c = *p;
- switch (c)
- {
- case '\n':
- p++;
- break;
-
- case '\r':
- p++;
- if (*p == '\n')
- p++;
- break;
-
- case 0:
- case 0x1A:
- break;
-
- default:
- if (c & 0x80)
- {
- uint u = decodeUTF();
- if (u == PS || u == LS)
- break;
- }
- p++;
- continue;
- }
- break;
- }
-
- loc.linnum = 2;
- }
- }
-
-
-
- // generate a unique identifier for this string
- static Identifier idPool(in char[] str)
- {
-// StringValue sv;
-// uint len = s.length;
-// StringValue sv = stringtable.update(s, len);
-// Identifier* id = cast(Identifier*) sv.ptrvalue;
-// if( id is null )
- if ((str in stringtable) == null)
- {
- stringtable[str] = new Identifier(str, TOK.TOKidentifier);
- }
- return stringtable[str];
- }
-
- static void initKeywords()
- {
- // build character map
- cmtable_init();
-
- // create keyword tokens & identifiers
- dparser.Keyword.initKeywords();
-
- // create standard lexer tokens
- dparser.Token.createLexerTokens();
- }
-
- // Combine two document comments into one.
- static char[] combineComments(char[] c1, char[] c2)
- {
- char[] c = c2;
- if (c1.length)
- {
- c = c1;
- if (c2.length)
- {
- c = c1 ~ "\n" ~ c2;
- }
- }
- return c;
- }
-
- // Decode UTF character. Issue error messages for invalid sequences. Return decoded character, advance p to last character in UTF sequence.
- //! fix
- uint decodeUTF()
- {
- ubyte *s = p;
- ubyte c = *s;
-
- assert(c & 0x80);
- if (!(c & 0x80))
- return c;
-
- return cast(uint)'X';
- /*
- dchar u;
- uint len;
-
-
-
- // Check length of remaining string up to 6 UTF-8 characters
- for( len = 1; len < 6 && s[len]; len++ )
- {
-
- }
- /+
- uint idx = 0;
- char* msg = utf_decodeChar( s, len, &idx, &u );
- p += idx - 1;
- if( msg )
- {
- error(msg);
- }
- +/
- return u;
- */
- }
-
- void error(...)
- {
- if ((mod !is null) && !global.gag)
- {
- writefln(formatLoc(loc, _arguments, _argptr));
- /*
- char[] p = loc.toChars();
- if( p.length )
- writef( "%s: ", p );
- writefx( stdout, _arguments, _argptr, 1 );
- */
- if (global.errors >= global.max_errors) // moderate blizzard of cascading messages
- throw new Exception("too many errors");
- }
-
- global.errors++;
- }
-
- void errorLoc(Loc loc, ...)
- {
- if ((mod !is null) && !global.gag)
- {
- writefln(formatLoc(loc, _arguments, _argptr));
- /*
- char[] p = loc.toChars();
- if( p.length )
- writef("%s: ", p);
- writefx(stdout, _arguments, _argptr, 1);
- */
- if (global.errors >= 20) // moderate blizzard of cascading messages
- throw new Exception("too many errors");
- }
-
- global.errors++;
- }
-
-
- TOK nextToken()
- {
- if (token.next)
- {
- Token *t = token.next;
- memcpy(&token, t, Token.sizeof);
-// t.next = freelist;
-// freelist = t;
- }
- else
- {
- scan(&token);
- }
-// token.print();
- return token.value;
- }
-
- Token *peek(inout Token ct)
- {
- Token *t;
-
- if (ct.next)
- t = ct.next;
- else
- {
- t = new Token;
- scan(t);
- t.next = null;
- ct.next = t;
- }
- return t;
- }
-
- // Turn next token in buffer into a token.
-
- void scan(Token *t)
- {
-// debug writefln("scan token");
- uint lastLine = loc.linnum;
- uint linnum;
-
- t.blockComment = null;
- t.lineComment = null;
- while (true)
- {
- t.ptr = p;
-// debug writefln( " p = %d, *p = ", cast(uint)p, cast(char)*p );
- switch (*p)
- {
- case 0:
- case 0x1a:
- t.value = TOK.TOKeof; // end of file
-// debug writefln( " EOF" );
- return;
-
- case ' ':
- case '\t':
- case '\v':
- case '\f':
- p++;
-// debug writefln( " whitespace" );
- continue; // skip white space
-
- case '\r':
-// debug writefln( " cr" );
- p++;
- if (*p != '\n') // if CR stands by itself
- loc.linnum++;
- continue; // skip white space
-
- case '\n':
-// debug writefln( " nl" );
- p++;
- loc.linnum++;
- continue; // skip white space
-
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9':
- t.value = number(t);
- return;
-
-/*
- #if CSTRINGS
- case '\'':
- t.value = charConstant(t, 0);
- return;
-
- case '"':
- t.value = stringConstant(t,0);
- return;
-
- case 'l':
- case 'L':
- if( p[1] == '\'')
- {
- p++;
- t.value = charConstant(t, 1);
- return;
- }
- else if( p[1] == '"')
- {
- p++;
- t.value = stringConstant(t, 1);
- return;
- }
- #else
- */
- case '\'':
-// debug writefln( " char" );
- t.value = charConstant(t, 0);
- return;
-
- case 'r':
-// debug writefln( " wysiwyg" );
- if (p[1] != '"')
- goto case_identifier;
- p++;
-
- case '`':
- t.value = wysiwygStringConstant(t, *p);
- return;
-
- case 'x':
-// debug writefln( " hex string" );
- if (p[1] != '"')
- goto case_identifier;
- p++;
- t.value = hexStringConstant(t);
- return;
-
-
- case '"':
-// debug writefln( " string" );
- t.value = escapeStringConstant(t, 0);
-// debug writefln( t.ustring );
- return;
-
- case '\\': // escaped string literal
-// debug writefln( " escaped string literal" );
- uint c;
- stringbuffer.offset = 0;
- do
- {
- p++;
- c = escapeSequence();
- stringbuffer.write(c);
- } while (*p == '\\');
-// t.len = stringbuffer.offset;
-// stringbuffer.write(cast(byte)0);
- t.ustring = stringbuffer.toString;
-// memcpy( t.ustring.ptr, stringbuffer.data, stringbuffer.offset );
- t.postfix = 0;
- t.value = TOK.TOKstring;
- return;
-
- case 'l':
- case 'L':
-// #endif
-
- case 'a':
- case 'b':
- case 'c':
- case 'd':
- case 'e':
- case 'f':
- case 'g':
- case 'h':
- case 'i':
- case 'j':
- case 'k':
- case 'm':
- case 'n':
- case 'o':
- case 'p':
- case 'q': /*case 'r':*/
- case 's':
- case 't':
- case 'u':
- case 'v':
- case 'w': /*case 'x':*/
- case 'y':
- case 'z':
- case 'A':
- case 'B':
- case 'C':
- case 'D':
- case 'E':
- case 'F':
- case 'G':
- case 'H':
- case 'I':
- case 'J':
- case 'K':
- case 'M':
- case 'N':
- case 'O':
- case 'P':
- case 'Q':
- case 'R':
- case 'S':
- case 'T':
- case 'U':
- case 'V':
- case 'W':
- case 'X':
- case 'Y':
- case 'Z':
- case '_':
- case_identifier:
- {
-// debug writefln( " identifier" );
- ubyte c;
- do
- {
- c = *++p;
- } while (isidchar(c) || (c & 0x80 && isUniAlpha(decodeUTF())));
-
-// sv = stringtable.update((char *)t.ptr, p - t.ptr);
- char[] tmp;
- tmp.length = p - t.ptr;
- memcpy(tmp.ptr, t.ptr, p - t.ptr);
- Identifier id;
- Identifier *pid = tmp in stringtable;
- if (pid)
- {
- id = *pid;
- }
-
- if (id is null)
- {
- id = new Identifier(tmp, TOK.TOKidentifier);
- stringtable[tmp] = id;
- }
-
- t.identifier = id;
- t.value = cast(TOK)id.value;
- anyToken = 1;
-
- // if special identifier token
- if (*t.ptr == '_')
- {
- static char date[11 + 1];
- static char time[8 + 1];
- static char timestamp[24 + 1];
-
- if (!date[0]) // lazy evaluation
- {
- //!!
- /+
- time_t t;
- char *p;
- .time(&t);
- p = ctime(&t);
- assert(p);
- sprintf(date.ptr, "%.6s %.4s", p + 4, p + 20);
- sprintf(time.ptr, "%.8s", p + 11);
- sprintf(timestamp.ptr, "%.24s", p);
- +/
- }
-
- if (mod && id is Id.FILE)
- {
- t.value = TOK.TOKstring;
- if (loc.filename.length)
- t.ustring = loc.filename;
- else
- t.ustring = mod.identifier.toChars();
- goto Llen;
- }
- else if (mod && id == Id.LINE)
- {
- t.value = TOK.TOKint64v;
- t.uns64value = loc.linnum;
- }
- else if (id == Id.DATE)
- {
- t.value = TOK.TOKstring;
- //! t.ustring = date;
- goto Llen;
- }
- else if (id == Id.TIME)
- {
- t.value = TOK.TOKstring;
- //! t.ustring = time;
- goto Llen;
- }
- else if (id == Id.TIMESTAMP)
- {
- t.value = TOK.TOKstring;
- //! t.ustring = timestamp;
- Llen:
- t.postfix = 0;
-// t.len = strlen((char *)t.ustring);
- }
- }
- //printf("t.value = %d\n",t.value);
- return;
- }
-
- // comments
- case '/':
- p++;
- switch (*p)
- {
- case '=':
- p++;
- t.value = TOK.TOKdivass;
- return;
-
- case '*': // '/*'
- p++;
- linnum = loc.linnum;
- while (true)
- {
- while (true)
- {
- ubyte c = *p;
- switch (c)
- {
- case '/':
- break;
-
- case '\n':
- loc.linnum++;
- p++;
- continue;
-
- case '\r':
- p++;
- if (*p != '\n')
- loc.linnum++;
- continue;
-
- case 0:
- case 0x1A:
- error("unterminated /* */ comment");
- p = end;
- t.value = TOK.TOKeof;
- return;
-
- default:
- if (c & 0x80)
- {
- uint u = decodeUTF();
- if (u == PS || u == LS)
- loc.linnum++;
- }
- p++;
- continue;
- }
- break;
- }
- p++;
- if (p[-2] == '*' && p - 3 != t.ptr)
- break;
- }
-
- if (commentToken)
- {
- t.value = TOK.TOKcomment;
- return;
- }
- // if /** but not /**/
- else if (doDocComment && t.ptr[2] == '*' && p - 4 != t.ptr)
- getDocComment(t, lastLine == linnum); //! ?
- continue;
-
- case '/': // do // style comments
- linnum = loc.linnum;
- while (1)
- {
- ubyte c = *++p;
- switch (c)
- {
- case '\n':
- break;
-
- case '\r':
- if (p[1] == '\n')
- p++;
- break;
-
- case 0:
- case 0x1a:
- if (commentToken)
- {
- p = end;
- t.value = TOK.TOKcomment;
- return;
- }
- if (doDocComment && t.ptr[2] == '/')
- getDocComment(t, lastLine == linnum);
- p = end;
- t.value = TOK.TOKeof;
- return;
-
- default:
- if (c & 0x80)
- {
- uint u = decodeUTF();
- if (u == PS || u == LS)
- break;
- }
- continue;
- }
- break;
- }
-
- if (commentToken)
- {
- p++;
- loc.linnum++;
- t.value = TOK.TOKcomment;
- return;
- }
- if (doDocComment && t.ptr[2] == '/')
- getDocComment(t, lastLine == linnum);
-
- p++;
- loc.linnum++;
- continue;
-
- case '+':
- {
- int nest;
- linnum = loc.linnum;
- p++;
- nest = 1;
- while (1)
- {
- ubyte c = *p;
- switch (c)
- {
- case '/':
- p++;
- if (*p == '+')
- {
- p++;
- nest++;
- }
- continue;
-
- case '+':
- p++;
- if (*p == '/')
- {
- p++;
- if (--nest == 0)
- break;
- }
- continue;
-
- case '\r':
- p++;
- if (*p != '\n')
- loc.linnum++;
- continue;
-
- case '\n':
- loc.linnum++;
- p++;
- continue;
-
- case 0:
- case 0x1A:
- error("unterminated /+ +/ comment");
- p = end;
- t.value = TOK.TOKeof;
- return;
-
- default:
- if (c & 0x80)
- {
- uint u = decodeUTF();
- if (u == PS || u == LS)
- loc.linnum++;
- }
- p++;
- continue;
- }
- break;
- }
- if (commentToken)
- {
- t.value = TOK.TOKcomment;
- return;
- }
- if (doDocComment && t.ptr[2] == '+' && p - 4 != t.ptr)
- {
- // if /++ but not /++/
- getDocComment(t, lastLine == linnum);
- }
- continue;
- }
-
- default:
- break;
- }
- t.value = TOK.TOKdiv;
- return;
-
- case '.':
- p++;
- if (isdigit(*p))
- {
- p--;
- t.value = inreal(t);
- }
- else if (p[0] == '.')
- {
- if (p[1] == '.')
- {
- p += 2;
- t.value = TOK.TOKdotdotdot;
- }
- else
- {
- p++;
- t.value = TOK.TOKslice;
- }
- }
- else
- t.value = TOK.TOKdot;
- return;
-
- case '&':
- p++;
- if (*p == '=')
- {
- p++;
- t.value = TOK.TOKandass;
- }
- else if (*p == '&')
- {
- p++;
- t.value = TOK.TOKandand;
- }
- else
- t.value = TOK.TOKand;
- return;
-
- // |, ||, |=
- case '|':
- p++;
- if (*p == '=')
- {
- p++;
- t.value = TOK.TOKorass;
- }
- else if (*p == '|')
- {
- p++;
- t.value = TOK.TOKoror;
- }
- else
- t.value = TOK.TOKor;
- return;
-
- case '-':
- p++;
- if (*p == '=')
- {
- p++;
- t.value = TOK.TOKminass;
- }
- else if (*p == '-')
- {
- p++;
- t.value = TOK.TOKminusminus;
- }
- else
- t.value = TOK.TOKmin;
- return;
-
- // +, +=, ++
- case '+':
- p++;
- if (*p == '=')
- {
- p++;
- t.value = TOK.TOKaddass; // +=
- }
- else if (*p == '+')
- {
- p++;
- t.value = TOK.TOKplusplus; // ++
- }
- else
- t.value = TOK.TOKadd; // +
- return;
-
- // <, <=, <<=, <<, <>=, <>
- case '<':
- p++;
- if (*p == '=')
- {
- p++;
- t.value = TOK.TOKle; // <=
- }
- else if (*p == '<')
- {
- p++;
- if (*p == '=')
- {
- p++;
- t.value = TOK.TOKshlass; // <<=
- }
- else
- t.value = TOK.TOKshl; // <<
- }
- else if (*p == '>')
- {
- p++;
- if (*p == '=')
- {
- p++;
- t.value = TOK.TOKleg; // <>=
- }
- else
- t.value = TOK.TOKlg; // <>
- }
- else
- t.value = TOK.TOKlt; // <
- return;
-
- // >, >>, >>>, >=, >>=, >>>=
- case '>':
- p++;
- if (*p == '=')
- {
- p++;
- t.value = TOK.TOKge; // >=
- }
- else if (*p == '>')
- {
- p++;
- if (*p == '=')
- {
- p++;
- t.value = TOK.TOKshrass; // >>=
- }
- else if (*p == '>')
- {
- p++;
- if (*p == '=')
- {
- p++;
- t.value = TOK.TOKushrass; // >>>=
- }
- else
- t.value = TOK.TOKushr; // >>>
- }
- else
- t.value = TOK.TOKshr; // >>
- }
- else
- t.value = TOK.TOKgt; // >
- return;
-
- case '!':
- p++;
- if (*p == '=')
- {
- p++;
- if (*p == '=')
- {
- p++;
- t.value = TOK.TOKnotidentity; // !==
- }
- else
- t.value = TOK.TOKnotequal; // !=
- }
- else if (*p == '<')
- {
- p++;
- if (*p == '>')
- {
- p++;
- if (*p == '=')
- {
- p++;
- t.value = TOK.TOKunord; // !<>=
- }
- else
- t.value = TOK.TOKue; // !<>
- }
- else if (*p == '=')
- {
- p++;
- t.value = TOK.TOKug; // !<=
- }
- else
- t.value = TOK.TOKuge; // !<
- }
- else if (*p == '>')
- {
- p++;
- if (*p == '=')
- {
- p++;
- t.value = TOK.TOKul; // !>=
- }
- else
- t.value = TOK.TOKule; // !>
- }
- else
- t.value = TOK.TOKnot; // !
- return;
-
- case '=':
- p++;
- if (*p == '=')
- {
- p++;
- if (*p == '=')
- {
- p++;
- t.value = TOK.TOKidentity; // ===
- }
- else
- t.value = TOK.TOKequal; // ==
- }
- else
- t.value = TOK.TOKassign; // =
- return;
-
- case '~':
- p++;
- if (*p == '=')
- {
- p++;
- t.value = TOK.TOKcatass; // ~=
- }
- else
- t.value = TOK.TOKtilde; // ~
- return;
-
- // SINGLE
- case '(': p++; t.value = TOK.TOKlparen; return;
-
- case ')': p++; t.value = TOK.TOKrparen; return;
-
- case '[': p++; t.value = TOK.TOKlbracket; return;
-
- case ']': p++; t.value = TOK.TOKrbracket; return;
-
- case '{': p++; t.value = TOK.TOKlcurly; return;
-
- case '}': p++; t.value = TOK.TOKrcurly; return;
-
- case '?': p++; t.value = TOK.TOKquestion; return;
-
- case ',': p++; t.value = TOK.TOKcomma; return;
-
- case ';': p++; t.value = TOK.TOKsemicolon; return;
-
- case ':': p++; t.value = TOK.TOKcolon; return;
-
- case '$': p++; t.value = TOK.TOKdollar; return;
-
- // DOUBLE
- case '*': p++; if (*p == '=')
- {
- p++; t.value = TOK.TOKmulass;
- }
- else
- t.value = TOK.TOKmul;
- return;
-
- case '%': p++; if (*p == '=')
- {
- p++; t.value = TOK.TOKmodass;
- }
- else
- t.value = TOK.TOKmod;
- return;
-
- case '^': p++; if (*p == '=')
- {
- p++; t.value = TOK.TOKxorass;
- }
- else
- t.value = TOK.TOKxor;
- return;
-
-// removed 148 case '~': p++; if( *p == '=' ) { p++; t.value = TOK.TOKcatass; } else t.value = TOK.TOKtilde; return;
-
-
- case '#':
- p++;
- Pragma();
- continue;
-
- default:
- {
- debug writefln(" default char");
- ubyte c = *p;
- if (c & 0x80)
- {
- uint u = decodeUTF();
- // Check for start of unicode identifier
- if (isUniAlpha(u))
- goto case_identifier;
-
- if (u == PS || u == LS)
- {
- loc.linnum++;
- p++;
- continue;
- }
- }
- if (isprint(c))
- error("unsupported char '%s'", cast(char)c);
- else
- error("unsupported char 0x%02x", cast(ubyte)c);
- p++;
- continue;
- }
- }
- }
- }
-
-
-
- // Parse escape sequence.
- uint escapeSequence()
- {
- uint c;
- int n;
- int ndigits;
-
- c = *p;
- switch (c)
- {
- case '\'':
- case '"':
- case '?':
- case '\\':
- Lconsume:
- p++;
- break;
-
- case 'a': c = 7; goto Lconsume;
-
- case 'b': c = 8; goto Lconsume;
-
- case 'f': c = 12; goto Lconsume;
-
- case 'n': c = 10; goto Lconsume;
-
- case 'r': c = 13; goto Lconsume;
-
- case 't': c = 9; goto Lconsume;
-
- case 'v': c = 11; goto Lconsume;
-
- case 'u':
- ndigits = 4;
- goto Lhex;
-
- case 'U':
- ndigits = 8;
- goto Lhex;
-
- case 'x':
- ndigits = 2;
- Lhex:
- p++;
- c = *p;
- if (ishex(c))
- {
- uint v;
- n = 0;
- v = 0;
- while (1)
- {
- if (isdigit(c))
- c -= '0';
- else if (islower(c))
- c -= 'a' - 10;
- else
- c -= 'A' - 10;
- v = v * 16 + c;
- c = *++p;
- if (++n == ndigits)
- break;
- if (!ishex(c))
- {
- error("escape hex sequence has %d hex digits instead of %d", n, ndigits);
- break;
- }
- }
-//! if( ndigits != 2 && !utf_isValidDchar(v))
-//! error("invalid UTF character \\U%08x", v);
- c = v;
- }
- else
- error("undefined escape hex sequence \\%s\n", c);
- break;
-
- case '&': // named character entity
- for (ubyte *idstart = ++p; 1; p++)
- {
- switch (*p)
- {
- case ';':
- //!!!
- /+
- c = HtmlNamedEntity(idstart, p - idstart);
- if( c == ~0 )
- {
- error("unnamed character entity &%.*s;", p - idstart, idstart);
- c = ' ';
- }
-
- p++;
- +/
- break;
-
- default:
- if (isalpha(*p) || (p != idstart + 1 && isdigit(*p)))
- continue;
- error("unterminated named entity");
- break;
- }
- break;
- }
- break;
-
- case 0:
- case 0x1a: // end of file
- c = '\\';
- break;
-
- default:
- if (isoctal(c))
- {
- ubyte v;
- n = 0;
- do
- {
- v = v * 8 + (c - '0');
- c = *++p;
- } while (++n < 3 && isoctal(c));
- c = v;
- }
- else
- error("undefined escape sequence \\%s\n", c);
- break;
- }
- return c;
- }
-
- /**************************************
- */
-
- TOK wysiwygStringConstant(Token *t, int tc)
- {
- uint c;
- Loc start = loc;
-
- p++;
- stringbuffer.offset = 0;
- while (1)
- {
- c = *p++;
- switch (c)
- {
- case '\n':
- loc.linnum++;
- break;
-
- case '\r':
- if (*p == '\n')
- continue; // ignore
- c = '\n'; // treat EndOfLine as \n character
- loc.linnum++;
- break;
-
- case 0:
- case 0x1a:
- error("unterminated string constant starting at %s", start.toChars());
- t.ustring = "";
- t.postfix = 0;
- return TOK.TOKstring;
-
- case '"':
- case '`':
- if (c == tc)
- {
-// t.len = stringbuffer.offset;
- stringbuffer.write(cast(byte)0);
- t.ustring = stringbuffer.toString;
-// t.ustring = (ubyte *)mem.malloc(stringbuffer.offset);
-// memcpy(t.ustring, stringbuffer.data, stringbuffer.offset);
- stringPostfix(t);
- return TOK.TOKstring;
- }
- break;
-
- default:
- if (c & 0x80)
- {
- p--;
- uint u = decodeUTF();
- p++;
- if (u == PS || u == LS)
- loc.linnum++;
- stringbuffer.write(u);
- continue;
- }
- break;
- }
- stringbuffer.write(c);
- }
- }
-
- /**************************************
- * Lex hex strings:
- * x"0A ae 34FE BD"
- */
-
- TOK hexStringConstant(Token *t)
- {
- uint c;
- Loc start = loc;
- uint n = 0;
- uint v;
-
- p++;
- stringbuffer.offset = 0;
- while (1)
- {
- c = *p++;
- switch (c)
- {
- case ' ':
- case '\t':
- case '\v':
- case '\f':
- continue; // skip white space
-
- case '\r':
- if (*p == '\n')
- continue; // ignore
-
- // Treat isolated '\r' as if it were a '\n'
- case '\n':
- loc.linnum++;
- continue;
-
- case 0:
- case 0x1a:
- error("unterminated string constant starting at %s", start.toChars());
- t.ustring = "";
- t.postfix = 0;
- return TOK.TOKstring;
-
- case '"':
- if (n & 1)
- {
- error("odd number (%d) of hex characters in hex string", n);
- stringbuffer.write(v);
- }
-// t.len = stringbuffer.offset;
-// stringbuffer.write(cast(byte)0);
- t.ustring = stringbuffer.toString;
-// t.ustring = (ubyte *)mem.malloc(stringbuffer.offset);
-// memcpy(t.ustring, stringbuffer.data, stringbuffer.offset);
- stringPostfix(t);
- return TOK.TOKstring;
-
- default:
- if (c >= '0' && c <= '9')
- c -= '0';
- else if (c >= 'a' && c <= 'f')
- c -= 'a' - 10;
- else if (c >= 'A' && c <= 'F')
- c -= 'A' - 10;
- else if (c & 0x80)
- {
- p--;
- uint u = decodeUTF();
- p++;
- if (u == PS || u == LS)
- loc.linnum++;
- else
- error("non-hex character \\u%x", u);
- }
- else
- error("non-hex character '%s'", c);
- if (n & 1)
- {
- v = (v << 4) | c;
- stringbuffer.write(v);
- }
- else
- v = c;
- n++;
- break;
- }
- }
- }
-
- /**************************************
- */
-
- TOK escapeStringConstant(Token *t, int wide)
- {
- uint c;
- Loc start = loc;
-
- p++;
- stringbuffer.offset = 0;
- // debug writefln( "escape string constant: %s", std.string.toString( cast(char*)p ) );
- while (1)
- {
- c = *p++;
- switch (c)
- {
- case '\\':
- switch (*p)
- {
- case 'u':
- case 'U':
- case '&':
- c = escapeSequence();
- stringbuffer.write(c);
- continue;
-
- default:
- c = escapeSequence();
- break;
- }
- break;
-
- case '\n':
- loc.linnum++;
- break;
-
- case '\r':
- if (*p == '\n')
- continue; // ignore
- c = '\n'; // treat EndOfLine as \n character
- loc.linnum++;
- break;
-
- case '"':
-// writefln( "end of string: ", stringbuffer.toString );
- t.ustring = stringbuffer.toString().dup;
- // t.len = stringbuffer.offset;
- // stringbuffer.write(cast(byte)0);
- // t.ustring = (ubyte *)mem.malloc(stringbuffer.offset);
- // memcpy(t.ustring, stringbuffer.data, stringbuffer.offset);
- stringPostfix(t);
-
- return TOK.TOKstring;
-
- case 0:
- case 0x1a:
- p--;
- error("unterminated string constant starting at %s", start.toChars());
- t.ustring = "";
-// t.len = 0;
- t.postfix = 0;
- return TOK.TOKstring;
-
- default:
- if (c & 0x80)
- {
- p--;
- c = decodeUTF();
- if (c == LS || c == PS)
- {
- c = '\n';
- loc.linnum++;
- }
- p++;
- stringbuffer.write(cast(char)c);
- continue;
- }
- break;
- }
- stringbuffer.write(cast(char)c);
-// writefln( stringbuffer.toString );
- }
- }
-
- //**************************************
- TOK charConstant(Token *t, int wide)
- {
- uint c;
- TOK tk = TOK.TOKcharv;
-
- //printf("Lexer.charConstant\n");
- p++;
- c = *p++;
- switch (c)
- {
- case '\\':
- switch (*p)
- {
- case 'u':
- t.uns64value = escapeSequence();
- tk = TOK.TOKwcharv;
- break;
-
- case 'U':
- case '&':
- t.uns64value = escapeSequence();
- tk = TOK.TOKdcharv;
- break;
-
- default:
- t.uns64value = escapeSequence();
- break;
- }
- break;
-
- case '\n':
- L1:
- loc.linnum++;
-
- case '\r':
- case 0:
- case 0x1a:
- case '\'':
- error("unterminated character constant");
- return tk;
-
- default:
- if (c & 0x80)
- {
- p--;
- c = decodeUTF();
- p++;
- if (c == LS || c == PS)
- goto L1;
- if (c < 0xd800 || (c >= 0xe000 && c < 0xfffe))
- tk = TOK.TOKwcharv;
- else
- tk = TOK.TOKdcharv;
- }
- t.uns64value = c;
- break;
- }
-
- if (*p != '\'')
- {
- error("unterminated character constant");
- return tk;
- }
- p++;
- return tk;
- }
-
- // Get postfix of string literal.
- void stringPostfix(Token *t)
- {
- switch (*p)
- {
- case 'c':
- case 'w':
- case 'd':
- t.postfix = *p;
- p++;
- break;
-
- default:
- t.postfix = 0;
- break;
- }
- }
-
- /***************************************
- * Read \u or \U unicode sequence
- * Input:
- * u 'u' or 'U'
- */
- /*
- uint Wchar(uint u)
- {
- uint value;
- uint n;
- ubyte c;
- uint nchars;
-
- nchars = (u == 'U') ? 8 : 4;
- value = 0;
- for (n = 0; 1; n++)
- {
- ++p;
- if( n == nchars)
- break;
- c = *p;
- if( !ishex(c))
- {
- error("\\%s sequence must be followed by %d hex characters", u, nchars);
- break;
- }
- if( isdigit(c))
- c -= '0';
- else if( islower(c))
- c -= 'a' - 10;
- else
- c -= 'A' - 10;
- value <<= 4;
- value |= c;
- }
- return value;
- }
- */
-
- /**************************************
- * Read in a number.
- * If it's an integer, store it in tok.TKutok.Vlong.
- * integers can be decimal, octal or hex
- * Handle the suffixes U, UL, LU, L, etc.
- * If it's double, store it in tok.TKutok.Vdouble.
- * Returns:
- * TKnum
- * TKdouble,...
- */
-
- TOK number(Token *t)
- {
- //debug writefln("Lexer.number()");
- // We use a state machine to collect numbers
- enum STATE
- {
- STATE_initial,
- STATE_0,
- STATE_decimal,
- STATE_octal,
- STATE_octale,
- STATE_hex,
- STATE_binary,
- STATE_hex0,
- STATE_binary0,
- STATE_hexh,
- STATE_error
- }
-
- enum FLAGS
- {
- FLAGS_decimal = 1, // decimal
- FLAGS_unsigned = 2, // u or U suffix
- FLAGS_long = 4, // l or L suffix
- }
- FLAGS flags = FLAGS.FLAGS_decimal;
-
- int i;
- TOK result;
- int base;
-
- stringbuffer.offset = 0;
-// stringbuffer.data = null;
- STATE state = STATE.STATE_initial;
- ubyte *start = p;
-
- TOK _isreal()
- {
- p = start;
- return inreal(t);
- }
-
- while (true)
- {
- char c = cast(char)*p;
- switch (state)
- {
- case STATE.STATE_initial: // opening state
- if (c == '0')
- state = STATE.STATE_0;
- else
- state = STATE.STATE_decimal;
- break;
-
- case STATE.STATE_0:
- flags = cast(FLAGS)(flags & ~FLAGS.FLAGS_decimal);
- switch (c)
- {
- // #if ZEROH
-// case 'H': // 0h
-// case 'h':
-// goto hexh;
- // #endif
- case 'X':
- case 'x':
- state = STATE.STATE_hex0;
- break;
-
- case '.':
- if (p[1] == '.') // .. is a separate token
- goto done;
-
- case 'i':
- case 'f':
- case 'F':
- goto _Real;
-
- // #if ZEROH
-// case 'E':
-// case 'e':
-// goto case_hex;
- // #endif
- case 'B':
- case 'b':
- state = STATE.STATE_binary0;
- break;
-
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- state = STATE.STATE_octal;
- break;
-
- // #if ZEROH
-// case '8': case '9': case 'A':
-// case 'C': case 'D': case 'F':
-// case 'a': case 'c': case 'd': case 'f':
-// case_hex:
-// state = STATE.STATE_hexh;
-// break;
- // #endif
- case '_':
- state = STATE.STATE_octal;
- p++;
- continue;
-
- default:
- goto done;
- }
- break;
-
- case STATE.STATE_decimal: // reading decimal number
-
- // if its not a digit - decimal complete or not a decimal
- if (!isdigit(c))
- {
-// debug writefln( "\tnon-digit( %s )", c );
- // #if ZEROH
-// if( ishex(c) || c == 'H' || c == 'h' )
-// goto hexh;
- // #endif
- //! wtf ?
- // ignore embedded _
- if (c == '_')
- {
- p++;
- continue;
- }
-
- // check decimal point - make real
- if (c == '.' && p[1] != '.')
- goto _Real;
-
- // check for mantra - make real
- if (c == 'i' || c == 'f' || c == 'F' || c == 'e' || c == 'E')
- {
- _Real: // It's a real number. Back up and rescan as a real
- p = start;
- return inreal(t);
- }
-
- goto done;
- }
- break;
-
- case STATE.STATE_hex0: // reading hex number
- case STATE.STATE_hex:
- if (!ishex(c))
- {
- if (c == '_') // ignore embedded _
- {
- p++;
- continue;
- }
- if (c == '.' && p[1] != '.')
- goto _Real;
- if (c == 'P' || c == 'p' || c == 'i')
- goto _Real;
- if (state == STATE.STATE_hex0)
- error("Hex digit expected, not '%s'", c);
- goto done;
- }
- state = STATE.STATE_hex;
- break;
-
- // #if ZEROH
-// hexh:
-// state = STATE.STATE_hexh;
-//
-// case STATE.STATE_hexh: // parse numbers like 0FFh
-// if( !ishex(c))
-// {
-// if( c == 'H' || c == 'h')
-// {
-// p++;
-// base = 16;
-// goto done;
-// }
-// else
-// {
-// // Check for something like 1E3 or 0E24
-// if( memchr(stringbuffer.data.ptr, 'E', stringbuffer.offset) || memchr( stringbuffer.data.ptr, 'e', stringbuffer.offset))
-// goto _Real;
-// error("Hex digit expected, not '%s'", c);
-// goto done;
-// }
-// }
-// break;
- // #endif
-
- case STATE.STATE_octal: // reading octal number
- case STATE.STATE_octale: // reading octal number with non-octal digits
- if (!isoctal(c))
- {
-// #if ZEROH
-// if( ishex(c) || c == 'H' || c == 'h' )
-// goto hexh;
-// #endif
- if (c == '_') // ignore embedded _
- {
- p++;
- continue;
- }
- if (c == '.' && p[1] != '.')
- goto _Real;
- if (c == 'i')
- goto _Real;
- if (isdigit(c))
- state = STATE.STATE_octale;
- else
- goto done;
- }
- break;
-
- case STATE.STATE_binary0: // starting binary number
- case STATE.STATE_binary: // reading binary number
- if (c != '0' && c != '1')
- {
- // #if ZEROH
-// if( ishex(c) || c == 'H' || c == 'h' )
-// goto hexh;
- // #endif
- if (c == '_') // ignore embedded _
- {
- p++;
- continue;
- }
- if (state == STATE.STATE_binary0)
- {
- error("binary digit expected");
- state = STATE.STATE_error;
- break;
- }
- else
- goto done;
- }
- state = STATE.STATE_binary;
- break;
-
- case STATE.STATE_error: // for error recovery
- if (!isdigit(c)) // scan until non-digit
- goto done;
- break;
-
- default:
- assert(0);
- }
- stringbuffer.write(cast(char)c);
- p++;
- }
- done:
- stringbuffer.write(cast(char)0); // terminate string
-
-// debug writefln( "\tdigit complete( %s )", stringbuffer.toString );
-
- if (state == STATE.STATE_octale)
- error("Octal digit expected");
-
- uinteger_t n; // unsigned >=64 bit integer type
-
- if (stringbuffer.offset == 2 && (state == STATE.STATE_decimal || state == STATE.STATE_0))
- n = stringbuffer.data[0] - '0';
- else
- {
- // Convert string to integer
- char *p = cast(char *)stringbuffer.data.ptr;
- int r = 10;
- int d;
- if (*p == '0')
- {
- if (p[1] == 'x' || p[1] == 'X')
- {
- // "0x#"
- p += 2;
- r = 16;
- }
- else if (p[1] == 'b' || p[1] == 'B')
- {
- // "0b#" - binary
- p += 2;
- r = 2;
- }
- else if (isdigit(p[1]))
- {
- p += 1;
- r = 8;
- }
- }
-
- n = 0;
-
- while (true)
- {
- if (*p >= '0' && *p <= '9')
- d = *p - '0';
- else if (*p >= 'a' && *p <= 'z')
- d = *p - 'a' + 10;
- else if (*p >= 'A' && *p <= 'Z')
- d = *p - 'A' + 10;
- else
- break;
-
- if (d >= r)
- break;
-
- if (n * r + d < n)
- {
- error("integer overflow");
- break;
- }
-
- n = n * r + d;
- p++;
- }
-
- // if n needs more than 64 bits
- if (n.sizeof > 8 && n > 0xffffffffffffffffL)
- error("integer overflow");
- }
-
- // Parse trailing 'u', 'U', 'l' or 'L' in any combination
- while (true)
- {
- ubyte f;
- switch (*p)
- {
- case 'U':
- case 'u':
- f = FLAGS.FLAGS_unsigned;
- goto L1;
-
- case 'L':
- case 'l':
- f = FLAGS.FLAGS_long;
- L1:
- p++;
- if (flags & f)
- error("unrecognized token");
- flags = cast(FLAGS)(flags | f);
- continue;
-
- default:
- break;
- }
- break;
- }
-
- switch (flags)
- {
- case 0:
- /* Octal or Hexadecimal constant.
- * First that fits: int, uint, long, ulong
- */
- if (n & 0x8000000000000000L)
- result = TOK.TOKuns64v;
- else if (n & 0xffffffff00000000L)
- result = TOK.TOKint64v;
- else if (n & 0x80000000)
- result = TOK.TOKuns32v;
- else
- result = TOK.TOKint32v;
- break;
-
- case FLAGS.FLAGS_decimal:
- /* First that fits: int, long, long long
- */
- if (n & 0x8000000000000000L)
- {
- error("signed integer overflow");
- result = TOK.TOKuns64v;
- }
- else if (n & 0xffffffff80000000L)
- result = TOK.TOKint64v;
- else
- result = TOK.TOKint32v;
- break;
-
- case FLAGS.FLAGS_unsigned:
- case FLAGS.FLAGS_decimal | FLAGS.FLAGS_unsigned:
- /* First that fits: uint, ulong
- */
- if (n & 0xffffffff00000000L)
- result = TOK.TOKuns64v;
- else
- result = TOK.TOKuns32v;
- break;
-
- case FLAGS.FLAGS_decimal | FLAGS.FLAGS_long:
- if (n & 0x8000000000000000L)
- {
- error("signed integer overflow");
- result = TOK.TOKuns64v;
- }
- else
- result = TOK.TOKint64v;
- break;
-
- case FLAGS.FLAGS_long:
- if (n & 0x8000000000000000L)
- result = TOK.TOKuns64v;
- else
- result = TOK.TOKint64v;
- break;
-
- case FLAGS.FLAGS_unsigned | FLAGS.FLAGS_long:
- case FLAGS.FLAGS_decimal | FLAGS.FLAGS_unsigned | FLAGS.FLAGS_long:
- result = TOK.TOKuns64v;
- break;
-
- default:
- debug writefln("%x", flags);
- assert(0);
- }
- t.uns64value = n;
- return result;
- }
-
- /**************************************
- * Read in characters, converting them to real.
- * Bugs:
- * Exponent overflow not detected.
- * Too much requested precision is not detected.
- */
-
- TOK inreal(Token *t)
- {
- int dblstate;
- uint c;
- char hex; // is this a hexadecimal-floating-constant?
- TOK result;
-
- //printf("Lexer.inreal()\n");
- stringbuffer.offset = 0;
- dblstate = 0;
- hex = 0;
- Lnext:
- while (1)
- {
- // Get next char from input
- c = *p++;
- //printf("dblstate = %d, c = '%s'\n", dblstate, c);
- while (1)
- {
- switch (dblstate)
- {
- case 0: // opening state
- if (c == '0')
- dblstate = 9;
- else if (c == '.')
- dblstate = 3;
- else
- dblstate = 1;
- break;
-
- case 9:
- dblstate = 1;
- if (c == 'X' || c == 'x')
- {
- hex++;
- break;
- }
-
- case 1: // digits to left of .
- case 3: // digits to right of .
- case 7: // continuing exponent digits
- if (!isdigit(c) && !(hex && isxdigit(c)))
- {
- if (c == '_')
- goto Lnext; // ignore embedded '_'
- dblstate++;
- continue;
- }
- break;
-
- case 2: // no more digits to left of .
- if (c == '.')
- {
- dblstate++;
- break;
- }
-
- case 4: // no more digits to right of .
- if ((c == 'E' || c == 'e') || hex && (c == 'P' || c == 'p'))
- {
- dblstate = 5;
- hex = 0; // exponent is always decimal
- break;
- }
- if (hex)
- error("binary-exponent-part required");
- goto done;
-
- case 5: // looking immediately to right of E
- dblstate++;
- if (c == '-' || c == '+')
- break;
-
- case 6: // 1st exponent digit expected
- if (!isdigit(c))
- error("exponent expected");
- dblstate++;
- break;
-
- case 8: // past end of exponent digits
- goto done;
- }
- break;
- }
- stringbuffer.write(c);
- }
- done:
- p--;
-
- stringbuffer.write(cast(byte)0);
-
-// #if _WIN32 && __DMC__
- char *save = __locale_decpoint;
-
- __locale_decpoint = ".";
-// #endif
- t.float80value = strtold(cast(char *)stringbuffer.data.ptr, null);
- errno = 0;
- switch (*p)
- {
- case 'F':
- case 'f':
- strtof(cast(char *)stringbuffer.data.ptr, null);
- result = TOK.TOKfloat32v;
- p++;
- break;
-
- default:
- strtod(cast(char *)stringbuffer.data.ptr, null);
- result = TOK.TOKfloat64v;
- break;
-
- case 'L':
- case 'l':
- result = TOK.TOKfloat80v;
- p++;
- break;
- }
- if (*p == 'i' || *p == 'I')
- {
- p++;
- switch (result)
- {
- case TOK.TOKfloat32v:
- result = TOK.TOKimaginary32v;
- break;
-
- case TOK.TOKfloat64v:
- result = TOK.TOKimaginary64v;
- break;
-
- case TOK.TOKfloat80v:
- result = TOK.TOKimaginary80v;
- break;
- }
- }
-// #if _WIN32 && __DMC__
- __locale_decpoint = save;
-// #endif
- if (errno == ERANGE)
- error("number is not representable");
- return result;
- }
-
-
-
-
- /*********************************************
- * Do pragma.
- * Currently, the only pragma supported is:
- * #line linnum [filespec]
- */
-
- void Pragma()
- {
- Token tok;
- int linnum;
-
- char[] filespec;
- Loc loc = this.loc;
-
- scan(&tok);
-
- if (tok.value != TOK.TOKidentifier || tok.identifier != Id.line)
- goto Lerr;
-
- scan(&tok);
- if (tok.value == TOK.TOKint32v || tok.value == TOK.TOKint64v)
- linnum = tok.uns64value - 1;
- else
- goto Lerr;
-
- while (1)
- {
- switch (*p)
- {
- case 0:
- case 0x1a:
- case '\n':
- Lnewline:
- this.loc.linnum = linnum;
- if (filespec.length)
- this.loc.filename = filespec;
- return;
-
- case '\r':
- p++;
- if (*p != '\n')
- {
- p--;
- goto Lnewline;
- }
- continue;
-
- case ' ':
- case '\t':
- case '\v':
- case '\f':
- p++;
- continue; // skip white space
-
- case '_':
- if (mod && memcmp(p, cast(char *)"__FILE__", 8) == 0)
- {
- p += 8;
-//! filespec = mem.strdup(loc.filename ? loc.filename : mod.identifier.toChars());
- }
- continue;
-
- case '"':
- if (filespec)
- goto Lerr;
- stringbuffer.offset = 0;
- p++;
- while (1)
- {
- uint c;
- c = *p;
- switch (c)
- {
- case '\n':
- case '\r':
- case 0:
- case 0x1a:
- goto Lerr;
-
- case '"':
- stringbuffer.write(cast(byte)0);
- // filespec = mem.strdup((char *)stringbuffer.data);
- filespec = stringbuffer.toString.dup;
- p++;
- break;
-
- default:
- if (c & 0x80)
- {
- uint u = decodeUTF();
- if (u == PS || u == LS)
- goto Lerr;
- }
- stringbuffer.write(c);
- p++;
- continue;
- }
- break;
- }
- continue;
-
- default:
- if (*p & 0x80)
- {
- uint u = decodeUTF();
- if (u == PS || u == LS)
- goto Lnewline;
- }
- goto Lerr;
- }
- }
-
- Lerr:
- errorLoc(loc, "#line integer [\"filespec\"]\\n expected");
- }
-
-
-
- /***************************************************
- * Parse doc comment embedded between t.ptr and p.
- * Remove trailing blanks and tabs from lines.
- * Replace all newlines with \n.
- * Remove leading comment character from each line.
- * Decide if it's a lineComment or a blockComment.
- * Append to previous one for this token.
- */
-
- void getDocComment(Token *t, uint lineComment)
- {
- auto OutBuffer buf = new OutBuffer;
- ubyte ct = t.ptr[2];
- ubyte *q = t.ptr + 3; // start of comment text
- int linestart = 0;
-
- ubyte *qend = p;
-
- if (ct == '*' || ct == '+')
- qend -= 2;
-
- // Scan over initial row of ****'s or ++++'s or ////'s
- for (; q < qend; q++)
- {
- if (*q != ct)
- break;
- }
-
- // Remove trailing row of ****'s or ++++'s
- if (ct != '/')
- {
- for (; q < qend; qend--)
- {
- if (qend[-1] != ct)
- break;
- }
- }
-
- for (; q < qend; q++)
- {
- ubyte c = *q;
-
- switch (c)
- {
- case '*':
- case '+':
- if (linestart && c == ct)
- {
- linestart = 0;
- // Trim preceding whitespace up to preceding \n
- while (buf.offset && (buf.data[buf.offset - 1] == ' ' || buf.data[buf.offset - 1] == '\t'))
- buf.offset--;
- continue;
- }
- break;
-
- case ' ':
- case '\t':
- break;
-
- case '\r':
- if (q[1] == '\n')
- continue; // skip the \r
- goto Lnewline;
-
- default:
- if (c == 226)
- {
- // If LS or PS
- if (q[1] == 128 &&
- (q[2] == 168 || q[2] == 169))
- {
- q += 2;
- goto Lnewline;
- }
- }
- linestart = 0;
- break;
-
- Lnewline:
- c = '\n'; // replace all newlines with \n
-
- case '\n':
- linestart = 1;
-
- // Trim trailing whitespace
- while (buf.offset && (buf.data[buf.offset - 1] == ' ' || buf.data[buf.offset - 1] == '\t'))
- buf.offset--;
-
- break;
- }
- buf.write(c);
- }
-
- // Always end with a newline
- if (!buf.offset || buf.data[buf.offset - 1] != '\n')
- buf.writenl();
-
- //buf.write(cast(char)0);
-
- // It's a line comment if the start of the doc comment comes
- // after other non-whitespace on the same line.
-// ubyte** dc = (lineComment && anyToken)
-// ? &t.lineComment
-// : &t.blockComment;
-
- char[] dc = (lineComment && anyToken) ? t.lineComment : t.blockComment;
-
- // Combine with previous doc comment, if any
- if (dc.length)
- dc = combineComments(dc, buf.toString().dup);
- else
- dc = buf.toString().dup;
-
-// writefln( dc );
-
- if (lineComment && anyToken)
- t.lineComment = dc;
- else
- t.blockComment = dc;
- }
-}
-
-// character maps
-static ubyte[256] cmtable;
-
-const int CMoctal = 0x1;
-const int CMhex = 0x2;
-const int CMidchar = 0x4;
-
-ubyte isoctal(ubyte c)
-{
- return cmtable[c] & CMoctal;
-}
-ubyte ishex(ubyte c)
-{
- return cmtable[c] & CMhex;
-}
-ubyte isidchar(ubyte c)
-{
- return cmtable[c] & CMidchar;
-}
-
-static void cmtable_init()
-{
- for (uint c = 0; c < cmtable.length; c++)
- {
- if ('0' <= c && c <= '7')
- cmtable[c] |= CMoctal;
- if (isdigit(c) || ('a' <= c && c <= 'f') || ('A' <= c && c <= 'F'))
- cmtable[c] |= CMhex;
- if (isalnum(c) || c == '_')
- cmtable[c] |= CMidchar;
- }
-}
-
-
-/+
- struct StringValue
- {
- union
- {
- int intvalue;
- void *ptrvalue;
- dchar *string;
- }
-
- char[] lstring;
- }
- #define CASE_BASIC_TYPES
- case TOKwchar: case TOKdchar:
- case TOKbit: case TOKbool: case TOKchar:
- case TOKint8: case TOKuns8:
- case TOKint16: case TOKuns16:
- case TOKint32: case TOKuns32:
- case TOKint64: case TOKuns64:
- case TOKfloat32: case TOKfloat64: case TOKfloat80:
- case TOKimaginary32: case TOKimaginary64: case TOKimaginary80:
- case TOKcomplex32: case TOKcomplex64: case TOKcomplex80:
- case TOKvoid:
-
- #define CASE_BASIC_TYPES_X(t) \
- case TOKvoid: t = Type::tvoid; goto LabelX; \
- case TOKint8: t = Type::tint8; goto LabelX; \
- case TOKuns8: t = Type::tuns8; goto LabelX; \
- case TOKint16: t = Type::tint16; goto LabelX; \
- case TOKuns16: t = Type::tuns16; goto LabelX; \
- case TOKint32: t = Type::tint32; goto LabelX; \
- case TOKuns32: t = Type::tuns32; goto LabelX; \
- case TOKint64: t = Type::tint64; goto LabelX; \
- case TOKuns64: t = Type::tuns64; goto LabelX; \
- case TOKfloat32: t = Type::tfloat32; goto LabelX; \
- case TOKfloat64: t = Type::tfloat64; goto LabelX; \
- case TOKfloat80: t = Type::tfloat80; goto LabelX; \
- case TOKimaginary32: t = Type::timaginary32; goto LabelX; \
- case TOKimaginary64: t = Type::timaginary64; goto LabelX; \
- case TOKimaginary80: t = Type::timaginary80; goto LabelX; \
- case TOKcomplex32: t = Type::tcomplex32; goto LabelX; \
- case TOKcomplex64: t = Type::tcomplex64; goto LabelX; \
- case TOKcomplex80: t = Type::tcomplex80; goto LabelX; \
- case TOKbit: t = Type::tbit; goto LabelX; \
- case TOKchar: t = Type::tchar; goto LabelX; \
- case TOKwchar: t = Type::twchar; goto LabelX; \
- case TOKdchar: t = Type::tdchar; goto LabelX; \
- LabelX
- +/
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40021-tst01.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40021-tst01.d
deleted file mode 100644
index e19c7c8e..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40021-tst01.d
+++ /dev/null
@@ -1,25 +0,0 @@
-package void writeRegister(int aRegisterOffset, ushort aValue)
-in
-{
- assert(aRegisterOffset >= 0);
- assert(aRegisterOffset < IMAGE_SIZE);
-}
-body {
- int idx = aRegisterOffset / 2;
- mMemCache[idx] = aValue;
- uint readback;
- uint st;
- uint st2;
- volatile {
- mMemImage[idx] = aValue;
- //readback = (cast(uint*)mMemImage.ptr)[ idx/2 ];
- //st = mMemImage[ 0x28/2 ];
- //st2 = mMemImage[ 0x2A/2 ];
- }
- //if( aValue != readback )
- {
- //debug(IRQ) writefln( "writeRegister %04x, %04x", aRegisterOffset, aValue);
- }
- // comment
-}
-//
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40030-delegate.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40030-delegate.d
deleted file mode 100644
index 5f7beceb..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40030-delegate.d
+++ /dev/null
@@ -1,22 +0,0 @@
-module er;
-
-void delegate(ubyte[] a) TSender;
-bool delegate(ushort a) TVerifier;
-typedef ushort TAddr;
-
-public void delegate(ubyte[] a) TSender;
-public bool delegate(ushort a) TVerifier;
-public typedef ushort TAddr;
-
-void delegate() dg;
-dg = {
- int y;
-};
-
-int opApply(int delegate(inout Type[, ...]) dg);
-
-void main()
-{
- assert(findIf("bcecg", (int x) { return x == 'a'; }) == 5);
-}
-
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50050-real_world_file.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50050-real_world_file.m
deleted file mode 100644
index 1f7370d7..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50050-real_world_file.m
+++ /dev/null
@@ -1,230 +0,0 @@
-/*
- * File: ATColorTableController.m
- * Abstract: A controller used by the ATImageTextCell to edit the color property. It is implemented in an abstract enough way to be used by a class other than the cell.
- *
- * Version: 1.0
- *
- * Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple
- * Inc. ("Apple") in consideration of your agreement to the following
- * terms, and your use, installation, modification or redistribution of
- * this Apple software constitutes acceptance of these terms. If you do
- * not agree with these terms, please do not use, install, modify or
- * redistribute this Apple software.
- *
- * In consideration of your agreement to abide by the following terms, and
- * subject to these terms, Apple grants you a personal, non-exclusive
- * license, under Apple's copyrights in this original Apple software (the
- * "Apple Software"), to use, reproduce, modify and redistribute the Apple
- * Software, with or without modifications, in source and/or binary forms;
- * provided that if you redistribute the Apple Software in its entirety and
- * without modifications, you must retain this notice and the following
- * text and disclaimers in all such redistributions of the Apple Software.
- * Neither the name, trademarks, service marks or logos of Apple Inc. may
- * be used to endorse or promote products derived from the Apple Software
- * without specific prior written permission from Apple. Except as
- * expressly stated in this notice, no other rights or licenses, express or
- * implied, are granted by Apple herein, including but not limited to any
- * patent rights that may be infringed by your derivative works or by other
- * works in which the Apple Software may be incorporated.
- *
- * The Apple Software is provided by Apple on an "AS IS" basis. APPLE
- * MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION
- * THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND
- * OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.
- *
- * IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL
- * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,
- * MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED
- * AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),
- * STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * Copyright (C) 2009 Apple Inc. All Rights Reserved.
- *
- */
-
-#import "ATColorTableController.h"
-#import "ATPopupWindow.h"
-
-@implementation ATColorTableController
-
-+ (ATColorTableController *) sharedColorTableController {
- static ATColorTableController * gSharedColorTableController = nil;
-
- if (gSharedColorTableController == nil) {
- gSharedColorTableController = [[[self class] alloc] initWithNibName:@"ColorTable" bundle:[NSBundle bundleForClass:[self class]]];
- }
- return gSharedColorTableController;
-}
-
-@synthesize delegate = _delegate;
-@dynamic selectedColor, selectedColorName;
-
-- (void) dealloc {
- [_colorList release];
- [_colorNames release];
- [_window release];
- [super dealloc];
-}
-
-- (void) loadView {
- [super loadView];
- _colorList = [[NSColorList colorListNamed:@"Crayons"] retain];
- _colorNames = [[_colorList allKeys] retain];
- [_tableColorList setIntercellSpacing:NSMakeSize(3, 3)];
- [_tableColorList setTarget:self];
- [_tableColorList setAction:@selector(_tableViewAction:)];
-}
-
-- (NSColor *) selectedColor {
- NSString * name = [self selectedColorName];
-
- if (name != nil) {
- return [_colorList colorWithKey:name];
- } else {
- return nil;
- }
-}
-
-- (NSString *) selectedColorName {
- if ([_tableColorList selectedRow] != -1) {
- return [_colorNames objectAtIndex:[_tableColorList selectedRow]];
- } else {
- return nil;
- }
-}
-
-- (void) _selectColor:(NSColor *)color {
- // Search for that color in our list
- NSInteger row = 0;
-
- for (NSString * name in _colorNames) {
- NSColor * colorInList = [_colorList colorWithKey:name];
- if ([color isEqual:colorInList]) {
- break;
- }
- row++;
- }
- _updatingSelection = YES;
- if (row != -1) {
- [_tableColorList scrollRowToVisible:row];
- [_tableColorList selectRowIndexes:[NSIndexSet indexSetWithIndex:row] byExtendingSelection:NO];
- } else {
- [_tableColorList scrollRowToVisible:0];
- [_tableColorList selectRowIndexes:[NSIndexSet indexSet] byExtendingSelection:NO];
- }
- _updatingSelection = NO;
-}
-
-- (void) _createWindowIfNeeded {
- if (_window == nil) {
- NSRect viewFrame = self.view.frame;
- // Create and setup our window
- _window = [[ATPopupWindow alloc] initWithContentRect:viewFrame styleMask:NSBorderlessWindowMask backing:NSBackingStoreBuffered defer:NO];
- [_window setReleasedWhenClosed:NO];
- [_window setLevel:NSPopUpMenuWindowLevel];
- [_window setHasShadow:YES];
- [[_window contentView] addSubview:self.view];
- [_window makeFirstResponder:_tableColorList];
-
- // Make the window have a clear color and be non-opaque for our pop-up animation
- [_window setBackgroundColor:[NSColor clearColor]];
- [_window setOpaque:NO];
- }
-}
-
-- (void) _windowClosed:(NSNotification *)note {
- if (_eventMonitor) {
- [NSEvent removeMonitor:_eventMonitor];
- _eventMonitor = nil;
- }
- [[NSNotificationCenter defaultCenter] removeObserver:self name:NSWindowWillCloseNotification object:_window];
- [[NSNotificationCenter defaultCenter] removeObserver:self name:NSApplicationDidResignActiveNotification object:nil];
-}
-
-- (void) _closeAndSendAction:(BOOL)sendAction {
- [_window close];
- if (sendAction) {
- if ([self.delegate respondsToSelector:@selector(colorTableController:didChooseColor:named:)]) {
- [self.delegate colorTableController:self didChooseColor:self.selectedColor named:self.selectedColorName];
- }
- } else {
- if ([self.delegate respondsToSelector:@selector(didCancelColorTableController:)]) {
- [self.delegate didCancelColorTableController:self];
- }
- }
-}
-
-- (void) _windowShouldClose:(NSNotification *)note {
- [self _closeAndSendAction:NO];
-}
-
-- (void) editColor:(NSColor *)color locatedAtScreenRect:(NSRect)rect {
- [self _createWindowIfNeeded];
- [self _selectColor:color];
- NSPoint origin = rect.origin;
- NSRect windowFrame = [_window frame];
-
- // The origin is the lower left; subtract the window's height
- origin.y -= NSHeight(windowFrame);
- // Center the popup window under the rect
- origin.y += floor(NSHeight(rect) / 3.0);
- origin.x -= floor(NSWidth(windowFrame) / 2.0);
- origin.x += floor(NSWidth(rect) / 2.0);
-
- [_window setFrameOrigin:origin];
- [_window popup];
-
- // Add some watches on the window and application
- [[NSNotificationCenter defaultCenter] addObserver:self
- selector:@selector(_windowClosed:)
- name:NSWindowWillCloseNotification
- object:_window];
-
- [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(_windowShouldClose:) name:NSApplicationDidResignActiveNotification object:nil];
-
- // Start watching events to figure out when to close the window
- NSAssert(_eventMonitor == nil, @"_eventMonitor should not be created yet");
- _eventMonitor = [NSEvent addLocalMonitorForEventsMatchingMask:NSLeftMouseDownMask | NSRightMouseDownMask | NSOtherMouseDownMask | NSKeyDownMask handler: ^(NSEvent * incomingEvent) {
- NSEvent * result = incomingEvent;
- NSWindow * targetWindowForEvent = [incomingEvent window];
- if (targetWindowForEvent != _window) {
- [self _closeAndSendAction:NO];
- } else if ([incomingEvent type] == NSKeyDown) {
- if ([incomingEvent keyCode] == 53) {
- // Escape
- [self _closeAndSendAction:NO];
- result = nil; // Don't process the event
- } else if ([incomingEvent keyCode] == 36) {
- // Enter
- [self _closeAndSendAction:YES];
- result = nil;
- }
- }
- return result;
- }];
-}
-
-- (NSInteger) numberOfRowsInTableView:(NSTableView *)tableView {
- return _colorNames.count;
-}
-
-- (id) tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {
- return [_colorNames objectAtIndex:row];
-}
-
-- (void) tableView:(NSTableView *)tableView willDisplayCell:(id)cell forTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {
- NSColor * color = [_colorList colorWithKey:[_colorNames objectAtIndex:row]];
-
- [cell setColor:color];
-}
-
-- (void) _tableViewAction:(id)sender {
- [self _closeAndSendAction:YES];
-}
-
-@end
-
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/code_width.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/code_width.c
deleted file mode 100644
index 1b2fbbaa..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/code_width.c
+++ /dev/null
@@ -1,51 +0,0 @@
-
-static int short_function_name(struct device *dev, struct device_driver *drv);
-
-/* Assuming a 60-column limit */
-static int short_function_name(struct device *dev, struct device_driver *drv)
-{
- this->translateLabels(labelID, completedLabelID, selectedLabelID, text, selectedText, completedText, fontId, selectedFontId, completedFontId);
- call_some_really_long_function.of_some_sort(some_long_parameter1, some_long_parameter2);
-
- abc = call_some_other_really_long_function.of_some_sort(some_long_parameter1, some_long_parameter2);
-
- abc.def.ghi = call_some_other_really_long_function.of_some_sort(some_long_parameter1, some_long_parameter2);
-
- abcdefghijklmnopqrstuvwxyz = abc + def + ghi + jkl + mno + prq + stu+ vwx + yz;
-
- return 1;
-}
-
-typedef xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx yyyyyyyyyyyyyyyyyyyyyy;
-
-typedef some_return_value (*some_function_type)(another_type parameter1, another_type parameter2);
-
-typedef struct xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-{
- int yyyyyyyyyyyyyyyyyyyyyy;
-} x_t;
-
-static void some_really_long_function_name(struct device *dev, struct device_driver *drv)
-{
- if ((some_variable_name && somefunction(param1, param2, param3)))
- {
- asdfghjk = asdfasdfasd.aasdfasd + (asdfasd.asdas * 1234.65);
- }
-
- for (struct something_really_really_excessive *a_long_ptr_name = get_first_item(); a_long_ptr_name != NULL; a_long_ptr_name = get_next_item(a_long_ptr_name))
- {
- }
-
- for (a = get_first(); a != NULL; a = get_next(a))
- {
- }
-
- for (a_ptr = get_first(); a_ptr != NULL; a_ptr = get_next(a))
- {
- }
-
- register_clcmd( "examine", "do_examine", -1, "-Allows a player to examine the health and armor of a teammate" );
- register_clcmd( "/examine", "do_examine", -1,
- "-Allows a player to examine the health and armor of a teammate" );
-}
-
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/I2103.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/I2103.cpp
deleted file mode 100644
index ba6386dd..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/I2103.cpp
+++ /dev/null
@@ -1,2 +0,0 @@
-int i1 = EEnumType::a & EEnumType::b;
-int i2 = a & b;
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1296.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1296.cpp
deleted file mode 100644
index 699025fc..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1296.cpp
+++ /dev/null
@@ -1,7 +0,0 @@
-int main()
-{
- auto lambda2 = [&]()
- {
- code();
- };
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_478.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_478.cpp
deleted file mode 100644
index 857d48f7..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_478.cpp
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-QString fileName = QFileDialog::getOpenFileName(this,
-tr("Choose Configuration File"), ui->leStrategyFile->text(),
-tr("Configuration Files (*.cfg);; All Files (*.*)"), 0);
-
-pSettings = new QSettings(QCoreApplication::applicationDirPath() + "/" +
-QCoreApplication::applicationName() + ".ini",
-QSettings::IniFormat);
-}
-int a ()
-{
- double a_very_long_variable = test (foobar1,
- foobar5);
-
- double a_other_very_long = asdfasdfasdfasdfasdf + asdfasfafasdfa +
- asdfasdfasdf - asdfasdf + 56598;
-
- a_other_very_long = asdfasdfasdfasdfasdf + asdfasfafasdfa +
- asdfasdfasdf - asdfasdf + 56598;
-
- testadsfa (dfasdf,
- aaafsdfa);
- return 0;
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cast.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cast.cpp
deleted file mode 100644
index d558e7f6..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cast.cpp
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- a = ( int)5.6;
- b = int (5.6 );
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/enum.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/enum.cpp
deleted file mode 100644
index 7f87591e..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/enum.cpp
+++ /dev/null
@@ -1,207 +0,0 @@
- enum
- class
- angle_state_e
- :
- unsigned
-int {
- NONE=0, OPEN=1, //'<' found
-CLOSE = 2 , //'>' found
-};
-
-// align.cpp
-enum class comment_align_e : unsigned int
-{
- REGULAR,
- BRACE,
- ENDIF,
-};
-
-// chunk_list.h
-enum class scope_e : unsigned int
-{
- ALL, /**< search in all kind of chunks */
- PREPROC, /**< search only in preprocessor chunks */
-};
-
-// chunk_list.cpp
-enum class direction_e : unsigned int
-{
- FORWARD,
- BACKWARD
-};
-
-// combine.cpp
-{
- enum class angle_state_e : unsigned int
- {
- NONE = 0,
- OPEN = 1, // '<' found
- CLOSE = 2, // '>' found
- };
-}
-
-// indent.cpp
-enum class align_mode_e : unsigned int
-{
- SHIFT, /* shift relative to the current column */
- KEEP_ABS, /* try to keep the original absolute column */
- KEEP_REL, /* try to keep the original gap */
-};
-
-// align_stack.h
-{
- enum StarStyle
- {
- SS_IGNORE, // don't look for prev stars
- SS_INCLUDE, // include prev * before add
- SS_DANGLE // include prev * after add
- };
-}
-
-// log_levels.h
-enum log_sev_t
-{
- LSYS = 0,
- LERR = 1,
- LWARN = 2,
- LNOTE = 3,
- LINFO = 4,
- LDATA = 5,
-
- LFILELIST = 8, /* Files in the file list file */
- LLINEENDS = 9, /* Show which line endings are used */
- LCASTS = 10, /* align casts */
- LALBR = 11, /* align braces */
- LALTD = 12, /* Align Typedef */
- LALPP = 13, /* align #define */
- LALPROTO = 14, /* align prototype */
- LALNLC = 15, /* align backslash-newline */
- LALTC = 16, /* align trailing comments */
- LALADD = 17, /* align add */
- LALASS = 18, /* align assign */
- LFVD = 19, /* fix_var_def */
- LFVD2 = 20, /* fix_var_def-2 */
- LINDENT = 21, /* indent_text */
- LINDENT2 = 22, /* indent_text tab level */
- LINDPSE = 23, /* indent_text stack */
- LINDPC = 24, /* indent play-by-play */
- LNEWLINE = 25, /* newlines */
- LPF = 26, /* Parse Frame */
- LSTMT = 27, /* Marking statements/expressions */
- LTOK = 28, /* Tokenize */
- LALRC = 29, /* align right comment */
- LCMTIND = 30, /* Comment Indent */
- LINDLINE = 31, /* indent line */
- LSIB = 32, /* Scan IB */
- LRETURN = 33, /* add/remove parens for return */
- LBRDEL = 34, /* brace removal */
- LFCN = 35, /* function detection */
- LFCNP = 36, /* function parameters */
- LPCU = 37, /* parse cleanup */
- LDYNKW = 38, /* dynamic keywords */
- LOUTIND = 39, /* output indent */
- LBCSAFTER = 40, /* Brace cleanup stack - after each token */
- LBCSPOP = 41, /* Brace cleanup stack - log pops */
- LBCSPUSH = 42, /* Brace cleanup stack - log push */
- LBCSSWAP = 43, /* Brace cleanup stack - log swaps */
- LFTOR = 44, /* Class Ctor or Dtor */
- LAS = 45, /* align_stack */
- LPPIS = 46, /* Preprocessor Indent and Space */
- LTYPEDEF = 47, /* Typedef and function types */
- LVARDEF = 48, /* Variable def marking */
- LDEFVAL = 49, /* define values */
- LPVSEMI = 50, /* Pawn: virtual semicolons */
- LPFUNC = 51, /* Pawn: function recognition */
- LSPLIT = 52, /* Line splitting */
- LFTYPE = 53, /* Function type detection */
- LTEMPL = 54, /* Template detection */
- LPARADD = 55, /* adding parens in if/while */
- LPARADD2 = 56, /* adding parens in if/while - details */
- LBLANKD = 57, /* blank line details */
- LTEMPFUNC = 58, /* Template function detection */
- LSCANSEMI = 59, /* scan semi colon removal */
- LDELSEMI = 60, /* Removing semicolons */
- LFPARAM = 61, /* Testing for a full parameter */
- LNL1LINE = 62, /* NL check for 1 liners */
- LPFCHK = 63, /* Parse Frame check fcn call */
- LAVDB = 64, /* align var def braces */
- LSORT = 65, /* Sorting */
- LSPACE = 66, /* Space */
- LALIGN = 67, /* align */
- LALAGAIN = 68, /* align again */
- LOPERATOR = 69, /* operator */
- LASFCP = 70, /* Align Same Function Call Params */
- LINDLINED = 71, /* indent line details */
- LBCTRL = 72, /* beautifier control */
- LRMRETURN = 73, /* remove 'return;' */
- LPPIF = 74, /* #if/#else/#endif pair processing */
- LMCB = 75, /* mod_case_brace */
- LBRCH = 76, /* if brace chain */
- LFCNR = 77, /* function return type */
- LOCCLASS = 78, /* OC Class stuff */
- LOCMSG = 79, /* OC Message stuff */
- LBLANK = 80, /* Blank Lines */
- LOBJCWORD = 81, /* Convert keyword to CT_WORD in certain circumstances */
- LCHANGE = 82, /* something changed */
- LCONTTEXT = 83, /* comment cont_text set */
- LANNOT = 84, /* Java annotation */
- LOCBLK = 85, /* OC Block stuff */
- LFLPAREN = 86, /* Flag paren */
- LOCMSGD = 87, /* OC Message declaration */
- LINDENTAG = 88, /* indent again */
- LNFD = 89, /* newline-function-def */
- LJDBI = 90, /* Java Double Brace Init */
- LSETPAR = 91, /* set_chunk_parent() */
- LSETTYP = 92, /* set_chunk_type() */
- LSETFLG = 93, /* set_chunk_flags() */
- LNLFUNCT = 94, /* newlines before function */
- LCHUNK = 95, /* Add or del chunk */
- LGUY98 = 98, /* for guy-test */
- LGUY = 99, /* for guy-test */
-};
-
-// options.h
-enum argtype_e
-{
- AT_BOOL, /**< true / false */
- AT_IARF, /**< Ignore / Add / Remove / Force */
- AT_NUM, /**< Number */
- AT_LINE, /**< Line Endings */
- AT_POS, /**< start/end or Trail/Lead */
- AT_STRING, /**< string value */
- AT_UNUM, /**< unsigned Number */
-};
-
-enum argval_t
-{
- AV_IGNORE = 0,
- AV_ADD = 1,
- AV_REMOVE = 2,
- AV_FORCE = 3, /**< remove + add */
- AV_NOT_DEFINED = 4 /* to be used with QT, SIGNAL SLOT macros */
-};
-
-enum lineends_e
-{
- LE_LF, /* "\n" */
- LE_CRLF, /* "\r\n" */
- LE_CR, /* "\r" */
-
- LE_AUTO, /* keep last */
-};
-
-enum tokenpos_e
-{
- TP_IGNORE = 0, /* don't change it */
- TP_BREAK = 1, /* add a newline before or after the if not present */
- TP_FORCE = 2, /* force a newline on one side and not the other */
- TP_LEAD = 4, /* at the start of a line or leading if wrapped line */
- TP_LEAD_BREAK = (TP_LEAD | TP_BREAK),
- TP_LEAD_FORCE = (TP_LEAD | TP_FORCE),
- TP_TRAIL = 8, /* at the end of a line or trailing if wrapped line */
- TP_TRAIL_BREAK = (TP_TRAIL | TP_BREAK),
- TP_TRAIL_FORCE = (TP_TRAIL | TP_FORCE),
- TP_JOIN = 16, /* remove newlines on both sides */
-};
-
-
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1464.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1464.cpp
deleted file mode 100644
index e4005841..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1464.cpp
+++ /dev/null
@@ -1 +0,0 @@
-auto p = std::make_pair(r * cos(a), r * sin(a));
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1466.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1466.cpp
deleted file mode 100644
index 912488b3..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1466.cpp
+++ /dev/null
@@ -1 +0,0 @@
-A a = {this->r * cos(b)}; \ No newline at end of file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/if_chain_braces.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/if_chain_braces.cpp
deleted file mode 100644
index b544f2bf..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/if_chain_braces.cpp
+++ /dev/null
@@ -1,33 +0,0 @@
-
-int foo() {
- if ( a )
- return 1;
- else if ( b )
- return 2;
-
- if ( a )
- return 3;
- else if ( b )
- return 4;
- else {
- a = 5;
- return 5;
- }
-
- if ( a )
- return 6;
- else
- return 7;
-
- if ( a )
- return 8;
-
- if ( b ) {
- return 9;
- }
-
- if ( b ) {
- { b = 5; }
- return 9;
- }
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent-c.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent-c.cpp
deleted file mode 100644
index 56633d0e..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent-c.cpp
+++ /dev/null
@@ -1,1084 +0,0 @@
-/**
- * @file indent.cpp
- * Does all the indenting stuff.
- *
- * $Id: indent.cpp 548 2006-10-21 02:31:55Z bengardner $
- */
-#include "uncrustify_types.h"
-#include "chunk_list.h"
-#include "prototypes.h"
-#include <cstdio>
-#include <cstdlib>
-#include <cstring>
-#include <cerrno>
-#include <cctype>
-
-
-/**
- * General indenting approach:
- * Indenting levels are put into a stack.
- *
- * The stack entries contain:
- * - opening type
- * - brace column
- * - continuation column
- *
- * Items that start a new stack item:
- * - preprocessor (new parse frame)
- * - Brace Open (Virtual brace also)
- * - Paren, Square, Angle open
- * - Assignments
- * - C++ '<<' operator (ie, cout << "blah")
- * - case
- * - class colon
- * - return
- * - types
- * - any other continued statement
- *
- * Note that the column of items marked 'PCF_WAS_ALIGNED' is not changed.
- *
- * For an open brace:
- * - indent increases by indent_columns
- * - if part of if/else/do/while/switch/etc, an extra indent may be applied
- * - if in a paren, then cont-col is set to column + 1, ie "({ some code })"
- *
- * Open paren/square/angle:
- * cont-col is set to the column of the item after the open paren, unless
- * followed by a newline, then it is set to (brace-col + indent_columns).
- * Examples:
- * a_really_long_funcion_name(
- * param1, param2);
- * a_really_long_funcion_name(param1,
- * param2);
- *
- * Assignments:
- * Assignments are continued aligned with the first item after the assignment,
- * unless the assign is followed by a newline.
- * Examples:
- * some.variable = asdf + asdf +
- * asdf;
- * some.variable =
- * asdf + asdf + asdf;
- *
- * C++ << operator:
- * Handled the same as assignment.
- * Examples:
- * cout << "this is test number: "
- * << test_number;
- *
- * case:
- * Started with case or default.
- * Terminated with close brace at level or another case or default.
- * Special indenting according to various rules.
- * - indent of case label
- * - indent of case body
- * - how to handle optional braces
- * Examples:
- * {
- * case x: {
- * a++;
- * break;
- * }
- * case y:
- * b--;
- * break;
- * default:
- * c++;
- * break;
- * }
- *
- * Class colon:
- * Indent continuation by indent_columns:
- * class my_class :
- * baseclass1,
- * baseclass2
- * {
- *
- * Return: same as assignemts
- * If the return statement is not fully paren'd, then the indent continues at
- * the column of the item after the return. If it is paren'd, then the paren
- * rules apply.
- * return somevalue +
- * othervalue;
- *
- * Type: pretty much the same as assignments
- * Examples:
- * int foo,
- * bar,
- * baz;
- *
- * Any other continued item:
- * There shouldn't be anything not covered by the above cases, but any other
- * continued item is indented by indent_columns:
- * Example:
- * somereallycrazylongname.with[lotsoflongstuff].
- * thatreallyannoysme.whenIhavetomaintain[thecode] = 3;
- */
-
-static void indent_comment(chunk_t *pc, int col);
-
-
-void indent_to_column(chunk_t *pc, int column)
-{
- if (column < pc->column)
- {
- column = pc->column;
- }
- reindent_line(pc, column);
-}
-
-/**
- * Changes the initial indent for a line to the given column
- *
- * @param pc The chunk at the start of the line
- * @param column The desired column
- */
-void reindent_line(chunk_t *pc, int column)
-{
- int col_delta;
- int min_col;
-
- LOG_FMT(LINDLINE, "%s: %d] col %d on %.*s [%s] => %d\n",
- __func__, pc->orig_line, pc->column, pc->len, pc->str,
- get_token_name(pc->type), column);
-
- if (column == pc->column)
- {
- return;
- }
- col_delta = column - pc->column;
- pc->column = column;
- min_col = pc->column;
-
- do
- {
- min_col += pc->len;
- pc = chunk_get_next(pc);
- if (pc != NULL)
- {
- if (chunk_is_comment(pc))
- {
- pc->column = pc->orig_col;
- if (pc->column < min_col)
- {
- pc->column = min_col + 1;
- }
- LOG_FMT(LINDLINE, "%s: set comment on line %d to col %d (orig %d)\n",
- __func__, pc->orig_line, pc->column, pc->orig_col);
- }
- else
- {
- pc->column += col_delta;
- if (pc->column < min_col)
- {
- pc->column = min_col;
- }
- }
- }
- } while ((pc != NULL) && (pc->nl_count == 0));
-}
-
-
-/**
- * Starts a new entry
- *
- * @param frm The parse frame
- * @param pc The chunk causing the push
- */
-static void indent_pse_push(struct parse_frame& frm, chunk_t *pc)
-{
- static int ref = 0;
-
- /* check the stack depth */
- if (frm.pse_tos < (int)ARRAY_SIZE(frm.pse))
- {
- /* Bump up the index and initialize it */
- frm.pse_tos++;
- memset(&frm.pse[frm.pse_tos], 0, sizeof(frm.pse[frm.pse_tos]));
-
- LOG_FMT(LINDPSE, "%4d] OPEN [%d,%s] level=%d\n",
- pc->orig_line, frm.pse_tos, get_token_name(pc->type), pc->level);
-
- frm.pse[frm.pse_tos].type = pc->type;
- frm.pse[frm.pse_tos].level = pc->level;
- frm.pse[frm.pse_tos].open_line = pc->orig_line;
- frm.pse[frm.pse_tos].ref = ++ref;
- frm.pse[frm.pse_tos].in_preproc = (pc->flags & PCF_IN_PREPROC) != 0;
- }
-}
-
-
-/**
- * Removes the top entry
- *
- * @param frm The parse frame
- * @param pc The chunk causing the push
- */
-static void indent_pse_pop(struct parse_frame& frm, chunk_t *pc)
-{
- /* Bump up the index and initialize it */
- if (frm.pse_tos > 0)
- {
- if (pc != NULL)
- {
- LOG_FMT(LINDPSE, "%4d] CLOSE [%d,%s] on %s, started on line %d, level=%d/%d\n",
- pc->orig_line, frm.pse_tos,
- get_token_name(frm.pse[frm.pse_tos].type),
- get_token_name(pc->type),
- frm.pse[frm.pse_tos].open_line,
- frm.pse[frm.pse_tos].level,
- pc->level);
- }
- else
- {
- LOG_FMT(LINDPSE, " EOF] CLOSE [%d,%s], started on line %d\n",
- frm.pse_tos, get_token_name(frm.pse[frm.pse_tos].type),
- frm.pse[frm.pse_tos].open_line);
- }
- frm.pse_tos--;
- }
-}
-
-
-static int token_indent(c_token_t type)
-{
- switch (type)
- {
- case CT_IF:
- case CT_DO:
- return(3);
-
- case CT_FOR:
- case CT_ELSE: // wacky, but that's what is wanted
- return(4);
-
- case CT_WHILE:
- return(6);
-
- case CT_SWITCH:
- return(7);
-
- case CT_ELSEIF:
- return(8);
-
- default:
- return(0); //cpd.settings[UO_indent_braces].n;
- }
-}
-
-
-/**
- * Change the top-level indentation only by changing the column member in
- * the chunk structures.
- * The level indicator must already be set.
- */
-void indent_text(void)
-{
- chunk_t *pc;
- chunk_t *next;
- chunk_t *prev = NULL;
- bool did_newline = true;
- int idx;
- int vardefcol = 0;
- int indent_size = cpd.settings[UO_indent_columns].n;
- int tmp;
- struct parse_frame frm;
- bool in_preproc = false, was_preproc = false;
- int indent_column;
- int cout_col = 0; // for aligning << stuff
- int cout_level = 0; // for aligning << stuff
- int parent_token_indent = 0;
-
- memset(&frm, 0, sizeof(frm));
-
- /* dummy top-level entry */
- frm.pse[0].indent = 1;
- frm.pse[0].indent_tmp = 1;
- frm.pse[0].type = CT_EOF;
-
- pc = chunk_get_head();
- while (pc != NULL)
- {
- /* Handle proprocessor transitions */
- was_preproc = in_preproc;
- in_preproc = (pc->flags & PCF_IN_PREPROC) != 0;
-
- if (cpd.settings[UO_indent_brace_parent].b)
- {
- parent_token_indent = token_indent(pc->parent_type);
- }
-
- /* Clean up after a #define */
- if (!in_preproc)
- {
- while ((frm.pse_tos > 0) && frm.pse[frm.pse_tos].in_preproc)
- {
- indent_pse_pop(frm, pc);
- }
- }
- else
- {
- pf_check(&frm, pc);
-
- if (!was_preproc)
- {
- /* Transition into a preproc by creating a dummy indent */
- frm.level++;
- indent_pse_push(frm, pc);
-
- frm.pse[frm.pse_tos].indent = 1 + indent_size;
- frm.pse[frm.pse_tos].indent_tmp = frm.pse[frm.pse_tos].indent;
- }
- }
-
- if ((cout_col > 0) &&
- (chunk_is_semicolon(pc) ||
- (pc->level < cout_level)))
- {
- cout_col = 0;
- cout_level = 0;
- }
-
- /**
- * Handle non-brace closures
- */
-
- int old_pse_tos;
- do
- {
- old_pse_tos = frm.pse_tos;
-
- /* End anything that drops a level
- * REVISIT: not sure about the preproc check
- */
- if (!chunk_is_newline(pc) &&
- !chunk_is_comment(pc) &&
- ((pc->flags & PCF_IN_PREPROC) == 0) &&
- (frm.pse[frm.pse_tos].level > pc->level))
- {
- indent_pse_pop(frm, pc);
- }
-
- if (frm.pse[frm.pse_tos].level == pc->level)
- {
- /* process virtual braces closes (no text output) */
- if ((pc->type == CT_VBRACE_CLOSE) &&
- (frm.pse[frm.pse_tos].type == CT_VBRACE_OPEN))
- {
- indent_pse_pop(frm, pc);
- frm.level--;
- pc = chunk_get_next(pc);
- }
-
- /* End any assign operations with a semicolon on the same level */
- if ((frm.pse[frm.pse_tos].type == CT_ASSIGN) &&
- (chunk_is_semicolon(pc) ||
- (pc->type == CT_COMMA) ||
- (pc->type == CT_BRACE_OPEN)))
- {
- indent_pse_pop(frm, pc);
- }
-
- /* End any CPP class colon crap */
- if ((frm.pse[frm.pse_tos].type == CT_CLASS_COLON) &&
- ((pc->type == CT_BRACE_OPEN) ||
- chunk_is_semicolon(pc)))
- {
- indent_pse_pop(frm, pc);
- }
-
- /* a case is ended with another case or a close brace */
- if ((frm.pse[frm.pse_tos].type == CT_CASE) &&
- ((pc->type == CT_BRACE_CLOSE) ||
- (pc->type == CT_CASE)))
- {
- indent_pse_pop(frm, pc);
- }
-
- /* a return is ended with a semicolon */
- if ((frm.pse[frm.pse_tos].type == CT_RETURN) &&
- chunk_is_semicolon(pc))
- {
- indent_pse_pop(frm, pc);
- }
-
- /* Close out parens and squares */
- if ((frm.pse[frm.pse_tos].type == (pc->type - 1)) &&
- ((pc->type == CT_PAREN_CLOSE) ||
- (pc->type == CT_SPAREN_CLOSE) ||
- (pc->type == CT_FPAREN_CLOSE) ||
- (pc->type == CT_SQUARE_CLOSE) ||
- (pc->type == CT_ANGLE_CLOSE)))
- {
- indent_pse_pop(frm, pc);
- frm.paren_count--;
- }
- }
- } while (old_pse_tos > frm.pse_tos);
-
- /* Grab a copy of the current indent */
- indent_column = frm.pse[frm.pse_tos].indent_tmp;
-
- if (!chunk_is_newline(pc) && !chunk_is_comment(pc))
- {
- LOG_FMT(LINDPC, " -=[ %.*s ]=- top=%d %s %d/%d\n",
- pc->len, pc->str,
- frm.pse_tos,
- get_token_name(frm.pse[frm.pse_tos].type),
- frm.pse[frm.pse_tos].indent_tmp,
- frm.pse[frm.pse_tos].indent);
- }
-
- /**
- * Handle stuff that can affect the current indent:
- * - brace close
- * - vbrace open
- * - brace open
- * - case (immediate)
- * - labels (immediate)
- * - class colons (immediate)
- *
- * And some stuff that can't
- * - open paren
- * - open square
- * - assignment
- * - return
- */
-
- if (pc->type == CT_BRACE_CLOSE)
- {
- if (frm.pse[frm.pse_tos].type == CT_BRACE_OPEN)
- {
- indent_pse_pop(frm, pc);
- frm.level--;
-
- /* Update the indent_column if needed */
- if (!cpd.settings[UO_indent_braces].b &&
- (parent_token_indent == 0))
- {
- indent_column = frm.pse[frm.pse_tos].indent_tmp;
- }
-
- if ((pc->parent_type == CT_IF) ||
- (pc->parent_type == CT_ELSE) ||
- (pc->parent_type == CT_ELSEIF) ||
- (pc->parent_type == CT_DO) ||
- (pc->parent_type == CT_WHILE) ||
- (pc->parent_type == CT_SWITCH) ||
- (pc->parent_type == CT_FOR))
- {
- indent_column += cpd.settings[UO_indent_brace].n;
- }
- }
- }
- else if (pc->type == CT_VBRACE_OPEN)
- {
- frm.level++;
- indent_pse_push(frm, pc);
-
- frm.pse[frm.pse_tos].indent = frm.pse[frm.pse_tos - 1].indent + indent_size;
- frm.pse[frm.pse_tos].indent_tmp = frm.pse[frm.pse_tos].indent;
-
- /* Always indent on virtual braces */
- indent_column = frm.pse[frm.pse_tos].indent_tmp;
- }
- else if (pc->type == CT_BRACE_OPEN)
- {
- frm.level++;
- indent_pse_push(frm, pc);
-
- if (frm.paren_count != 0)
- {
- /* We are inside ({ ... }) -- indent one tab from the paren */
- frm.pse[frm.pse_tos].indent = frm.pse[frm.pse_tos - 1].indent_tmp + indent_size;
- }
- else
- {
- /* Use the prev indent level + indent_size. */
- frm.pse[frm.pse_tos].indent = frm.pse[frm.pse_tos - 1].indent + indent_size;
-
- /* If this brace is part of a statement, bump it out by indent_brace */
- if ((pc->parent_type == CT_IF) ||
- (pc->parent_type == CT_ELSE) ||
- (pc->parent_type == CT_ELSEIF) ||
- (pc->parent_type == CT_DO) ||
- (pc->parent_type == CT_WHILE) ||
- (pc->parent_type == CT_SWITCH) ||
- (pc->parent_type == CT_FOR))
- {
- if (parent_token_indent != 0)
- {
- frm.pse[frm.pse_tos].indent += parent_token_indent - indent_size;
- }
- else
- {
- frm.pse[frm.pse_tos].indent += cpd.settings[UO_indent_brace].n;
- indent_column += cpd.settings[UO_indent_brace].n;
- }
- }
- else if (pc->parent_type == CT_CASE)
- {
- /* The indent_case_brace setting affects the parent CT_CASE */
- frm.pse[frm.pse_tos].indent_tmp += cpd.settings[UO_indent_case_brace].n;
- frm.pse[frm.pse_tos].indent += cpd.settings[UO_indent_case_brace].n;
- }
- else if ((pc->parent_type == CT_CLASS) && !cpd.settings[UO_indent_class].b)
- {
- frm.pse[frm.pse_tos].indent -= indent_size;
- }
- else if ((pc->parent_type == CT_NAMESPACE) && !cpd.settings[UO_indent_namespace].b)
- {
- frm.pse[frm.pse_tos].indent -= indent_size;
- }
- }
-
- if ((pc->flags & PCF_DONT_INDENT) != 0)
- {
- frm.pse[frm.pse_tos].indent = pc->column;
- indent_column = pc->column;
- }
- else
- {
- /**
- * If there isn't a newline between the open brace and the next
- * item, just indent to wherever the next token is.
- * This covers this sort of stuff:
- * { a++;
- * b--; };
- */
- next = chunk_get_next_ncnnl(pc);
- if (!chunk_is_newline_between(pc, next))
- {
- frm.pse[frm.pse_tos].indent = next->column;
- }
- frm.pse[frm.pse_tos].indent_tmp = frm.pse[frm.pse_tos].indent;
- frm.pse[frm.pse_tos].open_line = pc->orig_line;
-
- /* Update the indent_column if needed */
- if (cpd.settings[UO_indent_braces].n ||
- (parent_token_indent != 0))
- {
- indent_column = frm.pse[frm.pse_tos].indent_tmp;
- }
- }
- }
- else if (pc->type == CT_CASE)
- {
- /* Start a case - indent UO_indent_switch_case from the switch level */
- tmp = frm.pse[frm.pse_tos].indent + cpd.settings[UO_indent_switch_case].n;
-
- indent_pse_push(frm, pc);
-
- frm.pse[frm.pse_tos].indent = tmp;
- frm.pse[frm.pse_tos].indent_tmp = tmp - indent_size;
-
- /* Always set on case statements */
- indent_column = frm.pse[frm.pse_tos].indent_tmp;
- }
- else if (pc->type == CT_LABEL)
- {
- /* Labels get sent to the left or backed up */
- if (cpd.settings[UO_indent_label].n > 0)
- {
- indent_column = cpd.settings[UO_indent_label].n;
- }
- else
- {
- indent_column = frm.pse[frm.pse_tos].indent +
- cpd.settings[UO_indent_label].n;
- }
- }
- else if (pc->type == CT_CLASS_COLON)
- {
- /* just indent one level */
- indent_pse_push(frm, pc);
- frm.pse[frm.pse_tos].indent = frm.pse[frm.pse_tos - 1].indent_tmp + indent_size;
- frm.pse[frm.pse_tos].indent_tmp = frm.pse[frm.pse_tos].indent;
-
- indent_column = frm.pse[frm.pse_tos].indent_tmp;
-
- if (cpd.settings[UO_indent_class_colon].b)
- {
- prev = chunk_get_prev(pc);
- if (chunk_is_newline(prev))
- {
- frm.pse[frm.pse_tos].indent += 2;
- /* don't change indent of current line */
- }
- }
- }
- else if ((pc->type == CT_PAREN_OPEN) ||
- (pc->type == CT_SPAREN_OPEN) ||
- (pc->type == CT_FPAREN_OPEN) ||
- (pc->type == CT_SQUARE_OPEN) ||
- (pc->type == CT_ANGLE_OPEN))
- {
- /* Open parens and squares - never update indent_column */
- indent_pse_push(frm, pc);
- frm.pse[frm.pse_tos].indent = pc->column + pc->len;
-
- if (cpd.settings[UO_indent_func_call_param].b &&
- (pc->type == CT_FPAREN_OPEN) &&
- (pc->parent_type == CT_FUNC_CALL))
- {
- frm.pse[frm.pse_tos].indent = frm.pse[frm.pse_tos - 1].indent + indent_size;
- }
-
- if ((chunk_is_str(pc, "(", 1) && !cpd.settings[UO_indent_paren_nl].b) ||
- (chunk_is_str(pc, "[", 1) && !cpd.settings[UO_indent_square_nl].b))
- {
- next = chunk_get_next_nc(pc);
- if (chunk_is_newline(next))
- {
- int sub = 1;
- if (frm.pse[frm.pse_tos - 1].type == CT_ASSIGN)
- {
- sub = 2;
- }
- frm.pse[frm.pse_tos].indent = frm.pse[frm.pse_tos - sub].indent + indent_size;
- }
- }
- frm.pse[frm.pse_tos].indent_tmp = frm.pse[frm.pse_tos].indent;
- frm.paren_count++;
- }
- else if (pc->type == CT_ASSIGN)
- {
- /**
- * if there is a newline after the '=', just indent one level,
- * otherwise align on the '='.
- * Never update indent_column.
- */
- next = chunk_get_next(pc);
- if (next != NULL)
- {
- indent_pse_push(frm, pc);
- if (chunk_is_newline(next))
- {
- frm.pse[frm.pse_tos].indent = frm.pse[frm.pse_tos - 1].indent_tmp + indent_size;
- }
- else
- {
- frm.pse[frm.pse_tos].indent = pc->column + pc->len + 1;
- }
- frm.pse[frm.pse_tos].indent_tmp = frm.pse[frm.pse_tos].indent;
- }
- }
- else if (pc->type == CT_RETURN)
- {
- /* don't count returns inside a () or [] */
- if (pc->level == pc->brace_level)
- {
- indent_pse_push(frm, pc);
- frm.pse[frm.pse_tos].indent = frm.pse[frm.pse_tos - 1].indent + pc->len + 1;
- frm.pse[frm.pse_tos].indent_tmp = frm.pse[frm.pse_tos - 1].indent;
- }
- }
- else if (chunk_is_str(pc, "<<", 2))
- {
- if (cout_col == 0)
- {
- cout_col = pc->column;
- cout_level = pc->level;
- }
- }
- else
- {
- /* anything else? */
- }
-
-
- /**
- * Indent the line if needed
- */
- if (did_newline && !chunk_is_newline(pc) && (pc->len != 0))
- {
- /**
- * Check for special continuations.
- * Note that some of these could be done as a stack item like
- * everything else
- */
-
- prev = chunk_get_prev_ncnnl(pc);
- if ((pc->type == CT_MEMBER) ||
- (pc->type == CT_DC_MEMBER) ||
- ((prev != NULL) &&
- ((prev->type == CT_MEMBER) ||
- (prev->type == CT_DC_MEMBER))))
- {
- tmp = cpd.settings[UO_indent_member].n + indent_column;
- LOG_FMT(LINDENT, "%s: %d] member => %d\n",
- __func__, pc->orig_line, tmp);
- reindent_line(pc, tmp);
- }
- else if (chunk_is_str(pc, "<<", 2) && (cout_col > 0))
- {
- LOG_FMT(LINDENT, "%s: %d] cout_col => %d\n",
- __func__, pc->orig_line, cout_col);
- reindent_line(pc, cout_col);
- }
- else if ((vardefcol > 0) &&
- (pc->type == CT_WORD) &&
- ((pc->flags & PCF_VAR_DEF) != 0) &&
- (prev != NULL) && (prev->type == CT_COMMA))
- {
- LOG_FMT(LINDENT, "%s: %d] Vardefcol => %d\n",
- __func__, pc->orig_line, vardefcol);
- reindent_line(pc, vardefcol);
- }
- else if ((pc->type == CT_STRING) && (prev->type == CT_STRING) &&
- cpd.settings[UO_indent_align_string].b)
- {
- LOG_FMT(LINDENT, "%s: %d] String => %d\n",
- __func__, pc->orig_line, prev->column);
- reindent_line(pc, prev->column);
- }
- else if (chunk_is_comment(pc))
- {
- LOG_FMT(LINDENT, "%s: %d] comment => %d\n",
- __func__, pc->orig_line, frm.pse[frm.pse_tos].indent_tmp);
- indent_comment(pc, frm.pse[frm.pse_tos].indent_tmp);
- }
- else if (pc->type == CT_PREPROC)
- {
- /* Preprocs are always in column 1. See indent_preproc() */
- if (pc->column != 1)
- {
- reindent_line(pc, 1);
- }
- }
- else
- {
- if (pc->column != indent_column)
- {
- LOG_FMT(LINDENT, "%s: %d] indent => %d [%.*s]\n",
- __func__, pc->orig_line, indent_column, pc->len, pc->str);
- reindent_line(pc, indent_column);
- }
- }
- did_newline = false;
- }
-
- /**
- * Handle variable definition continuation indenting
- */
- if ((pc->type == CT_WORD) &&
- ((pc->flags & PCF_IN_FCN_DEF) == 0) &&
- ((pc->flags & PCF_VAR_1ST_DEF) == PCF_VAR_1ST_DEF))
- {
- vardefcol = pc->column;
- }
- if (chunk_is_semicolon(pc) ||
- ((pc->type == CT_BRACE_OPEN) && (pc->parent_type == CT_FUNCTION)))
- {
- vardefcol = 0;
- }
-
- /* if we hit a newline, reset indent_tmp */
- if (chunk_is_newline(pc) ||
- (pc->type == CT_COMMENT_MULTI) ||
- (pc->type == CT_COMMENT_CPP))
- {
- frm.pse[frm.pse_tos].indent_tmp = frm.pse[frm.pse_tos].indent;
-
- /**
- * Handle the case of a multi-line #define w/o anything on the
- * first line (indent_tmp will be 1 or 0)
- */
- if ((pc->type == CT_NL_CONT) &&
- (frm.pse[frm.pse_tos].indent_tmp <= indent_size))
- {
- frm.pse[frm.pse_tos].indent_tmp = indent_size + 1;
- }
-
- /* Get ready to indent the next item */
- did_newline = true;
- }
-
- if (!chunk_is_comment(pc) && !chunk_is_newline(pc))
- {
- prev = pc;
- }
- pc = chunk_get_next(pc);
- }
-
- /* Throw out any stuff inside a preprocessor - no need to warn */
- while ((frm.pse_tos > 0) && frm.pse[frm.pse_tos].in_preproc)
- {
- indent_pse_pop(frm, pc);
- }
-
- for (idx = 1; idx <= frm.pse_tos; idx++)
- {
- LOG_FMT(LWARN, "%s:%d Unmatched %s\n",
- cpd.filename, frm.pse[idx].open_line,
- get_token_name(frm.pse[idx].type));
- cpd.error_count++;
- }
-}
-
-/**
- * returns true if forward scan reveals only single newlines or comments
- * stops when hits code
- * false if next thing hit is a closing brace, also if 2 newlines in a row
- */
-
-
-static bool single_line_comment_indent_rule_applies(chunk_t *start)
-{
- chunk_t *pc = start;
- int nl_count = 0;
- if (!chunk_is_single_line_comment(pc))
- {
- return(false);
- }
- /* scan forward, if only single newlines and comments before next line of code, we want to apply */
- while ((pc = chunk_get_next(pc)) != NULL)
- {
- if (chunk_is_newline(pc))
- {
- if (nl_count > 0 || pc->nl_count > 1)
- {
- return(false);
- }
-
- nl_count++;
- }
- else
- {
- nl_count = 0;
- if (!chunk_is_single_line_comment(pc))
- {
- /* here we check for things to run into that we wouldn't want to indent the comment for */
- /* for example, non-single line comment, closing brace */
- if (chunk_is_comment(pc) || chunk_is_closing_brace(pc))
- {
- return(false);
- }
-
- return(true);
- }
- }
- }
-
- return(false);
-}
-
-/**
- * REVISIT: This needs to be re-checked, maybe cleaned up
- *
- * Indents comments in a (hopefully) smart manner.
- *
- * There are two type of comments that get indented:
- * - stand alone (ie, no tokens on the line before the comment)
- * - trailing comments (last token on the line apart from a linefeed)
- * + note that a stand-alone comment is a special case of a trailing
- *
- * The stand alone comments will get indented in one of three ways:
- * - column 1:
- * + There is an empty line before the comment AND the indent level is 0
- * + The comment was originally in column 1
- *
- * - Same column as trailing comment on previous line (ie, aligned)
- * + if originally within TBD (3) columns of the previous comment
- *
- * - syntax indent level
- * + doesn't fit in the previous categories
- *
- * Options modify this behavior:
- * - keep original column (don't move the comment, if possible)
- * - keep relative column (move out the same amount as first item on line)
- * - fix trailing comment in column TBD
- *
- * @param pc The comment, which is the first item on a line
- * @param col The column if this is to be put at indent level
- */
-static void indent_comment(chunk_t *pc, int col)
-{
- chunk_t *nl;
- chunk_t *prev;
-
- LOG_FMT(LCMTIND, "%s: line %d, col %d, level %d: ", __func__,
- pc->orig_line, pc->orig_col, pc->level);
-
- /* force column 1 comment to column 1 if not changing them */
- if ((pc->orig_col == 1) && !cpd.settings[UO_indent_col1_comment].b)
- {
- LOG_FMT(LCMTIND, "rule 1 - keep in col 1\n");
- pc->column = 1;
- return;
- }
-
- nl = chunk_get_prev(pc);
-
- /* outside of any expression or statement? */
- if (pc->level == 0)
- {
- if ((nl != NULL) && (nl->nl_count > 1))
- {
- LOG_FMT(LCMTIND, "rule 2 - level 0, nl before\n");
- pc->column = 1;
- return;
- }
- }
-
- prev = chunk_get_prev(nl);
- if (chunk_is_comment(prev) && (nl->nl_count == 1))
- {
- int coldiff = prev->orig_col - pc->orig_col;
-
- if ((coldiff <= 3) && (coldiff >= -3))
- {
- pc->column = prev->column;
- LOG_FMT(LCMTIND, "rule 3 - prev comment, coldiff = %d, now in %d\n",
- coldiff, pc->column);
- return;
- }
- }
- /* check if special single line comment rule applies */
- if (cpd.settings[UO_indent_sing_line_comments].n > 0 && single_line_comment_indent_rule_applies(pc))
- {
- pc->column = col + cpd.settings[UO_indent_sing_line_comments].n;
- LOG_FMT(LCMTIND, "rule 4 - single line comment indent, now in %d\n", pc->column);
- return;
- }
- LOG_FMT(LCMTIND, "rule 5 - fall-through, stay in %d\n", col);
-
- pc->column = col;
-}
-
-
-/**
- * Put spaces on either side of the preproc (#) symbol.
- * This is done by pointing pc->str into pp_str and adjusting the
- * length.
- */
-void indent_preproc(void)
-{
- chunk_t *pc;
- chunk_t *next;
- int pp_level;
- int pp_level_sub = 0;
- int tmp;
-
- /* Define a string of 16 spaces + # + 16 spaces */
- static const char *pp_str = " # ";
- static const char *alt_str = " %: ";
-
- /* Scan to see if the whole file is covered by one #ifdef */
- int stage = 0;
-
- for (pc = chunk_get_head(); pc != NULL; pc = chunk_get_next(pc))
- {
- if (chunk_is_comment(pc) || chunk_is_newline(pc))
- {
- continue;
- }
-
- if (stage == 0)
- {
- /* Check the first PP, make sure it is an #if type */
- if (pc->type != CT_PREPROC)
- {
- break;
- }
- next = chunk_get_next(pc);
- if ((next == NULL) || (next->type != CT_PP_IF))
- {
- break;
- }
- stage = 1;
- }
- else if (stage == 1)
- {
- /* Scan until a PP at level 0 is found - the close to the #if */
- if ((pc->type == CT_PREPROC) &&
- (pc->pp_level == 0))
- {
- stage = 2;
- }
- continue;
- }
- else if (stage == 2)
- {
- /* We should only see the rest of the preprocessor */
- if ((pc->type == CT_PREPROC) ||
- ((pc->flags & PCF_IN_PREPROC) == 0))
- {
- stage = 0;
- break;
- }
- }
- }
-
- if (stage == 2)
- {
- LOG_FMT(LINFO, "The whole file is covered by a #IF\n");
- pp_level_sub = 1;
- }
-
- for (pc = chunk_get_head(); pc != NULL; pc = chunk_get_next(pc))
- {
- if (pc->type != CT_PREPROC)
- {
- continue;
- }
-
- if (pc->column != 1)
- {
- /* Don't handle preprocessors that aren't in column 1 */
- LOG_FMT(LINFO, "%s: Line %d doesn't start in column 1 (%d)\n",
- __func__, pc->orig_line, pc->column);
- continue;
- }
-
- /* point into pp_str */
- if (pc->len == 2)
- {
- /* alternate token crap */
- pc->str = &alt_str[16];
- }
- else
- {
- pc->str = &pp_str[16];
- }
-
- pp_level = pc->pp_level - pp_level_sub;
- if (pp_level < 0)
- {
- pp_level = 0;
- }
- else if (pp_level > 16)
- {
- pp_level = 16;
- }
-
- /* Note that the indent is removed by default */
- if ((cpd.settings[UO_pp_indent].a & AV_ADD) != 0)
- {
- /* Need to add some spaces */
- pc->str -= pp_level;
- pc->len += pp_level;
- }
- else if (cpd.settings[UO_pp_indent].a == AV_IGNORE)
- {
- tmp = (pc->orig_col <= 16) ? pc->orig_col - 1 : 16;
- pc->str -= tmp;
- pc->len += tmp;
- }
-
- /* Add spacing by adjusting the length */
- if ((cpd.settings[UO_pp_space].a & AV_ADD) != 0)
- {
- pc->len += pp_level;
- }
-
- next = chunk_get_next(pc);
- if (next != NULL)
- {
- reindent_line(next, pc->len + 1);
- }
-
- LOG_FMT(LPPIS, "%s: Indent line %d to %d (len %d, next->col %d)\n",
- __func__, pc->orig_line, pp_level, pc->len, next->column);
- }
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/lambda.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/lambda.cpp
deleted file mode 100644
index 5262d00f..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/lambda.cpp
+++ /dev/null
@@ -1,77 +0,0 @@
-void f1()
-{
- auto a =
- [=] (int *a, Something & b)
- {
- std::cout << "blah: " << *a;
- };
-}
-
-void f1a()
-{
- std::for_each(a, b,
- [](Something & b)
- {
- std::cout << "blah: " << *a;
- });
-}
-
-void f1b()
-{
- std::for_each(a, b,
- [](int & b) -> foo
- {
- b += 3;
- return b;
- });
-}
-
-void f2()
-{
- Invoke(a, b,
- [&one, two](int *a, Something & b)
- {
- std::cout << "blah: " << *a;
- });
-}
-
-void f3a()
-{
- auto a = [] {};
- auto b = []{return true;};
-}
-
-void f3b()
-{
- Invoke(a, b,
- [&one, two]
- {
- std::cout << "blah: " << one << two;
- });
-}
-
-void f3c()
-{
- int a[]{};
-}
-
-void g1()
-{
- auto a = [ = ](int* a, Something &b) { std::cout << "blah: " << *a; };
-}
-
-void g1a()
-{
- std::for_each(a, b, [](Something& b){std::cout<<"blah: "<<* a;});
-}
-
-void g1b()
-{
- std::for_each(a, b, [] (int& b)->foo{ b+=3; return(b); });
-}
-
-void g2()
-{
- Invoke(a, b,
- [&one, two] (int *a, Something&b){ std::cout << "blah: " << *a; });
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/lambda2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/lambda2.cpp
deleted file mode 100644
index d641c281..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/lambda2.cpp
+++ /dev/null
@@ -1,82 +0,0 @@
-void f1()
-{
- auto a =
- [=](int *a, Something & b)
- {
- std::cout << "blah: " << *a;
- };
-}
-
-void f1a()
-{
- std::for_each(a, b,
- [](Something & b)
- {
- std::cout << "blah: " << *a;
- }
- );
-}
-
-void f1b()
-{
- std::for_each(a, b,
- [](int & b) -> foo
- {
- b += 3;
- return b;
- }
- );
-}
-
-void f2()
-{
- Invoke(a, b,
- [&one, two](int *a, Something & b)
- {
- std::cout << "blah: " << *a;
- }
- );
-}
-
-void f3a()
-{
- auto a = [] {};
- auto b = []{return true;};
-}
-
-void f3b()
-{
- Invoke(a, b,
- [&one, two]
- {
- std::cout << "blah: " << one << two;
- }
- );
-}
-
-void f3c()
-{
- int a[]{};
-}
-
-void g1()
-{
- auto a = [ = ](int* a, Something &b) { std::cout << "blah: " << *a; };
-}
-
-void g1a()
-{
- std::for_each(a, b, [](Something& b){std::cout<<"blah: "<<* a;});
-}
-
-void g1b()
-{
- std::for_each(a, b, [] (int& b)->foo{ b+=3; return(b); });
-}
-
-void g2()
-{
- Invoke(a, b,
- [&one, two] (int *a, Something&b){ std::cout << "blah: " << *a; });
-
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/misc2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/misc2.cpp
deleted file mode 100644
index f1be4478..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/misc2.cpp
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
-I tried to modify the spaces when using casts like static_cast etc. by
-using sp_before_angle, sp_after_angle and sp_inside_angle. Even setting
-all of those options to remove results in the following:
-*/
-
-myvar = dynamic_cast < MyClass<T>* > (other);
-// expected:
-//myvar = dynamic_cast<MyClass<T>*>(other);
-
-/*
-Sometime pointers and references are still not detected correctly in
-special cases - i guess.
-*/
-//When using "sp_before_ptr_star = remove" the result is:
-typedef std::list<StreamedData *>::iterator iterator;
-//typedef std::list<StreamedData *>::iterator iterator;
-//------------------------------^ This space show not be there
-
-typedef void (T::*Routine)(void);
-
-//Similar with "sp_before_byref = remove":
-unsigned long allocate(unsigned long size, void* & p);
-//unsigned long allocate(unsigned long size, void* & p);
-//------------------------------------------------^ The same here
-
-void foo(void)
-{
- List<byte>bob = new List<byte> ();
-
- /* Align assignments */
- align_assign(chunk_get_head(),
- cpd.settings[UO_align_assign_span].n,
- cpd.settings[UO_align_assign_thresh].n);
-}
-
-Args::Args(int argc, char **argv)
-{
- m_count = argc;
- m_values = argv;
- int len = (argc >> 3) + 1;
- m_used = new UINT8[len];
- if (m_used != NULL)
- {
- memset(m_used, 0, len);
- }
-}
-
-void Args(int argc, char **argv)
-{
- m_count = argc;
- m_values = argv;
- int len = (argc >> 3) + 1;
- m_used = new UINT8[len];
- if (m_used != NULL)
- {
- memset(m_used, 0, len);
- }
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/output.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/output.cpp
deleted file mode 100644
index 4563c43b..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/output.cpp
+++ /dev/null
@@ -1,657 +0,0 @@
-/**
- * @file output.cpp
- * Does all the output & comment formatting.
- *
- * $Id: output.cpp 510 2006-09-20 01:14:56Z bengardner $
- */
-
-#include "uncrustify_types.h"
-#include "prototypes.h"
-#include "chunk_list.h"
-#include <cstring>
-#include <cstdlib>
-
-
-
-void add_char(char ch)
-{
- /* convert a newline into the LF/CRLF/CR sequence */
- if (ch == '\n')
- {
- fputs(cpd.newline, cpd.fout);
- cpd.column = 1;
- cpd.did_newline = 1;
- }
- else
- {
- fputc(ch, cpd.fout);
- if (ch == '\t')
- {
- cpd.column = next_tab_column(cpd.column);
- }
- else
- {
- cpd.column++;
- }
- }
-}
-
-void add_text(const char *text)
-{
- char ch;
-
- while ((ch = *text) != 0)
- {
- text++;
- add_char(ch);
- }
-}
-
-void add_text_len(const char *text, int len)
-{
- while (len-- > 0)
- {
- add_char(*text);
- text++;
- }
-}
-
-
-/**
- * Advance to a specific column
- * cpd.column is the current column
- *
- * @param column The column to advance to
- */
-void output_to_column(int column, bool allow_tabs)
-{
- int nc;
-
- cpd.did_newline = 0;
- if (allow_tabs)
- {
- /* tab out as far as possible and then use spaces */
- while ((nc = next_tab_column(cpd.column)) <= column)
- {
- add_text("\t");
- }
- }
- /* space out the final bit */
- while (cpd.column < column)
- {
- add_text(" ");
- }
-}
-
-void output_indent(int column, int brace_col)
-{
- if ((cpd.column == 1) && (cpd.settings[UO_indent_with_tabs].n != 0))
- {
- if (cpd.settings[UO_indent_with_tabs].n == 2)
- {
- brace_col = column;
- }
-
- /* tab out as far as possible and then use spaces */
- int nc;
- while ((nc = next_tab_column(cpd.column)) <= brace_col)
- {
- add_text("\t");
- }
- }
-
- /* space out the rest */
- while (cpd.column < column)
- {
- add_text(" ");
- }
-}
-
-
-
-void output_parsed(FILE *pfile)
-{
- chunk_t *pc;
- int cnt;
-
- output_options(pfile);
- output_defines(pfile);
- output_types(pfile);
-
- fprintf(pfile, "-=====-\n");
- fprintf(pfile, "Line Tag Parent Columns Br/Lvl/pp Flg Nl Text");
- for (pc = chunk_get_head(); pc != NULL; pc = chunk_get_next(pc))
- {
- fprintf(pfile, "\n%3d> %13.13s[%13.13s][%2d/%2d/%2d][%d/%d/%d][%6x][%d-%d]",
- pc->orig_line, get_token_name(pc->type),
- get_token_name(pc->parent_type),
- pc->column, pc->orig_col, pc->orig_col_end,
- pc->brace_level, pc->level, pc->pp_level,
- pc->flags, pc->nl_count, pc->after_tab);
-
- if ((pc->type != CT_NEWLINE) && (pc->len != 0))
- {
- for (cnt = 0; cnt < pc->column; cnt++)
- {
- fprintf(pfile, " ");
- }
- fprintf(pfile, "%.*s", pc->len, pc->str);
- }
- }
- fprintf(pfile, "\n-=====-\n");
- fflush(pfile);
-}
-
-void output_options(FILE *pfile)
-{
- int idx;
- const option_map_value *ptr;
-
- fprintf(pfile, "-== Options ==-\n");
- for (idx = 0; idx < UO_option_count; idx++)
- {
- ptr = get_option_name(idx);
- if (ptr != NULL)
- {
- if (ptr->type == AT_BOOL)
- {
- fprintf(pfile, "%3d) %32s = %s\n",
- ptr->id, ptr->name,
- cpd.settings[ptr->id].b ? "True" : "False");
- }
- else if (ptr->type == AT_IARF)
- {
- fprintf(pfile, "%3d) %32s = %s\n",
- ptr->id, ptr->name,
- (cpd.settings[ptr->id].a == AV_ADD) ? "Add" :
- (cpd.settings[ptr->id].a == AV_REMOVE) ? "Remove" :
- (cpd.settings[ptr->id].a == AV_FORCE) ? "Force" : "Ignore");
- }
- else if (ptr->type == AT_LINE)
- {
- fprintf(pfile, "%3d) %32s = %s\n",
- ptr->id, ptr->name,
- (cpd.settings[ptr->id].le == LE_AUTO) ? "Auto" :
- (cpd.settings[ptr->id].le == LE_LF) ? "LF" :
- (cpd.settings[ptr->id].le == LE_CRLF) ? "CRLF" :
- (cpd.settings[ptr->id].le == LE_CR) ? "CR" : "???");
- }
- else /* AT_NUM */
- {
- fprintf(pfile, "%3d) %32s = %d\n",
- ptr->id, ptr->name, cpd.settings[ptr->id].n);
- }
- }
- }
-}
-
-/**
- * This renders the chunk list to a file.
- */
-void output_text(FILE *pfile)
-{
- chunk_t *pc;
- chunk_t *prev;
- int cnt;
- int lvlcol;
- bool allow_tabs;
-
- cpd.fout = pfile;
-
- for (pc = chunk_get_head(); pc != NULL; pc = chunk_get_next(pc))
- {
- if (pc->type == CT_NEWLINE)
- {
- for (cnt = 0; cnt < pc->nl_count; cnt++)
- {
- add_char('\n');
- }
- cpd.did_newline = 1;
- cpd.column = 1;
- LOG_FMT(LOUTIND, " xx\n");
- }
- else if (pc->type == CT_COMMENT_MULTI)
- {
- output_comment_multi(pc);
- }
- else if (pc->type == CT_COMMENT_CPP)
- {
- pc = output_comment_cpp(pc);
- }
- else if (pc->len == 0)
- {
- /* don't do anything for non-visible stuff */
- LOG_FMT(LOUTIND, " <%d> -", pc->column);
- }
- else
- {
- /* indent to the 'level' first */
- if (cpd.did_newline)
- {
- if (cpd.settings[UO_indent_with_tabs].n == 1)
- {
- lvlcol = 1 + (pc->brace_level * cpd.settings[UO_indent_columns].n);
- if ((pc->column >= lvlcol) && (lvlcol > 1))
- {
- output_to_column(lvlcol, true);
- }
- }
- allow_tabs = (cpd.settings[UO_indent_with_tabs].n == 2) ||
- (chunk_is_comment(pc) &&
- (cpd.settings[UO_indent_with_tabs].n != 0));
-
- LOG_FMT(LOUTIND, " %d> col %d/%d - ", pc->orig_line, pc->column, cpd.column);
- }
- else
- {
- /* not the first item on a line */
- if (cpd.settings[UO_align_keep_tabs].b)
- {
- allow_tabs = pc->after_tab;
- }
- else
- {
- prev = chunk_get_prev(pc);
- allow_tabs = (cpd.settings[UO_align_with_tabs].b &&
- ((pc->flags & PCF_WAS_ALIGNED) != 0) &&
- (((pc->column - 1) % cpd.settings[UO_output_tab_size].n) == 0) &&
- ((prev->column + prev->len + 1) != pc->column));
- }
- LOG_FMT(LOUTIND, " %d -", pc->column);
- }
-
- output_to_column(pc->column, allow_tabs);
- add_text_len(pc->str, pc->len);
- cpd.did_newline = chunk_is_newline(pc);
- }
- }
-}
-
-
-/**
- * Given a multi-line comemnt block that starts in column X, figure out how
- * much subsequent lines should be indented.
- *
- * The answer is either 0 or 1.
- *
- * The decision is based on:
- * - the first line length
- * - the second line leader length
- * - the last line length
- *
- * If the first and last line are the same length and don't contain any alnum
- * chars and (the first line len > 2 or the second leader is the same as the
- * first line length), then the indent is 0.
- *
- * If the leader on the second line is 1 wide or missing, then the indent is 1.
- *
- * Otherwise, the indent is 0.
- *
- * @param str The comment string
- * @param len Length of the comment
- * @param start_col Starting column
- * @return 0 or 1
- */
-static int calculate_comment_body_indent(const char *str, int len, int start_col)
-{
- int idx = 0;
- int first_len = 0;
- int last_len = 0;
- int width = 0;
-
- /* find the last line length */
- for (idx = len - 1; idx > 0; idx--)
- {
- if ((str[idx] == '\n') || (str[idx] == '\r'))
- {
- idx++;
- while ((idx < len) && ((str[idx] == ' ') || (str[idx] == '\t')))
- {
- idx++;
- }
- last_len = len - idx;
- break;
- }
- }
-
- /* find the first line length */
- for (idx = 0; idx < len; idx++)
- {
- if ((str[idx] == '\n') || (str[idx] == '\r'))
- {
- first_len = idx;
- while ((str[first_len - 1] == ' ') || (str[first_len - 1] == '\t'))
- {
- first_len--;
- }
-
- /* handle DOS endings */
- if ((str[idx] == '\r') && (str[idx + 1] == '\n'))
- {
- idx++;
- }
- idx++;
- break;
- }
- }
-
- /* Scan the second line */
- width = 0;
- for ( /* nada */; idx < len; idx++)
- {
- if ((str[idx] == ' ') || (str[idx] == '\t'))
- {
- if (width > 0)
- {
- break;
- }
- continue;
- }
- if ((str[idx] == '\n') || (str[idx] == '\r'))
- {
- /* Done with second line */
- break;
- }
-
- /* Count the leading chars */
- if ((str[idx] == '*') ||
- (str[idx] == '|') ||
- (str[idx] == '\\') ||
- (str[idx] == '#') ||
- (str[idx] == '+'))
- {
- width++;
- }
- else
- {
- break;
- }
- }
-
- //LOG_FMT(LSYS, "%s: first=%d last=%d width=%d\n", __func__, first_len, last_len, width);
-
- /*TODO: make the first_len minimum (4) configurable? */
- if ((first_len == last_len) && ((first_len > 4) || first_len == width))
- {
- return(0);
- }
-
- return((width == 2) ? 0 : 1);
-}
-
-/**
- * Outputs the CPP comment at pc.
- * CPP comment combining is done here
- *
- * @return the last chunk output'd
- */
-chunk_t *output_comment_cpp(chunk_t *first)
-{
- int col = first->column;
- int col_br = 1 + (first->brace_level * cpd.settings[UO_indent_columns].n);
-
- /* Make sure we have at least one space past the last token */
- if (first->parent_type == CT_COMMENT_END)
- {
- chunk_t *prev = chunk_get_prev(first);
- if (prev != NULL)
- {
- int col_min = prev->column + prev->len + 1;
- if (col < col_min)
- {
- col = col_min;
- }
- }
- }
-
- /* Bump out to the column */
- output_indent(col, col_br);
-
- if (!cpd.settings[UO_cmt_cpp_to_c].b)
- {
- add_text_len(first->str, first->len);
- return(first);
- }
-
- /* If we are grouping, see if there is something to group */
- bool combined = false;
- if (cpd.settings[UO_cmt_cpp_group].b)
- {
- /* next is a newline by definition */
- chunk_t *next = chunk_get_next(first);
- if ((next != NULL) && (next->nl_count == 1))
- {
- next = chunk_get_next(next);
-
- /**
- * Only combine the next comment if they are both at indent level or
- * the second one is NOT at indent or less
- *
- * A trailing comment cannot be combined with a comment at indent
- * level or less
- */
- if ((next != NULL) &&
- (next->type == CT_COMMENT_CPP) &&
- (((next->column == 1) && (first->column == 1)) ||
- ((next->column == col_br) && (first->column == col_br)) ||
- ((next->column > col_br) && (first->parent_type == CT_COMMENT_END))))
- {
- combined = true;
- }
- }
- }
-
- if (!combined)
- {
- /* nothing to group: just output a single line */
- add_text_len("/*", 2);
- if ((first->str[2] != ' ') && (first->str[2] != '\t'))
- {
- add_char(' ');
- }
- add_text_len(&first->str[2], first->len - 2);
- add_text_len(" */", 3);
- return(first);
- }
-
- chunk_t *pc = first;
- chunk_t *last = first;
-
- /* Output the first line */
- add_text_len("/*", 2);
- if (combined && cpd.settings[UO_cmt_cpp_nl_start].b)
- {
- /* I suppose someone more clever could do this without a goto or
- * repeating too much code...
- */
- goto cpp_newline;
- }
- goto cpp_addline;
-
- /* Output combined lines */
- while ((pc = chunk_get_next(pc)) != NULL)
- {
- if ((pc->type == CT_NEWLINE) && (pc->nl_count == 1))
- {
- continue;
- }
- if (pc->type != CT_COMMENT_CPP)
- {
- break;
- }
- if (((pc->column == 1) && (first->column == 1)) ||
- ((pc->column == col_br) && (first->column == col_br)) ||
- ((pc->column > col_br) && (first->parent_type == CT_COMMENT_END)))
- {
- last = pc;
-cpp_newline:
- add_char('\n');
- output_indent(col, col_br);
- add_char(' ');
- add_char(cpd.settings[UO_cmt_star_cont].b ? '*' : ' ');
-cpp_addline:
- if ((pc->str[2] != ' ') && (pc->str[2] != '\t'))
- {
- add_char(' ');
- }
- add_text_len(&pc->str[2], pc->len - 2);
- }
- }
-
- if (cpd.settings[UO_cmt_cpp_nl_end].b)
- {
- add_char('\n');
- output_indent(col, col_br);
- }
- add_text_len(" */", 3);
- return(last);
-}
-
-void output_comment_multi(chunk_t *pc)
-{
- int cmt_col = pc->column;
- const char *cmt_str;
- int remaining;
- char ch;
- chunk_t *prev;
- char line[1024];
- int line_len;
- int line_count = 0;
- int ccol;
- int col_diff = 0;
- int xtra = 1;
-
- prev = chunk_get_prev(pc);
- if ((prev != NULL) && (prev->type != CT_NEWLINE))
- {
- cmt_col = pc->orig_col;
- }
- else
- {
- col_diff = pc->orig_col - pc->column;
- }
-
- // fprintf(stderr, "Indenting1 line %d to col %d (orig=%d) col_diff=%d\n",
- // pc->orig_line, cmt_col, pc->orig_col, col_diff);
-
- xtra = calculate_comment_body_indent(pc->str, pc->len, pc->column);
-
- ccol = 1;
- remaining = pc->len;
- cmt_str = pc->str;
- line_len = 0;
- while (remaining > 0)
- {
- ch = *cmt_str;
- cmt_str++;
- remaining--;
-
- /* handle the CRLF and CR endings. convert both to LF */
- if (ch == '\r')
- {
- ch = '\n';
- if (*cmt_str == '\n')
- {
- cmt_str++;
- remaining--;
- }
- }
-
- /* Find the start column */
- if (line_len == 0)
- {
- if (ch == ' ')
- {
- ccol++;
- continue;
- }
- else if (ch == '\t')
- {
- ccol = calc_next_tab_column(ccol, cpd.settings[UO_input_tab_size].n);
- continue;
- }
- else
- {
- //fprintf(stderr, "%d] Text starts in col %d\n", line_count, ccol);
- }
- }
-
- line[line_len++] = ch;
-
- /* If we just hit an end of line OR we just hit end-of-comment... */
- if ((ch == '\n') || (remaining == 0))
- {
- line_count++;
-
- /* strip trailing tabs and spaces before the newline */
- if (ch == '\n')
- {
- line_len--;
- while ((line_len > 0) &&
- ((line[line_len - 1] == ' ') ||
- (line[line_len - 1] == '\t')))
- {
- line_len--;
- }
- line[line_len++] = ch;
- }
- line[line_len] = 0;
-
- if (line_count == 1)
- {
- /* this is the first line - add unchanged */
-
- /*TODO: need to support indent_with_tabs mode 1 */
- output_to_column(cmt_col, cpd.settings[UO_indent_with_tabs].b);
- add_text_len(line, line_len);
- }
- else
- {
- /* This is not the first line, so we need to indent to the
- * correct column.
- */
- ccol -= col_diff;
- if (ccol < cmt_col)
- {
- ccol = cmt_col;
- }
-
- if (line[0] == '\n')
- {
- /* Emtpy line - just a '\n' */
- if (cpd.settings[UO_cmt_star_cont].b)
- {
- output_to_column(cmt_col, cpd.settings[UO_indent_with_tabs].b);
- add_text((xtra == 1) ? " *" : "*");
- }
- add_char('\n');
- }
- else
- {
- /* If this doesn't start with a '*' or '|' */
- if ((line[0] != '*') && (line[0] != '|') && (line[0] != '#') &&
- (line[0] != '\\') && (line[0] != '+'))
- {
- output_to_column(cmt_col, cpd.settings[UO_indent_with_tabs].b);
- if (cpd.settings[UO_cmt_star_cont].b)
- {
- add_text((xtra == 1) ? " * " : "* ");
- }
- else
- {
- add_text(" ");
- }
- output_to_column(ccol, cpd.settings[UO_indent_with_tabs].b);
- }
- else
- {
- output_to_column(cmt_col + xtra, cpd.settings[UO_indent_with_tabs].b);
- }
- add_text_len(line, line_len);
- }
- }
- line_len = 0;
- ccol = 1;
- }
- }
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/pp_indent_brace.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/pp_indent_brace.cpp
deleted file mode 100644
index 86ed0a8f..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/pp_indent_brace.cpp
+++ /dev/null
@@ -1,24 +0,0 @@
-// Example for preprocessor statement in a function definition
-// Config uses more than tested option, uses:
-// pp_if_indent_code = true to enable preprocesser indent
-// pp_indent_brace = false to override preprocessor indent for braces
-MyClass::MyClass()
-{
- if(isSomething)
- {
- DoSomething();
- }
-
-#if (USE_FIVE)
- {
- DoSomethingAlso();
- }
-#endif
-
-#if (USE_SIX)
- {
- Six mySix;
- DoSomethingWithSix(mySix);
- }
-#endif
-} \ No newline at end of file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/semicolon-removal-after-ternary-operator.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/semicolon-removal-after-ternary-operator.cpp
deleted file mode 100644
index a344480b..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/semicolon-removal-after-ternary-operator.cpp
+++ /dev/null
@@ -1,9 +0,0 @@
-std::string StrGet()
-{
- return IsConnected() ? "Connected" : {};
-}
-
-std::string StrGet2()
-{
- return !IsConnected() ? {} : "Connected";
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/trailing_return.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/trailing_return.cpp
deleted file mode 100644
index de061955..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/trailing_return.cpp
+++ /dev/null
@@ -1,44 +0,0 @@
-auto f0(int a, int b) -> int;
-
-struct Foo
-{
- auto f01() -> bool;
- auto f02() noexcept -> bool;
- auto f03() noexcept(true) -> bool;
- auto f04() noexcept(false) -> bool;
- auto f05() noexcept -> bool = delete;
- auto f06() noexcept(true) -> bool = delete;
- auto f07() noexcept(false) -> bool = delete;
-
- auto f11() const -> bool;
- auto f12() const noexcept -> bool;
- auto f13() const noexcept(true) -> bool;
- auto f14() const noexcept(false) -> bool;
- auto f15() const noexcept -> bool = delete;
- auto f16() const noexcept(true) -> bool = delete;
- auto f17() const noexcept(false) -> bool = delete;
-
- auto f21() throw() -> bool;
- auto f22() throw() -> bool = delete;
- auto f23() const throw() -> bool;
- auto f24() const throw() -> bool = delete;
-};
-
-struct Bar
-{
- Bar() : m_func([](void*) -> result_t{ return magic; }) {}
-};
-
-void foo()
-{
- auto l = [](int n) -> x_t{ return n + 5; };
- x([](int n) -> x_t{ return n + 5; });
-}
-
-static auto f25() -> bool {
- return true;
-}
-
-static auto f26() const noexcept(true) -> bool {
- return true;
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/delete-space-oc.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/delete-space-oc.mm
deleted file mode 100644
index 66e24dc8..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/delete-space-oc.mm
+++ /dev/null
@@ -1,69 +0,0 @@
-/* EditorApplication */
-
-#include <string>
-
-#ifdef __OBJC__
-#import <Cocoa/Cocoa.h>
-
-class HierarchyState;
-@interface EditorApplication : NSObject
-{
- IBOutlet id m_MainWindow;
- IBOutlet id m_PaneController;
- id m_RenderTimer;
-
- IBOutlet id m_CutItem;
- IBOutlet id m_CopyItem;
- IBOutlet id m_PasteItem;
-
- IBOutlet id m_DuplicateItem;
- IBOutlet id m_DeleteItem;
-
- IBOutlet id m_FrameSelectedItem;
- IBOutlet id m_FindItem;
- IBOutlet id m_SelectAllItem;
-}
-
-- (IBAction)SaveAssets:(id)sender;
-- (IBAction)CloseScene:(id)sender;
-- (IBAction)NewProject:(id)sender;
-- (IBAction)OpenProject:(id)sender;
-
-- (IBAction)SaveAsSceneToDisk:(id)sender;
-
-- (IBAction)EnterSerialNumber:(id)sender;
-- (IBAction)ReturnLicense:(id)sender;
-- (IBAction)CompileScene:(id)sender;
-- (IBAction)CompileSceneAutomatic:(id)sender;
-
-- (IBAction)saveDocument:(id)sender;
-
-- (IBAction)LoadSceneFromDisk:(id)sender;
-
-- (void)RemoveDisplayTimer;
-- (void)RegisterUpdateTimer:(int)frequency;
-
-- (void)refreshModifiedFile:(NSAppleEventDescriptor*)event withReplyEvent:(NSAppleEventDescriptor*)replyEvent;
-- (void)closeFile:(NSAppleEventDescriptor*)event withReplyEvent:(NSAppleEventDescriptor*)replyEvent;
-
-- (IBAction)ShowAboutDialog:(id)sender;
-- (IBAction)ShowPreferences:(id)sender;
-- (IBAction)ShowPackageManager:(id)sender;
-
-- (IBAction) delete:(id)sender;
-- (IBAction) copy:(id)action;
-- (IBAction)paste:(id)action;
-- (IBAction)duplicate:(id)action;
-- (IBAction)cut:(id)action;
-- (IBAction)selectAll:(id)action;
-- (IBAction)find:(id)action;
-- (IBAction)frameSelected:(id)action;
-- (IBAction)frameSelectedWithLock:(id)action;
-
-// Assetstore protocol handler and registration
-- (void)registerAssetStoreURLProtocol;
-- (void)getUrl:(NSAppleEventDescriptor*)event withReplyEvent:(NSAppleEventDescriptor*)replyEvent;
-
-@end
-
-#endif
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/func-param-wrap-oc.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/func-param-wrap-oc.mm
deleted file mode 100644
index 16f98ce9..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/func-param-wrap-oc.mm
+++ /dev/null
@@ -1,5 +0,0 @@
- if(progress <= 0)
- {
- [[NSBezierPath bezierPathWithOvalInRect:NSMakeRect(NSMinX(pieRect)+stroke,NSMinY(pieRect)+stroke,
- NSWidth(pieRect)-2*stroke,NSHeight(pieRect)-2*stroke)] fill];
- }
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/objective-c.test b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/objective-c.test
deleted file mode 100644
index f9d84477..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/objective-c.test
+++ /dev/null
@@ -1,187 +0,0 @@
-# Test cases specifically for the Objective C language.
-#
-# Range: 50000 - 59999
-# test.name config.file input.file
-
-# The .h file needs a language override
-50001 oc/oc1.cfg oc/Fraction.h OC
-50002 oc/oc2.cfg oc/Fraction.m
-50003 oc/oc2.cfg oc/main.m
-50004 oc/oc4.cfg oc/string.m
-50005 oc/oc5.cfg oc/Declarations.h OC
-50006 oc/oc6.cfg oc/exceptions.m
-50007 oc/oc7.cfg oc/misc.m
-50008 oc/oc8.cfg oc/protocol.m
-50009 oc/oc9.cfg oc/literals.mm
-
-50010 oc/sp_after_oc_return_type_add.cfg oc/return_type.m
-50011 oc/sp_after_oc_return_type_force.cfg oc/return_type.m
-50012 oc/sp_after_oc_return_type_remove.cfg oc/return_type.m
-
-50014 oc/sp_oc_classname_paren-r.cfg oc/sp_oc_classname_paren-r.m
-50015 oc/oc10.cfg oc/receiver.m
-
-50016 oc/oc11.cfg oc/ternary.m
-50017 oc/ternary_short.cfg oc/ternary.m
-
-50018 common/indent_inside_ternary_operator.cfg oc/indent-inside-ternary-operator.m
-
-50020 oc/sp_after_oc_at_sel_add.cfg oc/selector.m
-50021 oc/sp_after_oc_at_sel_force.cfg oc/selector.m
-50022 oc/sp_after_oc_at_sel_remove.cfg oc/selector.m
-
-50025 oc/oc6.cfg oc/exceptions.m
-50026 oc/sp_after_throw_remove.cfg oc/exceptions.m
-
-50030 common/sort_imports.cfg oc/sort_import.m
-50031 oc/mod_sort_incl_import_prioritize_filename.cfg oc/sort_import.m
-50032 oc/mod_sort_incl_import_ignore_extension.cfg oc/sort_import.m
-50033 oc/mod_sort_incl_import_prioritize_extensionless.cfg oc/sort_import.m
-50034 oc/mod_sort_incl_import_prioritize_angle_over_quotes.cfg oc/sort_import.m
-50035 oc/mod_sort_incl_import_grouping_enabled.cfg oc/sort_import_group.m
-
-50040 oc/objc_complex_method.cfg oc/complex_method.m
-
-50050 oc/objc_complex_method.cfg oc/real_world_file.m
-
-50060 oc/align_oc_msg_colon_span-1.cfg oc/oc-split.m
-50061 oc/bug_167.cfg oc/bug_167.m
-
-50062 common/aet.cfg oc/issue_2631.m
-
-50070 oc/blocks.cfg oc/blocks.m
-50071 oc/sp_before_oc_block_caret_force.cfg oc/blocks.m
-50072 oc/sp_before_oc_block_caret_remove.cfg oc/blocks.m
-50073 oc/sp_after_oc_block_caret_add.cfg oc/blocks.m
-50074 oc/sp_after_oc_block_caret_force.cfg oc/blocks.m
-50075 oc/blocks.cfg oc/blocks.m
-50076 oc/sp_before_oc_block_caret_remove.cfg oc/blocks.m
-
-50077 oc/blocks.cfg oc/more_blocks.m
-50078 oc/sp_before_oc_block_caret_force.cfg oc/more_blocks.m
-50079 oc/sp_before_oc_block_caret_remove.cfg oc/more_blocks.m
-50080 oc/sp_after_oc_block_caret_add.cfg oc/more_blocks.m
-50081 oc/sp_after_oc_block_caret_force.cfg oc/more_blocks.m
-50082 oc/blocks.cfg oc/more_blocks.m
-50083 oc/sp_before_oc_block_caret_remove.cfg oc/more_blocks.m
-50084 oc/nl_brace_square.cfg oc/more_blocks.m
-50085 oc/nl_after_func_body-3.cfg oc/block_in_method.m
-50086 oc/issue_2643.cfg oc/block_in_method.m
-50087 oc/indent_oc_inside_msg_sel.cfg oc/indent_oc_inside_msg_sel.m
-
-50090 oc/oc12.cfg oc/kw.m
-50091 oc/issue_2656.cfg oc/block_in_method.m
-
-50095 oc/oc13.cfg oc/box.m
-50100 oc/bug_340.cfg oc/bug_340.m
-
-50110 oc/oc14.cfg oc/msg_align.m
-50111 common/del_semicolon.cfg oc/ns_enum.m
-50112 common/empty.cfg oc/ns_enum.m
-50113 oc/sp_enum_paren-r.cfg oc/ns_enum.m
-
-50120 oc/gh137.cfg oc/gh137.m
-
-50200 oc/sp_block_as_argument.cfg oc/more_blocks_2.m
-50201 oc/sp_block_as_argument.cfg oc/blocks_align.m
-50202 oc/sp_block_as_argument2.cfg oc/blocks_align.m
-50203 oc/sp_block_as_argument3.cfg oc/blocks_align.m
-50204 oc/sp_block_as_argument4.cfg oc/blocks_align.m
-50205 oc/sp_block_as_argument5.cfg oc/msg_align.m
-50206 common/aet.cfg oc/issue_2727.m
-50207 oc/issue_3031.cfg oc/issue_3031.mm
-
-50300 oc/sp_after_send_oc_colon-f.cfg oc/msg.m
-
-50400 oc/oc16.cfg oc/for.m
-
-50410 oc/oc_cond_colon.cfg oc/oc_cond_colon.m OC+
-50411 common/attribute_specifier_seqs.cfg oc/attribute_specifier_seqs.mm OC+
-
-50500 oc/oc17.cfg oc/code_placeholder.m
-
-50510 oc/gh293.a.cfg oc/gh293.m
-50511 oc/gh293.b.cfg oc/gh293.m
-50512 oc/sp_oc_catch.cfg oc/sp_oc_catch.m
-50513 oc/sp_oc_boxed.cfg oc/sp_oc_boxed.m
-50514 oc/indent_boxed.cfg oc/indent_boxed.m
-50515 oc/sp_oc_synchronized.cfg oc/sp_oc_synchronized.m
-
-50600 oc/nl_oc_block_brace-f.cfg oc/bug_i_477.m
-50601 common/empty.cfg oc/bug_i_408.m
-50602 oc/bug_i_125-412.cfg oc/bug_i_125-412.m
-50603 oc/oc18.cfg oc/gh511.m
-50604 oc/objc_bug_497.cfg oc/bug_497.m
-50605 common/empty.cfg oc/bug_404.m
-50606 oc/oc19.cfg oc/bug_1366.m
-50607 common/aet-sp_after_oc_msg_receiver.cfg oc/sp_after_oc_msg_receiver.m
-50608 common/aet.cfg oc/blocks_align2.m
-50609 common/sp_arith-f.cfg oc/negative_value.m
-50610 common/aet.cfg oc/nelem.m
-50611 common/aet.cfg oc/for2.m
-50612 common/aet.cfg oc/chunk_ends_type1.m
-50613 common/aet.cfg oc/chunk_ends_type2.m
-50614 common/aet.cfg oc/chunk_ends_type3.m
-50615 common/aet.cfg oc/block_literal_protocol.m
-50616 common/aet.cfg oc/oc_msg_in_pp.m
-50617 common/aet.cfg oc/boxed_receiver.m
-50618 common/aet-func_def.cfg oc/func_def.mm
-50619 common/aet.cfg oc/cast.m
-50620 common/aet.cfg oc/sp_after_angle.m
-50621 common/aet.cfg oc/Fraction.h
-50622 common/aet.cfg oc/c-cpp-oc-wrapper.c
-50623 common/aet.cfg oc/extern-c-attribute.m
-50624 common/aet.cfg oc/typeof.m
-50625 common/aet-sp_inside_braces_oc_dict.cfg oc/sp_inside_braces_oc_dict.m
-50626 common/aet.cfg oc/chunk_ends_type4.m
-50627 common/aet.cfg oc/method_ends_semicolon.m
-50628 common/aet.cfg oc/macro-close-brace.m
-50629 common/aet.cfg oc/pp_bool.m
-
-50630 oc/nl_func_call_args_multi_line_ignore_closures.cfg oc/nl_func_call_args_multi_line_ignore_closures.m
-
-50700 common/cmt_insert-0.cfg oc/cmt_insert.m
-50701 common/cmt_insert-0.cfg oc/cmt_insert2.m
-
-50800 oc/obj-c-properties.cfg oc/properties.m
-50801 common/empty.cfg oc/i1213.m
-50802 oc/obj-c-available.cfg oc/available.m
-50803 oc/indent_single_newline.cfg oc/indent_single_newline.m
-
-50804 common/aet.cfg oc/issue_2629.m
-50805 common/aet.cfg oc/issue_2724.m
-
-50810 oc/bug_841.cfg oc/bug_841.m
-50811 oc/oc_bug_1674.cfg oc/bug_1674.m
-50812 oc/oc_bug_1683.cfg oc/bug_1683.m
-
-50813 oc/sp_before_oc_proto_list_add.cfg oc/sp_before_oc_proto_list.m
-50814 oc/sp_before_oc_proto_list_force.cfg oc/sp_before_oc_proto_list.m
-50815 oc/sp_before_oc_proto_list_remove.cfg oc/sp_before_oc_proto_list.m
-
-50816 oc/issue_2675.cfg oc/issue_2675.m
-50817 common/aet.cfg oc/issue_2722.m
-
-50900 oc/1927.cfg oc/1927.m
-50901 oc/Issue_2172.cfg oc/Issue_2172.m
-50902 common/empty.cfg oc/Issue_2289.m
-50903 oc/Issue_681.cfg oc/Issue_681.oc
-
-50904 oc/double_angle_space_1.cfg oc/double_angle_space.m
-50905 oc/double_angle_space_2.cfg oc/double_angle_space.m
-50906 oc/double_angle_space_3.cfg oc/double_angle_space.m
-
-# test the options sp_ with the value "ignore"
-51000 oc/sp_cond_ternary_short.cfg oc/sp_cond_ternary_short.m
-51001 oc/sp_enum_paren-i.cfg oc/ns_enum-i.m
-51002 oc/sp_oc_catch-i.cfg oc/sp_oc_catch.m
-51003 oc/sp_oc_catch-r.cfg oc/sp_oc_catch.m
-51004 oc/block_pointer.cfg oc/block_pointer.m
-
-#
-# adopt tests from UT
-10018 oc/delete-space-oc.cfg oc/delete-space-oc.mm
-10019 common/empty.cfg oc/func-param-wrap-oc.mm
-10020 oc/align-objc-like-xcode.cfg oc/align-objc-like-xcode.m
-10021 oc/double-indent-objc-dict.cfg oc/double-indent-objc-dict.m
-10022 oc/indent-objc-block.cfg oc/indent-objc-block.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/test_uncrustify/utilities.py b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/test_uncrustify/utilities.py
deleted file mode 100644
index 2d930222..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/test_uncrustify/utilities.py
+++ /dev/null
@@ -1,210 +0,0 @@
-# Logic for listing and running tests.
-#
-# * @author Ben Gardner October 2009
-# * @author Guy Maurel October 2015
-# * @author Matthew Woehlke June 2018
-#
-
-import argparse
-import os
-import subprocess
-import sys
-
-from .ansicolor import printc
-from .config import config, all_tests, FAIL_ATTRS, PASS_ATTRS, SKIP_ATTRS
-from .failure import (Failure, MismatchFailure, UnexpectedlyPassingFailure,
- UnstableFailure)
-from .test import FormatTest
-
-
-# -----------------------------------------------------------------------------
-def _add_common_arguments(parser):
- parser.add_argument('-c', '--show-commands', action='store_true',
- help='show commands')
-
- parser.add_argument('-v', '--verbose', action='store_true',
- help='show detailed test information')
-
- parser.add_argument('-d', '--diff', action='store_true',
- help='show diff on failure')
-
- parser.add_argument('-x', '--xdiff', action='store_true',
- help='show diff on expected failure')
-
- parser.add_argument('-g', '--debug', action='store_true',
- help='generate debug files (.log, .unc)')
-
- parser.add_argument('-e', '--executable', type=str, required=True,
- metavar='PATH',
- help='uncrustify executable to test')
-
- parser.add_argument('--git', type=str, default=config.git_exe,
- metavar='PATH',
- help='git executable to use to generate diffs')
-
- parser.add_argument('--result-dir', type=str, default=os.getcwd(),
- metavar='DIR',
- help='location to which results will be written')
-
-
-# -----------------------------------------------------------------------------
-def add_test_arguments(parser):
- _add_common_arguments(parser)
-
- parser.add_argument("name", type=str, metavar='NAME')
- parser.add_argument("--lang", type=str, required=True)
- parser.add_argument("--input", type=str, required=True)
- parser.add_argument("--config", type=str, required=True)
- parser.add_argument("--expected", type=str, required=True)
- parser.add_argument("--rerun-config", type=str, metavar='INPUT')
- parser.add_argument("--rerun-expected", type=str, metavar='CONFIG')
- parser.add_argument("--xfail", action='store_true')
-
-
-# -----------------------------------------------------------------------------
-def add_source_tests_arguments(parser):
- _add_common_arguments(parser)
-
- parser.add_argument('-p', '--show-all', action='store_true',
- help='show passed/skipped tests')
-
-
-# -----------------------------------------------------------------------------
-def add_format_tests_arguments(parser):
- _add_common_arguments(parser)
-
- parser.add_argument('-p', '--show-all', action='store_true',
- help='show passed/skipped tests')
-
- parser.add_argument('-r', '--select', metavar='CASE(S)', type=str,
- help='select tests to be executed')
-
- parser.add_argument('tests', metavar='TEST', type=str, nargs='*',
- default=all_tests,
- help='test(s) to run (default all)')
-
- # Arguments for generating the CTest script; users should not use these
- # directly
- parser.add_argument("--write-ctest", type=str, help=argparse.SUPPRESS)
- parser.add_argument("--cmake-config", type=str, help=argparse.SUPPRESS)
- parser.add_argument("--python", type=str, help=argparse.SUPPRESS)
-
-
-# -----------------------------------------------------------------------------
-def parse_args(parser):
- args = parser.parse_args()
-
- if args.git is not None:
- config.git_exe = args.git
-
- config.uncrustify_exe = args.executable
- if not os.path.exists(config.uncrustify_exe):
- msg = 'Specified uncrustify executable {!r} does not exist'.format(
- config.uncrustify_exe)
- printc("FAILED: ", msg, **FAIL_ATTRS)
- sys.exit(-1)
-
- # Do a sanity check on the executable
- try:
- with open(os.devnull, 'w') as bitbucket:
- subprocess.check_call([config.uncrustify_exe, '--help'],
- stdout=bitbucket)
- except Exception as exc:
- msg = ('Specified uncrustify executable {!r} ' +
- 'does not appear to be usable: {!s}').format(
- config.uncrustify_exe, exc)
- printc("FAILED: ", msg, **FAIL_ATTRS)
- sys.exit(-1)
-
- return args
-
-
-# -----------------------------------------------------------------------------
-def run_tests(tests, args, selector=None):
- pass_count = 0
- fail_count = 0
- mismatch_count = 0
- unstable_count = 0
- unexpectedly_passing_count = 0
-
- for test in tests:
- if selector is not None and not selector.test(test.test_name):
- if args.show_all:
- printc("SKIPPED: ", test.test_name, **SKIP_ATTRS)
- continue
-
- try:
- test.run(args)
- if args.show_all:
- outcome = 'XFAILED' if test.test_xfail else 'PASSED'
- printc('{}: '.format(outcome), test.test_name, **PASS_ATTRS)
- pass_count += 1
- except UnstableFailure:
- unstable_count += 1
- except MismatchFailure:
- mismatch_count += 1
- except UnexpectedlyPassingFailure:
- unexpectedly_passing_count += 1
- except Failure:
- fail_count += 1
-
- return {
- 'passing': pass_count,
- 'failing': fail_count,
- 'mismatch': mismatch_count,
- 'unstable': unstable_count,
- 'xpass': unexpectedly_passing_count
- }
-
-
-# -----------------------------------------------------------------------------
-def report(counts):
- total = sum(counts.values())
- print('{passing} / {total} tests passed'.format(total=total, **counts))
- if counts['failing'] > 0:
- printc('{failing} tests failed to execute'.format(**counts),
- **FAIL_ATTRS)
- if counts['mismatch'] > 0:
- printc(
- '{mismatch} tests did not match the expected output'.format(
- **counts),
- **FAIL_ATTRS)
- if counts['unstable'] > 0:
- printc('{unstable} tests were unstable'.format(**counts),
- **FAIL_ATTRS)
- if counts['xpass'] > 0:
- printc('{xpass} tests passed but were expected to fail'
- .format(**counts), **FAIL_ATTRS)
-
-
-# -----------------------------------------------------------------------------
-def read_format_tests(filename, group):
- tests = []
-
- print("Processing " + filename)
- with open(filename, 'rt') as f:
- for line_number, line in enumerate(f, 1):
- line = line.strip()
- if not len(line):
- continue
- if line.startswith('#'):
- continue
-
- test = FormatTest()
- test.build_from_declaration(line, group, line_number)
- tests.append(test)
-
- return tests
-
-
-# -----------------------------------------------------------------------------
-def fixup_ctest_path(path, config):
- if config is None:
- return path
-
- dirname, basename = os.path.split(path)
- if os.path.basename(dirname).lower() == config.lower():
- dirname, junk = os.path.split(dirname)
- return os.path.join(dirname, '${CTEST_CONFIGURATION_TYPE}', basename)
-
- return path
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/vala.test b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/vala.test
deleted file mode 100644
index 56fbf00f..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/vala.test
+++ /dev/null
@@ -1,15 +0,0 @@
-#
-# Test cases specifically for the Vala language.
-#
-# Range: 70000 - 79999
-# test.name config.file input.file
-
-70000 vala/ben_100.cfg vala/list.vala
-70001 vala/ben_101.cfg vala/advanced.vala
-70010 vala/ben_102.cfg vala/verbatim_str.vala
-70011 vala/ben_103.cfg vala/verbatim_str2.vala
-70012 common/ben2.cfg vala/verbatim_str2.vala
-70020 vala/ben_104.cfg vala/preproc.vala
-70287 vala/ben_105.cfg vala/gh287.vala
-70300 vala/Issue_2090.cfg vala/Issue_2090.vala
-70301 vala/Issue_2270.cfg vala/Issue_2270.vala
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/uncrustify.vpj b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/uncrustify.vpj
deleted file mode 100644
index 97b2b50a..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/uncrustify.vpj
+++ /dev/null
@@ -1,130 +0,0 @@
-<!DOCTYPE Project SYSTEM "http://www.slickedit.com/dtd/vse/10.0/vpj.dtd">
-<Project
- Version="10.0"
- VendorName="SlickEdit"
- WorkingDir=".">
- <Config
- Name="Release"
- OutputFile=""
- CompilerConfigName="">
- <Menu>
- <Target
- Name="Compile"
- MenuCaption="&amp;Compile"
- CaptureOutputWith="ProcessBuffer"
- SaveOption="SaveCurrent"
- RunFromDir="%rw">
- <Exec/>
- </Target>
- <Target
- Name="Build"
- MenuCaption="&amp;Build"
- CaptureOutputWith="ProcessBuffer"
- SaveOption="SaveWorkspaceFiles"
- RunFromDir="%rw">
- <Exec/>
- </Target>
- <Target
- Name="Rebuild"
- MenuCaption="&amp;Rebuild"
- CaptureOutputWith="ProcessBuffer"
- SaveOption="SaveWorkspaceFiles"
- RunFromDir="%rw">
- <Exec/>
- </Target>
- <Target
- Name="Debug"
- MenuCaption="&amp;Debug"
- SaveOption="SaveNone"
- RunFromDir="%rw">
- <Exec/>
- </Target>
- <Target
- Name="Execute"
- MenuCaption="E&amp;xecute"
- SaveOption="SaveNone"
- RunFromDir="%rw">
- <Exec CmdLine='"uncrustify.exe"'/>
- </Target>
- </Menu>
- </Config>
- <Files>
- <Folder
- Name="Source Files"
- Filters="*.c;*.C;*.cc;*.cpp;*.cp;*.cxx;*.prg;*.pas;*.dpr;*.asm;*.s;*.bas;*.java;*.cs;*.sc;*.e;*.cob;*.html;*.rc;*.tcl;*.py;*.pl">
- <F N="src/align.cpp"/>
- <F N="src/align_stack.cpp"/>
- <F N="src/args.cpp"/>
- <F N="src/backup.cpp"/>
- <F N="src/brace_cleanup.cpp"/>
- <F N="src/braces.cpp"/>
- <F N="src/chunk_list.cpp"/>
- <F N="src/ChunkStack.cpp"/>
- <F N="src/combine.cpp"/>
- <F N="src/compat_posix.cpp"/>
- <F N="src/compat_win32.cpp"/>
- <F N="src/defines.cpp"/>
- <F N="src/detect.cpp"/>
- <F N="src/indent.cpp"/>
- <F N="src/keywords.cpp"/>
- <F N="src/lang_pawn.cpp"/>
- <F N="src/logger.cpp"/>
- <F N="src/logmask.cpp"/>
- <F N="src/md5.cpp"/>
- <F N="src/newlines.cpp"/>
- <F N="src/options.cpp"/>
- <F N="src/output.cpp"/>
- <F N="src/parens.cpp"/>
- <F N="src/parse_frame.cpp"/>
- <F N="src/punctuators.cpp"/>
- <F N="src/semicolons.cpp"/>
- <F N="src/sorting.cpp"/>
- <F N="src/space.cpp"/>
- <F N="src/tokenize.cpp"/>
- <F N="src/tokenize_cleanup.cpp"/>
- <F N="src/unc_text.cpp"/>
- <F N="src/uncrustify.cpp"/>
- <F N="src/unicode.cpp"/>
- <F N="src/universalindentgui.cpp"/>
- <F N="src/width.cpp"/>
- </Folder>
- <Folder
- Name="Header Files"
- Filters="*.h;*.H;*.hh;*.hpp;*.hxx;*.inc;*.sh;*.cpy;*.if">
- <F N="src/align_stack.h"/>
- <F N="src/args.h"/>
- <F N="src/backup.h"/>
- <F N="src/base_types.h"/>
- <F N="src/char_table.h"/>
- <F N="src/chunk_list.h"/>
- <F N="src/ChunkStack.h"/>
- <F N="src/config.h"/>
- <F N="src/ListManager.h"/>
- <F N="src/log_levels.h"/>
- <F N="src/logger.h"/>
- <F N="src/logmask.h"/>
- <F N="src/md5.h"/>
- <F N="src/options.h"/>
- <F N="src/prototypes.h"/>
- <F N="src/punctuators.h"/>
- <F N="src/token_enum.h"/>
- <F N="src/token_names.h"/>
- <F N="src/unc_ctype.h"/>
- <F N="src/unc_text.h"/>
- <F N="src/uncrustify_types.h"/>
- <F N="src/uncrustify_version.h"/>
- <F N="win32/windows_compat.h"/>
- </Folder>
- <Folder
- Name="Other Files"
- Filters="">
- <F N="src/config.h.in"/>
- <F N="src/Makefile.am"/>
- <F N="src/uncrustify_version.h.in"/>
- </Folder>
- </Files>
- <CompatibleVersions>
- <PrevVersion VersionNumber="9.0"/>
- <PrevVersion VersionNumber="9.1"/>
- </CompatibleVersions>
-</Project>
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0.orig.tar.gz b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0.orig.tar.gz
new file mode 100644
index 00000000..63a0427a
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0.orig.tar.gz
Binary files differ
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/.editorconfig b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/.editorconfig
index 3942fe21..3942fe21 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/.editorconfig
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/.editorconfig
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/.gitattributes b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/.gitattributes
index 5ef989a3..5ef989a3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/.gitattributes
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/.gitattributes
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/.github/ISSUE_TEMPLATE b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/.github/ISSUE_TEMPLATE
index d98e5cf5..d98e5cf5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/.github/ISSUE_TEMPLATE
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/.github/ISSUE_TEMPLATE
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/.github/workflows/uncrustify_test.yml b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/.github/workflows/uncrustify_test.yml
new file mode 100644
index 00000000..a7fab544
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/.github/workflows/uncrustify_test.yml
@@ -0,0 +1,38 @@
+---
+
+name: uncrustify_test
+on: [push, pull_request]
+
+# Cancel any in-progress CI runs for a PR if it is updated
+concurrency:
+ group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.head_ref || github.sha }}
+ cancel-in-progress: true
+
+jobs:
+ check-uncrustify:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - name: cmake-part-and-tests
+ env:
+ BADGE: linux
+ run: mkdir build;
+ cd build;
+ cmake -DCMAKE_BUILD_TYPE=Release ..;
+ make;
+ ../scripts/run_ctest.py
+
+
+ debug-ninja-uncrustify:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - uses: seanmiddleditch/gha-setup-ninja@master
+ - name: cmake-part-and-tests
+ env:
+ BADGE: linux
+ run: mkdir build;
+ cd build;
+ cmake -GNinja -DCMAKE_BUILD_TYPE=Debug ..;
+ ninja;
+ ../scripts/run_ctest.py
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/.gitignore b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/.gitignore
new file mode 100644
index 00000000..c4c9b54b
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/.gitignore
@@ -0,0 +1,70 @@
+# "Default" build tree
+/build/
+
+# PyCharm help directory
+venv/
+
+# Compiled Python code
+*.pyc
+
+# Testing framework (if run_tests.py is run from the source tree)
+results/
+results_2/
+
+# Static analysis and code coverage
+/tests/pclint/
+/cov-int
+gcov_test/
+
+# SlickEdit workspace history and tag files
+*.vtg
+*.vpwh*
+
+# for projects that use Waf for building: http://code.google.com/p/waf/
+.waf-*
+.lock*
+waf*
+
+# KDevelop
+*.kdev4
+.kdev4/
+
+# XCode
+*.xcodeproj/*.pbxuser
+*.xcodeproj/*.perspectivev3
+*.xcodeproj/*.mode1v3
+*.xcodeproj/*.tm_build_errors
+*.tmproj
+*.xcworkspace
+xcuserdata
+
+# Sublime
+*.sublime-workspace
+
+# Eclipse Configuration
+.cproject
+.project
+.settings
+
+# backup files
+# texteditor (kate, etc.)
+*~
+# git mergetool.keepBackup or KDiff3
+*.orig
+
+# uncrustified files
+*.uncrustify
+
+
+# CLion
+.idea/
+cmake-build-*/
+
+# Vim
+*.swp
+
+# Clangd
+/.cache/clangd/
+
+# Compilation database
+compile_commands.json
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/.travis.yml b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/.travis.yml
index a3bfcf7a..a3bfcf7a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/.travis.yml
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/.travis.yml
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/AUTHORS b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/AUTHORS
new file mode 100644
index 00000000..e4d72680
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/AUTHORS
@@ -0,0 +1,175 @@
+Author:
+2005 - 2016 : Ben Gardner
+
+Maintenance:
+Guy Maurel
+Matthew Woehlke
+
+until 2020-11-05:
+Other collaborators:
+Alan Fineberg
+Alexander GQ Gerasiov
+Alex Henrie
+André Berg
+Andrei Alexandrescu
+Andrey Starodubtsev
+Anirban Pramanick
+Antti Tapaninen
+Arne Forlie
+Arseniy Shestakov
+asobhy
+atauzki
+Aurélien Gâteau
+Benio
+Ben Iofel
+Ben Mayo
+Beren Minor
+Bi-Ruei, Chiu
+Biswa96
+Biswapriyo Nath
+B. Kevin Hardman
+Bogdan Popescu
+Brandon Slack
+Brendan Long
+CharlieYJH
+Chris Lalancette
+Clemens Rabe
+Clint Lawrence
+Code Able
+Cody Schafer
+Corentin Noël
+Dandielo
+Daniel Chumak
+Daniele Bartolini
+Dan Rose
+Dave Lee
+David Catmull
+David E. O'Brien
+David Lechner
+David Schaefgen
+Dirk Thomas
+Dittrich, Rico
+Dmitry Marakasov
+Dmitry Povolotsky
+Dmytro Povolotskyi
+Dundar Göc
+Dženan Zukić
+Eism
+Emerson Knapp
+Emmanuel Christophe
+epac-tom
+Ethan Gao
+Florin Pop
+Gary Ash
+Ger Hobbelt
+Hackerpilot
+Hannes Schmidt
+hghdev
+Huang-Ming Huang
+Husk3r
+Ilya Lyubimov
+Ingo Brückl
+Ivan Nazarenko
+Ivan Romanov
+Jakub Schmidtke
+Jan Weiß
+Jason
+JavDevGames
+Jeremy H
+Jeremy T Hilliker
+Jim Meyering
+Jiri Hruska
+jodi.the.tigger
+Jody Hagins
+Joel Ostraat
+Joergen Ibsen
+Johnny Oskarsson
+Jonas Hurrelmann
+Joshua Gross
+Joshua Parker
+Julian Picht
+Kalle Raiskila
+Keepun
+krys
+Laurent Tréguier
+Lauri Kasanen
+lbmaian
+Leon Breedt
+Lorenz Haas
+Lykurg
+Maciej Bogusz
+Marco Stephan
+Marek Fort
+Marius Zwicker
+Mark Stegeman
+Markus Geimer
+Martin Simonovsky
+Martin Storsjo
+Matthew McDole
+Matthew Woehlke
+Maxim Mikityanskiy
+Max Smolens
+MeXx
+Michaël Peeters
+Michele Calgaro
+Mihai Popescu
+Mike
+Mike Gelfand
+Mirko König
+mjbogusz
+MrTheMake
+Nate
+neok-m4700
+Nico Decker
+Oleg Liatte
+Oleg Smolsky
+Owen Rudge
+Pat Notz
+Patrick Rohr
+Paul Cercueil
+Paul Smith
+Pavel Geiger
+Paweł Benetkiewicz
+PerfectCarl
+Peter Bruin
+Peter Hartley
+Peter Jonas
+Peter Kolbus
+Peter Waller
+Piet Van Reepingen
+PMheart
+Randolph R. Settgast
+Randolph Settgast
+RaveTheTadpole
+Richard Maxwell
+Ricky Lopez
+Roland Schulz
+Roman Gordienko
+Ryan Maxwell
+Samish Chandra Kolli
+Samish Kolli
+Scott Bilas
+Sebastian Andersson
+S. Gilles
+Shazron Abdullah
+Siddharth Kannan
+Slávek Banko
+Spark-NF
+Stefan Koch
+Stefan Nunninger
+Stephen Gilles
+Steven Lee
+Suhaib Ishaque
+t-bltg
+Tim Hütz
+Timotheus Pokorra
+Todd Richmond
+Twigz
+U-RDEC\ParkerJS
+Vadim Zeitlin
+Viktor Kireev
+Vincent Rouillé
+Vojtěch Balík
+Vyacheslav Shegai
+Waldir Pimenta
+Yannick Bühler
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/BUGS b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/BUGS
index a6e2ccaa..a6e2ccaa 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/BUGS
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/BUGS
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/CMakeLists.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/CMakeLists.txt
new file mode 100644
index 00000000..8c8a59ef
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/CMakeLists.txt
@@ -0,0 +1,556 @@
+cmake_minimum_required(VERSION 3.2)
+
+project(uncrustify)
+
+if("${PROJECT_SOURCE_DIR}" STREQUAL "${PROJECT_BINARY_DIR}")
+ message(FATAL_ERROR "
+ In-source builds are not supported, please remove the `CMakeFiles'
+ folder and `CMakeCache.txt', and create a folder for the build:
+ mkdir build; cd build; cmake ..
+ ")
+endif()
+
+include(CheckCXXCompilerFlag)
+include(CheckIncludeFileCXX)
+include(CheckSymbolExists)
+include(CheckCXXSymbolExists)
+include(CheckTypeSize)
+include(CTest)
+
+if( ${CMAKE_VERSION} VERSION_LESS "3.12" )
+ find_package( PythonInterp )
+ if( NOT PYTHON_EXECUTABLE )
+ message( FATAL_ERROR "Python is required, but was not found on your system" )
+ endif()
+ else( )
+ find_package(Python3 REQUIRED)
+ set(PYTHON_EXECUTABLE ${Python3_EXECUTABLE})
+endif()
+
+#
+# Check compiler flags
+#
+if(MSVC)
+ add_definitions(/D_CRT_SECURE_NO_WARNINGS /D_CRT_NONSTDC_NO_WARNINGS /wd4267)
+ add_definitions(/utf-8)
+elseif(CMAKE_COMPILER_IS_GNUCXX)
+ set(gcc_warning_flags
+ -Wall
+ -Wextra
+ -Wshadow
+ -Wpointer-arith
+ -Wcast-qual
+ -Wcast-align
+ -Wc++11-extensions
+ )
+ foreach(flag ${gcc_warning_flags})
+ string(REGEX REPLACE "[^a-zA-Z0-9]+" "_" flag_var "CXXFLAG_${flag}")
+ CHECK_CXX_COMPILER_FLAG("${flag}" ${flag_var})
+ if(${flag_var})
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${flag}")
+ endif()
+ unset(flag_var)
+ endforeach()
+ if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5)
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-missing-field-initializers")
+ endif()
+ unset(gcc_warning_flags)
+elseif(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
+endif()
+
+set(CMAKE_CXX_STANDARD 11)
+set(CMAKE_CXX_STANDARD_REQUIRED YES)
+
+if(ENABLE_SANITIZER)
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O1 -fno-omit-frame-pointer -fsanitize=${ENABLE_SANITIZER}")
+endif()
+
+#set(UNCRUSTIFY_SEPARATE_TESTS "True")
+
+include_directories(
+ ${PROJECT_BINARY_DIR}/src
+ ${PROJECT_SOURCE_DIR}/src
+ ${PROJECT_BINARY_DIR}
+)
+
+#
+# Determine config
+#
+if(WIN32)
+ # Windows builds use src/windows_compat.h instead of config.h
+else()
+ # Generate config.h
+ set(avail_headers "")
+
+ set(headers
+ inttypes.h
+ memory.h
+ stdint.h
+ stdlib.h
+ strings.h
+ string.h
+ sys/stat.h
+ sys/types.h
+ unistd.h
+ utime.h
+ )
+ foreach(header ${headers})
+ string(TOUPPER "${header}" header_uc)
+ string(REGEX REPLACE "[^A-Z0-9_]" "_" include_var "HAVE_${header_uc}")
+ check_include_file_cxx("${header}" ${include_var})
+ if(${include_var})
+ list(APPEND avail_headers ${header})
+ endif()
+ unset(include_var)
+ unset(header_uc)
+ endforeach()
+ unset(headers)
+
+ check_include_file("stdbool.h" HAVE_STDBOOL_H)
+
+ set(symbols
+ memset
+ strcasecmp
+ strchr
+ strdup
+ strerror
+ strtol
+ strtoul
+ )
+ foreach(symbol ${symbols})
+ string(TOUPPER "${symbol}" symbol_uc)
+ string(REGEX REPLACE "[^A-Z0-9_]" "_" symbol_var "HAVE_${symbol_uc}")
+ check_cxx_symbol_exists("${symbol}" "${avail_headers}" ${symbol_var})
+ unset(symbol_var)
+ unset(symbol_uc)
+ endforeach()
+ unset(symbols)
+
+ unset(avail_headers)
+
+ check_type_size(_Bool _BOOL LANGUAGE C)
+
+ configure_file(src/config.h.in config.h @ONLY)
+endif()
+
+#
+# Generate uncrustify_version.h
+#
+
+set(UNCRUSTIFY_VERSION "0.75.0_f")
+
+option(NoGitVersionString "Do not use make_version.py and git to build a version string" OFF)
+if(NoGitVersionString)
+ configure_file(src/uncrustify_version.h.in uncrustify_version.h @ONLY)
+ add_custom_target(generate_version_header) # Dummy target
+else()
+ # Add target to generate version header;
+ # do this every build to ensure git SHA is up to date
+ add_custom_target(generate_version_header
+ BYPRODUCTS "${PROJECT_BINARY_DIR}/uncrustify_version.h"
+ COMMAND
+ ${CMAKE_COMMAND}
+ -D PYTHON_EXECUTABLE:STRING=${PYTHON_EXECUTABLE}
+ -D SOURCE_DIR:PATH="${PROJECT_SOURCE_DIR}"
+ -D INPUT:PATH="${PROJECT_SOURCE_DIR}/src/uncrustify_version.h.in"
+ -D OUTPUT:PATH="${PROJECT_BINARY_DIR}/uncrustify_version.h"
+ -D UNCRUSTIFY_VERSION:STRING="${UNCRUSTIFY_VERSION}"
+ -P ${PROJECT_SOURCE_DIR}/cmake/GenerateVersionHeader.cmake
+ COMMENT "Generating version header"
+ )
+ set_source_files_properties(
+ "${PROJECT_BINARY_DIR}/uncrustify_version.h"
+ PROPERTIES GENERATED TRUE
+ )
+endif()
+
+#
+# Generate token_names.h
+#
+add_custom_command(
+ OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/token_names.h"
+ COMMAND ${CMAKE_COMMAND}
+ "-Dsrc_file=${PROJECT_SOURCE_DIR}/src/token_enum.h"
+ "-Ddst_file=${CMAKE_CURRENT_BINARY_DIR}/token_names.h"
+ -P "${PROJECT_SOURCE_DIR}/cmake/GenerateTokenNames.cmake"
+ MAIN_DEPENDENCY src/token_enum.h
+ COMMENT "Generating token_names.h"
+)
+
+# Set up commands for generated source files
+function(py_gen OUTPUT SCRIPT INPUT)
+ set(out "${PROJECT_BINARY_DIR}/src/${OUTPUT}")
+ set(deps "${PROJECT_SOURCE_DIR}/src/${INPUT}")
+ get_filename_component(outdir "${out}" DIRECTORY)
+ foreach(arg IN LISTS ARGN)
+ if (IS_ABSOLUTE "${arg}")
+ list(APPEND deps "${arg}")
+ else()
+ list(APPEND deps "${PROJECT_SOURCE_DIR}/src/${arg}")
+ endif()
+ endforeach()
+
+ add_custom_command(
+ OUTPUT "${out}"
+ COMMAND ${CMAKE_COMMAND} -E make_directory "${outdir}"
+ COMMAND ${PYTHON_EXECUTABLE}
+ "${PROJECT_SOURCE_DIR}/scripts/${SCRIPT}"
+ "${out}"
+ ${deps}
+ DEPENDS ${deps} "${PROJECT_SOURCE_DIR}/scripts/${SCRIPT}"
+ MAIN_DEPENDENCY src/${INPUT}
+ COMMENT "Generating ${OUTPUT}"
+ )
+endfunction()
+
+py_gen(punctuator_table.h
+ make_punctuator_table.py
+ symbols_table.h
+)
+
+py_gen(options.cpp
+ make_options.py
+ options.h
+ options.cpp.in
+)
+
+py_gen(option_enum.h
+ make_option_enum.py
+ option.h
+ option_enum.h.in
+)
+
+py_gen(option_enum.cpp
+ make_option_enum.py
+ option.h
+ option_enum.cpp.in
+)
+
+py_gen(../etc/uncrustify.xml
+ make_katehl.py
+ ../etc/uncrustify.xml.in
+ "${PROJECT_BINARY_DIR}/uncrustify_version.h"
+ options.h
+ option.h
+ token_enum.h
+)
+
+#
+# Uncrustify
+#
+set(uncrustify_sources
+ src/align_add.cpp
+ src/align_asm_colon.cpp
+ src/align_assign.cpp
+ src/align_braced_init_list.cpp
+ src/align.cpp
+ src/align_eigen_comma_init.cpp
+ src/align_func_params.cpp
+ src/align_func_proto.cpp
+ src/align_init_brace.cpp
+ src/align_left_shift.cpp
+ src/align_log_al.cpp
+ src/align_nl_cont.cpp
+ src/align_oc_decl_colon.cpp
+ src/align_oc_msg_colons.cpp
+ src/align_oc_msg_spec.cpp
+ src/align_preprocessor.cpp
+ src/align_same_func_call_params.cpp
+ src/align_stack.cpp
+ src/align_struct_initializers.cpp
+ src/align_tab_column.cpp
+ src/align_tools.cpp
+ src/align_trailing_comments.cpp
+ src/align_typedefs.cpp
+ src/align_var_def_brace.cpp
+ src/args.cpp
+ src/backup.cpp
+ src/brace_cleanup.cpp
+ src/braces.cpp
+ src/calculate_closing_brace_position.cpp
+ src/chunk.cpp
+ src/ChunkStack.cpp
+ src/combine.cpp
+ src/combine_fix_mark.cpp
+ src/combine_labels.cpp
+ src/combine_tools.cpp
+ src/combine_skip.cpp
+ src/compat_posix.cpp
+ src/compat_win32.cpp
+ src/cs_top_is_question.cpp
+ src/detect.cpp
+ src/enum_cleanup.cpp
+ src/EnumStructUnionParser.cpp
+ src/EnumStructUnionParser.h
+ src/flag_braced_init_list.cpp
+ src/flag_decltype.cpp
+ src/flag_parens.cpp
+ src/frame_list.cpp
+ src/indent.cpp
+ src/keywords.cpp
+ src/lang_pawn.cpp
+ src/language_tools.cpp
+ src/logger.cpp
+ src/logmask.cpp
+ src/log_rules.cpp
+ src/md5.cpp
+ src/newlines.cpp
+ src/option.cpp
+ src/options_for_QT.cpp
+ src/output.cpp
+ src/parameter_pack_cleanup.cpp
+ src/parens.cpp
+ src/parent_for_pp.cpp
+ src/ParseFrame.cpp
+ src/pcf_flags.cpp
+ src/punctuators.cpp
+ src/quick_align_again.cpp
+ src/remove_duplicate_include.cpp
+ src/remove_extra_returns.cpp
+ src/semicolons.cpp
+ src/sorting.cpp
+ src/space.cpp
+ src/tokenize_cleanup.cpp
+ src/tokenize.cpp
+ src/uncrustify.cpp
+ src/uncrustify_emscripten.cpp
+ src/uncrustify_types.cpp
+ src/unc_text.cpp
+ src/unc_tools.cpp
+ src/unicode.cpp
+ src/universalindentgui.cpp
+ src/width.cpp
+ ${PROJECT_BINARY_DIR}/src/options.cpp
+ ${PROJECT_BINARY_DIR}/src/option_enum.cpp
+)
+
+set(uncrustify_headers
+ src/add_space_table.h
+ src/align_add.h
+ src/align_asm_colon.h
+ src/align_assign.h
+ src/align_braced_init_list.h
+ src/align_func_params.h
+ src/align_func_proto.h
+ src/align.h
+ src/align_eigen_comma_init.h
+ src/align_init_brace.h
+ src/align_left_shift.h
+ src/align_log_al.h
+ src/align_nl_cont.h
+ src/align_oc_decl_colon.h
+ src/align_oc_msg_colons.h
+ src/align_oc_msg_spec.h
+ src/align_preprocessor.h
+ src/align_same_func_call_params.h
+ src/align_stack.h
+ src/align_struct_initializers.h
+ src/align_tab_column.h
+ src/align_tools.h
+ src/align_trailing_comments.h
+ src/align_typedefs.h
+ src/align_var_def_brace.h
+ src/args.h
+ src/backup.h
+ src/base_types.h
+ src/brace_cleanup.h
+ src/braces.h
+ src/calculate_closing_brace_position.h
+ src/char_table.h
+ src/chunk.h
+ src/ChunkStack.h
+ src/combine.h
+ src/combine_fix_mark.h
+ src/combine_labels.h
+ src/combine_skip.h
+ src/combine_tools.h
+ src/compat.h
+ src/cs_top_is_question.h
+ src/detect.h
+ src/enum_cleanup.h
+ src/enum_flags.h
+ src/error_types.h
+ src/flag_braced_init_list.h
+ src/flag_decltype.h
+ src/flag_parens.h
+ src/frame_list.h
+ src/indent.h
+ src/keywords.h
+ src/lang_pawn.h
+ src/language_tools.h
+ src/ListManager.h
+ src/logger.h
+ src/log_levels.h
+ src/logmask.h
+ src/log_rules.h
+ src/md5.h
+ src/newlines.h
+ src/option.h
+ src/options_for_QT.h
+ src/options.h
+ src/output.h
+ src/parameter_pack_cleanup.h
+ src/parens.h
+ src/parent_for_pp.h
+ src/ParseFrame.h
+ src/pcf_flags.h
+ src/prototypes.h
+ src/punctuators.h
+ src/quick_align_again.h
+ src/remove_duplicate_include.h
+ src/remove_extra_returns.h
+ src/semicolons.h
+ src/sorting.h
+ src/space.h
+ src/symbols_table.h
+ src/token_enum.h
+ src/tokenize_cleanup.h
+ src/tokenize.h
+ src/unc_ctype.h
+ src/uncrustify.h
+ src/uncrustify_limits.h
+ src/uncrustify_types.h
+ src/unc_text.h
+ src/unc_tools.h
+ src/unicode.h
+ src/universalindentgui.h
+ src/width.h
+ src/windows_compat.h
+ ${PROJECT_BINARY_DIR}/src/option_enum.h
+ ${PROJECT_BINARY_DIR}/uncrustify_version.h
+)
+
+set(uncrustify_docs
+ "${PROJECT_SOURCE_DIR}/AUTHORS"
+ "${PROJECT_SOURCE_DIR}/BUGS"
+ "${PROJECT_SOURCE_DIR}/ChangeLog"
+ "${PROJECT_SOURCE_DIR}/COPYING"
+ "${PROJECT_SOURCE_DIR}/HELP"
+ "${PROJECT_SOURCE_DIR}/README.md"
+)
+
+add_executable(uncrustify ${uncrustify_sources} ${uncrustify_headers})
+add_dependencies(uncrustify generate_version_header)
+
+if(CMAKE_VERSION VERSION_LESS 2.8.10)
+ if(CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE)
+ # Multi-configuration or build type set
+ set_property(TARGET uncrustify APPEND PROPERTY
+ COMPILE_DEFINITIONS_DEBUG DEBUG
+ )
+ else()
+ # Single-configuration with no build type set
+ set_property(TARGET uncrustify APPEND PROPERTY
+ COMPILE_DEFINITIONS DEBUG
+ )
+ endif()
+else()
+ set_property(TARGET uncrustify APPEND PROPERTY
+ COMPILE_DEFINITIONS $<$<OR:$<CONFIG:Debug>,$<CONFIG:>>:DEBUG>
+ )
+endif()
+
+#
+# Generate uncrustify.1
+#
+configure_file(man/uncrustify.1.in uncrustify.1 @ONLY)
+
+#
+# Generate uncrustify.xml (katepart highlighting file)
+#
+add_custom_target(katehl
+ DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/etc/uncrustify.xml
+)
+
+#
+# Tests
+#
+if(BUILD_TESTING)
+ enable_testing()
+ add_subdirectory(tests)
+endif()
+
+#
+# Coverage
+#
+OPTION(ENABLE_CODECOVERAGE "Enable code coverage testing support")
+if(ENABLE_CODECOVERAGE)
+ set(CODECOVERAGE_DEPENDS uncrustify)
+ include(${CMAKE_SOURCE_DIR}/cmake/CodeCoverage.cmake)
+endif(ENABLE_CODECOVERAGE)
+
+#
+# Build command to run uncrustify on its own sources
+#
+add_custom_target(format-sources)
+foreach(source IN LISTS uncrustify_sources uncrustify_headers)
+ get_filename_component(source_name ${source} NAME)
+ add_custom_target(format-${source_name}
+ COMMAND uncrustify
+ -c forUncrustifySources.cfg
+ -lCPP --no-backup ${source}
+ COMMENT "Formatting ${source}"
+ WORKING_DIRECTORY ${uncrustify_SOURCE_DIR}
+ )
+ add_dependencies(format-sources format-${source_name})
+endforeach()
+
+#
+# Package
+#
+set(CPACK_PACKAGE_NAME "uncrustify")
+set(CPACK_PACKAGE_VERSION "${UNCRUSTIFY_VERSION}")
+set(CPACK_PACKAGE_VENDOR "Ben Gardner")
+set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Code beautifier")
+set(CPACK_PACKAGE_DESCRIPTION_FILE "${PROJECT_SOURCE_DIR}/README.md")
+set(CPACK_RESOURCE_FILE_LICENSE "${PROJECT_SOURCE_DIR}/COPYING")
+set(CPACK_RESOURCE_FILE_README "${PROJECT_SOURCE_DIR}/README.md")
+set(CPACK_SOURCE_IGNORE_FILES "/\\\\.git/;/\\\\.hg/;/tests/results/;/build.*/")
+if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
+ set(CPACK_INCLUDE_TOPLEVEL_DIRECTORY FALSE)
+ set(CPACK_GENERATOR "ZIP")
+endif()
+include(CPack)
+
+#
+# Install
+#
+if(MSVC)
+ install(TARGETS uncrustify DESTINATION ".")
+ install(FILES ${uncrustify_docs}
+ DESTINATION "."
+ )
+ install(FILES "${PROJECT_SOURCE_DIR}/documentation/htdocs/index.html"
+ DESTINATION "doc"
+ )
+ install(DIRECTORY "${PROJECT_SOURCE_DIR}/etc/"
+ DESTINATION "cfg"
+ FILES_MATCHING PATTERN "*.cfg"
+ )
+else()
+ include(GNUInstallDirs)
+ install(TARGETS uncrustify
+ RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
+ )
+ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/uncrustify.1"
+ DESTINATION "${CMAKE_INSTALL_MANDIR}/man1"
+ )
+ install(DIRECTORY "${PROJECT_SOURCE_DIR}/etc/"
+ DESTINATION "${CMAKE_INSTALL_DOCDIR}/examples"
+ FILES_MATCHING PATTERN "*.cfg"
+ )
+ install(FILES ${uncrustify_docs}
+ DESTINATION "${CMAKE_INSTALL_DOCDIR}"
+ )
+endif()
+
+#
+# Uninstall
+#
+add_custom_target(uninstall "${CMAKE_COMMAND}" -P "${PROJECT_SOURCE_DIR}/cmake/uninstall.cmake")
+
+#
+# add to build the compile_commands.json file, to be used by clang-tidy
+#
+set(CMAKE_EXPORT_COMPILE_COMMANDS "ON" CACHE BOOL "to create the compile_commands.json file" FORCE)
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/CODEOWNERS b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/CODEOWNERS
new file mode 100644
index 00000000..56414821
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/CODEOWNERS
@@ -0,0 +1,11 @@
+* @gmaurel @mwoehlke-kitware @micheleCTDEAdmin
+
+.editorconfig @mihaipopescu
+
+# CI
+.travis.yml @mihaipopescu
+appveyor.yml @mihaipopescu
+
+# emscripten
+#/emscripten/ @CDanU
+#/src/uncrustify_emscripten.cpp @CDanU
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/CONTRIBUTING.md b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/CONTRIBUTING.md
index 8a43f8a8..8a43f8a8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/CONTRIBUTING.md
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/CONTRIBUTING.md
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/COPYING b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/COPYING
index d60c31a9..d60c31a9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/COPYING
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/COPYING
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/ChangeLog b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/ChangeLog
new file mode 100644
index 00000000..0e456e37
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/ChangeLog
@@ -0,0 +1,1600 @@
+Change highlights in uncrustify-0.75.0 (May 2022)
+-------------------------------------------------------------------------------
+ 52131d9fa22fd0c655ae2510563ff85306d4bd27
+ Added : mod_move_case_return Nov 25 2021
+ d0008e933daca163ef8f7258f526e75fb8b5b160
+ Added : sp_ptr_star_func_type Dec 8 2021
+ a17751ae534cb7d1a8b505a111d7b8b50c9842d4
+ Added : pp_indent_at_level0 Dec 14 2021
+ 498c1b3a6c96c9dd8ec13a4c0f616acdb7a03cc5
+ Added : align_braced_init_list_thresh Dec 16 2021
+ Added : align_braced_init_list_span Dec 16 2021
+ 8e811b9a57bc43d280aa592d8838cff93227968e
+ Added : align_assign_on_multi_var_defs Dec 18 2021
+ 75d3c536789ef23d2d8568d891a4e3ba73aa7045
+ Added : sp_byref_paren Dec 24 2021
+ d8507bb212aa317dce0f51227b8fd862354e03c2
+ Added : sp_not_not Dec 28 2021
+ d9e2ae9aad5481f9da818909893e2f55d51ba392
+ Added : indent_ignore_comma_paren Jan 4 2022
+ Added : indent_ignore_comma_brace Jan 4 2022
+ 8eff5202a58732e17f063af8360ff3e2691713aa
+ Added : indent_ignore_bool_paren Jan 13 2022
+ 2c02f5c8285882ddf756992d842db12d0f98188a
+ Added : indent_ignore_arith Jan 18 2022
+ 0664cacee7689cf838425e83f38fb84f5e71bc63
+ Added : mod_full_paren_return_bool Jan 21 2022
+ Added : mod_full_paren_assign_bool Jan 21 2022
+ d593f257e88161a3ed1cff15b354c85e3da68992
+ Added : sp_type_colon Jan 25 2022
+ 026162b8da51660126863b42d00245e21a47d7c0
+ Removed : indent_ignore_comma_paren Jan 28 2022
+ Removed : indent_ignore_bool_paren Jan 28 2022
+ Removed : indent_ignore_comma_brace Jan 28 2022
+ 6cb50031c5e2e3681d69c3dafdbb865a5b6b6a2c
+ Added : indent_ignore_semicolon Feb 1 2022
+ b6f55dd25fb6a12c7f81c0090f8ee42e8823ee93
+ Added : sp_enum_brace Feb 2 2022
+ 8aa0522fcc2ad468f1122943443f5ebf426fffc1
+ Added : indent_ignore_before_class_colon Feb 4 2022
+ 133fe55d6fc0b2e1695bd7a70ccd6d2dcd1b2262
+ Added : indent_ignore_before_constr_colon Feb 4 2022
+ c95460809c74a73459c61712ff2d9142dff101d7
+ Added : indent_ignore_bool Feb 25 2022
+ b37091110063b5c24b64516a49af09b8ca3cc18c
+ Added : indent_ignore_first_continue Feb 25 2022
+ e84f08879a7cf53b0301099a64faadeacf04a3a5
+ Added : indent_ignore_assign Mar 1 2022
+ 6ef69ee2a359f2e1bd8517ba4af25b969951fa71
+ Added : indent_ignore_case_brace Mar 9 2022
+ 02a5e50419fd1bf7c9bf0ff9d208035b47db6fbf
+ Added : indent_namespace_inner_only Apr 12 2022
+ 9040b9f068a179c3a09e0cf202a5ed7f91b2a12b
+ Added : pp_warn_unbalanced_if Apr 15 2022
+ df2ef721c95105b62a9e0cb0e9985947a739a44b
+ Removed : sp_type_question Apr 30 2022
+
+Change highlights in uncrustify-0.74.0 (November 2021)
+-------------------------------------------------------------------------------
+ 4714d5d673d5b9c8f45d70c179f508d60130b18a
+ Added : nl_before_struct Mar 12 2021
+ dbb2903a94668e147b588d3eebc3be917ac4ebca
+ Added : nl_before_ignore_after_case Jun 22 2021
+ e97b93418c03cde680d6fd46209d7e43c5e09bfe
+ Added : sp_before_ptr_star_trailing Jul 1 2021
+ Added : sp_after_ptr_star_trailing Jul 1 2021
+ dd5a7c3b2ab64b903e888a264693a9edb7a98ee5
+ Added : sp_sparen_paren Jul 19 2021
+ 94941c2f9aa8952debab1f8257eb0625bc459392
+ Added : pp_indent_in_guard Jul 28 2021
+ 84d3b9276c007642c4bb73ff562008253e4fe014
+ Added : indent_single_line_comments_before Jul 31 2021
+ Added : indent_single_line_comments_after Jul 31 2021
+ Removed : indent_sing_line_comments Jul 31 2021
+ 0d956a006d64fddd4f8131e6a16a23f7e447cca3
+ Added : sp_after_ellipsis Jul 31 2021
+ 40bbb979ecf7ad36128150f5540a462c890d5e2c
+ Added : mod_remove_duplicate_include Aug 15 2021
+ 97d24f3a05a53521ff2ce94928534f4bab0cc0af
+ Added : sp_between_semi_for_empty Aug 22 2021
+ 63109e6253387480b8bfe7f73a7f2949865fc380
+ Added : nl_before_brace_open Aug 27 2021
+ 03c9ac261c9282b3cf5e92d69de70d6b4566d8e9
+ Added : cmt_trailing_single_line_c_to_cpp Sep 1 2021
+ 1525722486dba45aa053f2c83e3015fa64880443
+ Added : sp_ellipsis_parameter_pack Sep 16 2021
+ Added : sp_parameter_pack_ellipsis Sep 16 2021
+ 2e33ac4314dfbfc18c56ec694b0eba3e6a1318f5
+ Added : sp_byref_ellipsis Sep 21 2021
+ Added : sp_ptr_type_ellipsis Sep 21 2021
+ f19bf09cdce5822cf3d71065cb3900ea52f6e5c7
+ Added : indent_ctor_init_following Sep 30 2021
+ b1274c20bea3f8e2a8d6cd05cbb23c8d66f187a7
+ Added : sp_before_emb_cmt Oct 8 2021
+ Added : sp_num_after_emb_cmt Oct 8 2021
+ Added : sp_before_tr_cmt Oct 8 2021
+ Added : sp_num_before_emb_cmt Oct 8 2021
+ Added : sp_num_before_tr_cmt Oct 8 2021
+ Added : sp_after_emb_cmt Oct 8 2021
+ Removed : sp_before_tr_emb_cmt Oct 8 2021
+ Removed : sp_num_before_tr_emb_cmt Oct 8 2021
+ 563d72fcae6e0aad6e5f0ff998992a48a6767986
+ Added : pp_include_at_level Oct 11 2021
+ 28486dbadcc4d0ff9376776eb63f3c3bd800cf2d
+ Added : sp_return Oct 12 2021
+ 86105064d13fc60d14cfd134a8c3d402e7d27492
+ Added : indent_comment_align_thresh Oct 13 2021
+ 964db2ac20372c45621a55313cdfb1eeb8298800
+ Added : indent_comment Oct 18 2021
+ 92b9047256ece8d9ace2da5c743be2b9cc2b54d8
+ Added : align_func_proto_amp_style Oct 23 2021
+ Added : align_func_proto_star_style Oct 23 2021
+ 094c79e06f6ec3111684b37b77063cf7af658105
+ Added : indent_case_comment Oct 26 2021
+ 7eb595caa38ced024a42ba1602d69e0387b8e3a1
+ Added : indent_switch_body Nov 3 2021
+ cf845deb008b45783ff94a1986131eb180fb54a8
+ Added : sp_inside_for_close Nov 6 2021
+ Added : sp_inside_for Nov 6 2021
+ Added : sp_inside_for_open Nov 6 2021
+ 2caaa17866c3b421de7e28670e85c8f8dade5a77
+ Added : indent_ignore_label Nov 10 2021
+ d8436ef370027bcfd289b19037c39ffdaf0ad4ff
+ Added : sp_ptr_star_func_var Nov 15 2021
+
+Change highlights in uncrustify-0.73.0 (May 2021)
+-------------------------------------------------------------------------------
+
+ b514f25120b12db7b1ca57cdb93dd929a5bf43c4
+ Added : indent_before_class_colon Nov 16 2020
+ 39c969b69663f6e6cee9673e23d349a308edc44a
+ Added : sp_cmt_cpp_region Dec 9 2020
+ 9ca37d0c32729570de2e51c97338bc567e124ae3
+ Added : cmt_sp_before_doxygen_javadoc_tags Dec 24 2020
+ Added : cmt_align_doxygen_javadoc_tags Dec 24 2020
+ 84e2c750d19b47bbe2547141b092855ec1f64424
+ Added : cmt_reflow_fold_regex_file Dec 24 2020
+ 3a8e33a12839ca3bac2e1e0b49eb279362a2ab89
+ Added : processing_cmt_as_regex Dec 31 2020
+ c622135751824705979d37681fe16d9a60e3d77a
+ Added : cmt_reflow_indent_to_paragraph_start Jan 9 2021
+ 9c0799aa096b68550507980a32a529099caf97c5
+ Added : sp_cpp_lambda_argument_list Jan 19 2021
+ 02054b1085166903e8c1384308ac7922cb57bd59
+ Added : nl_do_leave_one_liners Jan 29 2021
+ 6a4d27914fca0c64273fad979355e16021626f8a
+ Added : debug_truncate Feb 7 2021
+ a711e96ef7be6afc9f014c4c7e1e5ea5347aad0d
+ Added : indent_comma_brace Mar 9 2021
+
+Change highlights in uncrustify-0.72.0 (November 2020)
+-------------------------------------------------------------------------------
+ new command option:
+ --debug-csv-format : Dump debug info to file in csv-delimited format.
+
+ b29dfb58d6bebb79a961d0e709543a152d260dbc
+ Added : nl_inside_empty_func Aug 4 2020
+ 5068a4a78d7770a7292ea7a016ab7ca0bf49cbf7
+ Added : debug_timeout Sep 1 2020
+ cf3e5acfb4d55b47b25b7e7daa2844e2998b47cc
+ Added : sp_inside_square_empty Sep 8 2020
+ b66c26c669bf9752f468115f1e6444481c0b9e6d
+ Added : align_eigen_comma_init Sep 9 2020
+ 7b5fd82fa5d6fc035ddfb7c087c5aeb7cf6f4bd7
+ Added : pos_shift Sep 16 2020
+ b61b7952835be3451cd1131baeda7b54cb61a50e
+ Added : donot_indent_func_def_close_paren Sep 26 2020
+ 85001632261196dc1c2f3760dc9180e4c443f9ba
+ Added : donot_add_nl_before_cpp_comment Oct 14 2020
+
+Change highlights in uncrustify-0.71.0 (May 2020)
+-------------------------------------------------------------------------------
+
+ 6bcfb640d908038402869cb3be7bd80adcdb4708
+ Added : align_oc_msg_colon_xcode_like Nov 29 2019
+ 2fd5aaf255e1d0369842f54ae8d444bcbc079c7b
+ Added : indent_compound_literal_return Nov 19 2019
+ 4b74315b6cf8e91801b663c4171c1e0a9e12ea5b
+ Added : indent_sparen_extra Nov 19 2019
+ f012dd24e2d116d867404667ce15c3309466046f
+ Added : sp_word_brace_init_lst Jan 21 2020
+ Removed : sp_word_brace Jan 21 2020
+ 466b8bcf5f8ee04686d2d7af62b5ce76241c777d
+ Added : nl_func_call_args Jan 24 2020
+ 807e27e81112f28ae71b21f43718a1b859ad473a
+ Added : sp_before_oc_proto_list Feb 4 2020
+ 94f18ac9c0c7c7fab64f14425aea69f0f49bb240
+ Added : indent_off_after_assign Feb 7 2020
+ 25e20f9e4ab389c06fc76bcf0dcb3fe07ab91aea
+ Added : indent_off_after_return Feb 7 2020
+ cee950462787ab3b7725c5fb77fa38b992527e99
+ Added : indent_oc_inside_msg_sel Feb 10 2020
+ 2d04118314be95654f29fb32ae50b8cd46af8682
+ Added : nl_func_call_args_multi_line_ignore_closures Dec 17 2019
+ 369192830c01beedcfe87c432f9c26637c1e6587
+ Added : indent_inside_ternary_operator Dec 9 2019
+ 100db726b938d263c6c7f07530385dec0cdd711e
+ Added : use_form_feed_no_more_as_whitespace_character Feb 21 2020
+ 24e27fe8cdda55e422b1db659f255da353b3022c
+ Added : debug_max_number_of_loops Feb 27 2020
+ 30da6cafa6b0819c48a02513cadbc256a5b450c5
+ Added : debug_line_number_to_protocol Mar 17 2020
+ f5d8ee093eb521ecc0c57060b0009dd5f05e039e
+ Added : mod_sort_incl_import_prioritize_filename Mar 27 2020
+ 8d595cb0721b299db8f1169c22d38d45df899a51
+ Added : mod_sort_incl_import_ignore_extension Mar 27 2020
+ 9f8b7754f03aa970ede730a5cd4e2cbd94f139cc
+ Added : mod_sort_incl_import_prioritize_extensionless Mar 27 2020
+ 6d5829551886ee9e643e5d6019c5389dfa738c3b
+ Added : mod_sort_incl_import_prioritize_angle_over_quotes Mar 27 2020
+ 27b33d779e7aa33c1ebc39a52e54c3a95bc153d4
+ Added : mod_sort_incl_import_grouping_enabled Mar 27 2020
+ ac62be9498fa195a54c0e2c76c438c641d68a917
+ Added : disable_processing_nl_cont Apr 12 2020
+ e2b17b724e00c6180c6bd6cb5b592e969c47b6a9
+ Added : nl_before_opening_brace_func_class_def Apr 22 2020
+ 981c761da5a4a71b059361a883c4bfff69148c49
+ Added : nl_before_whole_file_endif Apr 24 2020
+ Added : nl_after_whole_file_endif Apr 24 2020
+ Added : nl_after_whole_file_ifdef Apr 24 2020
+ Added : nl_before_whole_file_ifdef Apr 24 2020
+ d55e9d21cd6377a38f741854baf1a561b984de36
+ Added : nl_func_call_end Apr 29 2020
+
+Change highlights in uncrustify-0.70.1 (November 2019)
+-------------------------------------------------------------------------------
+
+ 5114ea856acd79cbf52fd4261b83d423fafd98da
+ Added : nl_before_member Nov 17 2019
+ Added : nl_after_member Nov 17 2019
+ 1e911250996a7138e33006af1b664362b255f4b5
+ Added : nl_template_end_multi_line Nov 17 2019
+ Added : nl_template_start_multi_line Nov 17 2019
+ Added : nl_template_args_multi_line Nov 17 2019
+ 948bc227c46f89207346ad596e6199acb12d162f
+ Added : sp_before_vardef_square Nov 18 2019
+ 1ff6fc2da0b1cdef35089a2d6ac3364fbba304be
+ Added : nl_template_start Nov 21 2019
+ Added : nl_template_args Nov 21 2019
+ Added : nl_template_end Nov 21 2019
+ Removed : nl_template_end_multi_line Nov 21 2019
+ Removed : nl_template_start_multi_line Nov 21 2019
+ Removed : nl_template_args_multi_line Nov 21 2019
+ 2df82073bb1e3bc85f75c2165a541ba906f76b8d
+ Added : indent_macro_brace Nov 18 2019
+ 8cb5f1be52bcbcca4148cf0514b103dec5313c55
+ Added : indent_switch_break_with_case Nov 25 2019
+
+Change highlights in uncrustify-0.70.0 (is not released)
+-------------------------------------------------------------------------------
+
+ 710b9b90d063e1fac853b77ad9509bed37ff31ee
+ Added : mod_sort_case_sensitive May 12 2019
+ 40c028454904f4fc87bd93b9703eaeb58fa57dd0
+ Added : sp_before_square_asm_block Jul 29 2019
+ b9b7f2fffb2c73925906ca7e5c8536d03c93c4bc
+ Added : nl_multi_line_sparen_open Aug 3 2019
+ Added : nl_multi_line_sparen_close Aug 3 2019
+ 83a014197001ea815f92d977fc30aa36dec39e1b
+ Added : sp_cpp_lambda_square_paren Aug 20 2019
+ Added : sp_cpp_lambda_square_brace Aug 20 2019
+ Added : sp_cpp_lambda_paren_brace Aug 20 2019
+ Removed : sp_cpp_lambda_paren Aug 20 2019
+ 8b6455c08c4f70b04b03b48c32fa14b9014354b4
+ Added : use_sp_after_angle_always Sep 13 2019
+ 264ec3c988b5667c971b0d6508b17d0c9337c82c
+ Added : sp_cpp_lambda_fparen Sep 13 2019
+ 883ccefc3bf8c8cdf6b159f280e22c2d72ce83f5
+ Added : sp_func_type_paren Oct 11 2019
+ 8284db41edbb777829f26d247470c75d3d317641
+ Added : nl_before_namespace Oct 8 2019
+ Added : nl_after_namespace Oct 8 2019
+ 3af190ceda3f8025028b5f8aae7541d35bda39c7
+ Added : nl_template_class_def Oct 2 2019
+ Added : nl_template_func_def_special Oct 2 2019
+ Added : nl_template_using Oct 2 2019
+ Added : nl_template_func_def Oct 2 2019
+ Added : nl_template_class_decl Oct 2 2019
+ Added : nl_template_var Oct 2 2019
+ Added : nl_template_class_decl_special Oct 2 2019
+ Added : nl_template_func Oct 2 2019
+ Added : nl_template_func_decl_special Oct 2 2019
+ Added : nl_template_func_decl Oct 2 2019
+ Added : nl_template_class_def_special Oct 2 2019
+ e9bc08c3baa3b7545a592b5e1d0d23e530c58b7f
+ Added : sp_trailing_return Oct 23 2019
+ d783ecfe7f08b525eb882ff3a7c6525d8866d54b
+ Added : nl_oc_before_interface Oct 28 2019
+ Added : nl_oc_before_implementation Oct 28 2019
+ Added : nl_oc_before_end Oct 28 2019
+ 3741e59342c5741020b84eba147b0c1dfde0154b
+ Added : indent_func_def_param_paren_pos_threshold Nov 6 2019
+ 829b4124c02e36156489d06a8b33e3552e58d30b
+ Added : sp_brace_close_while Nov 8 2019
+ Added : sp_while_paren_open Nov 8 2019
+ Added : sp_do_brace_open Nov 8 2019
+ ea6f4ac515c0ad5651be020a3295dcae01c3baf9
+ Added : nl_create_list_one_liner Nov 11 2019
+
+Change highlights in uncrustify-0.69.0 (May 2019)
+-------------------------------------------------------------------------------
+
+Changing option:
+ - The option name is changed from 'align_assign_func_proto' to 'align_assign_func_proto_span'
+ Mar 4 17:19:40 2019
+
+New options:
+ - align_constr_value_gap Apr 24 2019
+ - align_constr_value_span Apr 24 2019
+ - align_constr_value_thresh Apr 24 2019
+ - align_func_proto_thresh Apr 5 2019
+ - indent_col1_multi_string_literal Mar 31 2019
+ - sp_paren_noexcept Jan 13 2019
+ - sp_paren_qualifier Jan 11 2019
+ - sp_type_question Jan 11 2019
+ - sp_inside_angle_empty Dec 27 2018
+ - nl_fdef_brace_cond Nov 29 2018
+ - nl_func_call_start Nov 29 2018
+
+
+Change highlights in uncrustify-0.68 (November 2018)
+-------------------------------------------------------------------------------
+
+New options:
+ - align_same_func_call_params_span Nov 9
+ - align_same_func_call_params_thresh Nov 9
+ - nl_class_leave_one_liner_groups Oct 17
+ - nl_inside_namespace Aug 26
+ - sp_return_brace Aug 21
+ - align_assign_decl_func Jul 24
+ - sp_brace_brace Jul 23
+ - sp_after_decltype Jul 22
+ - sp_decltype_paren Jul 22
+ - align_right_cmt_same_level Jul 14
+ - nl_oc_mdef_brace Jul 8
+ - mod_enum_last_comma Jul 8
+ - sp_type_ellipsis Jun 15
+ - sp_paren_ellipsis Jun 15
+ - sp_sizeof_ellipsis Jun 15
+ - sp_sizeof_ellipsis_paren Jun 15
+ - indent_continue_class_head May 30
+
+Bugfix:
+ - Issue # 1709, 1713, 1729, 1736, 1739, 1740, 1748, 1752, 1755, 1758, 1760,
+ 1762, 1763, 1776, 1778, 1782, 1783, 1784, 1786, 1788, 1789, 1804, 1827,
+ 1832, 1838, 1839, 1854, 1865, 1867, 1870, 1875, 1876, 1888, 1904, 1916,
+ 1917, 1918, 1919, 1942, 1946, 1947, 1958, 1960, 1962, 1965, 1969, 1979,
+ 1982, 1985, 1997, 2000, 2001, 2009, 2014, 2015, 2024, 2028, 2032, 2033,
+ 2035, 2037, 2046, 2055
+
+
+Change highlights in uncrustify-0.67 (May 2018)
+-------------------------------------------------------------------------------
+
+Changing option:
+
+Removed option:
+
+New options:
+ - indent_first_for_expr Apr 29
+ - indent_semicolon_for_paren Apr 29
+ - nl_oc_interface_brace Apr 13
+ - nl_oc_implementation_brace Apr 13
+ - indent_cpp_lambda_only_once Mar 24
+ - indent_cs_delegate_body Mar 18
+ - sp_after_noexcept Mar 18
+ - indent_single_newlines Mar 6
+ - sp_after_ptr_block_caret Feb 24
+ - sp_after_oc_synchronized Feb 24
+ - sp_inside_square_oc_array Feb 23
+ - sp_oc_catch_paren Feb 23
+ - sp_oc_catch_brace Feb 23
+ - sp_oc_brace_catch Feb 23
+ - nl_oc_catch_brace Feb 23
+ - nl_oc_brace_catch Feb 23
+ - nl_cs_property_leave_one_liners Feb 16
+ - indent_member_single Feb 10
+ - sp_func_call_user_paren_paren Feb 5
+ - sp_func_call_user_inside_fparen Feb 5
+ - sp_inside_braces_oc_dict Feb 5
+ - nl_create_func_def_one_liner Jan 17
+ - nl_namespace_two_to_one_liner Jan 15
+ - nl_squeeze_paren_close Jan 15
+ - sp_fparen_brace_initializer Jan 12
+ - sp_cpp_before_struct_binding 2018 Jan 12
+ - indent_align_paren Dec 14
+ - nl_tsquare_brace Dec 9
+ - indent_single_after_return Nov 28
+ - indent_off_after_return_new Nov 28
+ - indent_ignore_asm_block 2017 Nov 05
+
+New keyword:
+ - __unused Apr 21
+ - @synchronized Feb 24
+ - @available Feb 23
+ - fixed Feb 16
+ - @protected Feb 4
+ - @public Feb 4
+ - __autoreleasing Feb 4
+ - __bridge Feb 4
+ - __bridge_retained Feb 4
+ - __bridge_transfer Feb 4
+ - __declspec Feb 4
+ - __has_include Feb 4
+ - __has_include_next Feb 4
+ - __strong Feb 4
+ - __typeof Feb 4
+ - __unsafe_unretained Feb 4
+ - __weak Feb 4
+ - self Feb 4
+ - unsafe_unretained 2018 Feb 4
+ - where 2017 Dec 6
+
+Bugfix:
+ - Debian issue #881249 "FTBFS on armel/i386/mips64el/s390x: cpp_33057 fails"
+ is fixed
+ - Adopt many bugfix and tests from UT:
+ 10000, 10002, 10003, 10004, 10005, 10006, 10007, 10008, 10009, 10011,
+ 10012, 10013, 10014, 10015, 10016, 10018, 10019, 10020, 10021, 10022,
+ 10023, 10024, 10025, 10027, 10028, 10029, 10030, 10031, 10032, 10033,
+ 10034, 10035, 10036, 10039, 10044, 10045, 10046, 10047, 10048, 10049,
+ 10050, 10051, 10052, 10053, 10054, 10054, 10055, 10056, 10057, 10058,
+ 10060, 10062, 10063, 10065, 10066, 10067, 10069, 10070, 10071, 10072,
+ 10073, 10074, 10075, 10076, 10077, 10078, 10079, 10080, 10100, 10102,
+ 10103, 10104,
+ 60001, 60002, 60003, 60004, 60005, 60006, 60007, 60008, 60009, 60011,
+ 60012, 60013, 60014, 60015, 60016, 60017, 60018, 60019, 60020, 60021,
+ 60022, 60023, 60024, 60025, 60026, 60027, 60028, 60029, 60030, 60031,
+ 60032, 60033, 60034, 60036, 60037, 60038, 60039, 60040
+
+New:
+ - Add crash handling for Windows
+
+Change highlights in uncrustify-0.66 (November 2017)
+-------------------------------------------------------------------------------
+
+New options:
+ - sp_arith_additive Oct 17
+ - sp_angle_colon Oct 17
+ - nl_func_call_empty Sep 30
+ - nl_func_call_paren_empty Sep 30
+ - align_func_params_span Sep 29
+ - align_func_params_thresh Sep 29
+ - align_func_params_gap Sep 29
+ - nl_func_call_paren Jul 25
+ - indent_paren_after_func_def Jul 21
+ - indent_paren_after_func_decl Jul 21
+ - indent_paren_after_func_call Jul 21
+ - nl_func_paren_empty Jul 07
+ - nl_func_def_paren_empty Jul 07
+ - indent_switch_pp Jun 22
+ - pp_indent_case Jun 22
+ - pp_indent_func_def Jun 22
+ - pp_indent_extern Jun 22
+ - pp_indent_brace Jun 22
+
+Changing option:
+ - The option name is changed from 'align_number_left' to 'align_number_right'
+
+Bugfix:
+ - Issue # 548, 1098, 1103, 1108, 1112, 1127, 1134, 1158, 1165, 1170, 1187,
+ 1200, 1203, 1236, 1249, 1310, 1315, 1340, 1349, 1352, 1366 are fixed
+
+Change highlights in uncrustify-0.65 (May 2017)
+-------------------------------------------------------------------------------
+
+New options:
+ - nl_before_if_closing_paren May 12
+ - sp_after_type_brace_init_lst_open May 09
+ - sp_before_type_brace_init_lst_close May 09
+ - sp_inside_type_brace_init_lst May 09
+ - sp_type_brace_init_lst May 09
+ - nl_type_brace_init_lst May 09
+ - nl_type_brace_init_lst_open May 09
+ - nl_type_brace_init_lst_close May 09
+ - mod_sort_oc_property_class_weight May 05
+ - mod_full_brace_nl_block_rem_mlcond Mar 17
+ - sp_inside_newop_paren_open Mar 13
+ - sp_inside_newop_paren Mar 13
+ - sp_after_newop_paren Mar 13
+ - sp_inside_newop_paren_close Mar 13
+ - pp_ignore_define_body Feb 18
+ - sp_enum_colon Feb 13
+ - nl_enum_class Feb 13
+ - nl_enum_class_identifier Feb 13
+ - nl_enum_identifier_colon Feb 13
+ - nl_enum_colon_type Feb 13
+ - indent_param Feb 01
+ - include_category_0 Jan 24
+ - include_category_1 Jan 24
+ - include_category_2 2017 Jan 24
+ - force_tab_after_define 2016 Dec 29
+ - nl_max_blank_in_func Nov 26
+ - indent_ternary_operator Nov 24
+ - indent_using_block Oct 20
+
+New:
+ - emscripten interface
+ - removal of autogen / configure build
+ - list options that are now AT_UNUM type
+ - change option name from align_number_left to align_number_right
+
+Removed option:
+ - dont_protect_xcode_code_placeholders
+
+Removed MS calling convention keywords:
+ - __cdecl, __clrcall, __fastcall, __stdcall, __thiscall, __vectorcall
+
+Bugfix:
+ - Issue # 324, 398, 404, 497, 525, 575, 633, 638, 643, 646, 663, 666,
+ 679, 682, 687, 726, 752, 753, 793, 815, 825, 842, 857, 859, 869, 870,
+ 889, 902, 916, 917, 928, 935, 938, 940, 972, 1002, 1005, 1020, 1030,
+ 1032, 1041, 1068, 1117, 1139 are fixed
+ - Proposal #381, 876 are adopted.
+
+Change highlights in uncrustify-0.64 (October 2016)
+-------------------------------------------------------------------------------
+
+New:
+ - Support for new C#6 language elements. (Bug #672)
+ Expression filter with the keyword 'when' in try/catch is now supported.
+ Null conditional operator (?.) is now supported.
+
+New options:
+ - align_var_class_span Aug 23
+ - align_var_class_thresh Aug 23
+ - align_var_class_gap Aug 23
+ - pos_enum_comma Aug 14
+ - indent_token_after_brace Aug 3
+ - cmt_multi_first_len_minimum Aug 2
+ - nl_enum_own_lines Aug 1
+ - nl_func_class_scope Jul 26
+ - nl_squeeze_ifdef_top_level Jul 24
+ - sp_super_paren Jul 21
+ - sp_this_paren Jul 21
+ - sp_angle_paren_empty Jul 21
+ - sp_after_operator_sym_empty Jul 20
+ - sp_skip_vbrace_tokens Jul 13
+ - indent_cs_delegate_brace Jul 9
+ - cmt_insert_before_inlines Jun 29
+ - cmt_insert_before_ctor_dtor Jun 29
+ - mod_full_brace_if_chain_only Jun 28
+ - nl_func_decl_start_multi_line Jun 28
+ - nl_func_def_start_multi_line Jun 28
+ - nl_func_decl_args_multi_line Jun 28
+ - nl_func_def_args_multi_line Jun 28
+ - nl_func_decl_end_multi_line Jun 28
+ - nl_func_def_end_multi_line Jun 28
+ - nl_func_call_start_multi_line Jun 28
+ - nl_func_call_args_multi_line Jun 28
+ - nl_func_call_end_multi_line Jun 28
+ - use_options_overriding_for_qt_macros Jun 16
+ - sp_func_def_paren_empty Jun 15
+ - sp_func_proto_paren_empty Jun 15
+ - sp_func_class_paren_empty Jun 15
+ - nl_oc_block_brace May 26
+ - nl_split_if_one_liner May 26
+ - nl_split_for_one_line May 24
+ - nl_split_while_one_liner May 24
+ - nl_after_func_class_proto May 12
+ - nl_after_func_class_proto_group May 12 2016
+
+Bugfix:
+ - Bugs #620, #651, #654, #662, #663, #664, #670, #671, #672, #674 are fixed
+ - Issues #322, #323, #359, #405, #408, #412, #478, #481, #495, #503, #509, #512, #513, #514,
+ #518, #519, #520, #521, #522, #524, #529, #530, #533, #536, #539, #542,
+ #543, #544, #546, #568 are fixed
+ - Proposals #409, #477 are implemented
+ - Issue #411 is partialy fixed
+
+
+Change highlights in uncrustify-0.63 (Mar 2016)
+-------------------------------------------------------------------------------
+
+New:
+ - The branch uncrustify4Qt is now merged.
+ - A configuration file for the sources of uncrustify is provided:
+ forUncrustifySources.cfg
+ - Some considerations about the problem "stable" are described at
+ forUncrustifySources.txt
+ - Simplify expressions such as:
+ if ((cpd.lang_flags & LANG_PAWN) != 0)
+ to
+ if (cpd.lang_flags & LANG_PAWN)
+ - introduce CT_STDCALL to work with typedef void (__stdcall *func)(); Bug # 633
+ - introduce some more MS calling conventions: __cdecl, __clrcall, __fastcall, __thiscall, __vectorcall
+ https://msdn.microsoft.com/en-us/library/984x0h58.aspx
+
+New options:
+ - nl_before_func_class_def Apr 16
+ - nl_before_func_class_proto Apr 16
+ - nl_before_func_body_def Apr 25
+ - nl_before_func_body_proto Apr 25
+ - use_indent_continue_only_once Mar 7 2016
+
+Bugfix:
+ - Simplify some more expressions.
+ - Bugfix for win32 for the flags.
+ - make test c/ 00617 stable
+ - make test c/ 02501 stable
+ - The issue #467 and the test tests/output/c/02100-i2c-core.c are not yet fixed.
+ - uncrustify all the sources with forUncrustifySources.cfg
+ - better descriptions for options
+ - bug #631 is fixed
+ - produce a better dump output
+ - DbConfig::configuredDatabase()->apply(db); is NOT a declaration of a variable
+ - bug # 657 is fixed: change 'mode' if necessary for 'pos_class_comma'
+ - fix 3 calls of unc_add_option for "align_oc_msg_colon_span",
+ "indent_oc_block_msg", "indent_oc_msg_colon"
+ - bugs #664, #662, #654, #653, #651 and #633 are fixed
+
+Reverse:
+ - space: drop vbrace tokens... 2014-09-01 06:33:17
+ I cannot anderstand this change.
+ It makes some troubles: Bug # 637
+ No test file for it found
+ Reverse the change until more informations could be found
+
+Change:
+ - CT_DC_MEMBER + CT_FOR into CT_DC_MEMBER + CT_FUNC_CALL
+
+Some more Qt-macros:
+ - Q_GADGET
+ - for_each
+
+
+Change highlights in uncrustify4Qt-0.62 (Oct 2015)
+-------------------------------------------------------------------------------
+This is an extention of uncrustify to support Qt-macros
+ - Q_OBJECT
+ - Q_EMIT
+ - SLOT
+ - SIGNAL
+ - Q_FOREACH
+ - Q_FOREVER
+
+Change highlights in uncrustify4Qt-0.62 (Oct 2015)
+-------------------------------------------------------------------------------
+New options:
+ - use_indent_func_call_param
+
+
+Change highlights in uncrustify-0.62 (2 Feb 2016)
+-------------------------------------------------------------------------------
+This release is just a roll-up of the past year.
+Many bugs were squashed and many options were added.
+
+New options:
+ - string_replace_tab_chars
+ - disable_processing_cmt
+ - enable_processing_cmt
+ - enable_digraphs
+ - indent_class_on_colon
+ - indent_shift
+ - indent_min_vbrace_open
+ - indent_vbrace_open_on_tabstop
+ - sp_after_mdatype_commas
+ - sp_before_mdatype_commas
+ - sp_between_mdatype_commas
+ - sp_cmt_cpp_doxygen
+ - sp_cmt_cpp_qttr
+ - sp_between_new_paren
+ - nl_while_leave_one_liners
+ - nl_synchronized_brace
+ - nl_before_synchronized
+ - nl_after_synchronized
+ - nl_after_label_colon
+
+
+Change highlights in uncrustify-0.61 (22 Dec 2014)
+-------------------------------------------------------------------------------
+This release is just a roll-up of the past two years.
+Many bugs were squashed and many options were added.
+
+New options:
+ - indent_paren_open_brace
+ - indent_namespace_single_indent
+ - indent_constr_colon
+ - indent_oc_msg_prioritize_first_colon
+ - indent_oc_block_msg_xcode_style
+ - indent_oc_block_msg_from_keyword
+ - indent_oc_block_msg_from_colon
+ - indent_oc_block_msg_from_caret
+ - indent_oc_block_msg_from_brace
+ - sp_enum_paren
+ - sp_cparen_oparen
+ - sp_after_ptr_star_qualifier
+ - sp_after_constr_colon
+ - sp_before_constr_colon
+ - sp_fparen_dbrace
+ - sp_word_brace
+ - sp_word_brace_ns
+ - sp_cond_colon_before
+ - sp_cond_colon_after
+ - sp_cond_question_before
+ - sp_cond_question_after
+ - sp_cond_ternary_short
+ - align_keep_extra_space
+ - nl_cpp_lambda_leave_one_liners
+ - nl_brace_square
+ - nl_brace_fparen
+ - nl_constr_init_args
+ - nl_cpp_ldef_brace
+ - nl_paren_dbrace_open
+ - nl_constr_colon
+ - pos_constr_comma
+ - pos_constr_colon
+ - mod_add_long_namespace_closebrace_comment
+ - cmt_convert_tab_to_spaces
+
+
+Change highlights in uncrustify-0.60 (1 Jan 2013)
+-------------------------------------------------------------------------------
+Objective C support was greatly enhanced in this release.
+Many bugs were squashed and many options were added.
+
+New options:
+ - align_oc_msg_colon_first
+ - align_pp_define_together
+ - indent_ctor_init_leading
+ - indent_func_def_force_col1
+ - indent_oc_block
+ - indent_oc_block_msg
+ - indent_oc_msg_colon
+ - ls_code_width
+ - nl_after_annotation
+ - nl_before_return
+ - nl_between_annotation
+ - nl_brace_struct_var
+ - nl_oc_msg_args
+ - nl_oc_msg_leave_one_liner
+ - nl_remove_extra_newlines
+ - nl_scope_brace
+ - nl_typedef_blk_end
+ - nl_typedef_blk_in
+ - nl_typedef_blk_start
+ - nl_unittest_brace
+ - nl_var_def_blk_end
+ - nl_var_def_blk_in
+ - nl_var_def_blk_start
+ - nl_version_brace
+ - sp_after_for_colon
+ - sp_after_oc_dict_colon
+ - sp_after_oc_msg_receiver
+ - sp_after_oc_property
+ - sp_after_throw
+ - sp_after_tparen_close
+ - sp_annotation_paren
+ - sp_before_for_colon
+ - sp_before_oc_dict_colon
+ - sp_before_pp_stringify
+ - sp_before_template_paren
+ - sp_cpp_lambda_assign
+ - sp_cpp_lambda_paren
+ - sp_extern_paren
+ - sp_inside_sparen_open
+ - sp_inside_tparen
+ - sp_permit_cpp11_shift
+ - sp_ptr_star_paren
+
+Changed default:
+ - sp_pp_stringify = ignore (was add)
+
+See commit.log for details.
+
+
+Change highlights in uncrustify-0.59 (4 Oct 2011)
+-------------------------------------------------------------------------------
+The biggest change in this release was to rework the string handling to add
+proper support for UTF-8 and UTF-16.
+
+New options:
+ - nl_case_colon_brace
+ - indent_ctor_init
+ - sp_before_tr_emb_cmt
+ - sp_num_before_tr_emb_cmt
+ - utf8_bom
+ - utf8_byte
+ - utf8_force
+ - sp_after_new
+ - nl_after_struct
+ - nl_after_class
+ - nl_property_brace
+ - nl_after_func_body_class
+
+See commit.log for details.
+
+
+Change highlights in uncrustify-0.58 (19 May 2011)
+-------------------------------------------------------------------------------
+New options:
+ - tok_split_gte
+ - sp_catch_paren
+ - sp_scope_paren
+ - sp_version_paren
+ - cmt_insert_oc_msg_header
+
+See commit.log for details.
+
+
+Change highlights in uncrustify-0.57 (25 Nov 2010)
+-------------------------------------------------------------------------------
+New options:
+ - sp_func_call_paren_empty
+ - nl_func_def_start
+ - nl_func_def_start_single
+ - nl_func_def_paren
+ - nl_func_def_args
+ - nl_func_def_empty
+ - nl_func_def_end
+ - nl_func_def_end_single
+
+See commit.log for details.
+
+
+Change highlights in uncrustify-0.56 (27 Mar 2010)
+-------------------------------------------------------------------------------
+New options:
+ - indent_continue
+ - indent_cmt_with_tabs
+ - indent_first_bool_expr
+ - indent_braces_no_class
+ - indent_braces_no_struct
+ - indent_var_def_cont
+ - sp_assign_default
+ - sp_after_oc_at_sel_parens
+ - sp_inside_oc_at_sel_parens
+ - align_oc_decl_colon
+ - nl_after_vbrace_close
+ - nl_using_brace
+ - mod_full_brace_using
+
+See commit.log for details.
+
+
+Change highlights in uncrustify-0.55 (27 Nov 2009)
+-------------------------------------------------------------------------------
+ - See the GIT history for a full list of changes
+ - Fix align_left_shift with array indexes
+ - Objective C changes (Andre Berg)
+ - Fix a close paren added inside a preprocessor line
+ - Fix handling of 'mutable'
+ - New options
+ - sp_endif_cmt
+ - nl_func_decl_start_single
+ - nl_func_decl_end_single
+ - nl_after_vbrace_open_empty
+ - Improved options
+ - sp_before_ellipsis
+ - nl_struct_brace
+ - align_on_tabstop
+ - align_with_tabs
+ - align_left_shift
+ - nl_func_type_name
+ - nl_create_if_one_liner
+ - pos_assign
+
+
+Changes in uncrustify-0.54 (16 Oct 2009)
+-------------------------------------------------------------------------------
+ - Add mod_case_brace
+ - Add sp_after_semi_for and sp_after_semi
+ - Add align_oc_msg_colon
+ - ObjC: Do not set the parent of everything in a message at OC_MSG (was breaking casts)
+ - ObjC: sp_before_square does not apply in "if (i < [a count])"
+ - Fix crash bug in chunk_get_prev() at the start of the file
+ - Fix issue with #if COND followed by a cast on the next line
+ - Add nl_func_decl_empty
+ - Add nl_func_type_name_class
+ - Add cmt_reflow_mode (Ger Hobbelt)
+ - A case statement starts an expression. Fixes "case -1:"
+ - Improve semicolon removal test
+ - fix marking of brace/paren pairs that have a preproc inside
+ - fix nl_func_type_name where the return type contains a template
+ - Add mod_full_brace_if_chain
+ - fix detection of deref in a macro function
+ - fix detection of "std::vector<void (*)(void)> functions;"
+ - Remove extra semicolons on an 'else if'
+ - Add sp_before_ellipsis
+ - treat a constructor the same as a function regarding nl_func_decl_*
+ - Add nl_brace_brace
+ - Allow any number of spaces between multi-line comments when combining them
+ - Add pos_compare
+ - Add pos_conditional
+ - Fix indent_relative_single_line_comments
+ - Add sp_after_oc_return_type and sp_after_oc_at_sel (Andre Berg)
+ - Add indent_namespace_level (James LewisMoss)
+ - Add indent_namespace_limit (Maciej Libera)
+
+
+Changes in uncrustify-0.53 (16 May 2009)
+-------------------------------------------------------------------------------
+ - Fix sp_inside_braces* options, which were broken by the fix to issue #2629652
+ - Fix sp_after_cast, which was broken by a previous fix
+ - Be a little more agressive in removing unecessary semicolons
+ - Fix one case where the parser leaves a preprocessor #define
+ - Fix indent of line starting with '(' after a function name
+ - Add align_var_def_attribute
+ - Fix nl_func_type_name for function without a return type (ie, cast operator)
+ - Reset up state variables after processing a file
+ - Fix a case where a semicolon was incorrectly removed
+ - Fix a case where braces were incorrectly removed
+ - Fix handling of 'force' setting for many newline options
+ - Add func_wrap type for use with 'set func_wrap FSUB'
+ - Add type_wrap type for use with 'set type_wrap STACK_OF'
+ - Make file replacement more atomic - write to a temp file then rename
+ - With the 'replace' option, only replace if the file content changes
+ - Handle C# wide literal string prefix S"foo"
+ - Handle the ObjC '@protocol' the same as '@interface'
+ - Add 'make check' and 'make clean' (Ger Hobbelt)
+ - Add align_right_cmt_at_col (Ger Hobbelt)
+ - Add sp_pp_concat and sp_pp_stringify (Ger Hobbelt)
+ - Add mod_add_long_ifdef_{else,endif}_comment (Ger Hobbelt)
+ - Objective C improvements (Etienne Samson)
+ - Only mess with escaped newlines in a comment if inside a preprocessor
+ - Fix pos_xxx options when a preprocessor is near
+ - Apply Debian patch to man file
+ - Fix '<<' indenting/aligning (moved from indent.cpp to align.cpp)
+ - Rework the sp_before_nl_cont option
+ - Fix a few other bugs
+
+
+Changes in uncrustify-0.52 (28 Feb 2009)
+-------------------------------------------------------------------------------
+ - Add sp_before_assign and sp_after_assign
+ - Add sp_enum_before_assign and sp_enum_after_assign
+ - Add indent_var_def_blk
+ - Add sp_inside_sparen_close for the 'CGAL' style
+ - First pass at supporting ECMAScript (.es) files
+ - Add support for the C# '??' operator
+ - Fix conflict between nl_after_func_proto_group and nl_squeeze_ifdef
+ - Add sp_cmt_cpp_start
+ - Add align_on_operator
+ - Fix nl_func_type_name for operators
+ - Allow '$' to be part of identifiers (global change)
+ - Fix detection of the '*' in 'int a = b[0] * c;'
+ - Fix and improve the description of nl_multi_line_cond
+ - Fix handling of global namespace type such as '::sockaddr'
+ - Add nl_after_brace_close
+ - Add nl_func_scope_name
+ - Add cmt_insert_file_footer
+
+
+Changes in uncrustify-0.51 (27 Nov 2008)
+-------------------------------------------------------------------------------
+ - Prefer to split at ',' and then '=' in for() statements if at paren level
+ - Fix a NULL deref crash
+ - Fix nl_namespace_brace when something trails the open brace
+ - Get sp_after_sparen and sp_sparen_brace to play well together
+ - Ignore trailing comments when inserting the function header comment
+ - Combine two C comments when they have no space between them "/***//***/"
+ - Add cmt_insert_before_preproc
+ - Add mod_remove_empty_return
+ - Add nl_comment_func_def
+ - Fix aligning of anonymous bit fields
+ - Add indent_align_assign
+ - Add sp_before_case_colon
+ - Fix D 'invariant' handling
+ - Add sp_invariant_after_paren and sp_invariant_paren
+ - Fix handling of the C# [assembly: xxx] construct
+ - Fix handling of the C# 'base()' construct
+ - Add sp_range for the D '..' range operator as in [start .. end]
+ - Update $(fclass) and $(function) to handle operators
+ - Improve handling of inserted comments
+ - Enable 'finally' blocks for C#
+ - Add nl_after_try_catch_finally
+ - Add nl_between_get_set and nl_around_cs_property
+
+
+Changes in uncrustify-0.50 (25-Oct-2008)
+-------------------------------------------------------------------------------
+ - Fix sp_before_unnamed_ptr_star in 'char ** n'
+ - Fix crash when a open brace is at the end of a file
+ - ObjC class definitions do not need { }
+ - Fix ObjC msg detection
+ - Add sp_after_ptr_star_func, sp_before_ptr_star_func
+ - Add sp_after_byref_func, sp_before_byref_func
+ - Treat an ObjC msg decl more like a function def
+ - Add indent_func_const, indent_func_throw (Thanks, Ron)
+ - Fix detection of prototype inside extern or namespace braces
+ - Add align_left_shift to handle aligning of '<<'
+ - Add sp_cpp_cast_paren
+ - Add support for ObjC '@property' statements
+ - Add sp_brace_typedef and sp_case_label
+ - Merge in the lastest UniversalIndent support (Thanks, Thomas!)
+ - Fix extra '\r' in multi-line comments and strings
+ - Add sp_throw_paren
+ - Assume a '<' in a preprocessor can't be part of a template
+ - Don't align a constructor with class variables
+ - Fix ending column error when tokenizing strings
+
+
+Changes in uncrustify-0.49 (22-Aug-2008)
+-------------------------------------------------------------------------------
+ - Allow the MSVC++ '64' suffix on numbers
+ - Initialize align_stack class members for the MSVC++ compiler
+ - Indent a line that starts with '='
+ - Add pos_arith and pos_assign (Thanks, Ron!)
+ - Fix pos_bool & code_width interaction (Thanks, Ron!)
+ - Fix cmt_width, which was going one word over the limit. (Thanks, Ron!)
+ - Major rework of the aligning code to better handle the gap options
+ - Indent comments before 'case' at the same level as 'case'
+ - mod_add_long_*_closebrace_comment adds the right comment type. (Thanks, Ron!)
+ - Relax number parsing even further to accept stuff like "3A"
+ - Add sp_after_oc_colon (Thanks, Kevin!)
+ - Add better detection and labeling of Objective C messages
+ - Add sp_after_send_oc_colon and sp_before_send_oc_colon (Thanks, Kevin!)
+ - Fix detection of '*' in "return n * f();"
+ - Add the 'set' config option which lets you create arbitrary keywords
+ - Add sp_func_call_user_paren and the 'func_call_user' keyword type
+
+
+Changes in uncrustify-0.48 (18-Jul-2008)
+-------------------------------------------------------------------------------
+ - Fix classification of '(' in '#if defined (FOO)'
+ - Add sp_defined_paren
+ - Fix handling of negative in '#if X < -1'
+ - Revert a change that broke indent continuation in an assignment
+ - Fix interaction between nl_squeeze_ifdef and nl_after_{if,for,while,switch,do}
+ - Preprocessor indents are indents, so indent_with_tabs=1 should do tabs
+ - Add pp_indent_count
+ - Handle C++ style casts, such as 'int(42.0)' a bit better
+ - Another rework of template detection
+ - Add sp_before_nl_cont, defaults to 'add'
+ - If a statement starts with 'operator', it is a function call
+ - Change sp_angle_word to be more generic
+ - Add sp_after_operator_sym for "operator ++(" vs "operator ++ ("
+ - Add sp_template_angle for "template<" vs "template <"
+ - Add support for " *INDENT-OFF* " and " *INDENT-ON* "
+ - Shuffle around spacing priorities
+ - Add handling for '...' in variadic templates
+ - Extend nl_template_class to handle anything after 'template <...>'
+ - Treat the template '<' the same as '(' for indenting
+ - Add indent_template_param
+ - Split internal CT_CAST into CT_C_CAST, CT_CPP_CAST and CT_D_CAST
+ - Swap priority of sp_after_angle and sp_before_ptr_star
+ - Change cmt_multi_indent=false to disable all reformatting (needs more work)
+ - Fix align_var_def_span - it wasn't counting newlines when it recursed
+ - Add nl_else_if
+ - mod_full_brace_if: Don't remove braces around certain 'else' statements
+ - Tweak template detection a bit more
+ - Rework and simplify multi-line comment indenting
+ - Add indent_else_if
+ - Improve right-comment aligning
+ - Fix detection of functions with a 'const' return type
+ - Add sp_cond_colon and sp_cond_question
+ - Fine-tune the right comment align stuff
+ - Add cmt_multi_check_last
+ - Add align_right_cmt_gap
+ - Add nl_return_expr
+ - Indent FPAREN_OPEN if after a newline but not before a newline
+ - Give sp_after_operator_sym priority over sp_func_call_paren
+ - Add align_same_func_call_params
+
+
+Changes in uncrustify-0.47 (06-Jun-2008)
+-------------------------------------------------------------------------------
+ - Fix inifinite loop bug in reindent_line
+ - Fix prototype detection with template parameter types
+ - Fix off-by-1 error on positive values for indent_access_spec and indent_label
+ - Add indent_extern to control indent extern-type namespaces
+ - Add initial support for Objective C++ (extension '.mm')
+ - Add nl_before_throw and indent 'throw' if after a prototype
+ - Extend line numbers to 32 bits (used for logging)
+ - Remove alternate token support for '<%', '%>', '<:', ':>', '%:', and '%:%:'
+ - Fix recently-broken mixing of right-comment aligning (PP_ENDIF/PP_ELSE issue)
+ - Indent a 'break' that follows a fully-braced 'case' at the level of the
+ close brace
+ - Add mod_move_case_break
+ - Fix '&' and '*' after 'delete'
+ - Escape opening '/*' when converting C++ comments to C comments
+ - Add sp_inside_braces_empty
+ - Fix cmt_sp_after_star_cont
+ - Fix cmt_sp_before_star_cont
+ - Explicitly disallow a tab after a space
+ - Improve multi-line comment indenting a bit
+ - Add sp_before_unnamed_byref and sp_before_unnamed_ptr_star
+
+
+Changes in uncrustify-0.46 (22-Apr-2008)
+-------------------------------------------------------------------------------
+ - Load the config file, if available, before handling '--universalindent'
+ - Add align_var_def_gap, align_var_def_colon_gap, align_var_struct_gap,
+ align_func_proto_gap, align_mix_var_proto, align_single_line_brace_gap
+ - (internal) Eliminate the 'trailer' stuff, simplify aligning
+
+
+Changes in uncrustify-0.45 (7-Mar-2008)
+-------------------------------------------------------------------------------
+ - Fix buffer overflow in logger code
+ - Add sp_enum_assign
+ - For elipses handling in the GCC extension "case 1 ... 5:"
+ - Add sp_after_class_colon, sp_before_class_colon, and sp_after_type
+ - Send usage text to stdout instead of stderr
+ - Fix mod_add_long_function_closebrace_comment if the file doesn't end in a newline
+ - Redo alignments after splitting long lines
+ - Add indent_relative_single_line_comments
+ - Add indent_access_spec_body
+ - Fix indent_func_proto_param to work on constructors
+ - Add cmt_indent_multi
+ - Add align_single_line_brace and align_single_line_func
+ - Fix interaction of virtual braces and #pragma
+ - Fix indenting problem with an assignment the last part of a for()
+ - Fix the order of opening files so that '-f' and '-o' can be used together
+ - Added a man file
+ - Many improvements thanks to Stas Grabois
+ - Fix a D problem due the lack of semicolons after struct/enum definitions
+ - Improve the way aligning is done
+
+
+Changes in uncrustify-0.44 (12-Feb-2008)
+-------------------------------------------------------------------------------
+ - Fix issue with #else and unmatched braces (issue 1868493)
+ - Update UnivarsalIndentGUI config output
+ - Add the version to generated config files
+ - Add nl_multi_line_define
+ - Minimize distance between code and the backslash-newline in macros
+ - Properly handle stuff like '#define MYHEADER <asm/arm.h>'
+ - Fix detection of 'int foo(int);' in C++ (func proto, not class variable)
+ - Improve handling of multi-line comments in a macro
+ - Fix crash bug with some ctype implementations
+ - Fix incorrect indenting of nested #endif with pp_if_indent_code
+ - Fix problem with nl_after_if and nl_before_if w/ trailing comments
+
+
+Changes in uncrustify-0.43 (08-Jan-2008)
+-------------------------------------------------------------------------------
+ - Add align_right_cmt_mix to control aligning of comments after '}' and '#endif'
+ - Allow a line split after an assignment
+ - Fix infinite loop bug
+ - Add sp_sign and sp_incdec
+ - Fix vbrace conversion where some are converted and some aren't
+ - Add a vbrace before a #pragma instead of after
+ - Improve Objective C support
+ - Add sp_before_oc_colon, sp_after_oc_scope, and sp_after_oc_type for ObjC
+ - Add align_oc_msg_spec_span for ObjC
+ - Add sp_member for spacing around '->' and '.'
+ - More template handling improvements
+ - Fix a NULL dereference related to __attribute__
+
+
+Changes in uncrustify-0.42 (30-Nov-2007)
+-------------------------------------------------------------------------------
+ - Fix bug that would remove a newline after a C++ comment
+ - Add "--mtime" command line option to preserve the mtime
+ - Remove extra semicolons before inserting newlines after semicolons
+ - Fix broken struct initializer alignment
+ - Fix problem with pos_class_comma in a #define
+ - Fix problem with an incomplete statement in a #define and virtual braces
+ - Add indent_func_proto_param and indent_func_def_param
+ - Add nl_func_proto_type_name, split from nl_func_type_name
+ - Add mod_add_long_switch_closebrace_comment, mod_add_long_function_closebrace_comment
+ - Add mod_sort_import to sort import statements (Java/D)
+ - Add mod_sort_using to sort using statements (C#)
+ - Add mod_sort_include to sort #include (C/C++) and #import (ObjC) statements
+ - Add indent_func_class_param, indent_func_ctor_var_param, and
+ indent_func_param_double
+ - Fix inserting a newline before a preprocessor
+ - Don't split empty function parens for code_width stuff
+
+
+Changes in uncrustify-0.41 (07-Nov-2007)
+-------------------------------------------------------------------------------
+ - Add cmt_insert_func_header, cmt_insert_file_header, and cmt_insert_class_header
+ - Fix detection of prototypes without named parameters
+ - sp_after_byref and sp_after_ptr_star only are applied if before a word
+ - internal rework
+ - Add pp_define_at_level
+ - Fix detection of deref in "sizeof *x"
+ - Fix broken output of backslash-newline in certain situations
+ - Fix pp_indent_if stuff
+ - Add nl_after_brace_open_cmt
+ - Properly handle anonymous namespaces
+ - Add pp_space_count
+
+
+Changes in uncrustify-0.40 (12-Oct-2007)
+-------------------------------------------------------------------------------
+ - Simplify preprocessor indenting
+ - Add pp_indent_region and pp_region_indent_code
+ - Add pp_indent_at_level
+ - Add pp_indent_if and pp_if_indent_code
+ - Add initial VALA support
+ - Fix a problem with mod_full_paren_if_bool and functions
+ - Add nl_func_paren
+ - Fix function type parameter marking (broken in the last few releases)
+ - Don't remove newline chunks before/after a preprocessor
+
+
+Changes in uncrustify-0.39 (25-Sep-2007)
+-------------------------------------------------------------------------------
+ - Improve conversion operators
+ - Prevent undesired chunk combining ("~ ~" vs "~~" in D)
+ - Add nl_after_multiline_comment
+ - Fix handling of try/catch/finally blocks in virtual braces
+ - Add sp_inv, sp_not, sp_addr, sp_deref (default to remove)
+ - Fix nl_class_brace
+ - Fix indent_func_call_param
+ - Add nl_create_if_one_liner, nl_create_for_one_liner, nl_create_while_one_liner
+ - Add indent_preserve_sql
+ - Fix one-liner detection with multiple statements on one line
+ - Add nl_func_leave_one_liners and nl_if_leave_one_liners
+ - More template improvements
+
+
+Changes in uncrustify-0.38 (04-Sep-2007)
+-------------------------------------------------------------------------------
+ - Fix line splitting WRT the CT_SPACE token
+ - Improve function call/prototype/definition detection
+ - Fix some spacing issues
+ - More template improvements
+ - Allow for a C++ struct constructor
+ - Add nl_before_access_spec and nl_after_access_spec
+ - Add cmt_width, cmt_c_group, cmt_c_nl_start, cmt_c_nl_end
+ - Handle conversion operators
+
+
+Changes in uncrustify-0.37 (16-Aug-2007)
+-------------------------------------------------------------------------------
+ - A bunch of D language improvements
+ - Add sp_d_array_colon, nl_assign_square, nl_after_square_assign
+ - Fix static keyword sort order
+ - Improve typedef detection and aligning
+ - Split nl_ds_struct_enum_close_brace out of nl_ds_struct_enum_cmt
+ - Add indent_paren_close
+ - Add indent_comma_paren and indent_bool_paren
+
+
+Changes in uncrustify-0.36 (04-Aug-2007)
+-------------------------------------------------------------------------------
+ - Add nl_after_vbrace_open
+ - Improve option descriptions
+ - Fix seg faults (check for NULL)
+ - Fix spacing for operators () and []
+ - Add sp_before_dc and sp_after_dc to control spacing around '::'
+ - Split pos_class_comma from pos_comma
+ - Improve line splitting a little - no longer break at '::' or '->' or '.'
+ - Add nl_enum_leave_one_liners and nl_getset_leave_one_liners
+ - Add mod_remove_extra_semicolon
+ - Fix handling of macro-open and macro-close
+ - Add align_var_struct_thresh
+ - Improve handling of comments after braces
+ - Add support for Qt slots and signals
+ - Add align_typedef_amp_style and align_var_def_amp_style
+ - Add sp_attribute_paren and handling of the '__attribute__' macro
+ - Add align_typedef_func, improve aligning of typedefs
+ - Add sp_after_semi_for_empty
+
+
+Changes in uncrustify-0.35 (14-Jul-2007)
+-------------------------------------------------------------------------------
+ - Fix bug with nl_func_type_name and empty param list: int foo() { ... }
+ - Don't parse pragma bodies
+ - Properly indent multiline #error and #warning
+ - Change nl_after_func_body to force the newline count (was a minimum)
+ - Fix handling of CT_PTR_STAR when all options are AV_IGNORE
+ - Fix problem when the first token in the file isn't in column 1
+ - Properly mark catch clauses that contain parameters, ie catch (Exception *e)
+ - Add a newline after the open brace for nl_catch_brace, nl_do_brace,
+ nl_else_brace, nl_try_brace, nl_getset_brace, nl_finally_brace
+ - Add nl_multi_line_cond
+ - Fix a bug with mod_full_paren_if_bool
+ - Fix handling of templated variables: Buffer<T>* buf
+ - Fix handling of dynamic_cast<T*>(obj) stuff
+ - Fix detection of templates in for() statements:
+ for (std::map<Key, Value*>::iterator it = map.begin(); ...
+ - Add --no-backup command-line option to replace w/o a backup file
+ - Fix nl_class_leave_one_liners when set to false
+ - Add nl_class_colon, which split the functionality of nl_class_init_args
+ - Improve detection of reference variable declarations (A& B)
+
+
+Changes in uncrustify-0.34 (11-May-2007)
+-------------------------------------------------------------------------------
+ - Add sp_angle_paren and sp_angle_word
+ - Properly handle multi-line CPP comments
+ - Add sp_inside_paren_cast
+ - improve indent_class_colon
+ - fix indenting on open parens
+ - Add sp_before_semi_for_empty
+ - Fix detection of while if the do is in a preprocessor chunk (1675673)
+ - (pawn) Don't add vsemi after case/switch brace close (1684840)
+ - Add nl_assign_leave_one_liners to allow "foo_t foo = { 0, 1 };"
+ - Change handling of #region stuff so that it is indented at brace level
+ - Fix handling of missing semicolon after while-of-do.
+ - Fix crash-bug in handling bad code: "if (a && );"
+ - Add pos_comma
+
+
+Changes in uncrustify-0.33 (05-Mar-2007)
+-------------------------------------------------------------------------------
+ - Fix converting C++ comments with embedded C comments
+ - Fix nl_func_var_def_blk with class variables
+ - Fix some output issues with the 1st line and C++ comments
+ - Eliminate indent_case_body, which wasn't used
+ - Change rules for indenting case braces and the use of indent_case_brace
+ - Fix variable declaration detection at the start of a code block
+ - Add support for custom open/close indenting macros
+ MACRO_OPEN, MACRO_ELSE, MACRO_CLOSE
+ - Fix the config updating routines to NOT lose custom types and stuff
+ - Add nl_after_func_body_one_liner
+ - Fix nl_class_init_args
+ - Add --universalindent option to output an ini file for UniversalIndentGUI
+
+
+Changes in uncrustify-0.32 (20-Feb-2007)
+-------------------------------------------------------------------------------
+ - Enable align_proto_var_def for constructors
+ - Fix while-of-do handling inside virtual braces
+ - Fix problem with comments between a close brace and else
+ - Add sp_before_comma
+ - Change align_var_def_star to align_var_def_star_style
+ - Change align_proto_var_def to align_func_params
+ - Add ls_func_split_full and ls_for_split_full
+ - Rework code width code a bit
+ - Start Objective C support
+ - Add cmt_sp_before_star_cont and cmt_sp_after_star_cont
+ - Fix spacing between (( and ))
+ - Add nl_try_brace, nl_catch_brace, nl_finally_brace, nl_brace_catch,
+ nl_brace_finally, sp_catch_brace, sp_brace_catch, sp_finally_brace,
+ sp_brace_finally, sp_try_brace
+ - Treat typedef functions the same as other function for param aligning
+ - Turn any word after a enum/struct/union into a type
+ - Add sp_getset_brace and nl_getset_brace
+ - Add mod_full_paren_if_bool
+ - Add nl_before_c_comment and nl_before_cpp_comment
+ - Fix nl_class_leave_one_liners
+ - Add nl_ds_struct_enum_cmt
+ - Add sp_balance_nested_parens
+
+
+Changes in uncrustify-0.31 (24-Jan-2007)
+-------------------------------------------------------------------------------
+ - Improve mixed tab indent / space align
+ - Try to fix spacing around embedded comments
+ - Add indent_access_spec
+ - Add __func__ and __FUNCTION__ detection for non-C99 compilers
+ - General code cleanup (Thanks Tom!)
+ - Add indent_xml_string
+ - Add align_proto_var_def to align variables in prototypes
+
+
+Changes in uncrustify-0.30 (24-Nov-2006)
+-------------------------------------------------------------------------------
+ - Use environment variable UNCRUSTIFY_CONFIG if no '-c' option (non-WIN32)
+ - Default to ~/.uncrustify.cfg if no '-c' option and no env var (non-WIN32)
+ - Add '-q' option to the usage info
+ - Added initial embedded SQL support
+ - Many bug fixes
+ - New options: indent_braces_no_func, indent_sing_line_comments, nl_before_if,
+ nl_before_for, nl_after_for, nl_before_while, nl_after_while,
+ nl_before_switch, nl_after_switch, nl_before_do, nl_after_do
+
+
+Changes in uncrustify-0.29 (26-Oct-2006)
+-------------------------------------------------------------------------------
+ - Add support for the 'Klaus' style
+ - Fix a bunch of c++ template bugs
+ - Add option nl_class_leave_one_liners
+
+
+Changes in uncrustify-0.28 (06-Oct-2006)
+-------------------------------------------------------------------------------
+ - Fix D range array detection a[1..4] => a[1 .. 4]
+ - Fix D delegate variable aligning
+ - More documentation updates (thanks Dirk!)
+ - New options: nl_after_semicolon and nl_after_open_brace
+
+
+Changes in uncrustify-0.27 (23-Sep-2006)
+-------------------------------------------------------------------------------
+ - Improve template detection again (allow CT_TYPE in a template)
+ - Fix bad formatting in "[ABC * 123]" and "[0xf & *val]"
+ - Add --replace option to convert files in-place
+ - Use a map for the options
+ - Major configuration/option cleanup
+ - add -o option to write to a file instead of stdout
+
+
+Changes in uncrustify-0.26 (09-Sep-2006) (removed a number from the version)
+-------------------------------------------------------------------------------
+ - Fix preprocessor labeling WRT comments
+ - Fix an indenting problem
+ - Add sp_after_byref
+ - Fix alignment of global variable definitions
+ - Fix detection of deref inside squares: a[*p]
+ - Fix a weird indenting bug
+ - Fix D template ! spacing
+ - Add sp_after_operator
+ - Add nl_template_class
+ - Add start to detailed docs inside the program
+ - Add --prefix and --suffix command line args
+ - Add align_enum_equ_thresh and fix align_enum_equ_span
+ - Fix formatting of function typedefs
+ - Add indent_member
+ - Simplify the indenting code a bit
+ - Improve type_cast stuff (ie, dynamic_cast<> or static_cast<>) and templates
+
+
+Changes in uncrustify-0.0.25 (26-Aug-2006)
+-------------------------------------------------------------------------------
+ - Add sp_after_ptr_star, sp_before_ptr_star, sp_between_ptr_star
+ - Fix D tokenizing for numbers and strings
+ - Fix a bug with cast detection and with nl_after_func_proto
+ - Improve template detection
+ - Rename nl_bool_pos to pos_bool
+ - Add pos_class_colon
+ - Add indent_class_colon
+ - Add nl_class_init_args
+ - Add nl_collapse_empty_body
+ - Add indent_square_nl
+
+
+Changes in uncrustify-0.0.24 (05-Aug-2006)
+-------------------------------------------------------------------------------
+ - Add initial PAWN support (thanks to Derek Evan Mart for testing and motivation!)
+ - Fix parsing of numbers like 10.0
+ - Fix double negative (- -x) vs (--x)
+ - Add ability to convert C++ (//) comments into C (/* */) comments
+ - Fix usage of indent_columns; output_tab_size is only needed if using tabs
+ - Add first small step in code width handling
+ - New options: sp_fparen_brace, sp_macro, sp_marco_func,
+ nl_elseif_brace, mod_pawn_semicolon, cmt_cpp_to_c, cmt_cpp_group,
+ cmt_cpp_nl_start, cmt_cpp_nl_end, sp_after_tag
+
+
+Changes in uncrustify-0.0.23 (22-Jul-2006)
+-------------------------------------------------------------------------------
+ - Fix some crash bugs and some formatting problems
+ - Fix Windows CRLF issues (binary vs text mode)
+ - Add indent_class and indent_namespace
+ - Add nl_class_brace and nl_namespace_brace
+ - Add handling of operator stuff in CPP
+ - Improve the test script a bit
+ - Add sp_inside_fparens
+ - Add ability to define types in the config file
+ - Started work on improving #ifdef handling by evaluating the preprocessor
+
+
+Changes in uncrustify-0.0.22 (15-Jul-2006)
+-------------------------------------------------------------------------------
+ - Implement nl_max, nl_before_block_comment, nl_after_func_body,
+ nl_after_func_proto, nl_after_func_proto_group
+ - Improve detection of function prototypes
+ - Improve marking of function prototype-related tokens
+ - Improve variable definition aligning
+ - fix align_var_def threshold
+ - Improve handling of "private:" style stuff
+ - Handle types with "::" in them
+ - Add preprocessor spacing and indenting
+ - Fix tab indenting style 1 (tab indent, space align)
+ - Improve multi-line comment formatting
+
+
+Changes in uncrustify-0.0.21 (01-Jul-2006)
+-------------------------------------------------------------------------------
+ - Clean up some memory leaks & uninitialized variables
+ - Add option to process multiple files at once
+ - Change the newlines values from [UNIX, DOS, MAC] to [LF, CRLF, CR]
+ - Properly mark the parens for functions
+ - Implement control over the format of the function prototypes and definitions
+ - Update configuration.txt
+
+
+Changes in uncrustify-0.0.20 (10-Jun-2006)
+-------------------------------------------------------------------------------
+ - Fix cast on a sizeof: (INT32)sizeof(x)
+ - Fix this: "#define SOME_JUNK /*lint -e123 */(const mytype_t *)-1"
+ - Don't align function typedefs (fixed again)
+ - Finally fix the DOS and MAC line-ending support
+ - Add line-ending autodetection
+ - Add Windows build support
+
+
+Changes in uncrustify-0.0.19 (27-May-2006)
+-------------------------------------------------------------------------------
+ - Fix C/C++/C# casts
+ - Improve D casts
+
+
+Changes in uncrustify-0.0.18 (12-May-2006)
+-------------------------------------------------------------------------------
+ - Add nl_bool_pos to move boolean ops between eol and sol
+ - Improve C99 array initializer aligning/formatting
+ - Replace nl_eat_start, nl_eat_end, and nl_eof_min with nl_start_of_file,
+ nl_start_of_file_min, nl_end_of_file, and nl_end_of_file_min
+
+
+Changes in uncrustify-0.0.17 (03-May-2006)
+-------------------------------------------------------------------------------
+ - Add nl_eat_start to remove newlines at the start of the file
+ - Add nl_eat_end to remove newlines at the end of the file
+ - Add nl_eof_min to set the minimum number of newlines at the end of file
+ - Add newlines setting to configure the newline output
+ - Add '-q' command line option to turn off logging
+ - Fix bug in nl_func_var_def_blk handling
+
+
+Changes in uncrustify-0.0.16 (21-Apr-2006)
+-------------------------------------------------------------------------------
+ - Add a stack alignment helper class
+ - Improve typedef formatting
+ - Add aligning thresholds for typedefs and assignments
+ - update the automake/autoconf stuff
+
+
+Changes in uncrustify-0.0.15 (14-Apr-2006)
+-------------------------------------------------------------------------------
+ - Switch to C++
+ - Improve C++ template formatting
+ - Improve C++ class handling
+
+
+Changes in uncrustify-0.0.14 (09-Apr-2006)
+-------------------------------------------------------------------------------
+ - Read from stdin if no file is specified
+ - Build on OS X
+
+
+Changes in uncrustify-0.0.13 (07-Apr-2006)
+-------------------------------------------------------------------------------
+ - Rewrite the indent code
+ - Fix a bunch of small problems with C casts
+ - Rename a few files
+ - Add more tests
+
+
+Changes in uncrustify-0.0.12 (30-Mar-2006)
+-------------------------------------------------------------------------------
+ - Add support for D template format "Foo!(int,char)"
+ - Fix a format bug in a log
+ - Fix elipsis spacing (remove space before elipsis)
+ - Don't use getopt as it isn't all that portable (at least for QNX)
+ - Rename some files
+ - Bugfix: don't add virtual braces on the same line as a preprocessor
+ - Bugfix: clean up indexed array aligning
+
+
+Changes in uncrustify-0.0.11 (27-Mar-2006)
+-------------------------------------------------------------------------------
+ - fix brace analysis on else statement
+ - allow options to depend on other options
+ - set the parent for case braces
+ - handle/indent the C++ class colon thingy
+ - handle C++ constructors and function defs
+ - special handling for '::' operator
+ - implement case indenting
+ - handle cout '<<' indenting
+ - handle DOS and MAC line endings in multiline comments
+ - rename some indent options
+ - fix ifndef handling
+ - fix volatile handling
+ - fix private/public/protected 'label' handling
+ - alternate punctuators are also part of C++
+ - handle C++ wide L"strings"
+ - improve C# get/set handling
+ - fix spacing bug "a++;" vs "a ++;" due to statement start misdetect
+ - add nl_assign_brace
+ - fix parent of vbrace close
+ - more test enhancements
+
+
+Changes in uncrustify-0.0.10 (22-Mar-2006)
+-------------------------------------------------------------------------------
+ - Complete rewrite of tokenizer and brace parser
+ - Added support for D nested comments
+ - Fixed some virtual brace bugs
+ - Added some documentation for the brace parsing stuff
+ - Add more tests to improve coverage (still lacking)
+
+
+Changes in uncrustify-0.0.9 (18-Mar-2006)
+-------------------------------------------------------------------------------
+ - Major enhancements for D
+ - Add handling for special "[]" sequence for C#/D
+ - add some more tests
+
+
+Changes in uncrustify-0.0.8 (13-Mar-2006)
+-------------------------------------------------------------------------------
+ - update TODO list
+ - add a threshold for brace removal
+ - improve brace removal
+ - keep track of whether a token follows a tab
+ - add option to preserve non-indenting tabs
+ - major keyword and operator cleanup for C++, C#, D, and Java
+ - add 'string' variants for ARITH, COMPARE, etc
+ - add C# get/set detection
+ - add template <type> detection
+ - add colon handling for class stuff and anonymous bitfields
+ - pop the whole indent stack when leaving a preprocessor
+ - fix embedded return handling in C#, ie: [ this should return negative ]
+ - fix a problem with the ifdef frame stack (still a problem lurking...)
+ - handle literal strings (C#)
+ - handle non-keyword words (C#) -- example: @if @switch
+ - set the parent on 'do' braces
+ - handle C# #region preprocessor stuff
+ - partially implement align on tabstop
+ - fix virtual brace spacing (no more "else return;" => "elsereturn;")
+ - add some more tests
+
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/Comments.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/Comments.txt
index 5375e829..5375e829 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/Comments.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/Comments.txt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/HELP b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/HELP
index 83792fa5..83792fa5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/HELP
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/HELP
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/LIMITATIONS.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/LIMITATIONS.txt
index a49f23f2..a49f23f2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/LIMITATIONS.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/LIMITATIONS.txt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/NEWS b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/NEWS
index 8b6344a0..8b6344a0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/NEWS
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/NEWS
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/README.md b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/README.md
new file mode 100644
index 00000000..85fc2bd2
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/README.md
@@ -0,0 +1,389 @@
+[![AppVeyor](https://img.shields.io/appveyor/ci/uncrustify/uncrustify/master.svg?style=flat-square&label=Windows)](https://ci.appveyor.com/project/uncrustify/uncrustify)
+[![Coverage Status](https://coveralls.io/repos/github/uncrustify/uncrustify/badge.svg?branch=master)](https://coveralls.io/github/uncrustify/uncrustify?branch=master)
+<a href="#"><img src="https://img.shields.io/badge/C++-11-blue.svg?style=flat-square"></a>
+
+---------------------------
+
+# Uncrustify
+A source code beautifier for C, C++, C#, ObjectiveC, D, Java, Pawn and VALA
+
+## Features
+* Highly configurable - 808 configurable options as of version 0.75.0
+- <details><summary>add/remove spaces</summary>
+
+ - `sp_before_sparen`: _Add or remove space before '(' of 'if', 'for', 'switch', 'while', etc._
+ - `sp_compare`: _Add or remove space around compare operator '<', '>', '==', etc_
+</details>
+
+- <details><summary>add/remove newlines</summary>
+
+ - `nl_if_brace`: _Add or remove newline between 'if' and '{'_
+ - `nl_brace_while`: _Add or remove newline between '}' and 'while' of 'do' statement_
+</details>
+
+- <details><summary>add/remove blanklines</summary>
+
+ - `eat_blanks_before_close_brace`: _Whether to remove blank lines before '}'_
+ - `nl_max`: _The maximum consecutive newlines (3 = 2 blank lines)_
+</details>
+
+- <details><summary>indent code</summary>
+
+ - `indent_switch_case`: _indent_switch_case: Spaces to indent 'case' from 'switch'_
+ - `indent_class_colon`: _Whether to indent the stuff after a leading base class colon_
+</details>
+
+- <details><summary>align code</summary>
+
+ - `align_func_params`: _Align variable definitions in prototypes and functions_
+ - `align_struct_init_span`: _The span for aligning struct initializer values (0=don't align)_
+</details>
+
+- <details><summary>modify code</summary>
+
+ - `mod_full_brace_for`: _Add or remove braces on single-line 'for' statement_
+ - `mod_paren_on_return`: _Add or remove unnecessary paren on 'return' statement_
+</details>
+
+Here is an example [configuration file](https://raw.githubusercontent.com/uncrustify/uncrustify/master/documentation/htdocs/ben.cfg.txt),
+and here is a [before](https://raw.githubusercontent.com/uncrustify/uncrustify/master/documentation/htdocs/examples/c-1.in.c)
+and [after](https://raw.githubusercontent.com/uncrustify/uncrustify/master/documentation/htdocs/examples/c-1.out.c)
+C source example.
+That should give you a pretty good idea of what Uncrustify can do.
+
+
+
+
+
+---------------------------------------------------------------------------
+
+## Binaries
+Pre compiled binaries for Windows can be downloaded [here](https://sourceforge.net/projects/uncrustify/files/).
+
+## Build
+[Python](https://www.python.org/) is an "interpreted high-level programming language for general-purpose programming", for this project it is needed to extend the capabilities of CMake.
+
+[CMake](https://cmake.org/) is a tool that generates build systems
+(Makefiles, Visual Studio project files, Xcode project files and others).
+
+To generate a build system for Uncrustify using CMake, create a build
+folder and run CMake from it:
+
+```bash
+$ mkdir build
+$ cd build
+$ cmake ..
+```
+(Use `cmake -G Xcode ..` for Xcode)
+
+Then use the build tools of your build system (in many cases this will
+simply be `make`, but on Windows it could be MSBuild or Visual Studio).
+Or use CMake to invoke it:
+
+```bash
+$ cmake --build .
+```
+
+If testing is enabled, CMake generates a `test` target, which you can
+_build_ using your build system tools (usually `make test`). This can also
+be invoked using CTest:
+
+```bash
+$ ctest -V -C Debug
+```
+
+There is also an `install` target, which can be used to install the
+Uncrustify executable (typically `make install`).
+
+### A note on CMake configurations
+Some build systems are single-configuration, which means you specify the
+build type when running CMake (by setting the `CMAKE_BUILD_TYPE`
+variable), and the generated files then build that configuration.
+
+An example of a single-configuration build system are Makefiles. You can
+build the Release configuration of Uncrustify (from the build folder) with:
+
+```bash
+$ cmake -DCMAKE_BUILD_TYPE=Release ..
+$ make
+```
+
+Other build systems are multi-configuration, which means you specify the
+build type when building.
+
+An example of a multi-configuration build system are Visual Studios project
+files. When you open the project in Visual Studio, you can select which
+configuration to build. You can also do this while building from the
+command line with `cmake --build . --config Release`.
+
+
+## Bugs
+Post any bugs to the issue tracker found on the projects GitHub page:
+ https://github.com/uncrustify/uncrustify/issues
+
+Please include the following with your issue:
+ - a description of what is not working right
+ - input code sufficient to demonstrate the issue
+ - expected output code
+ - configuration options used to generate the output
+
+More about this is in the [ISSUE_TEMPLATE](https://github.com/uncrustify/uncrustify/blob/master/.github/ISSUE_TEMPLATE)
+
+
+### Known problems
+[Look at the Wiki](https://github.com/uncrustify/uncrustify/wiki/Known-Problems)
+
+
+## Which repositories have uncrustify?
+[Look here](https://repology.org/metapackage/uncrustify/versions)
+
+
+## Contribute
+If you want to add a feature, fix a bug, or implement missing
+functionality, feel free to do so! Patches are welcome!
+Here are some areas that need attention:
+
+- __Patches for Objective-C support__. We really need someone who knows
+ this language as it has more than plenty open issues. A good starting
+ point would be to integrate changes made in the
+ [Unity fork](https://github.com/Unity-Technologies/uncrustify/tree/fixes/c-oc-java)
+- Test Java support and provide feedback (or patches!)
+- Test Embedded SQL to see what works
+- A logo of some sort
+- Anything else that you want to do to make it better?
+
+### A note about pull requests
+Firstly take a look at the [CONTRIBUTING.md](https://github.com/uncrustify/uncrustify/blob/master/CONTRIBUTING.md)
+
+Currently we have two continuous integration systems that test your PRs,
+TravisCI and Appveyor.
+Tested are the test cases, the formatting of the code base and
+the output of the command line options.
+
+Test cases can be found in the `tests/` directory. Every file ending with
+`.test` is a test set. Inside each line with these components is a
+single test: `testNr[!] testConfigFileName testInputFileName [lang]`
+
+The configuration file `testConfigFileName` has to be located inside `tests/config`,
+the input file `testInputFileName` inside `tests/input/<testSetName>/`,
+and expected results file inside the `tests/expected/<testSetName>/`
+directory.
+Expected results have the following naming convention: `testNr-testInputFileName`.
+
+Optionally a `!` can follow the `testNr` to enable a custom rerun
+configuration.
+Rerun configurations need to be named like this:
+`testConfigFileName`(without extension)+`.rerun`+`.extension`
+
+Also, optionally a language for the input can be provided with `lang`.
+
+The codebase has to be formatted by the options set up in
+`forUncrustifySources.cfg`. Failing to format the sources correctly will
+cause TravisCI build failures.
+
+The Command line interface (CLI) output is tested by the
+`test_cli_options.sh` script. It is located inside of `tests/cli/` and operates
+on the subdirectories of that folder.
+
+If a PR is altering the CLI output, files inside those directories might
+need to be manually updated. This often happens when options are
+added, removed or altered. Keep in mind that the version string line
+(example: `# Uncrustify-0.69.0_f`) of outputs from commands like
+`--show-config` should be replaced with a blank line.
+
+### Debugging
+
+The first method is to use uncrustify itself to get debug informations.
+Using:
+```.txt
+ uncrustify -c myExample.cfg -f myExample.cpp -p myExample.p -L A 2>myExample.A
+```
+you get two files for the first informations.
+The p-file gives you details of the parsing process and indentation.
+```.txt
+# Line Tag Parent Columns Br/Lvl/pp Flag Nl Text
+# 1> CLASS[ NONE][ 1/ 1/ 6/ 0][0/0/0][ 10070000][0-0] class
+# 1> TYPE[ CLASS][ 7/ 7/ 14/ 1][0/0/0][ 10000000][0-0] Capteur
+# 1> BRACE_OPEN[ CLASS][ 15/ 15/ 16/ 1][0/0/0][ 100000400][0-0] {
+```
+
+The A-file gives you many details about the run itself, where the process is running thru,
+which values have the most important variables.
+```.txt
+tokenize(2351): orig_line is 1, orig_col is 1, Text() 'class', type is CLASS, orig_col_end is 6
+tokenize(2351): orig_line is 1, orig_col is 7, Text() 'Capteur', type is WORD, orig_col_end is 14
+tokenize(2351): orig_line is 1, orig_col is 15, Text() '{', type is BRACE_OPEN, orig_col_end is 16
+```
+
+You can also dump the parsing information of each formatting step using the 'dump steps' option.
+```.txt
+ uncrustify -c myExample.cfg -f myExample.cpp -ds dump
+```
+This will create a series of 'dump_nnn.log' files, each containing the parsing information at
+specific points of the formatting process ('dump_000.log' will list the formatting options in use).
+
+You can combine this option with -p and -L to get a lot of detailed debugging information.
+```.txt
+ uncrustify -c myExample.cfg -f myExample.cpp -p myExample.p -L A 2>myExample.A -ds dump
+```
+
+It might be useful to add some code lines to see where something is happening.
+Use the package `unc_tools`.
+Remove the comment at line:
+```.cpp
+#define DEVELOP_ONLY
+```
+Import the package:
+```.cpp
+#include "unc_tools.h"
+```
+Add at some places the line:
+```.cpp
+prot_the_line(__LINE__, 6, 0);
+```
+Compile again with DEBUG option.
+
+
+
+### How to add an option
+
+If you need a new option, there are a few steps to follow.
+Take as example the option `sp_trailing_ret_t`
+
+First define the option:
+- Insert the code below to the file src/options.h
+_NOTE:
+This file is processed by make_options.py, and must conform to a particular
+format. Option groups are marked by '//begin ' (in upper case; this example
+is lower case to prevent being considered a region marker for code folding)
+followed by the group description. Options consist of two lines of
+declaration preceded by one or more lines of C++ comments. The comments form
+the option description and are taken verbatim, aside from stripping the
+leading '// '. Only comments immediately preceding an option declaration,
+with no blank lines, are taken as part of the description, so a blank line
+may be used to separate notations from a description.
+An option declaration is 'extern TYPE\nNAME;', optionally followed by
+' // = VALUE' if the option has a default value that is different from the
+default-constructed value type of the option. The 'VALUE' must be valid C++
+code, and is taken verbatim as an argument when creating the option's
+instantiation. Note also that the line break, as shown, is required.
+_
+```.cpp
+// Add or remove space around trailing return operator '->'.
+extern Option<iarf_e>
+sp_trailing_ret_t;
+```
+- Insert the code below to the file src/space.cpp
+```.cpp
+ if (chunk_is_token(first, CT_TRAILING_RET_T))
+ {
+ // Add or remove space around trailing return operator '->'.
+ log_rule("sp_trailing_ret_t");
+ return(options::sp_trailing_ret_t());
+ }
+```
+
+
+### Portability
+
+We are pretty sure that nothing OS-specific is used in the code base.
+The software has been previously tested on the following operating systems:
+- Linux
+- QNX
+- OS X
+- FreeBSD, NetBSD, OpenBSD
+- Sun Solaris 9
+- Windows (binary available)
+
+
+---------------------------------------------------------------------------
+
+## Running the program
+
+__NOTE__ This application works reasonably well but it has bugs. Do __not__
+apply it on your whole codebase without checking the results!
+
+Here are ways to run it:
+```
+$ uncrustify -c mystyle.cfg -f somefile.c -o somefile.c.unc
+$ uncrustify -c mystyle.cfg -f somefile.c > somefile.c.unc
+$ uncrustify -c mystyle.cfg somefile.c
+$ uncrustify -c mystyle.cfg --no-backup somefile.c
+$ uncrustify -c mystyle.cfg *.c
+$ uncrustify -c mystyle.cfg --no-backup *.c
+```
+The `-c` flag selects the configuration file.
+The `-f` flag specifies the input file.
+The `-o` flag specifies the output file.
+If flag `-f` is used without flag `-o` the output will be send to `stdout`.
+
+Alternatively multiple or single files that should be processed can be
+specified at the command end without flags.
+If the flag `--no-backup` is missing, every file is saved with the initial
+name and an additional suffix (can be changed with --suffix).
+
+For more options descriptions call:
+```bash
+$ uncrustify -h
+```
+
+## Configuring the program
+Uncrustify usually reads configuration files that are passed via the `-c`
+flag. If the flag is not provided Uncrustify will try to find a
+configuration file via the `UNCRUSTIFY_CONFIG` environment variable or a
+file with the name `.uncrustify.cfg` or `uncrustify.cfg` in your home folder.
+
+To get a list of:
+- all available options use:
+ ```bash
+ uncrustify --show-config
+ ```
+
+- all available options in a usable configuration file format use:
+ ```bash
+ uncrustify --update-config
+ ```
+
+ or
+
+ ```bash
+ uncrustify --update-config-with-doc
+ ```
+
+ As the names suggest both options can produce output that adds newly
+ introduced options to your old configuration file. For this your old
+ configuration file has to be passed via the `-c` flag:
+ ```bash
+ uncrustify --update-config-with-doc -c path/to/your.cfg
+ ```
+
+Example configuration files that can be used as a starting point can be
+found in the `etc/` directory (such as [ben.cfg](./etc/ben.cfg)).
+
+Modify to your liking. Use a quality side-by-side diff tool to determine
+if the program did what you wanted. Repeat until your style is refined.
+
+To ease the process a bit, some 3rd party tools are available:
+- [Universal Indent GUI](http://universalindent.sourceforge.net/) - A
+ cross-platform graphical configuration file editor for many code
+ beautifiers, including Uncrustify.
+- [uncrustify_config](https://github.com/CDanU/uncrustify_config) - A web
+ configuration tool based on Uncrustify's emscripten interface.
+- [UncrustifyX](https://github.com/ryanmaxwell/UncrustifyX) - Uncrustify
+ utility and documentation browser for Mac OS X
+
+Under Windows:
+Uncrustify is a command-line tool, if you run it by double-clicking the
+executable, it will open a command prompt run the executable
+(which prints the help message), and then immediately close the window
+as uncrustify exits.
+
+You can open the command prompt (which is an interactive terminal
+window that allows you to run commands without it closing as soon as
+they exit) and run uncrustify.exe there.
+
+## Using uncrustify with vim
+Have a look [here](https://github.com/cofyc/vim-uncrustify)
+
+## Using uncrustify with IntelliJ
+Have a look at https://plugins.jetbrains.com/plugin/17528-uncrustify
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/TESTING b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/TESTING
index 63efbff7..63efbff7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/TESTING
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/TESTING
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/appveyor.yml b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/appveyor.yml
new file mode 100644
index 00000000..1bdd8d4c
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/appveyor.yml
@@ -0,0 +1,35 @@
+version: "{build}"
+platform: x64
+environment:
+ matrix:
+ # MSVC
+ - GENERATOR: Visual Studio 15 2017 Win64
+ APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
+configuration:
+ - Debug
+ - Release
+clone_folder: C:\projects\uncrustify
+branches:
+ only:
+ - master
+clone_depth: 10
+skip_tags: true
+#init:
+# - echo This is for test only
+# - ps: iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
+
+install:
+ - "SET PATH=C:/Python35-x64;C:/Python35-x64/Scripts;%PATH%"
+before_build:
+ - cd c:\projects\uncrustify
+ - mkdir build
+ - cd build
+ - cmake -DUNCRUSTIFY_SEPARATE_TESTS=ON -G "%GENERATOR%" ..
+build_script:
+ - cmake --build . --config %CONFIGURATION%
+test_script:
+# - echo This is for test only
+# - C:/projects/uncrustify/build/Debug/uncrustify.exe -c C:/projects/uncrustify/tests/config/mono.cfg -f C:/projects/uncrustify/tests/input/cs/simple.cs -L 66
+ - set PYTHONIOENCODING=utf-8
+ - python ../scripts/run_ctest.py -- -C %CONFIGURATION%
+deploy: off
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/cmake/CodeCoverage.cmake b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/cmake/CodeCoverage.cmake
index 670c5144..670c5144 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/cmake/CodeCoverage.cmake
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/cmake/CodeCoverage.cmake
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/cmake/GenerateTokenNames.cmake b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/cmake/GenerateTokenNames.cmake
index 02a6241a..02a6241a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/cmake/GenerateTokenNames.cmake
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/cmake/GenerateTokenNames.cmake
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/cmake/GenerateVersionHeader.cmake b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/cmake/GenerateVersionHeader.cmake
index 3d6d376b..3d6d376b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/cmake/GenerateVersionHeader.cmake
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/cmake/GenerateVersionHeader.cmake
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/cmake/Toolchain-mingw32.cmake b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/cmake/Toolchain-mingw32.cmake
new file mode 100644
index 00000000..218d9501
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/cmake/Toolchain-mingw32.cmake
@@ -0,0 +1,28 @@
+#
+# Toolchain file for cross-compiling from Linux to Win32 using MinGW
+#
+
+set(CMAKE_SYSTEM_NAME Windows)
+
+if(COMPILER_PREFIX STREQUAL "")
+ if(EXISTS /usr/i686-w64-mingw32)
+ # mingw-w64
+ set(COMPILER_PREFIX "i686-w64-mingw32")
+ elseif(EXISTS /usr/i586-mingw32msvc)
+ # mingw
+ set(COMPILER_PREFIX "i586-mingw32msvc")
+ else()
+ message(FATAL_ERROR "Unable to detect cross-compiler prefix (COMPILER_PREFIX)")
+ endif()
+endif()
+
+find_program(CMAKE_C_COMPILER NAMES ${COMPILER_PREFIX}-gcc)
+find_program(CMAKE_CXX_COMPILER NAMES ${COMPILER_PREFIX}-g++)
+find_program(CMAKE_RC_COMPILER NAMES ${COMPILER_PREFIX}-windres)
+
+set(CMAKE_FIND_ROOT_PATH /usr/${COMPILER_PREFIX})
+
+set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
+set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
+set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
+set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/cmake/Toolchain-mingw64.cmake b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/cmake/Toolchain-mingw64.cmake
new file mode 100644
index 00000000..4ec9c43a
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/cmake/Toolchain-mingw64.cmake
@@ -0,0 +1,28 @@
+#
+# Toolchain file for cross-compiling from Linux to Win64 using MinGW
+#
+
+set(CMAKE_SYSTEM_NAME Windows)
+
+if(COMPILER_PREFIX STREQUAL "")
+ if(EXISTS /usr/x86_64-w64-mingw32)
+ # mingw-w64
+ set(COMPILER_PREFIX "x86_64-w64-mingw32")
+ elseif(EXISTS /usr/amd64-mingw32msvc-gcc)
+ # mingw
+ set(COMPILER_PREFIX "amd64-mingw32msvc-gcc")
+ else()
+ message(FATAL_ERROR "Unable to detect cross-compiler prefix (COMPILER_PREFIX)")
+ endif()
+endif()
+
+find_program(CMAKE_C_COMPILER NAMES ${COMPILER_PREFIX}-gcc)
+find_program(CMAKE_CXX_COMPILER NAMES ${COMPILER_PREFIX}-g++)
+find_program(CMAKE_RC_COMPILER NAMES ${COMPILER_PREFIX}-windres)
+
+set(CMAKE_FIND_ROOT_PATH /usr/${COMPILER_PREFIX})
+
+set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
+set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
+set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
+set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/cmake/uninstall.cmake b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/cmake/uninstall.cmake
index b9618a29..b9618a29 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/cmake/uninstall.cmake
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/cmake/uninstall.cmake
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/commit.log b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/commit.log
index 1a725f4e..1a725f4e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/commit.log
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/commit.log
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/coverity.sh b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/coverity.sh
index e52a3594..e52a3594 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/coverity.sh
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/coverity.sh
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/coverity.travis.yml b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/coverity.travis.yml
index ef306e8c..ef306e8c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/coverity.travis.yml
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/coverity.travis.yml
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/cdbs/debian-tde.mk b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/debian/cdbs/debian-tde.mk
index f36e3527..f36e3527 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/cdbs/debian-tde.mk
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/debian/cdbs/debian-tde.mk
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/cdbs/versions.pl b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/debian/cdbs/versions.pl
index 1b110f7a..1b110f7a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/cdbs/versions.pl
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/debian/cdbs/versions.pl
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/debian/changelog b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/debian/changelog
new file mode 100644
index 00000000..40d2a1f0
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/debian/changelog
@@ -0,0 +1,340 @@
+uncrustify-trinity (0.75.0-0debian11.0.0+0) unstable; urgency=medium
+
+ * TDE version of upstream 0.75.0
+
+ -- Michele Calgaro <michele.calgaro@yahoo.it> Fri, 06 May 2022 13:49:07 +0900
+
+uncrustify-trinity (0.74.0-0debian11.0.0+0) unstable; urgency=medium
+
+ * TDE version of upstream 0.74.0
+
+ -- Michele Calgaro <michele.calgaro@yahoo.it> Wed, 19 May 2021 15:58:50 +0900
+
+uncrustify-trinity (0.73.0-0debian11.0.0+2) unstable; urgency=medium
+
+ * Fix Python detection on CMake < 3.12.
+
+ -- Slávek Banko <slavek.banko@axis.cz> Wed, 20 May 2021 00:00:40 +0200
+
+uncrustify-trinity (0.73.0-0debian11.0.0+1) unstable; urgency=medium
+
+ * Backported commits cb1a42dd from upstream.
+
+ -- Michele Calgaro <michele.calgaro@yahoo.it> Wed, 19 May 2021 15:58:50 +0900
+
+uncrustify-trinity (0.73.0-0debian11.0.0+0) unstable; urgency=medium
+
+ * TDE version of upstream 0.73.0
+
+ -- Michele Calgaro <michele.calgaro@yahoo.it> Wed, 19 May 2021 15:58:50 +0900
+
+uncrustify-trinity (0.72.0-0debian11.0.0+8) unstable; urgency=medium
+
+ * Switch to build using ninja-build
+
+ -- Slávek Banko <slavek.banko@axis.cz> Tue, 18 May 2021 19:30:49 +0200
+
+uncrustify-trinity (0.72.0-0debian11.0.0+7) unstable; urgency=medium
+
+ * TDE version 0.72-0+7
+ * Backported commits 5f3f392a and fb66774e from upstream.
+
+ -- Michele Calgaro <michele.calgaro@yahoo.it> Thu, 05 Jan 2021 11:08:00 +0900
+
+uncrustify-trinity (0.72.0-0debian11.0.0+6) unstable; urgency=medium
+
+ * TDE version 0.72-0+6
+ * Backported commits 45681e88 and 64d93e3fb from upstream.
+
+ -- Michele Calgaro <michele.calgaro@yahoo.it> Thu, 24 Dec 2020 20:14:00 +0900
+
+uncrustify-trinity (0.72.0-0debian11.0.0+0) unstable; urgency=medium
+
+ * TDE version of upstream 0.72.0
+
+ -- Michele Calgaro <michele.calgaro@yahoo.it> Thu, 20 Dec 2020 17:52:23 +0900
+
+uncrustify (0.72.0) unstable; urgency=medium
+
+ * New upstream version 0.72.0
+
+ -- Alexander GQ Gerasiov <gq@debian.org> Thu, 20 Dec 2020 17:34:01 +0900
+
+uncrustify (0.71.0+dfsg1-1) unstable; urgency=medium
+
+ * New upstream version 0.71.0
+ * d/control: Use debhelper-compat syntax, switch to level 12.
+ * d/control: Use python3 in B-D (Closes: #943295).
+ * d/control: Bump Standards-Version, no more changes needed.
+ * d/control: Remove unnnecessary --parallel.
+
+ -- Alexander GQ Gerasiov <gq@debian.org> Thu, 27 Aug 2020 17:12:57 +0300
+
+uncrustify (0.69.0+dfsg1-1) unstable; urgency=medium
+
+ * New upstream version 0.69.0
+ * Remove fix_parallel_test.patch: Fixed upstream.
+
+ -- Alexander GQ Gerasiov <gq@debian.org> Tue, 02 Jul 2019 19:00:32 +0300
+
+uncrustify (0.68.1+dfsg1-2) unstable; urgency=medium
+
+ * Add d/patches/fix_parallel_test.patch: Fix test failure on parallel run.
+
+ -- Alexander GQ Gerasiov <gq@debian.org> Mon, 10 Dec 2018 02:36:22 +0300
+
+uncrustify (0.68.1+dfsg1-1) unstable; urgency=medium
+
+ * New upstream version 0.68.1
+ * d/control: Add python-all to Build-Depensds.
+ * d/rules: Run all tests (now disabled by default by upstream).
+
+ -- Alexander GQ Gerasiov <gq@debian.org> Sun, 02 Dec 2018 16:19:42 +0300
+
+uncrustify (0.67+dfsg1-1) unstable; urgency=medium
+
+ * New upstream version 0.67
+ * debian/control: Move git to salsa.
+ * Add docs-remove-remote-images.patch: Remove remote images from docs.
+
+ -- Alexander GQ Gerasiov <gq@debian.org> Mon, 18 Jun 2018 01:13:56 +0300
+
+uncrustify (0.66.1+dfsg1-1) unstable; urgency=medium
+
+ * Add debian/gbp.conf.
+ * New upstream version 0.66.1 Fixed FTBFS on some arches (Closes: #881249)
+ * Bump Standards-Version to 4.1.2 (no additional changes needed).
+
+ -- Alexander GQ Gerasiov <gq@debian.org> Sun, 17 Dec 2017 18:49:06 +0300
+
+uncrustify (0.66+dfsg1-1) unstable; urgency=medium
+
+ * debian/control: Remove Fathi Boudra <fabo@debian.org> from uploaders.
+ (Closes: #879444.) Thanks for your job.
+ * New upstream version 0.66
+ * Bump Standards-Version to 4.1.1 (no additional changes needed).
+ * debian/control: Add more languages to short description.
+
+ -- Alexander GQ Gerasiov <gq@debian.org> Wed, 08 Nov 2017 18:18:47 +0300
+
+uncrustify (0.65+git20170831+dfsg1-1) unstable; urgency=medium
+
+ * New upstream version 0.65+git20170831. Fixes various FTBFS and autotests
+ failures on exotic archs. (Closes: #867376)
+ * Bump Standards-Version to 4.1.0 (no additional changes needed).
+
+ -- Alexander GQ Gerasiov <gq@debian.org> Thu, 31 Aug 2017 20:25:06 +0300
+
+uncrustify (0.65+dfsg1-1) unstable; urgency=medium
+
+ * New upstream version 0.65
+ * debian/control: Add python-minimal to Build-Depends.
+
+ -- Alexander GQ Gerasiov <gq@debian.org> Tue, 04 Jul 2017 14:50:47 +0300
+
+uncrustify (0.64+dfsg1-1) unstable; urgency=medium
+
+ * Imported Upstream version 0.64
+ (Closes: #748787, #814193, #594210, #775517, #594206, #616708)
+ * Remove non-free documentation/htdocs/project-support.jpg.
+ * Imported debian dir from previous version.
+ * Remove "debian/<q" file.
+ * Remove fix-ftbfs-with-gcc-4.7.patch (Fixed upstream).
+ * debian/control: Switch dependence from autotools to cmake.
+ * debian/control, debian/compat: Set compatibility level to 9.
+ * debian/rules: Remove legacy PRONY records.
+ * debian/control: Change Homepage to github.
+ * debian/watch: Update to github using current naming scheme.
+ * debian/copyright: Add myself.
+ * Install README.md and documentation dir into package's docs.
+ * debian/rules: Remove tests results on clean.
+ * debian/control: Set myself as maintainer. (Johann Rudloff is out of
+ business, thanks a lot for all; Fathi Boudra acked this.)
+ * Bump Standards-Version to 3.9.8 (no additional changes needed).
+ * Add debian/TODO file.
+ * debian/cotrol: Add link to collab-maint's git.
+
+ -- Alexander GQ Gerasiov <gq@debian.org> Sat, 03 Dec 2016 20:19:22 +0300
+
+uncrustify (0.59+dfsg1-1.1) unstable; urgency=medium
+
+ * Non-maintainer upload.
+ * Remove non-free file (project-support.jpg). Closes: #753760
+
+ -- Mathieu Malaterre <malat@debian.org> Fri, 16 Jan 2015 16:52:15 +0100
+
+uncrustify (0.59-2) unstable; urgency=low
+
+ * Fix FTBFS with gcc 4.7 by fixing missing <unistd.h> include.
+ (Closes: #667404)
+
+ -- Fathi Boudra <fabo@debian.org> Mon, 21 May 2012 15:40:46 +0300
+
+uncrustify (0.59-1) unstable; urgency=low
+
+ * New upstream release.
+ * Add myself to Uploaders.
+
+ -- Fathi Boudra <fabo@debian.org> Sat, 31 Dec 2011 12:49:32 +0200
+
+uncrustify (0.57-1) unstable; urgency=low
+
+ * New upstream release.
+
+ [ Fathi Boudra ]
+ * Removed patch to check for NULL - stolen upstream.
+ * Bumped Standards-Version to 3.9.1 (no changes needed).
+
+ -- Johann Rudloff <cypheon@gmx.net> Mon, 21 Feb 2011 11:54:28 +0200
+
+uncrustify (0.56-2) unstable; urgency=low
+
+ [ Fathi Boudra ]
+ * Added patch to check for NULL to prevent a segmentation fault.
+ (Closes: #580195)
+ * Bumped Standards-Version to 3.9.0 (no changes needed).
+
+ -- Johann Rudloff <cypheon@gmx.net> Thu, 01 Jul 2010 20:34:01 +0300
+
+uncrustify (0.56-1) unstable; urgency=low
+
+ * New upstream release.
+
+ [ Fathi Boudra ]
+ * Switch to dpkg-source 3.0 (quilt) format.
+ * debian/control:
+ - bumped debhelper version to 7.4.15
+ - fixed typo in long description.
+ * debian/copyright:
+ - added email author.
+ - added myself.
+
+ -- Johann Rudloff <cypheon@gmx.net> Tue, 20 Apr 2010 13:08:29 +0300
+
+uncrustify (0.55-1) unstable; urgency=low
+
+ * New upstream release (Closes: #540817)
+
+ [ Fathi Boudra ]
+ * debian/patches/manpage_fix_hyphens.diff: removed - merged upstream
+ * debian/compat: bumped to 7
+ * debian/control:
+ - bumped debhelper version to 7.4.13
+ - bumped Standards-Version to 3.8.4 (no changes needed)
+ - added ${misc:Depends}
+ * debian/docs: updated
+ * debian/rules: rewrited from scratch to use dh and enabled parallel build
+
+ -- Johann Rudloff <cypheon@gmx.net> Wed, 17 Feb 2010 09:18:41 +0100
+
+uncrustify (0.52-1) unstable; urgency=low
+
+ * New upstream release (closes: #526100)
+ * debian/copyright: changed years and wording of copyright
+ * debian/patches/manpage_fix_hyphens.diff: added patch to fix fixed hyphens
+ used as minus signs in manpage
+ * debian/rules: included usage of quilt
+ * debian/control: added build dependency quilt
+ bumped Standards-Version to 3.8.1 (no changes required)
+
+ -- Johann Rudloff <cypheon@gmx.net> Thu, 30 Apr 2009 11:32:27 +0200
+
+uncrustify (0.48-1) unstable; urgency=low
+
+ * New upstream release
+ * debian/rules: removed CFLAGS settings (done by dpkg-buildpackage)
+
+ -- Johann Rudloff <cypheon@gmx.net> Tue, 22 Jul 2008 11:19:54 +0200
+
+uncrustify (0.47-1) unstable; urgency=low
+
+ * New upstream release (closes: #479372)
+ * Bumped Standards-Version to 3.8.0 (no changes required)
+ * removed debian/uncrustify.1, since upstream sources now include a
+ manpage
+ * debian/rules: removed call to dh_installman, manpage is installed by
+ make install
+ * debian/rules: removed unneeded call to dh_installdirs
+
+ -- Johann Rudloff <cypheon@gmx.net> Sun, 08 Jun 2008 10:09:53 +0200
+
+uncrustify (0.44-1) unstable; urgency=low
+
+ * New upstream release
+ * debian/uncrustify.1: updated version number and date
+
+ -- Johann Rudloff <cypheon@gmx.net> Sun, 24 Feb 2008 09:13:49 +0100
+
+uncrustify (0.43-1) unstable; urgency=low
+
+ * New upstream release (closes: #461631)
+ * Bumped Standards-Version to 3.7.3 (no changes required)
+ * debian/copyright: updated years of copyright
+ * debian/control: moved homepage address from description to a separate field
+ * debian/uncrustify.1: updated year and month
+ * debian/rules: copy update config.{sub,guess} into source tree in
+ config.status target, remove them in clean target
+
+ -- Johann Rudloff <cypheon@gmx.net> Thu, 10 Jan 2008 15:37:19 +0100
+
+uncrustify (0.41-1) unstable; urgency=low
+
+ * New upstream release
+
+ -- Johann Rudloff <cypheon@gmx.net> Mon, 12 Nov 2007 21:22:25 +0100
+
+uncrustify (0.40-1) unstable; urgency=low
+
+ * New upstream release
+
+ -- Johann Rudloff <cypheon@gmx.net> Tue, 16 Oct 2007 21:26:13 +0200
+
+uncrustify (0.39-1) unstable; urgency=low
+
+ * New Upstream Version
+
+ -- Johann Rudloff <cypheon@gmx.net> Wed, 26 Sep 2007 23:50:30 +0200
+
+uncrustify (0.38-1) unstable; urgency=low
+
+ * New upstream release
+
+ -- Johann Rudloff <cypheon@gmx.net> Thu, 06 Sep 2007 22:52:16 +0200
+
+uncrustify (0.37-1) unstable; urgency=low
+
+ * New upstream release
+ * debian/uncrustify.1: added new command line options
+ * debian/uncrustify.1: changes in formatting and description
+
+ -- Johann Rudloff <cypheon@gmx.net> Sun, 19 Aug 2007 19:33:08 +0200
+
+uncrustify (0.36-1) unstable; urgency=low
+
+ * New upstream release (closes: #434938, #434939)
+
+ -- Johann Rudloff <cypheon@gmx.net> Tue, 07 Aug 2007 13:49:41 +0200
+
+uncrustify (0.35-1) unstable; urgency=low
+
+ * New upstream release
+
+ -- Johann Rudloff <cypheon@gmx.net> Sat, 21 Jul 2007 20:41:52 +0200
+
+uncrustify (0.33-1) unstable; urgency=low
+
+ * New upstream release (closes: #416469)
+ * Added debian/watch file
+ * debian/uncrustify.1: added new command line options
+ * debian/uncrustify.1: removed leading colons
+ * debian/copyright: updated years of copyright
+ * debian/copyright: updated parts concerning cmpcfg.pl, since it
+ now contains a proper license statement
+
+ -- Johann Rudloff <cypheon@gmx.net> Fri, 30 Mar 2007 20:51:27 +0200
+
+uncrustify (0.30-1) unstable; urgency=low
+
+ * Initial release
+
+ -- Johann Rudloff <cypheon@gmx.net> Sat, 25 Nov 2006 14:06:44 +0100
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/compat b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/debian/compat
index ec635144..ec635144 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/compat
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/debian/compat
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/debian/control b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/debian/control
new file mode 100644
index 00000000..21e39cb0
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/debian/control
@@ -0,0 +1,19 @@
+Source: uncrustify-trinity
+Section: deps-r14/devel
+Priority: optional
+Maintainer: TDE Debian Team <team-debian@trinitydesktop.org>
+XSBC-Original-Maintainer: Alexander GQ Gerasiov <gq@debian.org>
+Build-Depends: cdbs, debhelper (>= 9~), quilt, cmake (>= 3.0~), ninja-build, python3 (>= 3.3~), gcc (>= 4:4.9~)
+Standards-Version: 4.5.0
+Homepage: https://github.com/uncrustify/uncrustify
+
+Package: uncrustify-trinity
+Architecture: any
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Description: C, C++, ObjectiveC, C#, D, Java, Pawn and VALA source code beautifier
+ Uncrustify is a highly configurable source code formatter. It aligns
+ preprocessor define's, assignments, arithmetics and is able to fix spacing
+ between operators.
+ .
+ This is a TDE packaged version of upstream uncrustify, used to have a consistent
+ version for code formatting across multiple platforms.
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/copyright b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/debian/copyright
index 7c74f673..7c74f673 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/copyright
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/debian/copyright
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/docs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/debian/docs
index 3310d30d..3310d30d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/docs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/debian/docs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/patches/001_docs-remove-remote-images.patch b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/debian/patches/001_docs-remove-remote-images.patch
index 9c7d3e3b..9c7d3e3b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/patches/001_docs-remove-remote-images.patch
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/debian/patches/001_docs-remove-remote-images.patch
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/debian/patches/002_trinity_customization.diff b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/debian/patches/002_trinity_customization.diff
new file mode 100644
index 00000000..c447cc39
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/debian/patches/002_trinity_customization.diff
@@ -0,0 +1,231 @@
+Customize and repackage as a TDE package.
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1,6 +1,6 @@
+ cmake_minimum_required(VERSION 3.2)
+
+-project(uncrustify)
++project(uncrustify-trinity)
+
+ if("${PROJECT_SOURCE_DIR}" STREQUAL "${PROJECT_BINARY_DIR}")
+ message(FATAL_ERROR "
+@@ -239,7 +239,7 @@
+ #
+ # Uncrustify
+ #
+-set(uncrustify_sources
++set(uncrustify-trinity_sources
+ src/align_add.cpp
+ src/align_asm_colon.cpp
+ src/align_assign.cpp
+@@ -325,7 +325,7 @@
+ ${PROJECT_BINARY_DIR}/src/option_enum.cpp
+ )
+
+-set(uncrustify_headers
++set(uncrustify-trinity_headers
+ src/add_space_table.h
+ src/align_add.h
+ src/align_asm_colon.h
+@@ -421,7 +421,7 @@
+ ${PROJECT_BINARY_DIR}/uncrustify_version.h
+ )
+
+-set(uncrustify_docs
++set(uncrustify-trinity_docs
+ "${PROJECT_SOURCE_DIR}/AUTHORS"
+ "${PROJECT_SOURCE_DIR}/BUGS"
+ "${PROJECT_SOURCE_DIR}/ChangeLog"
+@@ -430,31 +430,31 @@
+ "${PROJECT_SOURCE_DIR}/README.md"
+ )
+
+-add_executable(uncrustify ${uncrustify_sources} ${uncrustify_headers})
+-add_dependencies(uncrustify generate_version_header)
++add_executable(uncrustify-trinity ${uncrustify-trinity_sources} ${uncrustify-trinity_headers})
++add_dependencies(uncrustify-trinity generate_version_header)
+
+ if(CMAKE_VERSION VERSION_LESS 2.8.10)
+ if(CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE)
+ # Multi-configuration or build type set
+- set_property(TARGET uncrustify APPEND PROPERTY
++ set_property(TARGET uncrustify-trinity APPEND PROPERTY
+ COMPILE_DEFINITIONS_DEBUG DEBUG
+ )
+ else()
+ # Single-configuration with no build type set
+- set_property(TARGET uncrustify APPEND PROPERTY
++ set_property(TARGET uncrustify-trinity APPEND PROPERTY
+ COMPILE_DEFINITIONS DEBUG
+ )
+ endif()
+ else()
+- set_property(TARGET uncrustify APPEND PROPERTY
++ set_property(TARGET uncrustify-trinity APPEND PROPERTY
+ COMPILE_DEFINITIONS $<$<OR:$<CONFIG:Debug>,$<CONFIG:>>:DEBUG>
+ )
+ endif()
+
+ #
+-# Generate uncrustify.1
++# Generate uncrustify-trinity.1
+ #
+-configure_file(man/uncrustify.1.in uncrustify.1 @ONLY)
++configure_file(man/uncrustify.1.in uncrustify-trinity.1 @ONLY)
+
+ #
+ # Generate uncrustify.xml (katepart highlighting file)
+@@ -476,7 +476,7 @@
+ #
+ OPTION(ENABLE_CODECOVERAGE "Enable code coverage testing support")
+ if(ENABLE_CODECOVERAGE)
+- set(CODECOVERAGE_DEPENDS uncrustify)
++ set(CODECOVERAGE_DEPENDS uncrustify-trinity)
+ include(${CMAKE_SOURCE_DIR}/cmake/CodeCoverage.cmake)
+ endif(ENABLE_CODECOVERAGE)
+
+@@ -484,10 +484,10 @@
+ # Build command to run uncrustify on its own sources
+ #
+ add_custom_target(format-sources)
+-foreach(source IN LISTS uncrustify_sources uncrustify_headers)
++foreach(source IN LISTS uncrustify-trinity_sources uncrustify-trinity_headers)
+ get_filename_component(source_name ${source} NAME)
+ add_custom_target(format-${source_name}
+- COMMAND uncrustify
++ COMMAND uncrustify-trinity
+ -c forUncrustifySources.cfg
+ -lCPP --no-backup ${source}
+ COMMENT "Formatting ${source}"
+@@ -499,7 +499,7 @@
+ #
+ # Package
+ #
+-set(CPACK_PACKAGE_NAME "uncrustify")
++set(CPACK_PACKAGE_NAME "uncrustify-trinity")
+ set(CPACK_PACKAGE_VERSION "${UNCRUSTIFY_VERSION}")
+ set(CPACK_PACKAGE_VENDOR "Ben Gardner")
+ set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Code beautifier")
+@@ -517,8 +517,8 @@
+ # Install
+ #
+ if(MSVC)
+- install(TARGETS uncrustify DESTINATION ".")
+- install(FILES ${uncrustify_docs}
++ install(TARGETS uncrustify-trinity DESTINATION ".")
++ install(FILES ${uncrustify-trinity_docs}
+ DESTINATION "."
+ )
+ install(FILES "${PROJECT_SOURCE_DIR}/documentation/htdocs/index.html"
+@@ -530,17 +530,17 @@
+ )
+ else()
+ include(GNUInstallDirs)
+- install(TARGETS uncrustify
++ install(TARGETS uncrustify-trinity
+ RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
+ )
+- install(FILES "${CMAKE_CURRENT_BINARY_DIR}/uncrustify.1"
++ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/uncrustify-trinity.1"
+ DESTINATION "${CMAKE_INSTALL_MANDIR}/man1"
+ )
+ install(DIRECTORY "${PROJECT_SOURCE_DIR}/etc/"
+ DESTINATION "${CMAKE_INSTALL_DOCDIR}/examples"
+ FILES_MATCHING PATTERN "*.cfg"
+ )
+- install(FILES ${uncrustify_docs}
++ install(FILES ${uncrustify-trinity_docs}
+ DESTINATION "${CMAKE_INSTALL_DOCDIR}"
+ )
+ endif()
+--- a/tests/CMakeLists.txt
++++ b/tests/CMakeLists.txt
+@@ -32,7 +32,7 @@
+ add_custom_command(
+ OUTPUT ${tests_ctest_file}
+ COMMAND ${PYTHON_EXECUTABLE} run_format_tests.py
+- --executable $<TARGET_FILE:uncrustify>
++ --executable $<TARGET_FILE:uncrustify-trinity>
+ --git ${GIT_EXECUTABLE}
+ --python ${PYTHON_EXECUTABLE}
+ --write-ctest ${tests_ctest_file}
+@@ -48,7 +48,7 @@
+ string(REPLACE ".test" "" lang "${suite}")
+ add_test(NAME ${lang}
+ COMMAND ${PYTHON_EXECUTABLE} run_format_tests.py ${lang}
+- --executable $<TARGET_FILE:uncrustify>
++ --executable $<TARGET_FILE:uncrustify-trinity>
+ -d --git ${GIT_EXECUTABLE}
+ --result-dir ${CMAKE_CURRENT_BINARY_DIR}
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+@@ -60,7 +60,7 @@
+ add_test(
+ NAME sources_format
+ COMMAND ${PYTHON_EXECUTABLE} run_sources_tests.py
+- --executable $<TARGET_FILE:uncrustify>
++ --executable $<TARGET_FILE:uncrustify-trinity>
+ -d --git ${GIT_EXECUTABLE}
+ --result-dir ${CMAKE_CURRENT_BINARY_DIR}
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+@@ -72,7 +72,7 @@
+ COMMAND ${PYTHON_EXECUTABLE}
+ test_cli_options.py
+ --config $<CONFIG>
+- --build ${uncrustify_BINARY_DIR}
++ --build ${uncrustify-trinity_BINARY_DIR}
+ --diff
+ --test ${CMAKE_CURRENT_BINARY_DIR}/cli
+ ${_configs}
+@@ -83,11 +83,11 @@
+ COMMAND ${PYTHON_EXECUTABLE}
+ test_cli_options.py
+ --config $<CONFIG>
+- --build ${uncrustify_BINARY_DIR}
++ --build ${uncrustify-trinity_BINARY_DIR}
+ --apply
+ --test ${CMAKE_CURRENT_BINARY_DIR}/cli
+- DEPENDS uncrustify
++ DEPENDS uncrustify-trinity
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/cli
+ )
+
+-add_test(NAME sanity COMMAND uncrustify --help)
++add_test(NAME sanity COMMAND uncrustify-trinity --help)
+--- a/tests/cli/output/help.txt
++++ b/tests/cli/output/help.txt
+@@ -1,5 +1,5 @@
+ Usage:
+-uncrustify [options] [files ...]
++uncrustify-trinity [options] [files ...]
+
+ If no input files are specified, the input is read from stdin
+ If reading from stdin, you should specify the language using -l
+--- a/tests/cli/test_cli_options.py
++++ b/tests/cli/test_cli_options.py
+@@ -492,16 +492,16 @@
+ bd_dir = parsed_args.build
+ test_dir = parsed_args.test
+
+- bin_paths = [s_path_join(bd_dir, 'uncrustify'),
+- s_path_join(bd_dir, 'uncrustify.exe'),
+- s_path_join(bd_dir, 'Debug/uncrustify'),
+- s_path_join(bd_dir, 'Debug/uncrustify.exe'),
+- s_path_join(bd_dir, 'Release/uncrustify'),
+- s_path_join(bd_dir, 'Release/uncrustify.exe'),
+- s_path_join(bd_dir, 'RelWithDebInfo/uncrustify'),
+- s_path_join(bd_dir, 'RelWithDebInfo/uncrustify.exe'),
+- s_path_join(bd_dir, 'MinSizeRel/uncrustify'),
+- s_path_join(bd_dir, 'MinSizeRel/uncrustify.exe')]
++ bin_paths = [s_path_join(bd_dir, 'uncrustify-trinity'),
++ s_path_join(bd_dir, 'uncrustify-trinity.exe'),
++ s_path_join(bd_dir, 'Debug/uncrustify-trinity'),
++ s_path_join(bd_dir, 'Debug/uncrustify-trinity.exe'),
++ s_path_join(bd_dir, 'Release/uncrustify-trinity'),
++ s_path_join(bd_dir, 'Release/uncrustify-trinity.exe'),
++ s_path_join(bd_dir, 'RelWithDebInfo/uncrustify-trinity'),
++ s_path_join(bd_dir, 'RelWithDebInfo/uncrustify-trinity.exe'),
++ s_path_join(bd_dir, 'MinSizeRel/uncrustify-trinity'),
++ s_path_join(bd_dir, 'MinSizeRel/uncrustify-trinity.exe')]
+ for uncr_bin in bin_paths:
+ if not isfile(uncr_bin):
+ eprint("is not a file: %s" % uncr_bin)
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/patches/003_allow_older_distributions.diff b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/debian/patches/003_allow_older_distributions.diff
index 8643a7cd..8643a7cd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/patches/003_allow_older_distributions.diff
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/debian/patches/003_allow_older_distributions.diff
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/patches/004_fixed_usage.diff b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/debian/patches/004_fixed_usage.diff
index 3f2c57ff..3f2c57ff 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/patches/004_fixed_usage.diff
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/debian/patches/004_fixed_usage.diff
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/patches/series b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/debian/patches/series
index 383a9d11..383a9d11 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/patches/series
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/debian/patches/series
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/rules b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/debian/rules
index dd013fa1..dd013fa1 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/rules
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/debian/rules
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/source/format b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/debian/source/format
index 163aaf8d..163aaf8d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/source/format
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/debian/source/format
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/source/options b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/debian/source/options
index d71748bb..d71748bb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/source/options
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/debian/source/options
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/Track.jpg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/Track.jpg
index b18b0477..b18b0477 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/Track.jpg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/Track.jpg
Binary files differ
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/Tracking.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/Tracking.txt
index a1fb7850..a1fb7850 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/Tracking.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/Tracking.txt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/align-thresholds.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/align-thresholds.txt
new file mode 100644
index 00000000..5c18039d
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/align-thresholds.txt
@@ -0,0 +1,219 @@
+-------------------------------------------------------------------------------
+Alignment thresholds:
+
+Alignment threshold are used to prevent aligning of certain text.
+
+Consider this example when aligning assignments:
+
+ a = 2;
+ gld.settings[somevariable] = 5;
+
+Without thresholds, this would result in:
+
+ a = 2;
+ gld.settings[somevariable] = 5;
+
+However, this is likely not desired.
+
+So to handle this, we set a limit on the number of columns that a alignment
+may move a token. If we set the threshold to, say, 3 characters, then
+the two would not be aligned together because 'a = 2' would have to be moved
+by 25 columns.
+
+Here's a more complicated case:
+
+ a = 1;
+ bb = 2;
+ ccc = 3;
+ dddd = 4;
+ eeeee = 5;
+ ffffff = 6;
+
+In this case, we may want this output:
+
+ a = 1;
+ bb = 2;
+ ccc = 3;
+ dddd = 4;
+ eeeee = 5;
+ ffffff = 6;
+
+But, with a threshold of 3, 'a' and 'ffffff' cannot be aligned together.
+
+So how should these thresholds be implemented?
+
+One approach is to use the threshold as the maximum difference between the
+current maximum and the new maximum. Using this approach, all 6 lines above
+are aligned, because the change for each is 1 column.
+
+Consider this with a line-span of 3 and a column-threshold of 3.
+Note that we'll now need to keep track of the last line processed.
+(line and column numbers added for clarity)
+
+ 111111
+ 123456789012345
+ ---------------
+1 | a = 1;
+2 | eeeee = 5;
+3 | ffffff = 6;
+
+On line 1, the maxcol is set to 3.
+On line 2, the maxcol would be set to 7, except that exceeds the threshold.
+On line 3, the maxcol would be set to 8, except that exceeds the threshold.
+
+So, it ends up with one item in the align stack - line 1.
+Then we pick up from where we left off - on line 2.
+On line 2, the maxcol is set to 7.
+On line 3, the maxcol is set to 8.
+
+End result:
+ 111111
+ 123456789012345
+ ---------------
+1 | a = 1;
+2 | eeeee = 5;
+3 | ffffff = 6;
+
+
+Now lets get tricky.
+
+ 111111
+ 123456789012345
+ ---------------
+1 | a = 1;
+2 | eeeee = 5;
+3 | ccc = 3;
+4 | ffffff = 6;
+
+How should this be aligned?
+I think we need to add another list - a 'skipped' list, that runs in parallel
+with the 'aligned' list.
+
+On line 1, the maxcol is set to 3, added to the aligned list.
+On line 2, col exceeds the threshold, so it is added to the skipped list.
+On line 3, the maxcol is set to 5, added to the aligned list.
+Now, after an item is added to the aligned list, the skipped list must be re-scanned.
+We now see that line 2 is only 2 columns different, so it is added and maxcol = 7.
+The skipped list is now empty.
+On line 4, the maxcol is set to 8, added to the aligned list.
+
+So the output is:
+
+ 111111
+ 123456789012345
+ ---------------
+1 | a = 1;
+2 | eeeee = 5;
+3 | ccc = 3;
+4 | ffffff = 6;
+
+
+Now for a case where the skipped list is not absorbed:
+
+ 111111
+ 123456789012345
+ ---------------
+1 | a = 1;
+2 | iiiiiiiiiiiiieeeee = 5;
+3 | ccc = 3;
+4 | ffffff = 6;
+
+On line 1, the maxcol is set to 3, added to the aligned list.
+On line 2, col exceeds the threshold, so it is added to the skipped list.
+On line 3, the maxcol is set to 5, added to the aligned list.
+Skipped list is scanned, nothing moved from the skipped list to the aligned list.
+On line 4, the maxcol is set to 8, added to the aligned list.
+
+So the output is:
+
+ 111111
+ 123456789012345
+ ---------------
+1 | a = 1;
+2 | iiiiiiiiiiiiieeeee = 5;
+3 | ccc = 3;
+4 | ffffff = 6;
+
+As a reminder, the old system would have produced:
+
+1 | a = 1;
+2 | iiiiiiiiiiiiieeeee = 5;
+3 | ccc = 3;
+4 | ffffff = 6;
+
+Which is probably not wanted.
+
+
+--===---===---===---===--
+Absolute thresholds
+To get a better grip on what thresholds do the absolute thresholds were introduced.
+An absolute threshold means that the item, in this case the assign statement, is never
+moved more than the threshold value.
+
+See the below example:
+Relative threshold = 10
+ 000000000111111111122222222223
+ 123456789012345678901234567890
+1| a = 1
+2| aaaaa = 1
+3| bbbbbbbbbbb = 2
+4| ccccccccccccccccccccc = 3
+
+Absolute threshold:
+ 000000000111111111122222222223
+ 123456789012345678901234567890
+1| a = 1
+2| aaaaa = 1
+3| bbbbbbbbbbb = 2
+4| cccccccccccccccccccc = 3
+
+--===---===---===---===--
+How to do this generically in the code...
+
+Easy case - one item per line.
+
+An AlignStack is used to manage alignment.
+Here are the functions and what each of them do:
+AlignStack::Start(line_span, col_thresh)
+AlignStack::Add(pc)
+AlignStack::Flush()
+AlignStack::Newline(count)
+AlignStack::End()
+
+For each entry, a sequence number is kept.
+
+AlignStack::Start(line_span, col_thresh)
+ - initializes the align and skipped lists
+ - zero max_column
+ - zero cur_seqnum
+ - zero nl_count
+
+AlignStack::Add(start, seqnum)
+ - update cur_seqnum, assign to item
+ - if item column is within threshold
+ - zero nl_count
+ - add to the aligned list
+ - if item column is > max_col
+ - update max_col
+ - re-adds all items on the skipped list
+ - if item column is not within threshold, add to skipped list
+
+AlignStack::NewLines(count)
+ - adds count to nl_count
+ - if nl_count > line_span, call AlignStack::Flush()
+
+AlignStack::Flush()
+ - step through all the items in aligned list and align the items to max_column
+ - keep the seq_num of the last aligned item
+ - zero max_column
+ - remove all items with a seq_num < last aligned seq_num
+ - call AlignStack::Add on all remaining items in the skipped list
+
+AlignStack::End()
+ - call AlignStack::Flush
+ - clear the lists
+ - free resources, etc
+
+Example usage: see align_assign function in align_assign.cpp
+
+Chunk *align_assign(Chunk *first, size_t span, size_t thresh, size_t *p_nl_count);
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/control_the_spaces.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/control_the_spaces.txt
index 8ea2ac52..8ea2ac52 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/control_the_spaces.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/control_the_spaces.txt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/dump-steps.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/dump-steps.txt
index 498a147e..498a147e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/dump-steps.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/dump-steps.txt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/example.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/example.c
index 7c8edf79..7c8edf79 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/example.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/example.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/goals.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/goals.txt
index 610ec121..610ec121 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/goals.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/goals.txt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/how_to_configure_options.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/how_to_configure_options.txt
new file mode 100644
index 00000000..2f0eee4e
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/how_to_configure_options.txt
@@ -0,0 +1,16 @@
+Here are some suggestions on how to familiarize yourself with the various options that uncrustify offers.
+
+1. Read through default.cfg config file. This lists all the available options and a brief description of what they do.
+2. Create an empty config file or make a copy of the default.cfg file
+3. Looking at the file default.cfg, add or change one or more options in the config file created in 2. and test the result.
+4. Iterate step 3. over and over changing just a few options at a time till the required output is reached. Working on one option at a time will give the best results.
+
+It is recommended to use a backup-update-compare cycle to ease your testing.
+
+1. save a copy of the last configuration and the last output
+2. modify the config file
+3. run uncrustify again on the original unmodified files with the new configuration
+4. compare the new output with the saved one to see the effects of the changed configuration.
+
+If you discover an issue or you need some extra functionality, please report an issue at https://github.com/uncrustify/uncrustify/issues
+
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/how_to_format_cpp_lambda_functions.rst b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/how_to_format_cpp_lambda_functions.rst
index e15776d4..e15776d4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/how_to_format_cpp_lambda_functions.rst
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/how_to_format_cpp_lambda_functions.rst
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/align_typedef.html b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/align_typedef.html
index 6d94eadf..6d94eadf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/align_typedef.html
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/align_typedef.html
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/ben.cfg.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/ben.cfg.txt
index 5b19c7ca..5b19c7ca 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/ben.cfg.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/ben.cfg.txt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/config.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/config.txt
new file mode 100644
index 00000000..571f4038
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/config.txt
@@ -0,0 +1,3493 @@
+# Uncrustify-0.75.0
+
+#
+# General options
+#
+
+# The type of line endings.
+#
+# Default: auto
+newlines = auto # lf/crlf/cr/auto
+
+# The original size of tabs in the input.
+#
+# Default: 8
+input_tab_size = 8 # unsigned number
+
+# The size of tabs in the output (only used if align_with_tabs=true).
+#
+# Default: 8
+output_tab_size = 8 # unsigned number
+
+# The ASCII value of the string escape char, usually 92 (\) or (Pawn) 94 (^).
+#
+# Default: 92
+string_escape_char = 92 # unsigned number
+
+# Alternate string escape char (usually only used for Pawn).
+# Only works right before the quote char.
+string_escape_char2 = 0 # unsigned number
+
+# Replace tab characters found in string literals with the escape sequence \t
+# instead.
+string_replace_tab_chars = false # true/false
+
+# Allow interpreting '>=' and '>>=' as part of a template in code like
+# 'void f(list<list<B>>=val);'. If true, 'assert(x<0 && y>=3)' will be broken.
+# Improvements to template detection may make this option obsolete.
+tok_split_gte = false # true/false
+
+# Disable formatting of NL_CONT ('\\n') ended lines (e.g. multi-line macros).
+disable_processing_nl_cont = false # true/false
+
+# Specify the marker used in comments to disable processing of part of the
+# file.
+#
+# Default: *INDENT-OFF*
+disable_processing_cmt = " *INDENT-OFF*" # string
+
+# Specify the marker used in comments to (re)enable processing in a file.
+#
+# Default: *INDENT-ON*
+enable_processing_cmt = " *INDENT-ON*" # string
+
+# Enable parsing of digraphs.
+enable_digraphs = false # true/false
+
+# Option to allow both disable_processing_cmt and enable_processing_cmt
+# strings, if specified, to be interpreted as ECMAScript regular expressions.
+# If true, a regex search will be performed within comments according to the
+# specified patterns in order to disable/enable processing.
+processing_cmt_as_regex = false # true/false
+
+# Add or remove the UTF-8 BOM (recommend 'remove').
+utf8_bom = ignore # ignore/add/remove/force/not_defined
+
+# If the file contains bytes with values between 128 and 255, but is not
+# UTF-8, then output as UTF-8.
+utf8_byte = false # true/false
+
+# Force the output encoding to UTF-8.
+utf8_force = false # true/false
+
+#
+# Spacing options
+#
+
+# Add or remove space around non-assignment symbolic operators ('+', '/', '%',
+# '<<', and so forth).
+sp_arith = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space around arithmetic operators '+' and '-'.
+#
+# Overrides sp_arith.
+sp_arith_additive = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space around assignment operator '=', '+=', etc.
+sp_assign = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space around '=' in C++11 lambda capture specifications.
+#
+# Overrides sp_assign.
+sp_cpp_lambda_assign = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after the capture specification of a C++11 lambda when
+# an argument list is present, as in '[] <here> (int x){ ... }'.
+sp_cpp_lambda_square_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after the capture specification of a C++11 lambda with
+# no argument list is present, as in '[] <here> { ... }'.
+sp_cpp_lambda_square_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after the opening parenthesis and before the closing
+# parenthesis of a argument list of a C++11 lambda, as in
+# '[]( <here> int x <here> ){ ... }'.
+sp_cpp_lambda_argument_list = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after the argument list of a C++11 lambda, as in
+# '[](int x) <here> { ... }'.
+sp_cpp_lambda_paren_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between a lambda body and its call operator of an
+# immediately invoked lambda, as in '[]( ... ){ ... } <here> ( ... )'.
+sp_cpp_lambda_fparen = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space around assignment operator '=' in a prototype.
+#
+# If set to ignore, use sp_assign.
+sp_assign_default = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before assignment operator '=', '+=', etc.
+#
+# Overrides sp_assign.
+sp_before_assign = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after assignment operator '=', '+=', etc.
+#
+# Overrides sp_assign.
+sp_after_assign = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space in 'enum {'.
+#
+# Default: add
+sp_enum_brace = add # ignore/add/remove/force/not_defined
+
+# Add or remove space in 'NS_ENUM ('.
+sp_enum_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space around assignment '=' in enum.
+sp_enum_assign = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before assignment '=' in enum.
+#
+# Overrides sp_enum_assign.
+sp_enum_before_assign = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after assignment '=' in enum.
+#
+# Overrides sp_enum_assign.
+sp_enum_after_assign = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space around assignment ':' in enum.
+sp_enum_colon = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space around preprocessor '##' concatenation operator.
+#
+# Default: add
+sp_pp_concat = add # ignore/add/remove/force/not_defined
+
+# Add or remove space after preprocessor '#' stringify operator.
+# Also affects the '#@' charizing operator.
+sp_pp_stringify = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before preprocessor '#' stringify operator
+# as in '#define x(y) L#y'.
+sp_before_pp_stringify = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space around boolean operators '&&' and '||'.
+sp_bool = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space around compare operator '<', '>', '==', etc.
+sp_compare = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space inside '(' and ')'.
+sp_inside_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between nested parentheses, i.e. '((' vs. ') )'.
+sp_paren_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between back-to-back parentheses, i.e. ')(' vs. ') ('.
+sp_cparen_oparen = ignore # ignore/add/remove/force/not_defined
+
+# Whether to balance spaces inside nested parentheses.
+sp_balance_nested_parens = false # true/false
+
+# Add or remove space between ')' and '{'.
+sp_paren_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between nested braces, i.e. '{{' vs. '{ {'.
+sp_brace_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before pointer star '*'.
+sp_before_ptr_star = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before pointer star '*' that isn't followed by a
+# variable name. If set to ignore, sp_before_ptr_star is used instead.
+sp_before_unnamed_ptr_star = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between pointer stars '*', as in 'int ***a;'.
+sp_between_ptr_star = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after pointer star '*', if followed by a word.
+#
+# Overrides sp_type_func.
+sp_after_ptr_star = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after pointer caret '^', if followed by a word.
+sp_after_ptr_block_caret = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after pointer star '*', if followed by a qualifier.
+sp_after_ptr_star_qualifier = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after a pointer star '*', if followed by a function
+# prototype or function definition.
+#
+# Overrides sp_after_ptr_star and sp_type_func.
+sp_after_ptr_star_func = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after a pointer star '*' in the trailing return of a
+# function prototype or function definition.
+sp_after_ptr_star_trailing = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between the pointer star '*' and the name of the variable
+# in a function pointer definition.
+sp_ptr_star_func_var = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between the pointer star '*' and the name of the type
+# in a function pointer type definition.
+sp_ptr_star_func_type = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after a pointer star '*', if followed by an open
+# parenthesis, as in 'void* (*)()'.
+sp_ptr_star_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before a pointer star '*', if followed by a function
+# prototype or function definition.
+sp_before_ptr_star_func = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before a pointer star '*' in the trailing return of a
+# function prototype or function definition.
+sp_before_ptr_star_trailing = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before a reference sign '&'.
+sp_before_byref = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before a reference sign '&' that isn't followed by a
+# variable name. If set to ignore, sp_before_byref is used instead.
+sp_before_unnamed_byref = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after reference sign '&', if followed by a word.
+#
+# Overrides sp_type_func.
+sp_after_byref = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after a reference sign '&', if followed by a function
+# prototype or function definition.
+#
+# Overrides sp_after_byref and sp_type_func.
+sp_after_byref_func = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before a reference sign '&', if followed by a function
+# prototype or function definition.
+sp_before_byref_func = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after a reference sign '&', if followed by an open
+# parenthesis, as in 'char& (*)()'.
+sp_byref_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between type and word. In cases where total removal of
+# whitespace would be a syntax error, a value of 'remove' is treated the same
+# as 'force'.
+#
+# This also affects some other instances of space following a type that are
+# not covered by other options; for example, between the return type and
+# parenthesis of a function type template argument, between the type and
+# parenthesis of an array parameter, or between 'decltype(...)' and the
+# following word.
+#
+# Default: force
+sp_after_type = force # ignore/add/remove/force/not_defined
+
+# Add or remove space between 'decltype(...)' and word,
+# brace or function call.
+sp_after_decltype = ignore # ignore/add/remove/force/not_defined
+
+# (D) Add or remove space before the parenthesis in the D constructs
+# 'template Foo(' and 'class Foo('.
+sp_before_template_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between 'template' and '<'.
+# If set to ignore, sp_before_angle is used.
+sp_template_angle = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before '<'.
+sp_before_angle = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space inside '<' and '>'.
+sp_inside_angle = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space inside '<>'.
+sp_inside_angle_empty = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between '>' and ':'.
+sp_angle_colon = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after '>'.
+sp_after_angle = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between '>' and '(' as found in 'new List<byte>(foo);'.
+sp_angle_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between '>' and '()' as found in 'new List<byte>();'.
+sp_angle_paren_empty = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between '>' and a word as in 'List<byte> m;' or
+# 'template <typename T> static ...'.
+sp_angle_word = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between '>' and '>' in '>>' (template stuff).
+#
+# Default: add
+sp_angle_shift = add # ignore/add/remove/force/not_defined
+
+# (C++11) Permit removal of the space between '>>' in 'foo<bar<int> >'. Note
+# that sp_angle_shift cannot remove the space without this option.
+sp_permit_cpp11_shift = false # true/false
+
+# Add or remove space before '(' of control statements ('if', 'for', 'switch',
+# 'while', etc.).
+sp_before_sparen = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space inside '(' and ')' of control statements other than
+# 'for'.
+sp_inside_sparen = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after '(' of control statements other than 'for'.
+#
+# Overrides sp_inside_sparen.
+sp_inside_sparen_open = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before ')' of control statements other than 'for'.
+#
+# Overrides sp_inside_sparen.
+sp_inside_sparen_close = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space inside '(' and ')' of 'for' statements.
+sp_inside_for = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after '(' of 'for' statements.
+#
+# Overrides sp_inside_for.
+sp_inside_for_open = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before ')' of 'for' statements.
+#
+# Overrides sp_inside_for.
+sp_inside_for_close = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between '((' or '))' of control statements.
+sp_sparen_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after ')' of control statements.
+sp_after_sparen = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between ')' and '{' of control statements.
+sp_sparen_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between 'do' and '{'.
+sp_do_brace_open = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between '}' and 'while'.
+sp_brace_close_while = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between 'while' and '('. Overrides sp_before_sparen.
+sp_while_paren_open = ignore # ignore/add/remove/force/not_defined
+
+# (D) Add or remove space between 'invariant' and '('.
+sp_invariant_paren = ignore # ignore/add/remove/force/not_defined
+
+# (D) Add or remove space after the ')' in 'invariant (C) c'.
+sp_after_invariant_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before empty statement ';' on 'if', 'for' and 'while'.
+sp_special_semi = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before ';'.
+#
+# Default: remove
+sp_before_semi = remove # ignore/add/remove/force/not_defined
+
+# Add or remove space before ';' in non-empty 'for' statements.
+sp_before_semi_for = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before a semicolon of an empty left part of a for
+# statement, as in 'for ( <here> ; ; )'.
+sp_before_semi_for_empty = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between the semicolons of an empty middle part of a for
+# statement, as in 'for ( ; <here> ; )'.
+sp_between_semi_for_empty = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after ';', except when followed by a comment.
+#
+# Default: add
+sp_after_semi = add # ignore/add/remove/force/not_defined
+
+# Add or remove space after ';' in non-empty 'for' statements.
+#
+# Default: force
+sp_after_semi_for = force # ignore/add/remove/force/not_defined
+
+# Add or remove space after the final semicolon of an empty part of a for
+# statement, as in 'for ( ; ; <here> )'.
+sp_after_semi_for_empty = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before '[' (except '[]').
+sp_before_square = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before '[' for a variable definition.
+#
+# Default: remove
+sp_before_vardef_square = remove # ignore/add/remove/force/not_defined
+
+# Add or remove space before '[' for asm block.
+sp_before_square_asm_block = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before '[]'.
+sp_before_squares = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before C++17 structured bindings.
+sp_cpp_before_struct_binding = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space inside a non-empty '[' and ']'.
+sp_inside_square = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space inside '[]'.
+sp_inside_square_empty = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space inside a non-empty Objective-C boxed array '@[' and
+# ']'. If set to ignore, sp_inside_square is used.
+sp_inside_square_oc_array = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after ',', i.e. 'a,b' vs. 'a, b'.
+sp_after_comma = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before ',', i.e. 'a,b' vs. 'a ,b'.
+#
+# Default: remove
+sp_before_comma = remove # ignore/add/remove/force/not_defined
+
+# (C#) Add or remove space between ',' and ']' in multidimensional array type
+# like 'int[,,]'.
+sp_after_mdatype_commas = ignore # ignore/add/remove/force/not_defined
+
+# (C#) Add or remove space between '[' and ',' in multidimensional array type
+# like 'int[,,]'.
+sp_before_mdatype_commas = ignore # ignore/add/remove/force/not_defined
+
+# (C#) Add or remove space between ',' in multidimensional array type
+# like 'int[,,]'.
+sp_between_mdatype_commas = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between an open parenthesis and comma,
+# i.e. '(,' vs. '( ,'.
+#
+# Default: force
+sp_paren_comma = force # ignore/add/remove/force/not_defined
+
+# Add or remove space between a type and ':'.
+sp_type_colon = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after the variadic '...' when preceded by a
+# non-punctuator.
+# The value REMOVE will be overridden with FORCE
+sp_after_ellipsis = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before the variadic '...' when preceded by a
+# non-punctuator.
+# The value REMOVE will be overridden with FORCE
+sp_before_ellipsis = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between a type and '...'.
+sp_type_ellipsis = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between a '*' and '...'.
+sp_ptr_type_ellipsis = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between ')' and '...'.
+sp_paren_ellipsis = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between '&&' and '...'.
+sp_byref_ellipsis = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between ')' and a qualifier such as 'const'.
+sp_paren_qualifier = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between ')' and 'noexcept'.
+sp_paren_noexcept = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after class ':'.
+sp_after_class_colon = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before class ':'.
+sp_before_class_colon = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after class constructor ':'.
+#
+# Default: add
+sp_after_constr_colon = add # ignore/add/remove/force/not_defined
+
+# Add or remove space before class constructor ':'.
+#
+# Default: add
+sp_before_constr_colon = add # ignore/add/remove/force/not_defined
+
+# Add or remove space before case ':'.
+#
+# Default: remove
+sp_before_case_colon = remove # ignore/add/remove/force/not_defined
+
+# Add or remove space between 'operator' and operator sign.
+sp_after_operator = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between the operator symbol and the open parenthesis, as
+# in 'operator ++('.
+sp_after_operator_sym = ignore # ignore/add/remove/force/not_defined
+
+# Overrides sp_after_operator_sym when the operator has no arguments, as in
+# 'operator *()'.
+sp_after_operator_sym_empty = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after C/D cast, i.e. 'cast(int)a' vs. 'cast(int) a' or
+# '(int)a' vs. '(int) a'.
+sp_after_cast = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove spaces inside cast parentheses.
+sp_inside_paren_cast = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between the type and open parenthesis in a C++ cast,
+# i.e. 'int(exp)' vs. 'int (exp)'.
+sp_cpp_cast_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between 'sizeof' and '('.
+sp_sizeof_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between 'sizeof' and '...'.
+sp_sizeof_ellipsis = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between 'sizeof...' and '('.
+sp_sizeof_ellipsis_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between '...' and a parameter pack.
+sp_ellipsis_parameter_pack = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between a parameter pack and '...'.
+sp_parameter_pack_ellipsis = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between 'decltype' and '('.
+sp_decltype_paren = ignore # ignore/add/remove/force/not_defined
+
+# (Pawn) Add or remove space after the tag keyword.
+sp_after_tag = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space inside enum '{' and '}'.
+sp_inside_braces_enum = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space inside struct/union '{' and '}'.
+sp_inside_braces_struct = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space inside Objective-C boxed dictionary '{' and '}'
+sp_inside_braces_oc_dict = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after open brace in an unnamed temporary
+# direct-list-initialization
+# if statement is a brace_init_lst
+# works only if sp_brace_brace is set to ignore.
+sp_after_type_brace_init_lst_open = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before close brace in an unnamed temporary
+# direct-list-initialization
+# if statement is a brace_init_lst
+# works only if sp_brace_brace is set to ignore.
+sp_before_type_brace_init_lst_close = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space inside an unnamed temporary direct-list-initialization
+# if statement is a brace_init_lst
+# works only if sp_brace_brace is set to ignore
+# works only if sp_before_type_brace_init_lst_close is set to ignore.
+sp_inside_type_brace_init_lst = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space inside '{' and '}'.
+sp_inside_braces = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space inside '{}'.
+sp_inside_braces_empty = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space around trailing return operator '->'.
+sp_trailing_return = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between return type and function name. A minimum of 1
+# is forced except for pointer return types.
+sp_type_func = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between type and open brace of an unnamed temporary
+# direct-list-initialization.
+sp_type_brace_init_lst = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between function name and '(' on function declaration.
+sp_func_proto_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between function name and '()' on function declaration
+# without parameters.
+sp_func_proto_paren_empty = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between function name and '(' with a typedef specifier.
+sp_func_type_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between alias name and '(' of a non-pointer function type typedef.
+sp_func_def_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between function name and '()' on function definition
+# without parameters.
+sp_func_def_paren_empty = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space inside empty function '()'.
+# Overrides sp_after_angle unless use_sp_after_angle_always is set to true.
+sp_inside_fparens = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space inside function '(' and ')'.
+sp_inside_fparen = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space inside the first parentheses in a function type, as in
+# 'void (*x)(...)'.
+sp_inside_tparen = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between the ')' and '(' in a function type, as in
+# 'void (*x)(...)'.
+sp_after_tparen_close = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between ']' and '(' when part of a function call.
+sp_square_fparen = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between ')' and '{' of function.
+sp_fparen_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between ')' and '{' of a function call in object
+# initialization.
+#
+# Overrides sp_fparen_brace.
+sp_fparen_brace_initializer = ignore # ignore/add/remove/force/not_defined
+
+# (Java) Add or remove space between ')' and '{{' of double brace initializer.
+sp_fparen_dbrace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between function name and '(' on function calls.
+sp_func_call_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between function name and '()' on function calls without
+# parameters. If set to ignore (the default), sp_func_call_paren is used.
+sp_func_call_paren_empty = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between the user function name and '(' on function
+# calls. You need to set a keyword to be a user function in the config file,
+# like:
+# set func_call_user tr _ i18n
+sp_func_call_user_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space inside user function '(' and ')'.
+sp_func_call_user_inside_fparen = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between nested parentheses with user functions,
+# i.e. '((' vs. '( ('.
+sp_func_call_user_paren_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between a constructor/destructor and the open
+# parenthesis.
+sp_func_class_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between a constructor without parameters or destructor
+# and '()'.
+sp_func_class_paren_empty = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after 'return'.
+#
+# Default: force
+sp_return = force # ignore/add/remove/force/not_defined
+
+# Add or remove space between 'return' and '('.
+sp_return_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between 'return' and '{'.
+sp_return_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between '__attribute__' and '('.
+sp_attribute_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between 'defined' and '(' in '#if defined (FOO)'.
+sp_defined_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between 'throw' and '(' in 'throw (something)'.
+sp_throw_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between 'throw' and anything other than '(' as in
+# '@throw [...];'.
+sp_after_throw = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between 'catch' and '(' in 'catch (something) { }'.
+# If set to ignore, sp_before_sparen is used.
+sp_catch_paren = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space between '@catch' and '('
+# in '@catch (something) { }'. If set to ignore, sp_catch_paren is used.
+sp_oc_catch_paren = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space before Objective-C protocol list
+# as in '@protocol Protocol<here><Protocol_A>' or '@interface MyClass : NSObject<here><MyProtocol>'.
+sp_before_oc_proto_list = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space between class name and '('
+# in '@interface className(categoryName)<ProtocolName>:BaseClass'
+sp_oc_classname_paren = ignore # ignore/add/remove/force/not_defined
+
+# (D) Add or remove space between 'version' and '('
+# in 'version (something) { }'. If set to ignore, sp_before_sparen is used.
+sp_version_paren = ignore # ignore/add/remove/force/not_defined
+
+# (D) Add or remove space between 'scope' and '('
+# in 'scope (something) { }'. If set to ignore, sp_before_sparen is used.
+sp_scope_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between 'super' and '(' in 'super (something)'.
+#
+# Default: remove
+sp_super_paren = remove # ignore/add/remove/force/not_defined
+
+# Add or remove space between 'this' and '(' in 'this (something)'.
+#
+# Default: remove
+sp_this_paren = remove # ignore/add/remove/force/not_defined
+
+# Add or remove space between a macro name and its definition.
+sp_macro = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between a macro function ')' and its definition.
+sp_macro_func = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between 'else' and '{' if on the same line.
+sp_else_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between '}' and 'else' if on the same line.
+sp_brace_else = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between '}' and the name of a typedef on the same line.
+sp_brace_typedef = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before the '{' of a 'catch' statement, if the '{' and
+# 'catch' are on the same line, as in 'catch (decl) <here> {'.
+sp_catch_brace = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space before the '{' of a '@catch' statement, if the '{'
+# and '@catch' are on the same line, as in '@catch (decl) <here> {'.
+# If set to ignore, sp_catch_brace is used.
+sp_oc_catch_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between '}' and 'catch' if on the same line.
+sp_brace_catch = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space between '}' and '@catch' if on the same line.
+# If set to ignore, sp_brace_catch is used.
+sp_oc_brace_catch = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between 'finally' and '{' if on the same line.
+sp_finally_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between '}' and 'finally' if on the same line.
+sp_brace_finally = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between 'try' and '{' if on the same line.
+sp_try_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between get/set and '{' if on the same line.
+sp_getset_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between a variable and '{' for C++ uniform
+# initialization.
+sp_word_brace_init_lst = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between a variable and '{' for a namespace.
+#
+# Default: add
+sp_word_brace_ns = add # ignore/add/remove/force/not_defined
+
+# Add or remove space before the '::' operator.
+sp_before_dc = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after the '::' operator.
+sp_after_dc = ignore # ignore/add/remove/force/not_defined
+
+# (D) Add or remove around the D named array initializer ':' operator.
+sp_d_array_colon = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after the '!' (not) unary operator.
+#
+# Default: remove
+sp_not = remove # ignore/add/remove/force/not_defined
+
+# Add or remove space between two '!' (not) unary operators.
+# If set to ignore, sp_not will be used.
+sp_not_not = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after the '~' (invert) unary operator.
+#
+# Default: remove
+sp_inv = remove # ignore/add/remove/force/not_defined
+
+# Add or remove space after the '&' (address-of) unary operator. This does not
+# affect the spacing after a '&' that is part of a type.
+#
+# Default: remove
+sp_addr = remove # ignore/add/remove/force/not_defined
+
+# Add or remove space around the '.' or '->' operators.
+#
+# Default: remove
+sp_member = remove # ignore/add/remove/force/not_defined
+
+# Add or remove space after the '*' (dereference) unary operator. This does
+# not affect the spacing after a '*' that is part of a type.
+#
+# Default: remove
+sp_deref = remove # ignore/add/remove/force/not_defined
+
+# Add or remove space after '+' or '-', as in 'x = -5' or 'y = +7'.
+#
+# Default: remove
+sp_sign = remove # ignore/add/remove/force/not_defined
+
+# Add or remove space between '++' and '--' the word to which it is being
+# applied, as in '(--x)' or 'y++;'.
+#
+# Default: remove
+sp_incdec = remove # ignore/add/remove/force/not_defined
+
+# Add or remove space before a backslash-newline at the end of a line.
+#
+# Default: add
+sp_before_nl_cont = add # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space after the scope '+' or '-', as in '-(void) foo;'
+# or '+(int) bar;'.
+sp_after_oc_scope = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space after the colon in message specs,
+# i.e. '-(int) f:(int) x;' vs. '-(int) f: (int) x;'.
+sp_after_oc_colon = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space before the colon in message specs,
+# i.e. '-(int) f: (int) x;' vs. '-(int) f : (int) x;'.
+sp_before_oc_colon = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space after the colon in immutable dictionary expression
+# 'NSDictionary *test = @{@"foo" :@"bar"};'.
+sp_after_oc_dict_colon = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space before the colon in immutable dictionary expression
+# 'NSDictionary *test = @{@"foo" :@"bar"};'.
+sp_before_oc_dict_colon = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space after the colon in message specs,
+# i.e. '[object setValue:1];' vs. '[object setValue: 1];'.
+sp_after_send_oc_colon = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space before the colon in message specs,
+# i.e. '[object setValue:1];' vs. '[object setValue :1];'.
+sp_before_send_oc_colon = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space after the (type) in message specs,
+# i.e. '-(int)f: (int) x;' vs. '-(int)f: (int)x;'.
+sp_after_oc_type = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space after the first (type) in message specs,
+# i.e. '-(int) f:(int)x;' vs. '-(int)f:(int)x;'.
+sp_after_oc_return_type = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space between '@selector' and '(',
+# i.e. '@selector(msgName)' vs. '@selector (msgName)'.
+# Also applies to '@protocol()' constructs.
+sp_after_oc_at_sel = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space between '@selector(x)' and the following word,
+# i.e. '@selector(foo) a:' vs. '@selector(foo)a:'.
+sp_after_oc_at_sel_parens = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space inside '@selector' parentheses,
+# i.e. '@selector(foo)' vs. '@selector( foo )'.
+# Also applies to '@protocol()' constructs.
+sp_inside_oc_at_sel_parens = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space before a block pointer caret,
+# i.e. '^int (int arg){...}' vs. ' ^int (int arg){...}'.
+sp_before_oc_block_caret = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space after a block pointer caret,
+# i.e. '^int (int arg){...}' vs. '^ int (int arg){...}'.
+sp_after_oc_block_caret = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space between the receiver and selector in a message,
+# as in '[receiver selector ...]'.
+sp_after_oc_msg_receiver = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space after '@property'.
+sp_after_oc_property = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space between '@synchronized' and the open parenthesis,
+# i.e. '@synchronized(foo)' vs. '@synchronized (foo)'.
+sp_after_oc_synchronized = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space around the ':' in 'b ? t : f'.
+sp_cond_colon = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before the ':' in 'b ? t : f'.
+#
+# Overrides sp_cond_colon.
+sp_cond_colon_before = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after the ':' in 'b ? t : f'.
+#
+# Overrides sp_cond_colon.
+sp_cond_colon_after = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space around the '?' in 'b ? t : f'.
+sp_cond_question = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before the '?' in 'b ? t : f'.
+#
+# Overrides sp_cond_question.
+sp_cond_question_before = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after the '?' in 'b ? t : f'.
+#
+# Overrides sp_cond_question.
+sp_cond_question_after = ignore # ignore/add/remove/force/not_defined
+
+# In the abbreviated ternary form '(a ?: b)', add or remove space between '?'
+# and ':'.
+#
+# Overrides all other sp_cond_* options.
+sp_cond_ternary_short = ignore # ignore/add/remove/force/not_defined
+
+# Fix the spacing between 'case' and the label. Only 'ignore' and 'force' make
+# sense here.
+sp_case_label = ignore # ignore/add/remove/force/not_defined
+
+# (D) Add or remove space around the D '..' operator.
+sp_range = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after ':' in a Java/C++11 range-based 'for',
+# as in 'for (Type var : <here> expr)'.
+sp_after_for_colon = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before ':' in a Java/C++11 range-based 'for',
+# as in 'for (Type var <here> : expr)'.
+sp_before_for_colon = ignore # ignore/add/remove/force/not_defined
+
+# (D) Add or remove space between 'extern' and '(' as in 'extern <here> (C)'.
+sp_extern_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after the opening of a C++ comment, as in '// <here> A'.
+sp_cmt_cpp_start = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space in a C++ region marker comment, as in '// <here> BEGIN'.
+# A region marker is defined as a comment which is not preceded by other text
+# (i.e. the comment is the first non-whitespace on the line), and which starts
+# with either 'BEGIN' or 'END'.
+#
+# Overrides sp_cmt_cpp_start.
+sp_cmt_cpp_region = ignore # ignore/add/remove/force/not_defined
+
+# If true, space added with sp_cmt_cpp_start will be added after Doxygen
+# sequences like '///', '///<', '//!' and '//!<'.
+sp_cmt_cpp_doxygen = false # true/false
+
+# If true, space added with sp_cmt_cpp_start will be added after Qt translator
+# or meta-data comments like '//:', '//=', and '//~'.
+sp_cmt_cpp_qttr = false # true/false
+
+# Add or remove space between #else or #endif and a trailing comment.
+sp_endif_cmt = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after 'new', 'delete' and 'delete[]'.
+sp_after_new = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between 'new' and '(' in 'new()'.
+sp_between_new_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between ')' and type in 'new(foo) BAR'.
+sp_after_newop_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space inside parenthesis of the new operator
+# as in 'new(foo) BAR'.
+sp_inside_newop_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after the open parenthesis of the new operator,
+# as in 'new(foo) BAR'.
+#
+# Overrides sp_inside_newop_paren.
+sp_inside_newop_paren_open = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before the close parenthesis of the new operator,
+# as in 'new(foo) BAR'.
+#
+# Overrides sp_inside_newop_paren.
+sp_inside_newop_paren_close = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before a trailing comment.
+sp_before_tr_cmt = ignore # ignore/add/remove/force/not_defined
+
+# Number of spaces before a trailing comment.
+sp_num_before_tr_cmt = 0 # unsigned number
+
+# Add or remove space before an embedded comment.
+#
+# Default: force
+sp_before_emb_cmt = force # ignore/add/remove/force/not_defined
+
+# Number of spaces before an embedded comment.
+#
+# Default: 1
+sp_num_before_emb_cmt = 1 # unsigned number
+
+# Add or remove space after an embedded comment.
+#
+# Default: force
+sp_after_emb_cmt = force # ignore/add/remove/force/not_defined
+
+# Number of spaces after an embedded comment.
+#
+# Default: 1
+sp_num_after_emb_cmt = 1 # unsigned number
+
+# (Java) Add or remove space between an annotation and the open parenthesis.
+sp_annotation_paren = ignore # ignore/add/remove/force/not_defined
+
+# If true, vbrace tokens are dropped to the previous token and skipped.
+sp_skip_vbrace_tokens = false # true/false
+
+# Add or remove space after 'noexcept'.
+sp_after_noexcept = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after '_'.
+sp_vala_after_translation = ignore # ignore/add/remove/force/not_defined
+
+# If true, a <TAB> is inserted after #define.
+force_tab_after_define = false # true/false
+
+#
+# Indenting options
+#
+
+# The number of columns to indent per level. Usually 2, 3, 4, or 8.
+#
+# Default: 8
+indent_columns = 8 # unsigned number
+
+# Whether to ignore indent for the first continuation line. Subsequent
+# continuation lines will still be indented to match the first.
+indent_ignore_first_continue = false # true/false
+
+# The continuation indent. If non-zero, this overrides the indent of '(', '['
+# and '=' continuation indents. Negative values are OK; negative value is
+# absolute and not increased for each '(' or '[' level.
+#
+# For FreeBSD, this is set to 4.
+# Requires indent_ignore_first_continue=false.
+indent_continue = 0 # number
+
+# The continuation indent, only for class header line(s). If non-zero, this
+# overrides the indent of 'class' continuation indents.
+# Requires indent_ignore_first_continue=false.
+indent_continue_class_head = 0 # unsigned number
+
+# Whether to indent empty lines (i.e. lines which contain only spaces before
+# the newline character).
+indent_single_newlines = false # true/false
+
+# The continuation indent for func_*_param if they are true. If non-zero, this
+# overrides the indent.
+indent_param = 0 # unsigned number
+
+# How to use tabs when indenting code.
+#
+# 0: Spaces only
+# 1: Indent with tabs to brace level, align with spaces (default)
+# 2: Indent and align with tabs, using spaces when not on a tabstop
+#
+# Default: 1
+indent_with_tabs = 1 # unsigned number
+
+# Whether to indent comments that are not at a brace level with tabs on a
+# tabstop. Requires indent_with_tabs=2. If false, will use spaces.
+indent_cmt_with_tabs = false # true/false
+
+# Whether to indent strings broken by '\' so that they line up.
+indent_align_string = false # true/false
+
+# The number of spaces to indent multi-line XML strings.
+# Requires indent_align_string=true.
+indent_xml_string = 0 # unsigned number
+
+# Spaces to indent '{' from level.
+indent_brace = 0 # unsigned number
+
+# Whether braces are indented to the body level.
+indent_braces = false # true/false
+
+# Whether to disable indenting function braces if indent_braces=true.
+indent_braces_no_func = false # true/false
+
+# Whether to disable indenting class braces if indent_braces=true.
+indent_braces_no_class = false # true/false
+
+# Whether to disable indenting struct braces if indent_braces=true.
+indent_braces_no_struct = false # true/false
+
+# Whether to indent based on the size of the brace parent,
+# i.e. 'if' => 3 spaces, 'for' => 4 spaces, etc.
+indent_brace_parent = false # true/false
+
+# Whether to indent based on the open parenthesis instead of the open brace
+# in '({\n'.
+indent_paren_open_brace = false # true/false
+
+# (C#) Whether to indent the brace of a C# delegate by another level.
+indent_cs_delegate_brace = false # true/false
+
+# (C#) Whether to indent a C# delegate (to handle delegates with no brace) by
+# another level.
+indent_cs_delegate_body = false # true/false
+
+# Whether to indent the body of a 'namespace'.
+indent_namespace = false # true/false
+
+# Whether to indent only the first namespace, and not any nested namespaces.
+# Requires indent_namespace=true.
+indent_namespace_single_indent = false # true/false
+
+# The number of spaces to indent a namespace block.
+# If set to zero, use the value indent_columns
+indent_namespace_level = 0 # unsigned number
+
+# If the body of the namespace is longer than this number, it won't be
+# indented. Requires indent_namespace=true. 0 means no limit.
+indent_namespace_limit = 0 # unsigned number
+
+# Whether to indent only in inner namespaces (nested in other namespaces).
+# Requires indent_namespace=true.
+indent_namespace_inner_only = false # true/false
+
+# Whether the 'extern "C"' body is indented.
+indent_extern = false # true/false
+
+# Whether the 'class' body is indented.
+indent_class = false # true/false
+
+# Whether to ignore indent for the leading base class colon.
+indent_ignore_before_class_colon = false # true/false
+
+# Additional indent before the leading base class colon.
+# Negative values decrease indent down to the first column.
+# Requires indent_ignore_before_class_colon=false and a newline break before
+# the colon (see pos_class_colon and nl_class_colon)
+indent_before_class_colon = 0 # number
+
+# Whether to indent the stuff after a leading base class colon.
+indent_class_colon = false # true/false
+
+# Whether to indent based on a class colon instead of the stuff after the
+# colon. Requires indent_class_colon=true.
+indent_class_on_colon = false # true/false
+
+# Whether to ignore indent for a leading class initializer colon.
+indent_ignore_before_constr_colon = false # true/false
+
+# Whether to indent the stuff after a leading class initializer colon.
+indent_constr_colon = false # true/false
+
+# Virtual indent from the ':' for leading member initializers.
+#
+# Default: 2
+indent_ctor_init_leading = 2 # unsigned number
+
+# Virtual indent from the ':' for following member initializers.
+#
+# Default: 2
+indent_ctor_init_following = 2 # unsigned number
+
+# Additional indent for constructor initializer list.
+# Negative values decrease indent down to the first column.
+indent_ctor_init = 0 # number
+
+# Whether to indent 'if' following 'else' as a new block under the 'else'.
+# If false, 'else\nif' is treated as 'else if' for indenting purposes.
+indent_else_if = false # true/false
+
+# Amount to indent variable declarations after a open brace.
+#
+# <0: Relative
+# >=0: Absolute
+indent_var_def_blk = 0 # number
+
+# Whether to indent continued variable declarations instead of aligning.
+indent_var_def_cont = false # true/false
+
+# How to indent continued shift expressions ('<<' and '>>').
+# Set align_left_shift=false when using this.
+# 0: Align shift operators instead of indenting them (default)
+# 1: Indent by one level
+# -1: Preserve original indentation
+indent_shift = 0 # number
+
+# Whether to force indentation of function definitions to start in column 1.
+indent_func_def_force_col1 = false # true/false
+
+# Whether to indent continued function call parameters one indent level,
+# rather than aligning parameters under the open parenthesis.
+indent_func_call_param = false # true/false
+
+# Whether to indent continued function definition parameters one indent level,
+# rather than aligning parameters under the open parenthesis.
+indent_func_def_param = false # true/false
+
+# for function definitions, only if indent_func_def_param is false
+# Allows to align params when appropriate and indent them when not
+# behave as if it was true if paren position is more than this value
+# if paren position is more than the option value
+indent_func_def_param_paren_pos_threshold = 0 # unsigned number
+
+# Whether to indent continued function call prototype one indent level,
+# rather than aligning parameters under the open parenthesis.
+indent_func_proto_param = false # true/false
+
+# Whether to indent continued function call declaration one indent level,
+# rather than aligning parameters under the open parenthesis.
+indent_func_class_param = false # true/false
+
+# Whether to indent continued class variable constructors one indent level,
+# rather than aligning parameters under the open parenthesis.
+indent_func_ctor_var_param = false # true/false
+
+# Whether to indent continued template parameter list one indent level,
+# rather than aligning parameters under the open parenthesis.
+indent_template_param = false # true/false
+
+# Double the indent for indent_func_xxx_param options.
+# Use both values of the options indent_columns and indent_param.
+indent_func_param_double = false # true/false
+
+# Indentation column for standalone 'const' qualifier on a function
+# prototype.
+indent_func_const = 0 # unsigned number
+
+# Indentation column for standalone 'throw' qualifier on a function
+# prototype.
+indent_func_throw = 0 # unsigned number
+
+# How to indent within a macro followed by a brace on the same line
+# This allows reducing the indent in macros that have (for example)
+# `do { ... } while (0)` blocks bracketing them.
+#
+# true: add an indent for the brace on the same line as the macro
+# false: do not add an indent for the brace on the same line as the macro
+#
+# Default: true
+indent_macro_brace = true # true/false
+
+# The number of spaces to indent a continued '->' or '.'.
+# Usually set to 0, 1, or indent_columns.
+indent_member = 0 # unsigned number
+
+# Whether lines broken at '.' or '->' should be indented by a single indent.
+# The indent_member option will not be effective if this is set to true.
+indent_member_single = false # true/false
+
+# Spaces to indent single line ('//') comments on lines before code.
+indent_single_line_comments_before = 0 # unsigned number
+
+# Spaces to indent single line ('//') comments on lines after code.
+indent_single_line_comments_after = 0 # unsigned number
+
+# When opening a paren for a control statement (if, for, while, etc), increase
+# the indent level by this value. Negative values decrease the indent level.
+indent_sparen_extra = 0 # number
+
+# Whether to indent trailing single line ('//') comments relative to the code
+# instead of trying to keep the same absolute column.
+indent_relative_single_line_comments = false # true/false
+
+# Spaces to indent 'case' from 'switch'. Usually 0 or indent_columns.
+# It might be wise to choose the same value for the option indent_case_brace.
+indent_switch_case = 0 # unsigned number
+
+# Spaces to indent the body of a 'switch' before any 'case'.
+# Usually the same as indent_columns or indent_switch_case.
+indent_switch_body = 0 # unsigned number
+
+# Whether to ignore indent for '{' following 'case'.
+indent_ignore_case_brace = false # true/false
+
+# Spaces to indent '{' from 'case'. By default, the brace will appear under
+# the 'c' in case. Usually set to 0 or indent_columns. Negative values are OK.
+# It might be wise to choose the same value for the option indent_switch_case.
+indent_case_brace = 0 # number
+
+# indent 'break' with 'case' from 'switch'.
+indent_switch_break_with_case = false # true/false
+
+# Whether to indent preprocessor statements inside of switch statements.
+#
+# Default: true
+indent_switch_pp = true # true/false
+
+# Spaces to shift the 'case' line, without affecting any other lines.
+# Usually 0.
+indent_case_shift = 0 # unsigned number
+
+# Whether to align comments before 'case' with the 'case'.
+#
+# Default: true
+indent_case_comment = true # true/false
+
+# Whether to indent comments not found in first column.
+#
+# Default: true
+indent_comment = true # true/false
+
+# Whether to indent comments found in first column.
+indent_col1_comment = false # true/false
+
+# Whether to indent multi string literal in first column.
+indent_col1_multi_string_literal = false # true/false
+
+# Align comments on adjacent lines that are this many columns apart or less.
+#
+# Default: 3
+indent_comment_align_thresh = 3 # unsigned number
+
+# Whether to ignore indent for goto labels.
+indent_ignore_label = false # true/false
+
+# How to indent goto labels. Requires indent_ignore_label=false.
+#
+# >0: Absolute column where 1 is the leftmost column
+# <=0: Subtract from brace indent
+#
+# Default: 1
+indent_label = 1 # number
+
+# How to indent access specifiers that are followed by a
+# colon.
+#
+# >0: Absolute column where 1 is the leftmost column
+# <=0: Subtract from brace indent
+#
+# Default: 1
+indent_access_spec = 1 # number
+
+# Whether to indent the code after an access specifier by one level.
+# If true, this option forces 'indent_access_spec=0'.
+indent_access_spec_body = false # true/false
+
+# If an open parenthesis is followed by a newline, whether to indent the next
+# line so that it lines up after the open parenthesis (not recommended).
+indent_paren_nl = false # true/false
+
+# How to indent a close parenthesis after a newline.
+#
+# 0: Indent to body level (default)
+# 1: Align under the open parenthesis
+# 2: Indent to the brace level
+# -1: Preserve original indentation
+indent_paren_close = 0 # number
+
+# Whether to indent the open parenthesis of a function definition,
+# if the parenthesis is on its own line.
+indent_paren_after_func_def = false # true/false
+
+# Whether to indent the open parenthesis of a function declaration,
+# if the parenthesis is on its own line.
+indent_paren_after_func_decl = false # true/false
+
+# Whether to indent the open parenthesis of a function call,
+# if the parenthesis is on its own line.
+indent_paren_after_func_call = false # true/false
+
+# How to indent a comma when inside braces.
+# 0: Indent by one level (default)
+# 1: Align under the open brace
+# -1: Preserve original indentation
+indent_comma_brace = 0 # number
+
+# How to indent a comma when inside parentheses.
+# 0: Indent by one level (default)
+# 1: Align under the open parenthesis
+# -1: Preserve original indentation
+indent_comma_paren = 0 # number
+
+# How to indent a Boolean operator when inside parentheses.
+# 0: Indent by one level (default)
+# 1: Align under the open parenthesis
+# -1: Preserve original indentation
+indent_bool_paren = 0 # number
+
+# Whether to ignore the indentation of a Boolean operator when outside
+# parentheses.
+indent_ignore_bool = false # true/false
+
+# Whether to ignore the indentation of an arithmetic operator.
+indent_ignore_arith = false # true/false
+
+# Whether to indent a semicolon when inside a for parenthesis.
+# If true, aligns under the open for parenthesis.
+indent_semicolon_for_paren = false # true/false
+
+# Whether to ignore the indentation of a semicolon outside of a 'for'
+# statement.
+indent_ignore_semicolon = false # true/false
+
+# Whether to align the first expression to following ones
+# if indent_bool_paren=1.
+indent_first_bool_expr = false # true/false
+
+# Whether to align the first expression to following ones
+# if indent_semicolon_for_paren=true.
+indent_first_for_expr = false # true/false
+
+# If an open square is followed by a newline, whether to indent the next line
+# so that it lines up after the open square (not recommended).
+indent_square_nl = false # true/false
+
+# (ESQL/C) Whether to preserve the relative indent of 'EXEC SQL' bodies.
+indent_preserve_sql = false # true/false
+
+# Whether to ignore the indentation of an assignment operator.
+indent_ignore_assign = false # true/false
+
+# Whether to align continued statements at the '='. If false or if the '=' is
+# followed by a newline, the next line is indent one tab.
+#
+# Default: true
+indent_align_assign = true # true/false
+
+# If true, the indentation of the chunks after a '=' sequence will be set at
+# LHS token indentation column before '='.
+indent_off_after_assign = false # true/false
+
+# Whether to align continued statements at the '('. If false or the '(' is
+# followed by a newline, the next line indent is one tab.
+#
+# Default: true
+indent_align_paren = true # true/false
+
+# (OC) Whether to indent Objective-C code inside message selectors.
+indent_oc_inside_msg_sel = false # true/false
+
+# (OC) Whether to indent Objective-C blocks at brace level instead of usual
+# rules.
+indent_oc_block = false # true/false
+
+# (OC) Indent for Objective-C blocks in a message relative to the parameter
+# name.
+#
+# =0: Use indent_oc_block rules
+# >0: Use specified number of spaces to indent
+indent_oc_block_msg = 0 # unsigned number
+
+# (OC) Minimum indent for subsequent parameters
+indent_oc_msg_colon = 0 # unsigned number
+
+# (OC) Whether to prioritize aligning with initial colon (and stripping spaces
+# from lines, if necessary).
+#
+# Default: true
+indent_oc_msg_prioritize_first_colon = true # true/false
+
+# (OC) Whether to indent blocks the way that Xcode does by default
+# (from the keyword if the parameter is on its own line; otherwise, from the
+# previous indentation level). Requires indent_oc_block_msg=true.
+indent_oc_block_msg_xcode_style = false # true/false
+
+# (OC) Whether to indent blocks from where the brace is, relative to a
+# message keyword. Requires indent_oc_block_msg=true.
+indent_oc_block_msg_from_keyword = false # true/false
+
+# (OC) Whether to indent blocks from where the brace is, relative to a message
+# colon. Requires indent_oc_block_msg=true.
+indent_oc_block_msg_from_colon = false # true/false
+
+# (OC) Whether to indent blocks from where the block caret is.
+# Requires indent_oc_block_msg=true.
+indent_oc_block_msg_from_caret = false # true/false
+
+# (OC) Whether to indent blocks from where the brace caret is.
+# Requires indent_oc_block_msg=true.
+indent_oc_block_msg_from_brace = false # true/false
+
+# When indenting after virtual brace open and newline add further spaces to
+# reach this minimum indent.
+indent_min_vbrace_open = 0 # unsigned number
+
+# Whether to add further spaces after regular indent to reach next tabstop
+# when indenting after virtual brace open and newline.
+indent_vbrace_open_on_tabstop = false # true/false
+
+# How to indent after a brace followed by another token (not a newline).
+# true: indent all contained lines to match the token
+# false: indent all contained lines to match the brace
+#
+# Default: true
+indent_token_after_brace = true # true/false
+
+# Whether to indent the body of a C++11 lambda.
+indent_cpp_lambda_body = false # true/false
+
+# How to indent compound literals that are being returned.
+# true: add both the indent from return & the compound literal open brace
+# (i.e. 2 indent levels)
+# false: only indent 1 level, don't add the indent for the open brace, only
+# add the indent for the return.
+#
+# Default: true
+indent_compound_literal_return = true # true/false
+
+# (C#) Whether to indent a 'using' block if no braces are used.
+#
+# Default: true
+indent_using_block = true # true/false
+
+# How to indent the continuation of ternary operator.
+#
+# 0: Off (default)
+# 1: When the `if_false` is a continuation, indent it under `if_false`
+# 2: When the `:` is a continuation, indent it under `?`
+indent_ternary_operator = 0 # unsigned number
+
+# Whether to indent the statements inside ternary operator.
+indent_inside_ternary_operator = false # true/false
+
+# If true, the indentation of the chunks after a `return` sequence will be set at return indentation column.
+indent_off_after_return = false # true/false
+
+# If true, the indentation of the chunks after a `return new` sequence will be set at return indentation column.
+indent_off_after_return_new = false # true/false
+
+# If true, the tokens after return are indented with regular single indentation. By default (false) the indentation is after the return token.
+indent_single_after_return = false # true/false
+
+# Whether to ignore indent and alignment for 'asm' blocks (i.e. assume they
+# have their own indentation).
+indent_ignore_asm_block = false # true/false
+
+# Don't indent the close parenthesis of a function definition,
+# if the parenthesis is on its own line.
+donot_indent_func_def_close_paren = false # true/false
+
+#
+# Newline adding and removing options
+#
+
+# Whether to collapse empty blocks between '{' and '}'.
+# If true, overrides nl_inside_empty_func
+nl_collapse_empty_body = false # true/false
+
+# Don't split one-line braced assignments, as in 'foo_t f = { 1, 2 };'.
+nl_assign_leave_one_liners = false # true/false
+
+# Don't split one-line braced statements inside a 'class xx { }' body.
+nl_class_leave_one_liners = false # true/false
+
+# Don't split one-line enums, as in 'enum foo { BAR = 15 };'
+nl_enum_leave_one_liners = false # true/false
+
+# Don't split one-line get or set functions.
+nl_getset_leave_one_liners = false # true/false
+
+# (C#) Don't split one-line property get or set functions.
+nl_cs_property_leave_one_liners = false # true/false
+
+# Don't split one-line function definitions, as in 'int foo() { return 0; }'.
+# might modify nl_func_type_name
+nl_func_leave_one_liners = false # true/false
+
+# Don't split one-line C++11 lambdas, as in '[]() { return 0; }'.
+nl_cpp_lambda_leave_one_liners = false # true/false
+
+# Don't split one-line if/else statements, as in 'if(...) b++;'.
+nl_if_leave_one_liners = false # true/false
+
+# Don't split one-line while statements, as in 'while(...) b++;'.
+nl_while_leave_one_liners = false # true/false
+
+# Don't split one-line do statements, as in 'do { b++; } while(...);'.
+nl_do_leave_one_liners = false # true/false
+
+# Don't split one-line for statements, as in 'for(...) b++;'.
+nl_for_leave_one_liners = false # true/false
+
+# (OC) Don't split one-line Objective-C messages.
+nl_oc_msg_leave_one_liner = false # true/false
+
+# (OC) Add or remove newline between method declaration and '{'.
+nl_oc_mdef_brace = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove newline between Objective-C block signature and '{'.
+nl_oc_block_brace = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove blank line before '@interface' statement.
+nl_oc_before_interface = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove blank line before '@implementation' statement.
+nl_oc_before_implementation = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove blank line before '@end' statement.
+nl_oc_before_end = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove newline between '@interface' and '{'.
+nl_oc_interface_brace = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove newline between '@implementation' and '{'.
+nl_oc_implementation_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newlines at the start of the file.
+nl_start_of_file = ignore # ignore/add/remove/force/not_defined
+
+# The minimum number of newlines at the start of the file (only used if
+# nl_start_of_file is 'add' or 'force').
+nl_start_of_file_min = 0 # unsigned number
+
+# Add or remove newline at the end of the file.
+nl_end_of_file = ignore # ignore/add/remove/force/not_defined
+
+# The minimum number of newlines at the end of the file (only used if
+# nl_end_of_file is 'add' or 'force').
+nl_end_of_file_min = 0 # unsigned number
+
+# Add or remove newline between '=' and '{'.
+nl_assign_brace = ignore # ignore/add/remove/force/not_defined
+
+# (D) Add or remove newline between '=' and '['.
+nl_assign_square = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between '[]' and '{'.
+nl_tsquare_brace = ignore # ignore/add/remove/force/not_defined
+
+# (D) Add or remove newline after '= ['. Will also affect the newline before
+# the ']'.
+nl_after_square_assign = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between a function call's ')' and '{', as in
+# 'list_for_each(item, &list) { }'.
+nl_fcall_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between 'enum' and '{'.
+nl_enum_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between 'enum' and 'class'.
+nl_enum_class = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between 'enum class' and the identifier.
+nl_enum_class_identifier = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between 'enum class' type and ':'.
+nl_enum_identifier_colon = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between 'enum class identifier :' and type.
+nl_enum_colon_type = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between 'struct and '{'.
+nl_struct_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between 'union' and '{'.
+nl_union_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between 'if' and '{'.
+nl_if_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between '}' and 'else'.
+nl_brace_else = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between 'else if' and '{'. If set to ignore,
+# nl_if_brace is used instead.
+nl_elseif_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between 'else' and '{'.
+nl_else_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between 'else' and 'if'.
+nl_else_if = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline before '{' opening brace
+nl_before_opening_brace_func_class_def = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline before 'if'/'else if' closing parenthesis.
+nl_before_if_closing_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between '}' and 'finally'.
+nl_brace_finally = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between 'finally' and '{'.
+nl_finally_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between 'try' and '{'.
+nl_try_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between get/set and '{'.
+nl_getset_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between 'for' and '{'.
+nl_for_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline before the '{' of a 'catch' statement, as in
+# 'catch (decl) <here> {'.
+nl_catch_brace = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove newline before the '{' of a '@catch' statement, as in
+# '@catch (decl) <here> {'. If set to ignore, nl_catch_brace is used.
+nl_oc_catch_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between '}' and 'catch'.
+nl_brace_catch = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove newline between '}' and '@catch'. If set to ignore,
+# nl_brace_catch is used.
+nl_oc_brace_catch = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between '}' and ']'.
+nl_brace_square = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between '}' and ')' in a function invocation.
+nl_brace_fparen = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between 'while' and '{'.
+nl_while_brace = ignore # ignore/add/remove/force/not_defined
+
+# (D) Add or remove newline between 'scope (x)' and '{'.
+nl_scope_brace = ignore # ignore/add/remove/force/not_defined
+
+# (D) Add or remove newline between 'unittest' and '{'.
+nl_unittest_brace = ignore # ignore/add/remove/force/not_defined
+
+# (D) Add or remove newline between 'version (x)' and '{'.
+nl_version_brace = ignore # ignore/add/remove/force/not_defined
+
+# (C#) Add or remove newline between 'using' and '{'.
+nl_using_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between two open or close braces. Due to general
+# newline/brace handling, REMOVE may not work.
+nl_brace_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between 'do' and '{'.
+nl_do_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between '}' and 'while' of 'do' statement.
+nl_brace_while = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between 'switch' and '{'.
+nl_switch_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between 'synchronized' and '{'.
+nl_synchronized_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add a newline between ')' and '{' if the ')' is on a different line than the
+# if/for/etc.
+#
+# Overrides nl_for_brace, nl_if_brace, nl_switch_brace, nl_while_switch and
+# nl_catch_brace.
+nl_multi_line_cond = false # true/false
+
+# Add a newline after '(' if an if/for/while/switch condition spans multiple
+# lines
+nl_multi_line_sparen_open = ignore # ignore/add/remove/force/not_defined
+
+# Add a newline before ')' if an if/for/while/switch condition spans multiple
+# lines. Overrides nl_before_if_closing_paren if both are specified.
+nl_multi_line_sparen_close = ignore # ignore/add/remove/force/not_defined
+
+# Force a newline in a define after the macro name for multi-line defines.
+nl_multi_line_define = false # true/false
+
+# Whether to add a newline before 'case', and a blank line before a 'case'
+# statement that follows a ';' or '}'.
+nl_before_case = false # true/false
+
+# Whether to add a newline after a 'case' statement.
+nl_after_case = false # true/false
+
+# Add or remove newline between a case ':' and '{'.
+#
+# Overrides nl_after_case.
+nl_case_colon_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between ')' and 'throw'.
+nl_before_throw = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between 'namespace' and '{'.
+nl_namespace_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline after 'template<...>' of a template class.
+nl_template_class = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline after 'template<...>' of a template class declaration.
+#
+# Overrides nl_template_class.
+nl_template_class_decl = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline after 'template<>' of a specialized class declaration.
+#
+# Overrides nl_template_class_decl.
+nl_template_class_decl_special = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline after 'template<...>' of a template class definition.
+#
+# Overrides nl_template_class.
+nl_template_class_def = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline after 'template<>' of a specialized class definition.
+#
+# Overrides nl_template_class_def.
+nl_template_class_def_special = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline after 'template<...>' of a template function.
+nl_template_func = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline after 'template<...>' of a template function
+# declaration.
+#
+# Overrides nl_template_func.
+nl_template_func_decl = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline after 'template<>' of a specialized function
+# declaration.
+#
+# Overrides nl_template_func_decl.
+nl_template_func_decl_special = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline after 'template<...>' of a template function
+# definition.
+#
+# Overrides nl_template_func.
+nl_template_func_def = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline after 'template<>' of a specialized function
+# definition.
+#
+# Overrides nl_template_func_def.
+nl_template_func_def_special = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline after 'template<...>' of a template variable.
+nl_template_var = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between 'template<...>' and 'using' of a templated
+# type alias.
+nl_template_using = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between 'class' and '{'.
+nl_class_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline before or after (depending on pos_class_comma,
+# may not be IGNORE) each',' in the base class list.
+nl_class_init_args = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline after each ',' in the constructor member
+# initialization. Related to nl_constr_colon, pos_constr_colon and
+# pos_constr_comma.
+nl_constr_init_args = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline before first element, after comma, and after last
+# element, in 'enum'.
+nl_enum_own_lines = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between return type and function name in a function
+# definition.
+# might be modified by nl_func_leave_one_liners
+nl_func_type_name = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between return type and function name inside a class
+# definition. If set to ignore, nl_func_type_name or nl_func_proto_type_name
+# is used instead.
+nl_func_type_name_class = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between class specification and '::'
+# in 'void A::f() { }'. Only appears in separate member implementation (does
+# not appear with in-line implementation).
+nl_func_class_scope = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between function scope and name, as in
+# 'void A :: <here> f() { }'.
+nl_func_scope_name = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between return type and function name in a prototype.
+nl_func_proto_type_name = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between a function name and the opening '(' in the
+# declaration.
+nl_func_paren = ignore # ignore/add/remove/force/not_defined
+
+# Overrides nl_func_paren for functions with no parameters.
+nl_func_paren_empty = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between a function name and the opening '(' in the
+# definition.
+nl_func_def_paren = ignore # ignore/add/remove/force/not_defined
+
+# Overrides nl_func_def_paren for functions with no parameters.
+nl_func_def_paren_empty = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between a function name and the opening '(' in the
+# call.
+nl_func_call_paren = ignore # ignore/add/remove/force/not_defined
+
+# Overrides nl_func_call_paren for functions with no parameters.
+nl_func_call_paren_empty = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline after '(' in a function declaration.
+nl_func_decl_start = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline after '(' in a function definition.
+nl_func_def_start = ignore # ignore/add/remove/force/not_defined
+
+# Overrides nl_func_decl_start when there is only one parameter.
+nl_func_decl_start_single = ignore # ignore/add/remove/force/not_defined
+
+# Overrides nl_func_def_start when there is only one parameter.
+nl_func_def_start_single = ignore # ignore/add/remove/force/not_defined
+
+# Whether to add a newline after '(' in a function declaration if '(' and ')'
+# are in different lines. If false, nl_func_decl_start is used instead.
+nl_func_decl_start_multi_line = false # true/false
+
+# Whether to add a newline after '(' in a function definition if '(' and ')'
+# are in different lines. If false, nl_func_def_start is used instead.
+nl_func_def_start_multi_line = false # true/false
+
+# Add or remove newline after each ',' in a function declaration.
+nl_func_decl_args = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline after each ',' in a function definition.
+nl_func_def_args = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline after each ',' in a function call.
+nl_func_call_args = ignore # ignore/add/remove/force/not_defined
+
+# Whether to add a newline after each ',' in a function declaration if '('
+# and ')' are in different lines. If false, nl_func_decl_args is used instead.
+nl_func_decl_args_multi_line = false # true/false
+
+# Whether to add a newline after each ',' in a function definition if '('
+# and ')' are in different lines. If false, nl_func_def_args is used instead.
+nl_func_def_args_multi_line = false # true/false
+
+# Add or remove newline before the ')' in a function declaration.
+nl_func_decl_end = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline before the ')' in a function definition.
+nl_func_def_end = ignore # ignore/add/remove/force/not_defined
+
+# Overrides nl_func_decl_end when there is only one parameter.
+nl_func_decl_end_single = ignore # ignore/add/remove/force/not_defined
+
+# Overrides nl_func_def_end when there is only one parameter.
+nl_func_def_end_single = ignore # ignore/add/remove/force/not_defined
+
+# Whether to add a newline before ')' in a function declaration if '(' and ')'
+# are in different lines. If false, nl_func_decl_end is used instead.
+nl_func_decl_end_multi_line = false # true/false
+
+# Whether to add a newline before ')' in a function definition if '(' and ')'
+# are in different lines. If false, nl_func_def_end is used instead.
+nl_func_def_end_multi_line = false # true/false
+
+# Add or remove newline between '()' in a function declaration.
+nl_func_decl_empty = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between '()' in a function definition.
+nl_func_def_empty = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between '()' in a function call.
+nl_func_call_empty = ignore # ignore/add/remove/force/not_defined
+
+# Whether to add a newline after '(' in a function call,
+# has preference over nl_func_call_start_multi_line.
+nl_func_call_start = ignore # ignore/add/remove/force/not_defined
+
+# Whether to add a newline before ')' in a function call.
+nl_func_call_end = ignore # ignore/add/remove/force/not_defined
+
+# Whether to add a newline after '(' in a function call if '(' and ')' are in
+# different lines.
+nl_func_call_start_multi_line = false # true/false
+
+# Whether to add a newline after each ',' in a function call if '(' and ')'
+# are in different lines.
+nl_func_call_args_multi_line = false # true/false
+
+# Whether to add a newline before ')' in a function call if '(' and ')' are in
+# different lines.
+nl_func_call_end_multi_line = false # true/false
+
+# Whether to respect nl_func_call_XXX option in case of closure args.
+nl_func_call_args_multi_line_ignore_closures = false # true/false
+
+# Whether to add a newline after '<' of a template parameter list.
+nl_template_start = false # true/false
+
+# Whether to add a newline after each ',' in a template parameter list.
+nl_template_args = false # true/false
+
+# Whether to add a newline before '>' of a template parameter list.
+nl_template_end = false # true/false
+
+# (OC) Whether to put each Objective-C message parameter on a separate line.
+# See nl_oc_msg_leave_one_liner.
+nl_oc_msg_args = false # true/false
+
+# Add or remove newline between function signature and '{'.
+nl_fdef_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between function signature and '{',
+# if signature ends with ')'. Overrides nl_fdef_brace.
+nl_fdef_brace_cond = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between C++11 lambda signature and '{'.
+nl_cpp_ldef_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between 'return' and the return expression.
+nl_return_expr = ignore # ignore/add/remove/force/not_defined
+
+# Whether to add a newline after semicolons, except in 'for' statements.
+nl_after_semicolon = false # true/false
+
+# (Java) Add or remove newline between the ')' and '{{' of the double brace
+# initializer.
+nl_paren_dbrace_open = ignore # ignore/add/remove/force/not_defined
+
+# Whether to add a newline after the type in an unnamed temporary
+# direct-list-initialization, better:
+# before a direct-list-initialization.
+nl_type_brace_init_lst = ignore # ignore/add/remove/force/not_defined
+
+# Whether to add a newline after the open brace in an unnamed temporary
+# direct-list-initialization.
+nl_type_brace_init_lst_open = ignore # ignore/add/remove/force/not_defined
+
+# Whether to add a newline before the close brace in an unnamed temporary
+# direct-list-initialization.
+nl_type_brace_init_lst_close = ignore # ignore/add/remove/force/not_defined
+
+# Whether to add a newline before '{'.
+nl_before_brace_open = false # true/false
+
+# Whether to add a newline after '{'.
+nl_after_brace_open = false # true/false
+
+# Whether to add a newline between the open brace and a trailing single-line
+# comment. Requires nl_after_brace_open=true.
+nl_after_brace_open_cmt = false # true/false
+
+# Whether to add a newline after a virtual brace open with a non-empty body.
+# These occur in un-braced if/while/do/for statement bodies.
+nl_after_vbrace_open = false # true/false
+
+# Whether to add a newline after a virtual brace open with an empty body.
+# These occur in un-braced if/while/do/for statement bodies.
+nl_after_vbrace_open_empty = false # true/false
+
+# Whether to add a newline after '}'. Does not apply if followed by a
+# necessary ';'.
+nl_after_brace_close = false # true/false
+
+# Whether to add a newline after a virtual brace close,
+# as in 'if (foo) a++; <here> return;'.
+nl_after_vbrace_close = false # true/false
+
+# Add or remove newline between the close brace and identifier,
+# as in 'struct { int a; } <here> b;'. Affects enumerations, unions and
+# structures. If set to ignore, uses nl_after_brace_close.
+nl_brace_struct_var = ignore # ignore/add/remove/force/not_defined
+
+# Whether to alter newlines in '#define' macros.
+nl_define_macro = false # true/false
+
+# Whether to alter newlines between consecutive parenthesis closes. The number
+# of closing parentheses in a line will depend on respective open parenthesis
+# lines.
+nl_squeeze_paren_close = false # true/false
+
+# Whether to remove blanks after '#ifxx' and '#elxx', or before '#elxx' and
+# '#endif'. Does not affect top-level #ifdefs.
+nl_squeeze_ifdef = false # true/false
+
+# Makes the nl_squeeze_ifdef option affect the top-level #ifdefs as well.
+nl_squeeze_ifdef_top_level = false # true/false
+
+# Add or remove blank line before 'if'.
+nl_before_if = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove blank line after 'if' statement. Add/Force work only if the
+# next token is not a closing brace.
+nl_after_if = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove blank line before 'for'.
+nl_before_for = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove blank line after 'for' statement.
+nl_after_for = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove blank line before 'while'.
+nl_before_while = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove blank line after 'while' statement.
+nl_after_while = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove blank line before 'switch'.
+nl_before_switch = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove blank line after 'switch' statement.
+nl_after_switch = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove blank line before 'synchronized'.
+nl_before_synchronized = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove blank line after 'synchronized' statement.
+nl_after_synchronized = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove blank line before 'do'.
+nl_before_do = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove blank line after 'do/while' statement.
+nl_after_do = ignore # ignore/add/remove/force/not_defined
+
+# Ignore nl_before_{if,for,switch,do,synchronized} if the control
+# statement is immediately after a case statement.
+# if nl_before_{if,for,switch,do} is set to remove, this option
+# does nothing.
+nl_before_ignore_after_case = false # true/false
+
+# Whether to put a blank line before 'return' statements, unless after an open
+# brace.
+nl_before_return = false # true/false
+
+# Whether to put a blank line after 'return' statements, unless followed by a
+# close brace.
+nl_after_return = false # true/false
+
+# Whether to put a blank line before a member '.' or '->' operators.
+nl_before_member = ignore # ignore/add/remove/force/not_defined
+
+# (Java) Whether to put a blank line after a member '.' or '->' operators.
+nl_after_member = ignore # ignore/add/remove/force/not_defined
+
+# Whether to double-space commented-entries in 'struct'/'union'/'enum'.
+nl_ds_struct_enum_cmt = false # true/false
+
+# Whether to force a newline before '}' of a 'struct'/'union'/'enum'.
+# (Lower priority than eat_blanks_before_close_brace.)
+nl_ds_struct_enum_close_brace = false # true/false
+
+# Add or remove newline before or after (depending on pos_class_colon) a class
+# colon, as in 'class Foo <here> : <or here> public Bar'.
+nl_class_colon = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline around a class constructor colon. The exact position
+# depends on nl_constr_init_args, pos_constr_colon and pos_constr_comma.
+nl_constr_colon = ignore # ignore/add/remove/force/not_defined
+
+# Whether to collapse a two-line namespace, like 'namespace foo\n{ decl; }'
+# into a single line. If true, prevents other brace newline rules from turning
+# such code into four lines. If true, it also preserves one-liner namespaces.
+nl_namespace_two_to_one_liner = false # true/false
+
+# Whether to remove a newline in simple unbraced if statements, turning them
+# into one-liners, as in 'if(b)\n i++;' => 'if(b) i++;'.
+nl_create_if_one_liner = false # true/false
+
+# Whether to remove a newline in simple unbraced for statements, turning them
+# into one-liners, as in 'for (...)\n stmt;' => 'for (...) stmt;'.
+nl_create_for_one_liner = false # true/false
+
+# Whether to remove a newline in simple unbraced while statements, turning
+# them into one-liners, as in 'while (expr)\n stmt;' => 'while (expr) stmt;'.
+nl_create_while_one_liner = false # true/false
+
+# Whether to collapse a function definition whose body (not counting braces)
+# is only one line so that the entire definition (prototype, braces, body) is
+# a single line.
+nl_create_func_def_one_liner = false # true/false
+
+# Whether to split one-line simple list definitions into three lines by
+# adding newlines, as in 'int a[12] = { <here> 0 <here> };'.
+nl_create_list_one_liner = false # true/false
+
+# Whether to split one-line simple unbraced if statements into two lines by
+# adding a newline, as in 'if(b) <here> i++;'.
+nl_split_if_one_liner = false # true/false
+
+# Whether to split one-line simple unbraced for statements into two lines by
+# adding a newline, as in 'for (...) <here> stmt;'.
+nl_split_for_one_liner = false # true/false
+
+# Whether to split one-line simple unbraced while statements into two lines by
+# adding a newline, as in 'while (expr) <here> stmt;'.
+nl_split_while_one_liner = false # true/false
+
+# Don't add a newline before a cpp-comment in a parameter list of a function
+# call.
+donot_add_nl_before_cpp_comment = false # true/false
+
+#
+# Blank line options
+#
+
+# The maximum number of consecutive newlines (3 = 2 blank lines).
+nl_max = 0 # unsigned number
+
+# The maximum number of consecutive newlines in a function.
+nl_max_blank_in_func = 0 # unsigned number
+
+# The number of newlines inside an empty function body.
+# This option overrides eat_blanks_after_open_brace and
+# eat_blanks_before_close_brace, but is ignored when
+# nl_collapse_empty_body=true
+nl_inside_empty_func = 0 # unsigned number
+
+# The number of newlines before a function prototype.
+nl_before_func_body_proto = 0 # unsigned number
+
+# The number of newlines before a multi-line function definition. Where
+# applicable, this option is overridden with eat_blanks_after_open_brace=true
+nl_before_func_body_def = 0 # unsigned number
+
+# The number of newlines before a class constructor/destructor prototype.
+nl_before_func_class_proto = 0 # unsigned number
+
+# The number of newlines before a class constructor/destructor definition.
+nl_before_func_class_def = 0 # unsigned number
+
+# The number of newlines after a function prototype.
+nl_after_func_proto = 0 # unsigned number
+
+# The number of newlines after a function prototype, if not followed by
+# another function prototype.
+nl_after_func_proto_group = 0 # unsigned number
+
+# The number of newlines after a class constructor/destructor prototype.
+nl_after_func_class_proto = 0 # unsigned number
+
+# The number of newlines after a class constructor/destructor prototype,
+# if not followed by another constructor/destructor prototype.
+nl_after_func_class_proto_group = 0 # unsigned number
+
+# Whether one-line method definitions inside a class body should be treated
+# as if they were prototypes for the purposes of adding newlines.
+#
+# Requires nl_class_leave_one_liners=true. Overrides nl_before_func_body_def
+# and nl_before_func_class_def for one-liners.
+nl_class_leave_one_liner_groups = false # true/false
+
+# The number of newlines after '}' of a multi-line function body.
+nl_after_func_body = 0 # unsigned number
+
+# The number of newlines after '}' of a multi-line function body in a class
+# declaration. Also affects class constructors/destructors.
+#
+# Overrides nl_after_func_body.
+nl_after_func_body_class = 0 # unsigned number
+
+# The number of newlines after '}' of a single line function body. Also
+# affects class constructors/destructors.
+#
+# Overrides nl_after_func_body and nl_after_func_body_class.
+nl_after_func_body_one_liner = 0 # unsigned number
+
+# The number of blank lines after a block of variable definitions at the top
+# of a function body.
+#
+# 0: No change (default).
+nl_func_var_def_blk = 0 # unsigned number
+
+# The number of newlines before a block of typedefs. If nl_after_access_spec
+# is non-zero, that option takes precedence.
+#
+# 0: No change (default).
+nl_typedef_blk_start = 0 # unsigned number
+
+# The number of newlines after a block of typedefs.
+#
+# 0: No change (default).
+nl_typedef_blk_end = 0 # unsigned number
+
+# The maximum number of consecutive newlines within a block of typedefs.
+#
+# 0: No change (default).
+nl_typedef_blk_in = 0 # unsigned number
+
+# The number of empty newlines before a block of variable definitions
+# not at the top of a function body. If nl_after_access_spec is non-zero,
+# that option takes precedence.
+#
+# 0: No change (default).
+nl_var_def_blk_start = 0 # unsigned number
+
+# The number of empty newlines after a block of variable definitions
+# not at the top of a function body.
+#
+# 0: No change (default).
+nl_var_def_blk_end = 0 # unsigned number
+
+# The maximum number of consecutive newlines within a block of variable
+# definitions.
+#
+# 0: No change (default).
+nl_var_def_blk_in = 0 # unsigned number
+
+# The minimum number of newlines before a multi-line comment.
+# Doesn't apply if after a brace open or another multi-line comment.
+nl_before_block_comment = 0 # unsigned number
+
+# The minimum number of newlines before a single-line C comment.
+# Doesn't apply if after a brace open or other single-line C comments.
+nl_before_c_comment = 0 # unsigned number
+
+# The minimum number of newlines before a CPP comment.
+# Doesn't apply if after a brace open or other CPP comments.
+nl_before_cpp_comment = 0 # unsigned number
+
+# Whether to force a newline after a multi-line comment.
+nl_after_multiline_comment = false # true/false
+
+# Whether to force a newline after a label's colon.
+nl_after_label_colon = false # true/false
+
+# The number of newlines before a struct definition.
+nl_before_struct = 0 # unsigned number
+
+# The number of newlines after '}' or ';' of a struct/enum/union definition.
+nl_after_struct = 0 # unsigned number
+
+# The number of newlines before a class definition.
+nl_before_class = 0 # unsigned number
+
+# The number of newlines after '}' or ';' of a class definition.
+nl_after_class = 0 # unsigned number
+
+# The number of newlines before a namespace.
+nl_before_namespace = 0 # unsigned number
+
+# The number of newlines after '{' of a namespace. This also adds newlines
+# before the matching '}'.
+#
+# 0: Apply eat_blanks_after_open_brace or eat_blanks_before_close_brace if
+# applicable, otherwise no change.
+#
+# Overrides eat_blanks_after_open_brace and eat_blanks_before_close_brace.
+nl_inside_namespace = 0 # unsigned number
+
+# The number of newlines after '}' of a namespace.
+nl_after_namespace = 0 # unsigned number
+
+# The number of newlines before an access specifier label. This also includes
+# the Qt-specific 'signals:' and 'slots:'. Will not change the newline count
+# if after a brace open.
+#
+# 0: No change (default).
+nl_before_access_spec = 0 # unsigned number
+
+# The number of newlines after an access specifier label. This also includes
+# the Qt-specific 'signals:' and 'slots:'. Will not change the newline count
+# if after a brace open.
+#
+# 0: No change (default).
+#
+# Overrides nl_typedef_blk_start and nl_var_def_blk_start.
+nl_after_access_spec = 0 # unsigned number
+
+# The number of newlines between a function definition and the function
+# comment, as in '// comment\n <here> void foo() {...}'.
+#
+# 0: No change (default).
+nl_comment_func_def = 0 # unsigned number
+
+# The number of newlines after a try-catch-finally block that isn't followed
+# by a brace close.
+#
+# 0: No change (default).
+nl_after_try_catch_finally = 0 # unsigned number
+
+# (C#) The number of newlines before and after a property, indexer or event
+# declaration.
+#
+# 0: No change (default).
+nl_around_cs_property = 0 # unsigned number
+
+# (C#) The number of newlines between the get/set/add/remove handlers.
+#
+# 0: No change (default).
+nl_between_get_set = 0 # unsigned number
+
+# (C#) Add or remove newline between property and the '{'.
+nl_property_brace = ignore # ignore/add/remove/force/not_defined
+
+# Whether to remove blank lines after '{'.
+eat_blanks_after_open_brace = false # true/false
+
+# Whether to remove blank lines before '}'.
+eat_blanks_before_close_brace = false # true/false
+
+# How aggressively to remove extra newlines not in preprocessor.
+#
+# 0: No change (default)
+# 1: Remove most newlines not handled by other config
+# 2: Remove all newlines and reformat completely by config
+nl_remove_extra_newlines = 0 # unsigned number
+
+# (Java) Add or remove newline after an annotation statement. Only affects
+# annotations that are after a newline.
+nl_after_annotation = ignore # ignore/add/remove/force/not_defined
+
+# (Java) Add or remove newline between two annotations.
+nl_between_annotation = ignore # ignore/add/remove/force/not_defined
+
+# The number of newlines before a whole-file #ifdef.
+#
+# 0: No change (default).
+nl_before_whole_file_ifdef = 0 # unsigned number
+
+# The number of newlines after a whole-file #ifdef.
+#
+# 0: No change (default).
+nl_after_whole_file_ifdef = 0 # unsigned number
+
+# The number of newlines before a whole-file #endif.
+#
+# 0: No change (default).
+nl_before_whole_file_endif = 0 # unsigned number
+
+# The number of newlines after a whole-file #endif.
+#
+# 0: No change (default).
+nl_after_whole_file_endif = 0 # unsigned number
+
+#
+# Positioning options
+#
+
+# The position of arithmetic operators in wrapped expressions.
+pos_arith = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
+
+# The position of assignment in wrapped expressions. Do not affect '='
+# followed by '{'.
+pos_assign = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
+
+# The position of Boolean operators in wrapped expressions.
+pos_bool = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
+
+# The position of comparison operators in wrapped expressions.
+pos_compare = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
+
+# The position of conditional operators, as in the '?' and ':' of
+# 'expr ? stmt : stmt', in wrapped expressions.
+pos_conditional = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
+
+# The position of the comma in wrapped expressions.
+pos_comma = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
+
+# The position of the comma in enum entries.
+pos_enum_comma = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
+
+# The position of the comma in the base class list if there is more than one
+# line. Affects nl_class_init_args.
+pos_class_comma = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
+
+# The position of the comma in the constructor initialization list.
+# Related to nl_constr_colon, nl_constr_init_args and pos_constr_colon.
+pos_constr_comma = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
+
+# The position of trailing/leading class colon, between class and base class
+# list. Affects nl_class_colon.
+pos_class_colon = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
+
+# The position of colons between constructor and member initialization.
+# Related to nl_constr_colon, nl_constr_init_args and pos_constr_comma.
+pos_constr_colon = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
+
+# The position of shift operators in wrapped expressions.
+pos_shift = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
+
+#
+# Line splitting options
+#
+
+# Try to limit code width to N columns.
+code_width = 0 # unsigned number
+
+# Whether to fully split long 'for' statements at semi-colons.
+ls_for_split_full = false # true/false
+
+# Whether to fully split long function prototypes/calls at commas.
+# The option ls_code_width has priority over the option ls_func_split_full.
+ls_func_split_full = false # true/false
+
+# Whether to split lines as close to code_width as possible and ignore some
+# groupings.
+# The option ls_code_width has priority over the option ls_func_split_full.
+ls_code_width = false # true/false
+
+#
+# Code alignment options (not left column spaces/tabs)
+#
+
+# Whether to keep non-indenting tabs.
+align_keep_tabs = false # true/false
+
+# Whether to use tabs for aligning.
+align_with_tabs = false # true/false
+
+# Whether to bump out to the next tab when aligning.
+align_on_tabstop = false # true/false
+
+# Whether to right-align numbers.
+align_number_right = false # true/false
+
+# Whether to keep whitespace not required for alignment.
+align_keep_extra_space = false # true/false
+
+# Whether to align variable definitions in prototypes and functions.
+align_func_params = false # true/false
+
+# The span for aligning parameter definitions in function on parameter name.
+#
+# 0: Don't align (default).
+align_func_params_span = 0 # unsigned number
+
+# The threshold for aligning function parameter definitions.
+# Use a negative number for absolute thresholds.
+#
+# 0: No limit (default).
+align_func_params_thresh = 0 # number
+
+# The gap for aligning function parameter definitions.
+align_func_params_gap = 0 # unsigned number
+
+# The span for aligning constructor value.
+#
+# 0: Don't align (default).
+align_constr_value_span = 0 # unsigned number
+
+# The threshold for aligning constructor value.
+# Use a negative number for absolute thresholds.
+#
+# 0: No limit (default).
+align_constr_value_thresh = 0 # number
+
+# The gap for aligning constructor value.
+align_constr_value_gap = 0 # unsigned number
+
+# Whether to align parameters in single-line functions that have the same
+# name. The function names must already be aligned with each other.
+align_same_func_call_params = false # true/false
+
+# The span for aligning function-call parameters for single line functions.
+#
+# 0: Don't align (default).
+align_same_func_call_params_span = 0 # unsigned number
+
+# The threshold for aligning function-call parameters for single line
+# functions.
+# Use a negative number for absolute thresholds.
+#
+# 0: No limit (default).
+align_same_func_call_params_thresh = 0 # number
+
+# The span for aligning variable definitions.
+#
+# 0: Don't align (default).
+align_var_def_span = 0 # unsigned number
+
+# How to consider (or treat) the '*' in the alignment of variable definitions.
+#
+# 0: Part of the type 'void * foo;' (default)
+# 1: Part of the variable 'void *foo;'
+# 2: Dangling 'void *foo;'
+# Dangling: the '*' will not be taken into account when aligning.
+align_var_def_star_style = 0 # unsigned number
+
+# How to consider (or treat) the '&' in the alignment of variable definitions.
+#
+# 0: Part of the type 'long & foo;' (default)
+# 1: Part of the variable 'long &foo;'
+# 2: Dangling 'long &foo;'
+# Dangling: the '&' will not be taken into account when aligning.
+align_var_def_amp_style = 0 # unsigned number
+
+# The threshold for aligning variable definitions.
+# Use a negative number for absolute thresholds.
+#
+# 0: No limit (default).
+align_var_def_thresh = 0 # number
+
+# The gap for aligning variable definitions.
+align_var_def_gap = 0 # unsigned number
+
+# Whether to align the colon in struct bit fields.
+align_var_def_colon = false # true/false
+
+# The gap for aligning the colon in struct bit fields.
+align_var_def_colon_gap = 0 # unsigned number
+
+# Whether to align any attribute after the variable name.
+align_var_def_attribute = false # true/false
+
+# Whether to align inline struct/enum/union variable definitions.
+align_var_def_inline = false # true/false
+
+# The span for aligning on '=' in assignments.
+#
+# 0: Don't align (default).
+align_assign_span = 0 # unsigned number
+
+# The span for aligning on '{' in braced init list.
+#
+# 0: Don't align (default).
+align_braced_init_list_span = 0 # unsigned number
+
+# The span for aligning on '=' in function prototype modifier.
+#
+# 0: Don't align (default).
+align_assign_func_proto_span = 0 # unsigned number
+
+# The threshold for aligning on '=' in assignments.
+# Use a negative number for absolute thresholds.
+#
+# 0: No limit (default).
+align_assign_thresh = 0 # number
+
+# Whether to align on the left most assignment when multiple
+# definitions are found on the same line.
+# Depends on 'align_assign_span' and 'align_assign_thresh' settings.
+align_assign_on_multi_var_defs = false # true/false
+
+# The threshold for aligning on '{' in braced init list.
+# Use a negative number for absolute thresholds.
+#
+# 0: No limit (default).
+align_braced_init_list_thresh = 0 # number
+
+# How to apply align_assign_span to function declaration "assignments", i.e.
+# 'virtual void foo() = 0' or '~foo() = {default|delete}'.
+#
+# 0: Align with other assignments (default)
+# 1: Align with each other, ignoring regular assignments
+# 2: Don't align
+align_assign_decl_func = 0 # unsigned number
+
+# The span for aligning on '=' in enums.
+#
+# 0: Don't align (default).
+align_enum_equ_span = 0 # unsigned number
+
+# The threshold for aligning on '=' in enums.
+# Use a negative number for absolute thresholds.
+#
+# 0: no limit (default).
+align_enum_equ_thresh = 0 # number
+
+# The span for aligning class member definitions.
+#
+# 0: Don't align (default).
+align_var_class_span = 0 # unsigned number
+
+# The threshold for aligning class member definitions.
+# Use a negative number for absolute thresholds.
+#
+# 0: No limit (default).
+align_var_class_thresh = 0 # number
+
+# The gap for aligning class member definitions.
+align_var_class_gap = 0 # unsigned number
+
+# The span for aligning struct/union member definitions.
+#
+# 0: Don't align (default).
+align_var_struct_span = 0 # unsigned number
+
+# The threshold for aligning struct/union member definitions.
+# Use a negative number for absolute thresholds.
+#
+# 0: No limit (default).
+align_var_struct_thresh = 0 # number
+
+# The gap for aligning struct/union member definitions.
+align_var_struct_gap = 0 # unsigned number
+
+# The span for aligning struct initializer values.
+#
+# 0: Don't align (default).
+align_struct_init_span = 0 # unsigned number
+
+# The span for aligning single-line typedefs.
+#
+# 0: Don't align (default).
+align_typedef_span = 0 # unsigned number
+
+# The minimum space between the type and the synonym of a typedef.
+align_typedef_gap = 0 # unsigned number
+
+# How to align typedef'd functions with other typedefs.
+#
+# 0: Don't mix them at all (default)
+# 1: Align the open parenthesis with the types
+# 2: Align the function type name with the other type names
+align_typedef_func = 0 # unsigned number
+
+# How to consider (or treat) the '*' in the alignment of typedefs.
+#
+# 0: Part of the typedef type, 'typedef int * pint;' (default)
+# 1: Part of type name: 'typedef int *pint;'
+# 2: Dangling: 'typedef int *pint;'
+# Dangling: the '*' will not be taken into account when aligning.
+align_typedef_star_style = 0 # unsigned number
+
+# How to consider (or treat) the '&' in the alignment of typedefs.
+#
+# 0: Part of the typedef type, 'typedef int & intref;' (default)
+# 1: Part of type name: 'typedef int &intref;'
+# 2: Dangling: 'typedef int &intref;'
+# Dangling: the '&' will not be taken into account when aligning.
+align_typedef_amp_style = 0 # unsigned number
+
+# The span for aligning comments that end lines.
+#
+# 0: Don't align (default).
+align_right_cmt_span = 0 # unsigned number
+
+# Minimum number of columns between preceding text and a trailing comment in
+# order for the comment to qualify for being aligned. Must be non-zero to have
+# an effect.
+align_right_cmt_gap = 0 # unsigned number
+
+# If aligning comments, whether to mix with comments after '}' and #endif with
+# less than three spaces before the comment.
+align_right_cmt_mix = false # true/false
+
+# Whether to only align trailing comments that are at the same brace level.
+align_right_cmt_same_level = false # true/false
+
+# Minimum column at which to align trailing comments. Comments which are
+# aligned beyond this column, but which can be aligned in a lesser column,
+# may be "pulled in".
+#
+# 0: Ignore (default).
+align_right_cmt_at_col = 0 # unsigned number
+
+# The span for aligning function prototypes.
+#
+# 0: Don't align (default).
+align_func_proto_span = 0 # unsigned number
+
+# How to consider (or treat) the '*' in the alignment of function prototypes.
+#
+# 0: Part of the type 'void * foo();' (default)
+# 1: Part of the function 'void *foo();'
+# 2: Dangling 'void *foo();'
+# Dangling: the '*' will not be taken into account when aligning.
+align_func_proto_star_style = 0 # unsigned number
+
+# How to consider (or treat) the '&' in the alignment of function prototypes.
+#
+# 0: Part of the type 'long & foo();' (default)
+# 1: Part of the function 'long &foo();'
+# 2: Dangling 'long &foo();'
+# Dangling: the '&' will not be taken into account when aligning.
+align_func_proto_amp_style = 0 # unsigned number
+
+# The threshold for aligning function prototypes.
+# Use a negative number for absolute thresholds.
+#
+# 0: No limit (default).
+align_func_proto_thresh = 0 # number
+
+# Minimum gap between the return type and the function name.
+align_func_proto_gap = 0 # unsigned number
+
+# Whether to align function prototypes on the 'operator' keyword instead of
+# what follows.
+align_on_operator = false # true/false
+
+# Whether to mix aligning prototype and variable declarations. If true,
+# align_var_def_XXX options are used instead of align_func_proto_XXX options.
+align_mix_var_proto = false # true/false
+
+# Whether to align single-line functions with function prototypes.
+# Uses align_func_proto_span.
+align_single_line_func = false # true/false
+
+# Whether to align the open brace of single-line functions.
+# Requires align_single_line_func=true. Uses align_func_proto_span.
+align_single_line_brace = false # true/false
+
+# Gap for align_single_line_brace.
+align_single_line_brace_gap = 0 # unsigned number
+
+# (OC) The span for aligning Objective-C message specifications.
+#
+# 0: Don't align (default).
+align_oc_msg_spec_span = 0 # unsigned number
+
+# Whether to align macros wrapped with a backslash and a newline. This will
+# not work right if the macro contains a multi-line comment.
+align_nl_cont = false # true/false
+
+# Whether to align macro functions and variables together.
+align_pp_define_together = false # true/false
+
+# The span for aligning on '#define' bodies.
+#
+# =0: Don't align (default)
+# >0: Number of lines (including comments) between blocks
+align_pp_define_span = 0 # unsigned number
+
+# The minimum space between label and value of a preprocessor define.
+align_pp_define_gap = 0 # unsigned number
+
+# Whether to align lines that start with '<<' with previous '<<'.
+#
+# Default: true
+align_left_shift = true # true/false
+
+# Whether to align comma-separated statements following '<<' (as used to
+# initialize Eigen matrices).
+align_eigen_comma_init = false # true/false
+
+# Whether to align text after 'asm volatile ()' colons.
+align_asm_colon = false # true/false
+
+# (OC) Span for aligning parameters in an Objective-C message call
+# on the ':'.
+#
+# 0: Don't align.
+align_oc_msg_colon_span = 0 # unsigned number
+
+# (OC) Whether to always align with the first parameter, even if it is too
+# short.
+align_oc_msg_colon_first = false # true/false
+
+# (OC) Whether to align parameters in an Objective-C '+' or '-' declaration
+# on the ':'.
+align_oc_decl_colon = false # true/false
+
+# (OC) Whether to not align parameters in an Objectve-C message call if first
+# colon is not on next line of the message call (the same way Xcode does
+# alignment)
+align_oc_msg_colon_xcode_like = false # true/false
+
+#
+# Comment modification options
+#
+
+# Try to wrap comments at N columns.
+cmt_width = 0 # unsigned number
+
+# How to reflow comments.
+#
+# 0: No reflowing (apart from the line wrapping due to cmt_width) (default)
+# 1: No touching at all
+# 2: Full reflow (enable cmt_indent_multi for indent with line wrapping due to cmt_width)
+cmt_reflow_mode = 0 # unsigned number
+
+# Path to a file that contains regular expressions describing patterns for
+# which the end of one line and the beginning of the next will be folded into
+# the same sentence or paragraph during full comment reflow. The regular
+# expressions are described using ECMAScript syntax. The syntax for this
+# specification is as follows, where "..." indicates the custom regular
+# expression and "n" indicates the nth end_of_prev_line_regex and
+# beg_of_next_line_regex regular expression pair:
+#
+# end_of_prev_line_regex[1] = "...$"
+# beg_of_next_line_regex[1] = "^..."
+# end_of_prev_line_regex[2] = "...$"
+# beg_of_next_line_regex[2] = "^..."
+# .
+# .
+# .
+# end_of_prev_line_regex[n] = "...$"
+# beg_of_next_line_regex[n] = "^..."
+#
+# Note that use of this option overrides the default reflow fold regular
+# expressions, which are internally defined as follows:
+#
+# end_of_prev_line_regex[1] = "[\w,\]\)]$"
+# beg_of_next_line_regex[1] = "^[\w,\[\(]"
+# end_of_prev_line_regex[2] = "\.$"
+# beg_of_next_line_regex[2] = "^[A-Z]"
+cmt_reflow_fold_regex_file = "" # string
+
+# Whether to indent wrapped lines to the start of the encompassing paragraph
+# during full comment reflow (cmt_reflow_mode = 2). Overrides the value
+# specified by cmt_sp_after_star_cont.
+#
+# Note that cmt_align_doxygen_javadoc_tags overrides this option for
+# paragraphs associated with javadoc tags
+cmt_reflow_indent_to_paragraph_start = false # true/false
+
+# Whether to convert all tabs to spaces in comments. If false, tabs in
+# comments are left alone, unless used for indenting.
+cmt_convert_tab_to_spaces = false # true/false
+
+# Whether to apply changes to multi-line comments, including cmt_width,
+# keyword substitution and leading chars.
+#
+# Default: true
+cmt_indent_multi = true # true/false
+
+# Whether to align doxygen javadoc-style tags ('@param', '@return', etc.)
+# and corresponding fields such that groups of consecutive block tags,
+# parameter names, and descriptions align with one another. Overrides that
+# which is specified by the cmt_sp_after_star_cont. If cmt_width > 0, it may
+# be necessary to enable cmt_indent_multi and set cmt_reflow_mode = 2
+# in order to achieve the desired alignment for line-wrapping.
+cmt_align_doxygen_javadoc_tags = false # true/false
+
+# The number of spaces to insert after the star and before doxygen
+# javadoc-style tags (@param, @return, etc). Requires enabling
+# cmt_align_doxygen_javadoc_tags. Overrides that which is specified by the
+# cmt_sp_after_star_cont.
+#
+# Default: 1
+cmt_sp_before_doxygen_javadoc_tags = 1 # unsigned number
+
+# Whether to change trailing, single-line c-comments into cpp-comments.
+cmt_trailing_single_line_c_to_cpp = false # true/false
+
+# Whether to group c-comments that look like they are in a block.
+cmt_c_group = false # true/false
+
+# Whether to put an empty '/*' on the first line of the combined c-comment.
+cmt_c_nl_start = false # true/false
+
+# Whether to add a newline before the closing '*/' of the combined c-comment.
+cmt_c_nl_end = false # true/false
+
+# Whether to change cpp-comments into c-comments.
+cmt_cpp_to_c = false # true/false
+
+# Whether to group cpp-comments that look like they are in a block. Only
+# meaningful if cmt_cpp_to_c=true.
+cmt_cpp_group = false # true/false
+
+# Whether to put an empty '/*' on the first line of the combined cpp-comment
+# when converting to a c-comment.
+#
+# Requires cmt_cpp_to_c=true and cmt_cpp_group=true.
+cmt_cpp_nl_start = false # true/false
+
+# Whether to add a newline before the closing '*/' of the combined cpp-comment
+# when converting to a c-comment.
+#
+# Requires cmt_cpp_to_c=true and cmt_cpp_group=true.
+cmt_cpp_nl_end = false # true/false
+
+# Whether to put a star on subsequent comment lines.
+cmt_star_cont = false # true/false
+
+# The number of spaces to insert at the start of subsequent comment lines.
+cmt_sp_before_star_cont = 0 # unsigned number
+
+# The number of spaces to insert after the star on subsequent comment lines.
+cmt_sp_after_star_cont = 0 # unsigned number
+
+# For multi-line comments with a '*' lead, remove leading spaces if the first
+# and last lines of the comment are the same length.
+#
+# Default: true
+cmt_multi_check_last = true # true/false
+
+# For multi-line comments with a '*' lead, remove leading spaces if the first
+# and last lines of the comment are the same length AND if the length is
+# bigger as the first_len minimum.
+#
+# Default: 4
+cmt_multi_first_len_minimum = 4 # unsigned number
+
+# Path to a file that contains text to insert at the beginning of a file if
+# the file doesn't start with a C/C++ comment. If the inserted text contains
+# '$(filename)', that will be replaced with the current file's name.
+cmt_insert_file_header = "" # string
+
+# Path to a file that contains text to insert at the end of a file if the
+# file doesn't end with a C/C++ comment. If the inserted text contains
+# '$(filename)', that will be replaced with the current file's name.
+cmt_insert_file_footer = "" # string
+
+# Path to a file that contains text to insert before a function definition if
+# the function isn't preceded by a C/C++ comment. If the inserted text
+# contains '$(function)', '$(javaparam)' or '$(fclass)', these will be
+# replaced with, respectively, the name of the function, the javadoc '@param'
+# and '@return' stuff, or the name of the class to which the member function
+# belongs.
+cmt_insert_func_header = "" # string
+
+# Path to a file that contains text to insert before a class if the class
+# isn't preceded by a C/C++ comment. If the inserted text contains '$(class)',
+# that will be replaced with the class name.
+cmt_insert_class_header = "" # string
+
+# Path to a file that contains text to insert before an Objective-C message
+# specification, if the method isn't preceded by a C/C++ comment. If the
+# inserted text contains '$(message)' or '$(javaparam)', these will be
+# replaced with, respectively, the name of the function, or the javadoc
+# '@param' and '@return' stuff.
+cmt_insert_oc_msg_header = "" # string
+
+# Whether a comment should be inserted if a preprocessor is encountered when
+# stepping backwards from a function name.
+#
+# Applies to cmt_insert_oc_msg_header, cmt_insert_func_header and
+# cmt_insert_class_header.
+cmt_insert_before_preproc = false # true/false
+
+# Whether a comment should be inserted if a function is declared inline to a
+# class definition.
+#
+# Applies to cmt_insert_func_header.
+#
+# Default: true
+cmt_insert_before_inlines = true # true/false
+
+# Whether a comment should be inserted if the function is a class constructor
+# or destructor.
+#
+# Applies to cmt_insert_func_header.
+cmt_insert_before_ctor_dtor = false # true/false
+
+#
+# Code modifying options (non-whitespace)
+#
+
+# Add or remove braces on a single-line 'do' statement.
+mod_full_brace_do = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove braces on a single-line 'for' statement.
+mod_full_brace_for = ignore # ignore/add/remove/force/not_defined
+
+# (Pawn) Add or remove braces on a single-line function definition.
+mod_full_brace_function = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove braces on a single-line 'if' statement. Braces will not be
+# removed if the braced statement contains an 'else'.
+mod_full_brace_if = ignore # ignore/add/remove/force/not_defined
+
+# Whether to enforce that all blocks of an 'if'/'else if'/'else' chain either
+# have, or do not have, braces. Overrides mod_full_brace_if.
+#
+# 0: Don't override mod_full_brace_if
+# 1: Add braces to all blocks if any block needs braces and remove braces if
+# they can be removed from all blocks
+# 2: Add braces to all blocks if any block already has braces, regardless of
+# whether it needs them
+# 3: Add braces to all blocks if any block needs braces and remove braces if
+# they can be removed from all blocks, except if all blocks have braces
+# despite none needing them
+mod_full_brace_if_chain = 0 # unsigned number
+
+# Whether to add braces to all blocks of an 'if'/'else if'/'else' chain.
+# If true, mod_full_brace_if_chain will only remove braces from an 'if' that
+# does not have an 'else if' or 'else'.
+mod_full_brace_if_chain_only = false # true/false
+
+# Add or remove braces on single-line 'while' statement.
+mod_full_brace_while = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove braces on single-line 'using ()' statement.
+mod_full_brace_using = ignore # ignore/add/remove/force/not_defined
+
+# Don't remove braces around statements that span N newlines
+mod_full_brace_nl = 0 # unsigned number
+
+# Whether to prevent removal of braces from 'if'/'for'/'while'/etc. blocks
+# which span multiple lines.
+#
+# Affects:
+# mod_full_brace_for
+# mod_full_brace_if
+# mod_full_brace_if_chain
+# mod_full_brace_if_chain_only
+# mod_full_brace_while
+# mod_full_brace_using
+#
+# Does not affect:
+# mod_full_brace_do
+# mod_full_brace_function
+mod_full_brace_nl_block_rem_mlcond = false # true/false
+
+# Add or remove unnecessary parenthesis on 'return' statement.
+mod_paren_on_return = ignore # ignore/add/remove/force/not_defined
+
+# (Pawn) Whether to change optional semicolons to real semicolons.
+mod_pawn_semicolon = false # true/false
+
+# Whether to fully parenthesize Boolean expressions in 'while' and 'if'
+# statement, as in 'if (a && b > c)' => 'if (a && (b > c))'.
+mod_full_paren_if_bool = false # true/false
+
+# Whether to fully parenthesize Boolean expressions after '='
+# statement, as in 'x = a && b > c;' => 'x = (a && (b > c));'.
+mod_full_paren_assign_bool = false # true/false
+
+# Whether to fully parenthesize Boolean expressions after '='
+# statement, as in 'return a && b > c;' => 'return (a && (b > c));'.
+mod_full_paren_return_bool = false # true/false
+
+# Whether to remove superfluous semicolons.
+mod_remove_extra_semicolon = false # true/false
+
+# Whether to remove duplicate include.
+mod_remove_duplicate_include = false # true/false
+
+# If a function body exceeds the specified number of newlines and doesn't have
+# a comment after the close brace, a comment will be added.
+mod_add_long_function_closebrace_comment = 0 # unsigned number
+
+# If a namespace body exceeds the specified number of newlines and doesn't
+# have a comment after the close brace, a comment will be added.
+mod_add_long_namespace_closebrace_comment = 0 # unsigned number
+
+# If a class body exceeds the specified number of newlines and doesn't have a
+# comment after the close brace, a comment will be added.
+mod_add_long_class_closebrace_comment = 0 # unsigned number
+
+# If a switch body exceeds the specified number of newlines and doesn't have a
+# comment after the close brace, a comment will be added.
+mod_add_long_switch_closebrace_comment = 0 # unsigned number
+
+# If an #ifdef body exceeds the specified number of newlines and doesn't have
+# a comment after the #endif, a comment will be added.
+mod_add_long_ifdef_endif_comment = 0 # unsigned number
+
+# If an #ifdef or #else body exceeds the specified number of newlines and
+# doesn't have a comment after the #else, a comment will be added.
+mod_add_long_ifdef_else_comment = 0 # unsigned number
+
+# Whether to take care of the case by the mod_sort_xx options.
+mod_sort_case_sensitive = false # true/false
+
+# Whether to sort consecutive single-line 'import' statements.
+mod_sort_import = false # true/false
+
+# (C#) Whether to sort consecutive single-line 'using' statements.
+mod_sort_using = false # true/false
+
+# Whether to sort consecutive single-line '#include' statements (C/C++) and
+# '#import' statements (Objective-C). Be aware that this has the potential to
+# break your code if your includes/imports have ordering dependencies.
+mod_sort_include = false # true/false
+
+# Whether to prioritize '#include' and '#import' statements that contain
+# filename without extension when sorting is enabled.
+mod_sort_incl_import_prioritize_filename = false # true/false
+
+# Whether to prioritize '#include' and '#import' statements that does not
+# contain extensions when sorting is enabled.
+mod_sort_incl_import_prioritize_extensionless = false # true/false
+
+# Whether to prioritize '#include' and '#import' statements that contain
+# angle over quotes when sorting is enabled.
+mod_sort_incl_import_prioritize_angle_over_quotes = false # true/false
+
+# Whether to ignore file extension in '#include' and '#import' statements
+# for sorting comparison.
+mod_sort_incl_import_ignore_extension = false # true/false
+
+# Whether to group '#include' and '#import' statements when sorting is enabled.
+mod_sort_incl_import_grouping_enabled = false # true/false
+
+# Whether to move a 'break' that appears after a fully braced 'case' before
+# the close brace, as in 'case X: { ... } break;' => 'case X: { ... break; }'.
+mod_move_case_break = false # true/false
+
+# Whether to move a 'return' that appears after a fully braced 'case' before
+# the close brace, as in 'case X: { ... } return;' => 'case X: { ... return; }'.
+mod_move_case_return = false # true/false
+
+# Add or remove braces around a fully braced case statement. Will only remove
+# braces if there are no variable declarations in the block.
+mod_case_brace = ignore # ignore/add/remove/force/not_defined
+
+# Whether to remove a void 'return;' that appears as the last statement in a
+# function.
+mod_remove_empty_return = false # true/false
+
+# Add or remove the comma after the last value of an enumeration.
+mod_enum_last_comma = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Whether to organize the properties. If true, properties will be
+# rearranged according to the mod_sort_oc_property_*_weight factors.
+mod_sort_oc_properties = false # true/false
+
+# (OC) Weight of a class property modifier.
+mod_sort_oc_property_class_weight = 0 # number
+
+# (OC) Weight of 'atomic' and 'nonatomic'.
+mod_sort_oc_property_thread_safe_weight = 0 # number
+
+# (OC) Weight of 'readwrite' when organizing properties.
+mod_sort_oc_property_readwrite_weight = 0 # number
+
+# (OC) Weight of a reference type specifier ('retain', 'copy', 'assign',
+# 'weak', 'strong') when organizing properties.
+mod_sort_oc_property_reference_weight = 0 # number
+
+# (OC) Weight of getter type ('getter=') when organizing properties.
+mod_sort_oc_property_getter_weight = 0 # number
+
+# (OC) Weight of setter type ('setter=') when organizing properties.
+mod_sort_oc_property_setter_weight = 0 # number
+
+# (OC) Weight of nullability type ('nullable', 'nonnull', 'null_unspecified',
+# 'null_resettable') when organizing properties.
+mod_sort_oc_property_nullability_weight = 0 # number
+
+#
+# Preprocessor options
+#
+
+# Add or remove indentation of preprocessor directives inside #if blocks
+# at brace level 0 (file-level).
+pp_indent = ignore # ignore/add/remove/force/not_defined
+
+# Whether to indent #if/#else/#endif at the brace level. If false, these are
+# indented from column 1.
+pp_indent_at_level = false # true/false
+
+# Whether to indent #if/#else/#endif at the parenthesis level if the brace
+# level is 0. If false, these are indented from column 1.
+pp_indent_at_level0 = false # true/false
+
+# Specifies the number of columns to indent preprocessors per level
+# at brace level 0 (file-level). If pp_indent_at_level=false, also specifies
+# the number of columns to indent preprocessors per level
+# at brace level > 0 (function-level).
+#
+# Default: 1
+pp_indent_count = 1 # unsigned number
+
+# Add or remove space after # based on pp_level of #if blocks.
+pp_space = ignore # ignore/add/remove/force/not_defined
+
+# Sets the number of spaces per level added with pp_space.
+pp_space_count = 0 # unsigned number
+
+# The indent for '#region' and '#endregion' in C# and '#pragma region' in
+# C/C++. Negative values decrease indent down to the first column.
+pp_indent_region = 0 # number
+
+# Whether to indent the code between #region and #endregion.
+pp_region_indent_code = false # true/false
+
+# If pp_indent_at_level=true, sets the indent for #if, #else and #endif when
+# not at file-level. Negative values decrease indent down to the first column.
+#
+# =0: Indent preprocessors using output_tab_size
+# >0: Column at which all preprocessors will be indented
+pp_indent_if = 0 # number
+
+# Whether to indent the code between #if, #else and #endif.
+pp_if_indent_code = false # true/false
+
+# Whether to indent the body of an #if that encompasses all the code in the file.
+pp_indent_in_guard = false # true/false
+
+# Whether to indent '#define' at the brace level. If false, these are
+# indented from column 1.
+pp_define_at_level = false # true/false
+
+# Whether to indent '#include' at the brace level.
+pp_include_at_level = false # true/false
+
+# Whether to ignore the '#define' body while formatting.
+pp_ignore_define_body = false # true/false
+
+# Whether to indent case statements between #if, #else, and #endif.
+# Only applies to the indent of the preprocesser that the case statements
+# directly inside of.
+#
+# Default: true
+pp_indent_case = true # true/false
+
+# Whether to indent whole function definitions between #if, #else, and #endif.
+# Only applies to the indent of the preprocesser that the function definition
+# is directly inside of.
+#
+# Default: true
+pp_indent_func_def = true # true/false
+
+# Whether to indent extern C blocks between #if, #else, and #endif.
+# Only applies to the indent of the preprocesser that the extern block is
+# directly inside of.
+#
+# Default: true
+pp_indent_extern = true # true/false
+
+# How to indent braces directly inside #if, #else, and #endif.
+# Requires pp_if_indent_code=true and only applies to the indent of the
+# preprocesser that the braces are directly inside of.
+# 0: No extra indent
+# 1: Indent by one level
+# -1: Preserve original indentation
+#
+# Default: 1
+pp_indent_brace = 1 # number
+
+# Whether to print warning messages for unbalanced #if and #else blocks.
+# This will print a message in the following cases:
+# - if an #ifdef block ends on a different indent level than
+# where it started from. Example:
+#
+# #ifdef TEST
+# int i;
+# {
+# int j;
+# #endif
+#
+# - an #elif/#else block ends on a different indent level than
+# the corresponding #ifdef block. Example:
+#
+# #ifdef TEST
+# int i;
+# #else
+# }
+# int j;
+# #endif
+pp_warn_unbalanced_if = false # true/false
+
+#
+# Sort includes options
+#
+
+# The regex for include category with priority 0.
+include_category_0 = "" # string
+
+# The regex for include category with priority 1.
+include_category_1 = "" # string
+
+# The regex for include category with priority 2.
+include_category_2 = "" # string
+
+#
+# Use or Do not Use options
+#
+
+# true: indent_func_call_param will be used (default)
+# false: indent_func_call_param will NOT be used
+#
+# Default: true
+use_indent_func_call_param = true # true/false
+
+# The value of the indentation for a continuation line is calculated
+# differently if the statement is:
+# - a declaration: your case with QString fileName ...
+# - an assignment: your case with pSettings = new QSettings( ...
+#
+# At the second case the indentation value might be used twice:
+# - at the assignment
+# - at the function call (if present)
+#
+# To prevent the double use of the indentation value, use this option with the
+# value 'true'.
+#
+# true: indent_continue will be used only once
+# false: indent_continue will be used every time (default)
+#
+# Requires indent_ignore_first_continue=false.
+use_indent_continue_only_once = false # true/false
+
+# The indentation can be:
+# - after the assignment, at the '[' character
+# - at the begin of the lambda body
+#
+# true: indentation will be after the assignment
+# false: indentation will be at the begin of the lambda body (default)
+indent_cpp_lambda_only_once = false # true/false
+
+# Whether sp_after_angle takes precedence over sp_inside_fparen. This was the
+# historic behavior, but is probably not the desired behavior, so this is off
+# by default.
+use_sp_after_angle_always = false # true/false
+
+# Whether to apply special formatting for Qt SIGNAL/SLOT macros. Essentially,
+# this tries to format these so that they match Qt's normalized form (i.e. the
+# result of QMetaObject::normalizedSignature), which can slightly improve the
+# performance of the QObject::connect call, rather than how they would
+# otherwise be formatted.
+#
+# See options_for_QT.cpp for details.
+#
+# Default: true
+use_options_overriding_for_qt_macros = true # true/false
+
+# If true: the form feed character is removed from the list of whitespace
+# characters. See https://en.cppreference.com/w/cpp/string/byte/isspace.
+use_form_feed_no_more_as_whitespace_character = false # true/false
+
+#
+# Warn levels - 1: error, 2: warning (default), 3: note
+#
+
+# (C#) Warning is given if doing tab-to-\t replacement and we have found one
+# in a C# verbatim string literal.
+#
+# Default: 2
+warn_level_tabs_found_in_verbatim_string_literals = 2 # unsigned number
+
+# Limit the number of loops.
+# Used by uncrustify.cpp to exit from infinite loop.
+# 0: no limit.
+debug_max_number_of_loops = 0 # number
+
+# Set the number of the line to protocol;
+# Used in the function prot_the_line if the 2. parameter is zero.
+# 0: nothing protocol.
+debug_line_number_to_protocol = 0 # number
+
+# Set the number of second(s) before terminating formatting the current file,
+# 0: no timeout.
+# only for linux
+debug_timeout = 0 # number
+
+# Set the number of characters to be printed if the text is too long,
+# 0: do not truncate.
+debug_truncate = 0 # unsigned number
+
+# Meaning of the settings:
+# Ignore - do not do any changes
+# Add - makes sure there is 1 or more space/brace/newline/etc
+# Force - makes sure there is exactly 1 space/brace/newline/etc,
+# behaves like Add in some contexts
+# Remove - removes space/brace/newline/etc
+#
+#
+# - Token(s) can be treated as specific type(s) with the 'set' option:
+# `set tokenType tokenString [tokenString...]`
+#
+# Example:
+# `set BOOL __AND__ __OR__`
+#
+# tokenTypes are defined in src/token_enum.h, use them without the
+# 'CT_' prefix: 'CT_BOOL' => 'BOOL'
+#
+#
+# - Token(s) can be treated as type(s) with the 'type' option.
+# `type tokenString [tokenString...]`
+#
+# Example:
+# `type int c_uint_8 Rectangle`
+#
+# This can also be achieved with `set TYPE int c_uint_8 Rectangle`
+#
+#
+# To embed whitespace in tokenStrings use the '\' escape character, or quote
+# the tokenStrings. These quotes are supported: "'`
+#
+#
+# - Support for the auto detection of languages through the file ending can be
+# added using the 'file_ext' command.
+# `file_ext langType langString [langString..]`
+#
+# Example:
+# `file_ext CPP .ch .cxx .cpp.in`
+#
+# langTypes are defined in uncrusify_types.h in the lang_flag_e enum, use
+# them without the 'LANG_' prefix: 'LANG_CPP' => 'CPP'
+#
+#
+# - Custom macro-based indentation can be set up using 'macro-open',
+# 'macro-else' and 'macro-close'.
+# `(macro-open | macro-else | macro-close) tokenString`
+#
+# Example:
+# `macro-open BEGIN_TEMPLATE_MESSAGE_MAP`
+# `macro-open BEGIN_MESSAGE_MAP`
+# `macro-close END_MESSAGE_MAP`
+#
+#
+# option(s) with 'not default' value: 0
+#
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/configuration.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/configuration.txt
index f61b1176..f61b1176 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/configuration.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/configuration.txt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/default.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/default.cfg
new file mode 100644
index 00000000..571f4038
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/default.cfg
@@ -0,0 +1,3493 @@
+# Uncrustify-0.75.0
+
+#
+# General options
+#
+
+# The type of line endings.
+#
+# Default: auto
+newlines = auto # lf/crlf/cr/auto
+
+# The original size of tabs in the input.
+#
+# Default: 8
+input_tab_size = 8 # unsigned number
+
+# The size of tabs in the output (only used if align_with_tabs=true).
+#
+# Default: 8
+output_tab_size = 8 # unsigned number
+
+# The ASCII value of the string escape char, usually 92 (\) or (Pawn) 94 (^).
+#
+# Default: 92
+string_escape_char = 92 # unsigned number
+
+# Alternate string escape char (usually only used for Pawn).
+# Only works right before the quote char.
+string_escape_char2 = 0 # unsigned number
+
+# Replace tab characters found in string literals with the escape sequence \t
+# instead.
+string_replace_tab_chars = false # true/false
+
+# Allow interpreting '>=' and '>>=' as part of a template in code like
+# 'void f(list<list<B>>=val);'. If true, 'assert(x<0 && y>=3)' will be broken.
+# Improvements to template detection may make this option obsolete.
+tok_split_gte = false # true/false
+
+# Disable formatting of NL_CONT ('\\n') ended lines (e.g. multi-line macros).
+disable_processing_nl_cont = false # true/false
+
+# Specify the marker used in comments to disable processing of part of the
+# file.
+#
+# Default: *INDENT-OFF*
+disable_processing_cmt = " *INDENT-OFF*" # string
+
+# Specify the marker used in comments to (re)enable processing in a file.
+#
+# Default: *INDENT-ON*
+enable_processing_cmt = " *INDENT-ON*" # string
+
+# Enable parsing of digraphs.
+enable_digraphs = false # true/false
+
+# Option to allow both disable_processing_cmt and enable_processing_cmt
+# strings, if specified, to be interpreted as ECMAScript regular expressions.
+# If true, a regex search will be performed within comments according to the
+# specified patterns in order to disable/enable processing.
+processing_cmt_as_regex = false # true/false
+
+# Add or remove the UTF-8 BOM (recommend 'remove').
+utf8_bom = ignore # ignore/add/remove/force/not_defined
+
+# If the file contains bytes with values between 128 and 255, but is not
+# UTF-8, then output as UTF-8.
+utf8_byte = false # true/false
+
+# Force the output encoding to UTF-8.
+utf8_force = false # true/false
+
+#
+# Spacing options
+#
+
+# Add or remove space around non-assignment symbolic operators ('+', '/', '%',
+# '<<', and so forth).
+sp_arith = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space around arithmetic operators '+' and '-'.
+#
+# Overrides sp_arith.
+sp_arith_additive = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space around assignment operator '=', '+=', etc.
+sp_assign = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space around '=' in C++11 lambda capture specifications.
+#
+# Overrides sp_assign.
+sp_cpp_lambda_assign = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after the capture specification of a C++11 lambda when
+# an argument list is present, as in '[] <here> (int x){ ... }'.
+sp_cpp_lambda_square_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after the capture specification of a C++11 lambda with
+# no argument list is present, as in '[] <here> { ... }'.
+sp_cpp_lambda_square_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after the opening parenthesis and before the closing
+# parenthesis of a argument list of a C++11 lambda, as in
+# '[]( <here> int x <here> ){ ... }'.
+sp_cpp_lambda_argument_list = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after the argument list of a C++11 lambda, as in
+# '[](int x) <here> { ... }'.
+sp_cpp_lambda_paren_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between a lambda body and its call operator of an
+# immediately invoked lambda, as in '[]( ... ){ ... } <here> ( ... )'.
+sp_cpp_lambda_fparen = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space around assignment operator '=' in a prototype.
+#
+# If set to ignore, use sp_assign.
+sp_assign_default = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before assignment operator '=', '+=', etc.
+#
+# Overrides sp_assign.
+sp_before_assign = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after assignment operator '=', '+=', etc.
+#
+# Overrides sp_assign.
+sp_after_assign = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space in 'enum {'.
+#
+# Default: add
+sp_enum_brace = add # ignore/add/remove/force/not_defined
+
+# Add or remove space in 'NS_ENUM ('.
+sp_enum_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space around assignment '=' in enum.
+sp_enum_assign = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before assignment '=' in enum.
+#
+# Overrides sp_enum_assign.
+sp_enum_before_assign = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after assignment '=' in enum.
+#
+# Overrides sp_enum_assign.
+sp_enum_after_assign = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space around assignment ':' in enum.
+sp_enum_colon = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space around preprocessor '##' concatenation operator.
+#
+# Default: add
+sp_pp_concat = add # ignore/add/remove/force/not_defined
+
+# Add or remove space after preprocessor '#' stringify operator.
+# Also affects the '#@' charizing operator.
+sp_pp_stringify = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before preprocessor '#' stringify operator
+# as in '#define x(y) L#y'.
+sp_before_pp_stringify = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space around boolean operators '&&' and '||'.
+sp_bool = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space around compare operator '<', '>', '==', etc.
+sp_compare = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space inside '(' and ')'.
+sp_inside_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between nested parentheses, i.e. '((' vs. ') )'.
+sp_paren_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between back-to-back parentheses, i.e. ')(' vs. ') ('.
+sp_cparen_oparen = ignore # ignore/add/remove/force/not_defined
+
+# Whether to balance spaces inside nested parentheses.
+sp_balance_nested_parens = false # true/false
+
+# Add or remove space between ')' and '{'.
+sp_paren_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between nested braces, i.e. '{{' vs. '{ {'.
+sp_brace_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before pointer star '*'.
+sp_before_ptr_star = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before pointer star '*' that isn't followed by a
+# variable name. If set to ignore, sp_before_ptr_star is used instead.
+sp_before_unnamed_ptr_star = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between pointer stars '*', as in 'int ***a;'.
+sp_between_ptr_star = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after pointer star '*', if followed by a word.
+#
+# Overrides sp_type_func.
+sp_after_ptr_star = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after pointer caret '^', if followed by a word.
+sp_after_ptr_block_caret = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after pointer star '*', if followed by a qualifier.
+sp_after_ptr_star_qualifier = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after a pointer star '*', if followed by a function
+# prototype or function definition.
+#
+# Overrides sp_after_ptr_star and sp_type_func.
+sp_after_ptr_star_func = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after a pointer star '*' in the trailing return of a
+# function prototype or function definition.
+sp_after_ptr_star_trailing = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between the pointer star '*' and the name of the variable
+# in a function pointer definition.
+sp_ptr_star_func_var = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between the pointer star '*' and the name of the type
+# in a function pointer type definition.
+sp_ptr_star_func_type = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after a pointer star '*', if followed by an open
+# parenthesis, as in 'void* (*)()'.
+sp_ptr_star_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before a pointer star '*', if followed by a function
+# prototype or function definition.
+sp_before_ptr_star_func = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before a pointer star '*' in the trailing return of a
+# function prototype or function definition.
+sp_before_ptr_star_trailing = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before a reference sign '&'.
+sp_before_byref = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before a reference sign '&' that isn't followed by a
+# variable name. If set to ignore, sp_before_byref is used instead.
+sp_before_unnamed_byref = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after reference sign '&', if followed by a word.
+#
+# Overrides sp_type_func.
+sp_after_byref = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after a reference sign '&', if followed by a function
+# prototype or function definition.
+#
+# Overrides sp_after_byref and sp_type_func.
+sp_after_byref_func = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before a reference sign '&', if followed by a function
+# prototype or function definition.
+sp_before_byref_func = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after a reference sign '&', if followed by an open
+# parenthesis, as in 'char& (*)()'.
+sp_byref_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between type and word. In cases where total removal of
+# whitespace would be a syntax error, a value of 'remove' is treated the same
+# as 'force'.
+#
+# This also affects some other instances of space following a type that are
+# not covered by other options; for example, between the return type and
+# parenthesis of a function type template argument, between the type and
+# parenthesis of an array parameter, or between 'decltype(...)' and the
+# following word.
+#
+# Default: force
+sp_after_type = force # ignore/add/remove/force/not_defined
+
+# Add or remove space between 'decltype(...)' and word,
+# brace or function call.
+sp_after_decltype = ignore # ignore/add/remove/force/not_defined
+
+# (D) Add or remove space before the parenthesis in the D constructs
+# 'template Foo(' and 'class Foo('.
+sp_before_template_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between 'template' and '<'.
+# If set to ignore, sp_before_angle is used.
+sp_template_angle = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before '<'.
+sp_before_angle = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space inside '<' and '>'.
+sp_inside_angle = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space inside '<>'.
+sp_inside_angle_empty = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between '>' and ':'.
+sp_angle_colon = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after '>'.
+sp_after_angle = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between '>' and '(' as found in 'new List<byte>(foo);'.
+sp_angle_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between '>' and '()' as found in 'new List<byte>();'.
+sp_angle_paren_empty = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between '>' and a word as in 'List<byte> m;' or
+# 'template <typename T> static ...'.
+sp_angle_word = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between '>' and '>' in '>>' (template stuff).
+#
+# Default: add
+sp_angle_shift = add # ignore/add/remove/force/not_defined
+
+# (C++11) Permit removal of the space between '>>' in 'foo<bar<int> >'. Note
+# that sp_angle_shift cannot remove the space without this option.
+sp_permit_cpp11_shift = false # true/false
+
+# Add or remove space before '(' of control statements ('if', 'for', 'switch',
+# 'while', etc.).
+sp_before_sparen = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space inside '(' and ')' of control statements other than
+# 'for'.
+sp_inside_sparen = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after '(' of control statements other than 'for'.
+#
+# Overrides sp_inside_sparen.
+sp_inside_sparen_open = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before ')' of control statements other than 'for'.
+#
+# Overrides sp_inside_sparen.
+sp_inside_sparen_close = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space inside '(' and ')' of 'for' statements.
+sp_inside_for = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after '(' of 'for' statements.
+#
+# Overrides sp_inside_for.
+sp_inside_for_open = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before ')' of 'for' statements.
+#
+# Overrides sp_inside_for.
+sp_inside_for_close = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between '((' or '))' of control statements.
+sp_sparen_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after ')' of control statements.
+sp_after_sparen = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between ')' and '{' of control statements.
+sp_sparen_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between 'do' and '{'.
+sp_do_brace_open = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between '}' and 'while'.
+sp_brace_close_while = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between 'while' and '('. Overrides sp_before_sparen.
+sp_while_paren_open = ignore # ignore/add/remove/force/not_defined
+
+# (D) Add or remove space between 'invariant' and '('.
+sp_invariant_paren = ignore # ignore/add/remove/force/not_defined
+
+# (D) Add or remove space after the ')' in 'invariant (C) c'.
+sp_after_invariant_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before empty statement ';' on 'if', 'for' and 'while'.
+sp_special_semi = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before ';'.
+#
+# Default: remove
+sp_before_semi = remove # ignore/add/remove/force/not_defined
+
+# Add or remove space before ';' in non-empty 'for' statements.
+sp_before_semi_for = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before a semicolon of an empty left part of a for
+# statement, as in 'for ( <here> ; ; )'.
+sp_before_semi_for_empty = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between the semicolons of an empty middle part of a for
+# statement, as in 'for ( ; <here> ; )'.
+sp_between_semi_for_empty = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after ';', except when followed by a comment.
+#
+# Default: add
+sp_after_semi = add # ignore/add/remove/force/not_defined
+
+# Add or remove space after ';' in non-empty 'for' statements.
+#
+# Default: force
+sp_after_semi_for = force # ignore/add/remove/force/not_defined
+
+# Add or remove space after the final semicolon of an empty part of a for
+# statement, as in 'for ( ; ; <here> )'.
+sp_after_semi_for_empty = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before '[' (except '[]').
+sp_before_square = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before '[' for a variable definition.
+#
+# Default: remove
+sp_before_vardef_square = remove # ignore/add/remove/force/not_defined
+
+# Add or remove space before '[' for asm block.
+sp_before_square_asm_block = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before '[]'.
+sp_before_squares = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before C++17 structured bindings.
+sp_cpp_before_struct_binding = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space inside a non-empty '[' and ']'.
+sp_inside_square = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space inside '[]'.
+sp_inside_square_empty = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space inside a non-empty Objective-C boxed array '@[' and
+# ']'. If set to ignore, sp_inside_square is used.
+sp_inside_square_oc_array = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after ',', i.e. 'a,b' vs. 'a, b'.
+sp_after_comma = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before ',', i.e. 'a,b' vs. 'a ,b'.
+#
+# Default: remove
+sp_before_comma = remove # ignore/add/remove/force/not_defined
+
+# (C#) Add or remove space between ',' and ']' in multidimensional array type
+# like 'int[,,]'.
+sp_after_mdatype_commas = ignore # ignore/add/remove/force/not_defined
+
+# (C#) Add or remove space between '[' and ',' in multidimensional array type
+# like 'int[,,]'.
+sp_before_mdatype_commas = ignore # ignore/add/remove/force/not_defined
+
+# (C#) Add or remove space between ',' in multidimensional array type
+# like 'int[,,]'.
+sp_between_mdatype_commas = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between an open parenthesis and comma,
+# i.e. '(,' vs. '( ,'.
+#
+# Default: force
+sp_paren_comma = force # ignore/add/remove/force/not_defined
+
+# Add or remove space between a type and ':'.
+sp_type_colon = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after the variadic '...' when preceded by a
+# non-punctuator.
+# The value REMOVE will be overridden with FORCE
+sp_after_ellipsis = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before the variadic '...' when preceded by a
+# non-punctuator.
+# The value REMOVE will be overridden with FORCE
+sp_before_ellipsis = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between a type and '...'.
+sp_type_ellipsis = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between a '*' and '...'.
+sp_ptr_type_ellipsis = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between ')' and '...'.
+sp_paren_ellipsis = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between '&&' and '...'.
+sp_byref_ellipsis = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between ')' and a qualifier such as 'const'.
+sp_paren_qualifier = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between ')' and 'noexcept'.
+sp_paren_noexcept = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after class ':'.
+sp_after_class_colon = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before class ':'.
+sp_before_class_colon = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after class constructor ':'.
+#
+# Default: add
+sp_after_constr_colon = add # ignore/add/remove/force/not_defined
+
+# Add or remove space before class constructor ':'.
+#
+# Default: add
+sp_before_constr_colon = add # ignore/add/remove/force/not_defined
+
+# Add or remove space before case ':'.
+#
+# Default: remove
+sp_before_case_colon = remove # ignore/add/remove/force/not_defined
+
+# Add or remove space between 'operator' and operator sign.
+sp_after_operator = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between the operator symbol and the open parenthesis, as
+# in 'operator ++('.
+sp_after_operator_sym = ignore # ignore/add/remove/force/not_defined
+
+# Overrides sp_after_operator_sym when the operator has no arguments, as in
+# 'operator *()'.
+sp_after_operator_sym_empty = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after C/D cast, i.e. 'cast(int)a' vs. 'cast(int) a' or
+# '(int)a' vs. '(int) a'.
+sp_after_cast = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove spaces inside cast parentheses.
+sp_inside_paren_cast = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between the type and open parenthesis in a C++ cast,
+# i.e. 'int(exp)' vs. 'int (exp)'.
+sp_cpp_cast_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between 'sizeof' and '('.
+sp_sizeof_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between 'sizeof' and '...'.
+sp_sizeof_ellipsis = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between 'sizeof...' and '('.
+sp_sizeof_ellipsis_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between '...' and a parameter pack.
+sp_ellipsis_parameter_pack = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between a parameter pack and '...'.
+sp_parameter_pack_ellipsis = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between 'decltype' and '('.
+sp_decltype_paren = ignore # ignore/add/remove/force/not_defined
+
+# (Pawn) Add or remove space after the tag keyword.
+sp_after_tag = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space inside enum '{' and '}'.
+sp_inside_braces_enum = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space inside struct/union '{' and '}'.
+sp_inside_braces_struct = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space inside Objective-C boxed dictionary '{' and '}'
+sp_inside_braces_oc_dict = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after open brace in an unnamed temporary
+# direct-list-initialization
+# if statement is a brace_init_lst
+# works only if sp_brace_brace is set to ignore.
+sp_after_type_brace_init_lst_open = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before close brace in an unnamed temporary
+# direct-list-initialization
+# if statement is a brace_init_lst
+# works only if sp_brace_brace is set to ignore.
+sp_before_type_brace_init_lst_close = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space inside an unnamed temporary direct-list-initialization
+# if statement is a brace_init_lst
+# works only if sp_brace_brace is set to ignore
+# works only if sp_before_type_brace_init_lst_close is set to ignore.
+sp_inside_type_brace_init_lst = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space inside '{' and '}'.
+sp_inside_braces = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space inside '{}'.
+sp_inside_braces_empty = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space around trailing return operator '->'.
+sp_trailing_return = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between return type and function name. A minimum of 1
+# is forced except for pointer return types.
+sp_type_func = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between type and open brace of an unnamed temporary
+# direct-list-initialization.
+sp_type_brace_init_lst = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between function name and '(' on function declaration.
+sp_func_proto_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between function name and '()' on function declaration
+# without parameters.
+sp_func_proto_paren_empty = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between function name and '(' with a typedef specifier.
+sp_func_type_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between alias name and '(' of a non-pointer function type typedef.
+sp_func_def_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between function name and '()' on function definition
+# without parameters.
+sp_func_def_paren_empty = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space inside empty function '()'.
+# Overrides sp_after_angle unless use_sp_after_angle_always is set to true.
+sp_inside_fparens = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space inside function '(' and ')'.
+sp_inside_fparen = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space inside the first parentheses in a function type, as in
+# 'void (*x)(...)'.
+sp_inside_tparen = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between the ')' and '(' in a function type, as in
+# 'void (*x)(...)'.
+sp_after_tparen_close = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between ']' and '(' when part of a function call.
+sp_square_fparen = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between ')' and '{' of function.
+sp_fparen_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between ')' and '{' of a function call in object
+# initialization.
+#
+# Overrides sp_fparen_brace.
+sp_fparen_brace_initializer = ignore # ignore/add/remove/force/not_defined
+
+# (Java) Add or remove space between ')' and '{{' of double brace initializer.
+sp_fparen_dbrace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between function name and '(' on function calls.
+sp_func_call_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between function name and '()' on function calls without
+# parameters. If set to ignore (the default), sp_func_call_paren is used.
+sp_func_call_paren_empty = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between the user function name and '(' on function
+# calls. You need to set a keyword to be a user function in the config file,
+# like:
+# set func_call_user tr _ i18n
+sp_func_call_user_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space inside user function '(' and ')'.
+sp_func_call_user_inside_fparen = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between nested parentheses with user functions,
+# i.e. '((' vs. '( ('.
+sp_func_call_user_paren_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between a constructor/destructor and the open
+# parenthesis.
+sp_func_class_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between a constructor without parameters or destructor
+# and '()'.
+sp_func_class_paren_empty = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after 'return'.
+#
+# Default: force
+sp_return = force # ignore/add/remove/force/not_defined
+
+# Add or remove space between 'return' and '('.
+sp_return_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between 'return' and '{'.
+sp_return_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between '__attribute__' and '('.
+sp_attribute_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between 'defined' and '(' in '#if defined (FOO)'.
+sp_defined_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between 'throw' and '(' in 'throw (something)'.
+sp_throw_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between 'throw' and anything other than '(' as in
+# '@throw [...];'.
+sp_after_throw = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between 'catch' and '(' in 'catch (something) { }'.
+# If set to ignore, sp_before_sparen is used.
+sp_catch_paren = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space between '@catch' and '('
+# in '@catch (something) { }'. If set to ignore, sp_catch_paren is used.
+sp_oc_catch_paren = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space before Objective-C protocol list
+# as in '@protocol Protocol<here><Protocol_A>' or '@interface MyClass : NSObject<here><MyProtocol>'.
+sp_before_oc_proto_list = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space between class name and '('
+# in '@interface className(categoryName)<ProtocolName>:BaseClass'
+sp_oc_classname_paren = ignore # ignore/add/remove/force/not_defined
+
+# (D) Add or remove space between 'version' and '('
+# in 'version (something) { }'. If set to ignore, sp_before_sparen is used.
+sp_version_paren = ignore # ignore/add/remove/force/not_defined
+
+# (D) Add or remove space between 'scope' and '('
+# in 'scope (something) { }'. If set to ignore, sp_before_sparen is used.
+sp_scope_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between 'super' and '(' in 'super (something)'.
+#
+# Default: remove
+sp_super_paren = remove # ignore/add/remove/force/not_defined
+
+# Add or remove space between 'this' and '(' in 'this (something)'.
+#
+# Default: remove
+sp_this_paren = remove # ignore/add/remove/force/not_defined
+
+# Add or remove space between a macro name and its definition.
+sp_macro = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between a macro function ')' and its definition.
+sp_macro_func = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between 'else' and '{' if on the same line.
+sp_else_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between '}' and 'else' if on the same line.
+sp_brace_else = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between '}' and the name of a typedef on the same line.
+sp_brace_typedef = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before the '{' of a 'catch' statement, if the '{' and
+# 'catch' are on the same line, as in 'catch (decl) <here> {'.
+sp_catch_brace = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space before the '{' of a '@catch' statement, if the '{'
+# and '@catch' are on the same line, as in '@catch (decl) <here> {'.
+# If set to ignore, sp_catch_brace is used.
+sp_oc_catch_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between '}' and 'catch' if on the same line.
+sp_brace_catch = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space between '}' and '@catch' if on the same line.
+# If set to ignore, sp_brace_catch is used.
+sp_oc_brace_catch = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between 'finally' and '{' if on the same line.
+sp_finally_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between '}' and 'finally' if on the same line.
+sp_brace_finally = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between 'try' and '{' if on the same line.
+sp_try_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between get/set and '{' if on the same line.
+sp_getset_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between a variable and '{' for C++ uniform
+# initialization.
+sp_word_brace_init_lst = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between a variable and '{' for a namespace.
+#
+# Default: add
+sp_word_brace_ns = add # ignore/add/remove/force/not_defined
+
+# Add or remove space before the '::' operator.
+sp_before_dc = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after the '::' operator.
+sp_after_dc = ignore # ignore/add/remove/force/not_defined
+
+# (D) Add or remove around the D named array initializer ':' operator.
+sp_d_array_colon = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after the '!' (not) unary operator.
+#
+# Default: remove
+sp_not = remove # ignore/add/remove/force/not_defined
+
+# Add or remove space between two '!' (not) unary operators.
+# If set to ignore, sp_not will be used.
+sp_not_not = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after the '~' (invert) unary operator.
+#
+# Default: remove
+sp_inv = remove # ignore/add/remove/force/not_defined
+
+# Add or remove space after the '&' (address-of) unary operator. This does not
+# affect the spacing after a '&' that is part of a type.
+#
+# Default: remove
+sp_addr = remove # ignore/add/remove/force/not_defined
+
+# Add or remove space around the '.' or '->' operators.
+#
+# Default: remove
+sp_member = remove # ignore/add/remove/force/not_defined
+
+# Add or remove space after the '*' (dereference) unary operator. This does
+# not affect the spacing after a '*' that is part of a type.
+#
+# Default: remove
+sp_deref = remove # ignore/add/remove/force/not_defined
+
+# Add or remove space after '+' or '-', as in 'x = -5' or 'y = +7'.
+#
+# Default: remove
+sp_sign = remove # ignore/add/remove/force/not_defined
+
+# Add or remove space between '++' and '--' the word to which it is being
+# applied, as in '(--x)' or 'y++;'.
+#
+# Default: remove
+sp_incdec = remove # ignore/add/remove/force/not_defined
+
+# Add or remove space before a backslash-newline at the end of a line.
+#
+# Default: add
+sp_before_nl_cont = add # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space after the scope '+' or '-', as in '-(void) foo;'
+# or '+(int) bar;'.
+sp_after_oc_scope = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space after the colon in message specs,
+# i.e. '-(int) f:(int) x;' vs. '-(int) f: (int) x;'.
+sp_after_oc_colon = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space before the colon in message specs,
+# i.e. '-(int) f: (int) x;' vs. '-(int) f : (int) x;'.
+sp_before_oc_colon = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space after the colon in immutable dictionary expression
+# 'NSDictionary *test = @{@"foo" :@"bar"};'.
+sp_after_oc_dict_colon = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space before the colon in immutable dictionary expression
+# 'NSDictionary *test = @{@"foo" :@"bar"};'.
+sp_before_oc_dict_colon = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space after the colon in message specs,
+# i.e. '[object setValue:1];' vs. '[object setValue: 1];'.
+sp_after_send_oc_colon = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space before the colon in message specs,
+# i.e. '[object setValue:1];' vs. '[object setValue :1];'.
+sp_before_send_oc_colon = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space after the (type) in message specs,
+# i.e. '-(int)f: (int) x;' vs. '-(int)f: (int)x;'.
+sp_after_oc_type = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space after the first (type) in message specs,
+# i.e. '-(int) f:(int)x;' vs. '-(int)f:(int)x;'.
+sp_after_oc_return_type = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space between '@selector' and '(',
+# i.e. '@selector(msgName)' vs. '@selector (msgName)'.
+# Also applies to '@protocol()' constructs.
+sp_after_oc_at_sel = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space between '@selector(x)' and the following word,
+# i.e. '@selector(foo) a:' vs. '@selector(foo)a:'.
+sp_after_oc_at_sel_parens = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space inside '@selector' parentheses,
+# i.e. '@selector(foo)' vs. '@selector( foo )'.
+# Also applies to '@protocol()' constructs.
+sp_inside_oc_at_sel_parens = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space before a block pointer caret,
+# i.e. '^int (int arg){...}' vs. ' ^int (int arg){...}'.
+sp_before_oc_block_caret = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space after a block pointer caret,
+# i.e. '^int (int arg){...}' vs. '^ int (int arg){...}'.
+sp_after_oc_block_caret = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space between the receiver and selector in a message,
+# as in '[receiver selector ...]'.
+sp_after_oc_msg_receiver = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space after '@property'.
+sp_after_oc_property = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space between '@synchronized' and the open parenthesis,
+# i.e. '@synchronized(foo)' vs. '@synchronized (foo)'.
+sp_after_oc_synchronized = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space around the ':' in 'b ? t : f'.
+sp_cond_colon = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before the ':' in 'b ? t : f'.
+#
+# Overrides sp_cond_colon.
+sp_cond_colon_before = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after the ':' in 'b ? t : f'.
+#
+# Overrides sp_cond_colon.
+sp_cond_colon_after = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space around the '?' in 'b ? t : f'.
+sp_cond_question = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before the '?' in 'b ? t : f'.
+#
+# Overrides sp_cond_question.
+sp_cond_question_before = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after the '?' in 'b ? t : f'.
+#
+# Overrides sp_cond_question.
+sp_cond_question_after = ignore # ignore/add/remove/force/not_defined
+
+# In the abbreviated ternary form '(a ?: b)', add or remove space between '?'
+# and ':'.
+#
+# Overrides all other sp_cond_* options.
+sp_cond_ternary_short = ignore # ignore/add/remove/force/not_defined
+
+# Fix the spacing between 'case' and the label. Only 'ignore' and 'force' make
+# sense here.
+sp_case_label = ignore # ignore/add/remove/force/not_defined
+
+# (D) Add or remove space around the D '..' operator.
+sp_range = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after ':' in a Java/C++11 range-based 'for',
+# as in 'for (Type var : <here> expr)'.
+sp_after_for_colon = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before ':' in a Java/C++11 range-based 'for',
+# as in 'for (Type var <here> : expr)'.
+sp_before_for_colon = ignore # ignore/add/remove/force/not_defined
+
+# (D) Add or remove space between 'extern' and '(' as in 'extern <here> (C)'.
+sp_extern_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after the opening of a C++ comment, as in '// <here> A'.
+sp_cmt_cpp_start = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space in a C++ region marker comment, as in '// <here> BEGIN'.
+# A region marker is defined as a comment which is not preceded by other text
+# (i.e. the comment is the first non-whitespace on the line), and which starts
+# with either 'BEGIN' or 'END'.
+#
+# Overrides sp_cmt_cpp_start.
+sp_cmt_cpp_region = ignore # ignore/add/remove/force/not_defined
+
+# If true, space added with sp_cmt_cpp_start will be added after Doxygen
+# sequences like '///', '///<', '//!' and '//!<'.
+sp_cmt_cpp_doxygen = false # true/false
+
+# If true, space added with sp_cmt_cpp_start will be added after Qt translator
+# or meta-data comments like '//:', '//=', and '//~'.
+sp_cmt_cpp_qttr = false # true/false
+
+# Add or remove space between #else or #endif and a trailing comment.
+sp_endif_cmt = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after 'new', 'delete' and 'delete[]'.
+sp_after_new = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between 'new' and '(' in 'new()'.
+sp_between_new_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between ')' and type in 'new(foo) BAR'.
+sp_after_newop_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space inside parenthesis of the new operator
+# as in 'new(foo) BAR'.
+sp_inside_newop_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after the open parenthesis of the new operator,
+# as in 'new(foo) BAR'.
+#
+# Overrides sp_inside_newop_paren.
+sp_inside_newop_paren_open = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before the close parenthesis of the new operator,
+# as in 'new(foo) BAR'.
+#
+# Overrides sp_inside_newop_paren.
+sp_inside_newop_paren_close = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before a trailing comment.
+sp_before_tr_cmt = ignore # ignore/add/remove/force/not_defined
+
+# Number of spaces before a trailing comment.
+sp_num_before_tr_cmt = 0 # unsigned number
+
+# Add or remove space before an embedded comment.
+#
+# Default: force
+sp_before_emb_cmt = force # ignore/add/remove/force/not_defined
+
+# Number of spaces before an embedded comment.
+#
+# Default: 1
+sp_num_before_emb_cmt = 1 # unsigned number
+
+# Add or remove space after an embedded comment.
+#
+# Default: force
+sp_after_emb_cmt = force # ignore/add/remove/force/not_defined
+
+# Number of spaces after an embedded comment.
+#
+# Default: 1
+sp_num_after_emb_cmt = 1 # unsigned number
+
+# (Java) Add or remove space between an annotation and the open parenthesis.
+sp_annotation_paren = ignore # ignore/add/remove/force/not_defined
+
+# If true, vbrace tokens are dropped to the previous token and skipped.
+sp_skip_vbrace_tokens = false # true/false
+
+# Add or remove space after 'noexcept'.
+sp_after_noexcept = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after '_'.
+sp_vala_after_translation = ignore # ignore/add/remove/force/not_defined
+
+# If true, a <TAB> is inserted after #define.
+force_tab_after_define = false # true/false
+
+#
+# Indenting options
+#
+
+# The number of columns to indent per level. Usually 2, 3, 4, or 8.
+#
+# Default: 8
+indent_columns = 8 # unsigned number
+
+# Whether to ignore indent for the first continuation line. Subsequent
+# continuation lines will still be indented to match the first.
+indent_ignore_first_continue = false # true/false
+
+# The continuation indent. If non-zero, this overrides the indent of '(', '['
+# and '=' continuation indents. Negative values are OK; negative value is
+# absolute and not increased for each '(' or '[' level.
+#
+# For FreeBSD, this is set to 4.
+# Requires indent_ignore_first_continue=false.
+indent_continue = 0 # number
+
+# The continuation indent, only for class header line(s). If non-zero, this
+# overrides the indent of 'class' continuation indents.
+# Requires indent_ignore_first_continue=false.
+indent_continue_class_head = 0 # unsigned number
+
+# Whether to indent empty lines (i.e. lines which contain only spaces before
+# the newline character).
+indent_single_newlines = false # true/false
+
+# The continuation indent for func_*_param if they are true. If non-zero, this
+# overrides the indent.
+indent_param = 0 # unsigned number
+
+# How to use tabs when indenting code.
+#
+# 0: Spaces only
+# 1: Indent with tabs to brace level, align with spaces (default)
+# 2: Indent and align with tabs, using spaces when not on a tabstop
+#
+# Default: 1
+indent_with_tabs = 1 # unsigned number
+
+# Whether to indent comments that are not at a brace level with tabs on a
+# tabstop. Requires indent_with_tabs=2. If false, will use spaces.
+indent_cmt_with_tabs = false # true/false
+
+# Whether to indent strings broken by '\' so that they line up.
+indent_align_string = false # true/false
+
+# The number of spaces to indent multi-line XML strings.
+# Requires indent_align_string=true.
+indent_xml_string = 0 # unsigned number
+
+# Spaces to indent '{' from level.
+indent_brace = 0 # unsigned number
+
+# Whether braces are indented to the body level.
+indent_braces = false # true/false
+
+# Whether to disable indenting function braces if indent_braces=true.
+indent_braces_no_func = false # true/false
+
+# Whether to disable indenting class braces if indent_braces=true.
+indent_braces_no_class = false # true/false
+
+# Whether to disable indenting struct braces if indent_braces=true.
+indent_braces_no_struct = false # true/false
+
+# Whether to indent based on the size of the brace parent,
+# i.e. 'if' => 3 spaces, 'for' => 4 spaces, etc.
+indent_brace_parent = false # true/false
+
+# Whether to indent based on the open parenthesis instead of the open brace
+# in '({\n'.
+indent_paren_open_brace = false # true/false
+
+# (C#) Whether to indent the brace of a C# delegate by another level.
+indent_cs_delegate_brace = false # true/false
+
+# (C#) Whether to indent a C# delegate (to handle delegates with no brace) by
+# another level.
+indent_cs_delegate_body = false # true/false
+
+# Whether to indent the body of a 'namespace'.
+indent_namespace = false # true/false
+
+# Whether to indent only the first namespace, and not any nested namespaces.
+# Requires indent_namespace=true.
+indent_namespace_single_indent = false # true/false
+
+# The number of spaces to indent a namespace block.
+# If set to zero, use the value indent_columns
+indent_namespace_level = 0 # unsigned number
+
+# If the body of the namespace is longer than this number, it won't be
+# indented. Requires indent_namespace=true. 0 means no limit.
+indent_namespace_limit = 0 # unsigned number
+
+# Whether to indent only in inner namespaces (nested in other namespaces).
+# Requires indent_namespace=true.
+indent_namespace_inner_only = false # true/false
+
+# Whether the 'extern "C"' body is indented.
+indent_extern = false # true/false
+
+# Whether the 'class' body is indented.
+indent_class = false # true/false
+
+# Whether to ignore indent for the leading base class colon.
+indent_ignore_before_class_colon = false # true/false
+
+# Additional indent before the leading base class colon.
+# Negative values decrease indent down to the first column.
+# Requires indent_ignore_before_class_colon=false and a newline break before
+# the colon (see pos_class_colon and nl_class_colon)
+indent_before_class_colon = 0 # number
+
+# Whether to indent the stuff after a leading base class colon.
+indent_class_colon = false # true/false
+
+# Whether to indent based on a class colon instead of the stuff after the
+# colon. Requires indent_class_colon=true.
+indent_class_on_colon = false # true/false
+
+# Whether to ignore indent for a leading class initializer colon.
+indent_ignore_before_constr_colon = false # true/false
+
+# Whether to indent the stuff after a leading class initializer colon.
+indent_constr_colon = false # true/false
+
+# Virtual indent from the ':' for leading member initializers.
+#
+# Default: 2
+indent_ctor_init_leading = 2 # unsigned number
+
+# Virtual indent from the ':' for following member initializers.
+#
+# Default: 2
+indent_ctor_init_following = 2 # unsigned number
+
+# Additional indent for constructor initializer list.
+# Negative values decrease indent down to the first column.
+indent_ctor_init = 0 # number
+
+# Whether to indent 'if' following 'else' as a new block under the 'else'.
+# If false, 'else\nif' is treated as 'else if' for indenting purposes.
+indent_else_if = false # true/false
+
+# Amount to indent variable declarations after a open brace.
+#
+# <0: Relative
+# >=0: Absolute
+indent_var_def_blk = 0 # number
+
+# Whether to indent continued variable declarations instead of aligning.
+indent_var_def_cont = false # true/false
+
+# How to indent continued shift expressions ('<<' and '>>').
+# Set align_left_shift=false when using this.
+# 0: Align shift operators instead of indenting them (default)
+# 1: Indent by one level
+# -1: Preserve original indentation
+indent_shift = 0 # number
+
+# Whether to force indentation of function definitions to start in column 1.
+indent_func_def_force_col1 = false # true/false
+
+# Whether to indent continued function call parameters one indent level,
+# rather than aligning parameters under the open parenthesis.
+indent_func_call_param = false # true/false
+
+# Whether to indent continued function definition parameters one indent level,
+# rather than aligning parameters under the open parenthesis.
+indent_func_def_param = false # true/false
+
+# for function definitions, only if indent_func_def_param is false
+# Allows to align params when appropriate and indent them when not
+# behave as if it was true if paren position is more than this value
+# if paren position is more than the option value
+indent_func_def_param_paren_pos_threshold = 0 # unsigned number
+
+# Whether to indent continued function call prototype one indent level,
+# rather than aligning parameters under the open parenthesis.
+indent_func_proto_param = false # true/false
+
+# Whether to indent continued function call declaration one indent level,
+# rather than aligning parameters under the open parenthesis.
+indent_func_class_param = false # true/false
+
+# Whether to indent continued class variable constructors one indent level,
+# rather than aligning parameters under the open parenthesis.
+indent_func_ctor_var_param = false # true/false
+
+# Whether to indent continued template parameter list one indent level,
+# rather than aligning parameters under the open parenthesis.
+indent_template_param = false # true/false
+
+# Double the indent for indent_func_xxx_param options.
+# Use both values of the options indent_columns and indent_param.
+indent_func_param_double = false # true/false
+
+# Indentation column for standalone 'const' qualifier on a function
+# prototype.
+indent_func_const = 0 # unsigned number
+
+# Indentation column for standalone 'throw' qualifier on a function
+# prototype.
+indent_func_throw = 0 # unsigned number
+
+# How to indent within a macro followed by a brace on the same line
+# This allows reducing the indent in macros that have (for example)
+# `do { ... } while (0)` blocks bracketing them.
+#
+# true: add an indent for the brace on the same line as the macro
+# false: do not add an indent for the brace on the same line as the macro
+#
+# Default: true
+indent_macro_brace = true # true/false
+
+# The number of spaces to indent a continued '->' or '.'.
+# Usually set to 0, 1, or indent_columns.
+indent_member = 0 # unsigned number
+
+# Whether lines broken at '.' or '->' should be indented by a single indent.
+# The indent_member option will not be effective if this is set to true.
+indent_member_single = false # true/false
+
+# Spaces to indent single line ('//') comments on lines before code.
+indent_single_line_comments_before = 0 # unsigned number
+
+# Spaces to indent single line ('//') comments on lines after code.
+indent_single_line_comments_after = 0 # unsigned number
+
+# When opening a paren for a control statement (if, for, while, etc), increase
+# the indent level by this value. Negative values decrease the indent level.
+indent_sparen_extra = 0 # number
+
+# Whether to indent trailing single line ('//') comments relative to the code
+# instead of trying to keep the same absolute column.
+indent_relative_single_line_comments = false # true/false
+
+# Spaces to indent 'case' from 'switch'. Usually 0 or indent_columns.
+# It might be wise to choose the same value for the option indent_case_brace.
+indent_switch_case = 0 # unsigned number
+
+# Spaces to indent the body of a 'switch' before any 'case'.
+# Usually the same as indent_columns or indent_switch_case.
+indent_switch_body = 0 # unsigned number
+
+# Whether to ignore indent for '{' following 'case'.
+indent_ignore_case_brace = false # true/false
+
+# Spaces to indent '{' from 'case'. By default, the brace will appear under
+# the 'c' in case. Usually set to 0 or indent_columns. Negative values are OK.
+# It might be wise to choose the same value for the option indent_switch_case.
+indent_case_brace = 0 # number
+
+# indent 'break' with 'case' from 'switch'.
+indent_switch_break_with_case = false # true/false
+
+# Whether to indent preprocessor statements inside of switch statements.
+#
+# Default: true
+indent_switch_pp = true # true/false
+
+# Spaces to shift the 'case' line, without affecting any other lines.
+# Usually 0.
+indent_case_shift = 0 # unsigned number
+
+# Whether to align comments before 'case' with the 'case'.
+#
+# Default: true
+indent_case_comment = true # true/false
+
+# Whether to indent comments not found in first column.
+#
+# Default: true
+indent_comment = true # true/false
+
+# Whether to indent comments found in first column.
+indent_col1_comment = false # true/false
+
+# Whether to indent multi string literal in first column.
+indent_col1_multi_string_literal = false # true/false
+
+# Align comments on adjacent lines that are this many columns apart or less.
+#
+# Default: 3
+indent_comment_align_thresh = 3 # unsigned number
+
+# Whether to ignore indent for goto labels.
+indent_ignore_label = false # true/false
+
+# How to indent goto labels. Requires indent_ignore_label=false.
+#
+# >0: Absolute column where 1 is the leftmost column
+# <=0: Subtract from brace indent
+#
+# Default: 1
+indent_label = 1 # number
+
+# How to indent access specifiers that are followed by a
+# colon.
+#
+# >0: Absolute column where 1 is the leftmost column
+# <=0: Subtract from brace indent
+#
+# Default: 1
+indent_access_spec = 1 # number
+
+# Whether to indent the code after an access specifier by one level.
+# If true, this option forces 'indent_access_spec=0'.
+indent_access_spec_body = false # true/false
+
+# If an open parenthesis is followed by a newline, whether to indent the next
+# line so that it lines up after the open parenthesis (not recommended).
+indent_paren_nl = false # true/false
+
+# How to indent a close parenthesis after a newline.
+#
+# 0: Indent to body level (default)
+# 1: Align under the open parenthesis
+# 2: Indent to the brace level
+# -1: Preserve original indentation
+indent_paren_close = 0 # number
+
+# Whether to indent the open parenthesis of a function definition,
+# if the parenthesis is on its own line.
+indent_paren_after_func_def = false # true/false
+
+# Whether to indent the open parenthesis of a function declaration,
+# if the parenthesis is on its own line.
+indent_paren_after_func_decl = false # true/false
+
+# Whether to indent the open parenthesis of a function call,
+# if the parenthesis is on its own line.
+indent_paren_after_func_call = false # true/false
+
+# How to indent a comma when inside braces.
+# 0: Indent by one level (default)
+# 1: Align under the open brace
+# -1: Preserve original indentation
+indent_comma_brace = 0 # number
+
+# How to indent a comma when inside parentheses.
+# 0: Indent by one level (default)
+# 1: Align under the open parenthesis
+# -1: Preserve original indentation
+indent_comma_paren = 0 # number
+
+# How to indent a Boolean operator when inside parentheses.
+# 0: Indent by one level (default)
+# 1: Align under the open parenthesis
+# -1: Preserve original indentation
+indent_bool_paren = 0 # number
+
+# Whether to ignore the indentation of a Boolean operator when outside
+# parentheses.
+indent_ignore_bool = false # true/false
+
+# Whether to ignore the indentation of an arithmetic operator.
+indent_ignore_arith = false # true/false
+
+# Whether to indent a semicolon when inside a for parenthesis.
+# If true, aligns under the open for parenthesis.
+indent_semicolon_for_paren = false # true/false
+
+# Whether to ignore the indentation of a semicolon outside of a 'for'
+# statement.
+indent_ignore_semicolon = false # true/false
+
+# Whether to align the first expression to following ones
+# if indent_bool_paren=1.
+indent_first_bool_expr = false # true/false
+
+# Whether to align the first expression to following ones
+# if indent_semicolon_for_paren=true.
+indent_first_for_expr = false # true/false
+
+# If an open square is followed by a newline, whether to indent the next line
+# so that it lines up after the open square (not recommended).
+indent_square_nl = false # true/false
+
+# (ESQL/C) Whether to preserve the relative indent of 'EXEC SQL' bodies.
+indent_preserve_sql = false # true/false
+
+# Whether to ignore the indentation of an assignment operator.
+indent_ignore_assign = false # true/false
+
+# Whether to align continued statements at the '='. If false or if the '=' is
+# followed by a newline, the next line is indent one tab.
+#
+# Default: true
+indent_align_assign = true # true/false
+
+# If true, the indentation of the chunks after a '=' sequence will be set at
+# LHS token indentation column before '='.
+indent_off_after_assign = false # true/false
+
+# Whether to align continued statements at the '('. If false or the '(' is
+# followed by a newline, the next line indent is one tab.
+#
+# Default: true
+indent_align_paren = true # true/false
+
+# (OC) Whether to indent Objective-C code inside message selectors.
+indent_oc_inside_msg_sel = false # true/false
+
+# (OC) Whether to indent Objective-C blocks at brace level instead of usual
+# rules.
+indent_oc_block = false # true/false
+
+# (OC) Indent for Objective-C blocks in a message relative to the parameter
+# name.
+#
+# =0: Use indent_oc_block rules
+# >0: Use specified number of spaces to indent
+indent_oc_block_msg = 0 # unsigned number
+
+# (OC) Minimum indent for subsequent parameters
+indent_oc_msg_colon = 0 # unsigned number
+
+# (OC) Whether to prioritize aligning with initial colon (and stripping spaces
+# from lines, if necessary).
+#
+# Default: true
+indent_oc_msg_prioritize_first_colon = true # true/false
+
+# (OC) Whether to indent blocks the way that Xcode does by default
+# (from the keyword if the parameter is on its own line; otherwise, from the
+# previous indentation level). Requires indent_oc_block_msg=true.
+indent_oc_block_msg_xcode_style = false # true/false
+
+# (OC) Whether to indent blocks from where the brace is, relative to a
+# message keyword. Requires indent_oc_block_msg=true.
+indent_oc_block_msg_from_keyword = false # true/false
+
+# (OC) Whether to indent blocks from where the brace is, relative to a message
+# colon. Requires indent_oc_block_msg=true.
+indent_oc_block_msg_from_colon = false # true/false
+
+# (OC) Whether to indent blocks from where the block caret is.
+# Requires indent_oc_block_msg=true.
+indent_oc_block_msg_from_caret = false # true/false
+
+# (OC) Whether to indent blocks from where the brace caret is.
+# Requires indent_oc_block_msg=true.
+indent_oc_block_msg_from_brace = false # true/false
+
+# When indenting after virtual brace open and newline add further spaces to
+# reach this minimum indent.
+indent_min_vbrace_open = 0 # unsigned number
+
+# Whether to add further spaces after regular indent to reach next tabstop
+# when indenting after virtual brace open and newline.
+indent_vbrace_open_on_tabstop = false # true/false
+
+# How to indent after a brace followed by another token (not a newline).
+# true: indent all contained lines to match the token
+# false: indent all contained lines to match the brace
+#
+# Default: true
+indent_token_after_brace = true # true/false
+
+# Whether to indent the body of a C++11 lambda.
+indent_cpp_lambda_body = false # true/false
+
+# How to indent compound literals that are being returned.
+# true: add both the indent from return & the compound literal open brace
+# (i.e. 2 indent levels)
+# false: only indent 1 level, don't add the indent for the open brace, only
+# add the indent for the return.
+#
+# Default: true
+indent_compound_literal_return = true # true/false
+
+# (C#) Whether to indent a 'using' block if no braces are used.
+#
+# Default: true
+indent_using_block = true # true/false
+
+# How to indent the continuation of ternary operator.
+#
+# 0: Off (default)
+# 1: When the `if_false` is a continuation, indent it under `if_false`
+# 2: When the `:` is a continuation, indent it under `?`
+indent_ternary_operator = 0 # unsigned number
+
+# Whether to indent the statements inside ternary operator.
+indent_inside_ternary_operator = false # true/false
+
+# If true, the indentation of the chunks after a `return` sequence will be set at return indentation column.
+indent_off_after_return = false # true/false
+
+# If true, the indentation of the chunks after a `return new` sequence will be set at return indentation column.
+indent_off_after_return_new = false # true/false
+
+# If true, the tokens after return are indented with regular single indentation. By default (false) the indentation is after the return token.
+indent_single_after_return = false # true/false
+
+# Whether to ignore indent and alignment for 'asm' blocks (i.e. assume they
+# have their own indentation).
+indent_ignore_asm_block = false # true/false
+
+# Don't indent the close parenthesis of a function definition,
+# if the parenthesis is on its own line.
+donot_indent_func_def_close_paren = false # true/false
+
+#
+# Newline adding and removing options
+#
+
+# Whether to collapse empty blocks between '{' and '}'.
+# If true, overrides nl_inside_empty_func
+nl_collapse_empty_body = false # true/false
+
+# Don't split one-line braced assignments, as in 'foo_t f = { 1, 2 };'.
+nl_assign_leave_one_liners = false # true/false
+
+# Don't split one-line braced statements inside a 'class xx { }' body.
+nl_class_leave_one_liners = false # true/false
+
+# Don't split one-line enums, as in 'enum foo { BAR = 15 };'
+nl_enum_leave_one_liners = false # true/false
+
+# Don't split one-line get or set functions.
+nl_getset_leave_one_liners = false # true/false
+
+# (C#) Don't split one-line property get or set functions.
+nl_cs_property_leave_one_liners = false # true/false
+
+# Don't split one-line function definitions, as in 'int foo() { return 0; }'.
+# might modify nl_func_type_name
+nl_func_leave_one_liners = false # true/false
+
+# Don't split one-line C++11 lambdas, as in '[]() { return 0; }'.
+nl_cpp_lambda_leave_one_liners = false # true/false
+
+# Don't split one-line if/else statements, as in 'if(...) b++;'.
+nl_if_leave_one_liners = false # true/false
+
+# Don't split one-line while statements, as in 'while(...) b++;'.
+nl_while_leave_one_liners = false # true/false
+
+# Don't split one-line do statements, as in 'do { b++; } while(...);'.
+nl_do_leave_one_liners = false # true/false
+
+# Don't split one-line for statements, as in 'for(...) b++;'.
+nl_for_leave_one_liners = false # true/false
+
+# (OC) Don't split one-line Objective-C messages.
+nl_oc_msg_leave_one_liner = false # true/false
+
+# (OC) Add or remove newline between method declaration and '{'.
+nl_oc_mdef_brace = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove newline between Objective-C block signature and '{'.
+nl_oc_block_brace = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove blank line before '@interface' statement.
+nl_oc_before_interface = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove blank line before '@implementation' statement.
+nl_oc_before_implementation = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove blank line before '@end' statement.
+nl_oc_before_end = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove newline between '@interface' and '{'.
+nl_oc_interface_brace = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove newline between '@implementation' and '{'.
+nl_oc_implementation_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newlines at the start of the file.
+nl_start_of_file = ignore # ignore/add/remove/force/not_defined
+
+# The minimum number of newlines at the start of the file (only used if
+# nl_start_of_file is 'add' or 'force').
+nl_start_of_file_min = 0 # unsigned number
+
+# Add or remove newline at the end of the file.
+nl_end_of_file = ignore # ignore/add/remove/force/not_defined
+
+# The minimum number of newlines at the end of the file (only used if
+# nl_end_of_file is 'add' or 'force').
+nl_end_of_file_min = 0 # unsigned number
+
+# Add or remove newline between '=' and '{'.
+nl_assign_brace = ignore # ignore/add/remove/force/not_defined
+
+# (D) Add or remove newline between '=' and '['.
+nl_assign_square = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between '[]' and '{'.
+nl_tsquare_brace = ignore # ignore/add/remove/force/not_defined
+
+# (D) Add or remove newline after '= ['. Will also affect the newline before
+# the ']'.
+nl_after_square_assign = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between a function call's ')' and '{', as in
+# 'list_for_each(item, &list) { }'.
+nl_fcall_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between 'enum' and '{'.
+nl_enum_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between 'enum' and 'class'.
+nl_enum_class = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between 'enum class' and the identifier.
+nl_enum_class_identifier = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between 'enum class' type and ':'.
+nl_enum_identifier_colon = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between 'enum class identifier :' and type.
+nl_enum_colon_type = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between 'struct and '{'.
+nl_struct_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between 'union' and '{'.
+nl_union_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between 'if' and '{'.
+nl_if_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between '}' and 'else'.
+nl_brace_else = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between 'else if' and '{'. If set to ignore,
+# nl_if_brace is used instead.
+nl_elseif_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between 'else' and '{'.
+nl_else_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between 'else' and 'if'.
+nl_else_if = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline before '{' opening brace
+nl_before_opening_brace_func_class_def = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline before 'if'/'else if' closing parenthesis.
+nl_before_if_closing_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between '}' and 'finally'.
+nl_brace_finally = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between 'finally' and '{'.
+nl_finally_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between 'try' and '{'.
+nl_try_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between get/set and '{'.
+nl_getset_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between 'for' and '{'.
+nl_for_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline before the '{' of a 'catch' statement, as in
+# 'catch (decl) <here> {'.
+nl_catch_brace = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove newline before the '{' of a '@catch' statement, as in
+# '@catch (decl) <here> {'. If set to ignore, nl_catch_brace is used.
+nl_oc_catch_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between '}' and 'catch'.
+nl_brace_catch = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove newline between '}' and '@catch'. If set to ignore,
+# nl_brace_catch is used.
+nl_oc_brace_catch = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between '}' and ']'.
+nl_brace_square = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between '}' and ')' in a function invocation.
+nl_brace_fparen = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between 'while' and '{'.
+nl_while_brace = ignore # ignore/add/remove/force/not_defined
+
+# (D) Add or remove newline between 'scope (x)' and '{'.
+nl_scope_brace = ignore # ignore/add/remove/force/not_defined
+
+# (D) Add or remove newline between 'unittest' and '{'.
+nl_unittest_brace = ignore # ignore/add/remove/force/not_defined
+
+# (D) Add or remove newline between 'version (x)' and '{'.
+nl_version_brace = ignore # ignore/add/remove/force/not_defined
+
+# (C#) Add or remove newline between 'using' and '{'.
+nl_using_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between two open or close braces. Due to general
+# newline/brace handling, REMOVE may not work.
+nl_brace_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between 'do' and '{'.
+nl_do_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between '}' and 'while' of 'do' statement.
+nl_brace_while = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between 'switch' and '{'.
+nl_switch_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between 'synchronized' and '{'.
+nl_synchronized_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add a newline between ')' and '{' if the ')' is on a different line than the
+# if/for/etc.
+#
+# Overrides nl_for_brace, nl_if_brace, nl_switch_brace, nl_while_switch and
+# nl_catch_brace.
+nl_multi_line_cond = false # true/false
+
+# Add a newline after '(' if an if/for/while/switch condition spans multiple
+# lines
+nl_multi_line_sparen_open = ignore # ignore/add/remove/force/not_defined
+
+# Add a newline before ')' if an if/for/while/switch condition spans multiple
+# lines. Overrides nl_before_if_closing_paren if both are specified.
+nl_multi_line_sparen_close = ignore # ignore/add/remove/force/not_defined
+
+# Force a newline in a define after the macro name for multi-line defines.
+nl_multi_line_define = false # true/false
+
+# Whether to add a newline before 'case', and a blank line before a 'case'
+# statement that follows a ';' or '}'.
+nl_before_case = false # true/false
+
+# Whether to add a newline after a 'case' statement.
+nl_after_case = false # true/false
+
+# Add or remove newline between a case ':' and '{'.
+#
+# Overrides nl_after_case.
+nl_case_colon_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between ')' and 'throw'.
+nl_before_throw = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between 'namespace' and '{'.
+nl_namespace_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline after 'template<...>' of a template class.
+nl_template_class = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline after 'template<...>' of a template class declaration.
+#
+# Overrides nl_template_class.
+nl_template_class_decl = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline after 'template<>' of a specialized class declaration.
+#
+# Overrides nl_template_class_decl.
+nl_template_class_decl_special = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline after 'template<...>' of a template class definition.
+#
+# Overrides nl_template_class.
+nl_template_class_def = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline after 'template<>' of a specialized class definition.
+#
+# Overrides nl_template_class_def.
+nl_template_class_def_special = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline after 'template<...>' of a template function.
+nl_template_func = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline after 'template<...>' of a template function
+# declaration.
+#
+# Overrides nl_template_func.
+nl_template_func_decl = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline after 'template<>' of a specialized function
+# declaration.
+#
+# Overrides nl_template_func_decl.
+nl_template_func_decl_special = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline after 'template<...>' of a template function
+# definition.
+#
+# Overrides nl_template_func.
+nl_template_func_def = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline after 'template<>' of a specialized function
+# definition.
+#
+# Overrides nl_template_func_def.
+nl_template_func_def_special = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline after 'template<...>' of a template variable.
+nl_template_var = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between 'template<...>' and 'using' of a templated
+# type alias.
+nl_template_using = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between 'class' and '{'.
+nl_class_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline before or after (depending on pos_class_comma,
+# may not be IGNORE) each',' in the base class list.
+nl_class_init_args = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline after each ',' in the constructor member
+# initialization. Related to nl_constr_colon, pos_constr_colon and
+# pos_constr_comma.
+nl_constr_init_args = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline before first element, after comma, and after last
+# element, in 'enum'.
+nl_enum_own_lines = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between return type and function name in a function
+# definition.
+# might be modified by nl_func_leave_one_liners
+nl_func_type_name = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between return type and function name inside a class
+# definition. If set to ignore, nl_func_type_name or nl_func_proto_type_name
+# is used instead.
+nl_func_type_name_class = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between class specification and '::'
+# in 'void A::f() { }'. Only appears in separate member implementation (does
+# not appear with in-line implementation).
+nl_func_class_scope = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between function scope and name, as in
+# 'void A :: <here> f() { }'.
+nl_func_scope_name = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between return type and function name in a prototype.
+nl_func_proto_type_name = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between a function name and the opening '(' in the
+# declaration.
+nl_func_paren = ignore # ignore/add/remove/force/not_defined
+
+# Overrides nl_func_paren for functions with no parameters.
+nl_func_paren_empty = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between a function name and the opening '(' in the
+# definition.
+nl_func_def_paren = ignore # ignore/add/remove/force/not_defined
+
+# Overrides nl_func_def_paren for functions with no parameters.
+nl_func_def_paren_empty = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between a function name and the opening '(' in the
+# call.
+nl_func_call_paren = ignore # ignore/add/remove/force/not_defined
+
+# Overrides nl_func_call_paren for functions with no parameters.
+nl_func_call_paren_empty = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline after '(' in a function declaration.
+nl_func_decl_start = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline after '(' in a function definition.
+nl_func_def_start = ignore # ignore/add/remove/force/not_defined
+
+# Overrides nl_func_decl_start when there is only one parameter.
+nl_func_decl_start_single = ignore # ignore/add/remove/force/not_defined
+
+# Overrides nl_func_def_start when there is only one parameter.
+nl_func_def_start_single = ignore # ignore/add/remove/force/not_defined
+
+# Whether to add a newline after '(' in a function declaration if '(' and ')'
+# are in different lines. If false, nl_func_decl_start is used instead.
+nl_func_decl_start_multi_line = false # true/false
+
+# Whether to add a newline after '(' in a function definition if '(' and ')'
+# are in different lines. If false, nl_func_def_start is used instead.
+nl_func_def_start_multi_line = false # true/false
+
+# Add or remove newline after each ',' in a function declaration.
+nl_func_decl_args = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline after each ',' in a function definition.
+nl_func_def_args = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline after each ',' in a function call.
+nl_func_call_args = ignore # ignore/add/remove/force/not_defined
+
+# Whether to add a newline after each ',' in a function declaration if '('
+# and ')' are in different lines. If false, nl_func_decl_args is used instead.
+nl_func_decl_args_multi_line = false # true/false
+
+# Whether to add a newline after each ',' in a function definition if '('
+# and ')' are in different lines. If false, nl_func_def_args is used instead.
+nl_func_def_args_multi_line = false # true/false
+
+# Add or remove newline before the ')' in a function declaration.
+nl_func_decl_end = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline before the ')' in a function definition.
+nl_func_def_end = ignore # ignore/add/remove/force/not_defined
+
+# Overrides nl_func_decl_end when there is only one parameter.
+nl_func_decl_end_single = ignore # ignore/add/remove/force/not_defined
+
+# Overrides nl_func_def_end when there is only one parameter.
+nl_func_def_end_single = ignore # ignore/add/remove/force/not_defined
+
+# Whether to add a newline before ')' in a function declaration if '(' and ')'
+# are in different lines. If false, nl_func_decl_end is used instead.
+nl_func_decl_end_multi_line = false # true/false
+
+# Whether to add a newline before ')' in a function definition if '(' and ')'
+# are in different lines. If false, nl_func_def_end is used instead.
+nl_func_def_end_multi_line = false # true/false
+
+# Add or remove newline between '()' in a function declaration.
+nl_func_decl_empty = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between '()' in a function definition.
+nl_func_def_empty = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between '()' in a function call.
+nl_func_call_empty = ignore # ignore/add/remove/force/not_defined
+
+# Whether to add a newline after '(' in a function call,
+# has preference over nl_func_call_start_multi_line.
+nl_func_call_start = ignore # ignore/add/remove/force/not_defined
+
+# Whether to add a newline before ')' in a function call.
+nl_func_call_end = ignore # ignore/add/remove/force/not_defined
+
+# Whether to add a newline after '(' in a function call if '(' and ')' are in
+# different lines.
+nl_func_call_start_multi_line = false # true/false
+
+# Whether to add a newline after each ',' in a function call if '(' and ')'
+# are in different lines.
+nl_func_call_args_multi_line = false # true/false
+
+# Whether to add a newline before ')' in a function call if '(' and ')' are in
+# different lines.
+nl_func_call_end_multi_line = false # true/false
+
+# Whether to respect nl_func_call_XXX option in case of closure args.
+nl_func_call_args_multi_line_ignore_closures = false # true/false
+
+# Whether to add a newline after '<' of a template parameter list.
+nl_template_start = false # true/false
+
+# Whether to add a newline after each ',' in a template parameter list.
+nl_template_args = false # true/false
+
+# Whether to add a newline before '>' of a template parameter list.
+nl_template_end = false # true/false
+
+# (OC) Whether to put each Objective-C message parameter on a separate line.
+# See nl_oc_msg_leave_one_liner.
+nl_oc_msg_args = false # true/false
+
+# Add or remove newline between function signature and '{'.
+nl_fdef_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between function signature and '{',
+# if signature ends with ')'. Overrides nl_fdef_brace.
+nl_fdef_brace_cond = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between C++11 lambda signature and '{'.
+nl_cpp_ldef_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between 'return' and the return expression.
+nl_return_expr = ignore # ignore/add/remove/force/not_defined
+
+# Whether to add a newline after semicolons, except in 'for' statements.
+nl_after_semicolon = false # true/false
+
+# (Java) Add or remove newline between the ')' and '{{' of the double brace
+# initializer.
+nl_paren_dbrace_open = ignore # ignore/add/remove/force/not_defined
+
+# Whether to add a newline after the type in an unnamed temporary
+# direct-list-initialization, better:
+# before a direct-list-initialization.
+nl_type_brace_init_lst = ignore # ignore/add/remove/force/not_defined
+
+# Whether to add a newline after the open brace in an unnamed temporary
+# direct-list-initialization.
+nl_type_brace_init_lst_open = ignore # ignore/add/remove/force/not_defined
+
+# Whether to add a newline before the close brace in an unnamed temporary
+# direct-list-initialization.
+nl_type_brace_init_lst_close = ignore # ignore/add/remove/force/not_defined
+
+# Whether to add a newline before '{'.
+nl_before_brace_open = false # true/false
+
+# Whether to add a newline after '{'.
+nl_after_brace_open = false # true/false
+
+# Whether to add a newline between the open brace and a trailing single-line
+# comment. Requires nl_after_brace_open=true.
+nl_after_brace_open_cmt = false # true/false
+
+# Whether to add a newline after a virtual brace open with a non-empty body.
+# These occur in un-braced if/while/do/for statement bodies.
+nl_after_vbrace_open = false # true/false
+
+# Whether to add a newline after a virtual brace open with an empty body.
+# These occur in un-braced if/while/do/for statement bodies.
+nl_after_vbrace_open_empty = false # true/false
+
+# Whether to add a newline after '}'. Does not apply if followed by a
+# necessary ';'.
+nl_after_brace_close = false # true/false
+
+# Whether to add a newline after a virtual brace close,
+# as in 'if (foo) a++; <here> return;'.
+nl_after_vbrace_close = false # true/false
+
+# Add or remove newline between the close brace and identifier,
+# as in 'struct { int a; } <here> b;'. Affects enumerations, unions and
+# structures. If set to ignore, uses nl_after_brace_close.
+nl_brace_struct_var = ignore # ignore/add/remove/force/not_defined
+
+# Whether to alter newlines in '#define' macros.
+nl_define_macro = false # true/false
+
+# Whether to alter newlines between consecutive parenthesis closes. The number
+# of closing parentheses in a line will depend on respective open parenthesis
+# lines.
+nl_squeeze_paren_close = false # true/false
+
+# Whether to remove blanks after '#ifxx' and '#elxx', or before '#elxx' and
+# '#endif'. Does not affect top-level #ifdefs.
+nl_squeeze_ifdef = false # true/false
+
+# Makes the nl_squeeze_ifdef option affect the top-level #ifdefs as well.
+nl_squeeze_ifdef_top_level = false # true/false
+
+# Add or remove blank line before 'if'.
+nl_before_if = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove blank line after 'if' statement. Add/Force work only if the
+# next token is not a closing brace.
+nl_after_if = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove blank line before 'for'.
+nl_before_for = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove blank line after 'for' statement.
+nl_after_for = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove blank line before 'while'.
+nl_before_while = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove blank line after 'while' statement.
+nl_after_while = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove blank line before 'switch'.
+nl_before_switch = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove blank line after 'switch' statement.
+nl_after_switch = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove blank line before 'synchronized'.
+nl_before_synchronized = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove blank line after 'synchronized' statement.
+nl_after_synchronized = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove blank line before 'do'.
+nl_before_do = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove blank line after 'do/while' statement.
+nl_after_do = ignore # ignore/add/remove/force/not_defined
+
+# Ignore nl_before_{if,for,switch,do,synchronized} if the control
+# statement is immediately after a case statement.
+# if nl_before_{if,for,switch,do} is set to remove, this option
+# does nothing.
+nl_before_ignore_after_case = false # true/false
+
+# Whether to put a blank line before 'return' statements, unless after an open
+# brace.
+nl_before_return = false # true/false
+
+# Whether to put a blank line after 'return' statements, unless followed by a
+# close brace.
+nl_after_return = false # true/false
+
+# Whether to put a blank line before a member '.' or '->' operators.
+nl_before_member = ignore # ignore/add/remove/force/not_defined
+
+# (Java) Whether to put a blank line after a member '.' or '->' operators.
+nl_after_member = ignore # ignore/add/remove/force/not_defined
+
+# Whether to double-space commented-entries in 'struct'/'union'/'enum'.
+nl_ds_struct_enum_cmt = false # true/false
+
+# Whether to force a newline before '}' of a 'struct'/'union'/'enum'.
+# (Lower priority than eat_blanks_before_close_brace.)
+nl_ds_struct_enum_close_brace = false # true/false
+
+# Add or remove newline before or after (depending on pos_class_colon) a class
+# colon, as in 'class Foo <here> : <or here> public Bar'.
+nl_class_colon = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline around a class constructor colon. The exact position
+# depends on nl_constr_init_args, pos_constr_colon and pos_constr_comma.
+nl_constr_colon = ignore # ignore/add/remove/force/not_defined
+
+# Whether to collapse a two-line namespace, like 'namespace foo\n{ decl; }'
+# into a single line. If true, prevents other brace newline rules from turning
+# such code into four lines. If true, it also preserves one-liner namespaces.
+nl_namespace_two_to_one_liner = false # true/false
+
+# Whether to remove a newline in simple unbraced if statements, turning them
+# into one-liners, as in 'if(b)\n i++;' => 'if(b) i++;'.
+nl_create_if_one_liner = false # true/false
+
+# Whether to remove a newline in simple unbraced for statements, turning them
+# into one-liners, as in 'for (...)\n stmt;' => 'for (...) stmt;'.
+nl_create_for_one_liner = false # true/false
+
+# Whether to remove a newline in simple unbraced while statements, turning
+# them into one-liners, as in 'while (expr)\n stmt;' => 'while (expr) stmt;'.
+nl_create_while_one_liner = false # true/false
+
+# Whether to collapse a function definition whose body (not counting braces)
+# is only one line so that the entire definition (prototype, braces, body) is
+# a single line.
+nl_create_func_def_one_liner = false # true/false
+
+# Whether to split one-line simple list definitions into three lines by
+# adding newlines, as in 'int a[12] = { <here> 0 <here> };'.
+nl_create_list_one_liner = false # true/false
+
+# Whether to split one-line simple unbraced if statements into two lines by
+# adding a newline, as in 'if(b) <here> i++;'.
+nl_split_if_one_liner = false # true/false
+
+# Whether to split one-line simple unbraced for statements into two lines by
+# adding a newline, as in 'for (...) <here> stmt;'.
+nl_split_for_one_liner = false # true/false
+
+# Whether to split one-line simple unbraced while statements into two lines by
+# adding a newline, as in 'while (expr) <here> stmt;'.
+nl_split_while_one_liner = false # true/false
+
+# Don't add a newline before a cpp-comment in a parameter list of a function
+# call.
+donot_add_nl_before_cpp_comment = false # true/false
+
+#
+# Blank line options
+#
+
+# The maximum number of consecutive newlines (3 = 2 blank lines).
+nl_max = 0 # unsigned number
+
+# The maximum number of consecutive newlines in a function.
+nl_max_blank_in_func = 0 # unsigned number
+
+# The number of newlines inside an empty function body.
+# This option overrides eat_blanks_after_open_brace and
+# eat_blanks_before_close_brace, but is ignored when
+# nl_collapse_empty_body=true
+nl_inside_empty_func = 0 # unsigned number
+
+# The number of newlines before a function prototype.
+nl_before_func_body_proto = 0 # unsigned number
+
+# The number of newlines before a multi-line function definition. Where
+# applicable, this option is overridden with eat_blanks_after_open_brace=true
+nl_before_func_body_def = 0 # unsigned number
+
+# The number of newlines before a class constructor/destructor prototype.
+nl_before_func_class_proto = 0 # unsigned number
+
+# The number of newlines before a class constructor/destructor definition.
+nl_before_func_class_def = 0 # unsigned number
+
+# The number of newlines after a function prototype.
+nl_after_func_proto = 0 # unsigned number
+
+# The number of newlines after a function prototype, if not followed by
+# another function prototype.
+nl_after_func_proto_group = 0 # unsigned number
+
+# The number of newlines after a class constructor/destructor prototype.
+nl_after_func_class_proto = 0 # unsigned number
+
+# The number of newlines after a class constructor/destructor prototype,
+# if not followed by another constructor/destructor prototype.
+nl_after_func_class_proto_group = 0 # unsigned number
+
+# Whether one-line method definitions inside a class body should be treated
+# as if they were prototypes for the purposes of adding newlines.
+#
+# Requires nl_class_leave_one_liners=true. Overrides nl_before_func_body_def
+# and nl_before_func_class_def for one-liners.
+nl_class_leave_one_liner_groups = false # true/false
+
+# The number of newlines after '}' of a multi-line function body.
+nl_after_func_body = 0 # unsigned number
+
+# The number of newlines after '}' of a multi-line function body in a class
+# declaration. Also affects class constructors/destructors.
+#
+# Overrides nl_after_func_body.
+nl_after_func_body_class = 0 # unsigned number
+
+# The number of newlines after '}' of a single line function body. Also
+# affects class constructors/destructors.
+#
+# Overrides nl_after_func_body and nl_after_func_body_class.
+nl_after_func_body_one_liner = 0 # unsigned number
+
+# The number of blank lines after a block of variable definitions at the top
+# of a function body.
+#
+# 0: No change (default).
+nl_func_var_def_blk = 0 # unsigned number
+
+# The number of newlines before a block of typedefs. If nl_after_access_spec
+# is non-zero, that option takes precedence.
+#
+# 0: No change (default).
+nl_typedef_blk_start = 0 # unsigned number
+
+# The number of newlines after a block of typedefs.
+#
+# 0: No change (default).
+nl_typedef_blk_end = 0 # unsigned number
+
+# The maximum number of consecutive newlines within a block of typedefs.
+#
+# 0: No change (default).
+nl_typedef_blk_in = 0 # unsigned number
+
+# The number of empty newlines before a block of variable definitions
+# not at the top of a function body. If nl_after_access_spec is non-zero,
+# that option takes precedence.
+#
+# 0: No change (default).
+nl_var_def_blk_start = 0 # unsigned number
+
+# The number of empty newlines after a block of variable definitions
+# not at the top of a function body.
+#
+# 0: No change (default).
+nl_var_def_blk_end = 0 # unsigned number
+
+# The maximum number of consecutive newlines within a block of variable
+# definitions.
+#
+# 0: No change (default).
+nl_var_def_blk_in = 0 # unsigned number
+
+# The minimum number of newlines before a multi-line comment.
+# Doesn't apply if after a brace open or another multi-line comment.
+nl_before_block_comment = 0 # unsigned number
+
+# The minimum number of newlines before a single-line C comment.
+# Doesn't apply if after a brace open or other single-line C comments.
+nl_before_c_comment = 0 # unsigned number
+
+# The minimum number of newlines before a CPP comment.
+# Doesn't apply if after a brace open or other CPP comments.
+nl_before_cpp_comment = 0 # unsigned number
+
+# Whether to force a newline after a multi-line comment.
+nl_after_multiline_comment = false # true/false
+
+# Whether to force a newline after a label's colon.
+nl_after_label_colon = false # true/false
+
+# The number of newlines before a struct definition.
+nl_before_struct = 0 # unsigned number
+
+# The number of newlines after '}' or ';' of a struct/enum/union definition.
+nl_after_struct = 0 # unsigned number
+
+# The number of newlines before a class definition.
+nl_before_class = 0 # unsigned number
+
+# The number of newlines after '}' or ';' of a class definition.
+nl_after_class = 0 # unsigned number
+
+# The number of newlines before a namespace.
+nl_before_namespace = 0 # unsigned number
+
+# The number of newlines after '{' of a namespace. This also adds newlines
+# before the matching '}'.
+#
+# 0: Apply eat_blanks_after_open_brace or eat_blanks_before_close_brace if
+# applicable, otherwise no change.
+#
+# Overrides eat_blanks_after_open_brace and eat_blanks_before_close_brace.
+nl_inside_namespace = 0 # unsigned number
+
+# The number of newlines after '}' of a namespace.
+nl_after_namespace = 0 # unsigned number
+
+# The number of newlines before an access specifier label. This also includes
+# the Qt-specific 'signals:' and 'slots:'. Will not change the newline count
+# if after a brace open.
+#
+# 0: No change (default).
+nl_before_access_spec = 0 # unsigned number
+
+# The number of newlines after an access specifier label. This also includes
+# the Qt-specific 'signals:' and 'slots:'. Will not change the newline count
+# if after a brace open.
+#
+# 0: No change (default).
+#
+# Overrides nl_typedef_blk_start and nl_var_def_blk_start.
+nl_after_access_spec = 0 # unsigned number
+
+# The number of newlines between a function definition and the function
+# comment, as in '// comment\n <here> void foo() {...}'.
+#
+# 0: No change (default).
+nl_comment_func_def = 0 # unsigned number
+
+# The number of newlines after a try-catch-finally block that isn't followed
+# by a brace close.
+#
+# 0: No change (default).
+nl_after_try_catch_finally = 0 # unsigned number
+
+# (C#) The number of newlines before and after a property, indexer or event
+# declaration.
+#
+# 0: No change (default).
+nl_around_cs_property = 0 # unsigned number
+
+# (C#) The number of newlines between the get/set/add/remove handlers.
+#
+# 0: No change (default).
+nl_between_get_set = 0 # unsigned number
+
+# (C#) Add or remove newline between property and the '{'.
+nl_property_brace = ignore # ignore/add/remove/force/not_defined
+
+# Whether to remove blank lines after '{'.
+eat_blanks_after_open_brace = false # true/false
+
+# Whether to remove blank lines before '}'.
+eat_blanks_before_close_brace = false # true/false
+
+# How aggressively to remove extra newlines not in preprocessor.
+#
+# 0: No change (default)
+# 1: Remove most newlines not handled by other config
+# 2: Remove all newlines and reformat completely by config
+nl_remove_extra_newlines = 0 # unsigned number
+
+# (Java) Add or remove newline after an annotation statement. Only affects
+# annotations that are after a newline.
+nl_after_annotation = ignore # ignore/add/remove/force/not_defined
+
+# (Java) Add or remove newline between two annotations.
+nl_between_annotation = ignore # ignore/add/remove/force/not_defined
+
+# The number of newlines before a whole-file #ifdef.
+#
+# 0: No change (default).
+nl_before_whole_file_ifdef = 0 # unsigned number
+
+# The number of newlines after a whole-file #ifdef.
+#
+# 0: No change (default).
+nl_after_whole_file_ifdef = 0 # unsigned number
+
+# The number of newlines before a whole-file #endif.
+#
+# 0: No change (default).
+nl_before_whole_file_endif = 0 # unsigned number
+
+# The number of newlines after a whole-file #endif.
+#
+# 0: No change (default).
+nl_after_whole_file_endif = 0 # unsigned number
+
+#
+# Positioning options
+#
+
+# The position of arithmetic operators in wrapped expressions.
+pos_arith = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
+
+# The position of assignment in wrapped expressions. Do not affect '='
+# followed by '{'.
+pos_assign = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
+
+# The position of Boolean operators in wrapped expressions.
+pos_bool = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
+
+# The position of comparison operators in wrapped expressions.
+pos_compare = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
+
+# The position of conditional operators, as in the '?' and ':' of
+# 'expr ? stmt : stmt', in wrapped expressions.
+pos_conditional = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
+
+# The position of the comma in wrapped expressions.
+pos_comma = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
+
+# The position of the comma in enum entries.
+pos_enum_comma = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
+
+# The position of the comma in the base class list if there is more than one
+# line. Affects nl_class_init_args.
+pos_class_comma = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
+
+# The position of the comma in the constructor initialization list.
+# Related to nl_constr_colon, nl_constr_init_args and pos_constr_colon.
+pos_constr_comma = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
+
+# The position of trailing/leading class colon, between class and base class
+# list. Affects nl_class_colon.
+pos_class_colon = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
+
+# The position of colons between constructor and member initialization.
+# Related to nl_constr_colon, nl_constr_init_args and pos_constr_comma.
+pos_constr_colon = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
+
+# The position of shift operators in wrapped expressions.
+pos_shift = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
+
+#
+# Line splitting options
+#
+
+# Try to limit code width to N columns.
+code_width = 0 # unsigned number
+
+# Whether to fully split long 'for' statements at semi-colons.
+ls_for_split_full = false # true/false
+
+# Whether to fully split long function prototypes/calls at commas.
+# The option ls_code_width has priority over the option ls_func_split_full.
+ls_func_split_full = false # true/false
+
+# Whether to split lines as close to code_width as possible and ignore some
+# groupings.
+# The option ls_code_width has priority over the option ls_func_split_full.
+ls_code_width = false # true/false
+
+#
+# Code alignment options (not left column spaces/tabs)
+#
+
+# Whether to keep non-indenting tabs.
+align_keep_tabs = false # true/false
+
+# Whether to use tabs for aligning.
+align_with_tabs = false # true/false
+
+# Whether to bump out to the next tab when aligning.
+align_on_tabstop = false # true/false
+
+# Whether to right-align numbers.
+align_number_right = false # true/false
+
+# Whether to keep whitespace not required for alignment.
+align_keep_extra_space = false # true/false
+
+# Whether to align variable definitions in prototypes and functions.
+align_func_params = false # true/false
+
+# The span for aligning parameter definitions in function on parameter name.
+#
+# 0: Don't align (default).
+align_func_params_span = 0 # unsigned number
+
+# The threshold for aligning function parameter definitions.
+# Use a negative number for absolute thresholds.
+#
+# 0: No limit (default).
+align_func_params_thresh = 0 # number
+
+# The gap for aligning function parameter definitions.
+align_func_params_gap = 0 # unsigned number
+
+# The span for aligning constructor value.
+#
+# 0: Don't align (default).
+align_constr_value_span = 0 # unsigned number
+
+# The threshold for aligning constructor value.
+# Use a negative number for absolute thresholds.
+#
+# 0: No limit (default).
+align_constr_value_thresh = 0 # number
+
+# The gap for aligning constructor value.
+align_constr_value_gap = 0 # unsigned number
+
+# Whether to align parameters in single-line functions that have the same
+# name. The function names must already be aligned with each other.
+align_same_func_call_params = false # true/false
+
+# The span for aligning function-call parameters for single line functions.
+#
+# 0: Don't align (default).
+align_same_func_call_params_span = 0 # unsigned number
+
+# The threshold for aligning function-call parameters for single line
+# functions.
+# Use a negative number for absolute thresholds.
+#
+# 0: No limit (default).
+align_same_func_call_params_thresh = 0 # number
+
+# The span for aligning variable definitions.
+#
+# 0: Don't align (default).
+align_var_def_span = 0 # unsigned number
+
+# How to consider (or treat) the '*' in the alignment of variable definitions.
+#
+# 0: Part of the type 'void * foo;' (default)
+# 1: Part of the variable 'void *foo;'
+# 2: Dangling 'void *foo;'
+# Dangling: the '*' will not be taken into account when aligning.
+align_var_def_star_style = 0 # unsigned number
+
+# How to consider (or treat) the '&' in the alignment of variable definitions.
+#
+# 0: Part of the type 'long & foo;' (default)
+# 1: Part of the variable 'long &foo;'
+# 2: Dangling 'long &foo;'
+# Dangling: the '&' will not be taken into account when aligning.
+align_var_def_amp_style = 0 # unsigned number
+
+# The threshold for aligning variable definitions.
+# Use a negative number for absolute thresholds.
+#
+# 0: No limit (default).
+align_var_def_thresh = 0 # number
+
+# The gap for aligning variable definitions.
+align_var_def_gap = 0 # unsigned number
+
+# Whether to align the colon in struct bit fields.
+align_var_def_colon = false # true/false
+
+# The gap for aligning the colon in struct bit fields.
+align_var_def_colon_gap = 0 # unsigned number
+
+# Whether to align any attribute after the variable name.
+align_var_def_attribute = false # true/false
+
+# Whether to align inline struct/enum/union variable definitions.
+align_var_def_inline = false # true/false
+
+# The span for aligning on '=' in assignments.
+#
+# 0: Don't align (default).
+align_assign_span = 0 # unsigned number
+
+# The span for aligning on '{' in braced init list.
+#
+# 0: Don't align (default).
+align_braced_init_list_span = 0 # unsigned number
+
+# The span for aligning on '=' in function prototype modifier.
+#
+# 0: Don't align (default).
+align_assign_func_proto_span = 0 # unsigned number
+
+# The threshold for aligning on '=' in assignments.
+# Use a negative number for absolute thresholds.
+#
+# 0: No limit (default).
+align_assign_thresh = 0 # number
+
+# Whether to align on the left most assignment when multiple
+# definitions are found on the same line.
+# Depends on 'align_assign_span' and 'align_assign_thresh' settings.
+align_assign_on_multi_var_defs = false # true/false
+
+# The threshold for aligning on '{' in braced init list.
+# Use a negative number for absolute thresholds.
+#
+# 0: No limit (default).
+align_braced_init_list_thresh = 0 # number
+
+# How to apply align_assign_span to function declaration "assignments", i.e.
+# 'virtual void foo() = 0' or '~foo() = {default|delete}'.
+#
+# 0: Align with other assignments (default)
+# 1: Align with each other, ignoring regular assignments
+# 2: Don't align
+align_assign_decl_func = 0 # unsigned number
+
+# The span for aligning on '=' in enums.
+#
+# 0: Don't align (default).
+align_enum_equ_span = 0 # unsigned number
+
+# The threshold for aligning on '=' in enums.
+# Use a negative number for absolute thresholds.
+#
+# 0: no limit (default).
+align_enum_equ_thresh = 0 # number
+
+# The span for aligning class member definitions.
+#
+# 0: Don't align (default).
+align_var_class_span = 0 # unsigned number
+
+# The threshold for aligning class member definitions.
+# Use a negative number for absolute thresholds.
+#
+# 0: No limit (default).
+align_var_class_thresh = 0 # number
+
+# The gap for aligning class member definitions.
+align_var_class_gap = 0 # unsigned number
+
+# The span for aligning struct/union member definitions.
+#
+# 0: Don't align (default).
+align_var_struct_span = 0 # unsigned number
+
+# The threshold for aligning struct/union member definitions.
+# Use a negative number for absolute thresholds.
+#
+# 0: No limit (default).
+align_var_struct_thresh = 0 # number
+
+# The gap for aligning struct/union member definitions.
+align_var_struct_gap = 0 # unsigned number
+
+# The span for aligning struct initializer values.
+#
+# 0: Don't align (default).
+align_struct_init_span = 0 # unsigned number
+
+# The span for aligning single-line typedefs.
+#
+# 0: Don't align (default).
+align_typedef_span = 0 # unsigned number
+
+# The minimum space between the type and the synonym of a typedef.
+align_typedef_gap = 0 # unsigned number
+
+# How to align typedef'd functions with other typedefs.
+#
+# 0: Don't mix them at all (default)
+# 1: Align the open parenthesis with the types
+# 2: Align the function type name with the other type names
+align_typedef_func = 0 # unsigned number
+
+# How to consider (or treat) the '*' in the alignment of typedefs.
+#
+# 0: Part of the typedef type, 'typedef int * pint;' (default)
+# 1: Part of type name: 'typedef int *pint;'
+# 2: Dangling: 'typedef int *pint;'
+# Dangling: the '*' will not be taken into account when aligning.
+align_typedef_star_style = 0 # unsigned number
+
+# How to consider (or treat) the '&' in the alignment of typedefs.
+#
+# 0: Part of the typedef type, 'typedef int & intref;' (default)
+# 1: Part of type name: 'typedef int &intref;'
+# 2: Dangling: 'typedef int &intref;'
+# Dangling: the '&' will not be taken into account when aligning.
+align_typedef_amp_style = 0 # unsigned number
+
+# The span for aligning comments that end lines.
+#
+# 0: Don't align (default).
+align_right_cmt_span = 0 # unsigned number
+
+# Minimum number of columns between preceding text and a trailing comment in
+# order for the comment to qualify for being aligned. Must be non-zero to have
+# an effect.
+align_right_cmt_gap = 0 # unsigned number
+
+# If aligning comments, whether to mix with comments after '}' and #endif with
+# less than three spaces before the comment.
+align_right_cmt_mix = false # true/false
+
+# Whether to only align trailing comments that are at the same brace level.
+align_right_cmt_same_level = false # true/false
+
+# Minimum column at which to align trailing comments. Comments which are
+# aligned beyond this column, but which can be aligned in a lesser column,
+# may be "pulled in".
+#
+# 0: Ignore (default).
+align_right_cmt_at_col = 0 # unsigned number
+
+# The span for aligning function prototypes.
+#
+# 0: Don't align (default).
+align_func_proto_span = 0 # unsigned number
+
+# How to consider (or treat) the '*' in the alignment of function prototypes.
+#
+# 0: Part of the type 'void * foo();' (default)
+# 1: Part of the function 'void *foo();'
+# 2: Dangling 'void *foo();'
+# Dangling: the '*' will not be taken into account when aligning.
+align_func_proto_star_style = 0 # unsigned number
+
+# How to consider (or treat) the '&' in the alignment of function prototypes.
+#
+# 0: Part of the type 'long & foo();' (default)
+# 1: Part of the function 'long &foo();'
+# 2: Dangling 'long &foo();'
+# Dangling: the '&' will not be taken into account when aligning.
+align_func_proto_amp_style = 0 # unsigned number
+
+# The threshold for aligning function prototypes.
+# Use a negative number for absolute thresholds.
+#
+# 0: No limit (default).
+align_func_proto_thresh = 0 # number
+
+# Minimum gap between the return type and the function name.
+align_func_proto_gap = 0 # unsigned number
+
+# Whether to align function prototypes on the 'operator' keyword instead of
+# what follows.
+align_on_operator = false # true/false
+
+# Whether to mix aligning prototype and variable declarations. If true,
+# align_var_def_XXX options are used instead of align_func_proto_XXX options.
+align_mix_var_proto = false # true/false
+
+# Whether to align single-line functions with function prototypes.
+# Uses align_func_proto_span.
+align_single_line_func = false # true/false
+
+# Whether to align the open brace of single-line functions.
+# Requires align_single_line_func=true. Uses align_func_proto_span.
+align_single_line_brace = false # true/false
+
+# Gap for align_single_line_brace.
+align_single_line_brace_gap = 0 # unsigned number
+
+# (OC) The span for aligning Objective-C message specifications.
+#
+# 0: Don't align (default).
+align_oc_msg_spec_span = 0 # unsigned number
+
+# Whether to align macros wrapped with a backslash and a newline. This will
+# not work right if the macro contains a multi-line comment.
+align_nl_cont = false # true/false
+
+# Whether to align macro functions and variables together.
+align_pp_define_together = false # true/false
+
+# The span for aligning on '#define' bodies.
+#
+# =0: Don't align (default)
+# >0: Number of lines (including comments) between blocks
+align_pp_define_span = 0 # unsigned number
+
+# The minimum space between label and value of a preprocessor define.
+align_pp_define_gap = 0 # unsigned number
+
+# Whether to align lines that start with '<<' with previous '<<'.
+#
+# Default: true
+align_left_shift = true # true/false
+
+# Whether to align comma-separated statements following '<<' (as used to
+# initialize Eigen matrices).
+align_eigen_comma_init = false # true/false
+
+# Whether to align text after 'asm volatile ()' colons.
+align_asm_colon = false # true/false
+
+# (OC) Span for aligning parameters in an Objective-C message call
+# on the ':'.
+#
+# 0: Don't align.
+align_oc_msg_colon_span = 0 # unsigned number
+
+# (OC) Whether to always align with the first parameter, even if it is too
+# short.
+align_oc_msg_colon_first = false # true/false
+
+# (OC) Whether to align parameters in an Objective-C '+' or '-' declaration
+# on the ':'.
+align_oc_decl_colon = false # true/false
+
+# (OC) Whether to not align parameters in an Objectve-C message call if first
+# colon is not on next line of the message call (the same way Xcode does
+# alignment)
+align_oc_msg_colon_xcode_like = false # true/false
+
+#
+# Comment modification options
+#
+
+# Try to wrap comments at N columns.
+cmt_width = 0 # unsigned number
+
+# How to reflow comments.
+#
+# 0: No reflowing (apart from the line wrapping due to cmt_width) (default)
+# 1: No touching at all
+# 2: Full reflow (enable cmt_indent_multi for indent with line wrapping due to cmt_width)
+cmt_reflow_mode = 0 # unsigned number
+
+# Path to a file that contains regular expressions describing patterns for
+# which the end of one line and the beginning of the next will be folded into
+# the same sentence or paragraph during full comment reflow. The regular
+# expressions are described using ECMAScript syntax. The syntax for this
+# specification is as follows, where "..." indicates the custom regular
+# expression and "n" indicates the nth end_of_prev_line_regex and
+# beg_of_next_line_regex regular expression pair:
+#
+# end_of_prev_line_regex[1] = "...$"
+# beg_of_next_line_regex[1] = "^..."
+# end_of_prev_line_regex[2] = "...$"
+# beg_of_next_line_regex[2] = "^..."
+# .
+# .
+# .
+# end_of_prev_line_regex[n] = "...$"
+# beg_of_next_line_regex[n] = "^..."
+#
+# Note that use of this option overrides the default reflow fold regular
+# expressions, which are internally defined as follows:
+#
+# end_of_prev_line_regex[1] = "[\w,\]\)]$"
+# beg_of_next_line_regex[1] = "^[\w,\[\(]"
+# end_of_prev_line_regex[2] = "\.$"
+# beg_of_next_line_regex[2] = "^[A-Z]"
+cmt_reflow_fold_regex_file = "" # string
+
+# Whether to indent wrapped lines to the start of the encompassing paragraph
+# during full comment reflow (cmt_reflow_mode = 2). Overrides the value
+# specified by cmt_sp_after_star_cont.
+#
+# Note that cmt_align_doxygen_javadoc_tags overrides this option for
+# paragraphs associated with javadoc tags
+cmt_reflow_indent_to_paragraph_start = false # true/false
+
+# Whether to convert all tabs to spaces in comments. If false, tabs in
+# comments are left alone, unless used for indenting.
+cmt_convert_tab_to_spaces = false # true/false
+
+# Whether to apply changes to multi-line comments, including cmt_width,
+# keyword substitution and leading chars.
+#
+# Default: true
+cmt_indent_multi = true # true/false
+
+# Whether to align doxygen javadoc-style tags ('@param', '@return', etc.)
+# and corresponding fields such that groups of consecutive block tags,
+# parameter names, and descriptions align with one another. Overrides that
+# which is specified by the cmt_sp_after_star_cont. If cmt_width > 0, it may
+# be necessary to enable cmt_indent_multi and set cmt_reflow_mode = 2
+# in order to achieve the desired alignment for line-wrapping.
+cmt_align_doxygen_javadoc_tags = false # true/false
+
+# The number of spaces to insert after the star and before doxygen
+# javadoc-style tags (@param, @return, etc). Requires enabling
+# cmt_align_doxygen_javadoc_tags. Overrides that which is specified by the
+# cmt_sp_after_star_cont.
+#
+# Default: 1
+cmt_sp_before_doxygen_javadoc_tags = 1 # unsigned number
+
+# Whether to change trailing, single-line c-comments into cpp-comments.
+cmt_trailing_single_line_c_to_cpp = false # true/false
+
+# Whether to group c-comments that look like they are in a block.
+cmt_c_group = false # true/false
+
+# Whether to put an empty '/*' on the first line of the combined c-comment.
+cmt_c_nl_start = false # true/false
+
+# Whether to add a newline before the closing '*/' of the combined c-comment.
+cmt_c_nl_end = false # true/false
+
+# Whether to change cpp-comments into c-comments.
+cmt_cpp_to_c = false # true/false
+
+# Whether to group cpp-comments that look like they are in a block. Only
+# meaningful if cmt_cpp_to_c=true.
+cmt_cpp_group = false # true/false
+
+# Whether to put an empty '/*' on the first line of the combined cpp-comment
+# when converting to a c-comment.
+#
+# Requires cmt_cpp_to_c=true and cmt_cpp_group=true.
+cmt_cpp_nl_start = false # true/false
+
+# Whether to add a newline before the closing '*/' of the combined cpp-comment
+# when converting to a c-comment.
+#
+# Requires cmt_cpp_to_c=true and cmt_cpp_group=true.
+cmt_cpp_nl_end = false # true/false
+
+# Whether to put a star on subsequent comment lines.
+cmt_star_cont = false # true/false
+
+# The number of spaces to insert at the start of subsequent comment lines.
+cmt_sp_before_star_cont = 0 # unsigned number
+
+# The number of spaces to insert after the star on subsequent comment lines.
+cmt_sp_after_star_cont = 0 # unsigned number
+
+# For multi-line comments with a '*' lead, remove leading spaces if the first
+# and last lines of the comment are the same length.
+#
+# Default: true
+cmt_multi_check_last = true # true/false
+
+# For multi-line comments with a '*' lead, remove leading spaces if the first
+# and last lines of the comment are the same length AND if the length is
+# bigger as the first_len minimum.
+#
+# Default: 4
+cmt_multi_first_len_minimum = 4 # unsigned number
+
+# Path to a file that contains text to insert at the beginning of a file if
+# the file doesn't start with a C/C++ comment. If the inserted text contains
+# '$(filename)', that will be replaced with the current file's name.
+cmt_insert_file_header = "" # string
+
+# Path to a file that contains text to insert at the end of a file if the
+# file doesn't end with a C/C++ comment. If the inserted text contains
+# '$(filename)', that will be replaced with the current file's name.
+cmt_insert_file_footer = "" # string
+
+# Path to a file that contains text to insert before a function definition if
+# the function isn't preceded by a C/C++ comment. If the inserted text
+# contains '$(function)', '$(javaparam)' or '$(fclass)', these will be
+# replaced with, respectively, the name of the function, the javadoc '@param'
+# and '@return' stuff, or the name of the class to which the member function
+# belongs.
+cmt_insert_func_header = "" # string
+
+# Path to a file that contains text to insert before a class if the class
+# isn't preceded by a C/C++ comment. If the inserted text contains '$(class)',
+# that will be replaced with the class name.
+cmt_insert_class_header = "" # string
+
+# Path to a file that contains text to insert before an Objective-C message
+# specification, if the method isn't preceded by a C/C++ comment. If the
+# inserted text contains '$(message)' or '$(javaparam)', these will be
+# replaced with, respectively, the name of the function, or the javadoc
+# '@param' and '@return' stuff.
+cmt_insert_oc_msg_header = "" # string
+
+# Whether a comment should be inserted if a preprocessor is encountered when
+# stepping backwards from a function name.
+#
+# Applies to cmt_insert_oc_msg_header, cmt_insert_func_header and
+# cmt_insert_class_header.
+cmt_insert_before_preproc = false # true/false
+
+# Whether a comment should be inserted if a function is declared inline to a
+# class definition.
+#
+# Applies to cmt_insert_func_header.
+#
+# Default: true
+cmt_insert_before_inlines = true # true/false
+
+# Whether a comment should be inserted if the function is a class constructor
+# or destructor.
+#
+# Applies to cmt_insert_func_header.
+cmt_insert_before_ctor_dtor = false # true/false
+
+#
+# Code modifying options (non-whitespace)
+#
+
+# Add or remove braces on a single-line 'do' statement.
+mod_full_brace_do = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove braces on a single-line 'for' statement.
+mod_full_brace_for = ignore # ignore/add/remove/force/not_defined
+
+# (Pawn) Add or remove braces on a single-line function definition.
+mod_full_brace_function = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove braces on a single-line 'if' statement. Braces will not be
+# removed if the braced statement contains an 'else'.
+mod_full_brace_if = ignore # ignore/add/remove/force/not_defined
+
+# Whether to enforce that all blocks of an 'if'/'else if'/'else' chain either
+# have, or do not have, braces. Overrides mod_full_brace_if.
+#
+# 0: Don't override mod_full_brace_if
+# 1: Add braces to all blocks if any block needs braces and remove braces if
+# they can be removed from all blocks
+# 2: Add braces to all blocks if any block already has braces, regardless of
+# whether it needs them
+# 3: Add braces to all blocks if any block needs braces and remove braces if
+# they can be removed from all blocks, except if all blocks have braces
+# despite none needing them
+mod_full_brace_if_chain = 0 # unsigned number
+
+# Whether to add braces to all blocks of an 'if'/'else if'/'else' chain.
+# If true, mod_full_brace_if_chain will only remove braces from an 'if' that
+# does not have an 'else if' or 'else'.
+mod_full_brace_if_chain_only = false # true/false
+
+# Add or remove braces on single-line 'while' statement.
+mod_full_brace_while = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove braces on single-line 'using ()' statement.
+mod_full_brace_using = ignore # ignore/add/remove/force/not_defined
+
+# Don't remove braces around statements that span N newlines
+mod_full_brace_nl = 0 # unsigned number
+
+# Whether to prevent removal of braces from 'if'/'for'/'while'/etc. blocks
+# which span multiple lines.
+#
+# Affects:
+# mod_full_brace_for
+# mod_full_brace_if
+# mod_full_brace_if_chain
+# mod_full_brace_if_chain_only
+# mod_full_brace_while
+# mod_full_brace_using
+#
+# Does not affect:
+# mod_full_brace_do
+# mod_full_brace_function
+mod_full_brace_nl_block_rem_mlcond = false # true/false
+
+# Add or remove unnecessary parenthesis on 'return' statement.
+mod_paren_on_return = ignore # ignore/add/remove/force/not_defined
+
+# (Pawn) Whether to change optional semicolons to real semicolons.
+mod_pawn_semicolon = false # true/false
+
+# Whether to fully parenthesize Boolean expressions in 'while' and 'if'
+# statement, as in 'if (a && b > c)' => 'if (a && (b > c))'.
+mod_full_paren_if_bool = false # true/false
+
+# Whether to fully parenthesize Boolean expressions after '='
+# statement, as in 'x = a && b > c;' => 'x = (a && (b > c));'.
+mod_full_paren_assign_bool = false # true/false
+
+# Whether to fully parenthesize Boolean expressions after '='
+# statement, as in 'return a && b > c;' => 'return (a && (b > c));'.
+mod_full_paren_return_bool = false # true/false
+
+# Whether to remove superfluous semicolons.
+mod_remove_extra_semicolon = false # true/false
+
+# Whether to remove duplicate include.
+mod_remove_duplicate_include = false # true/false
+
+# If a function body exceeds the specified number of newlines and doesn't have
+# a comment after the close brace, a comment will be added.
+mod_add_long_function_closebrace_comment = 0 # unsigned number
+
+# If a namespace body exceeds the specified number of newlines and doesn't
+# have a comment after the close brace, a comment will be added.
+mod_add_long_namespace_closebrace_comment = 0 # unsigned number
+
+# If a class body exceeds the specified number of newlines and doesn't have a
+# comment after the close brace, a comment will be added.
+mod_add_long_class_closebrace_comment = 0 # unsigned number
+
+# If a switch body exceeds the specified number of newlines and doesn't have a
+# comment after the close brace, a comment will be added.
+mod_add_long_switch_closebrace_comment = 0 # unsigned number
+
+# If an #ifdef body exceeds the specified number of newlines and doesn't have
+# a comment after the #endif, a comment will be added.
+mod_add_long_ifdef_endif_comment = 0 # unsigned number
+
+# If an #ifdef or #else body exceeds the specified number of newlines and
+# doesn't have a comment after the #else, a comment will be added.
+mod_add_long_ifdef_else_comment = 0 # unsigned number
+
+# Whether to take care of the case by the mod_sort_xx options.
+mod_sort_case_sensitive = false # true/false
+
+# Whether to sort consecutive single-line 'import' statements.
+mod_sort_import = false # true/false
+
+# (C#) Whether to sort consecutive single-line 'using' statements.
+mod_sort_using = false # true/false
+
+# Whether to sort consecutive single-line '#include' statements (C/C++) and
+# '#import' statements (Objective-C). Be aware that this has the potential to
+# break your code if your includes/imports have ordering dependencies.
+mod_sort_include = false # true/false
+
+# Whether to prioritize '#include' and '#import' statements that contain
+# filename without extension when sorting is enabled.
+mod_sort_incl_import_prioritize_filename = false # true/false
+
+# Whether to prioritize '#include' and '#import' statements that does not
+# contain extensions when sorting is enabled.
+mod_sort_incl_import_prioritize_extensionless = false # true/false
+
+# Whether to prioritize '#include' and '#import' statements that contain
+# angle over quotes when sorting is enabled.
+mod_sort_incl_import_prioritize_angle_over_quotes = false # true/false
+
+# Whether to ignore file extension in '#include' and '#import' statements
+# for sorting comparison.
+mod_sort_incl_import_ignore_extension = false # true/false
+
+# Whether to group '#include' and '#import' statements when sorting is enabled.
+mod_sort_incl_import_grouping_enabled = false # true/false
+
+# Whether to move a 'break' that appears after a fully braced 'case' before
+# the close brace, as in 'case X: { ... } break;' => 'case X: { ... break; }'.
+mod_move_case_break = false # true/false
+
+# Whether to move a 'return' that appears after a fully braced 'case' before
+# the close brace, as in 'case X: { ... } return;' => 'case X: { ... return; }'.
+mod_move_case_return = false # true/false
+
+# Add or remove braces around a fully braced case statement. Will only remove
+# braces if there are no variable declarations in the block.
+mod_case_brace = ignore # ignore/add/remove/force/not_defined
+
+# Whether to remove a void 'return;' that appears as the last statement in a
+# function.
+mod_remove_empty_return = false # true/false
+
+# Add or remove the comma after the last value of an enumeration.
+mod_enum_last_comma = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Whether to organize the properties. If true, properties will be
+# rearranged according to the mod_sort_oc_property_*_weight factors.
+mod_sort_oc_properties = false # true/false
+
+# (OC) Weight of a class property modifier.
+mod_sort_oc_property_class_weight = 0 # number
+
+# (OC) Weight of 'atomic' and 'nonatomic'.
+mod_sort_oc_property_thread_safe_weight = 0 # number
+
+# (OC) Weight of 'readwrite' when organizing properties.
+mod_sort_oc_property_readwrite_weight = 0 # number
+
+# (OC) Weight of a reference type specifier ('retain', 'copy', 'assign',
+# 'weak', 'strong') when organizing properties.
+mod_sort_oc_property_reference_weight = 0 # number
+
+# (OC) Weight of getter type ('getter=') when organizing properties.
+mod_sort_oc_property_getter_weight = 0 # number
+
+# (OC) Weight of setter type ('setter=') when organizing properties.
+mod_sort_oc_property_setter_weight = 0 # number
+
+# (OC) Weight of nullability type ('nullable', 'nonnull', 'null_unspecified',
+# 'null_resettable') when organizing properties.
+mod_sort_oc_property_nullability_weight = 0 # number
+
+#
+# Preprocessor options
+#
+
+# Add or remove indentation of preprocessor directives inside #if blocks
+# at brace level 0 (file-level).
+pp_indent = ignore # ignore/add/remove/force/not_defined
+
+# Whether to indent #if/#else/#endif at the brace level. If false, these are
+# indented from column 1.
+pp_indent_at_level = false # true/false
+
+# Whether to indent #if/#else/#endif at the parenthesis level if the brace
+# level is 0. If false, these are indented from column 1.
+pp_indent_at_level0 = false # true/false
+
+# Specifies the number of columns to indent preprocessors per level
+# at brace level 0 (file-level). If pp_indent_at_level=false, also specifies
+# the number of columns to indent preprocessors per level
+# at brace level > 0 (function-level).
+#
+# Default: 1
+pp_indent_count = 1 # unsigned number
+
+# Add or remove space after # based on pp_level of #if blocks.
+pp_space = ignore # ignore/add/remove/force/not_defined
+
+# Sets the number of spaces per level added with pp_space.
+pp_space_count = 0 # unsigned number
+
+# The indent for '#region' and '#endregion' in C# and '#pragma region' in
+# C/C++. Negative values decrease indent down to the first column.
+pp_indent_region = 0 # number
+
+# Whether to indent the code between #region and #endregion.
+pp_region_indent_code = false # true/false
+
+# If pp_indent_at_level=true, sets the indent for #if, #else and #endif when
+# not at file-level. Negative values decrease indent down to the first column.
+#
+# =0: Indent preprocessors using output_tab_size
+# >0: Column at which all preprocessors will be indented
+pp_indent_if = 0 # number
+
+# Whether to indent the code between #if, #else and #endif.
+pp_if_indent_code = false # true/false
+
+# Whether to indent the body of an #if that encompasses all the code in the file.
+pp_indent_in_guard = false # true/false
+
+# Whether to indent '#define' at the brace level. If false, these are
+# indented from column 1.
+pp_define_at_level = false # true/false
+
+# Whether to indent '#include' at the brace level.
+pp_include_at_level = false # true/false
+
+# Whether to ignore the '#define' body while formatting.
+pp_ignore_define_body = false # true/false
+
+# Whether to indent case statements between #if, #else, and #endif.
+# Only applies to the indent of the preprocesser that the case statements
+# directly inside of.
+#
+# Default: true
+pp_indent_case = true # true/false
+
+# Whether to indent whole function definitions between #if, #else, and #endif.
+# Only applies to the indent of the preprocesser that the function definition
+# is directly inside of.
+#
+# Default: true
+pp_indent_func_def = true # true/false
+
+# Whether to indent extern C blocks between #if, #else, and #endif.
+# Only applies to the indent of the preprocesser that the extern block is
+# directly inside of.
+#
+# Default: true
+pp_indent_extern = true # true/false
+
+# How to indent braces directly inside #if, #else, and #endif.
+# Requires pp_if_indent_code=true and only applies to the indent of the
+# preprocesser that the braces are directly inside of.
+# 0: No extra indent
+# 1: Indent by one level
+# -1: Preserve original indentation
+#
+# Default: 1
+pp_indent_brace = 1 # number
+
+# Whether to print warning messages for unbalanced #if and #else blocks.
+# This will print a message in the following cases:
+# - if an #ifdef block ends on a different indent level than
+# where it started from. Example:
+#
+# #ifdef TEST
+# int i;
+# {
+# int j;
+# #endif
+#
+# - an #elif/#else block ends on a different indent level than
+# the corresponding #ifdef block. Example:
+#
+# #ifdef TEST
+# int i;
+# #else
+# }
+# int j;
+# #endif
+pp_warn_unbalanced_if = false # true/false
+
+#
+# Sort includes options
+#
+
+# The regex for include category with priority 0.
+include_category_0 = "" # string
+
+# The regex for include category with priority 1.
+include_category_1 = "" # string
+
+# The regex for include category with priority 2.
+include_category_2 = "" # string
+
+#
+# Use or Do not Use options
+#
+
+# true: indent_func_call_param will be used (default)
+# false: indent_func_call_param will NOT be used
+#
+# Default: true
+use_indent_func_call_param = true # true/false
+
+# The value of the indentation for a continuation line is calculated
+# differently if the statement is:
+# - a declaration: your case with QString fileName ...
+# - an assignment: your case with pSettings = new QSettings( ...
+#
+# At the second case the indentation value might be used twice:
+# - at the assignment
+# - at the function call (if present)
+#
+# To prevent the double use of the indentation value, use this option with the
+# value 'true'.
+#
+# true: indent_continue will be used only once
+# false: indent_continue will be used every time (default)
+#
+# Requires indent_ignore_first_continue=false.
+use_indent_continue_only_once = false # true/false
+
+# The indentation can be:
+# - after the assignment, at the '[' character
+# - at the begin of the lambda body
+#
+# true: indentation will be after the assignment
+# false: indentation will be at the begin of the lambda body (default)
+indent_cpp_lambda_only_once = false # true/false
+
+# Whether sp_after_angle takes precedence over sp_inside_fparen. This was the
+# historic behavior, but is probably not the desired behavior, so this is off
+# by default.
+use_sp_after_angle_always = false # true/false
+
+# Whether to apply special formatting for Qt SIGNAL/SLOT macros. Essentially,
+# this tries to format these so that they match Qt's normalized form (i.e. the
+# result of QMetaObject::normalizedSignature), which can slightly improve the
+# performance of the QObject::connect call, rather than how they would
+# otherwise be formatted.
+#
+# See options_for_QT.cpp for details.
+#
+# Default: true
+use_options_overriding_for_qt_macros = true # true/false
+
+# If true: the form feed character is removed from the list of whitespace
+# characters. See https://en.cppreference.com/w/cpp/string/byte/isspace.
+use_form_feed_no_more_as_whitespace_character = false # true/false
+
+#
+# Warn levels - 1: error, 2: warning (default), 3: note
+#
+
+# (C#) Warning is given if doing tab-to-\t replacement and we have found one
+# in a C# verbatim string literal.
+#
+# Default: 2
+warn_level_tabs_found_in_verbatim_string_literals = 2 # unsigned number
+
+# Limit the number of loops.
+# Used by uncrustify.cpp to exit from infinite loop.
+# 0: no limit.
+debug_max_number_of_loops = 0 # number
+
+# Set the number of the line to protocol;
+# Used in the function prot_the_line if the 2. parameter is zero.
+# 0: nothing protocol.
+debug_line_number_to_protocol = 0 # number
+
+# Set the number of second(s) before terminating formatting the current file,
+# 0: no timeout.
+# only for linux
+debug_timeout = 0 # number
+
+# Set the number of characters to be printed if the text is too long,
+# 0: do not truncate.
+debug_truncate = 0 # unsigned number
+
+# Meaning of the settings:
+# Ignore - do not do any changes
+# Add - makes sure there is 1 or more space/brace/newline/etc
+# Force - makes sure there is exactly 1 space/brace/newline/etc,
+# behaves like Add in some contexts
+# Remove - removes space/brace/newline/etc
+#
+#
+# - Token(s) can be treated as specific type(s) with the 'set' option:
+# `set tokenType tokenString [tokenString...]`
+#
+# Example:
+# `set BOOL __AND__ __OR__`
+#
+# tokenTypes are defined in src/token_enum.h, use them without the
+# 'CT_' prefix: 'CT_BOOL' => 'BOOL'
+#
+#
+# - Token(s) can be treated as type(s) with the 'type' option.
+# `type tokenString [tokenString...]`
+#
+# Example:
+# `type int c_uint_8 Rectangle`
+#
+# This can also be achieved with `set TYPE int c_uint_8 Rectangle`
+#
+#
+# To embed whitespace in tokenStrings use the '\' escape character, or quote
+# the tokenStrings. These quotes are supported: "'`
+#
+#
+# - Support for the auto detection of languages through the file ending can be
+# added using the 'file_ext' command.
+# `file_ext langType langString [langString..]`
+#
+# Example:
+# `file_ext CPP .ch .cxx .cpp.in`
+#
+# langTypes are defined in uncrusify_types.h in the lang_flag_e enum, use
+# them without the 'LANG_' prefix: 'LANG_CPP' => 'CPP'
+#
+#
+# - Custom macro-based indentation can be set up using 'macro-open',
+# 'macro-else' and 'macro-close'.
+# `(macro-open | macro-else | macro-close) tokenString`
+#
+# Example:
+# `macro-open BEGIN_TEMPLATE_MESSAGE_MAP`
+# `macro-open BEGIN_MESSAGE_MAP`
+# `macro-close END_MESSAGE_MAP`
+#
+#
+# option(s) with 'not default' value: 0
+#
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/examples/c-1.in.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/examples/c-1.in.c
index c1a53476..c1a53476 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/examples/c-1.in.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/examples/c-1.in.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/examples/c-1.out.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/examples/c-1.out.c
index ceb484c6..ceb484c6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/examples/c-1.out.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/examples/c-1.out.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/examples/example.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/examples/example.c
index 7c8edf79..7c8edf79 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/examples/example.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/examples/example.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/images/linuxlinks.gif b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/images/linuxlinks.gif
index d3adec5c..d3adec5c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/images/linuxlinks.gif
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/images/linuxlinks.gif
Binary files differ
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/index.html b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/index.html
new file mode 100644
index 00000000..452b53bf
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/index.html
@@ -0,0 +1,183 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
+ <title>Uncrustify - Source Code Beautifier for C-like languages</title>
+ <link rel="stylesheet" type="text/css" href="uncrustify1.css" />
+ <!-- <link rel="shortcut icon" href="images/favicon.ico" /> -->
+</head>
+<body lang="en-us" dir="ltr">
+
+<div align="center">
+<table>
+<tr>
+<td align="center">
+<div class="node1" align="center">
+<div class="node2" align="left">
+<h1>Uncrustify</h1>
+<h2>Source Code Beautifier for C, C++, C#, ObjectiveC, D, Java, Pawn and VALA</h2>
+<table>
+ <tr>
+ <td valign="top">
+ <script type='text/javascript' language='JavaScript' src='http://www.ohloh.net/projects/4765/badge_js'></script>
+ </td>
+ <td valign="top">
+ <a href="https://travis-ci.org/uncrustify/uncrustify/builds">
+ <img alt="Travis CI Build Status"
+ src="https://travis-ci.org/uncrustify/uncrustify.svg?branch=master"/>
+ </a>
+ </td>
+ <td valign="top">
+ <a href="https://scan.coverity.com/projects/uncrustify">
+ <img alt="Coverity Scan Build Status"
+ src="https://scan.coverity.com/projects/8264/badge.svg"/>
+ </a>
+ </td>
+ </tr>
+</table>
+
+<h2>Introduction</h2>
+<p>The goals of this project are simple:
+Create a highly configurable, easily modifiable source code beautifier.</p>
+
+<br />
+
+<h2>Features</h2>
+<ul>
+ <li>Indent code, aligning on parens, assignments, etc</li>
+ <li>Align on '=' and variable definitions</li>
+ <li>Align structure initializers</li>
+ <li>Align #define stuff</li>
+ <li>Align backslash-newline stuff</li>
+ <li>Reformat comments (a little bit)</li>
+ <li>Fix inter-character spacing</li>
+ <li>Add or remove parens on return statements</li>
+ <li>Add or remove braces on single-statement if/do/while/for statements</li>
+ <li>Supports embedded SQL 'EXEC SQL' stuff</li>
+ <li>Highly configurable - 808 configurable options as of version 0.75.0</li>
+</ul>
+
+<p>
+ See some example <a href="examples/example.c">output</a>.
+</p>
+
+<br />
+
+<h2>Where to get Uncrustify</h2>
+
+<h3>Project Websites</h3>
+<a href="http://sourceforge.net/projects/uncrustify/">Sourceforge project web site</a><BR>
+<a href="http://sourceforge.net/projects/uncrustify/files/">Release downloads</a><br>
+<a href="http://freshmeat.net/projects/uncrustify/">Freshmeat Project</a><BR>
+<a href="http://github.com/uncrustify/uncrustify">Git Hub</a><br>
+
+<h3>Source Code</h3>
+As of release 0.54, the source code is maintained in a <a href="http://git-scm.com/">Git</a> repository.<br>
+<br>
+The public Git URL for Sourceforge.net is <br>
+<code>git://uncrustify.git.sourceforge.net/gitroot/uncrustify/uncrustify</code><br>
+<br>
+The public Git URL for github.com is <br>
+<code>git://github.com/uncrustify/uncrustify.git</code><br>
+
+<h3>Prebuilt binaries</h3>
+Windows (i386) :
+<a href="http://sourceforge.net/project/showfiles.php?group_id=153164">Sourceforge</A><BR>
+
+<h3>Universal Indent GUI</h3>
+<a href="http://universalindent.sourceforge.net/">Universal Indent GUI</a> is a
+cross-platform graphical configuration file editor for many code beautifiers, including Uncrustify.
+
+<br />
+
+<h2>Want to help?</h2>
+<p>
+The most helpful way is to try it out and give feedback.
+Documentation and examples are available in the source tree, so check it out.
+</p>
+<p>
+You can find the output from 'uncrustify --show-config' <a href="config.txt">here</a>.<br />
+Here is the <a href="default.cfg">default config file</a>.
+And one I set up for <a href="linux.cfg.txt">Linux</a>.<br />
+And here is a <a href="examples/c-1.in.c">before</a> and <a href="examples/c-1.out.c">after</a> C source example.<br />
+That should give you a pretty good idea of what Uncrustify can do.<br />
+</p>
+
+<p>
+If you find a bug, please do the following:
+</p>
+<ul>
+<li>Reduce the input source file to the minimum that still has the problem</li>
+<li>Use the sourceforget.net bug tracker</li>
+<li>Attach the input source file, the configuration file, and a file that contains the expected output</li>
+</ul>
+
+<p>
+If you want to add a feature, fix a bug, or implement missing functionality, feel free to do so! Patches are welcome!<BR/>
+Here are some areas that need attention:
+</p>
+<ul>
+ <li>Test Java support and provide feedback (or patches!)</li>
+ <li>Test Objective C support and provide feedback (or patches!)</li>
+ <li>Test Embedded SQL to see what works</li>
+ <li>This web page need a (re)design</li>
+ <li>A logo of some sort</li>
+ <li>Examples that can be put on this website to show off what Uncrustify can do</li>
+ <li>Anything else that you want to do to make it better?</li>
+</ul>
+
+<h3>Project Mailing list</h3>
+We don't have a mailing list for Uncrustify.<BR/>
+We are using <a href="https://github.com/uncrustify/uncrustify/">github</a>.
+<br>
+You may use <a href="https://github.com/uncrustify/uncrustify/issues">Issues</a> to publish an error report.
+<br>
+Or <a href="https://github.com/uncrustify/uncrustify/pulls">PR</a> to make a bugfix proposal.
+
+<br />
+
+<h2>Portability</h2>
+<p>
+I'm pretty sure that I'm not using anything that is OS-specific.<br />
+The software has been tested on the following operating systems:
+</p>
+<ul>
+ <li>Linux</li>
+ <li>QNX</li>
+ <li>OS X</li>
+ <li>FreeBSD, NetBSD, OpenBSD</li>
+ <li>Sun Solaris 9</li>
+ <li>Windows XP (binary available)</li>
+</ul>
+
+<br />
+
+<h2>Links</h2>
+<ul>
+ <li><a href="http://universalindent.sourceforge.net/">Universal Indent GUI</a></li>
+ <li>Don't know what D is? Check out the <a href="http://dlang.org/index.html">D Programming Language website</a>.</li>
+ <li><a href="http://www.linuxlinks.com">Linux Links</a></li>
+</ul>
+<h2>Distributions that package Uncrustify</h2>
+<ul>
+ <li><A href="http://www.debian.org/">Debian</A>
+ <li><A href="http://fedora.redhat.com/">Fedora</A></li>
+ <li><A href="http://www.altlinux.com/">ALT Linux</A></li>
+ <li><A href="http://www.t2-project.org/">T2</A></li>
+ <li><A href="http://www.macports.org/">MacPorts</a></li>
+ <li><A href="http://www.freebsd.org/cgi/ports.cgi?query=uncrustify">FreeBSD Ports (textproc/uncrustify)</a></li>
+ <li><A href="http://openports.se/textproc/uncrustify">OpenBSD Ports (textproc/uncrustify)</a></li>
+ <li>Others?</li>
+</ul>
+</div>
+</div>
+</td>
+</tr>
+</table>
+</div>
+<br />
+<a href="http://sourceforge.net/donate/index.php?group_id=153164">"Support This Project"</a>
+<br />
+
+</body>
+</html>
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/linux.cfg.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/linux.cfg.txt
index baae9848..baae9848 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/linux.cfg.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/linux.cfg.txt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options.html b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options.html
index 554836c3..554836c3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options.html
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options.html
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_ASM.html b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_ASM.html
index 4de0e7bb..4de0e7bb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_ASM.html
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_ASM.html
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_Align.html b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_Align.html
new file mode 100644
index 00000000..99edad58
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_Align.html
@@ -0,0 +1,44 @@
+#define SUCCESS 0
+ █
+align_pp_define_gap
+The minimum space between label and value of a preprocessor define
+
+#define set_chunk_type(pc, tt) do { \
+ LOG_FUNC_CALL(); \
+ set_chunk_type_real((pc), (tt)); \
+} while (false)
+align_nl_cont = true
+
+#define LOG_STR(sev, str, len) \
+ if (log_sev_on(sev)) { log_str(sev, str, len); }
+ █
+nl_after_brace_close
+
+
+extern struct cp_data cpd;
+
+extern bool QT_SIGNAL_SLOT_found;
+extern int QT_SIGNAL_SLOT_level;
+extern bool restoreValues;
+align_var_def_span █
+
+enum argval_t
+{
+ AV_IGNORE = 0,
+ AV_ADD = 1,
+ AV_REMOVE = 2,
+ AV_FORCE = 3, /**< remove + add */
+ AV_NOT_DEFINED = 4 /* to be used with QT, SIGNAL SLOT macros */
+};
+ █
+align_var_struct_span
+
+
+ UO_indent_var_def_blk, // indent a variable def block that appears at the top
+ UO_indent_var_def_cont,
+ UO_indent_shift, // if a shift expression spans multiple lines, indent
+
+ UO_indent_min_vbrace_open, // min. indent after virtual brace open and newline
+ UO_indent_vbrace_open_on_tabstop, // when identing after virtual brace open and newline add further spaces to reach next tabstop
+
+align_right_cmt_span
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_CLI_NET.html b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_CLI_NET.html
index 8838cdf0..8838cdf0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_CLI_NET.html
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_CLI_NET.html
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_C_sharp.html b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_C_sharp.html
index 74767b9d..74767b9d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_C_sharp.html
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_C_sharp.html
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_D.html b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_D.html
index 308b5c58..308b5c58 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_D.html
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_D.html
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Indenting.html b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_Indenting.html
index 7887f759..7887f759 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Indenting.html
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_Indenting.html
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Java.html b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_Java.html
index 80083042..80083042 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Java.html
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_Java.html
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_ModifyCode.html b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_ModifyCode.html
index e20e1098..e20e1098 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_ModifyCode.html
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_ModifyCode.html
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Namespace.html b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_Namespace.html
index 74589df0..74589df0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Namespace.html
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_Namespace.html
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_NewLines.html b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_NewLines.html
new file mode 100644
index 00000000..85a37821
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_NewLines.html
@@ -0,0 +1,216 @@
+<html>
+<head>
+ <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
+ <title>Uncrustify: where do the New Lines options work</title>
+</head>
+<body lang="en-US">
+<h1><a href="https://github.com/uncrustify/uncrustify">Uncrustify</a>:
+Where do the options work?</h1>
+<h2>New lines</h2>
+<p>
+</p>
+<hr>
+<pre>
+<a title="nl_remove_extra_newlines"><strong><font color="red">█</font></strong></a>
+<a title="nl_start_of_file"><strong><font color="red"><strong><font color="red">█</font></strong></font></strong></a>
+void bar_0(); // function definition
+<a title="nl_func_paren"><strong><font color="red"> █</a><a title="nl_func_def_empty">█</font></strong></a>
+void bar_0() // function declaration
+<a title="nl_func_def_paren"><strong><font color="red"> █</a><a title="nl_func_decl_empty">█</font></strong></a>
+void A::bar_1(int a);
+<a title="nl_func_scope_name"><strong><font color="red"> █</a><a title="nl_func_def_start"> █</a><a title="nl_func_def_end_single"> █</font></strong></a>
+void bar_2(int a) <a title="nl_fdef_brace"><strong><font color="red">█</font></strong></a>
+<a title="nl_func_type_name"><strong><font color="red"> █</a><a title="nl_func_decl_start"> █</a><a title="nl_func_decl_end"> █</font></strong></a>
+<a title="nl_func_decl_start_single"><strong><font color="red"> █</a><a title="nl_func_decl_end_single"> █</font></strong></a>
+{<a title="nl_collapse_empty_body"><strong><font color="red">█</font></strong></a>
+}
+<a title="nl_after_func_body"><strong><font color="red">█</font></strong></a>
+void bar_3(int x,
+ int y)
+<a title="nl_func_def_args"><strong><font color="red"> █</a><a title="nl_func_decl_end"> █</font></strong></a>
+{
+ int a = 5;<a title="nl_after_semicolon"><strong><font color="red"> █</font></strong></a>
+ int b = 7;
+ <a title="nl_func_var_def_blk"><strong><font color="red"> █</font></strong></a>
+ a = 135;
+ list_for_each(item, list) {
+<a title="nl_fcall_brace"><strong><font color="red"> █</font></strong></a>
+ }
+<a title="nl_before_block_comment"><strong><font color="red"> █</font></strong></a>
+ /* c1
+ * c2
+ */
+<a title="nl_max"><strong><font color="red"> █</font></strong></a>
+ int x2;
+<a title="nl_before_c_comment"><strong><font color="red"> █</font></strong></a>
+ /* single comment */
+<a title="nl_before_cpp_comment"><strong><font color="red"> █</font></strong></a>
+ // cpp comment
+ std::for_each(a, b, [] (int& b) -> foo {
+<a title="nl_cpp_ldef_brace"><strong><font color="red"> █</font></strong></a>
+ b+=3;
+ }
+ A_function(parameter_for_A);
+<a title="nl_func_call_start"><strong><font color="red"> █</font></strong></a><a title="nl_func_call_end"><strong><font color="red"> █</font></strong></a>
+}
+<a title="nl_end_of_file"><strong><font color="red">█</font></strong></a>
+<hr>
+class foo : public my_Class<a title="nl_class_brace"><strong><font color="red"> █</font></strong></a>
+<a title="nl_class_colon"><strong><font color="red"> █</font></strong></a>
+{
+ void bar_c(int t, int u)<a title="nl_constr_colon"><strong><font color="red"> █</font></strong></a>
+<a title="nl_func_type_name_class, nl_func_proto_type_name"><strong><font color="red"> █</a><a title="nl_func_decl_args"> █</font></strong></a>
+ : t(222)
+ , u(88)
+<a title="nl_constr_init_args, pos_constr_comma"><strong><font color="red"> █</font></strong></a>
+ {
+<a title="nl_typedef_blk_start"><strong><font color="red"> █</font></strong></a>
+ typedef char CHAR;
+<a title="nl_typedef_blk_end"><strong><font color="red"> █</a><a title="nl_var_def_blk_start"> █</font></strong></a>
+ CHAR c;
+ int a;
+ int b;
+<a title="nl_var_def_blk_end"><strong><font color="red"> █</font></strong></a>
+ c = 'a';
+<a title="nl_before_switch"><strong><font color="red"> █</font></strong></a>
+ switch (a) {
+<a title="nl_switch_brace"><strong><font color="red"> █</font></strong></a>
+ case 0:
+ b = 1;
+ break;
+<a title="nl_before_case"><strong><font color="red"> █</font></strong></a>
+ case 1: b = 5; break;
+<a title="nl_after_case"><strong><font color="red"> █</font></strong></a>
+ case 13: {
+<a title="nl_case_colon_brace"><strong><font color="red"> █</font></strong></a>
+ b = 15;
+ break;
+ }
+ }
+<a title="nl_after_switch"><strong><font color="red"> █</a><a title="nl_before_do"> █</font></strong></a>
+ do { <a title="nl_do_brace"><strong><font color="red">█</font></strong></a>
+ do_something();
+ } while (!d.isEmpty());
+<a title="nl_brace_while"><strong><font color="red"> █</a><a title="nl_after_do">█</a><a title="nl_before_if"> █</font></strong></a>
+ if (a) { <a title="nl_if_brace"><strong><font color="red">█</font></strong></a>
+ b = 1;
+ } else if (c) {
+<a title="nl_brace_else"><strong><font color="red"> █</a><a title="nl_else_if"> █</a><a title="nl_elseif_brace"> █</font></strong></a>
+ b ;
+ } else {
+<a title="nl_else_brace"><strong><font color="red"> █</font></strong></a>
+ b = 3;
+ }
+<a title="nl_after_if"><strong><font color="red"> █</a><a title="nl_before_for"> █</font></strong></a>
+ for (a = 1; a < 5; a++) {
+<a title="nl_for_brace"><strong><font color="red"> █</font></strong></a>
+ b = b + a;
+ }
+<a title="nl_after_for"><strong><font color="red"> █</font></strong></a>
+ for (int a = 1; a < 5;
+ a++) {
+<a title="nl_multi_line_cond"><strong><font color="red"> █</font></strong></a>
+ b = a + 4;
+ }
+ try {
+<a title="nl_try_brace"><strong><font color="red"> █</font></strong></a>
+ b = 1;
+ if (err) {
+<a title="nl_before_throw"><strong><font color="red"> █</font></strong></a>
+ throw std::runtime_error(std::string("nextKey: ") + err.asString());
+ }
+ } catch (const std::exception &exc) {
+<a title="nl_brace_catch"><strong><font color="red"> █</a><a title="nl_catch_brace"> █</font></strong></a>
+ b = 3;
+ }
+<a title="nl_before_while"><strong><font color="red"> █</font></strong></a>
+ while (c) {
+<a title="nl_while_brace"><strong><font color="red"> █</font></strong></a>
+ b ;
+ }
+<a title="nl_after_while"><strong><font color="red"> █</font></strong></a>
+ }
+ enum CaseOfOne {
+<a title="nl_enum_brace"><strong><font color="red"> █</font></strong></a>
+ a1,
+ b1,
+<a title="nl_ds_struct_enum_cmt"><strong><font color="red"> █</font></strong></a>
+ // comment
+ c1,
+<a title="nl_ds_struct_enum_close_brace"><strong><font color="red"> █</font></strong></a>
+ };
+ struct indent_ptr_t <a title="nl_struct_brace"><strong><font color="red">█</font></strong></a>
+ {
+ Chunk *ref;
+<a title="nl_ds_struct_enum_cmt"><strong><font color="red"> █</font></strong></a>
+ // comment
+ int delta;
+<a title="nl_ds_struct_enum_close_brace"><strong><font color="red"> █</font></strong></a>
+ } ipt;
+<a title="nl_brace_struct_var"><strong><font color="red"> █</font></strong></a>
+<a title="nl_after_struct"><strong><font color="red"> █</font></strong></a>
+ union UnionOfOne {
+<a title="nl_union_brace"><strong><font color="red"> █</font></strong></a>
+ a1,
+ b1,
+<a title="nl_ds_struct_enum_cmt"><strong><font color="red"> █</font></strong></a>
+ // comment
+ c1,
+<a title="nl_ds_struct_enum_close_brace"><strong><font color="red"> █</font></strong></a>
+ };
+<a title="nl_before_access_spec"><strong><font color="red"> █</a><a title="nl_after_func_body_class"> █</font></strong></a>
+ private: // same for protected:, signal: or slots: label
+<a title="nl_after_access_spec"><strong><font color="red"> █</font></strong></a>
+ int ap;
+};
+<a title="nl_after_class"><strong><font color="red">█</font></strong></a>
+<hr>
+namespace foo {
+<a title="nl_namespace_brace"><strong><font color="red"> █</font></strong></a>
+int foo()
+{
+ if (foo) a++; return;
+<a title="nl_after_vbrace_open"><strong><font color="red"> █</a><a title="nl_after_vbrace_close"> █</font></strong></a>
+ if (a)
+ return;
+<a title="nl_after_return"><strong><font color="red"> █</font></strong></a>
+l123: <a title="nl_after_label_colon"><strong><font color="red">█</font></strong></a>
+ int a = 5;
+<a title="nl_before_if"><strong><font color="red"> █</font></strong></a>
+ if (a > b) {
+ c = 7;
+<a title="nl_before_return"><strong><font color="red"> █</font></strong></a>
+ return a + b;
+ }
+ std::for_each(a, b, [] (int& b)->foo{ b+=3; return(b); });
+<a title="nl_brace_fparen"><strong><font color="red"> █</font></strong></a>
+ QUrl dxOffEagle("http://something/newpage.html?[{\"foo: bar\"}]", QUrl::TolerantMode);
+<a title="nl_brace_square"><strong><font color="red"> █</font></strong></a>
+<a title="nl_before_return"><strong><font color="red"> █</font></strong></a>
+ return 0;
+<a title="nl_return_expr"><strong><font color="red"> █</font></strong></a>
+<hr>
+/* c1
+ *
+ */
+<a title="nl_comment_func_def"><strong><font color="red">█</font></strong></a>
+void b();
+<a title="nl_after_func_proto"><strong><font color="red">█</font></strong></a>
+void d();
+#define LOG_CONTTEXT() \
+<a title="nl_multi_line_define"><strong><font color="red"> █</font></strong></a>
+ LOG_FMT(LCONTTEXT \
+ ,"%s:%d set cont_text to '%s'\n" \
+ ,__func__, __LINE__, cmt.cont_text.c_str())
+template &lt;class T&gt;
+<a title="nl_template_class"><strong><font color="red">█</font></strong></a>
+ItemJob<T>::ItemJob(PlatformDependent *internals, const QNetworkRequest &request)
+ : GetJob(internals, request)
+typedef int ia;
+typedef int ib;
+<a title="nl_typedef_blk_in"><strong><font color="red">█</font></strong></a>
+typedef int ic;
+typedef int id;
+</pre>
+</body>
+</html>
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Objectiv-C.html b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_Objectiv-C.html
index 993a1b95..993a1b95 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Objectiv-C.html
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_Objectiv-C.html
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Positioning.html b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_Positioning.html
index 4e8a36cc..4e8a36cc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Positioning.html
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_Positioning.html
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Preprocessor.html b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_Preprocessor.html
index 1d99b69d..1d99b69d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Preprocessor.html
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_Preprocessor.html
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_Assign.html b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_Space_Assign.html
index 10c8b6b0..10c8b6b0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_Assign.html
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_Space_Assign.html
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_Byref.html b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_Space_Byref.html
index 7ad47f72..7ad47f72 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_Byref.html
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_Space_Byref.html
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_Case.html b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_Space_Case.html
index e40bfc5b..e40bfc5b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_Case.html
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_Space_Case.html
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_Cast.html b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_Space_Cast.html
index 9e0b6e2d..9e0b6e2d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_Cast.html
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_Space_Cast.html
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_Class.html b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_Space_Class.html
index 1bd1c4a5..1bd1c4a5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_Class.html
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_Space_Class.html
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_Comma.html b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_Space_Comma.html
index 3b3f0de1..3b3f0de1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_Comma.html
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_Space_Comma.html
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_Enum.html b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_Space_Enum.html
index f208c95f..f208c95f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_Enum.html
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_Space_Enum.html
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_For.html b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_Space_For.html
index 5107f89f..5107f89f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_For.html
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_Space_For.html
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_New.html b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_Space_New.html
index 587844ae..587844ae 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_New.html
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_Space_New.html
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_Operator.html b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_Space_Operator.html
index d73c964d..d73c964d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_Operator.html
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_Space_Operator.html
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_Paren.html b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_Space_Paren.html
index caa4a5a5..caa4a5a5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_Paren.html
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_Space_Paren.html
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_Template.html b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_Space_Template.html
index d8792888..d8792888 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_Template.html
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_Space_Template.html
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_Spaces.html b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_Spaces.html
new file mode 100644
index 00000000..35265fc6
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/options_Spaces.html
@@ -0,0 +1,432 @@
+<html>
+<head>
+ <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
+ <title>Uncrustify: where do the Spaces options work</title>
+</head>
+<body lang="en-US">
+<h1><a href="https://github.com/uncrustify/uncrustify">Uncrustify</a>:
+Where do the options work?</h1>
+
+<p>
+</p>
+<h2>Spaces</h2>
+You want to "add/ force/ ignore/ remove" a
+<ul>
+ <li><a href="options_Space_Assign.html">space for assign</a></li>
+ <li><a href="options_Space_Byref.html">space for byref</a></li>
+ <li><a href="options_Space_Case.html">space for case</a></li>
+ <li><a href="options_Space_Cast.html">space for cast</a></li>
+ <li><a href="options_Space_Class.html">space for class</a></li>
+ <li><a href="options_Space_Comma.html">space for comma</a></li>
+ <li><a href="options_Space_D.html">space for D</a></li>
+ <li><a href="options_Space_Enum.html">space for enum</a></li>
+ <li><a href="options_Space_For.html">space for for loop</a></li>
+ <li><a href="options_Space_New.html">space for new/ delete</a></li>
+ <li><a href="options_Space_Operator.html">space for operator</a></li>
+ <li><a href="options_Space_Paren.html">space for parenthesis</a></li>
+ <li><a href="options_Preprocessor.html">space for preprocessor</a></li>
+ <li><a href="options_Space_Template.html">space for template</a></li>
+ <li><a href="options_Java.html">options_Java</a></li>
+ <li><a href="options_Objectiv-C.html">options_Objectiv-C</a></li>
+ <li><a href="options_C_sharp.html">options_C#</a></li>
+ <li><a href="options_CLI_NET.html">options_CLI .NET</a></li>
+ <li><a href="options_ASM.html">options_ASM</a></li>
+</ul>
+at some places.
+<p>
+</p>
+Some more options...
+<p>
+</p>
+<p>
+</p>
+<table border="1", width="100%">
+<tr>
+<td>
+<pre>
+// Comments
+<a title="sp_cmt_cpp_start"><strong><font color="red"> █</font></strong></a>
+int a; /* emb cmt */ int b; // trailing cmt
+<a title="sp_before_emb_cmt"><strong><font color="red"> █</a><a title="sp_num_before_tr_cmt">..........█ █..........█</font></strong></a>
+
+ union {
+ uint maxChars;
+ uint maxBytes;
+ } mLength;
+ union { int m_size; int m_any; };
+ <a title="sp_inside_braces_struct"><strong><font color="red"> █ █</font></strong></a>
+ return { -1, -1, -1 };
+ <a title="sp_inside_braces"><strong><font color="red"> █ █</font></strong></a>
+
+class Parser :: ParserPrivate { };
+<a title="sp_before_dc"><strong><font color="red"> █</a><a title="sp_after_dc"> █</a><a title="sp_inside_braces_empty"> █</font></strong></a>
+template &lt;typename T&gt; class to { };
+<a title="sp_inside_braces_empty"><strong><font color="red"> █</font></strong></a>
+my $all = { };
+<a title="sp_inside_braces_empty"><strong><font color="red"> █</font></strong></a>
+enum FocusEffect { };
+<a title="sp_inside_braces_empty"><strong><font color="red"> █</font></strong></a>
+struct error { };
+<a title="sp_inside_braces_empty"><strong><font color="red"> █</font></strong></a>
+};
+
+#define LOG_FMT (sev, args ...) \
+<a title="sp_defined_paren"><strong><font color="red"> █</a><a title="sp_before_ellipsis"> █</font></strong></a>
+ if (log_sev_on(sev)) { log_fmt(sev, ## args); }
+ <a title="sp_pp_concat"><strong><font color="red"> █ </a><a title="sp_pp_concat">█</font></strong></a>
+#endif
+#define FS_NOCOW_FL 0x00800000
+<a title="sp_macro"><strong><font color="red"> █</font></strong></a>
+#define STRHACK(x) HACKSTR(x)
+<a title="sp_macro_func"><strong><font color="red"> █</font></strong></a>
+#define wakeUpCaller(cond) \
+<a title="sp_before_nl_cont"><strong><font color="red"> █</font></strong></a>
+ if (cond) { \
+ <a title="sp_before_nl_cont"><strong><font color="red"> █</font></strong></a>
+ cond->release(); \
+ <a title="sp_before_nl_cont"><strong><font color="red"> █</font></strong></a>
+ }
+typedef struct { int val; int sel; } DiceInfo;
+<a title="sp_brace_typedef"><strong><font color="red"> █</font></strong></a>
+void * bar()
+<a title="sp_before_ptr_star_func"><strong><font color="red"> █ </a><a title="sp_after_ptr_star_func">█</font></strong></a>
+{
+ int a = 5;
+ <a title="sp_assign"><strong><font color="red"> █ █</font></strong></a>
+ <a title="sp_before_assign"><strong><font color="red"> █ </a><a title="sp_after_assign">█</font></strong></a>
+ int * const i;
+ <a title="sp_after_ptr_star_qualifier"><strong><font color="red"> █</font></strong></a>
+ c = a + b;
+ <a title="sp_arith, sp_arith_additive"><strong><font color="red"> █ █</font></strong></a>
+ a = ~ b;
+ <a title="sp_inv"><strong><font color="red"> █</font></strong></a>
+ x = - 5;
+ <a title="sp_sign"><strong><font color="red"> █</font></strong></a>
+ y = + 7;
+ <a title="sp_sign"><strong><font color="red"> █</font></strong></a>
+ (-- a);
+ <a title="sp_incdec"><strong><font color="red"> █</font></strong></a>
+ i ++;
+ <a title="sp_incdec"><strong><font color="red"> █</font></strong></a>
+ b = ( a == d ) ? 55 : 88;
+ <a title="sp_cond_question"><strong><font color="red"> █ █</a><a title="sp_cond_colon"> █ █</font></strong></a>
+ <a title="sp_cond_question_before"><strong><font color="red"> █</a><a title="sp_cond_question_after"> █</a><a title="sp_cond_colon_before"> █</a><a title="sp_cond_colon_after"> █</font></strong></a>
+ b = ( a == d ) ? : 88;
+ <a title="sp_cond_ternary_short"><strong><font color="red"> █</font></strong></a>
+ if( ( a || b ) && c ) x = 1;
+ <a title="sp_bool"><strong><font color="red"> █ █ █ █</font></strong></a>
+ <a title="sp_inside_paren"><strong><font color="red"> █ █ █</font></strong></a>
+ <a title="sp_paren_paren"><strong><font color="red"> █</font></strong></a>
+ c = a > b;
+ <a title="sp_compare"><strong><font color="red"> █ █</font></strong></a>
+ int * i;
+ <a title="sp_before_ptr_star"><strong><font color="red"> █ </a><a title="sp_after_ptr_star">█</font></strong></a>
+ <a title="sp_before_unnamed_ptr_star"><strong><font color="red"> █</font></strong></a>
+ int * * j;
+ <a title="sp_between_ptr_star"><strong><font color="red"> █</font></strong></a>
+ throw (x);
+ <a title="sp_throw_paren"><strong><font color="red"> █</font></strong></a>
+ try {
+ <a title="sp_try_brace"><strong><font color="red"> █</font></strong></a>
+ } catch (const Exception &e) { }
+ <a title="sp_brace_catch"><strong><font color="red"> █</a><a title="sp_catch_paren"> █</font></strong></a>
+ } catch (...) { }
+ <a title="sp_brace_catch"><strong><font color="red"> █</a><a title="sp_catch_paren"> █</font></strong></a>
+ } catch { }
+ <a title="sp_brace_catch"><strong><font color="red"> █</a><a title="sp_catch_brace"> █</font></strong></a>
+ auto x1 = decltype(x) {0};
+ <a title="sp_after_decltype"><strong><font color="red"> █</font></strong></a>
+ Foo() noexcept () {}
+ <a title="sp_after_noexcept"><strong><font color="red"> █</font></strong></a>
+ void operator ++ ( );
+ <a title="sp_after_operator"><strong><font color="red"> █</font></strong></a><a title="sp_after_operator_sym"><strong><font color="red"> █</font></strong></a><a title="sp_after_operator_sym_empty"><strong><font color="red"> █</font></strong></a>
+ int a0[][] = { { 1 } };
+ <a title="sp_after_type_brace_init_lst_open"><strong><font color="red"> █ █</font></strong></a><a title="sp_before_type_brace_init_lst_close"><strong><font color="red"> █ █</font></strong></a>
+ char m_array [256];
+ <a title="sp_before_vardef_square"><strong><font color="red"> █</font></strong></a>
+ return { {crypt(_Nums, inSeed)} };
+ <a title="sp_brace_brace"><strong><font color="red"> █ █</font></strong></a>
+ do {
+ <a title="sp_do_brace_open"><strong><font color="red"> █</font></strong></a>
+ xxx = _error;
+ } while(0)
+ <a title="sp_brace_close_while"><strong><font color="red"> █</font></strong></a>
+ bool CompareGenomeByFeatureResults::clickOnLink(std::string const& inLink) {
+ auto const [sequence, type, firstPosition, lastPosition] = parseLink(inLink);
+ <a title="sp_cpp_before_struct_binding"><strong><font color="red"> █</font></strong></a>
+ decltype (x) y;
+ <a title="sp_decltype_paren"><strong><font color="red"> █</font></strong></a>
+ using x_t = decltype (x);
+ <a title="sp_decltype_paren"><strong><font color="red"> █</font></strong></a>
+ foo( ABC );
+ <a title="sp_func_call_user_inside_fparen"><strong><font color="red"> █ █</font></strong></a>
+ foo( ( ABC ) )
+ <a title="sp_func_call_user_paren_paren"><strong><font color="red"> █ █</font></strong></a>
+ typedef void timer_cb (struct timer_node *n);
+ <a title="sp_func_type_paren"><strong><font color="red"> █</font></strong></a>
+ if (n) ;
+ <a title="sp_special_semi"><strong><font color="red"> █</font></strong></a>
+ a( , 1);
+ <a title="sp_paren_comma"><strong><font color="red"> █</font></strong></a>
+ foo() noexcept;
+ <a title="sp_paren_noexcept"><strong><font color="red"> █</font></strong></a>
+ return {x};
+ <a title="sp_return_brace"><strong><font color="red"> █</font></strong></a>
+ void funcName() const;
+ <a title="sp_paren_qualifier"><strong><font color="red"> █</font></strong></a>
+ void ncName() override;
+ <a title="sp_paren_qualifier"><strong><font color="red"> █</font></strong></a>
+ template < int ... X > int bar2()
+ <a title="sp_type_ellipsis"><strong><font color="red"> █</font></strong></a>
+ {
+ auto s = sizeof ... ( X );
+ <a title="sp_sizeof_ellipsis"><strong><font color="red"> █</font></strong></a><a title="sp_sizeof_ellipsis_paren"><strong><font color="red"> █</font></strong></a>
+ chomp( X ) ...;
+ <a title="sp_paren_ellipsis"><strong><font color="red"> █</font></strong></a>
+ return X + ...;
+ }
+ do amime3(); while (false);
+ <a title="sp_while_paren_open"><strong><font color="red"> █</font></strong></a>
+ auto b0 = unknown_kw { 2 };
+ <a title="sp_word_brace_init_lst"><strong><font color="red"> █</font></strong></a>
+ if (data) go = new ClassA();
+ <a title="sp_skip_vbrace_tokens"><strong><font color="red"> █</font></strong></a>
+ else go = new ClassB();
+ <a title="sp_skip_vbrace_tokens"><strong><font color="red"> █</font></strong></a>
+
+ auto f0(int a, int b) -> int;
+ <a title="sp_trailing_return"><strong><font color="red"> █ █</font></strong></a>
+</pre>
+</td>
+</tr>
+</table>
+<p></p>
+<table border="1", width="100%">
+<tr>
+<td>
+
+<pre>
+int main(int argc , char *argv [])
+<a title="sp_before_comma"><strong><font color="red"> █</a><a title="sp_after_comma"> █</a><a title="sp_before_squares"> █</font></strong></a>
+{
+ int a [2];
+ <a title="sp_before_square"><strong><font color="red"> █</font></strong></a>
+ a[ n ] = 3;
+ <a title="sp_inside_square"><strong><font color="red"> █ █</font></strong></a>
+ const char *names [] =
+ <a title="sp_before_squares"><strong><font color="red"> █</font></strong></a>
+ {
+ "{ False , True }",
+ <a title="sp_before_comma"><strong><font color="red"> █</a><a title="sp_after_comma"> █</font></strong></a>
+ "{ Ignore, Add, Remove, Force }",
+
+ return (-1);
+ <a title="sp_return_paren"><strong><font color="red"> █</font></strong></a>
+
+
+ int a ( );
+ <a title="sp_func_proto_paren"><strong><font color="red"> █</a><a title="sp_inside_fparens"> █</font></strong></a>
+ int a (int b) {};
+ <a title="sp_func_def_paren"><strong><font color="red"> █</a><a title="sp_fparen_brace"> █</font></strong></a>
+ int foo () {};
+ <a title="sp_func_def_paren_empty"><strong><font color="red"> █</font></strong></a>
+void ( int a ) ( int b );
+<a title="sp_inside_tparen"><strong><font color="red"> █ █</a><a title="sp_after_tparen_close"> █</a><a title="sp_inside_fparen"> █ █</font></strong></a>
+static void sockaddr_unmapped(
+ struct sockaddr *sa __attribute__ ((unused)),
+ <a title="sp_attribute_paren"><strong><font color="red"> █</font></strong></a>
+ socklen_t *len __attribute__ ((unused)))
+ <a title="sp_attribute_paren"><strong><font color="red"> █</font></strong></a>
+
+void (^ weak_recurseTreeNodes)(int a);
+<a title="sp_after_ptr_block_caret"><strong><font color="red"> █</font></strong></a>
+template< >
+struct Bar< false > : Foo { };
+<a title="sp_angle_colon"><strong><font color="red"> █</font></strong></a>
+</pre>
+</td>
+</tr>
+</table>
+<p>
+</p>
+<table border="1", width="100%">
+<tr>
+<td>
+
+<pre>
+template &lt; typename T &gt; inline static bool remove(T column)
+<a title="sp_template_angle"><strong><font color="red"> █<a title="sp_inside_angle"> █<a title="sp_inside_angle"> █</font></strong></a>
+<a title="sp_before_angle"><strong><font color="red"> █</a><a title="sp_after_angle"> █</font></strong></a>
+</pre>
+
+<pre>
+int & a(int & b);
+<a title="sp_before_byref_func"><strong><font color="red"> █</a><a title="sp_after_byref_func"> █</a><a title="sp_before_byref"> █</a><a title="sp_after_byref"> █</font></strong></a>
+int c(int &)
+<a title="sp_type_func"><strong><font color="red"> █</a><a title="sp_before_unnamed_byref"> █</font></strong></a>
+{
+ d = aa (& y,& d) ;
+ <a title="sp_func_call_paren"><strong><font color="red"> █ </a><a title="sp_addr"> █ █</a><a title="sp_before_semi"> █</font></strong></a>
+ e = ee ();
+ <a title="sp_func_call_paren_empty"><strong><font color="red"> █</font></strong></a>
+ if ( a == 5 ) ...
+ <a title="sp_before_sparen"><strong><font color="red"> █</font></strong></a>
+ <a title="sp_inside_sparen"><strong><font color="red"> █ █</font></strong></a>
+ <a title="sp_inside_sparen_open"><strong><font color="red"> █</a><a title="sp_inside_sparen_close"> █</font></strong></a>
+ ...
+ if (b) ;
+ <a title="sp_special_semi"><strong><font color="red"> █</font></strong></a>
+ if ( a == 6 ) b = 66;
+ <a title="sp_after_sparen"><strong><font color="red"> █</font></strong></a>
+ if ( a == 7 ) { b = 77; }
+ <a title="sp_sparen_brace"><strong><font color="red"> █</font></strong></a>
+ if (! a) {
+ <a title="sp_not"><strong><font color="red"> █</font></strong></a>
+ b = 4;
+ } else {
+ <a title="sp_brace_else"><strong><font color="red"> █</a><a title="sp_else_brace"> █</font></strong></a>
+ b = 5;
+ }
+ for(a = 1 ; a < b ; a++) {
+ <a title="sp_before_semi_for"><strong><font color="red"> █</a><a title="sp_before_semi_for_empty"> █</font></strong></a>
+ ...
+ for( ; ; ) {
+ <a title="sp_before_semi_for_empty"><strong><font color="red"> █ █</a><a title="sp_after_semi_for_empty"> █</font></strong></a>
+ ...
+ switch (whatIsToDo) ...
+ <a title="sp_before_sparen"><strong><font color="red"> █</font></strong></a>
+ while (start < end) ...
+ <a title="sp_before_sparen"><strong><font color="red"> █</font></strong></a>
+
+</pre>
+</td>
+</tr>
+</table>
+<p>
+</p>
+<table border="1", width="100%">
+<tr>
+<td>
+
+<pre>
+namespace Server {
+<a title="sp_word_brace_ns"><strong><font color="red"> █</font></strong></a>
+class Cache : public QObject
+<a title="sp_before_class_colon"><strong><font color="red"> █</a><a title="sp_after_class_colon"> █</font></strong></a>
+Cache::StorageDebugger ()
+<a title="sp_func_class_paren"><strong><font color="red"> █</font></strong></a>
+ : mFile(0)
+<a title="sp_before_constr_colon"><strong><font color="red"> █</a><a title="sp_after_constr_colon"> █</font></strong></a>
+{
+ new service;
+ <a title="sp_after_new"><strong><font color="red"> █</font></strong></a>
+ delete service;
+ <a title="sp_after_new"><strong><font color="red"> █</font></strong></a>
+ delete[] buffer;
+ <a title="sp_after_new"><strong><font color="red"> █</font></strong></a>
+ if (this == & other) return * this;
+ <a title="sp_addr"><strong><font color="red"> █</a><a title="sp_deref"> █</font></strong></a>
+ switch (a) {
+ case 1 :
+ <a title="sp_before_case_colon"><strong><font color="red"> █</font></strong></a>
+ b= 1;
+ break;
+ case 2 : {
+ b = 2;
+ break;
+ }
+ default :
+ break;
+ }
+ bool operator () (Entity::Id lhs, Entity::Id rhs) const
+ ...<a title="sp_after_operator"><strong><font color="red"> █</a><a title="sp_after_operator_sym"> █</font></strong></a>
+
+ a = ( int ) 5.6;
+ <a title="sp_inside_paren_cast"><strong><font color="red"> █ █</a><a title="sp_after_cast"> █</font></strong></a>
+ cpp = int (7);
+ <a title="sp_cpp_cast_paren"><strong><font color="red"> █</font></strong></a>
+ len = sizeof (int);
+ <a title="sp_sizeof_paren"><strong><font color="red"> █</font></strong></a>
+ SomeStruct a = SomeStruct {1, 2, 3};
+ <a title="sp_word_brace_init_lst"><strong><font color="red"> █</font></strong></a>
+ someFuncCall(SomeStruct {4, 5, 6});
+ <a title="sp_word_brace_init_lst"><strong><font color="red"> █</font></strong></a>
+ log . foo . bar = 5;
+ <a title="sp_member"><strong><font color="red"> █ █ █ █</font></strong></a>
+ other -> foo -> bar = 123;
+ <a title="sp_member"><strong><font color="red"> █ █ █ █</font></strong></a>
+}
+/// doxygen sequence
+<a title="sp_cmt_cpp_doxygen"><strong><font color="red"> █</font></strong></a>
+///< doxygen sequence
+<a title="sp_cmt_cpp_doxygen"><strong><font color="red"> █</font></strong></a>
+//! doxygen sequence
+<a title="sp_cmt_cpp_doxygen"><strong><font color="red"> █</font></strong></a>
+//!< doxygen sequence
+<a title="sp_cmt_cpp_doxygen"><strong><font color="red"> █</font></strong></a>
+#if A
+#else /* Comment A */
+<a title="sp_endif_cmt"><strong><font color="red"> █</font></strong></a>
+#endif /* Comment B */
+<a title="sp_endif_cmt"><strong><font color="red"> █</font></strong></a>
+</pre>
+</td>
+</tr>
+</table>
+<table border="1", width="100%">
+<tr>
+<td>
+
+<pre>
+void Initialize( BYTE nDelay = 100 );
+<a title="sp_assign_default"><strong><font color="red"> █ █</font></strong></a>
+void f1()
+{
+ auto a = [<a title="sp_inside_square"><font color="red">█</font></a>=<a title="sp_inside_square"><font color="red">█</font></a>]<a title="sp_cpp_lambda_square_paren"><font color="red">█</font></a>(<a title="sp_cpp_lambda_argument_list"><font color="red">█</font></a>int *a, Something & b<a title="sp_cpp_lambda_argument_list"><font color="red">█</font></a>);
+
+ parallel_for(0, 100, [<a title="sp_inside_square"><font color="red">█</font></a>&<a title="sp_inside_square"><font color="red">█</font></a>]<a title="sp_cpp_lambda_square_paren"><font color="red">█</font></a>(<a title="sp_cpp_lambda_argument_list"><font color="red">█</font></a>const int i<a title="sp_cpp_lambda_argument_list"><font color="red">█</font></a>)<a title="sp_cpp_lambda_paren_brace"><font color="red">█</font></a>{
+ const std::vector<int> values = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 };
+
+ list[idx] (param);
+ <a title="sp_square_fparen"><font color="red"> █</font></a>
+
+double foo()
+{
+ return( foo(n) );
+ <a title="sp_balance_nested_parens"><strong><font color="red"> █ █</font></strong></a>
+
+
+Vector2&lt;double&gt; ()
+<a title="sp_angle_paren"><strong><font color="red"> █</font></strong></a>
+
+{
+ List&lt;byte&gt; bob = new List&lt;byte&gt; ();
+ <a title="sp_angle_word"><strong><font color="red"> █</font></strong></a>
+ QVector&lt;QPair&lt;Condition, QString&gt; &gt; mWhenThen;
+ <a title="sp_permit_cpp11_shift"><strong><font color="red"> █</font></strong></a>
+
+template&lt;int i, int ... Indexes, typename IdxHolder, typename ... Elements&gt;
+<a title="sp_before_ellipsis"><strong><font color="red"> █ █</font></strong></a>
+struct index_holder_impl&lt;i, index_holder&lt;Indexes ...&gt;, IdxHolder, Elements ...&gt;
+<a title="sp_before_ellipsis"><strong><font color="red"> █ █</font></strong></a>
+{
+ typedef typename index_holder_impl&lt;i + 1, index_holder&lt;Indexes ... i&gt;, Elements ...&gt;::type type;
+ <a title="sp_before_ellipsis"><strong><font color="red"> █ █</font></strong></a>
+</pre>
+</td>
+</tr>
+</table>
+<table border="1", width="100%">Java Sources
+<tr>
+<td>
+<pre>
+
+ for (Type var : expr)
+ <a title="sp_after_for_colon"><strong><font color="red"> █</font></strong></a>
+
+</pre>
+</td>
+</tr>
+</table>
+</body>
+</html>
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/project-support.jpg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/project-support.jpg
index 5d15550f..5d15550f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/project-support.jpg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/project-support.jpg
Binary files differ
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/uncrustify.css b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/uncrustify.css
index 240171e9..240171e9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/uncrustify.css
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/uncrustify.css
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/uncrustify.html b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/uncrustify.html
index 0528eb63..0528eb63 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/uncrustify.html
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/htdocs/uncrustify.html
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/not_a_compiler.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/not_a_compiler.txt
new file mode 100644
index 00000000..439d4309
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/not_a_compiler.txt
@@ -0,0 +1,19 @@
+uncrustify is not a compiler.
+
+Let have a look on:
+
+# if A
+ int abc( int a, int b, int c)
+ {
+ // do something
+# else
+ int abc( int a, int b)
+ {
+ // do something else
+# endif
+ }
+
+It will produce an error, because uncrustify doesn't evaluate the value of A.
+uncrustify will read all the lines, a compiler only a part of it, depending on A.
+
+uncrustify encounter two opening braces but only one closing brace.
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/overview.odt b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/overview.odt
index e14e3285..e14e3285 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/overview.odt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/overview.odt
Binary files differ
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/paren_stack.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/paren_stack.txt
index 109709dc..109709dc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/paren_stack.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/paren_stack.txt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/preprocessor_indentation.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/preprocessor_indentation.txt
new file mode 100644
index 00000000..a82947cb
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/preprocessor_indentation.txt
@@ -0,0 +1,414 @@
+
+Preprocessor blocks can arbitrarily alter the program flow and make indenting
+code a challenging task.
+
+This file covers the following topics:
+1) Uncrustify approach to indentation of preprocessor blocks
+2) Rationale for the chosen approach
+3) Recommendations for the user
+
+
+---------------------------------------------------------
+Uncrustify approach to indentation of preprocessor blocks
+---------------------------------------------------------
+
+Uncrustify handles different preprocessor blocks in different ways.
+There are just three simple rules to remember.
+
+A. #ifdef/#endif block
+----------------------
+The contents of the block are indented starting at the same brace level of the
+code preceding the block. Once #endif is reached, any indentation change caused
+by the block is discarded and the following code continues at the same brace
+level of the code preceding the block.
+
+B. #ifdef/#elif/#else/#endif block
+----------------------------------
+The contents of the #ifdef part of the block are indented starting at the same
+brace level of the code preceding the block.
+Once an #elif/#else is reached, the indentation restarts at the brace level of
+the code preceding the #ifdef part of the block. This is repeated for each
+#else and #elif part.
+Once #endif is reached, the following code continues at the same brace level
+reached at the end of the #ifdef part.
+
+C. #define block
+----------------
+The contents of the block are indented starting anew, therefore not following the
+indentation of the code preceding the block. Once the #define ends, any indentation
+change caused by the block is discarded and the following code continues at the same
+brace level of the code preceding the block.
+
+
+---------------------------------
+Rationale for the chosen approach
+---------------------------------
+
+Preprocessor blocks can be very hard to handle and there is no definitive
+correct way that works in all situations. Therefore a compromise approach is
+required, coupled with warning to the user when tricky code is encountered.
+
+A. #ifdef/#endif block
+----------------------
+Let's start with the simplest case, a balanced #ifdef/#endif block. This is a
+block that starts and ends at the same brace level. For example:
+
+ some code A
+ #ifdef TEST
+ some code B
+ #endif
+ some code C
+
+or
+
+ some code A
+ #ifdef TEST
+ {
+ some code B
+ }
+ #endif
+ some code C
+
+These cases are very easy to handle, since the indentation before, through and after
+the preprocessor block is consistent. There is no alteration of the brace level
+from 'some code A' to 'some code C'. Rule A applies nicely to the above code.
+
+Let's now look at a more complex example.
+
+ some code A
+ #ifdef TEST
+ {
+ some code B
+ #endif
+ some code C
+ #ifdef TEST
+ some code D
+ }
+ #endif
+ some code E
+
+This contains two unbalanced #ifdef blocks. Most likely the programmer intended to
+use them in pair, but that is not important when it comes to indentation. The code
+above could be indented as:
+
+ some code A
+ #ifdef TEST
+ {
+ some code B
+ #endif
+ some code C
+ #ifdef TEST
+ some code D
+ }
+ #endif
+ some code E
+
+or as:
+
+ some code A
+ #ifdef TEST
+ {
+ some code B
+ #endif
+ some code C
+ #ifdef TEST
+ some code D
+ }
+ #endif
+ some code E
+
+Note how 'some code C' is indented differently in the two cases: in the first, the
+indentation change caused by the first #ifdef block is discarded, while in the
+second it is taken into consideration.
+Depending on the options used at compile time, the code in the preprocessor blocks
+could be included or not included in the final code, therefore none of the two
+options is superior to the other. A better approach would be to avoid the use
+of unbalanced preprocessor blocks, so that indentation of the code could be uniquely
+defined.
+Uncrustify follows the first version, discarding indentation changes caused by
+the #ifdef block. Warning messages about unbalanced preprocessor blocks can optionally
+be printed by using the option 'pp_warn_unbalanced_if'.
+
+B. #ifdef/#elif/#else/#endif block
+----------------------------------
+Let's start with the simplest case, a balanced #ifdef/#else/#endif block. This is a
+block where each part starts and ends at the same brace level. For example:
+
+ some code A
+ #ifdef TEST
+ some code B
+ #else
+ some code C
+ #endif
+ some code D
+
+or
+
+ some code A
+ #ifdef TEST
+ {
+ some code B
+ }
+ #else
+ {
+ some code C
+ }
+ #endif
+ some code D
+
+or even:
+
+ some code A
+ #ifdef TEST
+ {
+ some code B
+ }
+ #else
+ some code C
+ #endif
+ some code D
+
+These cases are very easy to handle, since the indentation before, through and after
+the preprocessor blocks is consistent. There is no alteration of the brace level
+from 'some code A' to 'some code D'. Rule B applies nicely to the above code.
+
+Let's now look at a more complex example.
+
+ some code A
+ #ifdef TEST
+ {
+ some code B
+ #else
+ some code C
+ #endif
+ some code D
+ #ifdef TEST
+ some code E
+ }
+ #else
+ some code F
+ #endif
+ some code G
+
+This once again raises the question of where 'some code D' should be placed and
+there is no unique best choice.
+Uncrustify has chosen (for reasons explained further below) to:
+- indent each part of an #ifdef/#elif/#else/#endif block starting at the brace
+level of the code preceding #ifdef.
+- continue after #endif at the indentation level reached at the end of the #ifdef
+part.
+This would result in the following formatted code:
+
+ some code A
+ #ifdef TEST
+ {
+ some code B
+ #else
+ some code C
+ #endif
+ some code D
+ #ifdef TEST
+ some code E
+ }
+ #else
+ some code F
+ #endif
+ some code G
+
+And yes, the indentation of 'some code F' may surprise you a bit.
+Here is an even trickier example:
+
+ some code A
+ #ifdef TEST
+ some code B
+ #else
+ {
+ some code C
+ #endif
+ some code D
+ #ifndef TEST
+ some code E
+ }
+ #else
+ some code F
+ #endif
+ some code G
+
+which results in this bizarre output, where 'some code G' is no
+longer aligned with 'some code A':
+
+ some code A
+ #ifdef TEST
+ some code B
+ #else
+ {
+ some code C
+ #endif
+ some code D
+ #ifndef TEST
+ some code E
+ }
+ #else
+ some code F
+ #endif
+ some code G
+
+So why not simply discard all the indentation changes created by an
+#ifdef/#elif/#else/#endif block? The answer is simple: to make sure things
+still work fine after the #endif line! Without going into too much detail here
+(see the overview.odt and theory.txt files for more info) in addition to the
+visible braces, there is a thing called 'virtual braces' which also affects
+indentation. A common use of #ifdef/#elif/#else/#endif blocks is to do some
+different things on the same set of variables. In this case, there may not be
+any visible brace, but virtual braces may get modified between the code before
+and after the preprocessor block. Throwing away the whole thing would result
+in the code after #endif being formatted in a completely wrong manner.
+As an example, consider this piece of code:
+
+ some code A
+ if (cond1)
+ some var = value1;
+ else
+ some var =
+ #ifdef TEST
+ value2;
+ #else
+ value3;
+ #endif
+ some code B
+
+The formatted version looks exactly like the original. But if the complete
+#ifdef/#else/#endif block was thrown away, the result would be as if 'some code B'
+was being indented as part of the else (not #else) block, at a position just after
+the = symbol. By retaining the changes made in the #ifdef part, the 'else' block
+is correctly handled and 'some code B' is indented as per its original position.
+
+C. #define block
+----------------
+Here is an example showing how #define works. The following code:
+
+ {
+ {
+ some code A
+ #define TEST \
+ { \
+ some defs \
+ }
+ some code B
+ }
+ }
+
+would be formatted as:
+
+ {
+ {
+ some code A
+ #define TEST \
+ { \
+ some defs \
+ }
+ some code B
+ }
+ }
+
+Notice how 'some code B' and 'some code A' are indented in the same way, while the
+#define body starts from anew.
+
+
+----------------------------
+Recommendations for the user
+----------------------------
+The golden rule is to avoid unbalanced preprocessor blocks. This keeps things
+simple and indentation can be uniquely defined. Existing unbalanced blocks should
+be reworked so that all braces are properly balanced, either outside or inside the
+preprocessor blocks.
+If you have a huge code base, it may be difficult to quickly find offending blocks.
+If the option 'pp_warn_unbalanced_if' is set to true, Uncrustify will print warning
+messages at the end of each unbalanced preprocessor block part based on the following rules:
+
+1) unbalanced #ifdef part
+This works for either an #ifdef/#endif block or the first part of an #ifdef/#elif/#else/#endif
+block. If the #ifdef ends at a brace level different from where it starts, a message will
+be displayed, highlighting both the starting and ending indentation levels.
+
+2) unbalanced #elif or #else part
+If such part ends at a different brace level than the corresponding #ifdef part, a message
+will be displayed highlighting the ending indentation levels of both the part in question
+and the respective #ifdef part.
+
+3) unbalanced #define
+If a #define ends at a brace level different from where it starts, a message will
+be displayed, highlighting the ending indentation level.
+
+Here is an example with a mix of balanced and unbalanced blocks, with line numbers in front
+for easier reference:
+
+ 1 void Fun(int &data)
+ 2 {
+ 3 data = 1;
+ 4
+ 5 #ifdef MANUAL_LAYOUT
+ 6 {
+ 7 data = 2;
+ 8 }
+ 9 #endif
+ 10
+ 11 #ifdef MANUAL_LAYOUT
+ 12 {
+ 13 {
+ 14 data = 2;
+ 15 #elif TEST1
+ 16 data = 21;
+ 17 #elif TEST2
+ 18 {
+ 19 data = 22;
+ 20 #elif TEST3
+ 21 {
+ 22 {
+ 23 data = 22;
+ 24 #else
+ 25 {
+ 26 {
+ 27 data = 22;
+ 28 #endif
+ 29
+ 30 data = 3;
+ 31
+ 32 #ifdef MANUAL_LAYOUT
+ 33 {
+ 34 data = 4;
+ 35 #else
+ 36 data = 5;
+ 37 #endif
+ 38
+ 39 #ifdef MANUAL_LAYOUT
+ 40 data = 6;
+ 41 #else
+ 42 data = 7;
+ 43 #endif
+ 44
+ 45 #ifdef MANUAL_LAYOUT
+ 46 }
+ 47 }
+ 48 #endif
+ 49
+ 50 #ifdef MANUAL_LAYOUT
+ 51 }
+ 52 #endif
+ 53
+ 54 data = 8;
+ 55
+ 56 data = 9;
+ 57 }
+
+These are the warning messages related to unbalanced preprocessor blocks
+printed by Uncrustify when 'pp_warn_unbalanced_if' is true.
+
+fl_check(236): orig_line is 15, unbalanced #if block braces (1), in-level is 1, out-level is 3
+fl_check(248): orig_line is 17, unbalanced #if-#else block braces (1), #else out-level is 1, #if out-level is 3
+fl_check(248): orig_line is 20, unbalanced #if-#else block braces (1), #else out-level is 2, #if out-level is 3
+fl_check(236): orig_line is 35, unbalanced #if block braces (1), in-level is 3, out-level is 4
+fl_check(291): orig_line is 37, unbalanced #if-#else block braces (2), #else out-level is 3, #if out-level is 4
+fl_check(321): orig_line is 48, unbalanced #if block braces (2), in-level is 4, out-level is 2
+fl_check(321): orig_line is 52, unbalanced #if block braces (2), in-level is 4, out-level is 3
+
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/theory.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/theory.txt
index 99324855..99324855 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/theory.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/theory.txt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/threads.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/threads.txt
index f6ed4edd..f6ed4edd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/threads.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/threads.txt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/track.html b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/track.html
index e49e4370..e49e4370 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/track.html
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/documentation/track.html
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/CMakeLists.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/emscripten/CMakeLists.txt
index 72b6efa3..72b6efa3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/CMakeLists.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/emscripten/CMakeLists.txt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/CMake_catFiles.cmake b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/emscripten/CMake_catFiles.cmake
index c637ea24..c637ea24 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/CMake_catFiles.cmake
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/emscripten/CMake_catFiles.cmake
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/CMake_emscripten_test.cmake b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/emscripten/CMake_emscripten_test.cmake
index a37ee945..a37ee945 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/CMake_emscripten_test.cmake
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/emscripten/CMake_emscripten_test.cmake
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/README.md b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/emscripten/README.md
index 22012383..22012383 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/README.md
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/emscripten/README.md
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/build.sh b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/emscripten/build.sh
index df4b6fe3..df4b6fe3 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/build.sh
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/emscripten/build.sh
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/libUncrustify.d.ts b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/emscripten/libUncrustify.d.ts
index 1e7b7fb6..1e7b7fb6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/libUncrustify.d.ts
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/emscripten/libUncrustify.d.ts
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/postfix_file b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/emscripten/postfix_file
index 17315134..17315134 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/postfix_file
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/emscripten/postfix_file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/postfix_module.js b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/emscripten/postfix_module.js
index cbf8f57b..cbf8f57b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/postfix_module.js
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/emscripten/postfix_module.js
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/prefix_file b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/emscripten/prefix_file
index 6a6b5e98..6a6b5e98 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/prefix_file
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/emscripten/prefix_file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/prefix_module.js b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/emscripten/prefix_module.js
index 05d09cd7..05d09cd7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/prefix_module.js
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/emscripten/prefix_module.js
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/test/run_tests.py b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/emscripten/test/run_tests.py
index c7a4fcae..c7a4fcae 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/test/run_tests.py
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/emscripten/test/run_tests.py
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/test/test_run.js b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/emscripten/test/test_run.js
index 27627094..27627094 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/test/test_run.js
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/emscripten/test/test_run.js
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/MS-calling_conventions.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/MS-calling_conventions.cfg
index 36e9e14f..36e9e14f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/MS-calling_conventions.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/MS-calling_conventions.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/align_assign.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/align_assign.txt
index ecc85081..ecc85081 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/align_assign.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/align_assign.txt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/amxmodx.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/amxmodx.cfg
index 5f625076..5f625076 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/amxmodx.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/amxmodx.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/ben.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/ben.cfg
new file mode 100644
index 00000000..4ab301ce
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/ben.cfg
@@ -0,0 +1,1213 @@
+#
+# General options
+#
+
+# The type of line endings
+newlines = lf # auto/lf/crlf/cr
+
+# The original size of tabs in the input
+input_tab_size = 8 # number
+
+# The size of tabs in the output (only used if align_with_tabs=true)
+output_tab_size = 3 # number
+
+# The ASCII value of the string escape char, usually 92 (\) or 94 (^). (Pawn)
+string_escape_char = 92 # number
+
+# Alternate string escape char for Pawn. Only works right before the quote char.
+string_escape_char2 = 0 # number
+
+# Replace tab characters found in string literals with the escape sequence \t instead.
+string_replace_tab_chars = false # false/true
+
+# Allow interpreting '>=' and '>>=' as part of a template in 'void f(list<list<B>>=val);'.
+# If true (default), 'assert(x<0 && y>=3)' will be broken.
+# Improvements to template detection may make this option obsolete.
+tok_split_gte = false # false/true
+
+# Override the default ' *INDENT-OFF*' in comments for disabling processing of part of the file.
+disable_processing_cmt = "" # string
+
+# Override the default ' *INDENT-ON*' in comments for enabling processing of part of the file.
+enable_processing_cmt = "" # string
+
+# Enable parsing of digraphs. Default=false
+enable_digraphs = false # false/true
+
+# If the file contains bytes with values between 128 and 255, but is not UTF-8, then output as UTF-8
+utf8_byte = false # false/true
+
+# Force the output encoding to UTF-8
+utf8_force = false # false/true
+
+#
+# Indenting
+#
+
+# The number of columns to indent per level.
+# Usually 2, 3, 4, or 8.
+indent_columns = 3 # number
+
+# The continuation indent. If non-zero, this overrides the indent of '(' and '=' continuation indents.
+# For FreeBSD, this is set to 4. Negative value is absolute and not increased for each ( level
+indent_continue = 0 # number
+
+# How to use tabs when indenting code
+# 0=spaces only
+# 1=indent with tabs to brace level, align with spaces
+# 2=indent and align with tabs, using spaces when not on a tabstop
+indent_with_tabs = 0 # number
+
+# Comments that are not a brace level are indented with tabs on a tabstop.
+# Requires indent_with_tabs=2. If false, will use spaces.
+indent_cmt_with_tabs = false # false/true
+
+# Whether to indent strings broken by '\' so that they line up
+indent_align_string = true # false/true
+
+# The number of spaces to indent multi-line XML strings.
+# Requires indent_align_string=True
+indent_xml_string = 0 # number
+
+# Spaces to indent '{' from level
+indent_brace = 0 # number
+
+# Whether braces are indented to the body level
+indent_braces = false # false/true
+
+# Disabled indenting function braces if indent_braces is true
+indent_braces_no_func = false # false/true
+
+# Disabled indenting class braces if indent_braces is true
+indent_braces_no_class = false # false/true
+
+# Disabled indenting struct braces if indent_braces is true
+indent_braces_no_struct = false # false/true
+
+# Indent based on the size of the brace parent, i.e. 'if' => 3 spaces, 'for' => 4 spaces, etc.
+indent_brace_parent = false # false/true
+
+# Indent based on the paren open instead of the brace open in '({\n', default is to indent by brace.
+indent_paren_open_brace = false # false/true
+
+# Whether the 'namespace' body is indented
+indent_namespace = false # false/true
+
+# Only indent one namespace and no sub-namespaces.
+# Requires indent_namespace=true.
+indent_namespace_single_indent = false # false/true
+
+# The number of spaces to indent a namespace block
+indent_namespace_level = 0 # number
+
+# If the body of the namespace is longer than this number, it won't be indented.
+# Requires indent_namespace=true. Default=0 (no limit)
+indent_namespace_limit = 0 # number
+
+# Whether the 'extern "C"' body is indented
+indent_extern = false # false/true
+
+# Whether the 'class' body is indented
+indent_class = true # false/true
+
+# Whether to indent the stuff after a leading base class colon
+indent_class_colon = true # false/true
+
+# Indent based on a class colon instead of the stuff after the colon.
+# Requires indent_class_colon=true. Default=false
+indent_class_on_colon = false # false/true
+
+# Whether to indent the stuff after a leading class initializer colon
+indent_constr_colon = false # false/true
+
+# Virtual indent from the ':' for member initializers. Default is 2
+indent_ctor_init_leading = 2 # number
+
+# Additional indenting for constructor initializer list
+indent_ctor_init = 0 # number
+
+# False=treat 'else\nif' as 'else if' for indenting purposes
+# True=indent the 'if' one level
+indent_else_if = false # false/true
+
+# Amount to indent variable declarations after a open brace. neg=relative, pos=absolute
+indent_var_def_blk = 0 # number
+
+# Indent continued variable declarations instead of aligning.
+indent_var_def_cont = false # false/true
+
+# How to indent continued shift expressions ('<<' and '>>').
+# Set align_left_shift=false when using this.
+# 0: Align shift operators instead of indenting them (default)
+# 1: Indent by one level
+# -1: Preserve original indentation
+indent_shift = 0 # number
+
+# True: force indentation of function definition to start in column 1
+# False: use the default behavior
+indent_func_def_force_col1 = false # false/true
+
+# True: indent continued function call parameters one indent level
+# False: align parameters under the open paren
+indent_func_call_param = false # false/true
+
+# Same as indent_func_call_param, but for function defs
+indent_func_def_param = false # false/true
+
+# Same as indent_func_call_param, but for function protos
+indent_func_proto_param = false # false/true
+
+# Same as indent_func_call_param, but for class declarations
+indent_func_class_param = false # false/true
+
+# Same as indent_func_call_param, but for class variable constructors
+indent_func_ctor_var_param = false # false/true
+
+# Same as indent_func_call_param, but for templates
+indent_template_param = false # false/true
+
+# Double the indent for indent_func_xxx_param options
+indent_func_param_double = false # false/true
+
+# Indentation column for standalone 'const' function decl/proto qualifier
+indent_func_const = 0 # number
+
+# Indentation column for standalone 'throw' function decl/proto qualifier
+indent_func_throw = 0 # number
+
+# The number of spaces to indent a continued '->' or '.'
+# Usually set to 0, 1, or indent_columns.
+indent_member = 3 # number
+
+# Spaces to indent single line ('//') comments on lines before code
+indent_single_line_comments_before = 0 # number
+
+# If set, will indent trailing single line ('//') comments relative
+# to the code instead of trying to keep the same absolute column
+indent_relative_single_line_comments = false # false/true
+
+# Spaces to indent 'case' from 'switch'
+# Usually 0 or indent_columns.
+indent_switch_case = 0 # number
+
+# Spaces to shift the 'case' line, without affecting any other lines
+# Usually 0.
+indent_case_shift = 0 # number
+
+# Spaces to indent '{' from 'case'.
+# By default, the brace will appear under the 'c' in case.
+# Usually set to 0 or indent_columns.
+indent_case_brace = 3 # number
+
+# Whether to indent comments found in first column
+indent_col1_comment = false # false/true
+
+# How to indent goto labels
+# >0 : absolute column where 1 is the leftmost column
+# <=0 : subtract from brace indent
+indent_label = 1 # number
+
+# Same as indent_label, but for access specifiers that are followed by a colon
+indent_access_spec = 1 # number
+
+# Indent the code after an access specifier by one level.
+# If set, this option forces 'indent_access_spec=0'
+indent_access_spec_body = false # false/true
+
+# If an open paren is followed by a newline, indent the next line so that it lines up after the open paren (not recommended)
+indent_paren_nl = false # false/true
+
+# Controls the indent of a close paren after a newline.
+# 0: Indent to body level
+# 1: Align under the open paren
+# 2: Indent to the brace level
+# -1: Preserve original indentation
+indent_paren_close = 0 # number
+
+# Controls the indent of a comma when inside a paren.If 1, aligns under the open paren
+indent_comma_paren = 0 # number
+
+# Controls the indent of a BOOL operator when inside a paren.If 1, aligns under the open paren
+indent_bool_paren = 0 # number
+
+# If 'indent_bool_paren' is 1, controls the indent of the first expression. If TRUE, aligns the first expression to the following ones
+indent_first_bool_expr = false # false/true
+
+# If an open square is followed by a newline, indent the next line so that it lines up after the open square (not recommended)
+indent_square_nl = false # false/true
+
+# Don't change the relative indent of ESQL/C 'EXEC SQL' bodies
+indent_preserve_sql = false # false/true
+
+# Align continued statements at the '='. Default=True
+# If FALSE or the '=' is followed by a newline, the next line is indent one tab.
+indent_align_assign = true # false/true
+
+# Indent OC blocks at brace level instead of usual rules.
+indent_oc_block = false # false/true
+
+# Indent OC blocks in a message relative to the parameter name.
+# 0=use indent_oc_block rules, 1+=spaces to indent
+indent_oc_block_msg = 0 # number
+
+# Minimum indent for subsequent parameters
+indent_oc_msg_colon = 0 # number
+
+# If true, prioritize aligning with initial colon (and stripping spaces from lines, if necessary).
+# Default is true.
+indent_oc_msg_prioritize_first_colon = true # false/true
+
+# If indent_oc_block_msg and this option are on, blocks will be indented the way that Xcode does by default (from keyword if the parameter is on its own line; otherwise, from the previous indentation level).
+indent_oc_block_msg_xcode_style = false # false/true
+
+# If indent_oc_block_msg and this option are on, blocks will be indented from where the brace is relative to a msg keyword.
+indent_oc_block_msg_from_keyword = false # false/true
+
+# If indent_oc_block_msg and this option are on, blocks will be indented from where the brace is relative to a msg colon.
+indent_oc_block_msg_from_colon = false # false/true
+
+# If indent_oc_block_msg and this option are on, blocks will be indented from where the block caret is.
+indent_oc_block_msg_from_caret = false # false/true
+
+# If indent_oc_block_msg and this option are on, blocks will be indented from where the brace is.
+indent_oc_block_msg_from_brace = false # false/true
+
+# When identing after virtual brace open and newline add further spaces to reach this min. indent.
+indent_min_vbrace_open = 0 # number
+
+# TRUE: When identing after virtual brace open and newline add further spaces after regular indent to reach next tabstop.
+indent_vbrace_open_on_tabstop = false # false/true
+
+#
+# Spacing options
+#
+
+# Add or remove space around arithmetic operator '+', '-', '/', '*', etc
+# also '>>>' '<<' '>>' '%' '|'
+sp_arith = force # ignore/add/remove/force
+
+# Add or remove space around assignment operator '=', '+=', etc
+sp_assign = force # ignore/add/remove/force
+
+# Add or remove space around preprocessor '##' concatenation operator. Default=Add
+sp_pp_concat = add # ignore/add/remove/force
+
+# Add or remove space after preprocessor '#' stringify operator. Also affects the '#@' charizing operator.
+sp_pp_stringify = add # ignore/add/remove/force
+
+# Add or remove space around boolean operators '&&' and '||'
+sp_bool = force # ignore/add/remove/force
+
+# Add or remove space around compare operator '<', '>', '==', etc
+sp_compare = force # ignore/add/remove/force
+
+# Add or remove space inside '(' and ')'
+sp_inside_paren = remove # ignore/add/remove/force
+
+# Add or remove space between nested parens: '((' vs ') )'
+sp_paren_paren = remove # ignore/add/remove/force
+
+# Whether to balance spaces inside nested parens
+sp_balance_nested_parens = false # false/true
+
+# Add or remove space before pointer star '*'
+sp_before_ptr_star = force # ignore/add/remove/force
+
+# Add or remove space between pointer stars '*'
+sp_between_ptr_star = remove # ignore/add/remove/force
+
+# Add or remove space after pointer star '*', if followed by a word.
+sp_after_ptr_star = remove # ignore/add/remove/force
+
+# Add or remove space before a reference sign '&'
+sp_before_byref = remove # ignore/add/remove/force
+
+# Add or remove space after reference sign '&', if followed by a word.
+sp_after_byref = force # ignore/add/remove/force
+
+# Add or remove space between type and word. Default=Force
+sp_after_type = force # ignore/add/remove/force
+
+# Add or remove space before '<>'
+sp_before_angle = remove # ignore/add/remove/force
+
+# Add or remove space inside '<' and '>'
+sp_inside_angle = remove # ignore/add/remove/force
+
+# Add or remove space after '<>'
+sp_after_angle = force # ignore/add/remove/force
+
+# Add or remove space between '>' and '>' in '>>' (template stuff C++/C# only). Default=Add
+sp_angle_shift = add # ignore/add/remove/force
+
+# Permit removal of the space between '>>' in 'foo<bar<int> >' (C++11 only). Default=False
+# sp_angle_shift cannot remove the space without this option.
+sp_permit_cpp11_shift = false # false/true
+
+# Add or remove space before '(' of 'if', 'for', 'switch', 'while', etc.
+sp_before_sparen = force # ignore/add/remove/force
+
+# Add or remove space inside if-condition '(' and ')'
+sp_inside_sparen = remove # ignore/add/remove/force
+
+# Add or remove space inside for-loop '(' and ')'
+sp_inside_for = remove # ignore/add/remove/force
+
+# Add or remove space after ')' of 'if', 'for', 'switch', and 'while', etc.
+sp_after_sparen = force # ignore/add/remove/force
+
+# Add or remove space between ')' and '{' of 'if', 'for', 'switch', and 'while', etc.
+sp_sparen_brace = add # ignore/add/remove/force
+
+# Add or remove space before ';'. Default=Remove
+sp_before_semi = remove # ignore/add/remove/force
+
+# Add or remove space before a semicolon of an empty left part of a for statement.
+sp_before_semi_for_empty = force # ignore/add/remove/force
+
+# Add or remove space between the semicolons of an empty middle part of a for statement.
+sp_between_semi_for_empty = force # ignore/add/remove/force
+
+# Add or remove space after ';', except when followed by a comment. Default=Add
+sp_after_semi = add # ignore/add/remove/force
+
+# Add or remove space after ';' in non-empty 'for' statements. Default=Force
+sp_after_semi_for = force # ignore/add/remove/force
+
+# Add or remove space inside a non-empty '[' and ']'
+sp_inside_square = remove # ignore/add/remove/force
+
+# Add or remove space after ','
+sp_after_comma = force # ignore/add/remove/force
+
+# Add or remove space before ','
+sp_before_comma = remove # ignore/add/remove/force
+
+# Add or remove space between an open paren and comma: '(,' vs '( ,'
+sp_paren_comma = force # ignore/add/remove/force
+
+# Add or remove space before case ':'. Default=Remove
+sp_before_case_colon = remove # ignore/add/remove/force
+
+# Add or remove space after C/D cast, i.e. 'cast(int)a' vs 'cast(int) a' or '(int)a' vs '(int) a'
+sp_after_cast = remove # ignore/add/remove/force
+
+# Add or remove space between 'sizeof' and '('
+sp_sizeof_paren = remove # ignore/add/remove/force
+
+# Add or remove space inside enum '{' and '}'
+sp_inside_braces_enum = force # ignore/add/remove/force
+
+# Add or remove space inside struct/union '{' and '}'
+sp_inside_braces_struct = force # ignore/add/remove/force
+
+# Add or remove space inside '{' and '}'
+sp_inside_braces = force # ignore/add/remove/force
+
+# Add or remove space between return type and function name
+# A minimum of 1 is forced except for pointer return types.
+sp_type_func = force # ignore/add/remove/force
+
+# Add or remove space between function name and '(' on function declaration
+sp_func_proto_paren = remove # ignore/add/remove/force
+
+# Add or remove space between function name and '(' on function definition
+sp_func_def_paren = remove # ignore/add/remove/force
+
+# Add or remove space inside function '(' and ')'
+sp_inside_fparen = remove # ignore/add/remove/force
+
+# Add or remove space between ')' and '{' of function
+sp_fparen_brace = add # ignore/add/remove/force
+
+# Add or remove space between function name and '(' on function calls
+sp_func_call_paren = remove # ignore/add/remove/force
+
+# Add or remove space between a constructor/destructor and the open paren
+sp_func_class_paren = remove # ignore/add/remove/force
+
+# Add or remove space between 'return' and '('
+sp_return_paren = remove # ignore/add/remove/force
+
+# Add or remove space between '}' and the name of a typedef on the same line
+sp_brace_typedef = force # ignore/add/remove/force
+
+# Add or remove space between type and open brace of an unnamed temporary
+# direct-list-initialization.
+sp_type_brace_init_lst = add # ignore/add/remove/force
+
+# Add or remove space between a variable and '{' for a namespace
+sp_word_brace_ns = add # ignore/add/remove/force
+
+# Add or remove space before the '::' operator
+sp_before_dc = remove # ignore/add/remove/force
+
+# Add or remove space after the '::' operator
+sp_after_dc = remove # ignore/add/remove/force
+
+# Add or remove space after the '!' (not) operator. Default=Remove
+sp_not = remove # ignore/add/remove/force
+
+# Add or remove space after the '~' (invert) operator. Default=Remove
+sp_inv = remove # ignore/add/remove/force
+
+# Add or remove space after the '&' (address-of) operator. Default=Remove
+# This does not affect the spacing after a '&' that is part of a type.
+sp_addr = remove # ignore/add/remove/force
+
+# Add or remove space around the '.' or '->' operators. Default=Remove
+sp_member = remove # ignore/add/remove/force
+
+# Add or remove space after the '*' (dereference) operator. Default=Remove
+# This does not affect the spacing after a '*' that is part of a type.
+sp_deref = remove # ignore/add/remove/force
+
+# Add or remove space after '+' or '-', as in 'x = -5' or 'y = +7'. Default=Remove
+sp_sign = remove # ignore/add/remove/force
+
+# Add or remove space before or after '++' and '--', as in '(--x)' or 'y++;'. Default=Remove
+sp_incdec = remove # ignore/add/remove/force
+
+# Add or remove space before a backslash-newline at the end of a line. Default=Add
+sp_before_nl_cont = add # ignore/add/remove/force
+
+# Fix the spacing between 'case' and the label. Only 'ignore' and 'force' make sense here.
+sp_case_label = remove # ignore/add/remove/force
+
+# TRUE: If space is added with sp_cmt_cpp_start, do it after doxygen sequences like '///', '///<', '//!' and '//!<'.
+sp_cmt_cpp_doxygen = false # false/true
+
+# TRUE: If space is added with sp_cmt_cpp_start, do it after Qt translator or meta-data comments like '//:', '//=', and '//~'.
+sp_cmt_cpp_qttr = false # false/true
+
+# Number of spaces before a trailing comment
+sp_num_before_tr_cmt = 0 # number
+
+#
+# Code alignment (not left column spaces/tabs)
+#
+
+# Whether to keep non-indenting tabs
+align_keep_tabs = false # false/true
+
+# Whether to use tabs for aligning
+align_with_tabs = false # false/true
+
+# Whether to bump out to the next tab when aligning
+align_on_tabstop = false # false/true
+
+# Whether to right-align numbers
+align_number_right = true # false/true
+
+# Whether to keep whitespace not required for alignment.
+align_keep_extra_space = false # false/true
+
+# Align variable definitions in prototypes and functions
+align_func_params = true # false/true
+
+# Align parameters in single-line functions that have the same name.
+# The function names must already be aligned with each other.
+align_same_func_call_params = false # false/true
+
+# The span for aligning parameters in single line functions with the same name (0=don't align).
+align_same_func_call_params_span = 0 # unsigned number
+
+# The thresh for aligning function call parameters (0=no limit).
+align_same_func_call_params_thresh = 0 # unsigned number
+
+# The span for aligning variable definitions (0=don't align)
+align_var_def_span = 1 # number
+
+# How to align the star in variable definitions.
+# 0=Part of the type 'void * foo;'
+# 1=Part of the variable 'void *foo;'
+# 2=Dangling 'void *foo;'
+align_var_def_star_style = 1 # number
+
+# How to align the '&' in variable definitions.
+# 0=Part of the type
+# 1=Part of the variable
+# 2=Dangling
+align_var_def_amp_style = 0 # number
+
+# The threshold for aligning variable definitions (0=no limit)
+align_var_def_thresh = 16 # number
+
+# The gap for aligning variable definitions
+align_var_def_gap = 0 # number
+
+# Whether to align the colon in struct bit fields
+align_var_def_colon = true # false/true
+
+# Whether to align any attribute after the variable name
+align_var_def_attribute = false # false/true
+
+# Whether to align inline struct/enum/union variable definitions
+align_var_def_inline = true # false/true
+
+# The span for aligning on '=' in assignments (0=don't align)
+align_assign_span = 1 # number
+
+# The threshold for aligning on '=' in assignments (0=no limit)
+align_assign_thresh = 12 # number
+
+# The span for aligning on '=' in enums (0=don't align)
+align_enum_equ_span = 16 # number
+
+# The threshold for aligning on '=' in enums (0=no limit)
+align_enum_equ_thresh = 0 # number
+
+# The span for aligning struct/union (0=don't align)
+align_var_struct_span = 99 # number
+
+# The threshold for aligning struct/union member definitions (0=no limit)
+align_var_struct_thresh = 0 # number
+
+# The gap for aligning struct/union member definitions
+align_var_struct_gap = 0 # number
+
+# The span for aligning struct initializer values (0=don't align)
+align_struct_init_span = 3 # number
+
+# The minimum space between the type and the synonym of a typedef
+align_typedef_gap = 3 # number
+
+# The span for aligning single-line typedefs (0=don't align)
+align_typedef_span = 5 # number
+
+# How to align typedef'd functions with other typedefs
+# 0: Don't mix them at all
+# 1: align the open paren with the types
+# 2: align the function type name with the other type names
+align_typedef_func = 0 # number
+
+# Controls the positioning of the '*' in typedefs. Just try it.
+# 0: Align on typedef type, ignore '*'
+# 1: The '*' is part of type name: typedef int *pint;
+# 2: The '*' is part of the type, but dangling: typedef int *pint;
+align_typedef_star_style = 0 # number
+
+# Controls the positioning of the '&' in typedefs. Just try it.
+# 0: Align on typedef type, ignore '&'
+# 1: The '&' is part of type name: typedef int &pint;
+# 2: The '&' is part of the type, but dangling: typedef int &pint;
+align_typedef_amp_style = 0 # number
+
+# The span for aligning comments that end lines (0=don't align)
+align_right_cmt_span = 3 # number
+
+# If aligning comments, mix with comments after '}' and #endif with less than 3 spaces before the comment
+align_right_cmt_mix = false # false/true
+
+# If a trailing comment is more than this number of columns away from the text it follows,
+# it will qualify for being aligned. This has to be > 0 to do anything.
+align_right_cmt_gap = 0 # number
+
+# Align trailing comment at or beyond column N; 'pulls in' comments as a bonus side effect (0=ignore)
+align_right_cmt_at_col = 0 # number
+
+# The span for aligning function prototypes (0=don't align)
+align_func_proto_span = 0 # number
+
+# Minimum gap between the return type and the function name.
+align_func_proto_gap = 0 # number
+
+# Align function protos on the 'operator' keyword instead of what follows
+align_on_operator = false # false/true
+
+# Whether to mix aligning prototype and variable declarations.
+# If true, align_var_def_XXX options are used instead of align_func_proto_XXX options.
+align_mix_var_proto = false # false/true
+
+# Align single-line functions with function prototypes, uses align_func_proto_span
+align_single_line_func = false # false/true
+
+# Aligning the open brace of single-line functions.
+# Requires align_single_line_func=true, uses align_func_proto_span
+align_single_line_brace = false # false/true
+
+# Gap for align_single_line_brace.
+align_single_line_brace_gap = 0 # number
+
+# The span for aligning ObjC msg spec (0=don't align)
+align_oc_msg_spec_span = 0 # number
+
+# Whether to align macros wrapped with a backslash and a newline.
+# This will not work right if the macro contains a multi-line comment.
+align_nl_cont = true # false/true
+
+# # Align macro functions and variables together
+align_pp_define_together = false # false/true
+
+# The minimum space between label and value of a preprocessor define
+align_pp_define_gap = 4 # number
+
+# The span for aligning on '#define' bodies (0=don't align, other=number of lines including comments between blocks)
+align_pp_define_span = 3 # number
+
+# Align lines that start with '<<' with previous '<<'. Default=true
+align_left_shift = true # false/true
+
+# Align text after asm volatile () colons.
+align_asm_colon = true # false/true
+
+# Span for aligning parameters in an Obj-C message call on the ':' (0=don't align)
+align_oc_msg_colon_span = 0 # number
+
+# If true, always align with the first parameter, even if it is too short.
+align_oc_msg_colon_first = false # false/true
+
+# Aligning parameters in an Obj-C '+' or '-' declaration on the ':'
+align_oc_decl_colon = false # false/true
+
+#
+# Newline adding and removing options
+#
+
+# Whether to collapse empty blocks between '{' and '}'
+nl_collapse_empty_body = false # false/true
+
+# Don't split one-line braced assignments - 'foo_t f = { 1, 2 };'
+nl_assign_leave_one_liners = true # false/true
+
+# Don't split one-line braced statements inside a class xx { } body
+nl_class_leave_one_liners = true # false/true
+
+# Don't split one-line enums: 'enum foo { BAR = 15 };'
+nl_enum_leave_one_liners = false # false/true
+
+# Don't split one-line get or set functions
+nl_getset_leave_one_liners = false # false/true
+
+# Don't split one-line function definitions - 'int foo() { return 0; }'
+nl_func_leave_one_liners = false # false/true
+
+# Don't split one-line C++11 lambdas - '[]() { return 0; }'
+nl_cpp_lambda_leave_one_liners = false # false/true
+
+# Don't split one-line if/else statements - 'if(a) b++;'
+nl_if_leave_one_liners = false # false/true
+
+# Don't split one-line while statements - 'while(a) b++;'
+nl_while_leave_one_liners = false # false/true
+
+# Don't split one-line OC messages
+nl_oc_msg_leave_one_liner = false # false/true
+
+# Add or remove newlines at the start of the file
+nl_start_of_file = remove # ignore/add/remove/force
+
+# The number of newlines at the start of the file (only used if nl_start_of_file is 'add' or 'force'
+nl_start_of_file_min = 0 # number
+
+# Add or remove newline at the end of the file
+nl_end_of_file = force # ignore/add/remove/force
+
+# The number of newlines at the end of the file (only used if nl_end_of_file is 'add' or 'force')
+nl_end_of_file_min = 1 # number
+
+# Add or remove newline between '=' and '{'
+nl_assign_brace = add # ignore/add/remove/force
+
+# The number of blank lines after a block of variable definitions at the top of a function body
+# 0 = No change (default)
+nl_func_var_def_blk = 1 # number
+
+# The number of newlines before a block of typedefs
+# 0 = No change (default)
+nl_typedef_blk_start = 0 # number
+
+# The number of newlines after a block of typedefs
+# 0 = No change (default)
+nl_typedef_blk_end = 0 # number
+
+# The maximum consecutive newlines within a block of typedefs
+# 0 = No change (default)
+nl_typedef_blk_in = 0 # number
+
+# The number of newlines before a block of variable definitions not at the top of a function body
+# 0 = No change (default)
+nl_var_def_blk_start = 0 # number
+
+# The number of newlines after a block of variable definitions not at the top of a function body
+# 0 = No change (default)
+nl_var_def_blk_end = 0 # number
+
+# The maximum consecutive newlines within a block of variable definitions
+# 0 = No change (default)
+nl_var_def_blk_in = 0 # number
+
+# Add or remove newline between a function call's ')' and '{', as in:
+# list_for_each(item, &list) { }
+nl_fcall_brace = add # ignore/add/remove/force
+
+# Add or remove newline between 'enum' and '{'
+nl_enum_brace = force # ignore/add/remove/force
+
+# Add or remove newline between 'struct and '{'
+nl_struct_brace = force # ignore/add/remove/force
+
+# Add or remove newline between 'union' and '{'
+nl_union_brace = force # ignore/add/remove/force
+
+# Add or remove newline between 'if' and '{'
+nl_if_brace = add # ignore/add/remove/force
+
+# Add or remove newline between '}' and 'else'
+nl_brace_else = add # ignore/add/remove/force
+
+# Add or remove newline between 'else' and '{'
+nl_else_brace = add # ignore/add/remove/force
+
+# Add or remove newline between get/set and '{'
+nl_getset_brace = force # ignore/add/remove/force
+
+# Add or remove newline between 'for' and '{'
+nl_for_brace = add # ignore/add/remove/force
+
+# Add or remove newline between 'while' and '{'
+nl_while_brace = add # ignore/add/remove/force
+
+# Add or remove newline between 'do' and '{'
+nl_do_brace = add # ignore/add/remove/force
+
+# Add or remove newline between '}' and 'while' of 'do' statement
+nl_brace_while = remove # ignore/add/remove/force
+
+# Add or remove newline between 'switch' and '{'
+nl_switch_brace = add # ignore/add/remove/force
+
+# Add a newline between ')' and '{' if the ')' is on a different line than the if/for/etc.
+# Overrides nl_for_brace, nl_if_brace, nl_switch_brace, nl_while_switch, and nl_catch_brace.
+nl_multi_line_cond = false # false/true
+
+# Force a newline in a define after the macro name for multi-line defines.
+nl_multi_line_define = true # false/true
+
+# Whether to put a newline before 'case' statement
+nl_before_case = true # false/true
+
+# Whether to put a newline after 'case' statement
+nl_after_case = true # false/true
+
+# Add or remove newline between a function name and the opening '('
+nl_func_paren = remove # ignore/add/remove/force
+
+# Whether to put each OC message parameter on a separate line
+# See nl_oc_msg_leave_one_liner
+nl_oc_msg_args = false # false/true
+
+# Add or remove newline between function signature and '{'
+nl_fdef_brace = add # ignore/add/remove/force
+
+# Whether to put a newline after semicolons, except in 'for' statements
+nl_after_semicolon = true # false/true
+
+# Whether to put a newline after brace open.
+nl_after_brace_open = true # false/true
+
+# If nl_after_brace_open and nl_after_brace_open_cmt are true, a newline is
+# placed between the open brace and a trailing single-line comment.
+nl_after_brace_open_cmt = false # false/true
+
+# Whether to put a newline after a virtual brace open with a non-empty body.
+# These occur in un-braced if/while/do/for statement bodies.
+nl_after_vbrace_open = false # false/true
+
+# Whether to put a newline after a virtual brace open with an empty body.
+# These occur in un-braced if/while/do/for statement bodies.
+nl_after_vbrace_open_empty = false # false/true
+
+# Whether to put a newline after a brace close.
+# Does not apply if followed by a necessary ';'.
+nl_after_brace_close = true # false/true
+
+# Whether to put a newline after a virtual brace close.
+# Would add a newline before return in: 'if (foo) a++; return;'
+nl_after_vbrace_close = false # false/true
+
+# Whether to alter newlines in '#define' macros
+nl_define_macro = false # false/true
+
+# Whether to not put blanks after '#ifxx', '#elxx', or before '#endif'. Does not affect the whole-file #ifdef.
+nl_squeeze_ifdef = true # false/true
+
+# Whether to double-space commented-entries in struct/enum
+nl_ds_struct_enum_cmt = false # false/true
+
+# Whether to double-space before the close brace of a struct/union/enum
+# (lower priority than 'eat_blanks_before_close_brace')
+nl_ds_struct_enum_close_brace = false # false/true
+
+# Change simple unbraced if statements into a one-liner
+# 'if(b)\n i++;' => 'if(b) i++;'
+nl_create_if_one_liner = false # false/true
+
+# Change simple unbraced for statements into a one-liner
+# 'for (i=0;i<5;i++)\n foo(i);' => 'for (i=0;i<5;i++) foo(i);'
+nl_create_for_one_liner = false # false/true
+
+# Change simple unbraced while statements into a one-liner
+# 'while (i<5)\n foo(i++);' => 'while (i<5) foo(i++);'
+nl_create_while_one_liner = false # false/true
+
+#
+# Positioning options
+#
+
+# The position of boolean operators in wrapped expressions
+pos_bool = trail # ignore/join/lead/lead_break/lead_force/trail/trail_break/trail_force
+
+#
+# Line Splitting options
+#
+
+# Try to limit code width to N number of columns
+code_width = 0 # number
+
+# Whether to fully split long 'for' statements at semi-colons
+ls_for_split_full = false # false/true
+
+# Whether to fully split long function protos/calls at commas
+ls_func_split_full = false # false/true
+
+# Whether to split lines as close to code_width as possible and ignore some groupings
+ls_code_width = false # false/true
+
+#
+# Blank line options
+#
+
+# The maximum consecutive newlines
+nl_max = 4 # number
+
+# The number of newlines after a function prototype, if followed by another function prototype
+nl_after_func_proto = 0 # number
+
+# The number of newlines after a function prototype, if not followed by another function prototype
+nl_after_func_proto_group = 2 # number
+
+# The number of newlines after '}' of a multi-line function body
+nl_after_func_body = 3 # number
+
+# The number of newlines after '}' of a multi-line function body in a class declaration
+nl_after_func_body_class = 2 # number
+
+# The number of newlines after '}' of a single line function body
+nl_after_func_body_one_liner = 0 # number
+
+# The minimum number of newlines before a multi-line comment.
+# Doesn't apply if after a brace open or another multi-line comment.
+nl_before_block_comment = 2 # number
+
+# The minimum number of newlines before a single-line C comment.
+# Doesn't apply if after a brace open or other single-line C comments.
+nl_before_c_comment = 0 # number
+
+# The minimum number of newlines before a CPP comment.
+# Doesn't apply if after a brace open or other CPP comments.
+nl_before_cpp_comment = 0 # number
+
+# Whether to force a newline after a multi-line comment.
+nl_after_multiline_comment = false # false/true
+
+# Whether to force a newline after a label's colon.
+nl_after_label_colon = false # false/true
+
+# The number of newlines after '}' or ';' of a struct/enum/union definition
+nl_after_struct = 0 # number
+
+# The number of newlines after '}' or ';' of a class definition
+nl_after_class = 0 # number
+
+# The number of newlines after '}' of a namespace
+nl_after_namespace = 0 # number
+
+# The number of newlines before a 'private:', 'public:', 'protected:', 'signals:', or 'slots:' label.
+# Will not change the newline count if after a brace open.
+# 0 = No change.
+nl_before_access_spec = 0 # number
+
+# The number of newlines after a 'private:', 'public:', 'protected:', 'signals:', or 'slots:' label.
+# 0 = No change.
+nl_after_access_spec = 0 # number
+
+# The number of newlines between a function def and the function comment.
+# 0 = No change.
+nl_comment_func_def = 1 # number
+
+# The number of newlines after a try-catch-finally block that isn't followed by a brace close.
+# 0 = No change.
+nl_after_try_catch_finally = 0 # number
+
+# The number of newlines before and after a property, indexer or event decl.
+# 0 = No change.
+nl_around_cs_property = 0 # number
+
+# The number of newlines between the get/set/add/remove handlers in C#.
+# 0 = No change.
+nl_between_get_set = 0 # number
+
+# Whether to remove blank lines after '{'
+eat_blanks_after_open_brace = true # false/true
+
+# Whether to remove blank lines before '}'
+eat_blanks_before_close_brace = true # false/true
+
+# How aggressively to remove extra newlines not in preproc.
+# 0: No change
+# 1: Remove most newlines not handled by other config
+# 2: Remove all newlines and reformat completely by config
+nl_remove_extra_newlines = 0 # number
+
+# Whether to put a blank line before 'return' statements, unless after an open brace.
+nl_before_return = false # false/true
+
+# Whether to put a blank line after 'return' statements, unless followed by a close brace.
+nl_after_return = true # false/true
+
+#
+# Code modifying options (non-whitespace)
+#
+
+# Add or remove braces on single-line 'do' statement
+mod_full_brace_do = add # ignore/add/remove/force
+
+# Add or remove braces on single-line 'for' statement
+mod_full_brace_for = add # ignore/add/remove/force
+
+# Add or remove braces on single-line 'if' statement. Will not remove the braces if they contain an 'else'.
+mod_full_brace_if = add # ignore/add/remove/force
+
+# Make all if/elseif/else statements in a chain be braced or not. Overrides mod_full_brace_if.
+# If any must be braced, they are all braced. If all can be unbraced, then the braces are removed.
+mod_full_brace_if_chain = 0 # unsigned number
+
+# Don't remove braces around statements that span N newlines
+mod_full_brace_nl = 0 # number
+
+# Add or remove braces on single-line 'while' statement
+mod_full_brace_while = add # ignore/add/remove/force
+
+# Whether to change optional semicolons to real semicolons
+mod_pawn_semicolon = false # false/true
+
+# Add parens on 'while' and 'if' statement around bools
+mod_full_paren_if_bool = true # false/true
+
+# Whether to remove superfluous semicolons
+mod_remove_extra_semicolon = true # false/true
+
+# If a function body exceeds the specified number of newlines and doesn't have a comment after
+# the close brace, a comment will be added.
+mod_add_long_function_closebrace_comment = 0 # number
+
+# If a namespace body exceeds the specified number of newlines and doesn't have a comment after
+# the close brace, a comment will be added.
+mod_add_long_namespace_closebrace_comment = 0 # number
+
+# If a switch body exceeds the specified number of newlines and doesn't have a comment after
+# the close brace, a comment will be added.
+mod_add_long_switch_closebrace_comment = 0 # number
+
+# If an #ifdef body exceeds the specified number of newlines and doesn't have a comment after
+# the #endif, a comment will be added.
+mod_add_long_ifdef_endif_comment = 0 # number
+
+# If an #ifdef or #else body exceeds the specified number of newlines and doesn't have a comment after
+# the #else, a comment will be added.
+mod_add_long_ifdef_else_comment = 0 # number
+
+# If TRUE, will sort consecutive single-line 'import' statements [Java, D]
+mod_sort_import = false # false/true
+
+# If TRUE, will sort consecutive single-line 'using' statements [C#]
+mod_sort_using = false # false/true
+
+# If TRUE, will sort consecutive single-line '#include' statements [C/C++] and '#import' statements [Obj-C]
+# This is generally a bad idea, as it may break your code.
+mod_sort_include = false # false/true
+
+# If TRUE, it will move a 'break' that appears after a fully braced 'case' before the close brace.
+mod_move_case_break = false # false/true
+
+# Will add or remove the braces around a fully braced case statement.
+# Will only remove the braces if there are no variable declarations in the block.
+mod_case_brace = remove # ignore/add/remove/force
+
+# If TRUE, it will remove a void 'return;' that appears as the last statement in a function.
+mod_remove_empty_return = true # false/true
+
+#
+# Comment modifications
+#
+
+# Try to wrap comments at cmt_width columns
+cmt_width = 0 # number
+
+# Set the comment reflow mode (default: 0)
+# 0: no reflowing (apart from the line wrapping due to cmt_width)
+# 1: no touching at all
+# 2: full reflow
+cmt_reflow_mode = 0 # number
+
+# Whether to convert all tabs to spaces in comments. Default is to leave tabs inside comments alone, unless used for indenting.
+cmt_convert_tab_to_spaces = false # false/true
+
+# If false, disable all multi-line comment changes, including cmt_width. keyword substitution, and leading chars.
+# Default is true.
+cmt_indent_multi = true # false/true
+
+# Whether to group c-comments that look like they are in a block
+cmt_c_group = false # false/true
+
+# Whether to put an empty '/*' on the first line of the combined c-comment
+cmt_c_nl_start = false # false/true
+
+# Whether to put a newline before the closing '*/' of the combined c-comment
+cmt_c_nl_end = false # false/true
+
+# Whether to group cpp-comments that look like they are in a block
+cmt_cpp_group = false # false/true
+
+# Whether to put an empty '/*' on the first line of the combined cpp-comment
+cmt_cpp_nl_start = false # false/true
+
+# Whether to put a newline before the closing '*/' of the combined cpp-comment
+cmt_cpp_nl_end = false # false/true
+
+# Whether to change cpp-comments into c-comments
+cmt_cpp_to_c = false # false/true
+
+# Whether to put a star on subsequent comment lines
+cmt_star_cont = true # false/true
+
+# The number of spaces to insert at the start of subsequent comment lines
+cmt_sp_before_star_cont = 0 # number
+
+# The number of spaces to insert after the star on subsequent comment lines
+cmt_sp_after_star_cont = 0 # number
+
+# For multi-line comments with a '*' lead, remove leading spaces if the first and last lines of
+# the comment are the same length. Default=True
+cmt_multi_check_last = true # false/true
+
+# The filename that contains text to insert at the head of a file if the file doesn't start with a C/C++ comment.
+# Will substitute $(filename) with the current file's name.
+cmt_insert_file_header = "" # string
+
+# The filename that contains text to insert at the end of a file if the file doesn't end with a C/C++ comment.
+# Will substitute $(filename) with the current file's name.
+cmt_insert_file_footer = "" # string
+
+# The filename that contains text to insert before a function implementation if the function isn't preceded with a C/C++ comment.
+# Will substitute $(function) with the function name and $(javaparam) with the javadoc @param and @return stuff.
+# Will also substitute $(fclass) with the class name: void CFoo::Bar() { ... }
+cmt_insert_func_header = "" # string
+
+# The filename that contains text to insert before a class if the class isn't preceded with a C/C++ comment.
+# Will substitute $(class) with the class name.
+cmt_insert_class_header = "" # string
+
+# The filename that contains text to insert before a Obj-C message specification if the method isn't preceded with a C/C++ comment.
+# Will substitute $(message) with the function name and $(javaparam) with the javadoc @param and @return stuff.
+cmt_insert_oc_msg_header = "" # string
+
+# If a preprocessor is encountered when stepping backwards from a function name, then
+# this option decides whether the comment should be inserted.
+# Affects cmt_insert_oc_msg_header, cmt_insert_func_header and cmt_insert_class_header.
+cmt_insert_before_preproc = false # false/true
+
+#
+# Preprocessor options
+#
+
+# Control indent of preprocessors inside #if blocks at brace level 0 (file-level)
+pp_indent = remove # ignore/add/remove/force
+
+# Whether to indent #if/#else/#endif at the brace level (true) or from column 1 (false)
+pp_indent_at_level = false # false/true
+
+# Whether to indent #if/#else/#endif at the parenthesis level if the brace
+# level is 0. If false, these are indented from column 1.
+pp_indent_at_level0 = false # false/true
+
+# Specifies the number of columns to indent preprocessors per level at brace level 0 (file-level).
+# If pp_indent_at_level=false, specifies the number of columns to indent preprocessors per level at brace level > 0 (function-level).
+# Default=1.
+pp_indent_count = 1 # number
+
+# Sets the number of spaces added with pp_space
+pp_space_count = 0 # number
+
+# The indent for #region and #endregion in C# and '#pragma region' in C/C++
+pp_indent_region = 0 # number
+
+# Whether to indent the code between #region and #endregion
+pp_region_indent_code = false # false/true
+
+# If pp_indent_at_level=true, sets the indent for #if, #else, and #endif when not at file-level.
+# 0: indent preprocessors using output_tab_size.
+# >0: column at which all preprocessors will be indented.
+pp_indent_if = 0 # number
+
+# Control whether to indent the code between #if, #else and #endif.
+pp_if_indent_code = false # false/true
+
+# Whether to indent '#define' at the brace level (true) or from column 1 (false)
+pp_define_at_level = false # false/true
+
+#
+# Use or Do not Use options
+#
+
+# True: indent_func_call_param will be used
+# False: indent_func_call_param will NOT be used
+use_indent_func_call_param = true # false/true
+
+# True: indent_continue will be used only once
+# False: indent_continue will be used every time (default)
+use_indent_continue_only_once = false # false/true
+
+# You can force a token to be a type with the 'type' option.
+# Example:
+# type myfoo1 myfoo2
+#
+# You can create custom macro-based indentation using macro-open,
+# macro-else and macro-close.
+# Example:
+# macro-open BEGIN_TEMPLATE_MESSAGE_MAP
+# macro-open BEGIN_MESSAGE_MAP
+# macro-close END_MESSAGE_MAP
+#
+# You can assign any keyword to any type with the set option.
+# set func_call_user _ N_
+#
+# The full syntax description of all custom definition config entries
+# is shown below:
+#
+# define custom tokens as:
+# - embed whitespace in token using '' escape character, or
+# put token in quotes
+# - these: ' " and ` are recognized as quote delimiters
+#
+# type token1 token2 token3 ...
+# ^ optionally specify multiple tokens on a single line
+# define def_token output_token
+# ^ output_token is optional, then NULL is assumed
+# macro-open token
+# macro-close token
+# macro-else token
+# set id token1 token2 ...
+# ^ optionally specify multiple tokens on a single line
+# ^ id is one of the names in token_enum.h sans the CT_ prefix,
+# e.g. PP_PRAGMA
+#
+# all tokens are separated by any mix of ',' commas, '=' equal signs
+# and whitespace (space, tab)
+#
+# You can add support for other file extensions using the 'file_ext' command.
+# The first arg is the language name used with the '-l' option.
+# The remaining args are file extensions, matched with 'endswith'.
+# file_ext CPP .ch .cxx .cpp.in
+#
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/ben2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/ben2.cfg
index 38464c10..38464c10 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/ben2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/ben2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/d.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/d.cfg
index e69c37c7..e69c37c7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/d.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/d.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/defaults.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/defaults.cfg
new file mode 100644
index 00000000..571f4038
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/defaults.cfg
@@ -0,0 +1,3493 @@
+# Uncrustify-0.75.0
+
+#
+# General options
+#
+
+# The type of line endings.
+#
+# Default: auto
+newlines = auto # lf/crlf/cr/auto
+
+# The original size of tabs in the input.
+#
+# Default: 8
+input_tab_size = 8 # unsigned number
+
+# The size of tabs in the output (only used if align_with_tabs=true).
+#
+# Default: 8
+output_tab_size = 8 # unsigned number
+
+# The ASCII value of the string escape char, usually 92 (\) or (Pawn) 94 (^).
+#
+# Default: 92
+string_escape_char = 92 # unsigned number
+
+# Alternate string escape char (usually only used for Pawn).
+# Only works right before the quote char.
+string_escape_char2 = 0 # unsigned number
+
+# Replace tab characters found in string literals with the escape sequence \t
+# instead.
+string_replace_tab_chars = false # true/false
+
+# Allow interpreting '>=' and '>>=' as part of a template in code like
+# 'void f(list<list<B>>=val);'. If true, 'assert(x<0 && y>=3)' will be broken.
+# Improvements to template detection may make this option obsolete.
+tok_split_gte = false # true/false
+
+# Disable formatting of NL_CONT ('\\n') ended lines (e.g. multi-line macros).
+disable_processing_nl_cont = false # true/false
+
+# Specify the marker used in comments to disable processing of part of the
+# file.
+#
+# Default: *INDENT-OFF*
+disable_processing_cmt = " *INDENT-OFF*" # string
+
+# Specify the marker used in comments to (re)enable processing in a file.
+#
+# Default: *INDENT-ON*
+enable_processing_cmt = " *INDENT-ON*" # string
+
+# Enable parsing of digraphs.
+enable_digraphs = false # true/false
+
+# Option to allow both disable_processing_cmt and enable_processing_cmt
+# strings, if specified, to be interpreted as ECMAScript regular expressions.
+# If true, a regex search will be performed within comments according to the
+# specified patterns in order to disable/enable processing.
+processing_cmt_as_regex = false # true/false
+
+# Add or remove the UTF-8 BOM (recommend 'remove').
+utf8_bom = ignore # ignore/add/remove/force/not_defined
+
+# If the file contains bytes with values between 128 and 255, but is not
+# UTF-8, then output as UTF-8.
+utf8_byte = false # true/false
+
+# Force the output encoding to UTF-8.
+utf8_force = false # true/false
+
+#
+# Spacing options
+#
+
+# Add or remove space around non-assignment symbolic operators ('+', '/', '%',
+# '<<', and so forth).
+sp_arith = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space around arithmetic operators '+' and '-'.
+#
+# Overrides sp_arith.
+sp_arith_additive = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space around assignment operator '=', '+=', etc.
+sp_assign = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space around '=' in C++11 lambda capture specifications.
+#
+# Overrides sp_assign.
+sp_cpp_lambda_assign = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after the capture specification of a C++11 lambda when
+# an argument list is present, as in '[] <here> (int x){ ... }'.
+sp_cpp_lambda_square_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after the capture specification of a C++11 lambda with
+# no argument list is present, as in '[] <here> { ... }'.
+sp_cpp_lambda_square_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after the opening parenthesis and before the closing
+# parenthesis of a argument list of a C++11 lambda, as in
+# '[]( <here> int x <here> ){ ... }'.
+sp_cpp_lambda_argument_list = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after the argument list of a C++11 lambda, as in
+# '[](int x) <here> { ... }'.
+sp_cpp_lambda_paren_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between a lambda body and its call operator of an
+# immediately invoked lambda, as in '[]( ... ){ ... } <here> ( ... )'.
+sp_cpp_lambda_fparen = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space around assignment operator '=' in a prototype.
+#
+# If set to ignore, use sp_assign.
+sp_assign_default = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before assignment operator '=', '+=', etc.
+#
+# Overrides sp_assign.
+sp_before_assign = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after assignment operator '=', '+=', etc.
+#
+# Overrides sp_assign.
+sp_after_assign = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space in 'enum {'.
+#
+# Default: add
+sp_enum_brace = add # ignore/add/remove/force/not_defined
+
+# Add or remove space in 'NS_ENUM ('.
+sp_enum_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space around assignment '=' in enum.
+sp_enum_assign = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before assignment '=' in enum.
+#
+# Overrides sp_enum_assign.
+sp_enum_before_assign = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after assignment '=' in enum.
+#
+# Overrides sp_enum_assign.
+sp_enum_after_assign = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space around assignment ':' in enum.
+sp_enum_colon = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space around preprocessor '##' concatenation operator.
+#
+# Default: add
+sp_pp_concat = add # ignore/add/remove/force/not_defined
+
+# Add or remove space after preprocessor '#' stringify operator.
+# Also affects the '#@' charizing operator.
+sp_pp_stringify = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before preprocessor '#' stringify operator
+# as in '#define x(y) L#y'.
+sp_before_pp_stringify = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space around boolean operators '&&' and '||'.
+sp_bool = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space around compare operator '<', '>', '==', etc.
+sp_compare = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space inside '(' and ')'.
+sp_inside_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between nested parentheses, i.e. '((' vs. ') )'.
+sp_paren_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between back-to-back parentheses, i.e. ')(' vs. ') ('.
+sp_cparen_oparen = ignore # ignore/add/remove/force/not_defined
+
+# Whether to balance spaces inside nested parentheses.
+sp_balance_nested_parens = false # true/false
+
+# Add or remove space between ')' and '{'.
+sp_paren_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between nested braces, i.e. '{{' vs. '{ {'.
+sp_brace_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before pointer star '*'.
+sp_before_ptr_star = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before pointer star '*' that isn't followed by a
+# variable name. If set to ignore, sp_before_ptr_star is used instead.
+sp_before_unnamed_ptr_star = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between pointer stars '*', as in 'int ***a;'.
+sp_between_ptr_star = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after pointer star '*', if followed by a word.
+#
+# Overrides sp_type_func.
+sp_after_ptr_star = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after pointer caret '^', if followed by a word.
+sp_after_ptr_block_caret = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after pointer star '*', if followed by a qualifier.
+sp_after_ptr_star_qualifier = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after a pointer star '*', if followed by a function
+# prototype or function definition.
+#
+# Overrides sp_after_ptr_star and sp_type_func.
+sp_after_ptr_star_func = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after a pointer star '*' in the trailing return of a
+# function prototype or function definition.
+sp_after_ptr_star_trailing = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between the pointer star '*' and the name of the variable
+# in a function pointer definition.
+sp_ptr_star_func_var = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between the pointer star '*' and the name of the type
+# in a function pointer type definition.
+sp_ptr_star_func_type = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after a pointer star '*', if followed by an open
+# parenthesis, as in 'void* (*)()'.
+sp_ptr_star_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before a pointer star '*', if followed by a function
+# prototype or function definition.
+sp_before_ptr_star_func = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before a pointer star '*' in the trailing return of a
+# function prototype or function definition.
+sp_before_ptr_star_trailing = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before a reference sign '&'.
+sp_before_byref = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before a reference sign '&' that isn't followed by a
+# variable name. If set to ignore, sp_before_byref is used instead.
+sp_before_unnamed_byref = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after reference sign '&', if followed by a word.
+#
+# Overrides sp_type_func.
+sp_after_byref = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after a reference sign '&', if followed by a function
+# prototype or function definition.
+#
+# Overrides sp_after_byref and sp_type_func.
+sp_after_byref_func = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before a reference sign '&', if followed by a function
+# prototype or function definition.
+sp_before_byref_func = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after a reference sign '&', if followed by an open
+# parenthesis, as in 'char& (*)()'.
+sp_byref_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between type and word. In cases where total removal of
+# whitespace would be a syntax error, a value of 'remove' is treated the same
+# as 'force'.
+#
+# This also affects some other instances of space following a type that are
+# not covered by other options; for example, between the return type and
+# parenthesis of a function type template argument, between the type and
+# parenthesis of an array parameter, or between 'decltype(...)' and the
+# following word.
+#
+# Default: force
+sp_after_type = force # ignore/add/remove/force/not_defined
+
+# Add or remove space between 'decltype(...)' and word,
+# brace or function call.
+sp_after_decltype = ignore # ignore/add/remove/force/not_defined
+
+# (D) Add or remove space before the parenthesis in the D constructs
+# 'template Foo(' and 'class Foo('.
+sp_before_template_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between 'template' and '<'.
+# If set to ignore, sp_before_angle is used.
+sp_template_angle = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before '<'.
+sp_before_angle = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space inside '<' and '>'.
+sp_inside_angle = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space inside '<>'.
+sp_inside_angle_empty = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between '>' and ':'.
+sp_angle_colon = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after '>'.
+sp_after_angle = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between '>' and '(' as found in 'new List<byte>(foo);'.
+sp_angle_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between '>' and '()' as found in 'new List<byte>();'.
+sp_angle_paren_empty = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between '>' and a word as in 'List<byte> m;' or
+# 'template <typename T> static ...'.
+sp_angle_word = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between '>' and '>' in '>>' (template stuff).
+#
+# Default: add
+sp_angle_shift = add # ignore/add/remove/force/not_defined
+
+# (C++11) Permit removal of the space between '>>' in 'foo<bar<int> >'. Note
+# that sp_angle_shift cannot remove the space without this option.
+sp_permit_cpp11_shift = false # true/false
+
+# Add or remove space before '(' of control statements ('if', 'for', 'switch',
+# 'while', etc.).
+sp_before_sparen = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space inside '(' and ')' of control statements other than
+# 'for'.
+sp_inside_sparen = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after '(' of control statements other than 'for'.
+#
+# Overrides sp_inside_sparen.
+sp_inside_sparen_open = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before ')' of control statements other than 'for'.
+#
+# Overrides sp_inside_sparen.
+sp_inside_sparen_close = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space inside '(' and ')' of 'for' statements.
+sp_inside_for = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after '(' of 'for' statements.
+#
+# Overrides sp_inside_for.
+sp_inside_for_open = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before ')' of 'for' statements.
+#
+# Overrides sp_inside_for.
+sp_inside_for_close = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between '((' or '))' of control statements.
+sp_sparen_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after ')' of control statements.
+sp_after_sparen = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between ')' and '{' of control statements.
+sp_sparen_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between 'do' and '{'.
+sp_do_brace_open = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between '}' and 'while'.
+sp_brace_close_while = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between 'while' and '('. Overrides sp_before_sparen.
+sp_while_paren_open = ignore # ignore/add/remove/force/not_defined
+
+# (D) Add or remove space between 'invariant' and '('.
+sp_invariant_paren = ignore # ignore/add/remove/force/not_defined
+
+# (D) Add or remove space after the ')' in 'invariant (C) c'.
+sp_after_invariant_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before empty statement ';' on 'if', 'for' and 'while'.
+sp_special_semi = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before ';'.
+#
+# Default: remove
+sp_before_semi = remove # ignore/add/remove/force/not_defined
+
+# Add or remove space before ';' in non-empty 'for' statements.
+sp_before_semi_for = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before a semicolon of an empty left part of a for
+# statement, as in 'for ( <here> ; ; )'.
+sp_before_semi_for_empty = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between the semicolons of an empty middle part of a for
+# statement, as in 'for ( ; <here> ; )'.
+sp_between_semi_for_empty = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after ';', except when followed by a comment.
+#
+# Default: add
+sp_after_semi = add # ignore/add/remove/force/not_defined
+
+# Add or remove space after ';' in non-empty 'for' statements.
+#
+# Default: force
+sp_after_semi_for = force # ignore/add/remove/force/not_defined
+
+# Add or remove space after the final semicolon of an empty part of a for
+# statement, as in 'for ( ; ; <here> )'.
+sp_after_semi_for_empty = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before '[' (except '[]').
+sp_before_square = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before '[' for a variable definition.
+#
+# Default: remove
+sp_before_vardef_square = remove # ignore/add/remove/force/not_defined
+
+# Add or remove space before '[' for asm block.
+sp_before_square_asm_block = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before '[]'.
+sp_before_squares = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before C++17 structured bindings.
+sp_cpp_before_struct_binding = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space inside a non-empty '[' and ']'.
+sp_inside_square = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space inside '[]'.
+sp_inside_square_empty = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space inside a non-empty Objective-C boxed array '@[' and
+# ']'. If set to ignore, sp_inside_square is used.
+sp_inside_square_oc_array = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after ',', i.e. 'a,b' vs. 'a, b'.
+sp_after_comma = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before ',', i.e. 'a,b' vs. 'a ,b'.
+#
+# Default: remove
+sp_before_comma = remove # ignore/add/remove/force/not_defined
+
+# (C#) Add or remove space between ',' and ']' in multidimensional array type
+# like 'int[,,]'.
+sp_after_mdatype_commas = ignore # ignore/add/remove/force/not_defined
+
+# (C#) Add or remove space between '[' and ',' in multidimensional array type
+# like 'int[,,]'.
+sp_before_mdatype_commas = ignore # ignore/add/remove/force/not_defined
+
+# (C#) Add or remove space between ',' in multidimensional array type
+# like 'int[,,]'.
+sp_between_mdatype_commas = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between an open parenthesis and comma,
+# i.e. '(,' vs. '( ,'.
+#
+# Default: force
+sp_paren_comma = force # ignore/add/remove/force/not_defined
+
+# Add or remove space between a type and ':'.
+sp_type_colon = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after the variadic '...' when preceded by a
+# non-punctuator.
+# The value REMOVE will be overridden with FORCE
+sp_after_ellipsis = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before the variadic '...' when preceded by a
+# non-punctuator.
+# The value REMOVE will be overridden with FORCE
+sp_before_ellipsis = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between a type and '...'.
+sp_type_ellipsis = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between a '*' and '...'.
+sp_ptr_type_ellipsis = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between ')' and '...'.
+sp_paren_ellipsis = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between '&&' and '...'.
+sp_byref_ellipsis = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between ')' and a qualifier such as 'const'.
+sp_paren_qualifier = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between ')' and 'noexcept'.
+sp_paren_noexcept = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after class ':'.
+sp_after_class_colon = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before class ':'.
+sp_before_class_colon = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after class constructor ':'.
+#
+# Default: add
+sp_after_constr_colon = add # ignore/add/remove/force/not_defined
+
+# Add or remove space before class constructor ':'.
+#
+# Default: add
+sp_before_constr_colon = add # ignore/add/remove/force/not_defined
+
+# Add or remove space before case ':'.
+#
+# Default: remove
+sp_before_case_colon = remove # ignore/add/remove/force/not_defined
+
+# Add or remove space between 'operator' and operator sign.
+sp_after_operator = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between the operator symbol and the open parenthesis, as
+# in 'operator ++('.
+sp_after_operator_sym = ignore # ignore/add/remove/force/not_defined
+
+# Overrides sp_after_operator_sym when the operator has no arguments, as in
+# 'operator *()'.
+sp_after_operator_sym_empty = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after C/D cast, i.e. 'cast(int)a' vs. 'cast(int) a' or
+# '(int)a' vs. '(int) a'.
+sp_after_cast = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove spaces inside cast parentheses.
+sp_inside_paren_cast = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between the type and open parenthesis in a C++ cast,
+# i.e. 'int(exp)' vs. 'int (exp)'.
+sp_cpp_cast_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between 'sizeof' and '('.
+sp_sizeof_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between 'sizeof' and '...'.
+sp_sizeof_ellipsis = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between 'sizeof...' and '('.
+sp_sizeof_ellipsis_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between '...' and a parameter pack.
+sp_ellipsis_parameter_pack = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between a parameter pack and '...'.
+sp_parameter_pack_ellipsis = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between 'decltype' and '('.
+sp_decltype_paren = ignore # ignore/add/remove/force/not_defined
+
+# (Pawn) Add or remove space after the tag keyword.
+sp_after_tag = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space inside enum '{' and '}'.
+sp_inside_braces_enum = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space inside struct/union '{' and '}'.
+sp_inside_braces_struct = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space inside Objective-C boxed dictionary '{' and '}'
+sp_inside_braces_oc_dict = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after open brace in an unnamed temporary
+# direct-list-initialization
+# if statement is a brace_init_lst
+# works only if sp_brace_brace is set to ignore.
+sp_after_type_brace_init_lst_open = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before close brace in an unnamed temporary
+# direct-list-initialization
+# if statement is a brace_init_lst
+# works only if sp_brace_brace is set to ignore.
+sp_before_type_brace_init_lst_close = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space inside an unnamed temporary direct-list-initialization
+# if statement is a brace_init_lst
+# works only if sp_brace_brace is set to ignore
+# works only if sp_before_type_brace_init_lst_close is set to ignore.
+sp_inside_type_brace_init_lst = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space inside '{' and '}'.
+sp_inside_braces = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space inside '{}'.
+sp_inside_braces_empty = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space around trailing return operator '->'.
+sp_trailing_return = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between return type and function name. A minimum of 1
+# is forced except for pointer return types.
+sp_type_func = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between type and open brace of an unnamed temporary
+# direct-list-initialization.
+sp_type_brace_init_lst = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between function name and '(' on function declaration.
+sp_func_proto_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between function name and '()' on function declaration
+# without parameters.
+sp_func_proto_paren_empty = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between function name and '(' with a typedef specifier.
+sp_func_type_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between alias name and '(' of a non-pointer function type typedef.
+sp_func_def_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between function name and '()' on function definition
+# without parameters.
+sp_func_def_paren_empty = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space inside empty function '()'.
+# Overrides sp_after_angle unless use_sp_after_angle_always is set to true.
+sp_inside_fparens = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space inside function '(' and ')'.
+sp_inside_fparen = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space inside the first parentheses in a function type, as in
+# 'void (*x)(...)'.
+sp_inside_tparen = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between the ')' and '(' in a function type, as in
+# 'void (*x)(...)'.
+sp_after_tparen_close = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between ']' and '(' when part of a function call.
+sp_square_fparen = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between ')' and '{' of function.
+sp_fparen_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between ')' and '{' of a function call in object
+# initialization.
+#
+# Overrides sp_fparen_brace.
+sp_fparen_brace_initializer = ignore # ignore/add/remove/force/not_defined
+
+# (Java) Add or remove space between ')' and '{{' of double brace initializer.
+sp_fparen_dbrace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between function name and '(' on function calls.
+sp_func_call_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between function name and '()' on function calls without
+# parameters. If set to ignore (the default), sp_func_call_paren is used.
+sp_func_call_paren_empty = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between the user function name and '(' on function
+# calls. You need to set a keyword to be a user function in the config file,
+# like:
+# set func_call_user tr _ i18n
+sp_func_call_user_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space inside user function '(' and ')'.
+sp_func_call_user_inside_fparen = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between nested parentheses with user functions,
+# i.e. '((' vs. '( ('.
+sp_func_call_user_paren_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between a constructor/destructor and the open
+# parenthesis.
+sp_func_class_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between a constructor without parameters or destructor
+# and '()'.
+sp_func_class_paren_empty = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after 'return'.
+#
+# Default: force
+sp_return = force # ignore/add/remove/force/not_defined
+
+# Add or remove space between 'return' and '('.
+sp_return_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between 'return' and '{'.
+sp_return_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between '__attribute__' and '('.
+sp_attribute_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between 'defined' and '(' in '#if defined (FOO)'.
+sp_defined_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between 'throw' and '(' in 'throw (something)'.
+sp_throw_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between 'throw' and anything other than '(' as in
+# '@throw [...];'.
+sp_after_throw = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between 'catch' and '(' in 'catch (something) { }'.
+# If set to ignore, sp_before_sparen is used.
+sp_catch_paren = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space between '@catch' and '('
+# in '@catch (something) { }'. If set to ignore, sp_catch_paren is used.
+sp_oc_catch_paren = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space before Objective-C protocol list
+# as in '@protocol Protocol<here><Protocol_A>' or '@interface MyClass : NSObject<here><MyProtocol>'.
+sp_before_oc_proto_list = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space between class name and '('
+# in '@interface className(categoryName)<ProtocolName>:BaseClass'
+sp_oc_classname_paren = ignore # ignore/add/remove/force/not_defined
+
+# (D) Add or remove space between 'version' and '('
+# in 'version (something) { }'. If set to ignore, sp_before_sparen is used.
+sp_version_paren = ignore # ignore/add/remove/force/not_defined
+
+# (D) Add or remove space between 'scope' and '('
+# in 'scope (something) { }'. If set to ignore, sp_before_sparen is used.
+sp_scope_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between 'super' and '(' in 'super (something)'.
+#
+# Default: remove
+sp_super_paren = remove # ignore/add/remove/force/not_defined
+
+# Add or remove space between 'this' and '(' in 'this (something)'.
+#
+# Default: remove
+sp_this_paren = remove # ignore/add/remove/force/not_defined
+
+# Add or remove space between a macro name and its definition.
+sp_macro = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between a macro function ')' and its definition.
+sp_macro_func = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between 'else' and '{' if on the same line.
+sp_else_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between '}' and 'else' if on the same line.
+sp_brace_else = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between '}' and the name of a typedef on the same line.
+sp_brace_typedef = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before the '{' of a 'catch' statement, if the '{' and
+# 'catch' are on the same line, as in 'catch (decl) <here> {'.
+sp_catch_brace = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space before the '{' of a '@catch' statement, if the '{'
+# and '@catch' are on the same line, as in '@catch (decl) <here> {'.
+# If set to ignore, sp_catch_brace is used.
+sp_oc_catch_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between '}' and 'catch' if on the same line.
+sp_brace_catch = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space between '}' and '@catch' if on the same line.
+# If set to ignore, sp_brace_catch is used.
+sp_oc_brace_catch = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between 'finally' and '{' if on the same line.
+sp_finally_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between '}' and 'finally' if on the same line.
+sp_brace_finally = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between 'try' and '{' if on the same line.
+sp_try_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between get/set and '{' if on the same line.
+sp_getset_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between a variable and '{' for C++ uniform
+# initialization.
+sp_word_brace_init_lst = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between a variable and '{' for a namespace.
+#
+# Default: add
+sp_word_brace_ns = add # ignore/add/remove/force/not_defined
+
+# Add or remove space before the '::' operator.
+sp_before_dc = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after the '::' operator.
+sp_after_dc = ignore # ignore/add/remove/force/not_defined
+
+# (D) Add or remove around the D named array initializer ':' operator.
+sp_d_array_colon = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after the '!' (not) unary operator.
+#
+# Default: remove
+sp_not = remove # ignore/add/remove/force/not_defined
+
+# Add or remove space between two '!' (not) unary operators.
+# If set to ignore, sp_not will be used.
+sp_not_not = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after the '~' (invert) unary operator.
+#
+# Default: remove
+sp_inv = remove # ignore/add/remove/force/not_defined
+
+# Add or remove space after the '&' (address-of) unary operator. This does not
+# affect the spacing after a '&' that is part of a type.
+#
+# Default: remove
+sp_addr = remove # ignore/add/remove/force/not_defined
+
+# Add or remove space around the '.' or '->' operators.
+#
+# Default: remove
+sp_member = remove # ignore/add/remove/force/not_defined
+
+# Add or remove space after the '*' (dereference) unary operator. This does
+# not affect the spacing after a '*' that is part of a type.
+#
+# Default: remove
+sp_deref = remove # ignore/add/remove/force/not_defined
+
+# Add or remove space after '+' or '-', as in 'x = -5' or 'y = +7'.
+#
+# Default: remove
+sp_sign = remove # ignore/add/remove/force/not_defined
+
+# Add or remove space between '++' and '--' the word to which it is being
+# applied, as in '(--x)' or 'y++;'.
+#
+# Default: remove
+sp_incdec = remove # ignore/add/remove/force/not_defined
+
+# Add or remove space before a backslash-newline at the end of a line.
+#
+# Default: add
+sp_before_nl_cont = add # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space after the scope '+' or '-', as in '-(void) foo;'
+# or '+(int) bar;'.
+sp_after_oc_scope = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space after the colon in message specs,
+# i.e. '-(int) f:(int) x;' vs. '-(int) f: (int) x;'.
+sp_after_oc_colon = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space before the colon in message specs,
+# i.e. '-(int) f: (int) x;' vs. '-(int) f : (int) x;'.
+sp_before_oc_colon = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space after the colon in immutable dictionary expression
+# 'NSDictionary *test = @{@"foo" :@"bar"};'.
+sp_after_oc_dict_colon = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space before the colon in immutable dictionary expression
+# 'NSDictionary *test = @{@"foo" :@"bar"};'.
+sp_before_oc_dict_colon = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space after the colon in message specs,
+# i.e. '[object setValue:1];' vs. '[object setValue: 1];'.
+sp_after_send_oc_colon = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space before the colon in message specs,
+# i.e. '[object setValue:1];' vs. '[object setValue :1];'.
+sp_before_send_oc_colon = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space after the (type) in message specs,
+# i.e. '-(int)f: (int) x;' vs. '-(int)f: (int)x;'.
+sp_after_oc_type = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space after the first (type) in message specs,
+# i.e. '-(int) f:(int)x;' vs. '-(int)f:(int)x;'.
+sp_after_oc_return_type = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space between '@selector' and '(',
+# i.e. '@selector(msgName)' vs. '@selector (msgName)'.
+# Also applies to '@protocol()' constructs.
+sp_after_oc_at_sel = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space between '@selector(x)' and the following word,
+# i.e. '@selector(foo) a:' vs. '@selector(foo)a:'.
+sp_after_oc_at_sel_parens = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space inside '@selector' parentheses,
+# i.e. '@selector(foo)' vs. '@selector( foo )'.
+# Also applies to '@protocol()' constructs.
+sp_inside_oc_at_sel_parens = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space before a block pointer caret,
+# i.e. '^int (int arg){...}' vs. ' ^int (int arg){...}'.
+sp_before_oc_block_caret = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space after a block pointer caret,
+# i.e. '^int (int arg){...}' vs. '^ int (int arg){...}'.
+sp_after_oc_block_caret = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space between the receiver and selector in a message,
+# as in '[receiver selector ...]'.
+sp_after_oc_msg_receiver = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space after '@property'.
+sp_after_oc_property = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove space between '@synchronized' and the open parenthesis,
+# i.e. '@synchronized(foo)' vs. '@synchronized (foo)'.
+sp_after_oc_synchronized = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space around the ':' in 'b ? t : f'.
+sp_cond_colon = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before the ':' in 'b ? t : f'.
+#
+# Overrides sp_cond_colon.
+sp_cond_colon_before = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after the ':' in 'b ? t : f'.
+#
+# Overrides sp_cond_colon.
+sp_cond_colon_after = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space around the '?' in 'b ? t : f'.
+sp_cond_question = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before the '?' in 'b ? t : f'.
+#
+# Overrides sp_cond_question.
+sp_cond_question_before = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after the '?' in 'b ? t : f'.
+#
+# Overrides sp_cond_question.
+sp_cond_question_after = ignore # ignore/add/remove/force/not_defined
+
+# In the abbreviated ternary form '(a ?: b)', add or remove space between '?'
+# and ':'.
+#
+# Overrides all other sp_cond_* options.
+sp_cond_ternary_short = ignore # ignore/add/remove/force/not_defined
+
+# Fix the spacing between 'case' and the label. Only 'ignore' and 'force' make
+# sense here.
+sp_case_label = ignore # ignore/add/remove/force/not_defined
+
+# (D) Add or remove space around the D '..' operator.
+sp_range = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after ':' in a Java/C++11 range-based 'for',
+# as in 'for (Type var : <here> expr)'.
+sp_after_for_colon = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before ':' in a Java/C++11 range-based 'for',
+# as in 'for (Type var <here> : expr)'.
+sp_before_for_colon = ignore # ignore/add/remove/force/not_defined
+
+# (D) Add or remove space between 'extern' and '(' as in 'extern <here> (C)'.
+sp_extern_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after the opening of a C++ comment, as in '// <here> A'.
+sp_cmt_cpp_start = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space in a C++ region marker comment, as in '// <here> BEGIN'.
+# A region marker is defined as a comment which is not preceded by other text
+# (i.e. the comment is the first non-whitespace on the line), and which starts
+# with either 'BEGIN' or 'END'.
+#
+# Overrides sp_cmt_cpp_start.
+sp_cmt_cpp_region = ignore # ignore/add/remove/force/not_defined
+
+# If true, space added with sp_cmt_cpp_start will be added after Doxygen
+# sequences like '///', '///<', '//!' and '//!<'.
+sp_cmt_cpp_doxygen = false # true/false
+
+# If true, space added with sp_cmt_cpp_start will be added after Qt translator
+# or meta-data comments like '//:', '//=', and '//~'.
+sp_cmt_cpp_qttr = false # true/false
+
+# Add or remove space between #else or #endif and a trailing comment.
+sp_endif_cmt = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after 'new', 'delete' and 'delete[]'.
+sp_after_new = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between 'new' and '(' in 'new()'.
+sp_between_new_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space between ')' and type in 'new(foo) BAR'.
+sp_after_newop_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space inside parenthesis of the new operator
+# as in 'new(foo) BAR'.
+sp_inside_newop_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after the open parenthesis of the new operator,
+# as in 'new(foo) BAR'.
+#
+# Overrides sp_inside_newop_paren.
+sp_inside_newop_paren_open = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before the close parenthesis of the new operator,
+# as in 'new(foo) BAR'.
+#
+# Overrides sp_inside_newop_paren.
+sp_inside_newop_paren_close = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space before a trailing comment.
+sp_before_tr_cmt = ignore # ignore/add/remove/force/not_defined
+
+# Number of spaces before a trailing comment.
+sp_num_before_tr_cmt = 0 # unsigned number
+
+# Add or remove space before an embedded comment.
+#
+# Default: force
+sp_before_emb_cmt = force # ignore/add/remove/force/not_defined
+
+# Number of spaces before an embedded comment.
+#
+# Default: 1
+sp_num_before_emb_cmt = 1 # unsigned number
+
+# Add or remove space after an embedded comment.
+#
+# Default: force
+sp_after_emb_cmt = force # ignore/add/remove/force/not_defined
+
+# Number of spaces after an embedded comment.
+#
+# Default: 1
+sp_num_after_emb_cmt = 1 # unsigned number
+
+# (Java) Add or remove space between an annotation and the open parenthesis.
+sp_annotation_paren = ignore # ignore/add/remove/force/not_defined
+
+# If true, vbrace tokens are dropped to the previous token and skipped.
+sp_skip_vbrace_tokens = false # true/false
+
+# Add or remove space after 'noexcept'.
+sp_after_noexcept = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove space after '_'.
+sp_vala_after_translation = ignore # ignore/add/remove/force/not_defined
+
+# If true, a <TAB> is inserted after #define.
+force_tab_after_define = false # true/false
+
+#
+# Indenting options
+#
+
+# The number of columns to indent per level. Usually 2, 3, 4, or 8.
+#
+# Default: 8
+indent_columns = 8 # unsigned number
+
+# Whether to ignore indent for the first continuation line. Subsequent
+# continuation lines will still be indented to match the first.
+indent_ignore_first_continue = false # true/false
+
+# The continuation indent. If non-zero, this overrides the indent of '(', '['
+# and '=' continuation indents. Negative values are OK; negative value is
+# absolute and not increased for each '(' or '[' level.
+#
+# For FreeBSD, this is set to 4.
+# Requires indent_ignore_first_continue=false.
+indent_continue = 0 # number
+
+# The continuation indent, only for class header line(s). If non-zero, this
+# overrides the indent of 'class' continuation indents.
+# Requires indent_ignore_first_continue=false.
+indent_continue_class_head = 0 # unsigned number
+
+# Whether to indent empty lines (i.e. lines which contain only spaces before
+# the newline character).
+indent_single_newlines = false # true/false
+
+# The continuation indent for func_*_param if they are true. If non-zero, this
+# overrides the indent.
+indent_param = 0 # unsigned number
+
+# How to use tabs when indenting code.
+#
+# 0: Spaces only
+# 1: Indent with tabs to brace level, align with spaces (default)
+# 2: Indent and align with tabs, using spaces when not on a tabstop
+#
+# Default: 1
+indent_with_tabs = 1 # unsigned number
+
+# Whether to indent comments that are not at a brace level with tabs on a
+# tabstop. Requires indent_with_tabs=2. If false, will use spaces.
+indent_cmt_with_tabs = false # true/false
+
+# Whether to indent strings broken by '\' so that they line up.
+indent_align_string = false # true/false
+
+# The number of spaces to indent multi-line XML strings.
+# Requires indent_align_string=true.
+indent_xml_string = 0 # unsigned number
+
+# Spaces to indent '{' from level.
+indent_brace = 0 # unsigned number
+
+# Whether braces are indented to the body level.
+indent_braces = false # true/false
+
+# Whether to disable indenting function braces if indent_braces=true.
+indent_braces_no_func = false # true/false
+
+# Whether to disable indenting class braces if indent_braces=true.
+indent_braces_no_class = false # true/false
+
+# Whether to disable indenting struct braces if indent_braces=true.
+indent_braces_no_struct = false # true/false
+
+# Whether to indent based on the size of the brace parent,
+# i.e. 'if' => 3 spaces, 'for' => 4 spaces, etc.
+indent_brace_parent = false # true/false
+
+# Whether to indent based on the open parenthesis instead of the open brace
+# in '({\n'.
+indent_paren_open_brace = false # true/false
+
+# (C#) Whether to indent the brace of a C# delegate by another level.
+indent_cs_delegate_brace = false # true/false
+
+# (C#) Whether to indent a C# delegate (to handle delegates with no brace) by
+# another level.
+indent_cs_delegate_body = false # true/false
+
+# Whether to indent the body of a 'namespace'.
+indent_namespace = false # true/false
+
+# Whether to indent only the first namespace, and not any nested namespaces.
+# Requires indent_namespace=true.
+indent_namespace_single_indent = false # true/false
+
+# The number of spaces to indent a namespace block.
+# If set to zero, use the value indent_columns
+indent_namespace_level = 0 # unsigned number
+
+# If the body of the namespace is longer than this number, it won't be
+# indented. Requires indent_namespace=true. 0 means no limit.
+indent_namespace_limit = 0 # unsigned number
+
+# Whether to indent only in inner namespaces (nested in other namespaces).
+# Requires indent_namespace=true.
+indent_namespace_inner_only = false # true/false
+
+# Whether the 'extern "C"' body is indented.
+indent_extern = false # true/false
+
+# Whether the 'class' body is indented.
+indent_class = false # true/false
+
+# Whether to ignore indent for the leading base class colon.
+indent_ignore_before_class_colon = false # true/false
+
+# Additional indent before the leading base class colon.
+# Negative values decrease indent down to the first column.
+# Requires indent_ignore_before_class_colon=false and a newline break before
+# the colon (see pos_class_colon and nl_class_colon)
+indent_before_class_colon = 0 # number
+
+# Whether to indent the stuff after a leading base class colon.
+indent_class_colon = false # true/false
+
+# Whether to indent based on a class colon instead of the stuff after the
+# colon. Requires indent_class_colon=true.
+indent_class_on_colon = false # true/false
+
+# Whether to ignore indent for a leading class initializer colon.
+indent_ignore_before_constr_colon = false # true/false
+
+# Whether to indent the stuff after a leading class initializer colon.
+indent_constr_colon = false # true/false
+
+# Virtual indent from the ':' for leading member initializers.
+#
+# Default: 2
+indent_ctor_init_leading = 2 # unsigned number
+
+# Virtual indent from the ':' for following member initializers.
+#
+# Default: 2
+indent_ctor_init_following = 2 # unsigned number
+
+# Additional indent for constructor initializer list.
+# Negative values decrease indent down to the first column.
+indent_ctor_init = 0 # number
+
+# Whether to indent 'if' following 'else' as a new block under the 'else'.
+# If false, 'else\nif' is treated as 'else if' for indenting purposes.
+indent_else_if = false # true/false
+
+# Amount to indent variable declarations after a open brace.
+#
+# <0: Relative
+# >=0: Absolute
+indent_var_def_blk = 0 # number
+
+# Whether to indent continued variable declarations instead of aligning.
+indent_var_def_cont = false # true/false
+
+# How to indent continued shift expressions ('<<' and '>>').
+# Set align_left_shift=false when using this.
+# 0: Align shift operators instead of indenting them (default)
+# 1: Indent by one level
+# -1: Preserve original indentation
+indent_shift = 0 # number
+
+# Whether to force indentation of function definitions to start in column 1.
+indent_func_def_force_col1 = false # true/false
+
+# Whether to indent continued function call parameters one indent level,
+# rather than aligning parameters under the open parenthesis.
+indent_func_call_param = false # true/false
+
+# Whether to indent continued function definition parameters one indent level,
+# rather than aligning parameters under the open parenthesis.
+indent_func_def_param = false # true/false
+
+# for function definitions, only if indent_func_def_param is false
+# Allows to align params when appropriate and indent them when not
+# behave as if it was true if paren position is more than this value
+# if paren position is more than the option value
+indent_func_def_param_paren_pos_threshold = 0 # unsigned number
+
+# Whether to indent continued function call prototype one indent level,
+# rather than aligning parameters under the open parenthesis.
+indent_func_proto_param = false # true/false
+
+# Whether to indent continued function call declaration one indent level,
+# rather than aligning parameters under the open parenthesis.
+indent_func_class_param = false # true/false
+
+# Whether to indent continued class variable constructors one indent level,
+# rather than aligning parameters under the open parenthesis.
+indent_func_ctor_var_param = false # true/false
+
+# Whether to indent continued template parameter list one indent level,
+# rather than aligning parameters under the open parenthesis.
+indent_template_param = false # true/false
+
+# Double the indent for indent_func_xxx_param options.
+# Use both values of the options indent_columns and indent_param.
+indent_func_param_double = false # true/false
+
+# Indentation column for standalone 'const' qualifier on a function
+# prototype.
+indent_func_const = 0 # unsigned number
+
+# Indentation column for standalone 'throw' qualifier on a function
+# prototype.
+indent_func_throw = 0 # unsigned number
+
+# How to indent within a macro followed by a brace on the same line
+# This allows reducing the indent in macros that have (for example)
+# `do { ... } while (0)` blocks bracketing them.
+#
+# true: add an indent for the brace on the same line as the macro
+# false: do not add an indent for the brace on the same line as the macro
+#
+# Default: true
+indent_macro_brace = true # true/false
+
+# The number of spaces to indent a continued '->' or '.'.
+# Usually set to 0, 1, or indent_columns.
+indent_member = 0 # unsigned number
+
+# Whether lines broken at '.' or '->' should be indented by a single indent.
+# The indent_member option will not be effective if this is set to true.
+indent_member_single = false # true/false
+
+# Spaces to indent single line ('//') comments on lines before code.
+indent_single_line_comments_before = 0 # unsigned number
+
+# Spaces to indent single line ('//') comments on lines after code.
+indent_single_line_comments_after = 0 # unsigned number
+
+# When opening a paren for a control statement (if, for, while, etc), increase
+# the indent level by this value. Negative values decrease the indent level.
+indent_sparen_extra = 0 # number
+
+# Whether to indent trailing single line ('//') comments relative to the code
+# instead of trying to keep the same absolute column.
+indent_relative_single_line_comments = false # true/false
+
+# Spaces to indent 'case' from 'switch'. Usually 0 or indent_columns.
+# It might be wise to choose the same value for the option indent_case_brace.
+indent_switch_case = 0 # unsigned number
+
+# Spaces to indent the body of a 'switch' before any 'case'.
+# Usually the same as indent_columns or indent_switch_case.
+indent_switch_body = 0 # unsigned number
+
+# Whether to ignore indent for '{' following 'case'.
+indent_ignore_case_brace = false # true/false
+
+# Spaces to indent '{' from 'case'. By default, the brace will appear under
+# the 'c' in case. Usually set to 0 or indent_columns. Negative values are OK.
+# It might be wise to choose the same value for the option indent_switch_case.
+indent_case_brace = 0 # number
+
+# indent 'break' with 'case' from 'switch'.
+indent_switch_break_with_case = false # true/false
+
+# Whether to indent preprocessor statements inside of switch statements.
+#
+# Default: true
+indent_switch_pp = true # true/false
+
+# Spaces to shift the 'case' line, without affecting any other lines.
+# Usually 0.
+indent_case_shift = 0 # unsigned number
+
+# Whether to align comments before 'case' with the 'case'.
+#
+# Default: true
+indent_case_comment = true # true/false
+
+# Whether to indent comments not found in first column.
+#
+# Default: true
+indent_comment = true # true/false
+
+# Whether to indent comments found in first column.
+indent_col1_comment = false # true/false
+
+# Whether to indent multi string literal in first column.
+indent_col1_multi_string_literal = false # true/false
+
+# Align comments on adjacent lines that are this many columns apart or less.
+#
+# Default: 3
+indent_comment_align_thresh = 3 # unsigned number
+
+# Whether to ignore indent for goto labels.
+indent_ignore_label = false # true/false
+
+# How to indent goto labels. Requires indent_ignore_label=false.
+#
+# >0: Absolute column where 1 is the leftmost column
+# <=0: Subtract from brace indent
+#
+# Default: 1
+indent_label = 1 # number
+
+# How to indent access specifiers that are followed by a
+# colon.
+#
+# >0: Absolute column where 1 is the leftmost column
+# <=0: Subtract from brace indent
+#
+# Default: 1
+indent_access_spec = 1 # number
+
+# Whether to indent the code after an access specifier by one level.
+# If true, this option forces 'indent_access_spec=0'.
+indent_access_spec_body = false # true/false
+
+# If an open parenthesis is followed by a newline, whether to indent the next
+# line so that it lines up after the open parenthesis (not recommended).
+indent_paren_nl = false # true/false
+
+# How to indent a close parenthesis after a newline.
+#
+# 0: Indent to body level (default)
+# 1: Align under the open parenthesis
+# 2: Indent to the brace level
+# -1: Preserve original indentation
+indent_paren_close = 0 # number
+
+# Whether to indent the open parenthesis of a function definition,
+# if the parenthesis is on its own line.
+indent_paren_after_func_def = false # true/false
+
+# Whether to indent the open parenthesis of a function declaration,
+# if the parenthesis is on its own line.
+indent_paren_after_func_decl = false # true/false
+
+# Whether to indent the open parenthesis of a function call,
+# if the parenthesis is on its own line.
+indent_paren_after_func_call = false # true/false
+
+# How to indent a comma when inside braces.
+# 0: Indent by one level (default)
+# 1: Align under the open brace
+# -1: Preserve original indentation
+indent_comma_brace = 0 # number
+
+# How to indent a comma when inside parentheses.
+# 0: Indent by one level (default)
+# 1: Align under the open parenthesis
+# -1: Preserve original indentation
+indent_comma_paren = 0 # number
+
+# How to indent a Boolean operator when inside parentheses.
+# 0: Indent by one level (default)
+# 1: Align under the open parenthesis
+# -1: Preserve original indentation
+indent_bool_paren = 0 # number
+
+# Whether to ignore the indentation of a Boolean operator when outside
+# parentheses.
+indent_ignore_bool = false # true/false
+
+# Whether to ignore the indentation of an arithmetic operator.
+indent_ignore_arith = false # true/false
+
+# Whether to indent a semicolon when inside a for parenthesis.
+# If true, aligns under the open for parenthesis.
+indent_semicolon_for_paren = false # true/false
+
+# Whether to ignore the indentation of a semicolon outside of a 'for'
+# statement.
+indent_ignore_semicolon = false # true/false
+
+# Whether to align the first expression to following ones
+# if indent_bool_paren=1.
+indent_first_bool_expr = false # true/false
+
+# Whether to align the first expression to following ones
+# if indent_semicolon_for_paren=true.
+indent_first_for_expr = false # true/false
+
+# If an open square is followed by a newline, whether to indent the next line
+# so that it lines up after the open square (not recommended).
+indent_square_nl = false # true/false
+
+# (ESQL/C) Whether to preserve the relative indent of 'EXEC SQL' bodies.
+indent_preserve_sql = false # true/false
+
+# Whether to ignore the indentation of an assignment operator.
+indent_ignore_assign = false # true/false
+
+# Whether to align continued statements at the '='. If false or if the '=' is
+# followed by a newline, the next line is indent one tab.
+#
+# Default: true
+indent_align_assign = true # true/false
+
+# If true, the indentation of the chunks after a '=' sequence will be set at
+# LHS token indentation column before '='.
+indent_off_after_assign = false # true/false
+
+# Whether to align continued statements at the '('. If false or the '(' is
+# followed by a newline, the next line indent is one tab.
+#
+# Default: true
+indent_align_paren = true # true/false
+
+# (OC) Whether to indent Objective-C code inside message selectors.
+indent_oc_inside_msg_sel = false # true/false
+
+# (OC) Whether to indent Objective-C blocks at brace level instead of usual
+# rules.
+indent_oc_block = false # true/false
+
+# (OC) Indent for Objective-C blocks in a message relative to the parameter
+# name.
+#
+# =0: Use indent_oc_block rules
+# >0: Use specified number of spaces to indent
+indent_oc_block_msg = 0 # unsigned number
+
+# (OC) Minimum indent for subsequent parameters
+indent_oc_msg_colon = 0 # unsigned number
+
+# (OC) Whether to prioritize aligning with initial colon (and stripping spaces
+# from lines, if necessary).
+#
+# Default: true
+indent_oc_msg_prioritize_first_colon = true # true/false
+
+# (OC) Whether to indent blocks the way that Xcode does by default
+# (from the keyword if the parameter is on its own line; otherwise, from the
+# previous indentation level). Requires indent_oc_block_msg=true.
+indent_oc_block_msg_xcode_style = false # true/false
+
+# (OC) Whether to indent blocks from where the brace is, relative to a
+# message keyword. Requires indent_oc_block_msg=true.
+indent_oc_block_msg_from_keyword = false # true/false
+
+# (OC) Whether to indent blocks from where the brace is, relative to a message
+# colon. Requires indent_oc_block_msg=true.
+indent_oc_block_msg_from_colon = false # true/false
+
+# (OC) Whether to indent blocks from where the block caret is.
+# Requires indent_oc_block_msg=true.
+indent_oc_block_msg_from_caret = false # true/false
+
+# (OC) Whether to indent blocks from where the brace caret is.
+# Requires indent_oc_block_msg=true.
+indent_oc_block_msg_from_brace = false # true/false
+
+# When indenting after virtual brace open and newline add further spaces to
+# reach this minimum indent.
+indent_min_vbrace_open = 0 # unsigned number
+
+# Whether to add further spaces after regular indent to reach next tabstop
+# when indenting after virtual brace open and newline.
+indent_vbrace_open_on_tabstop = false # true/false
+
+# How to indent after a brace followed by another token (not a newline).
+# true: indent all contained lines to match the token
+# false: indent all contained lines to match the brace
+#
+# Default: true
+indent_token_after_brace = true # true/false
+
+# Whether to indent the body of a C++11 lambda.
+indent_cpp_lambda_body = false # true/false
+
+# How to indent compound literals that are being returned.
+# true: add both the indent from return & the compound literal open brace
+# (i.e. 2 indent levels)
+# false: only indent 1 level, don't add the indent for the open brace, only
+# add the indent for the return.
+#
+# Default: true
+indent_compound_literal_return = true # true/false
+
+# (C#) Whether to indent a 'using' block if no braces are used.
+#
+# Default: true
+indent_using_block = true # true/false
+
+# How to indent the continuation of ternary operator.
+#
+# 0: Off (default)
+# 1: When the `if_false` is a continuation, indent it under `if_false`
+# 2: When the `:` is a continuation, indent it under `?`
+indent_ternary_operator = 0 # unsigned number
+
+# Whether to indent the statements inside ternary operator.
+indent_inside_ternary_operator = false # true/false
+
+# If true, the indentation of the chunks after a `return` sequence will be set at return indentation column.
+indent_off_after_return = false # true/false
+
+# If true, the indentation of the chunks after a `return new` sequence will be set at return indentation column.
+indent_off_after_return_new = false # true/false
+
+# If true, the tokens after return are indented with regular single indentation. By default (false) the indentation is after the return token.
+indent_single_after_return = false # true/false
+
+# Whether to ignore indent and alignment for 'asm' blocks (i.e. assume they
+# have their own indentation).
+indent_ignore_asm_block = false # true/false
+
+# Don't indent the close parenthesis of a function definition,
+# if the parenthesis is on its own line.
+donot_indent_func_def_close_paren = false # true/false
+
+#
+# Newline adding and removing options
+#
+
+# Whether to collapse empty blocks between '{' and '}'.
+# If true, overrides nl_inside_empty_func
+nl_collapse_empty_body = false # true/false
+
+# Don't split one-line braced assignments, as in 'foo_t f = { 1, 2 };'.
+nl_assign_leave_one_liners = false # true/false
+
+# Don't split one-line braced statements inside a 'class xx { }' body.
+nl_class_leave_one_liners = false # true/false
+
+# Don't split one-line enums, as in 'enum foo { BAR = 15 };'
+nl_enum_leave_one_liners = false # true/false
+
+# Don't split one-line get or set functions.
+nl_getset_leave_one_liners = false # true/false
+
+# (C#) Don't split one-line property get or set functions.
+nl_cs_property_leave_one_liners = false # true/false
+
+# Don't split one-line function definitions, as in 'int foo() { return 0; }'.
+# might modify nl_func_type_name
+nl_func_leave_one_liners = false # true/false
+
+# Don't split one-line C++11 lambdas, as in '[]() { return 0; }'.
+nl_cpp_lambda_leave_one_liners = false # true/false
+
+# Don't split one-line if/else statements, as in 'if(...) b++;'.
+nl_if_leave_one_liners = false # true/false
+
+# Don't split one-line while statements, as in 'while(...) b++;'.
+nl_while_leave_one_liners = false # true/false
+
+# Don't split one-line do statements, as in 'do { b++; } while(...);'.
+nl_do_leave_one_liners = false # true/false
+
+# Don't split one-line for statements, as in 'for(...) b++;'.
+nl_for_leave_one_liners = false # true/false
+
+# (OC) Don't split one-line Objective-C messages.
+nl_oc_msg_leave_one_liner = false # true/false
+
+# (OC) Add or remove newline between method declaration and '{'.
+nl_oc_mdef_brace = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove newline between Objective-C block signature and '{'.
+nl_oc_block_brace = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove blank line before '@interface' statement.
+nl_oc_before_interface = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove blank line before '@implementation' statement.
+nl_oc_before_implementation = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove blank line before '@end' statement.
+nl_oc_before_end = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove newline between '@interface' and '{'.
+nl_oc_interface_brace = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove newline between '@implementation' and '{'.
+nl_oc_implementation_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newlines at the start of the file.
+nl_start_of_file = ignore # ignore/add/remove/force/not_defined
+
+# The minimum number of newlines at the start of the file (only used if
+# nl_start_of_file is 'add' or 'force').
+nl_start_of_file_min = 0 # unsigned number
+
+# Add or remove newline at the end of the file.
+nl_end_of_file = ignore # ignore/add/remove/force/not_defined
+
+# The minimum number of newlines at the end of the file (only used if
+# nl_end_of_file is 'add' or 'force').
+nl_end_of_file_min = 0 # unsigned number
+
+# Add or remove newline between '=' and '{'.
+nl_assign_brace = ignore # ignore/add/remove/force/not_defined
+
+# (D) Add or remove newline between '=' and '['.
+nl_assign_square = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between '[]' and '{'.
+nl_tsquare_brace = ignore # ignore/add/remove/force/not_defined
+
+# (D) Add or remove newline after '= ['. Will also affect the newline before
+# the ']'.
+nl_after_square_assign = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between a function call's ')' and '{', as in
+# 'list_for_each(item, &list) { }'.
+nl_fcall_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between 'enum' and '{'.
+nl_enum_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between 'enum' and 'class'.
+nl_enum_class = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between 'enum class' and the identifier.
+nl_enum_class_identifier = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between 'enum class' type and ':'.
+nl_enum_identifier_colon = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between 'enum class identifier :' and type.
+nl_enum_colon_type = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between 'struct and '{'.
+nl_struct_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between 'union' and '{'.
+nl_union_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between 'if' and '{'.
+nl_if_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between '}' and 'else'.
+nl_brace_else = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between 'else if' and '{'. If set to ignore,
+# nl_if_brace is used instead.
+nl_elseif_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between 'else' and '{'.
+nl_else_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between 'else' and 'if'.
+nl_else_if = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline before '{' opening brace
+nl_before_opening_brace_func_class_def = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline before 'if'/'else if' closing parenthesis.
+nl_before_if_closing_paren = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between '}' and 'finally'.
+nl_brace_finally = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between 'finally' and '{'.
+nl_finally_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between 'try' and '{'.
+nl_try_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between get/set and '{'.
+nl_getset_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between 'for' and '{'.
+nl_for_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline before the '{' of a 'catch' statement, as in
+# 'catch (decl) <here> {'.
+nl_catch_brace = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove newline before the '{' of a '@catch' statement, as in
+# '@catch (decl) <here> {'. If set to ignore, nl_catch_brace is used.
+nl_oc_catch_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between '}' and 'catch'.
+nl_brace_catch = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Add or remove newline between '}' and '@catch'. If set to ignore,
+# nl_brace_catch is used.
+nl_oc_brace_catch = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between '}' and ']'.
+nl_brace_square = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between '}' and ')' in a function invocation.
+nl_brace_fparen = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between 'while' and '{'.
+nl_while_brace = ignore # ignore/add/remove/force/not_defined
+
+# (D) Add or remove newline between 'scope (x)' and '{'.
+nl_scope_brace = ignore # ignore/add/remove/force/not_defined
+
+# (D) Add or remove newline between 'unittest' and '{'.
+nl_unittest_brace = ignore # ignore/add/remove/force/not_defined
+
+# (D) Add or remove newline between 'version (x)' and '{'.
+nl_version_brace = ignore # ignore/add/remove/force/not_defined
+
+# (C#) Add or remove newline between 'using' and '{'.
+nl_using_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between two open or close braces. Due to general
+# newline/brace handling, REMOVE may not work.
+nl_brace_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between 'do' and '{'.
+nl_do_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between '}' and 'while' of 'do' statement.
+nl_brace_while = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between 'switch' and '{'.
+nl_switch_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between 'synchronized' and '{'.
+nl_synchronized_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add a newline between ')' and '{' if the ')' is on a different line than the
+# if/for/etc.
+#
+# Overrides nl_for_brace, nl_if_brace, nl_switch_brace, nl_while_switch and
+# nl_catch_brace.
+nl_multi_line_cond = false # true/false
+
+# Add a newline after '(' if an if/for/while/switch condition spans multiple
+# lines
+nl_multi_line_sparen_open = ignore # ignore/add/remove/force/not_defined
+
+# Add a newline before ')' if an if/for/while/switch condition spans multiple
+# lines. Overrides nl_before_if_closing_paren if both are specified.
+nl_multi_line_sparen_close = ignore # ignore/add/remove/force/not_defined
+
+# Force a newline in a define after the macro name for multi-line defines.
+nl_multi_line_define = false # true/false
+
+# Whether to add a newline before 'case', and a blank line before a 'case'
+# statement that follows a ';' or '}'.
+nl_before_case = false # true/false
+
+# Whether to add a newline after a 'case' statement.
+nl_after_case = false # true/false
+
+# Add or remove newline between a case ':' and '{'.
+#
+# Overrides nl_after_case.
+nl_case_colon_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between ')' and 'throw'.
+nl_before_throw = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between 'namespace' and '{'.
+nl_namespace_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline after 'template<...>' of a template class.
+nl_template_class = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline after 'template<...>' of a template class declaration.
+#
+# Overrides nl_template_class.
+nl_template_class_decl = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline after 'template<>' of a specialized class declaration.
+#
+# Overrides nl_template_class_decl.
+nl_template_class_decl_special = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline after 'template<...>' of a template class definition.
+#
+# Overrides nl_template_class.
+nl_template_class_def = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline after 'template<>' of a specialized class definition.
+#
+# Overrides nl_template_class_def.
+nl_template_class_def_special = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline after 'template<...>' of a template function.
+nl_template_func = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline after 'template<...>' of a template function
+# declaration.
+#
+# Overrides nl_template_func.
+nl_template_func_decl = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline after 'template<>' of a specialized function
+# declaration.
+#
+# Overrides nl_template_func_decl.
+nl_template_func_decl_special = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline after 'template<...>' of a template function
+# definition.
+#
+# Overrides nl_template_func.
+nl_template_func_def = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline after 'template<>' of a specialized function
+# definition.
+#
+# Overrides nl_template_func_def.
+nl_template_func_def_special = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline after 'template<...>' of a template variable.
+nl_template_var = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between 'template<...>' and 'using' of a templated
+# type alias.
+nl_template_using = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between 'class' and '{'.
+nl_class_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline before or after (depending on pos_class_comma,
+# may not be IGNORE) each',' in the base class list.
+nl_class_init_args = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline after each ',' in the constructor member
+# initialization. Related to nl_constr_colon, pos_constr_colon and
+# pos_constr_comma.
+nl_constr_init_args = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline before first element, after comma, and after last
+# element, in 'enum'.
+nl_enum_own_lines = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between return type and function name in a function
+# definition.
+# might be modified by nl_func_leave_one_liners
+nl_func_type_name = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between return type and function name inside a class
+# definition. If set to ignore, nl_func_type_name or nl_func_proto_type_name
+# is used instead.
+nl_func_type_name_class = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between class specification and '::'
+# in 'void A::f() { }'. Only appears in separate member implementation (does
+# not appear with in-line implementation).
+nl_func_class_scope = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between function scope and name, as in
+# 'void A :: <here> f() { }'.
+nl_func_scope_name = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between return type and function name in a prototype.
+nl_func_proto_type_name = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between a function name and the opening '(' in the
+# declaration.
+nl_func_paren = ignore # ignore/add/remove/force/not_defined
+
+# Overrides nl_func_paren for functions with no parameters.
+nl_func_paren_empty = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between a function name and the opening '(' in the
+# definition.
+nl_func_def_paren = ignore # ignore/add/remove/force/not_defined
+
+# Overrides nl_func_def_paren for functions with no parameters.
+nl_func_def_paren_empty = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between a function name and the opening '(' in the
+# call.
+nl_func_call_paren = ignore # ignore/add/remove/force/not_defined
+
+# Overrides nl_func_call_paren for functions with no parameters.
+nl_func_call_paren_empty = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline after '(' in a function declaration.
+nl_func_decl_start = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline after '(' in a function definition.
+nl_func_def_start = ignore # ignore/add/remove/force/not_defined
+
+# Overrides nl_func_decl_start when there is only one parameter.
+nl_func_decl_start_single = ignore # ignore/add/remove/force/not_defined
+
+# Overrides nl_func_def_start when there is only one parameter.
+nl_func_def_start_single = ignore # ignore/add/remove/force/not_defined
+
+# Whether to add a newline after '(' in a function declaration if '(' and ')'
+# are in different lines. If false, nl_func_decl_start is used instead.
+nl_func_decl_start_multi_line = false # true/false
+
+# Whether to add a newline after '(' in a function definition if '(' and ')'
+# are in different lines. If false, nl_func_def_start is used instead.
+nl_func_def_start_multi_line = false # true/false
+
+# Add or remove newline after each ',' in a function declaration.
+nl_func_decl_args = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline after each ',' in a function definition.
+nl_func_def_args = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline after each ',' in a function call.
+nl_func_call_args = ignore # ignore/add/remove/force/not_defined
+
+# Whether to add a newline after each ',' in a function declaration if '('
+# and ')' are in different lines. If false, nl_func_decl_args is used instead.
+nl_func_decl_args_multi_line = false # true/false
+
+# Whether to add a newline after each ',' in a function definition if '('
+# and ')' are in different lines. If false, nl_func_def_args is used instead.
+nl_func_def_args_multi_line = false # true/false
+
+# Add or remove newline before the ')' in a function declaration.
+nl_func_decl_end = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline before the ')' in a function definition.
+nl_func_def_end = ignore # ignore/add/remove/force/not_defined
+
+# Overrides nl_func_decl_end when there is only one parameter.
+nl_func_decl_end_single = ignore # ignore/add/remove/force/not_defined
+
+# Overrides nl_func_def_end when there is only one parameter.
+nl_func_def_end_single = ignore # ignore/add/remove/force/not_defined
+
+# Whether to add a newline before ')' in a function declaration if '(' and ')'
+# are in different lines. If false, nl_func_decl_end is used instead.
+nl_func_decl_end_multi_line = false # true/false
+
+# Whether to add a newline before ')' in a function definition if '(' and ')'
+# are in different lines. If false, nl_func_def_end is used instead.
+nl_func_def_end_multi_line = false # true/false
+
+# Add or remove newline between '()' in a function declaration.
+nl_func_decl_empty = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between '()' in a function definition.
+nl_func_def_empty = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between '()' in a function call.
+nl_func_call_empty = ignore # ignore/add/remove/force/not_defined
+
+# Whether to add a newline after '(' in a function call,
+# has preference over nl_func_call_start_multi_line.
+nl_func_call_start = ignore # ignore/add/remove/force/not_defined
+
+# Whether to add a newline before ')' in a function call.
+nl_func_call_end = ignore # ignore/add/remove/force/not_defined
+
+# Whether to add a newline after '(' in a function call if '(' and ')' are in
+# different lines.
+nl_func_call_start_multi_line = false # true/false
+
+# Whether to add a newline after each ',' in a function call if '(' and ')'
+# are in different lines.
+nl_func_call_args_multi_line = false # true/false
+
+# Whether to add a newline before ')' in a function call if '(' and ')' are in
+# different lines.
+nl_func_call_end_multi_line = false # true/false
+
+# Whether to respect nl_func_call_XXX option in case of closure args.
+nl_func_call_args_multi_line_ignore_closures = false # true/false
+
+# Whether to add a newline after '<' of a template parameter list.
+nl_template_start = false # true/false
+
+# Whether to add a newline after each ',' in a template parameter list.
+nl_template_args = false # true/false
+
+# Whether to add a newline before '>' of a template parameter list.
+nl_template_end = false # true/false
+
+# (OC) Whether to put each Objective-C message parameter on a separate line.
+# See nl_oc_msg_leave_one_liner.
+nl_oc_msg_args = false # true/false
+
+# Add or remove newline between function signature and '{'.
+nl_fdef_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between function signature and '{',
+# if signature ends with ')'. Overrides nl_fdef_brace.
+nl_fdef_brace_cond = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between C++11 lambda signature and '{'.
+nl_cpp_ldef_brace = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline between 'return' and the return expression.
+nl_return_expr = ignore # ignore/add/remove/force/not_defined
+
+# Whether to add a newline after semicolons, except in 'for' statements.
+nl_after_semicolon = false # true/false
+
+# (Java) Add or remove newline between the ')' and '{{' of the double brace
+# initializer.
+nl_paren_dbrace_open = ignore # ignore/add/remove/force/not_defined
+
+# Whether to add a newline after the type in an unnamed temporary
+# direct-list-initialization, better:
+# before a direct-list-initialization.
+nl_type_brace_init_lst = ignore # ignore/add/remove/force/not_defined
+
+# Whether to add a newline after the open brace in an unnamed temporary
+# direct-list-initialization.
+nl_type_brace_init_lst_open = ignore # ignore/add/remove/force/not_defined
+
+# Whether to add a newline before the close brace in an unnamed temporary
+# direct-list-initialization.
+nl_type_brace_init_lst_close = ignore # ignore/add/remove/force/not_defined
+
+# Whether to add a newline before '{'.
+nl_before_brace_open = false # true/false
+
+# Whether to add a newline after '{'.
+nl_after_brace_open = false # true/false
+
+# Whether to add a newline between the open brace and a trailing single-line
+# comment. Requires nl_after_brace_open=true.
+nl_after_brace_open_cmt = false # true/false
+
+# Whether to add a newline after a virtual brace open with a non-empty body.
+# These occur in un-braced if/while/do/for statement bodies.
+nl_after_vbrace_open = false # true/false
+
+# Whether to add a newline after a virtual brace open with an empty body.
+# These occur in un-braced if/while/do/for statement bodies.
+nl_after_vbrace_open_empty = false # true/false
+
+# Whether to add a newline after '}'. Does not apply if followed by a
+# necessary ';'.
+nl_after_brace_close = false # true/false
+
+# Whether to add a newline after a virtual brace close,
+# as in 'if (foo) a++; <here> return;'.
+nl_after_vbrace_close = false # true/false
+
+# Add or remove newline between the close brace and identifier,
+# as in 'struct { int a; } <here> b;'. Affects enumerations, unions and
+# structures. If set to ignore, uses nl_after_brace_close.
+nl_brace_struct_var = ignore # ignore/add/remove/force/not_defined
+
+# Whether to alter newlines in '#define' macros.
+nl_define_macro = false # true/false
+
+# Whether to alter newlines between consecutive parenthesis closes. The number
+# of closing parentheses in a line will depend on respective open parenthesis
+# lines.
+nl_squeeze_paren_close = false # true/false
+
+# Whether to remove blanks after '#ifxx' and '#elxx', or before '#elxx' and
+# '#endif'. Does not affect top-level #ifdefs.
+nl_squeeze_ifdef = false # true/false
+
+# Makes the nl_squeeze_ifdef option affect the top-level #ifdefs as well.
+nl_squeeze_ifdef_top_level = false # true/false
+
+# Add or remove blank line before 'if'.
+nl_before_if = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove blank line after 'if' statement. Add/Force work only if the
+# next token is not a closing brace.
+nl_after_if = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove blank line before 'for'.
+nl_before_for = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove blank line after 'for' statement.
+nl_after_for = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove blank line before 'while'.
+nl_before_while = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove blank line after 'while' statement.
+nl_after_while = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove blank line before 'switch'.
+nl_before_switch = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove blank line after 'switch' statement.
+nl_after_switch = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove blank line before 'synchronized'.
+nl_before_synchronized = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove blank line after 'synchronized' statement.
+nl_after_synchronized = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove blank line before 'do'.
+nl_before_do = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove blank line after 'do/while' statement.
+nl_after_do = ignore # ignore/add/remove/force/not_defined
+
+# Ignore nl_before_{if,for,switch,do,synchronized} if the control
+# statement is immediately after a case statement.
+# if nl_before_{if,for,switch,do} is set to remove, this option
+# does nothing.
+nl_before_ignore_after_case = false # true/false
+
+# Whether to put a blank line before 'return' statements, unless after an open
+# brace.
+nl_before_return = false # true/false
+
+# Whether to put a blank line after 'return' statements, unless followed by a
+# close brace.
+nl_after_return = false # true/false
+
+# Whether to put a blank line before a member '.' or '->' operators.
+nl_before_member = ignore # ignore/add/remove/force/not_defined
+
+# (Java) Whether to put a blank line after a member '.' or '->' operators.
+nl_after_member = ignore # ignore/add/remove/force/not_defined
+
+# Whether to double-space commented-entries in 'struct'/'union'/'enum'.
+nl_ds_struct_enum_cmt = false # true/false
+
+# Whether to force a newline before '}' of a 'struct'/'union'/'enum'.
+# (Lower priority than eat_blanks_before_close_brace.)
+nl_ds_struct_enum_close_brace = false # true/false
+
+# Add or remove newline before or after (depending on pos_class_colon) a class
+# colon, as in 'class Foo <here> : <or here> public Bar'.
+nl_class_colon = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove newline around a class constructor colon. The exact position
+# depends on nl_constr_init_args, pos_constr_colon and pos_constr_comma.
+nl_constr_colon = ignore # ignore/add/remove/force/not_defined
+
+# Whether to collapse a two-line namespace, like 'namespace foo\n{ decl; }'
+# into a single line. If true, prevents other brace newline rules from turning
+# such code into four lines. If true, it also preserves one-liner namespaces.
+nl_namespace_two_to_one_liner = false # true/false
+
+# Whether to remove a newline in simple unbraced if statements, turning them
+# into one-liners, as in 'if(b)\n i++;' => 'if(b) i++;'.
+nl_create_if_one_liner = false # true/false
+
+# Whether to remove a newline in simple unbraced for statements, turning them
+# into one-liners, as in 'for (...)\n stmt;' => 'for (...) stmt;'.
+nl_create_for_one_liner = false # true/false
+
+# Whether to remove a newline in simple unbraced while statements, turning
+# them into one-liners, as in 'while (expr)\n stmt;' => 'while (expr) stmt;'.
+nl_create_while_one_liner = false # true/false
+
+# Whether to collapse a function definition whose body (not counting braces)
+# is only one line so that the entire definition (prototype, braces, body) is
+# a single line.
+nl_create_func_def_one_liner = false # true/false
+
+# Whether to split one-line simple list definitions into three lines by
+# adding newlines, as in 'int a[12] = { <here> 0 <here> };'.
+nl_create_list_one_liner = false # true/false
+
+# Whether to split one-line simple unbraced if statements into two lines by
+# adding a newline, as in 'if(b) <here> i++;'.
+nl_split_if_one_liner = false # true/false
+
+# Whether to split one-line simple unbraced for statements into two lines by
+# adding a newline, as in 'for (...) <here> stmt;'.
+nl_split_for_one_liner = false # true/false
+
+# Whether to split one-line simple unbraced while statements into two lines by
+# adding a newline, as in 'while (expr) <here> stmt;'.
+nl_split_while_one_liner = false # true/false
+
+# Don't add a newline before a cpp-comment in a parameter list of a function
+# call.
+donot_add_nl_before_cpp_comment = false # true/false
+
+#
+# Blank line options
+#
+
+# The maximum number of consecutive newlines (3 = 2 blank lines).
+nl_max = 0 # unsigned number
+
+# The maximum number of consecutive newlines in a function.
+nl_max_blank_in_func = 0 # unsigned number
+
+# The number of newlines inside an empty function body.
+# This option overrides eat_blanks_after_open_brace and
+# eat_blanks_before_close_brace, but is ignored when
+# nl_collapse_empty_body=true
+nl_inside_empty_func = 0 # unsigned number
+
+# The number of newlines before a function prototype.
+nl_before_func_body_proto = 0 # unsigned number
+
+# The number of newlines before a multi-line function definition. Where
+# applicable, this option is overridden with eat_blanks_after_open_brace=true
+nl_before_func_body_def = 0 # unsigned number
+
+# The number of newlines before a class constructor/destructor prototype.
+nl_before_func_class_proto = 0 # unsigned number
+
+# The number of newlines before a class constructor/destructor definition.
+nl_before_func_class_def = 0 # unsigned number
+
+# The number of newlines after a function prototype.
+nl_after_func_proto = 0 # unsigned number
+
+# The number of newlines after a function prototype, if not followed by
+# another function prototype.
+nl_after_func_proto_group = 0 # unsigned number
+
+# The number of newlines after a class constructor/destructor prototype.
+nl_after_func_class_proto = 0 # unsigned number
+
+# The number of newlines after a class constructor/destructor prototype,
+# if not followed by another constructor/destructor prototype.
+nl_after_func_class_proto_group = 0 # unsigned number
+
+# Whether one-line method definitions inside a class body should be treated
+# as if they were prototypes for the purposes of adding newlines.
+#
+# Requires nl_class_leave_one_liners=true. Overrides nl_before_func_body_def
+# and nl_before_func_class_def for one-liners.
+nl_class_leave_one_liner_groups = false # true/false
+
+# The number of newlines after '}' of a multi-line function body.
+nl_after_func_body = 0 # unsigned number
+
+# The number of newlines after '}' of a multi-line function body in a class
+# declaration. Also affects class constructors/destructors.
+#
+# Overrides nl_after_func_body.
+nl_after_func_body_class = 0 # unsigned number
+
+# The number of newlines after '}' of a single line function body. Also
+# affects class constructors/destructors.
+#
+# Overrides nl_after_func_body and nl_after_func_body_class.
+nl_after_func_body_one_liner = 0 # unsigned number
+
+# The number of blank lines after a block of variable definitions at the top
+# of a function body.
+#
+# 0: No change (default).
+nl_func_var_def_blk = 0 # unsigned number
+
+# The number of newlines before a block of typedefs. If nl_after_access_spec
+# is non-zero, that option takes precedence.
+#
+# 0: No change (default).
+nl_typedef_blk_start = 0 # unsigned number
+
+# The number of newlines after a block of typedefs.
+#
+# 0: No change (default).
+nl_typedef_blk_end = 0 # unsigned number
+
+# The maximum number of consecutive newlines within a block of typedefs.
+#
+# 0: No change (default).
+nl_typedef_blk_in = 0 # unsigned number
+
+# The number of empty newlines before a block of variable definitions
+# not at the top of a function body. If nl_after_access_spec is non-zero,
+# that option takes precedence.
+#
+# 0: No change (default).
+nl_var_def_blk_start = 0 # unsigned number
+
+# The number of empty newlines after a block of variable definitions
+# not at the top of a function body.
+#
+# 0: No change (default).
+nl_var_def_blk_end = 0 # unsigned number
+
+# The maximum number of consecutive newlines within a block of variable
+# definitions.
+#
+# 0: No change (default).
+nl_var_def_blk_in = 0 # unsigned number
+
+# The minimum number of newlines before a multi-line comment.
+# Doesn't apply if after a brace open or another multi-line comment.
+nl_before_block_comment = 0 # unsigned number
+
+# The minimum number of newlines before a single-line C comment.
+# Doesn't apply if after a brace open or other single-line C comments.
+nl_before_c_comment = 0 # unsigned number
+
+# The minimum number of newlines before a CPP comment.
+# Doesn't apply if after a brace open or other CPP comments.
+nl_before_cpp_comment = 0 # unsigned number
+
+# Whether to force a newline after a multi-line comment.
+nl_after_multiline_comment = false # true/false
+
+# Whether to force a newline after a label's colon.
+nl_after_label_colon = false # true/false
+
+# The number of newlines before a struct definition.
+nl_before_struct = 0 # unsigned number
+
+# The number of newlines after '}' or ';' of a struct/enum/union definition.
+nl_after_struct = 0 # unsigned number
+
+# The number of newlines before a class definition.
+nl_before_class = 0 # unsigned number
+
+# The number of newlines after '}' or ';' of a class definition.
+nl_after_class = 0 # unsigned number
+
+# The number of newlines before a namespace.
+nl_before_namespace = 0 # unsigned number
+
+# The number of newlines after '{' of a namespace. This also adds newlines
+# before the matching '}'.
+#
+# 0: Apply eat_blanks_after_open_brace or eat_blanks_before_close_brace if
+# applicable, otherwise no change.
+#
+# Overrides eat_blanks_after_open_brace and eat_blanks_before_close_brace.
+nl_inside_namespace = 0 # unsigned number
+
+# The number of newlines after '}' of a namespace.
+nl_after_namespace = 0 # unsigned number
+
+# The number of newlines before an access specifier label. This also includes
+# the Qt-specific 'signals:' and 'slots:'. Will not change the newline count
+# if after a brace open.
+#
+# 0: No change (default).
+nl_before_access_spec = 0 # unsigned number
+
+# The number of newlines after an access specifier label. This also includes
+# the Qt-specific 'signals:' and 'slots:'. Will not change the newline count
+# if after a brace open.
+#
+# 0: No change (default).
+#
+# Overrides nl_typedef_blk_start and nl_var_def_blk_start.
+nl_after_access_spec = 0 # unsigned number
+
+# The number of newlines between a function definition and the function
+# comment, as in '// comment\n <here> void foo() {...}'.
+#
+# 0: No change (default).
+nl_comment_func_def = 0 # unsigned number
+
+# The number of newlines after a try-catch-finally block that isn't followed
+# by a brace close.
+#
+# 0: No change (default).
+nl_after_try_catch_finally = 0 # unsigned number
+
+# (C#) The number of newlines before and after a property, indexer or event
+# declaration.
+#
+# 0: No change (default).
+nl_around_cs_property = 0 # unsigned number
+
+# (C#) The number of newlines between the get/set/add/remove handlers.
+#
+# 0: No change (default).
+nl_between_get_set = 0 # unsigned number
+
+# (C#) Add or remove newline between property and the '{'.
+nl_property_brace = ignore # ignore/add/remove/force/not_defined
+
+# Whether to remove blank lines after '{'.
+eat_blanks_after_open_brace = false # true/false
+
+# Whether to remove blank lines before '}'.
+eat_blanks_before_close_brace = false # true/false
+
+# How aggressively to remove extra newlines not in preprocessor.
+#
+# 0: No change (default)
+# 1: Remove most newlines not handled by other config
+# 2: Remove all newlines and reformat completely by config
+nl_remove_extra_newlines = 0 # unsigned number
+
+# (Java) Add or remove newline after an annotation statement. Only affects
+# annotations that are after a newline.
+nl_after_annotation = ignore # ignore/add/remove/force/not_defined
+
+# (Java) Add or remove newline between two annotations.
+nl_between_annotation = ignore # ignore/add/remove/force/not_defined
+
+# The number of newlines before a whole-file #ifdef.
+#
+# 0: No change (default).
+nl_before_whole_file_ifdef = 0 # unsigned number
+
+# The number of newlines after a whole-file #ifdef.
+#
+# 0: No change (default).
+nl_after_whole_file_ifdef = 0 # unsigned number
+
+# The number of newlines before a whole-file #endif.
+#
+# 0: No change (default).
+nl_before_whole_file_endif = 0 # unsigned number
+
+# The number of newlines after a whole-file #endif.
+#
+# 0: No change (default).
+nl_after_whole_file_endif = 0 # unsigned number
+
+#
+# Positioning options
+#
+
+# The position of arithmetic operators in wrapped expressions.
+pos_arith = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
+
+# The position of assignment in wrapped expressions. Do not affect '='
+# followed by '{'.
+pos_assign = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
+
+# The position of Boolean operators in wrapped expressions.
+pos_bool = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
+
+# The position of comparison operators in wrapped expressions.
+pos_compare = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
+
+# The position of conditional operators, as in the '?' and ':' of
+# 'expr ? stmt : stmt', in wrapped expressions.
+pos_conditional = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
+
+# The position of the comma in wrapped expressions.
+pos_comma = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
+
+# The position of the comma in enum entries.
+pos_enum_comma = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
+
+# The position of the comma in the base class list if there is more than one
+# line. Affects nl_class_init_args.
+pos_class_comma = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
+
+# The position of the comma in the constructor initialization list.
+# Related to nl_constr_colon, nl_constr_init_args and pos_constr_colon.
+pos_constr_comma = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
+
+# The position of trailing/leading class colon, between class and base class
+# list. Affects nl_class_colon.
+pos_class_colon = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
+
+# The position of colons between constructor and member initialization.
+# Related to nl_constr_colon, nl_constr_init_args and pos_constr_comma.
+pos_constr_colon = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
+
+# The position of shift operators in wrapped expressions.
+pos_shift = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force
+
+#
+# Line splitting options
+#
+
+# Try to limit code width to N columns.
+code_width = 0 # unsigned number
+
+# Whether to fully split long 'for' statements at semi-colons.
+ls_for_split_full = false # true/false
+
+# Whether to fully split long function prototypes/calls at commas.
+# The option ls_code_width has priority over the option ls_func_split_full.
+ls_func_split_full = false # true/false
+
+# Whether to split lines as close to code_width as possible and ignore some
+# groupings.
+# The option ls_code_width has priority over the option ls_func_split_full.
+ls_code_width = false # true/false
+
+#
+# Code alignment options (not left column spaces/tabs)
+#
+
+# Whether to keep non-indenting tabs.
+align_keep_tabs = false # true/false
+
+# Whether to use tabs for aligning.
+align_with_tabs = false # true/false
+
+# Whether to bump out to the next tab when aligning.
+align_on_tabstop = false # true/false
+
+# Whether to right-align numbers.
+align_number_right = false # true/false
+
+# Whether to keep whitespace not required for alignment.
+align_keep_extra_space = false # true/false
+
+# Whether to align variable definitions in prototypes and functions.
+align_func_params = false # true/false
+
+# The span for aligning parameter definitions in function on parameter name.
+#
+# 0: Don't align (default).
+align_func_params_span = 0 # unsigned number
+
+# The threshold for aligning function parameter definitions.
+# Use a negative number for absolute thresholds.
+#
+# 0: No limit (default).
+align_func_params_thresh = 0 # number
+
+# The gap for aligning function parameter definitions.
+align_func_params_gap = 0 # unsigned number
+
+# The span for aligning constructor value.
+#
+# 0: Don't align (default).
+align_constr_value_span = 0 # unsigned number
+
+# The threshold for aligning constructor value.
+# Use a negative number for absolute thresholds.
+#
+# 0: No limit (default).
+align_constr_value_thresh = 0 # number
+
+# The gap for aligning constructor value.
+align_constr_value_gap = 0 # unsigned number
+
+# Whether to align parameters in single-line functions that have the same
+# name. The function names must already be aligned with each other.
+align_same_func_call_params = false # true/false
+
+# The span for aligning function-call parameters for single line functions.
+#
+# 0: Don't align (default).
+align_same_func_call_params_span = 0 # unsigned number
+
+# The threshold for aligning function-call parameters for single line
+# functions.
+# Use a negative number for absolute thresholds.
+#
+# 0: No limit (default).
+align_same_func_call_params_thresh = 0 # number
+
+# The span for aligning variable definitions.
+#
+# 0: Don't align (default).
+align_var_def_span = 0 # unsigned number
+
+# How to consider (or treat) the '*' in the alignment of variable definitions.
+#
+# 0: Part of the type 'void * foo;' (default)
+# 1: Part of the variable 'void *foo;'
+# 2: Dangling 'void *foo;'
+# Dangling: the '*' will not be taken into account when aligning.
+align_var_def_star_style = 0 # unsigned number
+
+# How to consider (or treat) the '&' in the alignment of variable definitions.
+#
+# 0: Part of the type 'long & foo;' (default)
+# 1: Part of the variable 'long &foo;'
+# 2: Dangling 'long &foo;'
+# Dangling: the '&' will not be taken into account when aligning.
+align_var_def_amp_style = 0 # unsigned number
+
+# The threshold for aligning variable definitions.
+# Use a negative number for absolute thresholds.
+#
+# 0: No limit (default).
+align_var_def_thresh = 0 # number
+
+# The gap for aligning variable definitions.
+align_var_def_gap = 0 # unsigned number
+
+# Whether to align the colon in struct bit fields.
+align_var_def_colon = false # true/false
+
+# The gap for aligning the colon in struct bit fields.
+align_var_def_colon_gap = 0 # unsigned number
+
+# Whether to align any attribute after the variable name.
+align_var_def_attribute = false # true/false
+
+# Whether to align inline struct/enum/union variable definitions.
+align_var_def_inline = false # true/false
+
+# The span for aligning on '=' in assignments.
+#
+# 0: Don't align (default).
+align_assign_span = 0 # unsigned number
+
+# The span for aligning on '{' in braced init list.
+#
+# 0: Don't align (default).
+align_braced_init_list_span = 0 # unsigned number
+
+# The span for aligning on '=' in function prototype modifier.
+#
+# 0: Don't align (default).
+align_assign_func_proto_span = 0 # unsigned number
+
+# The threshold for aligning on '=' in assignments.
+# Use a negative number for absolute thresholds.
+#
+# 0: No limit (default).
+align_assign_thresh = 0 # number
+
+# Whether to align on the left most assignment when multiple
+# definitions are found on the same line.
+# Depends on 'align_assign_span' and 'align_assign_thresh' settings.
+align_assign_on_multi_var_defs = false # true/false
+
+# The threshold for aligning on '{' in braced init list.
+# Use a negative number for absolute thresholds.
+#
+# 0: No limit (default).
+align_braced_init_list_thresh = 0 # number
+
+# How to apply align_assign_span to function declaration "assignments", i.e.
+# 'virtual void foo() = 0' or '~foo() = {default|delete}'.
+#
+# 0: Align with other assignments (default)
+# 1: Align with each other, ignoring regular assignments
+# 2: Don't align
+align_assign_decl_func = 0 # unsigned number
+
+# The span for aligning on '=' in enums.
+#
+# 0: Don't align (default).
+align_enum_equ_span = 0 # unsigned number
+
+# The threshold for aligning on '=' in enums.
+# Use a negative number for absolute thresholds.
+#
+# 0: no limit (default).
+align_enum_equ_thresh = 0 # number
+
+# The span for aligning class member definitions.
+#
+# 0: Don't align (default).
+align_var_class_span = 0 # unsigned number
+
+# The threshold for aligning class member definitions.
+# Use a negative number for absolute thresholds.
+#
+# 0: No limit (default).
+align_var_class_thresh = 0 # number
+
+# The gap for aligning class member definitions.
+align_var_class_gap = 0 # unsigned number
+
+# The span for aligning struct/union member definitions.
+#
+# 0: Don't align (default).
+align_var_struct_span = 0 # unsigned number
+
+# The threshold for aligning struct/union member definitions.
+# Use a negative number for absolute thresholds.
+#
+# 0: No limit (default).
+align_var_struct_thresh = 0 # number
+
+# The gap for aligning struct/union member definitions.
+align_var_struct_gap = 0 # unsigned number
+
+# The span for aligning struct initializer values.
+#
+# 0: Don't align (default).
+align_struct_init_span = 0 # unsigned number
+
+# The span for aligning single-line typedefs.
+#
+# 0: Don't align (default).
+align_typedef_span = 0 # unsigned number
+
+# The minimum space between the type and the synonym of a typedef.
+align_typedef_gap = 0 # unsigned number
+
+# How to align typedef'd functions with other typedefs.
+#
+# 0: Don't mix them at all (default)
+# 1: Align the open parenthesis with the types
+# 2: Align the function type name with the other type names
+align_typedef_func = 0 # unsigned number
+
+# How to consider (or treat) the '*' in the alignment of typedefs.
+#
+# 0: Part of the typedef type, 'typedef int * pint;' (default)
+# 1: Part of type name: 'typedef int *pint;'
+# 2: Dangling: 'typedef int *pint;'
+# Dangling: the '*' will not be taken into account when aligning.
+align_typedef_star_style = 0 # unsigned number
+
+# How to consider (or treat) the '&' in the alignment of typedefs.
+#
+# 0: Part of the typedef type, 'typedef int & intref;' (default)
+# 1: Part of type name: 'typedef int &intref;'
+# 2: Dangling: 'typedef int &intref;'
+# Dangling: the '&' will not be taken into account when aligning.
+align_typedef_amp_style = 0 # unsigned number
+
+# The span for aligning comments that end lines.
+#
+# 0: Don't align (default).
+align_right_cmt_span = 0 # unsigned number
+
+# Minimum number of columns between preceding text and a trailing comment in
+# order for the comment to qualify for being aligned. Must be non-zero to have
+# an effect.
+align_right_cmt_gap = 0 # unsigned number
+
+# If aligning comments, whether to mix with comments after '}' and #endif with
+# less than three spaces before the comment.
+align_right_cmt_mix = false # true/false
+
+# Whether to only align trailing comments that are at the same brace level.
+align_right_cmt_same_level = false # true/false
+
+# Minimum column at which to align trailing comments. Comments which are
+# aligned beyond this column, but which can be aligned in a lesser column,
+# may be "pulled in".
+#
+# 0: Ignore (default).
+align_right_cmt_at_col = 0 # unsigned number
+
+# The span for aligning function prototypes.
+#
+# 0: Don't align (default).
+align_func_proto_span = 0 # unsigned number
+
+# How to consider (or treat) the '*' in the alignment of function prototypes.
+#
+# 0: Part of the type 'void * foo();' (default)
+# 1: Part of the function 'void *foo();'
+# 2: Dangling 'void *foo();'
+# Dangling: the '*' will not be taken into account when aligning.
+align_func_proto_star_style = 0 # unsigned number
+
+# How to consider (or treat) the '&' in the alignment of function prototypes.
+#
+# 0: Part of the type 'long & foo();' (default)
+# 1: Part of the function 'long &foo();'
+# 2: Dangling 'long &foo();'
+# Dangling: the '&' will not be taken into account when aligning.
+align_func_proto_amp_style = 0 # unsigned number
+
+# The threshold for aligning function prototypes.
+# Use a negative number for absolute thresholds.
+#
+# 0: No limit (default).
+align_func_proto_thresh = 0 # number
+
+# Minimum gap between the return type and the function name.
+align_func_proto_gap = 0 # unsigned number
+
+# Whether to align function prototypes on the 'operator' keyword instead of
+# what follows.
+align_on_operator = false # true/false
+
+# Whether to mix aligning prototype and variable declarations. If true,
+# align_var_def_XXX options are used instead of align_func_proto_XXX options.
+align_mix_var_proto = false # true/false
+
+# Whether to align single-line functions with function prototypes.
+# Uses align_func_proto_span.
+align_single_line_func = false # true/false
+
+# Whether to align the open brace of single-line functions.
+# Requires align_single_line_func=true. Uses align_func_proto_span.
+align_single_line_brace = false # true/false
+
+# Gap for align_single_line_brace.
+align_single_line_brace_gap = 0 # unsigned number
+
+# (OC) The span for aligning Objective-C message specifications.
+#
+# 0: Don't align (default).
+align_oc_msg_spec_span = 0 # unsigned number
+
+# Whether to align macros wrapped with a backslash and a newline. This will
+# not work right if the macro contains a multi-line comment.
+align_nl_cont = false # true/false
+
+# Whether to align macro functions and variables together.
+align_pp_define_together = false # true/false
+
+# The span for aligning on '#define' bodies.
+#
+# =0: Don't align (default)
+# >0: Number of lines (including comments) between blocks
+align_pp_define_span = 0 # unsigned number
+
+# The minimum space between label and value of a preprocessor define.
+align_pp_define_gap = 0 # unsigned number
+
+# Whether to align lines that start with '<<' with previous '<<'.
+#
+# Default: true
+align_left_shift = true # true/false
+
+# Whether to align comma-separated statements following '<<' (as used to
+# initialize Eigen matrices).
+align_eigen_comma_init = false # true/false
+
+# Whether to align text after 'asm volatile ()' colons.
+align_asm_colon = false # true/false
+
+# (OC) Span for aligning parameters in an Objective-C message call
+# on the ':'.
+#
+# 0: Don't align.
+align_oc_msg_colon_span = 0 # unsigned number
+
+# (OC) Whether to always align with the first parameter, even if it is too
+# short.
+align_oc_msg_colon_first = false # true/false
+
+# (OC) Whether to align parameters in an Objective-C '+' or '-' declaration
+# on the ':'.
+align_oc_decl_colon = false # true/false
+
+# (OC) Whether to not align parameters in an Objectve-C message call if first
+# colon is not on next line of the message call (the same way Xcode does
+# alignment)
+align_oc_msg_colon_xcode_like = false # true/false
+
+#
+# Comment modification options
+#
+
+# Try to wrap comments at N columns.
+cmt_width = 0 # unsigned number
+
+# How to reflow comments.
+#
+# 0: No reflowing (apart from the line wrapping due to cmt_width) (default)
+# 1: No touching at all
+# 2: Full reflow (enable cmt_indent_multi for indent with line wrapping due to cmt_width)
+cmt_reflow_mode = 0 # unsigned number
+
+# Path to a file that contains regular expressions describing patterns for
+# which the end of one line and the beginning of the next will be folded into
+# the same sentence or paragraph during full comment reflow. The regular
+# expressions are described using ECMAScript syntax. The syntax for this
+# specification is as follows, where "..." indicates the custom regular
+# expression and "n" indicates the nth end_of_prev_line_regex and
+# beg_of_next_line_regex regular expression pair:
+#
+# end_of_prev_line_regex[1] = "...$"
+# beg_of_next_line_regex[1] = "^..."
+# end_of_prev_line_regex[2] = "...$"
+# beg_of_next_line_regex[2] = "^..."
+# .
+# .
+# .
+# end_of_prev_line_regex[n] = "...$"
+# beg_of_next_line_regex[n] = "^..."
+#
+# Note that use of this option overrides the default reflow fold regular
+# expressions, which are internally defined as follows:
+#
+# end_of_prev_line_regex[1] = "[\w,\]\)]$"
+# beg_of_next_line_regex[1] = "^[\w,\[\(]"
+# end_of_prev_line_regex[2] = "\.$"
+# beg_of_next_line_regex[2] = "^[A-Z]"
+cmt_reflow_fold_regex_file = "" # string
+
+# Whether to indent wrapped lines to the start of the encompassing paragraph
+# during full comment reflow (cmt_reflow_mode = 2). Overrides the value
+# specified by cmt_sp_after_star_cont.
+#
+# Note that cmt_align_doxygen_javadoc_tags overrides this option for
+# paragraphs associated with javadoc tags
+cmt_reflow_indent_to_paragraph_start = false # true/false
+
+# Whether to convert all tabs to spaces in comments. If false, tabs in
+# comments are left alone, unless used for indenting.
+cmt_convert_tab_to_spaces = false # true/false
+
+# Whether to apply changes to multi-line comments, including cmt_width,
+# keyword substitution and leading chars.
+#
+# Default: true
+cmt_indent_multi = true # true/false
+
+# Whether to align doxygen javadoc-style tags ('@param', '@return', etc.)
+# and corresponding fields such that groups of consecutive block tags,
+# parameter names, and descriptions align with one another. Overrides that
+# which is specified by the cmt_sp_after_star_cont. If cmt_width > 0, it may
+# be necessary to enable cmt_indent_multi and set cmt_reflow_mode = 2
+# in order to achieve the desired alignment for line-wrapping.
+cmt_align_doxygen_javadoc_tags = false # true/false
+
+# The number of spaces to insert after the star and before doxygen
+# javadoc-style tags (@param, @return, etc). Requires enabling
+# cmt_align_doxygen_javadoc_tags. Overrides that which is specified by the
+# cmt_sp_after_star_cont.
+#
+# Default: 1
+cmt_sp_before_doxygen_javadoc_tags = 1 # unsigned number
+
+# Whether to change trailing, single-line c-comments into cpp-comments.
+cmt_trailing_single_line_c_to_cpp = false # true/false
+
+# Whether to group c-comments that look like they are in a block.
+cmt_c_group = false # true/false
+
+# Whether to put an empty '/*' on the first line of the combined c-comment.
+cmt_c_nl_start = false # true/false
+
+# Whether to add a newline before the closing '*/' of the combined c-comment.
+cmt_c_nl_end = false # true/false
+
+# Whether to change cpp-comments into c-comments.
+cmt_cpp_to_c = false # true/false
+
+# Whether to group cpp-comments that look like they are in a block. Only
+# meaningful if cmt_cpp_to_c=true.
+cmt_cpp_group = false # true/false
+
+# Whether to put an empty '/*' on the first line of the combined cpp-comment
+# when converting to a c-comment.
+#
+# Requires cmt_cpp_to_c=true and cmt_cpp_group=true.
+cmt_cpp_nl_start = false # true/false
+
+# Whether to add a newline before the closing '*/' of the combined cpp-comment
+# when converting to a c-comment.
+#
+# Requires cmt_cpp_to_c=true and cmt_cpp_group=true.
+cmt_cpp_nl_end = false # true/false
+
+# Whether to put a star on subsequent comment lines.
+cmt_star_cont = false # true/false
+
+# The number of spaces to insert at the start of subsequent comment lines.
+cmt_sp_before_star_cont = 0 # unsigned number
+
+# The number of spaces to insert after the star on subsequent comment lines.
+cmt_sp_after_star_cont = 0 # unsigned number
+
+# For multi-line comments with a '*' lead, remove leading spaces if the first
+# and last lines of the comment are the same length.
+#
+# Default: true
+cmt_multi_check_last = true # true/false
+
+# For multi-line comments with a '*' lead, remove leading spaces if the first
+# and last lines of the comment are the same length AND if the length is
+# bigger as the first_len minimum.
+#
+# Default: 4
+cmt_multi_first_len_minimum = 4 # unsigned number
+
+# Path to a file that contains text to insert at the beginning of a file if
+# the file doesn't start with a C/C++ comment. If the inserted text contains
+# '$(filename)', that will be replaced with the current file's name.
+cmt_insert_file_header = "" # string
+
+# Path to a file that contains text to insert at the end of a file if the
+# file doesn't end with a C/C++ comment. If the inserted text contains
+# '$(filename)', that will be replaced with the current file's name.
+cmt_insert_file_footer = "" # string
+
+# Path to a file that contains text to insert before a function definition if
+# the function isn't preceded by a C/C++ comment. If the inserted text
+# contains '$(function)', '$(javaparam)' or '$(fclass)', these will be
+# replaced with, respectively, the name of the function, the javadoc '@param'
+# and '@return' stuff, or the name of the class to which the member function
+# belongs.
+cmt_insert_func_header = "" # string
+
+# Path to a file that contains text to insert before a class if the class
+# isn't preceded by a C/C++ comment. If the inserted text contains '$(class)',
+# that will be replaced with the class name.
+cmt_insert_class_header = "" # string
+
+# Path to a file that contains text to insert before an Objective-C message
+# specification, if the method isn't preceded by a C/C++ comment. If the
+# inserted text contains '$(message)' or '$(javaparam)', these will be
+# replaced with, respectively, the name of the function, or the javadoc
+# '@param' and '@return' stuff.
+cmt_insert_oc_msg_header = "" # string
+
+# Whether a comment should be inserted if a preprocessor is encountered when
+# stepping backwards from a function name.
+#
+# Applies to cmt_insert_oc_msg_header, cmt_insert_func_header and
+# cmt_insert_class_header.
+cmt_insert_before_preproc = false # true/false
+
+# Whether a comment should be inserted if a function is declared inline to a
+# class definition.
+#
+# Applies to cmt_insert_func_header.
+#
+# Default: true
+cmt_insert_before_inlines = true # true/false
+
+# Whether a comment should be inserted if the function is a class constructor
+# or destructor.
+#
+# Applies to cmt_insert_func_header.
+cmt_insert_before_ctor_dtor = false # true/false
+
+#
+# Code modifying options (non-whitespace)
+#
+
+# Add or remove braces on a single-line 'do' statement.
+mod_full_brace_do = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove braces on a single-line 'for' statement.
+mod_full_brace_for = ignore # ignore/add/remove/force/not_defined
+
+# (Pawn) Add or remove braces on a single-line function definition.
+mod_full_brace_function = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove braces on a single-line 'if' statement. Braces will not be
+# removed if the braced statement contains an 'else'.
+mod_full_brace_if = ignore # ignore/add/remove/force/not_defined
+
+# Whether to enforce that all blocks of an 'if'/'else if'/'else' chain either
+# have, or do not have, braces. Overrides mod_full_brace_if.
+#
+# 0: Don't override mod_full_brace_if
+# 1: Add braces to all blocks if any block needs braces and remove braces if
+# they can be removed from all blocks
+# 2: Add braces to all blocks if any block already has braces, regardless of
+# whether it needs them
+# 3: Add braces to all blocks if any block needs braces and remove braces if
+# they can be removed from all blocks, except if all blocks have braces
+# despite none needing them
+mod_full_brace_if_chain = 0 # unsigned number
+
+# Whether to add braces to all blocks of an 'if'/'else if'/'else' chain.
+# If true, mod_full_brace_if_chain will only remove braces from an 'if' that
+# does not have an 'else if' or 'else'.
+mod_full_brace_if_chain_only = false # true/false
+
+# Add or remove braces on single-line 'while' statement.
+mod_full_brace_while = ignore # ignore/add/remove/force/not_defined
+
+# Add or remove braces on single-line 'using ()' statement.
+mod_full_brace_using = ignore # ignore/add/remove/force/not_defined
+
+# Don't remove braces around statements that span N newlines
+mod_full_brace_nl = 0 # unsigned number
+
+# Whether to prevent removal of braces from 'if'/'for'/'while'/etc. blocks
+# which span multiple lines.
+#
+# Affects:
+# mod_full_brace_for
+# mod_full_brace_if
+# mod_full_brace_if_chain
+# mod_full_brace_if_chain_only
+# mod_full_brace_while
+# mod_full_brace_using
+#
+# Does not affect:
+# mod_full_brace_do
+# mod_full_brace_function
+mod_full_brace_nl_block_rem_mlcond = false # true/false
+
+# Add or remove unnecessary parenthesis on 'return' statement.
+mod_paren_on_return = ignore # ignore/add/remove/force/not_defined
+
+# (Pawn) Whether to change optional semicolons to real semicolons.
+mod_pawn_semicolon = false # true/false
+
+# Whether to fully parenthesize Boolean expressions in 'while' and 'if'
+# statement, as in 'if (a && b > c)' => 'if (a && (b > c))'.
+mod_full_paren_if_bool = false # true/false
+
+# Whether to fully parenthesize Boolean expressions after '='
+# statement, as in 'x = a && b > c;' => 'x = (a && (b > c));'.
+mod_full_paren_assign_bool = false # true/false
+
+# Whether to fully parenthesize Boolean expressions after '='
+# statement, as in 'return a && b > c;' => 'return (a && (b > c));'.
+mod_full_paren_return_bool = false # true/false
+
+# Whether to remove superfluous semicolons.
+mod_remove_extra_semicolon = false # true/false
+
+# Whether to remove duplicate include.
+mod_remove_duplicate_include = false # true/false
+
+# If a function body exceeds the specified number of newlines and doesn't have
+# a comment after the close brace, a comment will be added.
+mod_add_long_function_closebrace_comment = 0 # unsigned number
+
+# If a namespace body exceeds the specified number of newlines and doesn't
+# have a comment after the close brace, a comment will be added.
+mod_add_long_namespace_closebrace_comment = 0 # unsigned number
+
+# If a class body exceeds the specified number of newlines and doesn't have a
+# comment after the close brace, a comment will be added.
+mod_add_long_class_closebrace_comment = 0 # unsigned number
+
+# If a switch body exceeds the specified number of newlines and doesn't have a
+# comment after the close brace, a comment will be added.
+mod_add_long_switch_closebrace_comment = 0 # unsigned number
+
+# If an #ifdef body exceeds the specified number of newlines and doesn't have
+# a comment after the #endif, a comment will be added.
+mod_add_long_ifdef_endif_comment = 0 # unsigned number
+
+# If an #ifdef or #else body exceeds the specified number of newlines and
+# doesn't have a comment after the #else, a comment will be added.
+mod_add_long_ifdef_else_comment = 0 # unsigned number
+
+# Whether to take care of the case by the mod_sort_xx options.
+mod_sort_case_sensitive = false # true/false
+
+# Whether to sort consecutive single-line 'import' statements.
+mod_sort_import = false # true/false
+
+# (C#) Whether to sort consecutive single-line 'using' statements.
+mod_sort_using = false # true/false
+
+# Whether to sort consecutive single-line '#include' statements (C/C++) and
+# '#import' statements (Objective-C). Be aware that this has the potential to
+# break your code if your includes/imports have ordering dependencies.
+mod_sort_include = false # true/false
+
+# Whether to prioritize '#include' and '#import' statements that contain
+# filename without extension when sorting is enabled.
+mod_sort_incl_import_prioritize_filename = false # true/false
+
+# Whether to prioritize '#include' and '#import' statements that does not
+# contain extensions when sorting is enabled.
+mod_sort_incl_import_prioritize_extensionless = false # true/false
+
+# Whether to prioritize '#include' and '#import' statements that contain
+# angle over quotes when sorting is enabled.
+mod_sort_incl_import_prioritize_angle_over_quotes = false # true/false
+
+# Whether to ignore file extension in '#include' and '#import' statements
+# for sorting comparison.
+mod_sort_incl_import_ignore_extension = false # true/false
+
+# Whether to group '#include' and '#import' statements when sorting is enabled.
+mod_sort_incl_import_grouping_enabled = false # true/false
+
+# Whether to move a 'break' that appears after a fully braced 'case' before
+# the close brace, as in 'case X: { ... } break;' => 'case X: { ... break; }'.
+mod_move_case_break = false # true/false
+
+# Whether to move a 'return' that appears after a fully braced 'case' before
+# the close brace, as in 'case X: { ... } return;' => 'case X: { ... return; }'.
+mod_move_case_return = false # true/false
+
+# Add or remove braces around a fully braced case statement. Will only remove
+# braces if there are no variable declarations in the block.
+mod_case_brace = ignore # ignore/add/remove/force/not_defined
+
+# Whether to remove a void 'return;' that appears as the last statement in a
+# function.
+mod_remove_empty_return = false # true/false
+
+# Add or remove the comma after the last value of an enumeration.
+mod_enum_last_comma = ignore # ignore/add/remove/force/not_defined
+
+# (OC) Whether to organize the properties. If true, properties will be
+# rearranged according to the mod_sort_oc_property_*_weight factors.
+mod_sort_oc_properties = false # true/false
+
+# (OC) Weight of a class property modifier.
+mod_sort_oc_property_class_weight = 0 # number
+
+# (OC) Weight of 'atomic' and 'nonatomic'.
+mod_sort_oc_property_thread_safe_weight = 0 # number
+
+# (OC) Weight of 'readwrite' when organizing properties.
+mod_sort_oc_property_readwrite_weight = 0 # number
+
+# (OC) Weight of a reference type specifier ('retain', 'copy', 'assign',
+# 'weak', 'strong') when organizing properties.
+mod_sort_oc_property_reference_weight = 0 # number
+
+# (OC) Weight of getter type ('getter=') when organizing properties.
+mod_sort_oc_property_getter_weight = 0 # number
+
+# (OC) Weight of setter type ('setter=') when organizing properties.
+mod_sort_oc_property_setter_weight = 0 # number
+
+# (OC) Weight of nullability type ('nullable', 'nonnull', 'null_unspecified',
+# 'null_resettable') when organizing properties.
+mod_sort_oc_property_nullability_weight = 0 # number
+
+#
+# Preprocessor options
+#
+
+# Add or remove indentation of preprocessor directives inside #if blocks
+# at brace level 0 (file-level).
+pp_indent = ignore # ignore/add/remove/force/not_defined
+
+# Whether to indent #if/#else/#endif at the brace level. If false, these are
+# indented from column 1.
+pp_indent_at_level = false # true/false
+
+# Whether to indent #if/#else/#endif at the parenthesis level if the brace
+# level is 0. If false, these are indented from column 1.
+pp_indent_at_level0 = false # true/false
+
+# Specifies the number of columns to indent preprocessors per level
+# at brace level 0 (file-level). If pp_indent_at_level=false, also specifies
+# the number of columns to indent preprocessors per level
+# at brace level > 0 (function-level).
+#
+# Default: 1
+pp_indent_count = 1 # unsigned number
+
+# Add or remove space after # based on pp_level of #if blocks.
+pp_space = ignore # ignore/add/remove/force/not_defined
+
+# Sets the number of spaces per level added with pp_space.
+pp_space_count = 0 # unsigned number
+
+# The indent for '#region' and '#endregion' in C# and '#pragma region' in
+# C/C++. Negative values decrease indent down to the first column.
+pp_indent_region = 0 # number
+
+# Whether to indent the code between #region and #endregion.
+pp_region_indent_code = false # true/false
+
+# If pp_indent_at_level=true, sets the indent for #if, #else and #endif when
+# not at file-level. Negative values decrease indent down to the first column.
+#
+# =0: Indent preprocessors using output_tab_size
+# >0: Column at which all preprocessors will be indented
+pp_indent_if = 0 # number
+
+# Whether to indent the code between #if, #else and #endif.
+pp_if_indent_code = false # true/false
+
+# Whether to indent the body of an #if that encompasses all the code in the file.
+pp_indent_in_guard = false # true/false
+
+# Whether to indent '#define' at the brace level. If false, these are
+# indented from column 1.
+pp_define_at_level = false # true/false
+
+# Whether to indent '#include' at the brace level.
+pp_include_at_level = false # true/false
+
+# Whether to ignore the '#define' body while formatting.
+pp_ignore_define_body = false # true/false
+
+# Whether to indent case statements between #if, #else, and #endif.
+# Only applies to the indent of the preprocesser that the case statements
+# directly inside of.
+#
+# Default: true
+pp_indent_case = true # true/false
+
+# Whether to indent whole function definitions between #if, #else, and #endif.
+# Only applies to the indent of the preprocesser that the function definition
+# is directly inside of.
+#
+# Default: true
+pp_indent_func_def = true # true/false
+
+# Whether to indent extern C blocks between #if, #else, and #endif.
+# Only applies to the indent of the preprocesser that the extern block is
+# directly inside of.
+#
+# Default: true
+pp_indent_extern = true # true/false
+
+# How to indent braces directly inside #if, #else, and #endif.
+# Requires pp_if_indent_code=true and only applies to the indent of the
+# preprocesser that the braces are directly inside of.
+# 0: No extra indent
+# 1: Indent by one level
+# -1: Preserve original indentation
+#
+# Default: 1
+pp_indent_brace = 1 # number
+
+# Whether to print warning messages for unbalanced #if and #else blocks.
+# This will print a message in the following cases:
+# - if an #ifdef block ends on a different indent level than
+# where it started from. Example:
+#
+# #ifdef TEST
+# int i;
+# {
+# int j;
+# #endif
+#
+# - an #elif/#else block ends on a different indent level than
+# the corresponding #ifdef block. Example:
+#
+# #ifdef TEST
+# int i;
+# #else
+# }
+# int j;
+# #endif
+pp_warn_unbalanced_if = false # true/false
+
+#
+# Sort includes options
+#
+
+# The regex for include category with priority 0.
+include_category_0 = "" # string
+
+# The regex for include category with priority 1.
+include_category_1 = "" # string
+
+# The regex for include category with priority 2.
+include_category_2 = "" # string
+
+#
+# Use or Do not Use options
+#
+
+# true: indent_func_call_param will be used (default)
+# false: indent_func_call_param will NOT be used
+#
+# Default: true
+use_indent_func_call_param = true # true/false
+
+# The value of the indentation for a continuation line is calculated
+# differently if the statement is:
+# - a declaration: your case with QString fileName ...
+# - an assignment: your case with pSettings = new QSettings( ...
+#
+# At the second case the indentation value might be used twice:
+# - at the assignment
+# - at the function call (if present)
+#
+# To prevent the double use of the indentation value, use this option with the
+# value 'true'.
+#
+# true: indent_continue will be used only once
+# false: indent_continue will be used every time (default)
+#
+# Requires indent_ignore_first_continue=false.
+use_indent_continue_only_once = false # true/false
+
+# The indentation can be:
+# - after the assignment, at the '[' character
+# - at the begin of the lambda body
+#
+# true: indentation will be after the assignment
+# false: indentation will be at the begin of the lambda body (default)
+indent_cpp_lambda_only_once = false # true/false
+
+# Whether sp_after_angle takes precedence over sp_inside_fparen. This was the
+# historic behavior, but is probably not the desired behavior, so this is off
+# by default.
+use_sp_after_angle_always = false # true/false
+
+# Whether to apply special formatting for Qt SIGNAL/SLOT macros. Essentially,
+# this tries to format these so that they match Qt's normalized form (i.e. the
+# result of QMetaObject::normalizedSignature), which can slightly improve the
+# performance of the QObject::connect call, rather than how they would
+# otherwise be formatted.
+#
+# See options_for_QT.cpp for details.
+#
+# Default: true
+use_options_overriding_for_qt_macros = true # true/false
+
+# If true: the form feed character is removed from the list of whitespace
+# characters. See https://en.cppreference.com/w/cpp/string/byte/isspace.
+use_form_feed_no_more_as_whitespace_character = false # true/false
+
+#
+# Warn levels - 1: error, 2: warning (default), 3: note
+#
+
+# (C#) Warning is given if doing tab-to-\t replacement and we have found one
+# in a C# verbatim string literal.
+#
+# Default: 2
+warn_level_tabs_found_in_verbatim_string_literals = 2 # unsigned number
+
+# Limit the number of loops.
+# Used by uncrustify.cpp to exit from infinite loop.
+# 0: no limit.
+debug_max_number_of_loops = 0 # number
+
+# Set the number of the line to protocol;
+# Used in the function prot_the_line if the 2. parameter is zero.
+# 0: nothing protocol.
+debug_line_number_to_protocol = 0 # number
+
+# Set the number of second(s) before terminating formatting the current file,
+# 0: no timeout.
+# only for linux
+debug_timeout = 0 # number
+
+# Set the number of characters to be printed if the text is too long,
+# 0: do not truncate.
+debug_truncate = 0 # unsigned number
+
+# Meaning of the settings:
+# Ignore - do not do any changes
+# Add - makes sure there is 1 or more space/brace/newline/etc
+# Force - makes sure there is exactly 1 space/brace/newline/etc,
+# behaves like Add in some contexts
+# Remove - removes space/brace/newline/etc
+#
+#
+# - Token(s) can be treated as specific type(s) with the 'set' option:
+# `set tokenType tokenString [tokenString...]`
+#
+# Example:
+# `set BOOL __AND__ __OR__`
+#
+# tokenTypes are defined in src/token_enum.h, use them without the
+# 'CT_' prefix: 'CT_BOOL' => 'BOOL'
+#
+#
+# - Token(s) can be treated as type(s) with the 'type' option.
+# `type tokenString [tokenString...]`
+#
+# Example:
+# `type int c_uint_8 Rectangle`
+#
+# This can also be achieved with `set TYPE int c_uint_8 Rectangle`
+#
+#
+# To embed whitespace in tokenStrings use the '\' escape character, or quote
+# the tokenStrings. These quotes are supported: "'`
+#
+#
+# - Support for the auto detection of languages through the file ending can be
+# added using the 'file_ext' command.
+# `file_ext langType langString [langString..]`
+#
+# Example:
+# `file_ext CPP .ch .cxx .cpp.in`
+#
+# langTypes are defined in uncrusify_types.h in the lang_flag_e enum, use
+# them without the 'LANG_' prefix: 'LANG_CPP' => 'CPP'
+#
+#
+# - Custom macro-based indentation can be set up using 'macro-open',
+# 'macro-else' and 'macro-close'.
+# `(macro-open | macro-else | macro-close) tokenString`
+#
+# Example:
+# `macro-open BEGIN_TEMPLATE_MESSAGE_MAP`
+# `macro-open BEGIN_MESSAGE_MAP`
+# `macro-close END_MESSAGE_MAP`
+#
+#
+# option(s) with 'not default' value: 0
+#
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/dofiles.sh b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/dofiles.sh
index e08fd6f7..e08fd6f7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/dofiles.sh
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/dofiles.sh
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/freebsd.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/freebsd.cfg
new file mode 100644
index 00000000..27c6d152
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/freebsd.cfg
@@ -0,0 +1,386 @@
+# Uncrustify 0.55
+newlines = lf
+input_tab_size = 8
+output_tab_size = 8
+string_escape_char = 92
+string_escape_char2 = 0
+indent_columns = 8
+indent_continue = 4
+indent_with_tabs = 2
+indent_align_string = false
+indent_xml_string = 0
+indent_brace = 0
+indent_braces = false
+indent_braces_no_func = false
+indent_brace_parent = false
+indent_namespace = false
+indent_namespace_level = 0
+indent_namespace_limit = 0
+indent_extern = false
+indent_class = true
+indent_class_colon = true
+indent_else_if = false
+indent_var_def_blk = 0
+indent_func_call_param = false
+indent_func_def_param = false
+indent_func_proto_param = false
+indent_func_class_param = false
+indent_func_ctor_var_param = false
+indent_template_param = false
+indent_func_param_double = false
+indent_func_const = 0
+indent_func_throw = 0
+indent_member = 0
+indent_single_line_comments_before = 0
+indent_relative_single_line_comments = false
+indent_switch_case = 0
+indent_case_shift = 0
+indent_case_brace = 0
+indent_col1_comment = false
+indent_label = 1
+indent_access_spec = 1
+indent_access_spec_body = false
+indent_paren_nl = false
+indent_paren_close = 0
+indent_comma_paren = 0
+indent_bool_paren = 0
+indent_square_nl = false
+indent_preserve_sql = false
+indent_align_assign = true
+indent_off_after_assign = false
+sp_arith = ignore
+sp_assign = force
+sp_before_assign = ignore
+sp_after_assign = ignore
+sp_enum_assign = ignore
+sp_enum_before_assign = ignore
+sp_enum_after_assign = ignore
+sp_pp_concat = add
+sp_pp_stringify = add
+sp_bool = force
+sp_compare = force
+sp_inside_paren = remove
+sp_paren_paren = remove
+sp_balance_nested_parens = false
+sp_paren_brace = ignore
+sp_before_ptr_star = force
+sp_before_unnamed_ptr_star = ignore
+sp_between_ptr_star = remove
+sp_after_ptr_star = remove
+sp_after_ptr_star_func = ignore
+sp_before_ptr_star_func = ignore
+sp_before_byref = remove
+sp_before_unnamed_byref = ignore
+sp_after_byref = force
+sp_after_byref_func = ignore
+sp_before_byref_func = ignore
+sp_after_type = force
+sp_template_angle = ignore
+sp_before_angle = remove
+sp_inside_angle = remove
+sp_after_angle = force
+sp_angle_paren = ignore
+sp_angle_word = ignore
+sp_before_sparen = force
+sp_inside_sparen = remove
+sp_inside_sparen_close = ignore
+sp_inside_for = remove
+sp_inside_for_close = ignore
+sp_after_sparen = force
+sp_sparen_brace = add
+sp_invariant_paren = ignore
+sp_after_invariant_paren = ignore
+sp_special_semi = ignore
+sp_before_semi = remove
+sp_before_semi_for = ignore
+sp_before_semi_for_empty = force
+sp_between_semi_for_empty = force
+sp_after_semi = add
+sp_after_semi_for = force
+sp_after_semi_for_empty = ignore
+sp_before_square = ignore
+sp_before_squares = ignore
+sp_inside_square = remove
+sp_after_comma = force
+sp_before_comma = remove
+sp_before_ellipsis = ignore
+sp_after_class_colon = ignore
+sp_before_class_colon = ignore
+sp_before_case_colon = remove
+sp_after_operator = ignore
+sp_after_operator_sym = ignore
+sp_after_cast = remove
+sp_inside_paren_cast = ignore
+sp_cpp_cast_paren = ignore
+sp_sizeof_paren = remove
+sp_after_tag = ignore
+sp_inside_braces_enum = force
+sp_inside_braces_struct = force
+sp_inside_braces = force
+sp_inside_braces_empty = ignore
+sp_type_func = force
+sp_func_proto_paren = remove
+sp_func_def_paren = remove
+sp_inside_fparens = ignore
+sp_inside_fparen = remove
+sp_square_fparen = ignore
+sp_fparen_brace = add
+sp_func_call_paren = remove
+sp_func_call_user_paren = ignore
+sp_func_class_paren = remove
+sp_return_paren = force
+sp_attribute_paren = ignore
+sp_defined_paren = ignore
+sp_throw_paren = ignore
+sp_macro = ignore
+sp_macro_func = ignore
+sp_else_brace = ignore
+sp_brace_else = ignore
+sp_brace_typedef = force
+sp_catch_brace = ignore
+sp_brace_catch = ignore
+sp_finally_brace = ignore
+sp_brace_finally = ignore
+sp_try_brace = ignore
+sp_getset_brace = ignore
+sp_before_dc = remove
+sp_after_dc = remove
+sp_d_array_colon = ignore
+sp_not = remove
+sp_inv = remove
+sp_addr = remove
+sp_member = remove
+sp_deref = remove
+sp_sign = remove
+sp_incdec = remove
+sp_before_nl_cont = add
+sp_after_oc_scope = ignore
+sp_after_oc_colon = ignore
+sp_before_oc_colon = ignore
+sp_after_send_oc_colon = ignore
+sp_before_send_oc_colon = ignore
+sp_after_oc_type = ignore
+sp_after_oc_return_type = ignore
+sp_after_oc_at_sel = ignore
+sp_before_oc_block_caret = ignore
+sp_after_oc_block_caret = ignore
+sp_cond_colon = ignore
+sp_cond_question = ignore
+sp_case_label = remove
+sp_range = ignore
+sp_cmt_cpp_start = ignore
+sp_endif_cmt = ignore
+force_tab_after_define = true
+align_keep_tabs = false
+align_with_tabs = true
+align_on_tabstop = true
+align_number_right = true
+align_func_params = false
+align_same_func_call_params = false
+align_same_func_call_params_span = 0
+align_same_func_call_params_thresh = 0
+align_var_def_span = 0
+align_var_def_star_style = 0
+align_var_def_amp_style = 0
+align_var_def_thresh = 0
+align_var_def_gap = 0
+align_var_def_colon = false
+align_var_def_attribute = false
+align_var_def_inline = false
+align_assign_span = 0
+align_assign_thresh = 12
+align_enum_equ_span = 16
+align_enum_equ_thresh = 0
+align_var_struct_span = 99
+align_var_struct_thresh = 0
+align_var_struct_gap = 0
+align_struct_init_span = 3
+align_typedef_gap = 3
+align_typedef_span = 5
+align_typedef_func = 0
+align_typedef_star_style = 0
+align_typedef_amp_style = 0
+align_right_cmt_span = 3
+align_right_cmt_mix = false
+align_right_cmt_gap = 0
+align_right_cmt_at_col = 0
+align_func_proto_span = 0
+align_func_proto_gap = 0
+align_on_operator = false
+align_mix_var_proto = false
+align_single_line_func = false
+align_single_line_brace = false
+align_single_line_brace_gap = 0
+align_oc_msg_spec_span = 0
+align_nl_cont = true
+align_pp_define_gap = 4
+align_pp_define_span = 3
+align_left_shift = true
+align_oc_msg_colon_span = 0
+nl_collapse_empty_body = false
+nl_assign_leave_one_liners = true
+nl_class_leave_one_liners = true
+nl_enum_leave_one_liners = false
+nl_getset_leave_one_liners = false
+nl_func_leave_one_liners = false
+nl_if_leave_one_liners = false
+nl_start_of_file = remove
+nl_start_of_file_min = 0
+nl_end_of_file = force
+nl_end_of_file_min = 1
+nl_assign_brace = add
+nl_assign_square = ignore
+nl_after_square_assign = ignore
+nl_func_var_def_blk = 1
+nl_fcall_brace = add
+nl_enum_brace = remove
+nl_struct_brace = remove
+nl_union_brace = remove
+nl_if_brace = remove
+nl_brace_else = remove
+nl_elseif_brace = ignore
+nl_else_brace = remove
+nl_else_if = remove
+nl_brace_finally = ignore
+nl_finally_brace = ignore
+nl_try_brace = ignore
+nl_getset_brace = force
+nl_for_brace = add
+nl_catch_brace = ignore
+nl_brace_catch = ignore
+nl_while_brace = add
+nl_brace_brace = ignore
+nl_do_brace = add
+nl_brace_while = remove
+nl_switch_brace = add
+nl_multi_line_cond = false
+nl_multi_line_define = true
+nl_before_case = true
+nl_before_throw = ignore
+nl_after_case = true
+nl_namespace_brace = ignore
+nl_template_class = ignore
+nl_class_brace = ignore
+nl_class_init_args = ignore
+nl_func_type_name = ignore
+nl_func_type_name_class = ignore
+nl_func_scope_name = ignore
+nl_func_proto_type_name = ignore
+nl_func_paren = remove
+nl_func_decl_start = ignore
+nl_func_decl_start_single = ignore
+nl_func_decl_args = ignore
+nl_func_decl_end = ignore
+nl_func_decl_end_single = ignore
+nl_func_decl_empty = ignore
+nl_fdef_brace = add
+nl_after_return = true
+nl_return_expr = ignore
+nl_after_semicolon = true
+nl_after_brace_open = true
+nl_after_brace_open_cmt = false
+nl_after_vbrace_open = false
+nl_after_vbrace_open_empty = false
+nl_after_brace_close = true
+nl_define_macro = false
+nl_squeeze_ifdef = true
+nl_before_if = ignore
+nl_after_if = ignore
+nl_before_for = ignore
+nl_after_for = ignore
+nl_before_while = ignore
+nl_after_while = ignore
+nl_before_switch = ignore
+nl_after_switch = ignore
+nl_before_do = ignore
+nl_after_do = ignore
+nl_ds_struct_enum_cmt = false
+nl_ds_struct_enum_close_brace = false
+nl_class_colon = ignore
+nl_create_if_one_liner = false
+nl_create_for_one_liner = false
+nl_create_while_one_liner = false
+pos_arith = ignore
+pos_assign = ignore
+pos_bool = trail
+pos_compare = ignore
+pos_conditional = ignore
+pos_comma = ignore
+pos_class_comma = ignore
+pos_class_colon = ignore
+code_width = 80
+ls_for_split_full = false
+ls_func_split_full = false
+nl_max = 4
+nl_after_func_proto = 0
+nl_after_func_proto_group = 2
+nl_after_func_body = 3
+nl_after_func_body_one_liner = 0
+nl_before_block_comment = 2
+nl_before_c_comment = 0
+nl_before_cpp_comment = 0
+nl_after_multiline_comment = false
+nl_before_access_spec = 0
+nl_after_access_spec = 0
+nl_comment_func_def = 1
+nl_after_try_catch_finally = 0
+nl_around_cs_property = 0
+nl_between_get_set = 0
+eat_blanks_after_open_brace = true
+eat_blanks_before_close_brace = true
+mod_full_brace_do = add
+mod_full_brace_for = add
+mod_full_brace_function = ignore
+mod_full_brace_if = add
+mod_full_brace_if_chain = 0
+mod_full_brace_nl = 0
+mod_full_brace_while = add
+mod_paren_on_return = add
+mod_pawn_semicolon = false
+mod_full_paren_if_bool = true
+mod_remove_extra_semicolon = true
+mod_add_long_function_closebrace_comment = 0
+mod_add_long_switch_closebrace_comment = 0
+mod_add_long_ifdef_endif_comment = 0
+mod_add_long_ifdef_else_comment = 0
+mod_sort_import = false
+mod_sort_using = false
+mod_sort_include = false
+mod_sort_incl_import_prioritize_filename = false
+mod_sort_incl_import_prioritize_extensionless = false
+mod_sort_incl_import_prioritize_angle_over_quotes = false
+mod_sort_incl_import_ignore_extension = false
+mod_sort_incl_import_grouping_enabled = false
+mod_move_case_break = false
+mod_case_brace = remove
+mod_remove_empty_return = true
+cmt_width = 0
+cmt_reflow_mode = 0
+cmt_indent_multi = true
+cmt_c_group = false
+cmt_c_nl_start = false
+cmt_c_nl_end = false
+cmt_cpp_group = false
+cmt_cpp_nl_start = false
+cmt_cpp_nl_end = false
+cmt_cpp_to_c = false
+cmt_star_cont = true
+cmt_sp_before_star_cont = 0
+cmt_sp_after_star_cont = 0
+cmt_multi_check_last = true
+cmt_insert_file_header = ""
+cmt_insert_file_footer = ""
+cmt_insert_func_header = ""
+cmt_insert_class_header = ""
+cmt_insert_before_preproc = false
+pp_indent = remove
+pp_indent_at_level = false
+pp_indent_at_level0 = false
+pp_indent_count = 1
+pp_space = ignore
+pp_space_count = 0
+pp_indent_region = 0
+pp_region_indent_code = false
+pp_indent_if = 0
+pp_if_indent_code = false
+pp_define_at_level = false
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/gnu-indent.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/gnu-indent.cfg
index 03045618..03045618 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/gnu-indent.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/gnu-indent.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/klaus.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/klaus.cfg
index 289ee792..289ee792 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/klaus.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/klaus.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/kr-indent.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/kr-indent.cfg
index cd39b27a..cd39b27a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/kr-indent.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/kr-indent.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/linux-indent.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/linux-indent.cfg
index d6baa165..d6baa165 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/linux-indent.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/linux-indent.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/linux.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/linux.cfg
new file mode 100644
index 00000000..af6f3d5d
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/linux.cfg
@@ -0,0 +1,123 @@
+#
+# uncrustify config file for the linux kernel
+#
+
+indent_with_tabs = 2 # 1=indent to level only, 2=indent with tabs
+input_tab_size = 8 # original tab size
+output_tab_size = 8 # new tab size
+indent_columns = output_tab_size
+
+indent_label = 1 # pos: absolute col, neg: relative column
+
+
+#
+# inter-symbol newlines
+#
+
+nl_enum_brace = remove # "enum {" vs "enum \n {"
+nl_union_brace = remove # "union {" vs "union \n {"
+nl_struct_brace = remove # "struct {" vs "struct \n {"
+nl_do_brace = remove # "do {" vs "do \n {"
+nl_if_brace = remove # "if () {" vs "if () \n {"
+nl_for_brace = remove # "for () {" vs "for () \n {"
+nl_else_brace = remove # "else {" vs "else \n {"
+nl_while_brace = remove # "while () {" vs "while () \n {"
+nl_switch_brace = remove # "switch () {" vs "switch () \n {"
+nl_brace_while = remove # "} while" vs "} \n while" - cuddle while
+nl_brace_else = remove # "} else" vs "} \n else" - cuddle else
+sp_brace_else = force
+sp_else_brace = force
+nl_func_var_def_blk = 1
+nl_fcall_brace = remove # "list_for_each() {" vs "list_for_each()\n{"
+nl_fdef_brace = add # "int foo() {" vs "int foo()\n{"
+nl_after_label_colon = true # "fail:\nfree(foo);" vs "fail: free(foo);"
+# nl_after_return = TRUE;
+# nl_before_case = 1
+
+
+#
+# Source code modifications
+#
+
+mod_paren_on_return = remove # "return 1;" vs "return (1);"
+#mod_full_brace_if = remove # "if (a) a--;" vs "if (a) { a--; }"
+mod_full_brace_if_chain = 1
+mod_full_brace_for = remove # "for () a--;" vs "for () { a--; }"
+mod_full_brace_do = remove # "do a--; while ();" vs "do { a--; } while ();"
+mod_full_brace_while = remove # "while (a) a--;" vs "while (a) { a--; }"
+mod_full_brace_nl = 3 # don't remove if more than 3 newlines
+
+
+#
+# inter-character spacing options
+#
+
+sp_return_paren = force # "return (1);" vs "return(1);"
+sp_sizeof_paren = remove # "sizeof (int)" vs "sizeof(int)"
+sp_before_sparen = force # "if (" vs "if("
+sp_after_sparen = force # "if () {" vs "if (){"
+sp_after_cast = remove # "(int) a" vs "(int)a"
+sp_inside_braces = force # "{ 1 }" vs "{1}"
+sp_inside_braces_struct = force # "{ 1 }" vs "{1}"
+sp_inside_braces_enum = force # "{ 1 }" vs "{1}"
+sp_assign = force
+sp_arith = force
+sp_bool = force
+sp_compare = force
+sp_assign = force
+sp_after_comma = force
+sp_func_def_paren = remove # "int foo (){" vs "int foo(){"
+sp_func_call_paren = remove # "foo (" vs "foo("
+sp_func_proto_paren = remove # "int foo ();" vs "int foo();"
+
+
+#
+# Aligning stuff
+#
+
+align_with_tabs = TRUE # use tabs to align
+align_on_tabstop = TRUE # align on tabstops
+# align_keep_tabs = true
+align_enum_equ_span = 4 # '=' in enum definition
+# align_nl_cont = TRUE
+# align_var_def_span = 2
+# align_var_def_inline = TRUE
+# align_var_def_star = FALSE
+# align_var_def_colon = TRUE
+# align_assign_span = 1
+align_struct_init_span = 3 # align stuff in a structure init '= { }'
+align_right_cmt_span = 3
+# align_pp_define_span = 8;
+# align_pp_define_gap = 4;
+
+cmt_star_cont = true
+
+# indent_brace = 0
+
+nl_func_paren = remove
+nl_func_decl_start = remove
+nl_func_decl_empty = remove
+nl_func_decl_args = remove
+nl_func_decl_end = remove
+sp_inside_paren = remove
+sp_inside_square = remove
+sp_inside_paren_cast = remove
+sp_inside_fparen = remove
+sp_inside_sparen = remove
+sp_inside_for = remove
+sp_paren_paren = remove
+sp_before_ptr_star = force
+sp_after_ptr_star = remove
+sp_ptr_star_func_var = remove
+sp_between_ptr_star = remove
+align_func_params = true
+align_var_struct_span = 6
+
+eat_blanks_after_open_brace = true
+eat_blanks_before_close_brace = true
+pp_indent = remove
+
+nl_start_of_file = remove
+nl_end_of_file = force
+nl_end_of_file_min = 1
+nl_comment_func_def = 1
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/mono.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/mono.cfg
index b7aa9779..b7aa9779 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/mono.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/mono.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/msvc.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/msvc.cfg
index 36e9e14f..36e9e14f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/msvc.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/msvc.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/objc.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/objc.cfg
index d3321f09..d3321f09 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/objc.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/objc.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/sun.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/sun.cfg
new file mode 100644
index 00000000..1d6a8887
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/sun.cfg
@@ -0,0 +1,1803 @@
+#
+# Sun C/C++/Java
+# https://www.cis.upenn.edu/~lee/06cse480/data/cstyle.ms.pdf
+# http://www.oracle.com/technetwork/java/codeconventions-150003.pdf
+#
+
+# The type of line endings
+newlines = auto # auto/lf/crlf/cr
+
+# The original size of tabs in the input
+input_tab_size = 8 # number
+
+# The size of tabs in the output (only used if align_with_tabs=true)
+output_tab_size = 8 # number
+
+# The ASCII value of the string escape char, usually 92 (\) or 94 (^). (Pawn)
+string_escape_char = 92 # number
+
+# Alternate string escape char for Pawn. Only works right before the quote char.
+string_escape_char2 = 0 # number
+
+# Replace tab characters found in string literals with the escape sequence \t instead.
+string_replace_tab_chars = true # false/true
+
+# Allow interpreting '>=' and '>>=' as part of a template in 'void f(list<list<B>>=val);'.
+# If true (default), 'assert(x<0 && y>=3)' will be broken.
+# Improvements to template detection may make this option obsolete.
+tok_split_gte = false # false/true
+
+# Override the default ' *INDENT-OFF*' in comments for disabling processing of part of the file.
+disable_processing_cmt = "" # string
+
+# Override the default ' *INDENT-ON*' in comments for enabling processing of part of the file.
+enable_processing_cmt = "" # string
+
+# Enable parsing of digraphs. Default=false
+enable_digraphs = false # false/true
+
+# If the file contains bytes with values between 128 and 255, but is not UTF-8, then output as UTF-8
+utf8_byte = false # false/true
+
+# Force the output encoding to UTF-8
+utf8_force = false # false/true
+
+#
+# Indenting
+#
+
+# The number of columns to indent per level.
+# Usually 2, 3, 4, or 8.
+indent_columns = 4 # number
+
+# The continuation indent. If non-zero, this overrides the indent of '(' and '=' continuation indents.
+# For FreeBSD, this is set to 4. Negative value is absolute and not increased for each ( level
+indent_continue = -4 # number
+
+# How to use tabs when indenting code
+# 0=spaces only
+# 1=indent with tabs to brace level, align with spaces
+# 2=indent and align with tabs, using spaces when not on a tabstop
+indent_with_tabs = 2 # number
+
+# Comments that are not a brace level are indented with tabs on a tabstop.
+# Requires indent_with_tabs=2. If false, will use spaces.
+indent_cmt_with_tabs = false # false/true
+
+# Whether to indent strings broken by '\' so that they line up
+indent_align_string = false # false/true
+
+# The number of spaces to indent multi-line XML strings.
+# Requires indent_align_string=True
+indent_xml_string = 2 # number
+
+# Spaces to indent '{' from level
+indent_brace = 0 # number
+
+# Whether braces are indented to the body level
+indent_braces = false # false/true
+
+# Disabled indenting function braces if indent_braces is true
+indent_braces_no_func = false # false/true
+
+# Disabled indenting class braces if indent_braces is true
+indent_braces_no_class = false # false/true
+
+# Disabled indenting struct braces if indent_braces is true
+indent_braces_no_struct = false # false/true
+
+# Indent based on the size of the brace parent, i.e. 'if' => 3 spaces, 'for' => 4 spaces, etc.
+indent_brace_parent = false # false/true
+
+# Indent based on the paren open instead of the brace open in '({\n', default is to indent by brace.
+indent_paren_open_brace = false # false/true
+
+# Whether the 'namespace' body is indented
+indent_namespace = false # false/true
+
+# Only indent one namespace and no sub-namespaces.
+# Requires indent_namespace=true.
+indent_namespace_single_indent = false # false/true
+
+# The number of spaces to indent a namespace block
+indent_namespace_level = 0 # number
+
+# If the body of the namespace is longer than this number, it won't be indented.
+# Requires indent_namespace=true. Default=0 (no limit)
+indent_namespace_limit = 0 # number
+
+# Whether the 'extern "C"' body is indented
+indent_extern = false # false/true
+
+# Whether the 'class' body is indented
+indent_class = true # false/true
+
+# Whether to indent the stuff after a leading base class colon
+indent_class_colon = false # false/true
+
+# Indent based on a class colon instead of the stuff after the colon.
+# Requires indent_class_colon=true. Default=false
+indent_class_on_colon = false # false/true
+
+# Whether to indent the stuff after a leading class initializer colon
+indent_constr_colon = false # false/true
+
+# Virtual indent from the ':' for member initializers. Default is 2
+indent_ctor_init_leading = 0 # number
+
+# Additional indenting for constructor initializer list
+indent_ctor_init = 0 # number
+
+# False=treat 'else\nif' as 'else if' for indenting purposes
+# True=indent the 'if' one level
+indent_else_if = false # false/true
+
+# Amount to indent variable declarations after a open brace. neg=relative, pos=absolute
+indent_var_def_blk = 0 # number
+
+# Indent continued variable declarations instead of aligning.
+indent_var_def_cont = true # false/true
+
+# How to indent continued shift expressions ('<<' and '>>').
+# Set align_left_shift=false when using this.
+# 0: Align shift operators instead of indenting them (default)
+# 1: Indent by one level
+# -1: Preserve original indentation
+indent_shift = 0 # number
+
+# True: force indentation of function definition to start in column 1
+# False: use the default behavior
+indent_func_def_force_col1 = false # false/true
+
+# True: indent continued function call parameters one indent level
+# False: align parameters under the open paren
+indent_func_call_param = true # false/true
+
+# Same as indent_func_call_param, but for function defs
+indent_func_def_param = true # false/true
+
+# Same as indent_func_call_param, but for function protos
+indent_func_proto_param = true # false/true
+
+# Same as indent_func_call_param, but for class declarations
+indent_func_class_param = true # false/true
+
+# Same as indent_func_call_param, but for class variable constructors
+indent_func_ctor_var_param = true # false/true
+
+# Same as indent_func_call_param, but for templates
+indent_template_param = true # false/true
+
+# Double the indent for indent_func_xxx_param options
+indent_func_param_double = false # false/true
+
+# Indentation column for standalone 'const' function decl/proto qualifier
+indent_func_const = 0 # number
+
+# Indentation column for standalone 'throw' function decl/proto qualifier
+indent_func_throw = 0 # number
+
+# The number of spaces to indent a continued '->' or '.'
+# Usually set to 0, 1, or indent_columns.
+indent_member = 4 # number
+
+# Spaces to indent single line ('//') comments on lines before code
+indent_single_line_comments_before = 0 # number
+
+# If set, will indent trailing single line ('//') comments relative
+# to the code instead of trying to keep the same absolute column
+indent_relative_single_line_comments = false # false/true
+
+# Spaces to indent 'case' from 'switch'
+# Usually 0 or indent_columns.
+indent_switch_case = 0 # number
+
+# Spaces to shift the 'case' line, without affecting any other lines
+# Usually 0.
+indent_case_shift = 0 # number
+
+# Spaces to indent '{' from 'case'.
+# By default, the brace will appear under the 'c' in case.
+# Usually set to 0 or indent_columns.
+indent_case_brace = 0 # number
+
+# Whether to indent comments found in first column
+indent_col1_comment = false # false/true
+
+# How to indent goto labels
+# >0: absolute column where 1 is the leftmost column
+# <=0: subtract from brace indent
+indent_label = -4 # number
+
+# Same as indent_label, but for access specifiers that are followed by a colon
+indent_access_spec = -4 # number
+
+# Indent the code after an access specifier by one level.
+# If set, this option forces 'indent_access_spec=0'
+indent_access_spec_body = false # false/true
+
+# If an open paren is followed by a newline, indent the next line so that it lines up after the open paren (not recommended)
+indent_paren_nl = false # false/true
+
+# Controls the indent of a close paren after a newline.
+# 0: Indent to body level
+# 1: Align under the open paren
+# 2: Indent to the brace level
+indent_paren_close = 0 # number
+
+# Controls the indent of a comma when inside a paren.If 1, aligns under the open paren
+indent_comma_paren = 0 # number
+
+# Controls the indent of a BOOL operator when inside a paren.If 1, aligns under the open paren
+indent_bool_paren = 0 # number
+
+# If 'indent_bool_paren' is 1, controls the indent of the first expression. If TRUE, aligns the first expression to the following ones
+indent_first_bool_expr = false # false/true
+
+# If an open square is followed by a newline, indent the next line so that it lines up after the open square (not recommended)
+indent_square_nl = false # false/true
+
+# Don't change the relative indent of ESQL/C 'EXEC SQL' bodies
+indent_preserve_sql = false # false/true
+
+# Align continued statements at the '='. Default=True
+# If FALSE or the '=' is followed by a newline, the next line is indent one tab.
+indent_align_assign = false # false/true
+
+# If true, the indentation of the chunks after a '=' sequence will be set at
+# LHS token indentation column before '='.
+indent_off_after_assign = false # true/false
+
+# Indent OC blocks at brace level instead of usual rules.
+indent_oc_block = false # false/true
+
+# Indent OC blocks in a message relative to the parameter name.
+# 0=use indent_oc_block rules, 1+=spaces to indent
+indent_oc_block_msg = 0 # number
+
+# Minimum indent for subsequent parameters
+indent_oc_msg_colon = 0 # number
+
+# If true, prioritize aligning with initial colon (and stripping spaces from lines, if necessary).
+# Default is true.
+indent_oc_msg_prioritize_first_colon = true # false/true
+
+# If indent_oc_block_msg and this option are on, blocks will be indented the way that Xcode does by default (from keyword if the parameter is on its own line; otherwise, from the previous indentation level).
+indent_oc_block_msg_xcode_style = false # false/true
+
+# If indent_oc_block_msg and this option are on, blocks will be indented from where the brace is relative to a msg keyword.
+indent_oc_block_msg_from_keyword = false # false/true
+
+# If indent_oc_block_msg and this option are on, blocks will be indented from where the brace is relative to a msg colon.
+indent_oc_block_msg_from_colon = false # false/true
+
+# If indent_oc_block_msg and this option are on, blocks will be indented from where the block caret is.
+indent_oc_block_msg_from_caret = false # false/true
+
+# If indent_oc_block_msg and this option are on, blocks will be indented from where the brace is.
+indent_oc_block_msg_from_brace = false # false/true
+
+# When identing after virtual brace open and newline add further spaces to reach this min. indent.
+indent_min_vbrace_open = 0 # number
+
+# TRUE: When identing after virtual brace open and newline add further spaces after regular indent to reach next tabstop.
+indent_vbrace_open_on_tabstop = false # false/true
+
+#
+# Spacing options
+#
+
+# Add or remove space around arithmetic operator '+', '-', '/', '*', etc
+# also '>>>' '<<' '>>' '%' '|'
+sp_arith = force # ignore/add/remove/force
+
+# Add or remove space around assignment operator '=', '+=', etc
+sp_assign = force # ignore/add/remove/force
+
+# Add or remove space around '=' in C++11 lambda capture specifications. Overrides sp_assign
+sp_cpp_lambda_assign = force # ignore/add/remove/force
+
+# Add or remove space around assignment operator '=' in a prototype
+sp_assign_default = force # ignore/add/remove/force
+
+# Add or remove space before assignment operator '=', '+=', etc. Overrides sp_assign.
+sp_before_assign = force # ignore/add/remove/force
+
+# Add or remove space after assignment operator '=', '+=', etc. Overrides sp_assign.
+sp_after_assign = force # ignore/add/remove/force
+
+# Add or remove space in 'NS_ENUM ('
+sp_enum_paren = force # ignore/add/remove/force
+
+# Add or remove space around assignment '=' in enum
+sp_enum_assign = force # ignore/add/remove/force
+
+# Add or remove space before assignment '=' in enum. Overrides sp_enum_assign.
+sp_enum_before_assign = force # ignore/add/remove/force
+
+# Add or remove space after assignment '=' in enum. Overrides sp_enum_assign.
+sp_enum_after_assign = force # ignore/add/remove/force
+
+# Add or remove space around preprocessor '##' concatenation operator. Default=Add
+sp_pp_concat = force # ignore/add/remove/force
+
+# Add or remove space after preprocessor '#' stringify operator. Also affects the '#@' charizing operator.
+sp_pp_stringify = force # ignore/add/remove/force
+
+# Add or remove space before preprocessor '#' stringify operator as in '#define x(y) L#y'.
+sp_before_pp_stringify = force # ignore/add/remove/force
+
+# Add or remove space around boolean operators '&&' and '||'
+sp_bool = force # ignore/add/remove/force
+
+# Add or remove space around compare operator '<', '>', '==', etc
+sp_compare = force # ignore/add/remove/force
+
+# Add or remove space inside '(' and ')'
+sp_inside_paren = remove # ignore/add/remove/force
+
+# Add or remove space between nested parens: '((' vs ') )'
+sp_paren_paren = remove # ignore/add/remove/force
+
+# Add or remove space between back-to-back parens: ')(' vs ') ('
+sp_cparen_oparen = remove # ignore/add/remove/force
+
+# Whether to balance spaces inside nested parens
+sp_balance_nested_parens = false # false/true
+
+# Add or remove space between ')' and '{'
+sp_paren_brace = force # ignore/add/remove/force
+
+# Add or remove space before pointer star '*'
+sp_before_ptr_star = force # ignore/add/remove/force
+
+# Add or remove space before pointer star '*' that isn't followed by a variable name
+# If set to 'ignore', sp_before_ptr_star is used instead.
+sp_before_unnamed_ptr_star = force # ignore/add/remove/force
+
+# Add or remove space between pointer stars '*'
+sp_between_ptr_star = remove # ignore/add/remove/force
+
+# Add or remove space after pointer star '*', if followed by a word.
+sp_after_ptr_star = remove # ignore/add/remove/force
+
+# Add or remove space after pointer star '*', if followed by a qualifier.
+sp_after_ptr_star_qualifier = force # ignore/add/remove/force
+
+# Add or remove space after a pointer star '*', if followed by a func proto/def.
+sp_after_ptr_star_func = remove # ignore/add/remove/force
+
+# Add or remove space between the pointer star '*' and the name of the variable
+# in a function pointer definition.
+sp_ptr_star_func_var = remove # ignore/add/remove/force/not_defined
+
+# Add or remove space after a pointer star '*', if followed by an open paren (function types).
+sp_ptr_star_paren = remove # ignore/add/remove/force
+
+# Add or remove space before a pointer star '*', if followed by a func proto/def.
+sp_before_ptr_star_func = force # ignore/add/remove/force
+
+# Add or remove space before a reference sign '&'
+sp_before_byref = force # ignore/add/remove/force
+
+# Add or remove space before a reference sign '&' that isn't followed by a variable name
+# If set to 'ignore', sp_before_byref is used instead.
+sp_before_unnamed_byref = force # ignore/add/remove/force
+
+# Add or remove space after reference sign '&', if followed by a word.
+sp_after_byref = remove # ignore/add/remove/force
+
+# Add or remove space after a reference sign '&', if followed by a func proto/def.
+sp_after_byref_func = remove # ignore/add/remove/force
+
+# Add or remove space before a reference sign '&', if followed by a func proto/def.
+sp_before_byref_func = force # ignore/add/remove/force
+
+# Add or remove space between type and word. Default=Force
+sp_after_type = force # ignore/add/remove/force
+
+# Add or remove space before the paren in the D constructs 'template Foo(' and 'class Foo('.
+sp_before_template_paren = remove # ignore/add/remove/force
+
+# Add or remove space in 'template <' vs 'template<'.
+# If set to ignore, sp_before_angle is used.
+sp_template_angle = remove # ignore/add/remove/force
+
+# Add or remove space before '<>'
+sp_before_angle = remove # ignore/add/remove/force
+
+# Add or remove space inside '<' and '>'
+sp_inside_angle = remove # ignore/add/remove/force
+
+# Add or remove space after '<>'
+sp_after_angle = force # ignore/add/remove/force
+
+# Add or remove space between '<>' and '(' as found in 'new List<byte>();'
+sp_angle_paren = remove # ignore/add/remove/force
+
+# Add or remove space between '<>' and a word as in 'List<byte> m;' or 'template <typename T> static ...'
+sp_angle_word = force # ignore/add/remove/force
+
+# Add or remove space between '>' and '>' in '>>' (template stuff C++/C# only). Default=Add
+sp_angle_shift = force # ignore/add/remove/force
+
+# Permit removal of the space between '>>' in 'foo<bar<int> >' (C++11 only). Default=False
+# sp_angle_shift cannot remove the space without this option.
+sp_permit_cpp11_shift = false # false/true
+
+# Add or remove space before '(' of 'if', 'for', 'switch', 'while', etc.
+sp_before_sparen = force # ignore/add/remove/force
+
+# Add or remove space inside if-condition '(' and ')'
+sp_inside_sparen = remove # ignore/add/remove/force
+
+# Add or remove space before if-condition ')'. Overrides sp_inside_sparen.
+sp_inside_sparen_close = remove # ignore/add/remove/force
+
+# Add or remove space after if-condition '('. Overrides sp_inside_sparen.
+sp_inside_sparen_open = remove # ignore/add/remove/force
+
+# Add or remove space inside for-loop '(' and ')'
+sp_inside_for = remove # ignore/add/remove/force
+
+# Add or remove space before for-loop ')'. Overrides sp_inside_for.
+sp_inside_for_close = remove # ignore/add/remove/force
+
+# Add or remove space after for-loop '('. Overrides sp_inside_for.
+sp_inside_for_open = remove # ignore/add/remove/force
+
+# Add or remove space after ')' of 'if', 'for', 'switch', and 'while', etc.
+sp_after_sparen = force # ignore/add/remove/force
+
+# Add or remove space between ')' and '{' of 'if', 'for', 'switch', and 'while', etc.
+sp_sparen_brace = force # ignore/add/remove/force
+
+# Add or remove space between 'invariant' and '(' in the D language.
+sp_invariant_paren = remove # ignore/add/remove/force
+
+# Add or remove space after the ')' in 'invariant (C) c' in the D language.
+sp_after_invariant_paren = force # ignore/add/remove/force
+
+# Add or remove space before empty statement ';' on 'if', 'for' and 'while'
+sp_special_semi = remove # ignore/add/remove/force
+
+# Add or remove space before ';'. Default=Remove
+sp_before_semi = remove # ignore/add/remove/force
+
+# Add or remove space before ';' in non-empty 'for' statements
+sp_before_semi_for = remove # ignore/add/remove/force
+
+# Add or remove space before a semicolon of an empty left part of a for statement.
+sp_before_semi_for_empty = remove # ignore/add/remove/force
+
+# Add or remove space between the semicolons of an empty middle part of a for statement.
+sp_between_semi_for_empty = remove # ignore/add/remove/force/not_defined
+
+# Add or remove space after ';', except when followed by a comment. Default=Add
+sp_after_semi = force # ignore/add/remove/force
+
+# Add or remove space after ';' in non-empty 'for' statements. Default=Force
+sp_after_semi_for = force # ignore/add/remove/force
+
+# Add or remove space after the final semicolon of an empty part of a for statement: for ( ; ; <here> ).
+sp_after_semi_for_empty = remove # ignore/add/remove/force
+
+# Add or remove space before '[' (except '[]')
+sp_before_square = remove # ignore/add/remove/force
+
+# Add or remove space before '[]'
+sp_before_squares = remove # ignore/add/remove/force
+
+# Add or remove space inside a non-empty '[' and ']'
+sp_inside_square = remove # ignore/add/remove/force
+
+# Add or remove space after ','
+sp_after_comma = force # ignore/add/remove/force
+
+# Add or remove space before ','
+sp_before_comma = remove # ignore/add/remove/force
+
+# Add or remove space between ',' and ']' in multidimensional array type 'int[,,]'
+sp_after_mdatype_commas = remove # ignore/add/remove/force
+
+# Add or remove space between '[' and ',' in multidimensional array type 'int[,,]'
+sp_before_mdatype_commas = remove # ignore/add/remove/force
+
+# Add or remove space between ',' in multidimensional array type 'int[,,]'
+sp_between_mdatype_commas = remove # ignore/add/remove/force
+
+# Add or remove space between an open paren and comma: '(,' vs '( ,'
+sp_paren_comma = force # ignore/add/remove/force
+
+# Add or remove space before the variadic '...' when preceded by a non-punctuator
+sp_before_ellipsis = force # ignore/add/remove/force
+
+# Add or remove space after class ':'
+sp_after_class_colon = force # ignore/add/remove/force
+
+# Add or remove space before class ':'
+sp_before_class_colon = remove # ignore/add/remove/force
+
+# Add or remove space after class constructor ':'
+sp_after_constr_colon = force # ignore/add/remove/force
+
+# Add or remove space before class constructor ':'
+sp_before_constr_colon = remove # ignore/add/remove/force
+
+# Add or remove space before case ':'. Default=Remove
+sp_before_case_colon = remove # ignore/add/remove/force
+
+# Add or remove space between 'operator' and operator sign
+sp_after_operator = force # ignore/add/remove/force
+
+# Add or remove space between the operator symbol and the open paren, as in 'operator ++('
+sp_after_operator_sym = remove # ignore/add/remove/force
+
+# Add or remove space after C/D cast, i.e. 'cast(int)a' vs 'cast(int) a' or '(int)a' vs '(int) a'
+sp_after_cast = remove # ignore/add/remove/force
+
+# Add or remove spaces inside cast parens
+sp_inside_paren_cast = remove # ignore/add/remove/force
+
+# Add or remove space between the type and open paren in a C++ cast, i.e. 'int(exp)' vs 'int (exp)'
+sp_cpp_cast_paren = remove # ignore/add/remove/force
+
+# Add or remove space between 'sizeof' and '('
+sp_sizeof_paren = force # ignore/add/remove/force
+
+# Add or remove space after the tag keyword (Pawn)
+sp_after_tag = force # ignore/add/remove/force
+
+# Add or remove space inside enum '{' and '}'
+sp_inside_braces_enum = force # ignore/add/remove/force
+
+# Add or remove space inside struct/union '{' and '}'
+sp_inside_braces_struct = force # ignore/add/remove/force
+
+# Add or remove space inside '{' and '}'
+sp_inside_braces = force # ignore/add/remove/force
+
+# Add or remove space inside '{}'
+sp_inside_braces_empty = remove # ignore/add/remove/force
+
+# Add or remove space between return type and function name
+# A minimum of 1 is forced except for pointer return types.
+sp_type_func = remove # ignore/add/remove/force
+
+# Add or remove space between function name and '(' on function declaration
+sp_func_proto_paren = remove # ignore/add/remove/force
+
+# Add or remove space between function name and '(' on function definition
+sp_func_def_paren = remove # ignore/add/remove/force
+
+# Add or remove space inside empty function '()'
+sp_inside_fparens = remove # ignore/add/remove/force
+
+# Add or remove space inside function '(' and ')'
+sp_inside_fparen = remove # ignore/add/remove/force
+
+# Add or remove space inside the first parens in the function type: 'void (*x)(...)'
+sp_inside_tparen = remove # ignore/add/remove/force
+
+# Add or remove between the parens in the function type: 'void (*x)(...)'
+sp_after_tparen_close = remove # ignore/add/remove/force
+
+# Add or remove space between ']' and '(' when part of a function call.
+sp_square_fparen = remove # ignore/add/remove/force
+
+# Add or remove space between ')' and '{' of function
+sp_fparen_brace = force # ignore/add/remove/force
+
+# Java: Add or remove space between ')' and '{{' of double brace initializer.
+sp_fparen_dbrace = force # ignore/add/remove/force
+
+# Add or remove space between function name and '(' on function calls
+sp_func_call_paren = remove # ignore/add/remove/force
+
+# Add or remove space between function name and '()' on function calls without parameters.
+# If set to 'ignore' (the default), sp_func_call_paren is used.
+sp_func_call_paren_empty = remove # ignore/add/remove/force
+
+# Add or remove space between the user function name and '(' on function calls
+# You need to set a keyword to be a user function, like this: 'set func_call_user _' in the config file.
+sp_func_call_user_paren = remove # ignore/add/remove/force
+
+# Add or remove space between a constructor/destructor and the open paren
+sp_func_class_paren = remove # ignore/add/remove/force
+
+# Add or remove space between 'return' and '('
+sp_return_paren = force # ignore/add/remove/force
+
+# Add or remove space between '__attribute__' and '('
+sp_attribute_paren = force # ignore/add/remove/force
+
+# Add or remove space between 'defined' and '(' in '#if defined (FOO)'
+sp_defined_paren = remove # ignore/add/remove/force
+
+# Add or remove space between 'throw' and '(' in 'throw (something)'
+sp_throw_paren = force # ignore/add/remove/force
+
+# Add or remove space between 'throw' and anything other than '(' as in '@throw [...];'
+sp_after_throw = force # ignore/add/remove/force
+
+# Add or remove space between 'catch' and '(' in 'catch (something) { }'
+# If set to ignore, sp_before_sparen is used.
+sp_catch_paren = force # ignore/add/remove/force
+
+# Add or remove space between 'version' and '(' in 'version (something) { }' (D language)
+# If set to ignore, sp_before_sparen is used.
+sp_version_paren = force # ignore/add/remove/force
+
+# Add or remove space between 'scope' and '(' in 'scope (something) { }' (D language)
+# If set to ignore, sp_before_sparen is used.
+sp_scope_paren = force # ignore/add/remove/force
+
+# Add or remove space between macro and value
+sp_macro = force # ignore/add/remove/force
+
+# Add or remove space between macro function ')' and value
+sp_macro_func = force # ignore/add/remove/force
+
+# Add or remove space between 'else' and '{' if on the same line
+sp_else_brace = force # ignore/add/remove/force
+
+# Add or remove space between '}' and 'else' if on the same line
+sp_brace_else = force # ignore/add/remove/force
+
+# Add or remove space between '}' and the name of a typedef on the same line
+sp_brace_typedef = force # ignore/add/remove/force
+
+# Add or remove space between 'catch' and '{' if on the same line
+sp_catch_brace = force # ignore/add/remove/force
+
+# Add or remove space between '}' and 'catch' if on the same line
+sp_brace_catch = force # ignore/add/remove/force
+
+# Add or remove space between 'finally' and '{' if on the same line
+sp_finally_brace = force # ignore/add/remove/force
+
+# Add or remove space between '}' and 'finally' if on the same line
+sp_brace_finally = force # ignore/add/remove/force
+
+# Add or remove space between 'try' and '{' if on the same line
+sp_try_brace = force # ignore/add/remove/force
+
+# Add or remove space between get/set and '{' if on the same line
+sp_getset_brace = force # ignore/add/remove/force
+
+# Add or remove space between type and open brace of an unnamed temporary
+# direct-list-initialization.
+sp_type_brace_init_lst = add # ignore/add/remove/force
+
+# Add or remove space between a variable and '{' for a namespace
+sp_word_brace_ns = force # ignore/add/remove/force
+
+# Add or remove space before the '::' operator
+sp_before_dc = remove # ignore/add/remove/force
+
+# Add or remove space after the '::' operator
+sp_after_dc = remove # ignore/add/remove/force
+
+# Add or remove around the D named array initializer ':' operator
+sp_d_array_colon = force # ignore/add/remove/force
+
+# Add or remove space after the '!' (not) operator. Default=Remove
+sp_not = remove # ignore/add/remove/force
+
+# Add or remove space after the '~' (invert) operator. Default=Remove
+sp_inv = remove # ignore/add/remove/force
+
+# Add or remove space after the '&' (address-of) operator. Default=Remove
+# This does not affect the spacing after a '&' that is part of a type.
+sp_addr = remove # ignore/add/remove/force
+
+# Add or remove space around the '.' or '->' operators. Default=Remove
+sp_member = remove # ignore/add/remove/force
+
+# Add or remove space after the '*' (dereference) operator. Default=Remove
+# This does not affect the spacing after a '*' that is part of a type.
+sp_deref = remove # ignore/add/remove/force
+
+# Add or remove space after '+' or '-', as in 'x = -5' or 'y = +7'. Default=Remove
+sp_sign = remove # ignore/add/remove/force
+
+# Add or remove space before or after '++' and '--', as in '(--x)' or 'y++;'. Default=Remove
+sp_incdec = remove # ignore/add/remove/force
+
+# Add or remove space before a backslash-newline at the end of a line. Default=Add
+sp_before_nl_cont = force # ignore/add/remove/force
+
+# Add or remove space after the scope '+' or '-', as in '-(void) foo;' or '+(int) bar;'
+sp_after_oc_scope = remove # ignore/add/remove/force
+
+# Add or remove space after the colon in message specs
+# '-(int) f:(int) x;' vs '-(int) f: (int) x;'
+sp_after_oc_colon = force # ignore/add/remove/force
+
+# Add or remove space before the colon in message specs
+# '-(int) f: (int) x;' vs '-(int) f : (int) x;'
+sp_before_oc_colon = force # ignore/add/remove/force
+
+# Add or remove space after the colon in immutable dictionary expression
+# 'NSDictionary *test = @{@"foo" :@"bar"};'
+sp_after_oc_dict_colon = force # ignore/add/remove/force
+
+# Add or remove space before the colon in immutable dictionary expression
+# 'NSDictionary *test = @{@"foo" :@"bar"};'
+sp_before_oc_dict_colon = force # ignore/add/remove/force
+
+# Add or remove space after the colon in message specs
+# '[object setValue:1];' vs '[object setValue: 1];'
+sp_after_send_oc_colon = force # ignore/add/remove/force
+
+# Add or remove space before the colon in message specs
+# '[object setValue:1];' vs '[object setValue :1];'
+sp_before_send_oc_colon = remove # ignore/add/remove/force
+
+# Add or remove space after the (type) in message specs
+# '-(int)f: (int) x;' vs '-(int)f: (int)x;'
+sp_after_oc_type = remove # ignore/add/remove/force
+
+# Add or remove space after the first (type) in message specs
+# '-(int) f:(int)x;' vs '-(int)f:(int)x;'
+sp_after_oc_return_type = remove # ignore/add/remove/force
+
+# Add or remove space between '@selector' and '('
+# '@selector(msgName)' vs '@selector (msgName)'
+# Also applies to @protocol() constructs
+sp_after_oc_at_sel = remove # ignore/add/remove/force
+
+# Add or remove space between '@selector(x)' and the following word
+# '@selector(foo) a:' vs '@selector(foo)a:'
+sp_after_oc_at_sel_parens = force # ignore/add/remove/force
+
+# Add or remove space inside '@selector' parens
+# '@selector(foo)' vs '@selector( foo )'
+# Also applies to @protocol() constructs
+sp_inside_oc_at_sel_parens = remove # ignore/add/remove/force
+
+# Add or remove space before a block pointer caret
+# '^int (int arg){...}' vs. ' ^int (int arg){...}'
+sp_before_oc_block_caret = remove # ignore/add/remove/force
+
+# Add or remove space after a block pointer caret
+# '^int (int arg){...}' vs. '^ int (int arg){...}'
+sp_after_oc_block_caret = remove # ignore/add/remove/force
+
+# Add or remove space between the receiver and selector in a message.
+# '[receiver selector ...]'
+sp_after_oc_msg_receiver = remove # ignore/add/remove/force
+
+# Add or remove space after @property.
+sp_after_oc_property = force # ignore/add/remove/force
+
+# Add or remove space around the ':' in 'b ? t : f'
+sp_cond_colon = force # ignore/add/remove/force
+
+# Add or remove space before the ':' in 'b ? t : f'. Overrides sp_cond_colon.
+sp_cond_colon_before = force # ignore/add/remove/force
+
+# Add or remove space after the ':' in 'b ? t : f'. Overrides sp_cond_colon.
+sp_cond_colon_after = force # ignore/add/remove/force
+
+# Add or remove space around the '?' in 'b ? t : f'
+sp_cond_question = force # ignore/add/remove/force
+
+# Add or remove space before the '?' in 'b ? t : f'. Overrides sp_cond_question.
+sp_cond_question_before = force # ignore/add/remove/force
+
+# Add or remove space after the '?' in 'b ? t : f'. Overrides sp_cond_question.
+sp_cond_question_after = force # ignore/add/remove/force
+
+# In the abbreviated ternary form (a ?: b), add/remove space between ? and :.'. Overrides all other sp_cond_* options.
+sp_cond_ternary_short = force # ignore/add/remove/force
+
+# Fix the spacing between 'case' and the label. Only 'ignore' and 'force' make sense here.
+sp_case_label = force # ignore/add/remove/force
+
+# Control the space around the D '..' operator.
+sp_range = force # ignore/add/remove/force
+
+# Control the spacing after ':' in 'for (TYPE VAR : EXPR)'
+sp_after_for_colon = force # ignore/add/remove/force
+
+# Control the spacing before ':' in 'for (TYPE VAR : EXPR)'
+sp_before_for_colon = force # ignore/add/remove/force
+
+# Control the spacing in 'extern (C)' (D)
+sp_extern_paren = force # ignore/add/remove/force
+
+# Control the space after the opening of a C++ comment '// A' vs '//A'
+sp_cmt_cpp_start = force # ignore/add/remove/force
+
+# TRUE: If space is added with sp_cmt_cpp_start, do it after doxygen sequences like '///', '///<', '//!' and '//!<'.
+sp_cmt_cpp_doxygen = false # false/true
+
+# TRUE: If space is added with sp_cmt_cpp_start, do it after Qt translator or meta-data comments like '//:', '//=', and '//~'.
+sp_cmt_cpp_qttr = false # false/true
+
+# Controls the spaces between #else or #endif and a trailing comment
+sp_endif_cmt = force # ignore/add/remove/force
+
+# Controls the spaces after 'new', 'delete' and 'delete[]'
+sp_after_new = force # ignore/add/remove/force
+
+# Controls the spaces between new and '(' in 'new()'
+sp_between_new_paren = remove # ignore/add/remove/force
+
+# Controls the spaces before a trailing or embedded comment
+sp_before_tr_cmt = force # ignore/add/remove/force
+
+# Number of spaces before a trailing or embedded comment
+sp_num_before_tr_cmt = 0 # number
+
+# Control space between a Java annotation and the open paren.
+sp_annotation_paren = remove # ignore/add/remove/force
+
+#
+# Code alignment (not left column spaces/tabs)
+#
+
+# Whether to keep non-indenting tabs
+align_keep_tabs = false # false/true
+
+# Whether to use tabs for aligning
+align_with_tabs = true # false/true
+
+# Whether to bump out to the next tab when aligning
+align_on_tabstop = true # false/true
+
+# Whether to right-align numbers
+align_number_right = true # false/true
+
+# Whether to keep whitespace not required for alignment.
+align_keep_extra_space = false # false/true
+
+# Align variable definitions in prototypes and functions
+align_func_params = false # false/true
+
+# Align parameters in single-line functions that have the same name.
+# The function names must already be aligned with each other.
+align_same_func_call_params = false # false/true
+
+# The span for aligning parameters in single line functions with the same name (0=don't align).
+align_same_func_call_params_span = 0 # unsigned number
+
+# The thresh for aligning function call parameters (0=no limit).
+align_same_func_call_params_thresh = 0 # unsigned number
+
+# The span for aligning variable definitions (0=don't align)
+align_var_def_span = 0 # number
+
+# How to align the star in variable definitions.
+# 0=Part of the type 'void * foo;'
+# 1=Part of the variable 'void *foo;'
+# 2=Dangling 'void *foo;'
+align_var_def_star_style = 1 # number
+
+# How to align the '&' in variable definitions.
+# 0=Part of the type
+# 1=Part of the variable
+# 2=Dangling
+align_var_def_amp_style = 1 # number
+
+# The threshold for aligning variable definitions (0=no limit)
+align_var_def_thresh = 10 # number
+
+# The gap for aligning variable definitions
+align_var_def_gap = 0 # number
+
+# Whether to align the colon in struct bit fields
+align_var_def_colon = false # false/true
+
+# Whether to align any attribute after the variable name
+align_var_def_attribute = false # false/true
+
+# Whether to align inline struct/enum/union variable definitions
+align_var_def_inline = false # false/true
+
+# The span for aligning on '=' in assignments (0=don't align)
+align_assign_span = 0 # number
+
+# The threshold for aligning on '=' in assignments (0=no limit)
+align_assign_thresh = 0 # number
+
+# The span for aligning on '=' in enums (0=don't align)
+align_enum_equ_span = 0 # number
+
+# The threshold for aligning on '=' in enums (0=no limit)
+align_enum_equ_thresh = 0 # number
+
+# The span for aligning struct/union (0=don't align)
+align_var_struct_span = 0 # number
+
+# The threshold for aligning struct/union member definitions (0=no limit)
+align_var_struct_thresh = 0 # number
+
+# The gap for aligning struct/union member definitions
+align_var_struct_gap = 0 # number
+
+# The span for aligning struct initializer values (0=don't align)
+align_struct_init_span = 0 # number
+
+# The minimum space between the type and the synonym of a typedef
+align_typedef_gap = 1 # number
+
+# The span for aligning single-line typedefs (0=don't align)
+align_typedef_span = 0 # number
+
+# How to align typedef'd functions with other typedefs
+# 0: Don't mix them at all
+# 1: align the open paren with the types
+# 2: align the function type name with the other type names
+align_typedef_func = 0 # number
+
+# Controls the positioning of the '*' in typedefs. Just try it.
+# 0: Align on typedef type, ignore '*'
+# 1: The '*' is part of type name: typedef int *pint;
+# 2: The '*' is part of the type, but dangling: typedef int *pint;
+align_typedef_star_style = 1 # number
+
+# Controls the positioning of the '&' in typedefs. Just try it.
+# 0: Align on typedef type, ignore '&'
+# 1: The '&' is part of type name: typedef int &pint;
+# 2: The '&' is part of the type, but dangling: typedef int &pint;
+align_typedef_amp_style = 1 # number
+
+# The span for aligning comments that end lines (0=don't align)
+align_right_cmt_span = 4 # number
+
+# If aligning comments, mix with comments after '}' and #endif with less than 3 spaces before the comment
+align_right_cmt_mix = false # false/true
+
+# If a trailing comment is more than this number of columns away from the text it follows,
+# it will qualify for being aligned. This has to be > 0 to do anything.
+align_right_cmt_gap = 1 # number
+
+# Align trailing comment at or beyond column N; 'pulls in' comments as a bonus side effect (0=ignore)
+align_right_cmt_at_col = 41 # number
+
+# The span for aligning function prototypes (0=don't align)
+align_func_proto_span = 0 # number
+
+# Minimum gap between the return type and the function name.
+align_func_proto_gap = 0 # number
+
+# Align function protos on the 'operator' keyword instead of what follows
+align_on_operator = false # false/true
+
+# Whether to mix aligning prototype and variable declarations.
+# If true, align_var_def_XXX options are used instead of align_func_proto_XXX options.
+align_mix_var_proto = false # false/true
+
+# Align single-line functions with function prototypes, uses align_func_proto_span
+align_single_line_func = true # false/true
+
+# Aligning the open brace of single-line functions.
+# Requires align_single_line_func=true, uses align_func_proto_span
+align_single_line_brace = false # false/true
+
+# Gap for align_single_line_brace.
+align_single_line_brace_gap = 0 # number
+
+# The span for aligning ObjC msg spec (0=don't align)
+align_oc_msg_spec_span = 1 # number
+
+# Whether to align macros wrapped with a backslash and a newline.
+# This will not work right if the macro contains a multi-line comment.
+align_nl_cont = false # false/true
+
+# # Align macro functions and variables together
+align_pp_define_together = true # false/true
+
+# The minimum space between label and value of a preprocessor define
+align_pp_define_gap = 1 # number
+
+# The span for aligning on '#define' bodies (0=don't align, other=number of lines including comments between blocks)
+align_pp_define_span = 8 # number
+
+# Align lines that start with '<<' with previous '<<'. Default=true
+align_left_shift = false # false/true
+
+# Align text after asm volatile () colons.
+align_asm_colon = true # false/true
+
+# Span for aligning parameters in an Obj-C message call on the ':' (0=don't align)
+align_oc_msg_colon_span = 0 # number
+
+# If true, always align with the first parameter, even if it is too short.
+align_oc_msg_colon_first = false # false/true
+
+# Aligning parameters in an Obj-C '+' or '-' declaration on the ':'
+align_oc_decl_colon = false # false/true
+
+#
+# Newline adding and removing options
+#
+
+# Whether to collapse empty blocks between '{' and '}'
+nl_collapse_empty_body = true # false/true
+
+# Don't split one-line braced assignments - 'foo_t f = { 1, 2 };'
+nl_assign_leave_one_liners = true # false/true
+
+# Don't split one-line braced statements inside a class xx { } body
+nl_class_leave_one_liners = true # false/true
+
+# Don't split one-line enums: 'enum foo { BAR = 15 };'
+nl_enum_leave_one_liners = true # false/true
+
+# Don't split one-line get or set functions
+nl_getset_leave_one_liners = true # false/true
+
+# Don't split one-line function definitions - 'int foo() { return 0; }'
+nl_func_leave_one_liners = true # false/true
+
+# Don't split one-line C++11 lambdas - '[]() { return 0; }'
+nl_cpp_lambda_leave_one_liners = true # false/true
+
+# Don't split one-line if/else statements - 'if(a) b++;'
+nl_if_leave_one_liners = false # false/true
+
+# Don't split one-line while statements - 'while(a) b++;'
+nl_while_leave_one_liners = false # false/true
+
+# Don't split one-line OC messages
+nl_oc_msg_leave_one_liner = true # false/true
+
+# Add or remove newlines at the start of the file
+nl_start_of_file = remove # ignore/add/remove/force
+
+# The number of newlines at the start of the file (only used if nl_start_of_file is 'add' or 'force'
+nl_start_of_file_min = 0 # number
+
+# Add or remove newline at the end of the file
+nl_end_of_file = force # ignore/add/remove/force
+
+# The number of newlines at the end of the file (only used if nl_end_of_file is 'add' or 'force')
+nl_end_of_file_min = 1 # number
+
+# Add or remove newline between '=' and '{'
+nl_assign_brace = remove # ignore/add/remove/force
+
+# Add or remove newline between '=' and '[' (D only)
+nl_assign_square = remove # ignore/add/remove/force
+
+# Add or remove newline after '= [' (D only). Will also affect the newline before the ']'
+nl_after_square_assign = remove # ignore/add/remove/force
+
+# The number of blank lines after a block of variable definitions at the top of a function body
+# 0 = No change (default)
+nl_func_var_def_blk = 1 # number
+
+# The number of newlines before a block of typedefs
+# 0 = No change (default)
+# the option 'nl_after_access_spec' takes preference over 'nl_typedef_blk_start'
+nl_typedef_blk_start = 2 # number
+
+# The number of newlines after a block of typedefs
+# 0 = No change (default)
+nl_typedef_blk_end = 2 # number
+
+# The maximum consecutive newlines within a block of typedefs
+# 0 = No change (default)
+nl_typedef_blk_in = 1 # number
+
+# The number of newlines before a block of variable definitions not at the top of a function body
+# 0 = No change (default)
+# the option 'nl_after_access_spec' takes preference over 'nl_var_def_blk_start'
+nl_var_def_blk_start = 2 # number
+
+# The number of newlines after a block of variable definitions not at the top of a function body
+# 0 = No change (default)
+nl_var_def_blk_end = 2 # number
+
+# The maximum consecutive newlines within a block of variable definitions
+# 0 = No change (default)
+nl_var_def_blk_in = 1 # number
+
+# Add or remove newline between a function call's ')' and '{', as in:
+# list_for_each(item, &list) { }
+nl_fcall_brace = remove # ignore/add/remove/force
+
+# Add or remove newline between 'enum' and '{'
+nl_enum_brace = remove # ignore/add/remove/force
+
+# Add or remove newline between 'struct and '{'
+nl_struct_brace = remove # ignore/add/remove/force
+
+# Add or remove newline between 'union' and '{'
+nl_union_brace = remove # ignore/add/remove/force
+
+# Add or remove newline between 'if' and '{'
+nl_if_brace = remove # ignore/add/remove/force
+
+# Add or remove newline between '}' and 'else'
+nl_brace_else = remove # ignore/add/remove/force
+
+# Add or remove newline between 'else if' and '{'
+# If set to ignore, nl_if_brace is used instead
+nl_elseif_brace = remove # ignore/add/remove/force
+
+# Add or remove newline between 'else' and '{'
+nl_else_brace = remove # ignore/add/remove/force
+
+# Add or remove newline between 'else' and 'if'
+nl_else_if = remove # ignore/add/remove/force
+
+# Add or remove newline between '}' and 'finally'
+nl_brace_finally = remove # ignore/add/remove/force
+
+# Add or remove newline between 'finally' and '{'
+nl_finally_brace = remove # ignore/add/remove/force
+
+# Add or remove newline between 'try' and '{'
+nl_try_brace = remove # ignore/add/remove/force
+
+# Add or remove newline between get/set and '{'
+nl_getset_brace = remove # ignore/add/remove/force
+
+# Add or remove newline between 'for' and '{'
+nl_for_brace = remove # ignore/add/remove/force
+
+# Add or remove newline between 'catch' and '{'
+nl_catch_brace = remove # ignore/add/remove/force
+
+# Add or remove newline between '}' and 'catch'
+nl_brace_catch = remove # ignore/add/remove/force
+
+# Add or remove newline between '}' and ']'
+nl_brace_square = remove # ignore/add/remove/force
+
+# Add or remove newline between '}' and ')' in a function invocation
+nl_brace_fparen = remove # ignore/add/remove/force
+
+# Add or remove newline between 'while' and '{'
+nl_while_brace = remove # ignore/add/remove/force
+
+# Add or remove newline between 'scope (x)' and '{' (D)
+nl_scope_brace = remove # ignore/add/remove/force
+
+# Add or remove newline between 'unittest' and '{' (D)
+nl_unittest_brace = remove # ignore/add/remove/force
+
+# Add or remove newline between 'version (x)' and '{' (D)
+nl_version_brace = remove # ignore/add/remove/force
+
+# Add or remove newline between 'using' and '{'
+nl_using_brace = remove # ignore/add/remove/force
+
+# Add or remove newline between two open or close braces.
+# Due to general newline/brace handling, REMOVE may not work.
+nl_brace_brace = force # ignore/add/remove/force
+
+# Add or remove newline between 'do' and '{'
+nl_do_brace = remove # ignore/add/remove/force
+
+# Add or remove newline between '}' and 'while' of 'do' statement
+nl_brace_while = remove # ignore/add/remove/force
+
+# Add or remove newline between 'switch' and '{'
+nl_switch_brace = remove # ignore/add/remove/force
+
+# Add or remove newline between 'synchronized' and '{'
+nl_synchronized_brace = remove # ignore/add/remove/force
+
+# Add a newline between ')' and '{' if the ')' is on a different line than the if/for/etc.
+# Overrides nl_for_brace, nl_if_brace, nl_switch_brace, nl_while_switch and nl_catch_brace.
+nl_multi_line_cond = false # false/true
+
+# Force a newline in a define after the macro name for multi-line defines.
+nl_multi_line_define = false # false/true
+
+# Whether to put a newline before 'case' statement, not after the first 'case'
+nl_before_case = false # false/true
+
+# Add or remove newline between ')' and 'throw'
+nl_before_throw = force # ignore/add/remove/force
+
+# Whether to put a newline after 'case' statement
+nl_after_case = true # false/true
+
+# Add or remove a newline between a case ':' and '{'. Overrides nl_after_case.
+nl_case_colon_brace = remove # ignore/add/remove/force
+
+# Newline between namespace and {
+nl_namespace_brace = remove # ignore/add/remove/force
+
+# Add or remove newline between 'template<>' and whatever follows.
+nl_template_class = force # ignore/add/remove/force
+
+# Add or remove newline between 'class' and '{'
+nl_class_brace = remove # ignore/add/remove/force
+
+# Add or remove newline before/after each ',' in the base class list,
+# (tied to pos_class_comma).
+nl_class_init_args = remove # ignore/add/remove/force
+
+# Add or remove newline after each ',' in the constructor member initialization.
+# Related to nl_constr_colon, pos_constr_colon and pos_constr_comma.
+nl_constr_init_args = remove # ignore/add/remove/force
+
+# Add or remove newline between return type and function name in a function definition
+nl_func_type_name = remove # ignore/add/remove/force
+
+# Add or remove newline between return type and function name inside a class {}
+# Uses nl_func_type_name or nl_func_proto_type_name if set to ignore.
+nl_func_type_name_class = remove # ignore/add/remove/force
+
+# Add or remove newline between function scope and name
+# Controls the newline after '::' in 'void A::f() { }'
+nl_func_scope_name = remove # ignore/add/remove/force
+
+# Add or remove newline between return type and function name in a prototype
+nl_func_proto_type_name = remove # ignore/add/remove/force
+
+# Add or remove newline between a function name and the opening '(' in the declaration
+nl_func_paren = remove # ignore/add/remove/force
+
+# Add or remove newline between a function name and the opening '(' in the definition
+nl_func_def_paren = remove # ignore/add/remove/force
+
+# Add or remove newline after '(' in a function declaration
+nl_func_decl_start = remove # ignore/add/remove/force
+
+# Add or remove newline after '(' in a function definition
+nl_func_def_start = remove # ignore/add/remove/force
+
+# Overrides nl_func_decl_start when there is only one parameter.
+nl_func_decl_start_single = remove # ignore/add/remove/force
+
+# Overrides nl_func_def_start when there is only one parameter.
+nl_func_def_start_single = remove # ignore/add/remove/force
+
+# Add or remove newline after each ',' in a function declaration
+nl_func_decl_args = remove # ignore/add/remove/force
+
+# Add or remove newline after each ',' in a function definition
+nl_func_def_args = remove # ignore/add/remove/force
+
+# Add or remove newline before the ')' in a function declaration
+nl_func_decl_end = remove # ignore/add/remove/force
+
+# Add or remove newline before the ')' in a function definition
+nl_func_def_end = remove # ignore/add/remove/force
+
+# Overrides nl_func_decl_end when there is only one parameter.
+nl_func_decl_end_single = remove # ignore/add/remove/force
+
+# Overrides nl_func_def_end when there is only one parameter.
+nl_func_def_end_single = remove # ignore/add/remove/force
+
+# Add or remove newline between '()' in a function declaration.
+nl_func_decl_empty = remove # ignore/add/remove/force
+
+# Add or remove newline between '()' in a function definition.
+nl_func_def_empty = remove # ignore/add/remove/force
+
+# Whether to put each OC message parameter on a separate line
+# See nl_oc_msg_leave_one_liner
+nl_oc_msg_args = false # false/true
+
+# Add or remove newline between function signature and '{'
+nl_fdef_brace = remove # ignore/add/remove/force
+
+# Add or remove newline between C++11 lambda signature and '{'
+nl_cpp_ldef_brace = remove # ignore/add/remove/force
+
+# Add or remove a newline between the return keyword and return expression.
+nl_return_expr = remove # ignore/add/remove/force
+
+# Whether to put a newline after semicolons, except in 'for' statements
+nl_after_semicolon = true # false/true
+
+# Java: Control the newline between the ')' and '{{' of the double brace initializer.
+nl_paren_dbrace_open = remove # ignore/add/remove/force
+
+# Whether to put a newline after brace open.
+nl_after_brace_open = true # false/true
+
+# If nl_after_brace_open and nl_after_brace_open_cmt are true, a newline is
+# placed between the open brace and a trailing single-line comment.
+nl_after_brace_open_cmt = false # false/true
+
+# Whether to put a newline after a virtual brace open with a non-empty body.
+# These occur in un-braced if/while/do/for statement bodies.
+nl_after_vbrace_open = true # false/true
+
+# Whether to put a newline after a virtual brace open with an empty body.
+# These occur in un-braced if/while/do/for statement bodies.
+nl_after_vbrace_open_empty = true # false/true
+
+# Whether to put a newline after a brace close.
+# Does not apply if followed by a necessary ';'.
+nl_after_brace_close = true # false/true
+
+# Whether to put a newline after a virtual brace close.
+# Would add a newline before return in: 'if (foo) a++; return;'
+nl_after_vbrace_close = true # false/true
+
+# Control the newline between the close brace and 'b' in: 'struct { int a; } b;'
+# Affects enums, unions and structures. If set to ignore, uses nl_after_brace_close
+nl_brace_struct_var = remove # ignore/add/remove/force
+
+# Whether to alter newlines in '#define' macros
+nl_define_macro = false # false/true
+
+# Whether to not put blanks after '#ifxx', '#elxx', or before '#endif'. Does not affect the whole-file #ifdef.
+nl_squeeze_ifdef = true # false/true
+
+# Add or remove blank line before 'if'
+nl_before_if = remove # ignore/add/remove/force
+
+# Add or remove blank line after 'if' statement
+nl_after_if = remove # ignore/add/remove/force
+
+# Add or remove blank line before 'for'
+nl_before_for = remove # ignore/add/remove/force
+
+# Add or remove blank line after 'for' statement
+nl_after_for = remove # ignore/add/remove/force
+
+# Add or remove blank line before 'while'
+nl_before_while = remove # ignore/add/remove/force
+
+# Add or remove blank line after 'while' statement
+nl_after_while = remove # ignore/add/remove/force
+
+# Add or remove blank line before 'switch'
+nl_before_switch = remove # ignore/add/remove/force
+
+# Add or remove blank line after 'switch' statement
+nl_after_switch = remove # ignore/add/remove/force
+
+# Add or remove blank line before 'synchronized'
+nl_before_synchronized = remove # ignore/add/remove/force
+
+# Add or remove blank line after 'synchronized' statement
+nl_after_synchronized = remove # ignore/add/remove/force
+
+# Add or remove blank line before 'do'
+nl_before_do = remove # ignore/add/remove/force
+
+# Add or remove blank line after 'do/while' statement
+nl_after_do = remove # ignore/add/remove/force
+
+# Whether to double-space commented-entries in struct/union/enum
+nl_ds_struct_enum_cmt = false # false/true
+
+# force nl before } of a struct/union/enum
+# (lower priority than 'eat_blanks_before_close_brace')
+nl_ds_struct_enum_close_brace = false # false/true
+
+# Add or remove a newline before/after a class colon,
+# (tied to pos_class_colon).
+nl_class_colon = remove # ignore/add/remove/force
+
+# Add or remove a newline around a class constructor colon.
+# Related to nl_constr_init_args, pos_constr_colon and pos_constr_comma.
+nl_constr_colon = remove # ignore/add/remove/force
+
+# Change simple unbraced if statements into a one-liner
+# 'if(b)\n i++;' => 'if(b) i++;'
+nl_create_if_one_liner = false # false/true
+
+# Change simple unbraced for statements into a one-liner
+# 'for (i=0;i<5;i++)\n foo(i);' => 'for (i=0;i<5;i++) foo(i);'
+nl_create_for_one_liner = false # false/true
+
+# Change simple unbraced while statements into a one-liner
+# 'while (i<5)\n foo(i++);' => 'while (i<5) foo(i++);'
+nl_create_while_one_liner = false # false/true
+
+#
+# Positioning options
+#
+
+# The position of arithmetic operators in wrapped expressions
+pos_arith = join # ignore/join/lead/lead_break/lead_force/trail/trail_break/trail_force
+
+# The position of assignment in wrapped expressions.
+# Do not affect '=' followed by '{'
+pos_assign = join # ignore/join/lead/lead_break/lead_force/trail/trail_break/trail_force
+
+# The position of boolean operators in wrapped expressions
+pos_bool = join # ignore/join/lead/lead_break/lead_force/trail/trail_break/trail_force
+
+# The position of comparison operators in wrapped expressions
+pos_compare = join # ignore/join/lead/lead_break/lead_force/trail/trail_break/trail_force
+
+# The position of conditional (b ? t : f) operators in wrapped expressions
+pos_conditional = join # ignore/join/lead/lead_break/lead_force/trail/trail_break/trail_force
+
+# The position of the comma in wrapped expressions
+pos_comma = join # ignore/join/lead/lead_break/lead_force/trail/trail_break/trail_force
+
+# The position of the comma in the base class list if there are more than one line,
+# (tied to nl_class_init_args).
+pos_class_comma = join # ignore/join/lead/lead_break/lead_force/trail/trail_break/trail_force
+
+# The position of the comma in the constructor initialization list.
+# Related to nl_constr_colon, nl_constr_init_args and pos_constr_colon.
+pos_constr_comma = join # ignore/join/lead/lead_break/lead_force/trail/trail_break/trail_force
+
+# The position of trailing/leading class colon, between class and base class list
+# (tied to nl_class_colon).
+pos_class_colon = join # ignore/join/lead/lead_break/lead_force/trail/trail_break/trail_force
+
+# The position of colons between constructor and member initialization,
+# (tied to UO_nl_constr_colon).
+# Related to nl_constr_colon, nl_constr_init_args and pos_constr_comma.
+pos_constr_colon = join # ignore/join/lead/lead_break/lead_force/trail/trail_break/trail_force
+
+#
+# Line Splitting options
+#
+
+# Try to limit code width to N number of columns
+code_width = 80 # number
+
+# Whether to fully split long 'for' statements at semi-colons
+ls_for_split_full = false # false/true
+
+# Whether to fully split long function protos/calls at commas
+ls_func_split_full = false # false/true
+
+# Whether to split lines as close to code_width as possible and ignore some groupings
+ls_code_width = true # false/true
+
+#
+# Blank line options
+#
+
+# The maximum consecutive newlines (3 = 2 blank lines)
+nl_max = 2 # number
+
+# The number of newlines after a function prototype, if followed by another function prototype
+nl_after_func_proto = 1 # number
+
+# The number of newlines after a function prototype, if not followed by another function prototype
+nl_after_func_proto_group = 2 # number
+
+# The number of newlines after '}' of a multi-line function body
+nl_after_func_body = 2 # number
+
+# The number of newlines after '}' of a multi-line function body in a class declaration
+nl_after_func_body_class = 1 # number
+
+# The number of newlines after '}' of a single line function body
+nl_after_func_body_one_liner = 1 # number
+
+# The minimum number of newlines before a multi-line comment.
+# Doesn't apply if after a brace open or another multi-line comment.
+nl_before_block_comment = 2 # number
+
+# The minimum number of newlines before a single-line C comment.
+# Doesn't apply if after a brace open or other single-line C comments.
+nl_before_c_comment = 1 # number
+
+# The minimum number of newlines before a CPP comment.
+# Doesn't apply if after a brace open or other CPP comments.
+nl_before_cpp_comment = 1 # number
+
+# Whether to force a newline after a multi-line comment.
+nl_after_multiline_comment = true # false/true
+
+# Whether to force a newline after a label's colon.
+nl_after_label_colon = false # false/true
+
+# The number of newlines after '}' or ';' of a struct/enum/union definition
+nl_after_struct = 2 # number
+
+# The number of newlines after '}' or ';' of a class definition
+nl_after_class = 2 # number
+
+# The number of newlines after '}' of a namespace
+nl_after_namespace = 2 # number
+
+# The number of newlines before a 'private:', 'public:', 'protected:', 'signals:', or 'slots:' label.
+# Will not change the newline count if after a brace open.
+# 0 = No change.
+nl_before_access_spec = 2 # number
+
+# The number of newlines after a 'private:', 'public:', 'protected:', 'signals:' or 'slots:' label.
+# 0 = No change.
+# the option 'nl_after_access_spec' takes preference over 'nl_typedef_blk_start' and 'nl_var_def_blk_start'
+nl_after_access_spec = 1 # number
+
+# The number of newlines between a function def and the function comment.
+# 0 = No change.
+nl_comment_func_def = 1 # number
+
+# The number of newlines after a try-catch-finally block that isn't followed by a brace close.
+# 0 = No change.
+nl_after_try_catch_finally = 1 # number
+
+# The number of newlines before and after a property, indexer or event decl.
+# 0 = No change.
+nl_around_cs_property = 1 # number
+
+# The number of newlines between the get/set/add/remove handlers in C#.
+# 0 = No change.
+nl_between_get_set = 1 # number
+
+# Add or remove newline between C# property and the '{'
+nl_property_brace = remove # ignore/add/remove/force
+
+# Whether to remove blank lines after '{'
+eat_blanks_after_open_brace = true # false/true
+
+# Whether to remove blank lines before '}'
+eat_blanks_before_close_brace = true # false/true
+
+# How aggressively to remove extra newlines not in preproc.
+# 0: No change
+# 1: Remove most newlines not handled by other config
+# 2: Remove all newlines and reformat completely by config
+nl_remove_extra_newlines = 1 # number
+
+# Whether to put a blank line before 'return' statements, unless after an open brace.
+nl_before_return = false # false/true
+
+# Whether to put a blank line after 'return' statements, unless followed by a close brace.
+nl_after_return = false # false/true
+
+# Whether to put a newline after a Java annotation statement.
+# Only affects annotations that are after a newline.
+nl_after_annotation = force # ignore/add/remove/force
+
+#
+# Code modifying options (non-whitespace)
+#
+
+# Add or remove braces on single-line 'do' statement
+mod_full_brace_do = force # ignore/add/remove/force
+
+# Add or remove braces on single-line 'for' statement
+mod_full_brace_for = remove # ignore/add/remove/force
+
+# Add or remove braces on single-line 'if' statement. Will not remove the braces if they contain an 'else'.
+mod_full_brace_if = remove # ignore/add/remove/force
+
+# Make all if/elseif/else statements in a chain be braced or not. Overrides mod_full_brace_if.
+# If any must be braced, they are all braced. If all can be unbraced, then the braces are removed.
+mod_full_brace_if_chain = 1 # unsigned number
+
+# Don't remove braces around statements that span N newlines
+mod_full_brace_nl = 2 # number
+
+# Add or remove braces on single-line 'while' statement
+mod_full_brace_while = remove # ignore/add/remove/force
+
+# Add or remove braces on single-line 'using ()' statement
+mod_full_brace_using = remove # ignore/add/remove/force
+
+# Add or remove unnecessary paren on 'return' statement
+mod_paren_on_return = remove # ignore/add/remove/force
+
+# Whether to change optional semicolons to real semicolons
+mod_pawn_semicolon = false # false/true
+
+# Add parens on 'while' and 'if' statement around bools
+mod_full_paren_if_bool = false # false/true
+
+# Whether to remove superfluous semicolons
+mod_remove_extra_semicolon = true # false/true
+
+# If a function body exceeds the specified number of newlines and doesn't have a comment after
+# the close brace, a comment will be added.
+mod_add_long_function_closebrace_comment = 0 # number
+
+# If a namespace body exceeds the specified number of newlines and doesn't have a comment after
+# the close brace, a comment will be added.
+mod_add_long_namespace_closebrace_comment = 0 # number
+
+# If a switch body exceeds the specified number of newlines and doesn't have a comment after
+# the close brace, a comment will be added.
+mod_add_long_switch_closebrace_comment = 0 # number
+
+# If an #ifdef body exceeds the specified number of newlines and doesn't have a comment after
+# the #endif, a comment will be added.
+mod_add_long_ifdef_endif_comment = 0 # number
+
+# If an #ifdef or #else body exceeds the specified number of newlines and doesn't have a comment after
+# the #else, a comment will be added.
+mod_add_long_ifdef_else_comment = 0 # number
+
+# If TRUE, will sort consecutive single-line 'import' statements [Java, D]
+mod_sort_import = true # false/true
+
+# If TRUE, will sort consecutive single-line 'using' statements [C#]
+mod_sort_using = true # false/true
+
+# If TRUE, will sort consecutive single-line '#include' statements [C/C++] and '#import' statements [Obj-C]
+# This is generally a bad idea, as it may break your code.
+mod_sort_include = false # false/true
+
+# If TRUE, it will move a 'break' that appears after a fully braced 'case' before the close brace.
+mod_move_case_break = false # false/true
+
+# If TRUE, it will remove a void 'return;' that appears as the last statement in a function.
+mod_remove_empty_return = true # false/true
+
+#
+# Comment modifications
+#
+
+# Try to wrap comments at cmt_width columns
+cmt_width = 80 # number
+
+# Set the comment reflow mode (default: 0)
+# 0: no reflowing (apart from the line wrapping due to cmt_width)
+# 1: no touching at all
+# 2: full reflow
+cmt_reflow_mode = 1 # number
+
+# Whether to convert all tabs to spaces in comments. Default is to leave tabs inside comments alone, unless used for indenting.
+cmt_convert_tab_to_spaces = false # false/true
+
+# If false, disable all multi-line comment changes, including cmt_width. keyword substitution and leading chars.
+# Default is true.
+cmt_indent_multi = true # false/true
+
+# Whether to group c-comments that look like they are in a block
+cmt_c_group = true # false/true
+
+# Whether to put an empty '/*' on the first line of the combined c-comment
+cmt_c_nl_start = true # false/true
+
+# Whether to put a newline before the closing '*/' of the combined c-comment
+cmt_c_nl_end = true # false/true
+
+# Whether to group cpp-comments that look like they are in a block
+cmt_cpp_group = true # false/true
+
+# Whether to put an empty '/*' on the first line of the combined cpp-comment
+cmt_cpp_nl_start = true # false/true
+
+# Whether to put a newline before the closing '*/' of the combined cpp-comment
+cmt_cpp_nl_end = true # false/true
+
+# Whether to change cpp-comments into c-comments
+cmt_cpp_to_c = false # false/true
+
+# Whether to put a star on subsequent comment lines
+cmt_star_cont = true # false/true
+
+# The number of spaces to insert at the start of subsequent comment lines
+cmt_sp_before_star_cont = 0 # number
+
+# The number of spaces to insert after the star on subsequent comment lines
+cmt_sp_after_star_cont = 0 # number
+
+# For multi-line comments with a '*' lead, remove leading spaces if the first and last lines of
+# the comment are the same length. Default=True
+cmt_multi_check_last = false # false/true
+
+# The filename that contains text to insert at the head of a file if the file doesn't start with a C/C++ comment.
+# Will substitute $(filename) with the current file's name.
+cmt_insert_file_header = "" # string
+
+# The filename that contains text to insert at the end of a file if the file doesn't end with a C/C++ comment.
+# Will substitute $(filename) with the current file's name.
+cmt_insert_file_footer = "" # string
+
+# The filename that contains text to insert before a function implementation if the function isn't preceded with a C/C++ comment.
+# Will substitute $(function) with the function name and $(javaparam) with the javadoc @param and @return stuff.
+# Will also substitute $(fclass) with the class name: void CFoo::Bar() { ... }
+cmt_insert_func_header = "" # string
+
+# The filename that contains text to insert before a class if the class isn't preceded with a C/C++ comment.
+# Will substitute $(class) with the class name.
+cmt_insert_class_header = "" # string
+
+# The filename that contains text to insert before a Obj-C message specification if the method isn't preceded with a C/C++ comment.
+# Will substitute $(message) with the function name and $(javaparam) with the javadoc @param and @return stuff.
+cmt_insert_oc_msg_header = "" # string
+
+# If a preprocessor is encountered when stepping backwards from a function name, then
+# this option decides whether the comment should be inserted.
+# Affects cmt_insert_oc_msg_header, cmt_insert_func_header and cmt_insert_class_header.
+cmt_insert_before_preproc = false # false/true
+
+#
+# Preprocessor options
+#
+
+# Whether to indent #if/#else/#endif at the brace level (true) or from column 1 (false)
+pp_indent_at_level = false # false/true
+
+# Whether to indent #if/#else/#endif at the parenthesis level if the brace
+# level is 0. If false, these are indented from column 1.
+pp_indent_at_level0 = false # false/true
+
+# Specifies the number of columns to indent preprocessors per level at brace level 0 (file-level).
+# If pp_indent_at_level=false, specifies the number of columns to indent preprocessors per level at brace level > 0 (function-level).
+# Default=1.
+pp_indent_count = 1 # number
+
+# Add or remove space after # based on pp_level of #if blocks
+pp_space = remove # ignore/add/remove/force
+
+# Sets the number of spaces added with pp_space
+pp_space_count = 1 # number
+
+# The indent for #region and #endregion in C# and '#pragma region' in C/C++
+pp_indent_region = 0 # number
+
+# Whether to indent the code between #region and #endregion
+pp_region_indent_code = false # false/true
+
+# If pp_indent_at_level=true, sets the indent for #if, #else and #endif when not at file-level.
+# 0: indent preprocessors using output_tab_size.
+# >0: column at which all preprocessors will be indented.
+pp_indent_if = 0 # number
+
+# Control whether to indent the code between #if, #else and #endif.
+pp_if_indent_code = false # false/true
+
+# Whether to indent '#define' at the brace level (true) or from column 1 (false)
+pp_define_at_level = false # false/true
+
+# Use or Do not Use options
+#
+
+# True: indent_func_call_param will be used
+# False: indent_func_call_param will NOT be used
+use_indent_func_call_param = true # false/true
+
+# True: indent_continue will be used only once
+# False: indent_continue will be used every time (default)
+use_indent_continue_only_once = false # false/true
+
+# You can force a token to be a type with the 'type' option.
+# Example:
+# type myfoo1 myfoo2
+#
+# You can create custom macro-based indentation using macro-open,
+# macro-else and macro-close.
+# Example:
+# macro-open BEGIN_TEMPLATE_MESSAGE_MAP
+# macro-open BEGIN_MESSAGE_MAP
+# macro-close END_MESSAGE_MAP
+#
+# You can assign any keyword to any type with the set option.
+# set func_call_user _ N_
+#
+# The full syntax description of all custom definition config entries
+# is shown below:
+#
+# define custom tokens as:
+# - embed whitespace in token using '' escape character, or
+# put token in quotes
+# - these: ' " and ` are recognized as quote delimiters
+#
+# type token1 token2 token3 ...
+# ^ optionally specify multiple tokens on a single line
+# define def_token output_token
+# ^ output_token is optional, then NULL is assumed
+# macro-open token
+# macro-close token
+# macro-else token
+# set id token1 token2 ...
+# ^ optionally specify multiple tokens on a single line
+# ^ id is one of the names in token_enum.h sans the CT_ prefix,
+# e.g. PP_PRAGMA
+#
+# all tokens are separated by any mix of ',' commas, '=' equal signs
+# and whitespace (space, tab)
+#
+# You can add support for other file extensions using the 'file_ext' command.
+# The first arg is the language name used with the '-l' option.
+# The remaining args are file extensions, matched with 'endswith'.
+# file_ext CPP .ch .cxx .cpp.in
+#
+type byte cchar uchar ushort word uint ulong llong ullong
+type int8 uint8 int16 uint16 int32 uint32 int64 uint64
+type FILE size_t ssize_t va_list wchar_t
+type BOOL BSTR BYTE CHAR DOUBLE DWORD DWORD64 DWORD_PTR FALSE FLOAT
+type HANDLE HKEY HRESULT HWND INT INT8 INT16 INT32 INT64 LONG LONG64 LONG_PTR
+type LPARAM LPSTR LPCSTR LPCWSTR LPTSTR LPVOID LPWSTR PSZ SHORT TRUE
+type UCHAR UINT UINT8 UINT16 UINT32 UINT64 UINT_PTR ULONG ULONG64 ULONG_PTR
+type USHORT WCHAR WORD WORD_PTR WPARAM
+
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/types.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/types.txt
index 0df27c78..0df27c78 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/types.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/types.txt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/uigui_uncrustify.ini b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/uigui_uncrustify.ini
new file mode 100644
index 00000000..dfcf033f
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/uigui_uncrustify.ini
@@ -0,0 +1,7206 @@
+[header]
+categories=General options|Spacing options|Indenting options|Newline adding and removing options|Blank line options|Positioning options|Line splitting options|Code alignment options (not left column spaces/tabs)|Comment modification options|Code modifying options (non-whitespace)|Preprocessor options|Sort includes options|Use or Do not Use options|Warn levels - 1: error, 2: warning (default), 3: note
+cfgFileParameterEnding=cr
+configFilename=uncrustify.cfg
+fileTypes=*.c|*.c++|*.cc|*.cp|*.cpp|*.cs|*.cxx|*.d|*.di|*.es|*.h|*.h++|*.hh|*.hp|*.hpp|*.hxx|*.inl|*.java|*.js|*.m|*.mm|*.p|*.pawn|*.sma|*.sqc|*.sql|*.vala
+indenterFileName=uncrustify
+indenterName=Uncrustify (C, C++, C#, ObjectiveC, D, Java, Pawn, VALA)
+inputFileName=indentinput
+inputFileParameter="-f "
+manual=http://uncrustify.sourceforge.net/config.txt
+outputFileName=indentoutput
+outputFileParameter="-o "
+stringparaminquotes=false
+parameterOrder=ipo
+showHelpParameter=-h
+stringparaminquotes=false
+useCfgFileParameter="-c "
+version=Uncrustify-0.75.0
+
+[Newlines]
+Category=0
+Description="<html>The type of line endings.<br/><br/>Default: auto</html>"
+Enabled=false
+EditorType=multiple
+Choices=newlines=lf|newlines=crlf|newlines=cr|newlines=auto
+ChoicesReadable="Newlines Unix|Newlines Win|Newlines Mac|Newlines Auto"
+ValueDefault=auto
+
+[Input Tab Size]
+Category=0
+Description="<html>The original size of tabs in the input.<br/><br/>Default: 8</html>"
+Enabled=false
+EditorType=numeric
+CallName="input_tab_size="
+MinVal=1
+MaxVal=32
+ValueDefault=8
+
+[Output Tab Size]
+Category=0
+Description="<html>The size of tabs in the output (only used if align_with_tabs=true).<br/><br/>Default: 8</html>"
+Enabled=false
+EditorType=numeric
+CallName="output_tab_size="
+MinVal=1
+MaxVal=32
+ValueDefault=8
+
+[String Escape Char]
+Category=0
+Description="<html>The ASCII value of the string escape char, usually 92 (\) or (Pawn) 94 (^).<br/><br/>Default: 92</html>"
+Enabled=false
+EditorType=numeric
+CallName="string_escape_char="
+MinVal=0
+MaxVal=255
+ValueDefault=92
+
+[String Escape Char2]
+Category=0
+Description="<html>Alternate string escape char (usually only used for Pawn).<br/>Only works right before the quote char.</html>"
+Enabled=false
+EditorType=numeric
+CallName="string_escape_char2="
+MinVal=0
+MaxVal=255
+ValueDefault=0
+
+[String Replace Tab Chars]
+Category=0
+Description="<html>Replace tab characters found in string literals with the escape sequence \t<br/>instead.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=string_replace_tab_chars=true|string_replace_tab_chars=false
+ValueDefault=false
+
+[Tok Split Gte]
+Category=0
+Description="<html>Allow interpreting '&gt;=' and '&gt;&gt;=' as part of a template in code like<br/>'void f(list&lt;list&lt;B&gt;&gt;=val);'. If true, 'assert(x&lt;0 &amp;&amp; y&gt;=3)' will be broken.<br/>Improvements to template detection may make this option obsolete.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=tok_split_gte=true|tok_split_gte=false
+ValueDefault=false
+
+[Disable Processing Nl Cont]
+Category=0
+Description="<html>Disable formatting of NL_CONT ('\\n') ended lines (e.g. multi-line macros).</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=disable_processing_nl_cont=true|disable_processing_nl_cont=false
+ValueDefault=false
+
+[Disable Processing Cmt]
+Category=0
+Description="<html>Specify the marker used in comments to disable processing of part of the<br/>file.<br/><br/>Default: *INDENT-OFF*</html>"
+Enabled=false
+CallName=disable_processing_cmt=
+EditorType=string
+ValueDefault= *INDENT-OFF*
+
+[Enable Processing Cmt]
+Category=0
+Description="<html>Specify the marker used in comments to (re)enable processing in a file.<br/><br/>Default: *INDENT-ON*</html>"
+Enabled=false
+CallName=enable_processing_cmt=
+EditorType=string
+ValueDefault= *INDENT-ON*
+
+[Enable Digraphs]
+Category=0
+Description="<html>Enable parsing of digraphs.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=enable_digraphs=true|enable_digraphs=false
+ValueDefault=false
+
+[Processing Cmt As Regex]
+Category=0
+Description="<html>Option to allow both disable_processing_cmt and enable_processing_cmt<br/>strings, if specified, to be interpreted as ECMAScript regular expressions.<br/>If true, a regex search will be performed within comments according to the<br/>specified patterns in order to disable/enable processing.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=processing_cmt_as_regex=true|processing_cmt_as_regex=false
+ValueDefault=false
+
+[Utf8 Bom]
+Category=0
+Description="<html>Add or remove the UTF-8 BOM (recommend 'remove').</html>"
+Enabled=false
+EditorType=multiple
+Choices=utf8_bom=ignore|utf8_bom=add|utf8_bom=remove|utf8_bom=force|utf8_bom=not_defined
+ChoicesReadable="Ignore Utf8 Bom|Add Utf8 Bom|Remove Utf8 Bom|Force Utf8 Bom"
+ValueDefault=ignore
+
+[Utf8 Byte]
+Category=0
+Description="<html>If the file contains bytes with values between 128 and 255, but is not<br/>UTF-8, then output as UTF-8.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=utf8_byte=true|utf8_byte=false
+ValueDefault=false
+
+[Utf8 Force]
+Category=0
+Description="<html>Force the output encoding to UTF-8.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=utf8_force=true|utf8_force=false
+ValueDefault=false
+
+[Sp Arith]
+Category=1
+Description="<html>Add or remove space around non-assignment symbolic operators ('+', '/', '%',<br/>'&lt;&lt;', and so forth).</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_arith=ignore|sp_arith=add|sp_arith=remove|sp_arith=force|sp_arith=not_defined
+ChoicesReadable="Ignore Sp Arith|Add Sp Arith|Remove Sp Arith|Force Sp Arith"
+ValueDefault=ignore
+
+[Sp Arith Additive]
+Category=1
+Description="<html>Add or remove space around arithmetic operators '+' and '-'.<br/><br/>Overrides sp_arith.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_arith_additive=ignore|sp_arith_additive=add|sp_arith_additive=remove|sp_arith_additive=force|sp_arith_additive=not_defined
+ChoicesReadable="Ignore Sp Arith Additive|Add Sp Arith Additive|Remove Sp Arith Additive|Force Sp Arith Additive"
+ValueDefault=ignore
+
+[Sp Assign]
+Category=1
+Description="<html>Add or remove space around assignment operator '=', '+=', etc.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_assign=ignore|sp_assign=add|sp_assign=remove|sp_assign=force|sp_assign=not_defined
+ChoicesReadable="Ignore Sp Assign|Add Sp Assign|Remove Sp Assign|Force Sp Assign"
+ValueDefault=ignore
+
+[Sp Cpp Lambda Assign]
+Category=1
+Description="<html>Add or remove space around '=' in C++11 lambda capture specifications.<br/><br/>Overrides sp_assign.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_cpp_lambda_assign=ignore|sp_cpp_lambda_assign=add|sp_cpp_lambda_assign=remove|sp_cpp_lambda_assign=force|sp_cpp_lambda_assign=not_defined
+ChoicesReadable="Ignore Sp Cpp Lambda Assign|Add Sp Cpp Lambda Assign|Remove Sp Cpp Lambda Assign|Force Sp Cpp Lambda Assign"
+ValueDefault=ignore
+
+[Sp Cpp Lambda Square Paren]
+Category=1
+Description="<html>Add or remove space after the capture specification of a C++11 lambda when<br/>an argument list is present, as in '[] &lt;here&gt; (int x){ ... }'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_cpp_lambda_square_paren=ignore|sp_cpp_lambda_square_paren=add|sp_cpp_lambda_square_paren=remove|sp_cpp_lambda_square_paren=force|sp_cpp_lambda_square_paren=not_defined
+ChoicesReadable="Ignore Sp Cpp Lambda Square Paren|Add Sp Cpp Lambda Square Paren|Remove Sp Cpp Lambda Square Paren|Force Sp Cpp Lambda Square Paren"
+ValueDefault=ignore
+
+[Sp Cpp Lambda Square Brace]
+Category=1
+Description="<html>Add or remove space after the capture specification of a C++11 lambda with<br/>no argument list is present, as in '[] &lt;here&gt; { ... }'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_cpp_lambda_square_brace=ignore|sp_cpp_lambda_square_brace=add|sp_cpp_lambda_square_brace=remove|sp_cpp_lambda_square_brace=force|sp_cpp_lambda_square_brace=not_defined
+ChoicesReadable="Ignore Sp Cpp Lambda Square Brace|Add Sp Cpp Lambda Square Brace|Remove Sp Cpp Lambda Square Brace|Force Sp Cpp Lambda Square Brace"
+ValueDefault=ignore
+
+[Sp Cpp Lambda Argument List]
+Category=1
+Description="<html>Add or remove space after the opening parenthesis and before the closing<br/>parenthesis of a argument list of a C++11 lambda, as in<br/>'[]( &lt;here&gt; int x &lt;here&gt; ){ ... }'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_cpp_lambda_argument_list=ignore|sp_cpp_lambda_argument_list=add|sp_cpp_lambda_argument_list=remove|sp_cpp_lambda_argument_list=force|sp_cpp_lambda_argument_list=not_defined
+ChoicesReadable="Ignore Sp Cpp Lambda Argument List|Add Sp Cpp Lambda Argument List|Remove Sp Cpp Lambda Argument List|Force Sp Cpp Lambda Argument List"
+ValueDefault=ignore
+
+[Sp Cpp Lambda Paren Brace]
+Category=1
+Description="<html>Add or remove space after the argument list of a C++11 lambda, as in<br/>'[](int x) &lt;here&gt; { ... }'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_cpp_lambda_paren_brace=ignore|sp_cpp_lambda_paren_brace=add|sp_cpp_lambda_paren_brace=remove|sp_cpp_lambda_paren_brace=force|sp_cpp_lambda_paren_brace=not_defined
+ChoicesReadable="Ignore Sp Cpp Lambda Paren Brace|Add Sp Cpp Lambda Paren Brace|Remove Sp Cpp Lambda Paren Brace|Force Sp Cpp Lambda Paren Brace"
+ValueDefault=ignore
+
+[Sp Cpp Lambda Fparen]
+Category=1
+Description="<html>Add or remove space between a lambda body and its call operator of an<br/>immediately invoked lambda, as in '[]( ... ){ ... } &lt;here&gt; ( ... )'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_cpp_lambda_fparen=ignore|sp_cpp_lambda_fparen=add|sp_cpp_lambda_fparen=remove|sp_cpp_lambda_fparen=force|sp_cpp_lambda_fparen=not_defined
+ChoicesReadable="Ignore Sp Cpp Lambda Fparen|Add Sp Cpp Lambda Fparen|Remove Sp Cpp Lambda Fparen|Force Sp Cpp Lambda Fparen"
+ValueDefault=ignore
+
+[Sp Assign Default]
+Category=1
+Description="<html>Add or remove space around assignment operator '=' in a prototype.<br/><br/>If set to ignore, use sp_assign.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_assign_default=ignore|sp_assign_default=add|sp_assign_default=remove|sp_assign_default=force|sp_assign_default=not_defined
+ChoicesReadable="Ignore Sp Assign Default|Add Sp Assign Default|Remove Sp Assign Default|Force Sp Assign Default"
+ValueDefault=ignore
+
+[Sp Before Assign]
+Category=1
+Description="<html>Add or remove space before assignment operator '=', '+=', etc.<br/><br/>Overrides sp_assign.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_assign=ignore|sp_before_assign=add|sp_before_assign=remove|sp_before_assign=force|sp_before_assign=not_defined
+ChoicesReadable="Ignore Sp Before Assign|Add Sp Before Assign|Remove Sp Before Assign|Force Sp Before Assign"
+ValueDefault=ignore
+
+[Sp After Assign]
+Category=1
+Description="<html>Add or remove space after assignment operator '=', '+=', etc.<br/><br/>Overrides sp_assign.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_assign=ignore|sp_after_assign=add|sp_after_assign=remove|sp_after_assign=force|sp_after_assign=not_defined
+ChoicesReadable="Ignore Sp After Assign|Add Sp After Assign|Remove Sp After Assign|Force Sp After Assign"
+ValueDefault=ignore
+
+[Sp Enum Brace]
+Category=1
+Description="<html>Add or remove space in 'enum {'.<br/><br/>Default: add</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_enum_brace=ignore|sp_enum_brace=add|sp_enum_brace=remove|sp_enum_brace=force|sp_enum_brace=not_defined
+ChoicesReadable="Ignore Sp Enum Brace|Add Sp Enum Brace|Remove Sp Enum Brace|Force Sp Enum Brace"
+ValueDefault=add
+
+[Sp Enum Paren]
+Category=1
+Description="<html>Add or remove space in 'NS_ENUM ('.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_enum_paren=ignore|sp_enum_paren=add|sp_enum_paren=remove|sp_enum_paren=force|sp_enum_paren=not_defined
+ChoicesReadable="Ignore Sp Enum Paren|Add Sp Enum Paren|Remove Sp Enum Paren|Force Sp Enum Paren"
+ValueDefault=ignore
+
+[Sp Enum Assign]
+Category=1
+Description="<html>Add or remove space around assignment '=' in enum.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_enum_assign=ignore|sp_enum_assign=add|sp_enum_assign=remove|sp_enum_assign=force|sp_enum_assign=not_defined
+ChoicesReadable="Ignore Sp Enum Assign|Add Sp Enum Assign|Remove Sp Enum Assign|Force Sp Enum Assign"
+ValueDefault=ignore
+
+[Sp Enum Before Assign]
+Category=1
+Description="<html>Add or remove space before assignment '=' in enum.<br/><br/>Overrides sp_enum_assign.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_enum_before_assign=ignore|sp_enum_before_assign=add|sp_enum_before_assign=remove|sp_enum_before_assign=force|sp_enum_before_assign=not_defined
+ChoicesReadable="Ignore Sp Enum Before Assign|Add Sp Enum Before Assign|Remove Sp Enum Before Assign|Force Sp Enum Before Assign"
+ValueDefault=ignore
+
+[Sp Enum After Assign]
+Category=1
+Description="<html>Add or remove space after assignment '=' in enum.<br/><br/>Overrides sp_enum_assign.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_enum_after_assign=ignore|sp_enum_after_assign=add|sp_enum_after_assign=remove|sp_enum_after_assign=force|sp_enum_after_assign=not_defined
+ChoicesReadable="Ignore Sp Enum After Assign|Add Sp Enum After Assign|Remove Sp Enum After Assign|Force Sp Enum After Assign"
+ValueDefault=ignore
+
+[Sp Enum Colon]
+Category=1
+Description="<html>Add or remove space around assignment ':' in enum.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_enum_colon=ignore|sp_enum_colon=add|sp_enum_colon=remove|sp_enum_colon=force|sp_enum_colon=not_defined
+ChoicesReadable="Ignore Sp Enum Colon|Add Sp Enum Colon|Remove Sp Enum Colon|Force Sp Enum Colon"
+ValueDefault=ignore
+
+[Sp Pp Concat]
+Category=1
+Description="<html>Add or remove space around preprocessor '##' concatenation operator.<br/><br/>Default: add</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_pp_concat=ignore|sp_pp_concat=add|sp_pp_concat=remove|sp_pp_concat=force|sp_pp_concat=not_defined
+ChoicesReadable="Ignore Sp Pp Concat|Add Sp Pp Concat|Remove Sp Pp Concat|Force Sp Pp Concat"
+ValueDefault=add
+
+[Sp Pp Stringify]
+Category=1
+Description="<html>Add or remove space after preprocessor '#' stringify operator.<br/>Also affects the '#@' charizing operator.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_pp_stringify=ignore|sp_pp_stringify=add|sp_pp_stringify=remove|sp_pp_stringify=force|sp_pp_stringify=not_defined
+ChoicesReadable="Ignore Sp Pp Stringify|Add Sp Pp Stringify|Remove Sp Pp Stringify|Force Sp Pp Stringify"
+ValueDefault=ignore
+
+[Sp Before Pp Stringify]
+Category=1
+Description="<html>Add or remove space before preprocessor '#' stringify operator<br/>as in '#define x(y) L#y'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_pp_stringify=ignore|sp_before_pp_stringify=add|sp_before_pp_stringify=remove|sp_before_pp_stringify=force|sp_before_pp_stringify=not_defined
+ChoicesReadable="Ignore Sp Before Pp Stringify|Add Sp Before Pp Stringify|Remove Sp Before Pp Stringify|Force Sp Before Pp Stringify"
+ValueDefault=ignore
+
+[Sp Bool]
+Category=1
+Description="<html>Add or remove space around boolean operators '&amp;&amp;' and '||'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_bool=ignore|sp_bool=add|sp_bool=remove|sp_bool=force|sp_bool=not_defined
+ChoicesReadable="Ignore Sp Bool|Add Sp Bool|Remove Sp Bool|Force Sp Bool"
+ValueDefault=ignore
+
+[Sp Compare]
+Category=1
+Description="<html>Add or remove space around compare operator '&lt;', '&gt;', '==', etc.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_compare=ignore|sp_compare=add|sp_compare=remove|sp_compare=force|sp_compare=not_defined
+ChoicesReadable="Ignore Sp Compare|Add Sp Compare|Remove Sp Compare|Force Sp Compare"
+ValueDefault=ignore
+
+[Sp Inside Paren]
+Category=1
+Description="<html>Add or remove space inside '(' and ')'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_paren=ignore|sp_inside_paren=add|sp_inside_paren=remove|sp_inside_paren=force|sp_inside_paren=not_defined
+ChoicesReadable="Ignore Sp Inside Paren|Add Sp Inside Paren|Remove Sp Inside Paren|Force Sp Inside Paren"
+ValueDefault=ignore
+
+[Sp Paren Paren]
+Category=1
+Description="<html>Add or remove space between nested parentheses, i.e. '((' vs. ') )'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_paren_paren=ignore|sp_paren_paren=add|sp_paren_paren=remove|sp_paren_paren=force|sp_paren_paren=not_defined
+ChoicesReadable="Ignore Sp Paren Paren|Add Sp Paren Paren|Remove Sp Paren Paren|Force Sp Paren Paren"
+ValueDefault=ignore
+
+[Sp Cparen Oparen]
+Category=1
+Description="<html>Add or remove space between back-to-back parentheses, i.e. ')(' vs. ') ('.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_cparen_oparen=ignore|sp_cparen_oparen=add|sp_cparen_oparen=remove|sp_cparen_oparen=force|sp_cparen_oparen=not_defined
+ChoicesReadable="Ignore Sp Cparen Oparen|Add Sp Cparen Oparen|Remove Sp Cparen Oparen|Force Sp Cparen Oparen"
+ValueDefault=ignore
+
+[Sp Balance Nested Parens]
+Category=1
+Description="<html>Whether to balance spaces inside nested parentheses.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=sp_balance_nested_parens=true|sp_balance_nested_parens=false
+ValueDefault=false
+
+[Sp Paren Brace]
+Category=1
+Description="<html>Add or remove space between ')' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_paren_brace=ignore|sp_paren_brace=add|sp_paren_brace=remove|sp_paren_brace=force|sp_paren_brace=not_defined
+ChoicesReadable="Ignore Sp Paren Brace|Add Sp Paren Brace|Remove Sp Paren Brace|Force Sp Paren Brace"
+ValueDefault=ignore
+
+[Sp Brace Brace]
+Category=1
+Description="<html>Add or remove space between nested braces, i.e. '{{' vs. '{ {'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_brace_brace=ignore|sp_brace_brace=add|sp_brace_brace=remove|sp_brace_brace=force|sp_brace_brace=not_defined
+ChoicesReadable="Ignore Sp Brace Brace|Add Sp Brace Brace|Remove Sp Brace Brace|Force Sp Brace Brace"
+ValueDefault=ignore
+
+[Sp Before Ptr Star]
+Category=1
+Description="<html>Add or remove space before pointer star '*'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_ptr_star=ignore|sp_before_ptr_star=add|sp_before_ptr_star=remove|sp_before_ptr_star=force|sp_before_ptr_star=not_defined
+ChoicesReadable="Ignore Sp Before Ptr Star|Add Sp Before Ptr Star|Remove Sp Before Ptr Star|Force Sp Before Ptr Star"
+ValueDefault=ignore
+
+[Sp Before Unnamed Ptr Star]
+Category=1
+Description="<html>Add or remove space before pointer star '*' that isn't followed by a<br/>variable name. If set to ignore, sp_before_ptr_star is used instead.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_unnamed_ptr_star=ignore|sp_before_unnamed_ptr_star=add|sp_before_unnamed_ptr_star=remove|sp_before_unnamed_ptr_star=force|sp_before_unnamed_ptr_star=not_defined
+ChoicesReadable="Ignore Sp Before Unnamed Ptr Star|Add Sp Before Unnamed Ptr Star|Remove Sp Before Unnamed Ptr Star|Force Sp Before Unnamed Ptr Star"
+ValueDefault=ignore
+
+[Sp Between Ptr Star]
+Category=1
+Description="<html>Add or remove space between pointer stars '*', as in 'int ***a;'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_between_ptr_star=ignore|sp_between_ptr_star=add|sp_between_ptr_star=remove|sp_between_ptr_star=force|sp_between_ptr_star=not_defined
+ChoicesReadable="Ignore Sp Between Ptr Star|Add Sp Between Ptr Star|Remove Sp Between Ptr Star|Force Sp Between Ptr Star"
+ValueDefault=ignore
+
+[Sp After Ptr Star]
+Category=1
+Description="<html>Add or remove space after pointer star '*', if followed by a word.<br/><br/>Overrides sp_type_func.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_ptr_star=ignore|sp_after_ptr_star=add|sp_after_ptr_star=remove|sp_after_ptr_star=force|sp_after_ptr_star=not_defined
+ChoicesReadable="Ignore Sp After Ptr Star|Add Sp After Ptr Star|Remove Sp After Ptr Star|Force Sp After Ptr Star"
+ValueDefault=ignore
+
+[Sp After Ptr Block Caret]
+Category=1
+Description="<html>Add or remove space after pointer caret '^', if followed by a word.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_ptr_block_caret=ignore|sp_after_ptr_block_caret=add|sp_after_ptr_block_caret=remove|sp_after_ptr_block_caret=force|sp_after_ptr_block_caret=not_defined
+ChoicesReadable="Ignore Sp After Ptr Block Caret|Add Sp After Ptr Block Caret|Remove Sp After Ptr Block Caret|Force Sp After Ptr Block Caret"
+ValueDefault=ignore
+
+[Sp After Ptr Star Qualifier]
+Category=1
+Description="<html>Add or remove space after pointer star '*', if followed by a qualifier.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_ptr_star_qualifier=ignore|sp_after_ptr_star_qualifier=add|sp_after_ptr_star_qualifier=remove|sp_after_ptr_star_qualifier=force|sp_after_ptr_star_qualifier=not_defined
+ChoicesReadable="Ignore Sp After Ptr Star Qualifier|Add Sp After Ptr Star Qualifier|Remove Sp After Ptr Star Qualifier|Force Sp After Ptr Star Qualifier"
+ValueDefault=ignore
+
+[Sp After Ptr Star Func]
+Category=1
+Description="<html>Add or remove space after a pointer star '*', if followed by a function<br/>prototype or function definition.<br/><br/>Overrides sp_after_ptr_star and sp_type_func.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_ptr_star_func=ignore|sp_after_ptr_star_func=add|sp_after_ptr_star_func=remove|sp_after_ptr_star_func=force|sp_after_ptr_star_func=not_defined
+ChoicesReadable="Ignore Sp After Ptr Star Func|Add Sp After Ptr Star Func|Remove Sp After Ptr Star Func|Force Sp After Ptr Star Func"
+ValueDefault=ignore
+
+[Sp After Ptr Star Trailing]
+Category=1
+Description="<html>Add or remove space after a pointer star '*' in the trailing return of a<br/>function prototype or function definition.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_ptr_star_trailing=ignore|sp_after_ptr_star_trailing=add|sp_after_ptr_star_trailing=remove|sp_after_ptr_star_trailing=force|sp_after_ptr_star_trailing=not_defined
+ChoicesReadable="Ignore Sp After Ptr Star Trailing|Add Sp After Ptr Star Trailing|Remove Sp After Ptr Star Trailing|Force Sp After Ptr Star Trailing"
+ValueDefault=ignore
+
+[Sp Ptr Star Func Var]
+Category=1
+Description="<html>Add or remove space between the pointer star '*' and the name of the variable<br/>in a function pointer definition.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_ptr_star_func_var=ignore|sp_ptr_star_func_var=add|sp_ptr_star_func_var=remove|sp_ptr_star_func_var=force|sp_ptr_star_func_var=not_defined
+ChoicesReadable="Ignore Sp Ptr Star Func Var|Add Sp Ptr Star Func Var|Remove Sp Ptr Star Func Var|Force Sp Ptr Star Func Var"
+ValueDefault=ignore
+
+[Sp Ptr Star Func Type]
+Category=1
+Description="<html>Add or remove space between the pointer star '*' and the name of the type<br/>in a function pointer type definition.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_ptr_star_func_type=ignore|sp_ptr_star_func_type=add|sp_ptr_star_func_type=remove|sp_ptr_star_func_type=force|sp_ptr_star_func_type=not_defined
+ChoicesReadable="Ignore Sp Ptr Star Func Type|Add Sp Ptr Star Func Type|Remove Sp Ptr Star Func Type|Force Sp Ptr Star Func Type"
+ValueDefault=ignore
+
+[Sp Ptr Star Paren]
+Category=1
+Description="<html>Add or remove space after a pointer star '*', if followed by an open<br/>parenthesis, as in 'void* (*)()'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_ptr_star_paren=ignore|sp_ptr_star_paren=add|sp_ptr_star_paren=remove|sp_ptr_star_paren=force|sp_ptr_star_paren=not_defined
+ChoicesReadable="Ignore Sp Ptr Star Paren|Add Sp Ptr Star Paren|Remove Sp Ptr Star Paren|Force Sp Ptr Star Paren"
+ValueDefault=ignore
+
+[Sp Before Ptr Star Func]
+Category=1
+Description="<html>Add or remove space before a pointer star '*', if followed by a function<br/>prototype or function definition.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_ptr_star_func=ignore|sp_before_ptr_star_func=add|sp_before_ptr_star_func=remove|sp_before_ptr_star_func=force|sp_before_ptr_star_func=not_defined
+ChoicesReadable="Ignore Sp Before Ptr Star Func|Add Sp Before Ptr Star Func|Remove Sp Before Ptr Star Func|Force Sp Before Ptr Star Func"
+ValueDefault=ignore
+
+[Sp Before Ptr Star Trailing]
+Category=1
+Description="<html>Add or remove space before a pointer star '*' in the trailing return of a<br/>function prototype or function definition.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_ptr_star_trailing=ignore|sp_before_ptr_star_trailing=add|sp_before_ptr_star_trailing=remove|sp_before_ptr_star_trailing=force|sp_before_ptr_star_trailing=not_defined
+ChoicesReadable="Ignore Sp Before Ptr Star Trailing|Add Sp Before Ptr Star Trailing|Remove Sp Before Ptr Star Trailing|Force Sp Before Ptr Star Trailing"
+ValueDefault=ignore
+
+[Sp Before Byref]
+Category=1
+Description="<html>Add or remove space before a reference sign '&amp;'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_byref=ignore|sp_before_byref=add|sp_before_byref=remove|sp_before_byref=force|sp_before_byref=not_defined
+ChoicesReadable="Ignore Sp Before Byref|Add Sp Before Byref|Remove Sp Before Byref|Force Sp Before Byref"
+ValueDefault=ignore
+
+[Sp Before Unnamed Byref]
+Category=1
+Description="<html>Add or remove space before a reference sign '&amp;' that isn't followed by a<br/>variable name. If set to ignore, sp_before_byref is used instead.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_unnamed_byref=ignore|sp_before_unnamed_byref=add|sp_before_unnamed_byref=remove|sp_before_unnamed_byref=force|sp_before_unnamed_byref=not_defined
+ChoicesReadable="Ignore Sp Before Unnamed Byref|Add Sp Before Unnamed Byref|Remove Sp Before Unnamed Byref|Force Sp Before Unnamed Byref"
+ValueDefault=ignore
+
+[Sp After Byref]
+Category=1
+Description="<html>Add or remove space after reference sign '&amp;', if followed by a word.<br/><br/>Overrides sp_type_func.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_byref=ignore|sp_after_byref=add|sp_after_byref=remove|sp_after_byref=force|sp_after_byref=not_defined
+ChoicesReadable="Ignore Sp After Byref|Add Sp After Byref|Remove Sp After Byref|Force Sp After Byref"
+ValueDefault=ignore
+
+[Sp After Byref Func]
+Category=1
+Description="<html>Add or remove space after a reference sign '&amp;', if followed by a function<br/>prototype or function definition.<br/><br/>Overrides sp_after_byref and sp_type_func.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_byref_func=ignore|sp_after_byref_func=add|sp_after_byref_func=remove|sp_after_byref_func=force|sp_after_byref_func=not_defined
+ChoicesReadable="Ignore Sp After Byref Func|Add Sp After Byref Func|Remove Sp After Byref Func|Force Sp After Byref Func"
+ValueDefault=ignore
+
+[Sp Before Byref Func]
+Category=1
+Description="<html>Add or remove space before a reference sign '&amp;', if followed by a function<br/>prototype or function definition.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_byref_func=ignore|sp_before_byref_func=add|sp_before_byref_func=remove|sp_before_byref_func=force|sp_before_byref_func=not_defined
+ChoicesReadable="Ignore Sp Before Byref Func|Add Sp Before Byref Func|Remove Sp Before Byref Func|Force Sp Before Byref Func"
+ValueDefault=ignore
+
+[Sp Byref Paren]
+Category=1
+Description="<html>Add or remove space after a reference sign '&amp;', if followed by an open<br/>parenthesis, as in 'char&amp; (*)()'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_byref_paren=ignore|sp_byref_paren=add|sp_byref_paren=remove|sp_byref_paren=force|sp_byref_paren=not_defined
+ChoicesReadable="Ignore Sp Byref Paren|Add Sp Byref Paren|Remove Sp Byref Paren|Force Sp Byref Paren"
+ValueDefault=ignore
+
+[Sp After Type]
+Category=1
+Description="<html>Add or remove space between type and word. In cases where total removal of<br/>whitespace would be a syntax error, a value of 'remove' is treated the same<br/>as 'force'.<br/><br/>This also affects some other instances of space following a type that are<br/>not covered by other options; for example, between the return type and<br/>parenthesis of a function type template argument, between the type and<br/>parenthesis of an array parameter, or between 'decltype(...)' and the<br/>following word.<br/><br/>Default: force</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_type=ignore|sp_after_type=add|sp_after_type=remove|sp_after_type=force|sp_after_type=not_defined
+ChoicesReadable="Ignore Sp After Type|Add Sp After Type|Remove Sp After Type|Force Sp After Type"
+ValueDefault=force
+
+[Sp After Decltype]
+Category=1
+Description="<html>Add or remove space between 'decltype(...)' and word,<br/>brace or function call.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_decltype=ignore|sp_after_decltype=add|sp_after_decltype=remove|sp_after_decltype=force|sp_after_decltype=not_defined
+ChoicesReadable="Ignore Sp After Decltype|Add Sp After Decltype|Remove Sp After Decltype|Force Sp After Decltype"
+ValueDefault=ignore
+
+[Sp Before Template Paren]
+Category=1
+Description="<html>(D) Add or remove space before the parenthesis in the D constructs<br/>'template Foo(' and 'class Foo('.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_template_paren=ignore|sp_before_template_paren=add|sp_before_template_paren=remove|sp_before_template_paren=force|sp_before_template_paren=not_defined
+ChoicesReadable="Ignore Sp Before Template Paren|Add Sp Before Template Paren|Remove Sp Before Template Paren|Force Sp Before Template Paren"
+ValueDefault=ignore
+
+[Sp Template Angle]
+Category=1
+Description="<html>Add or remove space between 'template' and '&lt;'.<br/>If set to ignore, sp_before_angle is used.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_template_angle=ignore|sp_template_angle=add|sp_template_angle=remove|sp_template_angle=force|sp_template_angle=not_defined
+ChoicesReadable="Ignore Sp Template Angle|Add Sp Template Angle|Remove Sp Template Angle|Force Sp Template Angle"
+ValueDefault=ignore
+
+[Sp Before Angle]
+Category=1
+Description="<html>Add or remove space before '&lt;'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_angle=ignore|sp_before_angle=add|sp_before_angle=remove|sp_before_angle=force|sp_before_angle=not_defined
+ChoicesReadable="Ignore Sp Before Angle|Add Sp Before Angle|Remove Sp Before Angle|Force Sp Before Angle"
+ValueDefault=ignore
+
+[Sp Inside Angle]
+Category=1
+Description="<html>Add or remove space inside '&lt;' and '&gt;'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_angle=ignore|sp_inside_angle=add|sp_inside_angle=remove|sp_inside_angle=force|sp_inside_angle=not_defined
+ChoicesReadable="Ignore Sp Inside Angle|Add Sp Inside Angle|Remove Sp Inside Angle|Force Sp Inside Angle"
+ValueDefault=ignore
+
+[Sp Inside Angle Empty]
+Category=1
+Description="<html>Add or remove space inside '&lt;&gt;'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_angle_empty=ignore|sp_inside_angle_empty=add|sp_inside_angle_empty=remove|sp_inside_angle_empty=force|sp_inside_angle_empty=not_defined
+ChoicesReadable="Ignore Sp Inside Angle Empty|Add Sp Inside Angle Empty|Remove Sp Inside Angle Empty|Force Sp Inside Angle Empty"
+ValueDefault=ignore
+
+[Sp Angle Colon]
+Category=1
+Description="<html>Add or remove space between '&gt;' and ':'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_angle_colon=ignore|sp_angle_colon=add|sp_angle_colon=remove|sp_angle_colon=force|sp_angle_colon=not_defined
+ChoicesReadable="Ignore Sp Angle Colon|Add Sp Angle Colon|Remove Sp Angle Colon|Force Sp Angle Colon"
+ValueDefault=ignore
+
+[Sp After Angle]
+Category=1
+Description="<html>Add or remove space after '&gt;'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_angle=ignore|sp_after_angle=add|sp_after_angle=remove|sp_after_angle=force|sp_after_angle=not_defined
+ChoicesReadable="Ignore Sp After Angle|Add Sp After Angle|Remove Sp After Angle|Force Sp After Angle"
+ValueDefault=ignore
+
+[Sp Angle Paren]
+Category=1
+Description="<html>Add or remove space between '&gt;' and '(' as found in 'new List&lt;byte&gt;(foo);'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_angle_paren=ignore|sp_angle_paren=add|sp_angle_paren=remove|sp_angle_paren=force|sp_angle_paren=not_defined
+ChoicesReadable="Ignore Sp Angle Paren|Add Sp Angle Paren|Remove Sp Angle Paren|Force Sp Angle Paren"
+ValueDefault=ignore
+
+[Sp Angle Paren Empty]
+Category=1
+Description="<html>Add or remove space between '&gt;' and '()' as found in 'new List&lt;byte&gt;();'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_angle_paren_empty=ignore|sp_angle_paren_empty=add|sp_angle_paren_empty=remove|sp_angle_paren_empty=force|sp_angle_paren_empty=not_defined
+ChoicesReadable="Ignore Sp Angle Paren Empty|Add Sp Angle Paren Empty|Remove Sp Angle Paren Empty|Force Sp Angle Paren Empty"
+ValueDefault=ignore
+
+[Sp Angle Word]
+Category=1
+Description="<html>Add or remove space between '&gt;' and a word as in 'List&lt;byte&gt; m;' or<br/>'template &lt;typename T&gt; static ...'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_angle_word=ignore|sp_angle_word=add|sp_angle_word=remove|sp_angle_word=force|sp_angle_word=not_defined
+ChoicesReadable="Ignore Sp Angle Word|Add Sp Angle Word|Remove Sp Angle Word|Force Sp Angle Word"
+ValueDefault=ignore
+
+[Sp Angle Shift]
+Category=1
+Description="<html>Add or remove space between '&gt;' and '&gt;' in '&gt;&gt;' (template stuff).<br/><br/>Default: add</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_angle_shift=ignore|sp_angle_shift=add|sp_angle_shift=remove|sp_angle_shift=force|sp_angle_shift=not_defined
+ChoicesReadable="Ignore Sp Angle Shift|Add Sp Angle Shift|Remove Sp Angle Shift|Force Sp Angle Shift"
+ValueDefault=add
+
+[Sp Permit Cpp11 Shift]
+Category=1
+Description="<html>(C++11) Permit removal of the space between '&gt;&gt;' in 'foo&lt;bar&lt;int&gt; &gt;'. Note<br/>that sp_angle_shift cannot remove the space without this option.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=sp_permit_cpp11_shift=true|sp_permit_cpp11_shift=false
+ValueDefault=false
+
+[Sp Before Sparen]
+Category=1
+Description="<html>Add or remove space before '(' of control statements ('if', 'for', 'switch',<br/>'while', etc.).</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_sparen=ignore|sp_before_sparen=add|sp_before_sparen=remove|sp_before_sparen=force|sp_before_sparen=not_defined
+ChoicesReadable="Ignore Sp Before Sparen|Add Sp Before Sparen|Remove Sp Before Sparen|Force Sp Before Sparen"
+ValueDefault=ignore
+
+[Sp Inside Sparen]
+Category=1
+Description="<html>Add or remove space inside '(' and ')' of control statements other than<br/>'for'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_sparen=ignore|sp_inside_sparen=add|sp_inside_sparen=remove|sp_inside_sparen=force|sp_inside_sparen=not_defined
+ChoicesReadable="Ignore Sp Inside Sparen|Add Sp Inside Sparen|Remove Sp Inside Sparen|Force Sp Inside Sparen"
+ValueDefault=ignore
+
+[Sp Inside Sparen Open]
+Category=1
+Description="<html>Add or remove space after '(' of control statements other than 'for'.<br/><br/>Overrides sp_inside_sparen.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_sparen_open=ignore|sp_inside_sparen_open=add|sp_inside_sparen_open=remove|sp_inside_sparen_open=force|sp_inside_sparen_open=not_defined
+ChoicesReadable="Ignore Sp Inside Sparen Open|Add Sp Inside Sparen Open|Remove Sp Inside Sparen Open|Force Sp Inside Sparen Open"
+ValueDefault=ignore
+
+[Sp Inside Sparen Close]
+Category=1
+Description="<html>Add or remove space before ')' of control statements other than 'for'.<br/><br/>Overrides sp_inside_sparen.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_sparen_close=ignore|sp_inside_sparen_close=add|sp_inside_sparen_close=remove|sp_inside_sparen_close=force|sp_inside_sparen_close=not_defined
+ChoicesReadable="Ignore Sp Inside Sparen Close|Add Sp Inside Sparen Close|Remove Sp Inside Sparen Close|Force Sp Inside Sparen Close"
+ValueDefault=ignore
+
+[Sp Inside For]
+Category=1
+Description="<html>Add or remove space inside '(' and ')' of 'for' statements.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_for=ignore|sp_inside_for=add|sp_inside_for=remove|sp_inside_for=force|sp_inside_for=not_defined
+ChoicesReadable="Ignore Sp Inside For|Add Sp Inside For|Remove Sp Inside For|Force Sp Inside For"
+ValueDefault=ignore
+
+[Sp Inside For Open]
+Category=1
+Description="<html>Add or remove space after '(' of 'for' statements.<br/><br/>Overrides sp_inside_for.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_for_open=ignore|sp_inside_for_open=add|sp_inside_for_open=remove|sp_inside_for_open=force|sp_inside_for_open=not_defined
+ChoicesReadable="Ignore Sp Inside For Open|Add Sp Inside For Open|Remove Sp Inside For Open|Force Sp Inside For Open"
+ValueDefault=ignore
+
+[Sp Inside For Close]
+Category=1
+Description="<html>Add or remove space before ')' of 'for' statements.<br/><br/>Overrides sp_inside_for.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_for_close=ignore|sp_inside_for_close=add|sp_inside_for_close=remove|sp_inside_for_close=force|sp_inside_for_close=not_defined
+ChoicesReadable="Ignore Sp Inside For Close|Add Sp Inside For Close|Remove Sp Inside For Close|Force Sp Inside For Close"
+ValueDefault=ignore
+
+[Sp Sparen Paren]
+Category=1
+Description="<html>Add or remove space between '((' or '))' of control statements.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_sparen_paren=ignore|sp_sparen_paren=add|sp_sparen_paren=remove|sp_sparen_paren=force|sp_sparen_paren=not_defined
+ChoicesReadable="Ignore Sp Sparen Paren|Add Sp Sparen Paren|Remove Sp Sparen Paren|Force Sp Sparen Paren"
+ValueDefault=ignore
+
+[Sp After Sparen]
+Category=1
+Description="<html>Add or remove space after ')' of control statements.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_sparen=ignore|sp_after_sparen=add|sp_after_sparen=remove|sp_after_sparen=force|sp_after_sparen=not_defined
+ChoicesReadable="Ignore Sp After Sparen|Add Sp After Sparen|Remove Sp After Sparen|Force Sp After Sparen"
+ValueDefault=ignore
+
+[Sp Sparen Brace]
+Category=1
+Description="<html>Add or remove space between ')' and '{' of control statements.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_sparen_brace=ignore|sp_sparen_brace=add|sp_sparen_brace=remove|sp_sparen_brace=force|sp_sparen_brace=not_defined
+ChoicesReadable="Ignore Sp Sparen Brace|Add Sp Sparen Brace|Remove Sp Sparen Brace|Force Sp Sparen Brace"
+ValueDefault=ignore
+
+[Sp Do Brace Open]
+Category=1
+Description="<html>Add or remove space between 'do' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_do_brace_open=ignore|sp_do_brace_open=add|sp_do_brace_open=remove|sp_do_brace_open=force|sp_do_brace_open=not_defined
+ChoicesReadable="Ignore Sp Do Brace Open|Add Sp Do Brace Open|Remove Sp Do Brace Open|Force Sp Do Brace Open"
+ValueDefault=ignore
+
+[Sp Brace Close While]
+Category=1
+Description="<html>Add or remove space between '}' and 'while'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_brace_close_while=ignore|sp_brace_close_while=add|sp_brace_close_while=remove|sp_brace_close_while=force|sp_brace_close_while=not_defined
+ChoicesReadable="Ignore Sp Brace Close While|Add Sp Brace Close While|Remove Sp Brace Close While|Force Sp Brace Close While"
+ValueDefault=ignore
+
+[Sp While Paren Open]
+Category=1
+Description="<html>Add or remove space between 'while' and '('. Overrides sp_before_sparen.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_while_paren_open=ignore|sp_while_paren_open=add|sp_while_paren_open=remove|sp_while_paren_open=force|sp_while_paren_open=not_defined
+ChoicesReadable="Ignore Sp While Paren Open|Add Sp While Paren Open|Remove Sp While Paren Open|Force Sp While Paren Open"
+ValueDefault=ignore
+
+[Sp Invariant Paren]
+Category=1
+Description="<html>(D) Add or remove space between 'invariant' and '('.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_invariant_paren=ignore|sp_invariant_paren=add|sp_invariant_paren=remove|sp_invariant_paren=force|sp_invariant_paren=not_defined
+ChoicesReadable="Ignore Sp Invariant Paren|Add Sp Invariant Paren|Remove Sp Invariant Paren|Force Sp Invariant Paren"
+ValueDefault=ignore
+
+[Sp After Invariant Paren]
+Category=1
+Description="<html>(D) Add or remove space after the ')' in 'invariant (C) c'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_invariant_paren=ignore|sp_after_invariant_paren=add|sp_after_invariant_paren=remove|sp_after_invariant_paren=force|sp_after_invariant_paren=not_defined
+ChoicesReadable="Ignore Sp After Invariant Paren|Add Sp After Invariant Paren|Remove Sp After Invariant Paren|Force Sp After Invariant Paren"
+ValueDefault=ignore
+
+[Sp Special Semi]
+Category=1
+Description="<html>Add or remove space before empty statement ';' on 'if', 'for' and 'while'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_special_semi=ignore|sp_special_semi=add|sp_special_semi=remove|sp_special_semi=force|sp_special_semi=not_defined
+ChoicesReadable="Ignore Sp Special Semi|Add Sp Special Semi|Remove Sp Special Semi|Force Sp Special Semi"
+ValueDefault=ignore
+
+[Sp Before Semi]
+Category=1
+Description="<html>Add or remove space before ';'.<br/><br/>Default: remove</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_semi=ignore|sp_before_semi=add|sp_before_semi=remove|sp_before_semi=force|sp_before_semi=not_defined
+ChoicesReadable="Ignore Sp Before Semi|Add Sp Before Semi|Remove Sp Before Semi|Force Sp Before Semi"
+ValueDefault=remove
+
+[Sp Before Semi For]
+Category=1
+Description="<html>Add or remove space before ';' in non-empty 'for' statements.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_semi_for=ignore|sp_before_semi_for=add|sp_before_semi_for=remove|sp_before_semi_for=force|sp_before_semi_for=not_defined
+ChoicesReadable="Ignore Sp Before Semi For|Add Sp Before Semi For|Remove Sp Before Semi For|Force Sp Before Semi For"
+ValueDefault=ignore
+
+[Sp Before Semi For Empty]
+Category=1
+Description="<html>Add or remove space before a semicolon of an empty left part of a for<br/>statement, as in 'for ( &lt;here&gt; ; ; )'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_semi_for_empty=ignore|sp_before_semi_for_empty=add|sp_before_semi_for_empty=remove|sp_before_semi_for_empty=force|sp_before_semi_for_empty=not_defined
+ChoicesReadable="Ignore Sp Before Semi For Empty|Add Sp Before Semi For Empty|Remove Sp Before Semi For Empty|Force Sp Before Semi For Empty"
+ValueDefault=ignore
+
+[Sp Between Semi For Empty]
+Category=1
+Description="<html>Add or remove space between the semicolons of an empty middle part of a for<br/>statement, as in 'for ( ; &lt;here&gt; ; )'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_between_semi_for_empty=ignore|sp_between_semi_for_empty=add|sp_between_semi_for_empty=remove|sp_between_semi_for_empty=force|sp_between_semi_for_empty=not_defined
+ChoicesReadable="Ignore Sp Between Semi For Empty|Add Sp Between Semi For Empty|Remove Sp Between Semi For Empty|Force Sp Between Semi For Empty"
+ValueDefault=ignore
+
+[Sp After Semi]
+Category=1
+Description="<html>Add or remove space after ';', except when followed by a comment.<br/><br/>Default: add</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_semi=ignore|sp_after_semi=add|sp_after_semi=remove|sp_after_semi=force|sp_after_semi=not_defined
+ChoicesReadable="Ignore Sp After Semi|Add Sp After Semi|Remove Sp After Semi|Force Sp After Semi"
+ValueDefault=add
+
+[Sp After Semi For]
+Category=1
+Description="<html>Add or remove space after ';' in non-empty 'for' statements.<br/><br/>Default: force</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_semi_for=ignore|sp_after_semi_for=add|sp_after_semi_for=remove|sp_after_semi_for=force|sp_after_semi_for=not_defined
+ChoicesReadable="Ignore Sp After Semi For|Add Sp After Semi For|Remove Sp After Semi For|Force Sp After Semi For"
+ValueDefault=force
+
+[Sp After Semi For Empty]
+Category=1
+Description="<html>Add or remove space after the final semicolon of an empty part of a for<br/>statement, as in 'for ( ; ; &lt;here&gt; )'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_semi_for_empty=ignore|sp_after_semi_for_empty=add|sp_after_semi_for_empty=remove|sp_after_semi_for_empty=force|sp_after_semi_for_empty=not_defined
+ChoicesReadable="Ignore Sp After Semi For Empty|Add Sp After Semi For Empty|Remove Sp After Semi For Empty|Force Sp After Semi For Empty"
+ValueDefault=ignore
+
+[Sp Before Square]
+Category=1
+Description="<html>Add or remove space before '[' (except '[]').</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_square=ignore|sp_before_square=add|sp_before_square=remove|sp_before_square=force|sp_before_square=not_defined
+ChoicesReadable="Ignore Sp Before Square|Add Sp Before Square|Remove Sp Before Square|Force Sp Before Square"
+ValueDefault=ignore
+
+[Sp Before Vardef Square]
+Category=1
+Description="<html>Add or remove space before '[' for a variable definition.<br/><br/>Default: remove</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_vardef_square=ignore|sp_before_vardef_square=add|sp_before_vardef_square=remove|sp_before_vardef_square=force|sp_before_vardef_square=not_defined
+ChoicesReadable="Ignore Sp Before Vardef Square|Add Sp Before Vardef Square|Remove Sp Before Vardef Square|Force Sp Before Vardef Square"
+ValueDefault=remove
+
+[Sp Before Square Asm Block]
+Category=1
+Description="<html>Add or remove space before '[' for asm block.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_square_asm_block=ignore|sp_before_square_asm_block=add|sp_before_square_asm_block=remove|sp_before_square_asm_block=force|sp_before_square_asm_block=not_defined
+ChoicesReadable="Ignore Sp Before Square Asm Block|Add Sp Before Square Asm Block|Remove Sp Before Square Asm Block|Force Sp Before Square Asm Block"
+ValueDefault=ignore
+
+[Sp Before Squares]
+Category=1
+Description="<html>Add or remove space before '[]'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_squares=ignore|sp_before_squares=add|sp_before_squares=remove|sp_before_squares=force|sp_before_squares=not_defined
+ChoicesReadable="Ignore Sp Before Squares|Add Sp Before Squares|Remove Sp Before Squares|Force Sp Before Squares"
+ValueDefault=ignore
+
+[Sp Cpp Before Struct Binding]
+Category=1
+Description="<html>Add or remove space before C++17 structured bindings.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_cpp_before_struct_binding=ignore|sp_cpp_before_struct_binding=add|sp_cpp_before_struct_binding=remove|sp_cpp_before_struct_binding=force|sp_cpp_before_struct_binding=not_defined
+ChoicesReadable="Ignore Sp Cpp Before Struct Binding|Add Sp Cpp Before Struct Binding|Remove Sp Cpp Before Struct Binding|Force Sp Cpp Before Struct Binding"
+ValueDefault=ignore
+
+[Sp Inside Square]
+Category=1
+Description="<html>Add or remove space inside a non-empty '[' and ']'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_square=ignore|sp_inside_square=add|sp_inside_square=remove|sp_inside_square=force|sp_inside_square=not_defined
+ChoicesReadable="Ignore Sp Inside Square|Add Sp Inside Square|Remove Sp Inside Square|Force Sp Inside Square"
+ValueDefault=ignore
+
+[Sp Inside Square Empty]
+Category=1
+Description="<html>Add or remove space inside '[]'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_square_empty=ignore|sp_inside_square_empty=add|sp_inside_square_empty=remove|sp_inside_square_empty=force|sp_inside_square_empty=not_defined
+ChoicesReadable="Ignore Sp Inside Square Empty|Add Sp Inside Square Empty|Remove Sp Inside Square Empty|Force Sp Inside Square Empty"
+ValueDefault=ignore
+
+[Sp Inside Square Oc Array]
+Category=1
+Description="<html>(OC) Add or remove space inside a non-empty Objective-C boxed array '@[' and<br/>']'. If set to ignore, sp_inside_square is used.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_square_oc_array=ignore|sp_inside_square_oc_array=add|sp_inside_square_oc_array=remove|sp_inside_square_oc_array=force|sp_inside_square_oc_array=not_defined
+ChoicesReadable="Ignore Sp Inside Square Oc Array|Add Sp Inside Square Oc Array|Remove Sp Inside Square Oc Array|Force Sp Inside Square Oc Array"
+ValueDefault=ignore
+
+[Sp After Comma]
+Category=1
+Description="<html>Add or remove space after ',', i.e. 'a,b' vs. 'a, b'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_comma=ignore|sp_after_comma=add|sp_after_comma=remove|sp_after_comma=force|sp_after_comma=not_defined
+ChoicesReadable="Ignore Sp After Comma|Add Sp After Comma|Remove Sp After Comma|Force Sp After Comma"
+ValueDefault=ignore
+
+[Sp Before Comma]
+Category=1
+Description="<html>Add or remove space before ',', i.e. 'a,b' vs. 'a ,b'.<br/><br/>Default: remove</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_comma=ignore|sp_before_comma=add|sp_before_comma=remove|sp_before_comma=force|sp_before_comma=not_defined
+ChoicesReadable="Ignore Sp Before Comma|Add Sp Before Comma|Remove Sp Before Comma|Force Sp Before Comma"
+ValueDefault=remove
+
+[Sp After Mdatype Commas]
+Category=1
+Description="<html>(C#) Add or remove space between ',' and ']' in multidimensional array type<br/>like 'int[,,]'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_mdatype_commas=ignore|sp_after_mdatype_commas=add|sp_after_mdatype_commas=remove|sp_after_mdatype_commas=force|sp_after_mdatype_commas=not_defined
+ChoicesReadable="Ignore Sp After Mdatype Commas|Add Sp After Mdatype Commas|Remove Sp After Mdatype Commas|Force Sp After Mdatype Commas"
+ValueDefault=ignore
+
+[Sp Before Mdatype Commas]
+Category=1
+Description="<html>(C#) Add or remove space between '[' and ',' in multidimensional array type<br/>like 'int[,,]'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_mdatype_commas=ignore|sp_before_mdatype_commas=add|sp_before_mdatype_commas=remove|sp_before_mdatype_commas=force|sp_before_mdatype_commas=not_defined
+ChoicesReadable="Ignore Sp Before Mdatype Commas|Add Sp Before Mdatype Commas|Remove Sp Before Mdatype Commas|Force Sp Before Mdatype Commas"
+ValueDefault=ignore
+
+[Sp Between Mdatype Commas]
+Category=1
+Description="<html>(C#) Add or remove space between ',' in multidimensional array type<br/>like 'int[,,]'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_between_mdatype_commas=ignore|sp_between_mdatype_commas=add|sp_between_mdatype_commas=remove|sp_between_mdatype_commas=force|sp_between_mdatype_commas=not_defined
+ChoicesReadable="Ignore Sp Between Mdatype Commas|Add Sp Between Mdatype Commas|Remove Sp Between Mdatype Commas|Force Sp Between Mdatype Commas"
+ValueDefault=ignore
+
+[Sp Paren Comma]
+Category=1
+Description="<html>Add or remove space between an open parenthesis and comma,<br/>i.e. '(,' vs. '( ,'.<br/><br/>Default: force</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_paren_comma=ignore|sp_paren_comma=add|sp_paren_comma=remove|sp_paren_comma=force|sp_paren_comma=not_defined
+ChoicesReadable="Ignore Sp Paren Comma|Add Sp Paren Comma|Remove Sp Paren Comma|Force Sp Paren Comma"
+ValueDefault=force
+
+[Sp Type Colon]
+Category=1
+Description="<html>Add or remove space between a type and ':'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_type_colon=ignore|sp_type_colon=add|sp_type_colon=remove|sp_type_colon=force|sp_type_colon=not_defined
+ChoicesReadable="Ignore Sp Type Colon|Add Sp Type Colon|Remove Sp Type Colon|Force Sp Type Colon"
+ValueDefault=ignore
+
+[Sp After Ellipsis]
+Category=1
+Description="<html>Add or remove space after the variadic '...' when preceded by a<br/>non-punctuator.<br/>The value REMOVE will be overridden with FORCE</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_ellipsis=ignore|sp_after_ellipsis=add|sp_after_ellipsis=remove|sp_after_ellipsis=force|sp_after_ellipsis=not_defined
+ChoicesReadable="Ignore Sp After Ellipsis|Add Sp After Ellipsis|Remove Sp After Ellipsis|Force Sp After Ellipsis"
+ValueDefault=ignore
+
+[Sp Before Ellipsis]
+Category=1
+Description="<html>Add or remove space before the variadic '...' when preceded by a<br/>non-punctuator.<br/>The value REMOVE will be overridden with FORCE</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_ellipsis=ignore|sp_before_ellipsis=add|sp_before_ellipsis=remove|sp_before_ellipsis=force|sp_before_ellipsis=not_defined
+ChoicesReadable="Ignore Sp Before Ellipsis|Add Sp Before Ellipsis|Remove Sp Before Ellipsis|Force Sp Before Ellipsis"
+ValueDefault=ignore
+
+[Sp Type Ellipsis]
+Category=1
+Description="<html>Add or remove space between a type and '...'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_type_ellipsis=ignore|sp_type_ellipsis=add|sp_type_ellipsis=remove|sp_type_ellipsis=force|sp_type_ellipsis=not_defined
+ChoicesReadable="Ignore Sp Type Ellipsis|Add Sp Type Ellipsis|Remove Sp Type Ellipsis|Force Sp Type Ellipsis"
+ValueDefault=ignore
+
+[Sp Ptr Type Ellipsis]
+Category=1
+Description="<html>Add or remove space between a '*' and '...'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_ptr_type_ellipsis=ignore|sp_ptr_type_ellipsis=add|sp_ptr_type_ellipsis=remove|sp_ptr_type_ellipsis=force|sp_ptr_type_ellipsis=not_defined
+ChoicesReadable="Ignore Sp Ptr Type Ellipsis|Add Sp Ptr Type Ellipsis|Remove Sp Ptr Type Ellipsis|Force Sp Ptr Type Ellipsis"
+ValueDefault=ignore
+
+[Sp Paren Ellipsis]
+Category=1
+Description="<html>Add or remove space between ')' and '...'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_paren_ellipsis=ignore|sp_paren_ellipsis=add|sp_paren_ellipsis=remove|sp_paren_ellipsis=force|sp_paren_ellipsis=not_defined
+ChoicesReadable="Ignore Sp Paren Ellipsis|Add Sp Paren Ellipsis|Remove Sp Paren Ellipsis|Force Sp Paren Ellipsis"
+ValueDefault=ignore
+
+[Sp Byref Ellipsis]
+Category=1
+Description="<html>Add or remove space between '&amp;&amp;' and '...'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_byref_ellipsis=ignore|sp_byref_ellipsis=add|sp_byref_ellipsis=remove|sp_byref_ellipsis=force|sp_byref_ellipsis=not_defined
+ChoicesReadable="Ignore Sp Byref Ellipsis|Add Sp Byref Ellipsis|Remove Sp Byref Ellipsis|Force Sp Byref Ellipsis"
+ValueDefault=ignore
+
+[Sp Paren Qualifier]
+Category=1
+Description="<html>Add or remove space between ')' and a qualifier such as 'const'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_paren_qualifier=ignore|sp_paren_qualifier=add|sp_paren_qualifier=remove|sp_paren_qualifier=force|sp_paren_qualifier=not_defined
+ChoicesReadable="Ignore Sp Paren Qualifier|Add Sp Paren Qualifier|Remove Sp Paren Qualifier|Force Sp Paren Qualifier"
+ValueDefault=ignore
+
+[Sp Paren Noexcept]
+Category=1
+Description="<html>Add or remove space between ')' and 'noexcept'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_paren_noexcept=ignore|sp_paren_noexcept=add|sp_paren_noexcept=remove|sp_paren_noexcept=force|sp_paren_noexcept=not_defined
+ChoicesReadable="Ignore Sp Paren Noexcept|Add Sp Paren Noexcept|Remove Sp Paren Noexcept|Force Sp Paren Noexcept"
+ValueDefault=ignore
+
+[Sp After Class Colon]
+Category=1
+Description="<html>Add or remove space after class ':'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_class_colon=ignore|sp_after_class_colon=add|sp_after_class_colon=remove|sp_after_class_colon=force|sp_after_class_colon=not_defined
+ChoicesReadable="Ignore Sp After Class Colon|Add Sp After Class Colon|Remove Sp After Class Colon|Force Sp After Class Colon"
+ValueDefault=ignore
+
+[Sp Before Class Colon]
+Category=1
+Description="<html>Add or remove space before class ':'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_class_colon=ignore|sp_before_class_colon=add|sp_before_class_colon=remove|sp_before_class_colon=force|sp_before_class_colon=not_defined
+ChoicesReadable="Ignore Sp Before Class Colon|Add Sp Before Class Colon|Remove Sp Before Class Colon|Force Sp Before Class Colon"
+ValueDefault=ignore
+
+[Sp After Constr Colon]
+Category=1
+Description="<html>Add or remove space after class constructor ':'.<br/><br/>Default: add</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_constr_colon=ignore|sp_after_constr_colon=add|sp_after_constr_colon=remove|sp_after_constr_colon=force|sp_after_constr_colon=not_defined
+ChoicesReadable="Ignore Sp After Constr Colon|Add Sp After Constr Colon|Remove Sp After Constr Colon|Force Sp After Constr Colon"
+ValueDefault=add
+
+[Sp Before Constr Colon]
+Category=1
+Description="<html>Add or remove space before class constructor ':'.<br/><br/>Default: add</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_constr_colon=ignore|sp_before_constr_colon=add|sp_before_constr_colon=remove|sp_before_constr_colon=force|sp_before_constr_colon=not_defined
+ChoicesReadable="Ignore Sp Before Constr Colon|Add Sp Before Constr Colon|Remove Sp Before Constr Colon|Force Sp Before Constr Colon"
+ValueDefault=add
+
+[Sp Before Case Colon]
+Category=1
+Description="<html>Add or remove space before case ':'.<br/><br/>Default: remove</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_case_colon=ignore|sp_before_case_colon=add|sp_before_case_colon=remove|sp_before_case_colon=force|sp_before_case_colon=not_defined
+ChoicesReadable="Ignore Sp Before Case Colon|Add Sp Before Case Colon|Remove Sp Before Case Colon|Force Sp Before Case Colon"
+ValueDefault=remove
+
+[Sp After Operator]
+Category=1
+Description="<html>Add or remove space between 'operator' and operator sign.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_operator=ignore|sp_after_operator=add|sp_after_operator=remove|sp_after_operator=force|sp_after_operator=not_defined
+ChoicesReadable="Ignore Sp After Operator|Add Sp After Operator|Remove Sp After Operator|Force Sp After Operator"
+ValueDefault=ignore
+
+[Sp After Operator Sym]
+Category=1
+Description="<html>Add or remove space between the operator symbol and the open parenthesis, as<br/>in 'operator ++('.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_operator_sym=ignore|sp_after_operator_sym=add|sp_after_operator_sym=remove|sp_after_operator_sym=force|sp_after_operator_sym=not_defined
+ChoicesReadable="Ignore Sp After Operator Sym|Add Sp After Operator Sym|Remove Sp After Operator Sym|Force Sp After Operator Sym"
+ValueDefault=ignore
+
+[Sp After Operator Sym Empty]
+Category=1
+Description="<html>Overrides sp_after_operator_sym when the operator has no arguments, as in<br/>'operator *()'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_operator_sym_empty=ignore|sp_after_operator_sym_empty=add|sp_after_operator_sym_empty=remove|sp_after_operator_sym_empty=force|sp_after_operator_sym_empty=not_defined
+ChoicesReadable="Ignore Sp After Operator Sym Empty|Add Sp After Operator Sym Empty|Remove Sp After Operator Sym Empty|Force Sp After Operator Sym Empty"
+ValueDefault=ignore
+
+[Sp After Cast]
+Category=1
+Description="<html>Add or remove space after C/D cast, i.e. 'cast(int)a' vs. 'cast(int) a' or<br/>'(int)a' vs. '(int) a'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_cast=ignore|sp_after_cast=add|sp_after_cast=remove|sp_after_cast=force|sp_after_cast=not_defined
+ChoicesReadable="Ignore Sp After Cast|Add Sp After Cast|Remove Sp After Cast|Force Sp After Cast"
+ValueDefault=ignore
+
+[Sp Inside Paren Cast]
+Category=1
+Description="<html>Add or remove spaces inside cast parentheses.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_paren_cast=ignore|sp_inside_paren_cast=add|sp_inside_paren_cast=remove|sp_inside_paren_cast=force|sp_inside_paren_cast=not_defined
+ChoicesReadable="Ignore Sp Inside Paren Cast|Add Sp Inside Paren Cast|Remove Sp Inside Paren Cast|Force Sp Inside Paren Cast"
+ValueDefault=ignore
+
+[Sp Cpp Cast Paren]
+Category=1
+Description="<html>Add or remove space between the type and open parenthesis in a C++ cast,<br/>i.e. 'int(exp)' vs. 'int (exp)'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_cpp_cast_paren=ignore|sp_cpp_cast_paren=add|sp_cpp_cast_paren=remove|sp_cpp_cast_paren=force|sp_cpp_cast_paren=not_defined
+ChoicesReadable="Ignore Sp Cpp Cast Paren|Add Sp Cpp Cast Paren|Remove Sp Cpp Cast Paren|Force Sp Cpp Cast Paren"
+ValueDefault=ignore
+
+[Sp Sizeof Paren]
+Category=1
+Description="<html>Add or remove space between 'sizeof' and '('.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_sizeof_paren=ignore|sp_sizeof_paren=add|sp_sizeof_paren=remove|sp_sizeof_paren=force|sp_sizeof_paren=not_defined
+ChoicesReadable="Ignore Sp Sizeof Paren|Add Sp Sizeof Paren|Remove Sp Sizeof Paren|Force Sp Sizeof Paren"
+ValueDefault=ignore
+
+[Sp Sizeof Ellipsis]
+Category=1
+Description="<html>Add or remove space between 'sizeof' and '...'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_sizeof_ellipsis=ignore|sp_sizeof_ellipsis=add|sp_sizeof_ellipsis=remove|sp_sizeof_ellipsis=force|sp_sizeof_ellipsis=not_defined
+ChoicesReadable="Ignore Sp Sizeof Ellipsis|Add Sp Sizeof Ellipsis|Remove Sp Sizeof Ellipsis|Force Sp Sizeof Ellipsis"
+ValueDefault=ignore
+
+[Sp Sizeof Ellipsis Paren]
+Category=1
+Description="<html>Add or remove space between 'sizeof...' and '('.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_sizeof_ellipsis_paren=ignore|sp_sizeof_ellipsis_paren=add|sp_sizeof_ellipsis_paren=remove|sp_sizeof_ellipsis_paren=force|sp_sizeof_ellipsis_paren=not_defined
+ChoicesReadable="Ignore Sp Sizeof Ellipsis Paren|Add Sp Sizeof Ellipsis Paren|Remove Sp Sizeof Ellipsis Paren|Force Sp Sizeof Ellipsis Paren"
+ValueDefault=ignore
+
+[Sp Ellipsis Parameter Pack]
+Category=1
+Description="<html>Add or remove space between '...' and a parameter pack.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_ellipsis_parameter_pack=ignore|sp_ellipsis_parameter_pack=add|sp_ellipsis_parameter_pack=remove|sp_ellipsis_parameter_pack=force|sp_ellipsis_parameter_pack=not_defined
+ChoicesReadable="Ignore Sp Ellipsis Parameter Pack|Add Sp Ellipsis Parameter Pack|Remove Sp Ellipsis Parameter Pack|Force Sp Ellipsis Parameter Pack"
+ValueDefault=ignore
+
+[Sp Parameter Pack Ellipsis]
+Category=1
+Description="<html>Add or remove space between a parameter pack and '...'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_parameter_pack_ellipsis=ignore|sp_parameter_pack_ellipsis=add|sp_parameter_pack_ellipsis=remove|sp_parameter_pack_ellipsis=force|sp_parameter_pack_ellipsis=not_defined
+ChoicesReadable="Ignore Sp Parameter Pack Ellipsis|Add Sp Parameter Pack Ellipsis|Remove Sp Parameter Pack Ellipsis|Force Sp Parameter Pack Ellipsis"
+ValueDefault=ignore
+
+[Sp Decltype Paren]
+Category=1
+Description="<html>Add or remove space between 'decltype' and '('.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_decltype_paren=ignore|sp_decltype_paren=add|sp_decltype_paren=remove|sp_decltype_paren=force|sp_decltype_paren=not_defined
+ChoicesReadable="Ignore Sp Decltype Paren|Add Sp Decltype Paren|Remove Sp Decltype Paren|Force Sp Decltype Paren"
+ValueDefault=ignore
+
+[Sp After Tag]
+Category=1
+Description="<html>(Pawn) Add or remove space after the tag keyword.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_tag=ignore|sp_after_tag=add|sp_after_tag=remove|sp_after_tag=force|sp_after_tag=not_defined
+ChoicesReadable="Ignore Sp After Tag|Add Sp After Tag|Remove Sp After Tag|Force Sp After Tag"
+ValueDefault=ignore
+
+[Sp Inside Braces Enum]
+Category=1
+Description="<html>Add or remove space inside enum '{' and '}'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_braces_enum=ignore|sp_inside_braces_enum=add|sp_inside_braces_enum=remove|sp_inside_braces_enum=force|sp_inside_braces_enum=not_defined
+ChoicesReadable="Ignore Sp Inside Braces Enum|Add Sp Inside Braces Enum|Remove Sp Inside Braces Enum|Force Sp Inside Braces Enum"
+ValueDefault=ignore
+
+[Sp Inside Braces Struct]
+Category=1
+Description="<html>Add or remove space inside struct/union '{' and '}'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_braces_struct=ignore|sp_inside_braces_struct=add|sp_inside_braces_struct=remove|sp_inside_braces_struct=force|sp_inside_braces_struct=not_defined
+ChoicesReadable="Ignore Sp Inside Braces Struct|Add Sp Inside Braces Struct|Remove Sp Inside Braces Struct|Force Sp Inside Braces Struct"
+ValueDefault=ignore
+
+[Sp Inside Braces Oc Dict]
+Category=1
+Description="<html>(OC) Add or remove space inside Objective-C boxed dictionary '{' and '}'</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_braces_oc_dict=ignore|sp_inside_braces_oc_dict=add|sp_inside_braces_oc_dict=remove|sp_inside_braces_oc_dict=force|sp_inside_braces_oc_dict=not_defined
+ChoicesReadable="Ignore Sp Inside Braces Oc Dict|Add Sp Inside Braces Oc Dict|Remove Sp Inside Braces Oc Dict|Force Sp Inside Braces Oc Dict"
+ValueDefault=ignore
+
+[Sp After Type Brace Init Lst Open]
+Category=1
+Description="<html>Add or remove space after open brace in an unnamed temporary<br/>direct-list-initialization<br/>if statement is a brace_init_lst<br/>works only if sp_brace_brace is set to ignore.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_type_brace_init_lst_open=ignore|sp_after_type_brace_init_lst_open=add|sp_after_type_brace_init_lst_open=remove|sp_after_type_brace_init_lst_open=force|sp_after_type_brace_init_lst_open=not_defined
+ChoicesReadable="Ignore Sp After Type Brace Init Lst Open|Add Sp After Type Brace Init Lst Open|Remove Sp After Type Brace Init Lst Open|Force Sp After Type Brace Init Lst Open"
+ValueDefault=ignore
+
+[Sp Before Type Brace Init Lst Close]
+Category=1
+Description="<html>Add or remove space before close brace in an unnamed temporary<br/>direct-list-initialization<br/>if statement is a brace_init_lst<br/>works only if sp_brace_brace is set to ignore.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_type_brace_init_lst_close=ignore|sp_before_type_brace_init_lst_close=add|sp_before_type_brace_init_lst_close=remove|sp_before_type_brace_init_lst_close=force|sp_before_type_brace_init_lst_close=not_defined
+ChoicesReadable="Ignore Sp Before Type Brace Init Lst Close|Add Sp Before Type Brace Init Lst Close|Remove Sp Before Type Brace Init Lst Close|Force Sp Before Type Brace Init Lst Close"
+ValueDefault=ignore
+
+[Sp Inside Type Brace Init Lst]
+Category=1
+Description="<html>Add or remove space inside an unnamed temporary direct-list-initialization<br/>if statement is a brace_init_lst<br/>works only if sp_brace_brace is set to ignore<br/>works only if sp_before_type_brace_init_lst_close is set to ignore.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_type_brace_init_lst=ignore|sp_inside_type_brace_init_lst=add|sp_inside_type_brace_init_lst=remove|sp_inside_type_brace_init_lst=force|sp_inside_type_brace_init_lst=not_defined
+ChoicesReadable="Ignore Sp Inside Type Brace Init Lst|Add Sp Inside Type Brace Init Lst|Remove Sp Inside Type Brace Init Lst|Force Sp Inside Type Brace Init Lst"
+ValueDefault=ignore
+
+[Sp Inside Braces]
+Category=1
+Description="<html>Add or remove space inside '{' and '}'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_braces=ignore|sp_inside_braces=add|sp_inside_braces=remove|sp_inside_braces=force|sp_inside_braces=not_defined
+ChoicesReadable="Ignore Sp Inside Braces|Add Sp Inside Braces|Remove Sp Inside Braces|Force Sp Inside Braces"
+ValueDefault=ignore
+
+[Sp Inside Braces Empty]
+Category=1
+Description="<html>Add or remove space inside '{}'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_braces_empty=ignore|sp_inside_braces_empty=add|sp_inside_braces_empty=remove|sp_inside_braces_empty=force|sp_inside_braces_empty=not_defined
+ChoicesReadable="Ignore Sp Inside Braces Empty|Add Sp Inside Braces Empty|Remove Sp Inside Braces Empty|Force Sp Inside Braces Empty"
+ValueDefault=ignore
+
+[Sp Trailing Return]
+Category=1
+Description="<html>Add or remove space around trailing return operator '-&gt;'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_trailing_return=ignore|sp_trailing_return=add|sp_trailing_return=remove|sp_trailing_return=force|sp_trailing_return=not_defined
+ChoicesReadable="Ignore Sp Trailing Return|Add Sp Trailing Return|Remove Sp Trailing Return|Force Sp Trailing Return"
+ValueDefault=ignore
+
+[Sp Type Func]
+Category=1
+Description="<html>Add or remove space between return type and function name. A minimum of 1<br/>is forced except for pointer return types.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_type_func=ignore|sp_type_func=add|sp_type_func=remove|sp_type_func=force|sp_type_func=not_defined
+ChoicesReadable="Ignore Sp Type Func|Add Sp Type Func|Remove Sp Type Func|Force Sp Type Func"
+ValueDefault=ignore
+
+[Sp Type Brace Init Lst]
+Category=1
+Description="<html>Add or remove space between type and open brace of an unnamed temporary<br/>direct-list-initialization.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_type_brace_init_lst=ignore|sp_type_brace_init_lst=add|sp_type_brace_init_lst=remove|sp_type_brace_init_lst=force|sp_type_brace_init_lst=not_defined
+ChoicesReadable="Ignore Sp Type Brace Init Lst|Add Sp Type Brace Init Lst|Remove Sp Type Brace Init Lst|Force Sp Type Brace Init Lst"
+ValueDefault=ignore
+
+[Sp Func Proto Paren]
+Category=1
+Description="<html>Add or remove space between function name and '(' on function declaration.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_func_proto_paren=ignore|sp_func_proto_paren=add|sp_func_proto_paren=remove|sp_func_proto_paren=force|sp_func_proto_paren=not_defined
+ChoicesReadable="Ignore Sp Func Proto Paren|Add Sp Func Proto Paren|Remove Sp Func Proto Paren|Force Sp Func Proto Paren"
+ValueDefault=ignore
+
+[Sp Func Proto Paren Empty]
+Category=1
+Description="<html>Add or remove space between function name and '()' on function declaration<br/>without parameters.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_func_proto_paren_empty=ignore|sp_func_proto_paren_empty=add|sp_func_proto_paren_empty=remove|sp_func_proto_paren_empty=force|sp_func_proto_paren_empty=not_defined
+ChoicesReadable="Ignore Sp Func Proto Paren Empty|Add Sp Func Proto Paren Empty|Remove Sp Func Proto Paren Empty|Force Sp Func Proto Paren Empty"
+ValueDefault=ignore
+
+[Sp Func Type Paren]
+Category=1
+Description="<html>Add or remove space between function name and '(' with a typedef specifier.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_func_type_paren=ignore|sp_func_type_paren=add|sp_func_type_paren=remove|sp_func_type_paren=force|sp_func_type_paren=not_defined
+ChoicesReadable="Ignore Sp Func Type Paren|Add Sp Func Type Paren|Remove Sp Func Type Paren|Force Sp Func Type Paren"
+ValueDefault=ignore
+
+[Sp Func Def Paren]
+Category=1
+Description="<html>Add or remove space between alias name and '(' of a non-pointer function type typedef.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_func_def_paren=ignore|sp_func_def_paren=add|sp_func_def_paren=remove|sp_func_def_paren=force|sp_func_def_paren=not_defined
+ChoicesReadable="Ignore Sp Func Def Paren|Add Sp Func Def Paren|Remove Sp Func Def Paren|Force Sp Func Def Paren"
+ValueDefault=ignore
+
+[Sp Func Def Paren Empty]
+Category=1
+Description="<html>Add or remove space between function name and '()' on function definition<br/>without parameters.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_func_def_paren_empty=ignore|sp_func_def_paren_empty=add|sp_func_def_paren_empty=remove|sp_func_def_paren_empty=force|sp_func_def_paren_empty=not_defined
+ChoicesReadable="Ignore Sp Func Def Paren Empty|Add Sp Func Def Paren Empty|Remove Sp Func Def Paren Empty|Force Sp Func Def Paren Empty"
+ValueDefault=ignore
+
+[Sp Inside Fparens]
+Category=1
+Description="<html>Add or remove space inside empty function '()'.<br/>Overrides sp_after_angle unless use_sp_after_angle_always is set to true.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_fparens=ignore|sp_inside_fparens=add|sp_inside_fparens=remove|sp_inside_fparens=force|sp_inside_fparens=not_defined
+ChoicesReadable="Ignore Sp Inside Fparens|Add Sp Inside Fparens|Remove Sp Inside Fparens|Force Sp Inside Fparens"
+ValueDefault=ignore
+
+[Sp Inside Fparen]
+Category=1
+Description="<html>Add or remove space inside function '(' and ')'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_fparen=ignore|sp_inside_fparen=add|sp_inside_fparen=remove|sp_inside_fparen=force|sp_inside_fparen=not_defined
+ChoicesReadable="Ignore Sp Inside Fparen|Add Sp Inside Fparen|Remove Sp Inside Fparen|Force Sp Inside Fparen"
+ValueDefault=ignore
+
+[Sp Inside Tparen]
+Category=1
+Description="<html>Add or remove space inside the first parentheses in a function type, as in<br/>'void (*x)(...)'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_tparen=ignore|sp_inside_tparen=add|sp_inside_tparen=remove|sp_inside_tparen=force|sp_inside_tparen=not_defined
+ChoicesReadable="Ignore Sp Inside Tparen|Add Sp Inside Tparen|Remove Sp Inside Tparen|Force Sp Inside Tparen"
+ValueDefault=ignore
+
+[Sp After Tparen Close]
+Category=1
+Description="<html>Add or remove space between the ')' and '(' in a function type, as in<br/>'void (*x)(...)'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_tparen_close=ignore|sp_after_tparen_close=add|sp_after_tparen_close=remove|sp_after_tparen_close=force|sp_after_tparen_close=not_defined
+ChoicesReadable="Ignore Sp After Tparen Close|Add Sp After Tparen Close|Remove Sp After Tparen Close|Force Sp After Tparen Close"
+ValueDefault=ignore
+
+[Sp Square Fparen]
+Category=1
+Description="<html>Add or remove space between ']' and '(' when part of a function call.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_square_fparen=ignore|sp_square_fparen=add|sp_square_fparen=remove|sp_square_fparen=force|sp_square_fparen=not_defined
+ChoicesReadable="Ignore Sp Square Fparen|Add Sp Square Fparen|Remove Sp Square Fparen|Force Sp Square Fparen"
+ValueDefault=ignore
+
+[Sp Fparen Brace]
+Category=1
+Description="<html>Add or remove space between ')' and '{' of function.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_fparen_brace=ignore|sp_fparen_brace=add|sp_fparen_brace=remove|sp_fparen_brace=force|sp_fparen_brace=not_defined
+ChoicesReadable="Ignore Sp Fparen Brace|Add Sp Fparen Brace|Remove Sp Fparen Brace|Force Sp Fparen Brace"
+ValueDefault=ignore
+
+[Sp Fparen Brace Initializer]
+Category=1
+Description="<html>Add or remove space between ')' and '{' of a function call in object<br/>initialization.<br/><br/>Overrides sp_fparen_brace.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_fparen_brace_initializer=ignore|sp_fparen_brace_initializer=add|sp_fparen_brace_initializer=remove|sp_fparen_brace_initializer=force|sp_fparen_brace_initializer=not_defined
+ChoicesReadable="Ignore Sp Fparen Brace Initializer|Add Sp Fparen Brace Initializer|Remove Sp Fparen Brace Initializer|Force Sp Fparen Brace Initializer"
+ValueDefault=ignore
+
+[Sp Fparen Dbrace]
+Category=1
+Description="<html>(Java) Add or remove space between ')' and '{{' of double brace initializer.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_fparen_dbrace=ignore|sp_fparen_dbrace=add|sp_fparen_dbrace=remove|sp_fparen_dbrace=force|sp_fparen_dbrace=not_defined
+ChoicesReadable="Ignore Sp Fparen Dbrace|Add Sp Fparen Dbrace|Remove Sp Fparen Dbrace|Force Sp Fparen Dbrace"
+ValueDefault=ignore
+
+[Sp Func Call Paren]
+Category=1
+Description="<html>Add or remove space between function name and '(' on function calls.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_func_call_paren=ignore|sp_func_call_paren=add|sp_func_call_paren=remove|sp_func_call_paren=force|sp_func_call_paren=not_defined
+ChoicesReadable="Ignore Sp Func Call Paren|Add Sp Func Call Paren|Remove Sp Func Call Paren|Force Sp Func Call Paren"
+ValueDefault=ignore
+
+[Sp Func Call Paren Empty]
+Category=1
+Description="<html>Add or remove space between function name and '()' on function calls without<br/>parameters. If set to ignore (the default), sp_func_call_paren is used.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_func_call_paren_empty=ignore|sp_func_call_paren_empty=add|sp_func_call_paren_empty=remove|sp_func_call_paren_empty=force|sp_func_call_paren_empty=not_defined
+ChoicesReadable="Ignore Sp Func Call Paren Empty|Add Sp Func Call Paren Empty|Remove Sp Func Call Paren Empty|Force Sp Func Call Paren Empty"
+ValueDefault=ignore
+
+[Sp Func Call User Paren]
+Category=1
+Description="<html>Add or remove space between the user function name and '(' on function<br/>calls. You need to set a keyword to be a user function in the config file,<br/>like:<br/> set func_call_user tr _ i18n</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_func_call_user_paren=ignore|sp_func_call_user_paren=add|sp_func_call_user_paren=remove|sp_func_call_user_paren=force|sp_func_call_user_paren=not_defined
+ChoicesReadable="Ignore Sp Func Call User Paren|Add Sp Func Call User Paren|Remove Sp Func Call User Paren|Force Sp Func Call User Paren"
+ValueDefault=ignore
+
+[Sp Func Call User Inside Fparen]
+Category=1
+Description="<html>Add or remove space inside user function '(' and ')'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_func_call_user_inside_fparen=ignore|sp_func_call_user_inside_fparen=add|sp_func_call_user_inside_fparen=remove|sp_func_call_user_inside_fparen=force|sp_func_call_user_inside_fparen=not_defined
+ChoicesReadable="Ignore Sp Func Call User Inside Fparen|Add Sp Func Call User Inside Fparen|Remove Sp Func Call User Inside Fparen|Force Sp Func Call User Inside Fparen"
+ValueDefault=ignore
+
+[Sp Func Call User Paren Paren]
+Category=1
+Description="<html>Add or remove space between nested parentheses with user functions,<br/>i.e. '((' vs. '( ('.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_func_call_user_paren_paren=ignore|sp_func_call_user_paren_paren=add|sp_func_call_user_paren_paren=remove|sp_func_call_user_paren_paren=force|sp_func_call_user_paren_paren=not_defined
+ChoicesReadable="Ignore Sp Func Call User Paren Paren|Add Sp Func Call User Paren Paren|Remove Sp Func Call User Paren Paren|Force Sp Func Call User Paren Paren"
+ValueDefault=ignore
+
+[Sp Func Class Paren]
+Category=1
+Description="<html>Add or remove space between a constructor/destructor and the open<br/>parenthesis.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_func_class_paren=ignore|sp_func_class_paren=add|sp_func_class_paren=remove|sp_func_class_paren=force|sp_func_class_paren=not_defined
+ChoicesReadable="Ignore Sp Func Class Paren|Add Sp Func Class Paren|Remove Sp Func Class Paren|Force Sp Func Class Paren"
+ValueDefault=ignore
+
+[Sp Func Class Paren Empty]
+Category=1
+Description="<html>Add or remove space between a constructor without parameters or destructor<br/>and '()'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_func_class_paren_empty=ignore|sp_func_class_paren_empty=add|sp_func_class_paren_empty=remove|sp_func_class_paren_empty=force|sp_func_class_paren_empty=not_defined
+ChoicesReadable="Ignore Sp Func Class Paren Empty|Add Sp Func Class Paren Empty|Remove Sp Func Class Paren Empty|Force Sp Func Class Paren Empty"
+ValueDefault=ignore
+
+[Sp Return]
+Category=1
+Description="<html>Add or remove space after 'return'.<br/><br/>Default: force</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_return=ignore|sp_return=add|sp_return=remove|sp_return=force|sp_return=not_defined
+ChoicesReadable="Ignore Sp Return|Add Sp Return|Remove Sp Return|Force Sp Return"
+ValueDefault=force
+
+[Sp Return Paren]
+Category=1
+Description="<html>Add or remove space between 'return' and '('.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_return_paren=ignore|sp_return_paren=add|sp_return_paren=remove|sp_return_paren=force|sp_return_paren=not_defined
+ChoicesReadable="Ignore Sp Return Paren|Add Sp Return Paren|Remove Sp Return Paren|Force Sp Return Paren"
+ValueDefault=ignore
+
+[Sp Return Brace]
+Category=1
+Description="<html>Add or remove space between 'return' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_return_brace=ignore|sp_return_brace=add|sp_return_brace=remove|sp_return_brace=force|sp_return_brace=not_defined
+ChoicesReadable="Ignore Sp Return Brace|Add Sp Return Brace|Remove Sp Return Brace|Force Sp Return Brace"
+ValueDefault=ignore
+
+[Sp Attribute Paren]
+Category=1
+Description="<html>Add or remove space between '__attribute__' and '('.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_attribute_paren=ignore|sp_attribute_paren=add|sp_attribute_paren=remove|sp_attribute_paren=force|sp_attribute_paren=not_defined
+ChoicesReadable="Ignore Sp Attribute Paren|Add Sp Attribute Paren|Remove Sp Attribute Paren|Force Sp Attribute Paren"
+ValueDefault=ignore
+
+[Sp Defined Paren]
+Category=1
+Description="<html>Add or remove space between 'defined' and '(' in '#if defined (FOO)'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_defined_paren=ignore|sp_defined_paren=add|sp_defined_paren=remove|sp_defined_paren=force|sp_defined_paren=not_defined
+ChoicesReadable="Ignore Sp Defined Paren|Add Sp Defined Paren|Remove Sp Defined Paren|Force Sp Defined Paren"
+ValueDefault=ignore
+
+[Sp Throw Paren]
+Category=1
+Description="<html>Add or remove space between 'throw' and '(' in 'throw (something)'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_throw_paren=ignore|sp_throw_paren=add|sp_throw_paren=remove|sp_throw_paren=force|sp_throw_paren=not_defined
+ChoicesReadable="Ignore Sp Throw Paren|Add Sp Throw Paren|Remove Sp Throw Paren|Force Sp Throw Paren"
+ValueDefault=ignore
+
+[Sp After Throw]
+Category=1
+Description="<html>Add or remove space between 'throw' and anything other than '(' as in<br/>'@throw [...];'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_throw=ignore|sp_after_throw=add|sp_after_throw=remove|sp_after_throw=force|sp_after_throw=not_defined
+ChoicesReadable="Ignore Sp After Throw|Add Sp After Throw|Remove Sp After Throw|Force Sp After Throw"
+ValueDefault=ignore
+
+[Sp Catch Paren]
+Category=1
+Description="<html>Add or remove space between 'catch' and '(' in 'catch (something) { }'.<br/>If set to ignore, sp_before_sparen is used.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_catch_paren=ignore|sp_catch_paren=add|sp_catch_paren=remove|sp_catch_paren=force|sp_catch_paren=not_defined
+ChoicesReadable="Ignore Sp Catch Paren|Add Sp Catch Paren|Remove Sp Catch Paren|Force Sp Catch Paren"
+ValueDefault=ignore
+
+[Sp Oc Catch Paren]
+Category=1
+Description="<html>(OC) Add or remove space between '@catch' and '('<br/>in '@catch (something) { }'. If set to ignore, sp_catch_paren is used.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_oc_catch_paren=ignore|sp_oc_catch_paren=add|sp_oc_catch_paren=remove|sp_oc_catch_paren=force|sp_oc_catch_paren=not_defined
+ChoicesReadable="Ignore Sp Oc Catch Paren|Add Sp Oc Catch Paren|Remove Sp Oc Catch Paren|Force Sp Oc Catch Paren"
+ValueDefault=ignore
+
+[Sp Before Oc Proto List]
+Category=1
+Description="<html>(OC) Add or remove space before Objective-C protocol list<br/>as in '@protocol Protocol&lt;here&gt;&lt;Protocol_A&gt;' or '@interface MyClass : NSObject&lt;here&gt;&lt;MyProtocol&gt;'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_oc_proto_list=ignore|sp_before_oc_proto_list=add|sp_before_oc_proto_list=remove|sp_before_oc_proto_list=force|sp_before_oc_proto_list=not_defined
+ChoicesReadable="Ignore Sp Before Oc Proto List|Add Sp Before Oc Proto List|Remove Sp Before Oc Proto List|Force Sp Before Oc Proto List"
+ValueDefault=ignore
+
+[Sp Oc Classname Paren]
+Category=1
+Description="<html>(OC) Add or remove space between class name and '('<br/>in '@interface className(categoryName)&lt;ProtocolName&gt;:BaseClass'</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_oc_classname_paren=ignore|sp_oc_classname_paren=add|sp_oc_classname_paren=remove|sp_oc_classname_paren=force|sp_oc_classname_paren=not_defined
+ChoicesReadable="Ignore Sp Oc Classname Paren|Add Sp Oc Classname Paren|Remove Sp Oc Classname Paren|Force Sp Oc Classname Paren"
+ValueDefault=ignore
+
+[Sp Version Paren]
+Category=1
+Description="<html>(D) Add or remove space between 'version' and '('<br/>in 'version (something) { }'. If set to ignore, sp_before_sparen is used.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_version_paren=ignore|sp_version_paren=add|sp_version_paren=remove|sp_version_paren=force|sp_version_paren=not_defined
+ChoicesReadable="Ignore Sp Version Paren|Add Sp Version Paren|Remove Sp Version Paren|Force Sp Version Paren"
+ValueDefault=ignore
+
+[Sp Scope Paren]
+Category=1
+Description="<html>(D) Add or remove space between 'scope' and '('<br/>in 'scope (something) { }'. If set to ignore, sp_before_sparen is used.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_scope_paren=ignore|sp_scope_paren=add|sp_scope_paren=remove|sp_scope_paren=force|sp_scope_paren=not_defined
+ChoicesReadable="Ignore Sp Scope Paren|Add Sp Scope Paren|Remove Sp Scope Paren|Force Sp Scope Paren"
+ValueDefault=ignore
+
+[Sp Super Paren]
+Category=1
+Description="<html>Add or remove space between 'super' and '(' in 'super (something)'.<br/><br/>Default: remove</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_super_paren=ignore|sp_super_paren=add|sp_super_paren=remove|sp_super_paren=force|sp_super_paren=not_defined
+ChoicesReadable="Ignore Sp Super Paren|Add Sp Super Paren|Remove Sp Super Paren|Force Sp Super Paren"
+ValueDefault=remove
+
+[Sp This Paren]
+Category=1
+Description="<html>Add or remove space between 'this' and '(' in 'this (something)'.<br/><br/>Default: remove</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_this_paren=ignore|sp_this_paren=add|sp_this_paren=remove|sp_this_paren=force|sp_this_paren=not_defined
+ChoicesReadable="Ignore Sp This Paren|Add Sp This Paren|Remove Sp This Paren|Force Sp This Paren"
+ValueDefault=remove
+
+[Sp Macro]
+Category=1
+Description="<html>Add or remove space between a macro name and its definition.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_macro=ignore|sp_macro=add|sp_macro=remove|sp_macro=force|sp_macro=not_defined
+ChoicesReadable="Ignore Sp Macro|Add Sp Macro|Remove Sp Macro|Force Sp Macro"
+ValueDefault=ignore
+
+[Sp Macro Func]
+Category=1
+Description="<html>Add or remove space between a macro function ')' and its definition.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_macro_func=ignore|sp_macro_func=add|sp_macro_func=remove|sp_macro_func=force|sp_macro_func=not_defined
+ChoicesReadable="Ignore Sp Macro Func|Add Sp Macro Func|Remove Sp Macro Func|Force Sp Macro Func"
+ValueDefault=ignore
+
+[Sp Else Brace]
+Category=1
+Description="<html>Add or remove space between 'else' and '{' if on the same line.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_else_brace=ignore|sp_else_brace=add|sp_else_brace=remove|sp_else_brace=force|sp_else_brace=not_defined
+ChoicesReadable="Ignore Sp Else Brace|Add Sp Else Brace|Remove Sp Else Brace|Force Sp Else Brace"
+ValueDefault=ignore
+
+[Sp Brace Else]
+Category=1
+Description="<html>Add or remove space between '}' and 'else' if on the same line.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_brace_else=ignore|sp_brace_else=add|sp_brace_else=remove|sp_brace_else=force|sp_brace_else=not_defined
+ChoicesReadable="Ignore Sp Brace Else|Add Sp Brace Else|Remove Sp Brace Else|Force Sp Brace Else"
+ValueDefault=ignore
+
+[Sp Brace Typedef]
+Category=1
+Description="<html>Add or remove space between '}' and the name of a typedef on the same line.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_brace_typedef=ignore|sp_brace_typedef=add|sp_brace_typedef=remove|sp_brace_typedef=force|sp_brace_typedef=not_defined
+ChoicesReadable="Ignore Sp Brace Typedef|Add Sp Brace Typedef|Remove Sp Brace Typedef|Force Sp Brace Typedef"
+ValueDefault=ignore
+
+[Sp Catch Brace]
+Category=1
+Description="<html>Add or remove space before the '{' of a 'catch' statement, if the '{' and<br/>'catch' are on the same line, as in 'catch (decl) &lt;here&gt; {'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_catch_brace=ignore|sp_catch_brace=add|sp_catch_brace=remove|sp_catch_brace=force|sp_catch_brace=not_defined
+ChoicesReadable="Ignore Sp Catch Brace|Add Sp Catch Brace|Remove Sp Catch Brace|Force Sp Catch Brace"
+ValueDefault=ignore
+
+[Sp Oc Catch Brace]
+Category=1
+Description="<html>(OC) Add or remove space before the '{' of a '@catch' statement, if the '{'<br/>and '@catch' are on the same line, as in '@catch (decl) &lt;here&gt; {'.<br/>If set to ignore, sp_catch_brace is used.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_oc_catch_brace=ignore|sp_oc_catch_brace=add|sp_oc_catch_brace=remove|sp_oc_catch_brace=force|sp_oc_catch_brace=not_defined
+ChoicesReadable="Ignore Sp Oc Catch Brace|Add Sp Oc Catch Brace|Remove Sp Oc Catch Brace|Force Sp Oc Catch Brace"
+ValueDefault=ignore
+
+[Sp Brace Catch]
+Category=1
+Description="<html>Add or remove space between '}' and 'catch' if on the same line.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_brace_catch=ignore|sp_brace_catch=add|sp_brace_catch=remove|sp_brace_catch=force|sp_brace_catch=not_defined
+ChoicesReadable="Ignore Sp Brace Catch|Add Sp Brace Catch|Remove Sp Brace Catch|Force Sp Brace Catch"
+ValueDefault=ignore
+
+[Sp Oc Brace Catch]
+Category=1
+Description="<html>(OC) Add or remove space between '}' and '@catch' if on the same line.<br/>If set to ignore, sp_brace_catch is used.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_oc_brace_catch=ignore|sp_oc_brace_catch=add|sp_oc_brace_catch=remove|sp_oc_brace_catch=force|sp_oc_brace_catch=not_defined
+ChoicesReadable="Ignore Sp Oc Brace Catch|Add Sp Oc Brace Catch|Remove Sp Oc Brace Catch|Force Sp Oc Brace Catch"
+ValueDefault=ignore
+
+[Sp Finally Brace]
+Category=1
+Description="<html>Add or remove space between 'finally' and '{' if on the same line.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_finally_brace=ignore|sp_finally_brace=add|sp_finally_brace=remove|sp_finally_brace=force|sp_finally_brace=not_defined
+ChoicesReadable="Ignore Sp Finally Brace|Add Sp Finally Brace|Remove Sp Finally Brace|Force Sp Finally Brace"
+ValueDefault=ignore
+
+[Sp Brace Finally]
+Category=1
+Description="<html>Add or remove space between '}' and 'finally' if on the same line.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_brace_finally=ignore|sp_brace_finally=add|sp_brace_finally=remove|sp_brace_finally=force|sp_brace_finally=not_defined
+ChoicesReadable="Ignore Sp Brace Finally|Add Sp Brace Finally|Remove Sp Brace Finally|Force Sp Brace Finally"
+ValueDefault=ignore
+
+[Sp Try Brace]
+Category=1
+Description="<html>Add or remove space between 'try' and '{' if on the same line.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_try_brace=ignore|sp_try_brace=add|sp_try_brace=remove|sp_try_brace=force|sp_try_brace=not_defined
+ChoicesReadable="Ignore Sp Try Brace|Add Sp Try Brace|Remove Sp Try Brace|Force Sp Try Brace"
+ValueDefault=ignore
+
+[Sp Getset Brace]
+Category=1
+Description="<html>Add or remove space between get/set and '{' if on the same line.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_getset_brace=ignore|sp_getset_brace=add|sp_getset_brace=remove|sp_getset_brace=force|sp_getset_brace=not_defined
+ChoicesReadable="Ignore Sp Getset Brace|Add Sp Getset Brace|Remove Sp Getset Brace|Force Sp Getset Brace"
+ValueDefault=ignore
+
+[Sp Word Brace Init Lst]
+Category=1
+Description="<html>Add or remove space between a variable and '{' for C++ uniform<br/>initialization.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_word_brace_init_lst=ignore|sp_word_brace_init_lst=add|sp_word_brace_init_lst=remove|sp_word_brace_init_lst=force|sp_word_brace_init_lst=not_defined
+ChoicesReadable="Ignore Sp Word Brace Init Lst|Add Sp Word Brace Init Lst|Remove Sp Word Brace Init Lst|Force Sp Word Brace Init Lst"
+ValueDefault=ignore
+
+[Sp Word Brace Ns]
+Category=1
+Description="<html>Add or remove space between a variable and '{' for a namespace.<br/><br/>Default: add</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_word_brace_ns=ignore|sp_word_brace_ns=add|sp_word_brace_ns=remove|sp_word_brace_ns=force|sp_word_brace_ns=not_defined
+ChoicesReadable="Ignore Sp Word Brace Ns|Add Sp Word Brace Ns|Remove Sp Word Brace Ns|Force Sp Word Brace Ns"
+ValueDefault=add
+
+[Sp Before Dc]
+Category=1
+Description="<html>Add or remove space before the '::' operator.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_dc=ignore|sp_before_dc=add|sp_before_dc=remove|sp_before_dc=force|sp_before_dc=not_defined
+ChoicesReadable="Ignore Sp Before Dc|Add Sp Before Dc|Remove Sp Before Dc|Force Sp Before Dc"
+ValueDefault=ignore
+
+[Sp After Dc]
+Category=1
+Description="<html>Add or remove space after the '::' operator.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_dc=ignore|sp_after_dc=add|sp_after_dc=remove|sp_after_dc=force|sp_after_dc=not_defined
+ChoicesReadable="Ignore Sp After Dc|Add Sp After Dc|Remove Sp After Dc|Force Sp After Dc"
+ValueDefault=ignore
+
+[Sp D Array Colon]
+Category=1
+Description="<html>(D) Add or remove around the D named array initializer ':' operator.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_d_array_colon=ignore|sp_d_array_colon=add|sp_d_array_colon=remove|sp_d_array_colon=force|sp_d_array_colon=not_defined
+ChoicesReadable="Ignore Sp D Array Colon|Add Sp D Array Colon|Remove Sp D Array Colon|Force Sp D Array Colon"
+ValueDefault=ignore
+
+[Sp Not]
+Category=1
+Description="<html>Add or remove space after the '!' (not) unary operator.<br/><br/>Default: remove</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_not=ignore|sp_not=add|sp_not=remove|sp_not=force|sp_not=not_defined
+ChoicesReadable="Ignore Sp Not|Add Sp Not|Remove Sp Not|Force Sp Not"
+ValueDefault=remove
+
+[Sp Not Not]
+Category=1
+Description="<html>Add or remove space between two '!' (not) unary operators.<br/>If set to ignore, sp_not will be used.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_not_not=ignore|sp_not_not=add|sp_not_not=remove|sp_not_not=force|sp_not_not=not_defined
+ChoicesReadable="Ignore Sp Not Not|Add Sp Not Not|Remove Sp Not Not|Force Sp Not Not"
+ValueDefault=ignore
+
+[Sp Inv]
+Category=1
+Description="<html>Add or remove space after the '~' (invert) unary operator.<br/><br/>Default: remove</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inv=ignore|sp_inv=add|sp_inv=remove|sp_inv=force|sp_inv=not_defined
+ChoicesReadable="Ignore Sp Inv|Add Sp Inv|Remove Sp Inv|Force Sp Inv"
+ValueDefault=remove
+
+[Sp Addr]
+Category=1
+Description="<html>Add or remove space after the '&amp;' (address-of) unary operator. This does not<br/>affect the spacing after a '&amp;' that is part of a type.<br/><br/>Default: remove</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_addr=ignore|sp_addr=add|sp_addr=remove|sp_addr=force|sp_addr=not_defined
+ChoicesReadable="Ignore Sp Addr|Add Sp Addr|Remove Sp Addr|Force Sp Addr"
+ValueDefault=remove
+
+[Sp Member]
+Category=1
+Description="<html>Add or remove space around the '.' or '-&gt;' operators.<br/><br/>Default: remove</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_member=ignore|sp_member=add|sp_member=remove|sp_member=force|sp_member=not_defined
+ChoicesReadable="Ignore Sp Member|Add Sp Member|Remove Sp Member|Force Sp Member"
+ValueDefault=remove
+
+[Sp Deref]
+Category=1
+Description="<html>Add or remove space after the '*' (dereference) unary operator. This does<br/>not affect the spacing after a '*' that is part of a type.<br/><br/>Default: remove</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_deref=ignore|sp_deref=add|sp_deref=remove|sp_deref=force|sp_deref=not_defined
+ChoicesReadable="Ignore Sp Deref|Add Sp Deref|Remove Sp Deref|Force Sp Deref"
+ValueDefault=remove
+
+[Sp Sign]
+Category=1
+Description="<html>Add or remove space after '+' or '-', as in 'x = -5' or 'y = +7'.<br/><br/>Default: remove</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_sign=ignore|sp_sign=add|sp_sign=remove|sp_sign=force|sp_sign=not_defined
+ChoicesReadable="Ignore Sp Sign|Add Sp Sign|Remove Sp Sign|Force Sp Sign"
+ValueDefault=remove
+
+[Sp Incdec]
+Category=1
+Description="<html>Add or remove space between '++' and '--' the word to which it is being<br/>applied, as in '(--x)' or 'y++;'.<br/><br/>Default: remove</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_incdec=ignore|sp_incdec=add|sp_incdec=remove|sp_incdec=force|sp_incdec=not_defined
+ChoicesReadable="Ignore Sp Incdec|Add Sp Incdec|Remove Sp Incdec|Force Sp Incdec"
+ValueDefault=remove
+
+[Sp Before Nl Cont]
+Category=1
+Description="<html>Add or remove space before a backslash-newline at the end of a line.<br/><br/>Default: add</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_nl_cont=ignore|sp_before_nl_cont=add|sp_before_nl_cont=remove|sp_before_nl_cont=force|sp_before_nl_cont=not_defined
+ChoicesReadable="Ignore Sp Before Nl Cont|Add Sp Before Nl Cont|Remove Sp Before Nl Cont|Force Sp Before Nl Cont"
+ValueDefault=add
+
+[Sp After Oc Scope]
+Category=1
+Description="<html>(OC) Add or remove space after the scope '+' or '-', as in '-(void) foo;'<br/>or '+(int) bar;'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_oc_scope=ignore|sp_after_oc_scope=add|sp_after_oc_scope=remove|sp_after_oc_scope=force|sp_after_oc_scope=not_defined
+ChoicesReadable="Ignore Sp After Oc Scope|Add Sp After Oc Scope|Remove Sp After Oc Scope|Force Sp After Oc Scope"
+ValueDefault=ignore
+
+[Sp After Oc Colon]
+Category=1
+Description="<html>(OC) Add or remove space after the colon in message specs,<br/>i.e. '-(int) f:(int) x;' vs. '-(int) f: (int) x;'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_oc_colon=ignore|sp_after_oc_colon=add|sp_after_oc_colon=remove|sp_after_oc_colon=force|sp_after_oc_colon=not_defined
+ChoicesReadable="Ignore Sp After Oc Colon|Add Sp After Oc Colon|Remove Sp After Oc Colon|Force Sp After Oc Colon"
+ValueDefault=ignore
+
+[Sp Before Oc Colon]
+Category=1
+Description="<html>(OC) Add or remove space before the colon in message specs,<br/>i.e. '-(int) f: (int) x;' vs. '-(int) f : (int) x;'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_oc_colon=ignore|sp_before_oc_colon=add|sp_before_oc_colon=remove|sp_before_oc_colon=force|sp_before_oc_colon=not_defined
+ChoicesReadable="Ignore Sp Before Oc Colon|Add Sp Before Oc Colon|Remove Sp Before Oc Colon|Force Sp Before Oc Colon"
+ValueDefault=ignore
+
+[Sp After Oc Dict Colon]
+Category=1
+Description="<html>(OC) Add or remove space after the colon in immutable dictionary expression<br/>'NSDictionary *test = @{@"foo" :@"bar"};'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_oc_dict_colon=ignore|sp_after_oc_dict_colon=add|sp_after_oc_dict_colon=remove|sp_after_oc_dict_colon=force|sp_after_oc_dict_colon=not_defined
+ChoicesReadable="Ignore Sp After Oc Dict Colon|Add Sp After Oc Dict Colon|Remove Sp After Oc Dict Colon|Force Sp After Oc Dict Colon"
+ValueDefault=ignore
+
+[Sp Before Oc Dict Colon]
+Category=1
+Description="<html>(OC) Add or remove space before the colon in immutable dictionary expression<br/>'NSDictionary *test = @{@"foo" :@"bar"};'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_oc_dict_colon=ignore|sp_before_oc_dict_colon=add|sp_before_oc_dict_colon=remove|sp_before_oc_dict_colon=force|sp_before_oc_dict_colon=not_defined
+ChoicesReadable="Ignore Sp Before Oc Dict Colon|Add Sp Before Oc Dict Colon|Remove Sp Before Oc Dict Colon|Force Sp Before Oc Dict Colon"
+ValueDefault=ignore
+
+[Sp After Send Oc Colon]
+Category=1
+Description="<html>(OC) Add or remove space after the colon in message specs,<br/>i.e. '[object setValue:1];' vs. '[object setValue: 1];'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_send_oc_colon=ignore|sp_after_send_oc_colon=add|sp_after_send_oc_colon=remove|sp_after_send_oc_colon=force|sp_after_send_oc_colon=not_defined
+ChoicesReadable="Ignore Sp After Send Oc Colon|Add Sp After Send Oc Colon|Remove Sp After Send Oc Colon|Force Sp After Send Oc Colon"
+ValueDefault=ignore
+
+[Sp Before Send Oc Colon]
+Category=1
+Description="<html>(OC) Add or remove space before the colon in message specs,<br/>i.e. '[object setValue:1];' vs. '[object setValue :1];'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_send_oc_colon=ignore|sp_before_send_oc_colon=add|sp_before_send_oc_colon=remove|sp_before_send_oc_colon=force|sp_before_send_oc_colon=not_defined
+ChoicesReadable="Ignore Sp Before Send Oc Colon|Add Sp Before Send Oc Colon|Remove Sp Before Send Oc Colon|Force Sp Before Send Oc Colon"
+ValueDefault=ignore
+
+[Sp After Oc Type]
+Category=1
+Description="<html>(OC) Add or remove space after the (type) in message specs,<br/>i.e. '-(int)f: (int) x;' vs. '-(int)f: (int)x;'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_oc_type=ignore|sp_after_oc_type=add|sp_after_oc_type=remove|sp_after_oc_type=force|sp_after_oc_type=not_defined
+ChoicesReadable="Ignore Sp After Oc Type|Add Sp After Oc Type|Remove Sp After Oc Type|Force Sp After Oc Type"
+ValueDefault=ignore
+
+[Sp After Oc Return Type]
+Category=1
+Description="<html>(OC) Add or remove space after the first (type) in message specs,<br/>i.e. '-(int) f:(int)x;' vs. '-(int)f:(int)x;'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_oc_return_type=ignore|sp_after_oc_return_type=add|sp_after_oc_return_type=remove|sp_after_oc_return_type=force|sp_after_oc_return_type=not_defined
+ChoicesReadable="Ignore Sp After Oc Return Type|Add Sp After Oc Return Type|Remove Sp After Oc Return Type|Force Sp After Oc Return Type"
+ValueDefault=ignore
+
+[Sp After Oc At Sel]
+Category=1
+Description="<html>(OC) Add or remove space between '@selector' and '(',<br/>i.e. '@selector(msgName)' vs. '@selector (msgName)'.<br/>Also applies to '@protocol()' constructs.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_oc_at_sel=ignore|sp_after_oc_at_sel=add|sp_after_oc_at_sel=remove|sp_after_oc_at_sel=force|sp_after_oc_at_sel=not_defined
+ChoicesReadable="Ignore Sp After Oc At Sel|Add Sp After Oc At Sel|Remove Sp After Oc At Sel|Force Sp After Oc At Sel"
+ValueDefault=ignore
+
+[Sp After Oc At Sel Parens]
+Category=1
+Description="<html>(OC) Add or remove space between '@selector(x)' and the following word,<br/>i.e. '@selector(foo) a:' vs. '@selector(foo)a:'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_oc_at_sel_parens=ignore|sp_after_oc_at_sel_parens=add|sp_after_oc_at_sel_parens=remove|sp_after_oc_at_sel_parens=force|sp_after_oc_at_sel_parens=not_defined
+ChoicesReadable="Ignore Sp After Oc At Sel Parens|Add Sp After Oc At Sel Parens|Remove Sp After Oc At Sel Parens|Force Sp After Oc At Sel Parens"
+ValueDefault=ignore
+
+[Sp Inside Oc At Sel Parens]
+Category=1
+Description="<html>(OC) Add or remove space inside '@selector' parentheses,<br/>i.e. '@selector(foo)' vs. '@selector( foo )'.<br/>Also applies to '@protocol()' constructs.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_oc_at_sel_parens=ignore|sp_inside_oc_at_sel_parens=add|sp_inside_oc_at_sel_parens=remove|sp_inside_oc_at_sel_parens=force|sp_inside_oc_at_sel_parens=not_defined
+ChoicesReadable="Ignore Sp Inside Oc At Sel Parens|Add Sp Inside Oc At Sel Parens|Remove Sp Inside Oc At Sel Parens|Force Sp Inside Oc At Sel Parens"
+ValueDefault=ignore
+
+[Sp Before Oc Block Caret]
+Category=1
+Description="<html>(OC) Add or remove space before a block pointer caret,<br/>i.e. '^int (int arg){...}' vs. ' ^int (int arg){...}'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_oc_block_caret=ignore|sp_before_oc_block_caret=add|sp_before_oc_block_caret=remove|sp_before_oc_block_caret=force|sp_before_oc_block_caret=not_defined
+ChoicesReadable="Ignore Sp Before Oc Block Caret|Add Sp Before Oc Block Caret|Remove Sp Before Oc Block Caret|Force Sp Before Oc Block Caret"
+ValueDefault=ignore
+
+[Sp After Oc Block Caret]
+Category=1
+Description="<html>(OC) Add or remove space after a block pointer caret,<br/>i.e. '^int (int arg){...}' vs. '^ int (int arg){...}'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_oc_block_caret=ignore|sp_after_oc_block_caret=add|sp_after_oc_block_caret=remove|sp_after_oc_block_caret=force|sp_after_oc_block_caret=not_defined
+ChoicesReadable="Ignore Sp After Oc Block Caret|Add Sp After Oc Block Caret|Remove Sp After Oc Block Caret|Force Sp After Oc Block Caret"
+ValueDefault=ignore
+
+[Sp After Oc Msg Receiver]
+Category=1
+Description="<html>(OC) Add or remove space between the receiver and selector in a message,<br/>as in '[receiver selector ...]'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_oc_msg_receiver=ignore|sp_after_oc_msg_receiver=add|sp_after_oc_msg_receiver=remove|sp_after_oc_msg_receiver=force|sp_after_oc_msg_receiver=not_defined
+ChoicesReadable="Ignore Sp After Oc Msg Receiver|Add Sp After Oc Msg Receiver|Remove Sp After Oc Msg Receiver|Force Sp After Oc Msg Receiver"
+ValueDefault=ignore
+
+[Sp After Oc Property]
+Category=1
+Description="<html>(OC) Add or remove space after '@property'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_oc_property=ignore|sp_after_oc_property=add|sp_after_oc_property=remove|sp_after_oc_property=force|sp_after_oc_property=not_defined
+ChoicesReadable="Ignore Sp After Oc Property|Add Sp After Oc Property|Remove Sp After Oc Property|Force Sp After Oc Property"
+ValueDefault=ignore
+
+[Sp After Oc Synchronized]
+Category=1
+Description="<html>(OC) Add or remove space between '@synchronized' and the open parenthesis,<br/>i.e. '@synchronized(foo)' vs. '@synchronized (foo)'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_oc_synchronized=ignore|sp_after_oc_synchronized=add|sp_after_oc_synchronized=remove|sp_after_oc_synchronized=force|sp_after_oc_synchronized=not_defined
+ChoicesReadable="Ignore Sp After Oc Synchronized|Add Sp After Oc Synchronized|Remove Sp After Oc Synchronized|Force Sp After Oc Synchronized"
+ValueDefault=ignore
+
+[Sp Cond Colon]
+Category=1
+Description="<html>Add or remove space around the ':' in 'b ? t : f'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_cond_colon=ignore|sp_cond_colon=add|sp_cond_colon=remove|sp_cond_colon=force|sp_cond_colon=not_defined
+ChoicesReadable="Ignore Sp Cond Colon|Add Sp Cond Colon|Remove Sp Cond Colon|Force Sp Cond Colon"
+ValueDefault=ignore
+
+[Sp Cond Colon Before]
+Category=1
+Description="<html>Add or remove space before the ':' in 'b ? t : f'.<br/><br/>Overrides sp_cond_colon.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_cond_colon_before=ignore|sp_cond_colon_before=add|sp_cond_colon_before=remove|sp_cond_colon_before=force|sp_cond_colon_before=not_defined
+ChoicesReadable="Ignore Sp Cond Colon Before|Add Sp Cond Colon Before|Remove Sp Cond Colon Before|Force Sp Cond Colon Before"
+ValueDefault=ignore
+
+[Sp Cond Colon After]
+Category=1
+Description="<html>Add or remove space after the ':' in 'b ? t : f'.<br/><br/>Overrides sp_cond_colon.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_cond_colon_after=ignore|sp_cond_colon_after=add|sp_cond_colon_after=remove|sp_cond_colon_after=force|sp_cond_colon_after=not_defined
+ChoicesReadable="Ignore Sp Cond Colon After|Add Sp Cond Colon After|Remove Sp Cond Colon After|Force Sp Cond Colon After"
+ValueDefault=ignore
+
+[Sp Cond Question]
+Category=1
+Description="<html>Add or remove space around the '?' in 'b ? t : f'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_cond_question=ignore|sp_cond_question=add|sp_cond_question=remove|sp_cond_question=force|sp_cond_question=not_defined
+ChoicesReadable="Ignore Sp Cond Question|Add Sp Cond Question|Remove Sp Cond Question|Force Sp Cond Question"
+ValueDefault=ignore
+
+[Sp Cond Question Before]
+Category=1
+Description="<html>Add or remove space before the '?' in 'b ? t : f'.<br/><br/>Overrides sp_cond_question.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_cond_question_before=ignore|sp_cond_question_before=add|sp_cond_question_before=remove|sp_cond_question_before=force|sp_cond_question_before=not_defined
+ChoicesReadable="Ignore Sp Cond Question Before|Add Sp Cond Question Before|Remove Sp Cond Question Before|Force Sp Cond Question Before"
+ValueDefault=ignore
+
+[Sp Cond Question After]
+Category=1
+Description="<html>Add or remove space after the '?' in 'b ? t : f'.<br/><br/>Overrides sp_cond_question.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_cond_question_after=ignore|sp_cond_question_after=add|sp_cond_question_after=remove|sp_cond_question_after=force|sp_cond_question_after=not_defined
+ChoicesReadable="Ignore Sp Cond Question After|Add Sp Cond Question After|Remove Sp Cond Question After|Force Sp Cond Question After"
+ValueDefault=ignore
+
+[Sp Cond Ternary Short]
+Category=1
+Description="<html>In the abbreviated ternary form '(a ?: b)', add or remove space between '?'<br/>and ':'.<br/><br/>Overrides all other sp_cond_* options.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_cond_ternary_short=ignore|sp_cond_ternary_short=add|sp_cond_ternary_short=remove|sp_cond_ternary_short=force|sp_cond_ternary_short=not_defined
+ChoicesReadable="Ignore Sp Cond Ternary Short|Add Sp Cond Ternary Short|Remove Sp Cond Ternary Short|Force Sp Cond Ternary Short"
+ValueDefault=ignore
+
+[Sp Case Label]
+Category=1
+Description="<html>Fix the spacing between 'case' and the label. Only 'ignore' and 'force' make<br/>sense here.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_case_label=ignore|sp_case_label=add|sp_case_label=remove|sp_case_label=force|sp_case_label=not_defined
+ChoicesReadable="Ignore Sp Case Label|Add Sp Case Label|Remove Sp Case Label|Force Sp Case Label"
+ValueDefault=ignore
+
+[Sp Range]
+Category=1
+Description="<html>(D) Add or remove space around the D '..' operator.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_range=ignore|sp_range=add|sp_range=remove|sp_range=force|sp_range=not_defined
+ChoicesReadable="Ignore Sp Range|Add Sp Range|Remove Sp Range|Force Sp Range"
+ValueDefault=ignore
+
+[Sp After For Colon]
+Category=1
+Description="<html>Add or remove space after ':' in a Java/C++11 range-based 'for',<br/>as in 'for (Type var : &lt;here&gt; expr)'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_for_colon=ignore|sp_after_for_colon=add|sp_after_for_colon=remove|sp_after_for_colon=force|sp_after_for_colon=not_defined
+ChoicesReadable="Ignore Sp After For Colon|Add Sp After For Colon|Remove Sp After For Colon|Force Sp After For Colon"
+ValueDefault=ignore
+
+[Sp Before For Colon]
+Category=1
+Description="<html>Add or remove space before ':' in a Java/C++11 range-based 'for',<br/>as in 'for (Type var &lt;here&gt; : expr)'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_for_colon=ignore|sp_before_for_colon=add|sp_before_for_colon=remove|sp_before_for_colon=force|sp_before_for_colon=not_defined
+ChoicesReadable="Ignore Sp Before For Colon|Add Sp Before For Colon|Remove Sp Before For Colon|Force Sp Before For Colon"
+ValueDefault=ignore
+
+[Sp Extern Paren]
+Category=1
+Description="<html>(D) Add or remove space between 'extern' and '(' as in 'extern &lt;here&gt; (C)'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_extern_paren=ignore|sp_extern_paren=add|sp_extern_paren=remove|sp_extern_paren=force|sp_extern_paren=not_defined
+ChoicesReadable="Ignore Sp Extern Paren|Add Sp Extern Paren|Remove Sp Extern Paren|Force Sp Extern Paren"
+ValueDefault=ignore
+
+[Sp Cmt Cpp Start]
+Category=1
+Description="<html>Add or remove space after the opening of a C++ comment, as in '// &lt;here&gt; A'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_cmt_cpp_start=ignore|sp_cmt_cpp_start=add|sp_cmt_cpp_start=remove|sp_cmt_cpp_start=force|sp_cmt_cpp_start=not_defined
+ChoicesReadable="Ignore Sp Cmt Cpp Start|Add Sp Cmt Cpp Start|Remove Sp Cmt Cpp Start|Force Sp Cmt Cpp Start"
+ValueDefault=ignore
+
+[Sp Cmt Cpp Region]
+Category=1
+Description="<html>Add or remove space in a C++ region marker comment, as in '// &lt;here&gt; BEGIN'.<br/>A region marker is defined as a comment which is not preceded by other text<br/>(i.e. the comment is the first non-whitespace on the line), and which starts<br/>with either 'BEGIN' or 'END'.<br/><br/>Overrides sp_cmt_cpp_start.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_cmt_cpp_region=ignore|sp_cmt_cpp_region=add|sp_cmt_cpp_region=remove|sp_cmt_cpp_region=force|sp_cmt_cpp_region=not_defined
+ChoicesReadable="Ignore Sp Cmt Cpp Region|Add Sp Cmt Cpp Region|Remove Sp Cmt Cpp Region|Force Sp Cmt Cpp Region"
+ValueDefault=ignore
+
+[Sp Cmt Cpp Doxygen]
+Category=1
+Description="<html>If true, space added with sp_cmt_cpp_start will be added after Doxygen<br/>sequences like '///', '///&lt;', '//!' and '//!&lt;'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=sp_cmt_cpp_doxygen=true|sp_cmt_cpp_doxygen=false
+ValueDefault=false
+
+[Sp Cmt Cpp Qttr]
+Category=1
+Description="<html>If true, space added with sp_cmt_cpp_start will be added after Qt translator<br/>or meta-data comments like '//:', '//=', and '//~'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=sp_cmt_cpp_qttr=true|sp_cmt_cpp_qttr=false
+ValueDefault=false
+
+[Sp Endif Cmt]
+Category=1
+Description="<html>Add or remove space between #else or #endif and a trailing comment.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_endif_cmt=ignore|sp_endif_cmt=add|sp_endif_cmt=remove|sp_endif_cmt=force|sp_endif_cmt=not_defined
+ChoicesReadable="Ignore Sp Endif Cmt|Add Sp Endif Cmt|Remove Sp Endif Cmt|Force Sp Endif Cmt"
+ValueDefault=ignore
+
+[Sp After New]
+Category=1
+Description="<html>Add or remove space after 'new', 'delete' and 'delete[]'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_new=ignore|sp_after_new=add|sp_after_new=remove|sp_after_new=force|sp_after_new=not_defined
+ChoicesReadable="Ignore Sp After New|Add Sp After New|Remove Sp After New|Force Sp After New"
+ValueDefault=ignore
+
+[Sp Between New Paren]
+Category=1
+Description="<html>Add or remove space between 'new' and '(' in 'new()'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_between_new_paren=ignore|sp_between_new_paren=add|sp_between_new_paren=remove|sp_between_new_paren=force|sp_between_new_paren=not_defined
+ChoicesReadable="Ignore Sp Between New Paren|Add Sp Between New Paren|Remove Sp Between New Paren|Force Sp Between New Paren"
+ValueDefault=ignore
+
+[Sp After Newop Paren]
+Category=1
+Description="<html>Add or remove space between ')' and type in 'new(foo) BAR'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_newop_paren=ignore|sp_after_newop_paren=add|sp_after_newop_paren=remove|sp_after_newop_paren=force|sp_after_newop_paren=not_defined
+ChoicesReadable="Ignore Sp After Newop Paren|Add Sp After Newop Paren|Remove Sp After Newop Paren|Force Sp After Newop Paren"
+ValueDefault=ignore
+
+[Sp Inside Newop Paren]
+Category=1
+Description="<html>Add or remove space inside parenthesis of the new operator<br/>as in 'new(foo) BAR'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_newop_paren=ignore|sp_inside_newop_paren=add|sp_inside_newop_paren=remove|sp_inside_newop_paren=force|sp_inside_newop_paren=not_defined
+ChoicesReadable="Ignore Sp Inside Newop Paren|Add Sp Inside Newop Paren|Remove Sp Inside Newop Paren|Force Sp Inside Newop Paren"
+ValueDefault=ignore
+
+[Sp Inside Newop Paren Open]
+Category=1
+Description="<html>Add or remove space after the open parenthesis of the new operator,<br/>as in 'new(foo) BAR'.<br/><br/>Overrides sp_inside_newop_paren.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_newop_paren_open=ignore|sp_inside_newop_paren_open=add|sp_inside_newop_paren_open=remove|sp_inside_newop_paren_open=force|sp_inside_newop_paren_open=not_defined
+ChoicesReadable="Ignore Sp Inside Newop Paren Open|Add Sp Inside Newop Paren Open|Remove Sp Inside Newop Paren Open|Force Sp Inside Newop Paren Open"
+ValueDefault=ignore
+
+[Sp Inside Newop Paren Close]
+Category=1
+Description="<html>Add or remove space before the close parenthesis of the new operator,<br/>as in 'new(foo) BAR'.<br/><br/>Overrides sp_inside_newop_paren.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_newop_paren_close=ignore|sp_inside_newop_paren_close=add|sp_inside_newop_paren_close=remove|sp_inside_newop_paren_close=force|sp_inside_newop_paren_close=not_defined
+ChoicesReadable="Ignore Sp Inside Newop Paren Close|Add Sp Inside Newop Paren Close|Remove Sp Inside Newop Paren Close|Force Sp Inside Newop Paren Close"
+ValueDefault=ignore
+
+[Sp Before Tr Cmt]
+Category=1
+Description="<html>Add or remove space before a trailing comment.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_tr_cmt=ignore|sp_before_tr_cmt=add|sp_before_tr_cmt=remove|sp_before_tr_cmt=force|sp_before_tr_cmt=not_defined
+ChoicesReadable="Ignore Sp Before Tr Cmt|Add Sp Before Tr Cmt|Remove Sp Before Tr Cmt|Force Sp Before Tr Cmt"
+ValueDefault=ignore
+
+[Sp Num Before Tr Cmt]
+Category=1
+Description="<html>Number of spaces before a trailing comment.</html>"
+Enabled=false
+EditorType=numeric
+CallName="sp_num_before_tr_cmt="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Sp Before Emb Cmt]
+Category=1
+Description="<html>Add or remove space before an embedded comment.<br/><br/>Default: force</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_emb_cmt=ignore|sp_before_emb_cmt=add|sp_before_emb_cmt=remove|sp_before_emb_cmt=force|sp_before_emb_cmt=not_defined
+ChoicesReadable="Ignore Sp Before Emb Cmt|Add Sp Before Emb Cmt|Remove Sp Before Emb Cmt|Force Sp Before Emb Cmt"
+ValueDefault=force
+
+[Sp Num Before Emb Cmt]
+Category=1
+Description="<html>Number of spaces before an embedded comment.<br/><br/>Default: 1</html>"
+Enabled=false
+EditorType=numeric
+CallName="sp_num_before_emb_cmt="
+MinVal=0
+MaxVal=16
+ValueDefault=1
+
+[Sp After Emb Cmt]
+Category=1
+Description="<html>Add or remove space after an embedded comment.<br/><br/>Default: force</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_emb_cmt=ignore|sp_after_emb_cmt=add|sp_after_emb_cmt=remove|sp_after_emb_cmt=force|sp_after_emb_cmt=not_defined
+ChoicesReadable="Ignore Sp After Emb Cmt|Add Sp After Emb Cmt|Remove Sp After Emb Cmt|Force Sp After Emb Cmt"
+ValueDefault=force
+
+[Sp Num After Emb Cmt]
+Category=1
+Description="<html>Number of spaces after an embedded comment.<br/><br/>Default: 1</html>"
+Enabled=false
+EditorType=numeric
+CallName="sp_num_after_emb_cmt="
+MinVal=0
+MaxVal=16
+ValueDefault=1
+
+[Sp Annotation Paren]
+Category=1
+Description="<html>(Java) Add or remove space between an annotation and the open parenthesis.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_annotation_paren=ignore|sp_annotation_paren=add|sp_annotation_paren=remove|sp_annotation_paren=force|sp_annotation_paren=not_defined
+ChoicesReadable="Ignore Sp Annotation Paren|Add Sp Annotation Paren|Remove Sp Annotation Paren|Force Sp Annotation Paren"
+ValueDefault=ignore
+
+[Sp Skip Vbrace Tokens]
+Category=1
+Description="<html>If true, vbrace tokens are dropped to the previous token and skipped.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=sp_skip_vbrace_tokens=true|sp_skip_vbrace_tokens=false
+ValueDefault=false
+
+[Sp After Noexcept]
+Category=1
+Description="<html>Add or remove space after 'noexcept'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_noexcept=ignore|sp_after_noexcept=add|sp_after_noexcept=remove|sp_after_noexcept=force|sp_after_noexcept=not_defined
+ChoicesReadable="Ignore Sp After Noexcept|Add Sp After Noexcept|Remove Sp After Noexcept|Force Sp After Noexcept"
+ValueDefault=ignore
+
+[Sp Vala After Translation]
+Category=1
+Description="<html>Add or remove space after '_'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_vala_after_translation=ignore|sp_vala_after_translation=add|sp_vala_after_translation=remove|sp_vala_after_translation=force|sp_vala_after_translation=not_defined
+ChoicesReadable="Ignore Sp Vala After Translation|Add Sp Vala After Translation|Remove Sp Vala After Translation|Force Sp Vala After Translation"
+ValueDefault=ignore
+
+[Force Tab After Define]
+Category=1
+Description="<html>If true, a &lt;TAB&gt; is inserted after #define.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=force_tab_after_define=true|force_tab_after_define=false
+ValueDefault=false
+
+[Indent Columns]
+Category=2
+Description="<html>The number of columns to indent per level. Usually 2, 3, 4, or 8.<br/><br/>Default: 8</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_columns="
+MinVal=0
+MaxVal=16
+ValueDefault=8
+
+[Indent Ignore First Continue]
+Category=2
+Description="<html>Whether to ignore indent for the first continuation line. Subsequent<br/>continuation lines will still be indented to match the first.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_ignore_first_continue=true|indent_ignore_first_continue=false
+ValueDefault=false
+
+[Indent Continue]
+Category=2
+Description="<html>The continuation indent. If non-zero, this overrides the indent of '(', '['<br/>and '=' continuation indents. Negative values are OK; negative value is<br/>absolute and not increased for each '(' or '[' level.<br/><br/>For FreeBSD, this is set to 4.<br/>Requires indent_ignore_first_continue=false.</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_continue="
+MinVal=-16
+MaxVal=16
+ValueDefault=0
+
+[Indent Continue Class Head]
+Category=2
+Description="<html>The continuation indent, only for class header line(s). If non-zero, this<br/>overrides the indent of 'class' continuation indents.<br/>Requires indent_ignore_first_continue=false.</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_continue_class_head="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Indent Single Newlines]
+Category=2
+Description="<html>Whether to indent empty lines (i.e. lines which contain only spaces before<br/>the newline character).</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_single_newlines=true|indent_single_newlines=false
+ValueDefault=false
+
+[Indent Param]
+Category=2
+Description="<html>The continuation indent for func_*_param if they are true. If non-zero, this<br/>overrides the indent.</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_param="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Indent With Tabs]
+Category=2
+Description="<html>How to use tabs when indenting code.<br/><br/>0: Spaces only<br/>1: Indent with tabs to brace level, align with spaces (default)<br/>2: Indent and align with tabs, using spaces when not on a tabstop<br/><br/>Default: 1</html>"
+Enabled=true
+EditorType=multiple
+Choices="indent_with_tabs=0|indent_with_tabs=1|indent_with_tabs=2"
+ChoicesReadable="Spaces only|Indent with tabs, align with spaces|Indent and align with tabs"
+ValueDefault=1
+
+[Indent Cmt With Tabs]
+Category=2
+Description="<html>Whether to indent comments that are not at a brace level with tabs on a<br/>tabstop. Requires indent_with_tabs=2. If false, will use spaces.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_cmt_with_tabs=true|indent_cmt_with_tabs=false
+ValueDefault=false
+
+[Indent Align String]
+Category=2
+Description="<html>Whether to indent strings broken by '\' so that they line up.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_align_string=true|indent_align_string=false
+ValueDefault=false
+
+[Indent Xml String]
+Category=2
+Description="<html>The number of spaces to indent multi-line XML strings.<br/>Requires indent_align_string=true.</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_xml_string="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Indent Brace]
+Category=2
+Description="<html>Spaces to indent '{' from level.</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_brace="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Indent Braces]
+Category=2
+Description="<html>Whether braces are indented to the body level.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_braces=true|indent_braces=false
+ValueDefault=false
+
+[Indent Braces No Func]
+Category=2
+Description="<html>Whether to disable indenting function braces if indent_braces=true.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_braces_no_func=true|indent_braces_no_func=false
+ValueDefault=false
+
+[Indent Braces No Class]
+Category=2
+Description="<html>Whether to disable indenting class braces if indent_braces=true.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_braces_no_class=true|indent_braces_no_class=false
+ValueDefault=false
+
+[Indent Braces No Struct]
+Category=2
+Description="<html>Whether to disable indenting struct braces if indent_braces=true.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_braces_no_struct=true|indent_braces_no_struct=false
+ValueDefault=false
+
+[Indent Brace Parent]
+Category=2
+Description="<html>Whether to indent based on the size of the brace parent,<br/>i.e. 'if' =&gt; 3 spaces, 'for' =&gt; 4 spaces, etc.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_brace_parent=true|indent_brace_parent=false
+ValueDefault=false
+
+[Indent Paren Open Brace]
+Category=2
+Description="<html>Whether to indent based on the open parenthesis instead of the open brace<br/>in '({\n'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_paren_open_brace=true|indent_paren_open_brace=false
+ValueDefault=false
+
+[Indent Cs Delegate Brace]
+Category=2
+Description="<html>(C#) Whether to indent the brace of a C# delegate by another level.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_cs_delegate_brace=true|indent_cs_delegate_brace=false
+ValueDefault=false
+
+[Indent Cs Delegate Body]
+Category=2
+Description="<html>(C#) Whether to indent a C# delegate (to handle delegates with no brace) by<br/>another level.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_cs_delegate_body=true|indent_cs_delegate_body=false
+ValueDefault=false
+
+[Indent Namespace]
+Category=2
+Description="<html>Whether to indent the body of a 'namespace'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_namespace=true|indent_namespace=false
+ValueDefault=false
+
+[Indent Namespace Single Indent]
+Category=2
+Description="<html>Whether to indent only the first namespace, and not any nested namespaces.<br/>Requires indent_namespace=true.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_namespace_single_indent=true|indent_namespace_single_indent=false
+ValueDefault=false
+
+[Indent Namespace Level]
+Category=2
+Description="<html>The number of spaces to indent a namespace block.<br/>If set to zero, use the value indent_columns</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_namespace_level="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Indent Namespace Limit]
+Category=2
+Description="<html>If the body of the namespace is longer than this number, it won't be<br/>indented. Requires indent_namespace=true. 0 means no limit.</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_namespace_limit="
+MinVal=0
+MaxVal=255
+ValueDefault=0
+
+[Indent Namespace Inner Only]
+Category=2
+Description="<html>Whether to indent only in inner namespaces (nested in other namespaces).<br/>Requires indent_namespace=true.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_namespace_inner_only=true|indent_namespace_inner_only=false
+ValueDefault=false
+
+[Indent Extern]
+Category=2
+Description="<html>Whether the 'extern "C"' body is indented.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_extern=true|indent_extern=false
+ValueDefault=false
+
+[Indent Class]
+Category=2
+Description="<html>Whether the 'class' body is indented.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_class=true|indent_class=false
+ValueDefault=false
+
+[Indent Ignore Before Class Colon]
+Category=2
+Description="<html>Whether to ignore indent for the leading base class colon.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_ignore_before_class_colon=true|indent_ignore_before_class_colon=false
+ValueDefault=false
+
+[Indent Before Class Colon]
+Category=2
+Description="<html>Additional indent before the leading base class colon.<br/>Negative values decrease indent down to the first column.<br/>Requires indent_ignore_before_class_colon=false and a newline break before<br/>the colon (see pos_class_colon and nl_class_colon)</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_before_class_colon="
+MinVal=-16
+MaxVal=16
+ValueDefault=0
+
+[Indent Class Colon]
+Category=2
+Description="<html>Whether to indent the stuff after a leading base class colon.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_class_colon=true|indent_class_colon=false
+ValueDefault=false
+
+[Indent Class On Colon]
+Category=2
+Description="<html>Whether to indent based on a class colon instead of the stuff after the<br/>colon. Requires indent_class_colon=true.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_class_on_colon=true|indent_class_on_colon=false
+ValueDefault=false
+
+[Indent Ignore Before Constr Colon]
+Category=2
+Description="<html>Whether to ignore indent for a leading class initializer colon.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_ignore_before_constr_colon=true|indent_ignore_before_constr_colon=false
+ValueDefault=false
+
+[Indent Constr Colon]
+Category=2
+Description="<html>Whether to indent the stuff after a leading class initializer colon.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_constr_colon=true|indent_constr_colon=false
+ValueDefault=false
+
+[Indent Ctor Init Leading]
+Category=2
+Description="<html>Virtual indent from the ':' for leading member initializers.<br/><br/>Default: 2</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_ctor_init_leading="
+MinVal=0
+MaxVal=16
+ValueDefault=2
+
+[Indent Ctor Init Following]
+Category=2
+Description="<html>Virtual indent from the ':' for following member initializers.<br/><br/>Default: 2</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_ctor_init_following="
+MinVal=0
+MaxVal=16
+ValueDefault=2
+
+[Indent Ctor Init]
+Category=2
+Description="<html>Additional indent for constructor initializer list.<br/>Negative values decrease indent down to the first column.</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_ctor_init="
+MinVal=-16
+MaxVal=16
+ValueDefault=0
+
+[Indent Else If]
+Category=2
+Description="<html>Whether to indent 'if' following 'else' as a new block under the 'else'.<br/>If false, 'else\nif' is treated as 'else if' for indenting purposes.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_else_if=true|indent_else_if=false
+ValueDefault=false
+
+[Indent Var Def Blk]
+Category=2
+Description="<html>Amount to indent variable declarations after a open brace.<br/><br/> &lt;0: Relative<br/>&gt;=0: Absolute</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_var_def_blk="
+MinVal=-16
+MaxVal=16
+ValueDefault=0
+
+[Indent Var Def Cont]
+Category=2
+Description="<html>Whether to indent continued variable declarations instead of aligning.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_var_def_cont=true|indent_var_def_cont=false
+ValueDefault=false
+
+[Indent Shift]
+Category=2
+Description="<html>How to indent continued shift expressions ('&lt;&lt;' and '&gt;&gt;').<br/>Set align_left_shift=false when using this.<br/> 0: Align shift operators instead of indenting them (default)<br/> 1: Indent by one level<br/>-1: Preserve original indentation</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_shift="
+MinVal=-1
+MaxVal=1
+ValueDefault=0
+
+[Indent Func Def Force Col1]
+Category=2
+Description="<html>Whether to force indentation of function definitions to start in column 1.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_func_def_force_col1=true|indent_func_def_force_col1=false
+ValueDefault=false
+
+[Indent Func Call Param]
+Category=2
+Description="<html>Whether to indent continued function call parameters one indent level,<br/>rather than aligning parameters under the open parenthesis.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_func_call_param=true|indent_func_call_param=false
+ValueDefault=false
+
+[Indent Func Def Param]
+Category=2
+Description="<html>Whether to indent continued function definition parameters one indent level,<br/>rather than aligning parameters under the open parenthesis.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_func_def_param=true|indent_func_def_param=false
+ValueDefault=false
+
+[Indent Func Def Param Paren Pos Threshold]
+Category=2
+Description="<html>for function definitions, only if indent_func_def_param is false<br/>Allows to align params when appropriate and indent them when not<br/>behave as if it was true if paren position is more than this value<br/>if paren position is more than the option value</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_func_def_param_paren_pos_threshold="
+MinVal=0
+MaxVal=160
+ValueDefault=0
+
+[Indent Func Proto Param]
+Category=2
+Description="<html>Whether to indent continued function call prototype one indent level,<br/>rather than aligning parameters under the open parenthesis.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_func_proto_param=true|indent_func_proto_param=false
+ValueDefault=false
+
+[Indent Func Class Param]
+Category=2
+Description="<html>Whether to indent continued function call declaration one indent level,<br/>rather than aligning parameters under the open parenthesis.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_func_class_param=true|indent_func_class_param=false
+ValueDefault=false
+
+[Indent Func Ctor Var Param]
+Category=2
+Description="<html>Whether to indent continued class variable constructors one indent level,<br/>rather than aligning parameters under the open parenthesis.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_func_ctor_var_param=true|indent_func_ctor_var_param=false
+ValueDefault=false
+
+[Indent Template Param]
+Category=2
+Description="<html>Whether to indent continued template parameter list one indent level,<br/>rather than aligning parameters under the open parenthesis.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_template_param=true|indent_template_param=false
+ValueDefault=false
+
+[Indent Func Param Double]
+Category=2
+Description="<html>Double the indent for indent_func_xxx_param options.<br/>Use both values of the options indent_columns and indent_param.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_func_param_double=true|indent_func_param_double=false
+ValueDefault=false
+
+[Indent Func Const]
+Category=2
+Description="<html>Indentation column for standalone 'const' qualifier on a function<br/>prototype.</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_func_const="
+MinVal=0
+MaxVal=69
+ValueDefault=0
+
+[Indent Func Throw]
+Category=2
+Description="<html>Indentation column for standalone 'throw' qualifier on a function<br/>prototype.</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_func_throw="
+MinVal=0
+MaxVal=41
+ValueDefault=0
+
+[Indent Macro Brace]
+Category=2
+Description="<html>How to indent within a macro followed by a brace on the same line<br/>This allows reducing the indent in macros that have (for example)<br/>`do { ... } while (0)` blocks bracketing them.<br/><br/>true: add an indent for the brace on the same line as the macro<br/>false: do not add an indent for the brace on the same line as the macro<br/><br/>Default: true</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_macro_brace=true|indent_macro_brace=false
+ValueDefault=true
+
+[Indent Member]
+Category=2
+Description="<html>The number of spaces to indent a continued '-&gt;' or '.'.<br/>Usually set to 0, 1, or indent_columns.</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_member="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Indent Member Single]
+Category=2
+Description="<html>Whether lines broken at '.' or '-&gt;' should be indented by a single indent.<br/>The indent_member option will not be effective if this is set to true.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_member_single=true|indent_member_single=false
+ValueDefault=false
+
+[Indent Single Line Comments Before]
+Category=2
+Description="<html>Spaces to indent single line ('//') comments on lines before code.</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_single_line_comments_before="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Indent Single Line Comments After]
+Category=2
+Description="<html>Spaces to indent single line ('//') comments on lines after code.</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_single_line_comments_after="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Indent Sparen Extra]
+Category=2
+Description="<html>When opening a paren for a control statement (if, for, while, etc), increase<br/>the indent level by this value. Negative values decrease the indent level.</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_sparen_extra="
+MinVal=-16
+MaxVal=16
+ValueDefault=0
+
+[Indent Relative Single Line Comments]
+Category=2
+Description="<html>Whether to indent trailing single line ('//') comments relative to the code<br/>instead of trying to keep the same absolute column.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_relative_single_line_comments=true|indent_relative_single_line_comments=false
+ValueDefault=false
+
+[Indent Switch Case]
+Category=2
+Description="<html>Spaces to indent 'case' from 'switch'. Usually 0 or indent_columns.<br/>It might be wise to choose the same value for the option indent_case_brace.</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_switch_case="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Indent Switch Body]
+Category=2
+Description="<html>Spaces to indent the body of a 'switch' before any 'case'.<br/>Usually the same as indent_columns or indent_switch_case.</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_switch_body="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Indent Ignore Case Brace]
+Category=2
+Description="<html>Whether to ignore indent for '{' following 'case'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_ignore_case_brace=true|indent_ignore_case_brace=false
+ValueDefault=false
+
+[Indent Case Brace]
+Category=2
+Description="<html>Spaces to indent '{' from 'case'. By default, the brace will appear under<br/>the 'c' in case. Usually set to 0 or indent_columns. Negative values are OK.<br/>It might be wise to choose the same value for the option indent_switch_case.</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_case_brace="
+MinVal=-16
+MaxVal=16
+ValueDefault=0
+
+[Indent Switch Break With Case]
+Category=2
+Description="<html>indent 'break' with 'case' from 'switch'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_switch_break_with_case=true|indent_switch_break_with_case=false
+ValueDefault=false
+
+[Indent Switch Pp]
+Category=2
+Description="<html>Whether to indent preprocessor statements inside of switch statements.<br/><br/>Default: true</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_switch_pp=true|indent_switch_pp=false
+ValueDefault=true
+
+[Indent Case Shift]
+Category=2
+Description="<html>Spaces to shift the 'case' line, without affecting any other lines.<br/>Usually 0.</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_case_shift="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Indent Case Comment]
+Category=2
+Description="<html>Whether to align comments before 'case' with the 'case'.<br/><br/>Default: true</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_case_comment=true|indent_case_comment=false
+ValueDefault=true
+
+[Indent Comment]
+Category=2
+Description="<html>Whether to indent comments not found in first column.<br/><br/>Default: true</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_comment=true|indent_comment=false
+ValueDefault=true
+
+[Indent Col1 Comment]
+Category=2
+Description="<html>Whether to indent comments found in first column.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_col1_comment=true|indent_col1_comment=false
+ValueDefault=false
+
+[Indent Col1 Multi String Literal]
+Category=2
+Description="<html>Whether to indent multi string literal in first column.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_col1_multi_string_literal=true|indent_col1_multi_string_literal=false
+ValueDefault=false
+
+[Indent Comment Align Thresh]
+Category=2
+Description="<html>Align comments on adjacent lines that are this many columns apart or less.<br/><br/>Default: 3</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_comment_align_thresh="
+MinVal=0
+MaxVal=16
+ValueDefault=3
+
+[Indent Ignore Label]
+Category=2
+Description="<html>Whether to ignore indent for goto labels.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_ignore_label=true|indent_ignore_label=false
+ValueDefault=false
+
+[Indent Label]
+Category=2
+Description="<html>How to indent goto labels. Requires indent_ignore_label=false.<br/><br/> &gt;0: Absolute column where 1 is the leftmost column<br/>&lt;=0: Subtract from brace indent<br/><br/>Default: 1</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_label="
+MinVal=-16
+MaxVal=16
+ValueDefault=1
+
+[Indent Access Spec]
+Category=2
+Description="<html>How to indent access specifiers that are followed by a<br/>colon.<br/><br/> &gt;0: Absolute column where 1 is the leftmost column<br/>&lt;=0: Subtract from brace indent<br/><br/>Default: 1</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_access_spec="
+MinVal=-16
+MaxVal=16
+ValueDefault=1
+
+[Indent Access Spec Body]
+Category=2
+Description="<html>Whether to indent the code after an access specifier by one level.<br/>If true, this option forces 'indent_access_spec=0'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_access_spec_body=true|indent_access_spec_body=false
+ValueDefault=false
+
+[Indent Paren Nl]
+Category=2
+Description="<html>If an open parenthesis is followed by a newline, whether to indent the next<br/>line so that it lines up after the open parenthesis (not recommended).</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_paren_nl=true|indent_paren_nl=false
+ValueDefault=false
+
+[Indent Paren Close]
+Category=2
+Description="<html>How to indent a close parenthesis after a newline.<br/><br/> 0: Indent to body level (default)<br/> 1: Align under the open parenthesis<br/> 2: Indent to the brace level<br/>-1: Preserve original indentation</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_paren_close="
+MinVal=-1
+MaxVal=2
+ValueDefault=0
+
+[Indent Paren After Func Def]
+Category=2
+Description="<html>Whether to indent the open parenthesis of a function definition,<br/>if the parenthesis is on its own line.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_paren_after_func_def=true|indent_paren_after_func_def=false
+ValueDefault=false
+
+[Indent Paren After Func Decl]
+Category=2
+Description="<html>Whether to indent the open parenthesis of a function declaration,<br/>if the parenthesis is on its own line.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_paren_after_func_decl=true|indent_paren_after_func_decl=false
+ValueDefault=false
+
+[Indent Paren After Func Call]
+Category=2
+Description="<html>Whether to indent the open parenthesis of a function call,<br/>if the parenthesis is on its own line.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_paren_after_func_call=true|indent_paren_after_func_call=false
+ValueDefault=false
+
+[Indent Comma Brace]
+Category=2
+Description="<html>How to indent a comma when inside braces.<br/> 0: Indent by one level (default)<br/> 1: Align under the open brace<br/>-1: Preserve original indentation</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_comma_brace="
+MinVal=-1
+MaxVal=1
+ValueDefault=0
+
+[Indent Comma Paren]
+Category=2
+Description="<html>How to indent a comma when inside parentheses.<br/> 0: Indent by one level (default)<br/> 1: Align under the open parenthesis<br/>-1: Preserve original indentation</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_comma_paren="
+MinVal=-1
+MaxVal=1
+ValueDefault=0
+
+[Indent Bool Paren]
+Category=2
+Description="<html>How to indent a Boolean operator when inside parentheses.<br/> 0: Indent by one level (default)<br/> 1: Align under the open parenthesis<br/>-1: Preserve original indentation</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_bool_paren="
+MinVal=-1
+MaxVal=1
+ValueDefault=0
+
+[Indent Ignore Bool]
+Category=2
+Description="<html>Whether to ignore the indentation of a Boolean operator when outside<br/>parentheses.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_ignore_bool=true|indent_ignore_bool=false
+ValueDefault=false
+
+[Indent Ignore Arith]
+Category=2
+Description="<html>Whether to ignore the indentation of an arithmetic operator.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_ignore_arith=true|indent_ignore_arith=false
+ValueDefault=false
+
+[Indent Semicolon For Paren]
+Category=2
+Description="<html>Whether to indent a semicolon when inside a for parenthesis.<br/>If true, aligns under the open for parenthesis.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_semicolon_for_paren=true|indent_semicolon_for_paren=false
+ValueDefault=false
+
+[Indent Ignore Semicolon]
+Category=2
+Description="<html>Whether to ignore the indentation of a semicolon outside of a 'for'<br/>statement.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_ignore_semicolon=true|indent_ignore_semicolon=false
+ValueDefault=false
+
+[Indent First Bool Expr]
+Category=2
+Description="<html>Whether to align the first expression to following ones<br/>if indent_bool_paren=1.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_first_bool_expr=true|indent_first_bool_expr=false
+ValueDefault=false
+
+[Indent First For Expr]
+Category=2
+Description="<html>Whether to align the first expression to following ones<br/>if indent_semicolon_for_paren=true.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_first_for_expr=true|indent_first_for_expr=false
+ValueDefault=false
+
+[Indent Square Nl]
+Category=2
+Description="<html>If an open square is followed by a newline, whether to indent the next line<br/>so that it lines up after the open square (not recommended).</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_square_nl=true|indent_square_nl=false
+ValueDefault=false
+
+[Indent Preserve Sql]
+Category=2
+Description="<html>(ESQL/C) Whether to preserve the relative indent of 'EXEC SQL' bodies.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_preserve_sql=true|indent_preserve_sql=false
+ValueDefault=false
+
+[Indent Ignore Assign]
+Category=2
+Description="<html>Whether to ignore the indentation of an assignment operator.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_ignore_assign=true|indent_ignore_assign=false
+ValueDefault=false
+
+[Indent Align Assign]
+Category=2
+Description="<html>Whether to align continued statements at the '='. If false or if the '=' is<br/>followed by a newline, the next line is indent one tab.<br/><br/>Default: true</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_align_assign=true|indent_align_assign=false
+ValueDefault=true
+
+[Indent Off After Assign]
+Category=2
+Description="<html>If true, the indentation of the chunks after a '=' sequence will be set at<br/>LHS token indentation column before '='.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_off_after_assign=true|indent_off_after_assign=false
+ValueDefault=false
+
+[Indent Align Paren]
+Category=2
+Description="<html>Whether to align continued statements at the '('. If false or the '(' is<br/>followed by a newline, the next line indent is one tab.<br/><br/>Default: true</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_align_paren=true|indent_align_paren=false
+ValueDefault=true
+
+[Indent Oc Inside Msg Sel]
+Category=2
+Description="<html>(OC) Whether to indent Objective-C code inside message selectors.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_oc_inside_msg_sel=true|indent_oc_inside_msg_sel=false
+ValueDefault=false
+
+[Indent Oc Block]
+Category=2
+Description="<html>(OC) Whether to indent Objective-C blocks at brace level instead of usual<br/>rules.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_oc_block=true|indent_oc_block=false
+ValueDefault=false
+
+[Indent Oc Block Msg]
+Category=2
+Description="<html>(OC) Indent for Objective-C blocks in a message relative to the parameter<br/>name.<br/><br/>=0: Use indent_oc_block rules<br/>&gt;0: Use specified number of spaces to indent</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_oc_block_msg="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Indent Oc Msg Colon]
+Category=2
+Description="<html>(OC) Minimum indent for subsequent parameters</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_oc_msg_colon="
+MinVal=0
+MaxVal=5000
+ValueDefault=0
+
+[Indent Oc Msg Prioritize First Colon]
+Category=2
+Description="<html>(OC) Whether to prioritize aligning with initial colon (and stripping spaces<br/>from lines, if necessary).<br/><br/>Default: true</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_oc_msg_prioritize_first_colon=true|indent_oc_msg_prioritize_first_colon=false
+ValueDefault=true
+
+[Indent Oc Block Msg Xcode Style]
+Category=2
+Description="<html>(OC) Whether to indent blocks the way that Xcode does by default<br/>(from the keyword if the parameter is on its own line; otherwise, from the<br/>previous indentation level). Requires indent_oc_block_msg=true.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_oc_block_msg_xcode_style=true|indent_oc_block_msg_xcode_style=false
+ValueDefault=false
+
+[Indent Oc Block Msg From Keyword]
+Category=2
+Description="<html>(OC) Whether to indent blocks from where the brace is, relative to a<br/>message keyword. Requires indent_oc_block_msg=true.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_oc_block_msg_from_keyword=true|indent_oc_block_msg_from_keyword=false
+ValueDefault=false
+
+[Indent Oc Block Msg From Colon]
+Category=2
+Description="<html>(OC) Whether to indent blocks from where the brace is, relative to a message<br/>colon. Requires indent_oc_block_msg=true.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_oc_block_msg_from_colon=true|indent_oc_block_msg_from_colon=false
+ValueDefault=false
+
+[Indent Oc Block Msg From Caret]
+Category=2
+Description="<html>(OC) Whether to indent blocks from where the block caret is.<br/>Requires indent_oc_block_msg=true.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_oc_block_msg_from_caret=true|indent_oc_block_msg_from_caret=false
+ValueDefault=false
+
+[Indent Oc Block Msg From Brace]
+Category=2
+Description="<html>(OC) Whether to indent blocks from where the brace caret is.<br/>Requires indent_oc_block_msg=true.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_oc_block_msg_from_brace=true|indent_oc_block_msg_from_brace=false
+ValueDefault=false
+
+[Indent Min Vbrace Open]
+Category=2
+Description="<html>When indenting after virtual brace open and newline add further spaces to<br/>reach this minimum indent.</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_min_vbrace_open="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Indent Vbrace Open On Tabstop]
+Category=2
+Description="<html>Whether to add further spaces after regular indent to reach next tabstop<br/>when indenting after virtual brace open and newline.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_vbrace_open_on_tabstop=true|indent_vbrace_open_on_tabstop=false
+ValueDefault=false
+
+[Indent Token After Brace]
+Category=2
+Description="<html>How to indent after a brace followed by another token (not a newline).<br/>true: indent all contained lines to match the token<br/>false: indent all contained lines to match the brace<br/><br/>Default: true</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_token_after_brace=true|indent_token_after_brace=false
+ValueDefault=true
+
+[Indent Cpp Lambda Body]
+Category=2
+Description="<html>Whether to indent the body of a C++11 lambda.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_cpp_lambda_body=true|indent_cpp_lambda_body=false
+ValueDefault=false
+
+[Indent Compound Literal Return]
+Category=2
+Description="<html>How to indent compound literals that are being returned.<br/>true: add both the indent from return &amp; the compound literal open brace<br/> (i.e. 2 indent levels)<br/>false: only indent 1 level, don't add the indent for the open brace, only<br/> add the indent for the return.<br/><br/>Default: true</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_compound_literal_return=true|indent_compound_literal_return=false
+ValueDefault=true
+
+[Indent Using Block]
+Category=2
+Description="<html>(C#) Whether to indent a 'using' block if no braces are used.<br/><br/>Default: true</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_using_block=true|indent_using_block=false
+ValueDefault=true
+
+[Indent Ternary Operator]
+Category=2
+Description="<html>How to indent the continuation of ternary operator.<br/><br/>0: Off (default)<br/>1: When the `if_false` is a continuation, indent it under `if_false`<br/>2: When the `:` is a continuation, indent it under `?`</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_ternary_operator="
+MinVal=0
+MaxVal=2
+ValueDefault=0
+
+[Indent Inside Ternary Operator]
+Category=2
+Description="<html>Whether to indent the statements inside ternary operator.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_inside_ternary_operator=true|indent_inside_ternary_operator=false
+ValueDefault=false
+
+[Indent Off After Return]
+Category=2
+Description="<html>If true, the indentation of the chunks after a `return` sequence will be set at return indentation column.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_off_after_return=true|indent_off_after_return=false
+ValueDefault=false
+
+[Indent Off After Return New]
+Category=2
+Description="<html>If true, the indentation of the chunks after a `return new` sequence will be set at return indentation column.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_off_after_return_new=true|indent_off_after_return_new=false
+ValueDefault=false
+
+[Indent Single After Return]
+Category=2
+Description="<html>If true, the tokens after return are indented with regular single indentation. By default (false) the indentation is after the return token.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_single_after_return=true|indent_single_after_return=false
+ValueDefault=false
+
+[Indent Ignore Asm Block]
+Category=2
+Description="<html>Whether to ignore indent and alignment for 'asm' blocks (i.e. assume they<br/>have their own indentation).</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_ignore_asm_block=true|indent_ignore_asm_block=false
+ValueDefault=false
+
+[Donot Indent Func Def Close Paren]
+Category=2
+Description="<html>Don't indent the close parenthesis of a function definition,<br/>if the parenthesis is on its own line.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=donot_indent_func_def_close_paren=true|donot_indent_func_def_close_paren=false
+ValueDefault=false
+
+[Nl Collapse Empty Body]
+Category=3
+Description="<html>Whether to collapse empty blocks between '{' and '}'.<br/>If true, overrides nl_inside_empty_func</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_collapse_empty_body=true|nl_collapse_empty_body=false
+ValueDefault=false
+
+[Nl Assign Leave One Liners]
+Category=3
+Description="<html>Don't split one-line braced assignments, as in 'foo_t f = { 1, 2 };'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_assign_leave_one_liners=true|nl_assign_leave_one_liners=false
+ValueDefault=false
+
+[Nl Class Leave One Liners]
+Category=3
+Description="<html>Don't split one-line braced statements inside a 'class xx { }' body.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_class_leave_one_liners=true|nl_class_leave_one_liners=false
+ValueDefault=false
+
+[Nl Enum Leave One Liners]
+Category=3
+Description="<html>Don't split one-line enums, as in 'enum foo { BAR = 15 };'</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_enum_leave_one_liners=true|nl_enum_leave_one_liners=false
+ValueDefault=false
+
+[Nl Getset Leave One Liners]
+Category=3
+Description="<html>Don't split one-line get or set functions.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_getset_leave_one_liners=true|nl_getset_leave_one_liners=false
+ValueDefault=false
+
+[Nl Cs Property Leave One Liners]
+Category=3
+Description="<html>(C#) Don't split one-line property get or set functions.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_cs_property_leave_one_liners=true|nl_cs_property_leave_one_liners=false
+ValueDefault=false
+
+[Nl Func Leave One Liners]
+Category=3
+Description="<html>Don't split one-line function definitions, as in 'int foo() { return 0; }'.<br/>might modify nl_func_type_name</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_func_leave_one_liners=true|nl_func_leave_one_liners=false
+ValueDefault=false
+
+[Nl Cpp Lambda Leave One Liners]
+Category=3
+Description="<html>Don't split one-line C++11 lambdas, as in '[]() { return 0; }'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_cpp_lambda_leave_one_liners=true|nl_cpp_lambda_leave_one_liners=false
+ValueDefault=false
+
+[Nl If Leave One Liners]
+Category=3
+Description="<html>Don't split one-line if/else statements, as in 'if(...) b++;'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_if_leave_one_liners=true|nl_if_leave_one_liners=false
+ValueDefault=false
+
+[Nl While Leave One Liners]
+Category=3
+Description="<html>Don't split one-line while statements, as in 'while(...) b++;'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_while_leave_one_liners=true|nl_while_leave_one_liners=false
+ValueDefault=false
+
+[Nl Do Leave One Liners]
+Category=3
+Description="<html>Don't split one-line do statements, as in 'do { b++; } while(...);'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_do_leave_one_liners=true|nl_do_leave_one_liners=false
+ValueDefault=false
+
+[Nl For Leave One Liners]
+Category=3
+Description="<html>Don't split one-line for statements, as in 'for(...) b++;'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_for_leave_one_liners=true|nl_for_leave_one_liners=false
+ValueDefault=false
+
+[Nl Oc Msg Leave One Liner]
+Category=3
+Description="<html>(OC) Don't split one-line Objective-C messages.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_oc_msg_leave_one_liner=true|nl_oc_msg_leave_one_liner=false
+ValueDefault=false
+
+[Nl Oc Mdef Brace]
+Category=3
+Description="<html>(OC) Add or remove newline between method declaration and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_oc_mdef_brace=ignore|nl_oc_mdef_brace=add|nl_oc_mdef_brace=remove|nl_oc_mdef_brace=force|nl_oc_mdef_brace=not_defined
+ChoicesReadable="Ignore Nl Oc Mdef Brace|Add Nl Oc Mdef Brace|Remove Nl Oc Mdef Brace|Force Nl Oc Mdef Brace"
+ValueDefault=ignore
+
+[Nl Oc Block Brace]
+Category=3
+Description="<html>(OC) Add or remove newline between Objective-C block signature and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_oc_block_brace=ignore|nl_oc_block_brace=add|nl_oc_block_brace=remove|nl_oc_block_brace=force|nl_oc_block_brace=not_defined
+ChoicesReadable="Ignore Nl Oc Block Brace|Add Nl Oc Block Brace|Remove Nl Oc Block Brace|Force Nl Oc Block Brace"
+ValueDefault=ignore
+
+[Nl Oc Before Interface]
+Category=3
+Description="<html>(OC) Add or remove blank line before '@interface' statement.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_oc_before_interface=ignore|nl_oc_before_interface=add|nl_oc_before_interface=remove|nl_oc_before_interface=force|nl_oc_before_interface=not_defined
+ChoicesReadable="Ignore Nl Oc Before Interface|Add Nl Oc Before Interface|Remove Nl Oc Before Interface|Force Nl Oc Before Interface"
+ValueDefault=ignore
+
+[Nl Oc Before Implementation]
+Category=3
+Description="<html>(OC) Add or remove blank line before '@implementation' statement.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_oc_before_implementation=ignore|nl_oc_before_implementation=add|nl_oc_before_implementation=remove|nl_oc_before_implementation=force|nl_oc_before_implementation=not_defined
+ChoicesReadable="Ignore Nl Oc Before Implementation|Add Nl Oc Before Implementation|Remove Nl Oc Before Implementation|Force Nl Oc Before Implementation"
+ValueDefault=ignore
+
+[Nl Oc Before End]
+Category=3
+Description="<html>(OC) Add or remove blank line before '@end' statement.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_oc_before_end=ignore|nl_oc_before_end=add|nl_oc_before_end=remove|nl_oc_before_end=force|nl_oc_before_end=not_defined
+ChoicesReadable="Ignore Nl Oc Before End|Add Nl Oc Before End|Remove Nl Oc Before End|Force Nl Oc Before End"
+ValueDefault=ignore
+
+[Nl Oc Interface Brace]
+Category=3
+Description="<html>(OC) Add or remove newline between '@interface' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_oc_interface_brace=ignore|nl_oc_interface_brace=add|nl_oc_interface_brace=remove|nl_oc_interface_brace=force|nl_oc_interface_brace=not_defined
+ChoicesReadable="Ignore Nl Oc Interface Brace|Add Nl Oc Interface Brace|Remove Nl Oc Interface Brace|Force Nl Oc Interface Brace"
+ValueDefault=ignore
+
+[Nl Oc Implementation Brace]
+Category=3
+Description="<html>(OC) Add or remove newline between '@implementation' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_oc_implementation_brace=ignore|nl_oc_implementation_brace=add|nl_oc_implementation_brace=remove|nl_oc_implementation_brace=force|nl_oc_implementation_brace=not_defined
+ChoicesReadable="Ignore Nl Oc Implementation Brace|Add Nl Oc Implementation Brace|Remove Nl Oc Implementation Brace|Force Nl Oc Implementation Brace"
+ValueDefault=ignore
+
+[Nl Start Of File]
+Category=3
+Description="<html>Add or remove newlines at the start of the file.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_start_of_file=ignore|nl_start_of_file=add|nl_start_of_file=remove|nl_start_of_file=force|nl_start_of_file=not_defined
+ChoicesReadable="Ignore Nl Start Of File|Add Nl Start Of File|Remove Nl Start Of File|Force Nl Start Of File"
+ValueDefault=ignore
+
+[Nl Start Of File Min]
+Category=3
+Description="<html>The minimum number of newlines at the start of the file (only used if<br/>nl_start_of_file is 'add' or 'force').</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_start_of_file_min="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl End Of File]
+Category=3
+Description="<html>Add or remove newline at the end of the file.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_end_of_file=ignore|nl_end_of_file=add|nl_end_of_file=remove|nl_end_of_file=force|nl_end_of_file=not_defined
+ChoicesReadable="Ignore Nl End Of File|Add Nl End Of File|Remove Nl End Of File|Force Nl End Of File"
+ValueDefault=ignore
+
+[Nl End Of File Min]
+Category=3
+Description="<html>The minimum number of newlines at the end of the file (only used if<br/>nl_end_of_file is 'add' or 'force').</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_end_of_file_min="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Assign Brace]
+Category=3
+Description="<html>Add or remove newline between '=' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_assign_brace=ignore|nl_assign_brace=add|nl_assign_brace=remove|nl_assign_brace=force|nl_assign_brace=not_defined
+ChoicesReadable="Ignore Nl Assign Brace|Add Nl Assign Brace|Remove Nl Assign Brace|Force Nl Assign Brace"
+ValueDefault=ignore
+
+[Nl Assign Square]
+Category=3
+Description="<html>(D) Add or remove newline between '=' and '['.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_assign_square=ignore|nl_assign_square=add|nl_assign_square=remove|nl_assign_square=force|nl_assign_square=not_defined
+ChoicesReadable="Ignore Nl Assign Square|Add Nl Assign Square|Remove Nl Assign Square|Force Nl Assign Square"
+ValueDefault=ignore
+
+[Nl Tsquare Brace]
+Category=3
+Description="<html>Add or remove newline between '[]' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_tsquare_brace=ignore|nl_tsquare_brace=add|nl_tsquare_brace=remove|nl_tsquare_brace=force|nl_tsquare_brace=not_defined
+ChoicesReadable="Ignore Nl Tsquare Brace|Add Nl Tsquare Brace|Remove Nl Tsquare Brace|Force Nl Tsquare Brace"
+ValueDefault=ignore
+
+[Nl After Square Assign]
+Category=3
+Description="<html>(D) Add or remove newline after '= ['. Will also affect the newline before<br/>the ']'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_after_square_assign=ignore|nl_after_square_assign=add|nl_after_square_assign=remove|nl_after_square_assign=force|nl_after_square_assign=not_defined
+ChoicesReadable="Ignore Nl After Square Assign|Add Nl After Square Assign|Remove Nl After Square Assign|Force Nl After Square Assign"
+ValueDefault=ignore
+
+[Nl Fcall Brace]
+Category=3
+Description="<html>Add or remove newline between a function call's ')' and '{', as in<br/>'list_for_each(item, &amp;list) { }'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_fcall_brace=ignore|nl_fcall_brace=add|nl_fcall_brace=remove|nl_fcall_brace=force|nl_fcall_brace=not_defined
+ChoicesReadable="Ignore Nl Fcall Brace|Add Nl Fcall Brace|Remove Nl Fcall Brace|Force Nl Fcall Brace"
+ValueDefault=ignore
+
+[Nl Enum Brace]
+Category=3
+Description="<html>Add or remove newline between 'enum' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_enum_brace=ignore|nl_enum_brace=add|nl_enum_brace=remove|nl_enum_brace=force|nl_enum_brace=not_defined
+ChoicesReadable="Ignore Nl Enum Brace|Add Nl Enum Brace|Remove Nl Enum Brace|Force Nl Enum Brace"
+ValueDefault=ignore
+
+[Nl Enum Class]
+Category=3
+Description="<html>Add or remove newline between 'enum' and 'class'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_enum_class=ignore|nl_enum_class=add|nl_enum_class=remove|nl_enum_class=force|nl_enum_class=not_defined
+ChoicesReadable="Ignore Nl Enum Class|Add Nl Enum Class|Remove Nl Enum Class|Force Nl Enum Class"
+ValueDefault=ignore
+
+[Nl Enum Class Identifier]
+Category=3
+Description="<html>Add or remove newline between 'enum class' and the identifier.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_enum_class_identifier=ignore|nl_enum_class_identifier=add|nl_enum_class_identifier=remove|nl_enum_class_identifier=force|nl_enum_class_identifier=not_defined
+ChoicesReadable="Ignore Nl Enum Class Identifier|Add Nl Enum Class Identifier|Remove Nl Enum Class Identifier|Force Nl Enum Class Identifier"
+ValueDefault=ignore
+
+[Nl Enum Identifier Colon]
+Category=3
+Description="<html>Add or remove newline between 'enum class' type and ':'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_enum_identifier_colon=ignore|nl_enum_identifier_colon=add|nl_enum_identifier_colon=remove|nl_enum_identifier_colon=force|nl_enum_identifier_colon=not_defined
+ChoicesReadable="Ignore Nl Enum Identifier Colon|Add Nl Enum Identifier Colon|Remove Nl Enum Identifier Colon|Force Nl Enum Identifier Colon"
+ValueDefault=ignore
+
+[Nl Enum Colon Type]
+Category=3
+Description="<html>Add or remove newline between 'enum class identifier :' and type.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_enum_colon_type=ignore|nl_enum_colon_type=add|nl_enum_colon_type=remove|nl_enum_colon_type=force|nl_enum_colon_type=not_defined
+ChoicesReadable="Ignore Nl Enum Colon Type|Add Nl Enum Colon Type|Remove Nl Enum Colon Type|Force Nl Enum Colon Type"
+ValueDefault=ignore
+
+[Nl Struct Brace]
+Category=3
+Description="<html>Add or remove newline between 'struct and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_struct_brace=ignore|nl_struct_brace=add|nl_struct_brace=remove|nl_struct_brace=force|nl_struct_brace=not_defined
+ChoicesReadable="Ignore Nl Struct Brace|Add Nl Struct Brace|Remove Nl Struct Brace|Force Nl Struct Brace"
+ValueDefault=ignore
+
+[Nl Union Brace]
+Category=3
+Description="<html>Add or remove newline between 'union' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_union_brace=ignore|nl_union_brace=add|nl_union_brace=remove|nl_union_brace=force|nl_union_brace=not_defined
+ChoicesReadable="Ignore Nl Union Brace|Add Nl Union Brace|Remove Nl Union Brace|Force Nl Union Brace"
+ValueDefault=ignore
+
+[Nl If Brace]
+Category=3
+Description="<html>Add or remove newline between 'if' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_if_brace=ignore|nl_if_brace=add|nl_if_brace=remove|nl_if_brace=force|nl_if_brace=not_defined
+ChoicesReadable="Ignore Nl If Brace|Add Nl If Brace|Remove Nl If Brace|Force Nl If Brace"
+ValueDefault=ignore
+
+[Nl Brace Else]
+Category=3
+Description="<html>Add or remove newline between '}' and 'else'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_brace_else=ignore|nl_brace_else=add|nl_brace_else=remove|nl_brace_else=force|nl_brace_else=not_defined
+ChoicesReadable="Ignore Nl Brace Else|Add Nl Brace Else|Remove Nl Brace Else|Force Nl Brace Else"
+ValueDefault=ignore
+
+[Nl Elseif Brace]
+Category=3
+Description="<html>Add or remove newline between 'else if' and '{'. If set to ignore,<br/>nl_if_brace is used instead.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_elseif_brace=ignore|nl_elseif_brace=add|nl_elseif_brace=remove|nl_elseif_brace=force|nl_elseif_brace=not_defined
+ChoicesReadable="Ignore Nl Elseif Brace|Add Nl Elseif Brace|Remove Nl Elseif Brace|Force Nl Elseif Brace"
+ValueDefault=ignore
+
+[Nl Else Brace]
+Category=3
+Description="<html>Add or remove newline between 'else' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_else_brace=ignore|nl_else_brace=add|nl_else_brace=remove|nl_else_brace=force|nl_else_brace=not_defined
+ChoicesReadable="Ignore Nl Else Brace|Add Nl Else Brace|Remove Nl Else Brace|Force Nl Else Brace"
+ValueDefault=ignore
+
+[Nl Else If]
+Category=3
+Description="<html>Add or remove newline between 'else' and 'if'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_else_if=ignore|nl_else_if=add|nl_else_if=remove|nl_else_if=force|nl_else_if=not_defined
+ChoicesReadable="Ignore Nl Else If|Add Nl Else If|Remove Nl Else If|Force Nl Else If"
+ValueDefault=ignore
+
+[Nl Before Opening Brace Func Class Def]
+Category=3
+Description="<html>Add or remove newline before '{' opening brace</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_before_opening_brace_func_class_def=ignore|nl_before_opening_brace_func_class_def=add|nl_before_opening_brace_func_class_def=remove|nl_before_opening_brace_func_class_def=force|nl_before_opening_brace_func_class_def=not_defined
+ChoicesReadable="Ignore Nl Before Opening Brace Func Class Def|Add Nl Before Opening Brace Func Class Def|Remove Nl Before Opening Brace Func Class Def|Force Nl Before Opening Brace Func Class Def"
+ValueDefault=ignore
+
+[Nl Before If Closing Paren]
+Category=3
+Description="<html>Add or remove newline before 'if'/'else if' closing parenthesis.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_before_if_closing_paren=ignore|nl_before_if_closing_paren=add|nl_before_if_closing_paren=remove|nl_before_if_closing_paren=force|nl_before_if_closing_paren=not_defined
+ChoicesReadable="Ignore Nl Before If Closing Paren|Add Nl Before If Closing Paren|Remove Nl Before If Closing Paren|Force Nl Before If Closing Paren"
+ValueDefault=ignore
+
+[Nl Brace Finally]
+Category=3
+Description="<html>Add or remove newline between '}' and 'finally'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_brace_finally=ignore|nl_brace_finally=add|nl_brace_finally=remove|nl_brace_finally=force|nl_brace_finally=not_defined
+ChoicesReadable="Ignore Nl Brace Finally|Add Nl Brace Finally|Remove Nl Brace Finally|Force Nl Brace Finally"
+ValueDefault=ignore
+
+[Nl Finally Brace]
+Category=3
+Description="<html>Add or remove newline between 'finally' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_finally_brace=ignore|nl_finally_brace=add|nl_finally_brace=remove|nl_finally_brace=force|nl_finally_brace=not_defined
+ChoicesReadable="Ignore Nl Finally Brace|Add Nl Finally Brace|Remove Nl Finally Brace|Force Nl Finally Brace"
+ValueDefault=ignore
+
+[Nl Try Brace]
+Category=3
+Description="<html>Add or remove newline between 'try' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_try_brace=ignore|nl_try_brace=add|nl_try_brace=remove|nl_try_brace=force|nl_try_brace=not_defined
+ChoicesReadable="Ignore Nl Try Brace|Add Nl Try Brace|Remove Nl Try Brace|Force Nl Try Brace"
+ValueDefault=ignore
+
+[Nl Getset Brace]
+Category=3
+Description="<html>Add or remove newline between get/set and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_getset_brace=ignore|nl_getset_brace=add|nl_getset_brace=remove|nl_getset_brace=force|nl_getset_brace=not_defined
+ChoicesReadable="Ignore Nl Getset Brace|Add Nl Getset Brace|Remove Nl Getset Brace|Force Nl Getset Brace"
+ValueDefault=ignore
+
+[Nl For Brace]
+Category=3
+Description="<html>Add or remove newline between 'for' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_for_brace=ignore|nl_for_brace=add|nl_for_brace=remove|nl_for_brace=force|nl_for_brace=not_defined
+ChoicesReadable="Ignore Nl For Brace|Add Nl For Brace|Remove Nl For Brace|Force Nl For Brace"
+ValueDefault=ignore
+
+[Nl Catch Brace]
+Category=3
+Description="<html>Add or remove newline before the '{' of a 'catch' statement, as in<br/>'catch (decl) &lt;here&gt; {'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_catch_brace=ignore|nl_catch_brace=add|nl_catch_brace=remove|nl_catch_brace=force|nl_catch_brace=not_defined
+ChoicesReadable="Ignore Nl Catch Brace|Add Nl Catch Brace|Remove Nl Catch Brace|Force Nl Catch Brace"
+ValueDefault=ignore
+
+[Nl Oc Catch Brace]
+Category=3
+Description="<html>(OC) Add or remove newline before the '{' of a '@catch' statement, as in<br/>'@catch (decl) &lt;here&gt; {'. If set to ignore, nl_catch_brace is used.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_oc_catch_brace=ignore|nl_oc_catch_brace=add|nl_oc_catch_brace=remove|nl_oc_catch_brace=force|nl_oc_catch_brace=not_defined
+ChoicesReadable="Ignore Nl Oc Catch Brace|Add Nl Oc Catch Brace|Remove Nl Oc Catch Brace|Force Nl Oc Catch Brace"
+ValueDefault=ignore
+
+[Nl Brace Catch]
+Category=3
+Description="<html>Add or remove newline between '}' and 'catch'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_brace_catch=ignore|nl_brace_catch=add|nl_brace_catch=remove|nl_brace_catch=force|nl_brace_catch=not_defined
+ChoicesReadable="Ignore Nl Brace Catch|Add Nl Brace Catch|Remove Nl Brace Catch|Force Nl Brace Catch"
+ValueDefault=ignore
+
+[Nl Oc Brace Catch]
+Category=3
+Description="<html>(OC) Add or remove newline between '}' and '@catch'. If set to ignore,<br/>nl_brace_catch is used.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_oc_brace_catch=ignore|nl_oc_brace_catch=add|nl_oc_brace_catch=remove|nl_oc_brace_catch=force|nl_oc_brace_catch=not_defined
+ChoicesReadable="Ignore Nl Oc Brace Catch|Add Nl Oc Brace Catch|Remove Nl Oc Brace Catch|Force Nl Oc Brace Catch"
+ValueDefault=ignore
+
+[Nl Brace Square]
+Category=3
+Description="<html>Add or remove newline between '}' and ']'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_brace_square=ignore|nl_brace_square=add|nl_brace_square=remove|nl_brace_square=force|nl_brace_square=not_defined
+ChoicesReadable="Ignore Nl Brace Square|Add Nl Brace Square|Remove Nl Brace Square|Force Nl Brace Square"
+ValueDefault=ignore
+
+[Nl Brace Fparen]
+Category=3
+Description="<html>Add or remove newline between '}' and ')' in a function invocation.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_brace_fparen=ignore|nl_brace_fparen=add|nl_brace_fparen=remove|nl_brace_fparen=force|nl_brace_fparen=not_defined
+ChoicesReadable="Ignore Nl Brace Fparen|Add Nl Brace Fparen|Remove Nl Brace Fparen|Force Nl Brace Fparen"
+ValueDefault=ignore
+
+[Nl While Brace]
+Category=3
+Description="<html>Add or remove newline between 'while' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_while_brace=ignore|nl_while_brace=add|nl_while_brace=remove|nl_while_brace=force|nl_while_brace=not_defined
+ChoicesReadable="Ignore Nl While Brace|Add Nl While Brace|Remove Nl While Brace|Force Nl While Brace"
+ValueDefault=ignore
+
+[Nl Scope Brace]
+Category=3
+Description="<html>(D) Add or remove newline between 'scope (x)' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_scope_brace=ignore|nl_scope_brace=add|nl_scope_brace=remove|nl_scope_brace=force|nl_scope_brace=not_defined
+ChoicesReadable="Ignore Nl Scope Brace|Add Nl Scope Brace|Remove Nl Scope Brace|Force Nl Scope Brace"
+ValueDefault=ignore
+
+[Nl Unittest Brace]
+Category=3
+Description="<html>(D) Add or remove newline between 'unittest' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_unittest_brace=ignore|nl_unittest_brace=add|nl_unittest_brace=remove|nl_unittest_brace=force|nl_unittest_brace=not_defined
+ChoicesReadable="Ignore Nl Unittest Brace|Add Nl Unittest Brace|Remove Nl Unittest Brace|Force Nl Unittest Brace"
+ValueDefault=ignore
+
+[Nl Version Brace]
+Category=3
+Description="<html>(D) Add or remove newline between 'version (x)' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_version_brace=ignore|nl_version_brace=add|nl_version_brace=remove|nl_version_brace=force|nl_version_brace=not_defined
+ChoicesReadable="Ignore Nl Version Brace|Add Nl Version Brace|Remove Nl Version Brace|Force Nl Version Brace"
+ValueDefault=ignore
+
+[Nl Using Brace]
+Category=3
+Description="<html>(C#) Add or remove newline between 'using' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_using_brace=ignore|nl_using_brace=add|nl_using_brace=remove|nl_using_brace=force|nl_using_brace=not_defined
+ChoicesReadable="Ignore Nl Using Brace|Add Nl Using Brace|Remove Nl Using Brace|Force Nl Using Brace"
+ValueDefault=ignore
+
+[Nl Brace Brace]
+Category=3
+Description="<html>Add or remove newline between two open or close braces. Due to general<br/>newline/brace handling, REMOVE may not work.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_brace_brace=ignore|nl_brace_brace=add|nl_brace_brace=remove|nl_brace_brace=force|nl_brace_brace=not_defined
+ChoicesReadable="Ignore Nl Brace Brace|Add Nl Brace Brace|Remove Nl Brace Brace|Force Nl Brace Brace"
+ValueDefault=ignore
+
+[Nl Do Brace]
+Category=3
+Description="<html>Add or remove newline between 'do' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_do_brace=ignore|nl_do_brace=add|nl_do_brace=remove|nl_do_brace=force|nl_do_brace=not_defined
+ChoicesReadable="Ignore Nl Do Brace|Add Nl Do Brace|Remove Nl Do Brace|Force Nl Do Brace"
+ValueDefault=ignore
+
+[Nl Brace While]
+Category=3
+Description="<html>Add or remove newline between '}' and 'while' of 'do' statement.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_brace_while=ignore|nl_brace_while=add|nl_brace_while=remove|nl_brace_while=force|nl_brace_while=not_defined
+ChoicesReadable="Ignore Nl Brace While|Add Nl Brace While|Remove Nl Brace While|Force Nl Brace While"
+ValueDefault=ignore
+
+[Nl Switch Brace]
+Category=3
+Description="<html>Add or remove newline between 'switch' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_switch_brace=ignore|nl_switch_brace=add|nl_switch_brace=remove|nl_switch_brace=force|nl_switch_brace=not_defined
+ChoicesReadable="Ignore Nl Switch Brace|Add Nl Switch Brace|Remove Nl Switch Brace|Force Nl Switch Brace"
+ValueDefault=ignore
+
+[Nl Synchronized Brace]
+Category=3
+Description="<html>Add or remove newline between 'synchronized' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_synchronized_brace=ignore|nl_synchronized_brace=add|nl_synchronized_brace=remove|nl_synchronized_brace=force|nl_synchronized_brace=not_defined
+ChoicesReadable="Ignore Nl Synchronized Brace|Add Nl Synchronized Brace|Remove Nl Synchronized Brace|Force Nl Synchronized Brace"
+ValueDefault=ignore
+
+[Nl Multi Line Cond]
+Category=3
+Description="<html>Add a newline between ')' and '{' if the ')' is on a different line than the<br/>if/for/etc.<br/><br/>Overrides nl_for_brace, nl_if_brace, nl_switch_brace, nl_while_switch and<br/>nl_catch_brace.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_multi_line_cond=true|nl_multi_line_cond=false
+ValueDefault=false
+
+[Nl Multi Line Sparen Open]
+Category=3
+Description="<html>Add a newline after '(' if an if/for/while/switch condition spans multiple<br/>lines</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_multi_line_sparen_open=ignore|nl_multi_line_sparen_open=add|nl_multi_line_sparen_open=remove|nl_multi_line_sparen_open=force|nl_multi_line_sparen_open=not_defined
+ChoicesReadable="Ignore Nl Multi Line Sparen Open|Add Nl Multi Line Sparen Open|Remove Nl Multi Line Sparen Open|Force Nl Multi Line Sparen Open"
+ValueDefault=ignore
+
+[Nl Multi Line Sparen Close]
+Category=3
+Description="<html>Add a newline before ')' if an if/for/while/switch condition spans multiple<br/>lines. Overrides nl_before_if_closing_paren if both are specified.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_multi_line_sparen_close=ignore|nl_multi_line_sparen_close=add|nl_multi_line_sparen_close=remove|nl_multi_line_sparen_close=force|nl_multi_line_sparen_close=not_defined
+ChoicesReadable="Ignore Nl Multi Line Sparen Close|Add Nl Multi Line Sparen Close|Remove Nl Multi Line Sparen Close|Force Nl Multi Line Sparen Close"
+ValueDefault=ignore
+
+[Nl Multi Line Define]
+Category=3
+Description="<html>Force a newline in a define after the macro name for multi-line defines.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_multi_line_define=true|nl_multi_line_define=false
+ValueDefault=false
+
+[Nl Before Case]
+Category=3
+Description="<html>Whether to add a newline before 'case', and a blank line before a 'case'<br/>statement that follows a ';' or '}'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_before_case=true|nl_before_case=false
+ValueDefault=false
+
+[Nl After Case]
+Category=3
+Description="<html>Whether to add a newline after a 'case' statement.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_after_case=true|nl_after_case=false
+ValueDefault=false
+
+[Nl Case Colon Brace]
+Category=3
+Description="<html>Add or remove newline between a case ':' and '{'.<br/><br/>Overrides nl_after_case.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_case_colon_brace=ignore|nl_case_colon_brace=add|nl_case_colon_brace=remove|nl_case_colon_brace=force|nl_case_colon_brace=not_defined
+ChoicesReadable="Ignore Nl Case Colon Brace|Add Nl Case Colon Brace|Remove Nl Case Colon Brace|Force Nl Case Colon Brace"
+ValueDefault=ignore
+
+[Nl Before Throw]
+Category=3
+Description="<html>Add or remove newline between ')' and 'throw'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_before_throw=ignore|nl_before_throw=add|nl_before_throw=remove|nl_before_throw=force|nl_before_throw=not_defined
+ChoicesReadable="Ignore Nl Before Throw|Add Nl Before Throw|Remove Nl Before Throw|Force Nl Before Throw"
+ValueDefault=ignore
+
+[Nl Namespace Brace]
+Category=3
+Description="<html>Add or remove newline between 'namespace' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_namespace_brace=ignore|nl_namespace_brace=add|nl_namespace_brace=remove|nl_namespace_brace=force|nl_namespace_brace=not_defined
+ChoicesReadable="Ignore Nl Namespace Brace|Add Nl Namespace Brace|Remove Nl Namespace Brace|Force Nl Namespace Brace"
+ValueDefault=ignore
+
+[Nl Template Class]
+Category=3
+Description="<html>Add or remove newline after 'template&lt;...&gt;' of a template class.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_template_class=ignore|nl_template_class=add|nl_template_class=remove|nl_template_class=force|nl_template_class=not_defined
+ChoicesReadable="Ignore Nl Template Class|Add Nl Template Class|Remove Nl Template Class|Force Nl Template Class"
+ValueDefault=ignore
+
+[Nl Template Class Decl]
+Category=3
+Description="<html>Add or remove newline after 'template&lt;...&gt;' of a template class declaration.<br/><br/>Overrides nl_template_class.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_template_class_decl=ignore|nl_template_class_decl=add|nl_template_class_decl=remove|nl_template_class_decl=force|nl_template_class_decl=not_defined
+ChoicesReadable="Ignore Nl Template Class Decl|Add Nl Template Class Decl|Remove Nl Template Class Decl|Force Nl Template Class Decl"
+ValueDefault=ignore
+
+[Nl Template Class Decl Special]
+Category=3
+Description="<html>Add or remove newline after 'template&lt;&gt;' of a specialized class declaration.<br/><br/>Overrides nl_template_class_decl.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_template_class_decl_special=ignore|nl_template_class_decl_special=add|nl_template_class_decl_special=remove|nl_template_class_decl_special=force|nl_template_class_decl_special=not_defined
+ChoicesReadable="Ignore Nl Template Class Decl Special|Add Nl Template Class Decl Special|Remove Nl Template Class Decl Special|Force Nl Template Class Decl Special"
+ValueDefault=ignore
+
+[Nl Template Class Def]
+Category=3
+Description="<html>Add or remove newline after 'template&lt;...&gt;' of a template class definition.<br/><br/>Overrides nl_template_class.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_template_class_def=ignore|nl_template_class_def=add|nl_template_class_def=remove|nl_template_class_def=force|nl_template_class_def=not_defined
+ChoicesReadable="Ignore Nl Template Class Def|Add Nl Template Class Def|Remove Nl Template Class Def|Force Nl Template Class Def"
+ValueDefault=ignore
+
+[Nl Template Class Def Special]
+Category=3
+Description="<html>Add or remove newline after 'template&lt;&gt;' of a specialized class definition.<br/><br/>Overrides nl_template_class_def.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_template_class_def_special=ignore|nl_template_class_def_special=add|nl_template_class_def_special=remove|nl_template_class_def_special=force|nl_template_class_def_special=not_defined
+ChoicesReadable="Ignore Nl Template Class Def Special|Add Nl Template Class Def Special|Remove Nl Template Class Def Special|Force Nl Template Class Def Special"
+ValueDefault=ignore
+
+[Nl Template Func]
+Category=3
+Description="<html>Add or remove newline after 'template&lt;...&gt;' of a template function.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_template_func=ignore|nl_template_func=add|nl_template_func=remove|nl_template_func=force|nl_template_func=not_defined
+ChoicesReadable="Ignore Nl Template Func|Add Nl Template Func|Remove Nl Template Func|Force Nl Template Func"
+ValueDefault=ignore
+
+[Nl Template Func Decl]
+Category=3
+Description="<html>Add or remove newline after 'template&lt;...&gt;' of a template function<br/>declaration.<br/><br/>Overrides nl_template_func.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_template_func_decl=ignore|nl_template_func_decl=add|nl_template_func_decl=remove|nl_template_func_decl=force|nl_template_func_decl=not_defined
+ChoicesReadable="Ignore Nl Template Func Decl|Add Nl Template Func Decl|Remove Nl Template Func Decl|Force Nl Template Func Decl"
+ValueDefault=ignore
+
+[Nl Template Func Decl Special]
+Category=3
+Description="<html>Add or remove newline after 'template&lt;&gt;' of a specialized function<br/>declaration.<br/><br/>Overrides nl_template_func_decl.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_template_func_decl_special=ignore|nl_template_func_decl_special=add|nl_template_func_decl_special=remove|nl_template_func_decl_special=force|nl_template_func_decl_special=not_defined
+ChoicesReadable="Ignore Nl Template Func Decl Special|Add Nl Template Func Decl Special|Remove Nl Template Func Decl Special|Force Nl Template Func Decl Special"
+ValueDefault=ignore
+
+[Nl Template Func Def]
+Category=3
+Description="<html>Add or remove newline after 'template&lt;...&gt;' of a template function<br/>definition.<br/><br/>Overrides nl_template_func.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_template_func_def=ignore|nl_template_func_def=add|nl_template_func_def=remove|nl_template_func_def=force|nl_template_func_def=not_defined
+ChoicesReadable="Ignore Nl Template Func Def|Add Nl Template Func Def|Remove Nl Template Func Def|Force Nl Template Func Def"
+ValueDefault=ignore
+
+[Nl Template Func Def Special]
+Category=3
+Description="<html>Add or remove newline after 'template&lt;&gt;' of a specialized function<br/>definition.<br/><br/>Overrides nl_template_func_def.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_template_func_def_special=ignore|nl_template_func_def_special=add|nl_template_func_def_special=remove|nl_template_func_def_special=force|nl_template_func_def_special=not_defined
+ChoicesReadable="Ignore Nl Template Func Def Special|Add Nl Template Func Def Special|Remove Nl Template Func Def Special|Force Nl Template Func Def Special"
+ValueDefault=ignore
+
+[Nl Template Var]
+Category=3
+Description="<html>Add or remove newline after 'template&lt;...&gt;' of a template variable.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_template_var=ignore|nl_template_var=add|nl_template_var=remove|nl_template_var=force|nl_template_var=not_defined
+ChoicesReadable="Ignore Nl Template Var|Add Nl Template Var|Remove Nl Template Var|Force Nl Template Var"
+ValueDefault=ignore
+
+[Nl Template Using]
+Category=3
+Description="<html>Add or remove newline between 'template&lt;...&gt;' and 'using' of a templated<br/>type alias.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_template_using=ignore|nl_template_using=add|nl_template_using=remove|nl_template_using=force|nl_template_using=not_defined
+ChoicesReadable="Ignore Nl Template Using|Add Nl Template Using|Remove Nl Template Using|Force Nl Template Using"
+ValueDefault=ignore
+
+[Nl Class Brace]
+Category=3
+Description="<html>Add or remove newline between 'class' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_class_brace=ignore|nl_class_brace=add|nl_class_brace=remove|nl_class_brace=force|nl_class_brace=not_defined
+ChoicesReadable="Ignore Nl Class Brace|Add Nl Class Brace|Remove Nl Class Brace|Force Nl Class Brace"
+ValueDefault=ignore
+
+[Nl Class Init Args]
+Category=3
+Description="<html>Add or remove newline before or after (depending on pos_class_comma,<br/>may not be IGNORE) each',' in the base class list.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_class_init_args=ignore|nl_class_init_args=add|nl_class_init_args=remove|nl_class_init_args=force|nl_class_init_args=not_defined
+ChoicesReadable="Ignore Nl Class Init Args|Add Nl Class Init Args|Remove Nl Class Init Args|Force Nl Class Init Args"
+ValueDefault=ignore
+
+[Nl Constr Init Args]
+Category=3
+Description="<html>Add or remove newline after each ',' in the constructor member<br/>initialization. Related to nl_constr_colon, pos_constr_colon and<br/>pos_constr_comma.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_constr_init_args=ignore|nl_constr_init_args=add|nl_constr_init_args=remove|nl_constr_init_args=force|nl_constr_init_args=not_defined
+ChoicesReadable="Ignore Nl Constr Init Args|Add Nl Constr Init Args|Remove Nl Constr Init Args|Force Nl Constr Init Args"
+ValueDefault=ignore
+
+[Nl Enum Own Lines]
+Category=3
+Description="<html>Add or remove newline before first element, after comma, and after last<br/>element, in 'enum'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_enum_own_lines=ignore|nl_enum_own_lines=add|nl_enum_own_lines=remove|nl_enum_own_lines=force|nl_enum_own_lines=not_defined
+ChoicesReadable="Ignore Nl Enum Own Lines|Add Nl Enum Own Lines|Remove Nl Enum Own Lines|Force Nl Enum Own Lines"
+ValueDefault=ignore
+
+[Nl Func Type Name]
+Category=3
+Description="<html>Add or remove newline between return type and function name in a function<br/>definition.<br/>might be modified by nl_func_leave_one_liners</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_type_name=ignore|nl_func_type_name=add|nl_func_type_name=remove|nl_func_type_name=force|nl_func_type_name=not_defined
+ChoicesReadable="Ignore Nl Func Type Name|Add Nl Func Type Name|Remove Nl Func Type Name|Force Nl Func Type Name"
+ValueDefault=ignore
+
+[Nl Func Type Name Class]
+Category=3
+Description="<html>Add or remove newline between return type and function name inside a class<br/>definition. If set to ignore, nl_func_type_name or nl_func_proto_type_name<br/>is used instead.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_type_name_class=ignore|nl_func_type_name_class=add|nl_func_type_name_class=remove|nl_func_type_name_class=force|nl_func_type_name_class=not_defined
+ChoicesReadable="Ignore Nl Func Type Name Class|Add Nl Func Type Name Class|Remove Nl Func Type Name Class|Force Nl Func Type Name Class"
+ValueDefault=ignore
+
+[Nl Func Class Scope]
+Category=3
+Description="<html>Add or remove newline between class specification and '::'<br/>in 'void A::f() { }'. Only appears in separate member implementation (does<br/>not appear with in-line implementation).</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_class_scope=ignore|nl_func_class_scope=add|nl_func_class_scope=remove|nl_func_class_scope=force|nl_func_class_scope=not_defined
+ChoicesReadable="Ignore Nl Func Class Scope|Add Nl Func Class Scope|Remove Nl Func Class Scope|Force Nl Func Class Scope"
+ValueDefault=ignore
+
+[Nl Func Scope Name]
+Category=3
+Description="<html>Add or remove newline between function scope and name, as in<br/>'void A :: &lt;here&gt; f() { }'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_scope_name=ignore|nl_func_scope_name=add|nl_func_scope_name=remove|nl_func_scope_name=force|nl_func_scope_name=not_defined
+ChoicesReadable="Ignore Nl Func Scope Name|Add Nl Func Scope Name|Remove Nl Func Scope Name|Force Nl Func Scope Name"
+ValueDefault=ignore
+
+[Nl Func Proto Type Name]
+Category=3
+Description="<html>Add or remove newline between return type and function name in a prototype.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_proto_type_name=ignore|nl_func_proto_type_name=add|nl_func_proto_type_name=remove|nl_func_proto_type_name=force|nl_func_proto_type_name=not_defined
+ChoicesReadable="Ignore Nl Func Proto Type Name|Add Nl Func Proto Type Name|Remove Nl Func Proto Type Name|Force Nl Func Proto Type Name"
+ValueDefault=ignore
+
+[Nl Func Paren]
+Category=3
+Description="<html>Add or remove newline between a function name and the opening '(' in the<br/>declaration.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_paren=ignore|nl_func_paren=add|nl_func_paren=remove|nl_func_paren=force|nl_func_paren=not_defined
+ChoicesReadable="Ignore Nl Func Paren|Add Nl Func Paren|Remove Nl Func Paren|Force Nl Func Paren"
+ValueDefault=ignore
+
+[Nl Func Paren Empty]
+Category=3
+Description="<html>Overrides nl_func_paren for functions with no parameters.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_paren_empty=ignore|nl_func_paren_empty=add|nl_func_paren_empty=remove|nl_func_paren_empty=force|nl_func_paren_empty=not_defined
+ChoicesReadable="Ignore Nl Func Paren Empty|Add Nl Func Paren Empty|Remove Nl Func Paren Empty|Force Nl Func Paren Empty"
+ValueDefault=ignore
+
+[Nl Func Def Paren]
+Category=3
+Description="<html>Add or remove newline between a function name and the opening '(' in the<br/>definition.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_def_paren=ignore|nl_func_def_paren=add|nl_func_def_paren=remove|nl_func_def_paren=force|nl_func_def_paren=not_defined
+ChoicesReadable="Ignore Nl Func Def Paren|Add Nl Func Def Paren|Remove Nl Func Def Paren|Force Nl Func Def Paren"
+ValueDefault=ignore
+
+[Nl Func Def Paren Empty]
+Category=3
+Description="<html>Overrides nl_func_def_paren for functions with no parameters.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_def_paren_empty=ignore|nl_func_def_paren_empty=add|nl_func_def_paren_empty=remove|nl_func_def_paren_empty=force|nl_func_def_paren_empty=not_defined
+ChoicesReadable="Ignore Nl Func Def Paren Empty|Add Nl Func Def Paren Empty|Remove Nl Func Def Paren Empty|Force Nl Func Def Paren Empty"
+ValueDefault=ignore
+
+[Nl Func Call Paren]
+Category=3
+Description="<html>Add or remove newline between a function name and the opening '(' in the<br/>call.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_call_paren=ignore|nl_func_call_paren=add|nl_func_call_paren=remove|nl_func_call_paren=force|nl_func_call_paren=not_defined
+ChoicesReadable="Ignore Nl Func Call Paren|Add Nl Func Call Paren|Remove Nl Func Call Paren|Force Nl Func Call Paren"
+ValueDefault=ignore
+
+[Nl Func Call Paren Empty]
+Category=3
+Description="<html>Overrides nl_func_call_paren for functions with no parameters.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_call_paren_empty=ignore|nl_func_call_paren_empty=add|nl_func_call_paren_empty=remove|nl_func_call_paren_empty=force|nl_func_call_paren_empty=not_defined
+ChoicesReadable="Ignore Nl Func Call Paren Empty|Add Nl Func Call Paren Empty|Remove Nl Func Call Paren Empty|Force Nl Func Call Paren Empty"
+ValueDefault=ignore
+
+[Nl Func Decl Start]
+Category=3
+Description="<html>Add or remove newline after '(' in a function declaration.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_decl_start=ignore|nl_func_decl_start=add|nl_func_decl_start=remove|nl_func_decl_start=force|nl_func_decl_start=not_defined
+ChoicesReadable="Ignore Nl Func Decl Start|Add Nl Func Decl Start|Remove Nl Func Decl Start|Force Nl Func Decl Start"
+ValueDefault=ignore
+
+[Nl Func Def Start]
+Category=3
+Description="<html>Add or remove newline after '(' in a function definition.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_def_start=ignore|nl_func_def_start=add|nl_func_def_start=remove|nl_func_def_start=force|nl_func_def_start=not_defined
+ChoicesReadable="Ignore Nl Func Def Start|Add Nl Func Def Start|Remove Nl Func Def Start|Force Nl Func Def Start"
+ValueDefault=ignore
+
+[Nl Func Decl Start Single]
+Category=3
+Description="<html>Overrides nl_func_decl_start when there is only one parameter.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_decl_start_single=ignore|nl_func_decl_start_single=add|nl_func_decl_start_single=remove|nl_func_decl_start_single=force|nl_func_decl_start_single=not_defined
+ChoicesReadable="Ignore Nl Func Decl Start Single|Add Nl Func Decl Start Single|Remove Nl Func Decl Start Single|Force Nl Func Decl Start Single"
+ValueDefault=ignore
+
+[Nl Func Def Start Single]
+Category=3
+Description="<html>Overrides nl_func_def_start when there is only one parameter.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_def_start_single=ignore|nl_func_def_start_single=add|nl_func_def_start_single=remove|nl_func_def_start_single=force|nl_func_def_start_single=not_defined
+ChoicesReadable="Ignore Nl Func Def Start Single|Add Nl Func Def Start Single|Remove Nl Func Def Start Single|Force Nl Func Def Start Single"
+ValueDefault=ignore
+
+[Nl Func Decl Start Multi Line]
+Category=3
+Description="<html>Whether to add a newline after '(' in a function declaration if '(' and ')'<br/>are in different lines. If false, nl_func_decl_start is used instead.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_func_decl_start_multi_line=true|nl_func_decl_start_multi_line=false
+ValueDefault=false
+
+[Nl Func Def Start Multi Line]
+Category=3
+Description="<html>Whether to add a newline after '(' in a function definition if '(' and ')'<br/>are in different lines. If false, nl_func_def_start is used instead.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_func_def_start_multi_line=true|nl_func_def_start_multi_line=false
+ValueDefault=false
+
+[Nl Func Decl Args]
+Category=3
+Description="<html>Add or remove newline after each ',' in a function declaration.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_decl_args=ignore|nl_func_decl_args=add|nl_func_decl_args=remove|nl_func_decl_args=force|nl_func_decl_args=not_defined
+ChoicesReadable="Ignore Nl Func Decl Args|Add Nl Func Decl Args|Remove Nl Func Decl Args|Force Nl Func Decl Args"
+ValueDefault=ignore
+
+[Nl Func Def Args]
+Category=3
+Description="<html>Add or remove newline after each ',' in a function definition.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_def_args=ignore|nl_func_def_args=add|nl_func_def_args=remove|nl_func_def_args=force|nl_func_def_args=not_defined
+ChoicesReadable="Ignore Nl Func Def Args|Add Nl Func Def Args|Remove Nl Func Def Args|Force Nl Func Def Args"
+ValueDefault=ignore
+
+[Nl Func Call Args]
+Category=3
+Description="<html>Add or remove newline after each ',' in a function call.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_call_args=ignore|nl_func_call_args=add|nl_func_call_args=remove|nl_func_call_args=force|nl_func_call_args=not_defined
+ChoicesReadable="Ignore Nl Func Call Args|Add Nl Func Call Args|Remove Nl Func Call Args|Force Nl Func Call Args"
+ValueDefault=ignore
+
+[Nl Func Decl Args Multi Line]
+Category=3
+Description="<html>Whether to add a newline after each ',' in a function declaration if '('<br/>and ')' are in different lines. If false, nl_func_decl_args is used instead.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_func_decl_args_multi_line=true|nl_func_decl_args_multi_line=false
+ValueDefault=false
+
+[Nl Func Def Args Multi Line]
+Category=3
+Description="<html>Whether to add a newline after each ',' in a function definition if '('<br/>and ')' are in different lines. If false, nl_func_def_args is used instead.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_func_def_args_multi_line=true|nl_func_def_args_multi_line=false
+ValueDefault=false
+
+[Nl Func Decl End]
+Category=3
+Description="<html>Add or remove newline before the ')' in a function declaration.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_decl_end=ignore|nl_func_decl_end=add|nl_func_decl_end=remove|nl_func_decl_end=force|nl_func_decl_end=not_defined
+ChoicesReadable="Ignore Nl Func Decl End|Add Nl Func Decl End|Remove Nl Func Decl End|Force Nl Func Decl End"
+ValueDefault=ignore
+
+[Nl Func Def End]
+Category=3
+Description="<html>Add or remove newline before the ')' in a function definition.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_def_end=ignore|nl_func_def_end=add|nl_func_def_end=remove|nl_func_def_end=force|nl_func_def_end=not_defined
+ChoicesReadable="Ignore Nl Func Def End|Add Nl Func Def End|Remove Nl Func Def End|Force Nl Func Def End"
+ValueDefault=ignore
+
+[Nl Func Decl End Single]
+Category=3
+Description="<html>Overrides nl_func_decl_end when there is only one parameter.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_decl_end_single=ignore|nl_func_decl_end_single=add|nl_func_decl_end_single=remove|nl_func_decl_end_single=force|nl_func_decl_end_single=not_defined
+ChoicesReadable="Ignore Nl Func Decl End Single|Add Nl Func Decl End Single|Remove Nl Func Decl End Single|Force Nl Func Decl End Single"
+ValueDefault=ignore
+
+[Nl Func Def End Single]
+Category=3
+Description="<html>Overrides nl_func_def_end when there is only one parameter.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_def_end_single=ignore|nl_func_def_end_single=add|nl_func_def_end_single=remove|nl_func_def_end_single=force|nl_func_def_end_single=not_defined
+ChoicesReadable="Ignore Nl Func Def End Single|Add Nl Func Def End Single|Remove Nl Func Def End Single|Force Nl Func Def End Single"
+ValueDefault=ignore
+
+[Nl Func Decl End Multi Line]
+Category=3
+Description="<html>Whether to add a newline before ')' in a function declaration if '(' and ')'<br/>are in different lines. If false, nl_func_decl_end is used instead.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_func_decl_end_multi_line=true|nl_func_decl_end_multi_line=false
+ValueDefault=false
+
+[Nl Func Def End Multi Line]
+Category=3
+Description="<html>Whether to add a newline before ')' in a function definition if '(' and ')'<br/>are in different lines. If false, nl_func_def_end is used instead.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_func_def_end_multi_line=true|nl_func_def_end_multi_line=false
+ValueDefault=false
+
+[Nl Func Decl Empty]
+Category=3
+Description="<html>Add or remove newline between '()' in a function declaration.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_decl_empty=ignore|nl_func_decl_empty=add|nl_func_decl_empty=remove|nl_func_decl_empty=force|nl_func_decl_empty=not_defined
+ChoicesReadable="Ignore Nl Func Decl Empty|Add Nl Func Decl Empty|Remove Nl Func Decl Empty|Force Nl Func Decl Empty"
+ValueDefault=ignore
+
+[Nl Func Def Empty]
+Category=3
+Description="<html>Add or remove newline between '()' in a function definition.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_def_empty=ignore|nl_func_def_empty=add|nl_func_def_empty=remove|nl_func_def_empty=force|nl_func_def_empty=not_defined
+ChoicesReadable="Ignore Nl Func Def Empty|Add Nl Func Def Empty|Remove Nl Func Def Empty|Force Nl Func Def Empty"
+ValueDefault=ignore
+
+[Nl Func Call Empty]
+Category=3
+Description="<html>Add or remove newline between '()' in a function call.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_call_empty=ignore|nl_func_call_empty=add|nl_func_call_empty=remove|nl_func_call_empty=force|nl_func_call_empty=not_defined
+ChoicesReadable="Ignore Nl Func Call Empty|Add Nl Func Call Empty|Remove Nl Func Call Empty|Force Nl Func Call Empty"
+ValueDefault=ignore
+
+[Nl Func Call Start]
+Category=3
+Description="<html>Whether to add a newline after '(' in a function call,<br/>has preference over nl_func_call_start_multi_line.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_call_start=ignore|nl_func_call_start=add|nl_func_call_start=remove|nl_func_call_start=force|nl_func_call_start=not_defined
+ChoicesReadable="Ignore Nl Func Call Start|Add Nl Func Call Start|Remove Nl Func Call Start|Force Nl Func Call Start"
+ValueDefault=ignore
+
+[Nl Func Call End]
+Category=3
+Description="<html>Whether to add a newline before ')' in a function call.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_call_end=ignore|nl_func_call_end=add|nl_func_call_end=remove|nl_func_call_end=force|nl_func_call_end=not_defined
+ChoicesReadable="Ignore Nl Func Call End|Add Nl Func Call End|Remove Nl Func Call End|Force Nl Func Call End"
+ValueDefault=ignore
+
+[Nl Func Call Start Multi Line]
+Category=3
+Description="<html>Whether to add a newline after '(' in a function call if '(' and ')' are in<br/>different lines.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_func_call_start_multi_line=true|nl_func_call_start_multi_line=false
+ValueDefault=false
+
+[Nl Func Call Args Multi Line]
+Category=3
+Description="<html>Whether to add a newline after each ',' in a function call if '(' and ')'<br/>are in different lines.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_func_call_args_multi_line=true|nl_func_call_args_multi_line=false
+ValueDefault=false
+
+[Nl Func Call End Multi Line]
+Category=3
+Description="<html>Whether to add a newline before ')' in a function call if '(' and ')' are in<br/>different lines.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_func_call_end_multi_line=true|nl_func_call_end_multi_line=false
+ValueDefault=false
+
+[Nl Func Call Args Multi Line Ignore Closures]
+Category=3
+Description="<html>Whether to respect nl_func_call_XXX option in case of closure args.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_func_call_args_multi_line_ignore_closures=true|nl_func_call_args_multi_line_ignore_closures=false
+ValueDefault=false
+
+[Nl Template Start]
+Category=3
+Description="<html>Whether to add a newline after '&lt;' of a template parameter list.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_template_start=true|nl_template_start=false
+ValueDefault=false
+
+[Nl Template Args]
+Category=3
+Description="<html>Whether to add a newline after each ',' in a template parameter list.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_template_args=true|nl_template_args=false
+ValueDefault=false
+
+[Nl Template End]
+Category=3
+Description="<html>Whether to add a newline before '&gt;' of a template parameter list.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_template_end=true|nl_template_end=false
+ValueDefault=false
+
+[Nl Oc Msg Args]
+Category=3
+Description="<html>(OC) Whether to put each Objective-C message parameter on a separate line.<br/>See nl_oc_msg_leave_one_liner.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_oc_msg_args=true|nl_oc_msg_args=false
+ValueDefault=false
+
+[Nl Fdef Brace]
+Category=3
+Description="<html>Add or remove newline between function signature and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_fdef_brace=ignore|nl_fdef_brace=add|nl_fdef_brace=remove|nl_fdef_brace=force|nl_fdef_brace=not_defined
+ChoicesReadable="Ignore Nl Fdef Brace|Add Nl Fdef Brace|Remove Nl Fdef Brace|Force Nl Fdef Brace"
+ValueDefault=ignore
+
+[Nl Fdef Brace Cond]
+Category=3
+Description="<html>Add or remove newline between function signature and '{',<br/>if signature ends with ')'. Overrides nl_fdef_brace.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_fdef_brace_cond=ignore|nl_fdef_brace_cond=add|nl_fdef_brace_cond=remove|nl_fdef_brace_cond=force|nl_fdef_brace_cond=not_defined
+ChoicesReadable="Ignore Nl Fdef Brace Cond|Add Nl Fdef Brace Cond|Remove Nl Fdef Brace Cond|Force Nl Fdef Brace Cond"
+ValueDefault=ignore
+
+[Nl Cpp Ldef Brace]
+Category=3
+Description="<html>Add or remove newline between C++11 lambda signature and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_cpp_ldef_brace=ignore|nl_cpp_ldef_brace=add|nl_cpp_ldef_brace=remove|nl_cpp_ldef_brace=force|nl_cpp_ldef_brace=not_defined
+ChoicesReadable="Ignore Nl Cpp Ldef Brace|Add Nl Cpp Ldef Brace|Remove Nl Cpp Ldef Brace|Force Nl Cpp Ldef Brace"
+ValueDefault=ignore
+
+[Nl Return Expr]
+Category=3
+Description="<html>Add or remove newline between 'return' and the return expression.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_return_expr=ignore|nl_return_expr=add|nl_return_expr=remove|nl_return_expr=force|nl_return_expr=not_defined
+ChoicesReadable="Ignore Nl Return Expr|Add Nl Return Expr|Remove Nl Return Expr|Force Nl Return Expr"
+ValueDefault=ignore
+
+[Nl After Semicolon]
+Category=3
+Description="<html>Whether to add a newline after semicolons, except in 'for' statements.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_after_semicolon=true|nl_after_semicolon=false
+ValueDefault=false
+
+[Nl Paren Dbrace Open]
+Category=3
+Description="<html>(Java) Add or remove newline between the ')' and '{{' of the double brace<br/>initializer.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_paren_dbrace_open=ignore|nl_paren_dbrace_open=add|nl_paren_dbrace_open=remove|nl_paren_dbrace_open=force|nl_paren_dbrace_open=not_defined
+ChoicesReadable="Ignore Nl Paren Dbrace Open|Add Nl Paren Dbrace Open|Remove Nl Paren Dbrace Open|Force Nl Paren Dbrace Open"
+ValueDefault=ignore
+
+[Nl Type Brace Init Lst]
+Category=3
+Description="<html>Whether to add a newline after the type in an unnamed temporary<br/>direct-list-initialization, better:<br/>before a direct-list-initialization.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_type_brace_init_lst=ignore|nl_type_brace_init_lst=add|nl_type_brace_init_lst=remove|nl_type_brace_init_lst=force|nl_type_brace_init_lst=not_defined
+ChoicesReadable="Ignore Nl Type Brace Init Lst|Add Nl Type Brace Init Lst|Remove Nl Type Brace Init Lst|Force Nl Type Brace Init Lst"
+ValueDefault=ignore
+
+[Nl Type Brace Init Lst Open]
+Category=3
+Description="<html>Whether to add a newline after the open brace in an unnamed temporary<br/>direct-list-initialization.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_type_brace_init_lst_open=ignore|nl_type_brace_init_lst_open=add|nl_type_brace_init_lst_open=remove|nl_type_brace_init_lst_open=force|nl_type_brace_init_lst_open=not_defined
+ChoicesReadable="Ignore Nl Type Brace Init Lst Open|Add Nl Type Brace Init Lst Open|Remove Nl Type Brace Init Lst Open|Force Nl Type Brace Init Lst Open"
+ValueDefault=ignore
+
+[Nl Type Brace Init Lst Close]
+Category=3
+Description="<html>Whether to add a newline before the close brace in an unnamed temporary<br/>direct-list-initialization.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_type_brace_init_lst_close=ignore|nl_type_brace_init_lst_close=add|nl_type_brace_init_lst_close=remove|nl_type_brace_init_lst_close=force|nl_type_brace_init_lst_close=not_defined
+ChoicesReadable="Ignore Nl Type Brace Init Lst Close|Add Nl Type Brace Init Lst Close|Remove Nl Type Brace Init Lst Close|Force Nl Type Brace Init Lst Close"
+ValueDefault=ignore
+
+[Nl Before Brace Open]
+Category=3
+Description="<html>Whether to add a newline before '{'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_before_brace_open=true|nl_before_brace_open=false
+ValueDefault=false
+
+[Nl After Brace Open]
+Category=3
+Description="<html>Whether to add a newline after '{'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_after_brace_open=true|nl_after_brace_open=false
+ValueDefault=false
+
+[Nl After Brace Open Cmt]
+Category=3
+Description="<html>Whether to add a newline between the open brace and a trailing single-line<br/>comment. Requires nl_after_brace_open=true.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_after_brace_open_cmt=true|nl_after_brace_open_cmt=false
+ValueDefault=false
+
+[Nl After Vbrace Open]
+Category=3
+Description="<html>Whether to add a newline after a virtual brace open with a non-empty body.<br/>These occur in un-braced if/while/do/for statement bodies.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_after_vbrace_open=true|nl_after_vbrace_open=false
+ValueDefault=false
+
+[Nl After Vbrace Open Empty]
+Category=3
+Description="<html>Whether to add a newline after a virtual brace open with an empty body.<br/>These occur in un-braced if/while/do/for statement bodies.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_after_vbrace_open_empty=true|nl_after_vbrace_open_empty=false
+ValueDefault=false
+
+[Nl After Brace Close]
+Category=3
+Description="<html>Whether to add a newline after '}'. Does not apply if followed by a<br/>necessary ';'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_after_brace_close=true|nl_after_brace_close=false
+ValueDefault=false
+
+[Nl After Vbrace Close]
+Category=3
+Description="<html>Whether to add a newline after a virtual brace close,<br/>as in 'if (foo) a++; &lt;here&gt; return;'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_after_vbrace_close=true|nl_after_vbrace_close=false
+ValueDefault=false
+
+[Nl Brace Struct Var]
+Category=3
+Description="<html>Add or remove newline between the close brace and identifier,<br/>as in 'struct { int a; } &lt;here&gt; b;'. Affects enumerations, unions and<br/>structures. If set to ignore, uses nl_after_brace_close.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_brace_struct_var=ignore|nl_brace_struct_var=add|nl_brace_struct_var=remove|nl_brace_struct_var=force|nl_brace_struct_var=not_defined
+ChoicesReadable="Ignore Nl Brace Struct Var|Add Nl Brace Struct Var|Remove Nl Brace Struct Var|Force Nl Brace Struct Var"
+ValueDefault=ignore
+
+[Nl Define Macro]
+Category=3
+Description="<html>Whether to alter newlines in '#define' macros.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_define_macro=true|nl_define_macro=false
+ValueDefault=false
+
+[Nl Squeeze Paren Close]
+Category=3
+Description="<html>Whether to alter newlines between consecutive parenthesis closes. The number<br/>of closing parentheses in a line will depend on respective open parenthesis<br/>lines.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_squeeze_paren_close=true|nl_squeeze_paren_close=false
+ValueDefault=false
+
+[Nl Squeeze Ifdef]
+Category=3
+Description="<html>Whether to remove blanks after '#ifxx' and '#elxx', or before '#elxx' and<br/>'#endif'. Does not affect top-level #ifdefs.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_squeeze_ifdef=true|nl_squeeze_ifdef=false
+ValueDefault=false
+
+[Nl Squeeze Ifdef Top Level]
+Category=3
+Description="<html>Makes the nl_squeeze_ifdef option affect the top-level #ifdefs as well.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_squeeze_ifdef_top_level=true|nl_squeeze_ifdef_top_level=false
+ValueDefault=false
+
+[Nl Before If]
+Category=3
+Description="<html>Add or remove blank line before 'if'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_before_if=ignore|nl_before_if=add|nl_before_if=remove|nl_before_if=force|nl_before_if=not_defined
+ChoicesReadable="Ignore Nl Before If|Add Nl Before If|Remove Nl Before If|Force Nl Before If"
+ValueDefault=ignore
+
+[Nl After If]
+Category=3
+Description="<html>Add or remove blank line after 'if' statement. Add/Force work only if the<br/>next token is not a closing brace.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_after_if=ignore|nl_after_if=add|nl_after_if=remove|nl_after_if=force|nl_after_if=not_defined
+ChoicesReadable="Ignore Nl After If|Add Nl After If|Remove Nl After If|Force Nl After If"
+ValueDefault=ignore
+
+[Nl Before For]
+Category=3
+Description="<html>Add or remove blank line before 'for'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_before_for=ignore|nl_before_for=add|nl_before_for=remove|nl_before_for=force|nl_before_for=not_defined
+ChoicesReadable="Ignore Nl Before For|Add Nl Before For|Remove Nl Before For|Force Nl Before For"
+ValueDefault=ignore
+
+[Nl After For]
+Category=3
+Description="<html>Add or remove blank line after 'for' statement.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_after_for=ignore|nl_after_for=add|nl_after_for=remove|nl_after_for=force|nl_after_for=not_defined
+ChoicesReadable="Ignore Nl After For|Add Nl After For|Remove Nl After For|Force Nl After For"
+ValueDefault=ignore
+
+[Nl Before While]
+Category=3
+Description="<html>Add or remove blank line before 'while'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_before_while=ignore|nl_before_while=add|nl_before_while=remove|nl_before_while=force|nl_before_while=not_defined
+ChoicesReadable="Ignore Nl Before While|Add Nl Before While|Remove Nl Before While|Force Nl Before While"
+ValueDefault=ignore
+
+[Nl After While]
+Category=3
+Description="<html>Add or remove blank line after 'while' statement.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_after_while=ignore|nl_after_while=add|nl_after_while=remove|nl_after_while=force|nl_after_while=not_defined
+ChoicesReadable="Ignore Nl After While|Add Nl After While|Remove Nl After While|Force Nl After While"
+ValueDefault=ignore
+
+[Nl Before Switch]
+Category=3
+Description="<html>Add or remove blank line before 'switch'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_before_switch=ignore|nl_before_switch=add|nl_before_switch=remove|nl_before_switch=force|nl_before_switch=not_defined
+ChoicesReadable="Ignore Nl Before Switch|Add Nl Before Switch|Remove Nl Before Switch|Force Nl Before Switch"
+ValueDefault=ignore
+
+[Nl After Switch]
+Category=3
+Description="<html>Add or remove blank line after 'switch' statement.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_after_switch=ignore|nl_after_switch=add|nl_after_switch=remove|nl_after_switch=force|nl_after_switch=not_defined
+ChoicesReadable="Ignore Nl After Switch|Add Nl After Switch|Remove Nl After Switch|Force Nl After Switch"
+ValueDefault=ignore
+
+[Nl Before Synchronized]
+Category=3
+Description="<html>Add or remove blank line before 'synchronized'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_before_synchronized=ignore|nl_before_synchronized=add|nl_before_synchronized=remove|nl_before_synchronized=force|nl_before_synchronized=not_defined
+ChoicesReadable="Ignore Nl Before Synchronized|Add Nl Before Synchronized|Remove Nl Before Synchronized|Force Nl Before Synchronized"
+ValueDefault=ignore
+
+[Nl After Synchronized]
+Category=3
+Description="<html>Add or remove blank line after 'synchronized' statement.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_after_synchronized=ignore|nl_after_synchronized=add|nl_after_synchronized=remove|nl_after_synchronized=force|nl_after_synchronized=not_defined
+ChoicesReadable="Ignore Nl After Synchronized|Add Nl After Synchronized|Remove Nl After Synchronized|Force Nl After Synchronized"
+ValueDefault=ignore
+
+[Nl Before Do]
+Category=3
+Description="<html>Add or remove blank line before 'do'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_before_do=ignore|nl_before_do=add|nl_before_do=remove|nl_before_do=force|nl_before_do=not_defined
+ChoicesReadable="Ignore Nl Before Do|Add Nl Before Do|Remove Nl Before Do|Force Nl Before Do"
+ValueDefault=ignore
+
+[Nl After Do]
+Category=3
+Description="<html>Add or remove blank line after 'do/while' statement.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_after_do=ignore|nl_after_do=add|nl_after_do=remove|nl_after_do=force|nl_after_do=not_defined
+ChoicesReadable="Ignore Nl After Do|Add Nl After Do|Remove Nl After Do|Force Nl After Do"
+ValueDefault=ignore
+
+[Nl Before Ignore After Case]
+Category=3
+Description="<html>Ignore nl_before_{if,for,switch,do,synchronized} if the control<br/>statement is immediately after a case statement.<br/>if nl_before_{if,for,switch,do} is set to remove, this option<br/>does nothing.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_before_ignore_after_case=true|nl_before_ignore_after_case=false
+ValueDefault=false
+
+[Nl Before Return]
+Category=3
+Description="<html>Whether to put a blank line before 'return' statements, unless after an open<br/>brace.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_before_return=true|nl_before_return=false
+ValueDefault=false
+
+[Nl After Return]
+Category=3
+Description="<html>Whether to put a blank line after 'return' statements, unless followed by a<br/>close brace.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_after_return=true|nl_after_return=false
+ValueDefault=false
+
+[Nl Before Member]
+Category=3
+Description="<html>Whether to put a blank line before a member '.' or '-&gt;' operators.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_before_member=ignore|nl_before_member=add|nl_before_member=remove|nl_before_member=force|nl_before_member=not_defined
+ChoicesReadable="Ignore Nl Before Member|Add Nl Before Member|Remove Nl Before Member|Force Nl Before Member"
+ValueDefault=ignore
+
+[Nl After Member]
+Category=3
+Description="<html>(Java) Whether to put a blank line after a member '.' or '-&gt;' operators.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_after_member=ignore|nl_after_member=add|nl_after_member=remove|nl_after_member=force|nl_after_member=not_defined
+ChoicesReadable="Ignore Nl After Member|Add Nl After Member|Remove Nl After Member|Force Nl After Member"
+ValueDefault=ignore
+
+[Nl Ds Struct Enum Cmt]
+Category=3
+Description="<html>Whether to double-space commented-entries in 'struct'/'union'/'enum'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_ds_struct_enum_cmt=true|nl_ds_struct_enum_cmt=false
+ValueDefault=false
+
+[Nl Ds Struct Enum Close Brace]
+Category=3
+Description="<html>Whether to force a newline before '}' of a 'struct'/'union'/'enum'.<br/>(Lower priority than eat_blanks_before_close_brace.)</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_ds_struct_enum_close_brace=true|nl_ds_struct_enum_close_brace=false
+ValueDefault=false
+
+[Nl Class Colon]
+Category=3
+Description="<html>Add or remove newline before or after (depending on pos_class_colon) a class<br/>colon, as in 'class Foo &lt;here&gt; : &lt;or here&gt; public Bar'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_class_colon=ignore|nl_class_colon=add|nl_class_colon=remove|nl_class_colon=force|nl_class_colon=not_defined
+ChoicesReadable="Ignore Nl Class Colon|Add Nl Class Colon|Remove Nl Class Colon|Force Nl Class Colon"
+ValueDefault=ignore
+
+[Nl Constr Colon]
+Category=3
+Description="<html>Add or remove newline around a class constructor colon. The exact position<br/>depends on nl_constr_init_args, pos_constr_colon and pos_constr_comma.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_constr_colon=ignore|nl_constr_colon=add|nl_constr_colon=remove|nl_constr_colon=force|nl_constr_colon=not_defined
+ChoicesReadable="Ignore Nl Constr Colon|Add Nl Constr Colon|Remove Nl Constr Colon|Force Nl Constr Colon"
+ValueDefault=ignore
+
+[Nl Namespace Two To One Liner]
+Category=3
+Description="<html>Whether to collapse a two-line namespace, like 'namespace foo\n{ decl; }'<br/>into a single line. If true, prevents other brace newline rules from turning<br/>such code into four lines. If true, it also preserves one-liner namespaces.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_namespace_two_to_one_liner=true|nl_namespace_two_to_one_liner=false
+ValueDefault=false
+
+[Nl Create If One Liner]
+Category=3
+Description="<html>Whether to remove a newline in simple unbraced if statements, turning them<br/>into one-liners, as in 'if(b)\n i++;' =&gt; 'if(b) i++;'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_create_if_one_liner=true|nl_create_if_one_liner=false
+ValueDefault=false
+
+[Nl Create For One Liner]
+Category=3
+Description="<html>Whether to remove a newline in simple unbraced for statements, turning them<br/>into one-liners, as in 'for (...)\n stmt;' =&gt; 'for (...) stmt;'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_create_for_one_liner=true|nl_create_for_one_liner=false
+ValueDefault=false
+
+[Nl Create While One Liner]
+Category=3
+Description="<html>Whether to remove a newline in simple unbraced while statements, turning<br/>them into one-liners, as in 'while (expr)\n stmt;' =&gt; 'while (expr) stmt;'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_create_while_one_liner=true|nl_create_while_one_liner=false
+ValueDefault=false
+
+[Nl Create Func Def One Liner]
+Category=3
+Description="<html>Whether to collapse a function definition whose body (not counting braces)<br/>is only one line so that the entire definition (prototype, braces, body) is<br/>a single line.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_create_func_def_one_liner=true|nl_create_func_def_one_liner=false
+ValueDefault=false
+
+[Nl Create List One Liner]
+Category=3
+Description="<html>Whether to split one-line simple list definitions into three lines by<br/>adding newlines, as in 'int a[12] = { &lt;here&gt; 0 &lt;here&gt; };'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_create_list_one_liner=true|nl_create_list_one_liner=false
+ValueDefault=false
+
+[Nl Split If One Liner]
+Category=3
+Description="<html>Whether to split one-line simple unbraced if statements into two lines by<br/>adding a newline, as in 'if(b) &lt;here&gt; i++;'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_split_if_one_liner=true|nl_split_if_one_liner=false
+ValueDefault=false
+
+[Nl Split For One Liner]
+Category=3
+Description="<html>Whether to split one-line simple unbraced for statements into two lines by<br/>adding a newline, as in 'for (...) &lt;here&gt; stmt;'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_split_for_one_liner=true|nl_split_for_one_liner=false
+ValueDefault=false
+
+[Nl Split While One Liner]
+Category=3
+Description="<html>Whether to split one-line simple unbraced while statements into two lines by<br/>adding a newline, as in 'while (expr) &lt;here&gt; stmt;'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_split_while_one_liner=true|nl_split_while_one_liner=false
+ValueDefault=false
+
+[Donot Add Nl Before Cpp Comment]
+Category=3
+Description="<html>Don't add a newline before a cpp-comment in a parameter list of a function<br/>call.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=donot_add_nl_before_cpp_comment=true|donot_add_nl_before_cpp_comment=false
+ValueDefault=false
+
+[Nl Max]
+Category=4
+Description="<html>The maximum number of consecutive newlines (3 = 2 blank lines).</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_max="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Max Blank In Func]
+Category=4
+Description="<html>The maximum number of consecutive newlines in a function.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_max_blank_in_func="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Inside Empty Func]
+Category=4
+Description="<html>The number of newlines inside an empty function body.<br/>This option overrides eat_blanks_after_open_brace and<br/>eat_blanks_before_close_brace, but is ignored when<br/>nl_collapse_empty_body=true</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_inside_empty_func="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Before Func Body Proto]
+Category=4
+Description="<html>The number of newlines before a function prototype.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_before_func_body_proto="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Before Func Body Def]
+Category=4
+Description="<html>The number of newlines before a multi-line function definition. Where<br/>applicable, this option is overridden with eat_blanks_after_open_brace=true</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_before_func_body_def="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Before Func Class Proto]
+Category=4
+Description="<html>The number of newlines before a class constructor/destructor prototype.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_before_func_class_proto="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Before Func Class Def]
+Category=4
+Description="<html>The number of newlines before a class constructor/destructor definition.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_before_func_class_def="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl After Func Proto]
+Category=4
+Description="<html>The number of newlines after a function prototype.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_after_func_proto="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl After Func Proto Group]
+Category=4
+Description="<html>The number of newlines after a function prototype, if not followed by<br/>another function prototype.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_after_func_proto_group="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl After Func Class Proto]
+Category=4
+Description="<html>The number of newlines after a class constructor/destructor prototype.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_after_func_class_proto="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl After Func Class Proto Group]
+Category=4
+Description="<html>The number of newlines after a class constructor/destructor prototype,<br/>if not followed by another constructor/destructor prototype.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_after_func_class_proto_group="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Class Leave One Liner Groups]
+Category=4
+Description="<html>Whether one-line method definitions inside a class body should be treated<br/>as if they were prototypes for the purposes of adding newlines.<br/><br/>Requires nl_class_leave_one_liners=true. Overrides nl_before_func_body_def<br/>and nl_before_func_class_def for one-liners.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_class_leave_one_liner_groups=true|nl_class_leave_one_liner_groups=false
+ValueDefault=false
+
+[Nl After Func Body]
+Category=4
+Description="<html>The number of newlines after '}' of a multi-line function body.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_after_func_body="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl After Func Body Class]
+Category=4
+Description="<html>The number of newlines after '}' of a multi-line function body in a class<br/>declaration. Also affects class constructors/destructors.<br/><br/>Overrides nl_after_func_body.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_after_func_body_class="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl After Func Body One Liner]
+Category=4
+Description="<html>The number of newlines after '}' of a single line function body. Also<br/>affects class constructors/destructors.<br/><br/>Overrides nl_after_func_body and nl_after_func_body_class.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_after_func_body_one_liner="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Func Var Def Blk]
+Category=4
+Description="<html>The number of blank lines after a block of variable definitions at the top<br/>of a function body.<br/><br/>0: No change (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_func_var_def_blk="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Typedef Blk Start]
+Category=4
+Description="<html>The number of newlines before a block of typedefs. If nl_after_access_spec<br/>is non-zero, that option takes precedence.<br/><br/>0: No change (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_typedef_blk_start="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Typedef Blk End]
+Category=4
+Description="<html>The number of newlines after a block of typedefs.<br/><br/>0: No change (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_typedef_blk_end="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Typedef Blk In]
+Category=4
+Description="<html>The maximum number of consecutive newlines within a block of typedefs.<br/><br/>0: No change (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_typedef_blk_in="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Var Def Blk Start]
+Category=4
+Description="<html>The number of empty newlines before a block of variable definitions<br/>not at the top of a function body. If nl_after_access_spec is non-zero,<br/>that option takes precedence.<br/><br/>0: No change (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_var_def_blk_start="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Var Def Blk End]
+Category=4
+Description="<html>The number of empty newlines after a block of variable definitions<br/>not at the top of a function body.<br/><br/>0: No change (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_var_def_blk_end="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Var Def Blk In]
+Category=4
+Description="<html>The maximum number of consecutive newlines within a block of variable<br/>definitions.<br/><br/>0: No change (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_var_def_blk_in="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Before Block Comment]
+Category=4
+Description="<html>The minimum number of newlines before a multi-line comment.<br/>Doesn't apply if after a brace open or another multi-line comment.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_before_block_comment="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Before C Comment]
+Category=4
+Description="<html>The minimum number of newlines before a single-line C comment.<br/>Doesn't apply if after a brace open or other single-line C comments.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_before_c_comment="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Before Cpp Comment]
+Category=4
+Description="<html>The minimum number of newlines before a CPP comment.<br/>Doesn't apply if after a brace open or other CPP comments.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_before_cpp_comment="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl After Multiline Comment]
+Category=4
+Description="<html>Whether to force a newline after a multi-line comment.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_after_multiline_comment=true|nl_after_multiline_comment=false
+ValueDefault=false
+
+[Nl After Label Colon]
+Category=4
+Description="<html>Whether to force a newline after a label's colon.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_after_label_colon=true|nl_after_label_colon=false
+ValueDefault=false
+
+[Nl Before Struct]
+Category=4
+Description="<html>The number of newlines before a struct definition.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_before_struct="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl After Struct]
+Category=4
+Description="<html>The number of newlines after '}' or ';' of a struct/enum/union definition.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_after_struct="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Before Class]
+Category=4
+Description="<html>The number of newlines before a class definition.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_before_class="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl After Class]
+Category=4
+Description="<html>The number of newlines after '}' or ';' of a class definition.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_after_class="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Before Namespace]
+Category=4
+Description="<html>The number of newlines before a namespace.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_before_namespace="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Inside Namespace]
+Category=4
+Description="<html>The number of newlines after '{' of a namespace. This also adds newlines<br/>before the matching '}'.<br/><br/>0: Apply eat_blanks_after_open_brace or eat_blanks_before_close_brace if<br/> applicable, otherwise no change.<br/><br/>Overrides eat_blanks_after_open_brace and eat_blanks_before_close_brace.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_inside_namespace="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl After Namespace]
+Category=4
+Description="<html>The number of newlines after '}' of a namespace.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_after_namespace="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Before Access Spec]
+Category=4
+Description="<html>The number of newlines before an access specifier label. This also includes<br/>the Qt-specific 'signals:' and 'slots:'. Will not change the newline count<br/>if after a brace open.<br/><br/>0: No change (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_before_access_spec="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl After Access Spec]
+Category=4
+Description="<html>The number of newlines after an access specifier label. This also includes<br/>the Qt-specific 'signals:' and 'slots:'. Will not change the newline count<br/>if after a brace open.<br/><br/>0: No change (default).<br/><br/>Overrides nl_typedef_blk_start and nl_var_def_blk_start.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_after_access_spec="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Comment Func Def]
+Category=4
+Description="<html>The number of newlines between a function definition and the function<br/>comment, as in '// comment\n &lt;here&gt; void foo() {...}'.<br/><br/>0: No change (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_comment_func_def="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl After Try Catch Finally]
+Category=4
+Description="<html>The number of newlines after a try-catch-finally block that isn't followed<br/>by a brace close.<br/><br/>0: No change (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_after_try_catch_finally="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Around Cs Property]
+Category=4
+Description="<html>(C#) The number of newlines before and after a property, indexer or event<br/>declaration.<br/><br/>0: No change (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_around_cs_property="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Between Get Set]
+Category=4
+Description="<html>(C#) The number of newlines between the get/set/add/remove handlers.<br/><br/>0: No change (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_between_get_set="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Property Brace]
+Category=4
+Description="<html>(C#) Add or remove newline between property and the '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_property_brace=ignore|nl_property_brace=add|nl_property_brace=remove|nl_property_brace=force|nl_property_brace=not_defined
+ChoicesReadable="Ignore Nl Property Brace|Add Nl Property Brace|Remove Nl Property Brace|Force Nl Property Brace"
+ValueDefault=ignore
+
+[Eat Blanks After Open Brace]
+Category=4
+Description="<html>Whether to remove blank lines after '{'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=eat_blanks_after_open_brace=true|eat_blanks_after_open_brace=false
+ValueDefault=false
+
+[Eat Blanks Before Close Brace]
+Category=4
+Description="<html>Whether to remove blank lines before '}'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=eat_blanks_before_close_brace=true|eat_blanks_before_close_brace=false
+ValueDefault=false
+
+[Nl Remove Extra Newlines]
+Category=4
+Description="<html>How aggressively to remove extra newlines not in preprocessor.<br/><br/>0: No change (default)<br/>1: Remove most newlines not handled by other config<br/>2: Remove all newlines and reformat completely by config</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_remove_extra_newlines="
+MinVal=0
+MaxVal=2
+ValueDefault=0
+
+[Nl After Annotation]
+Category=4
+Description="<html>(Java) Add or remove newline after an annotation statement. Only affects<br/>annotations that are after a newline.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_after_annotation=ignore|nl_after_annotation=add|nl_after_annotation=remove|nl_after_annotation=force|nl_after_annotation=not_defined
+ChoicesReadable="Ignore Nl After Annotation|Add Nl After Annotation|Remove Nl After Annotation|Force Nl After Annotation"
+ValueDefault=ignore
+
+[Nl Between Annotation]
+Category=4
+Description="<html>(Java) Add or remove newline between two annotations.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_between_annotation=ignore|nl_between_annotation=add|nl_between_annotation=remove|nl_between_annotation=force|nl_between_annotation=not_defined
+ChoicesReadable="Ignore Nl Between Annotation|Add Nl Between Annotation|Remove Nl Between Annotation|Force Nl Between Annotation"
+ValueDefault=ignore
+
+[Nl Before Whole File Ifdef]
+Category=4
+Description="<html>The number of newlines before a whole-file #ifdef.<br/><br/>0: No change (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_before_whole_file_ifdef="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl After Whole File Ifdef]
+Category=4
+Description="<html>The number of newlines after a whole-file #ifdef.<br/><br/>0: No change (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_after_whole_file_ifdef="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Before Whole File Endif]
+Category=4
+Description="<html>The number of newlines before a whole-file #endif.<br/><br/>0: No change (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_before_whole_file_endif="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl After Whole File Endif]
+Category=4
+Description="<html>The number of newlines after a whole-file #endif.<br/><br/>0: No change (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_after_whole_file_endif="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Pos Arith]
+Category=5
+Description="<html>The position of arithmetic operators in wrapped expressions.</html>"
+Enabled=false
+EditorType=multiple
+Choices=pos_arith=ignore|pos_arith=break|pos_arith=force|pos_arith=lead|pos_arith=trail|pos_arith=join|pos_arith=lead_break|pos_arith=lead_force|pos_arith=trail_break|pos_arith=trail_force
+ChoicesReadable="Ignore Pos Arith|Break Pos Arith|Force Pos Arith|Lead Pos Arith|Trail Pos Arith|Join Pos Arith|Lead Break Pos Arith|Lead Force Pos Arith|Trail Break Pos Arith|Trail Force Pos Arith"
+ValueDefault=ignore
+
+[Pos Assign]
+Category=5
+Description="<html>The position of assignment in wrapped expressions. Do not affect '='<br/>followed by '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=pos_assign=ignore|pos_assign=break|pos_assign=force|pos_assign=lead|pos_assign=trail|pos_assign=join|pos_assign=lead_break|pos_assign=lead_force|pos_assign=trail_break|pos_assign=trail_force
+ChoicesReadable="Ignore Pos Assign|Break Pos Assign|Force Pos Assign|Lead Pos Assign|Trail Pos Assign|Join Pos Assign|Lead Break Pos Assign|Lead Force Pos Assign|Trail Break Pos Assign|Trail Force Pos Assign"
+ValueDefault=ignore
+
+[Pos Bool]
+Category=5
+Description="<html>The position of Boolean operators in wrapped expressions.</html>"
+Enabled=false
+EditorType=multiple
+Choices=pos_bool=ignore|pos_bool=break|pos_bool=force|pos_bool=lead|pos_bool=trail|pos_bool=join|pos_bool=lead_break|pos_bool=lead_force|pos_bool=trail_break|pos_bool=trail_force
+ChoicesReadable="Ignore Pos Bool|Break Pos Bool|Force Pos Bool|Lead Pos Bool|Trail Pos Bool|Join Pos Bool|Lead Break Pos Bool|Lead Force Pos Bool|Trail Break Pos Bool|Trail Force Pos Bool"
+ValueDefault=ignore
+
+[Pos Compare]
+Category=5
+Description="<html>The position of comparison operators in wrapped expressions.</html>"
+Enabled=false
+EditorType=multiple
+Choices=pos_compare=ignore|pos_compare=break|pos_compare=force|pos_compare=lead|pos_compare=trail|pos_compare=join|pos_compare=lead_break|pos_compare=lead_force|pos_compare=trail_break|pos_compare=trail_force
+ChoicesReadable="Ignore Pos Compare|Break Pos Compare|Force Pos Compare|Lead Pos Compare|Trail Pos Compare|Join Pos Compare|Lead Break Pos Compare|Lead Force Pos Compare|Trail Break Pos Compare|Trail Force Pos Compare"
+ValueDefault=ignore
+
+[Pos Conditional]
+Category=5
+Description="<html>The position of conditional operators, as in the '?' and ':' of<br/>'expr ? stmt : stmt', in wrapped expressions.</html>"
+Enabled=false
+EditorType=multiple
+Choices=pos_conditional=ignore|pos_conditional=break|pos_conditional=force|pos_conditional=lead|pos_conditional=trail|pos_conditional=join|pos_conditional=lead_break|pos_conditional=lead_force|pos_conditional=trail_break|pos_conditional=trail_force
+ChoicesReadable="Ignore Pos Conditional|Break Pos Conditional|Force Pos Conditional|Lead Pos Conditional|Trail Pos Conditional|Join Pos Conditional|Lead Break Pos Conditional|Lead Force Pos Conditional|Trail Break Pos Conditional|Trail Force Pos Conditional"
+ValueDefault=ignore
+
+[Pos Comma]
+Category=5
+Description="<html>The position of the comma in wrapped expressions.</html>"
+Enabled=false
+EditorType=multiple
+Choices=pos_comma=ignore|pos_comma=break|pos_comma=force|pos_comma=lead|pos_comma=trail|pos_comma=join|pos_comma=lead_break|pos_comma=lead_force|pos_comma=trail_break|pos_comma=trail_force
+ChoicesReadable="Ignore Pos Comma|Break Pos Comma|Force Pos Comma|Lead Pos Comma|Trail Pos Comma|Join Pos Comma|Lead Break Pos Comma|Lead Force Pos Comma|Trail Break Pos Comma|Trail Force Pos Comma"
+ValueDefault=ignore
+
+[Pos Enum Comma]
+Category=5
+Description="<html>The position of the comma in enum entries.</html>"
+Enabled=false
+EditorType=multiple
+Choices=pos_enum_comma=ignore|pos_enum_comma=break|pos_enum_comma=force|pos_enum_comma=lead|pos_enum_comma=trail|pos_enum_comma=join|pos_enum_comma=lead_break|pos_enum_comma=lead_force|pos_enum_comma=trail_break|pos_enum_comma=trail_force
+ChoicesReadable="Ignore Pos Enum Comma|Break Pos Enum Comma|Force Pos Enum Comma|Lead Pos Enum Comma|Trail Pos Enum Comma|Join Pos Enum Comma|Lead Break Pos Enum Comma|Lead Force Pos Enum Comma|Trail Break Pos Enum Comma|Trail Force Pos Enum Comma"
+ValueDefault=ignore
+
+[Pos Class Comma]
+Category=5
+Description="<html>The position of the comma in the base class list if there is more than one<br/>line. Affects nl_class_init_args.</html>"
+Enabled=false
+EditorType=multiple
+Choices=pos_class_comma=ignore|pos_class_comma=break|pos_class_comma=force|pos_class_comma=lead|pos_class_comma=trail|pos_class_comma=join|pos_class_comma=lead_break|pos_class_comma=lead_force|pos_class_comma=trail_break|pos_class_comma=trail_force
+ChoicesReadable="Ignore Pos Class Comma|Break Pos Class Comma|Force Pos Class Comma|Lead Pos Class Comma|Trail Pos Class Comma|Join Pos Class Comma|Lead Break Pos Class Comma|Lead Force Pos Class Comma|Trail Break Pos Class Comma|Trail Force Pos Class Comma"
+ValueDefault=ignore
+
+[Pos Constr Comma]
+Category=5
+Description="<html>The position of the comma in the constructor initialization list.<br/>Related to nl_constr_colon, nl_constr_init_args and pos_constr_colon.</html>"
+Enabled=false
+EditorType=multiple
+Choices=pos_constr_comma=ignore|pos_constr_comma=break|pos_constr_comma=force|pos_constr_comma=lead|pos_constr_comma=trail|pos_constr_comma=join|pos_constr_comma=lead_break|pos_constr_comma=lead_force|pos_constr_comma=trail_break|pos_constr_comma=trail_force
+ChoicesReadable="Ignore Pos Constr Comma|Break Pos Constr Comma|Force Pos Constr Comma|Lead Pos Constr Comma|Trail Pos Constr Comma|Join Pos Constr Comma|Lead Break Pos Constr Comma|Lead Force Pos Constr Comma|Trail Break Pos Constr Comma|Trail Force Pos Constr Comma"
+ValueDefault=ignore
+
+[Pos Class Colon]
+Category=5
+Description="<html>The position of trailing/leading class colon, between class and base class<br/>list. Affects nl_class_colon.</html>"
+Enabled=false
+EditorType=multiple
+Choices=pos_class_colon=ignore|pos_class_colon=break|pos_class_colon=force|pos_class_colon=lead|pos_class_colon=trail|pos_class_colon=join|pos_class_colon=lead_break|pos_class_colon=lead_force|pos_class_colon=trail_break|pos_class_colon=trail_force
+ChoicesReadable="Ignore Pos Class Colon|Break Pos Class Colon|Force Pos Class Colon|Lead Pos Class Colon|Trail Pos Class Colon|Join Pos Class Colon|Lead Break Pos Class Colon|Lead Force Pos Class Colon|Trail Break Pos Class Colon|Trail Force Pos Class Colon"
+ValueDefault=ignore
+
+[Pos Constr Colon]
+Category=5
+Description="<html>The position of colons between constructor and member initialization.<br/>Related to nl_constr_colon, nl_constr_init_args and pos_constr_comma.</html>"
+Enabled=false
+EditorType=multiple
+Choices=pos_constr_colon=ignore|pos_constr_colon=break|pos_constr_colon=force|pos_constr_colon=lead|pos_constr_colon=trail|pos_constr_colon=join|pos_constr_colon=lead_break|pos_constr_colon=lead_force|pos_constr_colon=trail_break|pos_constr_colon=trail_force
+ChoicesReadable="Ignore Pos Constr Colon|Break Pos Constr Colon|Force Pos Constr Colon|Lead Pos Constr Colon|Trail Pos Constr Colon|Join Pos Constr Colon|Lead Break Pos Constr Colon|Lead Force Pos Constr Colon|Trail Break Pos Constr Colon|Trail Force Pos Constr Colon"
+ValueDefault=ignore
+
+[Pos Shift]
+Category=5
+Description="<html>The position of shift operators in wrapped expressions.</html>"
+Enabled=false
+EditorType=multiple
+Choices=pos_shift=ignore|pos_shift=break|pos_shift=force|pos_shift=lead|pos_shift=trail|pos_shift=join|pos_shift=lead_break|pos_shift=lead_force|pos_shift=trail_break|pos_shift=trail_force
+ChoicesReadable="Ignore Pos Shift|Break Pos Shift|Force Pos Shift|Lead Pos Shift|Trail Pos Shift|Join Pos Shift|Lead Break Pos Shift|Lead Force Pos Shift|Trail Break Pos Shift|Trail Force Pos Shift"
+ValueDefault=ignore
+
+[Code Width]
+Category=6
+Description="<html>Try to limit code width to N columns.</html>"
+Enabled=false
+EditorType=numeric
+CallName="code_width="
+MinVal=0
+MaxVal=10000
+ValueDefault=0
+
+[Ls For Split Full]
+Category=6
+Description="<html>Whether to fully split long 'for' statements at semi-colons.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=ls_for_split_full=true|ls_for_split_full=false
+ValueDefault=false
+
+[Ls Func Split Full]
+Category=6
+Description="<html>Whether to fully split long function prototypes/calls at commas.<br/>The option ls_code_width has priority over the option ls_func_split_full.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=ls_func_split_full=true|ls_func_split_full=false
+ValueDefault=false
+
+[Ls Code Width]
+Category=6
+Description="<html>Whether to split lines as close to code_width as possible and ignore some<br/>groupings.<br/>The option ls_code_width has priority over the option ls_func_split_full.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=ls_code_width=true|ls_code_width=false
+ValueDefault=false
+
+[Align Keep Tabs]
+Category=7
+Description="<html>Whether to keep non-indenting tabs.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_keep_tabs=true|align_keep_tabs=false
+ValueDefault=false
+
+[Align With Tabs]
+Category=7
+Description="<html>Whether to use tabs for aligning.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_with_tabs=true|align_with_tabs=false
+ValueDefault=false
+
+[Align On Tabstop]
+Category=7
+Description="<html>Whether to bump out to the next tab when aligning.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_on_tabstop=true|align_on_tabstop=false
+ValueDefault=false
+
+[Align Number Right]
+Category=7
+Description="<html>Whether to right-align numbers.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_number_right=true|align_number_right=false
+ValueDefault=false
+
+[Align Keep Extra Space]
+Category=7
+Description="<html>Whether to keep whitespace not required for alignment.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_keep_extra_space=true|align_keep_extra_space=false
+ValueDefault=false
+
+[Align Func Params]
+Category=7
+Description="<html>Whether to align variable definitions in prototypes and functions.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_func_params=true|align_func_params=false
+ValueDefault=false
+
+[Align Func Params Span]
+Category=7
+Description="<html>The span for aligning parameter definitions in function on parameter name.<br/><br/>0: Don't align (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_func_params_span="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Align Func Params Thresh]
+Category=7
+Description="<html>The threshold for aligning function parameter definitions.<br/>Use a negative number for absolute thresholds.<br/><br/>0: No limit (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_func_params_thresh="
+MinVal=-1000
+MaxVal=5000
+ValueDefault=0
+
+[Align Func Params Gap]
+Category=7
+Description="<html>The gap for aligning function parameter definitions.</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_func_params_gap="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Align Constr Value Span]
+Category=7
+Description="<html>The span for aligning constructor value.<br/><br/>0: Don't align (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_constr_value_span="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Align Constr Value Thresh]
+Category=7
+Description="<html>The threshold for aligning constructor value.<br/>Use a negative number for absolute thresholds.<br/><br/>0: No limit (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_constr_value_thresh="
+MinVal=-1000
+MaxVal=5000
+ValueDefault=0
+
+[Align Constr Value Gap]
+Category=7
+Description="<html>The gap for aligning constructor value.</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_constr_value_gap="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Align Same Func Call Params]
+Category=7
+Description="<html>Whether to align parameters in single-line functions that have the same<br/>name. The function names must already be aligned with each other.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_same_func_call_params=true|align_same_func_call_params=false
+ValueDefault=false
+
+[Align Same Func Call Params Span]
+Category=7
+Description="<html>The span for aligning function-call parameters for single line functions.<br/><br/>0: Don't align (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_same_func_call_params_span="
+MinVal=0
+MaxVal=5000
+ValueDefault=0
+
+[Align Same Func Call Params Thresh]
+Category=7
+Description="<html>The threshold for aligning function-call parameters for single line<br/>functions.<br/>Use a negative number for absolute thresholds.<br/><br/>0: No limit (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_same_func_call_params_thresh="
+MinVal=-1000
+MaxVal=5000
+ValueDefault=0
+
+[Align Var Def Span]
+Category=7
+Description="<html>The span for aligning variable definitions.<br/><br/>0: Don't align (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_var_def_span="
+MinVal=0
+MaxVal=5000
+ValueDefault=0
+
+[Align Var Def Star Style]
+Category=7
+Description="<html>How to consider (or treat) the '*' in the alignment of variable definitions.<br/><br/>0: Part of the type 'void * foo;' (default)<br/>1: Part of the variable 'void *foo;'<br/>2: Dangling 'void *foo;'<br/>Dangling: the '*' will not be taken into account when aligning.</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_var_def_star_style="
+MinVal=0
+MaxVal=2
+ValueDefault=0
+
+[Align Var Def Amp Style]
+Category=7
+Description="<html>How to consider (or treat) the '&amp;' in the alignment of variable definitions.<br/><br/>0: Part of the type 'long &amp; foo;' (default)<br/>1: Part of the variable 'long &amp;foo;'<br/>2: Dangling 'long &amp;foo;'<br/>Dangling: the '&amp;' will not be taken into account when aligning.</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_var_def_amp_style="
+MinVal=0
+MaxVal=2
+ValueDefault=0
+
+[Align Var Def Thresh]
+Category=7
+Description="<html>The threshold for aligning variable definitions.<br/>Use a negative number for absolute thresholds.<br/><br/>0: No limit (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_var_def_thresh="
+MinVal=-1000
+MaxVal=5000
+ValueDefault=0
+
+[Align Var Def Gap]
+Category=7
+Description="<html>The gap for aligning variable definitions.</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_var_def_gap="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Align Var Def Colon]
+Category=7
+Description="<html>Whether to align the colon in struct bit fields.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_var_def_colon=true|align_var_def_colon=false
+ValueDefault=false
+
+[Align Var Def Colon Gap]
+Category=7
+Description="<html>The gap for aligning the colon in struct bit fields.</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_var_def_colon_gap="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Align Var Def Attribute]
+Category=7
+Description="<html>Whether to align any attribute after the variable name.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_var_def_attribute=true|align_var_def_attribute=false
+ValueDefault=false
+
+[Align Var Def Inline]
+Category=7
+Description="<html>Whether to align inline struct/enum/union variable definitions.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_var_def_inline=true|align_var_def_inline=false
+ValueDefault=false
+
+[Align Assign Span]
+Category=7
+Description="<html>The span for aligning on '=' in assignments.<br/><br/>0: Don't align (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_assign_span="
+MinVal=0
+MaxVal=5000
+ValueDefault=0
+
+[Align Braced Init List Span]
+Category=7
+Description="<html>The span for aligning on '{' in braced init list.<br/><br/>0: Don't align (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_braced_init_list_span="
+MinVal=0
+MaxVal=5000
+ValueDefault=0
+
+[Align Assign Func Proto Span]
+Category=7
+Description="<html>The span for aligning on '=' in function prototype modifier.<br/><br/>0: Don't align (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_assign_func_proto_span="
+MinVal=0
+MaxVal=5000
+ValueDefault=0
+
+[Align Assign Thresh]
+Category=7
+Description="<html>The threshold for aligning on '=' in assignments.<br/>Use a negative number for absolute thresholds.<br/><br/>0: No limit (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_assign_thresh="
+MinVal=-1000
+MaxVal=5000
+ValueDefault=0
+
+[Align Assign On Multi Var Defs]
+Category=7
+Description="<html>Whether to align on the left most assignment when multiple<br/>definitions are found on the same line.<br/>Depends on 'align_assign_span' and 'align_assign_thresh' settings.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_assign_on_multi_var_defs=true|align_assign_on_multi_var_defs=false
+ValueDefault=false
+
+[Align Braced Init List Thresh]
+Category=7
+Description="<html>The threshold for aligning on '{' in braced init list.<br/>Use a negative number for absolute thresholds.<br/><br/>0: No limit (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_braced_init_list_thresh="
+MinVal=-1000
+MaxVal=5000
+ValueDefault=0
+
+[Align Assign Decl Func]
+Category=7
+Description="<html>How to apply align_assign_span to function declaration "assignments", i.e.<br/>'virtual void foo() = 0' or '~foo() = {default|delete}'.<br/><br/>0: Align with other assignments (default)<br/>1: Align with each other, ignoring regular assignments<br/>2: Don't align</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_assign_decl_func="
+MinVal=0
+MaxVal=2
+ValueDefault=0
+
+[Align Enum Equ Span]
+Category=7
+Description="<html>The span for aligning on '=' in enums.<br/><br/>0: Don't align (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_enum_equ_span="
+MinVal=0
+MaxVal=5000
+ValueDefault=0
+
+[Align Enum Equ Thresh]
+Category=7
+Description="<html>The threshold for aligning on '=' in enums.<br/>Use a negative number for absolute thresholds.<br/><br/>0: no limit (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_enum_equ_thresh="
+MinVal=-1000
+MaxVal=5000
+ValueDefault=0
+
+[Align Var Class Span]
+Category=7
+Description="<html>The span for aligning class member definitions.<br/><br/>0: Don't align (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_var_class_span="
+MinVal=0
+MaxVal=5000
+ValueDefault=0
+
+[Align Var Class Thresh]
+Category=7
+Description="<html>The threshold for aligning class member definitions.<br/>Use a negative number for absolute thresholds.<br/><br/>0: No limit (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_var_class_thresh="
+MinVal=-1000
+MaxVal=5000
+ValueDefault=0
+
+[Align Var Class Gap]
+Category=7
+Description="<html>The gap for aligning class member definitions.</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_var_class_gap="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Align Var Struct Span]
+Category=7
+Description="<html>The span for aligning struct/union member definitions.<br/><br/>0: Don't align (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_var_struct_span="
+MinVal=0
+MaxVal=5000
+ValueDefault=0
+
+[Align Var Struct Thresh]
+Category=7
+Description="<html>The threshold for aligning struct/union member definitions.<br/>Use a negative number for absolute thresholds.<br/><br/>0: No limit (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_var_struct_thresh="
+MinVal=-1000
+MaxVal=5000
+ValueDefault=0
+
+[Align Var Struct Gap]
+Category=7
+Description="<html>The gap for aligning struct/union member definitions.</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_var_struct_gap="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Align Struct Init Span]
+Category=7
+Description="<html>The span for aligning struct initializer values.<br/><br/>0: Don't align (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_struct_init_span="
+MinVal=0
+MaxVal=5000
+ValueDefault=0
+
+[Align Typedef Span]
+Category=7
+Description="<html>The span for aligning single-line typedefs.<br/><br/>0: Don't align (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_typedef_span="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Align Typedef Gap]
+Category=7
+Description="<html>The minimum space between the type and the synonym of a typedef.</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_typedef_gap="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Align Typedef Func]
+Category=7
+Description="<html>How to align typedef'd functions with other typedefs.<br/><br/>0: Don't mix them at all (default)<br/>1: Align the open parenthesis with the types<br/>2: Align the function type name with the other type names</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_typedef_func="
+MinVal=0
+MaxVal=2
+ValueDefault=0
+
+[Align Typedef Star Style]
+Category=7
+Description="<html>How to consider (or treat) the '*' in the alignment of typedefs.<br/><br/>0: Part of the typedef type, 'typedef int * pint;' (default)<br/>1: Part of type name: 'typedef int *pint;'<br/>2: Dangling: 'typedef int *pint;'<br/>Dangling: the '*' will not be taken into account when aligning.</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_typedef_star_style="
+MinVal=0
+MaxVal=2
+ValueDefault=0
+
+[Align Typedef Amp Style]
+Category=7
+Description="<html>How to consider (or treat) the '&amp;' in the alignment of typedefs.<br/><br/>0: Part of the typedef type, 'typedef int &amp; intref;' (default)<br/>1: Part of type name: 'typedef int &amp;intref;'<br/>2: Dangling: 'typedef int &amp;intref;'<br/>Dangling: the '&amp;' will not be taken into account when aligning.</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_typedef_amp_style="
+MinVal=0
+MaxVal=2
+ValueDefault=0
+
+[Align Right Cmt Span]
+Category=7
+Description="<html>The span for aligning comments that end lines.<br/><br/>0: Don't align (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_right_cmt_span="
+MinVal=0
+MaxVal=5000
+ValueDefault=0
+
+[Align Right Cmt Gap]
+Category=7
+Description="<html>Minimum number of columns between preceding text and a trailing comment in<br/>order for the comment to qualify for being aligned. Must be non-zero to have<br/>an effect.</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_right_cmt_gap="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Align Right Cmt Mix]
+Category=7
+Description="<html>If aligning comments, whether to mix with comments after '}' and #endif with<br/>less than three spaces before the comment.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_right_cmt_mix=true|align_right_cmt_mix=false
+ValueDefault=false
+
+[Align Right Cmt Same Level]
+Category=7
+Description="<html>Whether to only align trailing comments that are at the same brace level.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_right_cmt_same_level=true|align_right_cmt_same_level=false
+ValueDefault=false
+
+[Align Right Cmt At Col]
+Category=7
+Description="<html>Minimum column at which to align trailing comments. Comments which are<br/>aligned beyond this column, but which can be aligned in a lesser column,<br/>may be "pulled in".<br/><br/>0: Ignore (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_right_cmt_at_col="
+MinVal=0
+MaxVal=200
+ValueDefault=0
+
+[Align Func Proto Span]
+Category=7
+Description="<html>The span for aligning function prototypes.<br/><br/>0: Don't align (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_func_proto_span="
+MinVal=0
+MaxVal=5000
+ValueDefault=0
+
+[Align Func Proto Star Style]
+Category=7
+Description="<html>How to consider (or treat) the '*' in the alignment of function prototypes.<br/><br/>0: Part of the type 'void * foo();' (default)<br/>1: Part of the function 'void *foo();'<br/>2: Dangling 'void *foo();'<br/>Dangling: the '*' will not be taken into account when aligning.</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_func_proto_star_style="
+MinVal=0
+MaxVal=2
+ValueDefault=0
+
+[Align Func Proto Amp Style]
+Category=7
+Description="<html>How to consider (or treat) the '&amp;' in the alignment of function prototypes.<br/><br/>0: Part of the type 'long &amp; foo();' (default)<br/>1: Part of the function 'long &amp;foo();'<br/>2: Dangling 'long &amp;foo();'<br/>Dangling: the '&amp;' will not be taken into account when aligning.</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_func_proto_amp_style="
+MinVal=0
+MaxVal=2
+ValueDefault=0
+
+[Align Func Proto Thresh]
+Category=7
+Description="<html>The threshold for aligning function prototypes.<br/>Use a negative number for absolute thresholds.<br/><br/>0: No limit (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_func_proto_thresh="
+MinVal=-1000
+MaxVal=5000
+ValueDefault=0
+
+[Align Func Proto Gap]
+Category=7
+Description="<html>Minimum gap between the return type and the function name.</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_func_proto_gap="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Align On Operator]
+Category=7
+Description="<html>Whether to align function prototypes on the 'operator' keyword instead of<br/>what follows.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_on_operator=true|align_on_operator=false
+ValueDefault=false
+
+[Align Mix Var Proto]
+Category=7
+Description="<html>Whether to mix aligning prototype and variable declarations. If true,<br/>align_var_def_XXX options are used instead of align_func_proto_XXX options.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_mix_var_proto=true|align_mix_var_proto=false
+ValueDefault=false
+
+[Align Single Line Func]
+Category=7
+Description="<html>Whether to align single-line functions with function prototypes.<br/>Uses align_func_proto_span.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_single_line_func=true|align_single_line_func=false
+ValueDefault=false
+
+[Align Single Line Brace]
+Category=7
+Description="<html>Whether to align the open brace of single-line functions.<br/>Requires align_single_line_func=true. Uses align_func_proto_span.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_single_line_brace=true|align_single_line_brace=false
+ValueDefault=false
+
+[Align Single Line Brace Gap]
+Category=7
+Description="<html>Gap for align_single_line_brace.</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_single_line_brace_gap="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Align Oc Msg Spec Span]
+Category=7
+Description="<html>(OC) The span for aligning Objective-C message specifications.<br/><br/>0: Don't align (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_oc_msg_spec_span="
+MinVal=0
+MaxVal=5000
+ValueDefault=0
+
+[Align Nl Cont]
+Category=7
+Description="<html>Whether to align macros wrapped with a backslash and a newline. This will<br/>not work right if the macro contains a multi-line comment.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_nl_cont=true|align_nl_cont=false
+ValueDefault=false
+
+[Align Pp Define Together]
+Category=7
+Description="<html>Whether to align macro functions and variables together.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_pp_define_together=true|align_pp_define_together=false
+ValueDefault=false
+
+[Align Pp Define Span]
+Category=7
+Description="<html>The span for aligning on '#define' bodies.<br/><br/>=0: Don't align (default)<br/>&gt;0: Number of lines (including comments) between blocks</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_pp_define_span="
+MinVal=0
+MaxVal=5000
+ValueDefault=0
+
+[Align Pp Define Gap]
+Category=7
+Description="<html>The minimum space between label and value of a preprocessor define.</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_pp_define_gap="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Align Left Shift]
+Category=7
+Description="<html>Whether to align lines that start with '&lt;&lt;' with previous '&lt;&lt;'.<br/><br/>Default: true</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_left_shift=true|align_left_shift=false
+ValueDefault=true
+
+[Align Eigen Comma Init]
+Category=7
+Description="<html>Whether to align comma-separated statements following '&lt;&lt;' (as used to<br/>initialize Eigen matrices).</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_eigen_comma_init=true|align_eigen_comma_init=false
+ValueDefault=false
+
+[Align Asm Colon]
+Category=7
+Description="<html>Whether to align text after 'asm volatile ()' colons.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_asm_colon=true|align_asm_colon=false
+ValueDefault=false
+
+[Align Oc Msg Colon Span]
+Category=7
+Description="<html>(OC) Span for aligning parameters in an Objective-C message call<br/>on the ':'.<br/><br/>0: Don't align.</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_oc_msg_colon_span="
+MinVal=0
+MaxVal=5000
+ValueDefault=0
+
+[Align Oc Msg Colon First]
+Category=7
+Description="<html>(OC) Whether to always align with the first parameter, even if it is too<br/>short.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_oc_msg_colon_first=true|align_oc_msg_colon_first=false
+ValueDefault=false
+
+[Align Oc Decl Colon]
+Category=7
+Description="<html>(OC) Whether to align parameters in an Objective-C '+' or '-' declaration<br/>on the ':'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_oc_decl_colon=true|align_oc_decl_colon=false
+ValueDefault=false
+
+[Align Oc Msg Colon Xcode Like]
+Category=7
+Description="<html>(OC) Whether to not align parameters in an Objectve-C message call if first<br/>colon is not on next line of the message call (the same way Xcode does<br/>alignment)</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_oc_msg_colon_xcode_like=true|align_oc_msg_colon_xcode_like=false
+ValueDefault=false
+
+[Cmt Width]
+Category=8
+Description="<html>Try to wrap comments at N columns.</html>"
+Enabled=false
+EditorType=numeric
+CallName="cmt_width="
+MinVal=0
+MaxVal=256
+ValueDefault=0
+
+[Cmt Reflow Mode]
+Category=8
+Description="<html>How to reflow comments.<br/><br/>0: No reflowing (apart from the line wrapping due to cmt_width) (default)<br/>1: No touching at all<br/>2: Full reflow (enable cmt_indent_multi for indent with line wrapping due to cmt_width)</html>"
+Enabled=false
+EditorType=numeric
+CallName="cmt_reflow_mode="
+MinVal=0
+MaxVal=2
+ValueDefault=0
+
+[Cmt Reflow Fold Regex File]
+Category=8
+Description="<html>Path to a file that contains regular expressions describing patterns for<br/>which the end of one line and the beginning of the next will be folded into<br/>the same sentence or paragraph during full comment reflow. The regular<br/>expressions are described using ECMAScript syntax. The syntax for this<br/>specification is as follows, where "..." indicates the custom regular<br/>expression and "n" indicates the nth end_of_prev_line_regex and<br/>beg_of_next_line_regex regular expression pair:<br/><br/>end_of_prev_line_regex[1] = "...$"<br/>beg_of_next_line_regex[1] = "^..."<br/>end_of_prev_line_regex[2] = "...$"<br/>beg_of_next_line_regex[2] = "^..."<br/> .<br/> .<br/> .<br/>end_of_prev_line_regex[n] = "...$"<br/>beg_of_next_line_regex[n] = "^..."<br/><br/>Note that use of this option overrides the default reflow fold regular<br/>expressions, which are internally defined as follows:<br/><br/>end_of_prev_line_regex[1] = "[\w,\]\)]$"<br/>beg_of_next_line_regex[1] = "^[\w,\[\(]"<br/>end_of_prev_line_regex[2] = "\.$"<br/>beg_of_next_line_regex[2] = "^[A-Z]"</html>"
+Enabled=false
+CallName=cmt_reflow_fold_regex_file=
+EditorType=string
+ValueDefault=
+
+[Cmt Reflow Indent To Paragraph Start]
+Category=8
+Description="<html>Whether to indent wrapped lines to the start of the encompassing paragraph<br/>during full comment reflow (cmt_reflow_mode = 2). Overrides the value<br/>specified by cmt_sp_after_star_cont.<br/><br/>Note that cmt_align_doxygen_javadoc_tags overrides this option for<br/>paragraphs associated with javadoc tags</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=cmt_reflow_indent_to_paragraph_start=true|cmt_reflow_indent_to_paragraph_start=false
+ValueDefault=false
+
+[Cmt Convert Tab To Spaces]
+Category=8
+Description="<html>Whether to convert all tabs to spaces in comments. If false, tabs in<br/>comments are left alone, unless used for indenting.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=cmt_convert_tab_to_spaces=true|cmt_convert_tab_to_spaces=false
+ValueDefault=false
+
+[Cmt Indent Multi]
+Category=8
+Description="<html>Whether to apply changes to multi-line comments, including cmt_width,<br/>keyword substitution and leading chars.<br/><br/>Default: true</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=cmt_indent_multi=true|cmt_indent_multi=false
+ValueDefault=true
+
+[Cmt Align Doxygen Javadoc Tags]
+Category=8
+Description="<html>Whether to align doxygen javadoc-style tags ('@param', '@return', etc.)<br/>and corresponding fields such that groups of consecutive block tags,<br/>parameter names, and descriptions align with one another. Overrides that<br/>which is specified by the cmt_sp_after_star_cont. If cmt_width &gt; 0, it may<br/>be necessary to enable cmt_indent_multi and set cmt_reflow_mode = 2<br/>in order to achieve the desired alignment for line-wrapping.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=cmt_align_doxygen_javadoc_tags=true|cmt_align_doxygen_javadoc_tags=false
+ValueDefault=false
+
+[Cmt Sp Before Doxygen Javadoc Tags]
+Category=8
+Description="<html>The number of spaces to insert after the star and before doxygen<br/>javadoc-style tags (@param, @return, etc). Requires enabling<br/>cmt_align_doxygen_javadoc_tags. Overrides that which is specified by the<br/>cmt_sp_after_star_cont.<br/><br/>Default: 1</html>"
+Enabled=false
+EditorType=numeric
+CallName="cmt_sp_before_doxygen_javadoc_tags="
+MinVal=0
+MaxVal=16
+ValueDefault=1
+
+[Cmt Trailing Single Line C To Cpp]
+Category=8
+Description="<html>Whether to change trailing, single-line c-comments into cpp-comments.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=cmt_trailing_single_line_c_to_cpp=true|cmt_trailing_single_line_c_to_cpp=false
+ValueDefault=false
+
+[Cmt C Group]
+Category=8
+Description="<html>Whether to group c-comments that look like they are in a block.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=cmt_c_group=true|cmt_c_group=false
+ValueDefault=false
+
+[Cmt C Nl Start]
+Category=8
+Description="<html>Whether to put an empty '/*' on the first line of the combined c-comment.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=cmt_c_nl_start=true|cmt_c_nl_start=false
+ValueDefault=false
+
+[Cmt C Nl End]
+Category=8
+Description="<html>Whether to add a newline before the closing '*/' of the combined c-comment.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=cmt_c_nl_end=true|cmt_c_nl_end=false
+ValueDefault=false
+
+[Cmt Cpp To C]
+Category=8
+Description="<html>Whether to change cpp-comments into c-comments.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=cmt_cpp_to_c=true|cmt_cpp_to_c=false
+ValueDefault=false
+
+[Cmt Cpp Group]
+Category=8
+Description="<html>Whether to group cpp-comments that look like they are in a block. Only<br/>meaningful if cmt_cpp_to_c=true.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=cmt_cpp_group=true|cmt_cpp_group=false
+ValueDefault=false
+
+[Cmt Cpp Nl Start]
+Category=8
+Description="<html>Whether to put an empty '/*' on the first line of the combined cpp-comment<br/>when converting to a c-comment.<br/><br/>Requires cmt_cpp_to_c=true and cmt_cpp_group=true.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=cmt_cpp_nl_start=true|cmt_cpp_nl_start=false
+ValueDefault=false
+
+[Cmt Cpp Nl End]
+Category=8
+Description="<html>Whether to add a newline before the closing '*/' of the combined cpp-comment<br/>when converting to a c-comment.<br/><br/>Requires cmt_cpp_to_c=true and cmt_cpp_group=true.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=cmt_cpp_nl_end=true|cmt_cpp_nl_end=false
+ValueDefault=false
+
+[Cmt Star Cont]
+Category=8
+Description="<html>Whether to put a star on subsequent comment lines.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=cmt_star_cont=true|cmt_star_cont=false
+ValueDefault=false
+
+[Cmt Sp Before Star Cont]
+Category=8
+Description="<html>The number of spaces to insert at the start of subsequent comment lines.</html>"
+Enabled=false
+EditorType=numeric
+CallName="cmt_sp_before_star_cont="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Cmt Sp After Star Cont]
+Category=8
+Description="<html>The number of spaces to insert after the star on subsequent comment lines.</html>"
+Enabled=false
+EditorType=numeric
+CallName="cmt_sp_after_star_cont="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Cmt Multi Check Last]
+Category=8
+Description="<html>For multi-line comments with a '*' lead, remove leading spaces if the first<br/>and last lines of the comment are the same length.<br/><br/>Default: true</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=cmt_multi_check_last=true|cmt_multi_check_last=false
+ValueDefault=true
+
+[Cmt Multi First Len Minimum]
+Category=8
+Description="<html>For multi-line comments with a '*' lead, remove leading spaces if the first<br/>and last lines of the comment are the same length AND if the length is<br/>bigger as the first_len minimum.<br/><br/>Default: 4</html>"
+Enabled=false
+EditorType=numeric
+CallName="cmt_multi_first_len_minimum="
+MinVal=1
+MaxVal=20
+ValueDefault=4
+
+[Cmt Insert File Header]
+Category=8
+Description="<html>Path to a file that contains text to insert at the beginning of a file if<br/>the file doesn't start with a C/C++ comment. If the inserted text contains<br/>'$(filename)', that will be replaced with the current file's name.</html>"
+Enabled=false
+CallName=cmt_insert_file_header=
+EditorType=string
+ValueDefault=
+
+[Cmt Insert File Footer]
+Category=8
+Description="<html>Path to a file that contains text to insert at the end of a file if the<br/>file doesn't end with a C/C++ comment. If the inserted text contains<br/>'$(filename)', that will be replaced with the current file's name.</html>"
+Enabled=false
+CallName=cmt_insert_file_footer=
+EditorType=string
+ValueDefault=
+
+[Cmt Insert Func Header]
+Category=8
+Description="<html>Path to a file that contains text to insert before a function definition if<br/>the function isn't preceded by a C/C++ comment. If the inserted text<br/>contains '$(function)', '$(javaparam)' or '$(fclass)', these will be<br/>replaced with, respectively, the name of the function, the javadoc '@param'<br/>and '@return' stuff, or the name of the class to which the member function<br/>belongs.</html>"
+Enabled=false
+CallName=cmt_insert_func_header=
+EditorType=string
+ValueDefault=
+
+[Cmt Insert Class Header]
+Category=8
+Description="<html>Path to a file that contains text to insert before a class if the class<br/>isn't preceded by a C/C++ comment. If the inserted text contains '$(class)',<br/>that will be replaced with the class name.</html>"
+Enabled=false
+CallName=cmt_insert_class_header=
+EditorType=string
+ValueDefault=
+
+[Cmt Insert Oc Msg Header]
+Category=8
+Description="<html>Path to a file that contains text to insert before an Objective-C message<br/>specification, if the method isn't preceded by a C/C++ comment. If the<br/>inserted text contains '$(message)' or '$(javaparam)', these will be<br/>replaced with, respectively, the name of the function, or the javadoc<br/>'@param' and '@return' stuff.</html>"
+Enabled=false
+CallName=cmt_insert_oc_msg_header=
+EditorType=string
+ValueDefault=
+
+[Cmt Insert Before Preproc]
+Category=8
+Description="<html>Whether a comment should be inserted if a preprocessor is encountered when<br/>stepping backwards from a function name.<br/><br/>Applies to cmt_insert_oc_msg_header, cmt_insert_func_header and<br/>cmt_insert_class_header.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=cmt_insert_before_preproc=true|cmt_insert_before_preproc=false
+ValueDefault=false
+
+[Cmt Insert Before Inlines]
+Category=8
+Description="<html>Whether a comment should be inserted if a function is declared inline to a<br/>class definition.<br/><br/>Applies to cmt_insert_func_header.<br/><br/>Default: true</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=cmt_insert_before_inlines=true|cmt_insert_before_inlines=false
+ValueDefault=true
+
+[Cmt Insert Before Ctor Dtor]
+Category=8
+Description="<html>Whether a comment should be inserted if the function is a class constructor<br/>or destructor.<br/><br/>Applies to cmt_insert_func_header.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=cmt_insert_before_ctor_dtor=true|cmt_insert_before_ctor_dtor=false
+ValueDefault=false
+
+[Mod Full Brace Do]
+Category=9
+Description="<html>Add or remove braces on a single-line 'do' statement.</html>"
+Enabled=false
+EditorType=multiple
+Choices=mod_full_brace_do=ignore|mod_full_brace_do=add|mod_full_brace_do=remove|mod_full_brace_do=force|mod_full_brace_do=not_defined
+ChoicesReadable="Ignore Mod Full Brace Do|Add Mod Full Brace Do|Remove Mod Full Brace Do|Force Mod Full Brace Do"
+ValueDefault=ignore
+
+[Mod Full Brace For]
+Category=9
+Description="<html>Add or remove braces on a single-line 'for' statement.</html>"
+Enabled=false
+EditorType=multiple
+Choices=mod_full_brace_for=ignore|mod_full_brace_for=add|mod_full_brace_for=remove|mod_full_brace_for=force|mod_full_brace_for=not_defined
+ChoicesReadable="Ignore Mod Full Brace For|Add Mod Full Brace For|Remove Mod Full Brace For|Force Mod Full Brace For"
+ValueDefault=ignore
+
+[Mod Full Brace Function]
+Category=9
+Description="<html>(Pawn) Add or remove braces on a single-line function definition.</html>"
+Enabled=false
+EditorType=multiple
+Choices=mod_full_brace_function=ignore|mod_full_brace_function=add|mod_full_brace_function=remove|mod_full_brace_function=force|mod_full_brace_function=not_defined
+ChoicesReadable="Ignore Mod Full Brace Function|Add Mod Full Brace Function|Remove Mod Full Brace Function|Force Mod Full Brace Function"
+ValueDefault=ignore
+
+[Mod Full Brace If]
+Category=9
+Description="<html>Add or remove braces on a single-line 'if' statement. Braces will not be<br/>removed if the braced statement contains an 'else'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=mod_full_brace_if=ignore|mod_full_brace_if=add|mod_full_brace_if=remove|mod_full_brace_if=force|mod_full_brace_if=not_defined
+ChoicesReadable="Ignore Mod Full Brace If|Add Mod Full Brace If|Remove Mod Full Brace If|Force Mod Full Brace If"
+ValueDefault=ignore
+
+[Mod Full Brace If Chain]
+Category=9
+Description="<html>Whether to enforce that all blocks of an 'if'/'else if'/'else' chain either<br/>have, or do not have, braces. Overrides mod_full_brace_if.<br/><br/>0: Don't override mod_full_brace_if<br/>1: Add braces to all blocks if any block needs braces and remove braces if<br/> they can be removed from all blocks<br/>2: Add braces to all blocks if any block already has braces, regardless of<br/> whether it needs them<br/>3: Add braces to all blocks if any block needs braces and remove braces if<br/> they can be removed from all blocks, except if all blocks have braces<br/> despite none needing them</html>"
+Enabled=false
+EditorType=numeric
+CallName="mod_full_brace_if_chain="
+MinVal=0
+MaxVal=3
+ValueDefault=0
+
+[Mod Full Brace If Chain Only]
+Category=9
+Description="<html>Whether to add braces to all blocks of an 'if'/'else if'/'else' chain.<br/>If true, mod_full_brace_if_chain will only remove braces from an 'if' that<br/>does not have an 'else if' or 'else'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=mod_full_brace_if_chain_only=true|mod_full_brace_if_chain_only=false
+ValueDefault=false
+
+[Mod Full Brace While]
+Category=9
+Description="<html>Add or remove braces on single-line 'while' statement.</html>"
+Enabled=false
+EditorType=multiple
+Choices=mod_full_brace_while=ignore|mod_full_brace_while=add|mod_full_brace_while=remove|mod_full_brace_while=force|mod_full_brace_while=not_defined
+ChoicesReadable="Ignore Mod Full Brace While|Add Mod Full Brace While|Remove Mod Full Brace While|Force Mod Full Brace While"
+ValueDefault=ignore
+
+[Mod Full Brace Using]
+Category=9
+Description="<html>Add or remove braces on single-line 'using ()' statement.</html>"
+Enabled=false
+EditorType=multiple
+Choices=mod_full_brace_using=ignore|mod_full_brace_using=add|mod_full_brace_using=remove|mod_full_brace_using=force|mod_full_brace_using=not_defined
+ChoicesReadable="Ignore Mod Full Brace Using|Add Mod Full Brace Using|Remove Mod Full Brace Using|Force Mod Full Brace Using"
+ValueDefault=ignore
+
+[Mod Full Brace Nl]
+Category=9
+Description="<html>Don't remove braces around statements that span N newlines</html>"
+Enabled=false
+EditorType=numeric
+CallName="mod_full_brace_nl="
+MinVal=0
+MaxVal=5000
+ValueDefault=0
+
+[Mod Full Brace Nl Block Rem Mlcond]
+Category=9
+Description="<html>Whether to prevent removal of braces from 'if'/'for'/'while'/etc. blocks<br/>which span multiple lines.<br/><br/>Affects:<br/> mod_full_brace_for<br/> mod_full_brace_if<br/> mod_full_brace_if_chain<br/> mod_full_brace_if_chain_only<br/> mod_full_brace_while<br/> mod_full_brace_using<br/><br/>Does not affect:<br/> mod_full_brace_do<br/> mod_full_brace_function</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=mod_full_brace_nl_block_rem_mlcond=true|mod_full_brace_nl_block_rem_mlcond=false
+ValueDefault=false
+
+[Mod Paren On Return]
+Category=9
+Description="<html>Add or remove unnecessary parenthesis on 'return' statement.</html>"
+Enabled=false
+EditorType=multiple
+Choices=mod_paren_on_return=ignore|mod_paren_on_return=add|mod_paren_on_return=remove|mod_paren_on_return=force|mod_paren_on_return=not_defined
+ChoicesReadable="Ignore Mod Paren On Return|Add Mod Paren On Return|Remove Mod Paren On Return|Force Mod Paren On Return"
+ValueDefault=ignore
+
+[Mod Pawn Semicolon]
+Category=9
+Description="<html>(Pawn) Whether to change optional semicolons to real semicolons.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=mod_pawn_semicolon=true|mod_pawn_semicolon=false
+ValueDefault=false
+
+[Mod Full Paren If Bool]
+Category=9
+Description="<html>Whether to fully parenthesize Boolean expressions in 'while' and 'if'<br/>statement, as in 'if (a &amp;&amp; b &gt; c)' =&gt; 'if (a &amp;&amp; (b &gt; c))'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=mod_full_paren_if_bool=true|mod_full_paren_if_bool=false
+ValueDefault=false
+
+[Mod Full Paren Assign Bool]
+Category=9
+Description="<html>Whether to fully parenthesize Boolean expressions after '='<br/>statement, as in 'x = a &amp;&amp; b &gt; c;' =&gt; 'x = (a &amp;&amp; (b &gt; c));'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=mod_full_paren_assign_bool=true|mod_full_paren_assign_bool=false
+ValueDefault=false
+
+[Mod Full Paren Return Bool]
+Category=9
+Description="<html>Whether to fully parenthesize Boolean expressions after '='<br/>statement, as in 'return a &amp;&amp; b &gt; c;' =&gt; 'return (a &amp;&amp; (b &gt; c));'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=mod_full_paren_return_bool=true|mod_full_paren_return_bool=false
+ValueDefault=false
+
+[Mod Remove Extra Semicolon]
+Category=9
+Description="<html>Whether to remove superfluous semicolons.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=mod_remove_extra_semicolon=true|mod_remove_extra_semicolon=false
+ValueDefault=false
+
+[Mod Remove Duplicate Include]
+Category=9
+Description="<html>Whether to remove duplicate include.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=mod_remove_duplicate_include=true|mod_remove_duplicate_include=false
+ValueDefault=false
+
+[Mod Add Long Function Closebrace Comment]
+Category=9
+Description="<html>If a function body exceeds the specified number of newlines and doesn't have<br/>a comment after the close brace, a comment will be added.</html>"
+Enabled=false
+EditorType=numeric
+CallName="mod_add_long_function_closebrace_comment="
+MinVal=0
+MaxVal=255
+ValueDefault=0
+
+[Mod Add Long Namespace Closebrace Comment]
+Category=9
+Description="<html>If a namespace body exceeds the specified number of newlines and doesn't<br/>have a comment after the close brace, a comment will be added.</html>"
+Enabled=false
+EditorType=numeric
+CallName="mod_add_long_namespace_closebrace_comment="
+MinVal=0
+MaxVal=255
+ValueDefault=0
+
+[Mod Add Long Class Closebrace Comment]
+Category=9
+Description="<html>If a class body exceeds the specified number of newlines and doesn't have a<br/>comment after the close brace, a comment will be added.</html>"
+Enabled=false
+EditorType=numeric
+CallName="mod_add_long_class_closebrace_comment="
+MinVal=0
+MaxVal=255
+ValueDefault=0
+
+[Mod Add Long Switch Closebrace Comment]
+Category=9
+Description="<html>If a switch body exceeds the specified number of newlines and doesn't have a<br/>comment after the close brace, a comment will be added.</html>"
+Enabled=false
+EditorType=numeric
+CallName="mod_add_long_switch_closebrace_comment="
+MinVal=0
+MaxVal=255
+ValueDefault=0
+
+[Mod Add Long Ifdef Endif Comment]
+Category=9
+Description="<html>If an #ifdef body exceeds the specified number of newlines and doesn't have<br/>a comment after the #endif, a comment will be added.</html>"
+Enabled=false
+EditorType=numeric
+CallName="mod_add_long_ifdef_endif_comment="
+MinVal=0
+MaxVal=255
+ValueDefault=0
+
+[Mod Add Long Ifdef Else Comment]
+Category=9
+Description="<html>If an #ifdef or #else body exceeds the specified number of newlines and<br/>doesn't have a comment after the #else, a comment will be added.</html>"
+Enabled=false
+EditorType=numeric
+CallName="mod_add_long_ifdef_else_comment="
+MinVal=0
+MaxVal=255
+ValueDefault=0
+
+[Mod Sort Case Sensitive]
+Category=9
+Description="<html>Whether to take care of the case by the mod_sort_xx options.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=mod_sort_case_sensitive=true|mod_sort_case_sensitive=false
+ValueDefault=false
+
+[Mod Sort Import]
+Category=9
+Description="<html>Whether to sort consecutive single-line 'import' statements.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=mod_sort_import=true|mod_sort_import=false
+ValueDefault=false
+
+[Mod Sort Using]
+Category=9
+Description="<html>(C#) Whether to sort consecutive single-line 'using' statements.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=mod_sort_using=true|mod_sort_using=false
+ValueDefault=false
+
+[Mod Sort Include]
+Category=9
+Description="<html>Whether to sort consecutive single-line '#include' statements (C/C++) and<br/>'#import' statements (Objective-C). Be aware that this has the potential to<br/>break your code if your includes/imports have ordering dependencies.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=mod_sort_include=true|mod_sort_include=false
+ValueDefault=false
+
+[Mod Sort Incl Import Prioritize Filename]
+Category=9
+Description="<html>Whether to prioritize '#include' and '#import' statements that contain<br/>filename without extension when sorting is enabled.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=mod_sort_incl_import_prioritize_filename=true|mod_sort_incl_import_prioritize_filename=false
+ValueDefault=false
+
+[Mod Sort Incl Import Prioritize Extensionless]
+Category=9
+Description="<html>Whether to prioritize '#include' and '#import' statements that does not<br/>contain extensions when sorting is enabled.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=mod_sort_incl_import_prioritize_extensionless=true|mod_sort_incl_import_prioritize_extensionless=false
+ValueDefault=false
+
+[Mod Sort Incl Import Prioritize Angle Over Quotes]
+Category=9
+Description="<html>Whether to prioritize '#include' and '#import' statements that contain<br/>angle over quotes when sorting is enabled.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=mod_sort_incl_import_prioritize_angle_over_quotes=true|mod_sort_incl_import_prioritize_angle_over_quotes=false
+ValueDefault=false
+
+[Mod Sort Incl Import Ignore Extension]
+Category=9
+Description="<html>Whether to ignore file extension in '#include' and '#import' statements<br/>for sorting comparison.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=mod_sort_incl_import_ignore_extension=true|mod_sort_incl_import_ignore_extension=false
+ValueDefault=false
+
+[Mod Sort Incl Import Grouping Enabled]
+Category=9
+Description="<html>Whether to group '#include' and '#import' statements when sorting is enabled.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=mod_sort_incl_import_grouping_enabled=true|mod_sort_incl_import_grouping_enabled=false
+ValueDefault=false
+
+[Mod Move Case Break]
+Category=9
+Description="<html>Whether to move a 'break' that appears after a fully braced 'case' before<br/>the close brace, as in 'case X: { ... } break;' =&gt; 'case X: { ... break; }'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=mod_move_case_break=true|mod_move_case_break=false
+ValueDefault=false
+
+[Mod Move Case Return]
+Category=9
+Description="<html>Whether to move a 'return' that appears after a fully braced 'case' before<br/>the close brace, as in 'case X: { ... } return;' =&gt; 'case X: { ... return; }'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=mod_move_case_return=true|mod_move_case_return=false
+ValueDefault=false
+
+[Mod Case Brace]
+Category=9
+Description="<html>Add or remove braces around a fully braced case statement. Will only remove<br/>braces if there are no variable declarations in the block.</html>"
+Enabled=false
+EditorType=multiple
+Choices=mod_case_brace=ignore|mod_case_brace=add|mod_case_brace=remove|mod_case_brace=force|mod_case_brace=not_defined
+ChoicesReadable="Ignore Mod Case Brace|Add Mod Case Brace|Remove Mod Case Brace|Force Mod Case Brace"
+ValueDefault=ignore
+
+[Mod Remove Empty Return]
+Category=9
+Description="<html>Whether to remove a void 'return;' that appears as the last statement in a<br/>function.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=mod_remove_empty_return=true|mod_remove_empty_return=false
+ValueDefault=false
+
+[Mod Enum Last Comma]
+Category=9
+Description="<html>Add or remove the comma after the last value of an enumeration.</html>"
+Enabled=false
+EditorType=multiple
+Choices=mod_enum_last_comma=ignore|mod_enum_last_comma=add|mod_enum_last_comma=remove|mod_enum_last_comma=force|mod_enum_last_comma=not_defined
+ChoicesReadable="Ignore Mod Enum Last Comma|Add Mod Enum Last Comma|Remove Mod Enum Last Comma|Force Mod Enum Last Comma"
+ValueDefault=ignore
+
+[Mod Sort Oc Properties]
+Category=9
+Description="<html>(OC) Whether to organize the properties. If true, properties will be<br/>rearranged according to the mod_sort_oc_property_*_weight factors.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=mod_sort_oc_properties=true|mod_sort_oc_properties=false
+ValueDefault=false
+
+[Mod Sort Oc Property Class Weight]
+Category=9
+Description="<html>(OC) Weight of a class property modifier.</html>"
+Enabled=false
+EditorType=numeric
+CallName="mod_sort_oc_property_class_weight="
+MinVal=
+MaxVal=
+ValueDefault=0
+
+[Mod Sort Oc Property Thread Safe Weight]
+Category=9
+Description="<html>(OC) Weight of 'atomic' and 'nonatomic'.</html>"
+Enabled=false
+EditorType=numeric
+CallName="mod_sort_oc_property_thread_safe_weight="
+MinVal=
+MaxVal=
+ValueDefault=0
+
+[Mod Sort Oc Property Readwrite Weight]
+Category=9
+Description="<html>(OC) Weight of 'readwrite' when organizing properties.</html>"
+Enabled=false
+EditorType=numeric
+CallName="mod_sort_oc_property_readwrite_weight="
+MinVal=
+MaxVal=
+ValueDefault=0
+
+[Mod Sort Oc Property Reference Weight]
+Category=9
+Description="<html>(OC) Weight of a reference type specifier ('retain', 'copy', 'assign',<br/>'weak', 'strong') when organizing properties.</html>"
+Enabled=false
+EditorType=numeric
+CallName="mod_sort_oc_property_reference_weight="
+MinVal=
+MaxVal=
+ValueDefault=0
+
+[Mod Sort Oc Property Getter Weight]
+Category=9
+Description="<html>(OC) Weight of getter type ('getter=') when organizing properties.</html>"
+Enabled=false
+EditorType=numeric
+CallName="mod_sort_oc_property_getter_weight="
+MinVal=
+MaxVal=
+ValueDefault=0
+
+[Mod Sort Oc Property Setter Weight]
+Category=9
+Description="<html>(OC) Weight of setter type ('setter=') when organizing properties.</html>"
+Enabled=false
+EditorType=numeric
+CallName="mod_sort_oc_property_setter_weight="
+MinVal=
+MaxVal=
+ValueDefault=0
+
+[Mod Sort Oc Property Nullability Weight]
+Category=9
+Description="<html>(OC) Weight of nullability type ('nullable', 'nonnull', 'null_unspecified',<br/>'null_resettable') when organizing properties.</html>"
+Enabled=false
+EditorType=numeric
+CallName="mod_sort_oc_property_nullability_weight="
+MinVal=
+MaxVal=
+ValueDefault=0
+
+[Pp Indent]
+Category=10
+Description="<html>Add or remove indentation of preprocessor directives inside #if blocks<br/>at brace level 0 (file-level).</html>"
+Enabled=false
+EditorType=multiple
+Choices=pp_indent=ignore|pp_indent=add|pp_indent=remove|pp_indent=force|pp_indent=not_defined
+ChoicesReadable="Ignore Pp Indent|Add Pp Indent|Remove Pp Indent|Force Pp Indent"
+ValueDefault=ignore
+
+[Pp Indent At Level]
+Category=10
+Description="<html>Whether to indent #if/#else/#endif at the brace level. If false, these are<br/>indented from column 1.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=pp_indent_at_level=true|pp_indent_at_level=false
+ValueDefault=false
+
+[Pp Indent At Level0]
+Category=10
+Description="<html>Whether to indent #if/#else/#endif at the parenthesis level if the brace<br/>level is 0. If false, these are indented from column 1.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=pp_indent_at_level0=true|pp_indent_at_level0=false
+ValueDefault=false
+
+[Pp Indent Count]
+Category=10
+Description="<html>Specifies the number of columns to indent preprocessors per level<br/>at brace level 0 (file-level). If pp_indent_at_level=false, also specifies<br/>the number of columns to indent preprocessors per level<br/>at brace level &gt; 0 (function-level).<br/><br/>Default: 1</html>"
+Enabled=false
+EditorType=numeric
+CallName="pp_indent_count="
+MinVal=0
+MaxVal=16
+ValueDefault=1
+
+[Pp Space]
+Category=10
+Description="<html>Add or remove space after # based on pp_level of #if blocks.</html>"
+Enabled=false
+EditorType=multiple
+Choices=pp_space=ignore|pp_space=add|pp_space=remove|pp_space=force|pp_space=not_defined
+ChoicesReadable="Ignore Pp Space|Add Pp Space|Remove Pp Space|Force Pp Space"
+ValueDefault=ignore
+
+[Pp Space Count]
+Category=10
+Description="<html>Sets the number of spaces per level added with pp_space.</html>"
+Enabled=false
+EditorType=numeric
+CallName="pp_space_count="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Pp Indent Region]
+Category=10
+Description="<html>The indent for '#region' and '#endregion' in C# and '#pragma region' in<br/>C/C++. Negative values decrease indent down to the first column.</html>"
+Enabled=false
+EditorType=numeric
+CallName="pp_indent_region="
+MinVal=-16
+MaxVal=16
+ValueDefault=0
+
+[Pp Region Indent Code]
+Category=10
+Description="<html>Whether to indent the code between #region and #endregion.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=pp_region_indent_code=true|pp_region_indent_code=false
+ValueDefault=false
+
+[Pp Indent If]
+Category=10
+Description="<html>If pp_indent_at_level=true, sets the indent for #if, #else and #endif when<br/>not at file-level. Negative values decrease indent down to the first column.<br/><br/>=0: Indent preprocessors using output_tab_size<br/>&gt;0: Column at which all preprocessors will be indented</html>"
+Enabled=false
+EditorType=numeric
+CallName="pp_indent_if="
+MinVal=-16
+MaxVal=16
+ValueDefault=0
+
+[Pp If Indent Code]
+Category=10
+Description="<html>Whether to indent the code between #if, #else and #endif.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=pp_if_indent_code=true|pp_if_indent_code=false
+ValueDefault=false
+
+[Pp Indent In Guard]
+Category=10
+Description="<html>Whether to indent the body of an #if that encompasses all the code in the file.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=pp_indent_in_guard=true|pp_indent_in_guard=false
+ValueDefault=false
+
+[Pp Define At Level]
+Category=10
+Description="<html>Whether to indent '#define' at the brace level. If false, these are<br/>indented from column 1.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=pp_define_at_level=true|pp_define_at_level=false
+ValueDefault=false
+
+[Pp Include At Level]
+Category=10
+Description="<html>Whether to indent '#include' at the brace level.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=pp_include_at_level=true|pp_include_at_level=false
+ValueDefault=false
+
+[Pp Ignore Define Body]
+Category=10
+Description="<html>Whether to ignore the '#define' body while formatting.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=pp_ignore_define_body=true|pp_ignore_define_body=false
+ValueDefault=false
+
+[Pp Indent Case]
+Category=10
+Description="<html>Whether to indent case statements between #if, #else, and #endif.<br/>Only applies to the indent of the preprocesser that the case statements<br/>directly inside of.<br/><br/>Default: true</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=pp_indent_case=true|pp_indent_case=false
+ValueDefault=true
+
+[Pp Indent Func Def]
+Category=10
+Description="<html>Whether to indent whole function definitions between #if, #else, and #endif.<br/>Only applies to the indent of the preprocesser that the function definition<br/>is directly inside of.<br/><br/>Default: true</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=pp_indent_func_def=true|pp_indent_func_def=false
+ValueDefault=true
+
+[Pp Indent Extern]
+Category=10
+Description="<html>Whether to indent extern C blocks between #if, #else, and #endif.<br/>Only applies to the indent of the preprocesser that the extern block is<br/>directly inside of.<br/><br/>Default: true</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=pp_indent_extern=true|pp_indent_extern=false
+ValueDefault=true
+
+[Pp Indent Brace]
+Category=10
+Description="<html>How to indent braces directly inside #if, #else, and #endif.<br/>Requires pp_if_indent_code=true and only applies to the indent of the<br/>preprocesser that the braces are directly inside of.<br/> 0: No extra indent<br/> 1: Indent by one level<br/>-1: Preserve original indentation<br/><br/>Default: 1</html>"
+Enabled=false
+EditorType=numeric
+CallName="pp_indent_brace="
+MinVal=-1
+MaxVal=1
+ValueDefault=1
+
+[Pp Warn Unbalanced If]
+Category=10
+Description="<html>Whether to print warning messages for unbalanced #if and #else blocks.<br/>This will print a message in the following cases:<br/>- if an #ifdef block ends on a different indent level than<br/> where it started from. Example:<br/><br/> #ifdef TEST<br/> int i;<br/> {<br/> int j;<br/> #endif<br/><br/>- an #elif/#else block ends on a different indent level than<br/> the corresponding #ifdef block. Example:<br/><br/> #ifdef TEST<br/> int i;<br/> #else<br/> }<br/> int j;<br/> #endif</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=pp_warn_unbalanced_if=true|pp_warn_unbalanced_if=false
+ValueDefault=false
+
+[Include Category 0]
+Category=11
+Description="<html>The regex for include category with priority 0.</html>"
+Enabled=false
+CallName=include_category_0=
+EditorType=string
+ValueDefault=
+
+[Include Category 1]
+Category=11
+Description="<html>The regex for include category with priority 1.</html>"
+Enabled=false
+CallName=include_category_1=
+EditorType=string
+ValueDefault=
+
+[Include Category 2]
+Category=11
+Description="<html>The regex for include category with priority 2.</html>"
+Enabled=false
+CallName=include_category_2=
+EditorType=string
+ValueDefault=
+
+[Use Indent Func Call Param]
+Category=12
+Description="<html>true: indent_func_call_param will be used (default)<br/>false: indent_func_call_param will NOT be used<br/><br/>Default: true</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=use_indent_func_call_param=true|use_indent_func_call_param=false
+ValueDefault=true
+
+[Use Indent Continue Only Once]
+Category=12
+Description="<html>The value of the indentation for a continuation line is calculated<br/>differently if the statement is:<br/>- a declaration: your case with QString fileName ...<br/>- an assignment: your case with pSettings = new QSettings( ...<br/><br/>At the second case the indentation value might be used twice:<br/>- at the assignment<br/>- at the function call (if present)<br/><br/>To prevent the double use of the indentation value, use this option with the<br/>value 'true'.<br/><br/>true: indent_continue will be used only once<br/>false: indent_continue will be used every time (default)<br/><br/>Requires indent_ignore_first_continue=false.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=use_indent_continue_only_once=true|use_indent_continue_only_once=false
+ValueDefault=false
+
+[Indent Cpp Lambda Only Once]
+Category=12
+Description="<html>The indentation can be:<br/>- after the assignment, at the '[' character<br/>- at the begin of the lambda body<br/><br/>true: indentation will be after the assignment<br/>false: indentation will be at the begin of the lambda body (default)</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_cpp_lambda_only_once=true|indent_cpp_lambda_only_once=false
+ValueDefault=false
+
+[Use Sp After Angle Always]
+Category=12
+Description="<html>Whether sp_after_angle takes precedence over sp_inside_fparen. This was the<br/>historic behavior, but is probably not the desired behavior, so this is off<br/>by default.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=use_sp_after_angle_always=true|use_sp_after_angle_always=false
+ValueDefault=false
+
+[Use Options Overriding For Qt Macros]
+Category=12
+Description="<html>Whether to apply special formatting for Qt SIGNAL/SLOT macros. Essentially,<br/>this tries to format these so that they match Qt's normalized form (i.e. the<br/>result of QMetaObject::normalizedSignature), which can slightly improve the<br/>performance of the QObject::connect call, rather than how they would<br/>otherwise be formatted.<br/><br/>See options_for_QT.cpp for details.<br/><br/>Default: true</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=use_options_overriding_for_qt_macros=true|use_options_overriding_for_qt_macros=false
+ValueDefault=true
+
+[Use Form Feed No More As Whitespace Character]
+Category=12
+Description="<html>If true: the form feed character is removed from the list of whitespace<br/>characters. See https://en.cppreference.com/w/cpp/string/byte/isspace.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=use_form_feed_no_more_as_whitespace_character=true|use_form_feed_no_more_as_whitespace_character=false
+ValueDefault=false
+
+[Warn Level Tabs Found In Verbatim String Literals]
+Category=13
+Description="<html>(C#) Warning is given if doing tab-to-\t replacement and we have found one<br/>in a C# verbatim string literal.<br/><br/>Default: 2</html>"
+Enabled=false
+EditorType=numeric
+CallName="warn_level_tabs_found_in_verbatim_string_literals="
+MinVal=1
+MaxVal=3
+ValueDefault=2
+
+[Debug Max Number Of Loops]
+Category=13
+Description="<html>Limit the number of loops.<br/>Used by uncrustify.cpp to exit from infinite loop.<br/>0: no limit.</html>"
+Enabled=false
+EditorType=numeric
+CallName="debug_max_number_of_loops="
+MinVal=
+MaxVal=
+ValueDefault=0
+
+[Debug Line Number To Protocol]
+Category=13
+Description="<html>Set the number of the line to protocol;<br/>Used in the function prot_the_line if the 2. parameter is zero.<br/>0: nothing protocol.</html>"
+Enabled=false
+EditorType=numeric
+CallName="debug_line_number_to_protocol="
+MinVal=
+MaxVal=
+ValueDefault=0
+
+[Debug Timeout]
+Category=13
+Description="<html>Set the number of second(s) before terminating formatting the current file,<br/>0: no timeout.<br/>only for linux</html>"
+Enabled=false
+EditorType=numeric
+CallName="debug_timeout="
+MinVal=
+MaxVal=
+ValueDefault=0
+
+[Debug Truncate]
+Category=13
+Description="<html>Set the number of characters to be printed if the text is too long,<br/>0: do not truncate.</html>"
+Enabled=false
+EditorType=numeric
+CallName="debug_truncate="
+MinVal=0
+MaxVal=960
+ValueDefault=0
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/uncrust-files.sh b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/uncrust-files.sh
index 3e1d09b3..3e1d09b3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/uncrust-files.sh
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/uncrust-files.sh
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/uncrustify.xml.in b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/uncrustify.xml.in
index 33f6c6a5..33f6c6a5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/uncrustify.xml.in
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/uncrustify.xml.in
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/xsupplicant.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/xsupplicant.cfg
index 45d16fa6..45d16fa6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/xsupplicant.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/etc/xsupplicant.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/extras.vpj b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/extras.vpj
index 4b57772a..4b57772a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/extras.vpj
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/extras.vpj
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/forUncrustifySources.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/forUncrustifySources.cfg
new file mode 100644
index 00000000..12dca2a2
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/forUncrustifySources.cfg
@@ -0,0 +1,472 @@
+# The uncrustify sources are uncrustified with this config file.
+using 0.70.0
+
+# General options
+output_tab_size = 3
+tok_split_gte = true
+
+# Code alignment options
+align_asm_colon = true
+align_assign_decl_func = 2
+align_assign_func_proto_span = 4
+align_assign_span = 1
+align_enum_equ_span = 4
+align_enum_equ_thresh = 8
+align_func_params = true
+align_func_proto_star_style = 1
+align_nl_cont = true
+align_number_right = true
+align_pp_define_gap = 4
+align_pp_define_span = 3
+align_right_cmt_same_level = true
+align_right_cmt_span = 3
+align_struct_init_span = 3
+align_typedef_gap = 3
+align_typedef_span = 5
+align_typedef_star_style = 1
+align_var_class_span = 2
+align_var_def_amp_style = 1
+align_var_def_colon = true
+align_var_def_inline = true
+align_var_def_span = 2
+align_var_def_star_style = 1
+align_var_struct_span = 3
+
+# Indenting options
+indent_bool_paren = 1
+indent_class = true
+indent_columns = 3
+indent_compound_literal_return = false
+indent_cpp_lambda_only_once = true
+indent_first_bool_expr = true
+indent_macro_brace = true
+indent_member = 3
+indent_sparen_extra = 0
+indent_with_tabs = 0
+indent_oc_inside_msg_sel = false
+indent_off_after_assign = false
+indent_inside_ternary_operator = false
+
+# Newline adding and removing options
+nl_after_access_spec = 1
+nl_after_brace_close = true
+nl_after_brace_open = true
+nl_after_case = true
+nl_after_do = force
+nl_after_for = force
+nl_after_func_proto = 1
+nl_after_func_proto_group = 2
+nl_after_if = remove
+nl_after_member = remove
+nl_after_namespace = 2
+nl_after_return = true
+nl_after_semicolon = true
+nl_after_switch = remove
+nl_after_vbrace_open = true
+nl_after_while = remove
+nl_assign_brace = add
+nl_assign_leave_one_liners = true
+nl_before_brace_open = false
+nl_before_case = true
+nl_before_do = force
+nl_before_for = force
+nl_before_func_body_def = 3
+nl_before_if = force
+nl_before_if_closing_paren = remove
+nl_before_namespace = 2
+nl_before_opening_brace_func_class_def = force
+nl_before_switch = force
+nl_before_while = force
+nl_brace_catch = force
+nl_brace_else = add
+nl_brace_fparen = remove
+nl_brace_while = remove
+nl_case_colon_brace = force
+nl_catch_brace = add
+nl_class_brace = force
+nl_class_colon = remove
+nl_class_leave_one_liner_groups = true
+nl_class_leave_one_liners = true
+nl_template_args = false
+nl_template_class_decl = remove
+nl_template_class_def = force
+nl_template_end = false
+nl_template_func_decl = remove
+nl_template_func_def = force
+nl_template_start = false
+nl_template_var = remove
+nl_template_using = remove
+nl_comment_func_def = 1
+nl_constr_colon = force
+nl_constr_init_args = force
+nl_do_brace = add
+nl_else_brace = add
+nl_else_if = remove
+nl_elseif_brace = add
+nl_end_of_file = force
+nl_end_of_file_min = 1
+nl_enum_brace = force
+nl_enum_class_identifier = remove
+nl_enum_class = remove
+nl_enum_colon_type = remove
+nl_enum_identifier_colon = remove
+nl_enum_leave_one_liners = true
+nl_fcall_brace = add
+nl_fdef_brace = force
+nl_fdef_brace_cond = force
+nl_finally_brace = add
+nl_for_brace = add
+nl_func_call_empty = remove
+nl_func_call_paren = remove
+nl_func_call_paren_empty = remove
+nl_func_class_scope = remove
+nl_func_decl_args = remove
+nl_func_decl_empty = remove
+nl_func_decl_end = remove
+nl_func_decl_end_single = remove
+nl_func_decl_start = remove
+nl_func_decl_start_single = remove
+nl_func_def_empty = remove
+nl_func_def_end = remove
+nl_func_def_end_single = remove
+nl_func_def_paren = remove
+nl_func_def_paren_empty = remove
+nl_func_def_start = remove
+nl_func_def_start_single = remove
+nl_func_paren = remove
+nl_func_paren_empty = remove
+nl_func_proto_type_name = remove
+nl_func_scope_name = remove
+nl_func_type_name = remove
+nl_func_type_name_class = remove
+nl_func_var_def_blk = 1
+nl_getset_leave_one_liners = true
+nl_if_brace = add
+nl_inside_empty_func = 1
+nl_inside_namespace = 2
+nl_max = 3
+nl_namespace_brace = force
+nl_return_expr = remove
+nl_squeeze_ifdef = true
+nl_start_of_file = remove
+nl_struct_brace = add
+nl_switch_brace = add
+nl_try_brace = add
+nl_type_brace_init_lst = force
+nl_type_brace_init_lst_close = force
+nl_type_brace_init_lst_open = force
+nl_union_brace = add
+nl_while_brace = add
+
+# Positioning options
+pos_bool = lead
+pos_constr_colon = lead_break
+pos_constr_comma = lead_force
+pos_enum_comma = trail_force
+
+# Preprocessor options
+pp_indent = remove
+pp_space = remove
+
+# Spacing options
+sp_addr = remove
+sp_after_angle = force
+sp_after_byref_func = remove
+sp_after_byref = remove
+sp_after_cast = remove
+sp_after_class_colon = force
+sp_after_comma = force
+sp_after_constr_colon = force
+sp_after_dc = remove
+sp_after_for_colon = force
+sp_after_new = force
+sp_after_operator = remove
+sp_after_operator_sym = remove
+sp_after_ptr_star_func = remove
+sp_after_ptr_star_qualifier = remove
+sp_after_ptr_star = remove
+sp_after_semi = force
+sp_after_semi_for = force
+sp_after_semi_for_empty = remove
+sp_after_sparen = force
+sp_after_tparen_close = remove
+sp_after_type = force
+sp_after_type_brace_init_lst_open = force
+sp_angle_paren_empty = remove
+sp_angle_paren = remove
+sp_angle_word = force
+sp_arith_additive = force
+sp_arith = force
+sp_assign_default = force
+sp_assign = force
+sp_attribute_paren = remove
+sp_balance_nested_parens = false
+sp_before_angle = remove
+sp_before_byref = force
+sp_before_byref_func = force
+sp_before_case_colon = remove
+sp_before_class_colon = force
+sp_before_comma = remove
+sp_before_dc = remove
+sp_before_ellipsis = remove
+sp_before_for_colon = force
+sp_before_ptr_star = force
+sp_before_ptr_star_func = force
+sp_before_semi = remove
+sp_before_semi_for_empty = force
+sp_before_semi_for = remove
+sp_before_sparen = force
+sp_before_square = remove
+sp_before_squares = remove
+sp_before_type_brace_init_lst_close = force
+sp_before_unnamed_byref = force
+sp_before_unnamed_ptr_star = force
+sp_before_vardef_square = remove
+sp_between_ptr_star = remove
+sp_between_semi_for_empty = force
+sp_bool = force
+sp_brace_brace = force
+sp_brace_close_while = force
+sp_brace_typedef = force
+sp_catch_paren = force
+sp_compare = force
+sp_cond_colon_after = force
+sp_cond_colon_before = force
+sp_cond_question_after = force
+sp_cond_question_before = force
+sp_cpp_before_struct_binding = remove
+sp_cpp_cast_paren = remove
+sp_cpp_lambda_fparen = remove
+sp_cpp_lambda_paren_brace = force
+sp_cpp_lambda_square_brace = force
+sp_cpp_lambda_square_paren = remove
+sp_decltype_paren = remove
+sp_defined_paren = force
+sp_deref = remove
+sp_do_brace_open = force
+sp_endif_cmt = force
+sp_enum_after_assign = force
+sp_enum_assign = force
+sp_enum_before_assign = force
+sp_enum_colon = force
+sp_fparen_brace = force
+sp_fparen_brace_initializer = force
+sp_func_call_paren_empty = remove
+sp_func_call_paren = remove
+sp_func_class_paren = remove
+sp_func_class_paren_empty = remove
+sp_func_def_paren_empty = remove
+sp_func_def_paren = remove
+sp_func_proto_paren_empty = remove
+sp_func_proto_paren = remove
+sp_func_type_paren = remove
+sp_incdec = remove
+sp_inside_angle_empty = remove
+sp_inside_angle = remove
+sp_inside_braces_empty = remove
+sp_inside_braces_enum = force
+sp_inside_braces = force
+sp_inside_braces_struct = force
+sp_inside_fparen = remove
+sp_inside_fparens = remove
+sp_inside_paren = remove
+sp_inside_paren_cast = remove
+sp_inside_sparen = remove
+sp_inside_sparen_close = remove
+sp_inside_sparen_open = remove
+sp_inside_square = remove
+sp_inside_square_empty = remove
+sp_inside_tparen = remove
+sp_inv = remove
+sp_member = remove
+sp_not = remove
+sp_paren_paren = remove
+sp_paren_qualifier = force
+sp_pp_concat = force
+sp_pp_stringify = force
+sp_ptr_star_func_var = remove
+sp_ptr_star_func_type = remove
+sp_ptr_star_paren = force
+sp_return_brace = remove
+sp_return_paren = remove
+sp_sign = remove
+sp_sizeof_paren = remove
+sp_sparen_brace = force
+sp_template_angle = remove
+sp_trailing_return = force
+sp_type_brace_init_lst = remove
+sp_type_func = force
+sp_while_paren_open = force
+sp_word_brace_init_lst = remove
+
+# Comment modification options
+cmt_star_cont = true
+
+# eat
+eat_blanks_after_open_brace = true
+eat_blanks_before_close_brace = true
+
+# Code modifying options
+mod_add_long_function_closebrace_comment = 40
+mod_add_long_namespace_closebrace_comment = 5
+mod_add_long_switch_closebrace_comment = 40
+mod_full_brace_do = add
+mod_full_brace_for = add
+mod_full_brace_if = add
+mod_full_brace_while = add
+mod_paren_on_return = add
+#mod_remove_empty_return = true
+mod_remove_empty_return = false
+mod_remove_extra_semicolon = true
+mod_sort_include = true
+mod_sort_incl_import_prioritize_filename = false
+mod_sort_incl_import_prioritize_extensionless = false
+mod_sort_incl_import_prioritize_angle_over_quotes = false
+mod_sort_incl_import_ignore_extension = false
+mod_sort_incl_import_grouping_enabled = false
+debug_timeout = 0
+
+# the build of uncrustify needs the options to be set to ignore
+sp_after_assign = ignore
+sp_before_assign = ignore
+sp_before_tr_cmt = ignore
+sp_cmt_cpp_start = ignore
+nl_before_member = ignore
+nl_brace_brace = ignore
+nl_cpp_ldef_brace = ignore // TODO
+nl_enum_own_lines = ignore
+nl_func_call_args = ignore
+nl_func_call_start = ignore // remove
+nl_func_call_end = ignore // remove
+nl_func_def_args = ignore
+
+use_form_feed_no_more_as_whitespace_character = false
+
+# NOT yet used sp_xx options
+# sp_after_decltype
+# sp_after_invariant_paren
+# sp_after_mdatype_commas
+# sp_after_newop_paren
+# sp_after_noexcept
+# sp_after_oc_at_sel
+# sp_after_oc_at_sel_parens
+# sp_after_oc_block_caret
+# sp_after_oc_colon
+# sp_after_oc_dict_colon
+# sp_after_oc_msg_receiver
+# sp_after_oc_property
+# sp_after_oc_return_type
+# sp_after_oc_scope
+# sp_after_oc_synchronized
+# sp_after_oc_type
+# sp_after_operator_sym_empty
+# sp_after_ptr_block_caret
+# sp_after_send_oc_colon
+# sp_after_tag
+# sp_after_throw
+# sp_angle_colon
+# sp_angle_shift
+# sp_annotation_paren
+# sp_before_constr_colon
+# sp_before_mdatype_commas
+# sp_before_nl_cont
+# sp_before_oc_block_caret
+# sp_before_oc_colon
+# sp_before_oc_dict_colon
+# sp_before_oc_proto_list
+# sp_before_pp_stringify
+# sp_before_send_oc_colon
+# sp_before_square_asm_block
+# sp_before_template_paren
+# sp_between_mdatype_commas
+# sp_between_new_paren
+# sp_brace_catch
+# sp_brace_else
+# sp_brace_finally
+# sp_case_label
+# sp_catch_brace
+# sp_cond_question
+# sp_cond_ternary_short
+# sp_cparen_oparen
+# sp_cpp_lambda_assign
+# sp_d_array_colon
+# sp_else_brace
+# sp_enum_brace
+# sp_enum_paren
+# sp_extern_paren
+# sp_finally_brace
+# sp_fparen_dbrace
+# sp_func_call_user_inside_fparen
+# sp_func_call_user_paren
+# sp_func_call_user_paren_paren
+# sp_getset_brace
+# sp_inside_braces_oc_dict
+# sp_inside_newop_paren
+# sp_inside_newop_paren_close
+# sp_inside_newop_paren_open
+# sp_inside_oc_at_sel_parens
+# sp_inside_square_oc_array
+# sp_inside_type_brace_init_lst
+# sp_invariant_paren
+# sp_macro
+# sp_macro_func
+# sp_oc_brace_catch
+# sp_oc_catch_brace
+# sp_oc_catch_paren
+# sp_oc_classname_paren
+# sp_paren_brace
+# sp_paren_comma
+# sp_paren_ellipsis
+# sp_paren_noexcept
+# sp_range
+# sp_scope_paren
+# sp_sizeof_ellipsis
+# sp_sizeof_ellipsis_paren
+# sp_special_semi
+# sp_square_fparen
+# sp_super_paren
+# sp_this_paren
+# sp_throw_paren
+# sp_trailing_ret_t
+# sp_try_brace
+# sp_type_ellipsis
+# sp_vala_after_translation
+# sp_version_paren
+# sp_word_brace
+# sp_word_brace_ns
+
+# NOT yet used nl_xx options
+# nl_after_annotation
+# nl_after_square_assign
+# nl_after_synchronized
+# nl_assign_square
+# nl_before_synchronized
+# nl_before_throw
+# nl_between_annotation
+# nl_brace_finally
+# nl_brace_square
+# nl_brace_struct_var
+# nl_class_init_args
+# nl_getset_brace
+# nl_oc_before_end
+# nl_oc_before_implementation
+# nl_oc_before_interface
+# nl_oc_block_brace
+# nl_oc_brace_catch
+# nl_oc_catch_brace
+# nl_oc_implementation_brace
+# nl_oc_interface_brace
+# nl_oc_mdef_brace
+# nl_paren_dbrace_open
+# nl_property_brace
+# nl_scope_brace
+# nl_synchronized_brace
+# nl_template_class
+# nl_tsquare_brace
+# nl_unittest_brace
+# nl_using_brace
+# nl_version_brace
+# nl_func_call_args_multi_line_ignore_closures
+
+# NOT yet used indent_xx options
+# indent_off_after_return
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/forUncrustifySources.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/forUncrustifySources.txt
index 5beb747f..5beb747f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/forUncrustifySources.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/forUncrustifySources.txt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/lnt/ChunkStack.lnt b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/lnt/ChunkStack.lnt
index cea5860f..cea5860f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/lnt/ChunkStack.lnt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/lnt/ChunkStack.lnt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/lnt/align.lnt b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/lnt/align.lnt
index 32e388c3..32e388c3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/lnt/align.lnt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/lnt/align.lnt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/lnt/chunk_list.lnt b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/lnt/chunk_list.lnt
index e69de29b..e69de29b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/lnt/chunk_list.lnt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/lnt/chunk_list.lnt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/lnt/logger.lnt b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/lnt/logger.lnt
index e41a1282..e41a1282 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/lnt/logger.lnt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/lnt/logger.lnt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/lnt/readme.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/lnt/readme.txt
index f2534349..f2534349 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/lnt/readme.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/lnt/readme.txt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/lnt/unc_text.lnt b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/lnt/unc_text.lnt
index 89cb4fdb..89cb4fdb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/lnt/unc_text.lnt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/lnt/unc_text.lnt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/lnt/uncrustify_types.lnt b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/lnt/uncrustify_types.lnt
index e69de29b..e69de29b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/lnt/uncrustify_types.lnt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/lnt/uncrustify_types.lnt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/man/uncrustify.1.in b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/man/uncrustify.1.in
index 41267296..41267296 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/man/uncrustify.1.in
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/man/uncrustify.1.in
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/osx/Xcode Organizer Actions.xccommands b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/osx/Xcode Organizer Actions.xccommands
index be727021..be727021 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/osx/Xcode Organizer Actions.xccommands
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/osx/Xcode Organizer Actions.xccommands
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/package.json b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/package.json
new file mode 100644
index 00000000..48f9b7c5
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/package.json
@@ -0,0 +1,21 @@
+{
+ "name": "uncrustify",
+ "version": "0.75.0",
+ "description": "A highly configurable, easily modifiable source code beautifier for C, C++, C#, ObjectiveC, D, Java, Pawn and VALA",
+ "main": "uncrustify",
+ "scripts": {
+ "preinstall": "mkdir -p build && cd build && cmake .. && make"
+ },
+ "bin": "src/uncrustify",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/uncrustify/uncrustify"
+ },
+ "keywords": [
+ "uncrustify",
+ "source code beautifier"
+ ],
+ "author": "Ben Gardner",
+ "author": "Guy Maurel",
+ "license": "GPL-2.0-or-later"
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/release-process.rst b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/release-process.rst
new file mode 100644
index 00000000..f16173a1
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/release-process.rst
@@ -0,0 +1,325 @@
+============================
+ Uncrustify Release Process
+============================
+
+.. Update the date in the next line when editing this document!
+
+*This document was last updated on 2021-05-12, for Uncrustify 0.73.0.*
+
+This document uses "0.1.2" throughout as an example version number.
+Whenever you see this, you should substitute the version number
+of the new release being prepared.
+
+Paths are specified in git syntax, i.e. ``:/`` is the repository root.
+
+Requirements
+============
+
+This document assumes you are using a Linux-based OS.
+While it should be possible to cut a release on Windows,
+using e.g. the `Git for Windows SDK <https://gitforwindows.org/>`_
+or a MinGW_ environment, the names and/or arguments to some commands
+may be different.
+
+
+In addition to the build and test requirements for Uncrustify itself
+(CMake, a C++ compiler, Python, git), you will also need:
+
+- tar
+- python3-git
+- Binutils-mingw-w64
+- Gcc-mingw-w64
+- G++-mingw-w64
+- zip
+- wget (optional)
+- scp (to update documentation on the SourceForge page)
+
+Using packages provided by your OS distribution is *strongly* recommended.
+(Exact package names may vary depending on your distribution.)
+Examples use ``wget`` to download files via command line,
+but any mechanism of obtaining files over HTTPS may be employed.
+
+Preparing a Candidate
+=====================
+
+The first step, obviously, is deciding to make a release.
+Prior to making a release, verify that the repository is in a stable state
+and that all CI (continuous integration - Travis and AppVeyor) has passed.
+This should ensure all tests pass and building
+(including cross-compiling) for Windows is working.
+
+Once the release process is started,
+only pull requests needed to fix critical bugs,
+or related to the release process, should be accepted.
+(This will minimize the need to redo or repeat work
+such as updating the documentation, especially the change log.)
+
+To start the release process, first check that:
+
+- You are on the ``master`` branch
+- Your local clone is up to date
+- ``CMAKE_BUILD_TYPE`` is set to ``Release`` (or ``RelWithDebInfo``)
+- Your build is up to date
+- check the list of authors with scripts/prepare_list_of_authors.sh
+
+Then, run::
+
+ $ scripts/release_tool.py init
+ $ scripts/release_tool.py update path/to/uncrustify
+
+(Replace ``path/to/uncrustify`` with the path to the Uncrustify executable
+you just built, e.g. ``build/uncrustify``.)
+
+This will create a branch for the release candidate
+and perform some automated updates to various files.
+With no arguments, ``init`` will prompt you for the new version number,
+defaulting to ``x.(y+1).0``, where ``x.y.z`` is the previous release.
+The ``--version`` argument may also be used to specify the version
+(e.g. if the script will not be able to prompt for input).
+
+After, you should check that the following files
+show the correct version number and option count:
+
+- ``:/CMakeLists.txt`` (version number only; look for ``UNCRUSTIFY_VERSION``)
+- ``:/package.json`` (version number only; you'll see it, the file is tiny)
+- ``:/README.md`` (look for "options as of version")
+- ``:/documentation/htdocs/index.html`` (look for "options as of version")
+
+(Note that ``uncrustify`` itself will not show the new version number
+until the final release has been tagged.)
+
+Update Documentation
+====================
+
+Update ``:/ChangeLog``.
+There is a helper script, ``:/scripts/gen_changelog.py``,
+that can help extract new options since the previous release:
+
+.. code::
+
+ $ scripts/gen_changelog.py uncrustify-0.0.0
+
+Replace ``0.0.0`` with the version of the *previous* release.
+This will generate a bunch of output like::
+
+ 0123456789abcdef0123456789abcdef01234567
+ Added : better_name Jan 13 1970
+ Removed : poor_name Jan 13 1970
+ fedcba9876543210fedcba9876543210fedcba98
+ Added : new_option_1 Jan 18 1970
+ Added : new_option_2 Jan 18 1970
+
+Your goal is to turn the "raw" output into something like this::
+
+ Deprecated options:
+ - poor_name Jan 13 1970
+ Renamed to better_name
+
+ New options:
+ - new_option_1 Jan 18 1970
+ - new_option_1 Jan 18 1970
+
+To accomplish this, you will need to inspect any removed options,
+possibly consulting the commits in which they were removed,
+to determine the reason for deprecation and what replacement is recommended.
+(Note that it may not be as simple as "use X instead".)
+Also watch for options that were added and subsequently renamed
+since the last release. (This has happened a few times.
+In such cases, the new name should show up as an ordinary "new" option,
+and the old name should be entirely omitted from the change log.)
+
+It helps to copy the output to a scratch file for editing.
+Move deprecated options to the top and add a "Deprecated options:" header,
+then add a "New options:" header in front of what's left,
+and remove the commit SHAs (``sed -r '/^[[:xdigit:]]{40}/d``
+if you don't want to do it by hand).
+Then, check that the options are in order by date;
+date of authorship vs. date of merge may cause discrepancies.
+Finally, replace occurrences of ``\w+ +:`` with ``-``
+(if your editor supports regular expressions;
+otherwise you can individually replace ``Added :`` and ``Removed :``).
+
+Add a new release header (don't forget to add the date!) to the change log
+and insert the list of option changes as created above.
+Also fill in the list of resolved issues, new keywords (if any),
+as well as any other changes that need to be mentioned.
+
+If any command line arguments have been added or changed,
+including descriptions for the same, check to see if
+``:/man/uncrustify.1.in`` needs to be updated.
+(Hopefully this happened when the source was changed!)
+
+Finalize the Code Changes
+=========================
+
+Inspect your working tree.
+Use ``git add -p`` to stage the changes made to the documentation
+and other artifacts that contain version-dependent information.
+Verify that only desired changes are staged,
+and that your working tree is otherwise clean.
+
+Now is a good time to recheck
+that everything builds, and that all the tests pass.
+This is also a good time to manually test 32- and 64-bit builds.
+
+When you are ready, commit the changes using:
+
+.. code::
+
+ $ scripts/release_tool.py commit
+
+(If you prefer, you can also commit the changes manually;
+the script just fills in the commit message for you.)
+
+Submit and Tag the Release
+==========================
+
+Push the release candidate branch to GitHub, and create a pull request.
+Once the pull request is merged, tag the release using:
+Make sure, the file .git/config has the right value:
+[remote "origin"]
+ url = https://github.com/uncrustify/uncrustify.git
+
+.. code::
+
+ $ scripts/release_tool.py tag
+
+Note that this will only work if the merge of the release candidate
+is the most recent commit upstream.
+Otherwise, the merge commit must be specified by using the ``-c`` option.
+
+(Tagging the release does not need to be done on any particular branch.
+The command will not affect or look at your work tree at all.)
+
+Create Binaries
+===============
+
+Now that the release is published, grab a copy of the sources from GitHub:
+
+.. code::
+
+ $ wget https://github.com/uncrustify/uncrustify/archive/uncrustify-0.1.2.zip
+ $ unzip -e uncrustify-0.1.2.zip
+
+Next, build the 32- and 64-bit Windows binaries:
+
+.. code::
+
+ $ cd /path/to/uncrustify-uncrustify-0.1.2
+ $ mkdir buildwin-32
+ $ cd buildwin-32
+ $ cmake -G Ninja \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchain-mingw32.cmake \
+ -DCMAKE_EXE_LINKER_FLAGS="-static -s" \
+ ..
+ $ ninja
+ $ cpack
+
+.. code::
+
+ $ cd /path/to/uncrustify-uncrustify-0.1.2
+ $ mkdir buildwin-64
+ $ cd buildwin-64
+ $ cmake -G Ninja \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchain-mingw64.cmake \
+ -DCMAKE_EXE_LINKER_FLAGS="-static -s" \
+ ..
+ $ ninja
+ $ cpack
+
+Create a tarball:
+
+.. code::
+
+ $ cd /path/to/uncrustify
+ $ git archive -o uncrustify-0.1.2.tar.gz --prefix=uncrustify-0.1.2/ uncrustify-0.1.2
+TODO: find the best strategie...
+
+(If you don't have Ninja_, or just don't want to use it for whatever reason,
+omit ``-G Ninja`` and run ``make`` instead of ``ninja``.)
+
+This is also a good time to test the tagged build on Linux:
+
+.. code::
+
+ $ wget https://github.com/uncrustify/uncrustify/archive/uncrustify-0.1.2.tar.gz
+ $ tar xzf uncrustify-0.1.2.tar.gz
+ $ cd uncrustify-uncrustify-0.1.2
+ $ mkdir build
+ $ cd build
+ $ cmake -G Ninja -DCMAKE_BUILD_TYPE=Release ..
+ $ ninja
+ $ ctest
+ $ ./uncrustify --version
+
+Upload to SourceForge
+=====================
+
+- Login as admin under https://sourceforge.net/projects/uncrustify/
+- Change to https://sourceforge.net/projects/uncrustify/files/
+- "Add Folder"; the name should be e.g. "uncrustify-0.1.2"
+- Navigate to the new folder
+ (e.g. https://sourceforge.net/projects/uncrustify/files/uncrustify-0.1.2/)
+- "Add File"; upload the following files
+ (adjusting for the actual version number):
+
+ - README.md
+ - uncrustify-0.1.2.tar.gz
+ - buildwin-32/uncrustify-0.1.2_f-win32.zip
+ - buildwin-64/uncrustify-0.1.2_f-win64.zip
+
+- "Done"
+- Upload the documentation:
+
+ .. code::
+
+ $ scp -r documentation/htdocs/* ChangeLog \
+ USER,uncrustify@web.sourceforge.net:htdocs/
+
+- Use the web interface (file manager) to create the release folder
+ and upload the files to SourceForge.
+
+Announce the Release (Optional)
+===============================
+
+The new release is live! Spread the word! Consider these ideas:
+
+- Create a news item.
+- Update freshmeat.net project.
+
+Release Checklist
+=================
+
+The following list serves as a quick reference for making a release.
+These items are explained in greater detail above.
+
+#. Verify that CI passes
+
+#. Use ``release_tool.py`` to initialize the release
+ and perform automated updates. Check:
+
+ #. ``:/CMakeLists.txt``
+ #. ``:/package.json``
+ #. ``:/README.md``
+ #. ``:/documentation/htdocs/index.html``
+
+#. Update documentation as needed:
+
+ #. ``:/ChangeLog``
+ #. ``:/man/uncrustify.1.in``
+
+#. Stage changes.
+#. Test everything again.
+#. Finalize the code changes.
+#. Push to GitHub and create a merge request.
+#. Tag the merged release branch.
+#. Create Windows (32- and 64-bit) binaries.
+#. Run a test build on Linux.
+#. Upload the release and documentation to SourceForge.
+#. Announce the release!
+
+.. _MinGW: http://www.mingw.org/
+.. _GitPython: https://github.com/gitpython-developers/GitPython
+.. _Ninja: https://ninja-build.org/
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/Gcov_test.sh b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/Gcov_test.sh
index a3853773..a3853773 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/Gcov_test.sh
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/Gcov_test.sh
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/Run_clang-tidy.sh b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/Run_clang-tidy.sh
index c2f1c150..c2f1c150 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/Run_clang-tidy.sh
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/Run_clang-tidy.sh
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/add_test_list.awk b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/add_test_list.awk
index 1fbe2840..1fbe2840 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/add_test_list.awk
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/add_test_list.awk
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/check_options.py b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/check_options.py
index 1d32224b..1d32224b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/check_options.py
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/check_options.py
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/cmpcfg.pl b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/cmpcfg.pl
index df119dc1..df119dc1 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/cmpcfg.pl
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/cmpcfg.pl
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/compare_the_gcov.awk b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/compare_the_gcov.awk
index 30dba1ad..30dba1ad 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/compare_the_gcov.awk
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/compare_the_gcov.awk
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/gen_changelog.py b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/gen_changelog.py
index 8e042385..8e042385 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/gen_changelog.py
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/gen_changelog.py
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/gen_config_combinations_uniq_output.py b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/gen_config_combinations_uniq_output.py
index 2fa4fb0c..2fa4fb0c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/gen_config_combinations_uniq_output.py
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/gen_config_combinations_uniq_output.py
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/gen_config_combinations_uniq_output_example.json b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/gen_config_combinations_uniq_output_example.json
index 315fdfef..315fdfef 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/gen_config_combinations_uniq_output_example.json
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/gen_config_combinations_uniq_output_example.json
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/grammar_permutator.py b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/grammar_permutator.py
index cd42bd9f..cd42bd9f 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/grammar_permutator.py
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/grammar_permutator.py
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/make_katehl.py b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/make_katehl.py
index e241986a..e241986a 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/make_katehl.py
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/make_katehl.py
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/make_option_enum.py b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/make_option_enum.py
index c141bb04..c141bb04 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/make_option_enum.py
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/make_option_enum.py
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/make_options.py b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/make_options.py
index 71e97115..71e97115 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/make_options.py
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/make_options.py
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/make_punctuator_table.py b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/make_punctuator_table.py
index f3d90081..f3d90081 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/make_punctuator_table.py
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/make_punctuator_table.py
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/make_version.py b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/make_version.py
index 14e20018..14e20018 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/make_version.py
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/make_version.py
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/option_reducer.py b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/option_reducer.py
index 403ff92b..403ff92b 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/option_reducer.py
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/option_reducer.py
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/pclint/au-sm123.lnt b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/pclint/au-sm123.lnt
index 6eaf9a6b..6eaf9a6b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/pclint/au-sm123.lnt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/pclint/au-sm123.lnt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/pclint/co-gcc.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/pclint/co-gcc.h
index e948a20f..e948a20f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/pclint/co-gcc.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/pclint/co-gcc.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/pclint/co-gcc.lnt b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/pclint/co-gcc.lnt
index f7bd38dd..f7bd38dd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/pclint/co-gcc.lnt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/pclint/co-gcc.lnt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/pclint/lint_cfg.lnt b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/pclint/lint_cfg.lnt
index 72530d53..72530d53 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/pclint/lint_cfg.lnt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/pclint/lint_cfg.lnt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/pclint/pclint_cfg_eclipse.lnt b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/pclint/pclint_cfg_eclipse.lnt
index d1945c5b..d1945c5b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/pclint/pclint_cfg_eclipse.lnt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/pclint/pclint_cfg_eclipse.lnt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/pclint/policy.lnt b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/pclint/policy.lnt
index 911e74b7..911e74b7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/pclint/policy.lnt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/pclint/policy.lnt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/pclint/run-pclint-eclipse.bat b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/pclint/run-pclint-eclipse.bat
new file mode 100644
index 00000000..051813d6
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/pclint/run-pclint-eclipse.bat
@@ -0,0 +1,104 @@
+rem set to on for debugging
+@echo off
+setlocal
+
+rem Run this script from the project root directory
+
+echo ------------------------------------------------------
+echo Start pcLint analysis to check code quality ...
+
+set SRC_DIR=src
+set EXC_DIR=lnt
+set OUT_DIR=tests\pclint
+set LNT_DIR=scripts\pclint
+
+rem Check if pcLint program is available
+set prog=lint-nt.exe
+for %%i in ("%path:;=";"%") do (
+rem echo %%~i
+ if exist %%~i\%prog% (
+ set found=%%i
+ echo found %prog% in %%i
+ )
+)
+if %found%=="" goto PROG_MISSING
+
+if NOT EXIST tests md tests
+if NOT EXIST tests\pclint md tests\pclint
+
+rem create list of all C source files to analyze
+rem FIXME: works only if there are no spaces in the paths
+
+dir /s/b %EXC_DIR%\*.lnt > .\%OUT_DIR%\exceptions.lnt
+
+rem to check single files activate one of the lines below
+rem dir /s/b %SRC_DIR%\align_stack.cpp > .\%OUT_DIR%\files.lnt
+rem dir /s/b %SRC_DIR%\align.cpp > .\%OUT_DIR%\files.lnt
+rem dir /s/b %SRC_DIR%\args.cpp > .\%OUT_DIR%\files.lnt
+rem dir /s/b %SRC_DIR%\backup.cpp > .\%OUT_DIR%\files.lnt
+rem dir /s/b %SRC_DIR%\brace_cleanup.cpp> .\%OUT_DIR%\files.lnt
+rem dir /s/b %SRC_DIR%\braces.cpp > .\%OUT_DIR%\files.lnt
+rem dir /s/b %SRC_DIR%\chunk.cpp > .\%OUT_DIR%\files.lnt
+rem dir /s/b %SRC_DIR%\ChunkStack.cpp > .\%OUT_DIR%\files.lnt
+rem dir /s/b %SRC_DIR%\combine.cpp > .\%OUT_DIR%\files.lnt
+rem dir /s/b %SRC_DIR%\compat_posix.cpp > .\%OUT_DIR%\files.lnt
+rem dir /s/b %SRC_DIR%\compat_win32.cpp > .\%OUT_DIR%\files.lnt
+rem dir /s/b %SRC_DIR%\defines.cpp > .\%OUT_DIR%\files.lnt
+rem dir /s/b %SRC_DIR%\detect.cpp > .\%OUT_DIR%\files.lnt
+rem dir /s/b %SRC_DIR%\indent.cpp > .\%OUT_DIR%\files.lnt
+rem dir /s/b %SRC_DIR%\keywords.cpp > .\%OUT_DIR%\files.lnt
+rem dir /s/b %SRC_DIR%\lang_pawn.cpp > .\%OUT_DIR%\files.lnt
+rem dir /s/b %SRC_DIR%\logger.cpp > .\%OUT_DIR%\files.lnt
+rem dir /s/b %SRC_DIR%\logmask.cpp > .\%OUT_DIR%\files.lnt
+rem dir /s/b %SRC_DIR%\md5.cpp > .\%OUT_DIR%\files.lnt
+rem dir /s/b %SRC_DIR%\newlines.cpp > .\%OUT_DIR%\files.lnt
+rem dir /s/b %SRC_DIR%\options_for_QT.cpp > .\%OUT_DIR%\files.lnt
+rem dir /s/b %SRC_DIR%\options.cpp > .\%OUT_DIR%\files.lnt
+rem dir /s/b %SRC_DIR%\output.cpp > .\%OUT_DIR%\files.lnt
+rem dir /s/b %SRC_DIR%\parens.cpp > .\%OUT_DIR%\files.lnt
+rem dir /s/b %SRC_DIR%\parse_frame.cpp > .\%OUT_DIR%\files.lnt
+rem dir /s/b %SRC_DIR%\punctuators.cpp > .\%OUT_DIR%\files.lnt
+rem dir /s/b %SRC_DIR%\semicolons.cpp > .\%OUT_DIR%\files.lnt
+rem dir /s/b %SRC_DIR%\sorting.cpp > .\%OUT_DIR%\files.lnt
+rem dir /s/b %SRC_DIR%\space.cpp > .\%OUT_DIR%\files.lnt
+rem dir /s/b %SRC_DIR%\tokenize_cleanup.cpp > .\%OUT_DIR%\files.lnt
+rem dir /s/b %SRC_DIR%\tokenize.cpp > .\%OUT_DIR%\files.lnt
+rem dir /s/b %SRC_DIR%\unc_text.cpp > .\%OUT_DIR%\files.lnt
+rem dir /s/b %SRC_DIR%\unc_tools.cpp > .\%OUT_DIR%\files.lnt
+rem dir /s/b %SRC_DIR%\uncrustify_emscripten.cpp > .\%OUT_DIR%\files.lnt
+rem dir /s/b %SRC_DIR%\uncrustify.cpp > .\%OUT_DIR%\files.lnt
+rem dir /s/b %SRC_DIR%\unicode.cpp > .\%OUT_DIR%\files.lnt
+rem dir /s/b %SRC_DIR%\universalindentgui.cpp > .\%OUT_DIR%\files.lnt
+rem dir /s/b %SRC_DIR%\width.cpp > .\%OUT_DIR%\files.lnt
+
+rem to check all source files use the line below
+dir /s/b %SRC_DIR%\*.cpp > .\%OUT_DIR%\files.lnt
+
+rem use this to save the pclint errors to a file for later review
+rem lint-nt .\%LNT_DIR%\pclint_cfg_eclipse.lnt .\%OUT_DIR%\exceptions.lnt .\%OUT_DIR%\files.lnt > .\%OUT_DIR%\pclint-results.xml
+
+rem to make eclipse parse the pclint errors it has to be output to the console
+lint-nt .\%LNT_DIR%\pclint_cfg_eclipse.lnt .\%OUT_DIR%\exceptions.lnt .\%OUT_DIR%\files.lnt
+
+rem type %OUT_DIR%\pclint-results.xml | more
+rem type %OUT_DIR%\pclint-results.xml
+rem echo pcLint output placed in %OUT_DIR%\pclint-results.xml
+
+goto END
+
+:PROG_MISSING
+echo.
+echo ------------------------------------------------------
+echo pcLint Error: %prog% not found.
+echo Verify that PCLINT is correctly installed, the
+echo installation was added to the PATH and the
+echo environment variable PCLINT_HOME was set to its path.
+echo ------------------------------------------------------
+echo.
+goto END
+
+:END
+echo pcLint finished
+echo ------------------------------------------------------
+endlocal
+
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/pclint/usage.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/pclint/usage.txt
index fff1c305..fff1c305 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/pclint/usage.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/pclint/usage.txt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/prepare_list_of_authors.sh b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/prepare_list_of_authors.sh
index 6485d377..6485d377 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/prepare_list_of_authors.sh
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/prepare_list_of_authors.sh
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/release_tool.py b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/release_tool.py
index 2dd71676..2dd71676 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/release_tool.py
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/release_tool.py
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/run_ctest.py b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/run_ctest.py
index 0267e0ad..0267e0ad 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/run_ctest.py
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/run_ctest.py
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/tokenizer.py b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/tokenizer.py
index 0bc33bac..0bc33bac 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/tokenizer.py
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/tokenizer.py
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/update_emscripten_bindings.py b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/update_emscripten_bindings.py
new file mode 100644
index 00000000..781311e2
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/scripts/update_emscripten_bindings.py
@@ -0,0 +1,316 @@
+#!/bin/python
+from __future__ import print_function # python >= 2.6, chained 'with' >= 2.7
+
+from os.path import dirname, abspath
+from os import fdopen as os_fdopen, remove as os_remove, name as os_name
+from shutil import copy2
+from subprocess import Popen, PIPE
+from sys import exit as sys_exit, stderr
+from tempfile import mkstemp
+from contextlib import contextmanager
+from threading import Timer
+import re
+
+
+ROOT_DIR = dirname(dirname(abspath(__file__)))
+
+# ==============================================================================
+
+FILE_BINDINGS = "%s/src/uncrustify_emscripten.cpp" % ROOT_DIR
+FILE_TS = "%s/emscripten/libUncrustify.d.ts" % ROOT_DIR
+
+REGION_START = "region enum bindings"
+REGION_END = "endregion enum bindings"
+
+''' Enums which values need to be updated in the binding code '''
+ENUMS_INFO = [
+ {
+ 'name': 'option_type_e',
+ 'substitute_name': 'OptionType',
+ 'filepath': '%s/src/option.h' % ROOT_DIR,
+ 'extra_arg': [],
+ 'filter_values': [],
+ 'suffix_chars': 0,
+ },
+ {
+ 'name': 'iarf_e',
+ 'substitute_name': 'IARF',
+ 'filepath': '%s/src/option.h' % ROOT_DIR,
+ 'extra_arg': [],
+ 'filter_values': ['NOT_DEFINED'],
+ 'suffix_chars': 0,
+ },
+ {
+ 'name': 'line_end_e',
+ 'substitute_name': 'LineEnd',
+ 'filepath': '%s/src/option.h' % ROOT_DIR,
+ 'extra_arg': [],
+ 'filter_values': [],
+ 'suffix_chars': 0,
+ },
+ {
+ 'name': 'token_pos_e',
+ 'substitute_name': 'TokenPos',
+ 'filepath': '%s/src/option.h' % ROOT_DIR,
+ 'extra_arg': [],
+ 'filter_values': [],
+ 'suffix_chars': 0,
+ },
+ {
+ 'name': 'log_sev_t',
+ 'substitute_name': 'LogType',
+ 'filepath': '%s/src/log_levels.h' % ROOT_DIR,
+ 'extra_arg': [],
+ 'filter_values': [],
+ 'suffix_chars': 1,
+ },
+ {
+ 'name': 'E_Token',
+ 'substitute_name': 'TokenType',
+ 'filepath': '%s/src/token_enum.h' % ROOT_DIR,
+ 'extra_arg': [],
+ 'filter_values': ['CT_TOKEN_COUNT_'],
+ 'suffix_chars': 3,
+ },
+ {
+ 'name': 'lang_flag_e',
+ 'substitute_name': 'Language',
+ 'filepath': '%s/src/uncrustify_types.h' % ROOT_DIR,
+ 'extra_arg': ["-extra-arg=-std=c++1z", "-extra-arg=-DEMSCRIPTEN"],
+ 'filter_values': [
+ 'LANG_ALLC',
+ 'LANG_ALL',
+ 'FLAG_HDR',
+ 'FLAG_DIG',
+ 'FLAG_PP',
+ ],
+ 'suffix_chars': 5,
+ },
+]
+
+# ==============================================================================
+
+NULL_DEV = "/dev/null" if os_name != "nt" else "nul"
+
+
+@contextmanager
+def make_raw_temp_file(*args, **kwargs):
+ fd, tmp_file_name = mkstemp(*args, **kwargs)
+ try:
+ yield (fd, tmp_file_name)
+ finally:
+ os_remove(tmp_file_name)
+
+
+@contextmanager
+def open_fd(*args, **kwargs):
+ fp = os_fdopen(*args, **kwargs)
+ try:
+ yield fp
+ finally:
+ fp.close()
+
+
+def term_proc(proc, timeout):
+ """
+ helper function terminate a process if a timer times out
+
+ :param proc: the process object that is going to be terminated
+ :param timeout: value that will be set to indicate termination
+ """
+ timeout["value"] = True
+ proc.terminate()
+
+
+def proc_output(args, timeout_sec=10):
+ """
+ grabs output from called program
+ :param args: string array containing program name and program arguments
+ :param timeout_sec: max sec the program can run without being terminated
+ :return: utf8 decoded program output in a string
+ """
+ proc = Popen(args, stdout=PIPE)
+
+ timeout = {"value": False}
+ if timeout_sec is not None:
+ timeout = {"value": False}
+ timer = Timer(timeout_sec, term_proc, [proc, timeout])
+ timer.start()
+
+ output_b, error_txt_b = proc.communicate()
+
+ if timeout_sec is not None:
+ timer.cancel()
+
+ output = output_b.decode("UTF-8")
+
+ if timeout["value"]:
+ print("proc timeout: %s" % ' '.join(args), file=stderr)
+
+ return output if not timeout["value"] else None
+
+
+def get_enum_lines(enum_info):
+ """
+ extracts enum values from a file via clang-check
+
+ :param enum_info: dict with:
+ 'name' (name of the enum),
+ 'filepath' (file containing the enum definition),
+ 'extra_arg' (extra arguments passed to clang-check)
+ :return: list containing enum values
+ """
+ cut_len = len(enum_info['name'])
+
+ proc_args = ["clang-check", enum_info['filepath'], "-ast-dump",
+ '-ast-dump-filter=%s' % enum_info['name']]
+ proc_args += enum_info['extra_arg']
+
+ output = proc_output(proc_args)
+ if output is None or len(output) == 0:
+ print("ScriptError: %s - empty clang-check return" % get_enum_lines.__name__,
+ file=stderr)
+ return ()
+
+ reg_obj = re.compile("EnumConstantDecl.+col:\d+ (referenced )?(\w+)")
+
+ lines = [m.group(2) for l in output.splitlines()
+ for m in [re.search(reg_obj, l)] if m]
+ lines = [line for line in lines if line not in enum_info['filter_values']]
+
+ if len(lines) == 0:
+ print("ScriptError: %s - no enum_info names found" % get_enum_lines.__name__,
+ file=stderr)
+ return ()
+ return lines
+
+
+def write_ts(opened_file_obj, enum_info):
+ """
+ writes enum values in a specific typescript d.ts file format
+
+ :param opened_file_obj: opened file file object (with write permissions)
+ :param enum_info: dict with:
+ 'name' (name of the enum),
+ 'substitute_name' (substitute name for the enum),
+ 'filepath' (file containing the enum definition),
+ 'extra_arg' (extra arguments passed to clang-check)
+ :return: False on failure else True
+ """
+ lines = get_enum_lines(enum_info)
+ if len(lines) == 0:
+ return False
+
+ opened_file_obj.write(
+ ' export interface %sValue extends EmscriptenEnumTypeObject {}\n'
+ ' export interface %s extends EmscriptenEnumType\n'
+ ' {\n'
+ % (enum_info['substitute_name'], enum_info['substitute_name'])
+ )
+ for line in lines:
+ opened_file_obj.write(
+ ' %s : %sValue;\n'
+ % (line[enum_info['suffix_chars']:], enum_info['substitute_name'])
+ )
+ opened_file_obj.write(
+ ' }\n\n'
+ )
+ return True
+
+
+def write_bindings(opened_file_obj, enum_info):
+ """
+ writes enum values in a specific emscripten embind enum bindings format
+
+ :param opened_file_obj: opened file file object (with write permissions)
+ :param enum_info: dict with:
+ 'name' (name of the enum),
+ 'filepath' (file containing the enum definition),
+ 'extra_arg' (extra arguments passed to clang-check)
+ :return: False on failure else True
+ """
+ lines = get_enum_lines(enum_info)
+ if len(lines) == 0:
+ return False
+
+ opened_file_obj.write(
+ ' enum_<%s>("%s")' % (enum_info['name'], enum_info['substitute_name'])
+ )
+ for line in lines:
+ opened_file_obj.write(
+ '\n .value("%s", %s::%s)'
+ % (line[enum_info['suffix_chars']:], enum_info['name'], line)
+ )
+ opened_file_obj.write(
+ ';\n\n'
+ )
+ return True
+
+
+def update_file(file_path, writer_func, enums_info):
+ """
+ reads in a file and replaces old enum value in a region, which is defined by
+ region start and end string, with updated ones
+
+ :param file_path: file in which the replacement will be made
+ :param writer_func: name of the function that will be called to write new
+ content
+ :param enums_info:list of dicts each containing:
+ 'name' (name of the enum),
+ 'substitute_name' (substitute name for the enum),
+ 'filepath' (file containing the enum definition),
+ 'extra_arg' (extra arguments passed to clang-check)
+ :return: False on failure else True
+ """
+ in_target_region = False
+
+ reg_obj_start = re.compile(".*%s$" % REGION_START)
+ reg_obj_end = re.compile(".*%s$" % REGION_END)
+ reg_obj = reg_obj_start
+
+ with make_raw_temp_file(suffix='.unc') as (fd, tmp_file_path):
+ with open(file_path, 'r') as fr, open_fd(fd, 'w') as fw:
+ for line in fr:
+ match = None if reg_obj is None else re.search(reg_obj, line)
+
+ if match is None and not in_target_region:
+ fw.write(line) # write out of region code
+
+ elif match is not None and not in_target_region:
+ fw.write(line) # hit the start region
+
+ in_target_region = True
+ reg_obj = reg_obj_end
+
+ for enum in enums_info:
+ succes_flag = writer_func(fw, enum)
+ if not succes_flag: # abort, keep input file clean
+ return False
+
+ elif match is None and in_target_region:
+ pass # ignore old binding code
+
+ elif match and in_target_region: # hit the endregion
+ fw.write(line)
+
+ in_target_region = False
+ reg_obj = None
+
+ copy2(tmp_file_path, file_path) # overwrite input file
+ return True
+
+
+def main():
+ flag = update_file(FILE_BINDINGS, write_bindings, ENUMS_INFO)
+ if not flag:
+ return 1
+
+ flag = update_file(FILE_TS, write_ts, ENUMS_INFO)
+ if not flag:
+ return 1
+
+ return 0
+
+
+if __name__ == "__main__":
+ sys_exit(main())
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/.kateconfig b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/.kateconfig
index 4d9024f0..4d9024f0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/.kateconfig
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/.kateconfig
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/ChunkStack.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/ChunkStack.cpp
new file mode 100644
index 00000000..dfa0f888
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/ChunkStack.cpp
@@ -0,0 +1,120 @@
+/**
+ * @file ChunkStack.cpp
+ * Manages a chunk stack
+ *
+ * @author Ben Gardner
+ * @license GPL v2+
+ */
+
+#include "ChunkStack.h"
+
+
+void ChunkStack::Set(const ChunkStack &cs)
+{
+ m_cse.resize(cs.m_cse.size());
+
+ for (size_t idx = 0; idx < m_cse.size(); idx++)
+ {
+ m_cse[idx].m_pc = cs.m_cse[idx].m_pc;
+ m_cse[idx].m_seqnum = cs.m_cse[idx].m_seqnum;
+ }
+
+ m_seqnum = cs.m_seqnum;
+}
+
+
+const ChunkStack::Entry *ChunkStack::Top() const
+{
+ if (!m_cse.empty())
+ {
+ return(&m_cse[m_cse.size() - 1]);
+ }
+ return(nullptr);
+}
+
+
+const ChunkStack::Entry *ChunkStack::Get(size_t idx) const
+{
+ if (idx < m_cse.size())
+ {
+ return(&m_cse[idx]);
+ }
+ return(nullptr);
+}
+
+
+Chunk *ChunkStack::GetChunk(size_t idx) const
+{
+ if (idx < m_cse.size())
+ {
+ return(m_cse[idx].m_pc);
+ }
+ return(nullptr);
+}
+
+
+Chunk *ChunkStack::Pop_Front()
+{
+ Chunk *pc = nullptr;
+
+ if (!m_cse.empty())
+ {
+ pc = m_cse[0].m_pc;
+ m_cse.pop_front();
+ }
+ return(pc);
+}
+
+
+Chunk *ChunkStack::Pop_Back()
+{
+ Chunk *pc = nullptr;
+
+ if (!m_cse.empty())
+ {
+ pc = m_cse[m_cse.size() - 1].m_pc;
+ m_cse.pop_back();
+ }
+ return(pc);
+}
+
+
+void ChunkStack::Push_Back(Chunk *pc, size_t seqnum)
+{
+ m_cse.push_back(Entry(seqnum, pc));
+
+ if (m_seqnum < seqnum)
+ {
+ m_seqnum = seqnum;
+ }
+}
+
+
+void ChunkStack::Zap(size_t idx)
+{
+ if (idx < m_cse.size())
+ {
+ m_cse[idx].m_pc = nullptr;
+ }
+}
+
+
+void ChunkStack::Collapse()
+{
+ size_t wr_idx = 0;
+
+ for (size_t rd_idx = 0; rd_idx < m_cse.size(); rd_idx++)
+ {
+ if (m_cse[rd_idx].m_pc != nullptr)
+ {
+ if (rd_idx != wr_idx)
+ {
+ m_cse[wr_idx].m_pc = m_cse[rd_idx].m_pc;
+ m_cse[wr_idx].m_seqnum = m_cse[rd_idx].m_seqnum;
+ }
+ wr_idx++;
+ }
+ }
+
+ m_cse.resize(wr_idx);
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/ChunkStack.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/ChunkStack.h
new file mode 100644
index 00000000..b33e1dd5
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/ChunkStack.h
@@ -0,0 +1,123 @@
+/**
+ * @file ChunkStack.h
+ * Manages a simple stack of chunks
+ *
+ * @author Ben Gardner
+ * @license GPL v2+
+ */
+#ifndef CHUNKSTACK_H_INCLUDED
+#define CHUNKSTACK_H_INCLUDED
+
+#include "uncrustify_types.h"
+
+class ChunkStack
+{
+public:
+ struct Entry
+ {
+ Entry()
+ : m_seqnum(0)
+ , m_pc(0)
+ {
+ }
+
+
+ Entry(const Entry &ref)
+ : m_seqnum(ref.m_seqnum)
+ , m_pc(ref.m_pc)
+ {
+ }
+
+
+ Entry(size_t sn, Chunk *pc)
+ : m_seqnum(sn)
+ , m_pc(pc)
+ {
+ }
+
+
+ size_t m_seqnum;
+ Chunk *m_pc;
+ };
+
+protected:
+ std::deque<Entry> m_cse;
+ size_t m_seqnum; //! current sequence number
+
+public:
+ ChunkStack()
+ : m_seqnum(0)
+ {
+ }
+
+
+ ChunkStack(const ChunkStack &cs)
+ {
+ Set(cs);
+ }
+
+
+ virtual ~ChunkStack()
+ {
+ }
+
+
+ void Set(const ChunkStack &cs);
+
+
+ void Push_Back(Chunk *pc)
+ {
+ Push_Back(pc, ++m_seqnum);
+ }
+
+
+ bool Empty() const
+ {
+ return(m_cse.empty());
+ }
+
+
+ size_t Len() const
+ {
+ return(m_cse.size());
+ }
+
+
+ const Entry *Top() const;
+
+
+ const Entry *Get(size_t idx) const;
+
+
+ Chunk *GetChunk(size_t idx) const;
+
+
+ Chunk *Pop_Back();
+
+
+ void Push_Back(Chunk *pc, size_t seqnum);
+
+
+ Chunk *Pop_Front();
+
+
+ void Reset()
+ {
+ m_cse.clear();
+ }
+
+
+ /**
+ * Mark an entry to be removed by Collapse()
+ *
+ * @param idx The item to remove
+ */
+ void Zap(size_t idx);
+
+
+ //! Compresses down the stack by removing dead entries
+ void Collapse();
+};
+
+
+#endif /* CHUNKSTACK_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/EnumStructUnionParser.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/EnumStructUnionParser.cpp
new file mode 100644
index 00000000..02536aa4
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/EnumStructUnionParser.cpp
@@ -0,0 +1,2919 @@
+/**
+ * @file EnumStructUnionParser.cpp
+ *
+ * @author
+ * @license GPL v2+
+ */
+
+#include "EnumStructUnionParser.h"
+
+#include "combine_fix_mark.h"
+#include "combine_skip.h"
+#include "combine_tools.h"
+#include "flag_parens.h"
+#include "lang_pawn.h"
+
+
+/**
+ * Extern declarations
+ */
+extern const char *get_token_name(E_Token);
+extern void log_pcf_flags(log_sev_t, pcf_flags_t);
+
+
+/**
+ * Forward declarations
+ */
+static std::pair<Chunk *, Chunk *> match_variable_end(Chunk *, std::size_t);
+static std::pair<Chunk *, Chunk *> match_variable_start(Chunk *, std::size_t);
+static Chunk *skip_scope_resolution_and_nested_name_specifiers(Chunk *);
+static Chunk *skip_scope_resolution_and_nested_name_specifiers_rev(Chunk *);
+
+
+/**
+ * Returns true if two adjacent chunks potentially match a pattern consistent
+ * with that of a qualified identifier
+ */
+static bool adj_tokens_match_qualified_identifier_pattern(Chunk *prev, Chunk *next)
+{
+ LOG_FUNC_ENTRY();
+
+ if ( prev != nullptr
+ && next != nullptr)
+ {
+ auto prev_token_type = prev->type;
+ auto next_token_type = next->type;
+
+ switch (prev_token_type)
+ {
+ case CT_ANGLE_CLOSE:
+ /**
+ * assuming the previous token is possibly the closing angle of a
+ * templated type, the next token may be a scope resolution operator ("::")
+ */
+ return(next_token_type == CT_DC_MEMBER);
+
+ case CT_ANGLE_OPEN:
+ /**
+ * assuming the previous token is possibly the opening angle of a
+ * templated type, just check to see if there's a matching closing
+ * angle
+ */
+ return(chunk_skip_to_match(prev, E_Scope::PREPROC) != nullptr);
+
+ case CT_DC_MEMBER:
+ /**
+ * if the previous token is a double colon ("::"), it is likely part
+ * of a chain of scope-resolution qualifications preceding a word or
+ * type
+ */
+ return( next_token_type == CT_TYPE
+ || next_token_type == CT_WORD);
+
+ case CT_TYPE:
+ case CT_WORD:
+ /**
+ * if the previous token is an identifier, the next token may be
+ * one of the following:
+ * - an opening angle, which may indicate a templated type as part of a
+ * scope resolution preceding the actual variable identifier
+ * - a double colon ("::")
+ */
+ return( next_token_type == CT_ANGLE_OPEN
+ || next_token_type == CT_DC_MEMBER);
+
+ default:
+ // do nothing
+ break;
+ } // switch
+ }
+ return(false);
+} // adj_tokens_match_qualified_identifier_pattern
+
+
+/**
+ * Returns true if two adjacent chunks potentially match a pattern consistent
+ * with that of a variable definition
+ */
+static bool adj_tokens_match_var_def_pattern(Chunk *prev, Chunk *next)
+{
+ LOG_FUNC_ENTRY();
+
+ if ( prev != nullptr
+ && next != nullptr)
+ {
+ auto prev_token_type = prev->type;
+ auto next_token_type = next->type;
+
+ switch (prev_token_type)
+ {
+ case CT_ANGLE_CLOSE:
+ /**
+ * assuming the previous token is possibly the closing angle of a
+ * templated type, the next token may be one of the following:
+ * - a pointer symbol ('*', '^')
+ * - a double colon ("::")
+ * - a reference symbol ('&')
+ * - a qualifier (const, etc.)
+ * - an identifier
+ */
+ return( chunk_is_pointer_or_reference(next)
+ || next_token_type == CT_DC_MEMBER
+ || next_token_type == CT_QUALIFIER
+ || next_token_type == CT_WORD);
+
+
+ case CT_ANGLE_OPEN:
+ /**
+ * assuming the previous token is possibly the opening angle of a
+ * templated type, just check to see if there's a matching closing
+ * angle
+ */
+ return(chunk_skip_to_match(prev, E_Scope::PREPROC) != nullptr);
+
+ case CT_BRACE_CLOSE:
+ /**
+ * assuming the previous token is possibly the closing brace of a
+ * class/enum/struct/union definition, one or more inline variable
+ * definitions may follow; in that case, the next token may be one of
+ * the following:
+ * - a pointer symbol ('*', '^')
+ * - a reference symbol ('&')
+ * - a qualifier (const, etc.)
+ * - an identifier
+ */
+ return( chunk_is_pointer_or_reference(next)
+ || next_token_type == CT_QUALIFIER
+ || next_token_type == CT_WORD);
+
+ case CT_BRACE_OPEN:
+ /**
+ * if the previous token is an opening brace, it may indicate the
+ * start of a braced initializer list - skip ahead to find a matching
+ * closing brace
+ */
+ return(chunk_skip_to_match(prev, E_Scope::PREPROC) != nullptr);
+
+ case CT_BYREF:
+ /**
+ * if the previous token is a reference symbol ('&'), the next token
+ * may be an identifier
+ */
+ return(next_token_type == CT_WORD);
+
+ case CT_CARET:
+ /**
+ * if the previous token is a managed C++/CLI pointer symbol ('^'),
+ * the next token may be one of the following:
+ * - a pointer symbol ('*', '^')
+ * - a reference symbol ('&')
+ * - a qualifier (const, etc.)
+ * - an identifier
+ */
+ return( language_is_set(LANG_CPP)
+ && ( chunk_is_pointer_or_reference(next)
+ || next_token_type == CT_QUALIFIER
+ || next_token_type == CT_WORD));
+
+ case CT_COMMA:
+ /**
+ * if the previous token is a comma, this may indicate a variable
+ * declaration trailing a prior declaration; in that case, the next
+ * token may be one of the following:
+ * - a pointer symbol ('*', '^')
+ * - a reference symbol ('&')
+ * - an identifier
+ */
+ return( chunk_is_pointer_or_reference(next)
+ || next_token_type == CT_WORD);
+
+ case CT_DC_MEMBER:
+ /**
+ * if the previous token is a double colon ("::"), it is likely part
+ * of a chain of scope-resolution qualifications preceding a word or
+ * type
+ */
+ return( next_token_type == CT_TYPE
+ || next_token_type == CT_WORD);
+
+ case CT_PAREN_OPEN:
+ /**
+ * if the previous token is an opening paren, it may indicate the
+ * start of a constructor call parameter list - skip ahead to find a
+ * matching closing paren
+ */
+ next = chunk_skip_to_match(prev, E_Scope::PREPROC);
+
+ if (next != nullptr)
+ {
+ next_token_type = next->type;
+ }
+ return(next_token_type == CT_PAREN_CLOSE);
+
+ case CT_PTR_TYPE:
+ /**
+ * if the previous token is a pointer type, ('*', '^'), the next token
+ * may be one of the following:
+ * - another pointer symbol ('*', '^')
+ * - a reference symbol ('&')
+ * - a qualifier (const, etc.)
+ * - an identifier
+ */
+ return( chunk_is_pointer_or_reference(next)
+ || next_token_type == CT_QUALIFIER
+ || next_token_type == CT_WORD);
+
+ case CT_QUALIFIER:
+ /**
+ * if the previous token is a qualifier (const, etc.), the next token
+ * may be one of the following:
+ * - a pointer symbol ('*', '^')
+ * - a reference symbol ('&')
+ * - another qualifier
+ * - an identifier
+ */
+ return( chunk_is_pointer_or_reference(next)
+ || next_token_type == CT_QUALIFIER
+ || next_token_type == CT_WORD);
+
+ case CT_SQUARE_CLOSE:
+ /**
+ * if the previous token is a closing bracket, the next token may be
+ * an assignment following an array variable declaration
+ */
+ return(next_token_type == CT_ASSIGN);
+
+ case CT_SQUARE_OPEN:
+ /**
+ * if the previous token is an opening bracket, it may indicate an
+ * array declaration - skip ahead to find a matching closing bracket
+ */
+ return(chunk_skip_to_match(prev, E_Scope::PREPROC) != nullptr);
+
+ case CT_STAR:
+ /**
+ * if the previous token is a pointer symbol, ('*'), the next token
+ * may be one of the following:
+ * - another pointer symbol ('*', '^')
+ * - a reference symbol ('&')
+ * - a qualifier (const, etc.)
+ * - an identifier
+ */
+ return( chunk_is_pointer_or_reference(next)
+ || next_token_type == CT_QUALIFIER
+ || next_token_type == CT_WORD);
+
+ case CT_TSQUARE:
+ /**
+ * if the previous token is a set of brackets, the next token may be
+ * an assignment following an array variable declaration
+ */
+ return(next_token_type == CT_ASSIGN);
+
+ case CT_TYPE:
+ /**
+ * if the previous token is marked as a type, the next token may be
+ * one of the following:
+ * - a pointer symbol ('*', '^')
+ * - a reference symbol ('&')
+ * - an opening angle, which may indicate a templated type as part of a
+ * scope resolution preceding the actual variable identifier
+ * - a double colon ("::")
+ * - a qualifier (const, etc.)
+ * - an identifier
+ */
+ return( chunk_is_pointer_or_reference(next)
+ || next_token_type == CT_ANGLE_OPEN
+ || next_token_type == CT_DC_MEMBER
+ || next_token_type == CT_QUALIFIER
+ || next_token_type == CT_WORD);
+
+ case CT_WORD:
+ /**
+ * if the previous token is an identifier, the next token may be one
+ * of the following:
+ * - an assignment symbol ('=')
+ * - an opening angle, which may indicate a templated type as part of a
+ * scope resolution preceding the actual variable identifier
+ * - an opening brace, which may indicate a braced-initializer list
+ * - a double colon ("::")
+ * - an opening paren, which may indicate a constructor call parameter
+ * list
+ * - an opening square bracket, which may indicate an array variable
+ * - an set of empty square brackets, which also may indicate an array
+ * variable
+ */
+ return( next_token_type == CT_ANGLE_OPEN
+ || next_token_type == CT_ASSIGN
+ || next_token_type == CT_BRACE_OPEN
+ || next_token_type == CT_DC_MEMBER
+ || next_token_type == CT_PAREN_OPEN
+ || next_token_type == CT_SQUARE_OPEN
+ || next_token_type == CT_TSQUARE);
+
+ default:
+ // do nothing
+ break;
+ } // switch
+ }
+ return(false);
+} // adj_tokens_match_var_def_pattern
+
+
+/**
+ * Returns true if the first chunk occurs AFTER the second chunk in the argument
+ * list
+ * @param pc points to the first chunk
+ * @param after points to the second chunk
+ * @param test_equal if true, returns true when both chunks refer to the same chunk
+ */
+static bool chunk_is_after(Chunk *pc, Chunk *after, bool test_equal = true)
+{
+ LOG_FUNC_ENTRY();
+
+ if ( pc != nullptr
+ && pc->IsNotNullChunk())
+ {
+ if ( test_equal
+ && pc == after)
+ {
+ return(true);
+ }
+ else if (after != nullptr)
+ {
+ auto pc_column = pc->orig_col;
+ auto pc_line = pc->orig_line;
+ auto after_column = after->orig_col;
+ auto after_line = after->orig_line;
+
+ return( pc_line > after_line
+ || ( pc_line == after_line
+ && pc_column > after_column));
+ }
+ }
+ return(false);
+} // chunk_is_after
+
+
+/**
+ * Returns true if the first chunk occurs BEFORE the second chunk in the argument
+ * list
+ * @param pc points to the first chunk
+ * @param before points to the second chunk
+ * @param test_equal if true, returns true when both chunks refer to the same chunk
+ */
+static bool chunk_is_before(Chunk *pc, Chunk *before, bool test_equal = true)
+{
+ LOG_FUNC_ENTRY();
+
+ if ( pc != nullptr
+ && pc->IsNotNullChunk())
+ {
+ if ( test_equal
+ && pc == before)
+ {
+ return(true);
+ }
+ else if (before != nullptr)
+ {
+ auto pc_column = pc->orig_col;
+ auto pc_line = pc->orig_line;
+ auto before_column = before->orig_col;
+ auto before_line = before->orig_line;
+
+ return( pc_line < before_line
+ || ( pc_line == before_line
+ && pc_column < before_column));
+ }
+ }
+ return(false);
+} // chunk_is_before
+
+
+/**
+ * Returns true if the first chunk occurs both AFTER and BEFORE
+ * the second and third chunks, respectively, in the argument list
+ * @param pc points to the first chunk
+ * @param after points to the second chunk
+ * @param before points to the third chunk
+ * @param test_equal if true, returns true when the first chunk tests equal to
+ * either the second or third chunk
+ */
+static bool chunk_is_between(Chunk *pc, Chunk *after, Chunk *before, bool test_equal = true)
+{
+ LOG_FUNC_ENTRY();
+
+ return( chunk_is_before(pc, before, test_equal)
+ && chunk_is_after(pc, after, test_equal));
+} // chunk_is_between
+
+
+/**
+ * Returns true if the chunk under test is a reference to a macro defined elsewhere in
+ * the source file currently being processed. Note that a macro may be defined in
+ * another source or header file, for which this function does not currently account
+ */
+static bool chunk_is_macro_reference(Chunk *pc)
+{
+ LOG_FUNC_ENTRY();
+
+ Chunk *next = Chunk::GetHead();
+
+ if ( ( language_is_set(LANG_CPP)
+ || language_is_set(LANG_C))
+ && chunk_is_token(pc, CT_WORD)
+ && !pc->flags.test(PCF_IN_PREPROC))
+ {
+ while ( next != nullptr
+ && next->IsNotNullChunk())
+ {
+ if ( next->flags.test(PCF_IN_PREPROC)
+ && std::strcmp(pc->str.c_str(), next->str.c_str()) == 0)
+ {
+ return(true);
+ }
+ next = chunk_search_next_cat(next, CT_MACRO);
+ }
+ }
+ return(false);
+} // chunk_is_macro_reference
+
+
+/**
+ * Returns true if the input chunk is a pointer/reference operator or a
+ * qualifier
+ */
+static bool chunk_is_pointer_reference_or_qualifier(Chunk *pc)
+{
+ LOG_FUNC_ENTRY();
+
+ return( chunk_is_pointer_or_reference(pc)
+ || ( chunk_is_token(pc, CT_QUALIFIER)
+ && !chunk_is_cpp_inheritance_access_specifier(pc)));
+} // chunk_is_pointer_reference_or_qualifier
+
+
+/**
+ * This function attempts to match the starting and ending chunks of a qualified
+ * identifier, which consists of one or more scope resolution operator(s) and
+ * zero or more nested name specifiers
+ * specifiers
+ * @param pc the starting chunk
+ * @return an std::pair, where the first chunk indicates the starting chunk of the
+ * match and second indicates the ending chunk. Upon finding a successful
+ * match, the starting chunk may consist of an identifier or a scope
+ * resolution operator, while the ending chunk may consist of identifier
+ * or the closing angle bracket of a template. If no match is found, a
+ * pair of null chunks is returned
+ */
+static std::pair<Chunk *, Chunk *> match_qualified_identifier(Chunk *pc)
+{
+ LOG_FUNC_ENTRY();
+
+ auto *end = skip_scope_resolution_and_nested_name_specifiers(pc);
+ auto *start = skip_scope_resolution_and_nested_name_specifiers_rev(pc);
+
+ if ( end != nullptr
+ && start != nullptr)
+ {
+ auto *double_colon = chunk_search_next_cat(start, CT_DC_MEMBER);
+
+ if ( double_colon != nullptr
+ && chunk_is_between(double_colon, start, end))
+ {
+ return(std::make_pair(start, end));
+ }
+ }
+ return(std::make_pair(nullptr, nullptr));
+} // match_qualified_identifier
+
+
+/**
+ * Starting from the input chunk, this function attempts to match a variable
+ * declaration/definition in both the forward and reverse directions; each pair of
+ * consecutive chunks is tested to determine if a potential match is satisfied.
+ * @param pc the starting chunk
+ * @param level the brace level
+ * @return upon successful match, function returns an std::tuple, where the
+ * first chunk indicates the starting chunk, the second chunk indicates
+ * the identifier name, and the third chunk indicates the end associated
+ * with the variable declaration/definition
+ */
+static std::tuple<Chunk *, Chunk *, Chunk *> match_variable(Chunk *pc, std::size_t level)
+{
+ LOG_FUNC_ENTRY();
+
+ auto identifier_end_pair = match_variable_end(pc, level);
+ auto start_identifier_pair = match_variable_start(pc, level);
+ auto *end = identifier_end_pair.second;
+ auto *identifier = identifier_end_pair.first != nullptr ? identifier_end_pair.first : start_identifier_pair.second;
+ auto *start = start_identifier_pair.first;
+
+ /**
+ * a forward search starting at the chunk under test will fail if two consecutive chunks marked as CT_WORD
+ * are encountered; in that case, it's likely that the preceding chunk indicates a type and the subsequent
+ * chunk indicates a variable declaration/definition
+ */
+
+ if ( identifier->IsNotNullChunk()
+ && start->IsNotNullChunk()
+ && ( end != nullptr
+ || chunk_is_token(identifier->GetPrevNcNnlNi(), CT_WORD)))
+ {
+ return(std::make_tuple(start, identifier, end));
+ }
+ return(std::make_tuple(nullptr, nullptr, nullptr));
+} // match_variable
+
+
+/**
+ * Starting from the input chunk, this function attempts to match a variable in the
+ * forward direction, and tests each pair of consecutive chunks to determine if a
+ * potential variable declaration/definition match is satisfied. Secondly, the
+ * function attempts to identify the end chunk associated with the candidate variable
+ * match. For scalar variables (simply declared and not defined), both the end chunk
+ * and identifier chunk should be one in the same
+ * @param pc the starting chunk
+ * @param level the brace level
+ * @return an std::pair, where the first chunk indicates the identifier
+ * (if non-null) and the second chunk indicates the end associated with
+ * the variable declaration/definition; assuming a valid match, the first
+ * chunk may be null if the function is called with a starting chunk
+ * that occurs after the identifier
+ */
+static std::pair<Chunk *, Chunk *> match_variable_end(Chunk *pc, std::size_t level)
+{
+ LOG_FUNC_ENTRY();
+
+ Chunk *identifier = nullptr;
+
+ while ( pc != nullptr
+ && pc->IsNotNullChunk())
+ {
+ /**
+ * skip any right-hand side assignments
+ */
+ Chunk *rhs_exp_end = nullptr;
+
+ if (chunk_is_token(pc, CT_ASSIGN))
+ {
+ /**
+ * store a pointer to the end chunk of the rhs expression;
+ * use it later to test against setting the identifier
+ */
+ rhs_exp_end = skip_to_expression_end(pc);
+ pc = rhs_exp_end;
+ }
+
+ /**
+ * skip current and preceding chunks if at a higher brace level
+ */
+ while ( pc != nullptr
+ && pc->IsNotNullChunk()
+ && pc->level > level)
+ {
+ pc = pc->GetNextNcNnl();
+ }
+
+ /**
+ * skip to any following match for angle brackets, braces, parens,
+ * or square brackets
+ */
+ if ( chunk_is_token(pc, CT_ANGLE_OPEN)
+ || chunk_is_token(pc, CT_BRACE_OPEN)
+ || chunk_is_paren_open(pc)
+ || chunk_is_token(pc, CT_SQUARE_OPEN))
+ {
+ pc = chunk_skip_to_match(pc, E_Scope::PREPROC);
+ }
+ /**
+ * call a separate function to validate adjacent tokens as potentially
+ * matching a variable declaration/definition
+ */
+
+ Chunk *next = pc->GetNextNcNnl();
+
+ if ( chunk_is_not_token(next, CT_COMMA)
+ && chunk_is_not_token(next, CT_FPAREN_CLOSE)
+ && !chunk_is_semicolon(next)
+ && !adj_tokens_match_var_def_pattern(pc, next))
+ {
+ /**
+ * error, pattern is not consistent with a variable declaration/definition
+ */
+
+ break;
+ }
+
+ if ( chunk_is_token(pc, CT_WORD)
+ && pc != rhs_exp_end)
+ {
+ /**
+ * we've encountered a candidate for the variable name
+ */
+
+ identifier = pc;
+ }
+
+ /**
+ * we're done searching if we've previously identified a variable name
+ * and then encounter a comma or semicolon
+ */
+ if ( chunk_is_token(next, CT_COMMA)
+ || chunk_is_token(next, CT_FPAREN_CLOSE)
+ || chunk_is_semicolon(next))
+ {
+ return(std::make_pair(identifier, pc));
+ }
+ pc = next;
+ }
+ return(std::make_pair(nullptr, nullptr));
+} // match_variable_end
+
+
+/**
+ * Starting from the input chunk, this function attempts to match a variable in the
+ * reverse direction, and tests each pair of consecutive chunks to determine if a
+ * potential variable declaration/definition match is satisfied. Secondly, the
+ * function attempts to identify the starting chunk associated with the candidate
+ * variable match. The start and identifier chunks may refer to each other in cases
+ * where the identifier is not preceded by pointer or reference operators or qualifiers,
+ * etc.
+ * @param pc the starting chunk
+ * @param level the brace level
+ * @return an std::pair, where the first chunk indicates the starting chunk and
+ * the second chunk indicates the identifier associated with the variable
+ * match; assuming a valid match, the second chunk may be null if the
+ * function is called with a starting chunk that occurs before the
+ * identifier
+ */
+static std::pair<Chunk *, Chunk *> match_variable_start(Chunk *pc, std::size_t level)
+{
+ LOG_FUNC_ENTRY();
+
+ Chunk *identifier = Chunk::NullChunkPtr;
+
+ if (pc == nullptr)
+ {
+ pc = Chunk::NullChunkPtr;
+ }
+
+ while (pc->IsNotNullChunk())
+ {
+ /**
+ * skip any right-hand side assignments
+ */
+ Chunk *before_rhs_exp_start = skip_expression_rev(pc);
+ Chunk *prev = Chunk::NullChunkPtr;
+ Chunk *next = pc;
+
+ while ( chunk_is_after(next, before_rhs_exp_start)
+ && pc != prev)
+ {
+ next = prev;
+ prev = next->GetPrevNcNnlNi();
+
+ if (chunk_is_token(next, CT_ASSIGN))
+ {
+ pc = prev;
+ }
+ }
+ /**
+ * skip current and preceding chunks if at a higher brace level
+ */
+
+ while ( pc->IsNotNullChunk()
+ && pc->level > level)
+ {
+ pc = pc->GetPrevNcNnlNi();
+ }
+
+ /**
+ * skip to any preceding match for angle brackets, braces, parens,
+ * or square brackets
+ */
+ if ( chunk_is_token(pc, CT_ANGLE_CLOSE)
+ || chunk_is_token(pc, CT_BRACE_CLOSE)
+ || chunk_is_paren_close(pc)
+ || chunk_is_token(pc, CT_SQUARE_CLOSE))
+ {
+ pc = chunk_skip_to_match_rev(pc, E_Scope::PREPROC);
+ }
+ /**
+ * call a separate function to validate adjacent tokens as potentially
+ * matching a variable declaration/definition
+ */
+
+ prev = pc->GetPrevNcNnlNi();
+
+ if (!adj_tokens_match_var_def_pattern(prev, pc))
+ {
+ /**
+ * perhaps the previous chunk possibly indicates a type that yet to be
+ * marked? if not, then break
+ */
+ if ( chunk_is_not_token(prev, CT_WORD)
+ || ( !chunk_is_pointer_or_reference(pc)
+ && chunk_is_not_token(pc, CT_WORD)))
+ {
+ /**
+ * error, pattern is not consistent with a variable declaration/definition
+ */
+
+ break;
+ }
+ }
+
+ if ( identifier->IsNullChunk()
+ && chunk_is_token(pc, CT_WORD))
+ {
+ /**
+ * we've encountered a candidate for the variable name
+ */
+
+ identifier = pc;
+ }
+
+ /**
+ * we're done searching if we've previously identified a variable name
+ * and then encounter another identifier, or we encounter a closing
+ * brace (which would likely indicate an inline variable definition)
+ */
+ if ( chunk_is_token(prev, CT_ANGLE_CLOSE)
+ || chunk_is_token(prev, CT_BRACE_CLOSE)
+ || chunk_is_token(prev, CT_COMMA)
+ || chunk_is_token(prev, CT_TYPE)
+ || chunk_is_token(prev, CT_WORD))
+ {
+ return(std::make_pair(pc, identifier));
+ }
+ pc = prev;
+ }
+ return(std::make_pair(Chunk::NullChunkPtr, Chunk::NullChunkPtr));
+} // match_variable_start
+
+
+/**
+ * Skip forward past any scope resolution operators and nested name specifiers and return
+ * just the qualified identifier name; while similar to the existing skip_dc_member()
+ * function, this function also takes into account templates that may comprise any
+ * nested name specifiers
+ */
+static Chunk *skip_scope_resolution_and_nested_name_specifiers(Chunk *pc)
+{
+ LOG_FUNC_ENTRY();
+
+ if ( ( pc != nullptr
+ && pc->flags.test(PCF_IN_TEMPLATE))
+ || chunk_is_token(pc, CT_DC_MEMBER)
+ || chunk_is_token(pc, CT_TYPE)
+ || chunk_is_token(pc, CT_WORD))
+ {
+ while ( pc != nullptr
+ && pc->IsNotNullChunk())
+ {
+ /**
+ * skip to any following match for angle brackets
+ */
+ if (chunk_is_token(pc, CT_ANGLE_OPEN))
+ {
+ pc = chunk_skip_to_match(pc, E_Scope::PREPROC);
+ }
+ Chunk *next = pc->GetNextNcNnl();
+
+ /**
+ * call a separate function to validate adjacent tokens as potentially
+ * matching a qualified identifier
+ */
+ if (!adj_tokens_match_qualified_identifier_pattern(pc, next))
+ {
+ break;
+ }
+ pc = next;
+ }
+ }
+ return(pc);
+} // skip_scope_resolution_and_nested_name_specifiers
+
+
+/**
+ * Skip in reverse to the beginning chunk of a qualified identifier; while similar to
+ * the existing skip_dc_member_rev() function, this function also takes into account
+ * templates that may comprise any nested name specifiers
+ */
+static Chunk *skip_scope_resolution_and_nested_name_specifiers_rev(Chunk *pc)
+{
+ LOG_FUNC_ENTRY();
+
+ if (pc == nullptr)
+ {
+ pc = Chunk::NullChunkPtr;
+ }
+
+ if ( ( pc->IsNotNullChunk()
+ && pc->flags.test(PCF_IN_TEMPLATE))
+ || chunk_is_token(pc, CT_DC_MEMBER)
+ || chunk_is_token(pc, CT_TYPE)
+ || chunk_is_token(pc, CT_WORD))
+ {
+ while (pc->IsNotNullChunk())
+ {
+ /**
+ * skip to any preceding match for angle brackets
+ */
+ if (chunk_is_token(pc, CT_ANGLE_CLOSE))
+ {
+ pc = chunk_skip_to_match_rev(pc, E_Scope::PREPROC);
+ }
+ Chunk *prev = pc->GetPrevNcNnlNi();
+
+ /**
+ * call a separate function to validate adjacent tokens as potentially
+ * matching a qualified identifier
+ */
+ if (!adj_tokens_match_qualified_identifier_pattern(prev, pc))
+ {
+ break;
+ }
+ pc = prev;
+ }
+ }
+ return(pc);
+} // skip_scope_resolution_and_nested_name_specifiers_rev
+
+
+EnumStructUnionParser::EnumStructUnionParser()
+ : m_end(nullptr)
+ , m_parse_error(false)
+ , m_start(nullptr)
+ , m_type(nullptr)
+{
+} // EnumStructUnionParser::EnumStructUnionParser
+
+
+EnumStructUnionParser::~EnumStructUnionParser()
+{
+} // EnumStructUnionParser::~EnumStructUnionParser
+
+
+void EnumStructUnionParser::analyze_identifiers()
+{
+ LOG_FUNC_ENTRY();
+
+ /**
+ * the enum (and variable declarations thereof) could be of
+ * the following forms:
+ *
+ * "enum type [: integral_type] { ... } [x, ...]"
+ * "enum type : integral_type"
+ * "enum type x, ..."
+ * "enum class type [: integral_type] { ... } [x, ...]"
+ * "enum class type [: integral_type]"
+ * "enum [: integral_type] { ... } x, ..."
+ */
+
+ /**
+ * the class/struct (and variable declarations thereof) could be of
+ * the following forms:
+ *
+ * "template<...> class/struct[<...>] [macros/attributes ...] type [: bases ...] { }"
+ * "template<...> class/struct[<...>] [macros/attributes ...] type"
+ * "class/struct [macros/attributes ...] type [: bases ...] { } [x, ...]"
+ * "class/struct [macros/attributes ...] type [x, ...]"
+ * "class/struct [macros/attributes ...] [: bases] { } x, ..."
+ */
+
+ Chunk *template_end = get_template_end();
+ auto *body_end = get_body_end();
+ auto *body_start = get_body_start();
+ pcf_flags_t flags = PCF_VAR_1ST_DEF;
+ auto *inheritance_start = get_inheritance_start();
+ Chunk *pc = body_end ? body_end : m_start;
+
+ /**
+ * first, try a simple approach to identify any associated type
+ */
+ if (try_pre_identify_type())
+ {
+ /**
+ * a type was identified, meaning a pair of braces, angle brackets, or
+ * a colon was found; if a colon was found, then there should be a
+ * balanced set of braces that follow; therefore, start the search for
+ * variable identifiers after the closing brace or close angle bracket
+ */
+
+ if (body_end != nullptr)
+ {
+ pc = body_end;
+ }
+ else if (template_end != nullptr)
+ {
+ pc = template_end;
+ }
+ }
+
+ if (pc == nullptr)
+ {
+ pc = Chunk::NullChunkPtr;
+ }
+
+ if (pc->GetNextNcNnl() == m_end)
+ {
+ /**
+ * we're likely at the end of a class/enum/struct/union body which lacks
+ * any trailing inline definitions
+ */
+
+ pc = m_end->GetNextNcNnl();
+ }
+
+ if ( type_identified()
+ || chunk_is_class_enum_struct_union(pc)
+ || pc == m_end)
+ {
+ /**
+ * in case we're pointing at the end chunk, advance the chunk pointer
+ * by one more so that we don't perform a variable identifier search
+ * below
+ */
+ pc = pc->GetNextNcNnl();
+ }
+
+ if (body_end != nullptr)
+ {
+ /**
+ * a closing brace was found, so any identifiers trailing the closing
+ * brace are probably inline variable declarations following a
+ * class/enum/struct/union definition
+ */
+ flags |= PCF_VAR_INLINE;
+ }
+ else if (!type_identified())
+ {
+ /**
+ * skip any chain of one or more function-like macro calls,
+ * declspecs, and attributes
+ */
+
+ Chunk *tmp = pc;
+
+ do
+ {
+ pc = tmp;
+ tmp = skip_attribute_next(tmp);
+ tmp = skip_declspec_next(tmp);
+ } while (tmp != pc);
+ }
+ /**
+ * try to match some variable identifiers in the loop below
+ */
+
+ while (chunk_is_between(pc, m_start, m_end, false))
+ {
+ auto match = match_variable(pc, m_start->level);
+ auto *start = std::get<0>(match);
+ auto *identifier = std::get<1>(match);
+ auto *end = std::get<2>(match);
+
+ if ( start != nullptr
+ && identifier != nullptr)
+ {
+ if (end != nullptr)
+ {
+ mark_variable(identifier, flags);
+
+ if (flags & PCF_VAR_1ST)
+ {
+ flags &= ~PCF_VAR_1ST; // clear the first flag for the next items
+ }
+ }
+ }
+
+ if (end != nullptr)
+ {
+ pc = end;
+ }
+ pc = pc->GetNextNcNnl();
+
+ /**
+ * skip any right-hand side assignments
+ */
+ if (chunk_is_token(pc, CT_ASSIGN))
+ {
+ pc = skip_to_expression_end(pc);
+ }
+
+ /**
+ * if we're sitting at a comma or semicolon, skip it
+ */
+ if ( chunk_is_semicolon(pc)
+ || ( chunk_is_token(pc, CT_COMMA)
+ && !pc->flags.test_any(PCF_IN_FCN_DEF | PCF_IN_FCN_CALL | PCF_IN_TEMPLATE)
+ && !chunk_is_between(pc, inheritance_start, body_start)))
+ {
+ pc = pc->GetNextNcNnl();
+ }
+ }
+ /**
+ * if we still haven't identified a type, try doing so now that the
+ * variables, if any, have been marked
+ */
+ try_post_identify_type();
+
+ /**
+ * identify possible macros preceding the type name
+ */
+ try_post_identify_macro_calls();
+
+ if ( chunk_is_class_or_struct(m_start)
+ && ( chunk_is_not_token(m_start, CT_STRUCT)
+ || !language_is_set(LANG_C)))
+ {
+ /**
+ * if a type has been identified, mark any constructor matching constructor
+ * declarations/definitions
+ */
+ mark_constructors();
+ }
+
+ if (type_identified())
+ {
+ if (~flags & PCF_VAR_1ST)
+ {
+ /**
+ * PCF_VAR_1ST was cleared and a type was identified; therefore, set
+ * PCF_VAR_TYPE for the identified type
+ */
+ chunk_flags_set(m_type, PCF_VAR_TYPE);
+ }
+ else if (~flags & PCF_VAR_INLINE)
+ {
+ /**
+ * if a type was identified but no braced-enclosed body was found and no
+ * identifiers were marked as variables, then we're likely we're likely
+ * dealing with a forward declaration
+ */
+ flag_series(m_start, m_type, PCF_INCOMPLETE);
+ }
+ }
+} // EnumStructUnionParser::analyze_identifiers
+
+
+bool EnumStructUnionParser::body_detected() const
+{
+ LOG_FUNC_ENTRY();
+
+ auto *body_end = get_body_end();
+ auto *body_start = get_body_start();
+
+ return( body_end != nullptr
+ && body_start != nullptr);
+} // EnumStructUnionParser::body_detected
+
+
+bool EnumStructUnionParser::comma_separated_values_detected() const
+{
+ LOG_FUNC_ENTRY();
+
+ return(!get_top_level_commas().empty());
+} // EnumStructUnionParser::comma_separated_values_detected
+
+
+bool EnumStructUnionParser::enum_base_detected() const
+{
+ LOG_FUNC_ENTRY();
+
+ return(m_chunk_map.find(CT_BIT_COLON) != m_chunk_map.cend());
+} // EnumStructUnionParser::enum_base_detected
+
+
+Chunk *EnumStructUnionParser::get_body_end() const
+{
+ LOG_FUNC_ENTRY();
+
+ auto &&it_token_chunk_map_pair = m_chunk_map.find(CT_BRACE_CLOSE);
+
+ if (it_token_chunk_map_pair != m_chunk_map.cend())
+ {
+ return(it_token_chunk_map_pair->second.at(0));
+ }
+ return(nullptr);
+} // EnumStructUnionParser::get_body_end
+
+
+Chunk *EnumStructUnionParser::get_body_start() const
+{
+ LOG_FUNC_ENTRY();
+
+ auto &&it_token_chunk_map_pair = m_chunk_map.find(CT_BRACE_OPEN);
+
+ if (it_token_chunk_map_pair != m_chunk_map.cend())
+ {
+ return(it_token_chunk_map_pair->second.at(0));
+ }
+ return(nullptr);
+} // EnumStructUnionParser::get_body_start
+
+
+Chunk *EnumStructUnionParser::get_enum_base_start() const
+{
+ LOG_FUNC_ENTRY();
+
+ auto &&it_token_chunk_map_pair = m_chunk_map.find(CT_BIT_COLON);
+
+ if (it_token_chunk_map_pair != m_chunk_map.cend())
+ {
+ return(it_token_chunk_map_pair->second.at(0));
+ }
+ return(nullptr);
+} // EnumStructUnionParser::get_enum_base_start
+
+
+Chunk *EnumStructUnionParser::get_first_top_level_comma() const
+{
+ LOG_FUNC_ENTRY();
+
+ auto &&it_token_chunk_map_pair = m_chunk_map.find(CT_COMMA);
+
+ if (it_token_chunk_map_pair != m_chunk_map.cend())
+ {
+ return(it_token_chunk_map_pair->second.at(0));
+ }
+ return(nullptr);
+} // EnumStructUnionParser::get_first_top_level_comma
+
+
+Chunk *EnumStructUnionParser::get_inheritance_end() const
+{
+ LOG_FUNC_ENTRY();
+
+ Chunk *brace_open = nullptr;
+ auto *inheritance_start = get_inheritance_start();
+
+ if (inheritance_start != nullptr)
+ {
+ brace_open = get_body_start();
+
+ if (brace_open == nullptr)
+ {
+ brace_open = inheritance_start->GetNextType(CT_BRACE_OPEN, m_start->level, E_Scope::ALL);
+ }
+ }
+ return(brace_open);
+} // EnumStructUnionParser::get_inheritance_end
+
+
+Chunk *EnumStructUnionParser::get_inheritance_start() const
+{
+ LOG_FUNC_ENTRY();
+
+ auto &&it_token_chunk_map_pair = m_chunk_map.find(CT_COLON);
+
+ if (it_token_chunk_map_pair != m_chunk_map.cend())
+ {
+ return(it_token_chunk_map_pair->second.at(0));
+ }
+ return(nullptr);
+} // EnumStructUnionParser::get_inheritance_start
+
+
+std::map<std::size_t, Chunk *> EnumStructUnionParser::get_question_operators() const
+{
+ LOG_FUNC_ENTRY();
+
+ auto &&it_token_chunk_map_pair = m_chunk_map.find(CT_QUESTION);
+
+ if (it_token_chunk_map_pair != m_chunk_map.cend())
+ {
+ return(it_token_chunk_map_pair->second);
+ }
+ return(std::map<std::size_t, Chunk *>());
+} // EnumStructUnionParser::get_question_operators
+
+
+Chunk *EnumStructUnionParser::get_template_end() const
+{
+ LOG_FUNC_ENTRY();
+
+ auto &&it_token_chunk_map_pair = m_chunk_map.find(CT_ANGLE_CLOSE);
+
+ if (it_token_chunk_map_pair != m_chunk_map.cend())
+ {
+ return(it_token_chunk_map_pair->second.at(0));
+ }
+ return(nullptr);
+} // EnumStructUnionParser::get_template_end
+
+
+Chunk *EnumStructUnionParser::get_template_start() const
+{
+ LOG_FUNC_ENTRY();
+
+ auto &&it_token_chunk_map_pair = m_chunk_map.find(CT_ANGLE_OPEN);
+
+ if (it_token_chunk_map_pair != m_chunk_map.cend())
+ {
+ return(it_token_chunk_map_pair->second.at(0));
+ }
+ return(nullptr);
+} // EnumStructUnionParser::get_template_start
+
+
+std::map<std::size_t, Chunk *> EnumStructUnionParser::get_top_level_commas() const
+{
+ LOG_FUNC_ENTRY();
+
+ auto &&it_token_chunk_map_pair = m_chunk_map.find(CT_COMMA);
+
+ if (it_token_chunk_map_pair != m_chunk_map.cend())
+ {
+ return(it_token_chunk_map_pair->second);
+ }
+ return(std::map<std::size_t, Chunk *>());
+} // EnumStructUnionParser::get_top_level_commas
+
+
+Chunk *EnumStructUnionParser::get_where_end() const
+{
+ LOG_FUNC_ENTRY();
+
+ Chunk *brace_open = nullptr;
+ auto *where_start = get_where_start();
+
+ if (where_start != nullptr)
+ {
+ brace_open = get_body_start();
+
+ if (brace_open == nullptr)
+ {
+ brace_open = where_start->GetNextType(CT_BRACE_OPEN, m_start->level, E_Scope::ALL);
+ }
+ }
+ return(brace_open);
+} // EnumStructUnionParser::get_where_end
+
+
+Chunk *EnumStructUnionParser::get_where_start() const
+{
+ LOG_FUNC_ENTRY();
+
+ auto &&it_token_chunk_map_pair = m_chunk_map.find(CT_WHERE);
+
+ if (it_token_chunk_map_pair != m_chunk_map.cend())
+ {
+ return(it_token_chunk_map_pair->second.at(0));
+ }
+ return(nullptr);
+} // EnumStructUnionParser::get_where_start
+
+
+bool EnumStructUnionParser::inheritance_detected() const
+{
+ LOG_FUNC_ENTRY();
+
+ return(m_chunk_map.find(CT_COLON) != m_chunk_map.cend());
+} // EnumStructUnionParser::inheritance_detected
+
+
+void EnumStructUnionParser::initialize(Chunk *pc)
+{
+ LOG_FUNC_ENTRY();
+
+ parse_error_detected(false);
+ m_chunk_map.clear();
+
+ m_start = pc;
+ m_type = nullptr;
+ pc = try_find_end_chunk(pc);
+ m_end = refine_end_chunk(pc);
+} // EnumStructUnionParser::initialize
+
+
+bool EnumStructUnionParser::is_potential_end_chunk(Chunk *pc) const
+{
+ LOG_FUNC_ENTRY();
+
+ /**
+ * test for a semicolon or closing brace at the level of the starting chunk
+ */
+ if ( pc == nullptr
+ || parse_error_detected()
+ || ( ( chunk_is_semicolon(pc)
+ || chunk_is_token(pc, CT_BRACE_CLOSE))
+ && pc->level == m_start->level))
+ {
+ return(true);
+ }
+ /**
+ * check for the following:
+ * 1) did we encounter a closing paren, which may indicate the end of cast?
+ * 2) did we cross a preprocessor boundary?
+ * 3) did we cross the closing paren of a function signature?
+ */
+
+ auto const pc_in_funcdef = pc->flags & PCF_IN_FCN_DEF;
+ auto const pc_in_preproc = pc->flags & PCF_IN_PREPROC;
+ auto const start_in_funcdef = m_start->flags & PCF_IN_FCN_DEF;
+ auto const start_in_preproc = m_start->flags & PCF_IN_PREPROC;
+
+ /**
+ * the following may identify cases where we've reached the
+ * end of a cast terminated by a closing paren
+ */
+ if ( ( chunk_is_paren_close(pc) // Issue #3538
+ && pc->level < m_start->level)
+ || (start_in_funcdef ^ pc_in_funcdef).test_any()
+ || (start_in_preproc ^ pc_in_preproc).test_any())
+ {
+ return(true);
+ }
+ /**
+ * check whether the current chunk's nest level is less than that
+ * of the starting chunk
+ */
+
+ std::size_t pc_template_nest = get_cpp_template_angle_nest_level(pc);
+ std::size_t start_template_nest = get_cpp_template_angle_nest_level(m_start);
+
+ if (start_template_nest > pc_template_nest)
+ {
+ return(true);
+ }
+ /**
+ * assuming the chunk is within a function call/definition, check the following:
+ * 1) chunk is a closing function paren at a lower level than the starting chunk
+ * 2) chunk is an assignment ('=') or comma at the level of the starting chunk
+ */
+
+ auto const pc_in_funccall = pc->flags & PCF_IN_FCN_CALL;
+ auto const start_in_funccall = m_start->flags & PCF_IN_FCN_CALL;
+
+ if ( ( pc_in_funccall.test_any()
+ && start_in_funccall.test_any()
+ && chunk_is_token(pc, CT_COMMA)
+ && pc->level == m_start->level)
+ || ( pc_in_funcdef.test_any()
+ && ( ( chunk_is_token(pc, CT_FPAREN_CLOSE)
+ && pc->level < m_start->level)
+ || ( ( chunk_is_token(pc, CT_ASSIGN)
+ || chunk_is_token(pc, CT_COMMA))
+ && pc->level == m_start->level))))
+ {
+ return(true);
+ }
+ return(false);
+} // EnumStructUnionParser::is_potential_end_chunk
+
+
+bool EnumStructUnionParser::is_within_conditional(Chunk *pc) const
+{
+ LOG_FUNC_ENTRY();
+
+ auto question_operators = get_question_operators();
+
+ if (!question_operators.empty())
+ {
+ auto &&it_token_chunk_pair = question_operators.cbegin();
+
+ while (it_token_chunk_pair != question_operators.cend())
+ {
+ auto *question = it_token_chunk_pair->second;
+ auto *end = skip_to_expression_end(question);
+ auto *start = skip_to_expression_start(question);
+
+ if (chunk_is_between(pc, start, end))
+ {
+ return(true);
+ }
+ ++it_token_chunk_pair;
+ }
+ }
+ return(false);
+} // EnumStructUnionParser::is_within_conditional
+
+
+bool EnumStructUnionParser::is_within_inheritance_list(Chunk *pc) const
+{
+ LOG_FUNC_ENTRY();
+
+ if ( pc != nullptr
+ && pc->flags.test(PCF_IN_CLASS_BASE))
+ {
+ return(true);
+ }
+ auto *inheritance_end = get_inheritance_end();
+ auto *inheritance_start = get_inheritance_start();
+
+ if ( inheritance_end != nullptr
+ && inheritance_start != nullptr)
+ {
+ return(chunk_is_between(pc, inheritance_start, inheritance_end));
+ }
+ return(false);
+} // EnumStructUnionParser::is_within_inheritance_list
+
+
+bool EnumStructUnionParser::is_within_where_clause(Chunk *pc) const
+{
+ LOG_FUNC_ENTRY();
+
+ if ( pc != nullptr
+ && pc->flags.test(PCF_IN_WHERE_SPEC))
+ {
+ return(true);
+ }
+ auto *where_end = get_where_end();
+ auto *where_start = get_where_start();
+
+ if ( where_end != nullptr
+ && where_start != nullptr)
+ {
+ return(chunk_is_between(pc, where_start, where_end));
+ }
+ return(false);
+} // EnumStructUnionParser::is_within_where_clause
+
+
+void EnumStructUnionParser::mark_base_classes(Chunk *pc)
+{
+ LOG_FUNC_ENTRY();
+
+ pcf_flags_t flags = PCF_VAR_1ST_DEF;
+
+ while (pc != nullptr)
+ {
+ chunk_flags_set(pc, PCF_IN_CLASS_BASE);
+ /**
+ * clear the PCF_VAR_TYPE flag for all chunks within the inheritance list
+ * TODO: this may not be necessary in the future once code outside this
+ * class is improved such that PCF_VAR_TYPE is not set for these chunks
+ */
+ pc->flags &= ~PCF_VAR_TYPE;
+
+ Chunk *next = pc->GetNextNcNnl(E_Scope::PREPROC);
+
+ if (chunk_is_token(next, CT_DC_MEMBER))
+ {
+ /**
+ * just in case it's a templated type
+ */
+ pc = skip_template_prev(pc);
+
+ if (chunk_is_token(pc, CT_WORD))
+ {
+ /**
+ * TODO:
+ * To comply with conventions used elsewhere in the code, we're going
+ * to change chunks marked CT_WORD to CT_TYPE if followed by a scope-
+ * resolution operator; if a chunk marked CT_WORD is followed by a set
+ * of angle brackets, then it's obviously a templated type. However,
+ * in the absence of a pair trailing angle brackets, the chunk may be
+ * a namespace rather than a type. Need to revisit this!
+ */
+ set_chunk_type(pc, CT_TYPE);
+ }
+ }
+ else if ( ( chunk_is_token(next, CT_BRACE_OPEN)
+ || ( chunk_is_token(next, CT_COMMA)
+ && !is_within_where_clause(next)))
+ && next->level == m_start->level)
+ {
+ /**
+ * just in case it's a templated type
+ */
+ pc = skip_template_prev(pc);
+
+ if (chunk_is_token(pc, CT_WORD))
+ {
+ chunk_flags_set(pc, flags);
+
+ if (flags & PCF_VAR_1ST)
+ {
+ flags &= ~PCF_VAR_1ST; // clear the first flag for the next items
+ }
+ }
+
+ if (chunk_is_token(next, CT_BRACE_OPEN))
+ {
+ break;
+ }
+ }
+ pc = next;
+ }
+ chunk_flags_set(pc, PCF_IN_CLASS_BASE);
+} // EnumStructUnionParser::mark_base_classes
+
+
+void EnumStructUnionParser::mark_braces(Chunk *brace_open)
+{
+ LOG_FUNC_ENTRY();
+
+ pcf_flags_t flags = PCF_NONE;
+
+ if (chunk_is_token(m_start, CT_CLASS))
+ {
+ flags = PCF_IN_CLASS;
+ }
+ else if (chunk_is_enum(m_start))
+ {
+ flags = PCF_IN_ENUM;
+ }
+ else if (chunk_is_token(m_start, CT_STRUCT))
+ {
+ flags = PCF_IN_STRUCT;
+ }
+ /**
+ * TODO: why does flag_parens() flag the closing paren,
+ * but it doesn't flag the opening paren?
+ */
+
+ flag_parens(brace_open,
+ flags,
+ CT_NONE,
+ CT_NONE,
+ false);
+
+ if (chunk_is_class_struct_union(m_start))
+ {
+ mark_struct_union_body(brace_open);
+
+ auto *inheritance_start = get_inheritance_start();
+
+ if (inheritance_start != nullptr)
+ {
+ /**
+ * the class/struct/union is a derived class; mark the base
+ * classes between the colon/java "implements" keyword and the
+ * opening brace
+ */
+
+ mark_base_classes(inheritance_start);
+ }
+ }
+ set_chunk_parent(brace_open, m_start->type);
+
+ auto *brace_close = chunk_skip_to_match(brace_open, E_Scope::PREPROC);
+
+ if (brace_close != nullptr)
+ {
+ set_chunk_parent(brace_close, m_start->type);
+ }
+} // EnumStructUnionParser::mark_braces
+
+
+void EnumStructUnionParser::mark_class_colon(Chunk *colon)
+{
+ LOG_FUNC_ENTRY();
+
+ LOG_FMT(LFTOR,
+ "%s(%d): Class colon detected: orig_line is %zu, orig_col is %zu\n",
+ __unqualified_func__,
+ __LINE__,
+ colon->orig_line,
+ colon->orig_col);
+
+ set_chunk_type(colon, CT_CLASS_COLON);
+ set_chunk_parent(colon, m_start->type);
+} // EnumStructUnionParser::mark_class_colon
+
+
+void EnumStructUnionParser::mark_conditional_colon(Chunk *colon)
+{
+ set_chunk_type(colon, CT_COND_COLON);
+} // EnumStructUnionParser::mark_conditional_colon
+
+
+void EnumStructUnionParser::mark_constructors()
+{
+ LOG_FUNC_ENTRY();
+
+ /**
+ * if a type was previously identified, then look for
+ * class/struct constructors in the body
+ */
+ if ( body_detected()
+ && type_identified()
+ && chunk_is_class_or_struct(m_start))
+ {
+ LOG_FMT(LFTOR,
+ "%s(%d): orig_line is %zu, orig_col is %zu, start is '%s', parent_type is %s\n",
+ __unqualified_func__,
+ __LINE__,
+ m_start->orig_line,
+ m_start->orig_col,
+ m_start->Text(),
+ get_token_name(get_chunk_parent_type(m_start)));
+
+ log_pcf_flags(LFTOR, m_start->flags);
+
+ /**
+ * get the name of the type
+ */
+ auto *body_end = get_body_end();
+ auto *body_start = get_body_start();
+ auto *name = m_type->Text();
+
+ LOG_FMT(LFTOR,
+ "%s(%d): Name of type is '%s'\n",
+ __unqualified_func__,
+ __LINE__,
+ name);
+ log_pcf_flags(LFTOR, m_type->flags);
+
+ Chunk *next = Chunk::NullChunkPtr;
+ std::size_t level = m_type->brace_level + 1;
+
+ for (auto *prev = body_start; next != body_end; prev = next)
+ {
+ chunk_flags_set(prev, PCF_IN_CLASS);
+
+ next = skip_template_next(prev->GetNextNcNnl(E_Scope::PREPROC)); // Issue #3368
+
+ /**
+ * find a chunk within the class/struct body that
+ */
+ if ( prev->IsNotNullChunk()
+ && std::strcmp(prev->Text(), name) == 0
+ && prev->level == level
+ && chunk_is_paren_open(next))
+ {
+ set_chunk_type(prev, CT_FUNC_CLASS_DEF);
+
+ LOG_FMT(LFTOR,
+ "%s(%d): Constructor/destructor detected: '%s' at orig_line is %zu, orig_col is %zu, type is %s\n",
+ __unqualified_func__,
+ __LINE__,
+ name,
+ prev->orig_line,
+ prev->orig_col,
+ get_token_name(prev->type));
+
+ mark_cpp_constructor(prev);
+ }
+ }
+
+ chunk_flags_set(next, PCF_IN_CLASS);
+ }
+} // EnumStructUnionParser::mark_constructor
+
+
+void EnumStructUnionParser::mark_enum_integral_type(Chunk *colon)
+{
+ LOG_FUNC_ENTRY();
+
+ set_chunk_type(colon, CT_BIT_COLON);
+ set_chunk_parent(colon, m_start->type);
+
+ auto *body_start = get_body_start();
+ auto *pc = colon->GetNextNcNnl();
+
+ /**
+ * the chunk(s) between the colon and opening
+ * brace (if present) should specify the enum's
+ * integral type
+ */
+
+ while ( chunk_is_between(pc, m_start, m_end)
+ && pc != body_start
+ && chunk_is_not_token(pc, CT_BRACE_OPEN)
+ && !chunk_is_semicolon(pc))
+ {
+ /**
+ * clear the PCF_VAR_TYPE flag for all chunks within the enum integral base
+ * TODO: this may not be necessary in the future once code outside this
+ * class is improved such that PCF_VAR_TYPE is not set for these chunks
+ */
+ if (chunk_is_not_token(pc, CT_DC_MEMBER)) // Issue #3198
+ {
+ pc->flags &= ~PCF_VAR_TYPE;
+ set_chunk_type(pc, CT_TYPE);
+ set_chunk_parent(pc, colon->type);
+ }
+ pc = pc->GetNextNcNnl();
+ }
+} // EnumStructUnionParser::mark_enum_integral_type
+
+
+void EnumStructUnionParser::mark_extracorporeal_lvalues()
+{
+ /**
+ * clear the PCF_LVALUE flag for all chunks outside the body definition,
+ * as this flag may have been set elsewhere by code outside this class
+ * TODO: the mark_lvalue() function needs some improvement so that the
+ * following isn't necessary
+ */
+ Chunk *next = m_start;
+ Chunk *prev = Chunk::NullChunkPtr;
+
+ /**
+ * if the class is a template, go the extra step and correct the
+ * erroneously marked chunks - as previously mentioned, this likely
+ * won't be necessary with improvements to the mark_lvalue() function
+ */
+ if (get_chunk_parent_type(next) == CT_TEMPLATE)
+ {
+ while (true)
+ {
+ prev = next->GetPrevNcNnlNi();
+
+ if ( prev->IsNullChunk()
+ || ( !prev->flags.test(PCF_IN_TEMPLATE)
+ && chunk_is_not_token(prev, CT_TEMPLATE)))
+ {
+ break;
+ }
+ next = prev;
+ }
+ }
+ Chunk *body_end = get_body_end();
+ Chunk *body_start = get_body_start();
+
+ while (next != m_end)
+ {
+ if ( !chunk_is_between(next, body_start, body_end)
+ && next->flags.test(PCF_LVALUE))
+ {
+ next->flags &= ~PCF_LVALUE;
+ }
+ else if ( ( chunk_is_token(next, CT_ASSIGN)
+ || chunk_is_token(next, CT_BRACE_OPEN))
+ && chunk_is_token(prev, CT_WORD)
+ && prev->flags.test_any(PCF_VAR_DEF | PCF_VAR_1ST | PCF_VAR_INLINE))
+ {
+ chunk_flags_set(prev, PCF_LVALUE);
+ }
+ prev = next;
+ next = next->GetNextNcNnl();
+ }
+} // EnumStructUnionParser::mark_extracorporeal_lavlues
+
+
+void EnumStructUnionParser::mark_nested_name_specifiers(Chunk *pc)
+{
+ LOG_FUNC_ENTRY();
+
+ auto start_end_pair = match_qualified_identifier(pc);
+ auto start = start_end_pair.first;
+ auto end = start_end_pair.second;
+
+ for (pc = start; chunk_is_between(pc, start, end); pc = pc->GetNextNcNnl())
+ {
+ if (chunk_is_token(pc, CT_WORD))
+ {
+ /**
+ * if the next token is an opening angle, then we can safely
+ * mark the current identifier as a type
+ */
+ auto *next = pc->GetNextNcNnl();
+
+ if (chunk_is_token(next, CT_ANGLE_OPEN))
+ {
+ /**
+ * the template may have already been previously marked elsewhere...
+ */
+ auto *angle_open = next;
+ auto *angle_close = chunk_skip_to_match(angle_open, E_Scope::PREPROC);
+
+ if (angle_close == nullptr)
+ {
+ // parse error
+ parse_error_detected(true);
+
+ // TODO: should this be just a warning or an error (with exit condition?)
+ LOG_FMT(LWARN,
+ "%s(%d): Unmatched '<' at orig_line is %zu, orig_col is %zu\n",
+ __unqualified_func__,
+ __LINE__,
+ angle_open->orig_line,
+ angle_open->orig_col);
+
+ break;
+ }
+ set_chunk_type(pc, CT_TYPE);
+ mark_template(next);
+ pc = angle_close;
+ }
+ else if ( is_within_inheritance_list(pc)
+ && ( chunk_is_token(next, CT_COMMA)
+ || chunk_is_token(next, CT_BRACE_OPEN)))
+ {
+ set_chunk_type(pc, CT_TYPE);
+ }
+ }
+ }
+} // EnumStructUnionParser::mark_nested_name_specifiers
+
+
+void EnumStructUnionParser::mark_pointer_types(Chunk *pc)
+{
+ LOG_FUNC_ENTRY();
+
+ if (chunk_is_token(pc, CT_WORD))
+ {
+ do
+ {
+ // TODO: should there be a CT_BYREF_TYPE?
+ pc = pc->GetPrevNcNnlNi();
+
+ if (chunk_is_ptr_operator(pc))
+ {
+ set_chunk_parent(pc, m_start->type);
+ set_chunk_type(pc, CT_PTR_TYPE);
+ }
+ } while (chunk_is_pointer_reference_or_qualifier(pc));
+ }
+} // EnumStructUnionParser::mark_pointer_types
+
+
+void EnumStructUnionParser::mark_template(Chunk *start) const
+{
+ LOG_FUNC_ENTRY();
+
+ if (start != nullptr)
+ {
+ LOG_FMT(LTEMPL,
+ "%s(%d): Template detected: '%s' at orig_line %zu, orig_col %zu\n",
+ __unqualified_func__,
+ __LINE__,
+ start->Text(),
+ start->orig_line,
+ start->orig_col);
+ }
+ set_chunk_parent(start, CT_TEMPLATE);
+
+ auto *end = chunk_skip_to_match(start, E_Scope::PREPROC);
+
+ if (end != nullptr)
+ {
+ set_chunk_parent(end, CT_TEMPLATE);
+
+ mark_template_args(start, end);
+ }
+} // EnumStructUnionParser::mark_template
+
+
+void EnumStructUnionParser::mark_template_args(Chunk *start, Chunk *end) const
+{
+ LOG_FUNC_ENTRY();
+
+ if ( end != nullptr
+ && start != nullptr)
+ {
+ LOG_FMT(LTEMPL,
+ "%s(%d): Start of template detected: '%s' at orig_line %zu, orig_col %zu\n",
+ __unqualified_func__,
+ __LINE__,
+ start->Text(),
+ start->orig_line,
+ start->orig_col);
+
+ pcf_flags_t flags = PCF_IN_TEMPLATE;
+ Chunk *next = start;
+
+ /**
+ * TODO: for now, just mark the chunks within the template as PCF_IN_TEMPLATE;
+ * we probably need to create a TemplateParser class to handle all
+ * things template-related
+ */
+
+ while (true)
+ {
+ next = next->GetNextNcNnl();
+
+ if (next == end)
+ {
+ break;
+ }
+ chunk_flags_set(next, flags);
+ }
+ LOG_FMT(LTEMPL,
+ "%s(%d): End of template detected: '%s' at orig_line %zu, orig_col %zu\n",
+ __unqualified_func__,
+ __LINE__,
+ end->Text(),
+ end->orig_line,
+ end->orig_col);
+ }
+} // EnumStructUnionParser::mark_template_args
+
+
+void EnumStructUnionParser::mark_type(Chunk *pc)
+{
+ LOG_FUNC_ENTRY();
+
+ if (pc != nullptr)
+ {
+ m_type = pc;
+
+ do
+ {
+ make_type(pc);
+ set_chunk_parent(pc, m_start->type);
+ pc = pc->GetNextNcNnl(E_Scope::PREPROC);
+ } while (chunk_is_pointer_or_reference(pc));
+ }
+} // EnumStructUnionParser::mark_type
+
+
+void EnumStructUnionParser::mark_variable(Chunk *variable, pcf_flags_t flags)
+{
+ LOG_FUNC_ENTRY();
+
+ if (variable != nullptr)
+ {
+ LOG_FMT(LVARDEF,
+ "%s(%d): Variable definition detected: '%s' at orig_line is %zu, orig_col is %zu, set %s\n",
+ __unqualified_func__,
+ __LINE__,
+ variable->Text(),
+ variable->orig_line,
+ variable->orig_col,
+ flags & PCF_VAR_1ST_DEF ? "PCF_VAR_1ST_DEF" : "PCF_VAR_1ST");
+
+ chunk_flags_set(variable, flags);
+ set_chunk_type(variable, CT_WORD);
+ mark_pointer_types(variable);
+ }
+} // EnumStructUnionParser::mark_variable
+
+
+void EnumStructUnionParser::mark_where_clause(Chunk *where)
+{
+ LOG_FUNC_ENTRY();
+
+ if (where != nullptr)
+ {
+ LOG_FMT(LFTOR,
+ "%s(%d): Where clause detected: orig_line is %zu, orig_col is %zu\n",
+ __unqualified_func__,
+ __LINE__,
+ where->orig_line,
+ where->orig_col);
+ }
+ set_where_start(where);
+
+ auto *where_end = get_where_end();
+ auto *where_start = get_where_start();
+
+ set_where_end(where_end);
+
+ pcf_flags_t flags;
+
+ for (auto *pc = where_start; pc != where_end; pc = pc->GetNextNcNnl())
+ {
+ flags = mark_where_chunk(pc, m_start->type, flags);
+ }
+} // EnumStructUnionParser::mark_where_clause
+
+
+void EnumStructUnionParser::mark_where_colon(Chunk *colon)
+{
+ LOG_FUNC_ENTRY();
+
+ if (colon != nullptr)
+ {
+ LOG_FMT(LFTOR,
+ "%s(%d): Where colon detected: orig_line is %zu, orig_col is %zu\n",
+ __unqualified_func__,
+ __LINE__,
+ colon->orig_line,
+ colon->orig_col);
+ }
+ set_chunk_type(colon, CT_WHERE_COLON);
+ set_chunk_parent(colon, m_start->type);
+} // EnumStructUnionParser::mark_where_colon
+
+
+void EnumStructUnionParser::parse(Chunk *pc)
+{
+ LOG_FUNC_ENTRY();
+
+ initialize(pc);
+
+ /**
+ * make sure this wasn't a cast, and also make sure we're
+ * actually dealing with a class/enum/struct/union type
+ */
+ if ( get_chunk_parent_type(m_start) == CT_C_CAST
+ || !chunk_is_class_enum_struct_union(m_start))
+ {
+ return;
+ }
+ Chunk *prev = m_start;
+ Chunk *next = prev->GetNextNcNnl();
+
+ /**
+ * the enum-key might be enum, enum class or enum struct
+ */
+ if (chunk_is_enum(next))
+ {
+ prev = next;
+ next = prev->GetNextNcNnl();
+ }
+ else if (chunk_is_enum(prev))
+ {
+ auto *prev_prev = prev->GetPrevNcNnlNi();
+
+ if ( chunk_is_enum(prev_prev)
+ && chunk_is_enum(prev))
+ {
+ m_start = prev_prev;
+ }
+ }
+ /**
+ * pre-process all chunks between the starting and ending chunks identified
+ * in the initial pass
+ */
+
+ while (chunk_is_between(next, m_start, m_end))
+ {
+ /**
+ * skip attributes
+ */
+ next = skip_attribute(next);
+
+ /**
+ * skip declspec
+ */
+ next = skip_declspec(next);
+
+ /**
+ * skip any right-hand side assignments
+ */
+ if (chunk_is_token(next, CT_ASSIGN))
+ {
+ next = skip_to_expression_end(next);
+ }
+
+ if ( chunk_is_token(next, CT_ANGLE_OPEN)
+ && !template_detected())
+ {
+ next = parse_angles(next);
+ }
+ else if ( chunk_is_token(next, CT_BRACE_OPEN)
+ && !body_detected())
+ {
+ next = parse_braces(next);
+ }
+ else if (chunk_is_colon(next))
+ {
+ parse_colon(next);
+ }
+ else if (chunk_is_token(next, CT_COMMA))
+ {
+ record_top_level_comma(next);
+ }
+ else if (chunk_is_token(next, CT_DC_MEMBER))
+ {
+ next = parse_double_colon(next);
+ }
+ else if ( chunk_is_paren_open(next)
+ && ( language_is_set(LANG_D)
+ || ( language_is_set(LANG_PAWN)
+ && chunk_is_enum(m_start))))
+ {
+ set_paren_parent(next, m_start->type);
+
+ if ( chunk_is_token(prev, CT_WORD)
+ && language_is_set(LANG_D))
+ {
+ mark_template(next);
+ }
+ next = chunk_skip_to_match(next, E_Scope::PREPROC);
+ }
+ else if ( chunk_is_token(next, CT_QUALIFIER)
+ && language_is_set(LANG_JAVA)
+ && std::strncmp(next->str.c_str(), "implements", 10) == 0)
+ {
+ mark_base_classes(next);
+ }
+ else if (chunk_is_token(next, CT_QUESTION))
+ {
+ record_question_operator(next);
+ }
+ else if ( chunk_is_token(next, CT_WHERE)
+ && !where_clause_detected())
+ {
+ mark_where_clause(next);
+ }
+ prev = next;
+
+ do
+ {
+ next = next->GetNextNcNnl();
+ } while ( next->IsNotNullChunk()
+ && next->level > m_start->level);
+ }
+ /**
+ * identify the type and/or variable(s)
+ */
+ analyze_identifiers();
+
+ /**
+ * identify and mark lvalues occurring outside the body definition
+ */
+ mark_extracorporeal_lvalues();
+
+ if ( prev != nullptr
+ && chunk_is_semicolon(prev)
+ && prev->level == m_start->level
+ && !prev->flags.test(PCF_IN_FOR))
+ {
+ set_chunk_parent(prev, m_start->type);
+ }
+} // EnumStructUnionParser::parse
+
+
+Chunk *EnumStructUnionParser::parse_angles(Chunk *angle_open)
+{
+ LOG_FUNC_ENTRY();
+
+ /**
+ * first check to see if the open angle occurs within an inheritance list
+ */
+ auto *pc = angle_open;
+
+ if (!is_within_inheritance_list(pc))
+ {
+ /**
+ * check to see if there's a matching closing angle bracket
+ */
+ auto *angle_close = chunk_skip_to_match(angle_open, E_Scope::PREPROC);
+
+ if (angle_close == nullptr)
+ {
+ // parse error
+ parse_error_detected(true);
+
+ // TODO: should this be just a warning or an error (with exit condition?)
+ LOG_FMT(LWARN,
+ "%s(%d): Unmatched '<' at orig_line is %zu, orig_col is %zu\n",
+ __unqualified_func__,
+ __LINE__,
+ angle_open->orig_line,
+ angle_open->orig_col);
+ }
+ else
+ {
+ /**
+ * check to make sure that the template is the final chunk in a list
+ * of scope-resolution qualifications
+ */
+ auto *next = angle_close->GetNextNcNnl();
+
+ if (chunk_is_not_token(next, CT_DC_MEMBER))
+ {
+ set_template_start(angle_open);
+
+ /**
+ * we could be dealing with a template type; if so, the opening angle
+ * bracket should be preceded by a CT_WORD token and we should have
+ * found a closing angle bracket
+ */
+ auto *prev = angle_open->GetPrevNcNnlNi();
+
+ if (chunk_is_not_token(prev, CT_WORD))
+ {
+ // parse error
+ parse_error_detected(true);
+
+ // TODO: should this be just a warning or an error (with exit condition?)
+ LOG_FMT(LWARN,
+ "%s(%d): Identifier missing before '<' at orig_line is %zu, orig_col is %zu\n",
+ __unqualified_func__,
+ __LINE__,
+ angle_open->orig_line,
+ angle_open->orig_col);
+ }
+ else
+ {
+ set_template_end(angle_close);
+ mark_template(angle_open);
+ }
+ }
+ /**
+ * update input argument to point to the closing angle bracket
+ */
+ pc = angle_close;
+ }
+ }
+ return(pc);
+} // EnumStructUnionParser::parse_angles
+
+
+Chunk *EnumStructUnionParser::parse_braces(Chunk *brace_open)
+{
+ LOG_FUNC_ENTRY();
+
+ /**
+ * check to see if there's a matching closing brace
+ */
+
+ auto *pc = brace_open;
+ auto *brace_close = chunk_skip_to_match(pc, E_Scope::PREPROC);
+
+ if (brace_close != nullptr)
+ {
+ /**
+ * we could be dealing with a variable definition preceded by
+ * the class/struct keyword. It's possible that the variable is
+ * assigned via direct-list initialization, hence the open brace
+ * is NOT part of a class/struct type definition.
+ */
+ auto *first_comma = get_first_top_level_comma();
+
+ if (chunk_is_after(pc, first_comma))
+ {
+ /**
+ * the open brace occurs after a top-level comma was encountered, which
+ * likely implies a direct-initialization or braced initializer list in
+ * the midst of a list of variable definitions
+ */
+
+ return(pc);
+ }
+ set_body_end(brace_close);
+ set_body_start(brace_open);
+
+ auto *enum_base_start = get_enum_base_start();
+ auto *inheritance_start = get_inheritance_start();
+ auto *prev = pc->GetPrevNcNnlNi();
+
+ /**
+ * check to see if the open brace was preceded by a closing paren;
+ * it could possibly be a function-like macro call preceding the
+ * open brace, but it's more likely that we're dealing with a
+ * signature associated with a function definition
+ */
+ bool is_potential_function_definition = false;
+
+ if ( ( language_is_set(LANG_C)
+ || language_is_set(LANG_CPP))
+ && chunk_is_paren_close(prev))
+ {
+ /**
+ * we may be dealing with a c/cpp function definition, where the 'struct'
+ * or 'class' keywords appear as the return type preceding a pair of braces
+ * and therefore may be associated with a function definition body
+ */
+ auto *paren_close = prev;
+
+ // skip in reverse to the matching open paren
+ auto *paren_open = chunk_skip_to_match_rev(paren_close);
+
+ if (paren_open != nullptr)
+ {
+ /**
+ * determine if there's an identifier preceding the open paren;
+ * if so, the identifier is very likely to be associated with
+ * a function definition
+ */
+ auto *type = m_start->GetNextNcNnl();
+ auto *identifier = paren_open->GetPrevNcNnlNi(E_Scope::PREPROC);
+ is_potential_function_definition = ( ( chunk_is_token(identifier, CT_FUNCTION)
+ || chunk_is_token(identifier, CT_FUNC_DEF)
+ || chunk_is_token(identifier, CT_WORD))
+ && type != identifier);
+ }
+ }
+
+ if ( language_is_set(LANG_D)
+ || language_is_set(LANG_PAWN)
+ || !chunk_is_paren_close(prev)
+ || is_potential_function_definition
+ || chunk_is_between(prev, enum_base_start, brace_open)
+ || chunk_is_between(prev, inheritance_start, brace_open))
+ {
+ mark_braces(brace_open);
+
+ /**
+ * D does not require a semicolon after an enum, but we add one to make
+ * other code happy.
+ */
+ if ( language_is_set(LANG_D)
+ && chunk_is_enum(m_start))
+ {
+ pawn_add_vsemi_after(brace_close); // Issue #2279
+ }
+ pc = brace_close;
+ }
+ else
+ {
+ // TODO: should this be just a warning or an error (with exit condition?)
+ LOG_FMT(LWARN,
+ "%s(%d): Parsing error precedes start of body '{' at orig_line is %zu, orig_col is %zu\n",
+ __unqualified_func__,
+ __LINE__,
+ brace_open->orig_line,
+ brace_open->orig_col);
+
+ // parse error
+ parse_error_detected(true);
+ }
+ }
+ return(pc);
+} // EnumStructUnionParser::parse_braces
+
+
+void EnumStructUnionParser::parse_colon(Chunk *colon)
+{
+ LOG_FUNC_ENTRY();
+
+ if (chunk_is_token(m_start, CT_UNION))
+ {
+ /**
+ * unions do not implement inheritance
+ */
+
+ // TODO: should this be just a warning or an error (with exit condition?)
+ LOG_FMT(LWARN,
+ "%s(%d): Colon follows union declaration at orig_line is %zu, orig_col is %zu\n",
+ __unqualified_func__,
+ __LINE__,
+ colon->orig_line,
+ colon->orig_col);
+
+ // parse error
+ parse_error_detected(true);
+ }
+ else if (is_within_conditional(colon))
+ {
+ mark_conditional_colon(colon);
+ }
+ else if (is_within_where_clause(colon))
+ {
+ mark_where_colon(colon);
+ }
+ else if (!inheritance_detected())
+ {
+ if (chunk_is_class_or_struct(m_start))
+ {
+ /**
+ * the colon likely specifies an inheritance list for a struct
+ * or class type
+ */
+
+ set_inheritance_start(colon);
+ mark_class_colon(colon);
+ }
+ else if (chunk_is_enum(m_start))
+ {
+ set_enum_base_start(colon);
+ mark_enum_integral_type(colon);
+ }
+ }
+} // EnumStructUnionParser::parse_colon
+
+
+Chunk *EnumStructUnionParser::parse_double_colon(Chunk *double_colon)
+{
+ LOG_FUNC_ENTRY();
+
+ auto *pc = double_colon;
+
+ if ( language_is_set(LANG_CPP)
+ && chunk_is_token(pc, CT_DC_MEMBER))
+ {
+ mark_nested_name_specifiers(pc);
+ pc = skip_scope_resolution_and_nested_name_specifiers(pc);
+ }
+ return(pc);
+} // EnumStructUnionParser::parse_double_colon
+
+
+bool EnumStructUnionParser::parse_error_detected() const
+{
+ LOG_FUNC_ENTRY();
+
+ return(m_parse_error);
+} // EnumStructUnionParser::parse_error_detected
+
+
+void EnumStructUnionParser::parse_error_detected(bool status)
+{
+ LOG_FUNC_ENTRY();
+
+ m_parse_error = status;
+} // EnumStructUnionParser::parse_error_detected
+
+
+void EnumStructUnionParser::record_question_operator(Chunk *question)
+{
+ LOG_FUNC_ENTRY();
+
+ if (chunk_is_token(question, CT_QUESTION))
+ {
+ std::size_t index = m_chunk_map[CT_QUESTION].size();
+
+ m_chunk_map[CT_QUESTION][index] = question;
+ }
+} // EnumStructUnionParser::record_question_operator
+
+
+void EnumStructUnionParser::record_top_level_comma(Chunk *comma)
+{
+ if ( comma != nullptr
+ && comma->level == m_start->level
+ && !is_within_conditional(comma)
+ && !is_within_inheritance_list(comma))
+ {
+ std::size_t index = m_chunk_map[CT_COMMA].size();
+
+ m_chunk_map[CT_COMMA][index] = comma;
+ }
+} // EnumStructUnionParser::record_top_level_comma
+
+
+Chunk *EnumStructUnionParser::refine_end_chunk(Chunk *pc)
+{
+ LOG_FUNC_ENTRY();
+
+ if ( ( language_is_set(LANG_C)
+ || language_is_set(LANG_CPP))
+ && chunk_is_token(pc, CT_BRACE_CLOSE))
+ {
+ /**
+ * if dealing with C/C++, one or more trailing variable definitions may
+ * follow the closing brace; a semi-colon should've been good enough to
+ * indicate the terminating condition, however some of the classes defined
+ * in the input tests cases for Continuous Integration DO NOT correctly
+ * terminate classes/struct with a semicolon (which is compilation error).
+ * As a consequence, more checks must be performed to determine where
+ * the terminating chunk is located. For instance, see operator.cpp and
+ * enum_comma.h for examples of offenders
+ */
+ auto *next = pc->GetNextNcNnl();
+
+ while (true)
+ {
+ if (chunk_is_semicolon(next))
+ {
+ pc = next;
+
+ break;
+ }
+ else
+ {
+ /**
+ * if we're sitting at a comma, skip it
+ */
+ if (chunk_is_token(next, CT_COMMA))
+ {
+ next = next->GetNextNcNnl();
+ }
+ auto match = match_variable(next, m_start->level);
+ auto *start = std::get<0>(match);
+ auto *identifier = std::get<1>(match);
+ auto *end = std::get<2>(match);
+
+ if ( end == nullptr
+ || identifier == nullptr
+ || start == nullptr)
+ {
+ break;
+ }
+ else
+ {
+ pc = end->GetNextNcNnl();
+
+ /**
+ * skip any right-hand side assignments
+ */
+ if (chunk_is_token(pc, CT_ASSIGN))
+ {
+ pc = skip_to_expression_end(pc);
+ }
+ next = pc;
+ }
+ }
+ }
+ }
+ return(pc);
+} // EnumStructUnionParser::refine_end_chunk
+
+
+void EnumStructUnionParser::set_body_end(Chunk *body_end)
+{
+ LOG_FUNC_ENTRY();
+
+ if (chunk_is_token(body_end, CT_BRACE_CLOSE))
+ {
+ m_chunk_map[CT_BRACE_CLOSE][0] = body_end;
+ }
+} // EnumStructUnionParser::set_body_end
+
+
+void EnumStructUnionParser::set_body_start(Chunk *body_start)
+{
+ LOG_FUNC_ENTRY();
+
+ if (chunk_is_token(body_start, CT_BRACE_OPEN))
+ {
+ m_chunk_map[CT_BRACE_OPEN][0] = body_start;
+ }
+} // EnumStructUnionParser::set_body_start
+
+
+void EnumStructUnionParser::set_enum_base_start(Chunk *enum_base_start)
+{
+ LOG_FUNC_ENTRY();
+
+ if (chunk_is_colon(enum_base_start))
+ {
+ m_chunk_map[CT_BIT_COLON][0] = enum_base_start;
+ }
+} // EnumStructUnionParser::set_enum_base_start
+
+
+void EnumStructUnionParser::set_inheritance_start(Chunk *inheritance_start)
+{
+ LOG_FUNC_ENTRY();
+
+ if (chunk_is_colon(inheritance_start))
+ {
+ m_chunk_map[CT_COLON][0] = inheritance_start;
+ }
+} // EnumStructUnionParser::set_inheritance_start
+
+
+void EnumStructUnionParser::set_template_end(Chunk *template_end)
+{
+ LOG_FUNC_ENTRY();
+
+ if (chunk_is_token(template_end, CT_ANGLE_CLOSE))
+ {
+ m_chunk_map[CT_ANGLE_CLOSE][0] = template_end;
+ }
+} // EnumStructUnionParser::set_template_end
+
+
+void EnumStructUnionParser::set_template_start(Chunk *template_start)
+{
+ LOG_FUNC_ENTRY();
+
+ if (chunk_is_token(template_start, CT_ANGLE_OPEN))
+ {
+ m_chunk_map[CT_ANGLE_OPEN][0] = template_start;
+ }
+} // EnumStructUnionParser::set_template_start
+
+
+void EnumStructUnionParser::set_where_end(Chunk *where_end)
+{
+ LOG_FUNC_ENTRY();
+
+ if (chunk_is_token(where_end, CT_BRACE_OPEN))
+ {
+ m_chunk_map[CT_WHERE][0] = where_end;
+ }
+} // EnumStructUnionParser::set_where_end
+
+
+void EnumStructUnionParser::set_where_start(Chunk *where_start)
+{
+ LOG_FUNC_ENTRY();
+
+ if (chunk_is_token(where_start, CT_WHERE))
+ {
+ m_chunk_map[CT_WHERE][0] = where_start;
+ }
+} // EnumStructUnionParser::set_where_start
+
+
+bool EnumStructUnionParser::template_detected() const
+{
+ LOG_FUNC_ENTRY();
+
+ auto *template_end = get_template_end();
+ auto *template_start = get_template_start();
+
+ return( template_end != nullptr
+ && template_start != nullptr);
+} // EnumStructUnionParser::template_detected
+
+
+Chunk *EnumStructUnionParser::try_find_end_chunk(Chunk *pc)
+{
+ LOG_FUNC_ENTRY();
+
+ do
+ {
+ /**
+ * clear some previously marked token types, some of which have likely
+ * been erroneously marked up to this point; a good example of this
+ * arises when macro variables and/or macro function calls follow the
+ * class/enum/struct/union keyword and precede the actual type name
+ */
+ if ( chunk_is_token(pc, CT_TYPE)
+ || chunk_is_token(pc, CT_WORD))
+ {
+ set_chunk_type(pc, CT_WORD);
+ set_chunk_parent(pc, CT_NONE);
+ }
+
+ do
+ {
+ pc = pc->GetNextNcNnl(E_Scope::PREPROC);
+ } while ( pc->IsNotNullChunk()
+ && pc->level > m_start->level);
+ } while (!is_potential_end_chunk(pc));
+
+ /**
+ * perform a second pass for c++ that
+ */
+ pc = refine_end_chunk(pc);
+
+ return(pc);
+} // EnumStructUnionParser::try_find_end_chunk
+
+
+void EnumStructUnionParser::try_post_identify_macro_calls()
+{
+ LOG_FUNC_ENTRY();
+
+ if ( language_is_set(LANG_CPP)
+ && type_identified())
+ {
+ /**
+ * for all chunks at class/enum/struct/union level, identify function-like
+ * macro calls and mark them as CT_MACRO_FUNC_CALL. The reason for doing
+ * so is to avoid mis-interpretation by code executed at a later time
+ */
+
+ auto *body_start = get_body_start();
+ auto *inheritance_start = get_inheritance_start();
+ Chunk *pc = m_start;
+ Chunk *prev = nullptr;
+
+ do
+ {
+ if ( !chunk_is_between(prev, inheritance_start, body_start)
+ && ( chunk_is_token(prev, CT_WORD)
+ || chunk_is_token(prev, CT_FUNCTION)
+ || chunk_is_token(prev, CT_FUNC_DEF))
+ && !prev->flags.test_any(PCF_VAR_DEF | PCF_VAR_1ST | PCF_VAR_INLINE)
+ && prev->level == m_start->level)
+ {
+ if (chunk_is_paren_open(pc))
+ {
+ auto *paren_open = pc;
+ auto *paren_close = chunk_skip_to_match(paren_open, E_Scope::PREPROC);
+
+ if (paren_close != nullptr)
+ {
+ set_chunk_type(paren_open, CT_FPAREN_OPEN);
+ set_chunk_parent(paren_open, CT_MACRO_FUNC_CALL);
+ set_chunk_type(paren_close, CT_FPAREN_CLOSE);
+ set_chunk_parent(paren_close, CT_MACRO_FUNC_CALL);
+ set_chunk_type(prev, CT_MACRO_FUNC_CALL);
+ }
+ }
+ }
+ prev = pc;
+ pc = prev->GetNextNcNnl();
+ } while (chunk_is_between(pc, m_start, m_end));
+ }
+} // EnumStructUnionParser::try_post_identify_macro_calls
+
+
+void EnumStructUnionParser::try_post_identify_type()
+{
+ LOG_FUNC_ENTRY();
+
+ Chunk *body_end = get_body_end();
+
+ if ( !type_identified()
+ && body_end == nullptr)
+ {
+ /**
+ * a type wasn't identified and no closing brace is present; we're
+ * likely not dealing with an anonymous enum/class/struct
+ */
+
+ /**
+ * a type has yet to be identified, so search for the last word
+ * that hasn't been marked as a variable
+ */
+ Chunk *type = nullptr;
+ Chunk *pc = m_start;
+
+ do
+ {
+ /**
+ * in case it's a qualified identifier, skip scope-resolution and
+ * nested name specifiers and return just the qualified identifier name
+ */
+ pc = skip_scope_resolution_and_nested_name_specifiers(pc);
+
+ if (pc->flags.test_any(PCF_VAR_DEF | PCF_VAR_1ST | PCF_VAR_INLINE))
+ {
+ break;
+ }
+ else if ( chunk_is_token(pc, CT_WORD)
+ || chunk_is_token(pc, CT_ANGLE_CLOSE))
+ {
+ type = skip_template_prev(pc);
+ }
+ pc = pc->GetNextNcNnl();
+ } while (chunk_is_between(pc, m_start, m_end));
+
+ if (type != nullptr)
+ {
+ mark_type(type);
+ }
+ }
+} // EnumStructUnionParser::try_post_identify_type
+
+
+bool EnumStructUnionParser::try_pre_identify_type()
+{
+ LOG_FUNC_ENTRY();
+
+ Chunk *pc = get_body_start();
+
+ if ( language_is_set(LANG_PAWN)
+ && chunk_is_enum(m_start))
+ {
+ set_paren_parent(pc, m_start->type);
+ }
+ else if (template_detected())
+ {
+ pc = get_template_start();
+ }
+ else if (enum_base_detected())
+ {
+ pc = get_enum_base_start();
+ }
+ else if (inheritance_detected())
+ {
+ pc = get_inheritance_start();
+
+ if (chunk_is_token(m_start, CT_UNION))
+ {
+ /**
+ * unions do not implement inheritance
+ */
+
+ // TODO: should this be just a warning or an error (with exit condition?)
+ LOG_FMT(LWARN,
+ "%s(%d): Bad union declaration detected at orig_line is %zu, orig_col is %zu\n",
+ __unqualified_func__,
+ __LINE__,
+ m_start->orig_line,
+ m_start->orig_col);
+
+ parse_error_detected(true);
+
+ return(false);
+ }
+ }
+
+ if (pc == nullptr)
+ {
+ Chunk *next = m_start->GetNextNcNnl();
+
+ /**
+ * in case it's a qualified identifier, skip scope-resolution and
+ * nested name specifiers and return just the qualified identifier name
+ */
+ next = skip_scope_resolution_and_nested_name_specifiers(next);
+
+ Chunk *next_next = next->GetNextNcNnl();
+
+ /**
+ * in case it's a qualified identifier, skip scope-resolution and
+ * nested name specifiers and return just the qualified identifier name
+ */
+ next_next = skip_scope_resolution_and_nested_name_specifiers(next_next);
+
+ /**
+ * if there is one word between the start and end chunks, then we've likely
+ * identified the type; if there are two words, then the first is likely a
+ * type and the second is an instantiation thereof; however, it is possible
+ * that the first word is actually a reference to a macro definition, in which
+ * the second word would be the type
+ */
+ if (next_next == m_end)
+ {
+ pc = next_next;
+ }
+ else if ( next->IsNotNullChunk()
+ && chunk_is_token(next, CT_WORD)
+ && chunk_is_token(next_next, CT_WORD)
+ && m_end->GetPrevNcNnlNi() == next_next)
+ {
+ /**
+ * check to see if we've got a macro reference preceding the last word chunk;
+ * this won't work in all cases, because a macro may be defined in another header
+ * file, but this is an attempt to increase the chances of identifying the correct
+ * chunk as the type
+ */
+ if ( chunk_is_macro_reference(next)
+ || get_chunk_parent_type(m_start) == CT_TEMPLATE)
+ {
+ pc = m_end;
+ }
+ else
+ {
+ pc = next_next;
+ }
+ }
+ else
+ {
+ /**
+ * search for some common patterns that may indicate a type
+ */
+ Chunk *prev = m_start;
+
+ while ( chunk_is_between(next, m_start, m_end)
+ && ( ( chunk_is_not_token(next, CT_ASSIGN)
+ && chunk_is_not_token(next, CT_COMMA))
+ || next->level != m_start->level)
+ && !chunk_is_semicolon(next))
+ {
+ prev = next;
+ next = next->GetNextNcNnl();
+
+ /**
+ * in case it's a qualified identifier, skip scope-resolution and
+ * nested name specifiers and return just the qualified identifier name
+ */
+ next = skip_scope_resolution_and_nested_name_specifiers(next);
+
+ /**
+ * skip array brackets, as the type cannot be located within;
+ * also skip a set of parens - there may be a type embedded within,
+ * but it's not the type with which we're concerned
+ */
+ if ( next->IsSquareBracket() // Issue #3601
+ || chunk_is_paren_open(next))
+ {
+ prev = chunk_skip_to_match(next, E_Scope::PREPROC);
+ next = prev->GetNextNcNnl(E_Scope::PREPROC);
+ }
+
+ if ( chunk_is_token(prev, CT_WORD)
+ && chunk_is_pointer_or_reference(next))
+ {
+ pc = next;
+
+ break;
+ }
+ }
+ }
+ }
+
+ if ( pc != nullptr
+ && pc->IsNotNullChunk())
+ {
+ /**
+ * the chunk preceding the previously selected chunk should indicate the type
+ */
+
+ pc = pc->GetPrevNcNnlNi(E_Scope::PREPROC);
+
+ if ( chunk_is_token(pc, CT_QUALIFIER)
+ && std::strncmp(pc->str.c_str(), "final", 5) == 0)
+ {
+ pc = pc->GetPrevNcNnlNi(E_Scope::PREPROC);
+ }
+
+ if ( language_is_set(LANG_D)
+ && chunk_is_paren_close(pc))
+ {
+ pc = chunk_skip_to_match_rev(pc);
+ pc = pc->GetPrevNcNnlNi();
+ }
+
+ if (chunk_is_token(pc, CT_WORD))
+ {
+ mark_type(pc);
+
+ return(true);
+ }
+ }
+ return(false);
+} // EnumStructUnionParser::try_pre_identify_type
+
+
+bool EnumStructUnionParser::type_identified() const
+{
+ LOG_FUNC_ENTRY();
+
+ return(m_type != nullptr);
+} // EnumStructUnionParser::type_identified
+
+
+/**
+ * Returns true if a where clause was detected during parsing
+ */
+bool EnumStructUnionParser::where_clause_detected() const
+{
+ LOG_FUNC_ENTRY();
+
+ auto *where_end = get_where_end();
+ auto *where_start = get_where_start();
+
+ return( where_end != nullptr
+ && where_start != nullptr);
+} // EnumStructUnionParser::where_clause_detected
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/EnumStructUnionParser.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/EnumStructUnionParser.h
new file mode 100644
index 00000000..422662da
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/EnumStructUnionParser.h
@@ -0,0 +1,497 @@
+/**
+ * @file combine_fix_mark_enum_struct_union.h
+ *
+ * @author
+ * @license GPL v2+
+ * extract from combine_fix_mark.h
+ */
+
+#ifndef ENUM_STRUCT_UNION_PARSER_H_INCLUDED
+#define ENUM_STRUCT_UNION_PARSER_H_INCLUDED
+
+#include "pcf_flags.h"
+#include "token_enum.h"
+#include "uncrustify_types.h"
+#include <map>
+
+
+/**
+ * Class EnumStructUnionParser : This class facilitates the parsing and interpretation
+ * of ALL instances of the class, enum, union, and
+ * struct keywords, including user-defined types with
+ * a body {} and any trailing inline variable declarations
+ * that may follow the definition (as permitted by
+ * the coding language in question). The class also
+ * interprets variable declarations preceded by one
+ * of those keywords, as well as any C/C++ forward
+ * declarations
+ */
+class EnumStructUnionParser
+{
+public:
+ /**
+ * Constructor
+ */
+ EnumStructUnionParser();
+
+
+ /**
+ * Destructor
+ */
+ ~EnumStructUnionParser();
+
+
+private:
+ /**
+ * Analyzes all identifiers (marked as CT_WORD) between the starting and
+ * ending chunks and changes CT_WORD to one of CT_TYPE, CT_MACRO_FUNC_CALL,
+ * etc. and sets flags (PCF_VAR_1ST, PCF_VAR_1ST_DEF, PCF_VAR_INLINE, etc.)
+ * for variable identifiers accordingly. Flags C++ forward declarations as
+ * PCF_INCOMPLETE
+ */
+ void analyze_identifiers();
+
+
+ /**
+ * Returns true if a pair of braces were both detected AND determined to be
+ * part of a class/enum/struct/union body
+ */
+ bool body_detected() const;
+
+
+ /**
+ * Returns true if comma-separated values were detected during parsing
+ */
+ bool comma_separated_values_detected() const;
+
+
+ /**
+ * Returns true if an enumerated integral type was detected during parsing
+ */
+ bool enum_base_detected() const;
+
+
+ /**
+ * Returns the end chunk of a class/enum/struct/union body, if detected
+ * during parsing
+ */
+ Chunk *get_body_end() const;
+
+
+ /**
+ * Returns the starting chunk of a class/enum/struct/union body, if detected
+ * during parsing
+ */
+ Chunk *get_body_start() const;
+
+
+ /**
+ * Returns the starting chunk associated with an enumerated type's base
+ * specifier statement, if detected during parsing
+ */
+ Chunk *get_enum_base_start() const;
+
+
+ /**
+ * Returns the first comma encountered at the level of the starting chunk,
+ * if detected during parsing
+ */
+ Chunk *get_first_top_level_comma() const;
+
+
+ /**
+ * Returns the ending chunk associated with an class/struct inheritance
+ * list, if detected during parsing
+ */
+ Chunk *get_inheritance_end() const;
+
+
+ /**
+ * Returns the starting chunk associated with an class/struct inheritance
+ * list, if detected during parsing
+ */
+ Chunk *get_inheritance_start() const;
+
+
+ /**
+ * Returns a numerically-indexed map of all question operators encountered
+ * during parsing
+ */
+ std::map<std::size_t, Chunk *> get_question_operators() const;
+
+
+ /**
+ * Returns the end chunk associated with a template parameter list, if
+ * detected during parsing
+ */
+ Chunk *get_template_end() const;
+
+
+ /**
+ * Return the starting chunk associated with a template parameter list, if
+ * detected during parsing
+ */
+ Chunk *get_template_start() const;
+
+
+ /**
+ * Returns a numerically-indexed map of all top-level commas encountered
+ * during parsing
+ */
+ std::map<std::size_t, Chunk *> get_top_level_commas() const;
+
+
+ /**
+ * Return the starting chunk associated with a where clause, if
+ * detected during parsing
+ */
+ Chunk *get_where_end() const;
+
+
+ /**
+ * Return the starting chunk associated with a where clause, if
+ * detected during parsing
+ */
+ Chunk *get_where_start() const;
+
+
+ /**
+ * Returns true if an inheritance list associated with a class or struct was
+ * discovered during parsing
+ */
+ bool inheritance_detected() const;
+
+
+public:
+ /**
+ * Performs object initialization prior to parsing
+ */
+ void initialize(Chunk *pc);
+
+
+private:
+ /**
+ * Returns true if the chunk under test represents a potential end chunk past
+ * which further parsing is not likely warranted
+ */
+ bool is_potential_end_chunk(Chunk *pc) const;
+
+
+ /**
+ * Returns true if the chunk under test is deemed to be located within a
+ * conditional/ternary statement
+ */
+ bool is_within_conditional(Chunk *pc) const;
+
+
+ /**
+ * Returns true if the chunk under test is deemed to be located within an
+ * inheritance list
+ */
+ bool is_within_inheritance_list(Chunk *pc) const;
+
+
+ /**
+ * Returns true if the chunk under test is deemed to be located within a
+ * where clause
+ */
+ bool is_within_where_clause(Chunk *pc) const;
+
+
+ /**
+ * Marks all base classes that appear as part of an inheritance list
+ */
+ void mark_base_classes(Chunk *pc);
+
+
+ /**
+ * Marks pairs of braces associated with the body of a class/enum/struct/union,
+ * and additionally calls a separate routine to mark any base classes for that
+ * may precede the opening brace
+ */
+ void mark_braces(Chunk *start);
+
+
+ /**
+ * Marks the beginning chunk of an inheritance list
+ */
+ void mark_class_colon(Chunk *colon);
+
+
+ /**
+ * Mark a colon as a conditional
+ */
+ void mark_conditional_colon(Chunk *colon);
+
+
+ /**
+ * Mark any struct/class constructor declarations/definitions
+ */
+ void mark_constructors();
+
+
+ /**
+ * Marks the beginning chunk of an enumerated integral type specification
+ */
+ void mark_enum_integral_type(Chunk *colon);
+
+
+ /**
+ * Scan chunks outside the definition body and mark lvalues accordingly
+ */
+ void mark_extracorporeal_lvalues();
+
+
+ /**
+ * Mark nested name specifiers preceding qualified identifiers
+ */
+ void mark_nested_name_specifiers(Chunk *pc);
+
+
+ /**
+ * Marks pointer operators preceding a variable identifier
+ */
+ void mark_pointer_types(Chunk *pc);
+
+
+ /**
+ * Marks the beginning and ending chunks associated with a template
+ * (templates may appear after the identifier type name as part of a class
+ * specialization)
+ */
+ void mark_template(Chunk *start) const;
+
+
+ /**
+ * Marks the arguments within a template argument list bounded by the
+ * starting and ending chunks
+ */
+ void mark_template_args(Chunk *start, Chunk *end) const;
+
+
+ /**
+ * Marks the type identifier associated with the class/enum/struct/union,
+ * if not anonymously defined
+ */
+ void mark_type(Chunk *pc);
+
+
+ /**
+ * Marks all variable identifiers associated with the class/enum/struct/union
+ */
+ void mark_variable(Chunk *variable, pcf_flags_t flags);
+
+
+ /**
+ * Marks all chunks belonging to a c# where clause
+ */
+ void mark_where_clause(Chunk *where);
+
+
+ /**
+ * Marks the beginning of a where clause
+ */
+ void mark_where_colon(Chunk *colon);
+
+
+public:
+ /**
+ * Parses the class/enum/struct/union and all associated chunks
+ */
+ void parse(Chunk *pc);
+
+
+private:
+ /**
+ * Parses closing and opening angle brackets
+ */
+ Chunk *parse_angles(Chunk *angle_open);
+
+
+ /**
+ * Parses closing and opening braces
+ */
+ Chunk *parse_braces(Chunk *brace_open);
+
+
+ /**
+ * Parses a single colon, which may precede an inheritance list or
+ * enumerated integral type specification
+ */
+ void parse_colon(Chunk *colon);
+
+
+ /**
+ * Parses a double colon, which may indicate a scope resolution chain
+ */
+ Chunk *parse_double_colon(Chunk *double_colon);
+
+
+ /**
+ * Returns the parsing error status
+ */
+ bool parse_error_detected() const;
+
+
+ /**
+ * Sets the parsing error status
+ */
+ void parse_error_detected(bool status);
+
+
+ /**
+ * Records all question operators encountered during parsing
+ */
+ void record_question_operator(Chunk *question);
+
+
+ /**
+ * Records a comma chunk given one the following conditions are satisfied:
+ * 1) it is encountered at the level of the starting chunk
+ * 2) it is not part of a right-hand side assignment
+ * 3) it is not part of an inheritance list
+ * 4) it is not part of a conditional/ternary expression
+ */
+ void record_top_level_comma(Chunk *comma);
+
+
+ /**
+ * Adjusts the end chunk returned by the try_find_end_chunk() function
+ * for any potential trailing inline variable declarations that may follow
+ * the body of a class/enum/struct/union definition
+ */
+ Chunk *refine_end_chunk(Chunk *pc);
+
+
+ /**
+ * Sets the chunk associated with the end of a class/enum/struct/union
+ * body
+ */
+ void set_body_end(Chunk *body_end);
+
+
+ /**
+ * Sets the chunk associated with the start of a class/enum/struct/union
+ * body
+ */
+ void set_body_start(Chunk *body_start);
+
+
+ /**
+ * Sets the chunk associated with the start of an enumerated integral
+ * base type specification
+ */
+ void set_enum_base_start(Chunk *enum_base_start);
+
+
+ /**
+ * Sets the chunk associated with the start of an inheritance list
+ */
+ void set_inheritance_start(Chunk *inheritance_start);
+
+
+ /**
+ * Sets the chunk associated with the end of a template
+ */
+ void set_template_end(Chunk *template_end);
+
+
+ /**
+ * Sets the chunk associated with the start of a template
+ */
+ void set_template_start(Chunk *template_start);
+
+
+ /**
+ * Return the ending chunk associated with a where clause, if
+ * detected during parsing
+ */
+ void set_where_end(Chunk *where_end);
+
+
+ /**
+ * Return the starting chunk associated with a where clause, if
+ * detected during parsing
+ */
+ void set_where_start(Chunk *where_start);
+
+
+ /**
+ * Returns true if a template was detected during parsing
+ */
+ bool template_detected() const;
+
+
+ /**
+ * Attempts to find the last chunk associated with the class/enum/struct/union
+ */
+ Chunk *try_find_end_chunk(Chunk *pc);
+
+
+ /**
+ * Attempts to identify any function-like macro calls which may precede the
+ * actual type identifier
+ */
+ void try_post_identify_macro_calls();
+
+
+ /**
+ * Attempts to find the identifier type name (if not anonymously-defined) post
+ * variable identifier interpretation
+ */
+ void try_post_identify_type();
+
+
+ /**
+ * Attempts to find the identifier type name prior to variable identifier
+ * interpretation
+ */
+ bool try_pre_identify_type();
+
+
+ /**
+ * Returns true if a corresponding type was identified for the class/enum/struct/union
+ */
+ bool type_identified() const;
+
+
+ /**
+ * Returns true if a where clause was detected during parsing
+ */
+ bool where_clause_detected() const;
+
+
+ /**
+ * Map of token-type, chunk pairs
+ */
+ std::map<E_Token, std::map<std::size_t, Chunk *> > m_chunk_map;
+
+
+ /**
+ * Indicates the last chunk associated with the class/enum/struct/union keyword
+ */
+ Chunk *m_end;
+
+
+ /**
+ * Indicates whether or not a parse error has occurred
+ */
+ bool m_parse_error;
+
+
+ /**
+ * Stores a pointer to the class/enum/struct/union keyword chunk with which the
+ * parse() routine was invoked
+ */
+ Chunk *m_start;
+
+
+ /**
+ * Stores a pointer to the type identifier associated with the class/enum/struct/union,
+ * if not anonymously defined
+ */
+ Chunk *m_type;
+};
+
+
+#endif
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/ListManager.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/ListManager.h
new file mode 100644
index 00000000..f9e928c8
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/ListManager.h
@@ -0,0 +1,260 @@
+/**
+ * @file ListManager.h
+ * Template class that manages items in a double-linked list.
+ * If C++ could do it, this would just be a class that worked on an interface.
+ *
+ * @author Ben Gardner
+ * @license GPL v2+
+ */
+
+#ifndef LIST_MANAGER_H_INCLUDED
+#define LIST_MANAGER_H_INCLUDED
+
+/*
+ * TODO: why do we provide this template class? can't we use
+ * a double linked list std::deque from the standard library ?
+ */
+/**
+ * A simple list manager for a double-linked list.
+ * Class T must define 'next' and 'prev', which must be pointers to type T.
+ */
+template<class T>
+class ListManager
+{
+protected:
+ T *first; //! pointer to the head of list
+ T *last; //! pointer to tail of list
+
+private:
+ // Hide copy constructor
+ ListManager(const ListManager &ref)
+ {
+ first = nullptr;
+ last = nullptr;
+ }
+
+public:
+ ListManager()
+ {
+ first = nullptr;
+ last = nullptr;
+ }
+
+
+ /**
+ * @brief return the first element of the linked list
+ *
+ * @return pointer to first element or nullptr if list is empty
+ */
+ T *GetHead() const
+ {
+ return(first);
+ }
+
+
+ /**
+ * @brief return the last element of the linked list
+ *
+ * @return pointer to last element or nullptr if list is empty
+ */
+ T *GetTail() const
+ {
+ return(last);
+ }
+
+
+ /**
+ * @brief return the next element of the linked list
+ *
+ * @param[in] ref pointer to current list element
+ *
+ * @return pointer to next element or nullptr if no next element exists
+ */
+ T *GetNext(const T *ref) const
+ {
+ return((ref != nullptr) ? ref->next : nullptr);
+ }
+
+
+ /**
+ * @brief return the previous element of the linked list
+ *
+ * @param[in] ref pointer to current list element
+ *
+ * @return pointer to previous element or nullptr if no previous element exists
+ */
+ T *GetPrev(const T *ref) const
+ {
+ return((ref != nullptr) ? ref->prev : nullptr);
+ }
+
+
+ /**
+ * @brief remove an element from a linked list
+ *
+ * @param[in] obj list element to remove
+ */
+ void Pop(T *obj)
+ {
+ if (obj != nullptr)
+ {
+ if (first == obj)
+ {
+ first = obj->next;
+ }
+
+ if (last == obj)
+ {
+ last = obj->prev;
+ }
+
+ if (obj->next != nullptr)
+ {
+ obj->next->prev = obj->prev;
+ }
+
+ if (obj->prev != nullptr)
+ {
+ obj->prev->next = obj->next;
+ }
+ obj->next = nullptr;
+ obj->prev = nullptr;
+ }
+ }
+
+
+ //! swap two elements of a list
+ void Swap(T *obj1, T *obj2)
+ {
+ if ( obj1 != nullptr
+ && obj2 != nullptr)
+ {
+ if (obj1->prev == obj2)
+ {
+ Pop(obj1);
+ AddBefore(obj1, obj2);
+ }
+ else if (obj2->prev == obj1)
+ {
+ Pop(obj2);
+ AddBefore(obj2, obj1);
+ }
+ else
+ {
+ T *prev1 = obj1->prev;
+ Pop(obj1);
+
+ T *prev2 = obj2->prev;
+ Pop(obj2);
+
+ AddAfter(obj1, prev2);
+ AddAfter(obj2, prev1);
+ }
+ }
+ }
+
+
+ /**
+ * @brief add a new element after a reference position in a list
+ *
+ * @param obj new element to add to list
+ * @param ref chunk after which to insert new object
+ */
+ void AddAfter(T *obj, T *ref)
+ {
+ if ( obj != nullptr
+ && ref != nullptr)
+ {
+ Pop(obj); // TODO: is this necessary?
+ obj->next = ref->next;
+ obj->prev = ref;
+
+ if (ref->next != nullptr)
+ {
+ ref->next->prev = obj;
+ }
+ else
+ {
+ last = obj;
+ }
+ ref->next = obj;
+ }
+ }
+
+
+ /**
+ * @brief add a new element before a reference position in a list
+ *
+ * @param obj new element to add to list
+ * @param ref chunk before to insert new object
+ */
+ void AddBefore(T *obj, T *ref)
+ {
+ if ( obj != nullptr
+ && ref != nullptr)
+ {
+ Pop(obj);
+ obj->next = ref;
+ obj->prev = ref->prev;
+
+ if (ref->prev != nullptr)
+ {
+ ref->prev->next = obj;
+ }
+ else
+ {
+ first = obj;
+ }
+ ref->prev = obj;
+ }
+ }
+
+
+ /**
+ * @brief add a new element to the tail of a lis
+ *
+ * @param obj new element to add to the list
+ */
+ void AddTail(T *obj)
+ {
+ obj->next = nullptr;
+ obj->prev = last;
+
+ if (last == nullptr)
+ {
+ last = obj;
+ first = obj;
+ }
+ else
+ {
+ last->next = obj;
+ }
+ last = obj;
+ }
+
+
+ /**
+ * @brief add a new element to the head of a list
+ *
+ * @param obj new element to add to the list
+ */
+ void AddHead(T *obj)
+ {
+ obj->next = first;
+ obj->prev = nullptr;
+
+ if (first == nullptr)
+ {
+ last = obj;
+ first = obj;
+ }
+ else
+ {
+ first->prev = obj;
+ }
+ first = obj;
+ }
+};
+
+
+#endif /* LIST_MANAGER_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/ParseFrame.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/ParseFrame.cpp
new file mode 100644
index 00000000..dc742741
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/ParseFrame.cpp
@@ -0,0 +1,347 @@
+/**
+ * @file ParseFrame.cpp
+ *
+ * Container that holds data needed for indenting and brace parsing
+ *
+ * @author Daniel Chumak
+ * @license GPL v2+
+ */
+
+#include "ParseFrame.h"
+
+#include "chunk.h"
+#include "uncrustify.h"
+
+#include <stdexcept> // to get std::logic_error
+
+
+using std::string;
+using std::to_string;
+using std::logic_error;
+using std::invalid_argument;
+
+using ContainerType = paren_stack_entry_t;
+using Container = std::vector<ContainerType>;
+
+
+//! amount of elements for which memory is going to be pre-initialized
+static constexpr const int CONTAINER_INIT_SIZE = 16;
+
+
+static ContainerType genDummy()
+{
+ ContainerType tmp_dummy{};
+
+ tmp_dummy.indent = 1;
+ tmp_dummy.indent_tmp = 1;
+ tmp_dummy.indent_tab = 1;
+ tmp_dummy.type = CT_EOF;
+
+ return(tmp_dummy);
+}
+
+
+void ParseFrame::clear()
+{
+ last_poped = genDummy();
+
+ pse = Container{};
+ pse.reserve(CONTAINER_INIT_SIZE);
+ pse.push_back(genDummy());
+
+ ref_no = 0;
+ level = 0;
+ brace_level = 0;
+ pp_level = 0;
+ sparen_count = 0;
+ paren_count = 0;
+ in_ifdef = E_Token::CT_NONE;
+ stmt_count = 0;
+ expr_count = 0;
+}
+
+
+ParseFrame::ParseFrame()
+{
+ ParseFrame::clear();
+}
+
+
+bool ParseFrame::empty() const
+{
+ // always at least one (dummy) element inside pse guaranteed
+ return(false);
+// return(pse.empty());
+}
+
+
+ContainerType &ParseFrame::at(size_t idx)
+{
+ return(pse.at(idx));
+}
+
+
+const ContainerType &ParseFrame::at(size_t idx) const
+{
+ return(pse.at(idx));
+}
+
+
+ContainerType &ParseFrame::prev(size_t idx)
+{
+ LOG_FUNC_ENTRY();
+
+ if (idx == 0)
+ {
+ throw invalid_argument(string(__FILE__) + ":" + to_string(__LINE__)
+ + " idx can't be zero");
+ }
+
+ if (idx >= pse.size())
+ {
+ LOG_FMT(LINDPSE, "%s(%d): idx is %zu, size is %zu\n",
+ __func__, __LINE__, idx, pse.size());
+ throw invalid_argument(string(__FILE__) + ":" + to_string(__LINE__)
+ + " idx can't be >= size()");
+ }
+ return(*std::prev(std::end(pse), idx + 1));
+}
+
+
+const ContainerType &ParseFrame::prev(size_t idx) const
+{
+ LOG_FUNC_ENTRY();
+
+ if ( idx == 0
+ || idx >= pse.size())
+ {
+ throw invalid_argument(string(__FILE__) + ":" + to_string(__LINE__)
+ + " idx can't be zero or >= size()");
+ }
+ return(*std::prev(std::end(pse), idx + 1));
+}
+
+
+ContainerType &ParseFrame::top()
+{
+ // always at least one (dummy) element inside pse guaranteed
+// if (pse.empty())
+// {
+// throw logic_error(string(__FILE__) + ":" + to_string(__LINE__)
+// + " called top on an empty stack");
+// }
+ return(*std::prev(std::end(pse)));
+}
+
+
+const ContainerType &ParseFrame::top() const
+{
+ // always at least one (dummy) element inside pse guaranteed
+// if (pse.empty())
+// {
+// throw logic_error(string(__FILE__) + ":" + to_string(__LINE__)
+// + " called top on an empty stack");
+// }
+ return(*std::prev(std::end(pse)));
+}
+
+
+void ParseFrame::push(std::nullptr_t, brace_stage_e stage)
+{
+ static Chunk dummy;
+
+ push(&dummy, __func__, __LINE__, stage);
+ top().pc = nullptr;
+}
+
+
+void ParseFrame::push(Chunk *pc, const char *func, int line, brace_stage_e stage)
+{
+ LOG_FUNC_ENTRY();
+
+ ContainerType new_entry = {};
+
+ new_entry.type = pc->type;
+ new_entry.level = pc->level;
+ new_entry.open_line = pc->orig_line;
+ new_entry.open_colu = pc->orig_col;
+ new_entry.pc = pc;
+
+ new_entry.indent_tab = top().indent_tab;
+ new_entry.indent_cont = top().indent_cont;
+ new_entry.stage = stage;
+
+ new_entry.in_preproc = pc->flags.test(PCF_IN_PREPROC);
+ new_entry.non_vardef = false;
+ new_entry.ip = top().ip;
+ new_entry.pop_pc = nullptr;
+
+ pse.push_back(new_entry);
+
+// uncomment the line below to get the address of the pse
+// #define DEBUG_PUSH_POP
+#ifdef DEBUG_PUSH_POP
+ LOG_FMT(LINDPSE, "ParseFrame::push(%s:%d) Add is %4zu: orig_line is %4zu, orig_col is %4zu, type is %12s, "
+ "brace_level is %2zu, level is %2zu, pse_tos: %2zu -> %2zu\n",
+ func, line, (size_t)this, pc->orig_line, pc->orig_col,
+ get_token_name(pc->type), pc->brace_level, pc->level,
+ (pse.size() - 2), (pse.size() - 1));
+#else /* DEBUG_PUSH_POP */
+ LOG_FMT(LINDPSE, "ParseFrame::push(%s:%d): orig_line is %4zu, orig_col is %4zu, type is %12s, "
+ "brace_level is %2zu, level is %2zu, pse_tos: %2zu -> %2zu\n",
+ func, line, pc->orig_line, pc->orig_col,
+ get_token_name(pc->type), pc->brace_level, pc->level,
+ (pse.size() - 2), (pse.size() - 1));
+#endif /* DEBUG_PUSH_POP */
+}
+
+
+void ParseFrame::pop(const char *func, int line, Chunk *pc)
+{
+ LOG_FUNC_ENTRY();
+
+ // always at least one (dummy) element inside pse guaranteed
+// if (pse.empty())
+// {
+// throw logic_error(string(__FILE__) + ":" + to_string(__LINE__)
+// + "the stack index is already zero");
+// }
+
+ if ( pc->type == CT_PAREN_CLOSE
+ || pc->type == CT_BRACE_CLOSE
+ || pc->type == CT_VBRACE_CLOSE
+ || pc->type == CT_FPAREN_CLOSE
+ || pc->type == CT_LPAREN_CLOSE
+ || pc->type == CT_SPAREN_CLOSE
+ || pc->type == CT_CLASS_COLON
+ || pc->type == CT_ANGLE_CLOSE
+ || pc->type == CT_SEMICOLON
+ || pc->type == CT_SQUARE_CLOSE)
+ {
+ LOG_FMT(LINDPSE, "ParseFrame::pop (%s:%d): orig_line is %4zu, orig_col is %4zu, type is %12s, pushed with\n",
+ func, line, pc->orig_line, pc->orig_col, get_token_name(pc->type));
+ }
+ else if ( pc->type == CT_ACCESS
+ || pc->type == CT_ASSIGN
+ || pc->type == CT_BRACE_OPEN
+ || pc->type == CT_BOOL
+ || pc->type == CT_CASE
+ || pc->type == CT_COMMA
+ || pc->type == CT_COMMENT
+ || pc->type == CT_COMMENT_CPP
+ || pc->type == CT_COMMENT_MULTI
+ || pc->type == CT_COND_COLON
+ || pc->type == CT_FPAREN_OPEN
+ || pc->type == CT_PAREN_OPEN
+ || pc->type == CT_TPAREN_OPEN
+ || pc->type == CT_MACRO_CLOSE
+ || pc->type == CT_MACRO_OPEN
+ || pc->type == CT_NEWLINE
+ || pc->type == CT_NONE
+ || pc->type == CT_OC_END
+ || pc->type == CT_OC_MSG_NAME
+ || pc->type == CT_OC_SCOPE
+ || pc->type == CT_PREPROC
+ || pc->type == CT_SQUARE_OPEN
+ || pc->type == CT_SQL_END
+ || pc->type == CT_TYPEDEF
+ || pc->type == CT_VSEMICOLON
+ || pc->type == CT_WORD)
+ {
+ LOG_FMT(LINDPSE, "ParseFrame::pop (%s:%d): orig_line is %4zu, orig_col is %4zu, type is %12s, ++++++++++++++++++++++++++\n",
+ func, line, pc->orig_line, pc->orig_col, get_token_name(pc->type));
+ }
+ else
+ {
+ LOG_FMT(LINDPSE, "ParseFrame::pop (%s:%d): orig_line is %4zu, orig_col is %4zu, type is %12s, *** Software error ***\n",
+ func, line, pc->orig_line, pc->orig_col, get_token_name(pc->type));
+ log_flush(true);
+ exit(EX_SOFTWARE);
+ }
+#ifdef DEBUG_PUSH_POP
+ LOG_FMT(LINDPSE, "ParseFrame::pop (%s:%d) Add is %4zu: open_line is %4zu, clos_col is %4zu, type is %12s, "
+ "cpd.level is %2d, level is %2zu, pse_tos: %2zu -> %2zu\n",
+ func, line, (size_t)this, pse.back().open_line, pse.back().open_colu,
+ get_token_name(pse.back().type), cpd.pp_level, pse.back().level,
+ (pse.size() - 1), (pse.size() - 2));
+#else /* DEBUG_PUSH_POP */
+ LOG_FMT(LINDPSE, "ParseFrame::pop (%s:%d): open_line is %4zu, clos_col is %4zu, type is %12s, "
+ "cpd.level is %2d, level is %2zu, pse_tos: %2zu -> %2zu\n",
+ func, line, pse.back().open_line, pse.back().open_colu,
+ get_token_name(pse.back().type), cpd.pp_level, pse.back().level,
+ (pse.size() - 1), (pse.size() - 2));
+#endif /* DEBUG_PUSH_POP */
+
+ last_poped = *std::prev(std::end(pse));
+
+ if (pse.size() == 1)
+ {
+ *std::begin(pse) = genDummy();
+ }
+ else
+ {
+ pse.pop_back();
+ }
+} // ParseFrame::pop
+
+
+size_t ParseFrame::size() const
+{
+ // always at least one (dummy) element inside pse guaranteed
+ return(pse.size());
+}
+
+
+const paren_stack_entry_t &ParseFrame::poped() const
+{
+ return(last_poped);
+}
+
+
+// TODO C++14: see abstract versions: std::rend, std::cend, std::crend ...
+ParseFrame::iterator ParseFrame::begin()
+{
+ return(std::begin(pse));
+}
+
+
+ParseFrame::const_iterator ParseFrame::begin() const
+{
+ return(std::begin(pse));
+}
+
+
+ParseFrame::reverse_iterator ParseFrame::rbegin()
+{
+ return(pse.rbegin());
+}
+
+
+ParseFrame::const_reverse_iterator ParseFrame::rbegin() const
+{
+ return(pse.rbegin());
+}
+
+
+ParseFrame::iterator ParseFrame::end()
+{
+ return(std::end(pse));
+}
+
+
+ParseFrame::const_iterator ParseFrame::end() const
+{
+ return(std::end(pse));
+}
+
+
+ParseFrame::reverse_iterator ParseFrame::rend()
+{
+ return(pse.rend());
+}
+
+
+ParseFrame::const_reverse_iterator ParseFrame::rend() const
+{
+ return(pse.rend());
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/ParseFrame.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/ParseFrame.h
new file mode 100644
index 00000000..59d1090e
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/ParseFrame.h
@@ -0,0 +1,99 @@
+/**
+ * @file ParseFrame.h
+ *
+ * Container that holds data needed for indenting and brace parsing
+ *
+ * @author Daniel Chumak
+ * @license GPL v2+
+ */
+
+#ifndef SRC_PARSEFRAME_H_
+#define SRC_PARSEFRAME_H_
+
+#include "uncrustify_types.h"
+
+#include <memory>
+
+
+//! Structure for counting nested level
+struct paren_stack_entry_t
+{
+ E_Token type; //! the type that opened the entry
+ size_t level; //! Level of opening type
+ size_t open_line; //! line that open symbol is on, only for logging purposes
+ size_t open_colu; //! column that open symbol is on, only for logging purposes
+ Chunk *pc; //! Chunk that opened the level, TODO: make const
+ size_t brace_indent; //! indent for braces - may not relate to indent
+ size_t indent; //! indent level (depends on use)
+ size_t indent_tmp; //! temporary indent level (depends on use)
+ size_t indent_tab; //! the 'tab' indent (always <= real column)
+ bool indent_cont; //! indent_continue was applied
+ E_Token parent; //! if, for, function, etc
+ brace_stage_e stage; //! used to check progression of complex statements.
+ bool in_preproc; //! whether this was created in a preprocessor
+ size_t ns_cnt; //! Number of consecutive namespace levels
+ bool non_vardef; //! Hit a non-vardef line
+ indent_ptr_t ip;
+ Chunk *pop_pc;
+};
+
+class ParseFrame
+{
+private:
+ std::vector<paren_stack_entry_t> pse;
+ paren_stack_entry_t last_poped;
+
+ void clear();
+
+public:
+ size_t ref_no;
+ size_t level; //! level of parens/square/angle/brace
+ size_t brace_level; //! level of brace/vbrace
+ size_t pp_level; //! level of preproc #if stuff
+ size_t sparen_count;
+ size_t paren_count;
+ E_Token in_ifdef;
+ size_t stmt_count;
+ size_t expr_count;
+
+
+ ParseFrame();
+ virtual ~ParseFrame() = default;
+
+ bool empty() const;
+
+ paren_stack_entry_t &at(size_t idx);
+ const paren_stack_entry_t &at(size_t idx) const;
+
+ paren_stack_entry_t &prev(size_t idx = 1);
+ const paren_stack_entry_t &prev(size_t idx = 1) const;
+
+ paren_stack_entry_t &top();
+ const paren_stack_entry_t &top() const;
+
+ const paren_stack_entry_t &poped() const;
+
+ void push(Chunk *pc, const char *func, int line, brace_stage_e stage = brace_stage_e::NONE);
+ void push(std::nullptr_t, brace_stage_e stage = brace_stage_e::NONE);
+ void pop(const char *func, int line, Chunk *pc);
+
+ size_t size() const;
+
+ using iterator = std::vector<paren_stack_entry_t>::iterator;
+ iterator begin();
+ iterator end();
+
+ using const_iterator = std::vector<paren_stack_entry_t>::const_iterator;
+ const_iterator begin() const;
+ const_iterator end() const;
+
+ using reverse_iterator = std::vector<paren_stack_entry_t>::reverse_iterator;
+ reverse_iterator rbegin();
+ reverse_iterator rend();
+
+ using const_reverse_iterator = std::vector<paren_stack_entry_t>::const_reverse_iterator;
+ const_reverse_iterator rbegin() const;
+ const_reverse_iterator rend() const;
+};
+
+#endif /* SRC_PARSEFRAME_H_ */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/add_space_table.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/add_space_table.h
index cb664d2d..cb664d2d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/add_space_table.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/add_space_table.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align.cpp
new file mode 100644
index 00000000..3ea306ed
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align.cpp
@@ -0,0 +1,231 @@
+/**
+ * @file align.cpp
+ * Does all the aligning stuff.
+ *
+ * @author Ben Gardner
+ * @author Guy Maurel since version 0.62 for uncrustify4Qt
+ * October 2015, 2016
+ * @license GPL v2+
+ */
+
+#include "align.h"
+
+#include "align_asm_colon.h"
+#include "align_assign.h"
+#include "align_braced_init_list.h"
+#include "align_eigen_comma_init.h"
+#include "align_func_params.h"
+#include "align_func_proto.h"
+#include "align_init_brace.h"
+#include "align_left_shift.h"
+#include "align_oc_decl_colon.h"
+#include "align_oc_msg_colons.h"
+#include "align_oc_msg_spec.h"
+#include "align_preprocessor.h"
+#include "align_same_func_call_params.h"
+#include "align_stack.h"
+#include "align_struct_initializers.h"
+#include "align_trailing_comments.h"
+#include "align_typedefs.h"
+#include "align_var_def_brace.h"
+#include "log_rules.h"
+#include "quick_align_again.h"
+
+constexpr static auto LCURRENT = LALIGN;
+
+using namespace uncrustify;
+
+
+/*
+ * Here are the items aligned:
+ *
+ * - enum value assignments
+ * enum {
+ * cat = 1,
+ * fred = 2,
+ * };
+ *
+ * - struct/union variable & bit definitions
+ * struct foo {
+ * char cat;
+ * int id : 5;
+ * int name_len : 6;
+ * int height : 12;
+ * };
+ *
+ * - variable definitions & assignments in normal code
+ * const char *cat = "feline";
+ * int id = 4;
+ * a = 5;
+ * bat = 14;
+ *
+ * - simple array initializers
+ * int a[] = {
+ * 1, 2, 3, 4, 5,
+ * 6, 7, 8, 9, 10
+ * };
+ *
+ * - c99 array initializers
+ * const char *name[] = {
+ * [FRED] = "fred",
+ * [JOE] = "joe",
+ * [PETER] = "peter",
+ * };
+ * struct foo b[] = {
+ * { .id = 1, .name = "text 1" },
+ * { .id = 567, .name = "text 2" },
+ * };
+ * struct foo_t bars[] =
+ * {
+ * [0] = { .name = "bar",
+ * .age = 21 },
+ * [1] = { .name = "barley",
+ * .age = 55 },
+ * };
+ *
+ * - compact array initializers
+ * struct foo b[] = {
+ * { 3, "dog" }, { 6, "spider" },
+ * { 8, "elephant" }, { 3, "cat" },
+ * };
+ *
+ * - multiline array initializers (2nd line indented, not aligned)
+ * struct foo b[] = {
+ * { AD_NOT_ALLOWED, "Sorry, you failed to guess the password.",
+ * "Try again?", "Yes", "No" },
+ * { AD_SW_ERROR, "A software error has occured.", "Bye!", NULL, NULL },
+ * };
+ *
+ * - Trailing comments
+ *
+ * - Back-slash newline groups
+ *
+ * - Function prototypes
+ * int foo();
+ * void bar();
+ *
+ * - Preprocessors
+ * #define FOO_VAL 15
+ * #define MAX_TIMEOUT 60
+ * #define FOO(x) ((x) * 65)
+ *
+ * - typedefs
+ * typedef uint8_t BYTE;
+ * typedef int32_t INT32;
+ * typedef uint32_t UINT32;
+ */
+void align_all(void)
+{
+ LOG_FUNC_ENTRY();
+
+ log_rule_B("align_typedef_span");
+
+ if (options::align_typedef_span() > 0)
+ {
+ align_typedefs(options::align_typedef_span());
+ }
+ log_rule_B("align_left_shift");
+
+ if (options::align_left_shift())
+ {
+ align_left_shift();
+ }
+ log_rule_B("align_eigen_comma_init");
+
+ if (options::align_eigen_comma_init())
+ {
+ align_eigen_comma_init();
+ }
+ log_rule_B("align_oc_msg_colon_span");
+
+ if (options::align_oc_msg_colon_span() > 0)
+ {
+ align_oc_msg_colons();
+ }
+ // Align variable definitions
+ log_rule_B("align_var_def_span");
+ log_rule_B("align_var_struct_span");
+ log_rule_B("align_var_class_span");
+
+ if ( (options::align_var_def_span() > 0)
+ || (options::align_var_struct_span() > 0)
+ || (options::align_var_class_span() > 0))
+ {
+ align_var_def_brace(Chunk::GetHead(), options::align_var_def_span(), nullptr);
+ }
+ // Align assignments
+ log_rule_B("align_enum_equ_span");
+ log_rule_B("align_assign_span");
+ log_rule_B("align_assign_thresh");
+
+ if ( (options::align_enum_equ_span() > 0)
+ || (options::align_assign_span() > 0))
+ {
+ align_assign(Chunk::GetHead(),
+ options::align_assign_span(),
+ options::align_assign_thresh(),
+ nullptr);
+ }
+
+ if ( (options::align_braced_init_list_span() > 0) // Issue #750
+ || (options::align_braced_init_list_thresh() > 0))
+ {
+ align_braced_init_list(Chunk::GetHead(),
+ options::align_braced_init_list_span(),
+ options::align_braced_init_list_thresh(),
+ nullptr);
+ }
+ // Align structure initializers
+ log_rule_B("align_struct_init_span");
+
+ if (options::align_struct_init_span() > 0)
+ {
+ align_struct_initializers();
+ }
+ // Align function prototypes
+ log_rule_B("align_func_proto_span");
+ log_rule_B("align_mix_var_proto");
+
+ if ( (options::align_func_proto_span() > 0)
+ && !options::align_mix_var_proto())
+ {
+ align_func_proto(options::align_func_proto_span());
+ }
+ // Align function prototypes
+ log_rule_B("align_oc_msg_spec_span");
+
+ if (options::align_oc_msg_spec_span() > 0)
+ {
+ align_oc_msg_spec(options::align_oc_msg_spec_span());
+ }
+ // Align OC colons
+ log_rule_B("align_oc_decl_colon");
+
+ if (options::align_oc_decl_colon())
+ {
+ align_oc_decl_colon();
+ }
+ log_rule_B("align_asm_colon");
+
+ if (options::align_asm_colon())
+ {
+ align_asm_colon();
+ }
+ // Align variable definitions in function prototypes
+ log_rule_B("align_func_params");
+ log_rule_B("align_func_params_span");
+
+ if ( options::align_func_params()
+ || options::align_func_params_span() > 0)
+ {
+ align_func_params();
+ }
+ log_rule_B("align_same_func_call_params");
+
+ if (options::align_same_func_call_params())
+ {
+ align_same_func_call_params();
+ }
+ // Just in case something was aligned out of order... do it again
+ quick_align_again();
+} // align_all
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align.h
index 110a2c86..110a2c86 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_add.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_add.cpp
new file mode 100644
index 00000000..6fe3191d
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_add.cpp
@@ -0,0 +1,58 @@
+/**
+ * @file align_add.cpp
+ *
+ * @author Guy Maurel
+ * split from align.cpp
+ * @author Ben Gardner
+ * @license GPL v2+
+ */
+
+#include "align_add.h"
+#include "uncrustify.h"
+
+
+void align_add(ChunkStack &cs, Chunk *pc, size_t &max_col)
+{
+ LOG_FUNC_ENTRY();
+
+ size_t min_col;
+ Chunk *prev = Chunk::NullChunkPtr;
+
+ if (pc != nullptr)
+ {
+ prev = pc->GetPrev();
+ }
+
+ if ( prev->IsNullChunk()
+ || chunk_is_newline(prev))
+ {
+ min_col = 1;
+ LOG_FMT(LALADD, "%s(%d): pc->orig_line=%zu, pc->col=%zu max_col=%zu min_col=%zu\n",
+ __func__, __LINE__, pc->orig_line, pc->column, max_col, min_col);
+ }
+ else
+ {
+ if (chunk_is_token(prev, CT_COMMENT_MULTI))
+ {
+ min_col = prev->orig_col_end + 1;
+ }
+ else
+ {
+ min_col = prev->column + prev->Len() + 1;
+ }
+ LOG_FMT(LALADD, "%s(%d): pc->orig_line=%zu, pc->col=%zu max_col=%zu min_col=%zu multi:%s prev->col=%zu prev->Len()=%zu %s\n",
+ __func__, __LINE__, pc->orig_line, pc->column, max_col, min_col, (chunk_is_token(prev, CT_COMMENT_MULTI)) ? "Y" : "N",
+ (chunk_is_token(prev, CT_COMMENT_MULTI)) ? prev->orig_col_end : (UINT32)prev->column, prev->Len(), get_token_name(prev->type));
+ }
+
+ if (cs.Empty())
+ {
+ max_col = 0;
+ }
+ cs.Push_Back(pc);
+
+ if (min_col > max_col)
+ {
+ max_col = min_col;
+ }
+} // align_add
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_add.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_add.h
new file mode 100644
index 00000000..e178b5bd
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_add.h
@@ -0,0 +1,18 @@
+/**
+ * @file align_add.h
+ *
+ * @author Guy Maurel
+ * split from align.cpp
+ * @author Ben Gardner
+ * @license GPL v2+
+ */
+
+#ifndef ALIGN_ADD_H_INCLUDED
+#define ALIGN_ADD_H_INCLUDED
+
+#include "chunk.h"
+#include "ChunkStack.h"
+
+void align_add(ChunkStack &cs, Chunk *pc, size_t &max_col);
+
+#endif /* ALIGN_ADD_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_asm_colon.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_asm_colon.cpp
new file mode 100644
index 00000000..a04121b2
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_asm_colon.cpp
@@ -0,0 +1,62 @@
+/**
+ * @file align_asm_colon.cpp
+ *
+ * @author Guy Maurel
+ * split from align.cpp
+ * @author Ben Gardner
+ * @license GPL v2+
+ */
+
+#include "align_asm_colon.h"
+
+#include "align_stack.h"
+#include "chunk.h"
+
+
+void align_asm_colon(void)
+{
+ LOG_FUNC_ENTRY();
+
+ bool did_nl;
+ AlignStack cas; // for the colons
+
+ cas.Start(4);
+
+ Chunk *pc = Chunk::GetHead();
+
+ while (pc->IsNotNullChunk())
+ {
+ if (chunk_is_not_token(pc, CT_ASM_COLON))
+ {
+ pc = pc->GetNext();
+ continue;
+ }
+ cas.Reset();
+
+ pc = pc->GetNextNcNnl(E_Scope::PREPROC);
+ size_t level = pc ? pc->level : 0;
+ did_nl = true;
+
+ while ( pc->IsNotNullChunk()
+ && pc->level >= level)
+ {
+ if (chunk_is_newline(pc))
+ {
+ cas.NewLines(pc->nl_count);
+ did_nl = true;
+ }
+ else if (chunk_is_token(pc, CT_ASM_COLON))
+ {
+ cas.Flush();
+ did_nl = true;
+ }
+ else if (did_nl)
+ {
+ did_nl = false;
+ cas.Add(pc);
+ }
+ pc = pc->GetNextNc(E_Scope::PREPROC);
+ }
+ cas.End();
+ }
+} // align_asm_colon
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_asm_colon.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_asm_colon.h
index 25704404..25704404 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_asm_colon.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_asm_colon.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_assign.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_assign.cpp
new file mode 100644
index 00000000..cd08e53f
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_assign.cpp
@@ -0,0 +1,305 @@
+/**
+ * @file align_assign.cpp
+ *
+ * @author Guy Maurel
+ * split from align.cpp
+ * @author Ben Gardner
+ * @license GPL v2+
+ */
+
+#include "align_assign.h"
+
+#include "align_stack.h"
+#include "log_rules.h"
+
+constexpr static auto LCURRENT = LALASS;
+
+using namespace uncrustify;
+
+
+Chunk *align_assign(Chunk *first, size_t span, size_t thresh, size_t *p_nl_count)
+{
+ LOG_FUNC_ENTRY();
+
+ if ( first == nullptr
+ || first->IsNullChunk())
+ {
+ // coveralls will complain here. There are no example for that.
+ // see https://en.wikipedia.org/wiki/Robustness_principle
+ return(nullptr);
+ }
+ size_t my_level = first->level;
+
+ char copy[1000];
+
+ LOG_FMT(LALASS, "%s(%d): [my_level is %zu]: start checking with '%s', on orig_line %zu, span is %zu, thresh is %zu\n",
+ __func__, __LINE__, my_level, first->ElidedText(copy), first->orig_line, span, thresh);
+
+ // If we are aligning on a tabstop, we shouldn't right-align
+ AlignStack as; // regular assigns
+
+ as.Start(span, thresh);
+ log_rule_B("align_on_tabstop");
+ as.m_right_align = !options::align_on_tabstop();
+
+ AlignStack vdas; // variable def assigns
+
+ vdas.Start(span, thresh);
+ vdas.m_right_align = as.m_right_align;
+
+ std::deque<AlignStack> fcnDefault(1);
+
+ fcnDefault.back().Start(span, thresh);
+ fcnDefault.back().m_right_align = as.m_right_align;
+
+ AlignStack fcnProto;
+
+ fcnProto.Start(span, thresh);
+ fcnProto.m_right_align = as.m_right_align;
+
+ size_t var_def_cnt = 0;
+ size_t equ_count = 0;
+ size_t fcn_idx = 0;
+ size_t tmp;
+ Chunk *pc = first;
+
+ while ( pc != nullptr
+ && pc->IsNotNullChunk())
+ {
+ LOG_FMT(LALASS, "%s(%d): orig_line is %zu, check pc->Text() '%s', type is %s, parent_type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->ElidedText(copy), get_token_name(pc->type), get_token_name(get_chunk_parent_type(pc)));
+
+ // Don't check inside SPAREN, PAREN or SQUARE groups
+ if ( chunk_is_token(pc, CT_SPAREN_OPEN)
+ // || chunk_is_token(pc, CT_FPAREN_OPEN) Issue #1340
+ || chunk_is_token(pc, CT_SQUARE_OPEN)
+ || chunk_is_token(pc, CT_PAREN_OPEN))
+ {
+ LOG_FMT(LALASS, "%s(%d): Don't check inside SPAREN, PAREN or SQUARE groups, type is %s\n",
+ __func__, __LINE__, get_token_name(pc->type));
+ tmp = pc->orig_line;
+ pc = chunk_skip_to_match(pc);
+
+ if (pc != nullptr)
+ {
+ as.NewLines(pc->orig_line - tmp);
+ vdas.NewLines(pc->orig_line - tmp);
+
+ if (pc->orig_line != tmp)
+ {
+ fcn_idx = 0;
+
+ for (auto &fcn : fcnDefault)
+ {
+ fcn.NewLines(pc->orig_line - tmp);
+ }
+ }
+ fcnProto.NewLines(pc->orig_line - tmp);
+ }
+ continue;
+ }
+
+ // Recurse if a brace set is found
+ if ( ( chunk_is_token(pc, CT_BRACE_OPEN)
+ || chunk_is_token(pc, CT_VBRACE_OPEN))
+ && !(get_chunk_parent_type(pc) == CT_BRACED_INIT_LIST))
+ {
+ size_t myspan;
+ size_t mythresh;
+
+ size_t sub_nl_count = 0;
+
+ if (get_chunk_parent_type(pc) == CT_ENUM)
+ {
+ log_rule_B("align_enum_equ_span");
+ myspan = options::align_enum_equ_span();
+ log_rule_B("align_enum_equ_thresh");
+ mythresh = options::align_enum_equ_thresh();
+ }
+ else
+ {
+ log_rule_B("align_assign_span");
+ myspan = options::align_assign_span();
+ log_rule_B("align_assign_thresh");
+ mythresh = options::align_assign_thresh();
+ }
+ pc = align_assign(pc->GetNextNcNnl(), myspan, mythresh, &sub_nl_count);
+
+ if (sub_nl_count > 0)
+ {
+ as.NewLines(sub_nl_count);
+ vdas.NewLines(sub_nl_count);
+ fcn_idx = 0;
+
+ for (auto &fcn : fcnDefault)
+ {
+ fcn.NewLines(sub_nl_count);
+ }
+
+ fcnProto.NewLines(sub_nl_count);
+
+ if (p_nl_count != nullptr)
+ {
+ *p_nl_count += sub_nl_count;
+ }
+ }
+ continue;
+ }
+
+ // Done with this brace set?
+ if ( ( chunk_is_token(pc, CT_BRACE_CLOSE)
+ || chunk_is_token(pc, CT_VBRACE_CLOSE))
+ && !(get_chunk_parent_type(pc) == CT_BRACED_INIT_LIST))
+ {
+ pc = pc->GetNext();
+ break;
+ }
+
+ if (chunk_is_newline(pc))
+ {
+ as.NewLines(pc->nl_count);
+ vdas.NewLines(pc->nl_count);
+ fcn_idx = 0;
+
+ for (auto &fcn : fcnDefault)
+ {
+ fcn.NewLines(pc->nl_count);
+ }
+
+ fcnProto.NewLines(pc->nl_count);
+
+ if (p_nl_count != nullptr)
+ {
+ *p_nl_count += pc->nl_count;
+ }
+ var_def_cnt = 0;
+ equ_count = 0;
+ }
+ else if ( pc->flags.test(PCF_VAR_DEF)
+ && !pc->flags.test(PCF_IN_CONST_ARGS) // Issue #1717
+ && !pc->flags.test(PCF_IN_FCN_DEF) // Issue #1717
+ && !pc->flags.test(PCF_IN_FCN_CALL)) // Issue #1717
+ {
+ // produces much more log output. Use it only debugging purpose
+ //LOG_FMT(LALASS, "%s(%d): log_pcf_flags pc->flags:\n ", __func__, __LINE__);
+ //log_pcf_flags(LALASS, pc->flags);
+ var_def_cnt++;
+ }
+ else if ( var_def_cnt > 1
+ && !options::align_assign_on_multi_var_defs())
+ {
+ // we hit the second variable def and align was not requested - don't look for assigns, don't align
+ LOG_FMT(LALASS, "%s(%d): multiple var defs found and alignment was not requested\n",
+ __func__, __LINE__);
+ vdas.Reset();
+ }
+ else if ( equ_count == 0 // indent only if first '=' in line
+ && !pc->flags.test(PCF_IN_TEMPLATE) // and it is not inside a template #999
+ && ( chunk_is_token(pc, CT_ASSIGN)
+ || chunk_is_token(pc, CT_ASSIGN_DEFAULT_ARG)
+ || chunk_is_token(pc, CT_ASSIGN_FUNC_PROTO)))
+ {
+ if (chunk_is_token(pc, CT_ASSIGN)) // Issue #2236
+ {
+ equ_count++;
+ }
+ LOG_FMT(LALASS, "%s(%d): align_assign_decl_func() is %d\n",
+ __func__, __LINE__, options::align_assign_decl_func());
+ // produces much more log output. Use it only debugging purpose
+ //LOG_FMT(LALASS, "%s(%d): log_pcf_flags pc->flags: ", __func__, __LINE__);
+ //log_pcf_flags(LALASS, pc->flags);
+
+ log_rule_B("align_assign_decl_func");
+
+ if ( options::align_assign_decl_func() == 0 // Align with other assignments (default)
+ && ( chunk_is_token(pc, CT_ASSIGN_DEFAULT_ARG) // Foo( int bar = 777 );
+ || chunk_is_token(pc, CT_ASSIGN_FUNC_PROTO))) // Foo( const Foo & ) = delete;
+ {
+ LOG_FMT(LALASS, "%s(%d): fcnDefault[%zu].Add on '%s' on orig_line %zu, orig_col is %zu\n",
+ __func__, __LINE__, fcn_idx, pc->Text(), pc->orig_line, pc->orig_col);
+
+ if (++fcn_idx == fcnDefault.size())
+ {
+ fcnDefault.emplace_back();
+ fcnDefault.back().Start(span, thresh);
+ fcnDefault.back().m_right_align = as.m_right_align;
+ }
+ fcnDefault[fcn_idx].Add(pc);
+ }
+ else if (options::align_assign_decl_func() == 1) // Align with each other
+ {
+ log_rule_B("align_assign_decl_func");
+
+ if (chunk_is_token(pc, CT_ASSIGN_DEFAULT_ARG)) // Foo( int bar = 777 );
+ {
+ LOG_FMT(LALASS, "%s(%d): default: fcnDefault[%zu].Add on '%s' on orig_line %zu, orig_col is %zu\n",
+ __func__, __LINE__, fcn_idx, pc->Text(), pc->orig_line, pc->orig_col);
+
+ if (++fcn_idx == fcnDefault.size())
+ {
+ fcnDefault.emplace_back();
+ fcnDefault.back().Start(span, thresh);
+ fcnDefault.back().m_right_align = as.m_right_align;
+ }
+ fcnDefault[fcn_idx].Add(pc);
+ }
+ else if (chunk_is_token(pc, CT_ASSIGN_FUNC_PROTO)) // Foo( const Foo & ) = delete;
+ {
+ LOG_FMT(LALASS, "%s(%d): proto: fcnProto.Add on '%s' on orig_line %zu, orig_col is %zu\n",
+ __func__, __LINE__, pc->Text(), pc->orig_line, pc->orig_col);
+ fcnProto.Add(pc);
+ }
+ else if (chunk_is_token(pc, CT_ASSIGN)) // Issue #2197
+ {
+ LOG_FMT(LALASS, "%s(%d): vdas.Add on '%s' on orig_line %zu, orig_col is %zu\n",
+ __func__, __LINE__, pc->Text(), pc->orig_line, pc->orig_col);
+ vdas.Add(pc);
+ }
+ }
+ else if ( options::align_assign_decl_func() == 2 // Don't align
+ && ( chunk_is_token(pc, CT_ASSIGN_DEFAULT_ARG) // Foo( int bar = 777 );
+ || chunk_is_token(pc, CT_ASSIGN_FUNC_PROTO))) // Foo( const Foo & ) = delete;
+ {
+ log_rule_B("align_assign_decl_func");
+ LOG_FMT(LALASS, "%s(%d): Don't align\n", // Issue #2236
+ __func__, __LINE__);
+ }
+ else if (var_def_cnt != 0)
+ {
+ LOG_FMT(LALASS, "%s(%d): vdas.Add on '%s' on orig_line %zu, orig_col is %zu\n",
+ __func__, __LINE__, pc->Text(), pc->orig_line, pc->orig_col);
+ vdas.Add(pc);
+ }
+ else
+ {
+ if (chunk_is_token(pc, CT_ASSIGN))
+ {
+ LOG_FMT(LALASS, "%s(%d): as.Add on '%s' on orig_line %zu, orig_col is %zu\n",
+ __func__, __LINE__, pc->Text(), pc->orig_line, pc->orig_col);
+ as.Add(pc);
+ }
+ }
+ }
+ pc = pc->GetNext();
+ }
+ as.End();
+ vdas.End();
+
+ for (auto &fcn : fcnDefault)
+ {
+ fcn.End();
+ }
+
+ fcnProto.End();
+
+ if (pc != nullptr)
+ {
+ LOG_FMT(LALASS, "%s(%d): done on '%s' on orig_line %zu\n",
+ __func__, __LINE__, pc->Text(), pc->orig_line);
+ }
+ else
+ {
+ LOG_FMT(LALASS, "%s(%d): done on NULL\n", __func__, __LINE__);
+ }
+ return(pc);
+} // align_assign
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_assign.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_assign.h
new file mode 100644
index 00000000..8a23d0d5
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_assign.h
@@ -0,0 +1,25 @@
+/**
+ * @file align_assign.h
+ *
+ * @author Guy Maurel
+ * split from align.cpp
+ * @author Ben Gardner
+ * @license GPL v2+
+ */
+
+#ifndef ALIGN_ASSIGN_H_INCLUDED
+#define ALIGN_ASSIGN_H_INCLUDED
+
+#include "chunk.h"
+
+/**
+ * Aligns all assignment operators on the same level as first, starting with
+ * first.
+ * For variable definitions, only consider the '=' for the first variable.
+ * Otherwise, only look at the first '=' on the line.
+ *
+ * @param first chunk pointing to the first assignment
+ */
+Chunk *align_assign(Chunk *first, size_t span, size_t thresh, size_t *p_nl_count);
+
+#endif /* ALIGN_ASSIGN_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_braced_init_list.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_braced_init_list.cpp
new file mode 100644
index 00000000..3fd21394
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_braced_init_list.cpp
@@ -0,0 +1,167 @@
+/**
+ * @file align_braced_init_list.cpp
+ *
+ * @author Guy Maurel
+ * @license GPL v2+
+ */
+
+#include "align_braced_init_list.h"
+
+#include "align_stack.h"
+#include "log_rules.h"
+
+constexpr static auto LCURRENT = LALASS;
+
+using namespace uncrustify;
+
+
+Chunk *align_braced_init_list(Chunk *first, size_t span, size_t thresh, size_t *p_nl_count)
+{
+ LOG_FUNC_ENTRY();
+
+ if ( first == nullptr
+ || first->IsNullChunk())
+ {
+ // coveralls will complain here. There are no example for that.
+ // see https://en.wikipedia.org/wiki/Robustness_principle
+ return(nullptr);
+ }
+ size_t my_level = first->level;
+
+ char copy[1000];
+
+ LOG_FMT(LALASS, "%s(%d): [my_level is %zu]: start checking with '%s', on orig_line %zu, span is %zu, thresh is %zu\n",
+ __func__, __LINE__, my_level, first->ElidedText(copy), first->orig_line, span, thresh);
+
+ // If we are aligning on a tabstop, we shouldn't right-align
+
+ AlignStack vdas; // variable def assigns
+
+ vdas.Start(span, thresh);
+ vdas.m_right_align = !options::align_on_tabstop();
+
+ size_t var_def_cnt = 0;
+ size_t equ_count = 0;
+ size_t tmp;
+ Chunk *pc = first;
+
+ while ( pc != nullptr
+ && pc->IsNotNullChunk())
+ {
+ LOG_FMT(LALASS, "%s(%d): orig_line is %zu, check pc->Text() '%s', type is %s, parent_type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->ElidedText(copy), get_token_name(pc->type), get_token_name(get_chunk_parent_type(pc)));
+
+ // Don't check inside SPAREN, PAREN or SQUARE groups
+ if ( chunk_is_token(pc, CT_SPAREN_OPEN)
+ || chunk_is_token(pc, CT_SQUARE_OPEN)
+ || chunk_is_token(pc, CT_PAREN_OPEN))
+ {
+ LOG_FMT(LALASS, "%s(%d)OK: Don't check inside SPAREN, PAREN or SQUARE groups, type is %s\n",
+ __func__, __LINE__, get_token_name(pc->type));
+ tmp = pc->orig_line;
+ pc = chunk_skip_to_match(pc);
+
+ if (pc != nullptr)
+ {
+ vdas.NewLines(pc->orig_line - tmp);
+ }
+ continue;
+ }
+
+ // Recurse if a brace set is found
+ if ( chunk_is_token(pc, CT_BRACE_OPEN)
+ && !(get_chunk_parent_type(pc) == CT_BRACED_INIT_LIST))
+ {
+ size_t myspan;
+ size_t mythresh;
+
+ size_t sub_nl_count = 0;
+
+ log_rule_B("align_braced_init_list_span");
+ myspan = options::align_braced_init_list_span();
+ log_rule_B("align_braced_init_list_thresh");
+ mythresh = options::align_braced_init_list_thresh();
+ pc = align_braced_init_list(pc->GetNextNcNnl(), myspan, mythresh, &sub_nl_count);
+
+ if (sub_nl_count > 0)
+ {
+ vdas.NewLines(sub_nl_count);
+
+ if (p_nl_count != nullptr)
+ {
+ *p_nl_count += sub_nl_count;
+ }
+ }
+ continue;
+ }
+
+ // Done with this brace set?
+ if ( ( chunk_is_token(pc, CT_BRACE_CLOSE)
+ || chunk_is_token(pc, CT_VBRACE_CLOSE))
+ && !(get_chunk_parent_type(pc) == CT_BRACED_INIT_LIST))
+ {
+ pc = pc->GetNext();
+ break;
+ }
+
+ if (chunk_is_newline(pc))
+ {
+ vdas.NewLines(pc->nl_count);
+
+ if (p_nl_count != nullptr)
+ {
+ *p_nl_count += pc->nl_count;
+ }
+ var_def_cnt = 0;
+ equ_count = 0;
+ }
+ else if ( pc->flags.test(PCF_VAR_DEF)
+ && !pc->flags.test(PCF_IN_CONST_ARGS) // Issue #1717
+ && !pc->flags.test(PCF_IN_FCN_DEF) // Issue #1717
+ && !pc->flags.test(PCF_IN_FCN_CALL)) // Issue #1717
+ {
+ // produces much more log output. Use it only debugging purpose
+ //LOG_FMT(LALASS, "%s(%d): log_pcf_flags pc->flags:\n ", __func__, __LINE__);
+ //log_pcf_flags(LALASS, pc->flags);
+ var_def_cnt++;
+ }
+ else if (var_def_cnt > 1)
+ {
+ // we hit the second variable def - don't look, don't align
+ vdas.Reset();
+ }
+ else if ( equ_count == 0
+ && !pc->flags.test(PCF_IN_TEMPLATE)
+ && chunk_is_token(pc, CT_BRACE_OPEN)
+ && (get_chunk_parent_type(pc) == CT_BRACED_INIT_LIST))
+
+ {
+ equ_count++;
+ LOG_FMT(LALASS, "%s(%d)OK: align_braced_init_list_span() is %d\n",
+ __func__, __LINE__, options::align_braced_init_list_span());
+ // produces much more log output. Use it only debugging purpose
+ //LOG_FMT(LALASS, "%s(%d): log_pcf_flags pc->flags: ", __func__, __LINE__);
+ //log_pcf_flags(LALASS, pc->flags);
+
+ if (var_def_cnt != 0)
+ {
+ LOG_FMT(LALASS, "%s(%d)OK: vdas.Add on '%s' on orig_line %zu, orig_col is %zu\n",
+ __func__, __LINE__, pc->Text(), pc->orig_line, pc->orig_col);
+ vdas.Add(pc);
+ }
+ }
+ pc = pc->GetNext();
+ }
+ vdas.End();
+
+ if (pc != nullptr)
+ {
+ LOG_FMT(LALASS, "%s(%d): done on '%s' on orig_line %zu\n",
+ __func__, __LINE__, pc->Text(), pc->orig_line);
+ }
+ else
+ {
+ LOG_FMT(LALASS, "%s(%d): done on NULL\n", __func__, __LINE__);
+ }
+ return(pc);
+} // align_braced_init_list
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_braced_init_list.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_braced_init_list.h
new file mode 100644
index 00000000..e29868e0
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_braced_init_list.h
@@ -0,0 +1,21 @@
+/**
+ * @file align_braced_init_list.h
+ *
+ * @author Guy Maurel
+ * @license GPL v2+
+ */
+
+#ifndef ALIGN_BRACED_INIT_LIST_H_INCLUDED
+#define ALIGN_BRACED_INIT_LIST_H_INCLUDED
+
+#include "chunk.h"
+
+/**
+ * Aligns all braced init list operators on the same level as first, starting with
+ * first.
+ *
+ * @param first chunk pointing to the first braced init list
+ */
+Chunk *align_braced_init_list(Chunk *first, size_t span, size_t thresh, size_t *p_nl_count);
+
+#endif /* ALIGN_BRACED_INIT_LIST_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_eigen_comma_init.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_eigen_comma_init.cpp
new file mode 100644
index 00000000..19b114d6
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_eigen_comma_init.cpp
@@ -0,0 +1,121 @@
+/**
+ * @file align_eigen_comma_init.cpp
+ *
+ * @author Matthew Woehlke
+ * copied/adapted from align_left_shift.cpp
+ * @author Guy Maurel
+ * @author Ben Gardner
+ * @license GPL v2+
+ */
+
+#include "align_eigen_comma_init.h"
+
+#include "align_stack.h"
+#include "indent.h"
+#include "log_rules.h"
+
+constexpr static auto LCURRENT = LALIGN;
+
+using namespace uncrustify;
+
+
+void align_eigen_comma_init(void)
+{
+ LOG_FUNC_ENTRY();
+
+ Chunk *start = Chunk::NullChunkPtr;
+ AlignStack as;
+
+ as.Start(255);
+
+ Chunk *pc = Chunk::GetHead();
+
+ while (pc->IsNotNullChunk())
+ {
+ if (chunk_is_newline(pc))
+ {
+ LOG_FMT(LALIGN, "%s(%d): orig_line is %zu, <Newline>\n", __func__, __LINE__, pc->orig_line);
+ }
+ else
+ {
+ LOG_FMT(LALIGN, "%s(%d): orig_line is %zu, orig_col is %zu, pc->Text() '%s'\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text());
+ }
+
+ if ( start->IsNotNullChunk()
+ && ((pc->flags & PCF_IN_PREPROC) != (start->flags & PCF_IN_PREPROC)))
+ {
+ // a change in preproc status restarts the aligning
+ as.Flush();
+ start = Chunk::NullChunkPtr;
+ }
+ else if (chunk_is_newline(pc))
+ {
+ as.NewLines(pc->nl_count);
+ }
+ else if ( start->IsNotNullChunk()
+ && pc->level < start->level)
+ {
+ // A drop in level restarts the aligning
+ as.Flush();
+ start = Chunk::NullChunkPtr;
+ }
+ else if ( start->IsNotNullChunk()
+ && pc->level > start->level)
+ {
+ // Ignore any deeper levels when aligning
+ }
+ else if (chunk_is_token(pc, CT_SEMICOLON))
+ {
+ // A semicolon at the same level flushes
+ as.Flush();
+ start = Chunk::NullChunkPtr;
+ }
+ else if ( !pc->flags.test(PCF_IN_ENUM)
+ && !pc->flags.test(PCF_IN_TYPEDEF)
+ && chunk_is_str(pc, "<<"))
+ {
+ if (get_chunk_parent_type(pc) == CT_OPERATOR)
+ {
+ // Ignore operator<<
+ }
+ else
+ {
+ /*
+ * check if the first one is actually on a blank line and then
+ * indent it. Eg:
+ *
+ * cout
+ * << "something";
+ */
+ Chunk *prev = pc->GetPrev();
+
+ if ( prev->IsNotNullChunk()
+ && chunk_is_newline(prev))
+ {
+ log_rule_B("indent_columns");
+ indent_to_column(pc, pc->column_indent + options::indent_columns());
+ pc->column_indent = pc->column;
+ chunk_flags_set(pc, PCF_DONT_INDENT);
+ }
+ // Restart alignment
+ as.Flush();
+ as.Add(pc->GetNext());
+ start = pc;
+ }
+ }
+ else if (!as.m_aligned.Empty())
+ {
+ Chunk *prev = pc->GetPrev();
+
+ if ( chunk_is_newline(prev)
+ && chunk_is_token(pc->GetPrevNcNnl(), CT_COMMA))
+ {
+ log_rule_B("align_eigen_comma_init");
+ as.Add(pc);
+ }
+ }
+ pc = pc->GetNext();
+ }
+ as.End();
+} // align_left_shift
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_eigen_comma_init.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_eigen_comma_init.h
index 8f8ce34b..8f8ce34b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_eigen_comma_init.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_eigen_comma_init.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_func_params.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_func_params.cpp
new file mode 100644
index 00000000..fe488a10
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_func_params.cpp
@@ -0,0 +1,188 @@
+/**
+ * @file align_func_params.cpp
+ *
+ * @author Guy Maurel
+ * split from align.cpp
+ * @author Ben Gardner
+ * @license GPL v2+
+ */
+
+#include "align_func_params.h"
+
+#include "align_stack.h"
+#include "log_rules.h"
+
+#include <algorithm> // to get max
+
+constexpr static auto LCURRENT = LALIGN;
+
+using namespace uncrustify;
+
+
+Chunk *align_func_param(Chunk *start)
+{
+ LOG_FUNC_ENTRY();
+
+ LOG_FMT(LAS, "AlignStack::%s(%d): Candidate is '%s': orig_line is %zu, column is %zu, type is %s, level is %zu\n",
+ __func__, __LINE__, start->Text(), start->orig_line, start->column,
+ get_token_name(start->type), start->level);
+ // Defaults, if the align_func_params = true
+ size_t myspan = 2;
+ size_t mythresh = 0;
+ size_t mygap = 0;
+
+ // Override, if the align_func_params_span > 0
+ log_rule_B("align_func_params_span");
+
+ if (options::align_func_params_span() > 0)
+ {
+ myspan = options::align_func_params_span();
+ log_rule_B("align_func_params_thresh");
+ mythresh = options::align_func_params_thresh();
+ log_rule_B("align_func_params_gap");
+ mygap = options::align_func_params_gap();
+ }
+ const size_t HOW_MANY_AS = 16; // Issue #2921
+ AlignStack many_as[HOW_MANY_AS + 1];
+
+ size_t max_level_is = 0;
+
+ log_rule_B("align_var_def_star_style");
+ log_rule_B("align_var_def_amp_style");
+
+ for (size_t idx = 0; idx <= HOW_MANY_AS; idx++)
+ {
+ many_as[idx].Start(myspan, mythresh);
+ many_as[idx].m_gap = mygap;
+ many_as[idx].m_star_style = static_cast<AlignStack::StarStyle>(options::align_var_def_star_style());
+ many_as[idx].m_amp_style = static_cast<AlignStack::StarStyle>(options::align_var_def_amp_style());
+ }
+
+ size_t comma_count = 0;
+ size_t chunk_count = 0;
+ Chunk *pc = start;
+
+ while ((pc = pc->GetNext())->IsNotNullChunk())
+ {
+ chunk_count++;
+ LOG_FMT(LFLPAREN, "%s(%d): orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(),
+ get_token_name(pc->type));
+
+ if (chunk_is_token(pc, CT_FUNC_VAR)) // Issue #2278
+ {
+ // look after 'protect parenthesis'
+ Chunk *after = pc->GetNextNc();
+
+ if (chunk_is_token(after, CT_PAREN_CLOSE))
+ {
+ Chunk *before = after->GetPrevType(CT_PAREN_OPEN, after->level);
+
+ if (before->IsNotNullChunk())
+ {
+ // these are 'protect parenthesis'
+ // change the types and the level
+ set_chunk_type(before, CT_PPAREN_OPEN);
+ set_chunk_type(after, CT_PPAREN_CLOSE);
+ pc->level = before->level;
+ Chunk *tmp = pc->GetPrevNc();
+
+ if (chunk_is_token(tmp, CT_PTR_TYPE))
+ {
+ tmp->level = before->level;
+ }
+ }
+ }
+ }
+
+ if (chunk_is_newline(pc))
+ {
+ comma_count = 0;
+ chunk_count = 0;
+ many_as[pc->level].NewLines(pc->nl_count);
+ }
+ else if (pc->level <= start->level)
+ {
+ break;
+ }
+ else if (pc->flags.test(PCF_VAR_DEF))
+ {
+ if (chunk_count > 1)
+ {
+ if (pc->level > HOW_MANY_AS)
+ {
+ fprintf(stderr, "%s(%d): Not enought memory for Stack\n",
+ __func__, __LINE__);
+ fprintf(stderr, "%s(%d): the current maximum is %zu\n",
+ __func__, __LINE__, HOW_MANY_AS);
+ log_flush(true);
+ exit(EX_SOFTWARE);
+ }
+ max_level_is = max(max_level_is, pc->level);
+ many_as[pc->level].Add(pc);
+ }
+ }
+ else if (comma_count > 0)
+ {
+ if (!pc->IsComment())
+ {
+ comma_count = 2;
+ break;
+ }
+ }
+ else if (chunk_is_token(pc, CT_COMMA))
+ {
+ if (pc->flags.test(PCF_IN_TEMPLATE)) // Issue #2757
+ {
+ LOG_FMT(LFLPAREN, "%s(%d): comma is in template\n",
+ __func__, __LINE__);
+ }
+ else
+ {
+ Chunk *tmp_prev = pc->GetPrevNc();
+
+ if (!chunk_is_newline(tmp_prev)) // don't count leading commas
+ {
+ comma_count++;
+ LOG_FMT(LFLPAREN, "%s(%d): comma_count is %zu\n",
+ __func__, __LINE__, comma_count);
+ }
+ }
+ }
+ }
+
+ if (comma_count <= 1)
+ {
+ for (size_t idx = 1; idx <= max_level_is; idx++)
+ {
+ many_as[idx].End();
+ }
+ }
+ return(pc);
+} // align_func_param
+
+
+void align_func_params(void)
+{
+ LOG_FUNC_ENTRY();
+ Chunk *pc = Chunk::GetHead();
+
+ while ((pc = pc->GetNext())->IsNotNullChunk())
+ {
+ LOG_FMT(LFLPAREN, "%s(%d): orig_line is %zu, orig_col is %zu, Text() is '%s', parent_type is %s, parent_type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(),
+ get_token_name(pc->type), get_token_name(pc->parent_type));
+
+ if ( chunk_is_not_token(pc, CT_FPAREN_OPEN)
+ || ( get_chunk_parent_type(pc) != CT_FUNC_PROTO
+ && get_chunk_parent_type(pc) != CT_FUNC_DEF
+ && get_chunk_parent_type(pc) != CT_FUNC_CLASS_PROTO
+ && get_chunk_parent_type(pc) != CT_FUNC_CLASS_DEF
+ && get_chunk_parent_type(pc) != CT_TYPEDEF))
+ {
+ continue;
+ }
+ // We are on a open parenthesis of a prototype
+ pc = align_func_param(pc);
+ }
+} // void align_func_params
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_func_params.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_func_params.h
new file mode 100644
index 00000000..e2fbc42a
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_func_params.h
@@ -0,0 +1,19 @@
+/**
+ * @file align_func_params.h
+ *
+ * @author Guy Maurel
+ * split from align.cpp
+ * @author Ben Gardner
+ * @license GPL v2+
+ */
+
+#ifndef ALIGN_FUNC_PARAMS_H_INCLUDED
+#define ALIGN_FUNC_PARAMS_H_INCLUDED
+
+#include "chunk.h"
+
+void align_func_params(void);
+
+Chunk *align_func_param(Chunk *start);
+
+#endif /* ALIGN_FUNC_PARAMS_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_func_proto.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_func_proto.cpp
new file mode 100644
index 00000000..c4c9fa0e
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_func_proto.cpp
@@ -0,0 +1,227 @@
+/**
+ * @file align_func_proto.cpp
+ *
+ * @author Guy Maurel
+ * split from align.cpp
+ * @author Ben Gardner
+ * @license GPL v2+
+ */
+
+#include "align_func_proto.h"
+
+#include "align_stack.h"
+#include "align_tools.h"
+#include "log_rules.h"
+
+#include <algorithm> // to get max
+
+constexpr static auto LCURRENT = LALPROTO;
+
+using namespace uncrustify;
+
+
+void align_func_proto(size_t span)
+{
+ LOG_FUNC_ENTRY();
+
+ size_t myspan = span;
+ size_t mythresh = 0;
+
+ log_rule_B("align_func_proto_gap");
+ size_t mygap = options::align_func_proto_gap();
+
+ log_rule_B("align_func_proto_thresh");
+ mythresh = options::align_func_proto_thresh();
+
+ // Issue #2771
+ // we align token-1 and token-2 if:
+ // token-1->level == token-2->level
+ // and
+ // token-1->brace_level == token-2->brace_level
+ // we don't check if token-1 and token-2 are in the same block
+
+ log_rule_B("align_func_proto_star_style");
+ size_t mystar_style = options::align_func_proto_star_style();
+
+ log_rule_B("align_func_proto_amp_style");
+ size_t myamp_style = options::align_func_proto_amp_style();
+
+
+ size_t num_of_column = 1;
+ size_t num_of_row = 1;
+ AlignStack *stack_init_value = nullptr;
+
+
+ // Issue #2984
+ vector<vector<AlignStack *> > many_as;
+ // Issue #2771
+ vector<vector<AlignStack *> > many_as_brace;
+
+ // init the vector ...
+ many_as.resize(num_of_column, vector<AlignStack *>(num_of_row, stack_init_value));
+ many_as_brace.resize(num_of_column, vector<AlignStack *>(num_of_row, stack_init_value));
+
+ log_rule_B("align_single_line_brace_gap");
+ size_t mybr_gap = options::align_single_line_brace_gap();
+
+
+ bool look_bro = false;
+ Chunk *toadd;
+
+ for (Chunk *pc = Chunk::GetHead(); pc->IsNotNullChunk(); pc = pc->GetNext())
+ {
+ char copy[1000];
+ LOG_FMT(LAS, "%s(%d): orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s, level is %zu, brace_level is %zu\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->ElidedText(copy),
+ get_token_name(pc->type), pc->level, pc->brace_level);
+
+ // make the vector larger if necessary
+ if ( pc->level >= num_of_column // Issue #2960
+ || pc->brace_level >= num_of_row)
+ {
+ num_of_column = pc->level + 1;
+ num_of_row = pc->brace_level + 1;
+
+ many_as.resize(num_of_column);
+ many_as_brace.resize(num_of_column);
+
+ for (size_t i = 0; i < num_of_column; ++i)
+ {
+ many_as[i].resize(num_of_row);
+ many_as_brace[i].resize(num_of_row);
+ }
+ }
+
+ if ( chunk_is_newline(pc)
+ && !pc->flags.test(PCF_IN_FCN_CALL)) // Issue #2831
+ {
+ look_bro = false;
+ AlignStack *stack_at_l_bl = many_as.at(pc->level).at(pc->brace_level);
+
+ if (stack_at_l_bl == nullptr)
+ {
+ // get a Stack
+ stack_at_l_bl = new AlignStack();
+ // start it
+ stack_at_l_bl->Start(myspan, mythresh);
+ stack_at_l_bl->m_gap = mygap;
+ stack_at_l_bl->m_star_style = static_cast<AlignStack::StarStyle>(mystar_style);
+ stack_at_l_bl->m_amp_style = static_cast<AlignStack::StarStyle>(myamp_style);
+ // store
+ many_as.at(pc->level).at(pc->brace_level) = stack_at_l_bl;
+ }
+ stack_at_l_bl->Debug();
+
+ for (size_t idx = 0; idx < num_of_column; idx++)
+ {
+ for (size_t idx_brace = 0; idx_brace < num_of_row; idx_brace++)
+ {
+ stack_at_l_bl = many_as.at(idx).at(idx_brace);
+
+ if (stack_at_l_bl != nullptr)
+ {
+ stack_at_l_bl->NewLines(pc->nl_count);
+ }
+ }
+ }
+
+ AlignStack *stack_at_l_bl_brace = many_as_brace.at(pc->level).at(pc->brace_level);
+
+ if (stack_at_l_bl_brace == nullptr)
+ {
+ // get a Stack
+ stack_at_l_bl_brace = new AlignStack();
+ // start it
+ stack_at_l_bl_brace->Start(myspan, mythresh);
+ stack_at_l_bl_brace->m_gap = mybr_gap;
+ // store
+ many_as_brace.at(pc->level).at(pc->brace_level) = stack_at_l_bl_brace;
+ }
+ stack_at_l_bl_brace->Debug();
+ stack_at_l_bl_brace->NewLines(pc->nl_count);
+ }
+ else if ( chunk_is_token(pc, CT_FUNC_PROTO)
+ || ( chunk_is_token(pc, CT_FUNC_DEF)
+ && options::align_single_line_func()))
+ {
+ log_rule_B("align_single_line_func");
+ log_rule_B("align_on_operator");
+
+ if ( get_chunk_parent_type(pc) == CT_OPERATOR
+ && options::align_on_operator())
+ {
+ toadd = pc->GetPrevNcNnl();
+ }
+ else
+ {
+ toadd = pc;
+ }
+ Chunk *tmp = step_back_over_member(toadd);
+ LOG_FMT(LAS, "%s(%d): tmp->Text() is '%s', orig_line is %zu, orig_col is %zu, level is %zu, brace_level is %zu\n",
+ __func__, __LINE__, tmp->Text(), tmp->orig_line, tmp->orig_col,
+ tmp->level, tmp->brace_level);
+ // test the Stack
+ AlignStack *stack_at_l_bl = many_as.at(pc->level).at(pc->brace_level);
+
+ if (stack_at_l_bl == nullptr)
+ {
+ // get a Stack
+ stack_at_l_bl = new AlignStack();
+ // start it
+ stack_at_l_bl->Start(myspan, mythresh);
+ stack_at_l_bl->m_gap = mygap;
+ stack_at_l_bl->m_star_style = static_cast<AlignStack::StarStyle>(mystar_style);
+ stack_at_l_bl->m_amp_style = static_cast<AlignStack::StarStyle>(myamp_style);
+ // store
+ many_as.at(pc->level).at(pc->brace_level) = stack_at_l_bl;
+ }
+ stack_at_l_bl->Add(tmp);
+ log_rule_B("align_single_line_brace");
+ look_bro = (chunk_is_token(pc, CT_FUNC_DEF))
+ && options::align_single_line_brace();
+ }
+ else if ( look_bro
+ && chunk_is_token(pc, CT_BRACE_OPEN)
+ && pc->flags.test(PCF_ONE_LINER))
+ {
+ AlignStack *stack_at_l_bl_brace = many_as_brace.at(pc->level).at(pc->brace_level);
+
+ if (stack_at_l_bl_brace == nullptr)
+ {
+ stack_at_l_bl_brace = new AlignStack();
+ stack_at_l_bl_brace->Start(myspan, mythresh);
+ stack_at_l_bl_brace->m_gap = mybr_gap;
+ many_as_brace.at(pc->level).at(pc->brace_level) = stack_at_l_bl_brace;
+ }
+ stack_at_l_bl_brace->Debug();
+ stack_at_l_bl_brace->Add(pc);
+ look_bro = false;
+ }
+ }
+
+ LOG_FMT(LAS, "%s(%d): as\n", __func__, __LINE__);
+
+ // purge
+ for (size_t idx = 0; idx < num_of_column; idx++)
+ {
+ for (size_t idx_brace = 0; idx_brace < num_of_row; idx_brace++)
+ {
+ AlignStack *stack_at_l_bl = many_as.at(idx).at(idx_brace);
+
+ if (stack_at_l_bl != nullptr)
+ {
+ stack_at_l_bl->End();
+ delete stack_at_l_bl;
+ stack_at_l_bl = nullptr;
+ }
+ AlignStack *stack_at_l_bl_brace = many_as_brace.at(idx).at(idx_brace);
+
+ if (stack_at_l_bl_brace != nullptr)
+ {
+ stack_at_l_bl_brace->End();
+ delete stack_at_l_bl_brace;
+ stack_at_l_bl_brace = nullptr;
+ }
+ }
+ }
+} // align_func_proto
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_func_proto.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_func_proto.h
new file mode 100644
index 00000000..811020e0
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_func_proto.h
@@ -0,0 +1,18 @@
+/**
+ * @file align_func_proto.h
+ *
+ * @author Guy Maurel
+ * split from align.cpp
+ * @author Ben Gardner
+ * @license GPL v2+
+ */
+
+#ifndef ALIGN_FUNC_PROTO_H_INCLUDED
+#define ALIGN_FUNC_PROTO_H_INCLUDED
+
+#include "chunk.h"
+
+//! Aligns all function prototypes in the file.
+void align_func_proto(size_t span);
+
+#endif /* ALIGN_FUNC_PROTO_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_init_brace.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_init_brace.cpp
new file mode 100644
index 00000000..ed1d2d39
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_init_brace.cpp
@@ -0,0 +1,202 @@
+/**
+ * @file align_init_brace.cpp
+ *
+ * @author Guy Maurel
+ * split from align.cpp
+ * @author Ben Gardner
+ * @license GPL v2+
+ */
+
+#include "align_init_brace.h"
+
+#include "align_log_al.h"
+#include "align_tab_column.h"
+#include "align_tools.h"
+#include "indent.h"
+#include "log_rules.h"
+
+constexpr static auto LCURRENT = LALBR;
+
+using namespace uncrustify;
+
+
+void align_init_brace(Chunk *start)
+{
+ LOG_FUNC_ENTRY();
+
+ Chunk *num_token = nullptr;
+
+ cpd.al_cnt = 0;
+ cpd.al_c99_array = false;
+
+ LOG_FMT(LALBR, "%s(%d): start @ orig_line is %zu, orig_col is %zu\n",
+ __func__, __LINE__, start->orig_line, start->orig_col);
+
+ Chunk *pc = start->GetNextNcNnl();
+ Chunk *pcSingle = scan_ib_line(pc, true);
+
+ if ( pcSingle == nullptr
+ || ( chunk_is_token(pcSingle, CT_BRACE_CLOSE)
+ && get_chunk_parent_type(pcSingle) == CT_ASSIGN))
+ {
+ // single line - nothing to do
+ LOG_FMT(LALBR, "%s(%d): single line - nothing to do\n", __func__, __LINE__);
+ return;
+ }
+ LOG_FMT(LALBR, "%s(%d): is not a single line\n", __func__, __LINE__);
+
+ do
+ {
+ pc = scan_ib_line(pc, false);
+
+ // debug dump the current frame
+ LOG_FMT(LALBR, "%s(%d): debug dump after, orig_line is %zu\n",
+ __func__, __LINE__, pc->orig_line);
+ align_log_al(LALBR, pc->orig_line);
+
+ while (chunk_is_newline(pc))
+ {
+ pc = pc->GetNext();
+ }
+ } while ( pc != nullptr
+ && pc->IsNotNullChunk()
+ && pc->level > start->level);
+
+ // debug dump the current frame
+ align_log_al(LALBR, start->orig_line);
+
+ log_rule_B("align_on_tabstop");
+
+ if ( options::align_on_tabstop()
+ && cpd.al_cnt >= 1
+ && (cpd.al[0].type == CT_ASSIGN))
+ {
+ cpd.al[0].col = align_tab_column(cpd.al[0].col);
+ }
+ pc = start->GetNext();
+ size_t idx = 0;
+
+ do
+ {
+ Chunk *tmp;
+
+ if ( idx == 0
+ && ((tmp = skip_c99_array(pc)) != nullptr))
+ {
+ pc = tmp;
+
+ LOG_FMT(LALBR, " -%zu- skipped '[] =' to %s\n",
+ pc->orig_line, get_token_name(pc->type));
+ continue;
+ }
+ Chunk *next = pc;
+
+ if (idx < cpd.al_cnt)
+ {
+ LOG_FMT(LALBR, " (%zu) check %s vs %s -- ",
+ idx, get_token_name(pc->type), get_token_name(cpd.al[idx].type));
+
+ if (chunk_is_token(pc, cpd.al[idx].type))
+ {
+ if ( idx == 0
+ && cpd.al_c99_array)
+ {
+ Chunk *prev = pc->GetPrev();
+
+ if (chunk_is_newline(prev))
+ {
+ chunk_flags_set(pc, PCF_DONT_INDENT);
+ }
+ }
+ LOG_FMT(LALBR, " [%s] to col %zu\n", pc->Text(), cpd.al[idx].col);
+
+ if (num_token != nullptr)
+ {
+ int col_diff = pc->column - num_token->column;
+
+ reindent_line(num_token, cpd.al[idx].col - col_diff);
+ //LOG_FMT(LSYS, "-= %zu =- NUM indent [%s] col=%d diff=%d\n",
+ // num_token->orig_line,
+ // num_token->Text(), cpd.al[idx - 1].col, col_diff);
+
+ chunk_flags_set(num_token, PCF_WAS_ALIGNED);
+ num_token = nullptr;
+ }
+
+ // Comma's need to 'fall back' to the previous token
+ if (chunk_is_token(pc, CT_COMMA))
+ {
+ next = pc->GetNext();
+
+ if (!chunk_is_newline(next))
+ {
+ //LOG_FMT(LSYS, "-= %zu =- indent [%s] col=%d len=%d\n",
+ // next->orig_line,
+ // next->Text(), cpd.al[idx].col, cpd.al[idx].len);
+
+ log_rule_B("align_number_right");
+
+ if ( (idx < (cpd.al_cnt - 1))
+ && options::align_number_right()
+ && ( chunk_is_token(next, CT_NUMBER_FP)
+ || chunk_is_token(next, CT_NUMBER)
+ || chunk_is_token(next, CT_POS)
+ || chunk_is_token(next, CT_NEG)))
+ {
+ // Need to wait until the next match to indent numbers
+ num_token = next;
+ }
+ else if (idx < (cpd.al_cnt - 1))
+ {
+ LOG_FMT(LALBR, "%s(%d): idx is %zu, al_cnt is %zu, cpd.al[%zu].col is %zu, cpd.al[%zu].len is %zu\n",
+ __func__, __LINE__, idx, cpd.al_cnt, idx, cpd.al[idx].col, idx, cpd.al[idx].len);
+ reindent_line(next, cpd.al[idx].col + cpd.al[idx].len);
+ chunk_flags_set(next, PCF_WAS_ALIGNED);
+ }
+ }
+ }
+ else
+ {
+ // first item on the line
+ LOG_FMT(LALBR, "%s(%d): idx is %zu, cpd.al[%zu].col is %zu\n",
+ __func__, __LINE__, idx, idx, cpd.al[idx].col);
+ reindent_line(pc, cpd.al[idx].col);
+ chunk_flags_set(pc, PCF_WAS_ALIGNED);
+
+ // see if we need to right-align a number
+ log_rule_B("align_number_right");
+
+ if ( (idx < (cpd.al_cnt - 1))
+ && options::align_number_right())
+ {
+ next = pc->GetNext();
+
+ if ( !chunk_is_newline(next)
+ && ( chunk_is_token(next, CT_NUMBER_FP)
+ || chunk_is_token(next, CT_NUMBER)
+ || chunk_is_token(next, CT_POS)
+ || chunk_is_token(next, CT_NEG)))
+ {
+ // Need to wait until the next match to indent numbers
+ num_token = next;
+ }
+ }
+ }
+ idx++;
+ }
+ else
+ {
+ LOG_FMT(LALBR, " no match\n");
+ }
+ }
+
+ if ( chunk_is_newline(pc)
+ || chunk_is_newline(next))
+ {
+ idx = 0;
+ }
+ pc = pc->GetNext();
+ } while ( pc != nullptr
+ && pc->IsNotNullChunk()
+ && pc->level > start->level);
+} // align_init_brace
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_init_brace.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_init_brace.h
new file mode 100644
index 00000000..c749eb54
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_init_brace.h
@@ -0,0 +1,49 @@
+/**
+ * @file align_init_brace.h
+ *
+ * @author Guy Maurel
+ * split from align.cpp
+ * @author Ben Gardner
+ * @license GPL v2+
+ */
+
+#ifndef ALIGN_INIT_BRACE_H_INCLUDED
+#define ALIGN_INIT_BRACE_H_INCLUDED
+
+#include "uncrustify_types.h"
+
+/**
+ * Generically aligns on '=', '{', '(' and item after ','
+ * It scans the first line and picks up the location of those tags.
+ * It then scans subsequent lines and adjusts the column.
+ * Finally it does a second pass to align everything.
+ *
+ * Aligns all the '=' signs in structure assignments.
+ * a = {
+ * .a = 1;
+ * .type = fast;
+ * };
+ *
+ * And aligns on '{', numbers, strings, words.
+ * colors[] = {
+ * {"red", {255, 0, 0}}, {"blue", { 0, 255, 0}},
+ * {"green", { 0, 0, 255}}, {"purple", {255, 255, 0}},
+ * };
+ *
+ * For the C99 indexed array assignment, the leading []= is skipped (no aligning)
+ * struct foo_t bars[] =
+ * {
+ * [0] = { .name = "bar",
+ * .age = 21 },
+ * [1] = { .name = "barley",
+ * .age = 55 },
+ * };
+ *
+ * NOTE: this assumes that spacing is at the minimum correct spacing (ie force)
+ * if it isn't, some extra spaces will be inserted.
+ *
+ * @param start Points to the open brace chunk
+ */
+void align_init_brace(Chunk *start);
+
+#endif /* ALIGN_INIT_BRACE_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_left_shift.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_left_shift.cpp
new file mode 100644
index 00000000..21ef4ba6
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_left_shift.cpp
@@ -0,0 +1,134 @@
+/**
+ * @file align_left_shift.cpp
+ *
+ * @author Guy Maurel
+ * split from align.cpp
+ * @author Ben Gardner
+ * @license GPL v2+
+ */
+
+#include "align_left_shift.h"
+
+#include "align_stack.h"
+#include "indent.h"
+#include "log_rules.h"
+
+constexpr static auto LCURRENT = LALIGN;
+
+using namespace uncrustify;
+
+
+void align_left_shift(void)
+{
+ LOG_FUNC_ENTRY();
+
+ Chunk *start = Chunk::NullChunkPtr;
+ AlignStack as;
+
+ as.Start(255);
+
+ Chunk *pc = Chunk::GetHead();
+
+ while (pc->IsNotNullChunk())
+ {
+ if (chunk_is_newline(pc))
+ {
+ LOG_FMT(LALIGN, "%s(%d): orig_line is %zu, <Newline>\n", __func__, __LINE__, pc->orig_line);
+ }
+ else
+ {
+ char copy[1000];
+ LOG_FMT(LALIGN, "%s(%d): orig_line is %zu, orig_col is %zu, pc->Text() '%s'\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->ElidedText(copy));
+ }
+
+ if ( start->IsNotNullChunk()
+ && ((pc->flags & PCF_IN_PREPROC) != (start->flags & PCF_IN_PREPROC)))
+ {
+ // a change in preproc status restarts the aligning
+ as.Flush();
+ start = Chunk::NullChunkPtr;
+ }
+ else if (chunk_is_newline(pc))
+ {
+ as.NewLines(pc->nl_count);
+ }
+ else if ( start->IsNotNullChunk()
+ && pc->level < start->level)
+ {
+ // A drop in level restarts the aligning
+ as.Flush();
+ start = Chunk::NullChunkPtr;
+ }
+ else if ( start->IsNotNullChunk()
+ && pc->level > start->level)
+ {
+ // Ignore any deeper levels when aligning
+ }
+ else if (chunk_is_token(pc, CT_SEMICOLON))
+ {
+ // A semicolon at the same level flushes
+ as.Flush();
+ start = Chunk::NullChunkPtr;
+ }
+ else if ( !pc->flags.test(PCF_IN_ENUM)
+ && !pc->flags.test(PCF_IN_TYPEDEF)
+ && chunk_is_str(pc, "<<"))
+ {
+ if (get_chunk_parent_type(pc) == CT_OPERATOR)
+ {
+ // Ignore operator<<
+ }
+ else if (as.m_aligned.Empty())
+ {
+ /*
+ * check if the first one is actually on a blank line and then
+ * indent it. Eg:
+ *
+ * cout
+ * << "something";
+ */
+ Chunk *prev = pc->GetPrev();
+
+ if ( prev->IsNotNullChunk()
+ && chunk_is_newline(prev))
+ {
+ log_rule_B("indent_columns");
+ indent_to_column(pc, pc->column_indent + options::indent_columns());
+ pc->column_indent = pc->column;
+ chunk_flags_set(pc, PCF_DONT_INDENT);
+ }
+ // first one can be anywhere
+ as.Add(pc);
+ start = pc;
+ }
+ else if (chunk_is_newline(pc->GetPrev()))
+ {
+ // subsequent ones must be after a newline
+ as.Add(pc);
+ }
+ }
+ else if (!as.m_aligned.Empty())
+ {
+ /*
+ * check if the given statement is on a line of its own, immediately following <<
+ * and then it. Eg:
+ *
+ * cout <<
+ * "something";
+ */
+ Chunk *prev = pc->GetPrev();
+
+ if ( prev->IsNotNullChunk()
+ && chunk_is_newline(prev))
+ {
+ log_rule_B("indent_columns");
+ indent_to_column(pc, pc->column_indent + options::indent_columns());
+ pc->column_indent = pc->column;
+ chunk_flags_set(pc, PCF_DONT_INDENT);
+ }
+ }
+ pc = pc->GetNext();
+ }
+ as.End();
+} // align_left_shift
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_left_shift.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_left_shift.h
index 47d9eb81..47d9eb81 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_left_shift.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_left_shift.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_log_al.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_log_al.cpp
index 802b0280..802b0280 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_log_al.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_log_al.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_log_al.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_log_al.h
index 8cb2ece8..8cb2ece8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_log_al.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_log_al.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_nl_cont.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_nl_cont.cpp
new file mode 100644
index 00000000..4a3fd689
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_nl_cont.cpp
@@ -0,0 +1,64 @@
+/**
+ * @file align_nl_cont.cpp
+ *
+ * @author Guy Maurel
+ * split from align.cpp
+ * @author Ben Gardner
+ * @license GPL v2+
+ */
+
+#include "align_nl_cont.h"
+
+#include "align_add.h"
+#include "uncrustify.h"
+
+
+Chunk *align_nl_cont(Chunk *start)
+{
+ LOG_FUNC_ENTRY();
+
+ LOG_FMT(LALNLC, "%s(%d): start on [%s] on line %zu\n",
+ __func__, __LINE__, get_token_name(start->type), start->orig_line);
+
+ // Find the max column
+ ChunkStack cs;
+ size_t max_col = 0;
+ Chunk *pc = start;
+
+ while ( pc->IsNotNullChunk()
+ && chunk_is_not_token(pc, CT_NEWLINE)
+ && chunk_is_not_token(pc, CT_COMMENT_MULTI))
+ {
+ if (chunk_is_token(pc, CT_NL_CONT))
+ {
+ align_add(cs, pc, max_col);
+ }
+ pc = pc->GetNext();
+ }
+ // NL_CONT is always the last thing on a line
+ Chunk *tmp;
+
+ while ((tmp = cs.Pop_Back()) != nullptr)
+ {
+ chunk_flags_set(tmp, PCF_WAS_ALIGNED);
+ tmp->column = max_col;
+ }
+ return(pc);
+} // align_nl_cont
+
+
+void align_backslash_newline(void)
+{
+ LOG_FUNC_ENTRY();
+ Chunk *pc = Chunk::GetHead();
+
+ while (pc->IsNotNullChunk())
+ {
+ if (chunk_is_not_token(pc, CT_NL_CONT))
+ {
+ pc = pc->GetNextType(CT_NL_CONT, -1);
+ continue;
+ }
+ pc = align_nl_cont(pc);
+ }
+} // align_backslash_newline
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_nl_cont.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_nl_cont.h
new file mode 100644
index 00000000..7db6bad6
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_nl_cont.h
@@ -0,0 +1,33 @@
+/**
+ * @file align_nl_cont.h
+ *
+ * @author Guy Maurel
+ * split from align.cpp
+ * @author Ben Gardner
+ * @license GPL v2+
+ */
+
+#ifndef ALIGN_NL_COUNT_H_INCLUDED
+#define ALIGN_NL_COUNT_H_INCLUDED
+
+#include "uncrustify_types.h"
+
+#include "chunk.h"
+
+/**
+ * For a series of lines ending in backslash-newline, align them.
+ * The series ends when a newline or multi-line C comment is encountered.
+ *
+ * @param start Start point
+ *
+ * @return pointer the last item looked at (nullptr/newline/comment)
+ */
+Chunk *align_nl_cont(Chunk *start);
+
+/**
+ * Aligns all backslash-newline combos in the file.
+ * This should be done LAST.
+ */
+void align_backslash_newline(void);
+
+#endif /* ALIGN_NL_COUNT_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_oc_decl_colon.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_oc_decl_colon.cpp
new file mode 100644
index 00000000..8c0bc078
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_oc_decl_colon.cpp
@@ -0,0 +1,90 @@
+/**
+ * @file align_oc_decl_colon.cpp
+ *
+ * @author Guy Maurel
+ * split from align.cpp
+ * @author Ben Gardner
+ * @license GPL v2+
+ */
+
+#include "align_oc_decl_colon.h"
+
+#include "align_stack.h"
+#include "chunk.h"
+
+
+using namespace uncrustify;
+
+
+void align_oc_decl_colon(void)
+{
+ LOG_FUNC_ENTRY();
+
+ bool did_line;
+ AlignStack cas; // for the colons
+ AlignStack nas; // for the parameter label
+
+ cas.Start(4);
+ nas.Start(4);
+ nas.m_right_align = !options::align_on_tabstop();
+
+ Chunk *pc = Chunk::GetHead();
+
+ while (pc->IsNotNullChunk())
+ {
+ if (chunk_is_not_token(pc, CT_OC_SCOPE))
+ {
+ pc = pc->GetNext();
+ continue;
+ }
+ nas.Reset();
+ cas.Reset();
+
+ size_t level = pc->level;
+ pc = pc->GetNextNcNnl(E_Scope::PREPROC);
+
+ did_line = false;
+
+ while ( pc->IsNotNullChunk()
+ && pc->level >= level)
+ {
+ // The declaration ends with an open brace or semicolon
+ if ( chunk_is_token(pc, CT_BRACE_OPEN)
+ || chunk_is_semicolon(pc))
+ {
+ break;
+ }
+
+ if (chunk_is_newline(pc))
+ {
+ nas.NewLines(pc->nl_count);
+ cas.NewLines(pc->nl_count);
+ did_line = false;
+ }
+ else if ( !did_line
+ && chunk_is_token(pc, CT_OC_COLON))
+ {
+ cas.Add(pc);
+
+ Chunk *tmp = pc->GetPrev(E_Scope::PREPROC);
+ Chunk *tmp2 = tmp->GetPrevNcNnl(E_Scope::PREPROC);
+
+ // Check for an un-labeled parameter
+ if ( ( chunk_is_token(tmp, CT_WORD)
+ || chunk_is_token(tmp, CT_TYPE)
+ || chunk_is_token(tmp, CT_OC_MSG_DECL)
+ || chunk_is_token(tmp, CT_OC_MSG_SPEC))
+ && ( chunk_is_token(tmp2, CT_WORD)
+ || chunk_is_token(tmp2, CT_TYPE)
+ || chunk_is_token(tmp2, CT_PAREN_CLOSE)))
+ {
+ nas.Add(tmp);
+ }
+ did_line = true;
+ }
+ pc = pc->GetNext(E_Scope::PREPROC);
+ }
+ nas.End();
+ cas.End();
+ }
+} // align_oc_decl_colon
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_oc_decl_colon.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_oc_decl_colon.h
index 370ee655..370ee655 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_oc_decl_colon.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_oc_decl_colon.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_oc_msg_colons.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_oc_msg_colons.cpp
new file mode 100644
index 00000000..7357bb18
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_oc_msg_colons.cpp
@@ -0,0 +1,182 @@
+/**
+ * @file align_oc_msg_colons.cpp
+ *
+ * @author Guy Maurel
+ * @license GPL v2+
+ */
+
+#include "align_oc_msg_colons.h"
+
+#include "align_stack.h"
+#include "log_rules.h"
+
+constexpr static auto LCURRENT = LOCMSG;
+
+using namespace uncrustify;
+
+
+void align_oc_msg_colon(Chunk *so)
+{
+ LOG_FUNC_ENTRY();
+
+ AlignStack nas; // for the parameter tag
+
+ nas.Start(1);
+ nas.Reset();
+ log_rule_B("align_on_tabstop");
+ nas.m_right_align = !options::align_on_tabstop();
+
+ AlignStack cas; // for the colons
+
+ log_rule_B("align_oc_msg_colon_span");
+ size_t span = options::align_oc_msg_colon_span();
+
+ cas.Start(span);
+
+ size_t level = so->level;
+ Chunk *pc = so->GetNextNcNnl(E_Scope::PREPROC);
+
+ bool did_line = false;
+ bool has_colon = false;
+ size_t lcnt = 0; // line count with no colon for span
+ bool first_line = true;
+
+ while ( pc->IsNotNullChunk()
+ && pc->level > level)
+ {
+ if (pc->level > (level + 1))
+ {
+ // do nothing
+ }
+ else if (chunk_is_newline(pc))
+ {
+ if (!has_colon)
+ {
+ ++lcnt;
+ }
+ did_line = false;
+
+ log_rule_B("align_oc_msg_colon_xcode_like");
+
+ if ( options::align_oc_msg_colon_xcode_like()
+ && first_line
+ && !has_colon)
+ {
+ span = 0;
+ }
+ has_colon = !has_colon;
+ first_line = false;
+ }
+ else if ( !did_line
+ && (lcnt < span + 1)
+ && chunk_is_token(pc, CT_OC_COLON))
+ {
+ has_colon = true;
+ cas.Add(pc);
+ Chunk *tmp = pc->GetPrev();
+
+ if ( tmp->IsNotNullChunk()
+ && ( chunk_is_token(tmp, CT_OC_MSG_FUNC)
+ || chunk_is_token(tmp, CT_OC_MSG_NAME)))
+ {
+ nas.Add(tmp);
+ chunk_flags_set(tmp, PCF_DONT_INDENT);
+ }
+ did_line = true;
+ }
+ pc = pc->GetNext(E_Scope::PREPROC);
+ }
+ log_rule_B("align_oc_msg_colon_first");
+ nas.m_skip_first = !options::align_oc_msg_colon_first();
+ cas.m_skip_first = !options::align_oc_msg_colon_first();
+
+ // find the longest args that isn't the first one
+ size_t first_len = 0;
+ size_t mlen = 0;
+ Chunk *longest = nullptr;
+
+ size_t len = nas.m_aligned.Len();
+
+ for (size_t idx = 0; idx < len; idx++)
+ {
+ Chunk *tmp = nas.m_aligned.GetChunk(idx);
+
+ if (tmp != nullptr)
+ {
+ size_t tlen = tmp->str.size();
+
+ if (tlen > mlen)
+ {
+ mlen = tlen;
+
+ if (idx != 0)
+ {
+ longest = tmp;
+ }
+ }
+
+ if (idx == 0)
+ {
+ first_len = tlen + 1;
+ }
+ }
+ }
+
+ // add spaces before the longest arg
+ log_rule_B("indent_oc_msg_colon");
+ len = options::indent_oc_msg_colon();
+ size_t len_diff = mlen - first_len;
+
+ log_rule_B("indent_columns");
+ size_t indent_size = options::indent_columns();
+
+ // Align with first colon if possible by removing spaces
+ log_rule_B("indent_oc_msg_prioritize_first_colon");
+
+ if ( longest != nullptr
+ && options::indent_oc_msg_prioritize_first_colon()
+ && len_diff > 0
+ && ( (longest->column >= len_diff)
+ && (longest->column - len_diff) > (longest->brace_level * indent_size)))
+ {
+ longest->column -= len_diff;
+ }
+ else if ( longest != nullptr
+ && len > 0)
+ {
+ Chunk chunk;
+
+ set_chunk_type(&chunk, CT_SPACE);
+ set_chunk_parent(&chunk, CT_NONE);
+ chunk.orig_line = longest->orig_line;
+ chunk.orig_col = longest->orig_col;
+ chunk.level = longest->level;
+ chunk.brace_level = longest->brace_level;
+ chunk.flags = longest->flags & PCF_COPY_FLAGS;
+
+ // start at one since we already indent for the '['
+ for (size_t idx = 1; idx < len; idx++)
+ {
+ chunk.str.append(' ');
+ }
+
+ chunk_add_before(&chunk, longest);
+ }
+ nas.End();
+ cas.End();
+} // align_oc_msg_colon
+
+
+void align_oc_msg_colons(void)
+{
+ LOG_FUNC_ENTRY();
+
+ for (Chunk *pc = Chunk::GetHead(); pc->IsNotNullChunk(); pc = pc->GetNext())
+ {
+ if ( chunk_is_token(pc, CT_SQUARE_OPEN)
+ && get_chunk_parent_type(pc) == CT_OC_MSG)
+ {
+ align_oc_msg_colon(pc);
+ }
+ }
+} // align_oc_msg_colons
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_oc_msg_colons.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_oc_msg_colons.h
index 4d8ea07d..4d8ea07d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_oc_msg_colons.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_oc_msg_colons.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_oc_msg_spec.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_oc_msg_spec.cpp
new file mode 100644
index 00000000..4c7a2dd5
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_oc_msg_spec.cpp
@@ -0,0 +1,37 @@
+/**
+ * @file align_oc_msg_spec.cpp
+ *
+ * @author Guy Maurel
+ * split from align.cpp
+ * @author Ben Gardner
+ * @license GPL v2+
+ */
+
+#include "align_oc_msg_spec.h"
+
+#include "align_assign.h"
+#include "align_stack.h"
+
+
+void align_oc_msg_spec(size_t span)
+{
+ LOG_FUNC_ENTRY();
+
+ AlignStack as;
+
+ as.Start(span, 0);
+
+ for (Chunk *pc = Chunk::GetHead(); pc->IsNotNullChunk(); pc = pc->GetNext())
+ {
+ if (chunk_is_newline(pc))
+ {
+ as.NewLines(pc->nl_count);
+ }
+ else if (chunk_is_token(pc, CT_OC_MSG_SPEC))
+ {
+ as.Add(pc);
+ }
+ }
+
+ as.End();
+} // void align_oc_msg_spec
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_oc_msg_spec.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_oc_msg_spec.h
index b6500a6e..b6500a6e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_oc_msg_spec.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_oc_msg_spec.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_preprocessor.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_preprocessor.cpp
new file mode 100644
index 00000000..b05c0dd9
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_preprocessor.cpp
@@ -0,0 +1,110 @@
+/**
+ * @file align_preprocessor.cpp
+ *
+ * @author Guy Maurel
+ * split from align.cpp
+ * @author Ben Gardner
+ * @license GPL v2+
+ */
+
+#include "align_preprocessor.h"
+
+#include "align_stack.h"
+#include "log_rules.h"
+
+constexpr static auto LCURRENT = LALPP;
+
+using namespace uncrustify;
+
+
+void align_preprocessor(void)
+{
+ LOG_FUNC_ENTRY();
+
+ AlignStack as; // value macros
+
+ log_rule_B("align_pp_define_span");
+ as.Start(options::align_pp_define_span());
+ log_rule_B("align_pp_define_gap");
+ as.m_gap = options::align_pp_define_gap();
+ AlignStack *cur_as = &as;
+
+ AlignStack asf; // function macros
+
+ log_rule_B("align_pp_define_span");
+ asf.Start(options::align_pp_define_span());
+ log_rule_B("align_pp_define_gap");
+ asf.m_gap = options::align_pp_define_gap();
+
+ Chunk *pc = Chunk::GetHead();
+
+ while ( pc != nullptr
+ && pc->IsNotNullChunk())
+ {
+ // Note: not counting back-slash newline combos
+ if (chunk_is_token(pc, CT_NEWLINE)) // mind the gap: chunk_is_newline(pc) is NOT the same!
+ {
+ as.NewLines(pc->nl_count);
+ asf.NewLines(pc->nl_count);
+ }
+
+ // If we aren't on a 'define', then skip to the next non-comment
+ if (chunk_is_not_token(pc, CT_PP_DEFINE))
+ {
+ pc = pc->GetNextNc();
+ continue;
+ }
+ // step past the 'define'
+ pc = pc->GetNextNc();
+
+ if (pc->IsNullChunk())
+ {
+ // coveralls will complain here. There are no example for that.
+ // see https://en.wikipedia.org/wiki/Robustness_principle
+ break;
+ }
+ LOG_FMT(LALPP, "%s(%d): define (%s) on line %zu col %zu\n",
+ __func__, __LINE__, pc->Text(), pc->orig_line, pc->orig_col);
+
+ cur_as = &as;
+
+ if (chunk_is_token(pc, CT_MACRO_FUNC))
+ {
+ log_rule_B("align_pp_define_together");
+
+ if (!options::align_pp_define_together())
+ {
+ cur_as = &asf;
+ }
+ // Skip to the close parenthesis
+ pc = pc->GetNextNc(); // point to open (
+ pc = pc->GetNextType(CT_FPAREN_CLOSE, pc->level);
+
+ LOG_FMT(LALPP, "%s(%d): jumped to (%s) on line %zu col %zu\n",
+ __func__, __LINE__, pc->Text(), pc->orig_line, pc->orig_col);
+ }
+ // step to the value past the close parenthesis or the macro name
+ pc = pc->GetNext();
+
+ if (pc->IsNullChunk())
+ {
+ // coveralls will complain here. There are no example for that.
+ // see https://en.wikipedia.org/wiki/Robustness_principle
+ break;
+ }
+
+ /*
+ * don't align anything if the first line ends with a newline before
+ * a value is given
+ */
+ if (!chunk_is_newline(pc))
+ {
+ LOG_FMT(LALPP, "%s(%d): align on '%s', line %zu col %zu\n",
+ __func__, __LINE__, pc->Text(), pc->orig_line, pc->orig_col);
+
+ cur_as->Add(pc);
+ }
+ }
+ as.End();
+ asf.End();
+} // align_preprocessor
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_preprocessor.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_preprocessor.h
index ec944587..ec944587 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_preprocessor.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_preprocessor.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_same_func_call_params.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_same_func_call_params.cpp
new file mode 100644
index 00000000..588195da
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_same_func_call_params.cpp
@@ -0,0 +1,283 @@
+/**
+ * @file align_same_func_call_params.cpp
+ *
+ * @author Guy Maurel
+ * split from align.cpp
+ * @author Ben Gardner
+ * @license GPL v2+
+ */
+
+#include "align_same_func_call_params.h"
+
+#include "align_stack.h"
+#include "log_rules.h"
+
+constexpr static auto LCURRENT = LASFCP;
+
+using namespace uncrustify;
+
+
+void align_same_func_call_params(void)
+{
+ LOG_FUNC_ENTRY();
+
+ Chunk *pc;
+ Chunk *align_root = Chunk::NullChunkPtr;
+ Chunk *align_cur = Chunk::NullChunkPtr;
+ size_t align_len = 0;
+ size_t span = 3;
+ size_t thresh;
+ Chunk *align_fcn;
+ unc_text align_fcn_name;
+ unc_text align_root_name;
+ deque<Chunk *> chunks;
+ deque<AlignStack> array_of_AlignStack;
+ AlignStack fcn_as;
+ const char *add_str;
+
+ // Default span is 3 if align_same_func_call_params is true
+ log_rule_B("align_same_func_call_params_span");
+
+ if (options::align_same_func_call_params_span() > 0)
+ {
+ span = options::align_same_func_call_params_span();
+ }
+ log_rule_B("align_same_func_call_params_thresh");
+ thresh = options::align_same_func_call_params_thresh();
+
+ fcn_as.Start(span, thresh);
+ LOG_FMT(LAS, "%s(%d): (3): span is %zu, thresh is %zu\n",
+ __func__, __LINE__, span, thresh);
+
+ for (pc = Chunk::GetHead(); pc->IsNotNullChunk(); pc = pc->GetNext())
+ {
+ if (chunk_is_newline(pc))
+ {
+ LOG_FMT(LAS, "%s(%d): orig_line is %zu, <Newline>\n", __func__, __LINE__, pc->orig_line);
+ }
+ else
+ {
+ LOG_FMT(LAS, "%s(%d): orig_line is %zu, orig_col is %zu, pc->Text() '%s'\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text());
+ }
+
+ if (chunk_is_not_token(pc, CT_FUNC_CALL))
+ {
+ if (chunk_is_newline(pc))
+ {
+ for (auto &as_v : array_of_AlignStack)
+ {
+ as_v.NewLines(pc->nl_count);
+ }
+
+ fcn_as.NewLines(pc->nl_count);
+ }
+ else
+ {
+ // if we drop below the brace level that started it, we are done
+ if ( align_root->IsNotNullChunk()
+ && align_root->brace_level > pc->brace_level)
+ {
+ LOG_FMT(LASFCP, " ++ (drop) Ended with %zu fcns\n", align_len);
+
+ // Flush it all!
+ fcn_as.Flush();
+
+ for (auto &as_v : array_of_AlignStack)
+ {
+ as_v.Flush();
+ }
+
+ align_root = Chunk::NullChunkPtr;
+ }
+ }
+ continue;
+ }
+ // Only align function calls that are right after a newline
+ Chunk *prev = pc->GetPrev();
+
+ while ( chunk_is_token(prev, CT_MEMBER)
+ || chunk_is_token(prev, CT_DC_MEMBER))
+ {
+ Chunk *tprev = prev->GetPrev();
+
+ if (chunk_is_not_token(tprev, CT_TYPE))
+ {
+ prev = tprev;
+ break;
+ }
+ prev = tprev->GetPrev();
+ }
+
+ if (!chunk_is_newline(prev))
+ {
+ continue;
+ }
+ prev = prev->GetNext();
+ align_fcn = prev;
+ align_fcn_name.clear();
+ LOG_FMT(LASFCP, "%s(%d):\n", __func__, __LINE__);
+
+ while (prev != pc)
+ {
+ align_fcn_name += prev->str;
+ prev = prev->GetNext();
+ }
+ align_fcn_name += pc->str;
+ LOG_FMT(LASFCP, "%s(%d): Func Call found at orig_line is %zu, orig_col is %zu, c_str() '%s'\n",
+ __func__, __LINE__, align_fcn->orig_line,
+ align_fcn->orig_col,
+ align_fcn_name.c_str());
+
+ add_str = nullptr;
+
+ if (align_root->IsNotNullChunk())
+ {
+ // Issue # 1395
+ // can only align functions on the same brace level
+ // and on the same level
+ LOG_FMT(LASFCP, "%s(%d):align_root is not nullptr\n", __func__, __LINE__);
+
+ if ( align_root->brace_level == pc->brace_level
+ && align_root->level == pc->level
+ && align_fcn_name.equals(align_root_name))
+ {
+ fcn_as.Add(pc);
+ align_cur->align.next = pc;
+ align_cur = pc;
+ align_len++;
+ add_str = " Add";
+ }
+ else
+ {
+ LOG_FMT(LASFCP, " ++ Ended with %zu fcns\n", align_len);
+
+ // Flush it all!
+ fcn_as.Flush();
+
+ for (auto &as_v : array_of_AlignStack)
+ {
+ as_v.Flush();
+ }
+
+ align_root = Chunk::NullChunkPtr;
+ }
+ }
+ LOG_FMT(LASFCP, "%s(%d):\n", __func__, __LINE__);
+
+ if (align_root->IsNullChunk())
+ {
+ LOG_FMT(LASFCP, "%s(%d):align_root is null chunk, Add pc '%s'\n", __func__, __LINE__, pc->Text());
+ fcn_as.Add(pc);
+ align_root = align_fcn;
+ align_root_name = align_fcn_name;
+ align_cur = pc;
+ align_len = 1;
+ add_str = "Start";
+ }
+ LOG_FMT(LASFCP, "%s(%d):\n", __func__, __LINE__);
+
+ if (add_str != nullptr)
+ {
+ LOG_FMT(LASFCP, "%s(%d): %s with function '%s', on orig_line %zu, ",
+ __func__, __LINE__, add_str, align_fcn_name.c_str(), pc->orig_line);
+ align_params(pc, chunks);
+ LOG_FMT(LASFCP, "%zu items:", chunks.size());
+
+ for (size_t idx = 0; idx < chunks.size(); idx++)
+ {
+ // show the chunk(s)
+ LOG_FMT(LASFCP, " [%s]", chunks[idx]->Text());
+
+ if (idx < chunks.size() - 1)
+ {
+ LOG_FMT(LASFCP, ",");
+ }
+ }
+
+ LOG_FMT(LASFCP, "\n");
+
+ for (size_t idx = 0; idx < chunks.size(); idx++)
+ {
+ LOG_FMT(LASFCP, "%s(%d): chunks[%zu] is [%s]\n", __func__, __LINE__, idx, chunks[idx]->Text());
+ // Issue #2368
+
+ if (array_of_AlignStack.size() > idx)
+ {
+ // Issue #2368
+ array_of_AlignStack[idx].m_right_align = false;
+ }
+
+ if (idx >= array_of_AlignStack.size())
+ {
+ LOG_FMT(LASFCP, "%s(%d): resize with %zu\n", __func__, __LINE__, idx + 1);
+ array_of_AlignStack.resize(idx + 1);
+ LOG_FMT(LASFCP, "%s(%d): Start for the new\n", __func__, __LINE__);
+ array_of_AlignStack[idx].Start(span, thresh);
+
+ log_rule_B("align_number_right");
+
+ if (!options::align_number_right())
+ {
+ if ( chunk_is_token(chunks[idx], CT_NUMBER_FP)
+ || chunk_is_token(chunks[idx], CT_NUMBER)
+ || chunk_is_token(chunks[idx], CT_POS)
+ || chunk_is_token(chunks[idx], CT_NEG))
+ {
+ log_rule_B("align_on_tabstop");
+ array_of_AlignStack[idx].m_right_align = !options::align_on_tabstop();
+ }
+ }
+ }
+ LOG_FMT(LASFCP, "%s(%d): save the chunk %s\n", __func__, __LINE__, chunks[idx]->Text());
+ array_of_AlignStack[idx].Add(chunks[idx]);
+ }
+ }
+ }
+
+ if (align_len > 1)
+ {
+ LOG_FMT(LASFCP, " ++ Ended with %zu fcns\n", align_len);
+ fcn_as.End();
+
+ for (auto &as_v : array_of_AlignStack)
+ {
+ as_v.End();
+ }
+ }
+} // align_same_func_call_params
+
+
+void align_params(Chunk *start, deque<Chunk *> &chunks)
+{
+ LOG_FUNC_ENTRY();
+
+ chunks.clear();
+
+ bool hit_comma = true;
+ Chunk *pc = start->GetNextType(CT_FPAREN_OPEN, start->level);
+
+ while ((pc = pc->GetNext())->IsNotNullChunk())
+ {
+ if ( chunk_is_newline(pc)
+ || chunk_is_token(pc, CT_SEMICOLON)
+ || ( chunk_is_token(pc, CT_FPAREN_CLOSE)
+ && pc->level == start->level))
+ {
+ break;
+ }
+
+ if (pc->level == (start->level + 1))
+ {
+ if (hit_comma)
+ {
+ chunks.push_back(pc);
+ hit_comma = false;
+ }
+ else if (chunk_is_token(pc, CT_COMMA))
+ {
+ hit_comma = true;
+ }
+ }
+ }
+} // void align_params
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_same_func_call_params.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_same_func_call_params.h
new file mode 100644
index 00000000..73420292
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_same_func_call_params.h
@@ -0,0 +1,22 @@
+/**
+ * @file align_same_func_call_params.h
+ *
+ * @author Guy Maurel
+ * split from align.cpp
+ * @author Ben Gardner
+ * @license GPL v2+
+ */
+
+#ifndef ALIGN_SAME_FUNC_CALL_PARAMS_H_INCLUDED
+#define ALIGN_SAME_FUNC_CALL_PARAMS_H_INCLUDED
+
+#include "ChunkStack.h"
+#include <deque>
+
+using namespace std;
+
+void align_params(Chunk *start, deque<Chunk *> &chunks);
+
+void align_same_func_call_params(void);
+
+#endif /* ALIGN_SAME_FUNC_CALL_PARAMS_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_stack.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_stack.cpp
new file mode 100644
index 00000000..e03ca3df
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_stack.cpp
@@ -0,0 +1,667 @@
+/**
+ * @file align_stack.cpp
+ * Manages an align stack, which is just a pair of chunk stacks.
+ * There can be at most 1 item per line in the stack.
+ * The seqnum is actually a line counter.
+ *
+ * @author Ben Gardner
+ * @license GPL v2+
+ */
+
+#include "align_stack.h"
+
+#include "align_tab_column.h"
+#include "indent.h"
+#include "space.h"
+#include "unc_tools.h" // to get stackID and get_A_Number()
+
+
+constexpr static auto LCURRENT = LAS;
+
+using namespace uncrustify;
+
+using std::numeric_limits;
+
+
+void AlignStack::Start(size_t span, int thresh)
+{
+ stackID = get_A_Number(); // for debugging purpose only
+
+ // produces much more log output. Use it only debugging purpose
+ //WITH_STACKID_DEBUG;
+
+ //LOG_FMT(LAS, "AlignStack::Start(%d):m_aligned.Reset()\n", __LINE__);
+ m_aligned.Reset();
+ //LOG_FMT(LAS, "AlignStack::Start(%d):m_skipped.Reset()\n", __LINE__);
+ m_skipped.Reset();
+
+ if (thresh > 0)
+ {
+ m_absolute_thresh = false;
+ m_thresh = thresh;
+ }
+ else
+ {
+ m_absolute_thresh = true;
+ m_thresh = -thresh;
+ }
+ m_span = span;
+ m_min_col = numeric_limits<size_t>::max();
+ m_max_col = 0;
+ m_nl_seqnum = 0;
+ m_seqnum = 0;
+ m_gap = 0;
+ m_right_align = false;
+ m_star_style = SS_IGNORE;
+ m_amp_style = SS_IGNORE;
+}
+
+
+void AlignStack::ReAddSkipped()
+{
+ // produces much more log output. Use it only debugging purpose
+ //WITH_STACKID_DEBUG;
+
+ if (m_skipped.Empty())
+ {
+ return;
+ }
+ // Make a copy of the ChunkStack and clear m_skipped
+ m_scratch.Set(m_skipped);
+ //LOG_FMT(LAS, "AlignStack::ReAddSkipped(%d):m_skipped.Reset()\n", __LINE__);
+ m_skipped.Reset();
+
+ // Need to add them in order so that m_nl_seqnum is correct
+ for (size_t idx = 0; idx < m_scratch.Len(); idx++)
+ {
+ const ChunkStack::Entry *ce = m_scratch.Get(idx);
+ LOG_FMT(LAS, "AlignStack::ReAddSkipped [%zu] - ", ce->m_seqnum);
+ Add(ce->m_pc, ce->m_seqnum);
+ }
+
+ NewLines(0); // Check to see if we need to flush right away
+}
+
+
+void AlignStack::Add(Chunk *start, size_t seqnum)
+{
+ // produces much more log output. Use it only debugging purpose
+ //WITH_STACKID_DEBUG;
+ LOG_FUNC_ENTRY();
+
+ LOG_FMT(LAS, "AlignStack::%s(%d): Candidate is '%s': orig_line is %zu, column is %zu, type is %s, level is %zu\n",
+ __func__, __LINE__, start->Text(), start->orig_line, start->column, get_token_name(start->type), start->level);
+ LOG_FMT(LAS, "AlignStack::%s(%d): seqnum is %zu\n", __func__, __LINE__, seqnum);
+
+ // Assign a seqnum if needed
+ if (seqnum == 0)
+ {
+ LOG_FMT(LAS, "AlignStack::%s(%d): m_seqnum is %zu\n", __func__, __LINE__, m_seqnum);
+ seqnum = m_seqnum;
+ LOG_FMT(LAS, "AlignStack::%s(%d): seqnum is %zu\n", __func__, __LINE__, seqnum);
+ }
+ m_last_added = 0;
+
+ // Threshold check should begin after
+ // tighten down the spacing between ref and start
+
+ /*
+ * SS_IGNORE: no special handling of '*' or '&', only 'foo' is aligned
+ * void foo; // gap=5, 'foo' is aligned
+ * char * foo; // gap=3, 'foo' is aligned
+ * foomatic foo; // gap=1, 'foo' is aligned
+ * The gap is the columns between 'foo' and the previous token.
+ * [void - foo], ['*' - foo], etc
+ *
+ * SS_INCLUDE: - space between variable and '*' or '&' is eaten
+ * void foo; // gap=5, 'foo' is aligned
+ * char *foo; // gap=5, '*' is aligned
+ * foomatic foo; // gap=1, 'foo' is aligned
+ * The gap is the columns between the first '*' or '&' before foo
+ * and the previous token. [void - foo], [char - '*'], etc
+ *
+ * SS_DANGLE: - space between variable and '*' or '&' is eaten
+ * void foo; // gap=5
+ * char *bar; // gap=5, as the '*' doesn't count
+ * foomatic foo; // gap=1
+ * The gap is the columns between 'foo' and the chunk before the first
+ * '*' or '&'. [void - foo], [char - bar], etc
+ *
+ * If the gap < m_gap, then the column is bumped out by the difference.
+ * So, if m_gap is 2, then the above would be:
+ * SS_IGNORE:
+ * void foo; // gap=6
+ * char * foo; // gap=4
+ * foomatic foo; // gap=2
+ * SS_INCLUDE:
+ * void foo; // gap=6
+ * char *foo; // gap=6
+ * foomatic foo; // gap=2
+ * SS_DANGLE:
+ * void foo; // gap=6
+ * char *bar; // gap=6, as the '*' doesn't count
+ * foomatic foo; // gap=2
+ * Right aligned numbers:
+ * #define A -1
+ * #define B 631
+ * #define C 3
+ * Left aligned numbers:
+ * #define A -1
+ * #define B 631
+ * #define C 3
+ *
+ * In the code below, pc is set to the item that is aligned.
+ * In the above examples, that is 'foo', '*', '-', or 63.
+ *
+ * Ref is set to the last part of the type.
+ * In the above examples, that is 'void', 'char', 'foomatic', 'A', or 'B'.
+ *
+ * The '*' and '&' can float between the two.
+ *
+ * If align_on_tabstop=true, then SS_DANGLE is changed to SS_INCLUDE.
+ */
+ log_rule_B("align_on_tabstop");
+
+ if ( options::align_on_tabstop()
+ && m_star_style == SS_DANGLE)
+ {
+ m_star_style = SS_INCLUDE;
+ }
+ LOG_FMT(LAS, "AlignStack::%s(%d): m_star_style is %s\n",
+ __func__, __LINE__, get_StarStyle_name(m_star_style));
+ // Find ref. Back up to the real item that is aligned.
+ Chunk *prev = Chunk::NullChunkPtr;
+
+ if (start != nullptr)
+ {
+ prev = start;
+ }
+
+ while ( (prev = prev->GetPrev()) != nullptr
+ && prev->IsNotNullChunk()
+ && ( chunk_is_ptr_operator(prev)
+ || chunk_is_token(prev, CT_TPAREN_OPEN)))
+ {
+ // do nothing - we want prev when this exits
+ }
+
+ if (prev == nullptr)
+ {
+ return;
+ }
+ Chunk *ref = prev;
+
+ if (chunk_is_newline(ref))
+ {
+ ref = ref->GetNext();
+ }
+ // Find the item that we are going to align.
+ Chunk *ali = Chunk::NullChunkPtr;
+
+ if (start != nullptr)
+ {
+ ali = start;
+ }
+
+ if (m_star_style != SS_IGNORE)
+ {
+ // back up to the first '*' or '^' preceding the token
+ Chunk *tmp_prev = ali->GetPrev();
+
+ while ( tmp_prev->IsStar()
+ || chunk_is_msref(tmp_prev))
+ {
+ ali = tmp_prev;
+ tmp_prev = ali->GetPrev();
+ }
+
+ if (chunk_is_token(tmp_prev, CT_TPAREN_OPEN))
+ {
+ ali = tmp_prev;
+ tmp_prev = ali->GetPrev();
+ // this is correct, even Coverity says:
+ // CID 76021 (#1 of 1): Unused value (UNUSED_VALUE)returned_pointer: Assigning value from
+ // ali->GetPrev(nav_e::ALL) to prev here, but that stored value is overwritten before it can be used.
+ }
+ }
+
+ if (m_amp_style != SS_IGNORE)
+ {
+ // back up to the first '&' preceding the token
+ Chunk *tmp_prev = ali->GetPrev();
+
+ while (chunk_is_addr(tmp_prev))
+ {
+ ali = tmp_prev;
+ tmp_prev = ali->GetPrev();
+ }
+ }
+ log_rule_B("align_keep_extra_space");
+
+ // Tighten down the spacing between ref and start
+ if (!options::align_keep_extra_space())
+ {
+ size_t tmp_col = ref->column;
+ Chunk *tmp = ref;
+ LOG_FMT(LAS, "AlignStack::%s(%d): tmp_col is %zu\n",
+ __func__, __LINE__, tmp_col);
+
+ while ( tmp->IsNotNullChunk()
+ && tmp != start)
+ {
+ Chunk *next = tmp->GetNext();
+
+ if (next->IsNotNullChunk())
+ {
+ LOG_FMT(LAS, "AlignStack::%s(%d): next->orig_line is %zu, orig_col is %zu, Text() '%s', level is %zu, type is %s\n",
+ __func__, __LINE__, next->orig_line, next->orig_col, next->Text(), next->level, get_token_name(next->type));
+ tmp_col += space_col_align(tmp, next);
+ LOG_FMT(LAS, "AlignStack::%s(%d): next->column is %zu, level is %zu, tmp_col is %zu\n",
+ __func__, __LINE__, next->column, next->level, tmp_col);
+
+ if (next->column != tmp_col)
+ {
+ LOG_FMT(LAS, "AlignStack::%s(%d): Call align_to_column\n", __func__, __LINE__);
+ align_to_column(next, tmp_col);
+ }
+ }
+ tmp = next;
+ }
+ }
+
+ // Check threshold limits
+ if ( m_max_col == 0
+ || m_thresh == 0
+ || ( ((start->column + m_gap) <= (m_thresh + (m_absolute_thresh ? m_min_col : m_max_col))) // don't use subtraction here to prevent underflow
+ && ( (start->column + m_gap + m_thresh) >= m_max_col // change the expression to mind negative expression
+ || start->column >= m_min_col)))
+ {
+ // we are adding it, so update the newline seqnum
+ if (seqnum > m_nl_seqnum)
+ {
+ m_nl_seqnum = seqnum;
+ }
+ // Set the column adjust and gap
+ size_t col_adj = 0; // Amount the column is shifted for 'dangle' mode
+ size_t gap = 0;
+
+ if (ref != ali)
+ {
+ gap = ali->column - (ref->column + ref->Len());
+ }
+ Chunk *tmp = ali;
+
+ if (chunk_is_token(tmp, CT_TPAREN_OPEN))
+ {
+ tmp = tmp->GetNext();
+ }
+
+ if ( ( tmp->IsStar()
+ && m_star_style == SS_DANGLE)
+ || ( chunk_is_addr(tmp)
+ && m_amp_style == SS_DANGLE)
+ || ( chunk_is_nullable(tmp)
+ && (m_star_style == SS_DANGLE))
+ || ( chunk_is_msref(tmp)
+ && m_star_style == SS_DANGLE)) // TODO: add m_msref_style
+ {
+ col_adj = start->column - ali->column;
+ gap = start->column - (ref->column + ref->Len());
+ }
+ // See if this pushes out the max_col
+ const size_t endcol = ali->column + col_adj
+ + (gap < m_gap ? m_gap - gap : 0);
+
+ ali->align.col_adj = col_adj;
+ ali->align.ref = ref;
+ ali->align.start = start;
+ m_aligned.Push_Back(ali, seqnum);
+ m_last_added = 1;
+
+ // Issue #2278
+ if (chunk_is_token(ali, CT_PTR_TYPE))
+ {
+ LOG_FMT(LAS, "AlignStack::%s(%d): Add-[%s][%s]: ali->orig_line is %zu, column is %zu, type is %s, level is %zu\n",
+ __func__, __LINE__, ali->Text(), start->Text(), ali->orig_line, ali->column, get_token_name(ali->type), ali->level);
+ }
+ else
+ {
+ LOG_FMT(LAS, "AlignStack::%s(%d): Add-[%s]: ali->orig_line is %zu, column is %zu, type is %s, level is %zu\n",
+ __func__, __LINE__, ali->Text(), ali->orig_line, ali->column, get_token_name(ali->type), ali->level);
+ }
+ LOG_FMT(LAS, "AlignStack::%s(%d): ali->align.col_adj is %d, ref '%s', endcol is %zu\n",
+ __func__, __LINE__, ali->align.col_adj, ref->Text(), endcol);
+
+ if (m_min_col > endcol)
+ {
+ m_min_col = endcol;
+ }
+
+ if (endcol > m_max_col)
+ {
+ LOG_FMT(LAS, "AlignStack::%s(%d): Add-aligned: seqnum is %zu, m_nl_seqnum is %zu, m_seqnum is %zu\n",
+ __func__, __LINE__, seqnum, m_nl_seqnum, m_seqnum);
+ LOG_FMT(LAS, "AlignStack::%s(%d): ali->orig_line is %zu, ali->column is %zu, max_col old is %zu, new is %zu, m_min_col is %zu\n",
+ __func__, __LINE__, ali->orig_line, ali->column, m_max_col, endcol, m_min_col);
+ m_max_col = endcol;
+
+ /*
+ * If there were any entries that were skipped, re-add them as they
+ * may now be within the threshold
+ */
+ if (!m_skipped.Empty())
+ {
+ ReAddSkipped();
+ }
+ }
+ else
+ {
+ LOG_FMT(LAS, "AlignStack::%s(%d): Add-aligned: seqnum is %zu, m_nl_seqnum is %zu, m_seqnum is %zu\n",
+ __func__, __LINE__, seqnum, m_nl_seqnum, m_seqnum);
+ LOG_FMT(LAS, "AlignStack::%s(%d): ali->orig_line is %zu, ali->column is %zu, max_col old is %zu, new is %zu, m_min_col is %zu\n",
+ __func__, __LINE__, ali->orig_line, ali->column, m_max_col, endcol, m_min_col);
+ }
+ }
+ else
+ {
+ // The threshold check failed, so add it to the skipped list
+ m_skipped.Push_Back(start, seqnum);
+ m_last_added = 2;
+
+ LOG_FMT(LAS, "AlignStack::Add-skipped [%zu/%zu/%zu]: line %zu, col %zu <= %zu + %zu\n",
+ seqnum, m_nl_seqnum, m_seqnum,
+ start->orig_line, start->column, m_max_col, m_thresh);
+ }
+ // produces much more log output. Use it only debugging purpose
+ //WITH_STACKID_DEBUG;
+} // AlignStack::Add
+
+
+void AlignStack::NewLines(size_t cnt)
+{
+ // produces much more log output. Use it only debugging purpose
+ //WITH_STACKID_DEBUG;
+
+ if (m_aligned.Empty())
+ {
+ //LOG_FMT(LAS, "AlignStack::Newlines(%d): nothing to do, is empty\n", __LINE__);
+ return;
+ }
+ LOG_FMT(LAS, "AlignStack::Newlines(%d): cnt is %zu\n", __LINE__, cnt);
+ m_seqnum += cnt;
+ LOG_FMT(LAS, "AlignStack::Newlines(%d): m_seqnum is %zu, m_nl_seqnum is %zu, m_span is %zu\n",
+ __LINE__, m_seqnum, m_nl_seqnum, m_span);
+
+ if (m_seqnum > (m_nl_seqnum + m_span))
+ {
+ LOG_FMT(LAS, "AlignStack::Newlines(%d): cnt is %zu\n", __LINE__, cnt);
+ Flush();
+ }
+}
+
+
+void AlignStack::Flush()
+{
+ // produces much more log output. Use it only debugging purpose
+ //WITH_STACKID_DEBUG;
+
+ LOG_FMT(LAS, "AlignStack::%s(%d): Len() is %zu\n",
+ __func__, __LINE__, Len());
+
+ if (Len() > 0)
+ {
+ LOG_FMT(LAS, " (min is %zu, max is %zu)\n",
+ m_min_col, m_max_col);
+ }
+
+ if (Len() == 1)
+ {
+ // check if we have *one* typedef in the line
+ Chunk *pc = m_aligned.Get(0)->m_pc;
+ Chunk *temp = pc->GetPrevType(CT_TYPEDEF, pc->level);
+
+ if (temp->IsNotNullChunk())
+ {
+ if (pc->orig_line == temp->orig_line)
+ {
+ // reset the gap only for *this* stack
+ m_gap = 1;
+ }
+ }
+ }
+ m_last_added = 0;
+ m_max_col = 0;
+
+ // produces much more log output. Use it only debugging purpose
+ //WITH_STACKID_DEBUG;
+ LOG_FMT(LAS, "AlignStack::%s(%d): Debug the stack, Len is %zu\n",
+ __func__, __LINE__, Len());
+
+ for (size_t idx = 0; idx < Len(); idx++)
+ {
+ Chunk *pc = m_aligned.Get(idx)->m_pc;
+ LOG_FMT(LAS, "AlignStack::%s(%d): idx is %zu, pc->Text() is '%s', pc->align.col_adj is %d\n",
+ __func__, __LINE__, idx, pc->Text(), pc->align.col_adj);
+ }
+
+ // Recalculate the max_col - it may have shifted since the last Add()
+ for (size_t idx = 0; idx < Len(); idx++)
+ {
+ Chunk *pc = m_aligned.Get(idx)->m_pc;
+
+ // Set the column adjust and gap
+ size_t col_adj = 0;
+ size_t gap = 0;
+
+ if (pc != pc->align.ref)
+ {
+ gap = pc->column - (pc->align.ref->column + pc->align.ref->Len());
+ }
+
+ if (m_star_style == SS_DANGLE)
+ {
+ Chunk *tmp = (chunk_is_token(pc, CT_TPAREN_OPEN)) ? pc->GetNext() : pc;
+
+ if (chunk_is_ptr_operator(tmp))
+ {
+ col_adj = pc->align.start->column - pc->column;
+ gap = pc->align.start->column - (pc->align.ref->column + pc->align.ref->Len());
+ }
+ }
+
+ if (m_right_align)
+ {
+ // Adjust the width for signed numbers
+ if (pc->align.start != nullptr)
+ {
+ size_t start_len = pc->align.start->Len();
+
+ if (pc->align.start->type == CT_NEG)
+ {
+ Chunk *next = pc->align.start->GetNext();
+
+ if (chunk_is_token(next, CT_NUMBER))
+ {
+ start_len += next->Len();
+ }
+ }
+ col_adj += start_len;
+ }
+ }
+ pc->align.col_adj = col_adj;
+
+ // See if this pushes out the max_col
+ const size_t endcol = pc->column + col_adj
+ + (gap < m_gap ? m_gap - gap : 0);
+
+ if (endcol > m_max_col)
+ {
+ m_max_col = endcol;
+ }
+ }
+
+ log_rule_B("align_on_tabstop");
+
+ if ( options::align_on_tabstop()
+ && Len() > 1)
+ {
+ m_max_col = align_tab_column(m_max_col);
+ }
+ LOG_FMT(LAS, "AlignStack::%s(%d): Len() is %zu\n",
+ __func__, __LINE__, Len());
+
+ const ChunkStack::Entry *ce = nullptr;
+
+ for (size_t idx = 0; idx < Len(); idx++)
+ {
+ ce = m_aligned.Get(idx);
+ LOG_FMT(LAS, "AlignStack::%s(%d): idx is %zu, ce->m_pc->Text() is '%s', orig_line is %zu, orig_col is %zu, align.col_adj is %d\n",
+ __func__, __LINE__, idx, ce->m_pc->Text(), ce->m_pc->orig_line, ce->m_pc->orig_col, ce->m_pc->align.col_adj);
+ }
+
+ for (size_t idx = 0; idx < Len(); idx++)
+ {
+ ce = m_aligned.Get(idx);
+ Chunk *pc = ce->m_pc;
+
+ const size_t tmp_col = m_max_col - pc->align.col_adj;
+
+ if (idx == 0)
+ {
+ if ( m_skip_first
+ && pc->column != tmp_col)
+ {
+ LOG_FMT(LAS, "AlignStack::%s(%d): orig_line is %zu, orig_col is %zu, dropping first item due to skip_first\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col);
+ m_skip_first = false;
+ m_aligned.Pop_Front();
+ Flush();
+ m_skip_first = true;
+ return;
+ }
+ chunk_flags_set(pc, PCF_ALIGN_START);
+
+ pc->align.right_align = m_right_align;
+ pc->align.amp_style = m_amp_style;
+ pc->align.star_style = m_star_style;
+ }
+ pc->align.gap = m_gap;
+ pc->align.next = m_aligned.GetChunk(idx + 1);
+
+ // Indent the token, taking col_adj into account
+ LOG_FMT(LAS, "AlignStack::%s(%d): orig_line is %zu, orig_col is %zu, Text() '%s', set to col %zu (adj is %d)\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), tmp_col, pc->align.col_adj);
+ align_to_column(pc, tmp_col);
+ }
+
+ size_t last_seqnum = 0;
+
+ if (ce != nullptr)
+ {
+ last_seqnum = ce->m_seqnum;
+ //LOG_FMT(LAS, "AlignStack::Flush(%d):m_aligned.Reset()\n", __LINE__);
+ m_aligned.Reset();
+ }
+ m_min_col = numeric_limits<size_t>::max(); // use unrealistic high numbers
+ m_max_col = 0; // as start value
+
+ if (m_skipped.Empty())
+ {
+ // Nothing was skipped, sync the sequence numbers
+ m_nl_seqnum = m_seqnum;
+ }
+ else
+ {
+ // Remove all items with seqnum < last_seqnum
+ for (size_t idx = 0; idx < m_skipped.Len(); idx++)
+ {
+ if (m_skipped.Get(idx)->m_seqnum < last_seqnum)
+ {
+ m_skipped.Zap(idx);
+ }
+ }
+
+ m_skipped.Collapse();
+
+ ReAddSkipped(); // Add all items from the skipped list
+ }
+} // AlignStack::Flush
+
+
+void AlignStack::Reset()
+{
+ //WITH_STACKID_DEBUG;
+ //LOG_FMT(LAS, "AlignStack::Reset(%d):m_aligned.Reset()\n", __LINE__);
+ m_aligned.Reset();
+ //LOG_FMT(LAS, "AlignStack::Reset(%d):m_skipped.Reset()\n", __LINE__);
+ m_skipped.Reset();
+}
+
+
+void AlignStack::End()
+{
+ //WITH_STACKID_DEBUG;
+
+ if (!m_aligned.Empty())
+ {
+ //LOG_FMT(LAS, "AlignStack::End(%d):\n", __LINE__);
+ Flush();
+ }
+ //LOG_FMT(LAS, "AlignStack::End(%d):m_aligned.Reset()\n", __LINE__);
+ m_aligned.Reset();
+ //LOG_FMT(LAS, "AlignStack::End(%d):m_skipped.Reset()\n", __LINE__);
+ m_skipped.Reset();
+}
+
+
+size_t AlignStack::Len()
+{
+ return(m_aligned.Len());
+}
+
+
+void AlignStack::Debug()
+{
+ //WITH_STACKID_DEBUG;
+
+ size_t length = Len();
+
+ if (length > 0)
+ {
+ LOG_FMT(LAS, "AlignStack::%s(%d): Debug the stack, Len is %zu\n",
+ __func__, __LINE__, Len());
+
+ for (size_t idx = 0; idx < length; idx++)
+ {
+ Chunk *pc = m_aligned.Get(idx)->m_pc;
+
+ if (chunk_is_token(pc, CT_PTR_TYPE))
+ {
+ LOG_FMT(LAS, "AlignStack::%s(%d): idx is %zu, [%s][%s]: orig_line is %zu, orig_col is %zu, type is %s, level is %zu, brace_level is %zu\n",
+ __func__, __LINE__, idx, pc->Text(), pc->next->Text(), pc->orig_line, pc->orig_col, get_token_name(pc->type), pc->level, pc->brace_level);
+ }
+ else
+ {
+ LOG_FMT(LAS, "AlignStack::%s(%d): idx is %zu, [%s]: orig_line is %zu, orig_col is %zu, type is %s, level is %zu, brace_level is %zu\n",
+ __func__, __LINE__, idx, pc->Text(), pc->orig_line, pc->orig_col, get_token_name(pc->type), pc->level, pc->brace_level);
+ }
+ }
+ }
+}
+
+
+const char *AlignStack::get_StarStyle_name(StarStyle star_style)
+{
+ switch (star_style)
+ {
+ case StarStyle::SS_IGNORE:
+ return("SS_IGNORE");
+
+ case StarStyle::SS_INCLUDE:
+ return("SS_INCLUDE");
+
+ case StarStyle::SS_DANGLE:
+ return("SS_DANGLE");
+ }
+ return("?????");
+} // get_StarStyle_name
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_stack.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_stack.h
new file mode 100644
index 00000000..0aeefd48
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_stack.h
@@ -0,0 +1,154 @@
+/**
+ * @file align_stack.h
+ * Manages an align stack, which is just a pair of chunk stacks with a few
+ * fancy functions.
+ *
+ * @author Ben Gardner
+ * @license GPL v2+
+ */
+
+#ifndef ALIGN_STACK_H_INCLUDED
+#define ALIGN_STACK_H_INCLUDED
+
+#include "ChunkStack.h"
+
+#include <limits>
+
+class AlignStack
+{
+public:
+ enum StarStyle
+ {
+ SS_IGNORE, //! don't look for prev stars
+ SS_INCLUDE, //! include prev * before add
+ SS_DANGLE //! include prev * after add
+ };
+
+ ChunkStack m_aligned; //! contains the tokens that are aligned
+ ChunkStack m_skipped; //! contains the tokens sent to Add()
+ size_t m_max_col;
+ size_t m_min_col;
+ size_t m_span;
+ size_t m_thresh;
+ size_t m_seqnum;
+ size_t m_nl_seqnum;
+ size_t m_gap;
+ bool m_right_align;
+ bool m_absolute_thresh;
+ StarStyle m_star_style;
+ StarStyle m_amp_style;
+ bool m_skip_first; //! do not include the first item if it causes it to be indented
+ size_t stackID; //! for debugging purpose only
+
+
+ AlignStack()
+ : m_max_col(0)
+ , m_min_col(0)
+ , m_span(0)
+ , m_thresh(0)
+ , m_seqnum(0)
+ , m_nl_seqnum(0)
+ , m_gap(0)
+ , m_right_align(false)
+ , m_absolute_thresh(false)
+ , m_star_style(SS_IGNORE)
+ , m_amp_style(SS_IGNORE)
+ , m_skip_first(false)
+ , stackID(std::numeric_limits<std::size_t>::max()) // under linux 64 bits: 18446744073709551615
+ , m_last_added(0)
+ {
+ }
+
+
+ AlignStack(const AlignStack &ref)
+ : m_aligned(ref.m_aligned)
+ , m_skipped(ref.m_skipped)
+ , m_max_col(ref.m_max_col)
+ , m_min_col(ref.m_min_col)
+ , m_span(ref.m_span)
+ , m_thresh(ref.m_thresh)
+ , m_seqnum(ref.m_seqnum)
+ , m_nl_seqnum(ref.m_nl_seqnum)
+ , m_gap(ref.m_gap)
+ , m_right_align(ref.m_right_align)
+ , m_absolute_thresh(ref.m_absolute_thresh)
+ , m_star_style(ref.m_star_style)
+ , m_amp_style(ref.m_amp_style)
+ , m_skip_first(ref.m_skip_first)
+ , m_last_added(ref.m_last_added)
+ {
+ }
+
+
+ ~AlignStack()
+ {
+ }
+
+ /**
+ * Resets the two ChunkLists and zeroes local vars.
+ *
+ * @param span The row span limit
+ * @param threshold The column threshold
+ */
+ void Start(size_t span, int threshold = 0);
+
+
+ /**
+ * Adds an entry to the appropriate stack.
+ *
+ * @param pc the chunk
+ * @param seqnum optional sequence number (0=assign one)
+ */
+ void Add(Chunk *pc, size_t seqnum = 0);
+
+
+ //! Adds some newline and calls Flush() if needed
+ void NewLines(size_t cnt);
+
+
+ /**
+ * Aligns all the stuff in m_aligned.
+ * Re-adds 'newer' items in m_skipped.
+ */
+ void Flush();
+
+
+ //! Resets the stack, discarding anything that was previously added
+ void Reset();
+
+
+ //! Aligns everything else and resets the lists.
+ void End();
+
+
+ //! the size of the lists.
+ size_t Len();
+
+
+ //! for debuging purpose only
+ void Debug();
+
+
+ const char *get_StarStyle_name(StarStyle star_style);
+
+protected:
+ size_t m_last_added; //! 0=none, 1=aligned, 2=skipped
+ ChunkStack m_scratch; //! used in ReAddSkipped()
+
+ //! Calls Add on all the skipped items
+ void ReAddSkipped();
+};
+
+#define WITH_STACKID_DEBUG \
+ if (stackID == std::numeric_limits<std::size_t>::max()) \
+ { \
+ fprintf(stderr, "AlignStack::%s(%d): the stack is not ready, Start is missed\n", __func__, __LINE__); \
+ log_flush(true); \
+ exit(EX_SOFTWARE); \
+ } \
+ else \
+ { \
+ LOG_FMT(LAS, "AlignStack::%s(%d): stackID is %zu\n", __func__, __LINE__, stackID); \
+ }
+
+#endif /* ALIGN_STACK_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_struct_initializers.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_struct_initializers.cpp
new file mode 100644
index 00000000..9085b9ac
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_struct_initializers.cpp
@@ -0,0 +1,34 @@
+/**
+ * @file align_struct_initializers.cpp
+ *
+ * @author Guy Maurel
+ * split from align.cpp
+ * @author Ben Gardner
+ * @license GPL v2+
+ */
+
+#include "align_struct_initializers.h"
+
+#include "align_init_brace.h"
+#include "chunk.h"
+
+
+void align_struct_initializers(void)
+{
+ LOG_FUNC_ENTRY();
+ Chunk *pc = Chunk::GetHead();
+
+ while (pc->IsNotNullChunk())
+ {
+ Chunk *prev = pc->GetPrevNcNnl();
+
+ if ( chunk_is_token(prev, CT_ASSIGN)
+ && ( chunk_is_token(pc, CT_BRACE_OPEN)
+ || ( language_is_set(LANG_D)
+ && chunk_is_token(pc, CT_SQUARE_OPEN))))
+ {
+ align_init_brace(pc);
+ }
+ pc = pc->GetNextType(CT_BRACE_OPEN, -1);
+ }
+} // align_struct_initializers
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_struct_initializers.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_struct_initializers.h
index 1c71d5af..1c71d5af 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_struct_initializers.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_struct_initializers.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_tab_column.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_tab_column.cpp
index 8d91b0ff..8d91b0ff 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_tab_column.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_tab_column.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_tab_column.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_tab_column.h
index 9e57baa0..9e57baa0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_tab_column.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_tab_column.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_tools.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_tools.cpp
new file mode 100644
index 00000000..5cfd64e5
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_tools.cpp
@@ -0,0 +1,187 @@
+/**
+ * @file align_tools.cpp
+ *
+ * @author Guy Maurel
+ * split from align.cpp
+ * @author Ben Gardner
+ * @license GPL v2+
+ */
+
+#include "align_tools.h"
+
+#include "space.h"
+#include "uncrustify.h"
+
+
+Chunk *skip_c99_array(Chunk *sq_open)
+{
+ if (chunk_is_token(sq_open, CT_SQUARE_OPEN))
+ {
+ Chunk *tmp = chunk_skip_to_match(sq_open);
+
+ if (tmp == nullptr)
+ {
+ tmp = Chunk::NullChunkPtr;
+ }
+ tmp = tmp->GetNextNc();
+
+ if (chunk_is_token(tmp, CT_ASSIGN))
+ {
+ return(tmp->GetNextNc());
+ }
+ }
+ return(nullptr);
+} // skip_c99_array
+
+
+Chunk *scan_ib_line(Chunk *start, bool first_pass)
+{
+ UNUSED(first_pass);
+ LOG_FUNC_ENTRY();
+ Chunk *prev_match = nullptr;
+ size_t idx = 0;
+
+ // Skip past C99 "[xx] =" stuff
+ Chunk *tmp = skip_c99_array(start);
+
+ if (tmp != nullptr)
+ {
+ set_chunk_parent(start, CT_TSQUARE);
+ start = tmp;
+ cpd.al_c99_array = true;
+ }
+ Chunk *pc = start;
+
+ if (pc != nullptr)
+ {
+ LOG_FMT(LSIB, "%s(%d): start: orig_line is %zu, orig_col is %zu, column is %zu, type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->column, get_token_name(pc->type));
+ }
+ else
+ {
+ pc = Chunk::NullChunkPtr;
+ }
+
+ while ( pc->IsNotNullChunk()
+ && !chunk_is_newline(pc)
+ && pc->level >= start->level)
+ {
+ //LOG_FMT(LSIB, "%s: '%s' col %d/%d line %zu\n", __func__,
+ // pc->Text(), pc->column, pc->orig_col, pc->orig_line);
+
+ Chunk *next = pc->GetNext();
+
+ if ( next->IsNullChunk()
+ || next->IsComment())
+ {
+ // do nothing
+ }
+ else if ( chunk_is_token(pc, CT_ASSIGN)
+ || chunk_is_token(pc, CT_BRACE_OPEN)
+ || chunk_is_token(pc, CT_BRACE_CLOSE)
+ || chunk_is_token(pc, CT_COMMA))
+ {
+ size_t token_width = space_col_align(pc, next);
+
+ // TODO: need to handle missing structure defs? ie NULL vs { ... } ??
+
+ // Is this a new entry?
+ if (idx >= cpd.al_cnt)
+ {
+ if (idx == 0)
+ {
+ LOG_FMT(LSIB, "%s(%d): Prepare the 'idx's\n", __func__, __LINE__);
+ }
+ LOG_FMT(LSIB, "%s(%d): New idx is %2.1zu, pc->column is %2.1zu, Text() '%s', token_width is %zu, type is %s\n",
+ __func__, __LINE__, idx, pc->column, pc->Text(), token_width, get_token_name(pc->type));
+ cpd.al[cpd.al_cnt].type = pc->type;
+ cpd.al[cpd.al_cnt].col = pc->column;
+ cpd.al[cpd.al_cnt].len = token_width;
+ cpd.al_cnt++;
+
+ if (cpd.al_cnt == uncrustify::limits::AL_SIZE)
+ {
+ fprintf(stderr, "Number of 'entry' to be aligned is too big for the current value %d,\n",
+ uncrustify::limits::AL_SIZE);
+ fprintf(stderr, "at line %zu, column %zu.\n",
+ pc->orig_line, pc->orig_col);
+ fprintf(stderr, "Please make a report.\n");
+ log_flush(true);
+ exit(EX_SOFTWARE);
+ }
+ idx++;
+ }
+ else
+ {
+ // expect to match stuff
+ if (cpd.al[idx].type == pc->type)
+ {
+ LOG_FMT(LSIB, "%s(%d): Match? idx is %2.1zu, orig_line is %2.1zu, column is %2.1zu, token_width is %zu, type is %s\n",
+ __func__, __LINE__, idx, pc->orig_line, pc->column, token_width, get_token_name(pc->type));
+
+ // Shift out based on column
+ if (prev_match == nullptr)
+ {
+ if (pc->column > cpd.al[idx].col)
+ {
+ LOG_FMT(LSIB, "%s(%d): [ pc->column (%zu) > cpd.al[%zu].col(%zu) ] \n",
+ __func__, __LINE__, pc->column, idx, cpd.al[idx].col);
+
+ ib_shift_out(idx, pc->column - cpd.al[idx].col);
+ cpd.al[idx].col = pc->column;
+ }
+ }
+ else if (idx > 0)
+ {
+ LOG_FMT(LSIB, "%s(%d): prev_match '%s', prev_match->orig_line is %zu, prev_match->orig_col is %zu\n",
+ __func__, __LINE__, prev_match->Text(), prev_match->orig_line, prev_match->orig_col);
+ int min_col_diff = pc->column - prev_match->column;
+ int cur_col_diff = cpd.al[idx].col - cpd.al[idx - 1].col;
+
+ if (cur_col_diff < min_col_diff)
+ {
+ LOG_FMT(LSIB, "%s(%d): pc->orig_line is %zu\n",
+ __func__, __LINE__, pc->orig_line);
+ ib_shift_out(idx, min_col_diff - cur_col_diff);
+ }
+ }
+ LOG_FMT(LSIB, "%s(%d): at ende of the loop: now is col %zu, len is %zu\n",
+ __func__, __LINE__, cpd.al[idx].col, cpd.al[idx].len);
+ idx++;
+ }
+ }
+ prev_match = pc;
+ }
+ pc = pc->GetNextNc();
+ }
+ return(pc);
+} // scan_ib_line
+
+
+void ib_shift_out(size_t idx, size_t num)
+{
+ while (idx < cpd.al_cnt)
+ {
+ cpd.al[idx].col += num;
+ idx++;
+ }
+} // ib_shift_out
+
+
+Chunk *step_back_over_member(Chunk *pc)
+{
+ if (pc == nullptr)
+ {
+ pc = Chunk::NullChunkPtr;
+ }
+ Chunk *tmp = pc->GetPrevNcNnl();
+
+ // Skip over any class stuff: bool CFoo::bar()
+ while ( tmp->IsNotNullChunk()
+ && chunk_is_token(tmp, CT_DC_MEMBER))
+ {
+ pc = tmp->GetPrevNcNnl();
+ tmp = pc->GetPrevNcNnl();
+ }
+ return(pc);
+} // step_back_over_member
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_tools.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_tools.h
new file mode 100644
index 00000000..fe059dd5
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_tools.h
@@ -0,0 +1,48 @@
+/**
+ * @file align_tools.h
+ *
+ * @author Guy Maurel
+ * split from align.cpp
+ * @author Ben Gardner
+ * @license GPL v2+
+ */
+
+#ifndef ALIGN_TOOLS_H_INCLUDED
+#define ALIGN_TOOLS_H_INCLUDED
+
+#include "chunk.h"
+#include "uncrustify_types.h"
+
+
+/**
+ * @brief return the chunk the follows after a C array
+ *
+ * The provided chunk is considered an array if it is an opening square
+ * (CT_SQUARE_OPEN) and the matching close is followed by an equal sign '='
+ *
+ * Example: array[25] = 12;
+ * /|\ /|\
+ * | |
+ * provided chunk has to point to [ |
+ * returned chunk points to 12
+ *
+ * @param chunk chunk to operate on
+ *
+ * @return the chunk after the '=' if the check succeeds
+ * @return nullptr in all other cases
+ */
+Chunk *skip_c99_array(Chunk *sq_open);
+
+/**
+ * Scans a line for stuff to align on.
+ *
+ * We trigger on BRACE_OPEN, FPAREN_OPEN, ASSIGN, and COMMA.
+ * We want to align the NEXT item.
+ */
+Chunk *scan_ib_line(Chunk *start, bool first_pass);
+
+void ib_shift_out(size_t idx, size_t num);
+
+Chunk *step_back_over_member(Chunk *pc);
+
+#endif /* ALIGN_TOOLS_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_trailing_comments.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_trailing_comments.cpp
new file mode 100644
index 00000000..7da86018
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_trailing_comments.cpp
@@ -0,0 +1,237 @@
+/**
+ * @file align_trailing_comments.cpp
+ *
+ * @author Guy Maurel
+ * split from align.cpp
+ * @author Ben Gardner
+ * @license GPL v2+
+ */
+
+#include "align_trailing_comments.h"
+
+#include "align_add.h"
+#include "align_tab_column.h"
+#include "indent.h"
+#include "log_rules.h"
+
+constexpr static auto LCURRENT = LALTC;
+
+using namespace uncrustify;
+
+
+void align_stack(ChunkStack &cs, size_t col, bool align_single, log_sev_t sev)
+{
+ LOG_FUNC_ENTRY();
+
+ log_rule_B("align_on_tabstop");
+
+ if (options::align_on_tabstop())
+ {
+ col = align_tab_column(col);
+ }
+
+ if ( (cs.Len() > 1)
+ || ( align_single
+ && (cs.Len() == 1)))
+ {
+ LOG_FMT(sev, "%s(%d): max_col=%zu\n", __func__, __LINE__, col);
+ Chunk *pc;
+
+ while ((pc = cs.Pop_Back()) != nullptr)
+ {
+ align_to_column(pc, col);
+ chunk_flags_set(pc, PCF_WAS_ALIGNED);
+
+ LOG_FMT(sev, "%s(%d): indented [%s] on line %zu to %zu\n",
+ __func__, __LINE__, pc->Text(), pc->orig_line, pc->column);
+ }
+ }
+ cs.Reset();
+} // align_stack
+
+
+Chunk *align_trailing_comments(Chunk *start)
+{
+ LOG_FUNC_ENTRY();
+ size_t min_col = 0;
+ size_t min_orig = 0;
+ Chunk *pc = start;
+ const size_t lvl = start->brace_level;
+ size_t nl_count = 0;
+ ChunkStack cs;
+ size_t col;
+
+ log_rule_B("align_right_cmt_at_col");
+ size_t intended_col = options::align_right_cmt_at_col();
+
+ log_rule_B("align_right_cmt_same_level");
+ const bool same_level = options::align_right_cmt_same_level();
+ comment_align_e cmt_type_cur;
+ comment_align_e cmt_type_start = get_comment_align_type(pc);
+
+ LOG_FMT(LALADD, "%s(%d): start on line=%zu\n",
+ __func__, __LINE__, pc->orig_line);
+
+ // Find the max column
+ log_rule_B("align_right_cmt_span");
+
+ while ( pc->IsNotNullChunk()
+ && (nl_count < options::align_right_cmt_span()))
+ {
+ if ( pc->flags.test(PCF_RIGHT_COMMENT)
+ && pc->column > 1)
+ {
+ if ( same_level
+ && pc->brace_level != lvl)
+ {
+ pc = pc->GetPrev();
+ break;
+ }
+ cmt_type_cur = get_comment_align_type(pc);
+
+ if (cmt_type_cur == cmt_type_start)
+ {
+ LOG_FMT(LALADD, "%s(%d): line=%zu min_col=%zu pc->col=%zu pc->len=%zu %s\n",
+ __func__, __LINE__, pc->orig_line, min_col, pc->column, pc->Len(),
+ get_token_name(pc->type));
+
+ if ( min_orig == 0
+ || min_orig > pc->column)
+ {
+ min_orig = pc->column;
+ }
+ align_add(cs, pc, min_col); // (intended_col < col));
+ nl_count = 0;
+ }
+ }
+
+ if (chunk_is_newline(pc))
+ {
+ nl_count += pc->nl_count;
+ }
+ pc = pc->GetNext();
+ }
+ // Start with the minimum original column
+ col = min_orig;
+
+ // fall back to the intended column
+ if ( intended_col > 0
+ && col > intended_col)
+ {
+ col = intended_col;
+ }
+
+ // if less than allowed, bump it out
+ if (col < min_col)
+ {
+ col = min_col;
+ }
+
+ // bump out to the intended column
+ if (col < intended_col)
+ {
+ col = intended_col;
+ }
+ LOG_FMT(LALADD, "%s(%d): -- min_orig=%zu intended_col=%zu min_allowed=%zu ==> col=%zu\n",
+ __func__, __LINE__, min_orig, intended_col, min_col, col);
+
+ if ( cpd.frag_cols > 0
+ && cpd.frag_cols <= col)
+ {
+ col -= cpd.frag_cols;
+ }
+ align_stack(cs, col, (intended_col != 0), LALTC);
+
+ return(pc->GetNext());
+} // align_trailing_comments
+
+
+comment_align_e get_comment_align_type(Chunk *cmt)
+{
+ Chunk *prev;
+ comment_align_e cmt_type = comment_align_e::REGULAR;
+
+ log_rule_B("align_right_cmt_mix");
+
+ if ( !options::align_right_cmt_mix()
+ && cmt != nullptr
+ && ((prev = cmt->GetPrev())->IsNotNullChunk()))
+ {
+ if ( chunk_is_token(prev, CT_PP_ENDIF)
+ || chunk_is_token(prev, CT_PP_ELSE)
+ || chunk_is_token(prev, CT_ELSE)
+ || chunk_is_token(prev, CT_BRACE_CLOSE))
+ {
+ // TODO: make the magic 3 configurable
+ if ((cmt->column - (prev->column + prev->Len())) < 3)
+ {
+ cmt_type = (chunk_is_token(prev, CT_PP_ENDIF)) ? comment_align_e::ENDIF : comment_align_e::BRACE;
+ }
+ }
+ }
+ return(cmt_type);
+} // get_comment_align_type
+
+
+void align_right_comments(void)
+{
+ LOG_FUNC_ENTRY();
+
+ for (Chunk *pc = Chunk::GetHead(); pc->IsNotNullChunk(); pc = pc->GetNext())
+ {
+ if ( chunk_is_token(pc, CT_COMMENT)
+ || chunk_is_token(pc, CT_COMMENT_CPP)
+ || chunk_is_token(pc, CT_COMMENT_MULTI))
+ {
+ if (get_chunk_parent_type(pc) == CT_COMMENT_END)
+ {
+ Chunk *prev = pc->GetPrev();
+
+ log_rule_B("align_right_cmt_gap");
+
+ if (pc->orig_col < prev->orig_col_end + options::align_right_cmt_gap())
+ {
+ LOG_FMT(LALTC, "NOT changing END comment on line %zu (%zu <= %zu + %u)\n",
+ pc->orig_line, pc->orig_col, prev->orig_col_end,
+ options::align_right_cmt_gap());
+ }
+ else
+ {
+ LOG_FMT(LALTC, "Changing END comment on line %zu into a RIGHT-comment\n",
+ pc->orig_line);
+ chunk_flags_set(pc, PCF_RIGHT_COMMENT);
+ }
+ }
+
+ // Change certain WHOLE comments into RIGHT-alignable comments
+ if (get_chunk_parent_type(pc) == CT_COMMENT_WHOLE)
+ {
+ log_rule_B("input_tab_size");
+ size_t max_col = pc->column_indent + options::input_tab_size();
+
+ // If the comment is further right than the brace level...
+ if (pc->column >= max_col)
+ {
+ LOG_FMT(LALTC, "Changing WHOLE comment on line %zu into a RIGHT-comment (col=%zu col_ind=%zu max_col=%zu)\n",
+ pc->orig_line, pc->column, pc->column_indent, max_col);
+
+ chunk_flags_set(pc, PCF_RIGHT_COMMENT);
+ }
+ }
+ }
+ }
+
+ Chunk *pc = Chunk::GetHead();
+
+ while (pc->IsNotNullChunk())
+ {
+ if (pc->flags.test(PCF_RIGHT_COMMENT))
+ {
+ pc = align_trailing_comments(pc);
+ }
+ else
+ {
+ pc = pc->GetNext();
+ }
+ }
+} // align_right_comments
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_trailing_comments.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_trailing_comments.h
new file mode 100644
index 00000000..d85c07d0
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_trailing_comments.h
@@ -0,0 +1,46 @@
+/**
+ * @file align_trailing_comments.h
+ *
+ * @author Guy Maurel
+ * split from align.cpp
+ * @author Ben Gardner
+ * @license GPL v2+
+ */
+
+#ifndef ALIGN_TRAILING_COMMENTS_H_INCLUDED
+#define ALIGN_TRAILING_COMMENTS_H_INCLUDED
+
+#include "chunk.h"
+#include "ChunkStack.h"
+
+enum class comment_align_e : unsigned int
+{
+ REGULAR,
+ BRACE,
+ ENDIF,
+};
+
+/**
+ * For a series of lines ending in a comment, align them.
+ * The series ends when more than align_right_cmt_span newlines are found.
+ *
+ * Interesting info:
+ * - least physically allowed column
+ * - intended column
+ * - least original cmt column
+ *
+ * min_col is the minimum allowed column (based on prev token col/size)
+ * cmt_col less than
+ *
+ * @param start Start point
+ * @return pointer the last item looked at
+ */
+Chunk *align_trailing_comments(Chunk *start);
+
+comment_align_e get_comment_align_type(Chunk *cmt);
+
+void align_stack(ChunkStack &cs, size_t col, bool align_single, log_sev_t sev);
+
+void align_right_comments(void);
+
+#endif /* ALIGN_TRAILING_COMMENTS_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_typedefs.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_typedefs.cpp
new file mode 100644
index 00000000..56fc30a0
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_typedefs.cpp
@@ -0,0 +1,65 @@
+/**
+ * @file align_typedefs.cpp
+ *
+ * @author Guy Maurel
+ * split from align.cpp
+ * @author Ben Gardner
+ * @license GPL v2+
+ */
+
+#include "align_typedefs.h"
+
+#include "align_stack.h"
+#include "log_rules.h"
+
+constexpr static auto LCURRENT = LALTD;
+
+using namespace uncrustify;
+
+
+void align_typedefs(size_t span)
+{
+ LOG_FUNC_ENTRY();
+
+ AlignStack as;
+
+ as.Start(span);
+ log_rule_B("align_typedef_gap");
+ as.m_gap = options::align_typedef_gap();
+ log_rule_B("align_typedef_star_style");
+ as.m_star_style = static_cast<AlignStack::StarStyle>(options::align_typedef_star_style());
+ log_rule_B("align_typedef_amp_style");
+ as.m_amp_style = static_cast<AlignStack::StarStyle>(options::align_typedef_amp_style());
+
+ Chunk *c_typedef = Chunk::NullChunkPtr;
+ Chunk *pc = Chunk::GetHead();
+
+ while (pc->IsNotNullChunk())
+ {
+ if (chunk_is_newline(pc))
+ {
+ as.NewLines(pc->nl_count);
+ c_typedef = Chunk::NullChunkPtr;
+ }
+ else if (c_typedef->IsNotNullChunk())
+ {
+ if (pc->flags.test(PCF_ANCHOR))
+ {
+ as.Add(pc);
+ LOG_FMT(LALTD, "%s(%d): typedef @ %zu:%zu, tag '%s' @ %zu:%zu\n",
+ __func__, __LINE__, c_typedef->orig_line, c_typedef->orig_col,
+ pc->Text(), pc->orig_line, pc->orig_col);
+ c_typedef = Chunk::NullChunkPtr;
+ }
+ }
+ else
+ {
+ if (chunk_is_token(pc, CT_TYPEDEF))
+ {
+ c_typedef = pc;
+ }
+ }
+ pc = pc->GetNext();
+ }
+ as.End();
+} // align_typedefs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_typedefs.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_typedefs.h
index 2902d0d2..2902d0d2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_typedefs.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_typedefs.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_var_def_brace.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_var_def_brace.cpp
new file mode 100644
index 00000000..adbc5daf
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_var_def_brace.cpp
@@ -0,0 +1,352 @@
+/**
+ * @file align_var_def_brace.cpp
+ *
+ * @author Guy Maurel
+ * split from align.cpp
+ * @author Ben Gardner
+ * @license GPL v2+
+ */
+
+#include "align_var_def_brace.h"
+
+#include "align_stack.h"
+#include "align_tools.h"
+#include "log_rules.h"
+
+constexpr static auto LCURRENT = LAVDB;
+
+using namespace uncrustify;
+
+
+Chunk *align_var_def_brace(Chunk *start, size_t span, size_t *p_nl_count)
+{
+ LOG_FUNC_ENTRY();
+
+ if (start->IsNullChunk())
+ {
+ return(nullptr);
+ }
+ Chunk *next;
+ size_t myspan = span;
+ size_t mythresh = 0;
+ size_t mygap = 0;
+
+ // Override the span, if this is a struct/union
+ if ( get_chunk_parent_type(start) == CT_STRUCT
+ || get_chunk_parent_type(start) == CT_UNION)
+ {
+ log_rule_B("align_var_struct_span");
+ myspan = options::align_var_struct_span();
+ log_rule_B("align_var_struct_thresh");
+ mythresh = options::align_var_struct_thresh();
+ log_rule_B("align_var_struct_gap");
+ mygap = options::align_var_struct_gap();
+ }
+ else if (get_chunk_parent_type(start) == CT_CLASS)
+ {
+ log_rule_B("align_var_class_span");
+ myspan = options::align_var_class_span();
+ log_rule_B("align_var_class_thresh");
+ mythresh = options::align_var_class_thresh();
+ log_rule_B("align_var_class_gap");
+ mygap = options::align_var_class_gap();
+ }
+ else
+ {
+ log_rule_B("align_var_def_thresh");
+ mythresh = options::align_var_def_thresh();
+ log_rule_B("align_var_def_gap");
+ mygap = options::align_var_def_gap();
+ }
+ // can't be any variable definitions in a "= {" block
+ Chunk *prev = start->GetPrevNcNnl();
+
+ if (chunk_is_token(prev, CT_ASSIGN))
+ {
+ LOG_FMT(LAVDB, "%s(%d): start->Text() '%s', type is %s, on orig_line %zu (abort due to assign)\n",
+ __func__, __LINE__, start->Text(), get_token_name(start->type), start->orig_line);
+
+ Chunk *pc = start->GetNextType(CT_BRACE_CLOSE, start->level);
+ return(pc->GetNextNcNnl());
+ }
+ char copy[1000];
+
+ LOG_FMT(LAVDB, "%s(%d): start->Text() '%s', type is %s, on orig_line %zu\n",
+ __func__, __LINE__, start->ElidedText(copy), get_token_name(start->type), start->orig_line);
+
+ log_rule_B("align_var_def_inline");
+ auto const align_mask =
+ PCF_IN_FCN_DEF | PCF_VAR_1ST |
+ (options::align_var_def_inline() ? PCF_NONE : PCF_VAR_INLINE);
+
+ // Set up the variable/prototype/definition aligner
+ AlignStack as;
+
+ as.Start(myspan, mythresh);
+ as.m_gap = mygap;
+ log_rule_B("align_var_def_star_style");
+ as.m_star_style = static_cast<AlignStack::StarStyle>(options::align_var_def_star_style());
+ log_rule_B("align_var_def_amp_style");
+ as.m_amp_style = static_cast<AlignStack::StarStyle>(options::align_var_def_amp_style());
+
+ // Set up the bit colon aligner
+ AlignStack as_bc;
+
+ as_bc.Start(myspan, 0);
+ log_rule_B("align_var_def_colon_gap");
+ as_bc.m_gap = options::align_var_def_colon_gap();
+
+ AlignStack as_at; // attribute
+
+ as_at.Start(myspan, 0);
+
+ // Set up the brace open aligner
+ AlignStack as_br;
+
+ as_br.Start(myspan, mythresh);
+ log_rule_B("align_single_line_brace_gap");
+ as_br.m_gap = options::align_single_line_brace_gap();
+
+ bool fp_look_bro = false;
+ bool did_this_line = false;
+
+ log_rule_B("align_mix_var_proto");
+ bool fp_active = options::align_mix_var_proto();
+ Chunk *pc = start->GetNext();
+
+ while ( pc != nullptr
+ && pc->IsNotNullChunk()
+ && ( pc->level >= start->level
+ || pc->level == 0))
+ {
+ if (chunk_is_newline(pc))
+ {
+ LOG_FMT(LAVDB, "%s(%d): orig_line is %zu, orig_col is %zu, <Newline>\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col);
+ }
+ else
+ {
+ LOG_FMT(LAVDB, "%s(%d): orig_line is %zu, orig_col is %zu, Text() '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type));
+ }
+
+ if (pc->IsComment())
+ {
+ if (pc->nl_count > 0)
+ {
+ as.NewLines(pc->nl_count);
+ as_bc.NewLines(pc->nl_count);
+ as_at.NewLines(pc->nl_count);
+ as_br.NewLines(pc->nl_count);
+ }
+ pc = pc->GetNext();
+ continue;
+ }
+
+ if ( fp_active
+ && !pc->flags.test(PCF_IN_CLASS_BASE))
+ {
+ // WARNING: Duplicate from the align_func_proto()
+ log_rule_B("align_single_line_func");
+
+ if ( chunk_is_token(pc, CT_FUNC_PROTO)
+ || ( chunk_is_token(pc, CT_FUNC_DEF)
+ && options::align_single_line_func()))
+ {
+ LOG_FMT(LAVDB, "%s(%d): add = '%s', orig_line is %zu, orig_col is %zu, level is %zu\n",
+ __func__, __LINE__, pc->Text(), pc->orig_line, pc->orig_col, pc->level);
+
+ Chunk *toadd;
+
+ log_rule_B("align_on_operator");
+
+ if ( get_chunk_parent_type(pc) == CT_OPERATOR
+ && options::align_on_operator())
+ {
+ toadd = pc->GetPrevNcNnl();
+ }
+ else
+ {
+ toadd = pc;
+ }
+ as.Add(step_back_over_member(toadd));
+ log_rule_B("align_single_line_brace");
+ fp_look_bro = (chunk_is_token(pc, CT_FUNC_DEF))
+ && options::align_single_line_brace();
+ }
+ else if ( fp_look_bro
+ && chunk_is_token(pc, CT_BRACE_OPEN)
+ && pc->flags.test(PCF_ONE_LINER))
+ {
+ as_br.Add(pc);
+ fp_look_bro = false;
+ }
+ }
+
+ // process nested braces
+ if (chunk_is_token(pc, CT_BRACE_OPEN))
+ {
+ size_t sub_nl_count = 0;
+
+ pc = align_var_def_brace(pc, span, &sub_nl_count);
+
+ if (sub_nl_count > 0)
+ {
+ fp_look_bro = false;
+ did_this_line = false;
+ as.NewLines(sub_nl_count);
+ as_bc.NewLines(sub_nl_count);
+ as_at.NewLines(sub_nl_count);
+ as_br.NewLines(sub_nl_count);
+
+ if (p_nl_count != nullptr)
+ {
+ *p_nl_count += sub_nl_count;
+ }
+ }
+ continue;
+ }
+
+ // Done with this brace set?
+ if (chunk_is_token(pc, CT_BRACE_CLOSE))
+ {
+ pc = pc->GetNext();
+ break;
+ }
+
+ if (chunk_is_newline(pc))
+ {
+ fp_look_bro = false;
+ did_this_line = false;
+ as.NewLines(pc->nl_count);
+ as_bc.NewLines(pc->nl_count);
+ as_at.NewLines(pc->nl_count);
+ as_br.NewLines(pc->nl_count);
+
+ if (p_nl_count != nullptr)
+ {
+ *p_nl_count += pc->nl_count;
+ }
+ }
+ LOG_FMT(LAVDB, "%s(%d): pc->Text() is '%s', level is %zu, pc->brace_level is %zu\n",
+ __func__, __LINE__, chunk_is_newline(pc) ? "Newline" : pc->Text(), pc->level, pc->brace_level);
+
+ if (!chunk_is_newline(pc))
+ {
+ LOG_FMT(LAVDB, "%s(%d): pc->orig_line is %zu, orig_col is %zu, Text() '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type));
+
+ if (chunk_is_not_token(pc, CT_IGNORED))
+ {
+ LOG_FMT(LAVDB, " ");
+ log_pcf_flags(LAVDB, pc->flags);
+ }
+ }
+
+ // don't align stuff inside parenthesis/squares/angles
+ if (pc->level > pc->brace_level)
+ {
+ pc = pc->GetNext();
+ continue;
+ }
+
+ // If this is a variable def, update the max_col
+ if ( !pc->flags.test(PCF_IN_CLASS_BASE)
+ && chunk_is_not_token(pc, CT_FUNC_CLASS_DEF)
+ && chunk_is_not_token(pc, CT_FUNC_CLASS_PROTO)
+ && ((pc->flags & align_mask) == PCF_VAR_1ST)
+ && chunk_is_not_token(pc, CT_FUNC_DEF) // Issue 1452
+ && ( (pc->level == (start->level + 1))
+ || pc->level == 0)
+ && pc->prev != nullptr
+ && pc->prev->type != CT_MEMBER)
+ {
+ LOG_FMT(LAVDB, "%s(%d): a-did_this_line is %s\n",
+ __func__, __LINE__, did_this_line ? "TRUE" : "FALSE");
+ LOG_FMT(LAVDB, "%s(%d): Text() is '%s', orig_line is %zu, orig_col is %zu, level is %zu\n",
+ __func__, __LINE__, pc->Text(), pc->orig_line, pc->orig_col, pc->level);
+
+ if (!did_this_line)
+ {
+ if ( get_chunk_parent_type(start) == CT_STRUCT
+ && (as.m_star_style == AlignStack::SS_INCLUDE))
+ {
+ // we must look after the previous token
+ Chunk *prev_local = pc->prev;
+
+ while ( chunk_is_token(prev_local, CT_PTR_TYPE)
+ || chunk_is_token(prev_local, CT_ADDR))
+ {
+ LOG_FMT(LAVDB, "%s(%d): prev_local '%s', prev_local->type %s\n",
+ __func__, __LINE__, prev_local->Text(), get_token_name(prev_local->type));
+ prev_local = prev_local->prev;
+ }
+ pc = prev_local->next;
+ }
+ // we must look after the previous token
+ Chunk *prev_local = pc->prev;
+
+ if (chunk_is_not_token(prev_local, CT_DEREF)) // Issue #2971
+ {
+ LOG_FMT(LAVDB, "%s(%d): add = '%s', orig_line is %zu, orig_col is %zu, level is %zu\n",
+ __func__, __LINE__, pc->Text(), pc->orig_line, pc->orig_col, pc->level);
+
+ as.Add(step_back_over_member(pc));
+ }
+ log_rule_B("align_var_def_colon");
+
+ if (options::align_var_def_colon())
+ {
+ next = pc->GetNextNc();
+
+ if (chunk_is_token(next, CT_BIT_COLON))
+ {
+ as_bc.Add(next);
+ }
+ }
+ log_rule_B("align_var_def_attribute");
+
+ if (options::align_var_def_attribute())
+ {
+ next = pc;
+
+ while ((next = next->GetNextNc())->IsNotNullChunk())
+ {
+ if (chunk_is_token(next, CT_ATTRIBUTE))
+ {
+ as_at.Add(next);
+ break;
+ }
+
+ if ( chunk_is_token(next, CT_SEMICOLON)
+ || chunk_is_newline(next))
+ {
+ break;
+ }
+ }
+ }
+ }
+ did_this_line = true;
+ }
+ else if (chunk_is_token(pc, CT_BIT_COLON))
+ {
+ if (!did_this_line)
+ {
+ as_bc.Add(pc);
+ did_this_line = true;
+ }
+ }
+ else
+ {
+ LOG_FMT(LAVDB, "%s(%d): b-did_this_line is %s\n",
+ __func__, __LINE__, did_this_line ? "TRUE" : "FALSE");
+ }
+ pc = pc->GetNext();
+ }
+ as.End();
+ as_bc.End();
+ as_at.End();
+ as_br.End();
+
+ return(pc);
+} // align_var_def_brace
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_var_def_brace.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_var_def_brace.h
new file mode 100644
index 00000000..6d06adf9
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/align_var_def_brace.h
@@ -0,0 +1,22 @@
+/**
+ * @file align_var_def_brace.h
+ *
+ * @author Guy Maurel
+ * split from align.cpp
+ * @author Ben Gardner
+ * @license GPL v2+
+ */
+
+#ifndef ALIGN_VAR_DEF_BRACE_H_INCLUDED
+#define ALIGN_VAR_DEF_BRACE_H_INCLUDED
+
+#include "chunk.h"
+
+/**
+ * Scan everything at the current level until the close brace and find the
+ * variable def align column. Also aligns bit-colons, but that assumes that
+ * bit-types are the same! But that should always be the case...
+ */
+Chunk *align_var_def_brace(Chunk *pc, size_t span, size_t *nl_count);
+
+#endif /* ALIGN_VAR_DEF_BRACE_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/args.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/args.cpp
new file mode 100644
index 00000000..a03bbe00
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/args.cpp
@@ -0,0 +1,228 @@
+/**
+ * @file args.cpp
+ * Parses command line arguments.
+ *
+ * @author Ben Gardner
+ * @license GPL v2+
+ */
+
+#include "args.h"
+
+#include "unc_ctype.h"
+
+#include <cstring>
+
+Args::Args(int argc, char **argv)
+{
+ m_count = argc;
+ m_values = argv;
+ size_t len = (argc >> 3) + 1;
+
+ m_used = new UINT8[len];
+
+ if (m_used != nullptr)
+ {
+ memset(m_used, 0, len);
+ }
+}
+
+
+Args::~Args()
+{
+ if (m_used != nullptr)
+ {
+ delete[] m_used;
+ m_used = nullptr;
+ }
+ m_count = 0;
+}
+
+
+bool Args::Present(const char *token)
+{
+ if (token != nullptr)
+ {
+ for (size_t idx = 0; idx < m_count; idx++)
+ {
+ if (strcmp(token, m_values[idx]) == 0)
+ {
+ SetUsed(idx);
+ return(true);
+ }
+ }
+ }
+ return(false);
+}
+
+
+const char *Args::Param(const char *token)
+{
+ size_t idx = 0;
+
+ return(Params(token, idx));
+}
+
+
+const char *Args::Params(const char *token, size_t &index)
+{
+ if (token == nullptr)
+ {
+ // coveralls will complain
+ // can only occur with a call such as: arg.Param(nullptr)
+ return(nullptr);
+ }
+ size_t token_len = strlen(token);
+
+ for (size_t idx = index; idx < m_count; idx++)
+ {
+ size_t arg_len = strlen(m_values[idx]);
+
+ if ( arg_len >= token_len
+ && (memcmp(token, m_values[idx], token_len) == 0))
+ {
+ SetUsed(idx);
+
+ if (arg_len > token_len)
+ {
+ if (m_values[idx][token_len] == '=')
+ {
+ token_len++;
+ }
+ index = idx + 1;
+ return(&m_values[idx][token_len]);
+ }
+ idx++;
+ index = idx + 1;
+
+ if (idx < m_count)
+ {
+ SetUsed(idx);
+ return(m_values[idx]);
+ }
+ return(nullptr);
+ }
+ }
+
+ return(nullptr);
+} // Args::Params
+
+
+bool Args::GetUsed(size_t idx)
+{
+ if ( m_used != nullptr
+ && idx > 0
+ && idx < m_count)
+ {
+ return((m_used[idx >> 3] & (1 << (idx & 0x07))) != 0);
+ }
+ return(false);
+}
+
+
+void Args::SetUsed(size_t idx)
+{
+ if ( m_used != nullptr
+ && idx > 0
+ && idx < m_count)
+ {
+ m_used[idx >> 3] |= (1 << (idx & 0x07));
+ }
+}
+
+
+const char *Args::Unused(size_t &index)
+{
+ if (m_used == nullptr)
+ {
+ return(nullptr);
+ }
+
+ for (size_t idx = index; idx < m_count; idx++)
+ {
+ if (!GetUsed(idx))
+ {
+ index = idx + 1;
+ return(m_values[idx]);
+ }
+ }
+
+ index = m_count;
+ return(nullptr);
+}
+
+
+size_t Args::SplitLine(char *text, char *args[], size_t num_args)
+{
+ if ( text == nullptr
+ || num_args == 0)
+ {
+ return(0);
+ }
+ char cur_quote = 0;
+ bool in_backslash = false;
+ bool in_arg = false;
+ size_t argc = 0;
+ char *dest = text;
+
+ while ( argc <= num_args // maximal number of arguments not reached yet
+ && *text != 0) // end of string not reached yet
+ {
+ // Detect the start of an arg
+ if ( !in_arg
+ && !unc_isspace(*text))
+ {
+ in_arg = true;
+ args[argc] = dest;
+ argc++;
+ }
+
+ if (in_arg)
+ {
+ if (in_backslash)
+ {
+ in_backslash = false;
+ *dest = *text;
+ dest++;
+ }
+ else if (*text == '\\')
+ {
+ in_backslash = true;
+ }
+ else if (*text == cur_quote)
+ {
+ cur_quote = 0;
+ }
+ else if ( (*text == '\'')
+ || (*text == '"')
+ || (*text == '`'))
+ {
+ cur_quote = *text;
+ }
+ else if (cur_quote != 0)
+ {
+ *dest = *text;
+ dest++;
+ }
+ else if (unc_isspace(*text))
+ {
+ *dest = 0;
+ dest++;
+ in_arg = false;
+
+ if (argc == num_args)
+ {
+ break; // all arguments found, we can stop
+ }
+ }
+ else
+ {
+ *dest = *text;
+ dest++;
+ }
+ }
+ text++; // go on with next character
+ }
+ *dest = 0;
+
+ return(argc);
+} // Args::SplitLine
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/args.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/args.h
index 712fbd59..712fbd59 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/args.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/args.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/backup.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/backup.cpp
index e85ecf97..e85ecf97 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/backup.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/backup.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/backup.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/backup.h
index 3e51f863..3e51f863 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/backup.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/backup.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/base_types.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/base_types.h
index 1e98b0ac..1e98b0ac 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/base_types.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/base_types.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/brace_cleanup.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/brace_cleanup.cpp
new file mode 100644
index 00000000..5462b480
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/brace_cleanup.cpp
@@ -0,0 +1,1506 @@
+/**
+ * @file brace_cleanup.cpp
+ * Determines the brace level and paren level.
+ * Inserts virtual braces as needed.
+ * Handles all that preprocessor stuff.
+ *
+ * @author Ben Gardner
+ * @license GPL v2+
+ */
+
+#include "brace_cleanup.h"
+
+#include "flag_parens.h"
+#include "frame_list.h"
+#include "keywords.h"
+#include "lang_pawn.h"
+#include "prototypes.h"
+
+#include <stdexcept> // to get std::invalid_argument
+
+constexpr static auto LCURRENT = LBC;
+
+using namespace uncrustify;
+
+using std::invalid_argument;
+using std::string;
+using std::to_string;
+using std::stringstream;
+
+
+/*
+ * abbreviations used:
+ * - sparen = tbd
+ * - PS = Parenthesis Stack
+ * - pse = Parenthesis Stack
+ */
+
+
+struct BraceState
+{
+ std::vector<ParseFrame> frames = {};
+ E_Token in_preproc = CT_NONE;
+ int pp_level = 0;
+ bool consumed = false;
+};
+
+/**
+ * Called when a statement was just closed and the pse_tos was just
+ * decremented.
+ *
+ * - if the TOS is now VBRACE, insert a CT_VBRACE_CLOSE and recurse.
+ * - if the TOS is a complex statement, call handle_complex_close()
+ *
+ * @retval true done with this chunk
+ * @retval false keep processing
+ */
+static bool close_statement(ParseFrame &frm, Chunk *pc, const BraceState &braceState);
+
+
+static size_t preproc_start(BraceState &braceState, ParseFrame &frm, Chunk *pc);
+
+
+static void print_stack(log_sev_t logsev, const char *str, const ParseFrame &frm);
+
+
+/**
+ * pc is a CT_WHILE.
+ * Scan backwards to see if we find a brace/vbrace with the parent set to CT_DO
+ */
+static bool maybe_while_of_do(Chunk *pc);
+
+
+/**
+ * @param after determines: true - insert_vbrace_close_after(pc, frm)
+ * false - insert_vbrace_open_before(pc, frm)
+ */
+static Chunk *insert_vbrace(Chunk *pc, bool after, const ParseFrame &frm);
+
+#define insert_vbrace_close_after(pc, frm) insert_vbrace(pc, true, frm)
+#define insert_vbrace_open_before(pc, frm) insert_vbrace(pc, false, frm)
+
+static void parse_cleanup(BraceState &braceState, ParseFrame &frm, Chunk *pc);
+
+
+/**
+ * Checks the progression of complex statements.
+ * - checks for else after if
+ * - checks for if after else
+ * - checks for while after do
+ * - checks for open brace in BRACE2 and BRACE_DO stages, inserts open VBRACE
+ * - checks for open paren in PAREN1 and BRACE2 stages, complains
+ *
+ * @param frm The parse frame
+ * @param pc The current chunk
+ *
+ * @return true - done with this chunk, false - keep processing
+ */
+static bool check_complex_statements(ParseFrame &frm, Chunk *pc, const BraceState &braceState);
+
+
+/**
+ * Handles a close paren or brace - just progress the stage, if the end
+ * of the statement is hit, call close_statement()
+ *
+ * @param frm The parse frame
+ * @param pc The current chunk
+ *
+ * @return true - done with this chunk, false - keep processing
+ */
+static bool handle_complex_close(ParseFrame &frm, Chunk *pc, const BraceState &braceState);
+
+
+//! We're on a 'namespace' skip the word and then set the parent of the braces.
+static void mark_namespace(Chunk *pns);
+
+
+static size_t preproc_start(BraceState &braceState, ParseFrame &frm, Chunk *pc)
+{
+ LOG_FUNC_ENTRY();
+ const size_t pp_level = braceState.pp_level;
+
+ Chunk *next = pc->GetNextNcNnl();
+
+ if (next->IsNullChunk())
+ {
+ return(pp_level);
+ }
+ // Get the type of preprocessor and handle it
+ braceState.in_preproc = next->type;
+
+ // If we are not in a define, check for #if, #else, #endif, etc
+ if (braceState.in_preproc != CT_PP_DEFINE)
+ {
+ int pp_indent = fl_check(braceState.frames, frm, braceState.pp_level, pc);
+ return(pp_indent);
+ }
+ // else push the frame stack
+ fl_push(braceState.frames, frm);
+
+ // a preproc body starts a new, blank frame
+ frm = {};
+ frm.level = 1;
+ frm.brace_level = 1;
+
+ // TODO: not sure about the next 3 lines
+ frm.push(nullptr);
+ frm.top().type = CT_PP_DEFINE;
+
+ return(pp_level);
+}
+
+
+static void print_stack(log_sev_t logsev, const char *str,
+ const ParseFrame &frm)
+{
+ LOG_FUNC_ENTRY();
+
+ if (!log_sev_on(logsev))
+ {
+ return;
+ }
+ log_fmt(logsev, "%s(%d): str is '%s'", __func__, __LINE__, str);
+
+ for (size_t idx = 1; idx < frm.size(); idx++)
+ {
+ if (frm.at(idx).stage != brace_stage_e::NONE)
+ {
+ LOG_FMT(logsev, " [%s - %u]", get_token_name(frm.at(idx).type),
+ (unsigned int)frm.at(idx).stage);
+ }
+ else
+ {
+ LOG_FMT(logsev, " [%s]", get_token_name(frm.at(idx).type));
+ }
+ }
+
+ log_fmt(logsev, "\n");
+}
+
+
+//TODO: This can be cleaned up and simplified - we can look both forward and backward!
+void brace_cleanup(void)
+{
+ LOG_FUNC_ENTRY();
+
+ BraceState braceState;
+ ParseFrame frm{};
+ Chunk *pc = Chunk::GetHead();
+
+ while (pc->IsNotNullChunk())
+ {
+ 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());
+
+ // Check for leaving a #define body
+ if ( braceState.in_preproc != CT_NONE
+ && !pc->flags.test(PCF_IN_PREPROC))
+ {
+ if (braceState.in_preproc == CT_PP_DEFINE)
+ {
+ // out of the #define body, restore the frame
+ size_t brace_level = frm.brace_level;
+
+ if ( options::pp_warn_unbalanced_if()
+ && brace_level != 1)
+ {
+ LOG_FMT(LWARN, "%s(%d): orig_line is %zu, unbalanced #define block braces, out-level is %zu\n",
+ __func__, __LINE__, pc->orig_line, brace_level);
+ }
+ fl_pop(braceState.frames, frm);
+ }
+ braceState.in_preproc = CT_NONE;
+ }
+ // Check for a preprocessor start
+ size_t pp_level;
+
+ if (chunk_is_token(pc, CT_PREPROC))
+ {
+ pp_level = preproc_start(braceState, frm, pc);
+ }
+ else
+ {
+ pp_level = braceState.pp_level;
+ }
+ LOG_FMT(LTOK, "%s(%d): pp_level is %zu\n",
+ __func__, __LINE__, pp_level);
+
+ // Do before assigning stuff from the frame
+ if ( language_is_set(LANG_PAWN)
+ && frm.top().type == CT_VBRACE_OPEN
+ && chunk_is_token(pc, CT_NEWLINE))
+ {
+ pc = pawn_check_vsemicolon(pc);
+
+ if (pc == nullptr)
+ {
+ return;
+ }
+ }
+
+ // Issue #1813
+ if (chunk_is_token(pc, CT_NAMESPACE))
+ {
+ mark_namespace(pc);
+ }
+ // Assume the level won't change
+ pc->level = frm.level;
+ pc->brace_level = frm.brace_level;
+ pc->pp_level = pp_level;
+
+ /*
+ * #define bodies get the full formatting treatment
+ * Also need to pass in the initial '#' to close out any virtual braces.
+ */
+ if ( !pc->IsComment()
+ && !chunk_is_newline(pc)
+ && !chunk_is_token(pc, CT_ATTRIBUTE)
+ && !chunk_is_token(pc, CT_IGNORED) // Issue #2279
+ && ( braceState.in_preproc == CT_PP_DEFINE
+ || braceState.in_preproc == CT_NONE))
+ {
+ braceState.consumed = false;
+ parse_cleanup(braceState, frm, pc);
+ print_stack(LBCSAFTER, (chunk_is_token(pc, CT_VBRACE_CLOSE)) ? "Virt-}\n" : pc->str.c_str(), frm);
+ }
+ pc = pc->GetNext();
+ }
+// pc = Chunk::GetHead();
+//
+// while (pc->IsNotNullChunk())
+// {
+// 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 *template_end = pc->GetNextType(CT_SEMICOLON, pc->level);
+//
+// // look for a parameter pack
+// while (pc->IsNotNullChunk())
+// {
+// 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 *parameter_pack = pc;
+//
+// // look for a token with the same text
+// while (pc->IsNotNullChunk())
+// {
+// 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 = pc->GetNext();
+//
+// if (pc == template_end)
+// {
+// break;
+// }
+//
+// if (strcmp(pc->Text(), parameter_pack->Text()) == 0)
+// {
+// set_chunk_type(pc, CT_PARAMETER_PACK);
+// }
+// }
+// }
+// pc = pc->GetNext();
+//
+// if (pc == template_end)
+// {
+// break;
+// }
+// }
+// }
+// pc = pc->GetNext();
+// }
+} // brace_cleanup
+
+
+static bool maybe_while_of_do(Chunk *pc)
+{
+ LOG_FUNC_ENTRY();
+
+ Chunk *prev = pc->GetPrevNcNnl();
+
+ if ( prev->IsNullChunk()
+ || !prev->flags.test(PCF_IN_PREPROC))
+ {
+ return(false);
+ }
+
+ // Find the chunk before the preprocessor
+ while ( prev->IsNullChunk()
+ && prev->flags.test(PCF_IN_PREPROC))
+ {
+ prev = prev->GetPrevNcNnl();
+ }
+
+ if ( ( chunk_is_token(prev, CT_VBRACE_CLOSE)
+ || chunk_is_token(prev, CT_BRACE_CLOSE))
+ && get_chunk_parent_type(prev) == CT_DO)
+ {
+ return(true);
+ }
+ return(false);
+}
+
+
+/**
+ * At the heart of this algorithm are two stacks.
+ * There is the Paren Stack (PS) and the Frame stack.
+ *
+ * The PS (pse in the code) keeps track of braces, parens,
+ * if/else/switch/do/while/etc items -- anything that is nestable.
+ * Complex statements go through stages.
+ * Take this simple if statement as an example:
+ * if ( x ) { x--; }
+ *
+ * The stack would change like so: 'token' stack afterwards
+ * 'if' [IF - 1]
+ * '(' [IF - 1] [PAREN OPEN]
+ * 'x' [IF - 1] [PAREN OPEN]
+ * ')' [IF - 2] <- note that the state was incremented
+ * '{' [IF - 2] [BRACE OPEN]
+ * 'x' [IF - 2] [BRACE OPEN]
+ * '--' [IF - 2] [BRACE OPEN]
+ * ';' [IF - 2] [BRACE OPEN]
+ * '}' [IF - 3]
+ * <- lack of else kills the IF, closes statement
+ *
+ * Virtual braces example:
+ * if ( x ) x--; else x++;
+ *
+ * 'if' [IF - 1]
+ * '(' [IF - 1] [PAREN OPEN]
+ * 'x' [IF - 1] [PAREN OPEN]
+ * ')' [IF - 2]
+ * 'x' [IF - 2] [VBRACE OPEN] <- VBrace open inserted before because '{' was not next
+ * '--' [IF - 2] [VBRACE OPEN]
+ * ';' [IF - 3] <- VBrace close inserted after semicolon
+ * 'else' [ELSE - 0] <- IF changed into ELSE
+ * 'x' [ELSE - 0] [VBRACE OPEN] <- lack of '{' -> VBrace
+ * '++' [ELSE - 0] [VBRACE OPEN]
+ * ';' [ELSE - 0] <- VBrace close inserted after semicolon
+ * <- ELSE removed after statement close
+ *
+ * The pse stack is kept on a frame stack.
+ * The frame stack is need for languages that support preprocessors (C, C++, C#)
+ * that can arbitrarily change code flow. It also isolates #define macros so
+ * that they are indented independently and do not affect the rest of the program.
+ *
+ * When an #if is hit, a copy of the current frame is push on the frame stack.
+ * When an #else/#elif is hit, a copy of the current stack is pushed under the
+ * #if frame and the original (pre-#if) frame is copied to the current frame.
+ * When #endif is hit, the top frame is popped.
+ * This has the following effects:
+ * - a simple #if / #endif does not affect program flow
+ * - #if / #else /#endif - continues from the #if clause
+ *
+ * When a #define is entered, the current frame is pushed and cleared.
+ * When a #define is exited, the frame is popped.
+ */
+static void parse_cleanup(BraceState &braceState, ParseFrame &frm, Chunk *pc)
+{
+ LOG_FUNC_ENTRY();
+
+ LOG_FMT(LTOK, "%s(%d): orig_line is %zu, orig_col is %zu, type is %s, tos is %zu, TOS.type is %s, TOS.stage is %s, ",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, get_token_name(pc->type),
+ frm.size() - 1, get_token_name(frm.top().type),
+ get_brace_stage_name(frm.top().stage));
+ log_pcf_flags(LTOK, pc->flags);
+
+ // Mark statement starts
+ LOG_FMT(LTOK, "%s(%d): orig_line is %zu, type is %s, Text() is '%s'\n",
+ __func__, __LINE__, pc->orig_line, get_token_name(pc->type), pc->Text());
+ LOG_FMT(LTOK, "%s(%d): frm.stmt_count is %zu, frm.expr_count is %zu\n",
+ __func__, __LINE__, frm.stmt_count, frm.expr_count);
+
+ if ( ( frm.stmt_count == 0
+ || frm.expr_count == 0)
+ && !chunk_is_semicolon(pc)
+ && chunk_is_not_token(pc, CT_BRACE_CLOSE)
+ && chunk_is_not_token(pc, CT_VBRACE_CLOSE)
+ && !chunk_is_str(pc, ")")
+ && !chunk_is_str(pc, "]"))
+ {
+ chunk_flags_set(pc, PCF_EXPR_START | ((frm.stmt_count == 0) ? PCF_STMT_START : PCF_NONE));
+ LOG_FMT(LSTMT, "%s(%d): orig_line is %zu, 1.marked '%s' as %s, start stmt_count is %zu, expr_count is %zu\n",
+ __func__, __LINE__, pc->orig_line, pc->Text(),
+ pc->flags.test(PCF_STMT_START) ? "stmt" : "expr", frm.stmt_count,
+ frm.expr_count);
+ }
+ frm.stmt_count++;
+ frm.expr_count++;
+ LOG_FMT(LTOK, "%s(%d): frm.stmt_count is %zu, frm.expr_count is %zu\n",
+ __func__, __LINE__, frm.stmt_count, frm.expr_count);
+
+ if (frm.sparen_count > 0)
+ {
+ chunk_flags_set(pc, PCF_IN_SPAREN);
+
+ // Mark everything in the for statement
+ for (int tmp = static_cast<int>(frm.size()) - 2; tmp >= 0; tmp--)
+ {
+ if (frm.at(tmp).type == CT_FOR)
+ {
+ chunk_flags_set(pc, PCF_IN_FOR);
+ break;
+ }
+ }
+
+ // Mark the parent on semicolons in for() statements
+ if ( chunk_is_token(pc, CT_SEMICOLON)
+ && frm.size() > 2
+ && frm.prev().type == CT_FOR)
+ {
+ set_chunk_parent(pc, CT_FOR);
+ }
+ }
+
+ // Check the progression of complex statements
+ if ( frm.top().stage != brace_stage_e::NONE
+ && !chunk_is_token(pc, CT_AUTORELEASEPOOL)
+ && check_complex_statements(frm, pc, braceState))
+ {
+ return;
+ }
+
+ /*
+ * Check for a virtual brace statement close due to a semicolon.
+ * The virtual brace will get handled the next time through.
+ * The semicolon isn't handled at all.
+ * TODO: may need to float VBRACE past comments until newline?
+ */
+ if (frm.top().type == CT_VBRACE_OPEN)
+ {
+ if (chunk_is_semicolon(pc))
+ {
+ braceState.consumed = true;
+ close_statement(frm, pc, braceState);
+ }
+ else if ( language_is_set(LANG_PAWN)
+ && chunk_is_token(pc, CT_BRACE_CLOSE))
+ {
+ close_statement(frm, pc, braceState);
+ }
+ else if ( language_is_set(LANG_D)
+ && chunk_is_token(pc, CT_BRACE_CLOSE))
+ {
+ close_statement(frm, pc, braceState);
+ }
+ }
+
+ // Handle close parenthesis, vbrace, brace, and square
+ if ( chunk_is_token(pc, CT_PAREN_CLOSE)
+ || chunk_is_token(pc, CT_BRACE_CLOSE)
+ || chunk_is_token(pc, CT_VBRACE_CLOSE)
+ || chunk_is_token(pc, CT_ANGLE_CLOSE)
+ || chunk_is_token(pc, CT_MACRO_CLOSE)
+ || chunk_is_token(pc, CT_SQUARE_CLOSE))
+ {
+ // Change CT_PAREN_CLOSE into CT_SPAREN_CLOSE or CT_FPAREN_CLOSE
+ if ( chunk_is_token(pc, CT_PAREN_CLOSE)
+ && ( (frm.top().type == CT_FPAREN_OPEN)
+ || (frm.top().type == CT_SPAREN_OPEN)))
+ {
+ // TODO: fix enum hack
+ set_chunk_type(pc, static_cast<E_Token>(frm.top().type + 1));
+
+ if (chunk_is_token(pc, CT_SPAREN_CLOSE))
+ {
+ frm.sparen_count--;
+ chunk_flags_clr(pc, PCF_IN_SPAREN);
+ }
+ }
+
+ // Make sure the open / close match
+ if (chunk_is_not_token(pc, (E_Token)(frm.top().type + 1)))
+ {
+ if (pc->flags.test(PCF_IN_PREPROC)) // Issue #3113, #3283
+ {
+ // do nothing
+ }
+ else
+ {
+ LOG_FMT(LWARN, "%s(%d): pc->orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type));
+ paren_stack_entry_t AA = frm.top(); // Issue #3055
+
+ if (AA.type != CT_EOF)
+ {
+ LOG_FMT(LWARN, "%s(%d): (frm.top().type + 1) is %s\n",
+ __func__, __LINE__, get_token_name((E_Token)(frm.top().type + 1)));
+ }
+
+ if ( frm.top().type != CT_EOF
+ && frm.top().type != CT_PP_DEFINE)
+ {
+ LOG_FMT(LWARN, "%s(%d): File: %s, orig_line is %zu, orig_col is %zu, Error: Unexpected '%s' for '%s', which was on line %zu\n",
+ __func__, __LINE__, cpd.filename.c_str(), pc->orig_line, pc->orig_col,
+ pc->Text(), get_token_name(frm.top().pc->type),
+ frm.top().pc->orig_line);
+ print_stack(LBCSPOP, "=Error ", frm);
+ cpd.error_count++;
+ exit(EXIT_FAILURE);
+ }
+ }
+ }
+ else
+ {
+ braceState.consumed = true;
+
+ // Copy the parent, update the parenthesis/brace levels
+ set_chunk_parent(pc, frm.top().parent);
+ frm.level--;
+
+ if ( chunk_is_token(pc, CT_BRACE_CLOSE)
+ || chunk_is_token(pc, CT_VBRACE_CLOSE)
+ || chunk_is_token(pc, CT_MACRO_CLOSE))
+ {
+ frm.brace_level--;
+ LOG_FMT(LBCSPOP, "%s(%d): frm.brace_level decreased to %zu",
+ __func__, __LINE__, frm.brace_level);
+ log_pcf_flags(LBCSPOP, pc->flags);
+ }
+ pc->level = frm.level;
+ pc->brace_level = frm.brace_level;
+
+ // Pop the entry
+ LOG_FMT(LBCSPOP, "%s(%d): pc->orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type));
+ frm.pop(__func__, __LINE__, pc);
+ print_stack(LBCSPOP, "-Close ", frm);
+
+ if ( frm.top().stage == brace_stage_e::NONE
+ && ( chunk_is_token(pc, CT_VBRACE_CLOSE)
+ || chunk_is_token(pc, CT_BRACE_CLOSE)
+ || chunk_is_token(pc, CT_SEMICOLON))
+ && chunk_is_token(frm.top().pc, CT_VBRACE_OPEN))
+ {
+ // frames for functions are not created as they are for an if
+ // this here is a hackish solution to close a vbrace of a block that
+ // contains the function
+ frm.push(nullptr); // <- dummy frame for the function
+ frm.top().stage = brace_stage_e::BRACE2;
+ }
+
+ // See if we are in a complex statement
+ if (frm.top().stage != brace_stage_e::NONE)
+ {
+ handle_complex_close(frm, pc, braceState);
+ }
+ }
+ }
+
+ /*
+ * In this state, we expect a semicolon, but we'll also hit the closing
+ * sparen, so we need to check braceState.consumed to see if the close sparen
+ * was aleady handled.
+ */
+ if (frm.top().stage == brace_stage_e::WOD_SEMI)
+ {
+ if (braceState.consumed)
+ {
+ /*
+ * If consumed, then we are on the close sparen.
+ * PAWN: Check the next chunk for a semicolon. If it isn't, then
+ * add a virtual semicolon, which will get handled on the next pass.
+ */
+ if (language_is_set(LANG_PAWN))
+ {
+ Chunk *tmp = pc->GetNextNcNnl();
+
+ if ( chunk_is_not_token(tmp, CT_SEMICOLON)
+ && chunk_is_not_token(tmp, CT_VSEMICOLON))
+ {
+ pawn_add_vsemi_after(pc);
+ }
+ }
+ }
+ else
+ {
+ // Complain if this ISN'T a semicolon, but close out WHILE_OF_DO anyway
+ if ( chunk_is_token(pc, CT_SEMICOLON)
+ || chunk_is_token(pc, CT_VSEMICOLON))
+ {
+ braceState.consumed = true;
+ set_chunk_parent(pc, CT_WHILE_OF_DO);
+ }
+ else
+ {
+ LOG_FMT(LWARN, "%s: %s(%d): %zu: Error: Expected a semicolon for WHILE_OF_DO, but got '%s'\n",
+ cpd.filename.c_str(), __func__, __LINE__, pc->orig_line,
+ get_token_name(pc->type));
+ cpd.error_count++;
+ }
+ handle_complex_close(frm, pc, braceState);
+ }
+ }
+ // Get the parent type for brace and parenthesis open
+ E_Token parent = get_chunk_parent_type(pc);
+
+ if ( chunk_is_token(pc, CT_PAREN_OPEN)
+ || chunk_is_token(pc, CT_FPAREN_OPEN)
+ || chunk_is_token(pc, CT_SPAREN_OPEN)
+ || chunk_is_token(pc, CT_BRACE_OPEN))
+ {
+ Chunk *prev = pc->GetPrevNcNnl();
+
+ if (prev->IsNotNullChunk())
+ {
+ if ( chunk_is_token(pc, CT_PAREN_OPEN)
+ || chunk_is_token(pc, CT_FPAREN_OPEN)
+ || chunk_is_token(pc, CT_SPAREN_OPEN))
+ {
+ // Set the parent for parenthesis and change parenthesis type
+ if ( chunk_is_token(prev, CT_IF)
+ || chunk_is_token(prev, CT_CONSTEXPR)
+ || chunk_is_token(prev, CT_ELSEIF)
+ || chunk_is_token(prev, CT_WHILE)
+ || chunk_is_token(prev, CT_WHILE_OF_DO)
+ || chunk_is_token(prev, CT_DO)
+ || chunk_is_token(prev, CT_FOR)
+ || chunk_is_token(prev, CT_SWITCH)
+ || chunk_is_token(prev, CT_CATCH)
+ || chunk_is_token(prev, CT_SYNCHRONIZED)
+ || chunk_is_token(prev, CT_D_VERSION)
+ || chunk_is_token(prev, CT_D_VERSION_IF)
+ || chunk_is_token(prev, CT_D_SCOPE)
+ || chunk_is_token(prev, CT_D_SCOPE_IF))
+ {
+ set_chunk_type(pc, CT_SPAREN_OPEN);
+ parent = frm.top().type;
+ frm.sparen_count++;
+ }
+ else if (chunk_is_token(prev, CT_FUNCTION))
+ {
+ set_chunk_type(pc, CT_FPAREN_OPEN);
+ parent = CT_FUNCTION;
+ }
+ // NS_ENUM and NS_OPTIONS are followed by a (type, name) pair
+ else if ( chunk_is_token(prev, CT_ENUM)
+ && language_is_set(LANG_OC))
+ {
+ // Treat both as CT_ENUM since the syntax is identical
+ set_chunk_type(pc, CT_FPAREN_OPEN);
+ parent = CT_ENUM;
+ }
+ else if (chunk_is_token(prev, CT_DECLSPEC)) // Issue 1289
+ {
+ parent = CT_DECLSPEC;
+ }
+ // else: no need to set parent
+ }
+ else // must be CT_BRACE_OPEN
+ {
+ // Set the parent for open braces
+ if (frm.top().stage != brace_stage_e::NONE)
+ {
+ parent = frm.top().type;
+ }
+ else if ( chunk_is_token(prev, CT_ASSIGN)
+ && (prev->str[0] == '='))
+ {
+ parent = CT_ASSIGN;
+ }
+ else if ( chunk_is_token(prev, CT_RETURN)
+ && language_is_set(LANG_CPP))
+ {
+ parent = CT_RETURN;
+ }
+ // Carry through CT_ENUM parent in NS_ENUM (type, name) {
+ // only to help the vim command }
+ else if ( chunk_is_token(prev, CT_FPAREN_CLOSE)
+ && language_is_set(LANG_OC)
+ && get_chunk_parent_type(prev) == CT_ENUM)
+ {
+ parent = CT_ENUM;
+ }
+ else if (chunk_is_token(prev, CT_FPAREN_CLOSE))
+ {
+ parent = CT_FUNCTION;
+ }
+ // else: no need to set parent
+ }
+ }
+ }
+
+ /*
+ * Adjust the level for opens & create a stack entry
+ * Note that CT_VBRACE_OPEN has already been handled.
+ */
+ if ( chunk_is_token(pc, CT_BRACE_OPEN)
+ || chunk_is_token(pc, CT_PAREN_OPEN)
+ || chunk_is_token(pc, CT_FPAREN_OPEN)
+ || chunk_is_token(pc, CT_SPAREN_OPEN)
+ || chunk_is_token(pc, CT_ANGLE_OPEN)
+ || chunk_is_token(pc, CT_MACRO_OPEN)
+ || chunk_is_token(pc, CT_SQUARE_OPEN))
+ {
+ frm.level++;
+
+ if ( chunk_is_token(pc, CT_BRACE_OPEN)
+ || chunk_is_token(pc, CT_MACRO_OPEN))
+ {
+ // Issue #1813
+ bool single = false;
+
+ if (get_chunk_parent_type(pc) == CT_NAMESPACE)
+ {
+ LOG_FMT(LBCSPOP, "%s(%d): parent_type is NAMESPACE\n",
+ __func__, __LINE__);
+ Chunk *tmp = frm.top().pc;
+
+ if ( tmp != nullptr
+ && get_chunk_parent_type(tmp) == CT_NAMESPACE)
+ {
+ LOG_FMT(LBCSPOP, "%s(%d): tmp->parent_type is NAMESPACE\n",
+ __func__, __LINE__);
+
+ log_rule_B("indent_namespace");
+ log_rule_B("indent_namespace_single_indent");
+
+ if ( options::indent_namespace()
+ && options::indent_namespace_single_indent())
+ {
+ LOG_FMT(LBCSPOP, "%s(%d): Options are SINGLE\n",
+ __func__, __LINE__);
+ single = true;
+ }
+ }
+ }
+ LOG_FMT(LBCSPOP, "%s(%d): pc->orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s, parent_type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type), get_token_name(get_chunk_parent_type(pc)));
+
+ if (!single)
+ {
+ frm.brace_level++;
+ LOG_FMT(LBCSPOP, "%s(%d): frm.brace_level increased to %zu\n",
+ __func__, __LINE__, frm.brace_level);
+ }
+ }
+ frm.push(pc, __func__, __LINE__);
+ frm.top().parent = parent;
+ // set parent type
+ set_chunk_parent(pc, parent);
+ }
+ // Issue #2281
+
+ if ( chunk_is_token(pc, CT_BRACE_OPEN)
+ && pc->parent_type == CT_SWITCH)
+ {
+ size_t idx = frm.size();
+ LOG_FMT(LBCSPOP, "%s(%d): idx is %zu\n",
+ __func__, __LINE__, idx);
+ Chunk *saved = frm.at(idx - 2).pc;
+
+ if (saved != nullptr)
+ {
+ // set parent member
+ chunk_set_parent(pc, saved);
+ }
+ }
+
+ if ( chunk_is_token(pc, CT_CASE)
+ || chunk_is_token(pc, CT_DEFAULT))
+ {
+ Chunk *prev = pc->GetPrevNcNnl(); // Issue #3176
+
+ if ( chunk_is_token(pc, CT_CASE)
+ || ( chunk_is_token(pc, CT_DEFAULT)
+ && chunk_is_not_token(prev, CT_ASSIGN)))
+ {
+ // it is a CT_DEFAULT from a switch
+ LOG_FMT(LBCSPOP, "%s(%d): pc->orig_line is %zu, pc->orig_col is %zu\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col);
+ set_chunk_parent(pc, CT_SWITCH);
+ size_t idx = frm.size();
+ LOG_FMT(LBCSPOP, "%s(%d): idx is %zu\n",
+ __func__, __LINE__, idx);
+ Chunk *saved = frm.at(idx - 2).pc;
+
+ if (saved != nullptr)
+ {
+ // set parent member
+ chunk_set_parent(pc, saved);
+ }
+ }
+ }
+
+ if (chunk_is_token(pc, CT_BREAK))
+ {
+ LOG_FMT(LBCSPOP, "%s(%d): pc->orig_line is %zu, pc->orig_col is %zu\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col);
+ size_t idx = frm.size();
+ LOG_FMT(LBCSPOP, "%s(%d): idx is %zu\n",
+ __func__, __LINE__, idx);
+ Chunk *saved = frm.at(idx - 2).pc;
+
+ if (saved != nullptr)
+ {
+ // set parent member
+ chunk_set_parent(pc, saved);
+ }
+ }
+ const pattern_class_e patcls = get_token_pattern_class(pc->type);
+
+ /*
+ * Create a stack entry for complex statements:
+ * if, elseif, switch, for, while, synchronized, using, lock, with,
+ * version, CT_D_SCOPE_IF
+ */
+ if (patcls == pattern_class_e::BRACED)
+ {
+ frm.push(pc, __func__, __LINE__, (chunk_is_token(pc, CT_DO) ? brace_stage_e::BRACE_DO
+ : brace_stage_e::BRACE2));
+ // "+ComplexBraced"
+ }
+ else if (patcls == pattern_class_e::PBRACED)
+ {
+ brace_stage_e bs = brace_stage_e::PAREN1;
+
+ if ( chunk_is_token(pc, CT_WHILE)
+ && maybe_while_of_do(pc))
+ {
+ set_chunk_type(pc, CT_WHILE_OF_DO);
+ bs = brace_stage_e::WOD_PAREN;
+ }
+ frm.push(pc, __func__, __LINE__, bs);
+ // "+ComplexParenBraced"
+ }
+ else if (patcls == pattern_class_e::OPBRACED)
+ {
+ frm.push(pc, __func__, __LINE__, brace_stage_e::OP_PAREN1);
+ // "+ComplexOpParenBraced");
+ }
+ else if (patcls == pattern_class_e::ELSE)
+ {
+ frm.push(pc, __func__, __LINE__, brace_stage_e::ELSEIF);
+ // "+ComplexElse");
+ }
+
+ /*
+ * Mark simple statement/expression starts
+ * - after { or }
+ * - after ';', but not if the paren stack top is a paren
+ * - after '(' that has a parent type of CT_FOR
+ */
+ if ( chunk_is_token(pc, CT_SQUARE_OPEN)
+ || ( chunk_is_token(pc, CT_BRACE_OPEN)
+ && get_chunk_parent_type(pc) != CT_ASSIGN)
+ || chunk_is_token(pc, CT_BRACE_CLOSE)
+ || chunk_is_token(pc, CT_VBRACE_CLOSE)
+ || ( chunk_is_token(pc, CT_SPAREN_OPEN)
+ && get_chunk_parent_type(pc) == CT_FOR)
+ || chunk_is_token(pc, CT_COLON)
+ || chunk_is_token(pc, CT_OC_END)
+ || ( chunk_is_semicolon(pc)
+ && frm.top().type != CT_PAREN_OPEN
+ && frm.top().type != CT_FPAREN_OPEN
+ && frm.top().type != CT_SPAREN_OPEN)
+ || chunk_is_token(pc, CT_MACRO)) // Issue #2742
+ {
+ LOG_FMT(LSTMT, "%s(%d): orig_line is %zu, reset1 stmt on '%s'\n",
+ __func__, __LINE__, pc->orig_line, pc->Text());
+ frm.stmt_count = 0;
+ frm.expr_count = 0;
+ LOG_FMT(LTOK, "%s(%d): frm.stmt_count is %zu, frm.expr_count is %zu\n",
+ __func__, __LINE__, frm.stmt_count, frm.expr_count);
+ }
+ // Mark expression starts
+ LOG_FMT(LSTMT, "%s(%d): Mark expression starts: orig_line is %zu, orig_col is %zu, Text() is '%s'\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text());
+ Chunk *tmp = pc->GetNextNcNnl();
+
+ if ( chunk_is_token(pc, CT_ARITH)
+ || chunk_is_token(pc, CT_SHIFT)
+ || chunk_is_token(pc, CT_ASSIGN)
+ || chunk_is_token(pc, CT_CASE)
+ || chunk_is_token(pc, CT_COMPARE)
+ || ( chunk_is_token(pc, CT_STAR)
+ && chunk_is_not_token(tmp, CT_STAR))
+ || chunk_is_token(pc, CT_BOOL)
+ || chunk_is_token(pc, CT_MINUS)
+ || chunk_is_token(pc, CT_PLUS)
+ || chunk_is_token(pc, CT_CARET)
+ || chunk_is_token(pc, CT_ANGLE_OPEN)
+ || chunk_is_token(pc, CT_ANGLE_CLOSE)
+ || chunk_is_token(pc, CT_RETURN)
+ || chunk_is_token(pc, CT_THROW)
+ || chunk_is_token(pc, CT_GOTO)
+ || chunk_is_token(pc, CT_CONTINUE)
+ || chunk_is_token(pc, CT_PAREN_OPEN)
+ || chunk_is_token(pc, CT_FPAREN_OPEN)
+ || chunk_is_token(pc, CT_SPAREN_OPEN)
+ || chunk_is_token(pc, CT_BRACE_OPEN)
+ || chunk_is_semicolon(pc)
+ || chunk_is_token(pc, CT_COMMA)
+ || chunk_is_token(pc, CT_NOT)
+ || chunk_is_token(pc, CT_INV)
+ || chunk_is_token(pc, CT_COLON)
+ || chunk_is_token(pc, CT_QUESTION))
+ {
+ frm.expr_count = 0;
+ LOG_FMT(LSTMT, "%s(%d): orig_line is %zu, orig_col is %zu, reset expr on '%s'\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text());
+ }
+} // parse_cleanup
+
+
+static bool check_complex_statements(ParseFrame &frm, Chunk *pc, const BraceState &braceState)
+{
+ LOG_FUNC_ENTRY();
+
+ brace_stage_e atest = frm.top().stage;
+
+ LOG_FMT(LBCSPOP, "%s(%d): atest is %s\n",
+ __func__, __LINE__, get_brace_stage_name(atest));
+
+ // Turn an optional parenthesis into either a real parenthesis or a brace
+ if (frm.top().stage == brace_stage_e::OP_PAREN1)
+ {
+ frm.top().stage = (chunk_is_not_token(pc, CT_PAREN_OPEN))
+ ? brace_stage_e::BRACE2
+ : brace_stage_e::PAREN1;
+ LOG_FMT(LBCSPOP, "%s(%d): frm.top().stage is now %s\n",
+ __func__, __LINE__, get_brace_stage_name(frm.top().stage));
+ }
+
+ // Check for CT_ELSE after CT_IF
+ while (frm.top().stage == brace_stage_e::ELSE)
+ {
+ if (chunk_is_token(pc, CT_ELSE))
+ {
+ // Replace CT_IF with CT_ELSE on the stack & we are done
+ frm.top().type = CT_ELSE;
+ frm.top().stage = brace_stage_e::ELSEIF;
+ print_stack(LBCSSWAP, "=Swap ", frm);
+
+ return(true);
+ }
+ // Remove the CT_IF and close the statement
+ LOG_FMT(LBCSPOP, "%s(%d): pc->orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type));
+ frm.pop(__func__, __LINE__, pc);
+ print_stack(LBCSPOP, "-IF-CCS ", frm);
+
+ if (close_statement(frm, pc, braceState))
+ {
+ return(true);
+ }
+ }
+
+ // Check for CT_IF after CT_ELSE
+ if (frm.top().stage == brace_stage_e::ELSEIF)
+ {
+ log_rule_B("indent_else_if");
+
+ if ( chunk_is_token(pc, CT_IF)
+ && ( !options::indent_else_if()
+ || !chunk_is_newline(pc->GetPrevNc())))
+ {
+ // Replace CT_ELSE with CT_IF
+ set_chunk_type(pc, CT_ELSEIF);
+ frm.top().type = CT_ELSEIF;
+ frm.top().stage = brace_stage_e::PAREN1;
+ return(true);
+ }
+ // Jump to the 'expecting brace' stage
+ frm.top().stage = brace_stage_e::BRACE2;
+ }
+
+ // Check for CT_CATCH or CT_FINALLY after CT_TRY or CT_CATCH
+ while (frm.top().stage == brace_stage_e::CATCH)
+ {
+ if ( chunk_is_token(pc, CT_CATCH)
+ || chunk_is_token(pc, CT_FINALLY))
+ {
+ // Replace CT_TRY with CT_CATCH or CT_FINALLY on the stack & we are done
+ frm.top().type = pc->type;
+
+ if (language_is_set(LANG_CS))
+ {
+ frm.top().stage = (chunk_is_token(pc, CT_CATCH)) ? brace_stage_e::CATCH_WHEN : brace_stage_e::BRACE2;
+ }
+ else
+ {
+ // historically this used OP_PAREN1; however, to my knowledge the expression after a catch clause
+ // is only optional for C# which has been handled above; therefore, this should now always expect
+ // a parenthetical expression after the catch keyword and brace after the finally keyword
+ frm.top().stage = (chunk_is_token(pc, CT_CATCH)) ? brace_stage_e::PAREN1 : brace_stage_e::BRACE2;
+ }
+ print_stack(LBCSSWAP, "=Swap ", frm);
+
+ return(true);
+ }
+ // Remove the CT_TRY and close the statement
+ LOG_FMT(LBCSPOP, "%s(%d): pc->orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type));
+ frm.pop(__func__, __LINE__, pc);
+ print_stack(LBCSPOP, "-TRY-CCS ", frm);
+
+ if (close_statement(frm, pc, braceState))
+ {
+ return(true);
+ }
+ }
+
+ // Check for optional parenthesis and optional CT_WHEN after CT_CATCH
+ if (frm.top().stage == brace_stage_e::CATCH_WHEN)
+ {
+ if (chunk_is_token(pc, CT_PAREN_OPEN)) // this is for the paren after "catch"
+ {
+ // Replace CT_PAREN_OPEN with CT_SPAREN_OPEN
+ set_chunk_type(pc, CT_SPAREN_OPEN);
+ frm.top().type = pc->type;
+ frm.top().stage = brace_stage_e::PAREN1;
+
+ return(false);
+ }
+
+ if (chunk_is_token(pc, CT_WHEN))
+ {
+ frm.top().type = pc->type;
+ frm.top().stage = brace_stage_e::OP_PAREN1;
+
+ return(true);
+ }
+
+ if (chunk_is_token(pc, CT_BRACE_OPEN))
+ {
+ frm.top().stage = brace_stage_e::BRACE2;
+
+ return(false);
+ }
+ }
+
+ // Check for CT_WHILE after the CT_DO
+ if (frm.top().stage == brace_stage_e::WHILE)
+ {
+ if (chunk_is_token(pc, CT_WHILE))
+ {
+ set_chunk_type(pc, CT_WHILE_OF_DO);
+ frm.top().type = CT_WHILE_OF_DO; //CT_WHILE;
+ frm.top().stage = brace_stage_e::WOD_PAREN;
+
+ return(true);
+ }
+ LOG_FMT(LWARN, "%s(%d): %s, orig_line is %zu, Error: Expected 'while', got '%s'\n",
+ __func__, __LINE__, cpd.filename.c_str(), pc->orig_line,
+ pc->Text());
+ LOG_FMT(LBCSPOP, "%s(%d): pc->orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type));
+ frm.pop(__func__, __LINE__, pc);
+ print_stack(LBCSPOP, "-Error ", frm);
+ cpd.error_count++;
+ }
+ // Insert a CT_VBRACE_OPEN, if needed
+ // but not in a preprocessor
+ atest = frm.top().stage;
+
+ if ( chunk_is_not_token(pc, CT_BRACE_OPEN)
+ && !pc->flags.test(PCF_IN_PREPROC)
+ && ( (frm.top().stage == brace_stage_e::BRACE2)
+ || (frm.top().stage == brace_stage_e::BRACE_DO)))
+ {
+ log_rule_B("indent_using_block");
+
+ if ( language_is_set(LANG_CS)
+ && chunk_is_token(pc, CT_USING_STMT)
+ && (!options::indent_using_block()))
+ {
+ // don't indent the using block
+ }
+ else
+ {
+ const E_Token parent = frm.top().type;
+
+ Chunk *vbrace = insert_vbrace_open_before(pc, frm);
+ set_chunk_parent(vbrace, parent);
+
+ frm.level++;
+ frm.brace_level++;
+ LOG_FMT(LBCSPOP, "%s(%d): frm.brace_level increased to %zu\n",
+ __func__, __LINE__, frm.brace_level);
+ log_pcf_flags(LBCSPOP, pc->flags);
+
+ frm.push(vbrace, __func__, __LINE__, brace_stage_e::NONE);
+ // "+VBrace");
+
+ frm.top().parent = parent;
+
+ // update the level of pc
+ pc->level = frm.level;
+ pc->brace_level = frm.brace_level;
+
+ // Mark as a start of a statement
+ frm.stmt_count = 0;
+ frm.expr_count = 0;
+ LOG_FMT(LTOK, "%s(%d): frm.stmt_count is %zu, frm.expr_count is %zu\n",
+ __func__, __LINE__, frm.stmt_count, frm.expr_count);
+ chunk_flags_set(pc, PCF_STMT_START | PCF_EXPR_START);
+ frm.stmt_count = 1;
+ frm.expr_count = 1;
+ LOG_FMT(LSTMT, "%s(%d): orig_line is %zu, 2.marked '%s' as stmt start\n",
+ __func__, __LINE__, pc->orig_line, pc->Text());
+ }
+ }
+
+ // Check for "constexpr" after CT_IF or CT_ELSEIF
+ if ( frm.top().stage == brace_stage_e::PAREN1
+ && ( frm.top().type == CT_IF
+ || frm.top().type == CT_ELSEIF)
+ && chunk_is_token(pc, CT_CONSTEXPR))
+ {
+ return(false);
+ }
+
+ // Verify open parenthesis in complex statement
+ if ( chunk_is_not_token(pc, CT_PAREN_OPEN)
+ && ( (frm.top().stage == brace_stage_e::PAREN1)
+ || (frm.top().stage == brace_stage_e::WOD_PAREN)))
+ {
+ LOG_FMT(LWARN, "%s(%d): %s, orig_line is %zu, Error: Expected '(', got '%s' for '%s'\n",
+ __func__, __LINE__, cpd.filename.c_str(), pc->orig_line, pc->Text(),
+ get_token_name(frm.top().type));
+
+ // Throw out the complex statement
+ LOG_FMT(LBCSPOP, "%s(%d): pc->orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type));
+ frm.pop(__func__, __LINE__, pc);
+ print_stack(LBCSPOP, "-Error ", frm);
+ cpd.error_count++;
+ }
+ return(false);
+} // check_complex_statements
+
+
+static bool handle_complex_close(ParseFrame &frm, Chunk *pc, const BraceState &braceState)
+{
+ LOG_FUNC_ENTRY();
+
+ if (frm.top().stage == brace_stage_e::PAREN1)
+ {
+ if ( pc->next != nullptr
+ && pc->next->type == CT_WHEN)
+ {
+ frm.top().type = pc->type;
+ frm.top().stage = brace_stage_e::CATCH_WHEN;
+
+ return(true);
+ }
+ // PAREN1 always => BRACE2
+ frm.top().stage = brace_stage_e::BRACE2;
+ }
+ else if (frm.top().stage == brace_stage_e::BRACE2)
+ {
+ // BRACE2: IF => ELSE, anything else => close
+ if ( (frm.top().type == CT_IF)
+ || (frm.top().type == CT_ELSEIF))
+ {
+ frm.top().stage = brace_stage_e::ELSE;
+
+ // If the next chunk isn't CT_ELSE, close the statement
+ Chunk *next = pc->GetNextNcNnl();
+
+ if ( next->IsNullChunk()
+ || chunk_is_not_token(next, CT_ELSE))
+ {
+ LOG_FMT(LBCSPOP, "%s(%d): no CT_ELSE, pc->orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type));
+ frm.pop(__func__, __LINE__, pc);
+ print_stack(LBCSPOP, "-IF-HCS ", frm);
+
+ return(close_statement(frm, pc, braceState));
+ }
+ }
+ else if ( (frm.top().type == CT_TRY)
+ || (frm.top().type == CT_CATCH))
+ {
+ frm.top().stage = brace_stage_e::CATCH;
+
+ // If the next chunk isn't CT_CATCH or CT_FINALLY, close the statement
+ Chunk *next = pc->GetNextNcNnl();
+
+ if ( chunk_is_not_token(next, CT_CATCH)
+ && chunk_is_not_token(next, CT_FINALLY))
+ {
+ LOG_FMT(LBCSPOP, "%s(%d): pc->orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type));
+ frm.pop(__func__, __LINE__, pc);
+ print_stack(LBCSPOP, "-TRY-HCS ", frm);
+
+ return(close_statement(frm, pc, braceState));
+ }
+ }
+ else
+ {
+ LOG_FMT(LNOTE, "%s(%d): close_statement on %s brace_stage_e::BRACE2\n",
+ __func__, __LINE__, get_token_name(frm.top().type));
+ LOG_FMT(LBCSPOP, "%s(%d): pc->orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type));
+ frm.pop(__func__, __LINE__, pc);
+ print_stack(LBCSPOP, "-HCC B2 ", frm);
+
+ return(close_statement(frm, pc, braceState));
+ }
+ }
+ else if (frm.top().stage == brace_stage_e::BRACE_DO)
+ {
+ frm.top().stage = brace_stage_e::WHILE;
+ }
+ else if (frm.top().stage == brace_stage_e::WOD_PAREN)
+ {
+ LOG_FMT(LNOTE, "%s(%d): close_statement on %s brace_stage_e::WOD_PAREN\n",
+ __func__, __LINE__, get_token_name(frm.top().type));
+ frm.top().stage = brace_stage_e::WOD_SEMI;
+ print_stack(LBCSPOP, "-HCC WoDP ", frm);
+ }
+ else if (frm.top().stage == brace_stage_e::WOD_SEMI)
+ {
+ LOG_FMT(LNOTE, "%s(%d): close_statement on %s brace_stage_e::WOD_SEMI\n",
+ __func__, __LINE__, get_token_name(frm.top().type));
+ LOG_FMT(LBCSPOP, "%s(%d): pc->orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type));
+ frm.pop(__func__, __LINE__, pc);
+ print_stack(LBCSPOP, "-HCC WoDS ", frm);
+
+ return(close_statement(frm, pc, braceState));
+ }
+ else
+ {
+ // PROBLEM
+ LOG_FMT(LWARN, "%s(%d): %s:%zu Error: TOS.type='%s' TOS.stage=%u\n",
+ __func__, __LINE__, cpd.filename.c_str(), pc->orig_line,
+ get_token_name(frm.top().type),
+ (unsigned int)frm.top().stage);
+ cpd.error_count++;
+ }
+ return(false);
+} // handle_complex_close
+
+
+static void mark_namespace(Chunk *pns)
+{
+ LOG_FUNC_ENTRY();
+ // Issue #1813
+ Chunk *br_close;
+ bool is_using = false;
+
+ Chunk *pc = pns->GetPrevNcNnl();
+
+ if (chunk_is_token(pc, CT_USING))
+ {
+ is_using = true;
+ set_chunk_parent(pns, CT_USING);
+ }
+ pc = pns->GetNextNcNnl();
+
+ while (pc->IsNotNullChunk())
+ {
+ set_chunk_parent(pc, CT_NAMESPACE);
+
+ if (chunk_is_not_token(pc, CT_BRACE_OPEN))
+ {
+ if (chunk_is_token(pc, CT_SEMICOLON))
+ {
+ if (is_using)
+ {
+ set_chunk_parent(pc, CT_USING);
+ }
+ return;
+ }
+ pc = pc->GetNextNcNnl();
+ continue;
+ }
+ log_rule_B("indent_namespace_limit");
+
+ if ( (options::indent_namespace_limit() > 0)
+ && ((br_close = chunk_skip_to_match(pc)) != nullptr))
+ {
+ // br_close->orig_line is always >= pc->orig_line;
+ size_t numberOfLines = br_close->orig_line - pc->orig_line - 1; // Issue #2345
+ LOG_FMT(LTOK, "%s(%d): br_close->orig_line is %zu, pc->orig_line is %zu\n",
+ __func__, __LINE__, br_close->orig_line, pc->orig_line);
+ LOG_FMT(LTOK, "%s(%d): numberOfLines is %zu, indent_namespace_limit() is %d\n",
+ __func__, __LINE__, numberOfLines, options::indent_namespace_limit());
+
+ log_rule_B("indent_namespace_limit");
+
+ if (numberOfLines > options::indent_namespace_limit())
+ {
+ LOG_FMT(LTOK, "%s(%d): PCF_LONG_BLOCK is set\n", __func__, __LINE__);
+ chunk_flags_set(pc, PCF_LONG_BLOCK);
+ chunk_flags_set(br_close, PCF_LONG_BLOCK);
+ }
+ }
+ flag_parens(pc, PCF_IN_NAMESPACE, CT_NONE, CT_NAMESPACE, false);
+ return;
+ }
+} // mark_namespace
+
+
+static Chunk *insert_vbrace(Chunk *pc, bool after, const ParseFrame &frm)
+{
+ LOG_FUNC_ENTRY();
+
+ Chunk chunk;
+
+ set_chunk_parent(&chunk, frm.top().type);
+ chunk.orig_line = pc->orig_line;
+ chunk.level = frm.level;
+ chunk.pp_level = frm.pp_level;
+ chunk.brace_level = frm.brace_level;
+ chunk.flags = pc->flags & PCF_COPY_FLAGS;
+ chunk.str = "";
+
+ if (after)
+ {
+ chunk.orig_col = pc->orig_col;
+ set_chunk_type(&chunk, CT_VBRACE_CLOSE);
+ return(chunk_add_after(&chunk, pc));
+ }
+ Chunk *ref = pc->GetPrev();
+
+ if (ref->IsNullChunk())
+ {
+ return(nullptr);
+ }
+
+ if (!ref->flags.test(PCF_IN_PREPROC))
+ {
+ chunk.flags &= ~PCF_IN_PREPROC;
+ }
+ bool ref_is_comment = ref->IsComment(); // Issue #3351
+
+ while ( chunk_is_newline(ref)
+ || ref->IsComment())
+ {
+ ref->level++;
+ ref->brace_level++;
+ ref = ref->GetPrev();
+ }
+
+ if (ref->IsNullChunk())
+ {
+ return(nullptr);
+ }
+
+ // Don't back into a preprocessor
+ if ( !pc->flags.test(PCF_IN_PREPROC)
+ && ref->flags.test(PCF_IN_PREPROC))
+ {
+ if (chunk_is_token(ref, CT_PREPROC_BODY))
+ {
+ while ( ref->IsNotNullChunk()
+ && ref->flags.test(PCF_IN_PREPROC))
+ {
+ ref = ref->GetPrev();
+ }
+ }
+ else
+ {
+ ref = ref->GetNext();
+
+ if (chunk_is_token(ref, CT_COMMENT)) // Issue #3034
+ {
+ ref = ref->GetNextNc();
+ }
+ }
+ }
+
+ if (ref_is_comment) // Issue #3351
+ {
+ ref = ref->GetNext();
+ }
+
+ if (ref->IsNullChunk())
+ {
+ return(nullptr);
+ }
+ chunk.orig_line = ref->orig_line;
+ chunk.orig_col = ref->orig_col;
+ chunk.column = ref->column + ref->Len() + 1;
+ chunk.pp_level = ref->pp_level; // Issue #3055
+ set_chunk_type(&chunk, CT_VBRACE_OPEN);
+
+ return(chunk_add_after(&chunk, ref));
+} // insert_vbrace
+
+
+bool close_statement(ParseFrame &frm, Chunk *pc, const BraceState &braceState)
+{
+ LOG_FUNC_ENTRY();
+
+ if (pc == nullptr)
+ {
+ throw invalid_argument(string(__func__) + ":" + to_string(__LINE__)
+ + "args cannot be nullptr");
+ }
+ LOG_FMT(LTOK, "%s(%d): orig_line is %zu, type is %s, '%s' type is %s, stage is %u\n",
+ __func__, __LINE__, pc->orig_line,
+ get_token_name(pc->type), pc->Text(),
+ get_token_name(frm.top().type),
+ (unsigned int)frm.top().stage);
+
+ if (braceState.consumed)
+ {
+ frm.stmt_count = 0;
+ frm.expr_count = 0;
+ LOG_FMT(LSTMT, "%s(%d): orig_line is %zu> reset2 stmt on '%s'\n",
+ __func__, __LINE__, pc->orig_line, pc->Text());
+ }
+ /*
+ * Insert a CT_VBRACE_CLOSE, if needed:
+ * If we are in a virtual brace and we are not ON a CT_VBRACE_CLOSE add one
+ */
+ Chunk *vbc = pc;
+
+ if (frm.top().type == CT_VBRACE_OPEN)
+ {
+ // If the current token has already been consumed, then add after it
+ if (braceState.consumed)
+ {
+ insert_vbrace_close_after(pc, frm);
+ }
+ else
+ {
+ // otherwise, add before it and consume the vbrace
+ vbc = pc->GetPrevNcNnl();
+
+ frm.level--;
+ frm.brace_level--;
+ vbc = insert_vbrace_close_after(vbc, frm);
+ set_chunk_parent(vbc, frm.top().parent);
+
+ LOG_FMT(LBCSPOP, "%s(%d): frm.brace_level decreased to %zu\n",
+ __func__, __LINE__, frm.brace_level);
+ log_pcf_flags(LBCSPOP, pc->flags);
+ LOG_FMT(LBCSPOP, "%s(%d): pc->orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type));
+ frm.pop(__func__, __LINE__, pc);
+
+ // Update the token level
+ pc->level = frm.level;
+ pc->brace_level = frm.brace_level;
+
+ print_stack(LBCSPOP, "-CS VB ", frm);
+
+ // And repeat the close
+ close_statement(frm, pc, braceState);
+ return(true);
+ }
+ }
+
+ // See if we are done with a complex statement
+ if (frm.top().stage != brace_stage_e::NONE)
+ {
+ if (handle_complex_close(frm, vbc, braceState))
+ {
+ return(true);
+ }
+ }
+ return(false);
+} // close_statement
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/brace_cleanup.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/brace_cleanup.h
index 4b2cfbba..4b2cfbba 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/brace_cleanup.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/brace_cleanup.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/braces.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/braces.cpp
new file mode 100644
index 00000000..0f88354c
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/braces.cpp
@@ -0,0 +1,1700 @@
+/**
+ * @file braces.cpp
+ * Adds or removes braces.
+ *
+ * @author Ben Gardner
+ * @license GPL v2+
+ */
+
+#include "braces.h"
+
+#include "calculate_closing_brace_position.h"
+#include "combine_tools.h"
+#include "newlines.h"
+#include "prototypes.h"
+
+constexpr static auto LCURRENT = LBR;
+
+using namespace uncrustify;
+
+using std::vector;
+
+
+//! Converts a single brace into a virtual brace
+static void convert_brace(Chunk *br);
+
+
+//! Converts a single virtual brace into a real brace
+static void convert_vbrace(Chunk *br);
+
+
+static void convert_vbrace_to_brace(void);
+
+
+//! Go backwards to honor brace newline removal limits
+static void examine_braces(void);
+
+
+/**
+ * Step forward and count the number of semi colons at the current level.
+ * Abort if more than 1 or if we enter a preprocessor
+ */
+static void examine_brace(Chunk *bopen);
+
+
+static void move_case_break(void);
+
+
+static void move_case_return(void);
+
+
+static void mod_case_brace(void);
+
+
+static void mod_full_brace_if_chain(void);
+
+
+/**
+ * Checks to see if the braces can be removed.
+ * - less than a certain length
+ * - doesn't mess up if/else stuff
+ */
+static bool can_remove_braces(Chunk *bopen);
+
+
+/**
+ * Checks to see if the virtual braces should be converted to real braces.
+ * - over a certain length
+ *
+ * @param vbopen Virtual Brace Open chunk
+ *
+ * @return true (convert to real braces) or false (leave alone)
+ */
+static bool should_add_braces(Chunk *vbopen);
+
+
+/**
+ * Collect the text into txt that contains the full tag name.
+ * Mainly for collecting namespace 'a.b.c' or function 'foo::bar()' names.
+ */
+static void append_tag_name(unc_text &txt, Chunk *pc);
+
+
+//! Remove the case brace, if allowable.
+static Chunk *mod_case_brace_remove(Chunk *br_open);
+
+
+//! Add the case brace, if allowable.
+static Chunk *mod_case_brace_add(Chunk *cl_colon);
+
+
+/**
+ * Traverse the if chain and see if all can be removed
+ *
+ * @param br_start chunk pointing to opening brace of if clause
+ */
+static void process_if_chain(Chunk *br_start);
+
+
+/**
+ * Check if parenthesis pair that comes before a brace spans multiple lines
+ *
+ *
+ * @param brace the brace chunk whose predecessing parenthesis will be checked
+ *
+ * @pre the brace chunk cannot be a nullptr,
+ * it needs to be of type CT_BRACE_OPEN or CT_BRACE_CLOSE,
+ * its parent type needs to be one of this types:
+ * CT_IF, CT_ELSEIF, CT_FOR, CT_USING_STMT, CT_WHILE,
+ * CT_FUNC_CLASS_DEF, CT_FUNC_DEF
+ *
+ * @return false: if preconditions are not met,
+ * if an error occurs while counting the newline between the
+ * parenthesis or
+ * when no newlines are found between the parenthesis
+ */
+static bool paren_multiline_before_brace(Chunk *brace)
+{
+ if ( brace == nullptr
+ || ( chunk_is_not_token(brace, CT_BRACE_OPEN)
+ && chunk_is_not_token(brace, CT_BRACE_CLOSE))
+ || ( get_chunk_parent_type(brace) != CT_IF
+ && get_chunk_parent_type(brace) != CT_ELSEIF
+ && get_chunk_parent_type(brace) != CT_FOR
+ && get_chunk_parent_type(brace) != CT_USING_STMT
+ && get_chunk_parent_type(brace) != CT_WHILE
+ && get_chunk_parent_type(brace) != CT_FUNC_CLASS_DEF
+ && get_chunk_parent_type(brace) != CT_FUNC_DEF))
+ {
+ return(false);
+ }
+ const auto paren_t = CT_SPAREN_CLOSE;
+
+ // find parenthesis pair of the if/for/while/...
+ auto paren_close = brace->GetPrevType(paren_t, brace->level, E_Scope::ALL);
+ auto paren_open = chunk_skip_to_match_rev(paren_close, E_Scope::ALL);
+
+ if ( paren_close->IsNullChunk()
+ || paren_open->IsNullChunk()
+ || paren_close == brace
+ || paren_open == paren_close)
+ {
+ return(false);
+ }
+ // determine number of lines in the parenthesis pair spans
+ auto nl_count = size_t{};
+ const auto ret_flag = newlines_between(paren_open, paren_close, nl_count);
+
+ if (!ret_flag)
+ {
+ LOG_FMT(LERR, "%s(%d): newlines_between error\n", __func__, __LINE__);
+ return(false);
+ }
+ // nl_count = 0 -> 1 line
+ return(nl_count > 0);
+}
+
+
+void do_braces(void)
+{
+ LOG_FUNC_ENTRY();
+ // Mark one-liners
+ // Issue #2232 put this at the beginning
+ Chunk *pc = Chunk::GetHead()->GetNextNcNnl();
+
+ while (pc->IsNotNullChunk())
+ {
+ if ( chunk_is_not_token(pc, CT_BRACE_OPEN)
+ && chunk_is_not_token(pc, CT_VBRACE_OPEN))
+ {
+ pc = pc->GetNextNcNnl();
+ continue;
+ }
+ Chunk *br_open = pc;
+ const E_Token brc_type = E_Token(pc->type + 1); // corresponds to closing type
+ // Detect empty bodies
+ Chunk *tmp = pc->GetNextNcNnl();
+
+ if (chunk_is_token(tmp, brc_type))
+ {
+ chunk_flags_set(br_open, PCF_EMPTY_BODY);
+ chunk_flags_set(tmp, PCF_EMPTY_BODY);
+ }
+ // Scan for the brace close or a newline
+ tmp = br_open->GetNextNc();
+
+ while (tmp->IsNotNullChunk())
+ {
+ if (chunk_is_newline(tmp))
+ {
+ break;
+ }
+
+ if ( chunk_is_token(tmp, brc_type)
+ && br_open->level == tmp->level)
+ {
+ flag_series(br_open, tmp, PCF_ONE_LINER);
+ break;
+ }
+ tmp = tmp->GetNextNc();
+ }
+ pc = pc->GetNextNcNnl();
+ }
+ log_rule_B("mod_full_brace_if_chain");
+ log_rule_B("mod_full_brace_if_chain_only");
+
+ if ( options::mod_full_brace_if_chain()
+ || options::mod_full_brace_if_chain_only())
+ {
+ mod_full_brace_if_chain();
+ }
+ log_rule_B("mod_full_brace_if");
+ log_rule_B("mod_full_brace_do");
+ log_rule_B("mod_full_brace_for");
+ log_rule_B("mod_full_brace_using");
+ log_rule_B("mod_full_brace_while");
+
+ if ((options::mod_full_brace_if() |
+ options::mod_full_brace_do() |
+ options::mod_full_brace_for() |
+ options::mod_full_brace_using() |
+ options::mod_full_brace_while()) & IARF_REMOVE)
+ {
+ examine_braces();
+ }
+ // convert vbraces if needed
+ log_rule_B("mod_full_brace_if");
+ log_rule_B("mod_full_brace_do");
+ log_rule_B("mod_full_brace_for");
+ log_rule_B("mod_full_brace_function");
+ log_rule_B("mod_full_brace_using");
+ log_rule_B("mod_full_brace_while");
+
+ if ((options::mod_full_brace_if() |
+ options::mod_full_brace_do() |
+ options::mod_full_brace_for() |
+ options::mod_full_brace_function() |
+ options::mod_full_brace_using() |
+ options::mod_full_brace_while()) & IARF_ADD)
+ {
+ convert_vbrace_to_brace();
+ }
+ log_rule_B("mod_case_brace");
+
+ if (options::mod_case_brace() != IARF_IGNORE)
+ {
+ mod_case_brace();
+ }
+ log_rule_B("mod_move_case_break");
+
+ if (options::mod_move_case_break())
+ {
+ move_case_break();
+ }
+ log_rule_B("mod_move_case_return");
+
+ if (options::mod_move_case_return())
+ {
+ move_case_return();
+ }
+} // do_braces
+
+
+static void examine_braces(void)
+{
+ LOG_FUNC_ENTRY();
+
+ log_rule_B("mod_full_brace_nl_block_rem_mlcond");
+ const auto multiline_block = options::mod_full_brace_nl_block_rem_mlcond();
+
+ log_rule_B("mod_full_brace_if");
+ log_rule_B("mod_full_brace_do");
+ log_rule_B("mod_full_brace_for");
+ log_rule_B("mod_full_brace_using");
+ log_rule_B("mod_full_brace_while");
+
+ for (Chunk *pc = Chunk::GetTail(); pc->IsNotNullChunk();)
+ {
+ Chunk *prev = pc->GetPrevType(CT_BRACE_OPEN, -1);
+
+ if ( chunk_is_token(pc, CT_BRACE_OPEN)
+ && !pc->flags.test(PCF_IN_PREPROC)
+ && ( ( ( get_chunk_parent_type(pc) == CT_IF
+ || get_chunk_parent_type(pc) == CT_ELSE
+ || get_chunk_parent_type(pc) == CT_ELSEIF)
+ && options::mod_full_brace_if() == IARF_REMOVE)
+ || ( get_chunk_parent_type(pc) == CT_DO
+ && options::mod_full_brace_do() == IARF_REMOVE)
+ || ( get_chunk_parent_type(pc) == CT_FOR
+ && options::mod_full_brace_for() == IARF_REMOVE)
+ || ( get_chunk_parent_type(pc) == CT_USING_STMT
+ && options::mod_full_brace_using() == IARF_REMOVE)
+ || ( get_chunk_parent_type(pc) == CT_WHILE
+ && options::mod_full_brace_while() == IARF_REMOVE)))
+ {
+ if ( multiline_block
+ && paren_multiline_before_brace(pc))
+ {
+ pc = prev;
+ continue;
+ }
+ examine_brace(pc);
+ }
+ pc = prev;
+ }
+} // examine_braces
+
+
+static bool should_add_braces(Chunk *vbopen)
+{
+ LOG_FUNC_ENTRY();
+ log_rule_B("mod_full_brace_nl");
+ const size_t nl_max = options::mod_full_brace_nl();
+
+ if (nl_max == 0)
+ {
+ return(false);
+ }
+ LOG_FMT(LBRDEL, "%s(%d): start on %zu:\n",
+ __func__, __LINE__, vbopen->orig_line);
+
+ size_t nl_count = 0;
+
+ Chunk *pc = Chunk::NullChunkPtr;
+
+ for (pc = vbopen->GetNextNc(E_Scope::PREPROC);
+ (pc->IsNotNullChunk() && pc->level > vbopen->level);
+ pc = pc->GetNextNc(E_Scope::PREPROC))
+ {
+ if (chunk_is_newline(pc))
+ {
+ nl_count += pc->nl_count;
+ }
+ }
+
+ if ( pc->IsNotNullChunk()
+ && nl_count > nl_max
+ && vbopen->pp_level == pc->pp_level)
+ {
+ LOG_FMT(LBRDEL, "%s(%d): exceeded %zu newlines\n",
+ __func__, __LINE__, nl_max);
+ return(true);
+ }
+ return(false);
+}
+
+
+static bool can_remove_braces(Chunk *bopen)
+{
+ LOG_FUNC_ENTRY();
+ LOG_FMT(LBRDEL, "%s(%d): start on line %zu:\n",
+ __func__, __LINE__, bopen->orig_line);
+
+ // Cannot remove braces inside a preprocessor
+ if (bopen->flags.test(PCF_IN_PREPROC))
+ {
+ return(false);
+ }
+ Chunk *pc = bopen->GetNextNcNnl(E_Scope::PREPROC);
+
+ if (chunk_is_token(pc, CT_BRACE_CLOSE))
+ {
+ // Can't remove empty statement
+ return(false);
+ }
+ const size_t level = bopen->level + 1;
+
+ log_rule_B("mod_full_brace_nl");
+ const size_t nl_max = options::mod_full_brace_nl();
+ Chunk *prev = Chunk::NullChunkPtr;
+
+ size_t semi_count = 0;
+ bool hit_semi = false;
+ size_t nl_count = 0;
+ size_t if_count = 0;
+ int br_count = 0;
+
+ pc = bopen->GetNextNc(E_Scope::ALL);
+ LOG_FMT(LBRDEL, "%s(%d): - begin with token '%s', orig_line is %zu, orig_col is %zu\n",
+ __func__, __LINE__, pc->Text(), pc->orig_line, pc->orig_col);
+
+ while ( pc->IsNotNullChunk()
+ && pc->level >= level)
+ {
+ LOG_FMT(LBRDEL, "%s(%d): test token '%s', orig_line is %zu, orig_col is %zu\n",
+ __func__, __LINE__, pc->Text(), pc->orig_line, pc->orig_col);
+
+ if (pc->flags.test(PCF_IN_PREPROC))
+ {
+ // Cannot remove braces that contain a preprocessor
+ return(false);
+ }
+
+ if (chunk_is_newline(pc))
+ {
+ nl_count += pc->nl_count;
+
+ if ( nl_max > 0
+ && nl_count > nl_max)
+ {
+ LOG_FMT(LBRDEL, "%s(%d): exceeded %zu newlines\n",
+ __func__, __LINE__, nl_max);
+ return(false);
+ }
+ }
+ else
+ {
+ if (chunk_is_token(pc, CT_BRACE_OPEN))
+ {
+ br_count++;
+ }
+ else if (chunk_is_token(pc, CT_BRACE_CLOSE))
+ {
+ if (br_count == 0)
+ {
+ fprintf(stderr, "%s(%d): br_count is ZERO, cannot be decremented, at line %zu, column %zu\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col);
+ log_flush(true);
+ exit(EX_SOFTWARE);
+ }
+ br_count--;
+
+ if (pc->level == level)
+ {
+ // mean a statement in a braces { stmt; }
+ // as a statement with a semicolon { stmt; };
+ ++semi_count;
+ hit_semi = true;
+ }
+ }
+ else if ( ( chunk_is_token(pc, CT_IF)
+ || chunk_is_token(pc, CT_ELSEIF))
+ && br_count == 0)
+ {
+ if_count++;
+ }
+
+ if (pc->level == level)
+ {
+ if ( semi_count > 0
+ && hit_semi)
+ {
+ // should have bailed due to close brace level drop
+ LOG_FMT(LBRDEL, "%s(%d): no close brace\n", __func__, __LINE__);
+ return(false);
+ }
+ LOG_FMT(LBRDEL, "%s(%d): Text() '%s', orig_line is %zu, semi_count is %zu\n",
+ __func__, __LINE__, pc->Text(), pc->orig_line, semi_count);
+
+ if (chunk_is_token(pc, CT_ELSE))
+ {
+ LOG_FMT(LBRDEL, "%s(%d): bailed on '%s' on line %zu\n",
+ __func__, __LINE__, pc->Text(), pc->orig_line);
+ return(false);
+ }
+
+ if ( chunk_is_semicolon(pc)
+ || chunk_is_token(pc, CT_IF)
+ || chunk_is_token(pc, CT_ELSEIF)
+ || chunk_is_token(pc, CT_FOR)
+ || chunk_is_token(pc, CT_DO)
+ || chunk_is_token(pc, CT_WHILE)
+ || chunk_is_token(pc, CT_USING_STMT)
+ || ( chunk_is_token(pc, CT_BRACE_OPEN)
+ && chunk_is_token(prev, CT_FPAREN_CLOSE)))
+ {
+ hit_semi |= chunk_is_semicolon(pc);
+
+ if (++semi_count > 1)
+ {
+ LOG_FMT(LBRDEL, "%s(%d): bailed on %zu because of '%s' on line %zu\n",
+ __func__, __LINE__, bopen->orig_line, pc->Text(), pc->orig_line);
+ return(false);
+ }
+ }
+ }
+ }
+ prev = pc;
+ pc = pc->GetNextNc();
+ }
+
+ if (pc->IsNullChunk())
+ {
+ LOG_FMT(LBRDEL, "%s(%d): pc is null chunk\n", __func__, __LINE__);
+ return(false);
+ }
+
+ if ( chunk_is_token(pc, CT_BRACE_CLOSE)
+ && get_chunk_parent_type(pc) == CT_IF)
+ {
+ Chunk *next = pc->GetNextNcNnl(E_Scope::PREPROC);
+ Chunk *tmp_prev = pc->GetPrevNcNnl(E_Scope::PREPROC);
+
+ if ( chunk_is_token(next, CT_ELSE)
+ && ( chunk_is_token(tmp_prev, CT_BRACE_CLOSE)
+ || chunk_is_token(tmp_prev, CT_VBRACE_CLOSE))
+ && get_chunk_parent_type(tmp_prev) == CT_IF)
+ {
+ LOG_FMT(LBRDEL, "%s(%d): - bailed on '%s'[%s] on line %zu due to 'if' and 'else' sequence\n",
+ __func__, __LINE__, get_token_name(pc->type), get_token_name(get_chunk_parent_type(pc)),
+ pc->orig_line);
+ return(false);
+ }
+ }
+ LOG_FMT(LBRDEL, "%s(%d): - end on '%s' on line %zu. if_count is %zu semi_count is %zu\n",
+ __func__, __LINE__, get_token_name(pc->type), pc->orig_line, if_count, semi_count);
+
+ return( chunk_is_token(pc, CT_BRACE_CLOSE)
+ && pc->pp_level == bopen->pp_level);
+} // can_remove_braces
+
+
+static void examine_brace(Chunk *bopen)
+{
+ LOG_FUNC_ENTRY();
+ LOG_FMT(LBRDEL, "%s(%d): start on orig_line %zu, bopen->level is %zu\n",
+ __func__, __LINE__, bopen->orig_line, bopen->level);
+
+ const size_t level = bopen->level + 1;
+
+ log_rule_B("mod_full_brace_nl");
+ const size_t nl_max = options::mod_full_brace_nl();
+
+ Chunk *prev = Chunk::NullChunkPtr;
+ size_t semi_count = 0;
+ bool hit_semi = false;
+ size_t nl_count = 0;
+ size_t if_count = 0;
+ int br_count = 0;
+
+ Chunk *pc = bopen->GetNextNc();
+
+ while ( pc->IsNotNullChunk()
+ && pc->level >= level)
+ {
+ if (chunk_is_token(pc, CT_NEWLINE))
+ {
+ LOG_FMT(LBRDEL, "%s(%d): orig_line is %zu, orig_col is %zu, <Newline>\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col);
+ }
+ else
+ {
+ LOG_FMT(LBRDEL, "%s(%d): orig_line is %zu, orig_col is %zu, Text() '%s'\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text());
+ }
+
+ if (pc->flags.test(PCF_IN_PREPROC))
+ {
+ // Cannot remove braces that contain a preprocessor
+ LOG_FMT(LBRDEL, "%s(%d): PREPROC\n", __func__, __LINE__);
+ return;
+ }
+
+ if (chunk_is_newline(pc))
+ {
+ nl_count += pc->nl_count;
+
+ if ( nl_max > 0
+ && nl_count > nl_max)
+ {
+ LOG_FMT(LBRDEL, "%s(%d): exceeded %zu newlines\n",
+ __func__, __LINE__, nl_max);
+ return;
+ }
+ }
+ else
+ {
+ LOG_FMT(LBRDEL, "%s(%d): for pc->Text() '%s', pc->level is %zu, bopen->level is %zu\n",
+ __func__, __LINE__, pc->Text(), pc->level, bopen->level);
+
+ if ( chunk_is_token(pc, CT_BRACE_OPEN)
+ && pc->level == bopen->level)
+ {
+ br_count++;
+ LOG_FMT(LBRDEL, "%s(%d): br_count is now %d, pc->level is %zu, bopen->level is %zu\n",
+ __func__, __LINE__, br_count, pc->level, bopen->level);
+ }
+ else if ( chunk_is_token(pc, CT_BRACE_CLOSE)
+ && pc->level == bopen->level)
+ {
+ if (br_count == 0)
+ {
+ fprintf(stderr, "%s(%d): br_count is ZERO, cannot be decremented, at line %zu, column %zu\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col);
+ log_flush(true);
+ exit(EX_SOFTWARE);
+ }
+ br_count--;
+ LOG_FMT(LBRDEL, "%s(%d): br_count is now %d, pc->level is %zu, bopen->level is %zu\n",
+ __func__, __LINE__, br_count, pc->level, bopen->level);
+
+ if (br_count == 0)
+ {
+ Chunk *next = pc->GetNextNcNnl(E_Scope::PREPROC);
+
+ if ( next->IsNullChunk()
+ || chunk_is_not_token(next, CT_BRACE_CLOSE))
+ {
+ LOG_FMT(LBRDEL, "%s(%d): junk after close brace\n", __func__, __LINE__);
+ return;
+ }
+ }
+ }
+ else if ( ( chunk_is_token(pc, CT_IF)
+ || chunk_is_token(pc, CT_ELSEIF))
+ && br_count == 0)
+ {
+ if_count++;
+ }
+ LOG_FMT(LBRDEL, "%s(%d): pc->level is %zu, level is %zu\n",
+ __func__, __LINE__, pc->level, level);
+
+ if (pc->level == level)
+ {
+ if ( semi_count > 0
+ && hit_semi)
+ {
+ // should have bailed due to close brace level drop
+ LOG_FMT(LBRDEL, "%s(%d): no close brace\n", __func__, __LINE__);
+ return;
+ }
+ LOG_FMT(LBRDEL, "%s(%d): Text() '%s', orig_line is %zu, semi_count is %zu\n",
+ __func__, __LINE__, pc->Text(), pc->orig_line, semi_count);
+
+ if (chunk_is_token(pc, CT_ELSE))
+ {
+ LOG_FMT(LBRDEL, "%s(%d): bailed on '%s' on line %zu\n",
+ __func__, __LINE__, pc->Text(), pc->orig_line);
+ return;
+ }
+
+ if (prev->IsNotNullChunk())
+ {
+ LOG_FMT(LBRDEL, "%s(%d): orig_line is %zu, orig_col is %zu, Text() '%s', prev->Text '%s', prev->type %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), prev->Text(), get_token_name(prev->type));
+ }
+ else
+ {
+ LOG_FMT(LBRDEL, "%s(%d): orig_line is %zu, orig_col is %zu, Text() '%s', prev is a null chunk\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text());
+ }
+ LOG_FMT(LBRDEL, "%s(%d): for pc->Text() '%s', pc->level is %zu, bopen->level is %zu\n",
+ __func__, __LINE__, pc->Text(), pc->level, bopen->level);
+
+ if ( chunk_is_semicolon(pc)
+ || chunk_is_token(pc, CT_IF)
+ || chunk_is_token(pc, CT_ELSEIF)
+ || chunk_is_token(pc, CT_FOR)
+ || chunk_is_token(pc, CT_DO)
+ || chunk_is_token(pc, CT_WHILE)
+ || chunk_is_token(pc, CT_SWITCH)
+ || chunk_is_token(pc, CT_USING_STMT)
+ || ( chunk_is_token(pc, CT_BRACE_OPEN)
+ && pc->level == bopen->level)) // Issue #1758
+ {
+ LOG_FMT(LBRDEL, "%s(%d): pc->Text() '%s', orig_line is %zu, orig_col is %zu, level is %zu\n",
+ __func__, __LINE__, pc->Text(), pc->orig_line, pc->orig_col, pc->level);
+ hit_semi |= chunk_is_semicolon(pc);
+ semi_count++;
+ LOG_FMT(LBRDEL, "%s(%d): semi_count is %zu\n",
+ __func__, __LINE__, semi_count);
+
+ if (semi_count > 1)
+ {
+ LOG_FMT(LBRDEL, "%s(%d): bailed on %zu because of '%s' on line %zu\n",
+ __func__, __LINE__, bopen->orig_line, pc->Text(), pc->orig_line);
+ return;
+ }
+ }
+ }
+ }
+ prev = pc;
+ pc = pc->GetNext(); // Issue #1907
+ }
+
+ if (pc == nullptr)
+ {
+ LOG_FMT(LBRDEL, "%s(%d): pc is nullptr\n", __func__, __LINE__);
+ return;
+ }
+ LOG_FMT(LBRDEL, "%s(%d): - end on '%s' on line %zu. if_count is %zu, semi_count is %zu\n",
+ __func__, __LINE__, get_token_name(pc->type), pc->orig_line, if_count, semi_count);
+
+ if (chunk_is_token(pc, CT_BRACE_CLOSE))
+ {
+ Chunk *next = pc->GetNextNcNnl();
+
+ if (next->IsNotNullChunk())
+ {
+ while (chunk_is_token(next, CT_VBRACE_CLOSE))
+ {
+ next = next->GetNextNcNnl();
+ }
+
+ if (next->IsNotNullChunk())
+ {
+ LOG_FMT(LBRDEL, "%s(%d): orig_line is %zu, orig_col is %zu, next is '%s'\n",
+ __func__, __LINE__, next->orig_line, next->orig_col, get_token_name(next->type));
+ }
+
+ if ( if_count > 0
+ && ( chunk_is_token(next, CT_ELSE)
+ || chunk_is_token(next, CT_ELSEIF)))
+ {
+ LOG_FMT(LBRDEL, "%s(%d): bailed on because 'else' is next and %zu ifs\n",
+ __func__, __LINE__, if_count);
+ return;
+ }
+ }
+ LOG_FMT(LBRDEL, "%s(%d): semi_count is %zu\n",
+ __func__, __LINE__, semi_count);
+
+ if (semi_count > 0)
+ {
+ LOG_FMT(LBRDEL, "%s(%d): bopen->parent_type is %s\n",
+ __func__, __LINE__, get_token_name(get_chunk_parent_type(bopen)));
+
+ if (get_chunk_parent_type(bopen) == CT_ELSE)
+ {
+ Chunk *tmp_next = bopen->GetNextNcNnl();
+
+ if (chunk_is_token(tmp_next, CT_IF))
+ {
+ Chunk *tmp_prev = bopen->GetPrevNcNnl();
+ LOG_FMT(LBRDEL, "%s(%d): else-if removing braces on line %zu and %zu\n",
+ __func__, __LINE__, bopen->orig_line, pc->orig_line);
+
+ chunk_del(bopen);
+ chunk_del(pc);
+ newline_del_between(tmp_prev, tmp_next);
+
+ log_rule_B("nl_else_if");
+
+ if (options::nl_else_if() & IARF_ADD)
+ {
+ newline_add_between(tmp_prev, tmp_next);
+ }
+ return;
+ }
+ }
+ // we have a pair of braces with only 1 statement inside
+ LOG_FMT(LBRDEL, "%s(%d): we have a pair of braces with only 1 statement inside\n",
+ __func__, __LINE__);
+ LOG_FMT(LBRDEL, "%s(%d): removing braces on line %zu and %zu\n",
+ __func__, __LINE__, bopen->orig_line, pc->orig_line);
+ convert_brace(bopen);
+ convert_brace(pc);
+ }
+ else
+ {
+ LOG_FMT(LBRDEL, "%s(%d): empty statement\n", __func__, __LINE__);
+ }
+ }
+ else
+ {
+ LOG_FMT(LBRDEL, "%s(%d): not a close brace? - '%s'\n",
+ __func__, __LINE__, pc->Text());
+ }
+} // examine_brace
+
+
+static void convert_brace(Chunk *br)
+{
+ LOG_FUNC_ENTRY();
+
+ if ( br == nullptr
+ || br->flags.test(PCF_KEEP_BRACE))
+ {
+ return;
+ }
+ Chunk *tmp;
+
+ if (chunk_is_token(br, CT_BRACE_OPEN))
+ {
+ set_chunk_type(br, CT_VBRACE_OPEN);
+ br->str.clear();
+ tmp = br->GetPrev();
+
+ if (tmp->IsNullChunk())
+ {
+ return;
+ }
+ }
+ else if (chunk_is_token(br, CT_BRACE_CLOSE))
+ {
+ set_chunk_type(br, CT_VBRACE_CLOSE);
+ br->str.clear();
+ tmp = br->GetNext();
+
+ if (tmp->IsNullChunk())
+ {
+ return;
+ }
+ }
+ else
+ {
+ return;
+ }
+
+ if (chunk_is_newline(tmp))
+ {
+ if (tmp->nl_count > 1)
+ {
+ if (!br->flags.test(PCF_ONE_LINER)) // Issue #2232
+ {
+ tmp->nl_count--;
+ LOG_FMT(LBRDEL, "%s(%d): tmp->nl_count is %zu\n",
+ __func__, __LINE__, tmp->nl_count);
+ }
+ }
+ else
+ {
+ // Issue #2219
+ // look for opening brace
+ Chunk *brace = Chunk::NullChunkPtr;
+
+ if (chunk_is_token(br, CT_VBRACE_OPEN))
+ {
+ brace = tmp;
+ }
+ else if (chunk_is_token(br, CT_VBRACE_CLOSE))
+ {
+ brace = chunk_skip_to_match_rev(br);
+
+ if (brace->IsNullChunk())
+ {
+ brace = br->GetPrevType(CT_BRACE_OPEN, br->level);
+ }
+ }
+
+ if ( chunk_is_token(br, CT_VBRACE_OPEN)
+ || ( chunk_is_token(br, CT_VBRACE_CLOSE)
+ && brace->orig_line < tmp->orig_line))
+ {
+ if (chunk_safe_to_del_nl(tmp))
+ {
+ chunk_del(tmp);
+ }
+ }
+ }
+ }
+} // convert_brace
+
+
+static void convert_vbrace(Chunk *vbr)
+{
+ LOG_FUNC_ENTRY();
+
+ if (vbr == nullptr)
+ {
+ return;
+ }
+
+ if (chunk_is_token(vbr, CT_VBRACE_OPEN))
+ {
+ set_chunk_type(vbr, CT_BRACE_OPEN);
+ vbr->str = "{";
+
+ /*
+ * If the next chunk is a preprocessor, then move the open brace after the
+ * preprocessor.
+ */
+ Chunk *tmp = vbr->GetNext();
+
+ if (chunk_is_token(tmp, CT_PREPROC))
+ {
+ tmp = vbr->GetNext(E_Scope::PREPROC);
+ chunk_move_after(vbr, tmp);
+ newline_add_after(vbr);
+ }
+ }
+ else if (chunk_is_token(vbr, CT_VBRACE_CLOSE))
+ {
+ set_chunk_type(vbr, CT_BRACE_CLOSE);
+ vbr->str = "}";
+
+ /*
+ * If the next chunk is a comment, followed by a newline, then
+ * move the brace after the newline and add another newline after
+ * the close brace.
+ */
+ Chunk *tmp = vbr->GetNext();
+
+ if (tmp->IsComment())
+ {
+ tmp = tmp->GetNext();
+
+ if (chunk_is_newline(tmp))
+ {
+ chunk_move_after(vbr, tmp);
+ newline_add_after(vbr);
+ }
+ }
+ }
+} // convert_vbrace
+
+
+static void convert_vbrace_to_brace(void)
+{
+ LOG_FUNC_ENTRY();
+
+ // Find every vbrace open
+ log_rule_B("mod_full_brace_if");
+ log_rule_B("mod_full_brace_if_chain");
+ log_rule_B("mod_full_brace_for");
+ log_rule_B("mod_full_brace_do");
+ log_rule_B("mod_full_brace_while");
+ log_rule_B("mod_full_brace_using");
+ log_rule_B("mod_full_brace_function");
+
+ for (Chunk *pc = Chunk::GetHead(); pc != nullptr && pc->IsNotNullChunk(); pc = pc->GetNextNcNnl())
+ {
+ if (chunk_is_not_token(pc, CT_VBRACE_OPEN))
+ {
+ continue;
+ }
+ auto const in_preproc = pc->flags.test(PCF_IN_PREPROC);
+
+ if ( ( ( get_chunk_parent_type(pc) == CT_IF
+ || get_chunk_parent_type(pc) == CT_ELSE
+ || get_chunk_parent_type(pc) == CT_ELSEIF)
+ && (options::mod_full_brace_if() & IARF_ADD)
+ && !options::mod_full_brace_if_chain())
+ || ( get_chunk_parent_type(pc) == CT_FOR
+ && (options::mod_full_brace_for() & IARF_ADD))
+ || ( get_chunk_parent_type(pc) == CT_DO
+ && (options::mod_full_brace_do() & IARF_ADD))
+ || ( get_chunk_parent_type(pc) == CT_WHILE
+ && (options::mod_full_brace_while() & IARF_ADD))
+ || ( get_chunk_parent_type(pc) == CT_USING_STMT
+ && (options::mod_full_brace_using() & IARF_ADD))
+ || ( get_chunk_parent_type(pc) == CT_FUNC_DEF
+ && (options::mod_full_brace_function() & IARF_ADD)))
+ {
+ // Find the matching vbrace close
+ Chunk *vbc = Chunk::NullChunkPtr;
+ Chunk *tmp = pc->GetNext();
+
+ while (tmp->IsNotNullChunk())
+ {
+ if ( in_preproc
+ && !tmp->flags.test(PCF_IN_PREPROC))
+ {
+ // Can't leave a preprocessor
+ break;
+ }
+
+ if ( pc->brace_level == tmp->brace_level
+ && chunk_is_token(tmp, CT_VBRACE_CLOSE)
+ && get_chunk_parent_type(pc) == get_chunk_parent_type(tmp)
+ && ((tmp->flags & PCF_IN_PREPROC) == (pc->flags & PCF_IN_PREPROC)))
+ {
+ vbc = tmp;
+ break;
+ }
+ tmp = tmp->GetNext();
+ }
+
+ if (vbc->IsNullChunk())
+ {
+ continue;
+ }
+ // if we found a corresponding virtual closing brace
+ convert_vbrace(pc); // convert both the opening
+ convert_vbrace(vbc); // and closing brace
+ }
+ }
+} // convert_vbrace_to_brace
+
+
+Chunk *insert_comment_after(Chunk *ref, E_Token cmt_type,
+ const unc_text &cmt_text)
+{
+ LOG_FUNC_ENTRY();
+
+ Chunk new_cmt = *ref;
+
+ new_cmt.prev = nullptr;
+ new_cmt.next = nullptr;
+ new_cmt.flags = (ref->flags & PCF_COPY_FLAGS);
+ set_chunk_type(&new_cmt, cmt_type);
+ new_cmt.str.clear();
+
+ if (cmt_type == CT_COMMENT_CPP)
+ {
+ new_cmt.str.append("// ");
+ new_cmt.str.append(cmt_text);
+ }
+ else
+ {
+ if (chunk_is_token(ref, CT_PP_ELSE))
+ { // make test c/ 02501 stable
+ new_cmt.str.append(" ");
+ }
+ new_cmt.str.append("/* ");
+ new_cmt.str.append(cmt_text);
+ new_cmt.str.append(" */");
+ }
+ // TODO: expand comment type to cover other comment styles?
+
+ new_cmt.column = ref->column + ref->Len() + 1;
+ new_cmt.orig_col = new_cmt.column;
+
+ return(chunk_add_after(&new_cmt, ref));
+}
+
+
+static void append_tag_name(unc_text &txt, Chunk *pc)
+{
+ LOG_FUNC_ENTRY();
+ Chunk *tmp = pc->GetPrevNcNnl();
+
+ LOG_FMT(LMCB, "%s(%d): txt is '%s'\n",
+ __func__, __LINE__, txt.c_str());
+
+ // step backwards over all a::b stuff
+ while (tmp->IsNotNullChunk())
+ {
+ if ( chunk_is_not_token(tmp, CT_DC_MEMBER)
+ && chunk_is_not_token(tmp, CT_MEMBER))
+ {
+ break;
+ }
+ tmp = tmp->GetPrevNcNnl();
+ pc = tmp;
+
+ if (!chunk_is_word(tmp))
+ {
+ break;
+ }
+ }
+ txt += pc->str;
+ LOG_FMT(LMCB, "%s(%d): txt is '%s'\n",
+ __func__, __LINE__, txt.c_str());
+
+ pc = pc->GetNextNcNnl();
+
+ while (pc->IsNotNullChunk())
+ {
+ if ( chunk_is_not_token(pc, CT_DC_MEMBER)
+ && chunk_is_not_token(pc, CT_MEMBER))
+ {
+ break;
+ }
+ txt += pc->str;
+ LOG_FMT(LMCB, "%s(%d): txt is '%s'\n",
+ __func__, __LINE__, txt.c_str());
+ pc = pc->GetNextNcNnl();
+
+ if (pc->IsNotNullChunk())
+ {
+ txt += pc->str;
+ LOG_FMT(LMCB, "%s(%d): txt is '%s'\n",
+ __func__, __LINE__, txt.c_str());
+ }
+ pc = pc->GetNextNcNnl();
+ }
+} // append_tag_name
+
+
+void add_long_closebrace_comment(void)
+{
+ LOG_FUNC_ENTRY();
+ Chunk *fcn_pc = Chunk::NullChunkPtr;
+ Chunk *sw_pc = Chunk::NullChunkPtr;
+ Chunk *ns_pc = Chunk::NullChunkPtr;
+ Chunk *cl_pc = Chunk::NullChunkPtr;
+
+ for (Chunk *pc = Chunk::GetHead(); pc->IsNotNullChunk(); pc = pc->GetNextNcNnl())
+ {
+ if ( chunk_is_token(pc, CT_FUNC_DEF)
+ || chunk_is_token(pc, CT_OC_MSG_DECL))
+ {
+ fcn_pc = pc;
+ }
+ else if (chunk_is_token(pc, CT_SWITCH))
+ {
+ // pointless, since it always has the text "switch"
+ sw_pc = pc;
+ }
+ else if (chunk_is_token(pc, CT_NAMESPACE))
+ {
+ ns_pc = pc;
+ }
+ else if (chunk_is_token(pc, CT_CLASS))
+ {
+ cl_pc = pc;
+ }
+
+ if ( chunk_is_not_token(pc, CT_BRACE_OPEN)
+ || pc->flags.test(PCF_IN_PREPROC))
+ {
+ continue;
+ }
+ Chunk *br_open = pc;
+ size_t nl_count = 0;
+
+ Chunk *tmp = pc;
+
+ while ((tmp = tmp->GetNext(E_Scope::PREPROC))->IsNotNullChunk())
+ {
+ if (chunk_is_newline(tmp))
+ {
+ nl_count += tmp->nl_count;
+ continue;
+ }
+
+ // handle only matching closing braces, skip other chunks
+ if ( tmp->level != br_open->level
+ || chunk_is_not_token(tmp, CT_BRACE_CLOSE))
+ {
+ continue;
+ }
+ Chunk *br_close = tmp;
+
+ tmp = tmp->GetNext();
+
+ // check for a possible end semicolon
+ if (chunk_is_token(tmp, CT_SEMICOLON))
+ {
+ // set br_close to the semi token,
+ // as br_close is used to add the coment after it
+ br_close = tmp;
+ tmp = tmp->GetNext();
+ }
+
+ // make sure a newline follows in order to not overwrite an already
+ // existring comment
+ if ( tmp->IsNotNullChunk()
+ && !chunk_is_newline(tmp))
+ {
+ break;
+ }
+ size_t nl_min = 0;
+ Chunk *tag_pc = Chunk::NullChunkPtr;
+ unc_text xstr;
+
+ if ( get_chunk_parent_type(br_open) == CT_FUNC_DEF
+ || get_chunk_parent_type(br_open) == CT_OC_MSG_DECL)
+ {
+ log_rule_B("mod_add_long_function_closebrace_comment");
+ nl_min = options::mod_add_long_function_closebrace_comment();
+ tag_pc = fcn_pc;
+
+ if (tag_pc->IsNotNullChunk())
+ {
+ append_tag_name(xstr, tag_pc);
+ LOG_FMT(LMCB, "%s(%d): xstr is '%s'\n",
+ __func__, __LINE__, xstr.c_str());
+ }
+ }
+ else if ( get_chunk_parent_type(br_open) == CT_SWITCH
+ && sw_pc != nullptr)
+ {
+ log_rule_B("mod_add_long_switch_closebrace_comment");
+ nl_min = options::mod_add_long_switch_closebrace_comment();
+ tag_pc = sw_pc;
+ xstr = sw_pc->str;
+ LOG_FMT(LMCB, "%s(%d): xstr is '%s'\n",
+ __func__, __LINE__, xstr.c_str());
+ }
+ else if ( get_chunk_parent_type(br_open) == CT_NAMESPACE
+ && ns_pc != nullptr)
+ {
+ log_rule_B("mod_add_long_namespace_closebrace_comment");
+ nl_min = options::mod_add_long_namespace_closebrace_comment();
+ tag_pc = ns_pc;
+ xstr = tag_pc->str; // add 'namespace' to the string
+ LOG_FMT(LMCB, "%s(%d): xstr is '%s'\n",
+ __func__, __LINE__, xstr.c_str());
+
+ // next chunk, normally is going to be the namespace name
+ // append it with a space to generate "namespace xyz"
+ Chunk *tmp_next = tag_pc->GetNextNcNnl();
+
+ if (chunk_is_not_token(tmp_next, CT_BRACE_OPEN)) // anonymous namespace -> ignore
+ {
+ xstr.append(" ");
+ LOG_FMT(LMCB, "%s(%d): xstr is '%s'\n",
+ __func__, __LINE__, xstr.c_str());
+ append_tag_name(xstr, tmp_next);
+ LOG_FMT(LMCB, "%s(%d): xstr is '%s'\n",
+ __func__, __LINE__, xstr.c_str());
+ }
+ }
+ else if ( get_chunk_parent_type(br_open) == CT_CLASS
+ && cl_pc->IsNotNullChunk()
+ && ( !language_is_set(LANG_CPP) // proceed if not C++
+ || chunk_is_token(br_close, CT_SEMICOLON))) // else a C++ class needs to end with a semicolon
+ {
+ log_rule_B("mod_add_long_class_closebrace_comment");
+ nl_min = options::mod_add_long_class_closebrace_comment();
+ tag_pc = cl_pc;
+ xstr = tag_pc->str;
+ LOG_FMT(LMCB, "%s(%d): xstr is '%s'\n",
+ __func__, __LINE__, xstr.c_str());
+
+ Chunk *tmp_next = cl_pc->GetNext();
+
+ if (tag_pc->IsNotNullChunk())
+ {
+ xstr.append(" ");
+ LOG_FMT(LMCB, "%s(%d): xstr is '%s'\n",
+ __func__, __LINE__, xstr.c_str());
+ append_tag_name(xstr, tmp_next);
+ LOG_FMT(LMCB, "%s(%d): xstr is '%s'\n",
+ __func__, __LINE__, xstr.c_str());
+ }
+ }
+
+ if ( nl_min > 0
+ && nl_count >= nl_min
+ && tag_pc->IsNotNullChunk())
+ {
+ // use the comment style that fits to the selected language
+ const E_Token style = language_is_set(LANG_CPP | LANG_CS)
+ ? CT_COMMENT_CPP : CT_COMMENT;
+
+ // Add a comment after the close brace
+ LOG_FMT(LMCB, "%s(%d): xstr is '%s'\n",
+ __func__, __LINE__, xstr.c_str());
+ insert_comment_after(br_close, style, xstr);
+ }
+ break;
+ }
+ }
+} // add_long_closebrace_comment
+
+
+static void move_case_break(void)
+{
+ LOG_FUNC_ENTRY();
+ Chunk *prev = Chunk::NullChunkPtr;
+
+ for (Chunk *pc = Chunk::GetHead(); pc->IsNotNullChunk(); pc = pc->GetNextNcNnl())
+ {
+ if ( chunk_is_token(pc, CT_BREAK)
+ && chunk_is_token(prev, CT_BRACE_CLOSE)
+ && get_chunk_parent_type(prev) == CT_CASE
+ && chunk_is_newline(pc->GetPrev())
+ && chunk_is_newline(prev->GetPrev()))
+ {
+ chunk_swap_lines(prev, pc);
+ }
+ prev = pc;
+ }
+}
+
+
+static void move_case_return(void)
+{
+ LOG_FUNC_ENTRY();
+ Chunk *prev = Chunk::NullChunkPtr;
+
+ for (Chunk *pc = Chunk::GetHead(); pc->IsNotNullChunk(); pc = pc->GetNextNcNnl())
+ {
+ if ( chunk_is_token(pc, CT_RETURN)
+ && chunk_is_token(prev, CT_BRACE_CLOSE)
+ && get_chunk_parent_type(prev) == CT_CASE
+ && chunk_is_newline(pc->GetPrev())
+ && chunk_is_newline(prev->GetPrev()))
+ {
+ // Find the end of the return statement
+ while (chunk_is_not_token(pc, CT_SEMICOLON))
+ {
+ if ( chunk_is_token(pc, CT_CASE)
+ || chunk_is_token(pc, CT_BRACE_CLOSE))
+ {
+ // This may indicate a semicolon was missing in the code to format.
+ // Avoid moving the return statement to prevent potential unwanted erros.
+ pc = Chunk::NullChunkPtr;
+ break;
+ }
+ pc = pc->GetNext();
+ }
+ pc = pc->GetNextNl();
+ pc = pc->GetNextNcNnl();
+
+ if (pc->IsNotNullChunk())
+ {
+ // Swap all lines between brace close and current token
+ LOG_FMT(LMCB, "%s(%d): move line %zu before line %zu\n",
+ __func__, __LINE__, prev->orig_line, pc->orig_line);
+ Chunk *curr = prev->GetNextNcNnl();
+
+ while (curr != pc)
+ {
+ chunk_swap_lines(prev, curr);
+ curr = prev->GetNextNcNnl();
+ }
+ }
+ }
+ prev = pc;
+ }
+} // move_case_return
+
+
+static Chunk *mod_case_brace_remove(Chunk *br_open)
+{
+ LOG_FUNC_ENTRY();
+ LOG_FMT(LMCB, "%s(%d): line %zu",
+ __func__, __LINE__, br_open->orig_line);
+
+ // Find the matching brace close
+ Chunk *next = br_open->GetNextNcNnl(E_Scope::PREPROC);
+ Chunk *br_close = br_open->GetNextType(CT_BRACE_CLOSE, br_open->level, E_Scope::PREPROC);
+
+ if (br_close->IsNullChunk())
+ {
+ LOG_FMT(LMCB, "%s(%d): - no close\n", __func__, __LINE__);
+ return(next);
+ }
+ // Make sure 'break', 'return', 'goto', 'case' or '}' is after the close brace
+ Chunk *pc = br_close->GetNextNcNnl(E_Scope::PREPROC);
+
+ if ( pc->IsNullChunk()
+ || ( chunk_is_not_token(pc, CT_BREAK)
+ && chunk_is_not_token(pc, CT_RETURN)
+ && chunk_is_not_token(pc, CT_CASE)
+ && chunk_is_not_token(pc, CT_GOTO)
+ && chunk_is_not_token(pc, CT_BRACE_CLOSE)))
+ {
+ LOG_FMT(LMCB, "%s(%d): - after '%s'\n",
+ __func__, __LINE__, (pc == nullptr) ? "<null>" : get_token_name(pc->type));
+ return(next);
+ }
+
+ // scan to make sure there are no definitions at brace level between braces
+ for (Chunk *tmp_pc = br_open;
+ tmp_pc != br_close;
+ tmp_pc = tmp_pc->GetNextNcNnl(E_Scope::PREPROC))
+ {
+ if ( tmp_pc->level == (br_open->level + 1)
+ && tmp_pc->flags.test(PCF_VAR_DEF))
+ {
+ LOG_FMT(LMCB, "%s(%d): - vardef on line %zu: '%s'\n",
+ __func__, __LINE__, tmp_pc->orig_line, pc->Text());
+ return(next);
+ }
+ }
+
+ LOG_FMT(LMCB, "%s(%d): - removing braces on lines %zu and %zu\n",
+ __func__, __LINE__, br_open->orig_line, br_close->orig_line);
+
+ for (Chunk *tmp_pc = br_open;
+ tmp_pc != br_close;
+ tmp_pc = tmp_pc->GetNextNcNnl(E_Scope::PREPROC))
+ {
+ if (tmp_pc->brace_level == 0)
+ {
+ fprintf(stderr, "%s(%d): tmp_pc->brace_level is ZERO, cannot be decremented, at line %zu, column %zu\n",
+ __func__, __LINE__, tmp_pc->orig_line, tmp_pc->orig_col);
+ log_flush(true);
+ exit(EX_SOFTWARE);
+ }
+ tmp_pc->brace_level--;
+
+ if (tmp_pc->level == 0)
+ {
+ fprintf(stderr, "%s(%d): tmp_pc->level is ZERO, cannot be decremented, at line %zu, column %zu\n",
+ __func__, __LINE__, tmp_pc->orig_line, tmp_pc->orig_col);
+ log_flush(true);
+ exit(EX_SOFTWARE);
+ }
+ tmp_pc->level--;
+ }
+
+ next = br_open->GetPrev(E_Scope::PREPROC);
+
+ chunk_del(br_open);
+ chunk_del(br_close);
+
+ return(next->GetNext(E_Scope::PREPROC));
+} // mod_case_brace_remove
+
+
+static Chunk *mod_case_brace_add(Chunk *cl_colon)
+{
+ LOG_FUNC_ENTRY();
+ LOG_FMT(LMCB, "%s(%d): orig_line %zu, orig_col is %zu\n",
+ __func__, __LINE__, cl_colon->orig_line, cl_colon->orig_col);
+
+ Chunk *pc = cl_colon;
+ Chunk *last = Chunk::NullChunkPtr;
+ // look for the case token to the colon
+ Chunk *cas_ = cl_colon->GetPrevType(CT_CASE, cl_colon->level);
+ // look for the parent
+ Chunk *swit = cas_->parent;
+ // look for the opening brace of the switch
+ Chunk *open = swit->GetNextType(CT_BRACE_OPEN, swit->level);
+ // look for the closing brace of the switch
+ Chunk *clos = chunk_skip_to_match(open);
+
+ // find the end of the case-block
+ pc = pc->GetNextNcNnl(E_Scope::PREPROC);
+
+ while (pc->IsNotNullChunk())
+ {
+ LOG_FMT(LMCB, "%s(%d): Text() is '%s', orig_line %zu, orig_col is %zu, pp_level is %zu\n",
+ __func__, __LINE__, pc->Text(), pc->orig_line, pc->orig_col, pc->pp_level);
+
+ if (pc->level == cl_colon->level)
+ {
+ if (chunk_is_token(pc, CT_CASE))
+ {
+ LOG_FMT(LMCB, "%s(%d): Text() is '%s', orig_line %zu, orig_col is %zu\n",
+ __func__, __LINE__, pc->Text(), pc->orig_line, pc->orig_col);
+ last = calculate_closing_brace_position(cl_colon, pc);
+ break;
+ }
+ }
+ else if (pc->level == cl_colon->level - 1)
+ {
+ if (pc == clos)
+ {
+ LOG_FMT(LMCB, "%s(%d): Text() is '%s', orig_line %zu, orig_col is %zu\n",
+ __func__, __LINE__, pc->Text(), pc->orig_line, pc->orig_col);
+ // end of switch is reached
+ last = calculate_closing_brace_position(cl_colon, pc);
+ LOG_FMT(LMCB, "%s(%d): last->Text() is '%s', orig_line %zu, orig_col is %zu\n",
+ __func__, __LINE__, last->Text(), last->orig_line, last->orig_col);
+ break;
+ }
+ }
+ pc = pc->GetNextNcNnl(E_Scope::PREPROC);
+ }
+
+ if (last->IsNullChunk())
+ {
+ LOG_FMT(LMCB, "%s(%d): - last is null chunk\n", __func__, __LINE__);
+ Chunk *next = cl_colon->GetNextNcNnl(E_Scope::PREPROC);
+ return(next);
+ }
+ LOG_FMT(LMCB, "%s(%d): last->Text() is '%s', orig_line %zu, orig_col is %zu\n",
+ __func__, __LINE__, last->Text(), last->orig_line, last->orig_col);
+ LOG_FMT(LMCB, "%s(%d): adding braces after '%s' on line %zu\n",
+ __func__, __LINE__, cl_colon->Text(), cl_colon->orig_line);
+
+ Chunk chunk;
+
+ set_chunk_type(&chunk, CT_BRACE_OPEN);
+ set_chunk_parent(&chunk, CT_CASE);
+ chunk.orig_line = cl_colon->orig_line;
+ chunk.orig_col = cl_colon->orig_col;
+ chunk.level = cl_colon->level;
+ chunk.pp_level = cl_colon->pp_level;
+ chunk.brace_level = cl_colon->brace_level;
+ chunk.flags = pc->flags & PCF_COPY_FLAGS;
+ chunk.str = "{";
+ Chunk *br_open = chunk_add_after(&chunk, cl_colon);
+
+ set_chunk_type(&chunk, CT_BRACE_CLOSE);
+ chunk.orig_line = last->orig_line;
+ chunk.orig_col = last->orig_col;
+ chunk.str = "}";
+ Chunk *br_close = chunk_add_after(&chunk, last);
+
+ for (pc = br_open->GetNext(E_Scope::PREPROC);
+ pc != br_close;
+ pc = pc->GetNext(E_Scope::PREPROC))
+ {
+ pc->level++;
+ pc->brace_level++;
+ }
+
+ return(br_open);
+} // mod_case_brace_add
+
+
+static void mod_case_brace(void)
+{
+ LOG_FUNC_ENTRY();
+
+ Chunk *pc = Chunk::GetHead();
+
+ // Make sure to start outside of a preprocessor line (see issue #3366)
+ if (pc->IsPreproc())
+ {
+ pc = pc->GetNextNcNnlNpp();
+ }
+
+ while ( pc != nullptr
+ && pc->IsNotNullChunk())
+ {
+ Chunk *next = pc->GetNextNcNnl(E_Scope::PREPROC);
+
+ if (next->IsNullChunk())
+ {
+ return;
+ }
+ log_rule_B("mod_case_brace");
+
+ if ( options::mod_case_brace() == IARF_REMOVE
+ && chunk_is_token(pc, CT_BRACE_OPEN)
+ && get_chunk_parent_type(pc) == CT_CASE)
+ {
+ log_rule_B("mod_case_brace - add");
+ pc = mod_case_brace_remove(pc);
+ }
+ else if ( (options::mod_case_brace() & IARF_ADD)
+ && chunk_is_token(pc, CT_CASE_COLON)
+ && chunk_is_not_token(next, CT_BRACE_OPEN)
+ && chunk_is_not_token(next, CT_BRACE_CLOSE)
+ && chunk_is_not_token(next, CT_CASE))
+ {
+ log_rule_B("mod_case_brace - remove");
+ pc = mod_case_brace_add(pc);
+ }
+ else
+ {
+ pc = pc->GetNextNcNnl(E_Scope::PREPROC);
+ }
+ }
+} // mod_case_brace
+
+
+static void process_if_chain(Chunk *br_start)
+{
+ LOG_FUNC_ENTRY();
+ LOG_FMT(LBRCH, "%s(%d): if starts on line %zu, orig_col is %zu.\n",
+ __func__, __LINE__, br_start->orig_line, br_start->orig_col);
+
+ vector<Chunk *> braces;
+
+ braces.reserve(16);
+
+ bool must_have_braces = false;
+ bool has_unbraced_block = false;
+
+ Chunk *pc = br_start;
+
+ while (pc != nullptr)
+ {
+ LOG_FMT(LBRCH, "%s(%d): pc->Text() is '%s', orig_line is %zu, orig_col is %zu.\n",
+ __func__, __LINE__, pc->Text(), pc->orig_line, pc->orig_col);
+
+ if (chunk_is_token(pc, CT_BRACE_OPEN))
+ {
+ const bool tmp = can_remove_braces(pc);
+ LOG_FMT(LBRCH, "%s(%d): braces.size() is %zu, line is %zu, - can%s remove %s\n",
+ __func__, __LINE__, braces.size(), pc->orig_line, tmp ? "" : "not",
+ get_token_name(pc->type));
+
+ if ( !tmp
+ || options::mod_full_brace_if_chain() == 2)
+ {
+ must_have_braces = true;
+ }
+ }
+ else
+ {
+ const bool tmp = should_add_braces(pc);
+
+ if (tmp)
+ {
+ must_have_braces = true;
+ }
+ LOG_FMT(LBRCH, "%s(%d): braces.size() is %zu, line is %zu, - %s %s\n",
+ __func__, __LINE__, braces.size(), pc->orig_line, tmp ? "should add" : "ignore",
+ get_token_name(pc->type));
+
+ has_unbraced_block = true;
+ }
+
+ if ( options::mod_full_brace_if_chain() == 3
+ && !has_unbraced_block)
+ {
+ must_have_braces = true;
+ }
+ braces.push_back(pc);
+ Chunk *br_close = chunk_skip_to_match(pc, E_Scope::PREPROC);
+
+ if (br_close == nullptr)
+ {
+ break;
+ }
+ braces.push_back(br_close);
+
+ pc = br_close->GetNextNcNnl(E_Scope::PREPROC);
+
+ if ( pc->IsNullChunk()
+ || chunk_is_not_token(pc, CT_ELSE))
+ {
+ break;
+ }
+ log_rule_B("mod_full_brace_if_chain_only");
+
+ if (options::mod_full_brace_if_chain_only())
+ {
+ // There is an 'else' - we want full braces.
+ must_have_braces = true;
+ }
+ pc = pc->GetNextNcNnl(E_Scope::PREPROC);
+
+ if (chunk_is_token(pc, CT_ELSEIF))
+ {
+ while ( chunk_is_not_token(pc, CT_VBRACE_OPEN)
+ && chunk_is_not_token(pc, CT_BRACE_OPEN))
+ {
+ pc = pc->GetNextNcNnl(E_Scope::PREPROC);
+ }
+ }
+
+ if (pc->IsNullChunk())
+ {
+ break;
+ }
+
+ if ( chunk_is_not_token(pc, CT_BRACE_OPEN)
+ && chunk_is_not_token(pc, CT_VBRACE_OPEN))
+ {
+ break;
+ }
+ }
+
+ if (must_have_braces)
+ {
+ LOG_FMT(LBRCH, "%s(%d): add braces on lines[%zu]:",
+ __func__, __LINE__, braces.size());
+
+ const auto ite = braces.rend();
+
+ for (auto itc = braces.rbegin(); itc != ite; ++itc)
+ {
+ const auto brace = *itc;
+
+ chunk_flags_set(brace, PCF_KEEP_BRACE);
+
+ if ( chunk_is_token(brace, CT_VBRACE_OPEN)
+ || chunk_is_token(brace, CT_VBRACE_CLOSE))
+ {
+ LOG_FMT(LBRCH, "%s(%d): %zu",
+ __func__, __LINE__, brace->orig_line);
+ convert_vbrace(brace);
+ }
+ else
+ {
+ LOG_FMT(LBRCH, "%s(%d): {%zu}",
+ __func__, __LINE__, brace->orig_line);
+ }
+ }
+
+ LOG_FMT(LBRCH, "\n");
+ }
+ else if (options::mod_full_brace_if_chain())
+ {
+ log_rule_B("mod_full_brace_if_chain");
+ LOG_FMT(LBRCH, "%s(%d): remove braces on lines[%zu]:\n",
+ __func__, __LINE__, braces.size());
+
+ /*
+ * This might run because either
+ * mod_full_brace_if_chain or mod_full_brace_if_chain_only
+ * is used.
+ * We only want to remove braces if the first one is active.
+ */
+ log_rule_B("mod_full_brace_nl_block_rem_mlcond");
+ const auto multiline_block = options::mod_full_brace_nl_block_rem_mlcond();
+
+ LOG_FMT(LBRCH, "%s(%d): remove braces on lines:\n", __func__, __LINE__);
+
+ // Issue #2229
+ const auto ite = braces.end();
+
+ for (auto itc = braces.begin(); itc != ite; ++itc)
+ {
+ const auto brace = *itc;
+
+ if ( ( chunk_is_token(brace, CT_BRACE_OPEN)
+ || chunk_is_token(brace, CT_BRACE_CLOSE))
+ && (get_chunk_parent_type(brace) != CT_BRACED_INIT_LIST)
+ && (multiline_block ? !paren_multiline_before_brace(brace) : true))
+ {
+ LOG_FMT(LBRCH, "%s(%d): brace->orig_line is %zu, brace->orig_col is %zu\n",
+ __func__, __LINE__, brace->orig_line, brace->orig_col);
+ convert_brace(brace);
+ }
+ else
+ {
+ LOG_FMT(LBRCH, "%s(%d): brace->orig_line is %zu, brace->orig_col is %zu\n",
+ __func__, __LINE__, brace->orig_line, brace->orig_col);
+ }
+ }
+ }
+} // process_if_chain
+
+
+static void mod_full_brace_if_chain(void)
+{
+ LOG_FUNC_ENTRY();
+
+ for (Chunk *pc = Chunk::GetHead(); pc->IsNotNullChunk(); pc = pc->GetNext())
+ {
+ if ( ( chunk_is_token(pc, CT_BRACE_OPEN)
+ || chunk_is_token(pc, CT_VBRACE_OPEN))
+ && get_chunk_parent_type(pc) == CT_IF)
+ {
+ process_if_chain(pc);
+ }
+ }
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/braces.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/braces.h
new file mode 100644
index 00000000..c9695bbe
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/braces.h
@@ -0,0 +1,33 @@
+/**
+ * @file braces.h
+ * prototypes for braces.cpp
+ *
+ * @author Ben Gardner
+ * @license GPL v2+
+ */
+
+#ifndef BRACES_H_INCLUDED
+#define BRACES_H_INCLUDED
+
+#include "uncrustify_types.h"
+
+
+//! Change virtual braces into real braces
+void do_braces(void);
+
+/**
+ * See the preprocessor counterpart:
+ * add_long_preprocessor_conditional_block_comment
+ * in output.cpp
+ */
+void add_long_closebrace_comment(void);
+
+
+/**
+ * Adds a comment after the ref chunk
+ * Returns the added chunk or nullptr
+ */
+Chunk *insert_comment_after(Chunk *ref, E_Token cmt_type, const unc_text &cmt_text);
+
+
+#endif /* BRACES_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/calculate_closing_brace_position.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/calculate_closing_brace_position.cpp
new file mode 100644
index 00000000..30865900
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/calculate_closing_brace_position.cpp
@@ -0,0 +1,199 @@
+/**
+ * @file calculate_closing_brace_position.cpp
+ *
+ * @author Guy Maurel
+ * @license GPL v2+
+ */
+
+#include "calculate_closing_brace_position.h"
+
+#include "chunk.h"
+
+using namespace uncrustify;
+
+
+Chunk *calculate_closing_brace_position(const Chunk *cl_colon, Chunk *pc)
+{
+ LOG_FMT(LMCB, "%s(%d): cl_colon->Text() is '%s', orig_line %zu, orig_col is %zu, level is %zu\n",
+ __func__, __LINE__, cl_colon->Text(), cl_colon->orig_line, cl_colon->orig_col, cl_colon->level);
+ LOG_FMT(LMCB, "%s(%d): pc->Text() is '%s', orig_line %zu, orig_col is %zu, level is %zu\n",
+ __func__, __LINE__, pc->Text(), pc->orig_line, pc->orig_col, pc->level);
+ // end of block is reached
+ // look back over newline, preprocessor BUT NOT #endif
+
+ // Issue #3058
+
+ // examine going back the tokens: look for a "brace closing" or a "semi colon" until the colon
+ // look back over comment, newline, preprocessor BUT NOT #endif
+
+ size_t check_level = 0;
+
+ if (chunk_is_token(pc, CT_BRACE_CLOSE))
+ {
+ check_level = pc->level + 1;
+ }
+ else
+ {
+ check_level = pc->level;
+ }
+ size_t erst_found = 0;
+ Chunk *is_brace_close = Chunk::NullChunkPtr;
+ Chunk *is_semicolon = Chunk::NullChunkPtr;
+ Chunk *is_comment = Chunk::NullChunkPtr;
+ Chunk *back = pc->GetPrevNnl();
+
+ while (back->IsNotNullChunk())
+ {
+ if (back == cl_colon)
+ {
+ break;
+ }
+
+ if (erst_found != 0)
+ {
+ break;
+ }
+
+ if (back->level == check_level)
+ {
+ if ( chunk_is_token(back, CT_BRACE_CLOSE)
+ || chunk_is_token(back, CT_VBRACE_CLOSE))
+ {
+ // brace_close found
+ is_brace_close = back;
+ LOG_FMT(LMCB, "%s(%d): BRACE_CLOSE: line is %zu, col is %zu, level is %zu\n",
+ __func__, __LINE__, is_brace_close->orig_line, is_brace_close->orig_col, is_brace_close->level);
+ erst_found = 3;
+ }
+
+ if (chunk_is_token(back, CT_SEMICOLON))
+ {
+ // semicolon found
+ is_semicolon = back;
+ LOG_FMT(LMCB, "%s(%d): SEMICOLON: line is %zu, col is %zu, level is %zu\n",
+ __func__, __LINE__, is_semicolon->orig_line, is_semicolon->orig_col, is_semicolon->level);
+ erst_found = 4;
+ }
+
+ if (back->IsComment())
+ {
+ // comment found
+ is_comment = back;
+ LOG_FMT(LMCB, "%s(%d): COMMENT: line is %zu, col is %zu, level is %zu\n",
+ __func__, __LINE__, back->orig_line, back->orig_col, back->level);
+ }
+ }
+ back = back->GetPrev();
+ }
+ LOG_FMT(LMCB, "%s(%d): erst_found is %zu\n",
+ __func__, __LINE__, erst_found);
+ Chunk *last = Chunk::NullChunkPtr;
+
+ if ( erst_found == 3
+ || erst_found == 4)
+ {
+ if (is_comment->IsNotNullChunk())
+ {
+ Chunk *second = Chunk::NullChunkPtr;
+
+ if (erst_found == 3)
+ {
+ second = is_brace_close;
+ }
+ else
+ {
+ // erst_found == 4
+ second = is_semicolon;
+ }
+
+ if (second->IsNotNullChunk())
+ {
+ if (is_comment->orig_line == second->orig_line)
+ {
+ last = is_comment;
+
+ if (cl_colon->orig_line == is_comment->orig_line)
+ {
+ last = is_comment->GetNext();
+ }
+ }
+ else
+ {
+ last = pc->GetPrevNcNnl();
+ }
+ }
+ else
+ {
+ LOG_FMT(LMCB, "\n\n%s(%d):\n", __func__, __LINE__);
+ fprintf(stderr, "FATAL: second is nullptr\n");
+ fprintf(stderr, "Please make a report.\n");
+ exit(EX_SOFTWARE);
+ }
+ }
+ else
+ {
+ last = pc->GetPrevNcNnl();
+ }
+ }
+ else
+ {
+ LOG_FMT(LMCB, "\n\n%s(%d):\n", __func__, __LINE__);
+ fprintf(stderr, "FATAL: erst_found is not 3 or 4\n");
+ fprintf(stderr, "Please make a report.\n");
+ exit(EX_SOFTWARE);
+ }
+
+ if (chunk_is_token(last, CT_COMMENT_CPP)) // Issue #3058
+ {
+ last = last->GetNext();
+ }
+ LOG_FMT(LMCB, "%s(%d): last->Text() is '%s', orig_line %zu, orig_col is %zu\n",
+ __func__, __LINE__, last->Text(), last->orig_line, last->orig_col);
+
+ if (last->IsPreproc())
+ {
+ // we have a preprocessor token
+ while (last->IsNotNullChunk())
+ {
+ LOG_FMT(LMCB, "%s(%d): Text() is '%s', orig_line %zu, orig_col is %zu\n",
+ __func__, __LINE__, last->Text(), last->orig_line, last->orig_col);
+
+ if (chunk_is_token(last, CT_PP_ENDIF))
+ {
+ // look for the parent
+ Chunk *parent_last = last->parent;
+ // compare the positions
+ int comp = chunk_compare_position(parent_last, cl_colon);
+ LOG_FMT(LMCB, "%s(%d): comp is %d\n",
+ __func__, __LINE__, comp);
+
+ if (comp == -1)
+ {
+ // cl_colon is after parent_last ==>
+ // the closing brace will be set before #endif
+ Chunk *pp_start = chunk_get_pp_start(last);
+ last = pp_start->GetPrevNnl();
+ LOG_FMT(LMCB, "%s(%d): Text() is '%s', orig_line %zu, orig_col is %zu\n",
+ __func__, __LINE__, last->Text(), last->orig_line, last->orig_col);
+ }
+ else if (comp == 1)
+ {
+ // cl_colon is before parent_last ==>
+ // the closing brace will be set after #endif
+ LOG_FMT(LMCB, "%s(%d): Text() is '%s', orig_line %zu, orig_col is %zu\n",
+ __func__, __LINE__, last->Text(), last->orig_line, last->orig_col);
+ }
+ break;
+ }
+ last = last->GetPrevNcNnl();
+ LOG_FMT(LMCB, "%s(%d): Text() is '%s', orig_line %zu, orig_col is %zu\n",
+ __func__, __LINE__, last->Text(), last->orig_line, last->orig_col);
+
+ if (!last->IsPreproc())
+ {
+ break;
+ }
+ }
+ }
+ return(last);
+} // calculate_closing_brace_position
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/calculate_closing_brace_position.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/calculate_closing_brace_position.h
new file mode 100644
index 00000000..6d2b0f06
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/calculate_closing_brace_position.h
@@ -0,0 +1,18 @@
+/**
+ * @file calculate_closing_brace_position.h
+ * prototype for calculate_closing_brace_position.cpp
+ *
+ * @author Guy Maurel
+ * @license GPL v2+
+ */
+
+#ifndef CALCULATE_CLOSING_BRACE_POSITION_H_INCLUDED
+#define CALCULATE_CLOSING_BRACE_POSITION_H_INCLUDED
+
+#include "uncrustify_types.h"
+
+
+Chunk *calculate_closing_brace_position(const Chunk *cl_colon, Chunk *pc);
+
+
+#endif /* CALCULATE_CLOSING_BRACE_POSITION_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/char_table.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/char_table.h
index 3fa23a54..3fa23a54 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/char_table.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/char_table.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/chunk.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/chunk.cpp
new file mode 100644
index 00000000..0ad879b4
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/chunk.cpp
@@ -0,0 +1,1167 @@
+/**
+ * @file chunk.cpp
+ * Manages and navigates the list of chunks.
+ *
+ * @author Ben Gardner
+ * @license GPL v2+
+ */
+
+#include "chunk.h"
+
+#include "ListManager.h"
+#include "prototypes.h"
+#include "space.h"
+
+typedef ListManager<Chunk> ChunkList_t;
+
+
+ChunkList_t g_cl; //! global chunk list
+
+
+/*
+ * Chunk class methods
+ */
+
+// Null Chunk
+Chunk Chunk::NullChunk(true);
+Chunk *const Chunk::NullChunkPtr(&Chunk::NullChunk);
+
+
+Chunk::Chunk(bool null_c)
+ : null_chunk(null_c)
+{
+ Reset();
+}
+
+
+Chunk::Chunk(const Chunk &o)
+ : null_chunk(o.null_chunk)
+{
+ copyFrom(o);
+}
+
+
+Chunk &Chunk::operator=(const Chunk &o)
+{
+ if (this != &o)
+ {
+ copyFrom(o);
+ }
+ return(*this);
+}
+
+
+void Chunk::copyFrom(const Chunk &o)
+{
+ next = nullptr;
+ prev = nullptr;
+ parent = nullptr;
+ align = o.align;
+ indent = o.indent;
+ type = o.type;
+ parent_type = o.parent_type;
+
+ orig_line = o.orig_line;
+ orig_col = o.orig_col;
+ orig_col_end = o.orig_col_end;
+ orig_prev_sp = o.orig_prev_sp;
+ flags = o.flags;
+ column = o.column;
+ column_indent = o.column_indent;
+
+ nl_count = o.nl_count;
+ nl_column = o.nl_column;
+ level = o.level;
+
+ brace_level = o.brace_level;
+ pp_level = o.pp_level;
+ after_tab = o.after_tab;
+ str = o.str;
+
+ tracking = o.tracking;
+}
+
+
+void Chunk::Reset()
+{
+ memset(&align, 0, sizeof(align));
+ memset(&indent, 0, sizeof(indent));
+ next = nullptr;
+ prev = nullptr;
+ parent = nullptr;
+ type = CT_NONE;
+ parent_type = CT_NONE;
+ orig_line = 0;
+ orig_col = 0;
+ orig_col_end = 0;
+ orig_prev_sp = 0;
+ flags = PCF_NONE;
+ column = 0;
+ column_indent = 0;
+ nl_count = 0;
+ nl_column = 0;
+ level = 0;
+ brace_level = 0;
+ pp_level = 999; // use a big value to find some errors
+ after_tab = false;
+ // for debugging purpose only
+ tracking = nullptr;
+ str.clear();
+}
+
+
+size_t Chunk::Len() const
+{
+ return(str.size());
+}
+
+
+const char *Chunk::Text() const
+{
+ return(str.c_str());
+}
+
+
+const char *Chunk::ElidedText(char *for_the_copy) const
+{
+ const char *test_it = Text();
+ size_t test_it_length = strlen(test_it);
+
+ size_t truncate_value = uncrustify::options::debug_truncate();
+
+ if (truncate_value != 0)
+ {
+ if (test_it_length > truncate_value)
+ {
+ memset(for_the_copy, 0, 1000);
+
+ if (test_it_length < truncate_value + 30)
+ {
+ strncpy(for_the_copy, test_it, truncate_value - 30);
+ for_the_copy[truncate_value - 30] = 0;
+ }
+ else
+ {
+ strncpy(for_the_copy, test_it, truncate_value);
+ for_the_copy[truncate_value] = 0;
+ }
+ char *message = strcat(for_the_copy, " ... <The string is truncated>");
+
+ return(message);
+ }
+ else
+ {
+ return(test_it);
+ }
+ }
+ return(test_it);
+}
+
+
+Chunk *Chunk::GetNext(const E_Scope scope) const
+{
+ if (IsNullChunk())
+ {
+ return(NullChunkPtr);
+ }
+ Chunk *pc = g_cl.GetNext(this);
+
+ if ( pc == nullptr
+ || pc->IsNullChunk())
+ {
+ return(NullChunkPtr);
+ }
+
+ if (scope == E_Scope::ALL)
+ {
+ return(pc);
+ }
+
+ if (flags.test(PCF_IN_PREPROC))
+ {
+ // If in a preproc, return a null chunk if trying to leave
+ if (!pc->flags.test(PCF_IN_PREPROC))
+ {
+ return(NullChunkPtr);
+ }
+ return(pc);
+ }
+
+ // Not in a preproc, skip any preproc
+ while ( pc != nullptr
+ && pc->IsNotNullChunk()
+ && pc->flags.test(PCF_IN_PREPROC))
+ {
+ pc = g_cl.GetNext(pc);
+ }
+
+ if ( pc == nullptr
+ || pc->IsNullChunk())
+ {
+ return(NullChunkPtr);
+ }
+ return(pc);
+} // Chunk::GetNext
+
+
+Chunk *Chunk::GetPrev(const E_Scope scope) const
+{
+ if (IsNullChunk())
+ {
+ return(NullChunkPtr);
+ }
+ Chunk *pc = g_cl.GetPrev(this);
+
+ if ( pc == nullptr
+ || pc->IsNullChunk())
+ {
+ return(NullChunkPtr);
+ }
+
+ if (scope == E_Scope::ALL)
+ {
+ return(pc);
+ }
+
+ if (flags.test(PCF_IN_PREPROC))
+ {
+ // If in a preproc, return a null chunk if trying to leave
+ if (!pc->flags.test(PCF_IN_PREPROC))
+ {
+ return(NullChunkPtr);
+ }
+ return(pc);
+ }
+
+ // Not in a preproc, skip any preproc
+ while ( pc != nullptr
+ && pc->IsNotNullChunk()
+ && pc->flags.test(PCF_IN_PREPROC))
+ {
+ pc = g_cl.GetPrev(pc);
+ }
+
+ if ( pc == nullptr
+ || pc->IsNullChunk())
+ {
+ return(NullChunkPtr);
+ }
+ return(pc);
+} // Chunk::GetPrev
+
+
+static void chunk_log(Chunk *pc, const char *text);
+
+
+/*
+ * TODO: if we use C++ we can overload the following two functions
+ * and thus name them equally
+ */
+
+/**
+ * @brief search a chunk of a given category in a chunk list
+ *
+ * traverses a chunk list either in forward or backward direction.
+ * The traversal continues until a chunk of a given category is found.
+ *
+ * This function is a specialization of Chunk::Search.
+ *
+ * @param cur chunk to start search at
+ * @param type category to search for
+ * @param scope code parts to consider for search
+ * @param dir search direction
+ *
+ * @retval nullptr no chunk found or invalid parameters provided
+ * @retval Chunk pointer to the found chunk
+ */
+static Chunk *chunk_search_type(Chunk *cur, const E_Token type, const E_Scope scope = E_Scope::ALL, const E_Direction dir = E_Direction::FORWARD);
+
+
+/**
+ * @brief Add a new chunk before/after the given position in a chunk list
+ *
+ * If ref is nullptr, add either at the head or tail based on the specified pos
+ *
+ * @param pc_in chunk to add to list
+ * @param ref insert position in list
+ * @param pos insert before or after
+ *
+ * @return Chunk pointer to the added chunk
+ */
+static Chunk *chunk_add(const Chunk *pc_in, Chunk *ref, const E_Direction pos = E_Direction::FORWARD);
+
+
+Chunk *Chunk::GetHead(void)
+{
+ Chunk *ret = g_cl.GetHead();
+
+ if (ret == nullptr)
+ {
+ return(Chunk::NullChunkPtr);
+ }
+ return(ret);
+}
+
+
+Chunk *Chunk::GetTail(void)
+{
+ Chunk *ret = g_cl.GetTail();
+
+ if (ret == nullptr)
+ {
+ return(Chunk::NullChunkPtr);
+ }
+ return(ret);
+}
+
+
+Chunk::T_SearchFnPtr Chunk::GetSearchFn(const E_Direction dir)
+{
+ return((dir == E_Direction::FORWARD) ? &Chunk::GetNext : &Chunk::GetPrev);
+}
+
+
+Chunk *Chunk::Search(const T_CheckFnPtr checkFn, const E_Scope scope,
+ const E_Direction dir, const bool cond) const
+{
+ T_SearchFnPtr searchFnPtr = GetSearchFn(dir);
+ Chunk *pc = const_cast<Chunk *>(this);
+
+ do // loop over the chunk list
+ {
+ pc = (pc->*searchFnPtr)(scope); // in either direction while
+ } while ( pc->IsNotNullChunk() // the end of the list was not reached yet
+ && ((pc->*checkFn)() != cond)); // and the demanded chunk was not found either
+
+ return(pc); // the latest chunk is the searched one
+}
+
+
+Chunk *chunk_search_prev_cat(Chunk *pc, const E_Token cat)
+{
+ return(chunk_search_type(pc, cat, E_Scope::ALL, E_Direction::BACKWARD));
+}
+
+
+Chunk *chunk_search_next_cat(Chunk *pc, const E_Token cat)
+{
+ return(chunk_search_type(pc, cat, E_Scope::ALL, E_Direction::FORWARD));
+}
+
+
+bool are_chunks_in_same_line(Chunk *start, Chunk *end)
+{
+ if (start == nullptr)
+ {
+ return(false);
+ }
+ Chunk *tmp = start->GetNext();
+
+ while ( tmp->IsNotNullChunk()
+ && tmp != end)
+ {
+ if (chunk_is_token(tmp, CT_NEWLINE))
+ {
+ return(false);
+ }
+ tmp = tmp->GetNext();
+ }
+ return(true);
+}
+
+
+static Chunk *chunk_search_type(Chunk *cur, const E_Token type,
+ const E_Scope scope, const E_Direction dir)
+{
+ /*
+ * Depending on the parameter dir the search function searches
+ * in forward or backward direction
+ */
+ Chunk::T_SearchFnPtr search_function = Chunk::GetSearchFn(dir);
+ Chunk *pc = cur;
+
+ if (pc == nullptr)
+ {
+ pc = Chunk::NullChunkPtr;
+ }
+
+ do // loop over the chunk list
+ {
+ pc = (pc->*search_function)(scope); // in either direction while
+ } while ( pc->IsNotNullChunk() // the end of the list was not reached yet
+ && pc->type != type); // and the demanded chunk was not found either
+
+ if (pc->IsNullChunk())
+ {
+ pc = nullptr;
+ }
+ return(pc); // the latest chunk is the searched one
+}
+
+
+Chunk *Chunk::SearchTypeLevel(const E_Token cType, const E_Scope scope,
+ const E_Direction dir, const int cLevel) const
+{
+ T_SearchFnPtr searchFnPtr = GetSearchFn(dir);
+ Chunk *pc = const_cast<Chunk *>(this);
+
+ do // loop over the chunk list
+ {
+ pc = (pc->*searchFnPtr)(scope); // in either direction while
+ } while ( pc->IsNotNullChunk() // the end of the list was not reached yet
+ && (!pc->IsTypeAndLevel(cType, cLevel))); // and the chunk was not found either
+
+ return(pc); // the latest chunk is the searched one
+}
+
+
+Chunk *Chunk::SearchStringLevel(const char *cStr, const size_t len, int cLevel,
+ const E_Scope scope, const E_Direction dir) const
+{
+ T_SearchFnPtr searchFnPtr = GetSearchFn(dir);
+ Chunk *pc = const_cast<Chunk *>(this);
+
+ do // loop over the chunk list
+ {
+ pc = (pc->*searchFnPtr)(scope); // in either direction while
+ } while ( pc->IsNotNullChunk() // the end of the list was not reached yet
+ && !pc->IsStringAndLevel(cStr, len, cLevel)); // and the demanded chunk was not found either
+
+ return(pc); // the latest chunk is the searched one
+}
+
+
+Chunk *Chunk::SearchPpa(const T_CheckFnPtr checkFn, const bool cond) const
+{
+ if (!flags.test(PCF_IN_PREPROC))
+ {
+ // if not in preprocessor, do a regular search
+ return(Search(checkFn, E_Scope::ALL, E_Direction::FORWARD, cond));
+ }
+ Chunk *pc = GetNext();
+
+ while (pc->IsNotNullChunk())
+ {
+ if (!pc->flags.test(PCF_IN_PREPROC))
+ {
+ // Bail if we run off the end of the preprocessor directive, but return
+ // the token because the caller may need to know where the search ended
+ assert(chunk_is_token(pc, CT_NEWLINE));
+ return(pc);
+ }
+
+ if (chunk_is_token(pc, CT_NL_CONT))
+ {
+ // Skip line continuation
+ pc = pc->GetNext();
+ continue;
+ }
+
+ if ((pc->*checkFn)() == cond)
+ {
+ // Requested token was found
+ return(pc);
+ }
+ pc = pc->GetNext();
+ }
+ // Ran out of tokens
+ return(Chunk::NullChunkPtr);
+}
+
+
+static void chunk_log_msg(Chunk *chunk, const log_sev_t log, const char *str)
+{
+ LOG_FMT(log, "%s orig_line is %zu, orig_col is %zu, ",
+ str, chunk->orig_line, chunk->orig_col);
+
+ if (chunk_is_token(chunk, CT_NEWLINE))
+ {
+ LOG_FMT(log, "<Newline>,\n");
+ }
+ else if (chunk_is_token(chunk, CT_VBRACE_OPEN))
+ {
+ LOG_FMT(log, "<VBRACE_OPEN>,\n");
+ }
+ else if (chunk_is_token(chunk, CT_VBRACE_CLOSE))
+ {
+ LOG_FMT(log, "<VBRACE_CLOSE>,\n");
+ }
+ else
+ {
+ LOG_FMT(log, "Text() is '%s', type is %s,\n", chunk->Text(), get_token_name(chunk->type));
+ }
+}
+
+
+static void chunk_log(Chunk *pc, const char *text)
+{
+ if ( pc != nullptr
+ && pc->IsNotNullChunk()
+ && (cpd.unc_stage != unc_stage_e::TOKENIZE)
+ && (cpd.unc_stage != unc_stage_e::CLEANUP))
+ {
+ const log_sev_t log = LCHUNK;
+ Chunk *prev = pc->GetPrev();
+ Chunk *next = pc->GetNext();
+
+ chunk_log_msg(pc, log, text);
+
+ if ( prev->IsNotNullChunk()
+ && next->IsNotNullChunk())
+ {
+ chunk_log_msg(prev, log, " @ between");
+ chunk_log_msg(next, log, " and");
+ }
+ else if (next->IsNotNullChunk())
+ {
+ chunk_log_msg(next, log, " @ before");
+ }
+ else if (prev->IsNotNullChunk())
+ {
+ chunk_log_msg(prev, log, " @ after");
+ }
+ LOG_FMT(log, " stage is %s", // Issue #3034
+ get_unc_stage_name(cpd.unc_stage));
+ log_func_stack_inline(log);
+ }
+}
+
+
+Chunk *chunk_add_after(const Chunk *pc_in, Chunk *ref)
+{
+ return(chunk_add(pc_in, ref, E_Direction::FORWARD));
+}
+
+
+Chunk *chunk_add_before(const Chunk *pc_in, Chunk *ref)
+{
+ return(chunk_add(pc_in, ref, E_Direction::BACKWARD));
+}
+
+
+void chunk_del(Chunk * &pc)
+{
+ g_cl.Pop(pc);
+ delete pc;
+ pc = nullptr;
+}
+
+
+void chunk_move_after(Chunk *pc_in, Chunk *ref)
+{
+ LOG_FUNC_ENTRY();
+ g_cl.Pop(pc_in);
+ g_cl.AddAfter(pc_in, ref);
+
+ // HACK: Adjust the original column
+ pc_in->column = ref->column + space_col_align(ref, pc_in);
+ pc_in->orig_col = pc_in->column;
+ pc_in->orig_col_end = pc_in->orig_col + pc_in->Len();
+}
+
+
+Chunk *Chunk::GetNextNl(const E_Scope scope) const
+{
+ return(Search(&Chunk::IsNewline, scope, E_Direction::FORWARD, true));
+}
+
+
+Chunk *Chunk::GetPrevNl(const E_Scope scope) const
+{
+ return(Search(&Chunk::IsNewline, scope, E_Direction::BACKWARD, true));
+}
+
+
+Chunk *Chunk::GetNextNnl(const E_Scope scope) const
+{
+ return(Search(&Chunk::IsNewline, scope, E_Direction::FORWARD, false));
+}
+
+
+Chunk *Chunk::GetPrevNnl(const E_Scope scope) const
+{
+ return(Search(&Chunk::IsNewline, scope, E_Direction::BACKWARD, false));
+}
+
+
+Chunk *Chunk::GetNextNc(const E_Scope scope) const
+{
+ return(Search(&Chunk::IsComment, scope, E_Direction::FORWARD, false));
+}
+
+
+Chunk *Chunk::GetPrevNc(const E_Scope scope) const
+{
+ return(Search(&Chunk::IsComment, scope, E_Direction::BACKWARD, false));
+}
+
+
+Chunk *Chunk::GetNextNcNnl(const E_Scope scope) const
+{
+ return(Search(&Chunk::IsCommentOrNewline, scope, E_Direction::FORWARD, false));
+}
+
+
+Chunk *Chunk::GetPrevNcNnl(const E_Scope scope) const
+{
+ return(Search(&Chunk::IsCommentOrNewline, scope, E_Direction::BACKWARD, false));
+}
+
+
+Chunk *Chunk::GetNextNcNnlNpp(const E_Scope scope) const
+{
+ return(Search(&Chunk::IsCommentNewlineOrPreproc, scope, E_Direction::FORWARD, false));
+}
+
+
+Chunk *Chunk::GetPrevNcNnlNpp(const E_Scope scope) const
+{
+ return(Search(&Chunk::IsCommentNewlineOrPreproc, scope, E_Direction::BACKWARD, false));
+}
+
+
+Chunk *Chunk::GetNextNppOrNcNnl(const E_Scope scope) const
+{
+ return(Search(&Chunk::IsCommentOrNewlineInPreproc, scope, E_Direction::FORWARD, false));
+}
+
+
+Chunk *Chunk::GetPrevNppOrNcNnl(const E_Scope scope) const
+{
+ return(Search(&Chunk::IsCommentOrNewlineInPreproc, scope, E_Direction::BACKWARD, false));
+}
+
+
+Chunk *Chunk::PpaGetNextNcNnl() const
+{
+ return(SearchPpa(&Chunk::IsCommentOrNewline, false));
+}
+
+
+Chunk *Chunk::GetNextNcNnlNet(const E_Scope scope) const
+{
+ return(Search(&Chunk::IsCommentNewlineOrEmptyText, scope, E_Direction::FORWARD, false));
+}
+
+
+Chunk *Chunk::GetPrevNcNnlNet(const E_Scope scope) const
+{
+ return(Search(&Chunk::IsCommentNewlineOrEmptyText, scope, E_Direction::BACKWARD, false));
+}
+
+
+Chunk *Chunk::GetPrevNcNnlNi(const E_Scope scope) const
+{
+ return(Search(&Chunk::IsCommentNewlineOrIgnored, scope, E_Direction::BACKWARD, false));
+}
+
+
+Chunk *Chunk::GetNextNisq(const E_Scope scope) const
+{
+ return(Search(&Chunk::IsSquareBracket, scope, E_Direction::FORWARD, false));
+}
+
+
+Chunk *Chunk::GetNextType(const E_Token cType, const int cLevel, const E_Scope scope) const
+{
+ return(SearchTypeLevel(cType, scope, E_Direction::FORWARD, cLevel));
+}
+
+
+Chunk *Chunk::GetPrevType(const E_Token cType, const int cLevel, const E_Scope scope) const
+{
+ return(SearchTypeLevel(cType, scope, E_Direction::BACKWARD, cLevel));
+}
+
+
+Chunk *Chunk::GetNextString(const char *cStr, const size_t len, const int cLevel, const E_Scope scope) const
+{
+ return(SearchStringLevel(cStr, len, cLevel, scope, E_Direction::FORWARD));
+}
+
+
+Chunk *Chunk::GetPrevString(const char *cStr, const size_t len, const int cLevel, const E_Scope scope) const
+{
+ return(SearchStringLevel(cStr, len, cLevel, scope, E_Direction::BACKWARD));
+}
+
+
+bool chunk_is_newline_between(Chunk *start, Chunk *end)
+{
+ for (Chunk *pc = start; pc != nullptr && pc != end; pc = pc->GetNext())
+ {
+ if (chunk_is_newline(pc))
+ {
+ return(true);
+ }
+ }
+
+ return(false);
+}
+
+
+void chunk_swap(Chunk *pc1, Chunk *pc2)
+{
+ g_cl.Swap(pc1, pc2);
+}
+
+
+// TODO: the following function shall be made similar to the search functions
+Chunk *chunk_first_on_line(Chunk *pc)
+{
+ if ( pc == nullptr
+ || pc->IsNullChunk())
+ {
+ return(Chunk::NullChunkPtr);
+ }
+ Chunk *first = pc;
+
+ while ( (pc = pc->GetPrev())->IsNotNullChunk()
+ && !chunk_is_newline(pc))
+ {
+ first = pc;
+ }
+ return(first);
+}
+
+
+bool chunk_is_last_on_line(Chunk *pc) //TODO: pc should be const here
+{
+ // check if pc is the very last chunk of the file
+ const Chunk *end = Chunk::GetTail();
+
+ if (pc == end)
+ {
+ return(true);
+ }
+ // if the next chunk is a newline then pc is the last chunk on its line
+ const Chunk *next = pc->GetNext();
+
+ if (chunk_is_token(next, CT_NEWLINE))
+ {
+ return(true);
+ }
+ return(false);
+}
+
+
+// TODO: this function needs some cleanup
+void chunk_swap_lines(Chunk *pc1, Chunk *pc2)
+{
+ // to swap lines we need to find the first chunk of the lines
+ pc1 = chunk_first_on_line(pc1);
+ pc2 = chunk_first_on_line(pc2);
+
+ if ( pc1->IsNullChunk()
+ || pc2->IsNullChunk()
+ || pc1 == pc2)
+ {
+ return;
+ }
+ /*
+ * Example start:
+ * ? - start1 - a1 - b1 - nl1 - ? - ref2 - start2 - a2 - b2 - nl2 - ?
+ * ^- pc1 ^- pc2
+ */
+ Chunk *ref2 = pc2->GetPrev();
+
+ // Move the line started at pc2 before pc1
+ while ( pc2->IsNotNullChunk()
+ && !chunk_is_newline(pc2))
+ {
+ Chunk *tmp = pc2->GetNext();
+ g_cl.Pop(pc2);
+ g_cl.AddBefore(pc2, pc1);
+ pc2 = tmp;
+ }
+ /*
+ * Should now be:
+ * ? - start2 - a2 - b2 - start1 - a1 - b1 - nl1 - ? - ref2 - nl2 - ?
+ * ^- pc1 ^- pc2
+ */
+
+ // Now move the line started at pc1 after ref2
+ while ( pc1->IsNotNullChunk()
+ && !chunk_is_newline(pc1))
+ {
+ Chunk *tmp = pc1->GetNext();
+ g_cl.Pop(pc1);
+
+ if (ref2->IsNotNullChunk())
+ {
+ g_cl.AddAfter(pc1, ref2);
+ }
+ else
+ {
+ g_cl.AddHead(pc1);
+ }
+ ref2 = pc1;
+ pc1 = tmp;
+ }
+ /*
+ * Should now be:
+ * ? - start2 - a2 - b2 - nl1 - ? - ref2 - start1 - a1 - b1 - nl2 - ?
+ * ^- pc1 ^- pc2
+ */
+
+ /*
+ * pc1 and pc2 should be the newlines for their lines.
+ * swap the chunks and the nl_count so that the spacing remains the same.
+ */
+ if ( pc1->IsNotNullChunk()
+ && pc2->IsNotNullChunk())
+ {
+ size_t nl_count = pc1->nl_count;
+
+ pc1->nl_count = pc2->nl_count;
+ pc2->nl_count = nl_count;
+
+ chunk_swap(pc1, pc2);
+ }
+} // chunk_swap_lines
+
+
+Chunk *Chunk::GetNextNvb(const E_Scope scope) const
+{
+ return(Search(&Chunk::IsVBrace, scope, E_Direction::FORWARD, false));
+}
+
+
+Chunk *Chunk::GetPrevNvb(const E_Scope scope) const
+{
+ return(Search(&Chunk::IsVBrace, scope, E_Direction::BACKWARD, false));
+}
+
+
+void chunk_flags_set_real(Chunk *pc, pcf_flags_t clr_bits, pcf_flags_t set_bits)
+{
+ if ( pc != nullptr
+ && pc->IsNotNullChunk())
+ {
+ LOG_FUNC_ENTRY();
+ auto const nflags = (pc->flags & ~clr_bits) | set_bits;
+
+ if (pc->flags != nflags)
+ {
+ LOG_FMT(LSETFLG,
+ "%s(%d): %016llx^%016llx=%016llx\n"
+ " orig_line is %zu, orig_col is %zu, Text() '%s', type is %s,",
+ __func__, __LINE__,
+ static_cast<pcf_flags_t::int_t>(pc->flags),
+ static_cast<pcf_flags_t::int_t>(pc->flags ^ nflags),
+ static_cast<pcf_flags_t::int_t>(nflags),
+ pc->orig_line, pc->orig_col, pc->Text(),
+ get_token_name(pc->type));
+ LOG_FMT(LSETFLG, " parent_type is %s,\n ",
+ get_token_name(get_chunk_parent_type(pc)));
+ log_func_stack_inline(LSETFLG);
+ pc->flags = nflags;
+ }
+ }
+}
+
+
+void set_chunk_type_real(Chunk *pc, E_Token token, const char *func, int line)
+{
+ LOG_FUNC_ENTRY();
+
+ if ( pc == nullptr
+ || pc->IsNullChunk()
+ || pc->type == token)
+ {
+ return;
+ }
+ LOG_FMT(LSETTYP, "%s(%d): orig_line is %zu, orig_col is %zu, pc->Text() ",
+ func, line, pc->orig_line, pc->orig_col);
+
+ if (token == CT_NEWLINE)
+ {
+ LOG_FMT(LSETTYP, "<Newline>\n");
+ }
+ else
+ {
+ LOG_FMT(LSETTYP, "'%s'\n", pc->Text());
+ }
+ LOG_FMT(LSETTYP, " pc->type is %s, pc->parent_type is %s => *type is %s, *parent_type is %s\n",
+ get_token_name(pc->type), get_token_name(get_chunk_parent_type(pc)),
+ get_token_name(token), get_token_name(get_chunk_parent_type(pc)));
+ pc->type = token;
+} // set_chunk_type_real
+
+
+void set_chunk_parent_real(Chunk *pc, E_Token token, const char *func, int line)
+{
+ LOG_FUNC_ENTRY();
+
+ if ( pc == nullptr
+ || pc->IsNullChunk()
+ || get_chunk_parent_type(pc) == token)
+ {
+ return;
+ }
+ LOG_FMT(LSETPAR, "%s(%d): orig_line is %zu, orig_col is %zu, pc->Text() ",
+ func, line, pc->orig_line, pc->orig_col);
+
+ if (token == CT_NEWLINE)
+ {
+ LOG_FMT(LSETPAR, "<Newline>\n");
+ }
+ else
+ {
+ char copy[1000];
+ LOG_FMT(LSETPAR, "'%s'\n", pc->ElidedText(copy));
+ }
+ LOG_FMT(LSETPAR, " pc->type is %s, pc->parent_type is %s => *type is %s, *parent_type is %s\n",
+ get_token_name(pc->type), get_token_name(get_chunk_parent_type(pc)),
+ get_token_name(token), get_token_name(get_chunk_parent_type(pc)));
+ pc->parent_type = token;
+} // set_chunk_parent_real
+
+
+E_Token get_chunk_parent_type(Chunk *pc)
+{
+ LOG_FUNC_ENTRY();
+
+ if (pc == nullptr)
+ {
+ return(CT_NONE);
+ }
+ return(pc->parent_type);
+} // get_chunk_parent_type
+
+
+static Chunk *chunk_add(const Chunk *pc_in, Chunk *ref, const E_Direction pos)
+{
+#ifdef DEBUG
+ // test if the pc_in chunk is properly set
+ if (pc_in->pp_level == 999)
+ {
+ fprintf(stderr, "%s(%d): pp_level is not set\n", __func__, __LINE__);
+ log_func_stack_inline(LSETFLG);
+ log_flush(true);
+ exit(EX_SOFTWARE);
+ }
+
+ if (pc_in->orig_line == 0)
+ {
+ fprintf(stderr, "%s(%d): no line number\n", __func__, __LINE__);
+ log_func_stack_inline(LSETFLG);
+ log_flush(true);
+ exit(EX_SOFTWARE);
+ }
+
+ if (pc_in->orig_col == 0)
+ {
+ fprintf(stderr, "%s(%d): no column number\n", __func__, __LINE__);
+ log_func_stack_inline(LSETFLG);
+ log_flush(true);
+ exit(EX_SOFTWARE);
+ }
+#endif /* DEBUG */
+
+ Chunk *pc = new Chunk(*pc_in);
+
+ if (pc != nullptr)
+ {
+ if (ref != nullptr) // ref is a valid chunk
+ {
+ (pos == E_Direction::FORWARD) ? g_cl.AddAfter(pc, ref) : g_cl.AddBefore(pc, ref);
+ }
+ else // ref == NULL
+ {
+ (pos == E_Direction::FORWARD) ? g_cl.AddHead(pc) : g_cl.AddTail(pc);
+ }
+ chunk_log(pc, "chunk_add(A):");
+ }
+ return(pc);
+} // chunk_add
+
+
+Chunk *chunk_get_next_ssq(Chunk *cur)
+{
+ while ( chunk_is_token(cur, CT_TSQUARE)
+ || chunk_is_token(cur, CT_SQUARE_OPEN))
+ {
+ if (chunk_is_token(cur, CT_SQUARE_OPEN))
+ {
+ cur = chunk_skip_to_match(cur);
+ }
+ cur = cur->GetNextNcNnl();
+ }
+ return(cur);
+}
+
+
+Chunk *chunk_get_prev_ssq(Chunk *cur)
+{
+ while ( chunk_is_token(cur, CT_TSQUARE)
+ || chunk_is_token(cur, CT_SQUARE_CLOSE))
+ {
+ if (chunk_is_token(cur, CT_SQUARE_CLOSE))
+ {
+ cur = chunk_skip_to_match_rev(cur);
+ }
+ cur = cur->GetPrevNcNnl();
+ }
+ return(cur);
+}
+
+
+Chunk *chunk_get_pp_start(Chunk *cur)
+{
+ if (!cur->IsPreproc())
+ {
+ return(nullptr);
+ }
+
+ while (!chunk_is_token(cur, CT_PREPROC))
+ {
+ cur = cur->GetPrev(E_Scope::PREPROC);
+ }
+ return(cur);
+}
+
+
+//! skip to the final word/type in a :: chain
+static Chunk *chunk_skip_dc_member(Chunk *start, E_Scope scope, E_Direction dir)
+{
+ LOG_FUNC_ENTRY();
+
+ if (start == nullptr)
+ {
+ return(nullptr);
+ }
+ const auto step_fcn = (dir == E_Direction::FORWARD)
+ ? &Chunk::GetNextNcNnl : &Chunk::GetPrevNcNnl;
+
+ Chunk *pc = start;
+ Chunk *next = chunk_is_token(pc, CT_DC_MEMBER) ? pc : (pc->*step_fcn)(scope);
+
+ while (chunk_is_token(next, CT_DC_MEMBER))
+ {
+ pc = (next->*step_fcn)(scope);
+
+ if (pc->IsNullChunk())
+ {
+ return(Chunk::NullChunkPtr);
+ }
+ next = (pc->*step_fcn)(scope);
+ }
+ return(pc);
+}
+
+
+Chunk *chunk_skip_dc_member(Chunk *start, E_Scope scope)
+{
+ return(chunk_skip_dc_member(start, scope, E_Direction::FORWARD));
+}
+
+
+Chunk *chunk_skip_dc_member_rev(Chunk *start, E_Scope scope)
+{
+ return(chunk_skip_dc_member(start, scope, E_Direction::BACKWARD));
+}
+
+
+// set parent member
+void chunk_set_parent(Chunk *pc, Chunk *parent)
+{
+ if (pc == nullptr)
+ {
+ return;
+ }
+
+ if (parent == nullptr)
+ {
+ return;
+ }
+
+ if (pc == parent)
+ {
+ return;
+ }
+ pc->parent = parent;
+}
+
+
+E_Token get_type_of_the_parent(Chunk *pc)
+{
+ if (pc == nullptr)
+ {
+ return(CT_UNKNOWN);
+ }
+
+ if (pc->parent == nullptr)
+ {
+ return(CT_PARENT_NOT_SET);
+ }
+ return(pc->parent->type);
+}
+
+
+bool chunk_is_attribute_or_declspec(Chunk *pc)
+{
+ return( language_is_set(LANG_CPP)
+ && ( chunk_is_token(pc, CT_ATTRIBUTE)
+ || chunk_is_token(pc, CT_DECLSPEC)));
+}
+
+
+bool chunk_is_class_enum_struct_union(Chunk *pc)
+{
+ return( chunk_is_class_or_struct(pc)
+ || chunk_is_enum(pc)
+ || chunk_is_token(pc, CT_UNION));
+}
+
+
+bool chunk_is_class_or_struct(Chunk *pc)
+{
+ return( chunk_is_token(pc, CT_CLASS)
+ || chunk_is_token(pc, CT_STRUCT));
+}
+
+
+bool chunk_is_class_struct_union(Chunk *pc)
+{
+ return( chunk_is_class_or_struct(pc)
+ || chunk_is_token(pc, CT_UNION));
+}
+
+
+bool chunk_is_enum(Chunk *pc)
+{
+ return( chunk_is_token(pc, CT_ENUM)
+ || chunk_is_token(pc, CT_ENUM_CLASS));
+}
+
+
+int chunk_compare_position(const Chunk *A_token, const Chunk *B_token)
+{
+ if (A_token == nullptr)
+ {
+ assert(A_token);
+ }
+
+ if (B_token == nullptr)
+ {
+ assert(B_token);
+ }
+
+ if (A_token->orig_line < B_token->orig_line)
+ {
+ return(-1);
+ }
+ else if (A_token->orig_line == B_token->orig_line)
+ {
+ if (A_token->orig_col < B_token->orig_col)
+ {
+ return(-1);
+ }
+ else if (A_token->orig_col == B_token->orig_col)
+ {
+ return(0);
+ }
+ }
+ return(1);
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/chunk.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/chunk.h
new file mode 100644
index 00000000..cf3b987f
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/chunk.h
@@ -0,0 +1,1262 @@
+/**
+ * @file chunk.h
+ * Manages and navigates the list of chunks.
+ *
+ * @author Ben Gardner
+ * @license GPL v2+
+ */
+
+#ifndef CHUNK_LIST_H_INCLUDED
+#define CHUNK_LIST_H_INCLUDED
+
+#include "uncrustify_types.h"
+// necessary to not sort it
+#include "char_table.h"
+#include "language_tools.h"
+
+
+/*
+ * TODO: better use a namespace for all chunk related operations.
+ * The function "chunk_is_comment()" would for instance
+ * become "chunk::is_comment()". This makes the usage of the chunks easier
+ * and more intuitive.
+ */
+
+
+static constexpr int ANY_LEVEL = -1;
+
+
+/**
+ * Specifies which chunks should/should not be found.
+ * ALL (default)
+ * - return the true next/prev
+ *
+ * PREPROC
+ * - If not in a preprocessor, skip over any encountered preprocessor stuff
+ * - If in a preprocessor, fail to leave (return nullptr)
+ */
+enum class E_Scope : unsigned int
+{
+ ALL, //! search in all kind of chunks
+ PREPROC, //! search only in preprocessor chunks
+};
+
+
+/**
+ * Specifies which direction or location an operation shall be performed.
+ */
+enum class E_Direction : unsigned int
+{
+ FORWARD,
+ BACKWARD
+};
+
+
+/**
+ * Temporary internal typedef. Will be progressively be replaced by Chunk::CheckFnPtr.
+ *
+ * @brief prototype for a function that checks a chunk to have a given type
+ *
+ * @note this typedef defines the function type "check_t"
+ * for a function pointer of type
+ * bool function(Chunk *pc)
+ */
+// TODO remove when finished
+typedef bool (*check_t)(Chunk *pc);
+
+
+// This is the main type of this program
+class Chunk
+{
+public:
+ static Chunk NullChunk; // Null Chunk
+ static Chunk *const NullChunkPtr; // Pointer to the Null Chunk
+
+ //! constructors
+ Chunk(bool null_c = false); // default
+ Chunk(const Chunk &o); // !!! partial copy: chunk is not linked to others
+
+ Chunk &operator=(const Chunk &o); // !!! partial copy: chunk is not linked to others
+
+ //! whether this is a null Chunk or not
+ bool IsNullChunk() const { return(null_chunk); }
+ bool IsNotNullChunk() const { return(!null_chunk); }
+
+ //! sets all elements of the struct to their default value
+ void Reset();
+
+ //! provides the number of characters of string
+ size_t Len() const;
+
+ //! provides the content of a string a zero terminated character pointer
+ const char *Text() const;
+
+ // Issue #2984, fill up, if necessary, a copy of the first chars of the Text() string
+ const char *ElidedText(char *for_the_copy) const;
+
+
+ // --------- Get* chunk functions
+
+ /**
+ * @brief returns the head of the chunk list
+ * @return pointer to the first chunk
+ */
+ static Chunk *GetHead(void);
+
+ /**
+ * @brief returns the tail of the chunk list
+ * @return pointer to the last chunk
+ */
+ static Chunk *GetTail(void);
+
+ /**
+ * @brief returns the next chunk in a list of chunks
+ * @param scope code region to search in
+ * @return pointer to next chunk or Chunk::NullChunkPtr if no chunk was found
+ */
+ Chunk *GetNext(const E_Scope scope = E_Scope::ALL) const;
+
+ /**
+ * @brief returns the previous chunk in a list of chunks
+ * @param scope code region to search in
+ * @return pointer to previous chunk or Chunk::NullChunkPtr if no chunk was found
+ */
+ Chunk *GetPrev(const E_Scope scope = E_Scope::ALL) const;
+
+ /**
+ * @brief returns the next newline chunk
+ * @param scope code region to search in
+ * @return pointer to next newline chunk or Chunk::NullChunkPtr if no chunk was found
+ */
+ Chunk *GetNextNl(const E_Scope scope = E_Scope::ALL) const;
+
+ /**
+ * @brief returns the prev newline chunk
+ * @param scope code region to search in
+ * @return pointer to prev newline chunk or Chunk::NullChunkPtr if no chunk was found
+ */
+ Chunk *GetPrevNl(const E_Scope scope = E_Scope::ALL) const;
+
+ /**
+ * @brief returns the next non-newline chunk
+ * @param scope code region to search in
+ * @return pointer to next non-newline chunk or Chunk::NullChunkPtr if no chunk was found
+ */
+ Chunk *GetNextNnl(const E_Scope scope = E_Scope::ALL) const;
+
+ /**
+ * @brief returns the prev non-newline chunk
+ * @param scope code region to search in
+ * @return pointer to prev non-newline chunk or Chunk::NullChunkPtr if no chunk was found
+ */
+ Chunk *GetPrevNnl(const E_Scope scope = E_Scope::ALL) const;
+
+ /**
+ * @brief returns the next non-comment chunk
+ * @param scope code region to search in
+ * @return pointer to next non-comment chunk or Chunk::NullChunkPtr if no chunk was found
+ */
+ Chunk *GetNextNc(const E_Scope scope = E_Scope::ALL) const;
+
+ /**
+ * @brief returns the prev non-comment chunk
+ * @param scope code region to search in
+ * @return pointer to prev non-comment chunk or Chunk::NullChunkPtr if no chunk was found
+ */
+ Chunk *GetPrevNc(const E_Scope scope = E_Scope::ALL) const;
+
+ /**
+ * @brief returns the next non-comment and non-newline chunk
+ * @param scope code region to search in
+ * @return pointer to next non-comment and non-newline chunk or Chunk::NullChunkPtr if no chunk was found
+ */
+ Chunk *GetNextNcNnl(const E_Scope scope = E_Scope::ALL) const;
+
+ /**
+ * @brief returns the prev non-comment and non-newline chunk
+ * @param scope code region to search in
+ * @return pointer to prev non-comment and non-newline chunk or Chunk::NullChunkPtr if no chunk was found
+ */
+ Chunk *GetPrevNcNnl(const E_Scope scope = E_Scope::ALL) const;
+
+ /**
+ * @brief returns the next non-comment, non-newline, non-preprocessor chunk
+ * @param scope code region to search in
+ * @return pointer to next non-comment, non-newline, non-preprocessor chunk or Chunk::NullChunkPtr if no chunk was found
+ */
+ Chunk *GetNextNcNnlNpp(const E_Scope scope = E_Scope::ALL) const;
+
+ /**
+ * @brief returns the prev non-comment, non-newline, non-preprocessor chunk
+ * @param scope code region to search in
+ * @return pointer to prev non-comment, non-newline, non-preprocessor chunk or Chunk::NullChunkPtr if no chunk was found
+ */
+ Chunk *GetPrevNcNnlNpp(const E_Scope scope = E_Scope::ALL) const;
+
+ /**
+ * @brief returns the next non-preprocessor or non-comment, non-newline chunk
+ * @param scope code region to search in
+ * @return pointer to next non-preprocessor or non-comment, non-newline chunk or Chunk::NullChunkPtr if no chunk was found
+ */
+ Chunk *GetNextNppOrNcNnl(const E_Scope scope = E_Scope::ALL) const;
+
+ /**
+ * @brief returns the prev non-preprocessor or non-comment, non-newline chunk
+ * @param scope code region to search in
+ * @return pointer to prev non-preprocessor or non-comment, non-newline chunk or Chunk::NullChunkPtr if no chunk was found
+ */
+ Chunk *GetPrevNppOrNcNnl(const E_Scope scope = E_Scope::ALL) const;
+
+ /**
+ * @brief returns the next preprocessor aware non-comment and non-newline chunk
+ * Unlike Chunk::GetNextNcNnl, this will also ignore a line continuation if
+ * the starting chunk is in a preprocessor directive, and may return a newline
+ * if the search reaches the end of a preprocessor directive.
+ * @return pointer to next preprocessor aware non-comment and non-newline chunk or Chunk::NullChunkPtr if no chunk was found
+ */
+ Chunk *PpaGetNextNcNnl() const;
+
+ /**
+ * @brief returns the next non-comment, non-newline, non-empty text chunk
+ * @param scope code region to search in
+ * @return pointer to next non-comment, non-newline, non-empty text chunk or Chunk::NullChunkPtr if no chunk was found
+ */
+ Chunk *GetNextNcNnlNet(const E_Scope scope = E_Scope::ALL) const;
+
+ /**
+ * @brief returns the prev non-comment, non-newline, non-empty text chunk
+ * @param scope code region to search in
+ * @return pointer to prev non-comment, non-newline, non-empty text chunk or Chunk::NullChunkPtr if no chunk was found
+ */
+ Chunk *GetPrevNcNnlNet(const E_Scope scope = E_Scope::ALL) const;
+
+
+ /**
+ * @brief returns the prev non-comment, non-newline, non-ignored chunk
+ * @param scope code region to search in
+ * @return pointer to prev non-comment, non-newline, non-ignored chunk or Chunk::NullChunkPtr if no chunk was found
+ */
+ Chunk *GetPrevNcNnlNi(const E_Scope scope = E_Scope::ALL) const;
+
+
+ /**
+ * @brief returns the next chunk not in or part of balanced square
+ * brackets. This handles stacked [] instances to accommodate
+ * multi-dimensional array declarations
+ * @param scope code region to search in
+ * @return nullptr or the next chunk not in or part of square brackets
+ */
+ Chunk *GetNextNisq(const E_Scope scope = E_Scope::ALL) const;
+
+
+ /**
+ * @brief returns the next non-virtual brace chunk
+ * @param scope code region to search in
+ * @return pointer to next non-virtual brace chunk or Chunk::NullChunkPtr if no chunk was found
+ */
+ Chunk *GetNextNvb(const E_Scope scope = E_Scope::ALL) const;
+
+
+ /**
+ * @brief returns the prev non-virtual brace chunk
+ * @param scope code region to search in
+ * @return pointer to prev non-virtual brace chunk or Chunk::NullChunkPtr if no chunk was found
+ */
+ Chunk *GetPrevNvb(const E_Scope scope = E_Scope::ALL) const;
+
+
+ /**
+ * @brief returns the next chunk of the given type at the level.
+ * @param cType the type to look for
+ * @param cLevel the level to match, -1 or ANY_LEVEL (any level)
+ * @param scope code region to search in
+ * @return pointer to the next matching chunk or Chunk::NullChunkPtr if no chunk was found
+ */
+ Chunk *GetNextType(const E_Token cType, const int cLevel, const E_Scope scope = E_Scope::ALL) const;
+
+
+ /**
+ * @brief returns the prev chunk of the given type at the level.
+ * @param cType the type to look for
+ * @param cLevel the level to match, -1 or ANY_LEVEL (any level)
+ * @param scope code region to search in
+ * @return pointer to the prev matching chunk or Chunk::NullChunkPtr if no chunk was found
+ */
+ Chunk *GetPrevType(const E_Token type, int level, E_Scope scope = E_Scope::ALL) const;
+
+
+ /**
+ * @brief returns the next chunk that holds a given string at a given level.
+ * @param cStr string to search for
+ * @param len length of string
+ * @param cLevel -1 or ANY_LEVEL (any level) or the level to match
+ * @param scope code region to search in
+ * @return pointer to the next matching chunk or Chunk::NullChunkPtr if no chunk was found
+ */
+ Chunk *GetNextString(const char *cStr, const size_t len, const int cLevel, const E_Scope scope = E_Scope::ALL) const;
+
+
+ /**
+ * @brief returns the prev chunk that holds a given string at a given level.
+ * @param cStr string to search for
+ * @param len length of string
+ * @param cLevel -1 or ANY_LEVEL (any level) or the level to match
+ * @param scope code region to search in
+ * @return pointer to the prev matching chunk or Chunk::NullChunkPtr if no chunk was found
+ */
+ Chunk *GetPrevString(const char *cStr, const size_t len, const int cLevel, const E_Scope scope = E_Scope::ALL) const;
+
+
+ // --------- Search functions
+
+ /**
+ * @brief defines a member function pointer for a function of type
+ * Chunk *Chunk::function(const E_Scope scope)
+ * that will search for a new chunk
+ */
+ typedef Chunk *(Chunk::*T_SearchFnPtr)(const E_Scope scope) const;
+
+ /**
+ * @brief defines a member function pointer for a function of type
+ * bool Chunk::function() const;
+ * that checks whether a chunk satisty a specific condition
+ */
+ typedef bool (Chunk::*T_CheckFnPtr)() const;
+
+ /**
+ * @brief determines the search direction to use and returns a pointer
+ * to the corresponding search function.
+ * @param dir search direction
+ * @return pointer to search function
+ */
+ static T_SearchFnPtr GetSearchFn(const E_Direction dir = E_Direction::FORWARD);
+
+ /**
+ * @brief search for a chunk that satisfies a condition in a chunk list
+ *
+ * A generic function that traverses a chunks list either
+ * in forward or reverse direction. The traversal continues until a
+ * chunk satisfies the condition defined by the compare function.
+ * Depending on the parameter cond the condition will either be
+ * checked to be true or false.
+ *
+ * @param checkFn compare function
+ * @param scope code parts to consider for search
+ * @param dir search direction (forward or backward)
+ * @param cond success condition
+ *
+ * @return pointer to the found chunk or Chunk::NullChunkPtr if no chunk was found
+ */
+ Chunk *Search(const T_CheckFnPtr checkFn, const E_Scope scope = E_Scope::ALL, const E_Direction dir = E_Direction::FORWARD, const bool cond = true) const;
+
+ /**
+ * @brief search for a chunk that satisfies a condition in a chunk list,
+ * but being aware of preprocessor chucks.
+ *
+ * This function is similar to Search, except that it is tweaked to
+ * handle searches inside of preprocessor directives. Specifically, if the
+ * starting token is inside a preprocessor directive, it will ignore a line
+ * continuation, and will abort the search if it reaches the end of the
+ * directive. This function only searches forward.
+ *
+ * @param checkFn compare function
+ * @param cond success condition
+ *
+ * @return pointer to the found chunk or Chunk::NullChunkPtr if no chunk was found
+ */
+ Chunk *SearchPpa(const T_CheckFnPtr checkFn, const bool cond = true) const;
+
+ /**
+ * @brief search a chunk of a given type and level. Traverses a chunk list in the
+ * specified direction until a chunk of a given type is found.
+ *
+ * This function is a specialization of Chunk::Search.
+ *
+ * @param cType category to search for
+ * @param scope code parts to consider for search
+ * @param dir search direction
+ * @param cLevel nesting level to match or -1 / ANY_LEVEL
+ *
+ * @return pointer to the found chunk or Chunk::NullChunkPtr if no chunk was found
+ */
+ Chunk *SearchTypeLevel(const E_Token cType, const E_Scope scope = E_Scope::ALL, const E_Direction dir = E_Direction::FORWARD, const int cLevel = -1) const;
+
+
+ /**
+ * @brief searches a chunk that holds a specific string
+ *
+ * Traverses a chunk list either in forward or backward direction until a chunk
+ * with the provided string was found. Additionally a nesting level can be
+ * provided to narrow down the search.
+ *
+ * @param cStr string that searched chunk needs to have
+ * @param len length of the string
+ * @param cLevel nesting level of the searched chunk, ignored when negative
+ * @param scope code parts to consider for search
+ * @param dir search direction
+ *
+ * @return pointer to the found chunk or Chunk::NullChunkPtr if no chunk was found
+ */
+ Chunk *SearchStringLevel(const char *cStr, const size_t len, const int cLevel, const E_Scope scope = E_Scope::ALL, const E_Direction dir = E_Direction::FORWARD) const;
+
+
+ // --------- Is* functions
+
+ /**
+ * @brief checks whether the chunk is a specific token
+ * @token the token to check for
+ * @return true if the chunk type matches the specified token, false otherwise
+ */
+ bool Is(E_Token token) const;
+
+ /**
+ * @brief checks whether the chunk is not a specific token
+ * @token the token to check for
+ * @return true if the chunk type does not matches the specified token, false otherwise
+ */
+ bool IsNot(E_Token token) const;
+
+ /**
+ * @brief checks whether the chunk is a newline
+ * @return true if the chunk is a newline, false otherwise
+ */
+ bool IsNewline() const;
+
+ /**
+ * @brief checks whether the chunk is a comment
+ * This means any kind of:
+ * - single line comment
+ * - multiline comment
+ * - C comment
+ * - C++ comment
+ */
+ bool IsComment() const;
+
+ /**
+ * @brief checks whether the chunk is valid and has an empty text
+ * @return true if the chunk is valid and has an empty text
+ */
+ bool IsEmptyText() const;
+
+ /**
+ * @brief checks whether the chunk is a preprocessor
+ * @return true if the chunk is a preprocessor, false otherwise
+ */
+ bool IsPreproc() const;
+
+ /**
+ * @brief checks whether the chunk is either a comment or a newline
+ * @return true if the chunk is either a comment or a newline, false otherwise
+ */
+ bool IsCommentOrNewline() const;
+
+ /**
+ * @brief checks whether the chunk is either a comment, a newline or ignored
+ * @return true if the chunk is either a comment, a newline or ignored, false otherwise
+ */
+ bool IsCommentNewlineOrIgnored() const;
+
+ /**
+ * @brief checks whether the chunk is a comment, a newline or a preprocessor
+ * @return true if the chunk is a comment, a newline or a preprocessor, false otherwise
+ */
+ bool IsCommentNewlineOrPreproc() const;
+
+ /**
+ * @brief checks whether the chunk is a preprocessor and either a comment or a newline
+ * @return true if the chunk is a preprocessor and either a comment or a newline, false otherwise
+ */
+ bool IsCommentOrNewlineInPreproc() const;
+
+ /**
+ * @brief checks whether the chunk is a comment, a newline or has an empty text
+ * @return true if the chunk is a comment, a newline or has an empty text
+ */
+ bool IsCommentNewlineOrEmptyText() const;
+
+ /**
+ * @brief checks whether the chunk is a square bracket
+ * @return true if the chunk is a square bracket
+ */
+ bool IsSquareBracket() const;
+
+ /**
+ * @brief checks whether the chunk is a virtual brace
+ * @return true if the chunk is a virtual brace
+ */
+ bool IsVBrace() const;
+
+ /**
+ * @brief checks whether the chunk matches a given type and level
+ * @param type category to search for
+ * @param level nesting level to match
+ * @return true if the chunk matches a given type and level
+ */
+ bool IsTypeAndLevel(const E_Token cType, const int cLevel) const;
+
+
+ /**
+ * @brief checks whether the chunk matches a given string and level
+ * @param cStr the expected string
+ * @param len length of the string
+ * @param cLevel nesting level of the searched chunk, ignored when negative
+ * @return true if the chunk matches a given string and level
+ */
+ bool IsStringAndLevel(const char *cStr, const size_t len, const int cLevel) const;
+
+
+ /**
+ * @brief checks whether the chunk is a star/asterisk
+ * @return true if the chunk is a star/asterisk
+ */
+ bool IsStar() const;
+
+
+ // --------- Data members
+
+ Chunk *next; //! pointer to next chunk in list
+ Chunk *prev; //! pointer to previous chunk in list
+ Chunk *parent; //! pointer to parent chunk(not always set)
+
+ align_ptr_t align;
+ indent_ptr_t indent;
+ E_Token type; //! type of the chunk itself
+ E_Token parent_type; //! type of the parent chunk usually CT_NONE
+ //! might be different from parent->parent_type (above)
+ size_t orig_line; //! line number of chunk in input file
+ size_t orig_col; //! column where chunk started in the input file, is always > 0
+ size_t orig_col_end; //! column where chunk ended in the input file, is always > 1
+ UINT32 orig_prev_sp; //! whitespace before this token
+ pcf_flags_t flags; //! see PCF_xxx
+ size_t column; //! column of chunk
+ size_t column_indent; /** if 1st on a line, set to the 'indent'
+ * column, which may be less than the real
+ * column used to indent with tabs */
+ size_t nl_count; //! number of newlines in CT_NEWLINE
+ size_t nl_column; //! column of the subsequent newline entries(all of them should have the same column)
+ size_t level; /** nest level in {, (, or [
+ * only to help vim command } */
+ size_t brace_level; //! nest level in braces only
+ size_t pp_level; //! nest level in preprocessor
+ bool after_tab; //! whether this token was after a tab
+ unc_text str; //! the token text
+
+ // for debugging purpose only
+ track_list *tracking;
+
+private:
+ void copyFrom(const Chunk &o); // !!! partial copy: chunk is not linked to others
+
+ const bool null_chunk; //! true for null chunks
+};
+
+
+/**
+ * @brief Add a copy of a chunk to a chunk list after the given position.
+ *
+ * @note If ref is nullptr, add at the tail of the chunk list
+ *
+ * @todo is ref=nullptr really useful ?
+ *
+ * @param pc_in pointer to chunk to add to list
+ * @param ref position where insertion takes place
+ *
+ * @return pointer to the added chunk
+ */
+Chunk *chunk_add_after(const Chunk *pc_in, Chunk *ref);
+
+
+/**
+ * @brief Add a copy of a chunk to a chunk list before the given position
+ *
+ * @note If ref is nullptr, add at the head of the chunk list
+ *
+ * @todo is ref=nullptr really useful ?
+ *
+ * \bug code adds it before the tail, either code or comment is wrong
+ *
+ * @param pc_in pointer to chunk to add to list
+ * @param ref position where insertion takes place
+ *
+ * @retval pointer to the added chunk
+ */
+Chunk *chunk_add_before(const Chunk *pc_in, Chunk *ref);
+
+
+/**
+ * delete a chunk from a chunk list
+ *
+ * @param pc chunk to delete
+ */
+void chunk_del(Chunk * &pc);
+
+
+/**
+ * move a chunk to after the reference position in a chunk list
+ *
+ * @param pc_in chunk to move
+ * @param ref chunk after which to move
+ */
+void chunk_move_after(Chunk *pc_in, Chunk *ref);
+
+
+/**
+ * Swaps two chunks
+ *
+ * @param pc1 The first chunk
+ * @param pc2 The second chunk
+ */
+void chunk_swap(Chunk *pc1, Chunk *pc2);
+
+
+/**
+ * Swaps two lines that are started with the specified chunks.
+ *
+ * @param pc1 The first chunk of line 1
+ * @param pc2 The first chunk of line 2
+ */
+void chunk_swap_lines(Chunk *pc1, Chunk *pc2);
+
+
+/**
+ * Finds the first chunk on the line that pc is on.
+ * This just backs up until a newline or nullptr is hit.
+ *
+ * given: [ a - b - c - n1 - d - e - n2 ]
+ * input: [ a | b | c | n1 ] => a
+ * input: [ d | e | n2 ] => d
+ *
+ * @param pc chunk to start with
+ */
+Chunk *chunk_first_on_line(Chunk *pc);
+
+
+//! check if a given chunk is the last on its line
+bool chunk_is_last_on_line(Chunk *pc);
+
+
+/**
+ * Gets the next chunk not in or part of balanced square
+ * brackets.This handles stacked[] instances to accommodate
+ * multi - dimensional array declarations
+ *
+ * @param cur chunk to use as start point
+ *
+ * @return nullptr or the next chunk not in or part of square brackets
+ */
+Chunk *chunk_get_next_ssq(Chunk *cur);
+
+/**
+ * Gets the prev chunk not in or part of balanced square
+ * brackets.This handles stacked[] instances to accommodate
+ * multi - dimensional array declarations
+ *
+ * @param cur chunk to use as start point
+ *
+ * @return nullptr or the prev chunk not in or part of square brackets
+ */
+Chunk *chunk_get_prev_ssq(Chunk *cur);
+
+
+/**
+ * Gets the corresponding start chunk if the given chunk is within a
+ * preprocessor directive, or nullptr otherwise.
+ *
+ * @param cur chunk to use as start point
+ *
+ * @return nullptr or start chunk of the preprocessor directive
+ */
+Chunk *chunk_get_pp_start(Chunk *cur);
+
+
+/**
+ * @brief reverse search a chunk of a given category in a chunk list
+ *
+ * @param pc chunk list to search in
+ * @param cat category to search for
+ *
+ * @retval nullptr no object found, or invalid parameters provided
+ * @retval Chunk pointer to the found object
+ */
+Chunk *chunk_search_prev_cat(Chunk *pc, const E_Token cat);
+
+
+/**
+ * @brief forward search a chunk of a given category in a chunk list
+ *
+ * @param pc chunk list to search in
+ * @param cat category to search for
+ *
+ * @retval nullptr no object found, or invalid parameters provided
+ * @retval Chunk pointer to the found object
+ */
+Chunk *chunk_search_next_cat(Chunk *pc, const E_Token cat);
+
+
+/**
+ * @brief checks wether two chunks are in same line
+ *
+ * @param start
+ * @param end
+ *
+ * @return true if there is no newline between start and end chunks
+ */
+bool are_chunks_in_same_line(Chunk *start, Chunk *end);
+
+
+inline bool Chunk::IsTypeAndLevel(const E_Token cType, const int cLevel) const
+{
+ return( ( cLevel < 0
+ || level == static_cast<size_t>(cLevel))
+ && type == cType);
+}
+
+
+inline bool Chunk::IsStringAndLevel(const char *cStr, const size_t len, const int cLevel) const
+{
+ return( ( cLevel < 0
+ || level == static_cast<size_t>(cLevel))
+ && Len() == len // the length is as expected
+ && memcmp(cStr, Text(), len) == 0); // the strings are equal
+}
+
+
+inline bool Chunk::Is(E_Token token) const
+{
+ return( IsNotNullChunk()
+ && type == token);
+}
+
+
+inline bool Chunk::IsNot(E_Token token) const
+{
+ return(!Is(token));
+}
+
+
+inline bool Chunk::IsNewline() const
+{
+ return( Is(CT_NEWLINE)
+ || Is(CT_NL_CONT));
+}
+
+
+inline bool Chunk::IsComment() const
+{
+ return( Is(CT_COMMENT)
+ || Is(CT_COMMENT_MULTI)
+ || Is(CT_COMMENT_CPP));
+}
+
+
+inline bool Chunk::IsEmptyText() const
+{
+ return( IsNotNullChunk()
+ && Len() == 0);
+}
+
+
+inline bool Chunk::IsPreproc() const
+{
+ return( IsNotNullChunk()
+ && flags.test(PCF_IN_PREPROC));
+}
+
+
+inline bool Chunk::IsCommentOrNewline() const
+{
+ return( IsComment()
+ || IsNewline());
+}
+
+
+inline bool Chunk::IsCommentNewlineOrPreproc() const
+{
+ return( IsComment()
+ || IsNewline()
+ || IsPreproc());
+}
+
+
+inline bool Chunk::IsCommentOrNewlineInPreproc() const
+{
+ return( IsPreproc()
+ && ( IsComment()
+ || IsNewline()));
+}
+
+
+inline bool Chunk::IsCommentNewlineOrEmptyText() const
+{
+ return( IsComment()
+ || IsNewline()
+ || IsEmptyText());
+}
+
+
+inline bool Chunk::IsCommentNewlineOrIgnored() const
+{
+ return( IsComment()
+ || IsNewline()
+ || Is(CT_IGNORED));
+}
+
+
+inline bool Chunk::IsSquareBracket() const
+{
+ return( Is(CT_SQUARE_OPEN)
+ || Is(CT_TSQUARE)
+ || Is(CT_SQUARE_CLOSE));
+}
+
+
+inline bool Chunk::IsVBrace() const
+{
+ return( Is(CT_VBRACE_OPEN)
+ || Is(CT_VBRACE_CLOSE));
+}
+
+
+inline bool Chunk::IsStar() const
+{
+ return( Len() == 1
+ && str[0] == '*'
+ && IsNot(CT_OPERATOR_VAL));
+}
+
+
+// TODO remove when possible
+static inline bool chunk_is_token(const Chunk *pc, E_Token c_token)
+{
+ return( pc != nullptr
+ && pc->IsNotNullChunk()
+ && pc->type == c_token);
+}
+
+
+// TODO remove when possible
+static inline bool chunk_is_not_token(const Chunk *pc, E_Token c_token)
+{
+ return( pc != nullptr
+ && pc->IsNotNullChunk()
+ && pc->type != c_token);
+}
+
+
+/**
+ * Skips to the closing match for the current paren/brace/square.
+ *
+ * @param cur The opening or closing paren/brace/square
+ * @param scope chunk section to consider
+ *
+ * @return nullptr or the matching paren/brace/square
+ */
+static inline Chunk *chunk_skip_to_match(Chunk *cur, E_Scope scope = E_Scope::ALL)
+{
+ if ( cur != nullptr
+ && ( chunk_is_token(cur, CT_PAREN_OPEN)
+ || chunk_is_token(cur, CT_SPAREN_OPEN)
+ || chunk_is_token(cur, CT_FPAREN_OPEN)
+ || chunk_is_token(cur, CT_TPAREN_OPEN)
+ || chunk_is_token(cur, CT_BRACE_OPEN)
+ || chunk_is_token(cur, CT_VBRACE_OPEN)
+ || chunk_is_token(cur, CT_ANGLE_OPEN)
+ || chunk_is_token(cur, CT_SQUARE_OPEN)))
+ {
+ return(cur->GetNextType((E_Token)(cur->type + 1), cur->level, scope));
+ }
+ return(cur);
+}
+
+
+static inline Chunk *chunk_skip_to_match_rev(Chunk *cur, E_Scope scope = E_Scope::ALL)
+{
+ if ( cur != nullptr
+ && ( chunk_is_token(cur, CT_PAREN_CLOSE)
+ || chunk_is_token(cur, CT_SPAREN_CLOSE)
+ || chunk_is_token(cur, CT_FPAREN_CLOSE)
+ || chunk_is_token(cur, CT_TPAREN_CLOSE)
+ || chunk_is_token(cur, CT_BRACE_CLOSE)
+ || chunk_is_token(cur, CT_VBRACE_CLOSE)
+ || chunk_is_token(cur, CT_ANGLE_CLOSE)
+ || chunk_is_token(cur, CT_SQUARE_CLOSE)))
+ {
+ return(cur->GetPrevType((E_Token)(cur->type - 1), cur->level, scope));
+ }
+ return(cur);
+}
+
+
+//! skip to the final word/type in a :: chain
+Chunk *chunk_skip_dc_member(Chunk *start, E_Scope scope = E_Scope::ALL);
+Chunk *chunk_skip_dc_member_rev(Chunk *start, E_Scope scope = E_Scope::ALL);
+
+
+/**
+ * Returns true if the chunk under test is an inheritance access specifier
+ */
+static inline bool chunk_is_cpp_inheritance_access_specifier(Chunk *pc)
+{
+ return( language_is_set(LANG_CPP)
+ && pc != nullptr
+ && pc->IsNotNullChunk()
+ && ( chunk_is_token(pc, CT_ACCESS)
+ || chunk_is_token(pc, CT_QUALIFIER))
+ && ( std::strncmp(pc->str.c_str(), "private", 7) == 0
+ || std::strncmp(pc->str.c_str(), "protected", 9) == 0
+ || std::strncmp(pc->str.c_str(), "public", 6) == 0));
+} // chunk_is_cpp_inheritance_access_specifier
+
+
+static inline bool chunk_is_colon(Chunk *pc)
+{
+ return( chunk_is_token(pc, CT_ACCESS_COLON)
+ || chunk_is_token(pc, CT_ASM_COLON)
+ || chunk_is_token(pc, CT_BIT_COLON)
+ || chunk_is_token(pc, CT_CASE_COLON)
+ || chunk_is_token(pc, CT_CLASS_COLON)
+ || chunk_is_token(pc, CT_COLON)
+ || chunk_is_token(pc, CT_COND_COLON)
+ || chunk_is_token(pc, CT_CONSTR_COLON)
+ || chunk_is_token(pc, CT_CS_SQ_COLON)
+ || chunk_is_token(pc, CT_D_ARRAY_COLON)
+ || chunk_is_token(pc, CT_FOR_COLON)
+ || chunk_is_token(pc, CT_LABEL_COLON)
+ || chunk_is_token(pc, CT_OC_COLON)
+ || chunk_is_token(pc, CT_OC_DICT_COLON)
+ || chunk_is_token(pc, CT_TAG_COLON)
+ || chunk_is_token(pc, CT_WHERE_COLON));
+}
+
+
+static inline bool chunk_is_single_line_comment(Chunk *pc)
+{
+ return( chunk_is_token(pc, CT_COMMENT)
+ || chunk_is_token(pc, CT_COMMENT_CPP));
+}
+
+
+// TODO remove when possible
+static inline bool chunk_is_newline(Chunk *pc)
+{
+ return( chunk_is_token(pc, CT_NEWLINE)
+ || chunk_is_token(pc, CT_NL_CONT));
+}
+
+
+static inline bool chunk_is_semicolon(Chunk *pc)
+{
+ return( chunk_is_token(pc, CT_SEMICOLON)
+ || chunk_is_token(pc, CT_VSEMICOLON));
+}
+
+
+static inline bool chunk_is_Doxygen_comment(Chunk *pc)
+{
+ if ( pc == nullptr
+ || !pc->IsComment())
+ {
+ return(false);
+ }
+ // check the third character
+ const char *sComment = pc->Text();
+ const size_t len = strlen(sComment);
+
+ if (len < 3)
+ {
+ return(false);
+ }
+ return( (sComment[2] == '/')
+ || (sComment[2] == '!')
+ || (sComment[2] == '@'));
+}
+
+
+static inline bool chunk_is_type(Chunk *pc)
+{
+ return( chunk_is_token(pc, CT_TYPE)
+ || chunk_is_token(pc, CT_PTR_TYPE)
+ || chunk_is_token(pc, CT_BYREF)
+ || chunk_is_token(pc, CT_DC_MEMBER)
+ || chunk_is_token(pc, CT_QUALIFIER)
+ || chunk_is_token(pc, CT_STRUCT)
+ || chunk_is_token(pc, CT_ENUM)
+ || chunk_is_token(pc, CT_UNION));
+}
+
+
+static inline bool chunk_is_str(Chunk *pc, const char *str)
+{
+ size_t len = strlen(str);
+
+ return( pc != nullptr // valid pc pointer
+ && (pc->Len() == len) // token size equals size parameter
+ && (memcmp(pc->Text(), str, len) == 0)); // token name is the same as str parameter
+
+ /*
+ * TODO: possible access beyond array for memcmp, check this
+ * why not use strncmp here?
+ */
+}
+
+
+static inline bool chunk_is_str_case(Chunk *pc, const char *str, size_t len)
+{
+ return( pc != nullptr
+ && (pc->Len() == len)
+ && (strncasecmp(pc->Text(), str, len) == 0));
+}
+
+
+static inline bool chunk_is_word(Chunk *pc)
+{
+ return( pc != nullptr
+ && (pc->Len() >= 1)
+ && CharTable::IsKw1(pc->str[0]));
+}
+
+
+static inline bool chunk_is_nullable(Chunk *pc)
+{
+ return( language_is_set(LANG_CS | LANG_VALA)
+ && (pc != nullptr)
+ && (pc->Len() == 1)
+ && (pc->str[0] == '?'));
+}
+
+
+static inline bool chunk_is_addr(Chunk *pc)
+{
+ if ( pc != nullptr
+ && pc->IsNotNullChunk()
+ && ( chunk_is_token(pc, CT_BYREF)
+ || ( (pc->Len() == 1)
+ && (pc->str[0] == '&')
+ && pc->type != CT_OPERATOR_VAL)))
+ {
+ Chunk *prev = pc->GetPrev();
+
+ if ( pc->flags.test(PCF_IN_TEMPLATE)
+ && ( chunk_is_token(prev, CT_COMMA)
+ || chunk_is_token(prev, CT_ANGLE_OPEN)))
+ {
+ return(false);
+ }
+ return(true);
+ }
+ return(false);
+}
+
+
+static inline bool chunk_is_msref(Chunk *pc) // ms compilers for C++/CLI and WinRT use '^' instead of '*' for marking up reference types vs pointer types
+{
+ return( language_is_set(LANG_CPP)
+ && ( pc != nullptr
+ && (pc->Len() == 1)
+ && (pc->str[0] == '^')
+ && pc->type != CT_OPERATOR_VAL));
+}
+
+
+static inline bool chunk_is_ptr_operator(Chunk *pc)
+{
+ return( pc != nullptr
+ && ( ( pc->IsStar()
+ || chunk_is_addr(pc)
+ || chunk_is_msref(pc))
+ || chunk_is_nullable(pc)));
+}
+
+
+static inline bool chunk_is_pointer_or_reference(Chunk *pc)
+{
+ return( chunk_is_ptr_operator(pc)
+ || chunk_is_token(pc, CT_BYREF));
+}
+
+
+//! Check to see if there is a newline between the two chunks
+bool chunk_is_newline_between(Chunk *start, Chunk *end);
+
+
+static inline bool chunk_is_closing_brace(Chunk *pc)
+{
+ return( chunk_is_token(pc, CT_BRACE_CLOSE)
+ || chunk_is_token(pc, CT_VBRACE_CLOSE));
+}
+
+
+static inline bool chunk_is_opening_brace(Chunk *pc)
+{
+ return( chunk_is_token(pc, CT_BRACE_OPEN)
+ || chunk_is_token(pc, CT_VBRACE_OPEN));
+}
+
+
+static inline bool chunk_is_paren_open(Chunk *pc)
+{
+ return( chunk_is_token(pc, CT_PAREN_OPEN)
+ || chunk_is_token(pc, CT_SPAREN_OPEN)
+ || chunk_is_token(pc, CT_TPAREN_OPEN)
+ || chunk_is_token(pc, CT_FPAREN_OPEN)
+ || chunk_is_token(pc, CT_LPAREN_OPEN));
+}
+
+
+static inline bool chunk_is_paren_close(Chunk *pc)
+{
+ return( chunk_is_token(pc, CT_PAREN_CLOSE)
+ || chunk_is_token(pc, CT_SPAREN_CLOSE)
+ || chunk_is_token(pc, CT_TPAREN_CLOSE)
+ || chunk_is_token(pc, CT_FPAREN_CLOSE));
+}
+
+
+/**
+ * Returns true if either chunk is null or both have the same preproc flags.
+ * If this is true, you can remove a newline/nl_cont between the two.
+ */
+static inline bool chunk_same_preproc(Chunk *pc1, Chunk *pc2)
+{
+ return( pc1 == nullptr
+ || pc1->IsNullChunk()
+ || pc2 == nullptr
+ || pc2->IsNullChunk()
+ || ((pc1->flags & PCF_IN_PREPROC) == (pc2->flags & PCF_IN_PREPROC)));
+}
+
+
+/**
+ * Returns true if it is safe to delete the newline token.
+ * The prev and next chunks must have the same PCF_IN_PREPROC flag AND
+ * the newline can't be after a C++ comment.
+ */
+static inline bool chunk_safe_to_del_nl(Chunk *nl)
+{
+ if (nl == nullptr)
+ {
+ nl = Chunk::NullChunkPtr;
+ }
+ Chunk *tmp = nl->GetPrev();
+
+ if (chunk_is_token(tmp, CT_COMMENT_CPP))
+ {
+ return(false);
+ }
+ return(chunk_same_preproc(tmp, nl->GetNext()));
+}
+
+
+/**
+ * Checks if a chunk points to the opening parenthese of a
+ * for(...in...) loop in Objective-C.
+ *
+ * @return true - the chunk is the opening parentheses of a for in loop
+ */
+static inline bool chunk_is_forin(Chunk *pc)
+{
+ if ( language_is_set(LANG_OC)
+ && chunk_is_token(pc, CT_SPAREN_OPEN))
+ {
+ Chunk *prev = pc->GetPrevNcNnl();
+
+ if (chunk_is_token(prev, CT_FOR))
+ {
+ Chunk *next = pc;
+
+ while ( next != nullptr
+ && next->type != CT_SPAREN_CLOSE
+ && next->type != CT_IN)
+ {
+ next = next->GetNextNcNnl();
+ }
+
+ if (chunk_is_token(next, CT_IN))
+ {
+ return(true);
+ }
+ }
+ }
+ return(false);
+}
+
+
+/**
+ * Returns true if pc is an CT_ATTRIBUTE or CT_DECLSPEC
+ */
+bool chunk_is_attribute_or_declspec(Chunk *pc);
+
+
+/**
+ * Returns true if pc is one of CT_CLASS, CT_ENUM, CT_ENUM_CLASS, CT_STRUCT or CT_UNION
+ */
+bool chunk_is_class_enum_struct_union(Chunk *pc);
+
+
+/**
+ * Returns true if pc is a CT_CLASS or CT_STRUCT
+ */
+bool chunk_is_class_or_struct(Chunk *pc);
+
+
+/**
+ * Returns true if pc is one of CT_CLASS, CT_STRUCT or CT_UNION
+ */
+bool chunk_is_class_struct_union(Chunk *pc);
+
+
+/**
+ * Returns true if pc is a CT_ENUM or CT_ENUM_CLASS
+ */
+bool chunk_is_enum(Chunk *pc);
+
+
+void set_chunk_type_real(Chunk *pc, E_Token tt, const char *func, int line);
+
+
+void set_chunk_parent_real(Chunk *pc, E_Token tt, const char *func, int line);
+
+
+#define set_chunk_type(pc, tt) set_chunk_type_real((pc), (tt), __unqualified_func__, __LINE__)
+
+
+#define set_chunk_parent(pc, tt) set_chunk_parent_real((pc), (tt), __unqualified_func__, __LINE__)
+
+
+E_Token get_chunk_parent_type(Chunk *pc);
+
+
+void chunk_flags_set_real(Chunk *pc, pcf_flags_t clr_bits, pcf_flags_t set_bits);
+
+
+#define chunk_flags_upd(pc, cc, ss) chunk_flags_set_real((pc), (cc), (ss))
+
+
+#define chunk_flags_set(pc, ss) chunk_flags_set_real((pc), {}, (ss))
+
+
+#define chunk_flags_clr(pc, cc) chunk_flags_set_real((pc), (cc), {})
+
+
+void chunk_set_parent(Chunk *pc, Chunk *parent);
+
+
+E_Token get_type_of_the_parent(Chunk *pc);
+
+
+/**
+ * @brief compare the positions of two tokens in a file.
+ *
+ * The function compares the two positions of two tokens.
+ *
+ * @param A_token
+ * @param B_token
+ *
+ * @return returns an integer less than, equal to, or greater than zero
+ * if A_token is found, respectively, to be less/before than, to
+ * match, or be greater/after than B_token.
+ */
+int chunk_compare_position(const Chunk *A_token, const Chunk *B_token);
+
+
+#endif /* CHUNK_LIST_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/combine.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/combine.cpp
new file mode 100644
index 00000000..f21d106c
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/combine.cpp
@@ -0,0 +1,4018 @@
+/**
+ * @file combine.cpp
+ * Labels the chunks as needed.
+ *
+ * @author Ben Gardner
+ * @author Guy Maurel
+ * @license GPL v2+
+ */
+
+#include "combine.h"
+
+#include "combine_fix_mark.h"
+#include "combine_skip.h"
+#include "combine_tools.h"
+#include "EnumStructUnionParser.h"
+#include "flag_braced_init_list.h"
+#include "flag_parens.h"
+#include "lang_pawn.h"
+#include "newlines.h"
+#include "prototypes.h"
+#include "tokenize_cleanup.h"
+
+#include <limits>
+
+constexpr static auto LCURRENT = LCOMBINE;
+
+using namespace std;
+using namespace uncrustify;
+
+
+/**
+ * Mark the parens and colons in:
+ * asm volatile ( "xx" : "xx" (l), "yy"(h) : ... );
+ *
+ * @param pc the CT_ASM item
+ */
+static void flag_asm(Chunk *pc);
+
+
+/**
+ * Skips the list of class/struct parent types.
+ */
+Chunk *skip_parent_types(Chunk *colon);
+
+
+/**
+ * Combines two tokens into {{ and }} if inside parens and nothing is between
+ * either pair.
+ */
+static void check_double_brace_init(Chunk *bo1);
+
+
+static void process_returns(void);
+
+
+/**
+ * Processes a return statement, labeling the parens and marking the parent.
+ * May remove or add parens around the return statement
+ *
+ * @param pc Pointer to the return chunk
+ */
+static Chunk *process_return(Chunk *pc);
+
+
+/**
+ * Process an ObjC 'class'
+ * pc is the chunk after '@implementation' or '@interface' or '@protocol'.
+ * Change colons, etc. Processes stuff until '@end'.
+ * Skips anything in braces.
+ */
+static void handle_oc_class(Chunk *pc);
+
+
+/**
+ * Mark Objective-C blocks (aka lambdas or closures)
+ * The syntax and usage is exactly like C function pointers
+ * but instead of an asterisk they have a caret as pointer symbol.
+ * Although it may look expensive this functions is only triggered
+ * on appearance of an OC_BLOCK_CARET for LANG_OC.
+ * repeat(10, ^{ putc('0'+d); });
+ * typedef void (^workBlk_t)(void);
+ *
+ * @param pc points to the '^'
+ */
+static void handle_oc_block_literal(Chunk *pc);
+
+
+/**
+ * Mark Objective-C block types.
+ * The syntax and usage is exactly like C function pointers
+ * but instead of an asterisk they have a caret as pointer symbol.
+ * typedef void (^workBlk_t)(void);
+ * const char * (^workVar)(void);
+ * -(void)Foo:(void(^)())blk { }
+ *
+ * This is triggered when the sequence '(' '^' is found.
+ *
+ * @param pc points to the '^'
+ */
+static void handle_oc_block_type(Chunk *pc);
+
+
+/**
+ * Process an ObjC message spec/dec
+ *
+ * Specs:
+ * -(void) foo ARGS;
+ *
+ * Declaration:
+ * -(void) foo ARGS { }
+ *
+ * LABEL : (ARGTYPE) ARGNAME
+ *
+ * ARGS is ': (ARGTYPE) ARGNAME [MOREARGS...]'
+ * MOREARGS is ' [ LABEL] : (ARGTYPE) ARGNAME '
+ * -(void) foo: (int) arg: { }
+ * -(void) foo: (int) arg: { }
+ * -(void) insertObject:(id)anObject atIndex:(int)index
+ */
+static void handle_oc_message_decl(Chunk *pc);
+
+
+/**
+ * Process an ObjC message send statement:
+ * [ class func: val1 name2: val2 name3: val3] ; // named params
+ * [ class func: val1 : val2 : val3] ; // unnamed params
+ * [ class <proto> self method ] ; // with protocol
+ * [[NSMutableString alloc] initWithString: @"" ] // class from msg
+ * [func(a,b,c) lastObject ] // class from func
+ *
+ * Mainly find the matching ']' and ';' and mark the colons.
+ *
+ * @param pc points to the open square '['
+ */
+static void handle_oc_message_send(Chunk *pc);
+
+
+//! Process @Property values and re-arrange them if necessary
+static void handle_oc_property_decl(Chunk *pc);
+
+//! Process @available annotation
+static void handle_oc_available(Chunk *pc);
+
+/**
+ * Process a type that is enclosed in parens in message declarations.
+ * TODO: handle block types, which get special formatting
+ *
+ * @param pc points to the open paren
+ *
+ * @return the chunk after the type
+ */
+static Chunk *handle_oc_md_type(Chunk *paren_open, E_Token ptype, pcf_flags_t flags, bool &did_it);
+
+/**
+ * Process an C# [] thingy:
+ * [assembly: xxx]
+ * [AttributeUsage()]
+ * [@X]
+ *
+ * Set the next chunk to a statement start after the close ']'
+ *
+ * @param pc points to the open square '['
+ */
+static void handle_cs_square_stmt(Chunk *pc);
+
+
+/**
+ * We are on a brace open that is preceded by a word or square close.
+ * Set the brace parent to CT_CS_PROPERTY and find the first item in the
+ * property and set its parent, too.
+ */
+static void handle_cs_property(Chunk *pc);
+
+
+/**
+ * We hit a ']' followed by a WORD. This may be a multidimensional array type.
+ * Example: int[,,] x;
+ * If there is nothing but commas between the open and close, then mark it.
+ */
+static void handle_cs_array_type(Chunk *pc);
+
+
+/**
+ * We are on the C++ 'template' keyword.
+ * What follows should be the following:
+ *
+ * template <class identifier> function_declaration;
+ * template <typename identifier> function_declaration;
+ * template <class identifier> class class_declaration;
+ * template <typename identifier> class class_declaration;
+ *
+ * Change the 'class' inside the <> to CT_TYPE.
+ * Set the parent to the class after the <> to CT_TEMPLATE.
+ * Set the parent of the semicolon to CT_TEMPLATE.
+ */
+static void handle_cpp_template(Chunk *pc);
+
+
+/**
+ * Verify and then mark C++ lambda expressions.
+ * The expected format is '[...](...){...}' or '[...](...) -> type {...}'
+ * sq_o is '[' CT_SQUARE_OPEN or '[]' CT_TSQUARE
+ * Split the '[]' so we can control the space
+ */
+static void handle_cpp_lambda(Chunk *pc);
+
+
+/**
+ * We are on the D 'template' keyword.
+ * What follows should be the following:
+ *
+ * template NAME ( TYPELIST ) { BODY }
+ *
+ * Set the parent of NAME to template, change NAME to CT_TYPE.
+ * Set the parent of the parens and braces to CT_TEMPLATE.
+ * Scan the body for each type in TYPELIST and change the type to CT_TYPE.
+ */
+static void handle_d_template(Chunk *pc);
+
+
+/**
+ * A func wrap chunk and what follows should be treated as a function name.
+ * Create new text for the chunk and call it a CT_FUNCTION.
+ *
+ * A type wrap chunk and what follows should be treated as a simple type.
+ * Create new text for the chunk and call it a CT_TYPE.
+ */
+static void handle_wrap(Chunk *pc);
+
+
+/**
+ * A proto wrap chunk and what follows should be treated as a function proto.
+ *
+ * RETTYPE PROTO_WRAP( NAME, PARAMS ); or RETTYPE PROTO_WRAP( NAME, (PARAMS) );
+ * RETTYPE gets changed with make_type().
+ * PROTO_WRAP is marked as CT_FUNC_PROTO or CT_FUNC_DEF.
+ * NAME is marked as CT_WORD.
+ * PARAMS is all marked as prototype parameters.
+ */
+static void handle_proto_wrap(Chunk *pc);
+
+
+static bool is_oc_block(Chunk *pc);
+
+
+/**
+ * Java assert statements are: "assert EXP1 [: EXP2] ;"
+ * Mark the parent of the colon and semicolon
+ */
+static void handle_java_assert(Chunk *pc);
+
+
+static void flag_asm(Chunk *pc)
+{
+ LOG_FUNC_ENTRY();
+
+ Chunk *tmp = pc->GetNextNcNnl(E_Scope::PREPROC);
+
+ if (chunk_is_not_token(tmp, CT_QUALIFIER))
+ {
+ return;
+ }
+ Chunk *po = tmp->GetNextNcNnl(E_Scope::PREPROC);
+
+ if (!chunk_is_paren_open(po))
+ {
+ return;
+ }
+ Chunk *end = chunk_skip_to_match(po, E_Scope::PREPROC);
+
+ if (end == nullptr)
+ {
+ return;
+ }
+ set_chunk_parent(po, CT_ASM);
+ set_chunk_parent(end, CT_ASM);
+
+ for ( tmp = po->GetNextNcNnl(E_Scope::PREPROC);
+ tmp->IsNotNullChunk()
+ && tmp != end;
+ tmp = tmp->GetNextNcNnl(E_Scope::PREPROC))
+ {
+ if (chunk_is_token(tmp, CT_COLON))
+ {
+ set_chunk_type(tmp, CT_ASM_COLON);
+ }
+ else if (chunk_is_token(tmp, CT_DC_MEMBER))
+ {
+ // if there is a string on both sides, then this is two ASM_COLONs
+ if ( chunk_is_token(tmp->GetNextNcNnl(E_Scope::PREPROC), CT_STRING)
+ && chunk_is_token(tmp->GetPrevNcNnlNi(E_Scope::PREPROC), CT_STRING)) // Issue #2279
+ {
+ Chunk nc;
+
+ nc = *tmp;
+
+ tmp->str.resize(1);
+ tmp->orig_col_end = tmp->orig_col + 1;
+ set_chunk_type(tmp, CT_ASM_COLON);
+
+ set_chunk_type(&nc, tmp->type);
+ nc.str.pop_front();
+ nc.orig_col++;
+ nc.column++;
+ chunk_add_after(&nc, tmp);
+ }
+ }
+ }
+
+ tmp = end->GetNextNcNnl(E_Scope::PREPROC);
+
+ if (tmp->IsNullChunk())
+ {
+ return;
+ }
+
+ if (chunk_is_token(tmp, CT_SEMICOLON))
+ {
+ set_chunk_parent(tmp, CT_ASM);
+ }
+} // flag_asm
+
+
+void do_symbol_check(Chunk *prev, Chunk *pc, Chunk *next)
+{
+ LOG_FUNC_ENTRY();
+ LOG_FMT(LFCNR, "%s(%d): prev is '%s' %s\n",
+ __func__, __LINE__,
+ prev->Text(), get_token_name(prev->type));
+ log_pcf_flags(LFCNR, prev->flags);
+ LOG_FMT(LFCNR, "%s(%d): pc is '%s' %s\n",
+ __func__, __LINE__,
+ pc->Text(), get_token_name(pc->type));
+ log_pcf_flags(LFCNR, pc->flags);
+ LOG_FMT(LFCNR, "%s(%d): next is '%s' %s\n",
+ __func__, __LINE__,
+ next->Text(), get_token_name(next->type));
+ log_pcf_flags(LFCNR, next->flags);
+
+ if ( chunk_is_token(pc, CT_NOEXCEPT) // Issue #3284
+ && chunk_is_token(next, CT_ASSIGN)) // skip over noexcept
+ {
+ LOG_FMT(LFCNR, "%s(%d): orig_line is %zu, orig_col is %zu, Text() '%s'\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text());
+ pc = next;
+ next = pc->GetNext();
+ }
+
+ // separate the uses of CT_ASSIGN sign '='
+ // into CT_ASSIGN_DEFAULT_ARG, CT_ASSIGN_FUNC_PROTO
+ if ( chunk_is_token(pc, CT_ASSIGN)
+ && get_chunk_parent_type(pc) == CT_FUNC_PROTO
+ && ( pc->flags.test(PCF_IN_FCN_DEF) // Issue #2236
+ || pc->flags.test(PCF_IN_CONST_ARGS)))
+ {
+ LOG_FMT(LFCNR, "%s(%d): orig_line is %zu, orig_col is %zu, Text() '%s'\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text());
+ log_pcf_flags(LFCNR, pc->flags);
+ set_chunk_type(pc, CT_ASSIGN_DEFAULT_ARG);
+ return;
+ }
+
+ if ( ( chunk_is_token(prev, CT_FPAREN_CLOSE)
+ || ( ( chunk_is_str(prev, "const")
+ || chunk_is_str(prev, "override"))
+ && chunk_is_token(prev->prev, CT_FPAREN_CLOSE)))
+ && chunk_is_token(pc, CT_ASSIGN)
+ && ( chunk_is_token(next, CT_DEFAULT)
+ || chunk_is_token(next, CT_DELETE)
+ || chunk_is_str(next, "0")))
+ {
+ set_chunk_type(pc, CT_ASSIGN_FUNC_PROTO);
+ return; // cpp 30031
+ }
+
+ if (chunk_is_token(pc, CT_OC_AT))
+ {
+ if ( chunk_is_token(next, CT_PAREN_OPEN)
+ || chunk_is_token(next, CT_BRACE_OPEN)
+ || chunk_is_token(next, CT_SQUARE_OPEN))
+ {
+ flag_parens(next, PCF_OC_BOXED, next->type, CT_OC_AT, false);
+ }
+ else
+ {
+ set_chunk_parent(next, CT_OC_AT);
+ return; // objective-c_50095
+ }
+ }
+
+ // D stuff
+ if ( language_is_set(LANG_D)
+ && chunk_is_token(pc, CT_QUALIFIER)
+ && chunk_is_str(pc, "const")
+ && chunk_is_token(next, CT_PAREN_OPEN))
+ {
+ set_chunk_type(pc, CT_D_CAST);
+ set_paren_parent(next, pc->type);
+ return; // d_40061
+ }
+
+ if ( chunk_is_token(next, CT_PAREN_OPEN)
+ && ( chunk_is_token(pc, CT_D_CAST)
+ || chunk_is_token(pc, CT_DELEGATE)
+ || chunk_is_token(pc, CT_ALIGN)))
+ {
+ // mark the parenthesis parent
+ Chunk *tmp = set_paren_parent(next, pc->type);
+
+ // For a D cast - convert the next item
+ if ( chunk_is_token(pc, CT_D_CAST)
+ && tmp != nullptr)
+ {
+ if (chunk_is_token(tmp, CT_STAR))
+ {
+ set_chunk_type(tmp, CT_DEREF);
+ return; // d_40006
+ }
+ else if (chunk_is_token(tmp, CT_AMP))
+ {
+ set_chunk_type(tmp, CT_ADDR);
+ return; // d_40060
+ }
+ else if (chunk_is_token(tmp, CT_MINUS))
+ {
+ set_chunk_type(tmp, CT_NEG);
+ return; // d_40060
+ }
+ else if (chunk_is_token(tmp, CT_PLUS))
+ {
+ set_chunk_type(tmp, CT_POS);
+ return; // d_40060
+ }
+ }
+
+ /*
+ * For a delegate, mark previous words as types and the item after the
+ * close paren as a variable def
+ */
+ if (chunk_is_token(pc, CT_DELEGATE))
+ {
+ if (tmp != nullptr)
+ {
+ set_chunk_parent(tmp, CT_DELEGATE);
+
+ if (tmp->level == tmp->brace_level)
+ {
+ chunk_flags_set(tmp, PCF_VAR_1ST_DEF);
+ }
+ }
+
+ for (tmp = pc->GetPrevNcNnlNi(); tmp->IsNotNullChunk(); tmp = tmp->GetPrevNcNnlNi()) // Issue #2279
+ {
+ if ( chunk_is_semicolon(tmp)
+ || chunk_is_token(tmp, CT_BRACE_OPEN)
+ || chunk_is_token(tmp, CT_VBRACE_OPEN))
+ {
+ break;
+ }
+ make_type(tmp);
+ }
+
+ return; // c-sharp_10160
+ }
+
+ if ( chunk_is_token(pc, CT_ALIGN)
+ && tmp != nullptr)
+ {
+ if (chunk_is_token(tmp, CT_BRACE_OPEN))
+ {
+ set_paren_parent(tmp, pc->type);
+ return; // d_40024
+ }
+ else if (chunk_is_token(tmp, CT_COLON))
+ {
+ set_chunk_parent(tmp, pc->type);
+ return; // d_40024
+ }
+ }
+ } // paren open + cast/align/delegate
+
+ if (chunk_is_token(pc, CT_INVARIANT))
+ {
+ if (chunk_is_token(next, CT_PAREN_OPEN))
+ {
+ set_chunk_parent(next, pc->type);
+ Chunk *tmp = next->GetNext();
+
+ if (tmp == nullptr)
+ {
+ tmp = Chunk::NullChunkPtr;
+ }
+
+ while (tmp->IsNotNullChunk())
+ {
+ if (chunk_is_token(tmp, CT_PAREN_CLOSE))
+ {
+ set_chunk_parent(tmp, pc->type);
+ break;
+ }
+ make_type(tmp);
+ tmp = tmp->GetNext();
+ }
+ return; // d_40100
+ }
+ else
+ {
+ set_chunk_type(pc, CT_QUALIFIER);
+ return;
+ }
+ }
+
+ if ( chunk_is_token(prev, CT_BRACE_OPEN)
+ && get_chunk_parent_type(prev) != CT_CS_PROPERTY
+ && ( chunk_is_token(pc, CT_GETSET)
+ || chunk_is_token(pc, CT_GETSET_EMPTY)))
+ {
+ flag_parens(prev, PCF_NONE, CT_NONE, CT_GETSET, false);
+ return;
+ }
+
+ if (chunk_is_token(pc, CT_ASM))
+ {
+ flag_asm(pc);
+ return;
+ }
+
+ // clang stuff - A new derived type is introduced to C and, by extension, Objective-C, C++, and Objective-C++
+ if (language_is_set(LANG_C | LANG_CPP | LANG_OC))
+ {
+ if (chunk_is_token(pc, CT_CARET))
+ {
+ if ( pc->flags.test(PCF_EXPR_START)
+ || pc->flags.test(PCF_IN_PREPROC))
+ {
+ handle_oc_block_literal(pc);
+ return;
+ }
+ }
+ }
+
+ // Objective C stuff
+ if (language_is_set(LANG_OC))
+ {
+ // Check for message declarations
+ if (pc->flags.test(PCF_STMT_START))
+ {
+ if ( ( chunk_is_str(pc, "-")
+ || chunk_is_str(pc, "+"))
+ && chunk_is_str(next, "("))
+ {
+ handle_oc_message_decl(pc);
+ return;
+ }
+ }
+
+ if ( pc->flags.test(PCF_EXPR_START)
+ || pc->flags.test(PCF_IN_PREPROC))
+ {
+ if (chunk_is_token(pc, CT_SQUARE_OPEN))
+ {
+ handle_oc_message_send(pc);
+ return; // objective-c_50003
+ }
+ }
+
+ if (chunk_is_token(pc, CT_OC_PROPERTY))
+ {
+ handle_oc_property_decl(pc);
+ return;
+ }
+
+ if (chunk_is_token(pc, CT_OC_AVAILABLE))
+ {
+ handle_oc_available(pc);
+ return;
+ }
+ }
+
+ // C# stuff
+ if (language_is_set(LANG_CS))
+ {
+ // '[assembly: xxx]' stuff
+ if ( pc->flags.test(PCF_EXPR_START)
+ && chunk_is_token(pc, CT_SQUARE_OPEN))
+ {
+ handle_cs_square_stmt(pc);
+ return;
+ }
+
+ if ( chunk_is_token(next, CT_BRACE_OPEN)
+ && get_chunk_parent_type(next) == CT_NONE
+ && ( chunk_is_token(pc, CT_SQUARE_CLOSE)
+ || chunk_is_token(pc, CT_ANGLE_CLOSE)
+ || chunk_is_token(pc, CT_WORD)))
+ {
+ handle_cs_property(next);
+ return;
+ }
+
+ if ( chunk_is_token(pc, CT_SQUARE_CLOSE)
+ && chunk_is_token(next, CT_WORD))
+ {
+ handle_cs_array_type(pc);
+ return;
+ }
+
+ if ( ( chunk_is_token(pc, CT_LAMBDA)
+ || chunk_is_token(pc, CT_DELEGATE))
+ && chunk_is_token(next, CT_BRACE_OPEN))
+ {
+ set_paren_parent(next, pc->type);
+ return;
+ }
+
+ if ( chunk_is_token(pc, CT_WHEN)
+ && pc->GetNext()->IsNotNullChunk()
+ && pc->GetNext()->type != CT_SPAREN_OPEN)
+ {
+ set_chunk_type(pc, CT_WORD);
+ return;
+ }
+ }
+
+ if ( language_is_set(LANG_JAVA)
+ && chunk_is_token(pc, CT_LAMBDA)
+ && chunk_is_token(next, CT_BRACE_OPEN))
+ {
+ set_paren_parent(next, pc->type);
+ return;
+ }
+
+ if (chunk_is_token(pc, CT_NEW))
+ {
+ Chunk *ts = nullptr;
+ Chunk *tmp = next;
+
+ if (chunk_is_token(tmp, CT_TSQUARE))
+ {
+ ts = tmp;
+ tmp = tmp->GetNextNcNnl();
+ }
+
+ if ( chunk_is_token(tmp, CT_BRACE_OPEN)
+ || chunk_is_token(tmp, CT_PAREN_OPEN))
+ {
+ set_paren_parent(tmp, pc->type);
+
+ if (ts != nullptr)
+ {
+ set_chunk_parent(ts, pc->type);
+ }
+ }
+ return;
+ }
+
+ // C++11 Lambda stuff
+ if ( language_is_set(LANG_CPP)
+ && ( chunk_is_token(pc, CT_SQUARE_OPEN)
+ || chunk_is_token(pc, CT_TSQUARE)))
+ {
+ handle_cpp_lambda(pc);
+ }
+
+ // FIXME: which language does this apply to?
+ // Issue #2432
+ if (!language_is_set(LANG_OC))
+ {
+ if ( chunk_is_token(pc, CT_ASSIGN)
+ && chunk_is_token(next, CT_SQUARE_OPEN))
+ {
+ set_paren_parent(next, CT_ASSIGN);
+
+ // Mark one-liner assignment
+ Chunk *tmp = next;
+
+ while ((tmp = tmp->GetNextNc())->IsNotNullChunk())
+ {
+ if (chunk_is_newline(tmp))
+ {
+ break;
+ }
+
+ if ( chunk_is_token(tmp, CT_SQUARE_CLOSE)
+ && next->level == tmp->level)
+ {
+ chunk_flags_set(tmp, PCF_ONE_LINER);
+ chunk_flags_set(next, PCF_ONE_LINER);
+ break;
+ }
+ }
+ return;
+ }
+ }
+
+ if (chunk_is_token(pc, CT_ASSERT))
+ {
+ handle_java_assert(pc);
+ return;
+ }
+
+ if (chunk_is_token(pc, CT_ANNOTATION))
+ {
+ Chunk *tmp = pc->GetNextNcNnl();
+
+ if (chunk_is_paren_open(tmp))
+ {
+ set_paren_parent(tmp, CT_ANNOTATION);
+ }
+ return;
+ }
+
+ if ( chunk_is_token(pc, CT_SIZEOF)
+ && language_is_set(LANG_ALLC))
+ {
+ Chunk *tmp = pc->GetNextNcNnl();
+
+ if (chunk_is_token(tmp, CT_ELLIPSIS))
+ {
+ set_chunk_parent(tmp, CT_SIZEOF);
+ }
+ return;
+ }
+
+ if ( chunk_is_token(pc, CT_DECLTYPE)
+ && pc->parent_type != CT_FUNC_DEF)
+ {
+ Chunk *tmp = pc->GetNextNcNnl();
+
+ if (chunk_is_paren_open(tmp))
+ {
+ // decltype may be followed by a braced-init-list
+ tmp = set_paren_parent(tmp, CT_DECLTYPE);
+
+ if (chunk_is_opening_brace(tmp) && !pc->flags.test(PCF_IN_LAMBDA))
+ {
+ tmp = set_paren_parent(tmp, CT_BRACED_INIT_LIST);
+
+ if (tmp)
+ {
+ chunk_flags_clr(tmp, PCF_EXPR_START | PCF_STMT_START);
+ }
+ }
+ else
+ {
+ if (chunk_is_token(tmp, CT_WORD))
+ {
+ chunk_flags_set(tmp, PCF_VAR_1ST_DEF);
+ }
+ }
+ }
+ return;
+ }
+
+ // A [] in C# and D only follows a type
+ if ( chunk_is_token(pc, CT_TSQUARE)
+ && language_is_set(LANG_D | LANG_CS | LANG_VALA))
+ {
+ if (chunk_is_token(prev, CT_WORD))
+ {
+ set_chunk_type(prev, CT_TYPE);
+ }
+
+ if (chunk_is_token(next, CT_WORD))
+ {
+ chunk_flags_set(next, PCF_VAR_1ST_DEF);
+ }
+ return;
+ }
+
+ if ( chunk_is_token(pc, CT_SQL_EXEC)
+ || chunk_is_token(pc, CT_SQL_BEGIN)
+ || chunk_is_token(pc, CT_SQL_END))
+ {
+ mark_exec_sql(pc);
+ return;
+ }
+
+ if (chunk_is_token(pc, CT_PROTO_WRAP))
+ {
+ handle_proto_wrap(pc);
+ return;
+ }
+
+ // Handle the typedef
+ if (chunk_is_token(pc, CT_TYPEDEF))
+ {
+ fix_typedef(pc);
+ return;
+ }
+
+ if ( chunk_is_class_enum_struct_union(pc)
+ && chunk_is_not_token(prev, CT_TYPEDEF))
+ {
+ EnumStructUnionParser parser;
+ parser.parse(pc);
+ return;
+ }
+
+ if (chunk_is_token(pc, CT_EXTERN))
+ {
+ if (chunk_is_paren_open(next))
+ {
+ Chunk *tmp = flag_parens(next, PCF_NONE, CT_NONE, CT_EXTERN, true);
+
+ if (chunk_is_token(tmp, CT_BRACE_OPEN))
+ {
+ set_paren_parent(tmp, CT_EXTERN);
+ }
+ }
+ else
+ {
+ // next likely is a string (see tokenize_cleanup.cpp)
+ set_chunk_parent(next, CT_EXTERN);
+ Chunk *tmp = next->GetNextNcNnl();
+
+ if (chunk_is_token(tmp, CT_BRACE_OPEN))
+ {
+ set_paren_parent(tmp, CT_EXTERN);
+ }
+ }
+ return;
+ }
+
+ if (chunk_is_token(pc, CT_TEMPLATE))
+ {
+ if (language_is_set(LANG_D))
+ {
+ handle_d_template(pc);
+ }
+ else
+ {
+ handle_cpp_template(pc);
+ }
+ return;
+ }
+
+ if ( chunk_is_token(pc, CT_WORD)
+ && chunk_is_token(next, CT_ANGLE_OPEN)
+ && get_chunk_parent_type(next) == CT_TEMPLATE)
+ {
+ mark_template_func(pc, next);
+ return;
+ }
+
+ if ( chunk_is_token(pc, CT_SQUARE_CLOSE)
+ && chunk_is_token(next, CT_PAREN_OPEN))
+ {
+ flag_parens(next, PCF_NONE, CT_FPAREN_OPEN, CT_NONE, false);
+ return;
+ }
+
+ if (chunk_is_token(pc, CT_TYPE_CAST))
+ {
+ fix_type_cast(pc);
+ return;
+ }
+
+ if ( get_chunk_parent_type(pc) == CT_ASSIGN
+ && ( chunk_is_token(pc, CT_BRACE_OPEN)
+ || chunk_is_token(pc, CT_SQUARE_OPEN)))
+ {
+ // Mark everything in here as in assign
+ flag_parens(pc, PCF_IN_ARRAY_ASSIGN, pc->type, CT_NONE, false);
+ return;
+ }
+
+ if (chunk_is_token(pc, CT_D_TEMPLATE))
+ {
+ set_paren_parent(next, pc->type);
+ return;
+ }
+
+ /*
+ * A word before an open paren is a function call or definition.
+ * CT_WORD => CT_FUNC_CALL or CT_FUNC_DEF
+ */
+ if (chunk_is_token(next, CT_PAREN_OPEN))
+ {
+ Chunk *tmp = next->GetNextNcNnl();
+
+ if ( language_is_set(LANG_C | LANG_CPP | LANG_OC)
+ && chunk_is_token(tmp, CT_CARET))
+ {
+ handle_oc_block_type(tmp);
+
+ // This is the case where a block literal is passed as the first argument of a C-style method invocation.
+ if ( ( chunk_is_token(tmp, CT_OC_BLOCK_CARET)
+ || chunk_is_token(tmp, CT_CARET))
+ && chunk_is_token(pc, CT_WORD))
+ {
+ LOG_FMT(LFCN, "%s(%d): (1) SET TO CT_FUNC_CALL: orig_line is %zu, orig_col is %zu, Text() '%s'\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text());
+ set_chunk_type(pc, CT_FUNC_CALL);
+ }
+ }
+ else if ( chunk_is_token(pc, CT_WORD)
+ || chunk_is_token(pc, CT_OPERATOR_VAL))
+ {
+ set_chunk_type(pc, CT_FUNCTION);
+ }
+ else if (chunk_is_token(pc, CT_FIXED))
+ {
+ set_chunk_type(pc, CT_FUNCTION);
+ set_chunk_parent(pc, CT_FIXED);
+ }
+ else if (chunk_is_token(pc, CT_TYPE))
+ {
+ /*
+ * If we are on a type, then we are either on a C++ style cast, an
+ * array reference, a function or we are on a function type.
+ * The only way to tell for sure is to find the close paren and see
+ * if it is followed by an open paren.
+ * "int(5.6)"
+ * "int()"
+ * "int(foo)(void)"
+ *
+ * FIXME: this check can be done better...
+ */
+ LOG_FMT(LFCNR, "%s(%d): orig_line is %zu, orig_col is %zu, Text() '%s'\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text());
+
+ bool is_byref_array = false;
+
+ if (language_is_set(LANG_CPP))
+ {
+ // If the open paren is followed by an ampersand, an optional word,
+ // a close parenthesis, and an open square bracket, then it is an
+ // array being passed by reference, not a cast
+ tmp = next->GetNextNcNnl();
+
+ if (chunk_is_token(tmp, CT_AMP))
+ {
+ auto tmp2 = tmp->GetNextNcNnl();
+
+ if (chunk_is_token(tmp2, CT_WORD))
+ {
+ tmp2 = tmp2->GetNextNcNnl();
+ }
+
+ if (chunk_is_token(tmp2, CT_PAREN_CLOSE))
+ {
+ tmp2 = tmp2->GetNextNcNnl();
+
+ if (chunk_is_token(tmp2, CT_SQUARE_OPEN))
+ {
+ is_byref_array = true;
+ set_chunk_type(tmp, CT_BYREF);
+ }
+ }
+ }
+ }
+
+ if (!is_byref_array)
+ {
+ tmp = next->GetNextType(CT_PAREN_CLOSE, next->level);
+
+ if (tmp->IsNotNullChunk())
+ {
+ tmp = tmp->GetNext();
+
+ if (chunk_is_token(tmp, CT_PAREN_OPEN))
+ {
+ set_chunk_type(pc, CT_FUNCTION);
+ }
+ else
+ {
+ if ( get_chunk_parent_type(pc) == CT_NONE
+ && !pc->flags.test(PCF_IN_TYPEDEF))
+ {
+ tmp = next->GetNextNcNnl();
+
+ if (chunk_is_token(tmp, CT_PAREN_CLOSE))
+ {
+ // we have TYPE()
+ set_chunk_type(pc, CT_FUNCTION);
+ }
+ else
+ {
+ // we have TYPE(...)
+ set_chunk_type(pc, CT_CPP_CAST);
+ set_paren_parent(next, CT_CPP_CAST);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ if (language_is_set(LANG_PAWN))
+ {
+ if ( chunk_is_token(pc, CT_FUNCTION)
+ && pc->brace_level > 0)
+ {
+ LOG_FMT(LFCN, "%s(%d): (2) SET TO CT_FUNC_CALL: orig_line is %zu, orig_col is %zu, Text() '%s'\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text());
+ set_chunk_type(pc, CT_FUNC_CALL);
+ }
+
+ if ( chunk_is_token(pc, CT_STATE)
+ && chunk_is_token(next, CT_PAREN_OPEN))
+ {
+ set_paren_parent(next, pc->type);
+ }
+ }
+ else
+ {
+ if ( ( chunk_is_token(pc, CT_FUNCTION)
+ || chunk_is_token(pc, CT_FUNC_DEF))
+ && ( (get_chunk_parent_type(pc) == CT_OC_BLOCK_EXPR)
+ || !is_oc_block(pc)))
+ {
+ mark_function(pc);
+ }
+ }
+
+ // Detect C99 member stuff
+ if ( chunk_is_token(pc, CT_MEMBER)
+ && ( chunk_is_token(prev, CT_COMMA)
+ || chunk_is_token(prev, CT_BRACE_OPEN)))
+ {
+ set_chunk_type(pc, CT_C99_MEMBER);
+ set_chunk_parent(next, CT_C99_MEMBER);
+ return;
+ }
+
+ // Mark function parens and braces
+ if ( chunk_is_token(pc, CT_FUNC_DEF)
+ || chunk_is_token(pc, CT_FUNC_CALL)
+ || chunk_is_token(pc, CT_FUNC_CALL_USER)
+ || chunk_is_token(pc, CT_FUNC_PROTO))
+ {
+ Chunk *tmp = next;
+
+ if (chunk_is_token(tmp, CT_SQUARE_OPEN))
+ {
+ tmp = set_paren_parent(tmp, pc->type);
+ }
+ else if ( chunk_is_token(tmp, CT_TSQUARE)
+ || get_chunk_parent_type(tmp) == CT_OPERATOR)
+ {
+ tmp = tmp->GetNextNcNnl();
+ }
+
+ if ( tmp != nullptr
+ && tmp->IsNotNullChunk())
+ {
+ if (chunk_is_paren_open(tmp))
+ {
+ tmp = flag_parens(tmp, PCF_NONE, CT_FPAREN_OPEN, pc->type, false);
+
+ if ( tmp != nullptr
+ && tmp->IsNotNullChunk())
+ {
+ if (chunk_is_token(tmp, CT_BRACE_OPEN))
+ {
+ if ( get_chunk_parent_type(tmp) != CT_DOUBLE_BRACE
+ && !pc->flags.test(PCF_IN_CONST_ARGS))
+ {
+ set_paren_parent(tmp, pc->type);
+ }
+ }
+ else if ( chunk_is_semicolon(tmp)
+ && chunk_is_token(pc, CT_FUNC_PROTO))
+ {
+ set_chunk_parent(tmp, pc->type);
+ }
+ }
+ }
+ }
+ return;
+ }
+
+ // Mark the parameters in catch()
+ if ( chunk_is_token(pc, CT_CATCH)
+ && chunk_is_token(next, CT_SPAREN_OPEN))
+ {
+ fix_fcn_def_params(next);
+ return;
+ }
+
+ if ( chunk_is_token(pc, CT_THROW)
+ && chunk_is_token(prev, CT_FPAREN_CLOSE))
+ {
+ set_chunk_parent(pc, get_chunk_parent_type(prev));
+
+ if (chunk_is_token(next, CT_PAREN_OPEN))
+ {
+ set_paren_parent(next, CT_THROW);
+ }
+ return;
+ }
+
+ // Mark the braces in: "for_each_entry(xxx) { }"
+ if ( chunk_is_token(pc, CT_BRACE_OPEN)
+ && get_chunk_parent_type(pc) != CT_DOUBLE_BRACE
+ && chunk_is_token(prev, CT_FPAREN_CLOSE)
+ && ( get_chunk_parent_type(prev) == CT_FUNC_CALL
+ || get_chunk_parent_type(prev) == CT_FUNC_CALL_USER)
+ && !pc->flags.test(PCF_IN_CONST_ARGS))
+ {
+ LOG_FMT(LFCN, "%s(%d): (3) SET TO CT_FUNC_CALL: orig_line is %zu, orig_col is %zu, Text() '%s'\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text());
+ set_paren_parent(pc, CT_FUNC_CALL);
+ return;
+ }
+
+ /*
+ * Check for a close parenthesis followed by an open parenthesis,
+ * which means that we are on a function type declaration (C/C++ only?).
+ * Note that typedefs are already taken care of.
+ */
+ if ( !pc->flags.test(PCF_IN_TEMPLATE) // Issue #3252
+ && get_chunk_parent_type(pc) != CT_CPP_CAST
+ && get_chunk_parent_type(pc) != CT_C_CAST
+ && !pc->flags.test(PCF_IN_PREPROC)
+ && !is_oc_block(pc)
+ && get_chunk_parent_type(pc) != CT_OC_MSG_DECL
+ && get_chunk_parent_type(pc) != CT_OC_MSG_SPEC
+ && chunk_is_str(pc, ")")
+ && chunk_is_str(next, "("))
+ {
+ if (language_is_set(LANG_D))
+ {
+ flag_parens(next, PCF_NONE, CT_FPAREN_OPEN, CT_FUNC_CALL, false);
+ }
+ else
+ {
+ mark_function_type(pc);
+ }
+ return;
+ }
+
+ if (chunk_is_token(pc, CT_OC_CLASS))
+ {
+ handle_oc_class(pc);
+ return;
+ }
+ // TODO: Check for stuff that can only occur at the start of an statement
+
+ if (!language_is_set(LANG_D))
+ {
+ /*
+ * Check a parenthesis pair to see if it is a cast.
+ * Note that SPAREN and FPAREN have already been marked.
+ */
+ if ( chunk_is_token(pc, CT_PAREN_OPEN)
+ && ( get_chunk_parent_type(pc) == CT_NONE
+ || get_chunk_parent_type(pc) == CT_OC_MSG
+ || get_chunk_parent_type(pc) == CT_OC_BLOCK_EXPR
+ || get_chunk_parent_type(pc) == CT_CS_SQ_STMT) // Issue # 1256
+ && ( chunk_is_token(next, CT_WORD)
+ || chunk_is_token(next, CT_TYPE)
+ || chunk_is_token(next, CT_STRUCT)
+ || chunk_is_token(next, CT_QUALIFIER)
+ || chunk_is_token(next, CT_MEMBER)
+ || chunk_is_token(next, CT_DC_MEMBER)
+ || chunk_is_token(next, CT_ENUM)
+ || chunk_is_token(next, CT_UNION))
+ && chunk_is_not_token(prev, CT_DECLTYPE)
+ && chunk_is_not_token(prev, CT_SIZEOF)
+ && get_chunk_parent_type(prev) != CT_SIZEOF
+ && get_chunk_parent_type(prev) != CT_OPERATOR
+ && !pc->flags.test(PCF_IN_TYPEDEF))
+ {
+ fix_casts(pc);
+ return;
+ }
+ }
+
+ if (language_is_set(LANG_CPP))
+ {
+ Chunk *nnext = next->GetNextNcNnl();
+
+ // handle parent_type of assigns in special functions (ro5 + pure virtual)
+ if ( pc->flags.test_any(PCF_IN_STRUCT | PCF_IN_CLASS)
+ && chunk_is_token(pc, CT_ASSIGN)
+ && chunk_is_token(nnext, CT_SEMICOLON)
+ && ( chunk_is_token(next, CT_DEFAULT)
+ || chunk_is_token(next, CT_DELETE)
+ || ( chunk_is_token(next, CT_NUMBER)
+ && chunk_is_str(next, "0"))))
+ {
+ const size_t level = pc->level;
+ bool found_status = false;
+ Chunk *pprev = pc->GetPrev();
+
+ for ( ; ( pprev->IsNotNullChunk()
+ && pprev->level >= level
+ && chunk_is_not_token(pprev, CT_SEMICOLON)
+ && chunk_is_not_token(pprev, CT_ACCESS_COLON))
+ ; pprev = pprev->GetPrev())
+ {
+ if (pprev->level != level)
+ {
+ continue;
+ }
+
+ if (chunk_is_token(next, CT_NUMBER))
+ {
+ if ( chunk_is_token(pprev, CT_QUALIFIER)
+ && chunk_is_str(pprev, "virtual"))
+ {
+ found_status = true;
+ break;
+ }
+ }
+ else
+ {
+ if ( chunk_is_token(pprev, CT_FUNC_CLASS_PROTO) // ctor/dtor
+ || chunk_is_token(pprev, CT_FUNC_PROTO)) // normal function
+ {
+ found_status = true;
+ break;
+ }
+ }
+ }
+
+ if (found_status)
+ {
+ set_chunk_parent(pc, pprev->type);
+ }
+ }
+
+ if (detect_cpp_braced_init_list(pc, next))
+ {
+ flag_cpp_braced_init_list(pc, next);
+ }
+ }
+
+ // Check for stuff that can only occur at the start of an expression
+ if ( pc->flags.test(PCF_EXPR_START)
+ || ( prev->flags.test(PCF_EXPR_START)
+ && get_chunk_parent_type(pc) == CT_OC_AT))
+ {
+ // Change STAR, MINUS, and PLUS in the easy cases
+ if (chunk_is_token(pc, CT_STAR))
+ {
+ // issue #596
+ // [0x100062020:IN_SPAREN,IN_FOR,STMT_START,EXPR_START,PUNCTUATOR]
+ // prev->type is CT_COLON ==> CT_DEREF
+ if (chunk_is_token(prev, CT_ANGLE_CLOSE))
+ {
+ set_chunk_type(pc, CT_PTR_TYPE);
+ }
+ else if (chunk_is_token(prev, CT_COLON))
+ {
+ set_chunk_type(pc, CT_DEREF);
+ }
+ else
+ {
+ set_chunk_type(pc, CT_DEREF);
+ }
+ }
+
+ if ( language_is_set(LANG_CPP)
+ && chunk_is_token(pc, CT_CARET)
+ && chunk_is_token(prev, CT_ANGLE_CLOSE))
+ {
+ set_chunk_type(pc, CT_PTR_TYPE);
+ }
+
+ if ( language_is_set(LANG_CS | LANG_VALA)
+ && chunk_is_token(pc, CT_QUESTION)
+ && chunk_is_token(prev, CT_ANGLE_CLOSE))
+ {
+ set_chunk_type(pc, CT_PTR_TYPE);
+ }
+
+ else if (chunk_is_token(pc, CT_MINUS))
+ {
+ set_chunk_type(pc, CT_NEG);
+ }
+
+ else if (chunk_is_token(pc, CT_PLUS))
+ {
+ set_chunk_type(pc, CT_POS);
+ }
+
+ else if (chunk_is_token(pc, CT_INCDEC_AFTER))
+ {
+ set_chunk_type(pc, CT_INCDEC_BEFORE);
+ }
+
+ else if (chunk_is_token(pc, CT_AMP))
+ {
+ if (chunk_is_token(prev, CT_ANGLE_CLOSE)) // Issue #2324
+ {
+ set_chunk_type(pc, CT_BYREF);
+ }
+ else
+ {
+ set_chunk_type(pc, CT_ADDR);
+ }
+ }
+
+ else if (chunk_is_token(pc, CT_CARET))
+ {
+ if (language_is_set(LANG_C | LANG_CPP | LANG_OC))
+ {
+ // This is likely the start of a block literal
+ handle_oc_block_literal(pc);
+ }
+ }
+ }
+
+ /*
+ * Change the parenthesis pair after a function/macro-function
+ * CT_PAREN_OPEN => CT_FPAREN_OPEN
+ */
+ if (chunk_is_token(pc, CT_MACRO_FUNC))
+ {
+ flag_parens(next, PCF_IN_FCN_CALL, CT_FPAREN_OPEN, CT_MACRO_FUNC, false);
+ }
+
+ if ( chunk_is_token(pc, CT_MACRO_OPEN)
+ || chunk_is_token(pc, CT_MACRO_ELSE)
+ || chunk_is_token(pc, CT_MACRO_CLOSE))
+ {
+ if (chunk_is_token(next, CT_PAREN_OPEN))
+ {
+ flag_parens(next, PCF_NONE, CT_FPAREN_OPEN, pc->type, false);
+ }
+ }
+
+ if ( chunk_is_token(pc, CT_DELETE)
+ && chunk_is_token(next, CT_TSQUARE))
+ {
+ set_chunk_parent(next, CT_DELETE);
+ }
+
+ // Change CT_STAR to CT_PTR_TYPE or CT_ARITH or CT_DEREF
+ if ( chunk_is_token(pc, CT_STAR)
+ || ( language_is_set(LANG_CPP)
+ && chunk_is_token(pc, CT_CARET)))
+ {
+ if ( chunk_is_paren_close(next)
+ || chunk_is_token(next, CT_COMMA))
+ {
+ set_chunk_type(pc, CT_PTR_TYPE);
+ }
+ else if ( language_is_set(LANG_OC)
+ && chunk_is_token(next, CT_STAR))
+ {
+ /*
+ * Change pointer-to-pointer types in OC_MSG_DECLs
+ * from ARITH <===> DEREF to PTR_TYPE <===> PTR_TYPE
+ */
+ set_chunk_type(pc, CT_PTR_TYPE);
+ set_chunk_parent(pc, get_chunk_parent_type(prev));
+
+ set_chunk_type(next, CT_PTR_TYPE);
+ set_chunk_parent(next, get_chunk_parent_type(pc));
+ }
+ else if ( chunk_is_token(pc, CT_STAR)
+ && ( chunk_is_token(prev, CT_DECLTYPE)
+ || chunk_is_token(prev, CT_SIZEOF)
+ || chunk_is_token(prev, CT_DELETE)
+ || get_chunk_parent_type(pc) == CT_SIZEOF))
+ {
+ set_chunk_type(pc, CT_DEREF);
+ }
+ else if ( ( chunk_is_token(prev, CT_WORD)
+ && chunk_ends_type(prev)
+ && !prev->flags.test(PCF_IN_FCN_CTOR)
+ && !prev->flags.test(PCF_IN_ARRAY_ASSIGN)) // Issue #3345
+ || chunk_is_token(prev, CT_DC_MEMBER)
+ || chunk_is_token(prev, CT_PTR_TYPE))
+ {
+ LOG_FMT(LFCNR, "%s(%d): pc->orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s\n ",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type));
+ log_pcf_flags(LFCNR, pc->flags);
+ set_chunk_type(pc, CT_PTR_TYPE);
+ }
+ else if ( chunk_is_token(next, CT_SQUARE_OPEN)
+ && !language_is_set(LANG_OC)) // Issue #408
+ {
+ set_chunk_type(pc, CT_PTR_TYPE);
+ }
+ else if (chunk_is_token(pc, CT_STAR))
+ {
+ // Add check for CT_DC_MEMBER CT_WORD CT_STAR sequence
+ // to convert CT_WORD into CT_TYPE
+ // and CT_STAR into CT_PTR_TYPE
+ // look for an assign backward, fuction call, return to distinguish between
+ // double result = Constants::PI * factor;
+ // and
+ // ::some::name * foo;
+ if ( chunk_is_token(prev, CT_WORD)
+ && chunk_is_token(prev->prev, CT_DC_MEMBER)
+ && language_is_set(LANG_CPP))
+ {
+ // Issue 1402
+ bool is_multiplication = false;
+ Chunk *tmp = pc;
+
+ while (tmp->IsNotNullChunk())
+ {
+ if ( chunk_is_token(tmp, CT_SEMICOLON)
+ || get_chunk_parent_type(tmp) == CT_CLASS)
+ {
+ break;
+ }
+ else if ( chunk_is_token(tmp, CT_ASSIGN)
+ || chunk_is_token(tmp, CT_FUNC_CALL)
+ || chunk_is_token(tmp, CT_RETURN))
+ {
+ is_multiplication = true;
+ break;
+ }
+ tmp = tmp->GetPrevNcNnlNi(); // Issue #2279
+ }
+
+ if (is_multiplication)
+ {
+ // double result = Constants::PI * factor;
+ set_chunk_type(pc, CT_ARITH);
+ }
+ else
+ {
+ // ::some::name * foo;
+ set_chunk_type(prev, CT_TYPE);
+ set_chunk_type(pc, CT_PTR_TYPE);
+ }
+ }
+
+ /*
+ * A star can have three meanings
+ * 1. CT_DEREF = pointer dereferencing
+ * 2. CT_PTR_TYPE = pointer definition
+ * 3. CT_ARITH = arithmetic multiplication
+ *
+ * most PCF_PUNCTUATOR chunks except a paren close would make this
+ * a deref. A paren close may end a cast or may be part of a macro fcn.
+ */
+ if (chunk_is_token(prev, CT_TYPE))
+ {
+ set_chunk_type(pc, CT_PTR_TYPE);
+ }
+ else if ( chunk_is_token(pc->next, CT_SEMICOLON) // Issue #2319
+ || ( chunk_is_token(pc->next, CT_STAR)
+ && chunk_is_token(pc->next->next, CT_SEMICOLON)))
+ {
+ // example:
+ // using AbstractLinkPtr = AbstractLink*;
+ // using AbstractLinkPtrPtr = AbstractLink**;
+ set_chunk_type(pc, CT_PTR_TYPE);
+ }
+ else if ( ( get_chunk_parent_type(pc) == CT_FUNC_DEF
+ && ( chunk_is_opening_brace(next)
+ || pc->GetNext()->IsStar()))
+ || chunk_is_token(next, CT_QUALIFIER)) // Issue #2648
+ {
+ // example:
+ // auto getComponent(Color *color) -> Component * {
+ // auto getComponent(Color *color) -> Component ** {
+ // auto getComponent(Color *color) -> Component * _Nonnull
+ // only to help the vim command }}
+ set_chunk_type(pc, CT_PTR_TYPE);
+ }
+ else if ( chunk_is_token(pc->next, CT_SEMICOLON) // Issue #2319
+ || ( chunk_is_token(pc->next, CT_STAR)
+ && chunk_is_token(pc->next->next, CT_STAR)))
+ {
+ // more pointers are NOT yet possible
+ fprintf(stderr, "Too many pointers: the maximum level of pointer indirection is 3 (i.e., ***p)\n");
+ fprintf(stderr, "at line %zu, column %zu.\n", pc->orig_line, pc->orig_col);
+ fprintf(stderr, "Please make a report.\n");
+ log_flush(true);
+ exit(EX_SOFTWARE);
+ }
+ else
+ {
+ // Issue 1402
+ set_chunk_type(pc,
+ ( prev->flags.test(PCF_PUNCTUATOR)
+ && ( !chunk_is_paren_close(prev)
+ || chunk_is_token(prev, CT_SPAREN_CLOSE)
+ || get_chunk_parent_type(prev) == CT_MACRO_FUNC)
+ && chunk_is_not_token(prev, CT_SQUARE_CLOSE)
+ && chunk_is_not_token(prev, CT_DC_MEMBER)) ? CT_DEREF : CT_ARITH);
+ }
+
+ if (pc->flags.test(PCF_IN_TYPEDEF)) // Issue #1255/#633
+ {
+ Chunk *tmp = pc;
+
+ while (tmp->IsNotNullChunk())
+ {
+ if ( chunk_is_token(tmp, CT_SEMICOLON)
+ || chunk_is_token(tmp, CT_BRACE_OPEN)
+ || chunk_is_token(tmp, CT_SQUARE_OPEN)) // Issue #3342
+ {
+ break;
+ }
+ else if (chunk_is_token(tmp, CT_TYPEDEF))
+ {
+ set_chunk_type(pc, CT_PTR_TYPE);
+ }
+ tmp = tmp->GetPrevNcNnlNi(); // Issue #2279
+ }
+ }
+ }
+ }
+
+ if (chunk_is_token(pc, CT_AMP))
+ {
+ if (chunk_is_token(prev, CT_DELETE))
+ {
+ set_chunk_type(pc, CT_ADDR);
+ }
+ else if ( chunk_is_token(prev, CT_TYPE)
+ || chunk_is_token(prev, CT_QUALIFIER))
+ {
+ set_chunk_type(pc, CT_BYREF);
+ }
+ else if ( chunk_is_token(prev, CT_WORD) // Issue #3204
+ && chunk_is_token(next, CT_OPERATOR))
+ {
+ set_chunk_type(pc, CT_BYREF);
+ }
+ else if ( chunk_is_token(next, CT_FPAREN_CLOSE)
+ || chunk_is_token(next, CT_COMMA))
+ {
+ // fix the bug #654
+ // connect(&mapper, SIGNAL(mapped(QString &)), this, SLOT(onSomeEvent(QString &)));
+ set_chunk_type(pc, CT_BYREF);
+ }
+ else if (get_chunk_parent_type(pc) == CT_USING_ALIAS)
+ {
+ // fix the Issue # 1689
+ // using reference = value_type &;
+ set_chunk_type(pc->prev, CT_TYPE);
+ set_chunk_type(pc, CT_BYREF);
+ }
+ else
+ {
+ // Issue # 1398
+ if ( pc->flags.test(PCF_IN_FCN_DEF)
+ && chunk_is_token(prev, CT_WORD)
+ && chunk_is_token(pc, CT_AMP)
+ && chunk_is_token(next, CT_WORD))
+ {
+ /*
+ * Change CT_WORD before CT_AMP before CT_WORD to CT_TYPE
+ */
+ set_chunk_type(prev, CT_TYPE);
+ }
+ else
+ {
+ set_chunk_type(pc, CT_ARITH);
+
+ if ( chunk_is_token(prev, CT_WORD)
+ && !chunk_is_token(next, CT_NUMBER)) // Issue #3407
+ {
+ Chunk *tmp = prev->GetPrevNcNnlNi(); // Issue #2279
+
+ if (tmp->IsNotNullChunk())
+ {
+ if ( chunk_is_semicolon(tmp)
+ || chunk_is_token(tmp, CT_BRACE_OPEN)
+ || chunk_is_token(tmp, CT_QUALIFIER))
+ {
+ set_chunk_type(pc, CT_BYREF);
+ set_chunk_type(prev, CT_TYPE);
+
+ if (!( chunk_is_token(next, CT_OPERATOR)
+ || chunk_is_token(next, CT_TYPE)
+ || chunk_is_token(next, CT_DC_MEMBER)))
+ {
+ LOG_FMT(LFCNR, "%s(%d): orig_line is %zu, orig_col is %zu, Text() '%s', set PCF_VAR_1ST\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text());
+ chunk_flags_set(next, PCF_VAR_1ST);
+ }
+ }
+ else if (chunk_is_token(tmp, CT_DC_MEMBER))
+ {
+ set_chunk_type(prev, CT_TYPE);
+ }
+ }
+ }
+ }
+ }
+ }
+
+ if ( chunk_is_token(pc, CT_MINUS)
+ || chunk_is_token(pc, CT_PLUS))
+ {
+ if ( chunk_is_token(prev, CT_POS)
+ || chunk_is_token(prev, CT_NEG)
+ || chunk_is_token(prev, CT_ARITH)
+ || chunk_is_token(prev, CT_SHIFT))
+ {
+ set_chunk_type(pc, chunk_is_token(pc, CT_MINUS) ? CT_NEG : CT_POS);
+ }
+ else if (chunk_is_token(prev, CT_OC_CLASS))
+ {
+ set_chunk_type(pc, (chunk_is_token(pc, CT_MINUS)) ? CT_NEG : CT_POS);
+ }
+ else
+ {
+ set_chunk_type(pc, CT_ARITH);
+ }
+ }
+
+ /*
+ * Bug # 634
+ * Check for extern "C" NSString* i;
+ * NSString is a type
+ * change CT_WORD => CT_TYPE for pc
+ * change CT_STAR => CT_PTR_TYPE for pc-next
+ */
+ if (chunk_is_token(pc, CT_WORD)) // here NSString
+ {
+ if (pc->next != nullptr) // here *
+ {
+ if (pc->next->type == CT_STAR) // here *
+ {
+ // compare text with "C" to find extern "C" instructions
+ if (pc->prev != nullptr)
+ {
+ if (pc->prev->type == CT_STRING)
+ {
+ if (unc_text::compare(pc->prev->Text(), "\"C\"") == 0)
+ {
+ if (pc->prev->prev->type == CT_EXTERN)
+ {
+ set_chunk_type(pc, CT_TYPE); // change CT_WORD => CT_TYPE
+ set_chunk_type(pc->next, CT_PTR_TYPE); // change CT_STAR => CT_PTR_TYPE
+ }
+ }
+ }
+ }
+
+ // Issue #322 STDMETHOD(GetValues)(BSTR bsName, REFDATA** pData);
+ if ( (pc->next->next != nullptr)
+ && pc->next->next->type == CT_STAR
+ && pc->flags.test(PCF_IN_CONST_ARGS))
+ {
+ // change CT_STAR => CT_PTR_TYPE
+ set_chunk_type(pc->next, CT_PTR_TYPE);
+ set_chunk_type(pc->next->next, CT_PTR_TYPE);
+ }
+
+ // Issue #222 whatever3 *(func_ptr)( whatever4 *foo2, ...
+ if ( (pc->next->next != nullptr)
+ && pc->next->next->type == CT_WORD
+ && pc->flags.test(PCF_IN_FCN_DEF))
+ {
+ // look for the opening parenthesis
+ // Issue 1403
+ Chunk *tmp = pc->GetPrevType(CT_FPAREN_OPEN, pc->level - 1);
+
+ if ( tmp->IsNotNullChunk()
+ && get_chunk_parent_type(tmp) != CT_FUNC_CTOR_VAR)
+ {
+ set_chunk_type(pc->next, CT_PTR_TYPE);
+ }
+ }
+ }
+ }
+ }
+
+ /*
+ * Bug # 634
+ * Check for __attribute__((visibility ("default"))) NSString* i;
+ * NSString is a type
+ * change CT_WORD => CT_TYPE for pc
+ * change CT_STAR => CT_PTR_TYPE for pc-next
+ */
+ if (chunk_is_token(pc, CT_WORD)) // here NSString
+ {
+ if (pc->next != nullptr) // here *
+ {
+ if (pc->next->type == CT_STAR) // here *
+ {
+ Chunk *tmp = pc;
+
+ while ( tmp != nullptr
+ && tmp->IsNotNullChunk())
+ {
+ if (chunk_is_token(tmp, CT_ATTRIBUTE))
+ {
+ LOG_FMT(LFCNR, "%s(%d): ATTRIBUTE found, type is %s, Text() '%s'\n",
+ __func__, __LINE__, get_token_name(tmp->type), tmp->Text());
+ LOG_FMT(LFCNR, "for token, type is %s, Text() '%s'\n", get_token_name(pc->type), pc->Text());
+ // change CT_WORD => CT_TYPE
+ set_chunk_type(pc, CT_TYPE);
+ // change CT_STAR => CT_PTR_TYPE
+ set_chunk_type(pc->next, CT_PTR_TYPE);
+ }
+
+ if (tmp->flags.test(PCF_STMT_START))
+ {
+ // we are at beginning of the line
+ break;
+ }
+ tmp = tmp->GetPrev();
+ }
+ }
+ }
+ }
+
+ /*
+ * Issue # 1689
+ * Check for using reference = value_type&;
+ * is it a Type alias, alias template?
+ */
+ if (chunk_is_token(pc, CT_USING))
+ {
+ // look for CT_ASSIGN before CT_SEMICOLON at the end of the statement
+
+ bool is_preproc = pc->flags.test(PCF_IN_PREPROC);
+
+ auto const search_assign = [&pc, &is_preproc]()
+ {
+ for (Chunk *temp = pc; temp->IsNotNullChunk(); temp = temp->GetNextNcNnl())
+ {
+ LOG_FMT(LFCNR, "%s(%d): orig_line is %zu, orig_col is %zu, Text() '%s', type is %s\n",
+ __func__, __LINE__, temp->orig_line, temp->orig_col,
+ temp->Text(), get_token_name(temp->type));
+
+ if (chunk_is_token(temp, CT_ASSIGN))
+ {
+ return(true);
+ }
+
+ if ( chunk_is_token(temp, CT_SEMICOLON)
+ || ( is_preproc
+ && ( !temp->flags.test(PCF_IN_PREPROC)
+ || chunk_is_token(temp, CT_PREPROC))))
+ {
+ return(false);
+ }
+ }
+
+ return(false);
+ };
+
+ const bool assign_found = language_is_set(LANG_D) || search_assign();
+
+ if (assign_found)
+ {
+ // it is a Type alias, alias template
+ for (Chunk *temp = pc; temp->IsNotNullChunk(); temp = temp->GetNextNcNnl())
+ {
+ if (get_chunk_parent_type(temp) == CT_NONE)
+ {
+ set_chunk_parent(temp, CT_USING_ALIAS);
+ }
+
+ if ( chunk_is_token(temp, CT_SEMICOLON)
+ || ( is_preproc
+ && ( !temp->flags.test(PCF_IN_PREPROC)
+ || chunk_is_token(temp, CT_PREPROC))))
+ {
+ break;
+ }
+ }
+ }
+ }
+
+ // Issue #548: inline T && someFunc(foo * *p, bar && q) { }
+ if ( chunk_is_token(pc, CT_BOOL)
+ && !pc->flags.test(PCF_IN_PREPROC)
+ && chunk_is_str(pc, "&&")
+ && chunk_ends_type(pc->prev))
+ {
+ Chunk *tmp = pc->GetPrev(); // Issue #2688
+ LOG_FMT(LFCNR, "%s(%d): orig_line is %zu, orig_col is %zu, Text() '%s', type is %s\n",
+ __func__, __LINE__, tmp->orig_line, tmp->orig_col,
+ tmp->Text(), get_token_name(tmp->type));
+ log_pcf_flags(LFCNR, tmp->flags);
+ // look for a type
+
+ if (chunk_is_token(tmp, CT_TYPE))
+ {
+ LOG_FMT(LFCNR, "%s(%d): orig_line is %zu, orig_col is %zu, Text() '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col,
+ pc->Text(), get_token_name(pc->type));
+ log_pcf_flags(LFCNR, pc->flags);
+ set_chunk_type(pc, CT_BYREF);
+ }
+ // look next, is there a "assign" before the ";"
+ Chunk *semi = pc->GetNextType(CT_SEMICOLON, pc->level); // Issue #2688
+
+ if (semi->IsNotNullChunk())
+ {
+ LOG_FMT(LFCNR, "%s(%d): orig_line is %zu, orig_col is %zu, Text() '%s', type is %s\n",
+ __func__, __LINE__, semi->orig_line, semi->orig_col,
+ semi->Text(), get_token_name(semi->type));
+
+ for (Chunk *test_it = pc; test_it != semi; test_it = test_it->GetNext())
+ {
+ LOG_FMT(LFCNR, "%s(%d): test_it->orig_line is %zu, orig_col is %zu, Text() '%s', type is %s\n",
+ __func__, __LINE__, test_it->orig_line, test_it->orig_col,
+ test_it->Text(), get_token_name(test_it->type));
+
+ if (chunk_is_token(test_it, CT_ASSIGN))
+ {
+ // the statement is an assigment
+ // && is before assign
+ set_chunk_type(pc, CT_BYREF);
+ break;
+ }
+ }
+ }
+ }
+
+ // Issue #1704
+ if ( chunk_is_token(pc, CT_INCDEC_AFTER)
+ && pc->flags.test(PCF_IN_PREPROC))
+ {
+ Chunk *tmp_2 = pc->GetNext();
+ LOG_FMT(LFCNR, "%s(%d): orig_line is %zu, orig_col is %zu, Text() '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col,
+ pc->Text(), get_token_name(pc->type));
+ log_pcf_flags(LFTYPE, pc->flags);
+
+ if (chunk_is_token(tmp_2, CT_WORD))
+ {
+ set_chunk_type(pc, CT_INCDEC_BEFORE);
+ }
+ }
+} // do_symbol_check
+
+
+static void check_double_brace_init(Chunk *bo1)
+{
+ LOG_FUNC_ENTRY();
+ LOG_FMT(LJDBI, "%s(%d): orig_line is %zu, orig_col is %zu", __func__, __LINE__, bo1->orig_line, bo1->orig_col);
+ Chunk *pc = bo1->GetPrevNcNnlNi(); // Issue #2279
+
+ if (pc->IsNullChunk())
+ {
+ return;
+ }
+
+ if (chunk_is_paren_close(pc))
+ {
+ Chunk *bo2 = bo1->GetNext();
+
+ if (bo2->IsNullChunk())
+ {
+ return;
+ }
+
+ if (chunk_is_token(bo2, CT_BRACE_OPEN))
+ {
+ // found a potential double brace
+ Chunk *bc2 = chunk_skip_to_match(bo2);
+
+ if (bc2 == nullptr)
+ {
+ return;
+ }
+ Chunk *bc1 = bc2->GetNext();
+
+ if (bc1->IsNullChunk())
+ {
+ return;
+ }
+
+ if (chunk_is_token(bc1, CT_BRACE_CLOSE))
+ {
+ LOG_FMT(LJDBI, " - end, orig_line is %zu, orig_col is %zu\n", bc2->orig_line, bc2->orig_col);
+ // delete bo2 and bc1
+ bo1->str += bo2->str;
+ bo1->orig_col_end = bo2->orig_col_end;
+ chunk_del(bo2);
+ set_chunk_parent(bo1, CT_DOUBLE_BRACE);
+
+ bc2->str += bc1->str;
+ bc2->orig_col_end = bc1->orig_col_end;
+ chunk_del(bc1);
+ set_chunk_parent(bc2, CT_DOUBLE_BRACE);
+ return;
+ }
+ }
+ }
+ LOG_FMT(LJDBI, " - no\n");
+} // check_double_brace_init
+
+
+void fix_symbols(void)
+{
+ LOG_FUNC_ENTRY();
+ Chunk *pc;
+ Chunk dummy;
+
+ cpd.unc_stage = unc_stage_e::FIX_SYMBOLS;
+
+ mark_define_expressions();
+
+ bool is_cpp = language_is_set(LANG_CPP);
+ bool is_java = language_is_set(LANG_JAVA);
+
+ for (pc = Chunk::GetHead(); pc->IsNotNullChunk(); pc = pc->GetNextNcNnl())
+ {
+ if ( chunk_is_token(pc, CT_FUNC_WRAP)
+ || chunk_is_token(pc, CT_TYPE_WRAP))
+ {
+ handle_wrap(pc);
+ }
+
+ if (chunk_is_token(pc, CT_ASSIGN))
+ {
+ mark_lvalue(pc);
+ }
+ // a brace immediately preceded by word in C++11 is an initializer list though it may also
+ // by a type casting initializer list if the word is really a type; sadly uncrustify knows
+ // only built-in types and knows nothing of user-defined types
+ Chunk *prev = pc->GetPrevNcNnlNi(); // Issue #2279
+
+ if ( is_cpp
+ && chunk_is_token(pc, CT_BRACE_OPEN)
+ && ( chunk_is_token(prev, CT_WORD)
+ || chunk_is_token(prev, CT_TYPE)))
+ {
+ mark_lvalue(pc);
+ }
+
+ if ( is_java
+ && chunk_is_token(pc, CT_BRACE_OPEN))
+ {
+ check_double_brace_init(pc);
+ }
+
+ if (chunk_is_token(pc, CT_ATTRIBUTE))
+ {
+ Chunk *next = pc->GetNextNcNnl(E_Scope::PREPROC);
+
+ if ( next->IsNotNullChunk()
+ && chunk_is_token(next, CT_PAREN_OPEN))
+ {
+ flag_parens(next, PCF_NONE, CT_FPAREN_OPEN, CT_ATTRIBUTE, false);
+ }
+ }
+ }
+
+ pc = Chunk::GetHead();
+
+ if (pc->IsCommentOrNewline())
+ {
+ pc = pc->GetNextNcNnl();
+ }
+
+ while (pc->IsNotNullChunk())
+ {
+ if (chunk_is_token(pc, CT_IGNORED))
+ {
+ pc = pc->GetNextNcNnl();
+ continue;
+ }
+ LOG_FMT(LFCNR, "%s(%d): pc->orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type));
+ Chunk *prev = pc->GetPrevNcNnlNi(E_Scope::PREPROC); // Issue #2279
+
+ if (chunk_is_token(prev, CT_QUALIFIER))
+ {
+ prev = prev->GetPrevNcNnlNi(E_Scope::PREPROC); // Issue #3513
+ }
+
+ if (prev->IsNullChunk())
+ {
+ prev = &dummy;
+ }
+ else
+ {
+ // Issue #2279
+ LOG_FMT(LFCNR, "%s(%d): prev(ni)->orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s\n",
+ __func__, __LINE__, prev->orig_line, prev->orig_col, prev->Text(), get_token_name(prev->type));
+ }
+ Chunk *next = pc->GetNextNcNnl(E_Scope::PREPROC);
+
+ if (next->IsNullChunk())
+ {
+ next = &dummy;
+ }
+ else
+ {
+ // Issue #2279
+ LOG_FMT(LFCNR, "%s(%d): next->orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s\n",
+ __func__, __LINE__, next->orig_line, next->orig_col, next->Text(), get_token_name(next->type));
+ }
+ LOG_FMT(LFCNR, "%s(%d): do_symbol_check(%s, %s, %s)\n",
+ __func__, __LINE__, prev->Text(), pc->Text(), next->Text());
+ do_symbol_check(prev, pc, next);
+ pc = pc->GetNextNcNnl();
+ }
+ pawn_add_virtual_semicolons();
+ process_returns();
+
+ /*
+ * 2nd pass - handle variable definitions
+ * REVISIT: We need function params marked to do this (?)
+ */
+ pc = Chunk::GetHead();
+ int square_level = -1;
+
+ while ( pc != nullptr
+ && pc->IsNotNullChunk())
+ {
+ char copy[1000];
+ LOG_FMT(LFCNR, "%s(%d): pc->orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s, parent_type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->ElidedText(copy), get_token_name(pc->type), get_token_name(pc->parent_type));
+
+ // Can't have a variable definition inside [ ]
+ if (square_level < 0)
+ {
+ if (chunk_is_token(pc, CT_SQUARE_OPEN))
+ {
+ square_level = pc->level;
+ }
+ }
+ else
+ {
+ if (pc->level <= static_cast<size_t>(square_level))
+ {
+ square_level = -1;
+ }
+ }
+
+ if ( chunk_is_token(pc, CT_EXTERN)
+ && language_is_set(LANG_ALLC))
+ {
+ Chunk *next = pc->GetNextNcNnl();
+
+ if (chunk_is_token(next, CT_STRING))
+ {
+ Chunk *tmp = next->GetNextNcNnl();
+
+ while (tmp->IsNotNullChunk())
+ {
+ if ( chunk_is_token(tmp, CT_TYPE)
+ || chunk_is_token(tmp, CT_BRACE_OPEN)
+ || chunk_is_token(tmp, CT_ATTRIBUTE))
+ {
+ break;
+ }
+
+ if (chunk_is_token(tmp, CT_WORD))
+ {
+ chunk_flags_set(tmp, PCF_STMT_START | PCF_EXPR_START);
+ break;
+ }
+ tmp = tmp->GetNextNcNnl();
+ }
+ }
+ }
+
+ if ( chunk_is_token(pc, CT_ATTRIBUTE)
+ && language_is_set(LANG_ALLC))
+ {
+ Chunk *tmp = skip_attribute_next(pc);
+
+ if (chunk_is_token(tmp, CT_WORD))
+ {
+ chunk_flags_set(tmp, PCF_STMT_START | PCF_EXPR_START);
+ }
+ }
+
+ if ( chunk_is_token(pc, CT_BRACE_OPEN) // Issue #2332
+ && get_chunk_parent_type(pc) == CT_BRACED_INIT_LIST)
+ {
+ LOG_FMT(LFCNR, "%s(%d): pc->orig_line is %zu, orig_col is %zu, Text() is '%s', look for CT_BRACE_OPEN\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text());
+ pc = pc->GetNextType(CT_BRACE_CLOSE, pc->level);
+ }
+ /*
+ * A variable definition is possible after at the start of a statement
+ * that starts with: DC_MEMBER, QUALIFIER, TYPE, or WORD
+ */
+ // Issue #2279
+ // Issue #2478
+ LOG_FMT(LFCNR, "%s(%d): pc->orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s, parent_type is %s\n ",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->ElidedText(copy), get_token_name(pc->type), get_token_name(pc->parent_type));
+ log_pcf_flags(LFCNR, pc->flags);
+
+ if ( (square_level < 0)
+ && pc->flags.test(PCF_STMT_START)
+ && ( chunk_is_token(pc, CT_QUALIFIER)
+ || chunk_is_token(pc, CT_TYPE)
+ || chunk_is_token(pc, CT_TYPENAME)
+ || chunk_is_token(pc, CT_DC_MEMBER) // Issue #2478
+ || chunk_is_token(pc, CT_WORD))
+ && get_chunk_parent_type(pc) != CT_BIT_COLON
+ && get_chunk_parent_type(pc) != CT_ENUM
+ && !pc->flags.test(PCF_IN_CLASS_BASE)
+ && !pc->flags.test(PCF_IN_ENUM))
+ {
+ pc = fix_variable_definition(pc);
+ }
+ else
+ {
+ pc = pc->GetNextNcNnl();
+ }
+ }
+} // fix_symbols
+
+
+static void process_returns(void)
+{
+ LOG_FUNC_ENTRY();
+ Chunk *pc;
+
+ pc = Chunk::GetHead();
+
+ while (pc->IsNotNullChunk())
+ {
+ if (chunk_is_not_token(pc, CT_RETURN))
+ {
+ pc = pc->GetNextType(CT_RETURN, -1);
+ continue;
+ }
+ pc = process_return(pc);
+ }
+}
+
+
+static Chunk *process_return(Chunk *pc)
+{
+ LOG_FUNC_ENTRY();
+ Chunk *next;
+ Chunk *temp;
+ Chunk *semi;
+ Chunk *cpar;
+ Chunk chunk;
+
+ // grab next and bail if it is a semicolon
+ next = pc->PpaGetNextNcNnl();
+
+ if ( next->IsNullChunk()
+ || chunk_is_semicolon(next)
+ || chunk_is_token(next, CT_NEWLINE))
+ {
+ return(next);
+ }
+ log_rule_B("nl_return_expr");
+
+ if ( options::nl_return_expr() != IARF_IGNORE
+ && !pc->flags.test(PCF_IN_PREPROC))
+ {
+ newline_iarf(pc, options::nl_return_expr());
+ }
+
+ if (chunk_is_token(next, CT_PAREN_OPEN))
+ {
+ // See if the return is fully paren'd
+ cpar = next->GetNextType(CT_PAREN_CLOSE, next->level);
+
+ if (cpar->IsNullChunk())
+ {
+ return(Chunk::NullChunkPtr);
+ }
+ semi = cpar->PpaGetNextNcNnl();
+
+ if (semi->IsNullChunk())
+ {
+ return(Chunk::NullChunkPtr);
+ }
+
+ if ( chunk_is_token(semi, CT_NEWLINE)
+ || chunk_is_semicolon(semi))
+ {
+ log_rule_B("mod_paren_on_return");
+
+ if (options::mod_paren_on_return() == IARF_REMOVE)
+ {
+ LOG_FMT(LRETURN, "%s(%d): removing parens on orig_line %zu\n",
+ __func__, __LINE__, pc->orig_line);
+
+ // lower the level of everything
+ for (temp = next; temp != cpar; temp = temp->GetNext())
+ {
+ if (temp->level == 0)
+ {
+ fprintf(stderr, "%s(%d): temp->level is ZERO, cannot be decremented, at line %zu, column %zu\n",
+ __func__, __LINE__, temp->orig_line, temp->orig_col);
+ log_flush(true);
+ exit(EX_SOFTWARE);
+ }
+ temp->level--;
+ }
+
+ // delete the parenthesis
+ chunk_del(next);
+ chunk_del(cpar);
+
+ // back up following chunks
+ temp = semi;
+
+ while ( temp->IsNotNullChunk()
+ && chunk_is_not_token(temp, CT_NEWLINE))
+ {
+ temp->column = temp->column - 2;
+ temp->orig_col = temp->orig_col - 2;
+ temp->orig_col_end = temp->orig_col_end - 2;
+ temp = temp->GetNext();
+ }
+ }
+ else
+ {
+ LOG_FMT(LRETURN, "%s(%d): keeping parens on orig_line %zu\n",
+ __func__, __LINE__, pc->orig_line);
+
+ // mark & keep them
+ set_chunk_parent(next, CT_RETURN);
+ set_chunk_parent(cpar, CT_RETURN);
+ }
+ return(semi);
+ }
+ }
+ // We don't have a fully paren'd return. Should we add some?
+ log_rule_B("mod_paren_on_return");
+
+ if (!(options::mod_paren_on_return() & IARF_ADD))
+ {
+ return(next);
+ }
+
+ // Issue #1917
+ // Never add parens to a braced init list; that breaks the code
+ // return {args...}; // C++11 type elision; okay
+ // return ({args...}); // ill-formed
+ if ( language_is_set(LANG_CPP)
+ && chunk_is_token(next, CT_BRACE_OPEN)
+ && get_chunk_parent_type(next) == CT_BRACED_INIT_LIST)
+ {
+ LOG_FMT(LRETURN, "%s(%d): not adding parens around braced initializer"
+ " on orig_line %zd\n",
+ __func__, __LINE__, pc->orig_line);
+ return(next);
+ }
+ // find the next semicolon on the same level
+ semi = next;
+
+ if (pc->flags.test(PCF_IN_PREPROC))
+ {
+ while ((semi = semi->GetNext())->IsNotNullChunk())
+ {
+ if (!semi->flags.test(PCF_IN_PREPROC))
+ {
+ break;
+ }
+
+ if (semi->level < pc->level)
+ {
+ return(semi);
+ }
+
+ if ( chunk_is_semicolon(semi)
+ && pc->level == semi->level)
+ {
+ break;
+ }
+ }
+ }
+ else
+ {
+ while ((semi = semi->GetNext())->IsNotNullChunk())
+ {
+ if (semi->level < pc->level)
+ {
+ return(semi);
+ }
+
+ if ( chunk_is_semicolon(semi)
+ && pc->level == semi->level)
+ {
+ break;
+ }
+ }
+ }
+
+ if (semi)
+ {
+ // add the parenthesis
+ set_chunk_type(&chunk, CT_PAREN_OPEN);
+ set_chunk_parent(&chunk, CT_RETURN);
+ chunk.str = "(";
+ chunk.level = pc->level;
+ chunk.pp_level = pc->pp_level;
+ chunk.brace_level = pc->brace_level;
+ chunk.orig_line = pc->orig_line;
+ chunk.orig_col = next->orig_col - 1;
+ chunk.flags = pc->flags & PCF_COPY_FLAGS;
+ chunk_add_before(&chunk, next);
+
+ set_chunk_type(&chunk, CT_PAREN_CLOSE);
+ chunk.str = ")";
+ chunk.orig_line = semi->orig_line;
+ chunk.orig_col = semi->orig_col - 1;
+ cpar = chunk_add_before(&chunk, semi);
+
+ LOG_FMT(LRETURN, "%s(%d): added parens on orig_line %zu\n",
+ __func__, __LINE__, pc->orig_line);
+
+ for (temp = next; temp != cpar; temp = temp->GetNext())
+ {
+ temp->level++;
+ }
+ }
+ return(semi);
+} // process_return
+
+
+static bool is_oc_block(Chunk *pc)
+{
+ return( pc != nullptr
+ && ( get_chunk_parent_type(pc) == CT_OC_BLOCK_TYPE
+ || get_chunk_parent_type(pc) == CT_OC_BLOCK_EXPR
+ || get_chunk_parent_type(pc) == CT_OC_BLOCK_ARG
+ || get_chunk_parent_type(pc) == CT_OC_BLOCK
+ || chunk_is_token(pc, CT_OC_BLOCK_CARET)
+ || ( pc->next != nullptr
+ && pc->next->type == CT_OC_BLOCK_CARET)
+ || ( pc->prev != nullptr
+ && pc->prev->type == CT_OC_BLOCK_CARET)));
+}
+
+
+void mark_comments(void)
+{
+ LOG_FUNC_ENTRY();
+
+ cpd.unc_stage = unc_stage_e::MARK_COMMENTS;
+
+ bool prev_nl = true;
+ Chunk *cur = Chunk::GetHead();
+
+ while (cur->IsNotNullChunk())
+ {
+ Chunk *next = cur->GetNextNvb();
+ bool next_nl = next->IsNullChunk() || chunk_is_newline(next);
+
+ if (cur->IsComment())
+ {
+ if ( next_nl
+ && prev_nl)
+ {
+ set_chunk_parent(cur, CT_COMMENT_WHOLE);
+ }
+ else if (next_nl)
+ {
+ set_chunk_parent(cur, CT_COMMENT_END);
+ }
+ else if (prev_nl)
+ {
+ set_chunk_parent(cur, CT_COMMENT_START);
+ }
+ else
+ {
+ set_chunk_parent(cur, CT_COMMENT_EMBED);
+ }
+ }
+ prev_nl = chunk_is_newline(cur);
+ cur = next;
+ }
+}
+
+
+static void handle_cpp_template(Chunk *pc)
+{
+ LOG_FUNC_ENTRY();
+
+ Chunk *tmp = pc->GetNextNcNnl();
+
+ if (chunk_is_not_token(tmp, CT_ANGLE_OPEN))
+ {
+ return;
+ }
+ set_chunk_parent(tmp, CT_TEMPLATE);
+
+ size_t level = tmp->level;
+
+ tmp = tmp->GetNext();
+
+ while (tmp->IsNotNullChunk())
+ {
+ if ( chunk_is_token(tmp, CT_CLASS)
+ || chunk_is_token(tmp, CT_STRUCT))
+ {
+ set_chunk_type(tmp, CT_TYPE);
+ }
+ else if ( chunk_is_token(tmp, CT_ANGLE_CLOSE)
+ && tmp->level == level)
+ {
+ set_chunk_parent(tmp, CT_TEMPLATE);
+ break;
+ }
+ tmp = tmp->GetNext();
+ }
+
+ if (tmp->IsNotNullChunk())
+ {
+ tmp = tmp->GetNextNcNnl();
+
+ if (chunk_is_token(tmp, CT_FRIEND))
+ {
+ // Account for a template friend declaration
+ set_chunk_parent(tmp, CT_TEMPLATE);
+
+ tmp = tmp->GetNextNcNnl();
+ }
+
+ if ( chunk_is_token(tmp, CT_CLASS)
+ || chunk_is_token(tmp, CT_STRUCT))
+ {
+ set_chunk_parent(tmp, CT_TEMPLATE);
+
+ // REVISIT: This may be a bit risky - might need to track the { };
+ tmp = tmp->GetNextType(CT_SEMICOLON, tmp->level);
+
+ if (tmp->IsNotNullChunk())
+ {
+ set_chunk_parent(tmp, CT_TEMPLATE);
+ }
+ }
+ }
+} // handle_cpp_template
+
+
+static void handle_cpp_lambda(Chunk *sq_o)
+{
+ LOG_FUNC_ENTRY();
+
+ Chunk *ret = Chunk::NullChunkPtr;
+
+ // abort if type of the previous token is not contained in this whitelist
+ Chunk *prev = sq_o->GetPrevNcNnlNi(); // Issue #2279
+
+ if (prev->IsNullChunk())
+ {
+ LOG_FMT(LFCNR, "%s(%d): prev is nullptr\n", __func__, __LINE__);
+ }
+
+ if ( prev->IsNullChunk()
+ || ( chunk_is_not_token(prev, CT_ASSIGN)
+ && chunk_is_not_token(prev, CT_COMMA)
+ && chunk_is_not_token(prev, CT_PAREN_OPEN) // allow Js like self invoking lambda syntax: ([](){})();
+ && chunk_is_not_token(prev, CT_FPAREN_OPEN)
+ && chunk_is_not_token(prev, CT_SQUARE_OPEN)
+ && chunk_is_not_token(prev, CT_BRACE_OPEN)
+ && chunk_is_not_token(prev, CT_SEMICOLON)
+ && chunk_is_not_token(prev, CT_RETURN)))
+ {
+ LOG_FMT(LFCNR, "%s(%d): return\n", __func__, __LINE__);
+ return;
+ }
+ Chunk *sq_c = sq_o; // assuming '[]'
+
+ if (chunk_is_token(sq_o, CT_SQUARE_OPEN))
+ {
+ // make sure there is a ']'
+ sq_c = chunk_skip_to_match(sq_o);
+
+ if (sq_c == nullptr)
+ {
+ LOG_FMT(LFCNR, "%s(%d): return\n", __func__, __LINE__);
+ return;
+ }
+ }
+ Chunk *pa_o = sq_c->GetNextNcNnl();
+
+ // check to see if there is a lambda-specifier in the pa_o chunk;
+ // assuming chunk is CT_EXECUTION_CONTEXT, ignore lambda-specifier
+ while (chunk_is_token(pa_o, CT_EXECUTION_CONTEXT))
+ {
+ // set pa_o to next chunk after this specifier
+ pa_o = pa_o->GetNextNcNnl();
+ }
+
+ if (pa_o->IsNullChunk())
+ {
+ LOG_FMT(LFCNR, "%s(%d): return\n", __func__, __LINE__);
+ return;
+ }
+ Chunk *pa_c = Chunk::NullChunkPtr;
+
+ // lambda-declarator '( params )' is optional
+ if (chunk_is_token(pa_o, CT_PAREN_OPEN))
+ {
+ // and now find the ')'
+ pa_c = chunk_skip_to_match(pa_o);
+
+ if (pa_c->IsNullChunk())
+ {
+ LOG_FMT(LFCNR, "%s(%d): return\n", __func__, __LINE__);
+ return;
+ }
+ }
+ // Check for 'mutable' keyword: '[]() mutable {}' or []() mutable -> ret {}
+ Chunk *br_o = pa_c->IsNotNullChunk() ? pa_c->GetNextNcNnl() : pa_o;
+
+ if (chunk_is_str(br_o, "mutable"))
+ {
+ br_o = br_o->GetNextNcNnl();
+ }
+ //TODO: also check for exception and attribute between [] ... {}
+
+ // skip possible arrow syntax: '-> ret'
+ if (chunk_is_str(br_o, "->"))
+ {
+ ret = br_o;
+ // REVISIT: really should check the stuff we are skipping
+ br_o = br_o->GetNextType(CT_BRACE_OPEN, br_o->level);
+ }
+
+ // skip possible CT_NOEXCEPT
+ if (chunk_is_token(br_o, CT_NOEXCEPT)) // Issue #3321
+ {
+ ret = br_o;
+ // REVISIT: really should check the stuff we are skipping
+ br_o = br_o->GetNextType(CT_BRACE_OPEN, br_o->level);
+ }
+
+ if (br_o->IsNullChunk())
+ {
+ LOG_FMT(LFCNR, "%s(%d): br_o is null. Return\n", __func__, __LINE__);
+ return;
+ }
+
+ if (chunk_is_not_token(br_o, CT_BRACE_OPEN))
+ {
+ LOG_FMT(LFCNR, "%s(%d): br_o is '%s'/%s\n",
+ __func__, __LINE__,
+ br_o->Text(), get_token_name(br_o->type));
+ LOG_FMT(LFCNR, "%s(%d): return\n", __func__, __LINE__);
+ return;
+ }
+ // and now find the '}'
+ Chunk *br_c = chunk_skip_to_match(br_o);
+
+ if (br_c->IsNullChunk())
+ {
+ LOG_FMT(LFCNR, "%s(%d): return\n", __func__, __LINE__);
+ return;
+ }
+
+ // This looks like a lambda expression
+ if (chunk_is_token(sq_o, CT_TSQUARE))
+ {
+ // split into two chunks
+ Chunk nc;
+
+ nc = *sq_o;
+ set_chunk_type(sq_o, CT_SQUARE_OPEN);
+ sq_o->str.resize(1);
+ /*
+ * bug # 664
+ *
+ * The original orig_col of CT_SQUARE_CLOSE is stored at orig_col_end
+ * of CT_TSQUARE. CT_SQUARE_CLOSE orig_col and orig_col_end values
+ * are calculate from orig_col_end of CT_TSQUARE.
+ */
+ nc.orig_col = sq_o->orig_col_end - 1;
+ nc.column = static_cast<int>(nc.orig_col);
+ nc.orig_col_end = sq_o->orig_col_end;
+ sq_o->orig_col_end = sq_o->orig_col + 1;
+
+ set_chunk_type(&nc, CT_SQUARE_CLOSE);
+ nc.str.pop_front();
+ sq_c = chunk_add_after(&nc, sq_o);
+ }
+ set_chunk_parent(sq_o, CT_CPP_LAMBDA);
+ set_chunk_parent(sq_c, CT_CPP_LAMBDA);
+
+ if (pa_c->IsNotNullChunk())
+ {
+ set_chunk_type(pa_o, CT_LPAREN_OPEN); // Issue #3054
+ set_chunk_parent(pa_o, CT_CPP_LAMBDA);
+ chunk_set_parent(pa_o, sq_o);
+ chunk_set_parent(br_o, sq_o);
+ set_chunk_type(pa_c, CT_LPAREN_CLOSE);
+ set_chunk_parent(pa_c, CT_CPP_LAMBDA);
+ chunk_set_parent(pa_c, sq_o);
+ chunk_set_parent(br_c, sq_o);
+ }
+ set_chunk_parent(br_o, CT_CPP_LAMBDA);
+ set_chunk_parent(br_c, CT_CPP_LAMBDA);
+
+ if (ret->IsNotNullChunk())
+ {
+ set_chunk_type(ret, CT_CPP_LAMBDA_RET);
+ ret = ret->GetNextNcNnl();
+
+ while (ret != br_o)
+ {
+ make_type(ret);
+ ret = ret->GetNextNcNnl();
+ }
+ }
+
+ if (pa_c->IsNotNullChunk())
+ {
+ fix_fcn_def_params(pa_o);
+ }
+ //handle self calling lambda paren
+ Chunk *call_pa_o = br_c->GetNextNcNnl();
+
+ if (chunk_is_token(call_pa_o, CT_PAREN_OPEN))
+ {
+ Chunk *call_pa_c = chunk_skip_to_match(call_pa_o);
+
+ if (call_pa_c->IsNotNullChunk())
+ {
+ set_chunk_type(call_pa_o, CT_FPAREN_OPEN);
+ set_chunk_parent(call_pa_o, CT_FUNC_CALL);
+ set_chunk_type(call_pa_c, CT_FPAREN_CLOSE);
+ set_chunk_parent(call_pa_c, CT_FUNC_CALL);
+ }
+ }
+ mark_cpp_lambda(sq_o);
+} // handle_cpp_lambda
+
+
+static void handle_d_template(Chunk *pc)
+{
+ LOG_FUNC_ENTRY();
+
+ Chunk *name = pc->GetNextNcNnl();
+ Chunk *po = name->GetNextNcNnl();
+
+ //if (!name || (name->type != CT_WORD && name->type != CT_WORD)) Coverity CID 76000 Same on both sides, 2016-03-16
+ if ( name->IsNullChunk()
+ || chunk_is_not_token(name, CT_WORD))
+ {
+ // TODO: log an error, expected NAME
+ return;
+ }
+
+ if ( po->IsNullChunk()
+ || chunk_is_not_token(po, CT_PAREN_OPEN))
+ {
+ // TODO: log an error, expected '('
+ return;
+ }
+ set_chunk_type(name, CT_TYPE);
+ set_chunk_parent(name, CT_TEMPLATE);
+ set_chunk_parent(po, CT_TEMPLATE);
+
+ ChunkStack cs;
+ Chunk *tmp = get_d_template_types(cs, po);
+
+ if ( tmp == nullptr
+ || chunk_is_not_token(tmp, CT_PAREN_CLOSE))
+ {
+ // TODO: log an error, expected ')'
+ return;
+ }
+ set_chunk_parent(tmp, CT_TEMPLATE);
+
+ tmp = tmp->GetNextNcNnl();
+
+ if (chunk_is_not_token(tmp, CT_BRACE_OPEN))
+ {
+ // TODO: log an error, expected '{'
+ return;
+ }
+ set_chunk_parent(tmp, CT_TEMPLATE);
+ po = tmp;
+ tmp = tmp->GetNextNcNnl();
+
+ while ( tmp->IsNotNullChunk()
+ && tmp->level > po->level)
+ {
+ if ( chunk_is_token(tmp, CT_WORD)
+ && chunkstack_match(cs, tmp))
+ {
+ set_chunk_type(tmp, CT_TYPE);
+ }
+ tmp = tmp->GetNextNcNnl();
+ }
+// if (!chunk_is_token(tmp, CT_BRACE_CLOSE))
+// {
+// // TODO: log an error, expected '}'
+// }
+ set_chunk_parent(tmp, CT_TEMPLATE);
+} // handle_d_template
+
+
+Chunk *skip_template_next(Chunk *ang_open)
+{
+ if (ang_open == nullptr)
+ {
+ return(Chunk::NullChunkPtr);
+ }
+
+ if (chunk_is_token(ang_open, CT_ANGLE_OPEN))
+ {
+ Chunk *pc = ang_open->GetNextType(CT_ANGLE_CLOSE, ang_open->level);
+
+ if (pc->IsNullChunk())
+ {
+ return(Chunk::NullChunkPtr);
+ }
+ return(pc->GetNextNcNnl());
+ }
+ return(ang_open);
+}
+
+
+static void handle_oc_class(Chunk *pc)
+{
+ enum class angle_state_e : unsigned int
+ {
+ NONE = 0,
+ OPEN = 1, // '<' found
+ CLOSE = 2, // '>' found
+ };
+
+ LOG_FUNC_ENTRY();
+ Chunk *tmp;
+ bool hit_scope = false;
+ bool passed_name = false; // Did we pass the name of the class and now there can be only protocols, not generics
+ int generic_level = 0; // level of depth of generic
+ angle_state_e as = angle_state_e::NONE;
+
+ LOG_FMT(LOCCLASS, "%s(%d): start [%s] [%s] line %zu\n",
+ __func__, __LINE__, pc->Text(), get_token_name(get_chunk_parent_type(pc)), pc->orig_line);
+
+ if (get_chunk_parent_type(pc) == CT_OC_PROTOCOL)
+ {
+ tmp = pc->GetNextNcNnl();
+
+ if (chunk_is_semicolon(tmp))
+ {
+ set_chunk_parent(tmp, get_chunk_parent_type(pc));
+ LOG_FMT(LOCCLASS, "%s(%d): bail on semicolon\n", __func__, __LINE__);
+ return;
+ }
+ }
+ tmp = pc;
+
+ while ( (tmp = tmp->GetNextNnl()) != nullptr
+ && tmp->IsNotNullChunk())
+ {
+ LOG_FMT(LOCCLASS, "%s(%d): orig_line is %zu, [%s]\n",
+ __func__, __LINE__, tmp->orig_line, tmp->Text());
+
+ if (chunk_is_token(tmp, CT_OC_END))
+ {
+ break;
+ }
+
+ if (chunk_is_token(tmp, CT_PAREN_OPEN))
+ {
+ passed_name = true;
+ }
+
+ if (chunk_is_str(tmp, "<"))
+ {
+ set_chunk_type(tmp, CT_ANGLE_OPEN);
+
+ if (passed_name)
+ {
+ set_chunk_parent(tmp, CT_OC_PROTO_LIST);
+ }
+ else
+ {
+ set_chunk_parent(tmp, CT_OC_GENERIC_SPEC);
+ generic_level++;
+ }
+ as = angle_state_e::OPEN;
+ }
+
+ if (chunk_is_str(tmp, ">"))
+ {
+ set_chunk_type(tmp, CT_ANGLE_CLOSE);
+
+ if (passed_name)
+ {
+ set_chunk_parent(tmp, CT_OC_PROTO_LIST);
+ as = angle_state_e::CLOSE;
+ }
+ else
+ {
+ set_chunk_parent(tmp, CT_OC_GENERIC_SPEC);
+
+ if (generic_level == 0)
+ {
+ fprintf(stderr, "%s(%d): generic_level is ZERO, cannot be decremented, at line %zu, column %zu\n",
+ __func__, __LINE__, tmp->orig_line, tmp->orig_col);
+ log_flush(true);
+ exit(EX_SOFTWARE);
+ }
+ generic_level--;
+
+ if (generic_level == 0)
+ {
+ as = angle_state_e::CLOSE;
+ }
+ }
+ }
+
+ if (chunk_is_str(tmp, ">>"))
+ {
+ set_chunk_type(tmp, CT_ANGLE_CLOSE);
+ set_chunk_parent(tmp, CT_OC_GENERIC_SPEC);
+ split_off_angle_close(tmp);
+ generic_level -= 1;
+
+ if (generic_level == 0)
+ {
+ as = angle_state_e::CLOSE;
+ }
+ }
+
+ if ( chunk_is_token(tmp, CT_BRACE_OPEN)
+ && get_chunk_parent_type(tmp) != CT_ASSIGN)
+ {
+ as = angle_state_e::CLOSE;
+ set_chunk_parent(tmp, CT_OC_CLASS);
+ tmp = tmp->GetNextType(CT_BRACE_CLOSE, tmp->level);
+
+ if ( tmp->IsNotNullChunk()
+ && get_chunk_parent_type(tmp) != CT_ASSIGN)
+ {
+ set_chunk_parent(tmp, CT_OC_CLASS);
+ }
+ }
+ else if (chunk_is_token(tmp, CT_COLON))
+ {
+ if (as != angle_state_e::OPEN)
+ {
+ passed_name = true;
+ }
+ set_chunk_type(tmp, hit_scope ? CT_OC_COLON : CT_CLASS_COLON);
+
+ if (chunk_is_token(tmp, CT_CLASS_COLON))
+ {
+ set_chunk_parent(tmp, CT_OC_CLASS);
+ }
+ }
+ else if ( chunk_is_str(tmp, "-")
+ || chunk_is_str(tmp, "+"))
+ {
+ as = angle_state_e::CLOSE;
+
+ if (chunk_is_newline(tmp->GetPrev()))
+ {
+ set_chunk_type(tmp, CT_OC_SCOPE);
+ chunk_flags_set(tmp, PCF_STMT_START);
+ hit_scope = true;
+ }
+ }
+
+ if (as == angle_state_e::OPEN)
+ {
+ if (passed_name)
+ {
+ set_chunk_parent(tmp, CT_OC_PROTO_LIST);
+ }
+ else
+ {
+ set_chunk_parent(tmp, CT_OC_GENERIC_SPEC);
+ }
+ }
+ }
+
+ if (chunk_is_token(tmp, CT_BRACE_OPEN))
+ {
+ tmp = tmp->GetNextType(CT_BRACE_CLOSE, tmp->level);
+
+ if (tmp->IsNotNullChunk())
+ {
+ set_chunk_parent(tmp, CT_OC_CLASS);
+ }
+ }
+} // handle_oc_class
+
+
+static void handle_oc_block_literal(Chunk *pc)
+{
+ LOG_FUNC_ENTRY();
+
+ if (pc == nullptr)
+ {
+ return; // let's be paranoid
+ }
+ Chunk *prev = pc->GetPrevNcNnlNi(); // Issue #2279
+ Chunk *next = pc->GetNextNcNnl();
+
+ if ( prev->IsNullChunk()
+ || next->IsNullChunk())
+ {
+ return; // let's be paranoid
+ }
+ /*
+ * block literal: '^ RTYPE ( ARGS ) { }'
+ * RTYPE and ARGS are optional
+ */
+ LOG_FMT(LOCBLK, "%s(%d): block literal @ orig_line is %zu, orig_col is %zu\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col);
+
+ Chunk *apo = Chunk::NullChunkPtr; // arg paren open
+ Chunk *bbo = Chunk::NullChunkPtr; // block brace open
+ Chunk *bbc; // block brace close
+
+ LOG_FMT(LOCBLK, "%s(%d): + scan", __func__, __LINE__);
+ Chunk *tmp;
+
+ for (tmp = next; tmp->IsNotNullChunk(); tmp = tmp->GetNextNcNnl())
+ {
+ /* handle '< protocol >' */
+ if (chunk_is_str(tmp, "<"))
+ {
+ Chunk *ao = tmp;
+ Chunk *ac = ao->GetNextString(">", 1, ao->level);
+
+ if (ac->IsNotNullChunk())
+ {
+ set_chunk_type(ao, CT_ANGLE_OPEN);
+ set_chunk_parent(ao, CT_OC_PROTO_LIST);
+ set_chunk_type(ac, CT_ANGLE_CLOSE);
+ set_chunk_parent(ac, CT_OC_PROTO_LIST);
+
+ for (tmp = ao->GetNext(); tmp != ac; tmp = tmp->GetNext())
+ {
+ tmp->level += 1;
+ set_chunk_parent(tmp, CT_OC_PROTO_LIST);
+ }
+
+ tmp = ac->GetNextNcNnl();
+ }
+ else
+ {
+ tmp = Chunk::NullChunkPtr;
+ }
+ }
+ LOG_FMT(LOCBLK, " '%s'", tmp->Text());
+
+ if ( tmp->level < pc->level
+ || chunk_is_token(tmp, CT_SEMICOLON))
+ {
+ LOG_FMT(LOCBLK, "[DONE]");
+ break;
+ }
+
+ if (tmp->level == pc->level)
+ {
+ if (chunk_is_paren_open(tmp))
+ {
+ apo = tmp;
+ LOG_FMT(LOCBLK, "[PAREN]");
+ }
+
+ if (chunk_is_token(tmp, CT_BRACE_OPEN))
+ {
+ LOG_FMT(LOCBLK, "[BRACE]");
+ bbo = tmp;
+ break;
+ }
+ }
+ }
+
+ // make sure we have braces
+ bbc = chunk_skip_to_match(bbo);
+
+ if ( bbo->IsNullChunk()
+ || bbc == nullptr
+ || bbc->IsNullChunk())
+ {
+ LOG_FMT(LOCBLK, " -- no braces found\n");
+ return;
+ }
+ LOG_FMT(LOCBLK, "\n");
+
+ // we are on a block literal for sure
+ set_chunk_type(pc, CT_OC_BLOCK_CARET);
+ set_chunk_parent(pc, CT_OC_BLOCK_EXPR);
+
+ // handle the optional args
+ Chunk *lbp; // last before paren - end of return type, if any
+
+ if (apo->IsNotNullChunk())
+ {
+ Chunk *apc = chunk_skip_to_match(apo); // arg parenthesis close
+
+ if (chunk_is_paren_close(apc))
+ {
+ LOG_FMT(LOCBLK, " -- marking parens @ apo->orig_line is %zu, apo->orig_col is %zu and apc->orig_line is %zu, apc->orig_col is %zu\n",
+ apo->orig_line, apo->orig_col, apc->orig_line, apc->orig_col);
+ flag_parens(apo, PCF_OC_ATYPE, CT_FPAREN_OPEN, CT_OC_BLOCK_EXPR, true);
+ fix_fcn_def_params(apo);
+ }
+ lbp = apo->GetPrevNcNnlNi(); // Issue #2279
+ }
+ else
+ {
+ lbp = bbo->GetPrevNcNnlNi(); // Issue #2279
+ }
+
+ // mark the return type, if any
+ while (lbp != pc)
+ {
+ LOG_FMT(LOCBLK, " -- lbp %s[%s]\n", lbp->Text(), get_token_name(lbp->type));
+ make_type(lbp);
+ chunk_flags_set(lbp, PCF_OC_RTYPE);
+ set_chunk_parent(lbp, CT_OC_BLOCK_EXPR);
+ lbp = lbp->GetPrevNcNnlNi(); // Issue #2279
+ }
+ // mark the braces
+ set_chunk_parent(bbo, CT_OC_BLOCK_EXPR);
+ set_chunk_parent(bbc, CT_OC_BLOCK_EXPR);
+} // handle_oc_block_literal
+
+
+static void handle_oc_block_type(Chunk *pc)
+{
+ LOG_FUNC_ENTRY();
+
+ if (pc == nullptr)
+ {
+ return;
+ }
+
+ if (pc->flags.test(PCF_IN_TYPEDEF))
+ {
+ LOG_FMT(LOCBLK, "%s(%d): skip block type @ orig_line is %zu, orig_col is %zu, -- in typedef\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col);
+ return;
+ }
+ // make sure we have '( ^'
+ Chunk *tpo = pc->GetPrevNcNnlNi(); // type paren open Issue #2279
+
+ if (chunk_is_paren_open(tpo))
+ {
+ /*
+ * block type: 'RTYPE (^LABEL)(ARGS)'
+ * LABEL is optional.
+ */
+ Chunk *tpc = chunk_skip_to_match(tpo); // type close paren (after '^')
+ Chunk *nam = tpc->GetPrevNcNnlNi(); // name (if any) or '^' Issue #2279
+ Chunk *apo = tpc->GetNextNcNnl(); // arg open paren
+ Chunk *apc = chunk_skip_to_match(apo); // arg close paren
+
+ /*
+ * If this is a block literal instead of a block type, 'nam'
+ * will actually be the closing bracket of the block. We run into
+ * this situation if a block literal is enclosed in parentheses.
+ */
+ if (chunk_is_closing_brace(nam))
+ {
+ return(handle_oc_block_literal(pc));
+ }
+
+ // Check apo is '(' or else this might be a block literal. Issue 2643.
+ if (!chunk_is_paren_open(apo))
+ {
+ return(handle_oc_block_literal(pc));
+ }
+
+ if (chunk_is_paren_close(apc))
+ {
+ Chunk *aft = apc->GetNextNcNnl();
+ E_Token pt;
+
+ if (chunk_is_str(nam, "^"))
+ {
+ set_chunk_type(nam, CT_PTR_TYPE);
+ pt = CT_FUNC_TYPE;
+ }
+ else if ( chunk_is_token(aft, CT_ASSIGN)
+ || chunk_is_token(aft, CT_SEMICOLON))
+ {
+ set_chunk_type(nam, CT_FUNC_VAR);
+ pt = CT_FUNC_VAR;
+ }
+ else
+ {
+ set_chunk_type(nam, CT_FUNC_TYPE);
+ pt = CT_FUNC_TYPE;
+ }
+ LOG_FMT(LOCBLK, "%s(%d): block type @ orig_line is %zu, orig_col is %zu, Text() '%s'[%s]\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, nam->Text(), get_token_name(nam->type));
+ set_chunk_type(pc, CT_PTR_TYPE);
+ set_chunk_parent(pc, pt); //CT_OC_BLOCK_TYPE;
+ set_chunk_type(tpo, CT_TPAREN_OPEN);
+ set_chunk_parent(tpo, pt); //CT_OC_BLOCK_TYPE;
+ set_chunk_type(tpc, CT_TPAREN_CLOSE);
+ set_chunk_parent(tpc, pt); //CT_OC_BLOCK_TYPE;
+ set_chunk_type(apo, CT_FPAREN_OPEN);
+ set_chunk_parent(apo, CT_FUNC_PROTO);
+ set_chunk_type(apc, CT_FPAREN_CLOSE);
+ set_chunk_parent(apc, CT_FUNC_PROTO);
+ fix_fcn_def_params(apo);
+ mark_function_return_type(nam, tpo->GetPrevNcNnlNi(), pt); // Issue #2279
+ }
+ }
+} // handle_oc_block_type
+
+
+static Chunk *handle_oc_md_type(Chunk *paren_open, E_Token ptype, pcf_flags_t flags, bool &did_it)
+{
+ Chunk *paren_close;
+
+ if ( !chunk_is_paren_open(paren_open)
+ || ((paren_close = chunk_skip_to_match(paren_open)) == nullptr))
+ {
+ did_it = false;
+ return(paren_open);
+ }
+ did_it = true;
+
+ set_chunk_parent(paren_open, ptype);
+ chunk_flags_set(paren_open, flags);
+ set_chunk_parent(paren_close, ptype);
+ chunk_flags_set(paren_close, flags);
+
+ for (Chunk *cur = paren_open->GetNextNcNnl();
+ cur != paren_close;
+ cur = cur->GetNextNcNnl())
+ {
+ LOG_FMT(LOCMSGD, " <%s|%s>", cur->Text(), get_token_name(cur->type));
+ chunk_flags_set(cur, flags);
+ make_type(cur);
+ }
+
+ // returning the chunk after the paren close
+ return(paren_close->GetNextNcNnl());
+}
+
+
+static void handle_oc_message_decl(Chunk *pc)
+{
+ LOG_FUNC_ENTRY();
+
+ bool did_it;
+ //bool in_paren = false;
+ //int paren_cnt = 0;
+ //int arg_cnt = 0;
+
+ // Figure out if this is a spec or decl
+ Chunk *tmp = pc;
+
+ if (tmp == nullptr)
+ {
+ tmp = Chunk::NullChunkPtr;
+ }
+
+ while ((tmp = tmp->GetNext())->IsNotNullChunk())
+ {
+ if (tmp->level < pc->level)
+ {
+ // should not happen
+ return;
+ }
+
+ if ( chunk_is_token(tmp, CT_SEMICOLON)
+ || chunk_is_token(tmp, CT_BRACE_OPEN))
+ {
+ break;
+ }
+ }
+
+ if (tmp == nullptr)
+ {
+ return;
+ }
+ E_Token pt = chunk_is_token(tmp, CT_SEMICOLON) ? CT_OC_MSG_SPEC : CT_OC_MSG_DECL;
+
+ set_chunk_type(pc, CT_OC_SCOPE);
+ set_chunk_parent(pc, pt);
+
+ LOG_FMT(LOCMSGD, "%s(%d): %s @ orig_line is %zu, orig_col is %zu -",
+ __func__, __LINE__, get_token_name(pt), pc->orig_line, pc->orig_col);
+
+ // format: -(TYPE) NAME [: (TYPE)NAME
+
+ // handle the return type
+ tmp = handle_oc_md_type(pc->GetNextNcNnl(), pt, PCF_OC_RTYPE, did_it);
+
+ if (!did_it)
+ {
+ LOG_FMT(LOCMSGD, " -- missing type parens\n");
+ return;
+ }
+
+ // expect the method name/label
+ if (chunk_is_not_token(tmp, CT_WORD))
+ {
+ LOG_FMT(LOCMSGD, " -- missing method name\n");
+ return;
+ } // expect the method name/label
+
+ Chunk *label = tmp;
+
+ set_chunk_type(tmp, pt);
+ set_chunk_parent(tmp, pt);
+ pc = tmp->GetNextNcNnl();
+
+ LOG_FMT(LOCMSGD, " [%s]%s", pc->Text(), get_token_name(pc->type));
+
+ // if we have a colon next, we have args
+ if ( chunk_is_token(pc, CT_COLON)
+ || chunk_is_token(pc, CT_OC_COLON))
+ {
+ pc = label;
+
+ while (true)
+ {
+ // skip optional label
+ if ( chunk_is_token(pc, CT_WORD)
+ || chunk_is_token(pc, pt))
+ {
+ set_chunk_parent(pc, pt);
+ pc = pc->GetNextNcNnl();
+ }
+
+ // a colon must be next
+ if (!chunk_is_str(pc, ":"))
+ {
+ break;
+ }
+ set_chunk_type(pc, CT_OC_COLON);
+ set_chunk_parent(pc, pt);
+ pc = pc->GetNextNcNnl();
+
+ // next is the type in parens
+ LOG_FMT(LOCMSGD, " (%s)", pc->Text());
+ tmp = handle_oc_md_type(pc, pt, PCF_OC_ATYPE, did_it);
+
+ if (!did_it)
+ {
+ LOG_FMT(LWARN, "%s(%d): orig_line is %zu, orig_col is %zu expected type\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col);
+ break;
+ }
+ // attributes for a method parameter sit between the parameter type and the parameter name
+ pc = skip_attribute_next(tmp);
+ // we should now be on the arg name
+ chunk_flags_set(pc, PCF_VAR_DEF);
+ LOG_FMT(LOCMSGD, " arg[%s]", pc->Text());
+ pc = pc->GetNextNcNnl();
+ }
+ }
+ LOG_FMT(LOCMSGD, " end[%s]", pc->Text());
+
+ if (chunk_is_token(pc, CT_BRACE_OPEN))
+ {
+ set_chunk_parent(pc, pt);
+ pc = chunk_skip_to_match(pc);
+
+ if (pc != nullptr)
+ {
+ set_chunk_parent(pc, pt);
+ }
+ }
+ else if (chunk_is_token(pc, CT_SEMICOLON))
+ {
+ set_chunk_parent(pc, pt);
+ }
+ LOG_FMT(LOCMSGD, "\n");
+} // handle_oc_message_decl
+
+
+static void handle_oc_message_send(Chunk *os)
+{
+ LOG_FUNC_ENTRY();
+
+ Chunk *cs = Chunk::NullChunkPtr;
+
+ if (os != nullptr)
+ {
+ cs = os->GetNext();
+ }
+
+ while ( cs->IsNotNullChunk()
+ && cs->level > os->level)
+ {
+ cs = cs->GetNext();
+ }
+
+ if ( cs->IsNullChunk()
+ || chunk_is_not_token(cs, CT_SQUARE_CLOSE))
+ {
+ return;
+ }
+ LOG_FMT(LOCMSG, "%s(%d): orig_line is %zu, orig_col is %zu\n",
+ __func__, __LINE__, os->orig_line, os->orig_col);
+
+ Chunk *tmp = cs->GetNextNcNnl();
+
+ if (chunk_is_semicolon(tmp))
+ {
+ set_chunk_parent(tmp, CT_OC_MSG);
+ }
+ // expect a word first thing or [...]
+ tmp = Chunk::NullChunkPtr;
+
+ if (os != nullptr)
+ {
+ tmp = os->GetNextNcNnl();
+ }
+
+ if ( chunk_is_token(tmp, CT_SQUARE_OPEN)
+ || chunk_is_token(tmp, CT_PAREN_OPEN)
+ || chunk_is_token(tmp, CT_OC_AT))
+ {
+ Chunk *tt = tmp->GetNextNcNnl();
+
+ if ( chunk_is_token(tmp, CT_OC_AT)
+ && tt->IsNotNullChunk())
+ {
+ if ( chunk_is_token(tt, CT_PAREN_OPEN)
+ || chunk_is_token(tt, CT_BRACE_OPEN)
+ || chunk_is_token(tt, CT_SQUARE_OPEN))
+ {
+ tmp = tt;
+ }
+ else
+ {
+ LOG_FMT(LOCMSG, "%s(%d): tmp->orig_line is %zu, tmp->orig_col is %zu, expected identifier, not '%s' [%s]\n",
+ __func__, __LINE__, tmp->orig_line, tmp->orig_col,
+ tmp->Text(), get_token_name(tmp->type));
+ return;
+ }
+ }
+ tmp = chunk_skip_to_match(tmp);
+ }
+ else if ( chunk_is_not_token(tmp, CT_WORD)
+ && chunk_is_not_token(tmp, CT_TYPE)
+ && chunk_is_not_token(tmp, CT_THIS)
+ && chunk_is_not_token(tmp, CT_STAR)
+ && chunk_is_not_token(tmp, CT_STRING))
+ {
+ LOG_FMT(LOCMSG, "%s(%d): orig_line is %zu, orig_col is %zu, expected identifier, not '%s' [%s]\n",
+ __func__, __LINE__, tmp->orig_line, tmp->orig_col,
+ tmp->Text(), get_token_name(tmp->type));
+ return;
+ }
+ else
+ {
+ if (tmp->IsStar()) // Issue #2722
+ {
+ set_chunk_type(tmp, CT_PTR_TYPE);
+ tmp = tmp->GetNextNcNnl();
+ }
+ Chunk *tt = tmp->GetNextNcNnl();
+
+ if (chunk_is_paren_open(tt))
+ {
+ LOG_FMT(LFCN, "%s(%d): (18) SET TO CT_FUNC_CALL: orig_line is %zu, orig_col is %zu, Text() '%s'\n",
+ __func__, __LINE__, tmp->orig_line, tmp->orig_col, tmp->Text());
+ set_chunk_type(tmp, CT_FUNC_CALL);
+ tmp = set_paren_parent(tt, CT_FUNC_CALL)->GetPrevNcNnlNi(); // Issue #2279
+ }
+ else
+ {
+ set_chunk_type(tmp, CT_OC_MSG_CLASS);
+ }
+ }
+ set_chunk_parent(os, CT_OC_MSG);
+ chunk_flags_set(os, PCF_IN_OC_MSG);
+ set_chunk_parent(cs, CT_OC_MSG);
+ chunk_flags_set(cs, PCF_IN_OC_MSG);
+
+ // handle '< protocol >'
+ tmp = tmp->GetNextNcNnl();
+
+ if (chunk_is_str(tmp, "<"))
+ {
+ Chunk *ao = tmp;
+ Chunk *ac = ao->GetNextString(">", 1, ao->level);
+
+ if (ac->IsNotNullChunk())
+ {
+ set_chunk_type(ao, CT_ANGLE_OPEN);
+ set_chunk_parent(ao, CT_OC_PROTO_LIST);
+ set_chunk_type(ac, CT_ANGLE_CLOSE);
+ set_chunk_parent(ac, CT_OC_PROTO_LIST);
+
+ for (tmp = ao->GetNext(); tmp != ac; tmp = tmp->GetNext())
+ {
+ tmp->level += 1;
+ set_chunk_parent(tmp, CT_OC_PROTO_LIST);
+ }
+
+ tmp = ac->GetNextNcNnl();
+ }
+ else
+ {
+ tmp = Chunk::NullChunkPtr;
+ }
+ }
+ // handle 'object.property' and 'collection[index]'
+ else
+ {
+ while (tmp->IsNotNullChunk())
+ {
+ if (chunk_is_token(tmp, CT_MEMBER)) // move past [object.prop1.prop2
+ {
+ Chunk *typ = tmp->GetNextNcNnl();
+
+ if ( chunk_is_token(typ, CT_WORD)
+ || chunk_is_token(typ, CT_TYPE))
+ {
+ tmp = typ->GetNextNcNnl();
+ }
+ else
+ {
+ break;
+ }
+ }
+ else if (chunk_is_token(tmp, CT_SQUARE_OPEN)) // move past [collection[index]
+ {
+ Chunk *tcs = tmp->GetNextNcNnl();
+
+ while ( tcs->IsNotNullChunk()
+ && tcs->level > tmp->level)
+ {
+ tcs = tcs->GetNextNcNnl();
+ }
+
+ if (chunk_is_token(tcs, CT_SQUARE_CLOSE))
+ {
+ tmp = tcs->GetNextNcNnl();
+ }
+ else
+ {
+ break;
+ }
+ }
+ else
+ {
+ break;
+ }
+ }
+ }
+
+ // [(self.foo.bar) method]
+ if (chunk_is_paren_open(tmp))
+ {
+ tmp = chunk_skip_to_match(tmp)->GetNextNcNnl();
+ }
+
+ if ( chunk_is_token(tmp, CT_WORD)
+ || chunk_is_token(tmp, CT_TYPE))
+ {
+ set_chunk_type(tmp, CT_OC_MSG_FUNC);
+ }
+ Chunk *prev = Chunk::NullChunkPtr;
+
+ for (tmp = os->GetNext(); tmp != cs; tmp = tmp->GetNext())
+ {
+ chunk_flags_set(tmp, PCF_IN_OC_MSG);
+
+ if (tmp->level == cs->level + 1)
+ {
+ if (chunk_is_token(tmp, CT_COLON))
+ {
+ set_chunk_type(tmp, CT_OC_COLON);
+
+ if ( chunk_is_token(prev, CT_WORD)
+ || chunk_is_token(prev, CT_TYPE))
+ {
+ // Might be a named param, check previous block
+ Chunk *pp = prev->GetPrev();
+
+ if ( pp->IsNotNullChunk()
+ && chunk_is_not_token(pp, CT_OC_COLON)
+ && chunk_is_not_token(pp, CT_ARITH)
+ && chunk_is_not_token(pp, CT_SHIFT)
+ && chunk_is_not_token(pp, CT_CARET))
+ {
+ set_chunk_type(prev, CT_OC_MSG_NAME);
+ set_chunk_parent(tmp, CT_OC_MSG_NAME);
+ }
+ }
+ }
+ }
+ prev = tmp;
+ }
+} // handle_oc_message_send
+
+
+static void handle_oc_available(Chunk *os)
+{
+ if (os != nullptr)
+ {
+ os = os->GetNext();
+ }
+ else
+ {
+ os = Chunk::NullChunkPtr;
+ }
+
+ while (os->IsNotNullChunk())
+ {
+ E_Token origType = os->type;
+ set_chunk_type(os, CT_OC_AVAILABLE_VALUE);
+
+ if (origType == CT_PAREN_CLOSE)
+ {
+ break;
+ }
+ os = os->GetNext();
+ }
+}
+
+
+static void handle_oc_property_decl(Chunk *os)
+{
+ log_rule_B("mod_sort_oc_properties");
+
+ if (options::mod_sort_oc_properties())
+ {
+ typedef std::vector<Chunk *> ChunkGroup;
+
+ Chunk *next = Chunk::NullChunkPtr;
+
+ if (os != nullptr)
+ {
+ next = os->GetNext();
+ }
+ Chunk *open_paren = nullptr;
+
+ std::vector<ChunkGroup> class_chunks; // class
+ std::vector<ChunkGroup> thread_chunks; // atomic, nonatomic
+ std::vector<ChunkGroup> readwrite_chunks; // readwrite, readonly
+ std::vector<ChunkGroup> ref_chunks; // retain, copy, assign, weak, strong, unsafe_unretained
+ std::vector<ChunkGroup> getter_chunks; // getter
+ std::vector<ChunkGroup> setter_chunks; // setter
+ std::vector<ChunkGroup> nullability_chunks; // nonnull, nullable, null_unspecified, null_resettable
+ std::vector<ChunkGroup> other_chunks; // any words other than above
+
+ if (chunk_is_token(next, CT_PAREN_OPEN))
+ {
+ open_paren = next;
+ next = next->GetNext();
+
+ /*
+ * Determine location of the property attributes
+ * NOTE: Did not do this in the combine.cpp do_symbol_check as
+ * I was not sure what the ramifications of adding a new type
+ * for each of the below types would be. It did break some items
+ * when I attempted to add them so this is my hack for now.
+ */
+ while ( next->IsNotNullChunk()
+ && chunk_is_not_token(next, CT_PAREN_CLOSE))
+ {
+ if (chunk_is_token(next, CT_OC_PROPERTY_ATTR))
+ {
+ if ( chunk_is_str(next, "atomic")
+ || chunk_is_str(next, "nonatomic"))
+ {
+ ChunkGroup chunkGroup;
+ chunkGroup.push_back(next);
+ thread_chunks.push_back(chunkGroup);
+ }
+ else if ( chunk_is_str(next, "readonly")
+ || chunk_is_str(next, "readwrite"))
+ {
+ ChunkGroup chunkGroup;
+ chunkGroup.push_back(next);
+ readwrite_chunks.push_back(chunkGroup);
+ }
+ else if ( chunk_is_str(next, "assign")
+ || chunk_is_str(next, "retain")
+ || chunk_is_str(next, "copy")
+ || chunk_is_str(next, "strong")
+ || chunk_is_str(next, "weak")
+ || chunk_is_str(next, "unsafe_unretained"))
+ {
+ ChunkGroup chunkGroup;
+ chunkGroup.push_back(next);
+ ref_chunks.push_back(chunkGroup);
+ }
+ else if (chunk_is_str(next, "getter"))
+ {
+ ChunkGroup chunkGroup;
+
+ do
+ {
+ chunkGroup.push_back(next);
+ next = next->GetNext();
+ } while ( next->IsNotNullChunk()
+ && chunk_is_not_token(next, CT_COMMA)
+ && chunk_is_not_token(next, CT_PAREN_CLOSE));
+
+ next = next->GetPrev();
+
+ // coverity CID 160946
+ if (next->IsNullChunk())
+ {
+ break;
+ }
+ getter_chunks.push_back(chunkGroup);
+ }
+ else if (chunk_is_str(next, "setter"))
+ {
+ ChunkGroup chunkGroup;
+
+ do
+ {
+ chunkGroup.push_back(next);
+ next = next->GetNext();
+ } while ( next->IsNotNullChunk()
+ && chunk_is_not_token(next, CT_COMMA)
+ && chunk_is_not_token(next, CT_PAREN_CLOSE));
+
+ if (next->IsNotNullChunk())
+ {
+ next = next->GetPrev();
+ }
+
+ if (next->IsNullChunk())
+ {
+ break;
+ }
+ setter_chunks.push_back(chunkGroup);
+ }
+ else if ( chunk_is_str(next, "nullable")
+ || chunk_is_str(next, "nonnull")
+ || chunk_is_str(next, "null_resettable")
+ || chunk_is_str(next, "null_unspecified"))
+ {
+ ChunkGroup chunkGroup;
+ chunkGroup.push_back(next);
+ nullability_chunks.push_back(chunkGroup);
+ }
+ else if (chunk_is_str(next, "class"))
+ {
+ ChunkGroup chunkGroup;
+ chunkGroup.push_back(next);
+ class_chunks.push_back(chunkGroup);
+ }
+ else
+ {
+ ChunkGroup chunkGroup;
+ chunkGroup.push_back(next);
+ other_chunks.push_back(chunkGroup);
+ }
+ }
+ else if (chunk_is_word(next))
+ {
+ if (chunk_is_str(next, "class"))
+ {
+ ChunkGroup chunkGroup;
+ chunkGroup.push_back(next);
+ class_chunks.push_back(chunkGroup);
+ }
+ else
+ {
+ ChunkGroup chunkGroup;
+ chunkGroup.push_back(next);
+ other_chunks.push_back(chunkGroup);
+ }
+ }
+ next = next->GetNext();
+ }
+ log_rule_B("mod_sort_oc_property_class_weight");
+ int class_w = options::mod_sort_oc_property_class_weight();
+ log_rule_B("mod_sort_oc_property_thread_safe_weight");
+ int thread_w = options::mod_sort_oc_property_thread_safe_weight();
+ log_rule_B("mod_sort_oc_property_readwrite_weight");
+ int readwrite_w = options::mod_sort_oc_property_readwrite_weight();
+ log_rule_B("mod_sort_oc_property_reference_weight");
+ int ref_w = options::mod_sort_oc_property_reference_weight();
+ log_rule_B("mod_sort_oc_property_getter_weight");
+ int getter_w = options::mod_sort_oc_property_getter_weight();
+ log_rule_B("mod_sort_oc_property_setter_weight");
+ int setter_w = options::mod_sort_oc_property_setter_weight();
+ log_rule_B("mod_sort_oc_property_nullability_weight");
+ int nullability_w = options::mod_sort_oc_property_nullability_weight();
+
+ //
+ std::multimap<int, std::vector<ChunkGroup> > sorted_chunk_map;
+ sorted_chunk_map.insert(pair<int, std::vector<ChunkGroup> >(class_w, class_chunks));
+ sorted_chunk_map.insert(pair<int, std::vector<ChunkGroup> >(thread_w, thread_chunks));
+ sorted_chunk_map.insert(pair<int, std::vector<ChunkGroup> >(readwrite_w, readwrite_chunks));
+ sorted_chunk_map.insert(pair<int, std::vector<ChunkGroup> >(ref_w, ref_chunks));
+ sorted_chunk_map.insert(pair<int, std::vector<ChunkGroup> >(getter_w, getter_chunks));
+ sorted_chunk_map.insert(pair<int, std::vector<ChunkGroup> >(setter_w, setter_chunks));
+ sorted_chunk_map.insert(pair<int, std::vector<ChunkGroup> >(nullability_w, nullability_chunks));
+ sorted_chunk_map.insert(pair<int, std::vector<ChunkGroup> >(std::numeric_limits<int>::min(), other_chunks));
+
+ Chunk *curr_chunk = open_paren;
+
+ for (multimap<int, std::vector<ChunkGroup> >::reverse_iterator it = sorted_chunk_map.rbegin(); it != sorted_chunk_map.rend(); ++it)
+ {
+ std::vector<ChunkGroup> chunk_groups = (*it).second;
+
+ for (auto chunk_group : chunk_groups)
+ {
+ for (auto chunk : chunk_group)
+ {
+ chunk->orig_prev_sp = 0;
+
+ if (chunk != curr_chunk)
+ {
+ chunk_move_after(chunk, curr_chunk);
+ curr_chunk = chunk;
+ }
+ else
+ {
+ curr_chunk = curr_chunk->GetNext();
+ }
+ }
+
+ // add the parenthesis
+ Chunk endchunk;
+ set_chunk_type(&endchunk, CT_COMMA);
+ set_chunk_parent(&endchunk, get_chunk_parent_type(curr_chunk));
+ endchunk.str = ",";
+ endchunk.level = curr_chunk->level;
+ endchunk.pp_level = curr_chunk->pp_level;
+ endchunk.brace_level = curr_chunk->brace_level;
+ endchunk.orig_line = curr_chunk->orig_line;
+ endchunk.orig_col = curr_chunk->orig_col;
+ endchunk.column = curr_chunk->orig_col_end + 1;
+ endchunk.flags = curr_chunk->flags & PCF_COPY_FLAGS;
+ chunk_add_after(&endchunk, curr_chunk);
+ curr_chunk = curr_chunk->GetNext();
+ }
+ }
+
+ // Remove the extra comma's that we did not move
+ while ( curr_chunk != nullptr
+ && curr_chunk->IsNotNullChunk()
+ && chunk_is_not_token(curr_chunk, CT_PAREN_CLOSE))
+ {
+ Chunk *rm_chunk = curr_chunk;
+ curr_chunk = curr_chunk->GetNext();
+ chunk_del(rm_chunk);
+ }
+ }
+ }
+ Chunk *tmp = Chunk::NullChunkPtr;
+
+ if (os != nullptr)
+ {
+ tmp = os->GetNextNcNnl();
+ }
+
+ if (chunk_is_paren_open(tmp))
+ {
+ tmp = chunk_skip_to_match(tmp)->GetNextNcNnl();
+ }
+ fix_variable_definition(tmp);
+} // handle_oc_property_decl
+
+
+static void handle_cs_square_stmt(Chunk *os)
+{
+ LOG_FUNC_ENTRY();
+
+ if (os == nullptr)
+ {
+ os = Chunk::NullChunkPtr;
+ }
+ Chunk *cs = os->GetNext();
+
+ while ( cs->IsNotNullChunk()
+ && cs->level > os->level)
+ {
+ cs = cs->GetNext();
+ }
+
+ if ( cs->IsNullChunk()
+ || chunk_is_not_token(cs, CT_SQUARE_CLOSE))
+ {
+ return;
+ }
+ set_chunk_parent(os, CT_CS_SQ_STMT);
+ set_chunk_parent(cs, CT_CS_SQ_STMT);
+
+ Chunk *tmp;
+
+ for (tmp = os->GetNext(); tmp != cs; tmp = tmp->GetNext())
+ {
+ set_chunk_parent(tmp, CT_CS_SQ_STMT);
+
+ if (chunk_is_token(tmp, CT_COLON))
+ {
+ set_chunk_type(tmp, CT_CS_SQ_COLON);
+ }
+ }
+
+ tmp = cs->GetNextNcNnl();
+
+ if (tmp->IsNotNullChunk())
+ {
+ chunk_flags_set(tmp, PCF_STMT_START | PCF_EXPR_START);
+ }
+} // handle_cs_square_stmt
+
+
+static void handle_cs_property(Chunk *bro)
+{
+ LOG_FUNC_ENTRY();
+
+ set_paren_parent(bro, CT_CS_PROPERTY);
+
+ bool did_prop = false;
+ Chunk *pc = bro;
+
+ while ((pc = pc->GetPrevNcNnlNi())->IsNotNullChunk()) // Issue #2279
+ {
+ if (pc->level == bro->level)
+ {
+ //prevent scanning back past 'new' in expressions like new List<int> {1,2,3}
+ // Issue # 1620, UNI-24090.cs
+ if (chunk_is_token(pc, CT_NEW))
+ {
+ break;
+ }
+
+ if ( !did_prop
+ && ( chunk_is_token(pc, CT_WORD)
+ || chunk_is_token(pc, CT_THIS)))
+ {
+ set_chunk_type(pc, CT_CS_PROPERTY);
+ did_prop = true;
+ }
+ else
+ {
+ set_chunk_parent(pc, CT_CS_PROPERTY);
+ make_type(pc);
+ }
+
+ if (pc->flags.test(PCF_STMT_START))
+ {
+ break;
+ }
+ }
+ }
+}
+
+
+static void handle_cs_array_type(Chunk *pc)
+{
+ if ( pc == nullptr
+ || pc->IsNullChunk())
+ {
+ return;
+ }
+ Chunk *prev = pc->GetPrev();
+
+ for ( ;
+ chunk_is_token(prev, CT_COMMA);
+ prev = prev->GetPrev())
+ {
+ // empty
+ }
+
+ if (chunk_is_token(prev, CT_SQUARE_OPEN))
+ {
+ while (pc != prev)
+ {
+ set_chunk_parent(pc, CT_TYPE);
+ pc = pc->GetPrev();
+ }
+ set_chunk_parent(prev, CT_TYPE);
+ }
+}
+
+
+static void handle_wrap(Chunk *pc)
+{
+ LOG_FUNC_ENTRY();
+ Chunk *opp = Chunk::NullChunkPtr;
+
+ if (pc != nullptr)
+ {
+ opp = pc->GetNext();
+ }
+ Chunk *name = opp->GetNext();
+ Chunk *clp = name->GetNext();
+
+ log_rule_B("sp_func_call_paren");
+ log_rule_B("sp_cpp_cast_paren");
+ iarf_e pav = chunk_is_token(pc, CT_FUNC_WRAP) ?
+ options::sp_func_call_paren() :
+ options::sp_cpp_cast_paren();
+
+ log_rule_B("sp_inside_fparen");
+ log_rule_B("sp_inside_paren_cast");
+ iarf_e av = chunk_is_token(pc, CT_FUNC_WRAP) ?
+ options::sp_inside_fparen() :
+ options::sp_inside_paren_cast();
+
+ if ( chunk_is_token(clp, CT_PAREN_CLOSE)
+ && chunk_is_token(opp, CT_PAREN_OPEN)
+ && ( chunk_is_token(name, CT_WORD)
+ || chunk_is_token(name, CT_TYPE)))
+ {
+ const char *psp = (pav & IARF_ADD) ? " " : "";
+ const char *fsp = (av & IARF_ADD) ? " " : "";
+
+ pc->str.append(psp);
+ pc->str.append("(");
+ pc->str.append(fsp);
+ pc->str.append(name->str);
+ pc->str.append(fsp);
+ pc->str.append(")");
+
+ set_chunk_type(pc, chunk_is_token(pc, CT_FUNC_WRAP) ? CT_FUNCTION : CT_TYPE);
+
+ pc->orig_col_end = pc->orig_col + pc->Len();
+
+ chunk_del(opp);
+ chunk_del(name);
+ chunk_del(clp);
+ }
+} // handle_wrap
+
+
+static void handle_proto_wrap(Chunk *pc)
+{
+ LOG_FUNC_ENTRY();
+ Chunk *opp = pc->GetNextNcNnl();
+ Chunk *name = opp->GetNextNcNnl();
+ Chunk *tmp = name->GetNextNcNnl()->GetNextNcNnl();
+ Chunk *clp = chunk_skip_to_match(opp);
+ Chunk *cma = clp->GetNextNcNnl();
+
+ if ( opp->IsNullChunk()
+ || name->IsNullChunk()
+ || tmp->IsNullChunk()
+ || clp == nullptr
+ || cma->IsNullChunk()
+ || ( chunk_is_not_token(name, CT_WORD)
+ && chunk_is_not_token(name, CT_TYPE))
+ || chunk_is_not_token(opp, CT_PAREN_OPEN))
+ {
+ return;
+ }
+
+ if (chunk_is_token(cma, CT_SEMICOLON))
+ {
+ set_chunk_type(pc, CT_FUNC_PROTO);
+ }
+ else if (chunk_is_token(cma, CT_BRACE_OPEN))
+ {
+ LOG_FMT(LFCN, "%s(%d): (19) SET TO CT_FUNC_DEF: orig_line is %zu, orig_col is %zu, Text() '%s'\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text());
+ set_chunk_type(pc, CT_FUNC_DEF);
+ }
+ else
+ {
+ return;
+ }
+ set_chunk_parent(opp, pc->type);
+ set_chunk_parent(clp, pc->type);
+
+ set_chunk_parent(tmp, CT_PROTO_WRAP);
+
+ if (chunk_is_token(tmp, CT_PAREN_OPEN))
+ {
+ fix_fcn_def_params(tmp);
+ }
+ else
+ {
+ fix_fcn_def_params(opp);
+ set_chunk_type(name, CT_WORD);
+ }
+ tmp = chunk_skip_to_match(tmp);
+
+ if (tmp)
+ {
+ set_chunk_parent(tmp, CT_PROTO_WRAP);
+ }
+ // Mark return type (TODO: move to own function)
+ tmp = pc;
+
+ while ((tmp = tmp->GetPrevNcNnlNi())->IsNotNullChunk()) // Issue #2279
+ {
+ if ( !chunk_is_type(tmp)
+ && chunk_is_not_token(tmp, CT_OPERATOR)
+ && chunk_is_not_token(tmp, CT_WORD)
+ && chunk_is_not_token(tmp, CT_ADDR))
+ {
+ break;
+ }
+ set_chunk_parent(tmp, pc->type);
+ make_type(tmp);
+ }
+} // handle_proto_wrap
+
+
+/**
+ * Java assert statements are: "assert EXP1 [: EXP2] ;"
+ * Mark the parent of the colon and semicolon
+ */
+static void handle_java_assert(Chunk *pc)
+{
+ LOG_FUNC_ENTRY();
+ bool did_colon = false;
+ Chunk *tmp = pc;
+
+ if (tmp == nullptr)
+ {
+ tmp = Chunk::NullChunkPtr;
+ }
+
+ while ((tmp = tmp->GetNext())->IsNotNullChunk())
+ {
+ if (tmp->level == pc->level)
+ {
+ if ( !did_colon
+ && chunk_is_token(tmp, CT_COLON))
+ {
+ did_colon = true;
+ set_chunk_parent(tmp, pc->type);
+ }
+
+ if (chunk_is_token(tmp, CT_SEMICOLON))
+ {
+ set_chunk_parent(tmp, pc->type);
+ break;
+ }
+ }
+ }
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/combine.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/combine.h
new file mode 100644
index 00000000..4d17706d
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/combine.h
@@ -0,0 +1,77 @@
+/**
+ * @file combine.h
+ * prototypes for combine.cpp
+ *
+ * @author Ben Gardner
+ * @license GPL v2+
+ */
+
+#ifndef COMBINE_H_INCLUDED
+#define COMBINE_H_INCLUDED
+
+#include "chunk.h"
+#include "uncrustify_types.h"
+
+
+/**
+ * Change CT_INCDEC_AFTER + WORD to CT_INCDEC_BEFORE
+ * Change number/word + CT_ADDR to CT_ARITH
+ * Change number/word + CT_STAR to CT_ARITH
+ * Change number/word + CT_NEG to CT_ARITH
+ * Change word + ( to a CT_FUNCTION
+ * Change struct/union/enum + CT_WORD => CT_TYPE
+ * Force parens on return.
+ *
+ * TODO: This could be done earlier.
+ *
+ * Patterns detected:
+ * STRUCT/ENUM/UNION + WORD :: WORD => TYPE
+ * WORD + '(' :: WORD => FUNCTION
+ */
+void fix_symbols(void);
+
+
+/**
+ * Examines the whole file and changes CT_COLON to
+ * CT_Q_COLON, CT_LABEL_COLON, or CT_CASE_COLON.
+ * It also changes the CT_WORD before CT_LABEL_COLON into CT_LABEL.
+ */
+void combine_labels(void);
+
+
+//! help function for mark_variable_definition...
+bool go_on(Chunk *pc, Chunk *start);
+
+
+//! Sets the parent for comments.
+void mark_comments(void);
+
+
+void make_type(Chunk *pc);
+
+
+/**
+ * Sets the parent of the open paren/brace/square/angle and the closing.
+ * Note - it is assumed that pc really does point to an open item and the
+ * close must be open + 1.
+ *
+ * @param start The open paren
+ * @param parent The type to assign as the parent
+ *
+ * @return The chunk after the close paren
+ */
+Chunk *set_paren_parent(Chunk *start, E_Token parent);
+
+
+/**
+ * This is called on every chunk.
+ * First on all non-preprocessor chunks and then on each preprocessor chunk.
+ * It does all the detection and classifying.
+ * This is only called by fix_symbols.
+ * The three parameters never get the value nullptr.
+ * it is not necessary to test.
+ */
+void do_symbol_check(Chunk *prev, Chunk *pc, Chunk *next);
+
+
+#endif /* COMBINE_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/combine_fix_mark.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/combine_fix_mark.cpp
new file mode 100644
index 00000000..7c6ce813
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/combine_fix_mark.cpp
@@ -0,0 +1,2617 @@
+/**
+ * @file combine_fix_mark.cpp
+ *
+ * @author Guy Maurel
+ * @license GPL v2+
+ * extract fom combine.cpp
+ */
+
+#include "combine_fix_mark.h"
+
+#include "combine_skip.h"
+#include "combine_tools.h"
+#include "flag_parens.h"
+#include "log_rules.h"
+
+constexpr static auto LCURRENT = LCOMBINE;
+
+
+void fix_casts(Chunk *start)
+{
+ LOG_FUNC_ENTRY();
+ Chunk *pc;
+ Chunk *prev;
+ Chunk *first;
+ Chunk *after;
+ Chunk *last = nullptr;
+ Chunk *paren_close;
+ const char *verb = "likely";
+ const char *detail = "";
+ size_t count = 0;
+ int word_count = 0;
+ bool nope;
+ bool doubtful_cast = false;
+
+
+ LOG_FMT(LCASTS, "%s(%d): start->Text() is '%s', orig_line is %zu, orig_col is %zu\n",
+ __func__, __LINE__, start->Text(), start->orig_line, start->orig_col);
+
+ prev = start->GetPrevNcNnlNi(); // Issue #2279
+
+ if (prev->IsNullChunk())
+ {
+ return;
+ }
+
+ if (chunk_is_token(prev, CT_PP_DEFINED))
+ {
+ LOG_FMT(LCASTS, "%s(%d): -- not a cast - after defined\n",
+ __func__, __LINE__);
+ return;
+ }
+
+ if (chunk_is_token(prev, CT_ANGLE_CLOSE))
+ {
+ LOG_FMT(LCASTS, "%s(%d): -- not a cast - after > (template)\n",
+ __func__, __LINE__);
+ return;
+ }
+ // Make sure there is only WORD, TYPE, and '*' or '^' before the close paren
+ pc = start->GetNextNcNnl();
+ first = pc;
+
+ while ( pc->IsNotNullChunk()
+ && ( chunk_is_type(pc)
+ || chunk_is_token(pc, CT_WORD)
+ || chunk_is_token(pc, CT_QUALIFIER)
+ || chunk_is_token(pc, CT_DC_MEMBER)
+ || chunk_is_token(pc, CT_PP)
+ || chunk_is_token(pc, CT_STAR)
+ || chunk_is_token(pc, CT_QUESTION)
+ || chunk_is_token(pc, CT_CARET)
+ || chunk_is_token(pc, CT_TSQUARE)
+ || ( ( chunk_is_token(pc, CT_ANGLE_OPEN)
+ || chunk_is_token(pc, CT_ANGLE_CLOSE))
+ && language_is_set(LANG_OC | LANG_JAVA | LANG_CS | LANG_VALA | LANG_CPP))
+ || ( ( chunk_is_token(pc, CT_QUESTION)
+ || chunk_is_token(pc, CT_COMMA)
+ || chunk_is_token(pc, CT_MEMBER))
+ && language_is_set(LANG_JAVA | LANG_CS | LANG_VALA))
+ || ( chunk_is_token(pc, CT_COMMA)
+ && language_is_set(LANG_CPP))
+ || chunk_is_token(pc, CT_AMP)))
+ {
+ LOG_FMT(LCASTS, "%s(%d): pc->Text() is '%s', orig_line is %zu, orig_col is %zu, type is %s\n",
+ __func__, __LINE__, pc->Text(), pc->orig_line, pc->orig_col, get_token_name(pc->type));
+
+ if ( chunk_is_token(pc, CT_WORD)
+ || ( chunk_is_token(last, CT_ANGLE_CLOSE)
+ && chunk_is_token(pc, CT_DC_MEMBER)))
+ {
+ word_count++;
+ }
+ else if ( chunk_is_token(pc, CT_DC_MEMBER)
+ || chunk_is_token(pc, CT_MEMBER)
+ || chunk_is_token(pc, CT_PP))
+ {
+ // might be negativ, such as with:
+ // a = val + (CFoo::bar_t)7;
+ word_count--;
+ }
+ last = pc;
+ pc = pc->GetNextNcNnl();
+ count++;
+ }
+
+ if ( pc->IsNullChunk()
+ || chunk_is_not_token(pc, CT_PAREN_CLOSE)
+ || chunk_is_token(prev, CT_OC_CLASS))
+ {
+ LOG_FMT(LCASTS, "%s(%d): -- not a cast, hit type is %s\n",
+ __func__, __LINE__, pc->IsNullChunk() ? "Null chunk" : get_token_name(pc->type));
+ return;
+ }
+
+ if (word_count > 1)
+ {
+ LOG_FMT(LCASTS, "%s(%d): -- too many words: %d\n",
+ __func__, __LINE__, word_count);
+ return;
+ }
+ paren_close = pc;
+
+ // If last is a type or star/caret, we have a cast for sure
+ if ( chunk_is_token(last, CT_STAR)
+ || chunk_is_token(last, CT_CARET)
+ || chunk_is_token(last, CT_PTR_TYPE)
+ || chunk_is_token(last, CT_TYPE)
+ || ( chunk_is_token(last, CT_ANGLE_CLOSE)
+ && language_is_set(LANG_OC | LANG_JAVA | LANG_CS | LANG_VALA | LANG_CPP)))
+ {
+ verb = "for sure";
+ }
+ else if (count == 1)
+ {
+ /*
+ * We are on a potential cast of the form "(word)".
+ * We don't know if the word is a type. So lets guess based on some
+ * simple rules:
+ * - if all caps, likely a type
+ * - if it ends in _t, likely a type
+ * - if it's objective-c and the type is id, likely valid
+ */
+ verb = "guessed";
+
+ if ( (last->Len() > 3)
+ && (last->str[last->Len() - 2] == '_')
+ && (last->str[last->Len() - 1] == 't'))
+ {
+ detail = " -- '_t'";
+ }
+ else if (is_ucase_str(last->Text(), last->Len()))
+ {
+ detail = " -- upper case";
+ }
+ else if ( language_is_set(LANG_OC)
+ && chunk_is_str(last, "id"))
+ {
+ detail = " -- Objective-C id";
+ }
+ else
+ {
+ // If we can't tell for sure whether this is a cast, decide against it
+ detail = " -- mixed case";
+ doubtful_cast = true;
+ }
+ /*
+ * If the next item is a * or &, the next item after that can't be a
+ * number or string.
+ *
+ * If the next item is a +, the next item has to be a number.
+ *
+ * If the next item is a -, the next item can't be a string.
+ *
+ * For this to be a cast, the close paren must be followed by:
+ * - constant (number or string)
+ * - paren open
+ * - word
+ *
+ * Find the next non-open paren item.
+ */
+ pc = paren_close->GetNextNcNnl();
+ after = pc;
+
+ do
+ {
+ after = after->GetNextNcNnl();
+ } while (chunk_is_token(after, CT_PAREN_OPEN));
+
+ if (after->IsNullChunk())
+ {
+ LOG_FMT(LCASTS, "%s(%d): -- not a cast - hit null chunk\n",
+ __func__, __LINE__);
+ return;
+ }
+ nope = false;
+
+ if (chunk_is_ptr_operator(pc))
+ {
+ // star (*) and address (&) are ambiguous
+ if ( chunk_is_token(after, CT_NUMBER_FP)
+ || chunk_is_token(after, CT_NUMBER)
+ || chunk_is_token(after, CT_STRING)
+ || doubtful_cast)
+ {
+ nope = true;
+ }
+ }
+ else if (chunk_is_token(pc, CT_MINUS))
+ {
+ // (UINT8)-1 or (foo)-1 or (FOO)-'a'
+ if ( chunk_is_token(after, CT_STRING)
+ || doubtful_cast)
+ {
+ nope = true;
+ }
+ }
+ else if (chunk_is_token(pc, CT_PLUS))
+ {
+ // (UINT8)+1 or (foo)+1
+ if ( ( chunk_is_not_token(after, CT_NUMBER)
+ && chunk_is_not_token(after, CT_NUMBER_FP))
+ || doubtful_cast)
+ {
+ nope = true;
+ }
+ }
+ else if ( chunk_is_not_token(pc, CT_NUMBER_FP)
+ && chunk_is_not_token(pc, CT_NUMBER)
+ && chunk_is_not_token(pc, CT_WORD)
+ && chunk_is_not_token(pc, CT_THIS)
+ && chunk_is_not_token(pc, CT_TYPE)
+ && chunk_is_not_token(pc, CT_PAREN_OPEN)
+ && chunk_is_not_token(pc, CT_STRING)
+ && chunk_is_not_token(pc, CT_DECLTYPE)
+ && chunk_is_not_token(pc, CT_SIZEOF)
+ && get_chunk_parent_type(pc) != CT_SIZEOF
+ && chunk_is_not_token(pc, CT_FUNC_CALL)
+ && chunk_is_not_token(pc, CT_FUNC_CALL_USER)
+ && chunk_is_not_token(pc, CT_FUNCTION)
+ && chunk_is_not_token(pc, CT_BRACE_OPEN)
+ && (!( chunk_is_token(pc, CT_SQUARE_OPEN)
+ && language_is_set(LANG_OC))))
+ {
+ LOG_FMT(LCASTS, "%s(%d): -- not a cast - followed by Text() '%s', type is %s\n",
+ __func__, __LINE__, pc->Text(), get_token_name(pc->type));
+ return;
+ }
+
+ if (nope)
+ {
+ LOG_FMT(LCASTS, "%s(%d): -- not a cast - Text() '%s' followed by type %s\n",
+ __func__, __LINE__, pc->Text(), get_token_name(after->type));
+ return;
+ }
+ }
+ // if the 'cast' is followed by a semicolon, comma, bool or close parenthesis, it isn't
+ pc = paren_close->GetNextNcNnl();
+
+ if (pc->IsNullChunk())
+ {
+ return;
+ }
+
+ if ( chunk_is_semicolon(pc)
+ || chunk_is_token(pc, CT_COMMA)
+ || chunk_is_token(pc, CT_BOOL) // Issue #2151
+ || chunk_is_paren_close(pc))
+ {
+ LOG_FMT(LCASTS, "%s(%d): -- not a cast - followed by type %s\n",
+ __func__, __LINE__, get_token_name(pc->type));
+ return;
+ }
+ set_chunk_parent(start, CT_C_CAST);
+ set_chunk_parent(paren_close, CT_C_CAST);
+
+ LOG_FMT(LCASTS, "%s(%d): -- %s c-cast: (",
+ __func__, __LINE__, verb);
+
+ for (pc = first;
+ pc->IsNotNullChunk() && pc != paren_close;
+ pc = pc->GetNextNcNnl())
+ {
+ set_chunk_parent(pc, CT_C_CAST);
+ make_type(pc);
+ LOG_FMT(LCASTS, " %s", pc->Text());
+ }
+
+ LOG_FMT(LCASTS, " )%s\n", detail);
+
+ // Mark the next item as an expression start
+ pc = paren_close->GetNextNcNnl();
+
+ if (pc->IsNotNullChunk())
+ {
+ chunk_flags_set(pc, PCF_EXPR_START);
+
+ if (chunk_is_opening_brace(pc))
+ {
+ set_paren_parent(pc, get_chunk_parent_type(start));
+ }
+ }
+} // fix_casts
+
+
+void fix_fcn_def_params(Chunk *start)
+{
+ LOG_FUNC_ENTRY();
+
+ if (start == nullptr)
+ {
+ return;
+ }
+ LOG_FMT(LFCNP, "%s(%d): Text() '%s', type is %s, on orig_line %zu, level is %zu\n",
+ __func__, __LINE__, start->Text(), get_token_name(start->type), start->orig_line, start->level);
+
+ while ( start->IsNotNullChunk()
+ && !chunk_is_paren_open(start))
+ {
+ start = start->GetNextNcNnl();
+ }
+
+ if (start->IsNullChunk()) // Coverity CID 76003, 1100782
+ {
+ return;
+ }
+ // ensure start chunk holds a single '(' character
+ assert( (start->Len() == 1)
+ && (start->str[0] == '('));
+
+ ChunkStack cs;
+ size_t level = start->level + 1;
+ Chunk *pc = start->GetNextNcNnl();
+
+ while (pc->IsNotNullChunk())
+ {
+ if ( ( (start->Len() == 1)
+ && (start->str[0] == ')'))
+ || pc->level < level)
+ {
+ LOG_FMT(LFCNP, "%s(%d): bailed on Text() '%s', on orig_line %zu\n",
+ __func__, __LINE__, pc->Text(), pc->orig_line);
+ break;
+ }
+ LOG_FMT(LFCNP, "%s(%d): %s, Text() '%s' on orig_line %zu, level %zu\n",
+ __func__, __LINE__, (pc->level > level) ? "skipping" : "looking at",
+ pc->Text(), pc->orig_line, pc->level);
+
+ if (pc->level > level)
+ {
+ pc = pc->GetNextNcNnl();
+ continue;
+ }
+
+ if ( pc->IsStar()
+ || chunk_is_msref(pc)
+ || chunk_is_nullable(pc))
+ {
+ set_chunk_type(pc, CT_PTR_TYPE);
+ cs.Push_Back(pc);
+ }
+ else if ( chunk_is_token(pc, CT_AMP)
+ || ( language_is_set(LANG_CPP)
+ && chunk_is_str(pc, "&&")))
+ {
+ set_chunk_type(pc, CT_BYREF);
+ cs.Push_Back(pc);
+ }
+ else if (chunk_is_token(pc, CT_TYPE_WRAP))
+ {
+ cs.Push_Back(pc);
+ }
+ else if ( chunk_is_token(pc, CT_WORD)
+ || chunk_is_token(pc, CT_TYPE))
+ {
+ cs.Push_Back(pc);
+ }
+ else if ( chunk_is_token(pc, CT_COMMA)
+ || chunk_is_token(pc, CT_ASSIGN))
+ {
+ mark_variable_stack(cs, LFCNP);
+
+ if (chunk_is_token(pc, CT_ASSIGN))
+ {
+ // Mark assignment for default param spacing
+ set_chunk_parent(pc, CT_FUNC_PROTO);
+ }
+ }
+ pc = pc->GetNextNcNnl();
+ }
+ mark_variable_stack(cs, LFCNP);
+} // fix_fcn_def_params
+
+
+void fix_type_cast(Chunk *start)
+{
+ LOG_FUNC_ENTRY();
+
+ if (start == nullptr)
+ {
+ return;
+ }
+ Chunk *pc = start->GetNextNcNnl();
+
+ if ( pc->IsNullChunk()
+ || chunk_is_not_token(pc, CT_ANGLE_OPEN))
+ {
+ return;
+ }
+ pc = pc->GetNextNcNnl();
+
+ while ( pc->IsNotNullChunk()
+ && pc->level >= start->level)
+ {
+ if ( pc->level == start->level
+ && chunk_is_token(pc, CT_ANGLE_CLOSE))
+ {
+ pc = pc->GetNextNcNnl();
+
+ if (pc->IsNullChunk())
+ {
+ return;
+ }
+
+ if (chunk_is_str(pc, "("))
+ {
+ set_paren_parent(pc, CT_TYPE_CAST);
+ }
+ return;
+ }
+ make_type(pc);
+ pc = pc->GetNextNcNnl();
+ }
+} // fix_type_cast
+
+
+void fix_typedef(Chunk *start)
+{
+ LOG_FUNC_ENTRY();
+
+ if (start == nullptr)
+ {
+ return;
+ }
+ LOG_FMT(LTYPEDEF, "%s(%d): typedef @ orig_line %zu, orig_col %zu\n",
+ __func__, __LINE__, start->orig_line, start->orig_col);
+
+ Chunk *the_type = Chunk::NullChunkPtr;
+ Chunk *last_op = Chunk::NullChunkPtr;
+
+ /*
+ * Mark everything in the typedef and scan for ")(", which makes it a
+ * function type
+ */
+ for (Chunk *next = start->GetNextNcNnl(E_Scope::PREPROC)
+ ; next->IsNotNullChunk() && next->level >= start->level
+ ; next = next->GetNextNcNnl(E_Scope::PREPROC))
+ {
+ chunk_flags_set(next, PCF_IN_TYPEDEF);
+
+ if (start->level == next->level)
+ {
+ if (chunk_is_semicolon(next))
+ {
+ set_chunk_parent(next, CT_TYPEDEF);
+ break;
+ }
+
+ if (chunk_is_token(next, CT_ATTRIBUTE))
+ {
+ break;
+ }
+
+ if ( language_is_set(LANG_D)
+ && chunk_is_token(next, CT_ASSIGN))
+ {
+ set_chunk_parent(next, CT_TYPEDEF);
+ break;
+ }
+ make_type(next);
+
+ if (chunk_is_token(next, CT_TYPE))
+ {
+ the_type = next;
+ }
+ chunk_flags_clr(next, PCF_VAR_1ST_DEF);
+
+ if (*next->str.c_str() == '(')
+ {
+ last_op = next;
+ }
+ }
+ }
+
+ // avoid interpreting typedef NS_ENUM (NSInteger, MyEnum) as a function def
+ if ( last_op->IsNotNullChunk()
+ && !( language_is_set(LANG_OC)
+ && get_chunk_parent_type(last_op) == CT_ENUM))
+ {
+ flag_parens(last_op, PCF_NONE, CT_FPAREN_OPEN, CT_TYPEDEF, false);
+ fix_fcn_def_params(last_op);
+
+ the_type = last_op->GetPrevNcNnlNi(E_Scope::PREPROC); // Issue #2279
+
+ if (the_type->IsNullChunk())
+ {
+ return;
+ }
+ Chunk *open_paren = nullptr;
+
+ if (chunk_is_paren_close(the_type))
+ {
+ open_paren = chunk_skip_to_match_rev(the_type);
+ mark_function_type(the_type);
+ the_type = the_type->GetPrevNcNnlNi(E_Scope::PREPROC); // Issue #2279
+
+ if (the_type->IsNullChunk())
+ {
+ return;
+ }
+ }
+ else
+ {
+ // must be: "typedef <return type>func(params);"
+ set_chunk_type(the_type, CT_FUNC_TYPE);
+ }
+ set_chunk_parent(the_type, CT_TYPEDEF);
+
+ LOG_FMT(LTYPEDEF, "%s(%d): fcn typedef Text() '%s', on orig_line %zu\n",
+ __func__, __LINE__, the_type->Text(), the_type->orig_line);
+
+ // If we are aligning on the open parenthesis, grab that instead
+ log_rule_B("align_typedef_func");
+
+ if ( open_paren != nullptr
+ && options::align_typedef_func() == 1)
+ {
+ the_type = open_paren;
+ }
+ log_rule_B("align_typedef_func");
+
+ if (options::align_typedef_func() != 0)
+ {
+ LOG_FMT(LTYPEDEF, "%s(%d): -- align anchor on Text() %s, @ orig_line %zu, orig_col %zu\n",
+ __func__, __LINE__, the_type->Text(), the_type->orig_line, the_type->orig_col);
+ chunk_flags_set(the_type, PCF_ANCHOR);
+ }
+ // already did everything we need to do
+ return;
+ }
+ /*
+ * Skip over enum/struct/union stuff, as we know it isn't a return type
+ * for a function type
+ */
+ Chunk *after = start->GetNextNcNnl(E_Scope::PREPROC);
+
+ if (after->IsNullChunk())
+ {
+ return;
+ }
+
+ if ( chunk_is_not_token(after, CT_ENUM)
+ && chunk_is_not_token(after, CT_STRUCT)
+ && chunk_is_not_token(after, CT_UNION))
+ {
+ if ( the_type != nullptr
+ && the_type->IsNotNullChunk())
+ {
+ // We have just a regular typedef
+ LOG_FMT(LTYPEDEF, "%s(%d): regular typedef Text() %s, on orig_line %zu\n",
+ __func__, __LINE__, the_type->Text(), the_type->orig_line);
+ chunk_flags_set(the_type, PCF_ANCHOR);
+ }
+ return;
+ }
+ // We have a struct/union/enum, next should be either a type or {
+ Chunk *next = after->GetNextNcNnl(E_Scope::PREPROC);
+
+ if (next->IsNullChunk())
+ {
+ return;
+ }
+
+ if (chunk_is_token(next, CT_TYPE))
+ {
+ next = next->GetNextNcNnl(E_Scope::PREPROC);
+
+ if (next->IsNullChunk())
+ {
+ return;
+ }
+ }
+
+ if (chunk_is_token(next, CT_BRACE_OPEN))
+ {
+ // Skip to the closing brace
+ Chunk *br_c = next->GetNextType(CT_BRACE_CLOSE, next->level, E_Scope::PREPROC);
+
+ if (br_c->IsNotNullChunk())
+ {
+ const E_Token tag = after->type;
+ set_chunk_parent(next, tag);
+ set_chunk_parent(br_c, tag);
+
+ if (tag == CT_ENUM)
+ {
+ flag_series(after, br_c, PCF_IN_ENUM);
+ }
+ else if (tag == CT_STRUCT)
+ {
+ flag_series(after, br_c, PCF_IN_STRUCT);
+ }
+ }
+ }
+
+ if ( the_type != nullptr
+ && the_type->IsNotNullChunk())
+ {
+ LOG_FMT(LTYPEDEF, "%s(%d): %s typedef Text() %s, on orig_line %zu\n",
+ __func__, __LINE__, get_token_name(after->type), the_type->Text(),
+ the_type->orig_line);
+ chunk_flags_set(the_type, PCF_ANCHOR);
+ }
+} // fix_typedef
+
+
+Chunk *fix_variable_definition(Chunk *start)
+{
+ LOG_FUNC_ENTRY();
+ Chunk *pc = start;
+ Chunk *end;
+ Chunk *tmp_pc;
+ ChunkStack cs;
+ int idx;
+ int ref_idx;
+
+ LOG_FMT(LFVD, "%s(%d): start at pc->orig_line is %zu, pc->orig_col is %zu\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col);
+
+ // Scan for words and types and stars oh my!
+ while ( chunk_is_token(pc, CT_TYPE)
+ || chunk_is_token(pc, CT_WORD)
+ || chunk_is_token(pc, CT_QUALIFIER)
+ || chunk_is_token(pc, CT_TYPENAME)
+ || chunk_is_token(pc, CT_DC_MEMBER)
+ || chunk_is_token(pc, CT_MEMBER)
+ || chunk_is_token(pc, CT_PP) // Issue #3169
+ || chunk_is_ptr_operator(pc))
+ {
+ LOG_FMT(LFVD, "%s(%d): 1:pc->Text() '%s', type is %s\n",
+ __func__, __LINE__, pc->Text(), get_token_name(pc->type));
+ cs.Push_Back(pc);
+ pc = pc->GetNextNcNnl();
+
+ if (pc->IsNullChunk())
+ {
+ LOG_FMT(LFVD, "%s(%d): pc is null chunk\n", __func__, __LINE__);
+ return(Chunk::NullChunkPtr);
+ }
+ LOG_FMT(LFVD, "%s(%d): 2:pc->Text() '%s', type is %s\n",
+ __func__, __LINE__, pc->Text(), get_token_name(pc->type));
+
+ // Skip templates and attributes
+ pc = skip_template_next(pc);
+
+ if (pc->IsNullChunk())
+ {
+ LOG_FMT(LFVD, "%s(%d): pc is null chunk\n", __func__, __LINE__);
+ return(Chunk::NullChunkPtr);
+ }
+ LOG_FMT(LFVD, "%s(%d): 3:pc->Text() '%s', type is %s\n",
+ __func__, __LINE__, pc->Text(), get_token_name(pc->type));
+
+ pc = skip_attribute_next(pc);
+
+ if (pc->IsNullChunk())
+ {
+ LOG_FMT(LFVD, "%s(%d): pc is null chunk\n", __func__, __LINE__);
+ return(Chunk::NullChunkPtr);
+ }
+ LOG_FMT(LFVD, "%s(%d): 4:pc->Text() '%s', type is %s\n",
+ __func__, __LINE__, pc->Text(), get_token_name(pc->type));
+
+ if (language_is_set(LANG_JAVA))
+ {
+ pc = skip_tsquare_next(pc);
+
+ if (pc->IsNotNullChunk())
+ {
+ LOG_FMT(LFVD, "%s(%d): 5:pc->Text() '%s', type is %s\n", __func__, __LINE__, pc->Text(), get_token_name(pc->type));
+ }
+ else
+ {
+ pc = Chunk::NullChunkPtr;
+ }
+ }
+ }
+ end = pc;
+
+ if (end->IsNullChunk())
+ {
+ LOG_FMT(LFVD, "%s(%d): end is null chunk\n", __func__, __LINE__);
+ return(nullptr);
+ }
+ LOG_FMT(LFVD, "%s(%d): end->type is %s\n", __func__, __LINE__, get_token_name(end->type));
+
+ if (chunk_is_token(end, CT_FUNC_CTOR_VAR)) // Issue #3010
+ {
+ return(end);
+ }
+
+ if ( cs.Len() == 1
+ && chunk_is_token(end, CT_BRACE_OPEN)
+ && get_chunk_parent_type(end) == CT_BRACED_INIT_LIST)
+ {
+ set_chunk_type(cs.Get(0)->m_pc, CT_TYPE);
+ }
+
+ // Function defs are handled elsewhere
+ if ( (cs.Len() <= 1)
+ || chunk_is_token(end, CT_FUNC_DEF)
+ || chunk_is_token(end, CT_FUNC_PROTO)
+ || chunk_is_token(end, CT_FUNC_CLASS_DEF)
+ || chunk_is_token(end, CT_FUNC_CLASS_PROTO)
+ || chunk_is_token(end, CT_OPERATOR))
+ {
+ return(skip_to_next_statement(end));
+ }
+ // ref_idx points to the alignable part of the variable definition
+ ref_idx = cs.Len() - 1;
+
+ // Check for the '::' stuff: "char *Engine::name"
+ if ( (cs.Len() >= 3)
+ && ( (cs.Get(cs.Len() - 2)->m_pc->type == CT_MEMBER)
+ || (cs.Get(cs.Len() - 2)->m_pc->type == CT_DC_MEMBER)))
+ {
+ idx = cs.Len() - 2;
+
+ while (idx > 0)
+ {
+ tmp_pc = cs.Get(idx)->m_pc;
+
+ if ( chunk_is_not_token(tmp_pc, CT_DC_MEMBER)
+ && chunk_is_not_token(tmp_pc, CT_MEMBER))
+ {
+ break;
+ }
+ idx--;
+ tmp_pc = cs.Get(idx)->m_pc;
+
+ if ( chunk_is_not_token(tmp_pc, CT_WORD)
+ && chunk_is_not_token(tmp_pc, CT_TYPE))
+ {
+ break;
+ }
+ make_type(tmp_pc);
+ idx--;
+ }
+ ref_idx = idx + 1;
+ }
+ tmp_pc = cs.Get(ref_idx)->m_pc;
+ LOG_FMT(LFVD, "%s(%d): ref_idx(%d) is '%s'\n", __func__, __LINE__, ref_idx, tmp_pc->Text());
+
+ // No type part found!
+ if (ref_idx <= 0)
+ {
+ return(skip_to_next_statement(end));
+ }
+ LOG_FMT(LFVD2, "%s(%d): orig_line is %zu, TYPE : ", __func__, __LINE__, start->orig_line);
+
+ for (size_t idxForCs = 0; idxForCs < cs.Len() - 1; idxForCs++)
+ {
+ tmp_pc = cs.Get(idxForCs)->m_pc;
+ make_type(tmp_pc);
+ chunk_flags_set(tmp_pc, PCF_VAR_TYPE);
+ LOG_FMT(LFVD2, " Text() is '%s', type is %s", tmp_pc->Text(), get_token_name(tmp_pc->type));
+ }
+
+ LOG_FMT(LFVD2, "\n");
+
+ // OK we have two or more items, mark types up to the end.
+ LOG_FMT(LFVD, "%s(%d): pc->orig_line is %zu, pc->orig_col is %zu\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col);
+ mark_variable_definition(cs.Get(cs.Len() - 1)->m_pc);
+
+ if (chunk_is_token(end, CT_COMMA))
+ {
+ return(end->GetNextNcNnl());
+ }
+ return(skip_to_next_statement(end));
+} // fix_variable_definition
+
+
+void mark_cpp_constructor(Chunk *pc)
+{
+ LOG_FUNC_ENTRY();
+ Chunk *paren_open;
+ Chunk *tmp;
+ Chunk *after;
+ Chunk *var;
+ bool is_destr = false;
+
+ tmp = pc->GetPrevNcNnlNi(); // Issue #2279
+
+ if ( chunk_is_token(tmp, CT_INV)
+ || chunk_is_token(tmp, CT_DESTRUCTOR))
+ {
+ set_chunk_type(tmp, CT_DESTRUCTOR);
+ set_chunk_parent(pc, CT_DESTRUCTOR);
+ is_destr = true;
+ }
+ LOG_FMT(LFTOR, "%s(%d): orig_line is %zu, orig_col is %zu, FOUND %sSTRUCTOR for '%s'[%s] prev '%s'[%s]\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col,
+ is_destr ? "DE" : "CON",
+ pc->Text(), get_token_name(pc->type),
+ tmp->Text(), get_token_name(tmp->type));
+
+ paren_open = skip_template_next(pc->GetNextNcNnl());
+
+ if (!chunk_is_str(paren_open, "("))
+ {
+ LOG_FMT(LWARN, "%s:%zu Expected '(', got: [%s]\n",
+ cpd.filename.c_str(), paren_open->orig_line,
+ paren_open->Text());
+ return;
+ }
+ // Mark parameters
+ fix_fcn_def_params(paren_open);
+ after = flag_parens(paren_open, PCF_IN_FCN_CALL, CT_FPAREN_OPEN, CT_FUNC_CLASS_PROTO, false);
+
+ LOG_FMT(LFTOR, "%s(%d): Text() '%s'\n", __func__, __LINE__, after->Text());
+
+ // Scan until the brace open, mark everything
+ tmp = paren_open;
+ bool hit_colon = false;
+
+ while ( tmp->IsNotNullChunk()
+ && ( chunk_is_not_token(tmp, CT_BRACE_OPEN)
+ || tmp->level != paren_open->level)
+ && !chunk_is_semicolon(tmp))
+ {
+ LOG_FMT(LFTOR, "%s(%d): tmp is '%s', orig_line is %zu, orig_col is %zu\n",
+ __func__, __LINE__, tmp->Text(), tmp->orig_line, tmp->orig_col);
+ chunk_flags_set(tmp, PCF_IN_CONST_ARGS);
+ tmp = tmp->GetNextNcNnl();
+
+ if ( chunk_is_str(tmp, ":")
+ && tmp->level == paren_open->level)
+ {
+ set_chunk_type(tmp, CT_CONSTR_COLON);
+ hit_colon = true;
+ }
+
+ if ( hit_colon
+ && ( chunk_is_paren_open(tmp)
+ || chunk_is_opening_brace(tmp))
+ && tmp->level == paren_open->level)
+ {
+ var = skip_template_prev(tmp->GetPrevNcNnlNi()); // Issue #2279
+
+ if ( chunk_is_token(var, CT_TYPE)
+ || chunk_is_token(var, CT_WORD))
+ {
+ set_chunk_type(var, CT_FUNC_CTOR_VAR);
+ flag_parens(tmp, PCF_IN_FCN_CALL, CT_FPAREN_OPEN, CT_FUNC_CTOR_VAR, false);
+ }
+ }
+ }
+
+ if (chunk_is_token(tmp, CT_BRACE_OPEN))
+ {
+ set_paren_parent(paren_open, CT_FUNC_CLASS_DEF);
+ set_paren_parent(tmp, CT_FUNC_CLASS_DEF);
+ LOG_FMT(LFCN, "%s(%d): Marked '%s' as FUNC_CLASS_DEF on orig_line %zu, orig_col %zu\n",
+ __func__, __LINE__, pc->Text(), pc->orig_line, pc->orig_col);
+ }
+ else
+ {
+ set_chunk_parent(tmp, CT_FUNC_CLASS_PROTO);
+ set_chunk_type(pc, CT_FUNC_CLASS_PROTO);
+ LOG_FMT(LFCN, "%s(%d): Marked '%s' as FUNC_CLASS_PROTO on orig_line %zu, orig_col %zu\n",
+ __func__, __LINE__, pc->Text(), pc->orig_line, pc->orig_col);
+ }
+ tmp = pc->GetPrevNcNnlNi(); // Issue #2907
+
+ if (chunk_is_token(tmp, CT_DESTRUCTOR))
+ {
+ set_chunk_parent(tmp, pc->type);
+ tmp = tmp->GetPrevNcNnlNi();
+ }
+
+ while (chunk_is_token(tmp, CT_QUALIFIER))
+ {
+ set_chunk_parent(tmp, pc->type);
+ tmp = tmp->GetPrevNcNnlNi();
+ }
+} // mark_cpp_constructor
+
+
+void mark_cpp_lambda(Chunk *square_open)
+{
+ if ( chunk_is_token(square_open, CT_SQUARE_OPEN)
+ && get_chunk_parent_type(square_open) == CT_CPP_LAMBDA)
+ {
+ auto *brace_close = square_open->GetNextType(CT_BRACE_CLOSE, square_open->level);
+
+ if (get_chunk_parent_type(brace_close) == CT_CPP_LAMBDA)
+ {
+ for (auto *pc = square_open; pc != brace_close; pc = pc->GetNextNcNnl())
+ {
+ chunk_flags_set(pc, PCF_IN_LAMBDA);
+ }
+ }
+ }
+} // mark_cpp_lambda
+
+
+void mark_define_expressions(void)
+{
+ LOG_FUNC_ENTRY();
+
+ bool in_define = false;
+ bool first = true;
+ Chunk *pc = Chunk::GetHead();
+ Chunk *prev = pc;
+
+ while (pc->IsNotNullChunk())
+ {
+ if (!in_define)
+ {
+ if ( chunk_is_token(pc, CT_PP_DEFINE)
+ || chunk_is_token(pc, CT_PP_IF)
+ || chunk_is_token(pc, CT_PP_ELSE))
+ {
+ in_define = true;
+ first = true;
+ }
+ }
+ else
+ {
+ if ( !pc->flags.test(PCF_IN_PREPROC)
+ || chunk_is_token(pc, CT_PREPROC))
+ {
+ in_define = false;
+ }
+ else
+ {
+ if ( chunk_is_not_token(pc, CT_MACRO)
+ && ( first
+ || chunk_is_token(prev, CT_PAREN_OPEN)
+ || chunk_is_token(prev, CT_ARITH)
+ || chunk_is_token(prev, CT_SHIFT)
+ || chunk_is_token(prev, CT_CARET)
+ || chunk_is_token(prev, CT_ASSIGN)
+ || chunk_is_token(prev, CT_COMPARE)
+ || chunk_is_token(prev, CT_RETURN)
+ || chunk_is_token(prev, CT_GOTO)
+ || chunk_is_token(prev, CT_CONTINUE)
+ || chunk_is_token(prev, CT_FPAREN_OPEN)
+ || chunk_is_token(prev, CT_SPAREN_OPEN)
+ || chunk_is_token(prev, CT_BRACE_OPEN)
+ || chunk_is_semicolon(prev)
+ || chunk_is_token(prev, CT_COMMA)
+ || chunk_is_token(prev, CT_COLON)
+ || chunk_is_token(prev, CT_QUESTION)))
+ {
+ chunk_flags_set(pc, PCF_EXPR_START);
+ first = false;
+ }
+ }
+ }
+ prev = pc;
+ pc = pc->GetNext();
+ }
+} // mark_define_expressions
+
+
+void mark_exec_sql(Chunk *pc)
+{
+ LOG_FUNC_ENTRY();
+ Chunk *tmp;
+
+ // Change CT_WORD to CT_SQL_WORD
+ for (tmp = pc->GetNext(); tmp != nullptr && tmp->IsNotNullChunk(); tmp = tmp->GetNext())
+ {
+ set_chunk_parent(tmp, pc->type);
+
+ if (chunk_is_token(tmp, CT_WORD))
+ {
+ set_chunk_type(tmp, CT_SQL_WORD);
+ }
+
+ if (chunk_is_token(tmp, CT_SEMICOLON))
+ {
+ break;
+ }
+ }
+
+ if ( chunk_is_not_token(pc, CT_SQL_BEGIN)
+ || tmp->IsNullChunk()
+ || chunk_is_not_token(tmp, CT_SEMICOLON))
+ {
+ return;
+ }
+
+ for (tmp = tmp->GetNext();
+ tmp->IsNotNullChunk() && chunk_is_not_token(tmp, CT_SQL_END);
+ tmp = tmp->GetNext())
+ {
+ tmp->level++;
+ }
+} // mark_exec_sql
+
+
+void mark_function_return_type(Chunk *fname, Chunk *start, E_Token parent_type)
+{
+ LOG_FUNC_ENTRY();
+ Chunk *pc = start;
+
+ if (pc != nullptr)
+ {
+ // Step backwards from pc and mark the parent of the return type
+ LOG_FMT(LFCNR, "%s(%d): (backwards) return type for '%s' @ orig_line is %zu, orig_col is %zu\n",
+ __func__, __LINE__, fname->Text(), fname->orig_line, fname->orig_col);
+
+ Chunk *first = pc;
+
+ while (pc->IsNotNullChunk())
+ {
+ LOG_FMT(LFCNR, "%s(%d): orig_line is %zu, orig_col is %zu, Text() '%s', type is %s, ",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type));
+ log_pcf_flags(LFCNR, pc->flags);
+
+ if (chunk_is_token(pc, CT_ANGLE_CLOSE))
+ {
+ pc = skip_template_prev(pc);
+
+ if ( pc->IsNullChunk()
+ || chunk_is_token(pc, CT_TEMPLATE))
+ {
+ //either expression is not complete or this is smth like 'template<T> void func()'
+ // - we are not interested in 'template<T>' part
+ break;
+ }
+ else
+ {
+ //this is smth like 'vector<int> func()' and 'pc' is currently on 'vector' - just proceed
+ }
+ }
+
+ if ( ( !chunk_is_type(pc)
+ && chunk_is_not_token(pc, CT_OPERATOR)
+ && chunk_is_not_token(pc, CT_WORD)
+ && chunk_is_not_token(pc, CT_ADDR))
+ || pc->flags.test(PCF_IN_PREPROC))
+ {
+ break;
+ }
+
+ if (!chunk_is_ptr_operator(pc))
+ {
+ first = pc;
+ }
+ pc = pc->GetPrevNcNnlNi(); // Issue #2279
+ }
+ LOG_FMT(LFCNR, "%s(%d): marking returns...", __func__, __LINE__);
+
+ // Changing words to types into tuple return types in CS.
+ bool is_return_tuple = false;
+
+ if ( chunk_is_token(pc, CT_PAREN_CLOSE)
+ && !pc->flags.test(PCF_IN_PREPROC))
+ {
+ first = chunk_skip_to_match_rev(pc);
+ is_return_tuple = true;
+ }
+ pc = first;
+
+ while (pc->IsNotNullChunk())
+ {
+ LOG_FMT(LFCNR, " Text() '%s', type is %s", pc->Text(), get_token_name(pc->type));
+
+ if (parent_type != CT_NONE)
+ {
+ set_chunk_parent(pc, parent_type);
+ }
+ Chunk *prev = pc->GetPrevNcNnlNi(); // Issue #2279
+
+ if ( !is_return_tuple
+ || chunk_is_not_token(pc, CT_WORD)
+ || ( prev->IsNullChunk()
+ && chunk_is_not_token(prev, CT_TYPE)))
+ {
+ make_type(pc);
+ }
+
+ if (pc == start)
+ {
+ break;
+ }
+ pc = pc->GetNextNcNnl();
+
+ //template angles should keep parent type CT_TEMPLATE
+ if (chunk_is_token(pc, CT_ANGLE_OPEN))
+ {
+ pc = pc->GetNextType(CT_ANGLE_CLOSE, pc->level);
+
+ if (pc == start)
+ {
+ break;
+ }
+ pc = pc->GetNextNcNnl();
+ }
+ }
+ LOG_FMT(LFCNR, "\n");
+
+ // Back up and mark parent type on friend declarations
+ if ( parent_type != CT_NONE
+ && first
+ && first->flags.test(PCF_IN_CLASS))
+ {
+ pc = first->GetPrevNcNnlNi(); // Issue #2279
+
+ if (chunk_is_token(pc, CT_FRIEND))
+ {
+ LOG_FMT(LFCNR, "%s(%d): marking friend\n", __func__, __LINE__);
+ set_chunk_parent(pc, parent_type);
+ // A friend might be preceded by a template specification, as in:
+ // template <...> friend type func(...);
+ // If so, we need to mark that also
+ pc = pc->GetPrevNcNnlNi(); // Issue #2279
+
+ if (chunk_is_token(pc, CT_ANGLE_CLOSE))
+ {
+ pc = skip_template_prev(pc);
+
+ if (chunk_is_token(pc, CT_TEMPLATE))
+ {
+ LOG_FMT(LFCNR, "%s(%d): marking friend template\n",
+ __func__, __LINE__);
+ set_chunk_parent(pc, parent_type);
+ }
+ }
+ }
+ }
+ }
+} // mark_function_return_type
+
+
+void mark_function(Chunk *pc)
+{
+ LOG_FUNC_ENTRY();
+
+ if (pc == nullptr)
+ {
+ return;
+ }
+ LOG_FMT(LFCN, "%s(%d): orig_line is %zu, orig_col is %zu, Text() '%s'\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text());
+ Chunk *prev = pc->GetPrevNcNnlNi(); // Issue #2279
+ Chunk *next = pc->GetNextNppOrNcNnl();
+
+ if (next->IsNullChunk())
+ {
+ return;
+ }
+ Chunk *tmp;
+ Chunk *semi = nullptr;
+ Chunk *paren_open;
+ Chunk *paren_close;
+
+ // Find out what is before the operator
+ if (get_chunk_parent_type(pc) == CT_OPERATOR)
+ {
+ LOG_FMT(LFCN, "%s(%d): orig_line is %zu, orig_col is %zu, Text() '%s",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text());
+ log_pcf_flags(LGUY, pc->flags);
+ Chunk *pc_op = pc->GetPrevType(CT_OPERATOR, pc->level);
+
+ if ( pc_op->IsNotNullChunk()
+ && pc_op->flags.test(PCF_EXPR_START))
+ {
+ LOG_FMT(LFCN, "%s(%d): (4) SET TO CT_FUNC_CALL: orig_line is %zu, orig_col is %zu, Text() '%s'\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text());
+ set_chunk_type(pc, CT_FUNC_CALL);
+ }
+
+ if (language_is_set(LANG_CPP))
+ {
+ tmp = pc;
+
+ while ((tmp = tmp->GetPrevNcNnlNi())->IsNotNullChunk()) // Issue #2279
+ {
+ if ( chunk_is_token(tmp, CT_BRACE_CLOSE)
+ || chunk_is_token(tmp, CT_BRACE_OPEN) // Issue 575
+ || chunk_is_token(tmp, CT_SEMICOLON))
+ {
+ break;
+ }
+
+ if ( chunk_is_paren_open(tmp)
+ && !pc->flags.test(PCF_IN_PREPROC)) // Issue #2703
+ {
+ LOG_FMT(LFCN, "%s(%d): orig_line is %zu, orig_col is %zu, Text() '%s'\n",
+ __func__, __LINE__, tmp->orig_line, tmp->orig_col, tmp->Text());
+ LOG_FMT(LFCN, "%s(%d): (5) SET TO CT_FUNC_CALL: orig_line is %zu, orig_col is %zu, Text() '%s'\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text());
+ set_chunk_type(pc, CT_FUNC_CALL);
+ break;
+ }
+
+ if (chunk_is_token(tmp, CT_ASSIGN))
+ {
+ LOG_FMT(LFCN, "%s(%d): (6) SET TO CT_FUNC_CALL: orig_line is %zu, orig_col is %zu, Text() '%s'\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text());
+ set_chunk_type(pc, CT_FUNC_CALL);
+ break;
+ }
+
+ if (chunk_is_token(tmp, CT_TEMPLATE))
+ {
+ LOG_FMT(LFCN, "%s(%d): (7) SET TO CT_FUNC_DEF: orig_line is %zu, orig_col is %zu, Text() '%s'\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text());
+ set_chunk_type(pc, CT_FUNC_DEF);
+ break;
+ }
+
+ if (chunk_is_token(tmp, CT_BRACE_OPEN))
+ {
+ if (get_chunk_parent_type(tmp) == CT_FUNC_DEF)
+ {
+ LOG_FMT(LFCN, "%s(%d): (8) SET TO CT_FUNC_CALL: orig_line is %zu, orig_col is %zu, Text() '%s'\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text());
+ set_chunk_type(pc, CT_FUNC_CALL);
+ }
+
+ if ( get_chunk_parent_type(tmp) == CT_CLASS
+ || get_chunk_parent_type(tmp) == CT_STRUCT)
+ {
+ LOG_FMT(LFCN, "%s(%d): (9) SET TO CT_FUNC_DEF: orig_line is %zu, orig_col is %zu, Text() '%s'\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text());
+ set_chunk_type(pc, CT_FUNC_DEF);
+ }
+ break;
+ }
+ }
+
+ if ( tmp != nullptr
+ && chunk_is_not_token(pc, CT_FUNC_CALL))
+ {
+ // Mark the return type
+ tmp = tmp->GetNextNcNnl();
+
+ while ( tmp != pc
+ && tmp->IsNotNullChunk())
+ {
+ make_type(tmp); // Mark the return type
+ tmp = tmp->GetNextNcNnl();
+ }
+ }
+ }
+ }
+
+ if ( chunk_is_ptr_operator(next)
+ || chunk_is_newline(next))
+ {
+ next = next->GetNextNppOrNcNnl();
+
+ if (next->IsNullChunk())
+ {
+ return;
+ }
+ }
+ LOG_FMT(LFCN, "%s(%d): orig_line is %zu, orig_col is %zu, Text() '%s, type is %s, parent_type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(),
+ get_token_name(pc->type), get_token_name(get_chunk_parent_type(pc)));
+ LOG_FMT(LFCN, " level is %zu, brace_level is %zu, next->Text() '%s', next->type is %s, next->level is %zu\n",
+ pc->level, pc->brace_level,
+ next->Text(), get_token_name(next->type), next->level);
+
+ if (pc->flags.test(PCF_IN_CONST_ARGS))
+ {
+ set_chunk_type(pc, CT_FUNC_CTOR_VAR);
+ LOG_FMT(LFCN, "%s(%d): 1) Marked [%s] as FUNC_CTOR_VAR on line %zu col %zu\n",
+ __func__, __LINE__, pc->Text(), pc->orig_line, pc->orig_col);
+ next = skip_template_next(next);
+
+ if (next == nullptr)
+ {
+ return;
+ }
+ flag_parens(next, PCF_NONE, CT_FPAREN_OPEN, pc->type, true);
+ return;
+ }
+ // Skip over any template and attribute madness
+ next = skip_template_next(next);
+
+ if (next == nullptr)
+ {
+ return;
+ }
+ next = skip_attribute_next(next);
+
+ if (next == nullptr)
+ {
+ return;
+ }
+ // Find the open and close parenthesis
+ paren_open = pc->GetNextString("(", 1, pc->level);
+ paren_close = paren_open->GetNextString(")", 1, pc->level);
+
+ if ( paren_open->IsNullChunk()
+ || paren_close->IsNullChunk())
+ {
+ LOG_FMT(LFCN, "%s(%d): No parens found for [%s] on orig_line %zu, orig_col %zu\n",
+ __func__, __LINE__, pc->Text(), pc->orig_line, pc->orig_col);
+ return;
+ }
+ /*
+ * This part detects either chained function calls or a function ptr definition.
+ * MYTYPE (*func)(void);
+ * mWriter( "class Clst_"c )( somestr.getText() )( " : Cluster {"c ).newline;
+ *
+ * For it to be a function variable def, there must be a '*' followed by a
+ * single word.
+ *
+ * Otherwise, it must be chained function calls.
+ */
+ tmp = paren_close->GetNextNcNnl();
+
+ if ( tmp->IsNotNullChunk()
+ && chunk_is_str(tmp, "("))
+ {
+ Chunk *tmp1;
+ Chunk *tmp2;
+ Chunk *tmp3;
+
+ // skip over any leading class/namespace in: "T(F::*A)();"
+ tmp1 = next->GetNextNcNnl();
+
+ while (tmp1->IsNotNullChunk())
+ {
+ tmp2 = tmp1->GetNextNcNnl();
+
+ if ( !chunk_is_word(tmp1)
+ || chunk_is_not_token(tmp2, CT_DC_MEMBER))
+ {
+ break;
+ }
+ tmp1 = tmp2->GetNextNcNnl();
+ }
+ tmp2 = tmp1->GetNextNcNnl();
+
+ if (chunk_is_str(tmp2, ")"))
+ {
+ tmp3 = tmp2;
+ tmp2 = Chunk::NullChunkPtr;
+ }
+ else
+ {
+ tmp3 = tmp2->GetNextNcNnl();
+ }
+ tmp3 = chunk_get_next_ssq(tmp3);
+
+ if ( chunk_is_str(tmp3, ")")
+ && ( tmp1->IsStar()
+ || chunk_is_msref(tmp1)
+ || ( language_is_set(LANG_OC)
+ && chunk_is_token(tmp1, CT_CARET)))
+ && ( tmp2->IsNullChunk()
+ || chunk_is_token(tmp2, CT_WORD)))
+ {
+ if (tmp2->IsNotNullChunk())
+ {
+ LOG_FMT(LFCN, "%s(%d): orig_line is %zu, orig_col is %zu, function variable '%s', changing '%s' into a type\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, tmp2->Text(), pc->Text());
+ set_chunk_type(tmp2, CT_FUNC_VAR);
+ flag_parens(paren_open, PCF_NONE, CT_PAREN_OPEN, CT_FUNC_VAR, false);
+
+ LOG_FMT(LFCN, "%s(%d): paren open @ orig_line %zu, orig_col %zu\n",
+ __func__, __LINE__, paren_open->orig_line, paren_open->orig_col);
+ }
+ else
+ {
+ LOG_FMT(LFCN, "%s(%d): orig_line is %zu, orig_col is %zu, function type, changing '%s' into a type\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text());
+
+ if (tmp2)
+ {
+ set_chunk_type(tmp2, CT_FUNC_TYPE);
+ }
+ flag_parens(paren_open, PCF_NONE, CT_PAREN_OPEN, CT_FUNC_TYPE, false);
+ }
+ set_chunk_type(pc, CT_TYPE);
+ set_chunk_type(tmp1, CT_PTR_TYPE);
+ chunk_flags_clr(pc, PCF_VAR_1ST_DEF);
+
+ if (tmp2->IsNotNullChunk())
+ {
+ chunk_flags_set(tmp2, PCF_VAR_1ST_DEF);
+ }
+ flag_parens(tmp, PCF_NONE, CT_FPAREN_OPEN, CT_FUNC_PROTO, false);
+ fix_fcn_def_params(tmp);
+ return;
+ }
+ LOG_FMT(LFCN, "%s(%d): chained function calls? Text() is '%s', orig_line is %zu, orig_col is %zu\n",
+ __func__, __LINE__, pc->Text(), pc->orig_line, pc->orig_col);
+ }
+
+ // Assume it is a function call if not already labeled
+ if (chunk_is_token(pc, CT_FUNCTION))
+ {
+ LOG_FMT(LFCN, "%s(%d): examine: Text() is '%s', orig_line is %zu, orig_col is %zu, type is %s\n",
+ __func__, __LINE__, pc->Text(), pc->orig_line, pc->orig_col, get_token_name(pc->type));
+ // look for an assigment. Issue #575
+ Chunk *temp = pc->GetNextType(CT_ASSIGN, pc->level);
+
+ if (temp->IsNotNullChunk())
+ {
+ LOG_FMT(LFCN, "%s(%d): assigment found, orig_line is %zu, orig_col is %zu, Text() '%s'\n",
+ __func__, __LINE__, temp->orig_line, temp->orig_col, temp->Text());
+ LOG_FMT(LFCN, "%s(%d): (10) SET TO CT_FUNC_CALL: orig_line is %zu, orig_col is %zu, Text() '%s'",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text());
+ set_chunk_type(pc, CT_FUNC_CALL);
+ }
+ else
+ {
+ LOG_FMT(LFCN, "%s(%d): (11) SET TO %s: orig_line is %zu, orig_col is %zu, Text() '%s'",
+ __func__, __LINE__, (get_chunk_parent_type(pc) == CT_OPERATOR) ? "CT_FUNC_DEF" : "CT_FUNC_CALL",
+ pc->orig_line, pc->orig_col, pc->Text());
+ set_chunk_type(pc, (get_chunk_parent_type(pc) == CT_OPERATOR) ? CT_FUNC_DEF : CT_FUNC_CALL);
+ }
+ }
+ LOG_FMT(LFCN, "%s(%d): Check for C++ function def, Text() is '%s', orig_line is %zu, orig_col is %zu, type is %s\n",
+ __func__, __LINE__, pc->Text(), pc->orig_line, pc->orig_col, get_token_name(pc->type));
+
+ if (prev != nullptr)
+ {
+ LOG_FMT(LFCN, "%s(%d): prev->Text() is '%s', orig_line is %zu, orig_col is %zu, type is %s\n",
+ __func__, __LINE__, prev->Text(), prev->orig_line, prev->orig_col, get_token_name(prev->type));
+ }
+ else
+ {
+ prev = Chunk::NullChunkPtr;
+ }
+
+ // Check for C++ function def
+ if ( chunk_is_token(pc, CT_FUNC_CLASS_DEF)
+ || ( prev->IsNotNullChunk()
+ && ( chunk_is_token(prev, CT_INV)
+ || chunk_is_token(prev, CT_DC_MEMBER))))
+ {
+ Chunk *destr = Chunk::NullChunkPtr;
+
+ if (chunk_is_token(prev, CT_INV))
+ {
+ // TODO: do we care that this is the destructor?
+ set_chunk_type(prev, CT_DESTRUCTOR);
+ set_chunk_type(pc, CT_FUNC_CLASS_DEF);
+
+ set_chunk_parent(pc, CT_DESTRUCTOR);
+
+ destr = prev;
+ // Point to the item previous to the class name
+ prev = prev->GetPrevNcNnlNpp();
+ }
+
+ if (chunk_is_token(prev, CT_DC_MEMBER))
+ {
+ prev = prev->GetPrevNcNnlNpp();
+
+ if (prev->IsNotNullChunk())
+ {
+ LOG_FMT(LFCN, "%s(%d): prev->Text() is '%s', orig_line is %zu, orig_col is %zu, type is %s\n",
+ __func__, __LINE__, prev->Text(), prev->orig_line, prev->orig_col,
+ get_token_name(prev->type));
+ prev = skip_template_prev(prev);
+ LOG_FMT(LFCN, "%s(%d): prev->Text() is '%s', orig_line is %zu, orig_col is %zu, type is %s\n",
+ __func__, __LINE__, prev->Text(), prev->orig_line, prev->orig_col,
+ get_token_name(prev->type));
+ prev = skip_attribute_prev(prev);
+ LOG_FMT(LFCN, "%s(%d): prev->Text() is '%s', orig_line is %zu, orig_col is %zu, type is %s\n",
+ __func__, __LINE__, prev->Text(), prev->orig_line, prev->orig_col,
+ get_token_name(prev->type));
+ }
+
+ if ( chunk_is_token(prev, CT_WORD)
+ || chunk_is_token(prev, CT_TYPE))
+ {
+ if (pc->str.equals(prev->str))
+ {
+ LOG_FMT(LFCN, "%s(%d): pc->Text() is '%s', orig_line is %zu, orig_col is %zu, type is %s\n",
+ __func__, __LINE__, pc->Text(), pc->orig_line, pc->orig_col,
+ get_token_name(prev->type));
+ set_chunk_type(pc, CT_FUNC_CLASS_DEF);
+ LOG_FMT(LFCN, "%s(%d): orig_line is %zu, orig_col is %zu - FOUND %sSTRUCTOR for '%s', type is %s\n",
+ __func__, __LINE__,
+ prev->orig_line, prev->orig_col,
+ (destr->IsNotNullChunk()) ? "DE" : "CON",
+ prev->Text(), get_token_name(prev->type));
+
+ mark_cpp_constructor(pc);
+ return;
+ }
+ // Point to the item previous to the class name
+ prev = prev->GetPrevNcNnlNpp();
+ }
+ }
+ }
+
+ /*
+ * Determine if this is a function call or a function def/proto
+ * We check for level==1 to allow the case that a function prototype is
+ * wrapped in a macro: "MACRO(void foo(void));"
+ */
+ if ( chunk_is_token(pc, CT_FUNC_CALL)
+ && ( pc->level == pc->brace_level
+ || pc->level == 1)
+ && !pc->flags.test(PCF_IN_ARRAY_ASSIGN))
+ {
+ bool isa_def = false;
+ bool hit_star = false;
+ LOG_FMT(LFCN, "%s(%d): pc->Text() is '%s', orig_line is %zu, orig_col is %zu, type is %s\n",
+ __func__, __LINE__, pc->Text(), pc->orig_line, pc->orig_col,
+ get_token_name(pc->type));
+
+ if (prev->IsNullChunk())
+ {
+ LOG_FMT(LFCN, "%s(%d): Checking func call: prev is null chunk\n",
+ __func__, __LINE__);
+ }
+ else
+ {
+ LOG_FMT(LFCN, "%s(%d): Checking func call: prev->Text() '%s', prev->type is %s\n",
+ __func__, __LINE__, prev->Text(), get_token_name(prev->type));
+ }
+ // if (!chunk_ends_type(prev))
+ // {
+ // goto bad_ret_type;
+ // }
+
+ /*
+ * REVISIT:
+ * a function def can only occur at brace level, but not inside an
+ * assignment, structure, enum, or union.
+ * The close paren must be followed by an open brace, with an optional
+ * qualifier (const) in between.
+ * There can be all sorts of template stuff and/or '[]' in the type.
+ * This hack mostly checks that.
+ *
+ * Examples:
+ * foo->bar(maid); -- fcn call
+ * FOO * bar(); -- fcn proto or class variable
+ * FOO foo(); -- fcn proto or class variable
+ * FOO foo(1); -- class variable
+ * a = FOO * bar(); -- fcn call
+ * a.y = foo() * bar(); -- fcn call
+ * static const char * const fizz(); -- fcn def
+ */
+ while (prev->IsNotNullChunk())
+ {
+ LOG_FMT(LFCN, "%s(%d): next step with: prev->orig_line is %zu, orig_col is %zu, Text() '%s'\n",
+ __func__, __LINE__, prev->orig_line, prev->orig_col, prev->Text());
+
+ if (get_chunk_parent_type(pc) == CT_FIXED)
+ {
+ isa_def = true;
+ }
+
+ if (prev->flags.test(PCF_IN_PREPROC))
+ {
+ prev = prev->GetPrevNcNnlNpp();
+ continue;
+ }
+
+ // Some code slips an attribute between the type and function
+ if ( chunk_is_token(prev, CT_FPAREN_CLOSE)
+ && get_chunk_parent_type(prev) == CT_ATTRIBUTE)
+ {
+ prev = skip_attribute_prev(prev);
+ continue;
+ }
+
+ // skip const(TYPE)
+ if ( chunk_is_token(prev, CT_PAREN_CLOSE)
+ && get_chunk_parent_type(prev) == CT_D_CAST)
+ {
+ LOG_FMT(LFCN, "%s(%d): --> For sure a prototype or definition\n",
+ __func__, __LINE__);
+ isa_def = true;
+ break;
+ }
+
+ if (get_chunk_parent_type(prev) == CT_DECLSPEC) // Issue 1289
+ {
+ prev = chunk_skip_to_match_rev(prev);
+
+ if (prev != nullptr)
+ {
+ prev = prev->GetPrev();
+ }
+
+ if (chunk_is_token(prev, CT_DECLSPEC))
+ {
+ if ( prev != nullptr
+ && prev->IsNotNullChunk())
+ {
+ prev = prev->GetPrev();
+ }
+ }
+ }
+
+ // if it was determined that this could be a function definition
+ // but one of the preceding tokens is a CT_MEMBER than this is not a
+ // fcn def, issue #1466
+ if ( isa_def
+ && chunk_is_token(prev, CT_MEMBER))
+ {
+ isa_def = false;
+ }
+
+ // get first chunk before: A::B::pc | this.B.pc | this->B->pc
+ if ( chunk_is_token(prev, CT_DC_MEMBER)
+ || chunk_is_token(prev, CT_MEMBER))
+ {
+ while ( chunk_is_token(prev, CT_DC_MEMBER)
+ || chunk_is_token(prev, CT_MEMBER))
+ {
+ prev = prev->GetPrevNcNnlNpp();
+
+ if ( prev->IsNullChunk()
+ || ( chunk_is_not_token(prev, CT_WORD)
+ && chunk_is_not_token(prev, CT_TYPE)
+ && chunk_is_not_token(prev, CT_THIS)))
+ {
+ LOG_FMT(LFCN, "%s(%d): --? skipped MEMBER and landed on %s\n",
+ __func__, __LINE__, (prev->IsNullChunk()) ? "<null chunk>" : get_token_name(prev->type));
+ break;
+ }
+ LOG_FMT(LFCN, "%s(%d): <skip> '%s'\n",
+ __func__, __LINE__, prev->Text());
+
+ // Issue #1112
+ // clarification: this will skip the CT_WORD, CT_TYPE or CT_THIS landing on either
+ // another CT_DC_MEMBER or CT_MEMBER or a token that indicates the context of the
+ // token in question; therefore, exit loop when not a CT_DC_MEMBER or CT_MEMBER
+ prev = prev->GetPrevNcNnlNpp();
+
+ if (prev->IsNullChunk())
+ {
+ LOG_FMT(LFCN, "%s(%d): prev is null chunk\n",
+ __func__, __LINE__);
+ }
+ else
+ {
+ LOG_FMT(LFCN, "%s(%d): orig_line is %zu, orig_col is %zu, Text() '%s'\n",
+ __func__, __LINE__, prev->orig_line, prev->orig_col, prev->Text());
+ }
+ }
+
+ if (prev->IsNullChunk())
+ {
+ break;
+ }
+ }
+
+ // If we are on a TYPE or WORD, then this could be a proto or def
+ if ( chunk_is_token(prev, CT_TYPE)
+ || chunk_is_token(prev, CT_WORD))
+ {
+ if (!hit_star)
+ {
+ LOG_FMT(LFCN, "%s(%d): --> For sure a prototype or definition\n",
+ __func__, __LINE__);
+ isa_def = true;
+ break;
+ }
+ Chunk *prev_prev = prev->GetPrevNcNnlNpp();
+
+ if (!chunk_is_token(prev_prev, CT_QUESTION)) // Issue #1753
+ {
+ LOG_FMT(LFCN, "%s(%d): --> maybe a proto/def\n",
+ __func__, __LINE__);
+
+ LOG_FMT(LFCN, "%s(%d): prev is '%s', orig_line is %zu, orig_col is %zu, type is %s, parent_type is %s\n",
+ __func__, __LINE__, prev->Text(), prev->orig_line, prev->orig_col,
+ get_token_name(prev->type), get_token_name(get_chunk_parent_type(prev)));
+ log_pcf_flags(LFCN, pc->flags);
+ isa_def = true;
+ }
+ }
+
+ if (chunk_is_ptr_operator(prev))
+ {
+ hit_star = true;
+ }
+
+ if ( chunk_is_not_token(prev, CT_OPERATOR)
+ && chunk_is_not_token(prev, CT_TSQUARE)
+ && chunk_is_not_token(prev, CT_ANGLE_CLOSE)
+ && chunk_is_not_token(prev, CT_QUALIFIER)
+ && chunk_is_not_token(prev, CT_TYPE)
+ && chunk_is_not_token(prev, CT_WORD)
+ && !chunk_is_ptr_operator(prev))
+ {
+ LOG_FMT(LFCN, "%s(%d): --> Stopping on prev is '%s', orig_line is %zu, orig_col is %zu, type is %s\n",
+ __func__, __LINE__, prev->Text(), prev->orig_line, prev->orig_col, get_token_name(prev->type));
+
+ // certain tokens are unlikely to precede a prototype or definition
+ if ( chunk_is_token(prev, CT_ARITH)
+ || chunk_is_token(prev, CT_SHIFT)
+ || chunk_is_token(prev, CT_ASSIGN)
+ || chunk_is_token(prev, CT_COMMA)
+ || ( chunk_is_token(prev, CT_STRING)
+ && get_chunk_parent_type(prev) != CT_EXTERN) // fixes issue 1259
+ || chunk_is_token(prev, CT_STRING_MULTI)
+ || chunk_is_token(prev, CT_NUMBER)
+ || chunk_is_token(prev, CT_NUMBER_FP)
+ || chunk_is_token(prev, CT_FPAREN_OPEN)) // issue #1464
+ {
+ isa_def = false;
+ }
+ break;
+ }
+
+ // Skip over template and attribute stuff
+ if (chunk_is_token(prev, CT_ANGLE_CLOSE))
+ {
+ prev = skip_template_prev(prev);
+ }
+ else
+ {
+ prev = prev->GetPrevNcNnlNpp();
+ }
+ }
+ //LOG_FMT(LFCN, " -- stopped on %s [%s]\n",
+ // prev->Text(), get_token_name(prev->type));
+
+ // Fixes issue #1634
+ if (chunk_is_paren_close(prev))
+ {
+ Chunk *preproc = prev->GetNextNcNnl();
+
+ if (chunk_is_token(preproc, CT_PREPROC))
+ {
+ size_t pp_level = preproc->pp_level;
+
+ if (chunk_is_token(preproc->GetNextNcNnl(), CT_PP_ELSE))
+ {
+ do
+ {
+ preproc = preproc->GetPrevNcNnlNi(); // Issue #2279
+
+ if (chunk_is_token(preproc, CT_PP_IF))
+ {
+ preproc = preproc->GetPrevNcNnlNi(); // Issue #2279
+
+ if (preproc->pp_level == pp_level)
+ {
+ prev = preproc->GetPrevNcNnlNpp();
+ break;
+ }
+ }
+ } while (preproc->IsNotNullChunk());
+ }
+ }
+ }
+
+ if ( isa_def
+ && prev != nullptr
+ && prev->IsNotNullChunk()
+ && ( ( chunk_is_paren_close(prev)
+ && get_chunk_parent_type(prev) != CT_D_CAST
+ && get_chunk_parent_type(prev) != CT_MACRO_OPEN // Issue #2726
+ && get_chunk_parent_type(prev) != CT_MACRO_CLOSE)
+ || chunk_is_token(prev, CT_ASSIGN)
+ || chunk_is_token(prev, CT_RETURN)))
+ {
+ LOG_FMT(LFCN, "%s(%d): -- overriding DEF due to prev is '%s', type is %s\n",
+ __func__, __LINE__, prev->Text(), get_token_name(prev->type));
+ isa_def = false;
+ }
+
+ // Fixes issue #1266, identification of a tuple return type in CS.
+ if ( !isa_def
+ && chunk_is_token(prev, CT_PAREN_CLOSE)
+ && prev->GetNextNcNnl() == pc)
+ {
+ tmp = chunk_skip_to_match_rev(prev);
+
+ if (tmp == nullptr)
+ {
+ tmp = Chunk::NullChunkPtr;
+ }
+
+ while ( tmp->IsNotNullChunk() // Issue #2315
+ && tmp != prev)
+ {
+ if ( chunk_is_token(tmp, CT_COMMA)
+ && tmp->level == prev->level + 1)
+ {
+ LOG_FMT(LFCN, "%s(%d): -- overriding call due to tuple return type -- prev is '%s', type is %s\n",
+ __func__, __LINE__, prev->Text(), get_token_name(prev->type));
+ isa_def = true;
+ break;
+ }
+ tmp = tmp->GetNextNcNnl();
+ }
+ }
+
+ if (isa_def)
+ {
+ LOG_FMT(LFCN, "%s(%d): pc is '%s', orig_line is %zu, orig_col is %zu, type is %s\n",
+ __func__, __LINE__, pc->Text(), pc->orig_line, pc->orig_col, get_token_name(pc->type));
+ LOG_FMT(LFCN, "%s(%d): (12) SET TO CT_FUNC_DEF: orig_line is %zu, orig_col is %zu, Text() '%s'\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text());
+ set_chunk_type(pc, CT_FUNC_DEF);
+
+ if ( prev == nullptr
+ || prev->IsNullChunk())
+ {
+ prev = Chunk::GetHead();
+ }
+
+ for (tmp = prev; tmp->IsNotNullChunk() && tmp != pc; tmp = tmp->GetNextNcNnlNpp())
+ {
+ LOG_FMT(LFCN, "%s(%d): Text() is '%s', type is %s\n",
+ __func__, __LINE__, tmp->Text(), get_token_name(tmp->type));
+ make_type(tmp);
+ }
+ }
+ }
+
+ if (chunk_is_not_token(pc, CT_FUNC_DEF))
+ {
+ LOG_FMT(LFCN, "%s(%d): Detected type %s, Text() is '%s', on orig_line %zu, orig_col %zu\n",
+ __func__, __LINE__, get_token_name(pc->type),
+ pc->Text(), pc->orig_line, pc->orig_col);
+
+ tmp = flag_parens(next, PCF_IN_FCN_CALL, CT_FPAREN_OPEN, CT_FUNC_CALL, false);
+
+ if ( chunk_is_token(tmp, CT_BRACE_OPEN)
+ && get_chunk_parent_type(tmp) != CT_DOUBLE_BRACE)
+ {
+ set_paren_parent(tmp, pc->type);
+ }
+ return;
+ }
+ /*
+ * We have a function definition or prototype
+ * Look for a semicolon or a brace open after the close parenthesis to figure
+ * out whether this is a prototype or definition
+ */
+
+ // See if this is a prototype or implementation
+
+ // FIXME: this doesn't take the old K&R parameter definitions into account
+
+ // Scan tokens until we hit a brace open (def) or semicolon (proto)
+ tmp = paren_close->GetNextNcNnl();
+
+ while (tmp->IsNotNullChunk())
+ {
+ // Only care about brace or semicolon on the same level
+ if (tmp->level < pc->level)
+ {
+ // No semicolon - guess that it is a prototype
+ chunk_flags_clr(pc, PCF_VAR_1ST_DEF);
+ set_chunk_type(pc, CT_FUNC_PROTO);
+ break;
+ }
+ else if (tmp->level == pc->level)
+ {
+ if (chunk_is_token(tmp, CT_BRACE_OPEN))
+ {
+ // its a function def for sure
+ break;
+ }
+ else if (chunk_is_semicolon(tmp))
+ {
+ // Set the parent for the semicolon for later
+ semi = tmp;
+ chunk_flags_clr(pc, PCF_VAR_1ST_DEF);
+ set_chunk_type(pc, CT_FUNC_PROTO);
+ LOG_FMT(LFCN, "%s(%d): 2) Marked Text() is '%s', as FUNC_PROTO on orig_line %zu, orig_col %zu\n",
+ __func__, __LINE__, pc->Text(), pc->orig_line, pc->orig_col);
+ break;
+ }
+ else if (chunk_is_token(pc, CT_COMMA))
+ {
+ set_chunk_type(pc, CT_FUNC_CTOR_VAR);
+ LOG_FMT(LFCN, "%s(%d): 2) Marked Text() is '%s', as FUNC_CTOR_VAR on orig_line %zu, orig_col %zu\n",
+ __func__, __LINE__, pc->Text(), pc->orig_line, pc->orig_col);
+ break;
+ }
+ }
+ tmp = tmp->GetNextNcNnl();
+ }
+
+ /*
+ * C++ syntax is wacky. We need to check to see if a prototype is really a
+ * variable definition with parameters passed into the constructor.
+ * Unfortunately, without being able to accurately determine if an
+ * identifier is a type (which would require us to more or less be a full
+ * compiler), the only mostly reliable way to do so is to guess that it is
+ * a constructor variable if inside a function body and scan the 'parameter
+ * list' for items that are not allowed in a prototype. We search backwards
+ * and checking the parent of the containing open braces. If the parent is a
+ * class or namespace, then it probably is a prototype.
+ */
+ if ( language_is_set(LANG_CPP)
+ && chunk_is_token(pc, CT_FUNC_PROTO)
+ && get_chunk_parent_type(pc) != CT_OPERATOR)
+ {
+ LOG_FMT(LFPARAM, "%s(%d):", __func__, __LINE__);
+ LOG_FMT(LFPARAM, " checking '%s' for constructor variable %s %s\n",
+ pc->Text(),
+ get_token_name(paren_open->type),
+ get_token_name(paren_close->type));
+
+ /*
+ * Check the token at the start of the statement. If it's 'extern', we
+ * definitely have a function prototype.
+ */
+ tmp = pc;
+
+ while ( tmp->IsNotNullChunk()
+ && !tmp->flags.test(PCF_STMT_START))
+ {
+ tmp = tmp->GetPrevNcNnlNi(); // Issue #2279
+ }
+ const bool is_extern = ( tmp->IsNotNullChunk()
+ && tmp->str.equals("extern"));
+
+ /*
+ * Scan the parameters looking for:
+ * - constant strings
+ * - numbers
+ * - non-type fields
+ * - function calls
+ */
+ Chunk *ref = paren_open->GetNextNcNnl();
+ Chunk *tmp2;
+ bool is_param = true;
+ tmp = ref;
+
+ while (tmp != paren_close)
+ {
+ tmp2 = tmp->GetNextNcNnl();
+
+ if ( chunk_is_token(tmp, CT_COMMA)
+ && (tmp->level == (paren_open->level + 1)))
+ {
+ if (!can_be_full_param(ref, tmp))
+ {
+ is_param = false;
+ break;
+ }
+ ref = tmp2;
+ }
+ tmp = tmp2;
+ }
+
+ if ( !is_extern
+ && is_param
+ && ref != tmp)
+ {
+ if (!can_be_full_param(ref, tmp))
+ {
+ is_param = false;
+ }
+ }
+
+ if ( !is_extern
+ && !is_param)
+ {
+ set_chunk_type(pc, CT_FUNC_CTOR_VAR);
+ LOG_FMT(LFCN, "%s(%d): 3) Marked Text() '%s' as FUNC_CTOR_VAR on orig_line %zu, orig_col %zu\n",
+ __func__, __LINE__, pc->Text(), pc->orig_line, pc->orig_col);
+ }
+ else if (pc->brace_level > 0)
+ {
+ Chunk *br_open = pc->GetPrevType(CT_BRACE_OPEN, pc->brace_level - 1);
+
+ if ( br_open->IsNotNullChunk()
+ && get_chunk_parent_type(br_open) != CT_EXTERN
+ && get_chunk_parent_type(br_open) != CT_NAMESPACE)
+ {
+ // Do a check to see if the level is right
+ prev = pc->GetPrevNcNnlNi(); // Issue #2279
+
+ if ( !chunk_is_str(prev, "*")
+ && !chunk_is_str(prev, "&"))
+ {
+ Chunk *p_op = pc->GetPrevType(CT_BRACE_OPEN, pc->brace_level - 1);
+
+ if ( p_op->IsNotNullChunk()
+ && get_chunk_parent_type(p_op) != CT_CLASS
+ && get_chunk_parent_type(p_op) != CT_STRUCT
+ && get_chunk_parent_type(p_op) != CT_NAMESPACE)
+ {
+ set_chunk_type(pc, CT_FUNC_CTOR_VAR);
+ LOG_FMT(LFCN, "%s(%d): 4) Marked Text() is'%s', as FUNC_CTOR_VAR on orig_line %zu, orig_col %zu\n",
+ __func__, __LINE__, pc->Text(), pc->orig_line, pc->orig_col);
+ }
+ }
+ }
+ }
+ }
+
+ if (semi != nullptr)
+ {
+ set_chunk_parent(semi, pc->type);
+ }
+
+ // Issue # 1403, 2152
+ if (chunk_is_token(paren_open->prev, CT_FUNC_CTOR_VAR))
+ {
+ flag_parens(paren_open, PCF_IN_FCN_CTOR, CT_FPAREN_OPEN, pc->type, false);
+ }
+ else
+ {
+ flag_parens(paren_open, PCF_IN_FCN_DEF, CT_FPAREN_OPEN, pc->type, false);
+ }
+ //flag_parens(paren_open, PCF_IN_FCN_DEF, CT_FPAREN_OPEN, pc->type, true);
+
+ if (chunk_is_token(pc, CT_FUNC_CTOR_VAR))
+ {
+ chunk_flags_set(pc, PCF_VAR_1ST_DEF);
+ return;
+ }
+
+ if (chunk_is_token(next, CT_TSQUARE))
+ {
+ next = next->GetNextNcNnl();
+
+ if (next->IsNullChunk())
+ {
+ return;
+ }
+ }
+ // Mark parameters and return type
+ fix_fcn_def_params(next);
+ mark_function_return_type(pc, pc->GetPrevNcNnlNi(), pc->type); // Issue #2279
+
+ /* mark C# where chunk */
+ if ( language_is_set(LANG_CS)
+ && ( (chunk_is_token(pc, CT_FUNC_DEF))
+ || (chunk_is_token(pc, CT_FUNC_PROTO))))
+ {
+ tmp = paren_close->GetNextNcNnl();
+ pcf_flags_t in_where_spec_flags = PCF_NONE;
+
+ while ( tmp->IsNotNullChunk()
+ && chunk_is_not_token(tmp, CT_BRACE_OPEN)
+ && chunk_is_not_token(tmp, CT_SEMICOLON))
+ {
+ mark_where_chunk(tmp, pc->type, tmp->flags | in_where_spec_flags);
+ in_where_spec_flags = tmp->flags & PCF_IN_WHERE_SPEC;
+
+ tmp = tmp->GetNextNcNnl();
+ }
+ }
+
+ // Find the brace pair and set the parent
+ if (chunk_is_token(pc, CT_FUNC_DEF))
+ {
+ tmp = paren_close->GetNextNcNnl();
+
+ while ( tmp->IsNotNullChunk()
+ && chunk_is_not_token(tmp, CT_BRACE_OPEN))
+ {
+ LOG_FMT(LFCN, "%s(%d): (13) SET TO CT_FUNC_DEF: orig_line is %zu, orig_col is %zu, Text() '%s'\n",
+ __func__, __LINE__, tmp->orig_line, tmp->orig_col, tmp->Text());
+ set_chunk_parent(tmp, CT_FUNC_DEF);
+
+ if (!chunk_is_semicolon(tmp))
+ {
+ chunk_flags_set(tmp, PCF_OLD_FCN_PARAMS);
+ }
+ tmp = tmp->GetNextNcNnl();
+ }
+
+ if (chunk_is_token(tmp, CT_BRACE_OPEN))
+ {
+ LOG_FMT(LFCN, "%s(%d): (14) SET TO CT_FUNC_DEF: orig_line is %zu, orig_col is %zu, Text() '%s'\n",
+ __func__, __LINE__, tmp->orig_line, tmp->orig_col, tmp->Text());
+ set_chunk_parent(tmp, CT_FUNC_DEF);
+ tmp = chunk_skip_to_match(tmp);
+
+ if (tmp != nullptr)
+ {
+ LOG_FMT(LFCN, "%s(%d): (15) SET TO CT_FUNC_DEF: orig_line is %zu, orig_col is %zu, Text() '%s'\n",
+ __func__, __LINE__, tmp->orig_line, tmp->orig_col, tmp->Text());
+ set_chunk_parent(tmp, CT_FUNC_DEF);
+ }
+ }
+ }
+} // mark_function
+
+
+bool mark_function_type(Chunk *pc)
+{
+ LOG_FUNC_ENTRY();
+ LOG_FMT(LFTYPE, "%s(%d): type is %s, Text() '%s' @ orig_line is %zu, orig_col is %zu\n",
+ __func__, __LINE__, get_token_name(pc->type), pc->Text(),
+ pc->orig_line, pc->orig_col);
+
+ size_t star_count = 0;
+ size_t word_count = 0;
+ Chunk *ptrcnk = nullptr;
+ Chunk *tmp;
+ Chunk *apo;
+ Chunk *apc;
+ Chunk *aft;
+ bool anon = false;
+ E_Token pt, ptp;
+
+ // Scan backwards across the name, which can only be a word and single star
+ Chunk *varcnk = pc->GetPrevNcNnlNi(); // Issue #2279
+
+ varcnk = chunk_get_prev_ssq(varcnk);
+
+ if ( varcnk->IsNotNullChunk()
+ && !chunk_is_word(varcnk))
+ {
+ if ( language_is_set(LANG_OC)
+ && chunk_is_str(varcnk, "^")
+ && chunk_is_paren_open(varcnk->GetPrevNcNnlNi())) // Issue #2279
+ {
+ // anonymous ObjC block type -- RTYPE (^)(ARGS)
+ anon = true;
+ }
+ else
+ {
+ LOG_FMT(LFTYPE, "%s(%d): not a word: Text() '%s', type is %s, @ orig_line is %zu:, orig_col is %zu\n",
+ __func__, __LINE__, varcnk->Text(), get_token_name(varcnk->type),
+ varcnk->orig_line, varcnk->orig_col);
+ goto nogo_exit;
+ }
+ }
+ apo = pc->GetNextNcNnl();
+
+ if (apo->IsNullChunk())
+ {
+ return(false);
+ }
+ apc = chunk_skip_to_match(apo);
+
+ if ( apc != nullptr
+ && ( !chunk_is_paren_open(apo)
+ || ((apc = chunk_skip_to_match(apo)) == nullptr)))
+ {
+ LOG_FMT(LFTYPE, "%s(%d): not followed by parens\n", __func__, __LINE__);
+ goto nogo_exit;
+ }
+ aft = apc->GetNextNcNnl();
+
+ if (chunk_is_token(aft, CT_BRACE_OPEN))
+ {
+ pt = CT_FUNC_DEF;
+ }
+ else if ( chunk_is_token(aft, CT_SEMICOLON)
+ || chunk_is_token(aft, CT_ASSIGN))
+ {
+ pt = CT_FUNC_PROTO;
+ }
+ else
+ {
+ LOG_FMT(LFTYPE, "%s(%d): not followed by '{' or ';'\n", __func__, __LINE__);
+ goto nogo_exit;
+ }
+ ptp = pc->flags.test(PCF_IN_TYPEDEF) ? CT_FUNC_TYPE : CT_FUNC_VAR;
+
+ tmp = pc;
+
+ while ((tmp = tmp->GetPrevNcNnlNi())->IsNotNullChunk()) // Issue #2279
+ {
+ tmp = chunk_get_prev_ssq(tmp);
+
+ LOG_FMT(LFTYPE, " -- type is %s, %s on orig_line %zu, orig_col is %zu",
+ get_token_name(tmp->type), tmp->Text(),
+ tmp->orig_line, tmp->orig_col);
+
+ if ( tmp->IsStar()
+ || chunk_is_token(tmp, CT_PTR_TYPE)
+ || chunk_is_token(tmp, CT_CARET))
+ {
+ star_count++;
+ ptrcnk = tmp;
+ LOG_FMT(LFTYPE, " -- PTR_TYPE\n");
+ }
+ else if ( chunk_is_word(tmp)
+ || chunk_is_token(tmp, CT_WORD)
+ || chunk_is_token(tmp, CT_TYPE))
+ {
+ word_count++;
+ LOG_FMT(LFTYPE, " -- TYPE(%s)\n", tmp->Text());
+ }
+ else if (chunk_is_token(tmp, CT_DC_MEMBER))
+ {
+ word_count = 0;
+ LOG_FMT(LFTYPE, " -- :: reset word_count\n");
+ }
+ else if (chunk_is_str(tmp, "("))
+ {
+ LOG_FMT(LFTYPE, " -- open paren (break)\n");
+ break;
+ }
+ else
+ {
+ LOG_FMT(LFTYPE, " -- unexpected token: type is %s, Text() '%s', on orig_line %zu, orig_col %zu\n",
+ get_token_name(tmp->type), tmp->Text(),
+ tmp->orig_line, tmp->orig_col);
+ goto nogo_exit;
+ }
+ }
+
+ // Fixes #issue 1577
+ // Allow word count 2 incase of function pointer declaration.
+ // Ex: bool (__stdcall* funcptr)(int, int);
+ if ( star_count > 1
+ || ( word_count > 1
+ && !( word_count == 2
+ && ptp == CT_FUNC_VAR))
+ || ((star_count + word_count) == 0))
+ {
+ LOG_FMT(LFTYPE, "%s(%d): bad counts word: %zu, star: %zu\n",
+ __func__, __LINE__, word_count, star_count);
+ goto nogo_exit;
+ }
+
+ // make sure what appears before the first open paren can be a return type
+ if (!chunk_ends_type(tmp->GetPrevNcNnlNi())) // Issue #2279
+ {
+ goto nogo_exit;
+ }
+
+ if (ptrcnk)
+ {
+ set_chunk_type(ptrcnk, CT_PTR_TYPE);
+ }
+
+ if (!anon)
+ {
+ if (pc->flags.test(PCF_IN_TYPEDEF))
+ {
+ set_chunk_type(varcnk, CT_FUNC_TYPE); // Issue #3402
+ }
+ else
+ {
+ set_chunk_type(varcnk, CT_FUNC_VAR);
+ chunk_flags_set(varcnk, PCF_VAR_1ST_DEF);
+ }
+ }
+ set_chunk_type(pc, CT_TPAREN_CLOSE);
+ set_chunk_parent(pc, ptp);
+
+ set_chunk_type(apo, CT_FPAREN_OPEN);
+ set_chunk_parent(apo, pt);
+ set_chunk_type(apc, CT_FPAREN_CLOSE);
+ set_chunk_parent(apc, pt);
+ fix_fcn_def_params(apo);
+
+ if (chunk_is_semicolon(aft))
+ {
+ set_chunk_parent(aft, aft->flags.test(PCF_IN_TYPEDEF) ? CT_TYPEDEF : CT_FUNC_VAR);
+ }
+ else if (chunk_is_token(aft, CT_BRACE_OPEN))
+ {
+ flag_parens(aft, PCF_NONE, CT_NONE, pt, false);
+ }
+ // Step backwards to the previous open paren and mark everything a
+ tmp = pc;
+
+ while ((tmp = tmp->GetPrevNcNnlNi())->IsNotNullChunk()) // Issue #2279
+ {
+ LOG_FMT(LFTYPE, " ++ type is %s, Text() '%s', on orig_line %zu, orig_col %zu\n",
+ get_token_name(tmp->type), tmp->Text(),
+ tmp->orig_line, tmp->orig_col);
+
+ if (*tmp->str.c_str() == '(')
+ {
+ if (!pc->flags.test(PCF_IN_TYPEDEF))
+ {
+ chunk_flags_set(tmp, PCF_VAR_1ST_DEF);
+ }
+ set_chunk_type(tmp, CT_TPAREN_OPEN);
+ set_chunk_parent(tmp, ptp);
+
+ tmp = tmp->GetPrevNcNnlNi(); // Issue #2279
+
+ if ( chunk_is_token(tmp, CT_FUNCTION)
+ || chunk_is_token(tmp, CT_FUNC_CALL)
+ || chunk_is_token(tmp, CT_FUNC_CALL_USER)
+ || chunk_is_token(tmp, CT_FUNC_DEF)
+ || chunk_is_token(tmp, CT_FUNC_PROTO))
+ {
+ set_chunk_type(tmp, CT_TYPE);
+ chunk_flags_clr(tmp, PCF_VAR_1ST_DEF);
+ }
+ mark_function_return_type(varcnk, tmp, ptp);
+ break;
+ }
+ }
+ return(true);
+
+nogo_exit:
+ tmp = pc->GetNextNcNnl();
+
+ if (chunk_is_paren_open(tmp))
+ {
+ LOG_FMT(LFTYPE, "%s(%d): setting FUNC_CALL on orig_line is %zu, orig_col is %zu\n",
+ __func__, __LINE__, tmp->orig_line, tmp->orig_col);
+ flag_parens(tmp, PCF_NONE, CT_FPAREN_OPEN, CT_FUNC_CALL, false);
+ }
+ return(false);
+} // mark_function_type
+
+
+void mark_lvalue(Chunk *pc)
+{
+ LOG_FUNC_ENTRY();
+ Chunk *prev;
+
+ if (pc->flags.test(PCF_IN_PREPROC))
+ {
+ return;
+ }
+
+ for (prev = pc->GetPrevNcNnlNi(); // Issue #2279
+ prev->IsNotNullChunk();
+ prev = prev->GetPrevNcNnlNi()) // Issue #2279
+ {
+ if ( prev->level < pc->level
+ || chunk_is_token(prev, CT_ACCESS_COLON)
+ || chunk_is_token(prev, CT_ASSIGN)
+ || chunk_is_token(prev, CT_BOOL)
+ || chunk_is_token(prev, CT_COMMA)
+ || chunk_is_cpp_inheritance_access_specifier(prev)
+ || chunk_is_semicolon(prev)
+ || chunk_is_str(prev, "(")
+ || chunk_is_str(prev, "{")
+ || chunk_is_str(prev, "[")
+ || prev->flags.test(PCF_IN_PREPROC)
+ || get_chunk_parent_type(prev) == CT_NAMESPACE
+ || get_chunk_parent_type(prev) == CT_TEMPLATE)
+ {
+ break;
+ }
+ chunk_flags_set(prev, PCF_LVALUE);
+
+ if ( prev->level == pc->level
+ && chunk_is_str(prev, "&"))
+ {
+ make_type(prev);
+ }
+ }
+} // mark_lvalue
+
+
+void mark_struct_union_body(Chunk *start)
+{
+ LOG_FUNC_ENTRY();
+ Chunk *pc = start;
+
+ while ( pc->IsNotNullChunk()
+ && pc->level >= start->level
+ && !( pc->level == start->level
+ && chunk_is_token(pc, CT_BRACE_CLOSE)))
+ {
+ if ( chunk_is_token(pc, CT_BRACE_OPEN)
+ || chunk_is_token(pc, CT_BRACE_CLOSE)
+ || chunk_is_token(pc, CT_SEMICOLON))
+ {
+ pc = pc->GetNextNcNnl();
+
+ if (pc->IsNullChunk())
+ {
+ break;
+ }
+ }
+
+ if (chunk_is_token(pc, CT_ALIGN))
+ {
+ pc = skip_align(pc); // "align(x)" or "align(x):"
+
+ if (pc->IsNullChunk())
+ {
+ break;
+ }
+ }
+ else if (chunk_is_token(pc, CT_AMP))
+ {
+ pc = skip_expression(pc);
+ }
+ else
+ {
+ pc = fix_variable_definition(pc);
+
+ if (pc->IsNullChunk())
+ {
+ break;
+ }
+ }
+ }
+} // mark_struct_union_body
+
+
+void mark_template_func(Chunk *pc, Chunk *pc_next)
+{
+ LOG_FUNC_ENTRY();
+
+ // We know angle_close must be there...
+ Chunk *angle_close = pc_next->GetNextType(CT_ANGLE_CLOSE, pc->level);
+ Chunk *after = angle_close->GetNextNcNnl();
+
+ if (after->IsNotNullChunk())
+ {
+ if (chunk_is_str(after, "("))
+ {
+ if (angle_close->flags.test(PCF_IN_FCN_CALL))
+ {
+ LOG_FMT(LTEMPFUNC, "%s(%d): marking '%s' in line %zu as a FUNC_CALL\n",
+ __func__, __LINE__, pc->Text(), pc->orig_line);
+ LOG_FMT(LFCN, "%s(%d): (16) SET TO CT_FUNC_CALL: orig_line is %zu, orig_col is %zu, Text() '%s'\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text());
+ set_chunk_type(pc, CT_FUNC_CALL);
+ flag_parens(after, PCF_IN_FCN_CALL, CT_FPAREN_OPEN, CT_FUNC_CALL, false);
+ }
+ else
+ {
+ /*
+ * Might be a function def. Must check what is before the template:
+ * Func call:
+ * BTree.Insert(std::pair<int, double>(*it, double(*it) + 1.0));
+ * a = Test<int>(j);
+ * std::pair<int, double>(*it, double(*it) + 1.0));
+ */
+
+ LOG_FMT(LTEMPFUNC, "%s(%d): marking '%s' in line %zu as a FUNC_CALL 2\n",
+ __func__, __LINE__, pc->Text(), pc->orig_line);
+ // its a function!!!
+ LOG_FMT(LFCN, "%s(%d): (17) SET TO CT_FUNC_CALL: orig_line is %zu, orig_col is %zu, Text() '%s'\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text());
+ set_chunk_type(pc, CT_FUNC_CALL);
+ mark_function(pc);
+ }
+ }
+ else if (chunk_is_token(after, CT_WORD))
+ {
+ // its a type!
+ set_chunk_type(pc, CT_TYPE);
+ chunk_flags_set(pc, PCF_VAR_TYPE);
+ chunk_flags_set(after, PCF_VAR_DEF);
+ }
+ }
+} // mark_template_func
+
+
+Chunk *mark_variable_definition(Chunk *start)
+{
+ LOG_FUNC_ENTRY();
+
+ if (start == nullptr)
+ {
+ return(nullptr);
+ }
+ Chunk *pc = start;
+ pcf_flags_t flags = PCF_VAR_1ST_DEF;
+
+ LOG_FMT(LVARDEF, "%s(%d): orig_line %zu, orig_col %zu, Text() '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(),
+ get_token_name(pc->type));
+
+ // Issue #596
+ bool bit_field_colon_is_present = false;
+
+ while (go_on(pc, start))
+ {
+ if ( chunk_is_token(pc, CT_WORD)
+ || chunk_is_token(pc, CT_FUNC_CTOR_VAR))
+ {
+ auto const orig_flags = pc->flags;
+
+ if (!pc->flags.test(PCF_IN_ENUM))
+ {
+ chunk_flags_set(pc, flags);
+ }
+ flags &= ~PCF_VAR_1ST;
+ LOG_FMT(LVARDEF, "%s(%d): orig_line is %zu, orig_col is %zu, Text() '%s', set PCF_VAR_1ST\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text());
+
+ LOG_FMT(LVARDEF,
+ "%s(%d): orig_line is %zu, marked Text() '%s'[%s]\n"
+ " in orig_col %zu, flags: %s -> %s\n",
+ __func__, __LINE__, pc->orig_line, pc->Text(),
+ get_token_name(pc->type), pc->orig_col,
+ pcf_flags_str(orig_flags).c_str(),
+ pcf_flags_str(pc->flags).c_str());
+ }
+ else if ( !bit_field_colon_is_present // Issue #2689
+ && ( pc->IsStar()
+ || chunk_is_msref(pc)))
+ {
+ set_chunk_type(pc, CT_PTR_TYPE);
+ }
+ else if (chunk_is_addr(pc))
+ {
+ set_chunk_type(pc, CT_BYREF);
+ }
+ else if ( chunk_is_token(pc, CT_SQUARE_OPEN)
+ || chunk_is_token(pc, CT_ASSIGN))
+ {
+ pc = skip_expression(pc);
+ continue;
+ }
+ else if (chunk_is_token(pc, CT_COLON))
+ {
+ bit_field_colon_is_present = true; // Issue #2689
+ }
+ pc = pc->GetNextNcNnl();
+ }
+ return(pc);
+} // mark_variable_definition
+
+
+void mark_variable_stack(ChunkStack &cs, log_sev_t sev)
+{
+ UNUSED(sev);
+ LOG_FUNC_ENTRY();
+
+ // throw out the last word and mark the rest
+ Chunk *var_name = cs.Pop_Back();
+
+ if ( var_name != nullptr
+ && var_name->GetPrev()->IsNotNullChunk()
+ && var_name->GetPrev()->type == CT_DC_MEMBER)
+ {
+ cs.Push_Back(var_name);
+ }
+
+ if (var_name != nullptr)
+ {
+ LOG_FMT(LFCNP, "%s(%d): parameter on orig_line %zu, orig_col %zu:\n",
+ __func__, __LINE__, var_name->orig_line, var_name->orig_col);
+
+ size_t word_cnt = 0;
+ Chunk *word_type;
+
+ while ((word_type = cs.Pop_Back()) != nullptr)
+ {
+ if ( chunk_is_token(word_type, CT_WORD)
+ || chunk_is_token(word_type, CT_TYPE))
+ {
+ LOG_FMT(LFCNP, "%s(%d): parameter on orig_line %zu, orig_col %zu: <%s> as TYPE\n",
+ __func__, __LINE__, var_name->orig_line, var_name->orig_col, word_type->Text());
+ set_chunk_type(word_type, CT_TYPE);
+ chunk_flags_set(word_type, PCF_VAR_TYPE);
+ }
+ word_cnt++;
+ }
+
+ if (chunk_is_token(var_name, CT_WORD))
+ {
+ if (word_cnt > 0)
+ {
+ LOG_FMT(LFCNP, "%s(%d): parameter on orig_line %zu, orig_col %zu: <%s> as VAR\n",
+ __func__, __LINE__, var_name->orig_line, var_name->orig_col, var_name->Text());
+ chunk_flags_set(var_name, PCF_VAR_DEF);
+ }
+ else
+ {
+ LOG_FMT(LFCNP, "%s(%d): parameter on orig_line %zu, orig_col %zu: <%s> as TYPE\n",
+ __func__, __LINE__, var_name->orig_line, var_name->orig_col, var_name->Text());
+ set_chunk_type(var_name, CT_TYPE);
+ chunk_flags_set(var_name, PCF_VAR_TYPE);
+ }
+ }
+ }
+} // mark_variable_stack
+
+
+pcf_flags_t mark_where_chunk(Chunk *pc, E_Token parent_type, pcf_flags_t flags)
+{
+ /* TODO: should have options to control spacing around the ':' as well as newline ability for the
+ * constraint clauses (should it break up a 'where A : B where C : D' on the same line? wrap? etc.) */
+
+ if (chunk_is_token(pc, CT_WHERE))
+ {
+ set_chunk_type(pc, CT_WHERE_SPEC);
+ set_chunk_parent(pc, parent_type);
+ flags |= PCF_IN_WHERE_SPEC;
+ LOG_FMT(LFTOR, "%s: where-spec on line %zu\n",
+ __func__, pc->orig_line);
+ }
+ else if (flags.test(PCF_IN_WHERE_SPEC))
+ {
+ if (chunk_is_str(pc, ":"))
+ {
+ set_chunk_type(pc, CT_WHERE_COLON);
+ LOG_FMT(LFTOR, "%s: where-spec colon on line %zu\n",
+ __func__, pc->orig_line);
+ }
+ else if ( (chunk_is_token(pc, CT_STRUCT))
+ || (chunk_is_token(pc, CT_CLASS)))
+ {
+ /* class/struct inside of a where-clause confuses parser for indentation; set it as a word so it looks like the rest */
+ set_chunk_type(pc, CT_WORD);
+ }
+ }
+
+ if (flags.test(PCF_IN_WHERE_SPEC))
+ {
+ chunk_flags_set(pc, PCF_IN_WHERE_SPEC);
+ }
+ return(flags);
+} // mark_where_chunk
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/combine_fix_mark.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/combine_fix_mark.h
new file mode 100644
index 00000000..4671fbb3
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/combine_fix_mark.h
@@ -0,0 +1,196 @@
+/**
+ * @file combine_fix_mark.h
+ *
+ * @author Guy Maurel
+ * @license GPL v2+
+ * extract from combine.cpp
+ */
+
+#ifndef COMBINE_FIX_MARK_H_INCLUDED
+#define COMBINE_FIX_MARK_H_INCLUDED
+
+#include "ChunkStack.h"
+
+
+/**
+ * Checks to see if the current paren is part of a cast.
+ * We already verified that this doesn't follow function, TYPE, IF, FOR,
+ * SWITCH, or WHILE and is followed by WORD, TYPE, STRUCT, ENUM, or UNION.
+ *
+ * @param start Pointer to the open paren
+ */
+void fix_casts(Chunk *start);
+
+
+/**
+ * Simply change any STAR to PTR_TYPE and WORD to TYPE
+ *
+ * @param start points to the open paren
+ */
+void fix_fcn_def_params(Chunk *start);
+
+
+/**
+ * CT_TYPE_CAST follows this pattern:
+ * dynamic_cast<...>(...)
+ *
+ * Mark everything between the <> as a type and set the paren parent
+ */
+void fix_type_cast(Chunk *start);
+
+
+/**
+ * We are on a typedef.
+ * If the next word is not enum/union/struct, then the last word before the
+ * next ',' or ';' or '__attribute__' is a type.
+ *
+ * typedef [type...] [*] type [, [*]type] ;
+ * typedef <return type>([*]func)();
+ * typedef <return type>([*]func)(params);
+ * typedef <return type>(__stdcall *func)(); Bug # 633 MS-specific extension
+ * include the config-file "test/config/MS-calling_conventions.cfg"
+ * typedef <return type>func(params);
+ * typedef <enum/struct/union> [type] [*] type [, [*]type] ;
+ * typedef <enum/struct/union> [type] { ... } [*] type [, [*]type] ;
+ */
+void fix_typedef(Chunk *start);
+
+
+/**
+ * We are on the start of a sequence that could be a variable definition
+ * - FPAREN_OPEN (parent == CT_FOR)
+ * - BRACE_OPEN
+ * - SEMICOLON
+ */
+Chunk *fix_variable_definition(Chunk *start);
+
+
+void mark_cpp_constructor(Chunk *pc);
+
+
+/**
+ * Mark all chunks belonging to a C++ lambda expression
+ *
+ * @param square_open points to a chunk of type CT_SQUARE_OPEN, and the parent type is
+ * assumed to have already been assigned the value CT_CPP_LAMBDA;
+ * under this assumption, the function marks all chunks as PCF_IN_LAMBDA
+ * until the corresponding closing CT_BRACE_CLOSE (with parent type
+ * CT_CPP_LAMBDA) is encountered
+ */
+void mark_cpp_lambda(Chunk *square_open);
+
+
+/**
+ * Marks statement starts in a macro body.
+ * REVISIT: this may already be done
+ */
+void mark_define_expressions(void);
+
+
+/**
+ * Just mark every CT_WORD until a semicolon as CT_SQL_WORD.
+ * Adjust the levels if pc is CT_SQL_BEGIN
+ */
+void mark_exec_sql(Chunk *pc);
+
+
+/**
+ * Changes the return type to type and set the parent.
+ *
+ * @param pc the last chunk of the return type
+ * @param parent_type CT_NONE (no change) or the new parent type
+ */
+void mark_function_return_type(Chunk *fname, Chunk *start, E_Token parent_type);
+
+
+/**
+ * We are on a function word. we need to:
+ * - find out if this is a call or prototype or implementation
+ * - mark return type
+ * - mark parameter types
+ * - mark brace pair
+ *
+ * REVISIT:
+ * This whole function is a mess.
+ * It needs to be reworked to eliminate duplicate logic and determine the
+ * function type more directly.
+ * 1. Skip to the close paren and see what is after.
+ * a. semicolon - function call or function proto
+ * b. open brace - function call (ie, list_for_each) or function def
+ * c. open paren - function type or chained function call
+ * d. qualifier - function def or proto, continue to semicolon or open brace
+ * 2. Examine the 'parameters' to see if it can be a proto/def
+ * 3. Examine what is before the function name to see if it is a proto or call
+ * Constructor/destructor detection should have already been done when the
+ * 'class' token was encountered (see mark_class_ctor).
+ */
+void mark_function(Chunk *pc);
+
+
+/**
+ * Process a function type that is not in a typedef.
+ * pc points to the first close paren.
+ *
+ * void (*func)(params);
+ * const char * (*func)(params);
+ * const char * (^func)(params); -- Objective C
+ *
+ * @param pc Points to the first closing paren
+ *
+ * @return whether a function type was processed
+ */
+bool mark_function_type(Chunk *pc);
+
+
+/**
+ * Just hit an assign. Go backwards until we hit an open brace/paren/square or
+ * semicolon (TODO: other limiter?) and mark as a LValue.
+ */
+void mark_lvalue(Chunk *pc);
+
+
+/**
+ * Examines the stuff between braces { }.
+ * There should only be variable definitions and methods.
+ * Skip the methods, as they will get handled elsewhere.
+ */
+void mark_struct_union_body(Chunk *start);
+
+
+/**
+ * We are on a word followed by a angle open which is part of a template.
+ * If the angle close is followed by a open paren, then we are on a template
+ * function def or a template function call:
+ * Vector2<float>(...) [: ...[, ...]] { ... }
+ * Or we could be on a variable def if it's followed by a word:
+ * Renderer<rgb32> rend;
+ */
+void mark_template_func(Chunk *pc, Chunk *pc_next);
+
+
+/**
+ * We are on the first word of a variable definition.
+ * Mark all the variable names with PCF_VAR_1ST and PCF_VAR_DEF as appropriate.
+ * Also mark any '*' encountered as a CT_PTR_TYPE.
+ * Skip over []. Go until a ';' is hit.
+ *
+ * Example input:
+ * int a = 3, b, c = 2; ## called with 'a'
+ * foo_t f = {1, 2, 3}, g = {5, 6, 7}; ## called with 'f'
+ * struct {...} *a, *b; ## called with 'a' or '*'
+ * myclass a(4);
+ */
+Chunk *mark_variable_definition(Chunk *start);
+
+
+void mark_variable_stack(ChunkStack &cs, log_sev_t sev);
+
+
+/**
+ * TODO: add doc cmt
+ *
+ */
+pcf_flags_t mark_where_chunk(Chunk *pc, E_Token parent_type, pcf_flags_t flags);
+
+
+#endif /* COMBINE_FIX_MARK_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/combine_labels.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/combine_labels.cpp
new file mode 100644
index 00000000..72e91b1a
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/combine_labels.cpp
@@ -0,0 +1,443 @@
+/**
+ * @file combine_labels.cpp
+ *
+ * @author Guy Maurel
+ * @license GPL v2+
+ * extract from combine.h
+ */
+
+#include "combine_labels.h"
+
+#include "chunk.h"
+#include "cs_top_is_question.h"
+#include "uncrustify.h"
+
+
+Chunk *chunk_get_next_local(Chunk *pc, E_Scope scope = E_Scope::ALL)
+{
+ Chunk *tmp = pc;
+
+ if (tmp == nullptr)
+ {
+ tmp = Chunk::NullChunkPtr;
+ }
+
+ do
+ {
+ tmp = tmp->GetNext(scope);
+ } while ( tmp->IsNotNullChunk()
+ && ( tmp->IsComment()
+ || chunk_is_token(tmp, CT_NOEXCEPT)));
+
+ return(tmp);
+}
+
+
+Chunk *chunk_get_prev_local(Chunk *pc, E_Scope scope = E_Scope::ALL)
+{
+ Chunk *tmp = pc;
+
+ if (tmp == nullptr)
+ {
+ tmp = Chunk::NullChunkPtr;
+ }
+
+ do
+ {
+ tmp = tmp->GetPrev(scope);
+ } while ( tmp->IsNotNullChunk()
+ && ( tmp->IsComment()
+ || chunk_is_newline(tmp)
+ || chunk_is_token(tmp, CT_NOEXCEPT)));
+
+ return(tmp);
+}
+
+
+void combine_labels(void)
+{
+ LOG_FUNC_ENTRY();
+ bool hit_case = false;
+ bool hit_class = false;
+
+ cpd.unc_stage = unc_stage_e::COMBINE_LABELS;
+
+ // stack to handle nesting inside of OC messages, which reset the scope
+ ChunkStack cs;
+
+ Chunk *prev = Chunk::GetHead();
+
+ if (prev->IsNullChunk())
+ {
+ return;
+ }
+ Chunk *cur = prev->GetNextNc();
+
+ if (cur->IsNullChunk())
+ {
+ return;
+ }
+ Chunk *next = cur->GetNextNc();
+
+ // unlikely that the file will start with a label...
+ // prev cur next
+ while ( next != nullptr
+ && next->IsNotNullChunk())
+ {
+ if (chunk_is_token(next, CT_NEWLINE))
+ {
+ LOG_FMT(LFCN, "%s(%d): next->orig_line is %zu, next->orig_col is %zu, <Newline>, nl is %zu\n",
+ __func__, __LINE__, next->orig_line, next->orig_col, next->nl_count);
+ }
+ else if (chunk_is_token(next, CT_VBRACE_OPEN))
+ {
+ LOG_FMT(LFCN, "%s(%d): next->orig_line is %zu, next->orig_col is %zu, VBRACE_OPEN\n",
+ __func__, __LINE__, next->orig_line, next->orig_col);
+ }
+ else if (chunk_is_token(next, CT_VBRACE_CLOSE))
+ {
+ LOG_FMT(LFCN, "%s(%d): next->orig_line is %zu, next->orig_col is %zu, VBRACE_CLOSE\n",
+ __func__, __LINE__, next->orig_line, next->orig_col);
+ }
+ else
+ {
+ LOG_FMT(LFCN, "%s(%d): next->orig_line is %zu, next->orig_col is %zu, Text() '%s'\n",
+ __func__, __LINE__, next->orig_line, next->orig_col, next->Text());
+ }
+
+ if ( !next->flags.test(PCF_IN_OC_MSG) // filter OC case of [self class] msg send
+ && ( chunk_is_token(next, CT_CLASS)
+ || chunk_is_token(next, CT_OC_CLASS)
+ || chunk_is_token(next, CT_TEMPLATE)))
+ {
+ hit_class = true;
+ }
+
+ if ( chunk_is_semicolon(next)
+ || chunk_is_token(next, CT_BRACE_OPEN))
+ {
+ hit_class = false;
+ }
+
+ if ( chunk_is_token(prev, CT_SQUARE_OPEN)
+ && get_chunk_parent_type(prev) == CT_OC_MSG)
+ {
+ cs.Push_Back(prev);
+ }
+ else if ( chunk_is_token(next, CT_SQUARE_CLOSE)
+ && get_chunk_parent_type(next) == CT_OC_MSG)
+ {
+ // pop until we hit '['
+ while (!cs.Empty())
+ {
+ Chunk *t2 = cs.Top()->m_pc;
+ cs.Pop_Back();
+
+ if (chunk_is_token(t2, CT_SQUARE_OPEN))
+ {
+ break;
+ }
+ }
+ }
+
+ if ( chunk_is_token(next, CT_QUESTION)
+ && !next->flags.test(PCF_IN_TEMPLATE))
+ {
+ cs.Push_Back(next);
+ }
+ else if (chunk_is_token(next, CT_CASE))
+ {
+ if (chunk_is_token(cur, CT_GOTO))
+ {
+ // handle "goto case x;"
+ set_chunk_type(next, CT_QUALIFIER);
+ }
+ else
+ {
+ hit_case = true;
+ }
+ }
+ else if ( chunk_is_token(next, CT_COLON)
+ || ( chunk_is_token(next, CT_OC_COLON)
+ && cs_top_is_question(cs, next->level)))
+ {
+ if (chunk_is_token(cur, CT_DEFAULT))
+ {
+ set_chunk_type(cur, CT_CASE);
+ hit_case = true;
+ }
+
+ if (cs_top_is_question(cs, next->level))
+ {
+ set_chunk_type(next, CT_COND_COLON);
+ cs.Pop_Back();
+ }
+ else if (hit_case)
+ {
+ hit_case = false;
+ set_chunk_type(next, CT_CASE_COLON);
+ Chunk *tmp = next->GetNextNcNnlNpp(); // Issue #2150
+
+ if (chunk_is_token(tmp, CT_BRACE_OPEN))
+ {
+ set_chunk_parent(tmp, CT_CASE);
+ tmp = tmp->GetNextType(CT_BRACE_CLOSE, tmp->level);
+
+ if (tmp->IsNotNullChunk())
+ {
+ set_chunk_parent(tmp, CT_CASE);
+ }
+ }
+
+ if ( chunk_is_token(cur, CT_NUMBER)
+ && chunk_is_token(prev, CT_ELLIPSIS))
+ {
+ Chunk *pre_elipsis = prev->GetPrevNcNnlNpp();
+
+ if (chunk_is_token(pre_elipsis, CT_NUMBER))
+ {
+ set_chunk_type(prev, CT_CASE_ELLIPSIS);
+ }
+ }
+ }
+ else if (cur->flags.test(PCF_IN_WHERE_SPEC))
+ {
+ /* leave colons in where-constraint clauses alone */
+ }
+ else
+ {
+ LOG_FMT(LFCN, "%s(%d): prev->Text() is '%s', orig_line is %zu, orig_col is %zu\n",
+ __func__, __LINE__, prev->Text(), prev->orig_line, prev->orig_col);
+ LOG_FMT(LFCN, "%s(%d): cur->Text() is '%s', orig_line is %zu, orig_col is %zu\n",
+ __func__, __LINE__, cur->Text(), cur->orig_line, cur->orig_col);
+ LOG_FMT(LFCN, "%s(%d): next->Text() is '%s', orig_line is %zu, orig_col is %zu\n",
+ __func__, __LINE__, next->Text(), next->orig_line, next->orig_col);
+ Chunk *nextprev = chunk_get_prev_local(next); // Issue #2279
+
+ if (nextprev == nullptr)
+ {
+ return;
+ }
+
+ if (language_is_set(LANG_PAWN))
+ {
+ if ( chunk_is_token(cur, CT_WORD)
+ || chunk_is_token(cur, CT_BRACE_CLOSE))
+ {
+ E_Token new_type = CT_TAG;
+
+ Chunk *tmp = next->GetNextNc();
+
+ if (tmp->IsNullChunk())
+ {
+ return;
+ }
+
+ if ( chunk_is_newline(prev)
+ && chunk_is_newline(tmp))
+ {
+ new_type = CT_LABEL;
+ set_chunk_type(next, CT_LABEL_COLON);
+ }
+ else
+ {
+ set_chunk_type(next, CT_TAG_COLON);
+ }
+
+ if (chunk_is_token(cur, CT_WORD))
+ {
+ set_chunk_type(cur, new_type);
+ }
+ }
+ }
+ else if (next->flags.test(PCF_IN_ARRAY_ASSIGN))
+ {
+ set_chunk_type(next, CT_D_ARRAY_COLON);
+ }
+ else if (next->flags.test(PCF_IN_FOR))
+ {
+ set_chunk_type(next, CT_FOR_COLON);
+ }
+ else if (next->flags.test(PCF_OC_BOXED))
+ {
+ set_chunk_type(next, CT_OC_DICT_COLON);
+ }
+ else if (chunk_is_token(cur, CT_WORD))
+ {
+ Chunk *tmp = next->GetNextNc(E_Scope::PREPROC);
+
+ // Issue #1187
+ if (tmp->IsNullChunk())
+ {
+ return;
+ }
+ LOG_FMT(LFCN, "%s(%d): orig_line is %zu, orig_col is %zu, tmp '%s': ",
+ __func__, __LINE__, tmp->orig_line, tmp->orig_col,
+ (chunk_is_token(tmp, CT_NEWLINE)) ? "<Newline>" : tmp->Text());
+ log_pcf_flags(LGUY, tmp->flags);
+
+ if (next->flags.test(PCF_IN_FCN_CALL))
+ {
+ // Must be a macro thingy, assume some sort of label
+ set_chunk_type(next, CT_LABEL_COLON);
+ }
+ else if ( tmp->IsNullChunk()
+ || ( chunk_is_not_token(tmp, CT_NUMBER)
+ && chunk_is_not_token(tmp, CT_DECLTYPE)
+ && chunk_is_not_token(tmp, CT_SIZEOF)
+ && get_chunk_parent_type(tmp) != CT_SIZEOF
+ && !tmp->flags.test_any(PCF_IN_STRUCT | PCF_IN_CLASS))
+ || chunk_is_token(tmp, CT_NEWLINE))
+ {
+ /*
+ * the CT_SIZEOF isn't great - test 31720 happens to use a sizeof expr,
+ * but this really should be able to handle any constant expr
+ */
+ // Fix for #1242
+ // For MIDL_INTERFACE classes class name is tokenized as Label.
+ // Corrected the identification of Label in c style languages.
+ if ( language_is_set(LANG_C | LANG_CPP | LANG_CS)
+ && (!language_is_set(LANG_OC)))
+ {
+ Chunk *labelPrev = prev;
+
+ if (chunk_is_token(labelPrev, CT_NEWLINE))
+ {
+ labelPrev = prev->GetPrevNcNnlNi(); // Issue #2279
+ }
+
+ if ( labelPrev->IsNotNullChunk()
+ && chunk_is_not_token(labelPrev, CT_FPAREN_CLOSE))
+ {
+ set_chunk_type(cur, CT_LABEL);
+ set_chunk_type(next, CT_LABEL_COLON);
+ }
+ }
+ else
+ {
+ set_chunk_type(cur, CT_LABEL);
+ set_chunk_type(next, CT_LABEL_COLON);
+ }
+ }
+ else if (next->flags.test_any(PCF_IN_STRUCT | PCF_IN_CLASS | PCF_IN_TYPEDEF))
+ {
+ set_chunk_type(next, CT_BIT_COLON);
+
+ Chunk *nnext = next->GetNext();
+
+ if (nnext->IsNullChunk())
+ {
+ return;
+ }
+
+ while ((nnext = nnext->GetNext())->IsNotNullChunk())
+ {
+ if (chunk_is_token(nnext, CT_SEMICOLON))
+ {
+ break;
+ }
+
+ if (chunk_is_token(nnext, CT_COLON))
+ {
+ set_chunk_type(nnext, CT_BIT_COLON);
+ }
+ }
+ }
+ }
+ else if (chunk_is_token(nextprev, CT_FPAREN_CLOSE))
+ {
+ LOG_FMT(LFCN, "%s(%d): nextprev->Text() is '%s', orig_line is %zu, orig_col is %zu, type is %s\n",
+ __func__, __LINE__, nextprev->Text(), nextprev->orig_line, nextprev->orig_col,
+ get_token_name(nextprev->type));
+ LOG_FMT(LFCN, "%s(%d): next->Text() is '%s', orig_line is %zu, orig_col is %zu, type is %s\n",
+ __func__, __LINE__, next->Text(), next->orig_line, next->orig_col,
+ get_token_name(next->type));
+
+ // Issue #2172
+ if (get_chunk_parent_type(next) == CT_FUNC_DEF)
+ {
+ LOG_FMT(LFCN, "%s(%d): it's a construct colon\n", __func__, __LINE__);
+ // it's a construct colon
+ set_chunk_type(next, CT_CONSTR_COLON);
+ }
+ else
+ {
+ LOG_FMT(LFCN, "%s(%d): it's a class colon\n", __func__, __LINE__);
+ // it's a class colon
+ set_chunk_type(next, CT_CLASS_COLON);
+ }
+ }
+ else if (next->level > next->brace_level)
+ {
+ // ignore it, as it is inside a paren
+ }
+ else if ( chunk_is_token(cur, CT_TYPE)
+ || chunk_is_token(cur, CT_ENUM) // Issue #2584
+ || chunk_is_token(nextprev, CT_TYPE)
+ || chunk_is_token(nextprev, CT_ENUM)) // Issue #2584
+ {
+ set_chunk_type(next, CT_BIT_COLON);
+ }
+ else if ( chunk_is_token(cur, CT_ENUM)
+ || chunk_is_token(cur, CT_ACCESS)
+ || chunk_is_token(cur, CT_QUALIFIER)
+ || get_chunk_parent_type(cur) == CT_ALIGN)
+ {
+ // ignore it - bit field, align or public/private, etc
+ }
+ else if ( chunk_is_token(cur, CT_ANGLE_CLOSE)
+ || hit_class)
+ {
+ // ignore it - template thingy
+ }
+ else if (get_chunk_parent_type(cur) == CT_SQL_EXEC)
+ {
+ // ignore it - SQL variable name
+ }
+ else if (get_chunk_parent_type(next) == CT_ASSERT)
+ {
+ // ignore it - Java assert thing
+ }
+ else if (get_chunk_parent_type(next) == CT_STRUCT)
+ {
+ // ignore it
+ }
+ else
+ {
+ Chunk *tmp = next->GetNextNcNnl();
+
+ //tmp = chunk_get_next_local(next);
+ if (tmp->IsNotNullChunk())
+ {
+ LOG_FMT(LFCN, "%s(%d): tmp->Text() is '%s', orig_line is %zu, orig_col is %zu, type is %s\n",
+ __func__, __LINE__, tmp->Text(), tmp->orig_line, tmp->orig_col,
+ get_token_name(tmp->type));
+
+ if ( chunk_is_token(tmp, CT_BASE)
+ || chunk_is_token(tmp, CT_THIS))
+ {
+ // ignore it, as it is a C# base thingy
+ }
+ else if (language_is_set(LANG_CS | LANG_D))
+ {
+ // there should be a better solution for that
+ }
+ else
+ {
+ LOG_FMT(LWARN, "%s(%d): %s:%zu unexpected colon in col %zu n-parent=%s c-parent=%s l=%zu bl=%zu\n",
+ __func__, __LINE__,
+ cpd.filename.c_str(), next->orig_line, next->orig_col,
+ get_token_name(get_chunk_parent_type(next)),
+ get_token_name(get_chunk_parent_type(cur)),
+ next->level, next->brace_level);
+ cpd.error_count++;
+ }
+ }
+ }
+ }
+ }
+ prev = cur;
+ cur = next;
+ next = chunk_get_next_local(next);
+ }
+} // combine_labels
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/combine_labels.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/combine_labels.h
index 4a273d0b..4a273d0b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/combine_labels.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/combine_labels.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/combine_skip.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/combine_skip.cpp
new file mode 100644
index 00000000..2567470f
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/combine_skip.cpp
@@ -0,0 +1,352 @@
+/**
+ * @file combine_skip.cpp
+ *
+ * @author Guy Maurel
+ * @license GPL v2+
+ * extract from combine.cpp
+ */
+
+#include "combine_skip.h"
+
+#include "combine_tools.h"
+
+
+Chunk *skip_align(Chunk *start)
+{
+ Chunk *pc = start;
+
+ if (chunk_is_token(pc, CT_ALIGN))
+ {
+ pc = pc->GetNextNcNnl();
+
+ if (chunk_is_token(pc, CT_PAREN_OPEN))
+ {
+ pc = pc->GetNextType(CT_PAREN_CLOSE, pc->level);
+
+ if (pc->IsNotNullChunk())
+ {
+ pc = pc->GetNextNcNnl();
+ }
+
+ if (chunk_is_token(pc, CT_COLON))
+ {
+ pc = pc->GetNextNcNnl();
+ }
+ }
+ }
+ return(pc);
+}
+
+
+Chunk *skip_expression(Chunk *pc)
+{
+ return(skip_to_expression_end(pc)->GetNextNcNnl());
+}
+
+
+Chunk *skip_expression_rev(Chunk *pc)
+{
+ return(skip_to_expression_start(pc)->GetPrevNcNnlNi());
+}
+
+
+static Chunk *skip_to_expression_edge(Chunk *pc, Chunk *(Chunk::*GetNextFn)(E_Scope scope)const)
+{
+ Chunk *prev = pc;
+
+ if (prev == nullptr)
+ {
+ prev = Chunk::NullChunkPtr;
+ }
+
+ if (prev->IsNotNullChunk())
+ {
+ std::size_t level = prev->level;
+ Chunk *next = prev;
+ std::size_t template_nest = get_cpp_template_angle_nest_level(prev);
+
+ while ( next->IsNotNullChunk()
+ && next->level >= level)
+ {
+ /**
+ * if we encounter a comma or semicolon at the level of the starting chunk,
+ * return the current chunk
+ */
+ if ( next->level == level
+ && ( chunk_is_token(next, CT_COMMA)
+ || chunk_is_semicolon(next)))
+ {
+ break;
+ }
+ /**
+ * check the template nest level; if the current chunk's nest level
+ * is less than that of the starting chunk, return the current chunk
+ */
+ auto next_template_nest = get_cpp_template_angle_nest_level(next);
+
+ if (template_nest > next_template_nest)
+ {
+ break;
+ }
+ prev = next;
+ next = (next->*GetNextFn)(E_Scope::PREPROC);
+ }
+ }
+ return(prev);
+}
+
+
+Chunk *skip_to_expression_end(Chunk *pc)
+{
+ return(skip_to_expression_edge(pc, &Chunk::GetNextNcNnl));
+}
+
+
+Chunk *skip_to_expression_start(Chunk *pc)
+{
+ return(skip_to_expression_edge(pc, &Chunk::GetPrevNcNnlNi));
+}
+
+
+Chunk *skip_to_next_statement(Chunk *pc)
+{
+ if (pc == nullptr)
+ {
+ pc = Chunk::NullChunkPtr;
+ }
+
+ while ( pc->IsNotNullChunk()
+ && !chunk_is_semicolon(pc)
+ && chunk_is_not_token(pc, CT_BRACE_OPEN)
+ && chunk_is_not_token(pc, CT_BRACE_CLOSE))
+ {
+ pc = pc->GetNextNcNnl();
+ }
+ return(pc);
+}
+
+
+Chunk *skip_parent_types(Chunk *colon)
+{
+ Chunk *pc = colon->GetNextNcNnlNpp();
+
+ while (pc)
+ {
+ // Skip access specifier
+ if (chunk_is_token(pc, CT_ACCESS))
+ {
+ pc = pc->GetNextNcNnlNpp();
+ continue;
+ }
+
+ // Check for a type name
+ if (!( chunk_is_token(pc, CT_WORD)
+ || chunk_is_token(pc, CT_TYPE)))
+ {
+ LOG_FMT(LPCU,
+ "%s is confused; expected a word at %zu:%zu "
+ "following type list at %zu:%zu\n", __func__,
+ colon->orig_line, colon->orig_col,
+ pc->orig_line, pc->orig_col);
+ return(colon);
+ }
+ // Get next token
+ Chunk *next = skip_template_next(pc->GetNextNcNnlNpp());
+
+ if ( chunk_is_token(next, CT_DC_MEMBER)
+ || chunk_is_token(next, CT_COMMA))
+ {
+ pc = next->GetNextNcNnlNpp();
+ }
+ else if (next != nullptr)
+ {
+ LOG_FMT(LPCU, "%s -> %zu:%zu ('%s')\n", __func__,
+ next->orig_line, next->orig_col, next->Text());
+ return(next);
+ }
+ else
+ {
+ break;
+ }
+ }
+ LOG_FMT(LPCU, "%s: did not find end of type list (start was %zu:%zu)\n",
+ __func__, colon->orig_line, colon->orig_col);
+ return(colon);
+} // skip_parent_types
+
+
+Chunk *skip_template_prev(Chunk *ang_close)
+{
+ if (chunk_is_token(ang_close, CT_ANGLE_CLOSE))
+ {
+ Chunk *pc = ang_close->GetPrevType(CT_ANGLE_OPEN, ang_close->level);
+ return(pc->GetPrevNcNnlNi()); // Issue #2279
+ }
+ return(ang_close);
+}
+
+
+Chunk *skip_tsquare_next(Chunk *ary_def)
+{
+ if (ary_def == nullptr)
+ {
+ return(Chunk::NullChunkPtr);
+ }
+
+ if ( chunk_is_token(ary_def, CT_SQUARE_OPEN)
+ || chunk_is_token(ary_def, CT_TSQUARE))
+ {
+ return(ary_def->GetNextNisq());
+ }
+ return(ary_def);
+}
+
+
+Chunk *skip_attribute(Chunk *attr)
+{
+ Chunk *pc = attr;
+
+ while (chunk_is_token(pc, CT_ATTRIBUTE))
+ {
+ pc = pc->GetNextNcNnl();
+
+ if (chunk_is_token(pc, CT_FPAREN_OPEN))
+ {
+ pc = pc->GetNextType(CT_FPAREN_CLOSE, pc->level);
+ }
+ }
+ return(pc);
+}
+
+
+Chunk *skip_attribute_next(Chunk *attr)
+{
+ Chunk *next = skip_attribute(attr);
+
+ if ( next != attr
+ && chunk_is_token(next, CT_FPAREN_CLOSE))
+ {
+ attr = next->GetNextNcNnl();
+ }
+
+ if (attr == nullptr)
+ {
+ return(Chunk::NullChunkPtr);
+ }
+ return(attr);
+}
+
+
+Chunk *skip_attribute_prev(Chunk *fp_close)
+{
+ Chunk *pc = fp_close;
+
+ while (true)
+ {
+ if ( chunk_is_token(pc, CT_FPAREN_CLOSE)
+ && get_chunk_parent_type(pc) == CT_ATTRIBUTE)
+ {
+ pc = pc->GetPrevType(CT_ATTRIBUTE, pc->level);
+ }
+ else if (chunk_is_not_token(pc, CT_ATTRIBUTE))
+ {
+ break;
+ }
+ pc = pc->GetPrevNcNnlNi(); // Issue #2279
+
+ if (pc->IsNullChunk()) // Issue #3356
+ {
+ break;
+ }
+ }
+ return(pc);
+}
+
+
+Chunk *skip_declspec(Chunk *pc)
+{
+ if (chunk_is_token(pc, CT_DECLSPEC))
+ {
+ pc = pc->GetNextNcNnl();
+
+ if (chunk_is_token(pc, CT_PAREN_OPEN))
+ {
+ pc = chunk_skip_to_match(pc);
+ }
+ }
+ return(pc);
+}
+
+
+Chunk *skip_declspec_next(Chunk *pc)
+{
+ Chunk *next = skip_declspec(pc);
+
+ if ( next != pc
+ && chunk_is_token(next, CT_PAREN_CLOSE))
+ {
+ pc = next->GetNextNcNnl();
+ }
+ return(pc);
+}
+
+
+Chunk *skip_declspec_prev(Chunk *pc)
+{
+ if ( chunk_is_token(pc, CT_PAREN_CLOSE)
+ && get_chunk_parent_type(pc) == CT_DECLSPEC)
+ {
+ pc = chunk_skip_to_match_rev(pc);
+ pc = pc->GetPrevNcNnlNi();
+
+ if (chunk_is_token(pc, CT_DECLSPEC))
+ {
+ pc = pc->GetPrevNcNnlNi();
+ }
+ }
+ return(pc);
+}
+
+
+Chunk *skip_matching_brace_bracket_paren_next(Chunk *pc)
+{
+ if ( chunk_is_token(pc, CT_BRACE_OPEN)
+ || chunk_is_token(pc, CT_PAREN_OPEN)
+ || chunk_is_token(pc, CT_SQUARE_OPEN))
+ {
+ pc = chunk_skip_to_match(pc);
+
+ if (pc != nullptr)
+ {
+ /**
+ * a matching brace, square bracket, or paren was found;
+ * retrieve the subsequent chunk
+ */
+
+ pc = pc->GetNextNcNnl();
+ }
+ }
+ return(pc);
+}
+
+
+Chunk *skip_to_chunk_before_matching_brace_bracket_paren_rev(Chunk *pc)
+{
+ if ( chunk_is_token(pc, CT_BRACE_CLOSE)
+ || chunk_is_token(pc, CT_PAREN_CLOSE)
+ || chunk_is_token(pc, CT_SQUARE_CLOSE))
+ {
+ pc = chunk_skip_to_match_rev(pc);
+
+ if (pc != nullptr)
+ {
+ /**
+ * a matching brace, square bracket, or paren was found;
+ * retrieve the preceding chunk
+ */
+
+ pc = pc->GetPrevNcNnlNi();
+ }
+ }
+ return(pc);
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/combine_skip.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/combine_skip.h
new file mode 100644
index 00000000..b1595647
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/combine_skip.h
@@ -0,0 +1,169 @@
+/**
+ * @file combine_skip.h
+ *
+ * @author Guy Maurel
+ * @license GPL v2+
+ * extract from combine.cpp
+ */
+
+#ifndef COMBINE_SKIP_H_INCLUDED
+#define COMBINE_SKIP_H_INCLUDED
+
+#include "chunk.h"
+
+
+/**
+ * Skips the D 'align()' statement and the colon, if present.
+ * align(2) int foo; -- returns 'int'
+ * align(4): -- returns 'int'
+ * int bar;
+ */
+Chunk *skip_align(Chunk *start);
+
+
+/**
+ * Skips chunks in the forward direction and attempts to find the
+ * chunk associated with the end of the current expression; returns
+ * the first chunk to satisfy one of the following:
+ * 1) Chunk is a comma or semicolon at the level of the starting chunk
+ * 2) Preceding chunk is at higher template nest level relative to the
+ * current chunk under test
+ */
+Chunk *skip_expression(Chunk *pc);
+
+
+/**
+ * Skips chunks in the reverse direction and attempts to find the
+ * chunk associated with the start of the current expression; returns
+ * the first chunk to satisfy one of the following:
+ * 1) Chunk is a comma or semicolon at the level of the starting chunk
+ * 2) Preceding chunk is at lower template nest level relative to the
+ * current chunk under test
+ */
+Chunk *skip_expression_rev(Chunk *pc);
+
+
+/**
+ * Skips chunks in the forward direction and attempts to find the
+ * chunk associated with the end of the current expression; specifically,
+ * the function returns that which immediately precedes a chunk
+ * satisfying one of the following:
+ * 1) Next chunk is a comma or semicolon at the level of the starting chunk
+ * 2) Preceding chunk is at a higher template nest level relative to the
+ * subsequent chunk
+ */
+Chunk *skip_to_expression_end(Chunk *pc);
+
+
+/**
+ * Skips chunks in the reverse direction and attempts to find the chunk
+ * associated with the start of the current expression; specifically,
+ * the function returns that which immediately follows a chunk
+ * satisfying one of the following:
+ * 1) Prior chunk is a comma or semicolon at the level of the starting chunk
+ * 2) Preceding chunk is at a lower template nest level relative to the
+ * subsequent chunk
+ */
+Chunk *skip_to_expression_start(Chunk *pc);
+
+
+/**
+ * Skips the list of class/struct parent types.
+ */
+Chunk *skip_parent_types(Chunk *colon);
+
+
+/**
+ * Skips over the rest of the template if ang_open is indeed a CT_ANGLE_OPEN.
+ * Points to the chunk after the CT_ANGLE_CLOSE.
+ * If the chunk isn't an CT_ANGLE_OPEN, then it is returned.
+ */
+Chunk *skip_template_next(Chunk *ang_open);
+
+
+/**
+ * Skips over the rest of the template if ang_close is indeed a CT_ANGLE_CLOSE.
+ * Points to the chunk before the CT_ANGLE_OPEN
+ * If the chunk isn't an CT_ANGLE_CLOSE, then it is returned.
+ */
+Chunk *skip_template_prev(Chunk *ang_close);
+
+
+//! Skips to the start of the next statement.
+Chunk *skip_to_next_statement(Chunk *pc);
+
+
+/**
+ * Skips the rest of the array definitions if ary_def is indeed a
+ * CT_TSQUARE or CT_SQUARE_OPEN
+ */
+Chunk *skip_tsquare_next(Chunk *ary_def);
+
+
+/**
+ * If pc is CT_ATTRIBUTE, then skip it and everything preceding the closing
+ * paren; return the chunk marked CT_FPAREN_CLOSE
+ * If the chunk isn't a CT_ATTRIBUTE, then it is returned.
+ */
+Chunk *skip_attribute(Chunk *attr);
+
+
+/**
+ * If attr is CT_ATTRIBUTE, then skip it and the parens and return the chunk
+ * after the CT_FPAREN_CLOSE.
+ * If the chunk isn't an CT_ATTRIBUTE, then it is returned.
+ */
+Chunk *skip_attribute_next(Chunk *attr);
+
+
+/**
+ * If fp_close is a CT_FPAREN_CLOSE with a parent of CT_ATTRIBUTE, then skip it
+ * and the '__attribute__' thingy and return the chunk before CT_ATTRIBUTE.
+ * Otherwise return fp_close.
+ */
+Chunk *skip_attribute_prev(Chunk *fp_close);
+
+
+/**
+ * If pc is CT_DECLSPEC, then skip it and everything preceding the closing
+ * paren; return the chunk marked CT_FPAREN_CLOSE
+ * If the chunk isn't a CT_DECLSPEC, then it is returned.
+ */
+Chunk *skip_declspec(Chunk *pc);
+
+
+/**
+ * If pc is CT_DECLSPEC, then skip it and the parens and return the chunk
+ * after the CT_FPAREN_CLOSE.
+ * If the chunk isn't a CT_DECLSPEC, then it is returned.
+ */
+Chunk *skip_declspec_next(Chunk *pc);
+
+
+/**
+ * If pc is a CT_FPAREN_CLOSE with a parent of CT_DECLSPEC, then skip it
+ * and the '__declspec' keyword and return the chunk before CT_DECLSPEC.
+ * Otherwise return pc.
+ */
+Chunk *skip_declspec_prev(Chunk *pc);
+
+
+/**
+ * If pc is a CT_BRACE_OPEN, CT_PAREN_OPEN or CT_SQUARE_OPEN, then skip
+ * forward to the next non-comment/non-newline chunk following the matching
+ * CT_BRACE_CLOSE, CT_PAREN_CLOSE or CT_SQUARE_CLOSE; if pc is none of these
+ * upon calling this function, then pc is returned.
+ */
+Chunk *skip_matching_brace_bracket_paren_next(Chunk *pc);
+
+
+/**
+ * If pc is a CT_BRACE_CLOSE, CT_PAREN_CLOSE or CT_SQUARE_CLOSE, then skip
+ * in reverse to the first non-comment/non-newline chunk preceding the matching
+ * CT_BRACE_OPEN, CT_PAREN_OPEN or CT_SQUARE_OPEN; if pc is none of these upon
+ * calling this function, then pc is returned.
+ */
+Chunk *skip_to_chunk_before_matching_brace_bracket_paren_rev(Chunk *pc);
+
+
+#endif /* COMBINE_SKIP_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/combine_tools.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/combine_tools.cpp
new file mode 100644
index 00000000..b6866e00
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/combine_tools.cpp
@@ -0,0 +1,570 @@
+/**
+ * @file combine_tools.cpp
+ *
+ * @author Guy Maurel
+ * @license GPL v2+
+ * extract from combine.cpp
+ */
+
+#include "combine_tools.h"
+
+#include "unc_ctype.h"
+#include "uncrustify.h"
+
+
+bool can_be_full_param(Chunk *start, Chunk *end)
+{
+ LOG_FUNC_ENTRY();
+
+ LOG_FMT(LFPARAM, "%s(%d): start->Text() is '%s', type is %s\n",
+ __func__, __LINE__, start->Text(), get_token_name(start->type));
+ LOG_FMT(LFPARAM, "%s(%d): end->Text() is '%s', type is %s\n",
+ __func__, __LINE__, end->Text(), get_token_name(end->type));
+
+ int word_count = 0;
+ int type_count = 0;
+ Chunk *pc = nullptr;
+ Chunk *first_word = nullptr;
+ bool first_word_set = false;
+
+ for (pc = start;
+ pc != nullptr && pc->IsNotNullChunk() && pc != end;
+ pc = pc->GetNextNcNnl(E_Scope::PREPROC))
+ {
+ LOG_FMT(LFPARAM, "%s(%d): pc->Text() is '%s', type is %s\n",
+ __func__, __LINE__, pc->Text(), get_token_name(pc->type));
+
+ if ( chunk_is_token(pc, CT_QUALIFIER)
+ || chunk_is_token(pc, CT_STRUCT)
+ || chunk_is_token(pc, CT_ENUM)
+ || chunk_is_token(pc, CT_UNION)
+ || chunk_is_token(pc, CT_TYPENAME))
+ {
+ LOG_FMT(LFPARAM, "%s(%d): <== %s! (yes)\n",
+ __func__, __LINE__, get_token_name(pc->type));
+ return(true);
+ }
+
+ if ( chunk_is_token(pc, CT_WORD)
+ || chunk_is_token(pc, CT_TYPE))
+ {
+ ++word_count;
+
+ if (!first_word_set)
+ {
+ first_word = pc;
+ first_word_set = true;
+ }
+
+ if (chunk_is_token(pc, CT_TYPE))
+ {
+ ++type_count;
+ }
+ }
+ else if ( chunk_is_token(pc, CT_MEMBER)
+ || chunk_is_token(pc, CT_DC_MEMBER))
+ {
+ if (word_count > 0)
+ {
+ --word_count;
+ }
+ }
+ else if ( pc != start
+ && chunk_is_ptr_operator(pc))
+ {
+ // chunk is OK
+ }
+ else if (chunk_is_token(pc, CT_ASSIGN))
+ {
+ // chunk is OK (default values)
+ break;
+ }
+ else if (chunk_is_token(pc, CT_ANGLE_OPEN))
+ {
+ LOG_FMT(LFPARAM, "%s(%d): <== template\n",
+ __func__, __LINE__);
+
+ return(true);
+ }
+ else if (chunk_is_token(pc, CT_ELLIPSIS))
+ {
+ LOG_FMT(LFPARAM, "%s(%d): <== elipses\n",
+ __func__, __LINE__);
+
+ return(true);
+ }
+ else if ( word_count == 0
+ && chunk_is_token(pc, CT_PAREN_OPEN))
+ {
+ // Check for old-school func proto param '(type)'
+ Chunk *tmp1 = chunk_skip_to_match(pc, E_Scope::PREPROC);
+
+ if (tmp1 == nullptr)
+ {
+ return(false);
+ }
+ Chunk *tmp2 = tmp1->GetNextNcNnl(E_Scope::PREPROC);
+
+ if (tmp2->IsNullChunk())
+ {
+ return(false);
+ }
+
+ if ( chunk_is_token(tmp2, CT_COMMA)
+ || chunk_is_paren_close(tmp2))
+ {
+ do
+ {
+ pc = pc->GetNextNcNnl(E_Scope::PREPROC);
+
+ if (pc->IsNullChunk())
+ {
+ return(false);
+ }
+ LOG_FMT(LFPARAM, "%s(%d): pc->Text() is '%s', type is %s\n",
+ __func__, __LINE__, pc->Text(), get_token_name(pc->type));
+ } while (pc != tmp1);
+
+ // reset some vars to allow [] after parens
+ word_count = 1;
+ type_count = 1;
+ }
+ else
+ {
+ LOG_FMT(LFPARAM, "%s(%d): <== '%s' not fcn type!\n",
+ __func__, __LINE__, get_token_name(pc->type));
+ return(false);
+ }
+ }
+ else if ( ( word_count == 1
+ || (word_count == type_count))
+ && chunk_is_token(pc, CT_PAREN_OPEN))
+ {
+ // Check for func proto param 'void (*name)' or 'void (*name)(params)' or 'void (^name)(params)'
+ // <name> can be optional
+ Chunk *tmp1 = pc->GetNextNcNnl(E_Scope::PREPROC);
+
+ if (tmp1->IsNullChunk())
+ {
+ return(false);
+ }
+ Chunk *tmp2 = tmp1->GetNextNcNnl(E_Scope::PREPROC);
+
+ if (tmp2->IsNullChunk())
+ {
+ return(false);
+ }
+ Chunk *tmp3 = (chunk_is_str(tmp2, ")")) ? tmp2 : tmp2->GetNextNcNnl(E_Scope::PREPROC);
+
+ if (tmp3->IsNullChunk())
+ {
+ return(false);
+ }
+
+ if ( !chunk_is_str(tmp3, ")")
+ || !( chunk_is_str(tmp1, "*")
+ || chunk_is_str(tmp1, "^")) // Issue #2656
+ || !( tmp2->type == CT_WORD
+ || chunk_is_str(tmp2, ")")))
+ {
+ LOG_FMT(LFPARAM, "%s(%d): <== '%s' not fcn type!\n",
+ __func__, __LINE__, get_token_name(pc->type));
+ return(false);
+ }
+ LOG_FMT(LFPARAM, "%s(%d): <skip fcn type>\n",
+ __func__, __LINE__);
+
+ tmp1 = tmp3->GetNextNcNnl(E_Scope::PREPROC);
+
+ if (tmp1->IsNullChunk())
+ {
+ return(false);
+ }
+
+ if (chunk_is_str(tmp1, "("))
+ {
+ tmp3 = chunk_skip_to_match(tmp1, E_Scope::PREPROC);
+ }
+ pc = tmp3;
+ LOG_FMT(LFPARAM, "%s(%d): pc->Text() is '%s', type is %s\n",
+ __func__, __LINE__, pc->Text(), get_token_name(pc->type));
+
+ // reset some vars to allow [] after parens
+ word_count = 1;
+ type_count = 1;
+ }
+ else if (chunk_is_token(pc, CT_TSQUARE))
+ {
+ // ignore it
+ }
+ else if ( word_count == 1
+ && chunk_is_token(pc, CT_SQUARE_OPEN))
+ {
+ // skip over any array stuff
+ pc = chunk_skip_to_match(pc, E_Scope::PREPROC);
+ LOG_FMT(LFPARAM, "%s(%d): pc->Text() is '%s', type is %s\n",
+ __func__, __LINE__, pc->Text(), get_token_name(pc->type));
+ }
+ else if ( word_count == 2
+ && chunk_is_token(pc, CT_SQUARE_OPEN))
+ {
+ // Bug #671: is it such as: bool foo[FOO_MAX]
+ pc = chunk_skip_to_match(pc, E_Scope::PREPROC);
+ LOG_FMT(LFPARAM, "%s(%d): pc->Text() is '%s', type is %s\n",
+ __func__, __LINE__, pc->Text(), get_token_name(pc->type));
+ }
+ else if ( word_count == 1
+ && language_is_set(LANG_CPP)
+ && chunk_is_str(pc, "&&"))
+ {
+ // ignore possible 'move' operator
+ }
+ else
+ {
+ LOG_FMT(LFPARAM, "%s(%d): <== type is %s, no way!, type count is %d, word count is %d\n",
+ __func__, __LINE__, get_token_name(pc->type), type_count, word_count);
+ return(false);
+ }
+ LOG_FMT(LFPARAM, "%s(%d): pc->Text() is '%s', type is %s\n",
+ __func__, __LINE__, pc->Text(), get_token_name(pc->type));
+ }
+
+ Chunk *last = pc->GetPrevNcNnlNi(); // Issue #2279
+
+ LOG_FMT(LFPARAM, "%s(%d): last->Text() is '%s', type is %s\n",
+ __func__, __LINE__, last->Text(), get_token_name(last->type));
+
+ if (chunk_is_ptr_operator(last))
+ {
+ LOG_FMT(LFPARAM, "%s(%d): <== type is %s, sure!\n",
+ __func__, __LINE__, get_token_name(last->type));
+ return(true);
+ }
+
+ if ( word_count < 2
+ && type_count < 1
+ && start->brace_level > 0)
+ {
+ LOG_FMT(LFPARAM, "%s(%d): !MVP!\n",
+ __func__, __LINE__);
+ // Oh, joy, we are in Most Vexing Parse territory
+ Chunk *brace =
+ start->GetPrevType(CT_BRACE_OPEN, start->brace_level - 1);
+
+ if (brace->IsNotNullChunk())
+ {
+ LOG_FMT(LFPARAM, "%s(%d): (matching %s brace at orig_line %zu, orig_col is %zu)",
+ __func__, __LINE__,
+ get_token_name(get_chunk_parent_type(brace)), brace->orig_line, brace->orig_col);
+ }
+
+ if ( brace->IsNotNullChunk()
+ && ( get_chunk_parent_type(brace) == CT_CLASS
+ || get_chunk_parent_type(brace) == CT_STRUCT))
+ {
+ // A Most Vexing Parse variable declaration cannot occur in the body
+ // of a struct/class, so we probably have a function prototype
+ LOG_FMT(LFPARAM, "%s(%d): <== type is %s, Likely!\n",
+ __func__, __LINE__, (pc == nullptr ? "nullptr" : get_token_name(pc->type)));
+ return(true);
+ }
+ }
+ LOG_FMT(LFPARAM, "%s(%d): pc->Text() is '%s', word_count is %d, type_count is %d\n",
+ __func__, __LINE__, pc->Text(), word_count, type_count);
+
+ if (first_word != nullptr)
+ {
+ LOG_FMT(LFPARAM, "%s(%d): first_word->Text() is '%s'\n",
+ __func__, __LINE__, first_word->Text());
+ }
+ bool ret = ( word_count >= 2
+ || ( word_count == 1
+ && type_count == 1));
+
+ LOG_FMT(LFPARAM, "%s(%d): ret is %s\n",
+ __func__, __LINE__, ret ? "TRUE" : "FALSE");
+
+ LOG_FMT(LFPARAM, "%s(%d): pc->Text() is '%s', ",
+ __func__, __LINE__, pc->Text());
+ LOG_FMT(LFPARAM, "<== type is %s, ",
+ (pc == nullptr ? "nullptr" : get_token_name(pc->type)));
+
+ if (ret)
+ {
+ LOG_FMT(LFPARAM, "Yup!\n");
+ }
+ else
+ {
+ LOG_FMT(LFPARAM, "Unlikely!\n");
+ }
+ return(ret);
+} // can_be_full_param
+
+
+bool chunk_ends_type(Chunk *start)
+{
+ LOG_FUNC_ENTRY();
+ Chunk *pc = start;
+ bool ret = false;
+ size_t cnt = 0;
+ bool last_expr = false;
+ bool last_lval = false;
+
+ bool a = pc->flags.test(PCF_IN_FCN_CTOR);
+
+ if (a)
+ {
+ return(false);
+ }
+
+ for ( ; pc->IsNotNullChunk(); pc = pc->GetPrevNcNnlNi()) // Issue #2279
+ {
+ LOG_FMT(LFTYPE, "%s(%d): type is %s, Text() '%s', orig_line %zu, orig_col %zu\n ",
+ __func__, __LINE__, get_token_name(pc->type), pc->Text(),
+ pc->orig_line, pc->orig_col);
+ log_pcf_flags(LFTYPE, pc->flags);
+
+ if ( chunk_is_token(pc, CT_WORD)
+ || chunk_is_token(pc, CT_TYPE)
+ || chunk_is_token(pc, CT_PTR_TYPE)
+ || chunk_is_token(pc, CT_STAR)
+ || chunk_is_token(pc, CT_STRUCT)
+ || chunk_is_token(pc, CT_DC_MEMBER)
+ || chunk_is_token(pc, CT_PP)
+ || chunk_is_token(pc, CT_QUALIFIER)
+ || ( language_is_set(LANG_CPP | LANG_OC) // Issue #2727
+ && get_chunk_parent_type(pc) == CT_TEMPLATE
+ && ( chunk_is_token(pc, CT_ANGLE_OPEN)
+ || chunk_is_token(pc, CT_ANGLE_CLOSE)))
+ || ( language_is_set(LANG_CS | LANG_VALA)
+ && (chunk_is_token(pc, CT_MEMBER))))
+ {
+ cnt++;
+ last_expr = pc->flags.test(PCF_EXPR_START)
+ && !pc->flags.test(PCF_IN_FCN_CALL);
+ last_lval = pc->flags.test(PCF_LVALUE);
+ continue;
+ }
+ /* If a comma is encountered within a template, it must be
+ * considered within the context of its immediate parent
+ * template (i.e. argument list nest level)
+ */
+
+ if ( ( chunk_is_semicolon(pc)
+ && !pc->flags.test(PCF_IN_FOR))
+ || chunk_is_token(pc, CT_TYPEDEF)
+ || chunk_is_token(pc, CT_BRACE_OPEN)
+ || chunk_is_token(pc, CT_BRACE_CLOSE)
+ || chunk_is_token(pc, CT_VBRACE_CLOSE)
+ || chunk_is_token(pc, CT_FPAREN_CLOSE)
+ || chunk_is_forin(pc)
+ || chunk_is_token(pc, CT_MACRO)
+ || chunk_is_token(pc, CT_PP_IF)
+ || chunk_is_token(pc, CT_PP_ELSE)
+ || chunk_is_token(pc, CT_PP_ENDIF)
+ || get_chunk_parent_type(pc) == CT_PP_INCLUDE // Issue #3233
+ || ( ( chunk_is_token(pc, CT_COMMA)
+ && !pc->flags.test(PCF_IN_FCN_CALL)
+ && get_cpp_template_angle_nest_level(start) ==
+ get_cpp_template_angle_nest_level(pc))
+ && last_expr)
+ || ( chunk_is_token(pc, CT_SPAREN_OPEN)
+ && last_lval))
+ {
+ ret = cnt > 0;
+ }
+ break;
+ }
+
+ if (pc->IsNullChunk())
+ {
+ // first token
+ ret = true;
+ }
+ LOG_FMT(LFTYPE, "%s(%d): first token verdict: %s\n",
+ __func__, __LINE__, ret ? "yes" : "no");
+
+ return(ret);
+} // chunk_ends_type
+
+
+bool chunkstack_match(ChunkStack &cs, Chunk *pc)
+{
+ for (size_t idx = 0; idx < cs.Len(); idx++)
+ {
+ Chunk *tmp = cs.GetChunk(idx);
+
+ if (pc->str.equals(tmp->str))
+ {
+ return(true);
+ }
+ }
+
+ return(false);
+} // chunkstack_match
+
+
+void flag_series(Chunk *start, Chunk *end, pcf_flags_t set_flags, pcf_flags_t clr_flags, E_Scope nav)
+{
+ LOG_FUNC_ENTRY();
+
+ while ( start != nullptr
+ && start->IsNotNullChunk()
+ && start != end)
+ {
+ chunk_flags_upd(start, clr_flags, set_flags);
+
+ start = start->GetNext(nav);
+
+ if (start->IsNullChunk())
+ {
+ return;
+ }
+ }
+
+ if ( end != nullptr
+ && end->IsNotNullChunk())
+ {
+ chunk_flags_upd(end, clr_flags, set_flags);
+ }
+} // flag_series
+
+
+size_t get_cpp_template_angle_nest_level(Chunk *pc)
+{
+ LOG_FUNC_ENTRY();
+ int nestLevel = 0;
+
+ if (pc == nullptr)
+ {
+ pc = Chunk::NullChunkPtr;
+ }
+
+ while ( pc->IsNotNullChunk()
+ && pc->flags.test(PCF_IN_TEMPLATE))
+ {
+ if ( chunk_is_token(pc, CT_ANGLE_CLOSE)
+ && get_chunk_parent_type(pc) == CT_TEMPLATE)
+ {
+ --nestLevel;
+ }
+ else if ( chunk_is_token(pc, CT_ANGLE_OPEN)
+ && get_chunk_parent_type(pc) == CT_TEMPLATE)
+ {
+ ++nestLevel;
+ }
+ pc = pc->GetPrevNcNnlNi();
+ }
+ return(nestLevel <= 0 ? 0 : size_t(nestLevel));
+}
+
+
+Chunk *get_d_template_types(ChunkStack &cs, Chunk *open_paren)
+{
+ LOG_FUNC_ENTRY();
+ Chunk *tmp = open_paren->GetNextNcNnl();
+ bool maybe_type = true;
+
+ while ( tmp->IsNullChunk()
+ && tmp->level > open_paren->level)
+ {
+ if ( chunk_is_token(tmp, CT_TYPE)
+ || chunk_is_token(tmp, CT_WORD))
+ {
+ if (maybe_type)
+ {
+ make_type(tmp);
+ cs.Push_Back(tmp);
+ }
+ maybe_type = false;
+ }
+ else if (chunk_is_token(tmp, CT_COMMA))
+ {
+ maybe_type = true;
+ }
+ tmp = tmp->GetNextNcNnl();
+ }
+ return(tmp);
+} // get_d_template_types
+
+
+bool go_on(Chunk *pc, Chunk *start)
+{
+ if ( pc == nullptr
+ || pc->IsNullChunk()
+ || pc->level != start->level)
+ {
+ return(false);
+ }
+
+ if (pc->flags.test(PCF_IN_FOR))
+ {
+ return( (!chunk_is_semicolon(pc))
+ && (!(chunk_is_token(pc, CT_COLON))));
+ }
+ return(!chunk_is_semicolon(pc));
+} // go_on
+
+
+bool is_ucase_str(const char *str, size_t len)
+{
+ while (len-- > 0)
+ {
+ if (unc_toupper(*str) != *str)
+ {
+ return(false);
+ }
+ str++;
+ }
+ return(true);
+} // is_ucase_str
+
+
+void make_type(Chunk *pc)
+{
+ LOG_FUNC_ENTRY();
+
+ if (pc != nullptr)
+ {
+ if (chunk_is_token(pc, CT_WORD))
+ {
+ set_chunk_type(pc, CT_TYPE);
+ }
+ else if ( ( pc->IsStar()
+ || chunk_is_msref(pc)
+ || chunk_is_nullable(pc))
+ && chunk_is_type(pc->prev)) // Issue # 2640
+ {
+ set_chunk_type(pc, CT_PTR_TYPE);
+ }
+ else if ( chunk_is_addr(pc)
+ && !chunk_is_token(pc->prev, CT_SQUARE_OPEN)) // Issue # 2166
+ {
+ set_chunk_type(pc, CT_BYREF);
+ }
+ }
+} // make_type
+
+
+Chunk *set_paren_parent(Chunk *start, E_Token parent)
+{
+ LOG_FUNC_ENTRY();
+ Chunk *end;
+
+ end = chunk_skip_to_match(start, E_Scope::PREPROC);
+
+ if (end != nullptr)
+ {
+ LOG_FMT(LFLPAREN, "%s(%d): %zu:%zu '%s' and %zu:%zu '%s' type is %s, parent_type is %s",
+ __func__, __LINE__, start->orig_line, start->orig_col, start->Text(),
+ end->orig_line, end->orig_col, end->Text(),
+ get_token_name(start->type), get_token_name(parent));
+ log_func_stack_inline(LFLPAREN);
+ set_chunk_parent(start, parent);
+ set_chunk_parent(end, parent);
+ LOG_FMT(LFLPAREN, "%s(%d):\n", __func__, __LINE__);
+ return(end->GetNextNcNnl(E_Scope::PREPROC));
+ }
+ LOG_FMT(LFLPAREN, "%s(%d):\n", __func__, __LINE__);
+ return(nullptr);
+} // set_paren_parent
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/combine_tools.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/combine_tools.h
new file mode 100644
index 00000000..40ea915f
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/combine_tools.h
@@ -0,0 +1,85 @@
+/**
+ * @file combine_tools.h
+ *
+ * @author Guy Maurel
+ * @license GPL v2+
+ * extract from combine.cpp
+ */
+
+#ifndef COMBINE_TOOLS_H_INCLUDED
+#define COMBINE_TOOLS_H_INCLUDED
+
+#include "chunk.h"
+#include "ChunkStack.h"
+
+/**
+ * Checks to see if a series of chunks could be a C++ parameter
+ * FOO foo(5, &val);
+ *
+ * WORD means CT_WORD or CT_TYPE
+ *
+ * "WORD WORD" ==> true
+ * "QUALIFIER ??" ==> true
+ * "TYPE" ==> true
+ * "WORD" ==> true
+ * "WORD.WORD" ==> true
+ * "WORD::WORD" ==> true
+ * "WORD * WORD" ==> true
+ * "WORD & WORD" ==> true
+ * "NUMBER" ==> false
+ * "STRING" ==> false
+ * "OPEN PAREN" ==> false
+ *
+ * @param start the first chunk to look at
+ * @param end the chunk after the last one to look at
+ */
+bool can_be_full_param(Chunk *start, Chunk *end);
+
+
+//! Scan backwards to see if we might be on a type declaration
+bool chunk_ends_type(Chunk *start);
+
+
+bool chunkstack_match(ChunkStack &cs, Chunk *pc);
+
+
+///**
+// * Simply change any STAR to PTR_TYPE and WORD to TYPE
+// *
+// * @param start points to the open paren
+// */
+void fix_fcn_def_params(Chunk *pc);
+
+
+void flag_series(Chunk *start, Chunk *end, pcf_flags_t set_flags, pcf_flags_t clr_flags = {}, E_Scope nav = E_Scope::ALL);
+
+
+/*
+ * Checks whether or not a given chunk has a parent cpp template,
+ * and if so returns the associated angle bracket nest level
+ * with respect to the root parent template; returns 0 if
+ * the chunk is not part of a template parameter list
+ */
+size_t get_cpp_template_angle_nest_level(Chunk *pc);
+
+
+/**
+ * Parse off the types in the D template args, adds to cs
+ * returns the close_paren
+ */
+Chunk *get_d_template_types(ChunkStack &cs, Chunk *open_paren);
+
+
+//! help function for mark_variable_definition...
+bool go_on(Chunk *pc, Chunk *start);
+
+
+bool is_ucase_str(const char *str, size_t len);
+
+
+void make_type(Chunk *pc);
+
+Chunk *set_paren_parent(Chunk *start, E_Token parent);
+
+
+#endif /* COMBINE_TOOLS_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/compat.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/compat.h
index 32fce459..32fce459 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/compat.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/compat.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/compat_posix.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/compat_posix.cpp
index c77c7a89..c77c7a89 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/compat_posix.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/compat_posix.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/compat_win32.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/compat_win32.cpp
new file mode 100644
index 00000000..e1617876
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/compat_win32.cpp
@@ -0,0 +1,82 @@
+/**
+ * @file compat_win32.cpp
+ * Compatibility functions for win32
+ *
+ * @author Ben Gardner
+ * @license GPL v2+
+ */
+
+#if defined (_WIN32) \
+ && !defined (__CYGWIN__)
+
+#include "windows_compat.h"
+
+#include <cstdio>
+#include <string>
+
+
+bool unc_getenv(const char *name, std::string &str)
+{
+ DWORD len = GetEnvironmentVariableA(name, NULL, 0);
+ char *buf;
+
+ if (len == 0)
+ {
+ if (GetLastError() == ERROR_ENVVAR_NOT_FOUND)
+ {
+ return(false);
+ }
+ }
+ buf = (char *)malloc(len);
+
+ if (buf)
+ {
+ len = GetEnvironmentVariableA(name, buf, len);
+ }
+ buf[len] = 0;
+
+ str = buf;
+ //printf("%s: name=%s len=%zu value=%s\n", __func__, name, len, str.c_str());
+ free(buf);
+
+ return(true);
+}
+
+
+bool unc_homedir(std::string &home)
+{
+ if (unc_getenv("HOME", home))
+ {
+ return(true);
+ }
+
+ if (unc_getenv("USERPROFILE", home))
+ {
+ return(true);
+ }
+ std::string hd, hp;
+
+ if ( unc_getenv("HOMEDRIVE", hd)
+ && unc_getenv("HOMEPATH", hp))
+ {
+ home = hd + hp;
+ return(true);
+ }
+ return(false);
+}
+
+
+void convert_log_zu2lu(char *fmt)
+{
+ for (size_t i = 0; i < strlen(fmt); i++)
+ {
+ if ( (fmt[i] == '%')
+ && (fmt[i + 1] == 'z')
+ && (fmt[i + 2] == 'u'))
+ {
+ fmt[i + 1] = 'l';
+ }
+ }
+}
+
+#endif /* if defined(_WIN32) && !defined(__CYGWIN__) */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/config.h.in b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/config.h.in
index 4270a733..4270a733 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/config.h.in
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/config.h.in
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/cs_top_is_question.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/cs_top_is_question.cpp
new file mode 100644
index 00000000..4fd2fd66
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/cs_top_is_question.cpp
@@ -0,0 +1,20 @@
+/**
+ * @file cs_top_is_question.cpp
+ *
+ * @author Guy Maurel
+ * @license GPL v2+
+ * extract from combine.cpp
+ */
+
+#include "cs_top_is_question.h"
+
+#include "chunk.h"
+
+
+bool cs_top_is_question(ChunkStack &cs, size_t level)
+{
+ Chunk *pc = cs.Empty() ? nullptr : cs.Top()->m_pc;
+
+ return( chunk_is_token(pc, CT_QUESTION)
+ && pc->level == level);
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/cs_top_is_question.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/cs_top_is_question.h
index de6ace3e..de6ace3e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/cs_top_is_question.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/cs_top_is_question.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/detect.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/detect.cpp
new file mode 100644
index 00000000..b7fc17ca
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/detect.cpp
@@ -0,0 +1,439 @@
+/**
+ * @file detect.cpp
+ * Scans the parsed file and tries to determine options.
+ *
+ * @author Ben Gardner
+ * @license GPL v2+
+ */
+
+#include "detect.h"
+
+#include "prototypes.h"
+
+
+using namespace uncrustify;
+
+
+//! Detect spacing options
+static void detect_space_options(void);
+
+
+class sp_votes
+{
+protected:
+ size_t m_add = 0;
+ size_t m_remove = 0;
+ size_t m_force = 0;
+ Option<iarf_e> &m_option;
+
+public:
+ sp_votes(Option<iarf_e> &opt)
+ : m_option(opt)
+ {}
+
+ //! Figure out the result of the vote and maybe update *m_av
+ ~sp_votes();
+
+ void vote(Chunk *first, Chunk *second);
+};
+
+
+void sp_votes::vote(Chunk *first, Chunk *second)
+{
+ if ( first == nullptr
+ || chunk_is_newline(first)
+ || second == nullptr
+ || chunk_is_newline(second))
+ {
+ return;
+ }
+ int col_dif = second->column - (first->column + first->Len());
+
+ if (col_dif == 0)
+ {
+ m_remove++;
+ }
+ else if (col_dif == 1)
+ {
+ m_force++;
+ }
+ else
+ {
+ m_add++;
+ }
+}
+
+
+//! Figure out the result of the vote and maybe update *m_av
+sp_votes::~sp_votes()
+{
+ // no change if no items were added
+ if ( m_remove == 0
+ && m_add == 0
+ && m_force == 0)
+ {
+ return;
+ }
+
+ if (m_remove == 0)
+ {
+ m_option = (m_force > m_add) ? IARF_FORCE : IARF_ADD;
+ }
+ else if ( m_force == 0
+ && m_add == 0)
+ {
+ m_option = IARF_REMOVE;
+ }
+ else
+ {
+ // nothing conclusive. do not alter.
+ }
+}
+
+
+// generates "vote_sp_xxx" variable name from uncrustify option name "UO_xxx"
+#define SP_VOTE_VAR(x) sp_votes vote_ ## x(options::x)
+
+
+static void detect_space_options(void)
+{
+ SP_VOTE_VAR(sp_arith);
+ SP_VOTE_VAR(sp_before_assign);
+ SP_VOTE_VAR(sp_after_assign);
+ SP_VOTE_VAR(sp_enum_before_assign);
+ SP_VOTE_VAR(sp_enum_after_assign);
+ SP_VOTE_VAR(sp_bool);
+ SP_VOTE_VAR(sp_compare);
+ SP_VOTE_VAR(sp_inside_paren);
+ SP_VOTE_VAR(sp_paren_paren);
+ SP_VOTE_VAR(sp_paren_brace);
+ SP_VOTE_VAR(sp_before_ptr_star);
+ SP_VOTE_VAR(sp_before_unnamed_ptr_star);
+ SP_VOTE_VAR(sp_between_ptr_star);
+ SP_VOTE_VAR(sp_after_ptr_star);
+ SP_VOTE_VAR(sp_after_byref);
+ SP_VOTE_VAR(sp_before_byref);
+ SP_VOTE_VAR(sp_before_unnamed_byref);
+ SP_VOTE_VAR(sp_after_type);
+ SP_VOTE_VAR(sp_template_angle);
+ SP_VOTE_VAR(sp_before_angle);
+ SP_VOTE_VAR(sp_inside_angle);
+ SP_VOTE_VAR(sp_after_angle);
+ SP_VOTE_VAR(sp_angle_paren);
+ SP_VOTE_VAR(sp_angle_word);
+ SP_VOTE_VAR(sp_before_square);
+ SP_VOTE_VAR(sp_before_squares);
+ SP_VOTE_VAR(sp_inside_square);
+ SP_VOTE_VAR(sp_before_sparen);
+ SP_VOTE_VAR(sp_inside_sparen);
+ SP_VOTE_VAR(sp_after_sparen);
+ SP_VOTE_VAR(sp_sparen_brace);
+ SP_VOTE_VAR(sp_special_semi);
+ SP_VOTE_VAR(sp_before_semi);
+ SP_VOTE_VAR(sp_before_semi_for);
+ SP_VOTE_VAR(sp_before_semi_for_empty);
+ SP_VOTE_VAR(sp_after_semi_for_empty);
+ SP_VOTE_VAR(sp_after_comma);
+ SP_VOTE_VAR(sp_before_comma);
+ SP_VOTE_VAR(sp_after_class_colon);
+ SP_VOTE_VAR(sp_before_class_colon);
+ SP_VOTE_VAR(sp_inside_braces);
+ SP_VOTE_VAR(sp_inside_braces_empty);
+ SP_VOTE_VAR(sp_else_brace);
+ SP_VOTE_VAR(sp_brace_else);
+ SP_VOTE_VAR(sp_catch_brace);
+ SP_VOTE_VAR(sp_brace_catch);
+ SP_VOTE_VAR(sp_finally_brace);
+ SP_VOTE_VAR(sp_brace_finally);
+ SP_VOTE_VAR(sp_try_brace);
+ SP_VOTE_VAR(sp_getset_brace);
+
+ Chunk *prev = Chunk::GetHead();
+ Chunk *pc = prev->GetNext();
+ Chunk *next;
+
+ while (pc->IsNotNullChunk())
+ {
+ next = pc->GetNext();
+
+ if (next->IsNullChunk())
+ {
+ break;
+ }
+
+ if ( chunk_is_token(pc, CT_ARITH)
+ || chunk_is_token(pc, CT_SHIFT))
+ {
+ vote_sp_arith.vote(pc, next);
+ vote_sp_arith.vote(prev, pc);
+ }
+
+ if (chunk_is_token(pc, CT_ASSIGN))
+ {
+ if (!pc->flags.test(PCF_IN_ENUM))
+ {
+ vote_sp_before_assign.vote(prev, pc);
+ vote_sp_after_assign.vote(pc, next);
+ }
+ else
+ {
+ vote_sp_enum_before_assign.vote(prev, pc);
+ vote_sp_enum_after_assign.vote(pc, next);
+ }
+ }
+
+ if (chunk_is_token(pc, CT_SQUARE_OPEN))
+ {
+ vote_sp_before_square.vote(prev, pc);
+ vote_sp_inside_square.vote(pc, next);
+ }
+
+ if (chunk_is_token(pc, CT_SQUARE_CLOSE))
+ {
+ vote_sp_inside_square.vote(prev, pc);
+ }
+
+ if (chunk_is_token(pc, CT_TSQUARE))
+ {
+ vote_sp_before_squares.vote(prev, pc);
+ }
+
+ if (chunk_is_token(pc, CT_BOOL))
+ {
+ vote_sp_bool.vote(prev, pc);
+ vote_sp_bool.vote(pc, next);
+ }
+
+ if (chunk_is_token(pc, CT_COMPARE))
+ {
+ vote_sp_compare.vote(prev, pc);
+ vote_sp_compare.vote(pc, next);
+ }
+
+ if (chunk_is_token(pc, CT_PAREN_CLOSE))
+ {
+ vote_sp_inside_paren.vote(prev, pc);
+ }
+
+ if (chunk_is_token(pc, CT_PAREN_OPEN))
+ {
+ vote_sp_inside_paren.vote(pc, next);
+ }
+
+ if ( ( chunk_is_paren_open(pc)
+ && chunk_is_paren_open(next))
+ || ( chunk_is_paren_close(pc)
+ && chunk_is_paren_close(next)))
+ {
+ vote_sp_paren_paren.vote(pc, next);
+ }
+
+ if ( chunk_is_paren_close(pc)
+ && chunk_is_token(next, CT_BRACE_OPEN))
+ {
+ vote_sp_paren_brace.vote(pc, next);
+ }
+
+ if (chunk_is_token(pc, CT_PTR_TYPE))
+ {
+ if (chunk_is_token(prev, CT_PTR_TYPE))
+ {
+ vote_sp_between_ptr_star.vote(prev, pc);
+ }
+ else if (next->type != CT_WORD)
+ {
+ vote_sp_before_unnamed_ptr_star.vote(prev, pc);
+ }
+ else
+ {
+ vote_sp_before_ptr_star.vote(prev, pc);
+ }
+
+ if (CharTable::IsKw1(next->str[0]))
+ {
+ vote_sp_after_ptr_star.vote(pc, next);
+ }
+ }
+
+ if (chunk_is_token(pc, CT_BYREF))
+ {
+ if (next->type != CT_WORD)
+ {
+ vote_sp_before_unnamed_byref.vote(prev, pc);
+ }
+ else
+ {
+ vote_sp_before_byref.vote(prev, pc);
+ }
+ vote_sp_after_byref.vote(pc, next);
+ }
+
+ if ( pc->type != CT_PTR_TYPE
+ && ( chunk_is_token(prev, CT_QUALIFIER)
+ || chunk_is_token(prev, CT_TYPE)))
+ {
+ vote_sp_after_type.vote(prev, pc);
+ }
+
+ if (chunk_is_token(pc, CT_ANGLE_OPEN))
+ {
+ vote_sp_inside_angle.vote(pc, next);
+
+ if (chunk_is_token(prev, CT_TEMPLATE))
+ {
+ vote_sp_template_angle.vote(prev, pc);
+ }
+ else
+ {
+ vote_sp_before_angle.vote(prev, pc);
+ }
+ }
+
+ if (chunk_is_token(pc, CT_ANGLE_CLOSE))
+ {
+ vote_sp_inside_angle.vote(prev, pc);
+
+ if (chunk_is_paren_open(next))
+ {
+ vote_sp_angle_paren.vote(prev, pc);
+ }
+ else if ( chunk_is_token(next, CT_WORD)
+ || CharTable::IsKw1(next->str[0]))
+ {
+ vote_sp_angle_word.vote(prev, pc);
+ }
+ else
+ {
+ vote_sp_after_angle.vote(pc, next);
+ }
+ }
+
+ if (chunk_is_token(pc, CT_SPAREN_OPEN))
+ {
+ vote_sp_before_sparen.vote(prev, pc);
+ vote_sp_inside_sparen.vote(pc, next);
+ }
+
+ if (chunk_is_token(pc, CT_SPAREN_CLOSE))
+ {
+ vote_sp_inside_sparen.vote(prev, pc);
+
+ if (chunk_is_token(next, CT_BRACE_OPEN))
+ {
+ vote_sp_sparen_brace.vote(pc, next);
+ }
+ else
+ {
+ vote_sp_after_sparen.vote(pc, next);
+ }
+ }
+
+ if (chunk_is_token(pc, CT_SEMICOLON))
+ {
+ if (get_chunk_parent_type(pc) == CT_FOR)
+ {
+ if (chunk_is_token(prev, CT_SPAREN_OPEN))
+ {
+ // empty, ie for (;;)
+ // ^ is prev
+ // ^ is pc
+ vote_sp_before_semi_for_empty.vote(prev, pc);
+ }
+ else if (chunk_is_token(next, CT_SPAREN_CLOSE))
+ {
+ // empty, ie for (;;)
+ // ^ is pc
+ // ^ is next
+ vote_sp_after_semi_for_empty.vote(pc, next);
+ }
+ else if (prev->type != CT_SEMICOLON)
+ {
+ // empty, ie for (; i < 8;)
+ // ^ is pc
+ // or
+ // ^ is prev
+ vote_sp_before_semi_for.vote(prev, pc);
+ }
+ }
+ else if (chunk_is_token(prev, CT_VBRACE_OPEN))
+ {
+ vote_sp_special_semi.vote(prev->GetPrev(), pc);
+ }
+ else
+ {
+ vote_sp_before_semi.vote(prev, pc);
+ }
+ }
+
+ if (chunk_is_token(pc, CT_COMMA))
+ {
+ vote_sp_before_comma.vote(prev, pc);
+ vote_sp_after_comma.vote(pc, next);
+ }
+
+ if (chunk_is_token(pc, CT_CLASS_COLON))
+ {
+ vote_sp_before_class_colon.vote(prev, pc);
+ vote_sp_after_class_colon.vote(pc, next);
+ }
+
+ if (chunk_is_token(pc, CT_BRACE_OPEN))
+ {
+ if (chunk_is_token(prev, CT_ELSE))
+ {
+ vote_sp_else_brace.vote(prev, pc);
+ }
+ else if (chunk_is_token(prev, CT_CATCH))
+ {
+ vote_sp_catch_brace.vote(prev, pc);
+ }
+ else if (chunk_is_token(prev, CT_FINALLY))
+ {
+ vote_sp_catch_brace.vote(prev, pc);
+ }
+ else if (chunk_is_token(prev, CT_TRY))
+ {
+ vote_sp_catch_brace.vote(prev, pc);
+ }
+ else if (chunk_is_token(prev, CT_GETSET))
+ {
+ vote_sp_catch_brace.vote(prev, pc);
+ }
+
+ if (chunk_is_token(next, CT_BRACE_CLOSE))
+ {
+ vote_sp_inside_braces_empty.vote(pc, next);
+ }
+ else
+ {
+ vote_sp_inside_braces.vote(pc, next);
+ }
+ }
+
+ if (chunk_is_token(pc, CT_BRACE_CLOSE))
+ {
+ vote_sp_inside_braces.vote(prev, pc);
+
+ if (chunk_is_token(next, CT_ELSE))
+ {
+ vote_sp_brace_else.vote(pc, next);
+ }
+ else if (chunk_is_token(next, CT_CATCH))
+ {
+ vote_sp_brace_catch.vote(pc, next);
+ }
+ else if (chunk_is_token(next, CT_FINALLY))
+ {
+ vote_sp_brace_finally.vote(pc, next);
+ }
+ }
+ prev = pc;
+ pc = next;
+ }
+} // detect_space_options
+
+
+void detect_options(void)
+{
+ detect_space_options();
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/detect.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/detect.h
index 5c6ec1e2..5c6ec1e2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/detect.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/detect.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/enum_cleanup.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/enum_cleanup.cpp
new file mode 100644
index 00000000..f91a1a2a
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/enum_cleanup.cpp
@@ -0,0 +1,96 @@
+/**
+ * @file enum_cleanup.cpp
+ * works on the last comma withing enum
+ *
+ * @author Guy Maurel Juli 2018
+ * @license GPL v2+
+ */
+
+#include "enum_cleanup.h"
+
+#include "log_rules.h"
+
+constexpr static auto LCURRENT = LTOK;
+
+using namespace uncrustify;
+
+
+void enum_cleanup(void)
+{
+ LOG_FUNC_ENTRY();
+
+ log_rule_B("mod_enum_last_comma");
+
+ if (options::mod_enum_last_comma() == IARF_IGNORE)
+ {
+ // nothing to do
+ return;
+ }
+ Chunk *pc = Chunk::GetHead(); // Issue #858
+
+ while (pc->IsNotNullChunk())
+ {
+ if ( get_chunk_parent_type(pc) == CT_ENUM
+ && chunk_is_token(pc, CT_BRACE_CLOSE))
+ {
+ LOG_FMT(LTOK, "%s(%d): orig_line is %zu, type is %s\n",
+ __func__, __LINE__, pc->orig_line, get_token_name(pc->type));
+ Chunk *prev = pc->GetPrevNcNnl(); // Issue #3604
+
+ if ( prev != nullptr
+ && prev->IsNotNullChunk())
+ {
+ if (chunk_is_token(prev, CT_COMMA))
+ {
+ log_rule_B("mod_enum_last_comma");
+
+ if (options::mod_enum_last_comma() == IARF_REMOVE)
+ {
+ chunk_del(prev);
+ }
+ }
+ else
+ {
+ if (chunk_is_token(prev, CT_BRACE_OPEN)) // Issue #2902
+ {
+ // nothing between CT_BRACE_OPEN and CT_BRACE_CLOSE
+ }
+ else
+ {
+ log_rule_B("mod_enum_last_comma");
+
+ if ( options::mod_enum_last_comma() == IARF_ADD
+ || options::mod_enum_last_comma() == IARF_FORCE)
+ {
+ // create a comma
+ Chunk comma;
+ set_chunk_type(&comma, CT_COMMA);
+ comma.orig_line = prev->orig_line;
+ comma.orig_col = prev->orig_col + 1;
+ comma.nl_count = 0;
+ comma.pp_level = 0;
+ comma.flags = PCF_NONE;
+ comma.str = ",";
+
+ if (chunk_is_token(prev, CT_PP_ENDIF)) // Issue #3604
+ {
+ prev = prev->GetPrevNcNnlNpp();
+ }
+
+ if (chunk_is_token(prev, CT_COMMA)) // Issue #3604
+ {
+ // nothing to do
+ }
+ else
+ {
+ chunk_add_after(&comma, prev);
+ }
+ pc = pc->GetNext();
+ }
+ }
+ }
+ }
+ }
+ pc = pc->GetNext();
+ }
+} // enum_cleanup
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/enum_cleanup.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/enum_cleanup.h
index 3853c8ea..3853c8ea 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/enum_cleanup.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/enum_cleanup.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/enum_flags.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/enum_flags.h
index badd8226..badd8226 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/enum_flags.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/enum_flags.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/error_types.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/error_types.h
new file mode 100644
index 00000000..4b162768
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/error_types.h
@@ -0,0 +1,53 @@
+/**
+ * @file error_types.h
+ *
+ * Defines the error codes that are used throughout uncrustify
+ *
+ * @license GPL v2+
+ */
+#ifndef ERROR_TYPES_H_INCLUDED
+#define ERROR_TYPES_H_INCLUDED
+
+#if 1
+#include <stdlib.h> // provides EXIT_SUCCESS and EXIT FAILURE
+
+// TODO: if we decided to only use EX_OK and EX_xxx we can avoid including stdlib.h here
+
+#else
+// TODO: I left this to show my modifications remove it after the PR was reviewed
+
+// the good old SUCCESS/FAILURE
+#define SUCCESS 0 //! same as EX_OK */
+#define FAILURE -1 //! incompatible to EXIT_FAILURE
+#endif
+
+
+#if defined (WIN32) || defined (__QNXNTO__)
+// Windows does not know sysexists.h. Thus define the error codes
+
+#define EX_OK 0 //! successful termination
+#define EX__BASE 64 //! base value for error messages
+#define EX_USAGE 64 //! command line usage error
+#define EX_DATAERR 65 //! data format error
+#define EX_NOINPUT 66 //! cannot open input
+#define EX_NOUSER 67 //! addressee unknown
+#define EX_NOHOST 68 //! host name unknown
+#define EX_UNAVAILABLE 69 //! service unavailable
+#define EX_SOFTWARE 70 //! internal software error
+#define EX_OSERR 71 //! system error (e.g., can't fork)
+#define EX_OSFILE 72 //! critical OS file missing
+#define EX_CANTCREAT 73 //! can't create (user) output file
+#define EX_IOERR 74 //! input/output error
+#define EX_TEMPFAIL 75 //! temp failure; user is invited to retry
+#define EX_PROTOCOL 76 //! remote error in protocol
+#define EX_NOPERM 77 //! permission denied
+#define EX_CONFIG 78 //! configuration error
+#define EX__MAX 78 //! maximum listed value
+
+#else // not WIN32 or not __QNXNTO__
+// TODO: do all non windows systems know sysexits.h?
+// Linux knows: /usr/include/sysexits.h
+#include "sysexits.h" // comes from BSD
+#endif
+
+#endif /* ERROR_TYPES_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/flag_braced_init_list.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/flag_braced_init_list.cpp
new file mode 100644
index 00000000..8a5cbf3f
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/flag_braced_init_list.cpp
@@ -0,0 +1,110 @@
+/**
+ * @file flag_braced_init_list.cpp
+ *
+ * @license GPL v2+
+ */
+
+#include "chunk.h"
+
+#include "flag_braced_init_list.h"
+
+#include "uncrustify.h"
+
+
+bool detect_cpp_braced_init_list(Chunk *pc, Chunk *next)
+{
+ LOG_FUNC_ENTRY();
+ // Issue #2332
+ bool we_have_a_case_before = false;
+
+ if (chunk_is_token(pc, CT_COLON))
+ {
+ // check if we have a case before
+ Chunk *switch_before = pc->GetPrevType(CT_CASE, pc->level);
+
+ if (switch_before->IsNotNullChunk())
+ {
+ LOG_FMT(LFCNR, "%s(%d): switch_before->orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s\n",
+ __func__, __LINE__, switch_before->orig_line, switch_before->orig_col,
+ switch_before->Text(), get_token_name(switch_before->type));
+ we_have_a_case_before = true;
+ }
+ }
+
+ // Detect a braced-init-list
+ if ( chunk_is_token(pc, CT_WORD)
+ || chunk_is_token(pc, CT_TYPE)
+ || chunk_is_token(pc, CT_ASSIGN)
+ || chunk_is_token(pc, CT_RETURN)
+ || chunk_is_token(pc, CT_COMMA)
+ || chunk_is_token(pc, CT_ANGLE_CLOSE)
+ || chunk_is_token(pc, CT_SQUARE_CLOSE)
+ || chunk_is_token(pc, CT_TSQUARE)
+ || chunk_is_token(pc, CT_FPAREN_OPEN)
+ || chunk_is_token(pc, CT_QUESTION)
+ || ( chunk_is_token(pc, CT_COLON)
+ && !we_have_a_case_before)
+ || ( chunk_is_token(pc, CT_BRACE_OPEN)
+ && ( get_chunk_parent_type(pc) == CT_NONE
+ || get_chunk_parent_type(pc) == CT_BRACED_INIT_LIST)))
+ {
+ LOG_FMT(LFCNR, "%s(%d): orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s\n ",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type));
+ log_pcf_flags(LFCNR, pc->flags);
+ auto brace_open = pc->GetNextNcNnl();
+
+ if ( chunk_is_token(brace_open, CT_BRACE_OPEN)
+ && ( get_chunk_parent_type(brace_open) == CT_NONE
+ || get_chunk_parent_type(brace_open) == CT_ASSIGN
+ || get_chunk_parent_type(brace_open) == CT_RETURN
+ || get_chunk_parent_type(brace_open) == CT_BRACED_INIT_LIST))
+ {
+ log_pcf_flags(LFCNR, brace_open->flags);
+ auto brace_close = chunk_skip_to_match(next);
+
+ if (chunk_is_token(brace_close, CT_BRACE_CLOSE))
+ {
+ return(true);
+ }
+ }
+ }
+ return(false);
+} // detect_cpp_braced_init_list
+
+
+void flag_cpp_braced_init_list(Chunk *pc, Chunk *next)
+{
+ auto brace_open = pc->GetNextNcNnl();
+ auto brace_close = chunk_skip_to_match(next);
+
+ set_chunk_parent(brace_open, CT_BRACED_INIT_LIST);
+ set_chunk_parent(brace_close, CT_BRACED_INIT_LIST);
+
+ auto *tmp = brace_close->GetNextNcNnl();
+
+ if (tmp->IsNotNullChunk())
+ {
+ chunk_flags_clr(tmp, PCF_EXPR_START | PCF_STMT_START);
+
+ // Flag call operator
+ if (chunk_is_token(tmp, CT_PAREN_OPEN))
+ {
+ if (auto *const c = chunk_skip_to_match(tmp))
+ {
+ set_chunk_type(tmp, CT_FPAREN_OPEN);
+ set_chunk_parent(tmp, CT_FUNC_CALL);
+ set_chunk_type(c, CT_FPAREN_CLOSE);
+ set_chunk_parent(c, CT_FUNC_CALL);
+ }
+ }
+ }
+ // TODO: Change pc->type CT_WORD -> CT_TYPE
+ // for the case CT_ASSIGN (and others).
+
+ // TODO: Move this block to the fix_fcn_call_args function.
+ if ( chunk_is_token(pc, CT_WORD)
+ && pc->flags.test(PCF_IN_FCN_CALL))
+ {
+ set_chunk_type(pc, CT_TYPE);
+ }
+} // flag_cpp_braced_init_list
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/flag_braced_init_list.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/flag_braced_init_list.h
new file mode 100644
index 00000000..8d89dd08
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/flag_braced_init_list.h
@@ -0,0 +1,25 @@
+/**
+ * @file flag_braced_init_list.h
+ *
+ * @license GPL v2+
+ */
+
+#ifndef FLAG_BRACED_INIT_LIST_INCLUDED
+#define FLAG_BRACED_INIT_LIST_INCLUDED
+
+
+/**
+ * Detect a cpp braced init list
+ */
+bool detect_cpp_braced_init_list(Chunk *pc, Chunk *next);
+
+
+/**
+ * Flags the opening and closing braces of an expression deemed to be
+ * a cpp braced initializer list; a call to detect_cpp_braced_init_list()
+ * should first be made prior to calling this function
+ */
+void flag_cpp_braced_init_list(Chunk *pc, Chunk *next);
+
+
+#endif
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/flag_decltype.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/flag_decltype.cpp
new file mode 100644
index 00000000..a3036f81
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/flag_decltype.cpp
@@ -0,0 +1,46 @@
+/**
+ * @file flag_decltype.cpp
+ *
+ * @license GPL v2+
+ */
+
+#include "chunk.h"
+
+
+bool flag_cpp_decltype(Chunk *pc)
+{
+ LOG_FUNC_ENTRY();
+
+ if (chunk_is_token(pc, CT_DECLTYPE))
+ {
+ auto paren_open = pc->GetNextNcNnl();
+
+ if (chunk_is_token(paren_open, CT_PAREN_OPEN))
+ {
+ // We would like to simply call chunk_skip_to_match(), but it finds
+ // a match based on level, and the level is 0 for all chunks in some
+ // cases, like the following example.
+ //
+ // template <typename T>
+ // decltype(std::declval<T &>().put(foo), std::true_type())
+ // has_something(Tag<2>);
+ //
+ // This means that IN_DECLTYPE is only set for tokens through the
+ // closing parenthesis right before ".put" in the above example.
+ //
+ // So, we will manually look for the matching closing parenthesis.
+ chunk_flags_set(paren_open, PCF_IN_DECLTYPE);
+ pc = paren_open->GetNextNcNnl();
+
+ for (int level = 1; pc->IsNotNullChunk() && level > 0; pc = pc->GetNextNcNnl())
+ {
+ level += chunk_is_token(pc, CT_PAREN_OPEN);
+ level -= chunk_is_token(pc, CT_PAREN_CLOSE);
+ chunk_flags_set(pc, PCF_IN_DECLTYPE);
+ }
+
+ return(pc->IsNotNullChunk());
+ }
+ }
+ return(false);
+} // mark_cpp_decltype
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/flag_decltype.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/flag_decltype.h
new file mode 100644
index 00000000..80677c8e
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/flag_decltype.h
@@ -0,0 +1,20 @@
+/**
+ * @file flag_decltype.h
+ *
+ * @license GPL v2+
+ */
+
+#ifndef FLAG_DECLTYPE_INCLUDED
+#define FLAG_DECLTYPE_INCLUDED
+
+
+/**
+ * Flags all chunks within a cpp decltype expression from the opening
+ * brace to the closing brace
+ *
+ * @return Returns true if expression is a valid decltype expression
+ */
+bool flag_cpp_decltype(Chunk *pc);
+
+
+#endif
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/flag_parens.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/flag_parens.cpp
new file mode 100644
index 00000000..0f881553
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/flag_parens.cpp
@@ -0,0 +1,72 @@
+/**
+ * @file flag_parens.cpp
+ *
+ * @author Guy Maurel
+ * @license GPL v2+
+ */
+
+#include "flag_parens.h"
+
+#include "uncrustify.h"
+
+
+Chunk *flag_parens(Chunk *po, pcf_flags_t flags, E_Token opentype, E_Token parenttype, bool parent_all)
+{
+ LOG_FUNC_ENTRY();
+ Chunk *paren_close;
+
+ paren_close = chunk_skip_to_match(po, E_Scope::PREPROC);
+
+ if (paren_close == nullptr)
+ {
+ LOG_FMT(LERR, "%s(%d): no match for '%s' at [%zu:%zu]",
+ __func__, __LINE__, po->Text(), po->orig_line, po->orig_col);
+ log_func_stack_inline(LERR);
+ cpd.error_count++;
+ return(nullptr);
+ }
+ LOG_FMT(LFLPAREN, "%s(%d): between po is '%s', orig_line is %zu, orig_col is %zu, and\n",
+ __func__, __LINE__, po->Text(), po->orig_line, po->orig_col);
+ LOG_FMT(LFLPAREN, "%s(%d): paren_close is '%s', orig_line is %zu, orig_col is %zu, type is %s, parent_type is %s\n",
+ __func__, __LINE__, paren_close->Text(), paren_close->orig_line, paren_close->orig_col,
+ get_token_name(opentype), get_token_name(parenttype));
+ log_func_stack_inline(LFLPAREN);
+
+ // the last chunk must be also modified. Issue #2149
+ Chunk *after_paren_close = paren_close->GetNext();
+
+ if (po != paren_close)
+ {
+ if ( flags != PCF_NONE
+ || ( parent_all
+ && parenttype != CT_NONE))
+ {
+ Chunk *pc;
+
+ for (pc = po->GetNext(E_Scope::PREPROC);
+ pc != nullptr && pc->IsNotNullChunk() && pc != after_paren_close;
+ pc = pc->GetNext(E_Scope::PREPROC))
+ {
+ chunk_flags_set(pc, flags);
+
+ if (parent_all)
+ {
+ set_chunk_parent(pc, parenttype);
+ }
+ }
+ }
+
+ if (opentype != CT_NONE)
+ {
+ set_chunk_type(po, opentype);
+ set_chunk_type(paren_close, (E_Token)(opentype + 1));
+ }
+
+ if (parenttype != CT_NONE)
+ {
+ set_chunk_parent(po, parenttype);
+ set_chunk_parent(paren_close, parenttype);
+ }
+ }
+ return(paren_close->GetNextNcNnl(E_Scope::PREPROC));
+} // flag_parens
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/flag_parens.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/flag_parens.h
new file mode 100644
index 00000000..a093886c
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/flag_parens.h
@@ -0,0 +1,28 @@
+/**
+ * @file flag_parens.h
+ *
+ * @author Guy Maurel
+ * @license GPL v2+
+ */
+
+#ifndef FLAG_PARENS_H_INCLUDED
+#define FLAG_PARENS_H_INCLUDED
+
+#include "chunk.h"
+
+
+/**
+ * Flags everything from the open paren to the close paren.
+ *
+ * @param po Pointer to the open parenthesis
+ * @param flags flags to add
+ * @param opentype
+ * @param parenttype
+ * @param parent_all
+ *
+ * @return The token after the close paren
+ */
+Chunk *flag_parens(Chunk *po, pcf_flags_t flags, E_Token opentype, E_Token parenttype, bool parent_all);
+
+
+#endif /* FLAG_PARENS_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/frame_list.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/frame_list.cpp
new file mode 100644
index 00000000..36c11020
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/frame_list.cpp
@@ -0,0 +1,345 @@
+/**
+ * @file frame_list.cpp
+ * mainly used to handle preprocessor stuff
+ *
+ * @author Ben Gardner
+ * @license GPL v2+
+ */
+
+#include "frame_list.h"
+
+#include "prototypes.h"
+
+
+namespace
+{
+
+void fl_log_frms(log_sev_t logsev, const char *txt, const ParseFrame &frm, const std::vector<ParseFrame> &frames);
+
+
+//! Logs the entire parse frame stack
+void fl_log_all(log_sev_t logsev, const std::vector<ParseFrame> &frames);
+
+
+/**
+ * Copy the top element of the frame list into the ParseFrame.
+ *
+ * If the frame list is empty nothing happens.
+ *
+ * This is called on #else and #elif.
+ */
+void fl_copy_tos(ParseFrame &pf, const std::vector<ParseFrame> &frames);
+
+
+/**
+ * Copy the 2nd top element off the list into the ParseFrame.
+ * This is called on #else and #elif.
+ * The stack contains [...] [base] [if] at this point.
+ * We want to copy [base].
+ */
+void fl_copy_2nd_tos(ParseFrame &pf, const std::vector<ParseFrame> &frames);
+
+
+//! Deletes the top element from the list.
+void fl_trash_tos(std::vector<ParseFrame> &frames);
+
+
+//! Logs one parse frame
+void fl_log(log_sev_t logsev, const ParseFrame &frm)
+{
+ LOG_FMT(logsev, "[%s] BrLevel=%zu Level=%zu PseTos=%zu\n",
+ get_token_name(frm.in_ifdef), frm.brace_level, frm.level, frm.size() - 1);
+
+ LOG_FMT(logsev, " *");
+
+ for (size_t idx = 1; idx < frm.size(); idx++)
+ {
+ LOG_FMT(logsev, " [%s-%s]", get_token_name(frm.at(idx).type),
+ get_brace_stage_name(frm.at(idx).stage));
+ }
+
+ LOG_FMT(logsev, "\n");
+}
+
+
+void fl_log_frms(log_sev_t logsev,
+ const char *txt,
+ const ParseFrame &frm,
+ const std::vector<ParseFrame> &frames)
+{
+ LOG_FMT(logsev, "%s Parse Frames(%zu):", txt, frames.size());
+
+ for (size_t idx = 0; idx < frames.size(); idx++)
+ {
+ LOG_FMT(logsev, " [%s-%zu]", get_token_name(frames.at(idx).in_ifdef),
+ frames.at(idx).ref_no);
+ }
+
+ LOG_FMT(logsev, "-[%s-%zu]\n", get_token_name(frm.in_ifdef), frm.ref_no);
+}
+
+
+void fl_log_all(log_sev_t logsev, const std::vector<ParseFrame> &frames)
+{
+ LOG_FMT(logsev, "##=- Parse Frame : %zu entries\n", frames.size());
+
+ for (size_t idx = 0; idx < frames.size(); idx++)
+ {
+ LOG_FMT(logsev, "## idx is %zu, ", idx);
+
+ fl_log(logsev, frames.at(idx));
+ }
+
+ LOG_FMT(logsev, "##=-\n");
+}
+
+
+void fl_copy_tos(ParseFrame &pf, const std::vector<ParseFrame> &frames)
+{
+ if (!frames.empty())
+ {
+ pf = *std::prev(std::end(frames));
+ }
+ LOG_FMT(LPF, "%s(%d): frame_count is %zu\n", __func__, __LINE__, frames.size());
+}
+
+
+void fl_copy_2nd_tos(ParseFrame &pf, const std::vector<ParseFrame> &frames)
+{
+ if (frames.size() > 1)
+ {
+ pf = *std::prev(std::end(frames), 2);
+ }
+ LOG_FMT(LPF, "%s(%d): frame_count is %zu\n", __func__, __LINE__, frames.size());
+}
+
+
+void fl_trash_tos(std::vector<ParseFrame> &frames)
+{
+ if (!frames.empty())
+ {
+ frames.pop_back();
+ }
+ LOG_FMT(LPF, "%s(%d): frame_count is %zu\n", __func__, __LINE__, frames.size());
+}
+
+} // namespace
+
+
+void fl_push(std::vector<ParseFrame> &frames, ParseFrame &frm)
+{
+ static int ref_no = 1;
+
+ frames.push_back(frm);
+ frm.ref_no = ref_no++;
+
+ LOG_FMT(LPF, "%s(%d): frame_count is %zu\n", __func__, __LINE__, frames.size());
+}
+
+
+void fl_pop(std::vector<ParseFrame> &frames, ParseFrame &pf)
+{
+ if (frames.empty())
+ {
+ return;
+ }
+ fl_copy_tos(pf, frames);
+ fl_trash_tos(frames);
+}
+
+
+int fl_check(std::vector<ParseFrame> &frames, ParseFrame &frm, int &pp_level, Chunk *pc)
+{
+ if (pc->type != CT_PREPROC)
+ {
+ return(pp_level);
+ }
+ Chunk *next = pc->GetNext();
+
+ if (next->IsNullChunk())
+ {
+ return(pp_level);
+ }
+
+ if (get_chunk_parent_type(pc) != next->type)
+ {
+ LOG_FMT(LNOTE, "%s(%d): Preproc parent not set correctly on orig_line %zu: got %s expected %s\n",
+ __func__, __LINE__, pc->orig_line, get_token_name(get_chunk_parent_type(pc)),
+ get_token_name(next->type));
+ set_chunk_parent(pc, next->type);
+ }
+ LOG_FMT(LPFCHK, "%s(%d): orig_line is %zu, %s\n",
+ __func__, __LINE__, pc->orig_line, get_token_name(get_chunk_parent_type(pc)));
+ fl_log_frms(LPFCHK, "TOP", frm, frames);
+
+
+ int out_pp_level = pp_level;
+ const E_Token in_ifdef = frm.in_ifdef;
+ const size_t b4_cnt = frames.size();
+
+ const char *txt = nullptr;
+
+ if (pc->flags.test(PCF_IN_PREPROC))
+ {
+ LOG_FMT(LPF, " <In> ");
+ fl_log(LPF, frm);
+
+ if (get_chunk_parent_type(pc) == CT_PP_IF)
+ {
+ // An #if pushes a copy of the current frame on the stack
+ pp_level++;
+ fl_push(frames, frm);
+ frm.in_ifdef = CT_PP_IF;
+ txt = "if-push";
+ }
+ else if (get_chunk_parent_type(pc) == CT_PP_ELSE)
+ {
+ if (out_pp_level == 0)
+ {
+ fprintf(stderr, "%s(%d): pp_level is ZERO, cannot be decremented, at line %zu, column %zu\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col);
+ log_flush(true);
+ exit(EX_SOFTWARE);
+ }
+ out_pp_level--;
+
+ /*
+ * For #else of #elif, we want to keep the #if part and throw out the
+ * else parts.
+ * We check to see what the top type is to see if we just push or
+ * pop and then push.
+ * We need to use the copy right before the if.
+ */
+ bool if_block = false;
+
+ if (frm.in_ifdef == CT_PP_IF)
+ {
+ // we have [...] [base]-[if], so push an [else]
+ fl_push(frames, frm);
+ frm.in_ifdef = CT_PP_ELSE;
+ if_block = true;
+ }
+ size_t brace_level = frm.brace_level;
+ // we have [...] [base] [if]-[else], copy [base] over [else]
+ fl_copy_2nd_tos(frm, frames);
+ frm.in_ifdef = CT_PP_ELSE;
+
+ if (if_block)
+ {
+ // check if #if block was unbalanced
+ size_t base_brace_level = frames[frames.size() - 2].brace_level;
+
+ if ( options::pp_warn_unbalanced_if()
+ && brace_level != base_brace_level)
+ {
+ LOG_FMT(LWARN, "%s(%d): orig_line is %zu, unbalanced #if block braces (1), in-level is %zu, out-level is %zu\n",
+ __func__, __LINE__, pc->orig_line, base_brace_level, brace_level);
+ }
+ }
+ else
+ {
+ // check if previous #else block has a different indentation than the corresponding #if block
+ size_t if_brace_level = frames[frames.size() - 1].brace_level;
+
+ if ( options::pp_warn_unbalanced_if()
+ && brace_level != if_brace_level)
+ {
+ LOG_FMT(LWARN, "%s(%d): orig_line is %zu, unbalanced #if-#else block braces (1), #else out-level is %zu, #if out-level is %zu\n",
+ __func__, __LINE__, pc->orig_line, brace_level, if_brace_level);
+ }
+ }
+ txt = "else-push";
+ }
+ else if (get_chunk_parent_type(pc) == CT_PP_ENDIF)
+ {
+ /*
+ * we may have [...] [base] [if]-[else] or [...] [base]-[if].
+ * Throw out the [else].
+ */
+ if (pp_level == 0)
+ {
+ // cpd.pp_level is ZERO, cannot be decremented.
+ fprintf(stderr, "%s(%d): #endif found, at line %zu, column %zu, without corresponding #if\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col);
+ log_flush(true);
+ exit(EX_SOFTWARE);
+ }
+ pp_level--;
+
+ if (out_pp_level == 0)
+ {
+ fprintf(stderr, "%s(%d): pp_level is ZERO, cannot be decremented, at line %zu, column %zu\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col);
+ log_flush(true);
+ exit(EX_SOFTWARE);
+ }
+ out_pp_level--;
+
+ if (frm.in_ifdef == CT_PP_ELSE)
+ {
+ size_t brace_level = frm.brace_level; // brace level or current #else block
+ /*
+ * We have: [...] [base] [if]-[else]
+ * We want: [...]-[if]
+ */
+ fl_copy_tos(frm, frames); // [...] [base] [if]-[if]
+
+ if ( options::pp_warn_unbalanced_if()
+ && brace_level != frm.brace_level)
+ {
+ LOG_FMT(LWARN, "%s(%d): orig_line is %zu, unbalanced #if-#else block braces (2), #else out-level is %zu, #if out-level is %zu\n",
+ __func__, __LINE__, pc->orig_line, brace_level, frm.brace_level);
+ }
+
+ if (frames.size() < 2)
+ {
+ fprintf(stderr, "Number of 'frame' is too small.\n");
+ fprintf(stderr, "Please make a report.\n");
+ log_flush(true);
+ exit(EX_SOFTWARE);
+ }
+ frm.in_ifdef = frames[frames.size() - 2].in_ifdef;
+ fl_trash_tos(frames); // [...] [base]-[if]
+ fl_trash_tos(frames); // [...]-[if]
+
+ txt = "endif-trash/pop";
+ }
+ else if (frm.in_ifdef == CT_PP_IF)
+ {
+ /*
+ * We have: [...] [base] [if]
+ * We want: [...] [base]
+ */
+ // check if #if block was unbalanced
+ size_t brace_level = frm.brace_level;
+ fl_pop(frames, frm);
+
+ if ( options::pp_warn_unbalanced_if()
+ && brace_level != frm.brace_level)
+ {
+ LOG_FMT(LWARN, "%s(%d): orig_line is %zu, unbalanced #if block braces (2), in-level is %zu, out-level is %zu\n",
+ __func__, __LINE__, pc->orig_line, frm.brace_level, brace_level);
+ }
+ txt = "endif-pop";
+ }
+ else
+ {
+ txt = "???";
+ }
+ }
+ }
+
+ if (txt != nullptr)
+ {
+ LOG_FMT(LPF, "%s(%d): orig_line is %zu, type is %s: %s in_ifdef is %s/%s, counts is %zu, frame_count is %zu\n",
+ __func__, __LINE__, pc->orig_line,
+ get_token_name(get_chunk_parent_type(pc)), txt, get_token_name(in_ifdef),
+ get_token_name(frm.in_ifdef), b4_cnt, frames.size());
+ fl_log_all(LPF, frames);
+ LOG_FMT(LPF, " <Out>");
+ fl_log(LPF, frm);
+ }
+ fl_log_frms(LPFCHK, "END", frm, frames);
+
+ return(out_pp_level);
+} // fl_check
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/frame_list.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/frame_list.h
new file mode 100644
index 00000000..5fd09a52
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/frame_list.h
@@ -0,0 +1,40 @@
+/**
+ * @file frame_list.h
+ * mainly used to handle preprocessor stuff
+ *
+ * @author Ben Gardner
+ * @license GPL v2+
+ */
+
+#ifndef PARSE_FRAME_H_INCLUDED
+#define PARSE_FRAME_H_INCLUDED
+
+#include "ParseFrame.h"
+#include "uncrustify_types.h"
+
+
+/**
+ * Push a copy of a ParseFrame onto the frames list.
+ * This is called on #if and #ifdef.
+ */
+void fl_push(std::vector<ParseFrame> &frames, ParseFrame &frm);
+
+
+/**
+ * Pop the top element off the frame list and copy it into the ParseFrame.
+ *
+ * Does nothing if the frame list is empty.
+ *
+ * This is called on #endif
+ */
+void fl_pop(std::vector<ParseFrame> &frames, ParseFrame &pf);
+
+
+// TODO: this name is dumb:
+// - what is it checking?
+// - why does is much more than simple checks, it allters kinds of stuff
+//! Returns the pp_indent to use for this line
+int fl_check(std::vector<ParseFrame> &frames, ParseFrame &frm, int &pp_level, Chunk *pc);
+
+
+#endif /* PARSE_FRAME_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/indent.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/indent.cpp
new file mode 100644
index 00000000..e23dc25c
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/indent.cpp
@@ -0,0 +1,4776 @@
+/**
+ * @file indent.cpp
+ * Does all the indenting stuff.
+ *
+ * @author Ben Gardner
+ * @author Guy Maurel October 2015- 2021
+ * @license GPL v2+
+ */
+
+#include "indent.h"
+
+#include "align.h"
+#include "frame_list.h"
+#include "options_for_QT.h"
+#include "prototypes.h"
+#include "quick_align_again.h"
+#include "space.h"
+
+#ifdef WIN32
+#include <algorithm> // to get max
+#endif // ifdef WIN32
+
+#ifdef IGNORE // WinBase.h
+#undef IGNORE
+#endif
+
+
+constexpr static auto LCURRENT = LINDENT;
+
+using namespace std;
+using namespace uncrustify;
+
+
+/**
+ * General indenting approach:
+ * Indenting levels are put into a stack.
+ *
+ * The stack entries contain:
+ * - opening type
+ * - brace column
+ * - continuation column
+ *
+ * Items that start a new stack item:
+ * - preprocessor (new parse frame)
+ * - Brace Open (Virtual brace also)
+ * - Paren, Square, Angle open
+ * - Assignments
+ * - C++ '<<' operator (ie, cout << "blah")
+ * - case
+ * - class colon
+ * - return
+ * - types
+ * - any other continued statement
+ *
+ * Note that the column of items marked 'PCF_WAS_ALIGNED' is not changed.
+ *
+ * For an open brace:
+ * - indent increases by indent_columns
+ * - if part of if/else/do/while/switch/etc, an extra indent may be applied
+ * - if in a paren, then cont-col is set to column + 1, ie "({ some code })"
+ *
+ * Open paren/square/angle:
+ * cont-col is set to the column of the item after the open paren, unless
+ * followed by a newline, then it is set to (brace-col + indent_columns).
+ * Examples:
+ * a_really_long_funcion_name(
+ * param1, param2);
+ * a_really_long_funcion_name(param1,
+ * param2);
+ *
+ * Assignments:
+ * Assignments are continued aligned with the first item after the assignment,
+ * unless the assign is followed by a newline.
+ * Examples:
+ * some.variable = asdf + asdf +
+ * asdf;
+ * some.variable =
+ * asdf + asdf + asdf;
+ *
+ * C++ << operator:
+ * Handled the same as assignment.
+ * Examples:
+ * cout << "this is test number: "
+ * << test_number;
+ *
+ * case:
+ * Started with case or default.
+ * Terminated with close brace at level or another case or default.
+ * Special indenting according to various rules.
+ * - indent of case label
+ * - indent of case body
+ * - how to handle optional braces
+ * Examples:
+ * {
+ * case x: {
+ * a++;
+ * break;
+ * }
+ * case y:
+ * b--;
+ * break;
+ * default:
+ * c++;
+ * break;
+ * }
+ *
+ * Class colon:
+ * Indent continuation by indent_columns:
+ * class my_class :
+ * baseclass1,
+ * baseclass2
+ * {
+ *
+ * Return: same as assignments
+ * If the return statement is not fully paren'd, then the indent continues at
+ * the column of the item after the return. If it is paren'd, then the paren
+ * rules apply.
+ * return somevalue +
+ * othervalue;
+ *
+ * Type: pretty much the same as assignments
+ * Examples:
+ * int foo,
+ * bar,
+ * baz;
+ *
+ * Any other continued item:
+ * There shouldn't be anything not covered by the above cases, but any other
+ * continued item is indented by indent_columns:
+ * Example:
+ * somereallycrazylongname.with[lotsoflongstuff].
+ * thatreallyannoysme.whenIhavetomaintain[thecode] = 3;
+ */
+
+/**
+ * REVISIT: This needs to be re-checked, maybe cleaned up
+ *
+ * Indents comments in a (hopefully) smart manner.
+ *
+ * There are two type of comments that get indented:
+ * - stand alone (ie, no tokens on the line before the comment)
+ * - trailing comments (last token on the line apart from a linefeed)
+ * + note that a stand-alone comment is a special case of a trailing
+ *
+ * The stand alone comments will get indented in one of three ways:
+ * - column 1:
+ * + There is an empty line before the comment AND the indent level is 0
+ * + The comment was originally in column 1
+ *
+ * - Same column as trailing comment on previous line (ie, aligned)
+ * + if originally within TBD (3) columns of the previous comment
+ *
+ * - syntax indent level
+ * + doesn't fit in the previous categories
+ *
+ * Options modify this behavior:
+ * - keep original column (don't move the comment, if possible)
+ * - keep relative column (move out the same amount as first item on line)
+ * - fix trailing comment in column TBD
+ *
+ * @param pc The comment, which is the first item on a line
+ * @param col The column if this is to be put at indent level
+ */
+static void indent_comment(Chunk *pc, size_t col);
+
+
+static size_t token_indent(E_Token type);
+
+
+static size_t calc_indent_continue(const ParseFrame &frm, size_t pse_tos);
+
+/**
+ * Get candidate chunk first on line to which OC blocks can be indented against.
+ */
+static Chunk *candidate_chunk_first_on_line(Chunk *pc);
+
+/**
+ * We are on a '{' that has parent = OC_BLOCK_EXPR
+ * find the column of the param tag
+ */
+static Chunk *oc_msg_block_indent(Chunk *pc, bool from_brace, bool from_caret, bool from_colon, bool from_keyword);
+
+
+/**
+ * returns true if forward or reverse scan reveals only single newlines or comments
+ * stops when hits code
+ * false if next thing hit is a closing brace, also if 2 newlines in a row
+ */
+static bool single_line_comment_indent_rule_applies(Chunk *start, bool forward);
+
+/**
+ * returns true if semicolon on the same level ends any assign operations
+ * false if next thing hit is not the end of an assign operation
+ */
+static bool is_end_of_assignment(Chunk *pc, const ParseFrame &frm);
+
+
+void indent_to_column(Chunk *pc, size_t column)
+{
+ LOG_FUNC_ENTRY();
+
+ if (column < pc->column)
+ {
+ column = pc->column;
+ }
+ reindent_line(pc, column);
+}
+
+
+enum class align_mode_e : unsigned int
+{
+ SHIFT, //! shift relative to the current column
+ KEEP_ABS, //! try to keep the original absolute column
+ KEEP_REL, //! try to keep the original gap
+};
+
+
+enum class indent_mode_e : int
+{
+ INDENT = 0, //! indent by one level
+ ALIGN = 1, //! align under the open brace/parenthesis
+ IGNORE = -1, //! preserve original indentation
+};
+
+
+void align_to_column(Chunk *pc, size_t column)
+{
+ LOG_FUNC_ENTRY();
+
+ if ( pc == nullptr
+ || column == pc->column)
+ {
+ return;
+ }
+ LOG_FMT(LINDLINE, "%s(%d): orig_line is %zu, orig_col is %zu, Text() '%s', type is %s => column is %zu\n",
+ __func__, __LINE__, pc->orig_line, pc->column, pc->Text(),
+ get_token_name(pc->type), column);
+
+ const auto col_delta = static_cast<int>(column) - static_cast<int>(pc->column);
+ size_t min_col = column;
+
+ pc->column = column;
+
+ do
+ {
+ auto *next = pc->GetNext();
+
+ if (next->IsNullChunk())
+ {
+ break;
+ }
+ const size_t min_delta = space_col_align(pc, next);
+ min_col += min_delta;
+
+ const auto *prev = pc;
+ pc = next;
+
+ auto almod = align_mode_e::SHIFT;
+
+ if ( pc->IsComment()
+ && get_chunk_parent_type(pc) != CT_COMMENT_EMBED)
+ {
+ log_rule_B("indent_relative_single_line_comments");
+ almod = ( chunk_is_single_line_comment(pc)
+ && options::indent_relative_single_line_comments())
+ ? align_mode_e::KEEP_REL : align_mode_e::KEEP_ABS;
+ }
+
+ if (almod == align_mode_e::KEEP_ABS)
+ {
+ // Keep same absolute column
+ pc->column = max(pc->orig_col, min_col);
+ }
+ else if (almod == align_mode_e::KEEP_REL)
+ {
+ // Keep same relative column
+ auto orig_delta = static_cast<int>(pc->orig_col) - static_cast<int>(prev->orig_col);
+ orig_delta = max<int>(orig_delta, min_delta); // keeps orig_delta positive
+
+ pc->column = prev->column + static_cast<size_t>(orig_delta);
+ }
+ else // SHIFT
+ {
+ // Shift by the same amount, keep above negative values
+ pc->column = ( col_delta >= 0
+ || cast_abs(pc->column, col_delta) < pc->column)
+ ? pc->column + col_delta : 0;
+ pc->column = max(pc->column, min_col);
+ }
+ LOG_FMT(LINDLINED, "%s(%d): %s set column of '%s', type is %s, orig_line is %zu, to col %zu (orig_col was %zu)\n",
+ __func__, __LINE__,
+ (almod == align_mode_e::KEEP_ABS) ? "abs" :
+ (almod == align_mode_e::KEEP_REL) ? "rel" : "sft",
+ pc->Text(), get_token_name(pc->type), pc->orig_line, pc->column, pc->orig_col);
+ } while ( pc->IsNotNullChunk()
+ && pc->nl_count == 0);
+} // align_to_column
+
+
+void reindent_line(Chunk *pc, size_t column)
+{
+ LOG_FUNC_ENTRY();
+ char copy[1000];
+
+ LOG_FMT(LINDLINE, "%s(%d): orig_line is %zu, orig_col is %zu, on '%s' [%s/%s] => %zu\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->ElidedText(copy),
+ get_token_name(pc->type), get_token_name(get_chunk_parent_type(pc)),
+ column);
+ log_func_stack_inline(LINDLINE);
+
+ if (column == pc->column)
+ {
+ return;
+ }
+ auto col_delta = static_cast<int>(column) - static_cast<int>(pc->column);
+ auto min_col = column;
+
+ pc->column = column;
+
+ do
+ {
+ if (QT_SIGNAL_SLOT_found)
+ {
+ // fix the bug #654
+ // connect(&mapper, SIGNAL(mapped(QString &)), this, SLOT(onSomeEvent(QString &)));
+ // look for end of SIGNAL/SLOT block
+ if (!pc->flags.test(PCF_IN_QT_MACRO))
+ {
+ LOG_FMT(LINDLINE, "FLAGS is NOT set: PCF_IN_QT_MACRO\n");
+ restore_options_for_QT();
+ }
+ }
+ else
+ {
+ // look for begin of SIGNAL/SLOT block
+ if (pc->flags.test(PCF_IN_QT_MACRO))
+ {
+ LOG_FMT(LINDLINE, "FLAGS is set: PCF_IN_QT_MACRO\n");
+ save_set_options_for_QT(pc->level);
+ }
+ }
+ Chunk *next = pc->GetNext();
+
+ if (next->IsNullChunk())
+ {
+ break;
+ }
+
+ if (pc->nl_count)
+ {
+ min_col = 0;
+ col_delta = 0;
+ }
+ min_col += space_col_align(pc, next);
+ pc = next;
+
+ const bool is_comment = pc->IsComment();
+ log_rule_B("indent_relative_single_line_comments");
+ const bool keep = ( is_comment
+ && chunk_is_single_line_comment(pc)
+ && options::indent_relative_single_line_comments());
+
+ if ( is_comment
+ && get_chunk_parent_type(pc) != CT_COMMENT_EMBED
+ && !keep)
+ {
+ pc->column = max(pc->orig_col, min_col);
+ LOG_FMT(LINDLINE, "%s(%d): set comment on line %zu to col %zu (orig %zu)\n",
+ __func__, __LINE__, pc->orig_line, pc->column, pc->orig_col);
+ }
+ else
+ {
+ const auto tmp_col = static_cast<int>(pc->column) + col_delta;
+ pc->column = max(tmp_col, static_cast<int>(min_col));
+
+ LOG_FMT(LINDLINED, "%s(%d): set column of ", __func__, __LINE__);
+
+ if (chunk_is_token(pc, CT_NEWLINE))
+ {
+ LOG_FMT(LINDLINED, "<Newline>");
+ }
+ else
+ {
+ LOG_FMT(LINDLINED, "'%s'", pc->Text());
+ }
+ LOG_FMT(LINDLINED, " to %zu (orig %zu)\n", pc->column, pc->orig_col);
+ }
+ } while ( pc->IsNotNullChunk()
+ && pc->nl_count == 0);
+} // reindent_line
+
+
+static size_t token_indent(E_Token type)
+{
+ switch (type)
+ {
+ case CT_IF:
+ case CT_DO:
+ return(3);
+
+ case CT_FOR:
+ case CT_ELSE: // wacky, but that's what is wanted
+ return(4);
+
+ case CT_WHILE:
+ case CT_USING_STMT:
+ return(6);
+
+ case CT_SWITCH:
+ return(7);
+
+ case CT_ELSEIF:
+ return(8);
+
+ case CT_SYNCHRONIZED:
+ return(13);
+
+ default:
+ return(0);
+ }
+}
+
+
+#define indent_column_set(X) \
+ do { \
+ LOG_FMT(LINDENT2, "%s(%d): orig_line is %zu, indent_column changed from %zu to %zu\n", \
+ __func__, __LINE__, pc->orig_line, indent_column, (size_t)X); \
+ indent_column = (X); \
+ } while (false)
+
+
+static size_t get_indent_first_continue(Chunk *pc)
+{
+ log_rule_B("indent_ignore_first_continue");
+ Chunk *continuation = pc->GetNextType(CT_NEWLINE, pc->level);
+
+ if (continuation->IsNotNullChunk())
+ {
+ continuation = continuation->GetNext();
+
+ if (continuation->IsNotNullChunk())
+ {
+ return(continuation->orig_col);
+ }
+ }
+ return(0);
+}
+
+
+static size_t calc_indent_continue(const ParseFrame &frm, size_t pse_tos)
+{
+ log_rule_B("indent_continue");
+ const int ic = options::indent_continue();
+
+ if ( ic < 0
+ && frm.at(pse_tos).indent_cont)
+ {
+ return(frm.at(pse_tos).indent);
+ }
+ return(frm.at(pse_tos).indent + abs(ic));
+}
+
+
+static size_t calc_indent_continue(const ParseFrame &frm)
+{
+ return(calc_indent_continue(frm, frm.size() - 1));
+}
+
+
+static Chunk *candidate_chunk_first_on_line(Chunk *pc)
+{
+ Chunk *first = chunk_first_on_line(pc);
+
+ log_rule_B("indent_inside_ternary_operator");
+
+ if ( options::indent_inside_ternary_operator()
+ && ( chunk_is_token(first, CT_QUESTION)
+ || chunk_is_token(first, CT_COND_COLON)))
+ {
+ return(first->GetNextNcNnl());
+ }
+ else
+ {
+ return(first);
+ }
+}
+
+
+static Chunk *oc_msg_block_indent(Chunk *pc, bool from_brace,
+ bool from_caret, bool from_colon,
+ bool from_keyword)
+{
+ LOG_FUNC_ENTRY();
+ Chunk *tmp = Chunk::NullChunkPtr;
+
+ if (pc != nullptr)
+ {
+ tmp = pc->GetPrevNc();
+ }
+
+ if (from_brace)
+ {
+ return(pc);
+ }
+
+ // Skip to open paren in ':^TYPE *(ARGS) {'
+ if (chunk_is_paren_close(tmp))
+ {
+ tmp = chunk_skip_to_match_rev(tmp)->GetPrevNc();
+ }
+
+ // // Check for star in ':^TYPE *(ARGS) {'. Issue 2477
+ if (chunk_is_token(tmp, CT_PTR_TYPE))
+ {
+ tmp = tmp->GetPrevNc();
+ }
+
+ // Check for type in ':^TYPE *(ARGS) {'. Issue 2482
+ if (chunk_is_token(tmp, CT_TYPE))
+ {
+ tmp = tmp->GetPrevNc();
+ }
+ // Check for caret in ':^TYPE *(ARGS) {'
+ // Store the caret position
+ Chunk *caret_tmp = Chunk::NullChunkPtr;
+
+ if ( tmp->IsNotNullChunk()
+ && tmp->type == CT_OC_BLOCK_CARET)
+ {
+ caret_tmp = tmp;
+ }
+ else
+ {
+ caret_tmp = tmp->GetPrevType(CT_OC_BLOCK_CARET, -1);
+ tmp = caret_tmp;
+ }
+
+ // If we still cannot find caret then return first chunk on the line
+ if ( tmp->IsNullChunk()
+ || tmp->type != CT_OC_BLOCK_CARET)
+ {
+ return(candidate_chunk_first_on_line(pc));
+ }
+
+ if (from_caret)
+ {
+ return(tmp);
+ }
+ tmp = tmp->GetPrevNc();
+
+ // Check for colon in ':^TYPE *(ARGS) {'
+ if (from_colon)
+ {
+ if ( tmp->IsNullChunk()
+ || tmp->type != CT_OC_COLON)
+ {
+ return(candidate_chunk_first_on_line(pc));
+ }
+ else
+ {
+ return(tmp);
+ }
+ }
+ tmp = tmp->GetPrevNc();
+
+ if (from_keyword)
+ {
+ if ( tmp->IsNullChunk()
+ || ( tmp->type != CT_OC_MSG_NAME
+ && tmp->type != CT_OC_MSG_FUNC))
+ {
+ return(candidate_chunk_first_on_line(pc));
+ }
+ else
+ {
+ return(tmp);
+ }
+ }
+ // In almost all the cases, its better to return the first chunk on the line than not indenting at all.
+ tmp = candidate_chunk_first_on_line(pc);
+ return(tmp);
+} // oc_msg_block_indent
+
+
+#define log_indent() \
+ do { _log_indent(__func__, __LINE__, frm); \
+ } while (false)
+
+
+static void _log_indent(const char *func, const uint32_t line, const ParseFrame &frm)
+{
+ LOG_FMT(LINDLINE, "%s(%d): frm.pse_tos is %zu, ...indent is %zu\n",
+ func, line, frm.size() - 1, frm.top().indent);
+}
+
+
+#define log_prev_indent() \
+ do { _log_prev_indent(__func__, __LINE__, frm); \
+ } while (false)
+
+
+static void _log_prev_indent(const char *func, const uint32_t line, const ParseFrame &frm)
+{
+ LOG_FMT(LINDLINE, "%s(%d): frm.pse_tos is %zu, prev....indent is %zu\n",
+ func, line, frm.size() - 1, frm.prev().indent);
+}
+
+
+#define log_indent_tmp() \
+ do { _log_indent_tmp(__func__, __LINE__, frm); \
+ } while (false)
+
+
+static void _log_indent_tmp(const char *func, const uint32_t line, const ParseFrame &frm)
+{
+ LOG_FMT(LINDLINE, "%s(%d): frm.pse_tos is %zu, ...indent_tmp is %zu\n",
+ func, line, frm.size() - 1, frm.top().indent_tmp);
+}
+
+
+static void quick_indent_again(void)
+{
+ LOG_FUNC_ENTRY();
+
+ for (Chunk *pc = Chunk::GetHead(); pc->IsNotNullChunk(); pc = pc->GetNext())
+ {
+ if (pc->indent.ref == nullptr)
+ {
+ continue;
+ }
+ Chunk *tmp = pc->GetPrev();
+
+ if (!chunk_is_newline(tmp))
+ {
+ continue;
+ }
+ const size_t col = pc->indent.ref->column + pc->indent.delta;
+ indent_to_column(pc, col);
+
+ LOG_FMT(LINDENTAG, "%s(%d): [%zu] indent [%s] to %zu based on [%s] @ %zu:%zu\n",
+ __func__, __LINE__, pc->orig_line, pc->Text(), col,
+ pc->indent.ref->Text(), pc->indent.ref->orig_line,
+ pc->indent.ref->column);
+ }
+}
+
+
+void indent_text(void)
+{
+ LOG_FUNC_ENTRY();
+ bool did_newline = true;
+ size_t vardefcol = 0;
+
+ log_rule_B("indent_columns");
+ const size_t indent_size = options::indent_columns();
+ size_t indent_column = 0;
+ int xml_indent = 0;
+ size_t sql_col = 0;
+ size_t sql_orig_col = 0;
+ bool in_func_def = false;
+
+
+ std::vector<ParseFrame> frames;
+ ParseFrame frm{};
+
+
+ Chunk *pc = Chunk::GetHead();
+ bool classFound = false; // Issue #672
+
+ while ( pc != nullptr
+ && pc->IsNotNullChunk())
+ {
+ LOG_FMT(LINDLINE, "%s(%d): orig_line is %zu, orig_col is %zu, for '%s'\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text());
+ // forces string literal to column-1 [Fix for 1246]
+ log_rule_B("indent_col1_multi_string_literal");
+
+ if ( (pc->type == CT_STRING_MULTI)
+ && !(cpd.lang_flags & LANG_OC) // Issue #1795
+ && options::indent_col1_multi_string_literal())
+ {
+ string str = pc->Text();
+
+ if ( (str[0] == '@')
+ && (pc->GetPrev()->type == CT_NEWLINE))
+ {
+ indent_column_set(1);
+ reindent_line(pc, indent_column);
+ pc = pc->GetNext();
+ did_newline = false;
+ }
+ }
+
+ if (chunk_is_token(pc, CT_NEWLINE))
+ {
+ LOG_FMT(LINDLINE, "%s(%d): orig_line is %zu, <Newline>\n",
+ __func__, __LINE__, pc->orig_line);
+ }
+ else if (chunk_is_token(pc, CT_NL_CONT))
+ {
+ LOG_FMT(LINDLINE, "%s(%d): orig_line is %zu, CT_NL_CONT\n",
+ __func__, __LINE__, pc->orig_line);
+ }
+ else
+ {
+ char copy[1000];
+ LOG_FMT(LINDLINE, "%s(%d): orig_line is %zu, orig_col is %zu, column is %zu, for '%s'\n ",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->column, pc->ElidedText(copy));
+ log_pcf_flags(LINDLINE, pc->flags);
+ }
+ log_rule_B("use_options_overriding_for_qt_macros");
+
+ if ( options::use_options_overriding_for_qt_macros()
+ && ( strcmp(pc->Text(), "SIGNAL") == 0
+ || strcmp(pc->Text(), "SLOT") == 0))
+ {
+ LOG_FMT(LINDLINE, "%s(%d): orig_line=%zu: type %s SIGNAL/SLOT found\n",
+ __func__, __LINE__, pc->orig_line, get_token_name(pc->type));
+ }
+ // Handle preprocessor transitions
+ log_rule_B("indent_brace_parent");
+ const size_t parent_token_indent = (options::indent_brace_parent())
+ ? token_indent(get_chunk_parent_type(pc)) : 0;
+
+ // Handle "force indentation of function definition to start in column 1"
+ log_rule_B("indent_func_def_force_col1");
+
+ if (options::indent_func_def_force_col1())
+ {
+ if (!in_func_def)
+ {
+ Chunk *next = pc->GetNextNcNnl();
+
+ if ( get_chunk_parent_type(pc) == CT_FUNC_DEF
+ || ( chunk_is_token(pc, CT_COMMENT)
+ && next->IsNotNullChunk()
+ && get_chunk_parent_type(next) == CT_FUNC_DEF))
+ {
+ in_func_def = true;
+ frm.push(pc, __func__, __LINE__);
+ frm.top().indent_tmp = 1;
+ frm.top().indent = 1;
+ frm.top().indent_tab = 1;
+ }
+ }
+ else
+ {
+ Chunk *prev = pc->GetPrev();
+
+ if ( chunk_is_token(prev, CT_BRACE_CLOSE)
+ && get_chunk_parent_type(prev) == CT_FUNC_DEF)
+ {
+ in_func_def = false;
+ LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type));
+ frm.pop(__func__, __LINE__, pc);
+ }
+ }
+ }
+ // Clean up after a #define, etc
+ const bool in_preproc = pc->flags.test(PCF_IN_PREPROC);
+
+ if (!in_preproc)
+ {
+ while ( !frm.empty()
+ && frm.top().in_preproc)
+ {
+ const E_Token type = frm.top().type;
+ LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type));
+ frm.pop(__func__, __LINE__, pc);
+
+ /*
+ * If we just removed an #endregion, then check to see if a
+ * PP_REGION_INDENT entry is right below it
+ */
+ if ( type == CT_PP_ENDREGION
+ && frm.top().type == CT_PP_REGION_INDENT)
+ {
+ LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type));
+ frm.pop(__func__, __LINE__, pc);
+ }
+ }
+ }
+ else if (chunk_is_token(pc, CT_PREPROC)) // #
+ {
+ // Close out PP_IF_INDENT before playing with the parse frames
+ if ( frm.top().type == CT_PP_IF_INDENT
+ && ( get_chunk_parent_type(pc) == CT_PP_ENDIF
+ || get_chunk_parent_type(pc) == CT_PP_ELSE))
+ {
+ LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type));
+ frm.pop(__func__, __LINE__, pc);
+ }
+ ParseFrame frmbkup = frm;
+ fl_check(frames, frm, cpd.pp_level, pc);
+
+ // Indent the body of a #region here
+ log_rule_B("pp_region_indent_code");
+
+ if ( options::pp_region_indent_code()
+ && get_chunk_parent_type(pc) == CT_PP_REGION)
+ {
+ Chunk *next = pc->GetNext();
+
+ if (next->IsNullChunk())
+ {
+ break;
+ }
+ // Hack to get the logs to look right
+ set_chunk_type(next, CT_PP_REGION_INDENT);
+ frm.push(next, __func__, __LINE__);
+ set_chunk_type(next, CT_PP_REGION);
+
+ // Indent one level
+ frm.top().indent = frm.prev().indent + indent_size;
+ log_indent();
+
+ frm.top().indent_tab = frm.prev().indent_tab + indent_size;
+ frm.top().indent_tmp = frm.top().indent;
+ frm.top().in_preproc = false;
+ log_indent_tmp();
+ }
+ // If option set, remove indent inside switch statement
+ log_rule_B("indent_switch_pp");
+
+ if ( frm.top().type == CT_CASE
+ && !options::indent_switch_pp())
+ {
+ frm.push(pc, __func__, __LINE__);
+ LOG_FMT(LINDPC, "%s(%d): frm.top().indent is %zu, indent_size is %zu\n",
+ __func__, __LINE__, frm.top().indent, indent_size);
+
+ if (frm.top().indent >= indent_size)
+ {
+ frm.prev().indent = frm.top().indent - indent_size;
+ }
+ log_prev_indent();
+ }
+ // Indent the body of a #if here
+ log_rule_B("pp_if_indent_code");
+
+ if ( options::pp_if_indent_code()
+ && ( get_chunk_parent_type(pc) == CT_PP_IF
+ || get_chunk_parent_type(pc) == CT_PP_ELSE))
+ {
+ Chunk *next = pc->GetNext();
+
+ if (next->IsNullChunk())
+ {
+ break;
+ }
+ int should_indent_preproc = true;
+ int should_ignore_preproc = false;
+ Chunk *preproc_next = pc->GetNextNl();
+ preproc_next = preproc_next->GetNextNcNnlNet();
+
+ /* Look ahead at what's on the line after the #if */
+ log_rule_B("pp_indent_brace");
+ log_rule_B("pp_indent_func_def");
+ log_rule_B("pp_indent_case");
+ log_rule_B("pp_indent_extern");
+
+ while ( preproc_next->IsNotNullChunk()
+ && preproc_next->type != CT_NEWLINE)
+ {
+ if ( (chunk_is_token(preproc_next, CT_BRACE_OPEN))
+ || (chunk_is_token(preproc_next, CT_BRACE_CLOSE)))
+ {
+ if (options::pp_indent_brace() == 0)
+ {
+ should_indent_preproc = false;
+ break;
+ }
+ else if (options::pp_indent_brace() == -1)
+ {
+ should_ignore_preproc = true;
+ break;
+ }
+ }
+ else if ( ( chunk_is_token(preproc_next, CT_FUNC_DEF)
+ && !options::pp_indent_func_def())
+ || ( chunk_is_token(preproc_next, CT_CASE)
+ && !options::pp_indent_case())
+ || ( chunk_is_token(preproc_next, CT_EXTERN)
+ && !options::pp_indent_extern()))
+ {
+ should_indent_preproc = false;
+ break;
+ }
+ preproc_next = preproc_next->GetNext();
+ }
+
+ if (should_indent_preproc)
+ {
+ // Hack to get the logs to look right
+
+ const E_Token memtype = next->type;
+ set_chunk_type(next, CT_PP_IF_INDENT);
+ frm.push(next, __func__, __LINE__);
+ set_chunk_type(next, memtype);
+
+ if (should_ignore_preproc)
+ {
+ // Preserve original indentation
+ frm.top().indent = pc->GetNextNl()->GetNext()->orig_col;
+ log_indent();
+ }
+ else
+ {
+ // Indent one level except if the #if is a #include guard
+ size_t extra = ( pc->pp_level == 0
+ && ifdef_over_whole_file())
+ ? 0 : indent_size;
+
+ frm.top().indent = frm.prev().indent + extra;
+ log_indent();
+
+ frm.top().indent_tab = frm.prev().indent_tab + extra;
+ }
+ frm.top().indent_tmp = frm.top().indent;
+ frm.top().in_preproc = false;
+ log_indent_tmp();
+ }
+ }
+ log_rule_B("indent_member_single");
+
+ if (options::indent_member_single())
+ {
+ if (get_chunk_parent_type(pc) == CT_PP_IF)
+ {
+ // do nothing
+ }
+ else if (get_chunk_parent_type(pc) == CT_PP_ELSE)
+ {
+ if ( frm.top().type == CT_MEMBER
+ && frm.top().pop_pc != nullptr
+ && frm.top().pc != frmbkup.top().pc)
+ {
+ Chunk *tmp = pc->GetNextNcNnlNpp();
+
+ if (tmp->IsNotNullChunk())
+ {
+ if ( chunk_is_token(tmp, CT_WORD)
+ || chunk_is_token(tmp, CT_TYPE))
+ {
+ tmp = pc->GetNextNcNnlNpp();
+ }
+ else if ( chunk_is_token(tmp, CT_FUNC_CALL)
+ || chunk_is_token(tmp, CT_FPAREN_OPEN))
+ {
+ tmp = tmp->GetNextType(CT_FPAREN_CLOSE, tmp->level);
+
+ if (tmp->IsNotNullChunk())
+ {
+ tmp = pc->GetNextNcNnlNpp();
+ }
+ }
+
+ if (tmp->IsNotNullChunk())
+ {
+ frm.top().pop_pc = tmp;
+ }
+ }
+ }
+ }
+ else if (get_chunk_parent_type(pc) == CT_PP_ENDIF)
+ {
+ if ( frmbkup.top().type == CT_MEMBER
+ && frm.top().type == CT_MEMBER)
+ {
+ frm.top().pop_pc = frmbkup.top().pop_pc;
+ }
+ }
+ }
+ // Transition into a preproc by creating a dummy indent
+ Chunk *pp_next = pc->GetNext();
+
+ if (pp_next->IsNullChunk())
+ {
+ return;
+ }
+ frm.push(pp_next, __func__, __LINE__);
+
+ if ( get_chunk_parent_type(pc) == CT_PP_DEFINE
+ || get_chunk_parent_type(pc) == CT_PP_UNDEF)
+ {
+ log_rule_B("pp_define_at_level");
+ frm.top().indent_tmp = options::pp_define_at_level()
+ ? frm.prev().indent_tmp : 1;
+ frm.top().indent = frm.top().indent_tmp + indent_size;
+ log_indent();
+
+ frm.top().indent_tab = frm.top().indent;
+ log_indent_tmp();
+ }
+ else if ( ( get_chunk_parent_type(pc) == CT_PP_PRAGMA
+ || get_chunk_parent_type(pc) == CT_PP_OTHER)
+ && options::pp_define_at_level())
+ {
+ log_rule_B("pp_define_at_level");
+ frm.top().indent_tmp = frm.prev().indent_tmp;
+ frm.top().indent = frm.top().indent_tmp + indent_size;
+ log_indent();
+
+ frm.top().indent_tab = frm.top().indent;
+ log_indent_tmp();
+ }
+ else if ( get_chunk_parent_type(pc) == CT_PP_INCLUDE
+ && options::pp_include_at_level())
+ {
+ log_rule_B("pp_include_at_level");
+ frm.top().indent_tmp = frm.prev().indent_tmp;
+ frm.top().indent = frm.top().indent_tmp + indent_size;
+ log_indent();
+
+ frm.top().indent_tab = frm.top().indent;
+ log_indent_tmp();
+ }
+ else
+ {
+ if ( (frm.prev().type == CT_PP_REGION_INDENT)
+ || ( (frm.prev().type == CT_PP_IF_INDENT)
+ && (frm.top().type != CT_PP_ENDIF)))
+ {
+ frm.top().indent = frm.prev(2).indent;
+ log_indent();
+ }
+ else
+ {
+ frm.top().indent = frm.prev().indent;
+ log_indent();
+ }
+ log_indent();
+
+
+ auto val = 0;
+
+ if ( get_chunk_parent_type(pc) == CT_PP_REGION
+ || get_chunk_parent_type(pc) == CT_PP_ENDREGION)
+ {
+ log_rule_B("pp_indent_region");
+ val = options::pp_indent_region();
+ log_indent();
+ }
+ else if ( get_chunk_parent_type(pc) == CT_PP_IF
+ || get_chunk_parent_type(pc) == CT_PP_ELSE
+ || get_chunk_parent_type(pc) == CT_PP_ENDIF)
+ {
+ log_rule_B("pp_indent_if");
+ val = options::pp_indent_if();
+ log_indent();
+ }
+
+ if (val != 0)
+ {
+ auto &indent = frm.top().indent;
+
+ indent = (val > 0) ? val // reassign if positive val,
+ : (cast_abs(indent, val) < indent) // else if no underflow
+ ? (indent + val) : 0; // reduce, else 0
+ }
+ frm.top().indent_tmp = frm.top().indent;
+ log_indent_tmp();
+ }
+ }
+ // Check for close XML tags "</..."
+ log_rule_B("indent_xml_string");
+
+ if (options::indent_xml_string() > 0)
+ {
+ if (chunk_is_token(pc, CT_STRING))
+ {
+ if ( pc->Len() > 4
+ && xml_indent > 0
+ && pc->str[1] == '<'
+ && pc->str[2] == '/')
+ {
+ log_rule_B("indent_xml_string");
+ xml_indent -= options::indent_xml_string();
+ }
+ }
+ else if ( !pc->IsComment()
+ && !chunk_is_newline(pc))
+ {
+ xml_indent = 0;
+ }
+ }
+ // Handle non-brace closures
+ log_indent_tmp();
+
+ bool token_used = false;
+ size_t old_frm_size;
+
+ do
+ {
+ old_frm_size = frm.size();
+
+ // End anything that drops a level
+ if ( !chunk_is_newline(pc)
+ && !pc->IsComment()
+ && frm.top().level > pc->level)
+ {
+ LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type));
+ frm.pop(__func__, __LINE__, pc);
+ }
+
+ if (frm.top().level >= pc->level)
+ {
+ // process virtual braces closes (no text output)
+ if ( chunk_is_token(pc, CT_VBRACE_CLOSE)
+ && frm.top().type == CT_VBRACE_OPEN)
+ {
+ LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type));
+ frm.pop(__func__, __LINE__, pc);
+ pc = pc->GetNext();
+ LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type));
+
+ if (pc->IsNullChunk())
+ {
+ // need to break out of both the do and while loops
+ goto null_pc;
+ }
+ }
+
+ if ( chunk_is_token(pc, CT_BRACE_CLOSE)
+ && get_chunk_parent_type(pc) == CT_ENUM)
+ {
+ Chunk *prev_ncnl = pc->GetPrevNcNnl();
+ LOG_FMT(LINDLINE, "%s(%d): prev_ncnl is '%s', prev_ncnl->orig_line is %zu, prev_ncnl->orig_col is %zu\n",
+ __func__, __LINE__, prev_ncnl->Text(), prev_ncnl->orig_line, prev_ncnl->orig_col);
+
+ if (chunk_is_token(prev_ncnl, CT_COMMA))
+ {
+ LOG_FMT(LINDLINE, "%s(%d): prev_ncnl is comma\n", __func__, __LINE__);
+ }
+ else
+ {
+ LOG_FMT(LINDLINE, "%s(%d): prev_ncnl is NOT comma\n", __func__, __LINE__);
+ }
+ }
+
+ // End any assign operations with a semicolon on the same level
+ if (is_end_of_assignment(pc, frm))
+ {
+ LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type));
+ frm.pop(__func__, __LINE__, pc);
+ }
+ // Pop Colon from stack in ternary operator
+ // a
+ // ? b
+ // : e/*top*/;/*pc*/
+ log_rule_B("indent_inside_ternary_operator");
+
+ if ( options::indent_inside_ternary_operator()
+ && (frm.top().type == CT_COND_COLON)
+ && ( chunk_is_semicolon(pc)
+ || chunk_is_token(pc, CT_COMMA)
+ || chunk_is_token(pc, CT_OC_MSG_NAME)
+ || chunk_is_token(pc, CT_SPAREN_CLOSE))) // Issue #1130, #1715
+ {
+ LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type));
+ frm.pop(__func__, __LINE__, pc);
+ }
+
+ // End any assign operations with a semicolon on the same level
+ if ( chunk_is_semicolon(pc)
+ && ( (frm.top().type == CT_IMPORT)
+ || (frm.top().type == CT_USING)))
+ {
+ LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type));
+ frm.pop(__func__, __LINE__, pc);
+ }
+
+ // End any custom macro-based open/closes
+ if ( !token_used
+ && (frm.top().type == CT_MACRO_OPEN)
+ && chunk_is_token(pc, CT_MACRO_CLOSE))
+ {
+ token_used = true;
+ LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type));
+ frm.pop(__func__, __LINE__, pc);
+ }
+
+ // End any CPP/ObjC class colon stuff
+ if ( ( (frm.top().type == CT_CLASS_COLON)
+ || (frm.top().type == CT_CONSTR_COLON))
+ && ( chunk_is_token(pc, CT_BRACE_OPEN)
+ || chunk_is_token(pc, CT_OC_END)
+ || chunk_is_token(pc, CT_OC_SCOPE)
+ || chunk_is_token(pc, CT_OC_PROPERTY)
+ || chunk_is_token(pc, CT_TYPEDEF) // Issue #2675
+ || chunk_is_token(pc, CT_MACRO_OPEN)
+ || chunk_is_token(pc, CT_MACRO_CLOSE)
+ || ( language_is_set(LANG_OC)
+ && pc->IsComment()
+ && get_chunk_parent_type(pc) == CT_COMMENT_WHOLE) // Issue #2675
+ || chunk_is_semicolon(pc)))
+ {
+ LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type));
+ frm.pop(__func__, __LINE__, pc);
+ }
+
+ // End ObjC class colon stuff inside of generic definition (like Test<T1: id<T3>>)
+ if ( (frm.top().type == CT_CLASS_COLON)
+ && chunk_is_token(pc, CT_ANGLE_CLOSE)
+ && get_chunk_parent_type(pc) == CT_OC_GENERIC_SPEC)
+ {
+ LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type));
+ frm.pop(__func__, __LINE__, pc);
+ }
+
+ // End Objc nested message and boxed array
+ // TODO: ideally formatting would know which opens occurred on a line and group closes in the same manor
+ if ( language_is_set(LANG_OC)
+ && chunk_is_token(pc, CT_SQUARE_CLOSE)
+ && get_chunk_parent_type(pc) == CT_OC_AT
+ && frm.top().level >= pc->level)
+ {
+ size_t count = 1;
+ Chunk *next = pc->GetNextNc();
+
+ while ( next->IsNotNullChunk()
+ && ( ( chunk_is_token(next, CT_BRACE_CLOSE)
+ && get_chunk_parent_type(next) == CT_OC_AT)
+ || ( chunk_is_token(next, CT_SQUARE_CLOSE)
+ && get_chunk_parent_type(next) == CT_OC_AT)
+ || ( chunk_is_token(next, CT_SQUARE_CLOSE)
+ && get_chunk_parent_type(next) == CT_OC_MSG)))
+ {
+ count++;
+ next = next->GetNextNc();
+ }
+ count = std::min(count, frm.size());
+
+ if (count > 0)
+ {
+ while (count-- > 0)
+ {
+ if (frm.top().type == CT_SQUARE_OPEN)
+ {
+ if (frm.paren_count == 0)
+ {
+ fprintf(stderr, "%s(%d): frm.paren_count is ZERO, cannot be decremented, at line %zu, column %zu\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col);
+ log_flush(true);
+ exit(EX_SOFTWARE);
+ }
+ frm.paren_count--;
+ }
+ LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type));
+ frm.pop(__func__, __LINE__, pc);
+ }
+
+ if (next)
+ {
+ // End any assign operations with a semicolon on the same level
+ if (is_end_of_assignment(next, frm))
+ {
+ LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type));
+ frm.pop(__func__, __LINE__, pc);
+ }
+ }
+ // Indent the brace to match outer most brace/square
+ indent_column_set(frm.top().indent_tmp);
+ continue;
+ }
+ }
+
+ // a case is ended with another case or a close brace
+ if ( (frm.top().type == CT_CASE)
+ && ( chunk_is_token(pc, CT_BRACE_CLOSE)
+ || chunk_is_token(pc, CT_CASE)))
+ {
+ LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type));
+ frm.pop(__func__, __LINE__, pc);
+ }
+
+ if (frm.top().pop_pc != nullptr)
+ {
+ LOG_FMT(LINDLINE, "%s(%d): pop_pc->orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s\n",
+ __func__, __LINE__, frm.top().pop_pc->orig_line, frm.top().pop_pc->orig_col,
+ frm.top().pop_pc->Text(), get_token_name(frm.top().pop_pc->type));
+ }
+ LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type));
+
+ if ( (frm.top().type == CT_MEMBER)
+ && frm.top().pop_pc == pc)
+ {
+ LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type));
+ frm.pop(__func__, __LINE__, pc);
+ }
+
+ if ( (frm.top().type == CT_LAMBDA)
+ && ( chunk_is_token(pc, CT_SEMICOLON)
+ || chunk_is_token(pc, CT_COMMA)
+ || chunk_is_token(pc, CT_BRACE_OPEN)))
+ {
+ LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type));
+ frm.pop(__func__, __LINE__, pc);
+ }
+ // a class scope is ended with another class scope or a close brace
+ log_rule_B("indent_access_spec_body");
+
+ if ( options::indent_access_spec_body()
+ && (frm.top().type == CT_ACCESS)
+ && ( chunk_is_token(pc, CT_BRACE_CLOSE)
+ || chunk_is_token(pc, CT_ACCESS)))
+ {
+ LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type));
+ frm.pop(__func__, __LINE__, pc);
+ }
+
+ // return & throw are ended with a semicolon
+ if ( chunk_is_semicolon(pc)
+ && ( (frm.top().type == CT_RETURN)
+ || (frm.top().type == CT_THROW)))
+ {
+ LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type));
+ frm.pop(__func__, __LINE__, pc);
+ }
+
+ // an OC SCOPE ('-' or '+') ends with a semicolon or brace open
+ if ( (frm.top().type == CT_OC_SCOPE)
+ && ( chunk_is_semicolon(pc)
+ || chunk_is_token(pc, CT_BRACE_OPEN)))
+ {
+ LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type));
+ frm.pop(__func__, __LINE__, pc);
+ }
+
+ /*
+ * a typedef and an OC SCOPE ('-' or '+') ends with a semicolon or
+ * brace open
+ */
+ if ( (frm.top().type == CT_TYPEDEF)
+ && ( chunk_is_semicolon(pc)
+ || chunk_is_paren_open(pc)
+ || chunk_is_token(pc, CT_BRACE_OPEN)))
+ {
+ LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type));
+ frm.pop(__func__, __LINE__, pc);
+ }
+
+ // an SQL EXEC is ended with a semicolon
+ if ( (frm.top().type == CT_SQL_EXEC)
+ && chunk_is_semicolon(pc))
+ {
+ LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type));
+ frm.pop(__func__, __LINE__, pc);
+ }
+
+ // an CLASS is ended with a semicolon or brace open
+ if ( (frm.top().type == CT_CLASS)
+ && ( chunk_is_token(pc, CT_CLASS_COLON)
+ || chunk_is_token(pc, CT_BRACE_OPEN)
+ || chunk_is_semicolon(pc)))
+ {
+ LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type));
+ frm.pop(__func__, __LINE__, pc);
+ }
+ log_rule_B("indent_oc_inside_msg_sel");
+
+ // Pop OC msg selector stack
+ if ( options::indent_oc_inside_msg_sel()
+ && (frm.top().type != CT_SQUARE_OPEN)
+ && frm.top().level >= pc->level
+ && ( chunk_is_token(pc, CT_OC_MSG_FUNC)
+ || chunk_is_token(pc, CT_OC_MSG_NAME))) // Issue #2658
+ {
+ LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type));
+ frm.pop(__func__, __LINE__, pc);
+ }
+
+ // Close out parenthesis and squares
+ if ( (frm.top().type == (pc->type - 1))
+ && ( chunk_is_token(pc, CT_PAREN_CLOSE)
+ || chunk_is_token(pc, CT_LPAREN_CLOSE) // Issue #3054
+ || chunk_is_token(pc, CT_SPAREN_CLOSE)
+ || chunk_is_token(pc, CT_FPAREN_CLOSE)
+ || chunk_is_token(pc, CT_SQUARE_CLOSE)
+ || chunk_is_token(pc, CT_ANGLE_CLOSE)))
+ {
+ LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type));
+ frm.pop(__func__, __LINE__, pc);
+
+ if (frm.paren_count == 0)
+ {
+ fprintf(stderr, "%s(%d): frm.paren_count is ZERO, cannot be decremented, at line %zu, column %zu\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col);
+ log_flush(true);
+ exit(EX_SOFTWARE);
+ }
+ frm.paren_count--;
+ }
+ }
+ } while (old_frm_size > frm.size());
+
+ // Grab a copy of the current indent
+ indent_column_set(frm.top().indent_tmp); // Issue #3294
+ log_indent_tmp();
+
+ log_rule_B("indent_single_newlines");
+
+ if ( chunk_is_token(pc, CT_NEWLINE)
+ && options::indent_single_newlines())
+ {
+ pc->nl_column = indent_column;
+ }
+
+ if ( !chunk_is_newline(pc)
+ && !pc->IsComment()
+ && log_sev_on(LINDPC))
+ {
+ LOG_FMT(LINDPC, "%s(%d):\n", __func__, __LINE__);
+ LOG_FMT(LINDPC, " -=[ pc->orig_line is %zu, orig_col is %zu, Text() is '%s' ]=-, frm.size() is %zu\n",
+ pc->orig_line, pc->orig_col, pc->Text(), frm.size());
+
+ for (size_t ttidx = frm.size() - 1; ttidx > 0; ttidx--)
+ {
+ LOG_FMT(LINDPC, " [%zu %zu:%zu '%s' %s/%s tmp=%zu indent=%zu brace_indent=%zu indent_tab=%zu indent_cont=%d level=%zu pc->brace_level=%zu]\n",
+ ttidx,
+ frm.at(ttidx).pc->orig_line,
+ frm.at(ttidx).pc->orig_col,
+ frm.at(ttidx).pc->Text(),
+ get_token_name(frm.at(ttidx).type),
+ get_token_name(frm.at(ttidx).pc->parent_type),
+ frm.at(ttidx).indent_tmp,
+ frm.at(ttidx).indent,
+ frm.at(ttidx).brace_indent,
+ frm.at(ttidx).indent_tab,
+ frm.at(ttidx).indent_cont,
+ frm.at(ttidx).level,
+ frm.at(ttidx).pc->brace_level);
+ }
+ }
+ char copy[1000];
+ LOG_FMT(LINDENT2, "%s(%d): orig_line is %zu, orig_col is %zu, column is %zu, Text() is '%s'\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->column, pc->ElidedText(copy));
+
+ // Issue #672
+ if ( chunk_is_token(pc, CT_BRACE_OPEN)
+ && classFound)
+ {
+ LOG_FMT(LINDENT, "%s(%d): CT_BRACE_OPEN found, CLOSE IT\n",
+ __func__, __LINE__);
+ LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type));
+ classFound = false;
+ }
+ /*
+ * Handle stuff that can affect the current indent:
+ * - brace close
+ * - vbrace open
+ * - brace open
+ * - case (immediate)
+ * - labels (immediate)
+ * - class colons (immediate)
+ *
+ * And some stuff that can't
+ * - open paren
+ * - open square
+ * - assignment
+ * - return
+ */
+ log_rule_B("indent_braces");
+ log_rule_B("indent_braces_no_func");
+ log_rule_B("indent_braces_no_class");
+ log_rule_B("indent_braces_no_struct");
+ const bool brace_indent = ( ( chunk_is_token(pc, CT_BRACE_CLOSE)
+ || chunk_is_token(pc, CT_BRACE_OPEN))
+ && options::indent_braces()
+ && ( !options::indent_braces_no_func()
+ || get_chunk_parent_type(pc) != CT_FUNC_DEF)
+ && ( !options::indent_braces_no_func()
+ || get_chunk_parent_type(pc) != CT_FUNC_CLASS_DEF)
+ && ( !options::indent_braces_no_class()
+ || get_chunk_parent_type(pc) != CT_CLASS)
+ && ( !options::indent_braces_no_struct()
+ || get_chunk_parent_type(pc) != CT_STRUCT));
+ LOG_FMT(LINDENT, "%s(%d): brace_indent is %s\n",
+ __func__, __LINE__, brace_indent ? "TRue" : "FAlse");
+
+ if (chunk_is_token(pc, CT_BRACE_CLOSE))
+ {
+ if (language_is_set(LANG_OC))
+ {
+ if ( frm.top().type == CT_BRACE_OPEN
+ && frm.top().level >= pc->level)
+ {
+ size_t count = 1;
+ Chunk *next = pc->GetNextNc();
+
+ while ( next->IsNotNullChunk()
+ && ( ( chunk_is_token(next, CT_BRACE_CLOSE)
+ && get_chunk_parent_type(next) == CT_OC_AT)
+ || ( chunk_is_token(next, CT_SQUARE_CLOSE)
+ && get_chunk_parent_type(next) == CT_OC_AT)
+ || ( chunk_is_token(next, CT_SQUARE_CLOSE)
+ && get_chunk_parent_type(next) == CT_OC_MSG)))
+ {
+ count++;
+ next = next->GetNextNc();
+ }
+ count = std::min(count, frm.size());
+
+ // End Objc nested boxed dictionary
+ // TODO: ideally formatting would know which opens occurred on a line and group closes in the same manor
+ if ( count > 0
+ && chunk_is_token(pc, CT_BRACE_CLOSE)
+ && get_chunk_parent_type(pc) == CT_OC_AT)
+ {
+ if (frm.top().ip.ref)
+ {
+ pc->indent.ref = frm.top().ip.ref;
+ pc->indent.delta = 0;
+ }
+
+ while (count-- > 0)
+ {
+ LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type));
+ frm.pop(__func__, __LINE__, pc);
+ }
+
+ if (next)
+ {
+ // End any assign operations with a semicolon on the same level
+ if (is_end_of_assignment(next, frm))
+ {
+ LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type));
+ frm.pop(__func__, __LINE__, pc);
+ }
+ }
+
+ // Indent the brace to match outer most brace/square
+ if (frm.top().indent_cont)
+ {
+ indent_column_set(frm.top().indent_tmp - indent_size);
+ }
+ else
+ {
+ indent_column_set(frm.top().indent_tmp);
+ }
+ }
+ else
+ {
+ // Indent the brace to match the open brace
+ indent_column_set(frm.top().brace_indent);
+
+ if (frm.top().ip.ref)
+ {
+ pc->indent.ref = frm.top().ip.ref;
+ pc->indent.delta = 0;
+ }
+ LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type));
+ frm.pop(__func__, __LINE__, pc);
+ }
+ }
+ }
+ else if (frm.top().brace_indent) // Issue #3421
+ {
+ // Indent the brace to match the open brace
+ indent_column_set(frm.top().brace_indent);
+
+ if (frm.top().ip.ref)
+ {
+ pc->indent.ref = frm.top().ip.ref;
+ pc->indent.delta = 0;
+ }
+ LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type));
+ frm.pop(__func__, __LINE__, pc);
+ }
+ }
+ else if (chunk_is_token(pc, CT_VBRACE_OPEN))
+ {
+ frm.push(pc, __func__, __LINE__);
+
+ log_rule_B("indent_min_vbrace_open");
+ size_t iMinIndent = options::indent_min_vbrace_open();
+
+ if (indent_size > iMinIndent)
+ {
+ iMinIndent = indent_size;
+ }
+ size_t iNewIndent = frm.prev().indent + iMinIndent;
+
+ log_rule_B("indent_vbrace_open_on_tabstop");
+
+ if (options::indent_vbrace_open_on_tabstop())
+ {
+ iNewIndent = next_tab_column(iNewIndent);
+ }
+ frm.top().indent = iNewIndent;
+ log_indent();
+ frm.top().indent_tmp = frm.top().indent;
+ frm.top().indent_tab = frm.top().indent;
+ log_indent_tmp();
+
+ // Always indent on virtual braces
+ indent_column_set(frm.top().indent_tmp);
+ }
+ else if ( chunk_is_token(pc, CT_BRACE_OPEN)
+ && ( pc->next != nullptr
+ && pc->next->type != CT_NAMESPACE))
+ {
+ LOG_FMT(LINDENT2, "%s(%d): orig_line is %zu, orig_col is %zu, Text() is '%s'\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text());
+ frm.push(pc, __func__, __LINE__);
+
+ log_rule_B("indent_macro_brace");
+
+ if ( !options::indent_macro_brace()
+ && frm.prev().type == CT_PP_DEFINE
+ && frm.prev().open_line == frm.top().open_line)
+ {
+ LOG_FMT(LINDENT2, "%s(%d): indent_macro_brace\n", __func__, __LINE__);
+ }
+ else if ( options::indent_cpp_lambda_body()
+ && get_chunk_parent_type(pc) == CT_CPP_LAMBDA)
+ {
+ log_rule_B("indent_cpp_lambda_body");
+ frm.top().brace_indent = frm.prev().indent;
+
+ Chunk *head = frm.top().pc->GetPrevNcNnlNpp();
+ Chunk *tail = nullptr;
+ Chunk *frm_prev = frm.prev().pc;
+ bool enclosure = ( frm_prev->parent_type != CT_FUNC_DEF // Issue #3407
+ && frm_prev != chunk_skip_to_match(frm_prev));
+ bool linematch = true;
+
+ for (auto it = frm.rbegin(); it != frm.rend() && tail == nullptr; ++it)
+ {
+ if (it->pc && it->pc != frm.top().pc)
+ {
+ linematch &= are_chunks_in_same_line(it->pc, head);
+ }
+ Chunk *match = chunk_skip_to_match(it->pc);
+
+ if (match == nullptr)
+ {
+ continue;
+ }
+ Chunk *target = match->GetNextNcNnlNpp();
+
+ while ( tail == nullptr
+ && target->IsNotNullChunk())
+ {
+ if ( chunk_is_semicolon(target)
+ && target->level == match->level)
+ {
+ tail = target;
+ }
+ else if (target->level < match->level)
+ {
+ break;
+ }
+ else
+ {
+ target = target->GetNextNcNnlNpp();
+ }
+ }
+ }
+
+ bool toplevel = true;
+
+ for (auto it = frm.rbegin(); it != frm.rend() && tail != nullptr; ++it)
+ {
+ if (!chunk_is_token(it->pc, CT_FPAREN_OPEN))
+ {
+ continue;
+ }
+
+ if (it->pc->level < tail->level)
+ {
+ toplevel = false;
+ break;
+ }
+ }
+
+ // Issues: #1813, #3409, #3428
+ // if enclosure is set, the namespace is already accounted for
+ // so don't apply the correction twice.
+ // And for some reason, it's also accounted for when
+ // indent_namespace_single_indent is set
+ if (!enclosure && !options::indent_namespace_single_indent())
+ {
+ size_t namespace_indent_to_ignore = 0;
+ log_rule_B("indent_namespace");
+
+ for (auto i = frm.rbegin(); i != frm.rend(); ++i)
+ {
+ if (i->ns_cnt)
+ {
+ const auto foo = i->ns_cnt;
+ namespace_indent_to_ignore = indent_size * foo;
+ break;
+ }
+ }
+
+ if (namespace_indent_to_ignore && options::indent_namespace())
+ {
+ // I honestly don't know what's going on, so this is an
+ // emperical fix. For some reason lambda's don't have
+ // their indent calculated properly when indent_namespace
+ // is true. But only if they are not in enclosures.
+ namespace_indent_to_ignore = indent_size;
+ }
+
+ if (namespace_indent_to_ignore <= frm.top().brace_indent)
+ {
+ frm.top().brace_indent -= namespace_indent_to_ignore;
+ }
+ else
+ {
+ frm.top().brace_indent = 1;
+ }
+ }
+
+ // A few things to check:
+ // 1. The matching brace is on the same line as the ending semicolon
+ // 2a. If it's an assignment, check that both sides of the assignment operator are on the same line
+ // 2b. If it's inside some closure, check that all the frames are on the same line, and it is in the top level closure
+ if ( options::indent_continue() > 0
+ && are_chunks_in_same_line(chunk_skip_to_match(frm.top().pc), tail)
+ && ( ( !enclosure
+ && options::align_assign_span() == 0
+ && !options::indent_align_assign()
+ && are_chunks_in_same_line(frm.prev().pc->GetPrevNcNnlNpp(), frm.prev().pc)
+ && are_chunks_in_same_line(frm.prev().pc, frm.prev().pc->GetNextNcNnlNpp()))
+ || ( enclosure
+ && linematch
+ && toplevel)))
+ {
+ if (indent_size > frm.top().brace_indent) // if options::indent_indent_columns() is too big
+ {
+ frm.top().brace_indent = 1;
+ }
+ else
+ {
+ frm.top().brace_indent -= indent_size;
+ }
+ }
+ indent_column_set(frm.top().brace_indent);
+ frm.top().indent = indent_column + indent_size;
+ log_indent();
+
+ frm.top().indent_tab = frm.top().indent;
+ frm.top().indent_tmp = frm.top().indent;
+ log_indent_tmp();
+
+ frm.prev().indent_tmp = frm.top().indent_tmp;
+ log_indent_tmp();
+ }
+ else if ( language_is_set(LANG_CPP)
+ && options::indent_cpp_lambda_only_once()
+ && (get_chunk_parent_type(pc) == CT_CPP_LAMBDA))
+ {
+ // test example cpp:30756
+ log_rule_B("indent_cpp_lambda_only_once");
+
+ size_t namespace_indent_to_ignore = 0; // Issue #1813
+ log_rule_B("indent_namespace");
+
+ if (!options::indent_namespace())
+ {
+ for (auto i = frm.rbegin(); i != frm.rend(); ++i)
+ {
+ if (i->ns_cnt)
+ {
+ namespace_indent_to_ignore = i->ns_cnt;
+ break;
+ }
+ }
+ }
+ // Issue # 1296
+ frm.top().brace_indent = 1 + ((pc->brace_level - namespace_indent_to_ignore) * indent_size);
+ indent_column_set(frm.top().brace_indent);
+ frm.top().indent = indent_column + indent_size;
+ log_indent();
+ frm.top().indent_tab = frm.top().indent;
+ frm.top().indent_tmp = frm.top().indent;
+ log_indent_tmp();
+
+ frm.prev().indent_tmp = frm.top().indent_tmp;
+ log_indent_tmp();
+ }
+ else if ( language_is_set(LANG_CS | LANG_JAVA)
+ && options::indent_cs_delegate_brace()
+ && ( get_chunk_parent_type(pc) == CT_LAMBDA
+ || get_chunk_parent_type(pc) == CT_DELEGATE))
+ {
+ log_rule_B("indent_cs_delegate_brace");
+ frm.top().brace_indent = 1 + ((pc->brace_level + 1) * indent_size);
+ indent_column_set(frm.top().brace_indent);
+ frm.top().indent = indent_column + indent_size;
+ log_indent();
+ frm.top().indent_tab = frm.top().indent;
+ frm.top().indent_tmp = frm.top().indent;
+ log_indent_tmp();
+
+ frm.prev().indent_tmp = frm.top().indent_tmp;
+ log_indent_tmp();
+ }
+ else if ( language_is_set(LANG_CS | LANG_JAVA)
+ && !options::indent_cs_delegate_brace()
+ && !options::indent_align_paren()
+ && ( get_chunk_parent_type(pc) == CT_LAMBDA
+ || get_chunk_parent_type(pc) == CT_DELEGATE))
+ {
+ log_rule_B("indent_cs_delegate_brace");
+ log_rule_B("indent_align_paren");
+ frm.top().brace_indent = frm.prev().indent;
+
+ // Issue # 1620, UNI-24090.cs
+ if (are_chunks_in_same_line(frm.prev().pc, frm.top().pc->GetPrevNcNnlNpp()))
+ {
+ frm.top().brace_indent -= indent_size;
+ }
+ indent_column_set(frm.top().brace_indent);
+ frm.top().indent = indent_column + indent_size;
+ log_indent();
+ frm.top().indent_tab = frm.top().indent;
+ frm.top().indent_tmp = frm.top().indent;
+ log_indent_tmp();
+ frm.prev().indent_tmp = frm.top().indent_tmp;
+ log_indent_tmp();
+ }
+ else if ( !options::indent_paren_open_brace()
+ && !language_is_set(LANG_CS)
+ && get_chunk_parent_type(pc) == CT_CPP_LAMBDA
+ && ( pc->flags.test(PCF_IN_FCN_DEF)
+ || pc->flags.test(PCF_IN_FCN_CTOR)) // Issue #2152
+ && chunk_is_newline(pc->GetNextNc()))
+ {
+ log_rule_B("indent_paren_open_brace");
+ // Issue #1165
+ LOG_FMT(LINDENT2, "%s(%d): orig_line is %zu, pc->brace_level is %zu, for '%s', pc->level is %zu, pc(-1)->level is %zu\n",
+ __func__, __LINE__, pc->orig_line, pc->brace_level, pc->Text(), pc->level, frm.prev().pc->level);
+ frm.top().brace_indent = 1 + ((pc->brace_level + 1) * indent_size);
+ indent_column_set(frm.top().brace_indent);
+ frm.top().indent = frm.prev().indent_tmp;
+ log_indent();
+
+ frm.top().indent_tmp = frm.top().indent;
+ log_indent_tmp();
+ }
+ // any '{' that is inside of a '(' overrides the '(' indent
+ // only to help the vim command }
+ else if ( !options::indent_paren_open_brace()
+ && chunk_is_paren_open(frm.prev().pc)
+ && chunk_is_newline(pc->GetNextNc()))
+ {
+ log_rule_B("indent_paren_open_brace");
+ LOG_FMT(LINDENT2, "%s(%d): orig_line is %zu, pc->brace_level is %zu, for '%s', pc->level is %zu, pc(-1)->level is %zu\n",
+ __func__, __LINE__, pc->orig_line, pc->brace_level, pc->Text(), pc->level, frm.prev().pc->level);
+ // FIXME: I don't know how much of this is necessary, but it seems to work
+ frm.top().brace_indent = 1 + (pc->brace_level * indent_size);
+ indent_column_set(frm.top().brace_indent);
+ frm.top().indent = indent_column + indent_size;
+ log_indent();
+
+ if ( (get_chunk_parent_type(pc) == CT_OC_BLOCK_EXPR)
+ && pc->flags.test(PCF_IN_OC_MSG))
+ {
+ frm.top().indent = frm.prev().indent_tmp + indent_size;
+ log_indent();
+ frm.top().brace_indent = frm.prev().indent_tmp;
+ indent_column_set(frm.top().brace_indent);
+ }
+ frm.top().indent_tab = frm.top().indent;
+ frm.top().indent_tmp = frm.top().indent;
+ log_indent_tmp();
+
+ frm.prev().indent_tmp = frm.top().indent_tmp;
+ }
+ else if (frm.paren_count != 0)
+ {
+ if (frm.top().pc->parent_type == CT_OC_BLOCK_EXPR)
+ {
+ log_rule_B("indent_oc_block_msg");
+
+ if ( pc->flags.test(PCF_IN_OC_MSG)
+ && options::indent_oc_block_msg())
+ {
+ frm.top().ip.ref = oc_msg_block_indent(pc, false, false, false, true);
+ log_rule_B("indent_oc_block_msg");
+ frm.top().ip.delta = options::indent_oc_block_msg();
+ }
+ log_rule_B("indent_oc_block");
+ log_rule_B("indent_oc_block_msg_xcode_style");
+
+ if ( options::indent_oc_block()
+ || options::indent_oc_block_msg_xcode_style())
+ {
+ bool in_oc_msg = pc->flags.test(PCF_IN_OC_MSG);
+ log_rule_B("indent_oc_block_msg_from_keyword");
+ bool indent_from_keyword = options::indent_oc_block_msg_from_keyword()
+ && in_oc_msg;
+ log_rule_B("indent_oc_block_msg_from_colon");
+ bool indent_from_colon = options::indent_oc_block_msg_from_colon()
+ && in_oc_msg;
+ log_rule_B("indent_oc_block_msg_from_caret");
+ bool indent_from_caret = options::indent_oc_block_msg_from_caret()
+ && in_oc_msg;
+ log_rule_B("indent_oc_block_msg_from_brace");
+ bool indent_from_brace = options::indent_oc_block_msg_from_brace()
+ && in_oc_msg;
+
+ /*
+ * In "Xcode indent mode", we want to indent:
+ * - if the colon is aligned (namely, if a newline has been
+ * added before it), indent_from_brace
+ * - otherwise, indent from previous block (the "else" statement here)
+ */
+ log_rule_B("indent_oc_block_msg_xcode_style");
+
+ if (options::indent_oc_block_msg_xcode_style())
+ {
+ Chunk *bbc = chunk_skip_to_match(pc); // block brace close '}'
+ Chunk *bbc_next_ncnl = bbc->GetNextNcNnl();
+
+ if ( bbc_next_ncnl->type == CT_OC_MSG_NAME
+ || bbc_next_ncnl->type == CT_OC_MSG_FUNC)
+ {
+ indent_from_brace = false;
+ indent_from_colon = false;
+ indent_from_caret = false;
+ indent_from_keyword = true;
+ }
+ else
+ {
+ indent_from_brace = false;
+ indent_from_colon = false;
+ indent_from_caret = false;
+ indent_from_keyword = false;
+ }
+ }
+ Chunk *ref = oc_msg_block_indent(pc, indent_from_brace,
+ indent_from_caret,
+ indent_from_colon,
+ indent_from_keyword);
+
+ if (ref)
+ {
+ frm.top().indent = indent_size + ref->column;
+ }
+ else
+ {
+ frm.top().indent = 1 + ((pc->brace_level + 1) * indent_size);
+ }
+ log_indent();
+ indent_column_set(frm.top().indent - indent_size);
+ }
+ else
+ {
+ frm.top().indent = frm.prev().indent_tmp + indent_size;
+ log_indent();
+ }
+ }
+ else if ( frm.top().pc->type == CT_BRACE_OPEN
+ && frm.top().pc->parent_type == CT_OC_AT)
+ {
+ // We are inside @{ ... } -- indent one tab from the paren
+ if (frm.prev().indent_cont)
+ {
+ frm.top().indent = frm.prev().indent_tmp;
+ }
+ else
+ {
+ frm.top().indent = frm.prev().indent_tmp + indent_size;
+ }
+ log_indent();
+ }
+ // Issue # 1620, UNI-24090.cs
+ else if ( are_chunks_in_same_line(frm.prev().pc, frm.top().pc)
+ && !options::indent_align_paren()
+ && chunk_is_paren_open(frm.prev().pc)
+ && !pc->flags.test(PCF_ONE_LINER))
+ {
+ log_rule_B("indent_align_paren");
+ // We are inside ({ ... }) -- where { and ( are on the same line, avoiding double indentations.
+ // only to help the vim command }
+ frm.top().brace_indent = frm.prev().indent - indent_size;
+ indent_column_set(frm.top().brace_indent);
+ frm.top().indent = frm.prev().indent_tmp;
+ log_indent();
+ }
+ else if ( are_chunks_in_same_line(frm.prev().pc, frm.top().pc->GetPrevNcNnlNpp())
+ && !options::indent_align_paren()
+ && chunk_is_paren_open(frm.prev().pc)
+ && !pc->flags.test(PCF_ONE_LINER))
+ {
+ log_rule_B("indent_align_paren");
+ // We are inside ({ ... }) -- where { and ( are on adjacent lines, avoiding indentation of brace.
+ // only to help the vim command }
+ frm.top().brace_indent = frm.prev().indent - indent_size;
+ indent_column_set(frm.top().brace_indent);
+ frm.top().indent = frm.prev().indent_tmp;
+ log_indent();
+ }
+ else if ( options::indent_oc_inside_msg_sel()
+ && ( frm.prev().type == CT_OC_MSG_FUNC
+ || frm.prev().type == CT_OC_MSG_NAME)) // Issue #2658
+ {
+ log_rule_B("indent_oc_inside_msg_sel");
+ // [Class Message:{<here>
+ frm.top().indent = frm.prev().pc->column + indent_size;
+ log_indent();
+ indent_column_set(frm.prev().pc->column);
+ }
+ else
+ {
+ // We are inside ({ ... }) -- indent one tab from the paren
+ frm.top().indent = frm.prev().indent_tmp + indent_size;
+
+ if (!chunk_is_paren_open(frm.prev().pc))
+ {
+ frm.top().indent_tab = frm.top().indent;
+ }
+ log_indent();
+ }
+ }
+ else if ( frm.top().pc->type == CT_BRACE_OPEN
+ && frm.top().pc->parent_type == CT_OC_AT)
+ {
+ // We are inside @{ ... } -- indent one tab from the paren
+ if (frm.prev().indent_cont)
+ {
+ frm.top().indent = frm.prev().indent_tmp;
+ }
+ else
+ {
+ frm.top().indent = frm.prev().indent_tmp + indent_size;
+ frm.top().indent_tab = frm.top().indent;
+ }
+ log_indent();
+ }
+ else if ( ( get_chunk_parent_type(pc) == CT_BRACED_INIT_LIST
+ || ( !options::indent_compound_literal_return()
+ && get_chunk_parent_type(pc) == CT_C_CAST))
+ && frm.prev().type == CT_RETURN)
+ {
+ log_rule_B("indent_compound_literal_return");
+
+ // we're returning either a c compound literal (CT_C_CAST) or a
+ // C++11 initialization list (CT_BRACED_INIT_LIST), use indent from the return.
+ if (frm.prev().indent_cont)
+ {
+ frm.top().indent = frm.prev().indent_tmp;
+ }
+ else
+ {
+ frm.top().indent = frm.prev().indent_tmp + indent_size;
+ }
+ log_indent();
+ }
+ else
+ {
+ // Use the prev indent level + indent_size.
+ if (get_chunk_parent_type(pc) == CT_SWITCH)
+ {
+ frm.top().indent = frm.prev().indent + options::indent_switch_body();
+ }
+ else
+ {
+ frm.top().indent = frm.prev().indent + indent_size;
+ }
+ LOG_FMT(LINDLINE, "%s(%d): frm.pse_tos is %zu, ... indent is %zu\n",
+ __func__, __LINE__, frm.size() - 1, frm.top().indent);
+ LOG_FMT(LINDLINE, "%s(%d): orig_line is %zu, orig_col is %zu, Text() is '%s', parent_type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(),
+ get_token_name(get_chunk_parent_type(pc)));
+
+ // If this brace is part of a statement, bump it out by indent_brace
+ if ( get_chunk_parent_type(pc) == CT_IF
+ || get_chunk_parent_type(pc) == CT_ELSE
+ || get_chunk_parent_type(pc) == CT_ELSEIF
+ || get_chunk_parent_type(pc) == CT_TRY
+ || get_chunk_parent_type(pc) == CT_CATCH
+ || get_chunk_parent_type(pc) == CT_DO
+ || get_chunk_parent_type(pc) == CT_WHILE
+ || get_chunk_parent_type(pc) == CT_USING_STMT
+ || get_chunk_parent_type(pc) == CT_SWITCH
+ || get_chunk_parent_type(pc) == CT_SYNCHRONIZED
+ || get_chunk_parent_type(pc) == CT_FOR)
+ {
+ if (parent_token_indent != 0)
+ {
+ frm.top().indent += parent_token_indent - indent_size;
+ log_indent();
+ }
+ else
+ {
+ log_rule_B("indent_brace");
+ frm.top().indent += options::indent_brace();
+ log_indent();
+ indent_column_set(indent_column + options::indent_brace());
+ }
+ }
+ else if (get_chunk_parent_type(pc) == CT_CASE)
+ {
+ if (options::indent_ignore_case_brace())
+ {
+ log_rule_B("indent_ignore_case_brace");
+ indent_column_set(pc->orig_col);
+ }
+ else
+ {
+ log_rule_B("indent_case_brace");
+ const auto tmp_indent = static_cast<int>(frm.prev().indent)
+ - static_cast<int>(indent_size)
+ + options::indent_case_brace();
+ /*
+ * An open brace with the parent of case does not indent by default
+ * UO_indent_case_brace can be used to indent the brace.
+ * So we need to take the CASE indent, subtract off the
+ * indent_size that was added above and then add indent_case_brace.
+ * may take negative value
+ */
+ indent_column_set(max(tmp_indent, 0));
+ }
+ // Stuff inside the brace still needs to be indented
+ frm.top().indent = indent_column + indent_size;
+ log_indent();
+
+ frm.top().indent_tmp = frm.top().indent;
+ log_indent_tmp();
+ }
+ else if ( get_chunk_parent_type(pc) == CT_CLASS
+ && !options::indent_class())
+ {
+ log_rule_B("indent_class");
+ LOG_FMT(LINDENT, "%s(%d): orig_line is %zu, orig_col is %zu, text is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text());
+ frm.top().indent -= indent_size;
+ log_indent();
+ }
+ else if (get_chunk_parent_type(pc) == CT_NAMESPACE)
+ {
+ frm.top().ns_cnt = frm.prev().ns_cnt + 1;
+
+ log_rule_B("indent_namespace");
+ log_rule_B("indent_namespace_single_indent");
+
+ if ( options::indent_namespace()
+ && options::indent_namespace_single_indent())
+ {
+ if (frm.top().ns_cnt >= 2)
+ {
+ // undo indent on all except the first namespace
+ frm.top().indent -= indent_size;
+ log_indent();
+ }
+ indent_column_set(frm.prev(frm.top().ns_cnt).indent);
+ }
+ else if ( options::indent_namespace()
+ && options::indent_namespace_inner_only())
+ {
+ if (frm.top().ns_cnt == 1)
+ {
+ // undo indent on first namespace only
+ frm.top().indent -= indent_size;
+ log_indent();
+ }
+ }
+ else if ( pc->flags.test(PCF_LONG_BLOCK)
+ || !options::indent_namespace())
+ {
+ log_rule_B("indent_namespace");
+ // don't indent long blocks
+ frm.top().indent -= indent_size;
+ log_indent();
+ }
+ else // indenting 'short' namespace
+ {
+ log_rule_B("indent_namespace_level");
+
+ if (options::indent_namespace_level() > 0)
+ {
+ frm.top().indent -= indent_size;
+ log_indent();
+
+ frm.top().indent +=
+ options::indent_namespace_level();
+ log_indent();
+ }
+ }
+ }
+ else if ( get_chunk_parent_type(pc) == CT_EXTERN
+ && !options::indent_extern())
+ {
+ log_rule_B("indent_extern");
+ frm.top().indent -= indent_size;
+ log_indent();
+ }
+ frm.top().indent_tab = frm.top().indent;
+ }
+
+ if (pc->flags.test(PCF_DONT_INDENT))
+ {
+ frm.top().indent = pc->column;
+ log_indent();
+
+ indent_column_set(pc->column);
+ }
+ else
+ {
+ /*
+ * If there isn't a newline between the open brace and the next
+ * item, just indent to wherever the next token is.
+ * This covers this sort of stuff:
+ * { a++;
+ * b--; };
+ */
+ Chunk *next = pc->GetNextNcNnl();
+
+ if (next->IsNullChunk())
+ {
+ break;
+ }
+ Chunk *prev = pc->GetPrev();
+
+ if ( get_chunk_parent_type(pc) == CT_BRACED_INIT_LIST
+ && chunk_is_token(prev, CT_BRACE_OPEN)
+ && get_chunk_parent_type(prev) == CT_BRACED_INIT_LIST)
+ {
+ indent_column = frm.prev().brace_indent;
+ frm.top().indent = frm.prev().indent;
+ log_indent();
+ }
+ else if ( !chunk_is_newline_between(pc, next)
+ && get_chunk_parent_type(next) != CT_BRACED_INIT_LIST
+ && options::indent_token_after_brace()
+ && !pc->flags.test(PCF_ONE_LINER)) // Issue #1108
+ {
+ log_rule_B("indent_token_after_brace");
+ frm.top().indent = next->column;
+ log_indent();
+ }
+ frm.top().indent_tmp = frm.top().indent;
+ frm.top().open_line = pc->orig_line;
+ log_indent_tmp();
+
+ log_rule_B("Update the indent_column");
+
+ // Update the indent_column if needed
+ if ( brace_indent
+ || parent_token_indent != 0)
+ {
+ indent_column_set(frm.top().indent_tmp);
+ log_indent_tmp();
+ }
+ }
+ // Save the brace indent
+ frm.top().brace_indent = indent_column;
+ }
+ else if (chunk_is_token(pc, CT_SQL_END))
+ {
+ if (frm.top().type == CT_SQL_BEGIN)
+ {
+ LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type));
+ frm.pop(__func__, __LINE__, pc);
+ indent_column_set(frm.top().indent_tmp);
+ log_indent_tmp();
+ }
+ }
+ else if ( chunk_is_token(pc, CT_SQL_BEGIN)
+ || chunk_is_token(pc, CT_MACRO_OPEN)
+ || ( chunk_is_token(pc, CT_CLASS)
+ && language_is_set(LANG_CS))) // Issue #3536
+ {
+ frm.push(pc, __func__, __LINE__);
+
+ frm.top().indent = frm.prev().indent + indent_size;
+ log_indent();
+
+ frm.top().indent_tmp = frm.top().indent;
+ frm.top().indent_tab = frm.top().indent;
+ log_indent_tmp();
+ }
+ else if (chunk_is_token(pc, CT_SQL_EXEC))
+ {
+ frm.push(pc, __func__, __LINE__);
+
+ frm.top().indent = frm.prev().indent + indent_size;
+ log_indent();
+
+ frm.top().indent_tmp = frm.top().indent;
+ log_indent_tmp();
+ }
+ else if (chunk_is_token(pc, CT_MACRO_ELSE))
+ {
+ if (frm.top().type == CT_MACRO_OPEN)
+ {
+ indent_column_set(frm.prev().indent);
+ }
+ }
+ else if (chunk_is_token(pc, CT_CASE))
+ {
+ // Start a case - indent UO_indent_switch_case from the switch level
+ log_rule_B("indent_switch_case");
+ const size_t tmp = frm.top().indent + indent_size
+ - options::indent_switch_body()
+ + options::indent_switch_case();
+ frm.push(pc, __func__, __LINE__);
+
+ frm.top().indent = tmp;
+ log_indent();
+
+ log_rule_B("indent_case_shift");
+ frm.top().indent_tmp = tmp - indent_size + options::indent_case_shift();
+ frm.top().indent_tab = tmp;
+ log_indent_tmp();
+
+ // Always set on case statements
+ indent_column_set(frm.top().indent_tmp);
+
+ if (options::indent_case_comment())
+ {
+ // comments before 'case' need to be aligned with the 'case'
+ Chunk *pct = pc;
+
+ while ( ((pct = pct->GetPrevNnl())->IsNotNullChunk())
+ && pct->IsComment())
+ {
+ Chunk *t2 = pct->GetPrev();
+
+ if (chunk_is_newline(t2))
+ {
+ pct->column = frm.top().indent_tmp;
+ pct->column_indent = pct->column;
+ }
+ }
+ }
+ }
+ else if (chunk_is_token(pc, CT_BREAK))
+ {
+ Chunk *prev = pc->GetPrevNcNnl();
+
+ if ( chunk_is_token(prev, CT_BRACE_CLOSE)
+ && get_chunk_parent_type(prev) == CT_CASE)
+ {
+ // issue #663 + issue #1366
+ Chunk *prev_prev_newline = pc->GetPrevNl()->GetPrevNl();
+
+ if (prev_prev_newline->IsNotNullChunk())
+ {
+ // This only affects the 'break', so no need for a stack entry
+ indent_column_set(prev_prev_newline->GetNext()->column);
+ }
+ }
+ }
+ else if (chunk_is_token(pc, CT_LABEL))
+ {
+ if (options::indent_ignore_label())
+ {
+ log_rule_B("indent_ignore_label");
+ indent_column_set(pc->orig_col);
+ }
+ else
+ {
+ log_rule_B("indent_label");
+ const auto val = options::indent_label();
+ const auto pse_indent = frm.top().indent;
+
+ // Labels get sent to the left or backed up
+ if (val > 0)
+ {
+ indent_column_set(val);
+
+ Chunk *next = pc->GetNext()->GetNext(); // colon + possible statement
+
+ if ( next->IsNotNullChunk()
+ && !chunk_is_newline(next)
+ // label (+ 2, because there is colon and space after it) must fit into indent
+ && (val + static_cast<int>(pc->Len()) + 2 <= static_cast<int>(pse_indent)))
+ {
+ reindent_line(next, pse_indent);
+ }
+ }
+ else
+ {
+ const auto no_underflow = cast_abs(pse_indent, val) < pse_indent;
+ indent_column_set(((no_underflow) ? (pse_indent + val) : 0));
+ }
+ }
+ }
+ else if (chunk_is_token(pc, CT_ACCESS))
+ {
+ log_rule_B("indent_access_spec_body");
+
+ if (options::indent_access_spec_body())
+ {
+ const size_t tmp = frm.top().indent + indent_size;
+ frm.push(pc, __func__, __LINE__);
+
+ frm.top().indent = tmp;
+ log_indent();
+
+ frm.top().indent_tmp = tmp - indent_size;
+ frm.top().indent_tab = tmp;
+ log_indent_tmp();
+
+ /*
+ * If we are indenting the body, then we must leave the access spec
+ * indented at brace level
+ */
+ indent_column_set(frm.top().indent_tmp);
+ // Issues 1161 + 2704
+ // comments before 'access specifier' need to be aligned with the 'access specifier'
+ // unless it is a Doxygen comment
+ Chunk *pct = pc;
+
+ while ( ((pct = pct->GetPrevNnl())->IsNotNullChunk())
+ && pct->IsComment()
+ && !chunk_is_Doxygen_comment(pct))
+ {
+ Chunk *t2 = pct->GetPrev();
+
+ if (chunk_is_newline(t2))
+ {
+ pct->column = frm.top().indent_tmp;
+ pct->column_indent = pct->column;
+ }
+ }
+ }
+ else
+ {
+ // Access spec labels get sent to the left or backed up
+ log_rule_B("indent_access_spec");
+ const auto val = options::indent_access_spec();
+
+ if (val > 0)
+ {
+ indent_column_set(val);
+ }
+ else
+ {
+ const auto pse_indent = frm.top().indent;
+ const auto no_underflow = cast_abs(pse_indent, val) < pse_indent;
+
+ indent_column_set(no_underflow ? (pse_indent + val) : 0);
+ }
+ }
+ }
+ else if ( chunk_is_token(pc, CT_CLASS_COLON)
+ || chunk_is_token(pc, CT_CONSTR_COLON))
+ {
+ // just indent one level
+ frm.push(pc, __func__, __LINE__);
+
+ frm.top().indent = frm.prev().indent_tmp + indent_size;
+ log_indent();
+
+ frm.top().indent_tmp = frm.top().indent;
+ frm.top().indent_tab = frm.top().indent;
+ log_indent_tmp();
+
+ if (chunk_is_token(pc, CT_CLASS_COLON))
+ {
+ if (options::indent_ignore_before_class_colon())
+ {
+ log_rule_B("indent_ignore_before_class_colon");
+ frm.top().indent_tmp = pc->orig_col;
+ log_indent_tmp();
+ }
+ else if (options::indent_before_class_colon() != 0)
+ {
+ log_rule_B("indent_before_class_colon");
+ frm.top().indent_tmp = std::max<ptrdiff_t>(frm.top().indent_tmp + options::indent_before_class_colon(), 0);
+ log_indent_tmp();
+ }
+ }
+ indent_column_set(frm.top().indent_tmp);
+
+ log_rule_B("indent_class_colon");
+
+ if ( options::indent_class_colon()
+ && chunk_is_token(pc, CT_CLASS_COLON))
+ {
+ log_rule_B("indent_class_on_colon");
+
+ if (options::indent_class_on_colon())
+ {
+ frm.top().indent = pc->column;
+ log_indent();
+ }
+ else
+ {
+ Chunk *next = pc->GetNext();
+
+ if ( next->IsNotNullChunk()
+ && !chunk_is_newline(next))
+ {
+ frm.top().indent = next->column;
+ log_indent();
+ }
+ }
+ }
+ else if (chunk_is_token(pc, CT_CONSTR_COLON))
+ {
+ if (options::indent_ignore_before_constr_colon())
+ {
+ log_rule_B("indent_ignore_before_constr_colon");
+ frm.top().indent_tmp = pc->orig_col;
+ indent_column_set(frm.top().indent_tmp);
+ }
+
+ if (options::indent_constr_colon())
+ {
+ log_rule_B("indent_constr_colon");
+ Chunk *prev = pc->GetPrev();
+
+ if (chunk_is_newline(prev))
+ {
+ log_rule_B("indent_ctor_init_following");
+ frm.top().indent += options::indent_ctor_init_following();
+ log_indent();
+ }
+ // TODO: Create a dedicated indent_constr_on_colon?
+ log_rule_B("indent_class_on_colon");
+
+ if (options::indent_ctor_init() != 0)
+ {
+ log_rule_B("indent_ctor_init");
+ /*
+ * If the std::max() calls were specialized with size_t (the type of the underlying variable),
+ * they would never actually do their job, because size_t is unsigned and therefore even
+ * a "negative" result would be always greater than zero.
+ * Using ptrdiff_t (a standard signed type of the same size as size_t) in order to avoid that.
+ */
+ frm.top().indent = std::max<ptrdiff_t>(frm.top().indent + options::indent_ctor_init(), 0);
+ log_indent();
+ frm.top().indent_tmp = std::max<ptrdiff_t>(frm.top().indent_tmp + options::indent_ctor_init(), 0);
+ frm.top().indent_tab = std::max<ptrdiff_t>(frm.top().indent_tab + options::indent_ctor_init(), 0);
+ log_indent_tmp();
+ indent_column_set(frm.top().indent_tmp);
+ }
+ else if (options::indent_class_on_colon())
+ {
+ frm.top().indent = pc->column;
+ log_indent();
+ }
+ else
+ {
+ Chunk *next = pc->GetNext();
+
+ if ( next->IsNotNullChunk()
+ && !chunk_is_newline(next))
+ {
+ frm.top().indent = next->column;
+ log_indent();
+ }
+ }
+ }
+ }
+ }
+ else if ( chunk_is_token(pc, CT_PAREN_OPEN)
+ && ( get_chunk_parent_type(pc) == CT_ASM
+ || ( pc->GetPrevNcNnl()->IsNotNullChunk()
+ && pc->GetPrevNcNnl()->type == CT_ASM))
+ && options::indent_ignore_asm_block())
+ {
+ log_rule_B("indent_ignore_asm_block");
+ Chunk *tmp = chunk_skip_to_match(pc);
+
+ int move = 0;
+
+ if ( chunk_is_newline(pc->GetPrev())
+ && pc->column != indent_column)
+ {
+ move = indent_column - pc->column;
+ }
+ else
+ {
+ move = pc->column - pc->orig_col;
+ }
+
+ do
+ {
+ pc->column = pc->orig_col + move;
+ pc = pc->GetNext();
+ } while (pc != tmp);
+
+ reindent_line(pc, indent_column);
+ }
+ else if ( chunk_is_token(pc, CT_PAREN_OPEN)
+ || chunk_is_token(pc, CT_LPAREN_OPEN) // Issue #3054
+ || chunk_is_token(pc, CT_SPAREN_OPEN)
+ || chunk_is_token(pc, CT_FPAREN_OPEN)
+ || chunk_is_token(pc, CT_SQUARE_OPEN)
+ || chunk_is_token(pc, CT_ANGLE_OPEN))
+ {
+ /*
+ * Open parenthesis and squares - never update indent_column,
+ * unless right after a newline.
+ */
+ frm.push(pc, __func__, __LINE__);
+
+ if ( chunk_is_newline(pc->GetPrev())
+ && pc->column != indent_column
+ && !pc->flags.test(PCF_DONT_INDENT))
+ {
+ LOG_FMT(LINDENT, "%s(%d): orig_line is %zu, indent => %zu, text is '%s'\n",
+ __func__, __LINE__, pc->orig_line, indent_column, pc->Text());
+ reindent_line(pc, indent_column);
+ }
+ frm.top().indent = pc->column + pc->Len();
+ log_indent();
+
+ if ( chunk_is_token(pc, CT_SQUARE_OPEN)
+ && language_is_set(LANG_D))
+ {
+ frm.top().indent_tab = frm.top().indent;
+ }
+ bool skipped = false;
+ log_rule_B("indent_inside_ternary_operator");
+ log_rule_B("indent_align_paren");
+
+ if ( options::indent_inside_ternary_operator()
+ && ( chunk_is_token(pc, CT_FPAREN_OPEN)
+ || chunk_is_token(pc, CT_PAREN_OPEN))
+ && frm.size() > 2
+ && ( frm.prev().type == CT_QUESTION
+ || frm.prev().type == CT_COND_COLON)
+ && !options::indent_align_paren())
+ {
+ frm.top().indent = frm.prev().indent_tmp + indent_size;
+ log_indent();
+ frm.top().indent_tab = frm.top().indent;
+ frm.top().indent_tmp = frm.top().indent;
+ log_indent_tmp();
+ }
+ else if ( ( chunk_is_token(pc, CT_FPAREN_OPEN)
+ || chunk_is_token(pc, CT_ANGLE_OPEN))
+ && ( ( options::indent_func_call_param()
+ && ( get_chunk_parent_type(pc) == CT_FUNC_CALL
+ || get_chunk_parent_type(pc) == CT_FUNC_CALL_USER))
+ || ( options::indent_func_proto_param()
+ && get_chunk_parent_type(pc) == CT_FUNC_PROTO)
+ || ( options::indent_func_class_param()
+ && ( get_chunk_parent_type(pc) == CT_FUNC_CLASS_DEF
+ || get_chunk_parent_type(pc) == CT_FUNC_CLASS_PROTO))
+ || ( options::indent_template_param()
+ && get_chunk_parent_type(pc) == CT_TEMPLATE)
+ || ( options::indent_func_ctor_var_param()
+ && get_chunk_parent_type(pc) == CT_FUNC_CTOR_VAR)
+ || ( options::indent_func_def_param()
+ && get_chunk_parent_type(pc) == CT_FUNC_DEF)
+ || ( !options::indent_func_def_param() // Issue #931
+ && get_chunk_parent_type(pc) == CT_FUNC_DEF
+ && options::indent_func_def_param_paren_pos_threshold() > 0
+ && pc->orig_col > options::indent_func_def_param_paren_pos_threshold())))
+ {
+ log_rule_B("indent_func_call_param");
+ log_rule_B("indent_func_proto_param");
+ log_rule_B("indent_func_class_param");
+ log_rule_B("indent_template_param");
+ log_rule_B("indent_func_ctor_var_param");
+ log_rule_B("indent_func_def_param");
+ log_rule_B("indent_func_def_param_paren_pos_threshold");
+ // Skip any continuation indents
+ size_t idx = (!frm.empty()) ? frm.size() - 2 : 0;
+
+ while ( ( ( idx > 0
+ && frm.at(idx).type != CT_BRACE_OPEN
+ && frm.at(idx).type != CT_VBRACE_OPEN
+ && frm.at(idx).type != CT_PAREN_OPEN
+ && frm.at(idx).type != CT_FPAREN_OPEN
+ && frm.at(idx).type != CT_SPAREN_OPEN
+ && frm.at(idx).type != CT_SQUARE_OPEN
+ && frm.at(idx).type != CT_ANGLE_OPEN
+ && frm.at(idx).type != CT_CASE
+ && frm.at(idx).type != CT_MEMBER
+ && frm.at(idx).type != CT_QUESTION
+ && frm.at(idx).type != CT_COND_COLON
+ && frm.at(idx).type != CT_LAMBDA
+ && frm.at(idx).type != CT_ASSIGN_NL)
+ || are_chunks_in_same_line(frm.at(idx).pc, frm.top().pc))
+ && ( frm.at(idx).type != CT_CLASS_COLON
+ && frm.at(idx).type != CT_CONSTR_COLON
+ && !( frm.at(idx).type == CT_LAMBDA
+ && frm.at(idx).pc->GetPrevNc()->type == CT_NEWLINE)))
+ {
+ if (idx == 0)
+ {
+ fprintf(stderr, "%s(%d): idx is ZERO, cannot be decremented, at line %zu, column %zu\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col);
+ log_flush(true);
+ exit(EX_SOFTWARE);
+ }
+ idx--;
+ skipped = true;
+ }
+ // PR#381
+ log_rule_B("indent_param");
+
+ if (options::indent_param() != 0)
+ {
+ frm.top().indent = frm.at(idx).indent + options::indent_param();
+ log_indent();
+ }
+ else
+ {
+ frm.top().indent = frm.at(idx).indent + indent_size;
+ log_indent();
+ }
+ log_rule_B("indent_func_param_double");
+
+ if (options::indent_func_param_double())
+ {
+ // double is: Use both values of the options indent_columns and indent_param
+ frm.top().indent += indent_size;
+ log_indent();
+ }
+ frm.top().indent_tab = frm.top().indent;
+ }
+ else if ( options::indent_oc_inside_msg_sel()
+ && chunk_is_token(pc, CT_PAREN_OPEN)
+ && frm.size() > 2
+ && ( frm.prev().type == CT_OC_MSG_FUNC
+ || frm.prev().type == CT_OC_MSG_NAME)
+ && !options::indent_align_paren()) // Issue #2658
+ {
+ log_rule_B("indent_oc_inside_msg_sel");
+ log_rule_B("indent_align_paren");
+ // When parens are inside OC messages, push on the parse frame stack
+ // [Class Message:(<here>
+ frm.top().indent = frm.prev().pc->column + indent_size;
+ log_indent();
+ frm.top().indent_tab = frm.top().indent;
+ frm.top().indent_tmp = frm.top().indent;
+ log_indent_tmp();
+ }
+ else if ( chunk_is_token(pc, CT_PAREN_OPEN)
+ && !chunk_is_newline(pc->GetNext())
+ && !options::indent_align_paren()
+ && !pc->flags.test(PCF_IN_SPAREN))
+ {
+ log_rule_B("indent_align_paren");
+ int idx = static_cast<int>(frm.size()) - 2;
+
+ while ( idx > 0
+ && are_chunks_in_same_line(frm.at(idx).pc, frm.top().pc))
+ {
+ idx--;
+ skipped = true;
+ }
+ frm.top().indent = frm.at(idx).indent + indent_size;
+ log_indent();
+
+ frm.top().indent_tab = frm.top().indent;
+ skipped = true;
+ }
+ else if ( ( chunk_is_str(pc, "(")
+ && !options::indent_paren_nl())
+ || ( chunk_is_str(pc, "<")
+ && !options::indent_paren_nl()) // TODO: add indent_angle_nl?
+ || ( chunk_is_str(pc, "[")
+ && !options::indent_square_nl()))
+ {
+ log_rule_B("indent_paren_nl");
+ log_rule_B("indent_square_nl");
+ Chunk *next = pc->GetNextNc();
+
+ if (next->IsNullChunk())
+ {
+ break;
+ }
+ log_rule_B("indent_paren_after_func_def");
+ log_rule_B("indent_paren_after_func_decl");
+ log_rule_B("indent_paren_after_func_call");
+
+ if ( chunk_is_newline(next)
+ && !options::indent_paren_after_func_def()
+ && !options::indent_paren_after_func_decl()
+ && !options::indent_paren_after_func_call())
+ {
+ size_t sub = 2;
+
+ if ( (frm.prev().type == CT_ASSIGN)
+ || (frm.prev().type == CT_RETURN))
+ {
+ sub = 3;
+ }
+ sub = static_cast<int>(frm.size()) - sub;
+
+ log_rule_B("indent_align_paren");
+
+ if (!options::indent_align_paren())
+ {
+ sub = static_cast<int>(frm.size()) - 2;
+
+ while ( sub > 0
+ && are_chunks_in_same_line(frm.at(sub).pc, frm.top().pc))
+ {
+ sub--;
+ skipped = true;
+ }
+
+ if ( ( frm.at(sub + 1).type == CT_CLASS_COLON
+ || frm.at(sub + 1).type == CT_CONSTR_COLON)
+ && (chunk_is_token(frm.at(sub + 1).pc->prev, CT_NEWLINE)))
+ {
+ sub = sub + 1;
+ }
+ }
+ frm.top().indent = frm.at(sub).indent + indent_size;
+ log_indent();
+
+ frm.top().indent_tab = frm.top().indent;
+ skipped = true;
+ }
+ else
+ {
+ if ( next->IsNotNullChunk()
+ && !next->IsComment())
+ {
+ if (chunk_is_token(next, CT_SPACE))
+ {
+ next = next->GetNextNc();
+
+ if (next->IsNullChunk())
+ {
+ break;
+ }
+ }
+
+ if (next->prev->IsComment())
+ {
+ // Issue #2099
+ frm.top().indent = next->prev->column;
+ }
+ else
+ {
+ frm.top().indent = next->column;
+ }
+ log_indent();
+ }
+ }
+ }
+ log_rule_B("use_indent_continue_only_once");
+ log_rule_B("indent_paren_after_func_decl");
+ log_rule_B("indent_paren_after_func_def");
+ log_rule_B("indent_paren_after_func_call");
+
+ if ( ( ( !frm.top().indent_cont // Issue #3567
+ && vardefcol == 0)
+ || ( !options::use_indent_continue_only_once() // Issue #1160
+ && !options::indent_ignore_first_continue())) // Issue #3561
+ && ( chunk_is_token(pc, CT_FPAREN_OPEN)
+ && chunk_is_newline(pc->GetPrev()))
+ && ( ( ( get_chunk_parent_type(pc) == CT_FUNC_PROTO
+ || get_chunk_parent_type(pc) == CT_FUNC_CLASS_PROTO)
+ && options::indent_paren_after_func_decl())
+ || ( ( get_chunk_parent_type(pc) == CT_FUNC_DEF
+ || get_chunk_parent_type(pc) == CT_FUNC_CLASS_DEF)
+ && options::indent_paren_after_func_def())
+ || ( ( get_chunk_parent_type(pc) == CT_FUNC_CALL
+ || get_chunk_parent_type(pc) == CT_FUNC_CALL_USER)
+ && options::indent_paren_after_func_call())
+ || !chunk_is_newline(pc->GetNext())))
+ {
+ frm.top().indent = frm.prev().indent + indent_size;
+ log_indent();
+
+ indent_column_set(frm.top().indent);
+ }
+ log_rule_B("indent_continue");
+
+ if ( get_chunk_parent_type(pc) != CT_OC_AT
+ && ( options::indent_ignore_first_continue()
+ || options::indent_continue() != 0)
+ && !skipped)
+ {
+ if (options::indent_ignore_first_continue())
+ {
+ frm.top().indent = get_indent_first_continue(pc->GetNext());
+ }
+ else
+ {
+ frm.top().indent = frm.prev().indent;
+ }
+ log_indent();
+
+ if ( pc->level == pc->brace_level
+ && !options::indent_ignore_first_continue()
+ && ( chunk_is_token(pc, CT_FPAREN_OPEN)
+ || chunk_is_token(pc, CT_SPAREN_OPEN)
+ || ( chunk_is_token(pc, CT_SQUARE_OPEN)
+ && get_chunk_parent_type(pc) != CT_OC_MSG)
+ || chunk_is_token(pc, CT_ANGLE_OPEN))) // Issue #1170
+ {
+ //log_rule_B("indent_continue");
+ //frm.top().indent += abs(options::indent_continue());
+ // frm.top().indent = calc_indent_continue(frm);
+ // frm.top().indent_cont = true;
+ log_rule_B("use_indent_continue_only_once");
+
+ if ( (options::use_indent_continue_only_once())
+ && (frm.top().indent_cont)
+ && vardefcol != 0)
+ {
+ /*
+ * The value of the indentation for a continuation line is calculate
+ * differently if the line is:
+ * a declaration :your case with QString fileName ...
+ * an assignment :your case with pSettings = new QSettings( ...
+ * At the second case the option value might be used twice:
+ * at the assignment
+ * at the function call (if present)
+ * If you want to prevent the double use of the option value
+ * you may use the new option :
+ * use_indent_continue_only_once
+ * with the value "true".
+ * use/don't use indent_continue once Guy 2016-05-16
+ */
+
+ // if vardefcol isn't zero, use it
+ frm.top().indent = vardefcol;
+ log_indent();
+ }
+ else
+ {
+ frm.top().indent = calc_indent_continue(frm);
+ log_indent();
+ frm.top().indent_cont = true;
+
+ log_rule_B("indent_sparen_extra");
+
+ if ( chunk_is_token(pc, CT_SPAREN_OPEN)
+ && options::indent_sparen_extra() != 0)
+ {
+ frm.top().indent += options::indent_sparen_extra();
+ log_indent();
+ }
+ }
+ }
+ }
+ frm.top().indent_tmp = frm.top().indent;
+ log_indent_tmp();
+
+ frm.paren_count++;
+ }
+ else if ( options::indent_member_single()
+ && chunk_is_token(pc, CT_MEMBER)
+ && (strcmp(pc->Text(), ".") == 0)
+ && language_is_set(LANG_CS | LANG_CPP))
+ {
+ log_rule_B("indent_member_single");
+
+ if (frm.top().type != CT_MEMBER)
+ {
+ frm.push(pc, __func__, __LINE__);
+ Chunk *tmp = frm.top().pc->GetPrevNcNnlNpp();
+
+ if (are_chunks_in_same_line(frm.prev().pc, tmp))
+ {
+ frm.top().indent = frm.prev().indent;
+ }
+ else
+ {
+ frm.top().indent = frm.prev().indent + indent_size;
+ }
+ log_indent();
+ frm.top().indent_tmp = frm.top().indent;
+ log_indent_tmp();
+ }
+
+ if (chunk_is_newline(pc->GetPrev()))
+ {
+ if ( chunk_is_token(pc, CT_MEMBER) // Issue #2890
+ && language_is_set(LANG_CPP))
+ {
+ // will be done at another place
+ // look at the comment: XXXXXXXXXXXXXXXXXXXXXXXXXX
+ }
+ else
+ {
+ indent_column_set(frm.top().indent);
+ reindent_line(pc, indent_column);
+ did_newline = false;
+ }
+ }
+ //check for the series of CT_member chunks else pop it.
+ Chunk *tmp = pc->GetNextNcNnlNpp();
+
+ if (tmp->IsNotNullChunk())
+ {
+ if (chunk_is_token(tmp, CT_FUNC_CALL))
+ {
+ tmp = tmp->GetNextType(CT_FPAREN_CLOSE, tmp->level);
+ tmp = tmp->GetNextNcNnlNpp();
+ }
+ else if ( chunk_is_token(tmp, CT_WORD)
+ || chunk_is_token(tmp, CT_TYPE))
+ {
+ tmp = tmp->GetNextNcNnlNpp();
+ }
+ }
+
+ if ( tmp->IsNotNullChunk()
+ && ( (strcmp(tmp->Text(), ".") != 0)
+ || tmp->type != CT_MEMBER))
+ {
+ if (chunk_is_paren_close(tmp))
+ {
+ tmp = tmp->GetPrevNcNnlNpp();
+ }
+ Chunk *local_prev = tmp->GetPrev(); // Issue #3294
+
+ if (local_prev->IsComment())
+ {
+ tmp = tmp->GetPrev(); // Issue #3294
+ }
+
+ if ( tmp->IsNotNullChunk()
+ && chunk_is_newline(tmp->GetPrev()))
+ {
+ tmp = tmp->GetPrevNcNnlNpp()->GetNextNl();
+ }
+
+ if (tmp->IsNotNullChunk())
+ {
+ frm.top().pop_pc = tmp;
+ }
+ }
+ }
+ else if ( chunk_is_token(pc, CT_ASSIGN)
+ || chunk_is_token(pc, CT_IMPORT)
+ || ( chunk_is_token(pc, CT_USING)
+ && language_is_set(LANG_CS)))
+ {
+ /*
+ * if there is a newline after the '=' or the line starts with a '=',
+ * just indent one level,
+ * otherwise align on the '='.
+ */
+ if ( chunk_is_token(pc, CT_ASSIGN)
+ && chunk_is_newline(pc->GetPrev()))
+ {
+ if (frm.top().type == CT_ASSIGN_NL)
+ {
+ frm.top().indent_tmp = frm.top().indent;
+ }
+ else
+ {
+ frm.top().indent_tmp = frm.top().indent + indent_size;
+ }
+ log_indent_tmp();
+
+ indent_column_set(frm.top().indent_tmp);
+ LOG_FMT(LINDENT, "%s(%d): %zu] assign => %zu [%s]\n",
+ __func__, __LINE__, pc->orig_line, indent_column, pc->Text());
+ reindent_line(pc, frm.top().indent_tmp);
+ }
+ Chunk *next = pc->GetNext();
+
+ if (next->IsNotNullChunk())
+ {
+ /*
+ * fixes 1260 , 1268 , 1277 (Extra indentation after line with multiple assignments)
+ * For multiple consecutive assignments in single line , the indent of all these
+ * assignments should be same and one more than this line's indent.
+ * so poping the previous assign and pushing the new one
+ */
+ if ( frm.top().type == CT_ASSIGN
+ && chunk_is_token(pc, CT_ASSIGN))
+ {
+ LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type));
+ frm.pop(__func__, __LINE__, pc);
+ }
+ frm.push(pc, __func__, __LINE__);
+
+ if ( chunk_is_token(pc, CT_ASSIGN)
+ && chunk_is_newline(pc->GetPrev()))
+ {
+ frm.top().type = CT_ASSIGN_NL;
+ }
+ log_rule_B("indent_continue");
+
+ if (options::indent_ignore_first_continue())
+ {
+ frm.top().indent = get_indent_first_continue(pc);
+ log_indent();
+ frm.top().indent_cont = true; // Issue #3567
+ }
+ else if (options::indent_continue() != 0)
+ {
+ frm.top().indent = frm.prev().indent;
+ log_indent();
+
+ if ( pc->level == pc->brace_level
+ && ( pc->type != CT_ASSIGN
+ || ( get_chunk_parent_type(pc) != CT_FUNC_PROTO
+ && get_chunk_parent_type(pc) != CT_FUNC_DEF)))
+ {
+ log_rule_B("use_indent_continue_only_once");
+
+ if ( (options::use_indent_continue_only_once())
+ && (frm.top().indent_cont)
+ && vardefcol != 0)
+ {
+ // if vardefcol isn't zero, use it
+ frm.top().indent = vardefcol;
+ log_indent();
+ }
+ else
+ {
+ frm.top().indent = calc_indent_continue(frm);
+ log_indent();
+
+ vardefcol = frm.top().indent; // use the same variable for the next line
+ frm.top().indent_cont = true;
+ }
+ }
+ }
+ else if ( chunk_is_newline(next)
+ || !options::indent_align_assign())
+ {
+ log_rule_B("indent_align_assign");
+ log_rule_B("indent_off_after_assign");
+
+ if (options::indent_off_after_assign()) // Issue #2591
+ {
+ frm.top().indent = frm.prev().indent_tmp;
+ }
+ else
+ {
+ frm.top().indent = frm.prev().indent_tmp + indent_size;
+ }
+ log_indent();
+
+ if ( chunk_is_token(pc, CT_ASSIGN)
+ && chunk_is_newline(next))
+ {
+ frm.top().type = CT_ASSIGN_NL;
+ frm.top().indent_tab = frm.top().indent;
+ }
+ }
+ else
+ {
+ frm.top().indent = pc->column + pc->Len() + 1;
+ log_indent();
+ }
+ frm.top().indent_tmp = frm.top().indent;
+ log_indent_tmp();
+ }
+ }
+ else if ( chunk_is_token(pc, CT_RETURN)
+ || ( chunk_is_token(pc, CT_THROW)
+ && get_chunk_parent_type(pc) == CT_NONE))
+ {
+ // don't count returns inside a () or []
+ if ( pc->level == pc->brace_level
+ || pc->flags.test(PCF_IN_LAMBDA))
+ {
+ Chunk *next = pc->GetNext();
+
+ // Avoid indentation on return token set by the option.
+ log_rule_B("indent_off_after_return");
+
+ // Avoid indentation on return token if the next token is a new token
+ // to properly indent object initializers returned by functions.
+ log_rule_B("indent_off_after_return_new");
+ bool indent_after_return = ( next->IsNotNullChunk()
+ && next->type == CT_NEW)
+ ? !options::indent_off_after_return_new()
+ : !options::indent_off_after_return();
+
+ if ( indent_after_return
+ || next->IsNullChunk())
+ {
+ frm.push(pc, __func__, __LINE__);
+
+ log_rule_B("indent_single_after_return");
+
+ if ( chunk_is_newline(next)
+ || ( chunk_is_token(pc, CT_RETURN)
+ && options::indent_single_after_return()))
+ {
+ // apply normal single indentation
+ frm.top().indent = frm.prev().indent + indent_size;
+ }
+ else
+ {
+ // indent after the return token
+ frm.top().indent = frm.prev().indent + pc->Len() + 1;
+ }
+ log_indent();
+ frm.top().indent_tmp = frm.prev().indent;
+ log_indent_tmp();
+ }
+ log_indent();
+ }
+ }
+ else if ( chunk_is_token(pc, CT_OC_SCOPE)
+ || chunk_is_token(pc, CT_TYPEDEF))
+ {
+ frm.push(pc, __func__, __LINE__);
+ // Issue #405
+ frm.top().indent = frm.prev().indent;
+ log_indent();
+
+ frm.top().indent_tmp = frm.top().indent;
+ LOG_FMT(LINDLINE, "%s(%d): .indent is %zu, .indent_tmp is %zu\n",
+ __func__, __LINE__, frm.top().indent, frm.top().indent_tmp);
+
+ log_rule_B("indent_continue");
+
+ if (options::indent_ignore_first_continue())
+ {
+ frm.top().indent = get_indent_first_continue(pc);
+ log_indent();
+ }
+ else if (options::indent_continue() != 0)
+ {
+ frm.top().indent = calc_indent_continue(frm, frm.size() - 2);
+ log_indent();
+
+ frm.top().indent_cont = true;
+ }
+ else
+ {
+ frm.top().indent = frm.prev().indent + indent_size;
+ log_indent();
+ }
+ }
+ else if (chunk_is_token(pc, CT_C99_MEMBER))
+ {
+ // nothing to do
+ }
+ else if (chunk_is_token(pc, CT_WHERE_SPEC))
+ {
+ /* class indentation is ok already, just need to adjust func */
+ /* TODO: make this configurable, obviously.. */
+ if ( get_chunk_parent_type(pc) == CT_FUNC_DEF
+ || get_chunk_parent_type(pc) == CT_FUNC_PROTO
+ || ( get_chunk_parent_type(pc) == CT_STRUCT
+ && frm.top().type != CT_CLASS_COLON))
+ {
+ indent_column_set(frm.top().indent + 4);
+ }
+ }
+ else if ( options::indent_inside_ternary_operator()
+ && ( chunk_is_token(pc, CT_QUESTION)
+ || chunk_is_token(pc, CT_COND_COLON))) // Issue #1130, #1715
+ {
+ log_rule_B("indent_inside_ternary_operator");
+
+ // Pop any colons before because they should already be processed
+ while ( chunk_is_token(pc, CT_COND_COLON)
+ && frm.top().type == CT_COND_COLON)
+ {
+ frm.pop(__func__, __LINE__, pc);
+ }
+ log_rule_B("indent_inside_ternary_operator");
+
+ // Pop Question from stack in ternary operator
+ if ( options::indent_inside_ternary_operator()
+ && chunk_is_token(pc, CT_COND_COLON)
+ && frm.top().type == CT_QUESTION)
+ {
+ LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type));
+ frm.pop(__func__, __LINE__, pc);
+ indent_column_set(frm.top().indent_tmp);
+ }
+ frm.push(pc, __func__, __LINE__);
+
+ frm.top().indent = frm.prev().indent + indent_size;
+ frm.top().indent_tab = frm.top().indent;
+ log_indent();
+ frm.top().indent_tmp = frm.top().indent;
+ log_indent_tmp();
+ }
+ else if ( chunk_is_token(pc, CT_LAMBDA)
+ && (language_is_set(LANG_CS | LANG_JAVA))
+ && pc->GetNextNcNnlNpp()->type != CT_BRACE_OPEN
+ && options::indent_cs_delegate_body())
+ {
+ log_rule_B("indent_cs_delegate_body");
+ frm.push(pc, __func__, __LINE__);
+ frm.top().indent = frm.prev().indent;
+ log_indent();
+
+ if ( chunk_is_newline(pc->GetPrevNc())
+ && !are_chunks_in_same_line(frm.prev().pc, pc->GetPrevNcNnl()))
+ {
+ frm.top().indent = frm.prev().indent + indent_size;
+ log_indent();
+ reindent_line(pc, (frm.prev().indent + indent_size));
+ did_newline = false;
+ }
+ else if ( chunk_is_newline(pc->GetNextNc())
+ && !are_chunks_in_same_line(frm.prev().pc, frm.top().pc))
+ {
+ frm.top().indent = frm.prev().indent + indent_size;
+ }
+ log_indent();
+ frm.top().indent_tmp = frm.top().indent;
+ log_indent_tmp();
+ }
+ else if ( options::indent_oc_inside_msg_sel()
+ && ( chunk_is_token(pc, CT_OC_MSG_FUNC)
+ || chunk_is_token(pc, CT_OC_MSG_NAME))
+ && chunk_is_token(pc->GetNextNcNnl(), CT_OC_COLON)) // Issue #2658
+ {
+ log_rule_B("indent_oc_inside_msg_sel");
+ // Pop the OC msg name that is on the top of the stack
+ // [Class Message:<here>
+ frm.push(pc, __func__, __LINE__);
+
+ frm.top().indent = frm.prev().indent;
+ frm.top().indent_tab = frm.prev().indent_tab;
+ log_indent();
+ frm.top().indent_tmp = frm.prev().indent_tmp;
+ log_indent_tmp();
+ }
+ else if (pc->IsComment())
+ {
+ // Issue #3294
+ Chunk *next = pc->GetNext();
+
+ if (chunk_is_token(next, CT_COND_COLON))
+ {
+ LOG_FMT(LINDLINE, "%s(%d): Comment and COND_COLON: pc->orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type));
+ frm.pop(__func__, __LINE__, pc);
+ }
+// uncomment the line below to get debug info
+// #define ANYTHING_ELSE
+#ifdef ANYTHING_ELSE
+ else
+ {
+ // anything else?
+ // Issue #3294
+ LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type));
+ LOG_FMT(LSPACE, "\n\n%s(%d): WARNING: unrecognize indent_text:\n",
+ __func__, __LINE__);
+ }
+#endif /* ANYTHING_ELSE */
+ }
+ else
+ {
+ // anything else?
+#ifdef ANYTHING_ELSE
+ LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type));
+ LOG_FMT(LSPACE, "\n\n%s(%d): WARNING: unrecognize indent_text:\n",
+ __func__, __LINE__);
+#endif /* ANYTHING_ELSE */
+ }
+ // Handle shift expression continuation indenting
+ size_t shiftcontcol = 0;
+
+ log_rule_B("indent_shift");
+
+ if ( options::indent_shift() == 1
+ && !pc->flags.test(PCF_IN_ENUM)
+ && get_chunk_parent_type(pc) != CT_OPERATOR
+ && pc->type != CT_COMMENT
+ && pc->type != CT_COMMENT_CPP
+ && pc->type != CT_COMMENT_MULTI
+ && pc->type != CT_BRACE_OPEN
+ && pc->level > 0
+ && !pc->IsEmptyText())
+ {
+ bool in_shift = false;
+ bool is_operator = false;
+
+ // Are we in such an expression? Go both forwards and backwards.
+ Chunk *tmp = pc;
+
+ do
+ {
+ if (chunk_is_token(tmp, CT_SHIFT))
+ {
+ in_shift = true;
+ LOG_FMT(LINDENT2, "%s(%d): in_shift set to TRUE\n",
+ __func__, __LINE__);
+
+ tmp = tmp->GetPrevNcNnl();
+
+ if (chunk_is_token(tmp, CT_OPERATOR))
+ {
+ is_operator = true;
+ }
+ break;
+ }
+ tmp = tmp->GetPrevNcNnl();
+ } while ( !in_shift
+ && tmp->IsNotNullChunk()
+ && tmp->type != CT_SEMICOLON
+ && tmp->type != CT_BRACE_OPEN
+ && tmp->type != CT_BRACE_CLOSE
+ && tmp->type != CT_COMMA
+ && tmp->type != CT_SPAREN_OPEN
+ && tmp->type != CT_SPAREN_CLOSE);
+
+ tmp = pc;
+
+ do
+ {
+ tmp = tmp->GetNextNcNnl();
+
+ if ( tmp->IsNotNullChunk()
+ && chunk_is_token(tmp, CT_SHIFT))
+ {
+ in_shift = true;
+ LOG_FMT(LINDENT2, "%s(%d): in_shift set to TRUE\n",
+ __func__, __LINE__);
+
+ tmp = tmp->GetPrevNcNnl();
+
+ if (chunk_is_token(tmp, CT_OPERATOR))
+ {
+ is_operator = true;
+ }
+ break;
+ }
+ } while ( !in_shift
+ && tmp->IsNotNullChunk()
+ && tmp->type != CT_SEMICOLON
+ && tmp->type != CT_BRACE_OPEN
+ && tmp->type != CT_BRACE_CLOSE
+ && tmp->type != CT_COMMA
+ && tmp->type != CT_SPAREN_OPEN
+ && tmp->type != CT_SPAREN_CLOSE);
+
+ LOG_FMT(LINDENT2, "%s(%d): in_shift is %s\n",
+ __func__, __LINE__, in_shift ? "TRUE" : "FALSE");
+ Chunk *prev_nonl = pc->GetPrevNcNnl();
+ Chunk *prev2 = pc->GetPrevNc();
+
+ if (( chunk_is_semicolon(prev_nonl)
+ || chunk_is_token(prev_nonl, CT_BRACE_OPEN)
+ || chunk_is_token(prev_nonl, CT_BRACE_CLOSE)
+ || chunk_is_token(prev_nonl, CT_VBRACE_CLOSE)
+ || chunk_is_token(prev_nonl, CT_VBRACE_OPEN)
+ || chunk_is_token(prev_nonl, CT_CASE_COLON)
+ || ( prev_nonl->IsNotNullChunk()
+ && prev_nonl->flags.test(PCF_IN_PREPROC)) != pc->flags.test(PCF_IN_PREPROC)
+ || chunk_is_token(prev_nonl, CT_COMMA)
+ || is_operator))
+ {
+ in_shift = false;
+ }
+ LOG_FMT(LINDENT2, "%s(%d): in_shift is %s\n",
+ __func__, __LINE__, in_shift ? "TRUE" : "FALSE");
+
+ if ( chunk_is_token(prev2, CT_NEWLINE)
+ && in_shift)
+ {
+ shiftcontcol = calc_indent_continue(frm);
+ // Setting frm.top().indent_cont = true in the top context when the indent is not also set
+ // just leads to compications when succeeding statements try to indent based on being
+ // embedded in a continuation. In other words setting frm.top().indent_cont = true
+ // should only be set if frm.top().indent is also set.
+
+ // Work around the doubly increased indent in RETURNs and assignments
+ bool need_workaround = false;
+ size_t sub = 0;
+
+ for (int i = frm.size() - 1; i >= 0; i--)
+ {
+ if ( frm.at(i).type == CT_RETURN
+ || frm.at(i).type == CT_ASSIGN)
+ {
+ need_workaround = true;
+ sub = frm.size() - i;
+ break;
+ }
+ }
+
+ if (need_workaround)
+ {
+ shiftcontcol = calc_indent_continue(frm, frm.size() - 1 - sub);
+ }
+ }
+ }
+
+ // Handle variable definition continuation indenting
+ if ( vardefcol == 0
+ && ( chunk_is_token(pc, CT_WORD)
+ || chunk_is_token(pc, CT_FUNC_CTOR_VAR))
+ && !pc->flags.test(PCF_IN_FCN_DEF)
+ && pc->flags.test(PCF_VAR_1ST_DEF))
+ {
+ log_rule_B("indent_continue");
+
+ if (options::indent_ignore_first_continue())
+ {
+ vardefcol = get_indent_first_continue(pc);
+ }
+ else if (options::indent_continue() != 0)
+ {
+ vardefcol = calc_indent_continue(frm);
+ // Setting frm.top().indent_cont = true in the top context when the indent is not also set
+ // just leads to compications when succeeding statements try to indent based on being
+ // embedded in a continuation. In other words setting frm.top().indent_cont = true
+ // should only be set if frm.top().indent is also set.
+ }
+ else if ( options::indent_var_def_cont()
+ || chunk_is_newline(pc->GetPrev()))
+ {
+ log_rule_B("indent_var_def_cont");
+ vardefcol = frm.top().indent + indent_size;
+ }
+ else
+ {
+ // Issue #3010
+ vardefcol = pc->column;
+ // BUT, we need to skip backward over any '*'
+ Chunk *tmp = pc->GetPrevNc();
+
+ while (chunk_is_token(tmp, CT_PTR_TYPE))
+ {
+ vardefcol = tmp->column;
+ tmp = tmp->GetPrevNc();
+ }
+ // BUT, we need to skip backward over any '::' or TYPE
+ //tmp = pc->GetPrevNc();
+
+ //if (chunk_is_token(tmp, CT_DC_MEMBER))
+ //{
+ // // look for a type
+ // Chunk *tmp2 = tmp->GetPrevNc();
+ // if (chunk_is_token(tmp2, CT_TYPE))
+ // {
+ // // we have something like "SomeLongNamespaceName::Foo()"
+ // vardefcol = tmp2->column;
+ // LOG_FMT(LINDENT, "%s(%d): orig_line is %zu, vardefcol is %zu\n",
+ // __func__, __LINE__, pc->orig_line, vardefcol);
+ // }
+ //}
+ }
+ }
+
+ if ( chunk_is_semicolon(pc)
+ || ( chunk_is_token(pc, CT_BRACE_OPEN)
+ && ( get_chunk_parent_type(pc) == CT_FUNCTION
+ || get_chunk_parent_type(pc) == CT_CLASS))) //Issue #3576
+ {
+ vardefcol = 0;
+ }
+
+ // Indent the line if needed
+ if ( did_newline
+ && !chunk_is_newline(pc)
+ && (pc->Len() != 0))
+ {
+ pc->column_indent = frm.top().indent_tab;
+
+ if (frm.top().ip.ref)
+ {
+ pc->indent.ref = frm.top().ip.ref;
+ pc->indent.delta = frm.top().ip.delta;
+ }
+ LOG_FMT(LINDENT2, "%s(%d): orig_line is %zu, pc->column_indent is %zu, indent_column is %zu, for '%s'\n",
+ __func__, __LINE__, pc->orig_line, pc->column_indent, indent_column, pc->ElidedText(copy));
+
+ /*
+ * Check for special continuations.
+ * Note that some of these could be done as a stack item like
+ * everything else
+ */
+
+ auto prev = pc->GetPrevNcNnl();
+ auto prevv = prev->GetPrevNcNnl();
+ auto next = pc->GetNextNcNnl();
+
+ bool do_vardefcol = false;
+
+ if ( vardefcol > 0
+ && pc->level == pc->brace_level
+ && ( chunk_is_token(prev, CT_COMMA)
+ || chunk_is_token(prev, CT_TYPE)
+ || chunk_is_token(prev, CT_PTR_TYPE)
+ || chunk_is_token(prev, CT_WORD)))
+ {
+ Chunk *tmp = pc;
+
+ while (chunk_is_token(tmp, CT_PTR_TYPE))
+ {
+ tmp = tmp->GetNextNcNnl();
+ }
+ LOG_FMT(LINDENT2, "%s(%d): orig_line is %zu, for '%s'",
+ __func__, __LINE__, tmp->orig_line, tmp->Text());
+ LOG_FMT(LINDENT2, " tmp->flags: ");
+ log_pcf_flags(LINDENT2, tmp->flags); // Issue #2332
+
+ if ( tmp->flags.test(PCF_VAR_DEF)
+ && ( chunk_is_token(tmp, CT_WORD)
+ || chunk_is_token(tmp, CT_FUNC_CTOR_VAR)))
+ {
+ do_vardefcol = true;
+ }
+ }
+ //LOG_FMT(LINDENT2, "%s(%d): GUY 2:\n", __func__, __LINE__);
+
+ if (pc->flags.test(PCF_DONT_INDENT))
+ {
+ // no change
+ }
+ else if ( get_chunk_parent_type(pc) == CT_SQL_EXEC
+ && options::indent_preserve_sql())
+ {
+ log_rule_B("indent_preserve_sql");
+ reindent_line(pc, sql_col + (pc->orig_col - sql_orig_col));
+ LOG_FMT(LINDENT, "Indent SQL: [%s] to %zu (%zu/%zu)\n",
+ pc->Text(), pc->column, sql_col, sql_orig_col);
+ }
+ else if ( !options::indent_member_single()
+ && !pc->flags.test(PCF_STMT_START)
+ && ( chunk_is_token(pc, CT_MEMBER)
+ || ( chunk_is_token(pc, CT_DC_MEMBER)
+ && chunk_is_token(prev, CT_TYPE))
+ || ( chunk_is_token(prev, CT_MEMBER)
+ || ( chunk_is_token(prev, CT_DC_MEMBER)
+ && chunk_is_token(prevv, CT_TYPE)))))
+ {
+ log_rule_B("indent_member_single");
+ log_rule_B("indent_member");
+ size_t tmp = options::indent_member() + indent_column;
+ LOG_FMT(LINDENT, "%s(%d): orig_line is %zu, member => %zu\n",
+ __func__, __LINE__, pc->orig_line, tmp);
+ reindent_line(pc, tmp);
+ }
+ else if (do_vardefcol)
+ {
+ LOG_FMT(LINDENT, "%s(%d): orig_line is %zu, vardefcol is %zu\n",
+ __func__, __LINE__, pc->orig_line, vardefcol);
+ reindent_line(pc, vardefcol);
+ }
+ else if (shiftcontcol > 0)
+ {
+ LOG_FMT(LINDENT, "%s(%d): orig_line is %zu, shiftcontcol is %zu\n",
+ __func__, __LINE__, pc->orig_line, shiftcontcol);
+ reindent_line(pc, shiftcontcol);
+ }
+ else if ( chunk_is_token(pc, CT_NAMESPACE)
+ && options::indent_namespace()
+ && options::indent_namespace_single_indent()
+ && frm.top().ns_cnt)
+ {
+ log_rule_B("indent_namespace");
+ log_rule_B("indent_namespace_single_indent");
+ LOG_FMT(LINDENT, "%s(%d): orig_line is %zu, Namespace => %zu\n",
+ __func__, __LINE__, pc->orig_line, frm.top().brace_indent);
+ reindent_line(pc, frm.top().brace_indent);
+ }
+ else if ( chunk_is_token(pc, CT_STRING)
+ && chunk_is_token(prev, CT_STRING)
+ && options::indent_align_string())
+ {
+ log_rule_B("indent_align_string");
+ const int tmp = (xml_indent != 0) ? xml_indent : prev->column;
+
+ LOG_FMT(LINDENT, "%s(%d): orig_line is %zu, String => %d\n",
+ __func__, __LINE__, pc->orig_line, tmp);
+ reindent_line(pc, tmp);
+ }
+ else if (pc->IsComment())
+ {
+ LOG_FMT(LINDENT, "%s(%d): orig_line is %zu, comment => %zu\n",
+ __func__, __LINE__, pc->orig_line, frm.top().indent_tmp);
+ indent_comment(pc, frm.top().indent_tmp);
+ }
+ else if (chunk_is_token(pc, CT_PREPROC))
+ {
+ LOG_FMT(LINDENT, "%s(%d): orig_line is %zu, pp-indent => %zu [%s]\n",
+ __func__, __LINE__, pc->orig_line, indent_column, pc->Text());
+ reindent_line(pc, indent_column);
+ }
+ else if ( chunk_is_paren_close(pc)
+ || chunk_is_token(pc, CT_ANGLE_CLOSE))
+ {
+ /*
+ * This is a big hack. We assume that since we hit a paren close,
+ * that we just removed a paren open
+ */
+ LOG_FMT(LINDLINE, "%s(%d): indent_column is %zu\n",
+ __func__, __LINE__, indent_column);
+
+ if (frm.poped().type == E_Token(pc->type - 1))
+ {
+ // Issue # 405
+ LOG_FMT(LINDLINE, "%s(%d): orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type));
+ Chunk *ck1 = frm.poped().pc;
+ LOG_FMT(LINDLINE, "%s(%d): ck1->orig_line is %zu, ck1->orig_col is %zu, ck1->Text() is '%s', ck1->type is %s\n",
+ __func__, __LINE__, ck1->orig_line, ck1->orig_col, ck1->Text(), get_token_name(ck1->type));
+ Chunk *ck2 = ck1->GetPrev();
+ LOG_FMT(LINDLINE, "%s(%d): ck2->orig_line is %zu, ck2->orig_col is %zu, ck2->Text() is '%s', ck2->type is %s\n",
+ __func__, __LINE__, ck2->orig_line, ck2->orig_col, ck2->Text(), get_token_name(ck2->type));
+
+ log_rule_B("indent_paren_close");
+
+ if (options::indent_paren_close() == -1)
+ {
+ LOG_FMT(LINDLINE, "%s(%d): [%zu:%zu] indent_paren_close is -1\n",
+ __func__, __LINE__, ck2->orig_line, ck2->orig_col);
+ indent_column_set(pc->orig_col);
+ LOG_FMT(LINDLINE, "%s(%d): [%zu:%zu] indent_column set to %zu\n",
+ __func__, __LINE__, ck2->orig_line, ck2->orig_col, indent_column);
+ }
+ else if ( chunk_is_newline(ck2)
+ || (options::indent_paren_close() == 1))
+ {
+ /*
+ * If the open parenthesis was the first thing on the line or we
+ * are doing mode 1, then put the close parenthesis in the same
+ * column
+ */
+ LOG_FMT(LINDLINE, "%s(%d): [%zu:%zu] indent_paren_close is 1\n",
+ __func__, __LINE__, ck2->orig_line, ck2->orig_col);
+ indent_column_set(ck1->column);
+ LOG_FMT(LINDLINE, "%s(%d): [%zu:%zu] indent_column set to %zu\n",
+ __func__, __LINE__, ck2->orig_line, ck2->orig_col, indent_column);
+ }
+ else
+ {
+ if (options::indent_paren_close() != 2)
+ {
+ // indent_paren_close is 0 or 1
+ LOG_FMT(LINDLINE, "%s(%d): [%zu:%zu] indent_paren_close is 0 or 1\n",
+ __func__, __LINE__, ck2->orig_line, ck2->orig_col);
+ indent_column_set(frm.poped().indent_tmp);
+ LOG_FMT(LINDLINE, "%s(%d): [%zu:%zu] indent_column set to %zu\n",
+ __func__, __LINE__, ck2->orig_line, ck2->orig_col, indent_column);
+ pc->column_indent = frm.poped().indent_tab;
+ log_rule_B("indent_paren_close");
+
+ if (options::indent_paren_close() == 1)
+ {
+ LOG_FMT(LINDLINE, "%s(%d): [%zu:%zu] indent_paren_close is 1\n",
+ __func__, __LINE__, ck2->orig_line, ck2->orig_col);
+
+ if (indent_column == 0)
+ {
+ fprintf(stderr, "%s(%d): indent_column is ZERO, cannot be decremented, at line %zu, column %zu\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col);
+ log_flush(true);
+ exit(EX_SOFTWARE);
+ }
+ indent_column--;
+ LOG_FMT(LINDLINE, "%s(%d): [%zu:%zu] indent_column set to %zu\n",
+ __func__, __LINE__, ck2->orig_line, ck2->orig_col, indent_column);
+ }
+ }
+ else
+ {
+ // indent_paren_close is 2: Indent to the brace level
+ LOG_FMT(LINDLINE, "%s(%d): indent_paren_close is 2\n",
+ __func__, __LINE__);
+ LOG_FMT(LINDLINE, "%s(%d): ck2->orig_line is %zu, ck2->orig_col is %zu, ck2->Text() is '%s'\n",
+ __func__, __LINE__, ck2->orig_line, ck2->orig_col, ck2->Text());
+
+ if (pc->GetPrev()->type == CT_NEWLINE)
+ {
+ LOG_FMT(LINDLINE, "%s(%d): orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type));
+ LOG_FMT(LINDLINE, "%s(%d): prev is <newline>\n",
+ __func__, __LINE__);
+ Chunk *search = pc;
+
+ while (chunk_is_paren_close(search->GetNext()))
+ {
+ search = search->GetNext();
+ }
+ Chunk *searchNext = search->GetNext();
+
+ // Issue #3407 - Skip over a possible 'noexcept' keyword before going forward.
+ if (searchNext->type == CT_NOEXCEPT)
+ {
+ searchNext = searchNext->GetNext();
+ }
+
+ if ( searchNext->type == CT_SEMICOLON
+ || searchNext->type == CT_MEMBER // Issue #2582
+ || searchNext->type == CT_NEWLINE)
+ {
+ LOG_FMT(LINDLINE, "%s(%d):\n", __func__, __LINE__);
+ search = chunk_skip_to_match_rev(search);
+
+ if ( options::indent_oc_inside_msg_sel()
+ && chunk_is_token(search->GetPrevNcNnl(), CT_OC_COLON)
+ && ( frm.top().type == CT_OC_MSG_FUNC
+ || frm.top().type == CT_OC_MSG_NAME)) // Issue #2658
+ {
+ log_rule_B("indent_oc_inside_msg_sel");
+ // [Class Message:(...)<here>
+ indent_column_set(frm.top().pc->column);
+ }
+ else if ( options::indent_inside_ternary_operator()
+ && ( frm.top().type == CT_QUESTION
+ || frm.top().type == CT_COND_COLON)) // Issue #1130, #1715
+ {
+ log_rule_B("indent_inside_ternary_operator");
+ indent_column_set(frm.top().indent);
+ }
+ else
+ {
+ search = search->GetPrevNl()->GetNext();
+
+ if (search->IsNullChunk())
+ {
+ search = Chunk::GetHead();
+ }
+ indent_column_set(search->column);
+ }
+ }
+ }
+ }
+ }
+ }
+ size_t indent_value = 0;
+ LOG_FMT(LINDENT, "%s(%d): orig_line is %zu, closing parenthesis => %zu, text is '%s'\n",
+ __func__, __LINE__, pc->orig_line, indent_column, pc->Text());
+ LOG_FMT(LINDENT, "%s(%d): [%s/%s]\n",
+ __func__, __LINE__,
+ get_token_name(pc->type), get_token_name(get_chunk_parent_type(pc)));
+ Chunk *prev2 = pc->GetPrev(); // Issue #2930
+ LOG_FMT(LINDENT, "%s(%d): prev2 is orig_line is %zu, text is '%s'\n",
+ __func__, __LINE__, prev2->orig_line, prev2->Text());
+ Chunk *next2 = pc->GetNext();
+ LOG_FMT(LINDENT, "%s(%d): next2 is orig_line is %zu, text is '%s'\n",
+ __func__, __LINE__, next2->orig_line, next2->Text());
+
+ if ( get_chunk_parent_type(pc) == CT_FUNC_DEF
+ && chunk_is_newline(prev2)
+ && chunk_is_newline(next2))
+ {
+ if (options::donot_indent_func_def_close_paren())
+ {
+ indent_value = 1;
+ }
+ else
+ {
+ reindent_line(pc, indent_column);
+ indent_value = indent_column;
+ }
+ }
+ else
+ {
+ indent_value = indent_column;
+ }
+ reindent_line(pc, indent_value);
+ }
+ else if (chunk_is_token(pc, CT_COMMA))
+ {
+ bool align = false;
+ bool ignore = false;
+
+ if (chunk_is_paren_open(frm.top().pc))
+ {
+ log_rule_B("indent_comma_paren");
+ align = options::indent_comma_paren() == (int)indent_mode_e::ALIGN;
+ ignore = options::indent_comma_paren() == (int)indent_mode_e::IGNORE;
+ }
+ else if (chunk_is_opening_brace(frm.top().pc))
+ {
+ log_rule_B("indent_comma_brace");
+ align = options::indent_comma_brace() == (int)indent_mode_e::ALIGN;
+ ignore = options::indent_comma_brace() == (int)indent_mode_e::IGNORE;
+ }
+
+ if (ignore)
+ {
+ indent_column_set(pc->orig_col);
+ }
+ else if (align)
+ {
+ indent_column_set(frm.top().pc->column);
+ }
+ LOG_FMT(LINDENT, "%s(%d): %zu] comma => %zu [%s]\n",
+ __func__, __LINE__, pc->orig_line, indent_column, pc->Text());
+ reindent_line(pc, indent_column);
+ }
+ else if ( options::indent_func_const()
+ && chunk_is_token(pc, CT_QUALIFIER)
+ && strncasecmp(pc->Text(), "const", pc->Len()) == 0
+ && ( next == nullptr
+ || chunk_is_token(next, CT_BRACED)
+ || chunk_is_token(next, CT_BRACE_OPEN)
+ || chunk_is_token(next, CT_NEWLINE)
+ || chunk_is_token(next, CT_SEMICOLON)
+ || chunk_is_token(next, CT_THROW)
+ || chunk_is_token(next, CT_VBRACE_OPEN)))
+ {
+ // indent const - void GetFoo(void)\n const\n { return (m_Foo); }
+ log_rule_B("indent_func_const");
+ indent_column_set(frm.top().indent + options::indent_func_const());
+ LOG_FMT(LINDENT, "%s(%d): %zu] const => %zu [%s]\n",
+ __func__, __LINE__, pc->orig_line, indent_column, pc->Text());
+ reindent_line(pc, indent_column);
+ }
+ else if ( options::indent_func_throw()
+ && chunk_is_token(pc, CT_THROW)
+ && get_chunk_parent_type(pc) != CT_NONE)
+ {
+ // indent throw - void GetFoo(void)\n throw()\n { return (m_Foo); }
+ log_rule_B("indent_func_throw");
+ indent_column_set(options::indent_func_throw());
+ LOG_FMT(LINDENT, "%s(%d): %zu] throw => %zu [%s]\n",
+ __func__, __LINE__, pc->orig_line, indent_column, pc->Text());
+ reindent_line(pc, indent_column);
+ }
+ else if (chunk_is_token(pc, CT_SEMICOLON))
+ {
+ if ( pc->flags.test(PCF_IN_FOR)
+ && options::indent_semicolon_for_paren())
+ {
+ log_rule_B("indent_semicolon_for_paren");
+ indent_column_set(frm.top().pc->column);
+
+ log_rule_B("indent_first_for_expr");
+
+ if (options::indent_first_for_expr())
+ {
+ reindent_line(frm.top().pc->GetNext(),
+ indent_column + pc->Len() + 1);
+ }
+ LOG_FMT(LINDENT, "%s(%d): %zu] SEMICOLON => %zu [%s]\n",
+ __func__, __LINE__, pc->orig_line, indent_column, pc->Text());
+ reindent_line(pc, indent_column);
+ }
+ else
+ {
+ log_rule_B("indent_ignore_semicolon");
+
+ if (options::indent_ignore_semicolon())
+ {
+ indent_column_set(pc->orig_col);
+ }
+ LOG_FMT(LINDENT, "%s(%d): %zu] semicolon => %zu [%s]\n",
+ __func__, __LINE__, pc->orig_line, indent_column, pc->Text());
+ reindent_line(pc, indent_column);
+ }
+ }
+ else if (chunk_is_token(pc, CT_BOOL))
+ {
+ if (chunk_is_paren_open(frm.top().pc))
+ {
+ log_rule_B("indent_bool_paren");
+
+ if (options::indent_bool_paren() == (int)indent_mode_e::IGNORE)
+ {
+ indent_column_set(pc->orig_col);
+ }
+ else if (options::indent_bool_paren() == (int)indent_mode_e::ALIGN)
+ {
+ indent_column_set(frm.top().pc->column);
+
+ log_rule_B("indent_first_bool_expr");
+
+ if (options::indent_first_bool_expr())
+ {
+ reindent_line(frm.top().pc->GetNext(),
+ indent_column + pc->Len() + 1);
+ }
+ }
+ }
+ else
+ {
+ log_rule_B("indent_ignore_bool");
+
+ if (options::indent_ignore_bool())
+ {
+ indent_column_set(pc->orig_col);
+ }
+ }
+ LOG_FMT(LINDENT, "%s(%d): %zu] bool => %zu [%s]\n",
+ __func__, __LINE__, pc->orig_line, indent_column, pc->Text());
+ reindent_line(pc, indent_column);
+ }
+ else if ( chunk_is_token(pc, CT_ARITH)
+ || chunk_is_token(pc, CT_CARET))
+ {
+ log_rule_B("indent_ignore_arith");
+
+ if (options::indent_ignore_arith())
+ {
+ indent_column_set(pc->orig_col);
+ }
+ LOG_FMT(LINDENT, "%s(%d): %zu] arith => %zu [%s]\n",
+ __func__, __LINE__, pc->orig_line, indent_column, pc->Text());
+ reindent_line(pc, indent_column);
+ }
+ else if (chunk_is_token(pc, CT_SHIFT))
+ {
+ log_rule_B("indent_shift");
+
+ if (options::indent_shift() == -1)
+ {
+ indent_column_set(pc->orig_col);
+ }
+ LOG_FMT(LINDENT, "%s(%d): %zu] shift => %zu [%s]\n",
+ __func__, __LINE__, pc->orig_line, indent_column, pc->Text());
+ reindent_line(pc, indent_column);
+ }
+ else if (chunk_is_token(pc, CT_ASSIGN))
+ {
+ log_rule_B("indent_ignore_assign");
+
+ if (options::indent_ignore_assign())
+ {
+ indent_column_set(pc->orig_col);
+ }
+ LOG_FMT(LINDENT, "%s(%d): %zu] assign => %zu [%s]\n",
+ __func__, __LINE__, pc->orig_line, indent_column, pc->Text());
+ reindent_line(pc, indent_column);
+ }
+ else if ( options::indent_ternary_operator() == 1
+ && chunk_is_token(prev, CT_COND_COLON)
+ && ( chunk_is_token(pc, CT_ADDR)
+ || chunk_is_token(pc, CT_WORD)
+ || chunk_is_token(pc, CT_DEREF)
+ || chunk_is_token(pc, CT_NUMBER)
+ || chunk_is_token(pc, CT_STRING)
+ || chunk_is_token(pc, CT_PAREN_OPEN)))
+ {
+ log_rule_B("indent_ternary_operator");
+ Chunk *tmp = prev->GetPrevType(CT_QUESTION, -1);
+
+ if (tmp->IsNotNullChunk())
+ {
+ tmp = tmp->GetNextNcNnl();
+
+ if (tmp->IsNotNullChunk())
+ {
+ LOG_FMT(LINDENT, "%s: %zu] ternarydefcol => %zu [%s]\n",
+ __func__, pc->orig_line, tmp->column, pc->Text());
+ reindent_line(pc, tmp->column);
+ }
+ }
+ }
+ else if ( options::indent_ternary_operator() == 2
+ && chunk_is_token(pc, CT_COND_COLON))
+ {
+ log_rule_B("indent_ternary_operator");
+ Chunk *tmp = pc->GetPrevType(CT_QUESTION, -1);
+
+ if (tmp->IsNotNullChunk())
+ {
+ LOG_FMT(LINDENT, "%s: %zu] ternarydefcol => %zu [%s]\n",
+ __func__, pc->orig_line, tmp->column, pc->Text());
+ reindent_line(pc, tmp->column);
+ }
+ }
+ else if ( options::indent_oc_inside_msg_sel()
+ && ( chunk_is_token(pc, CT_OC_MSG_FUNC)
+ || chunk_is_token(pc, CT_OC_MSG_NAME))) // Issue #2658
+ {
+ log_rule_B("indent_oc_inside_msg_sel");
+ reindent_line(pc, frm.top().indent);
+ }
+ else
+ {
+ bool use_indent = true;
+ const size_t ttidx = frm.size() - 1;
+
+ if (ttidx > 0)
+ {
+ LOG_FMT(LINDPC, "%s(%d): (frm.at(ttidx).pc)->parent_type is %s\n",
+ __func__, __LINE__, get_token_name((frm.at(ttidx).pc)->parent_type));
+
+ if ((frm.at(ttidx).pc)->parent_type == CT_FUNC_CALL)
+ {
+ LOG_FMT(LINDPC, "FUNC_CALL OK [%d]\n", __LINE__);
+
+ log_rule_B("use_indent_func_call_param");
+
+ if (options::use_indent_func_call_param())
+ {
+ LOG_FMT(LINDPC, "use is true [%d]\n", __LINE__);
+ }
+ else
+ {
+ LOG_FMT(LINDPC, "use is false [%d]\n", __LINE__);
+ use_indent = false;
+ }
+ }
+ }
+ LOG_FMT(LINDENT, "%s(%d): pc->line is %zu, pc->column is %zu, pc->Text() is '%s, indent_column is %zu\n",
+ __func__, __LINE__, pc->orig_line, pc->column, pc->Text(), indent_column);
+
+ if ( use_indent
+ && pc->type != CT_PP_IGNORE) // Leave indentation alone for PP_IGNORE tokens
+ {
+ log_rule_B("pos_conditional");
+
+ if ( ( chunk_is_token(pc, CT_QUESTION) // Issue #2101
+ || chunk_is_token(pc, CT_COND_COLON)) // Issue #2101
+ && options::pos_conditional() == TP_IGNORE)
+ {
+ // do not indent this line
+ LOG_FMT(LINDENT, "%s(%d): %zu] don't indent this line\n",
+ __func__, __LINE__, pc->orig_line);
+ }
+ else if (chunk_is_token(pc, CT_BREAK))
+ {
+ // Issue #1692
+ log_rule_B("indent_switch_break_with_case");
+
+ // Issue #2281
+ if ( options::indent_switch_break_with_case()
+ && get_type_of_the_parent(pc) == CT_SWITCH)
+ {
+ // look for a case before Issue #2735
+ Chunk *whereIsCase = pc->GetPrevType(CT_CASE, pc->level);
+
+ if (whereIsCase->IsNotNullChunk())
+ {
+ LOG_FMT(LINDENT, "%s(%d): orig_line is %zu, orig_col is %zu, Text() is '%s'\n",
+ __func__, __LINE__, whereIsCase->orig_line, whereIsCase->orig_col, whereIsCase->Text());
+ LOG_FMT(LINDENT, "%s(%d): column is %zu\n",
+ __func__, __LINE__, whereIsCase->column);
+ reindent_line(pc, whereIsCase->column);
+ }
+ }
+ else
+ {
+ LOG_FMT(LINDENT, "%s(%d): orig_line is %zu, indent_column set to %zu, for '%s'\n",
+ __func__, __LINE__, pc->orig_line, indent_column, pc->Text());
+ reindent_line(pc, indent_column);
+ }
+ }
+ else if ( chunk_is_token(pc, CT_MEMBER) // Issue #2890
+ && language_is_set(LANG_CPP))
+ {
+ // comment name: XXXXXXXXXXXXXXXXXXXXXXXXXX
+ LOG_FMT(LINDENT, "%s(%d): orig_line is %zu, indent_column set to %zu, for '%s'\n",
+ __func__, __LINE__, pc->orig_line, indent_column, pc->Text());
+ const size_t frm_size = frm.size();
+ LOG_FMT(LINDPC, "%s(%d): frm_size is %zu\n",
+ __func__, __LINE__, frm_size);
+ // get pc
+ LOG_FMT(LINDPC, "%s(%d): Text() is '%s', (frm.at(frm_size - 1).pc)->type is %s\n",
+ __func__, __LINE__, (frm.at(frm_size - 1).pc)->Text(), get_token_name((frm.at(frm_size - 1).pc)->type));
+ // get the token before
+ const size_t temp_ttidx = frm_size - 2;
+
+ if (temp_ttidx == 0)
+ {
+ indent_column = 1 + indent_size;
+ reindent_line(pc, indent_column);
+ }
+ else
+ {
+ Chunk *token_before = frm.at(temp_ttidx).pc;
+ LOG_FMT(LINDPC, "%s(%d): Text() is '%s', token_before->type is %s\n",
+ __func__, __LINE__, token_before->Text(), get_token_name(token_before->type));
+
+ size_t vor_col = 0;
+
+ if (chunk_is_token(token_before, CT_ASSIGN))
+ {
+ Chunk *before_Assign = frm.at(temp_ttidx - 1).pc;
+
+ if (before_Assign == nullptr)
+ {
+ indent_column = 1 + indent_size;
+ }
+ else
+ {
+ vor_col = before_Assign->column;
+ LOG_FMT(LINDPC, "%s(%d): Text() is '%s', before_Assign->type is %s, column is %zu\n",
+ __func__, __LINE__, before_Assign->Text(), get_token_name(before_Assign->type), vor_col);
+ indent_column = vor_col + 2 * indent_size;
+ }
+ }
+ else if (chunk_is_token(token_before, CT_BRACE_OPEN))
+ {
+ vor_col = token_before->column;
+ LOG_FMT(LINDPC, "%s(%d): Text() is '%s', token_before->type is %s, column is %zu\n",
+ __func__, __LINE__, token_before->Text(), get_token_name(token_before->type), vor_col);
+ indent_column = vor_col + 2 * indent_size;
+ }
+ else if (chunk_is_token(token_before, CT_RETURN))
+ {
+ Chunk *before_Return = frm.at(temp_ttidx - 1).pc;
+ vor_col = before_Return->column;
+ LOG_FMT(LINDPC, "%s(%d): Text() is '%s', before_Return->type is %s, column is %zu\n",
+ __func__, __LINE__, before_Return->Text(), get_token_name(before_Return->type), vor_col);
+ indent_column = vor_col + 2 * indent_size;
+ }
+ else
+ {
+ // TO DO
+ }
+ reindent_line(pc, indent_column);
+ }
+ reindent_line(pc, indent_column);
+ }
+ else
+ {
+ LOG_FMT(LINDENT, "%s(%d): orig_line is %zu, indent_column set to %zu, for '%s'\n",
+ __func__, __LINE__, pc->orig_line, indent_column, pc->Text());
+ reindent_line(pc, indent_column);
+ }
+ }
+ else
+ {
+ // do not indent this line
+ LOG_FMT(LINDENT, "%s(%d): %zu] don't indent this line\n",
+ __func__, __LINE__, pc->orig_line);
+ }
+ }
+ did_newline = false;
+
+ if ( chunk_is_token(pc, CT_SQL_EXEC)
+ || chunk_is_token(pc, CT_SQL_BEGIN)
+ || chunk_is_token(pc, CT_SQL_END))
+ {
+ sql_col = pc->column;
+ sql_orig_col = pc->orig_col;
+ }
+
+ // Handle indent for variable defs at the top of a block of code
+ if (pc->flags.test(PCF_VAR_TYPE))
+ {
+ if ( !frm.top().non_vardef
+ && (frm.top().type == CT_BRACE_OPEN))
+ {
+ log_rule_B("indent_var_def_blk");
+ const auto val = options::indent_var_def_blk();
+
+ if (val != 0)
+ {
+ auto indent = indent_column;
+ indent = (val > 0) ? val // reassign if positive val,
+ : (cast_abs(indent, val) < indent) // else if no underflow
+ ? (indent + val) : 0; // reduce, else 0
+
+ LOG_FMT(LINDENT, "%s(%d): %zu] var_type indent => %zu [%s]\n",
+ __func__, __LINE__, pc->orig_line, indent, pc->Text());
+ reindent_line(pc, indent);
+ }
+ }
+ }
+ else if (pc != frm.top().pc)
+ {
+ frm.top().non_vardef = true;
+ }
+ }
+
+ // if we hit a newline, reset indent_tmp
+ if ( chunk_is_newline(pc)
+ || chunk_is_token(pc, CT_COMMENT_MULTI)
+ || chunk_is_token(pc, CT_COMMENT_CPP))
+ {
+ log_indent();
+ frm.top().indent_tmp = frm.top().indent;
+ log_indent_tmp();
+
+ /*
+ * Handle the case of a multi-line #define w/o anything on the
+ * first line (indent_tmp will be 1 or 0)
+ */
+ if ( chunk_is_token(pc, CT_NL_CONT)
+ && (frm.top().indent_tmp <= indent_size))
+ {
+ frm.top().indent_tmp = indent_size + 1;
+ log_indent_tmp();
+ }
+ // Get ready to indent the next item
+ did_newline = true;
+ }
+ // Check for open XML tags "</..."
+ log_rule_B("indent_xml_string");
+
+ if ( options::indent_xml_string() > 0
+ && chunk_is_token(pc, CT_STRING)
+ && pc->Len() > 4
+ && pc->str[1] == '<'
+ && pc->str[2] != '/'
+ && pc->str[pc->Len() - 3] != '/')
+ {
+ if (xml_indent <= 0)
+ {
+ xml_indent = pc->column;
+ }
+ log_rule_B("indent_xml_string");
+ xml_indent += options::indent_xml_string();
+ }
+ // Issue #672
+ log_rule_B("indent_continue_class_head");
+
+ if ( chunk_is_token(pc, CT_CLASS)
+ && language_is_set(LANG_CPP | LANG_JAVA)
+ && ( options::indent_ignore_first_continue()
+ || options::indent_continue_class_head() != 0)
+ && !classFound)
+ {
+ LOG_FMT(LINDENT, "%s(%d): orig_line is %zu, CT_CLASS found, OPEN IT\n",
+ __func__, __LINE__, pc->orig_line);
+ frm.push(pc, __func__, __LINE__);
+
+ if (options::indent_ignore_first_continue())
+ {
+ frm.top().indent = get_indent_first_continue(pc);
+ }
+ else
+ {
+ frm.top().indent = frm.prev().indent + options::indent_continue_class_head();
+ }
+ log_indent();
+
+ frm.top().indent_tmp = frm.top().indent;
+ frm.top().indent_tab = frm.top().indent;
+ log_indent_tmp();
+ classFound = true;
+ }
+ pc = pc->GetNext();
+ LOG_FMT(LINDLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type));
+ }
+null_pc:
+
+ // Throw out any stuff inside a preprocessor - no need to warn
+ while ( !frm.empty()
+ && frm.top().in_preproc)
+ {
+ frm.pop(__func__, __LINE__, pc);
+ }
+
+ // Throw out any VBRACE_OPEN at the end - implied with the end of file
+ while ( !frm.empty()
+ && frm.top().type == CT_VBRACE_OPEN)
+ {
+ frm.pop(__func__, __LINE__, pc);
+ }
+
+ for (size_t idx_temp = 1; idx_temp < frm.size(); idx_temp++)
+ {
+ LOG_FMT(LWARN, "%s(%d): size is %zu\n",
+ __func__, __LINE__, frm.size());
+ LOG_FMT(LWARN, "%s(%d): File: %s, open_line is %zu, parent is %s: Unmatched %s\n",
+ __func__, __LINE__, cpd.filename.c_str(), frm.at(idx_temp).open_line,
+ get_token_name(frm.at(idx_temp).parent),
+ get_token_name(frm.at(idx_temp).type));
+ cpd.error_count++;
+ }
+
+ LOG_FMT(LINDLINE, "%s(%d): before quick_align_again\n", __func__, __LINE__);
+ quick_align_again();
+ quick_indent_again();
+ LOG_FMT(LINDLINE, "%s(%d): after quick_align_again\n", __func__, __LINE__);
+} // indent_text
+
+
+static bool single_line_comment_indent_rule_applies(Chunk *start, bool forward)
+{
+ LOG_FUNC_ENTRY();
+
+ if (!chunk_is_single_line_comment(start))
+ {
+ return(false);
+ }
+ Chunk *pc = start;
+
+ if (pc == nullptr)
+ {
+ pc = Chunk::NullChunkPtr;
+ }
+ size_t nl_count = 0;
+
+ while ((pc = forward ? pc->GetNext() : pc->GetPrev())->IsNotNullChunk())
+ {
+ if (chunk_is_newline(pc))
+ {
+ if ( nl_count > 0
+ || pc->nl_count > 1)
+ {
+ return(false);
+ }
+ nl_count++;
+ }
+ else if (chunk_is_single_line_comment(pc))
+ {
+ nl_count = 0;
+ }
+ else if ( chunk_is_token(pc, CT_COMMENT_MULTI)
+ || (forward && chunk_is_closing_brace(pc))
+ || (!forward && chunk_is_opening_brace(pc)))
+ {
+ /*
+ * check for things we wouldn't want to indent the comment for
+ * example: non-single line comment, closing brace
+ */
+ return(false);
+ }
+ else
+ {
+ return(true);
+ }
+ }
+ return(false);
+} // single_line_comment_indent_rule_applies
+
+
+static bool is_end_of_assignment(Chunk *pc, const ParseFrame &frm)
+{
+ return( ( frm.top().type == CT_ASSIGN_NL
+ || frm.top().type == CT_MEMBER
+ || frm.top().type == CT_ASSIGN)
+ && ( chunk_is_semicolon(pc)
+ || chunk_is_token(pc, CT_COMMA)
+ || chunk_is_token(pc, CT_BRACE_OPEN)
+ || chunk_is_token(pc, CT_SPAREN_CLOSE)
+ || ( chunk_is_token(pc, CT_SQUARE_OPEN)
+ && get_chunk_parent_type(pc) == CT_ASSIGN))
+ && get_chunk_parent_type(pc) != CT_CPP_LAMBDA);
+}
+
+
+static size_t calc_comment_next_col_diff(Chunk *pc)
+{
+ Chunk *next = pc; // assumes pc has a comment type
+
+ LOG_FMT(LCMTIND, "%s(%d): next->Text() is '%s'\n",
+ __func__, __LINE__, next->Text());
+
+ // Note: every comment is squashed into a single token
+ // (including newline chars for multiline comments) and is followed by
+ // a newline token (unless there are no more tokens left)
+ do
+ {
+ Chunk *newline_token = next->GetNext();
+ LOG_FMT(LCMTIND, "%s(%d): newline_token->Text() is '%s', orig_line is %zu, orig_col is %zu\n",
+ __func__, __LINE__, newline_token->Text(), newline_token->orig_line, newline_token->orig_col);
+
+ if ( newline_token->IsNullChunk()
+ || newline_token->nl_count > 1)
+ {
+ return(5000); // FIXME: Max thresh magic number 5000
+ }
+ next = newline_token->GetNext();
+
+ if (next->IsNotNullChunk())
+ {
+ LOG_FMT(LCMTIND, "%s(%d): next->Text() is '%s', orig_line is %zu, orig_col is %zu\n",
+ __func__, __LINE__, next->Text(), next->orig_line, next->orig_col);
+ }
+ } while (next->IsComment());
+
+ if (next->IsNullChunk())
+ {
+ return(5000); // FIXME: Max thresh magic number 5000
+ }
+ LOG_FMT(LCMTIND, "%s(%d): next->Text() is '%s'\n",
+ __func__, __LINE__, next->Text());
+ // here next is the first non comment, non newline token
+ return(next->orig_col > pc->orig_col
+ ? next->orig_col - pc->orig_col
+ : pc->orig_col - next->orig_col);
+}
+
+
+static void indent_comment(Chunk *pc, size_t col)
+{
+ LOG_FUNC_ENTRY();
+ char copy[1000];
+
+ LOG_FMT(LCMTIND, "%s(%d): pc->Text() is '%s', orig_line %zu, orig_col %zu, level %zu\n",
+ __func__, __LINE__, pc->ElidedText(copy), pc->orig_line, pc->orig_col, pc->level);
+
+ // force column 1 comment to column 1 if not changing them
+ log_rule_B("indent_col1_comment");
+
+ if ( pc->orig_col == 1
+ && !options::indent_col1_comment()
+ && !pc->flags.test(PCF_INSERTED))
+ {
+ LOG_FMT(LCMTIND, "%s(%d): rule 1 - keep in col 1\n", __func__, __LINE__);
+ reindent_line(pc, 1);
+ return;
+ }
+ Chunk *nl = pc->GetPrev();
+
+ if (nl->IsNotNullChunk())
+ {
+ LOG_FMT(LCMTIND, "%s(%d): nl->Text() is '%s', orig_line %zu, orig_col %zu, level %zu\n",
+ __func__, __LINE__, nl->Text(), nl->orig_line, nl->orig_col, nl->level);
+ }
+
+ if (pc->orig_col > 1)
+ {
+ Chunk *prev = nl->GetPrev();
+
+ if (prev->IsNotNullChunk())
+ {
+ LOG_FMT(LCMTIND, "%s(%d): prev->Text() is '%s', orig_line %zu, orig_col %zu, level %zu\n",
+ __func__, __LINE__, prev->Text(), prev->orig_line, prev->orig_col, prev->level);
+ log_pcf_flags(LCMTIND, prev->flags);
+ }
+
+ if ( prev->IsComment()
+ && nl->nl_count == 1)
+ {
+ const size_t prev_col_diff = (prev->orig_col > pc->orig_col)
+ ? prev->orig_col - pc->orig_col
+ : pc->orig_col - prev->orig_col;
+ LOG_FMT(LCMTIND, "%s(%d): prev_col_diff is %zu\n",
+ __func__, __LINE__, prev_col_diff);
+
+ /*
+ * Here we want to align comments that are relatively close one to
+ * another but not when the comment is a Doxygen comment (Issue #1134)
+ */
+ if (prev_col_diff <= options::indent_comment_align_thresh())
+ {
+ LOG_FMT(LCMTIND, "%s(%d): prev->Text() is '%s', Doxygen_comment(prev) is %s\n",
+ __func__, __LINE__, prev->Text(), chunk_is_Doxygen_comment(prev) ? "TRUE" : "FALSE");
+ LOG_FMT(LCMTIND, "%s(%d): pc->Text() is '%s', Doxygen_comment(pc) is %s\n",
+ __func__, __LINE__, pc->Text(), chunk_is_Doxygen_comment(pc) ? "TRUE" : "FALSE");
+
+ if (chunk_is_Doxygen_comment(prev) == chunk_is_Doxygen_comment(pc))
+ {
+ const size_t next_col_diff = calc_comment_next_col_diff(pc);
+ LOG_FMT(LCMTIND, "%s(%d): next_col_diff is %zu\n",
+ __func__, __LINE__, next_col_diff);
+
+ // Align to the previous comment or to the next token?
+ if ( prev_col_diff <= next_col_diff
+ || next_col_diff == 5000) // FIXME: Max thresh magic number 5000
+ {
+ LOG_FMT(LCMTIND, "%s(%d): rule 3 - prev comment, coldiff = %zu, now in %zu\n",
+ __func__, __LINE__, prev_col_diff, pc->column);
+ reindent_line(pc, prev->column);
+ return;
+ }
+ }
+ }
+ }
+ }
+ // check if special single-line-comment-before-code rule applies
+ log_rule_B("indent_single_line_comments_before");
+
+ if ( (options::indent_single_line_comments_before() > 0)
+ && single_line_comment_indent_rule_applies(pc, true))
+ {
+ LOG_FMT(LCMTIND, "%s(%d): rule 4 - indent single line comments before code, now in %zu\n",
+ __func__, __LINE__, pc->column);
+ reindent_line(pc, col + options::indent_single_line_comments_before());
+ return;
+ }
+ // check if special single-line-comment-after-code rule applies
+ log_rule_B("indent_single_line_comments_after");
+
+ if ( (options::indent_single_line_comments_after() > 0)
+ && single_line_comment_indent_rule_applies(pc, false))
+ {
+ LOG_FMT(LCMTIND, "%s(%d): rule 4 - indent single line comments after code, now in %zu\n",
+ __func__, __LINE__, pc->column);
+ reindent_line(pc, col + options::indent_single_line_comments_after());
+ return;
+ }
+ log_rule_B("indent_comment");
+
+ if ( pc->orig_col > 1
+ && !options::indent_comment())
+ {
+ LOG_FMT(LCMTIND, "%s(%d): rule 5 - keep in orig_col\n", __func__, __LINE__);
+ reindent_line(pc, pc->orig_col);
+ return;
+ }
+ LOG_FMT(LCMTIND, "%s(%d): rule 6 - fall-through, stay in %zu\n",
+ __func__, __LINE__, col);
+ reindent_line(pc, col);
+} // indent_comment
+
+
+bool ifdef_over_whole_file(void)
+{
+ LOG_FUNC_ENTRY();
+
+ // if requested, treat an #if that guards the entire file the same as any other #if
+ // if running as frag, assume #if is not a guard
+ if ( options::pp_indent_in_guard()
+ || cpd.frag)
+ {
+ return(false);
+ }
+
+ // the results for this file are cached
+ if (cpd.ifdef_over_whole_file)
+ {
+ return(cpd.ifdef_over_whole_file > 0);
+ }
+ Chunk *start_pp = Chunk::NullChunkPtr;
+ Chunk *end_pp = Chunk::NullChunkPtr;
+ size_t IFstage = 0;
+
+ for (Chunk *pc = Chunk::GetHead(); pc->IsNotNullChunk(); pc = pc->GetNext())
+ {
+ LOG_FMT(LNOTE, "%s(%d): pc->pp_level is %zu, pc->orig_line is %zu, pc->orig_col is %zu, pc->Text() is '%s'\n",
+ __func__, __LINE__, pc->pp_level, pc->orig_line, pc->orig_col, pc->Text());
+
+ if ( pc->IsComment()
+ || chunk_is_newline(pc))
+ {
+ continue;
+ }
+
+ if (IFstage == 0) // 0 is BEGIN
+ {
+ // Check the first preprocessor, make sure it is an #if type
+ if (pc->type != CT_PREPROC)
+ {
+ break;
+ }
+ Chunk *next = pc->GetNext();
+
+ if ( next->IsNullChunk()
+ || next->type != CT_PP_IF)
+ {
+ break;
+ }
+ IFstage = 1; // 1 is CT_PP_IF found
+ start_pp = pc;
+ }
+ else if (IFstage == 1) // 1 is CT_PP_IF found
+ {
+ // Scan until a preprocessor at level 0 is found - the close to the #if
+ if (chunk_is_token(pc, CT_PREPROC))
+ {
+ if (pc->pp_level == 0)
+ {
+ IFstage = 2;
+ end_pp = pc;
+ }
+ }
+ continue;
+ }
+ else if (IFstage == 2)
+ {
+ // We should only see the rest of the preprocessor
+ if ( chunk_is_token(pc, CT_PREPROC)
+ || !pc->flags.test(PCF_IN_PREPROC))
+ {
+ IFstage = 0;
+ break;
+ }
+ }
+ }
+
+ cpd.ifdef_over_whole_file = (IFstage == 2) ? 1 : -1;
+
+ if (cpd.ifdef_over_whole_file > 0)
+ {
+ chunk_flags_set(start_pp, PCF_WF_IF);
+ chunk_flags_set(end_pp, PCF_WF_ENDIF);
+ }
+ LOG_FMT(LNOTE, "The whole file is%s covered by a #IF\n",
+ (cpd.ifdef_over_whole_file > 0) ? "" : " NOT");
+ return(cpd.ifdef_over_whole_file > 0);
+} // ifdef_over_whole_file
+
+
+void indent_preproc(void)
+{
+ LOG_FUNC_ENTRY();
+
+ // Scan to see if the whole file is covered by one #ifdef
+ const size_t pp_level_sub = ifdef_over_whole_file() ? 1 : 0;
+
+ for (Chunk *pc = Chunk::GetHead(); pc->IsNotNullChunk(); pc = pc->GetNext())
+ {
+ LOG_FMT(LPPIS, "%s(%d): orig_line is %zu, orig_col is %zu, pc->Text() is '%s'\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text());
+
+ if (pc->type != CT_PREPROC)
+ {
+ continue;
+ }
+ Chunk *next = pc->GetNextNcNnl();
+
+ if (next->IsNullChunk())
+ {
+ break;
+ }
+ const size_t pp_level = (pc->pp_level > pp_level_sub)
+ ? pc->pp_level - pp_level_sub : 0;
+
+ // Adjust the indent of the '#'
+ log_rule_B("pp_indent");
+
+ if (options::pp_indent() & IARF_ADD)
+ {
+ log_rule_B("pp_indent_count");
+ reindent_line(pc, 1 + pp_level * options::pp_indent_count());
+ }
+ else if (options::pp_indent() & IARF_REMOVE)
+ {
+ log_rule_B("pp_indent");
+ reindent_line(pc, 1);
+ }
+ // Add spacing by adjusting the length
+ log_rule_B("pp_space");
+
+ if ( (options::pp_space() != IARF_IGNORE)
+ && next != nullptr)
+ {
+ if (options::pp_space() & IARF_ADD)
+ {
+ log_rule_B("pp_space_count");
+ // Issue #3055
+ const size_t mult = max<size_t>(options::pp_space_count(), 1);
+ reindent_line(next, pc->column + pc->Len() + (pp_level * mult));
+ }
+ else if (options::pp_space() & IARF_REMOVE)
+ {
+ log_rule_B("pp_space");
+ reindent_line(next, pc->column + pc->Len());
+ }
+ }
+ // Mark as already handled if not region stuff or in column 1
+ log_rule_B("pp_indent_at_level");
+
+ bool at_file_level = pc->brace_level <= ((get_chunk_parent_type(pc) == CT_PP_DEFINE) ? 1 : 0);
+
+ if ( ( ( at_file_level
+ && !options::pp_indent_at_level0())
+ || ( !at_file_level
+ && !options::pp_indent_at_level()))
+ && get_chunk_parent_type(pc) != CT_PP_REGION
+ && get_chunk_parent_type(pc) != CT_PP_ENDREGION)
+ {
+ log_rule_B("pp_define_at_level");
+
+ if ( !options::pp_define_at_level()
+ || get_chunk_parent_type(pc) != CT_PP_DEFINE)
+ {
+ chunk_flags_set(pc, PCF_DONT_INDENT);
+ }
+ }
+ LOG_FMT(LPPIS, "%s(%d): orig_line %zu to %zu (len %zu, next->col %zu)\n",
+ __func__, __LINE__, pc->orig_line, 1 + pp_level, pc->Len(),
+ next ? next->column : -1);
+ }
+} // indent_preproc
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/indent.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/indent.h
new file mode 100644
index 00000000..9e91a94a
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/indent.h
@@ -0,0 +1,59 @@
+/**
+ * @file indent.h
+ * prototypes for indent.c
+ *
+ * @author Ben Gardner
+ * @license GPL v2+
+ */
+#ifndef INDENT_H_INCLUDED
+#define INDENT_H_INCLUDED
+
+#include "uncrustify_types.h"
+
+
+/**
+ * Change the top-level indentation only by changing the column member in
+ * the chunk structures.
+ * The level indicator must already be set.
+ */
+void indent_text(void);
+
+
+/**
+ * Indent the preprocessor stuff from column 1.
+ * FIXME: This is broken if there is a comment or escaped newline
+ * between '#' and 'define'.
+ */
+void indent_preproc(void);
+
+/**
+ *
+ * @param pc chunk at the start of the line
+ * @param column desired column
+ */
+void indent_to_column(Chunk *pc, size_t column);
+
+
+/**
+ * Same as indent_to_column, except we can move both ways
+ *
+ * @param pc chunk at the start of the line
+ * @param column desired column
+ */
+void align_to_column(Chunk *pc, size_t column);
+
+
+//! Scan to see if the whole file is covered by one #ifdef
+bool ifdef_over_whole_file(void);
+
+
+/**
+ * Changes the initial indent for a line to the given column
+ *
+ * @param pc The chunk at the start of the line
+ * @param column The desired column
+ */
+void reindent_line(Chunk *pc, size_t column);
+
+
+#endif /* INDENT_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/keywords.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/keywords.cpp
new file mode 100644
index 00000000..78fb2134
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/keywords.cpp
@@ -0,0 +1,670 @@
+/**
+ * @file keywords.cpp
+ * Manages the table of keywords.
+ *
+ * @author Ben Gardner
+ * @author Guy Maurel since version 0.62 for uncrustify4Qt
+ * October 2015, 2016
+ * @license GPL v2+
+ */
+
+#include "keywords.h"
+
+#include "args.h"
+#include "prototypes.h"
+#include "uncrustify.h"
+#include "uncrustify_limits.h"
+
+#include <cerrno>
+#include <map>
+
+
+using namespace std;
+
+// Dynamic keyword map
+typedef map<string, E_Token> dkwmap;
+static dkwmap dkwm;
+
+
+/**
+ * Compares two chunk_tag_t entries using strcmp on the strings
+ *
+ * @param the 'left' entry
+ * @param the 'right' entry
+ *
+ * @return == 0 if both keywords are equal
+ * @return < 0 p1 is smaller than p2
+ * @return > 0 p2 is smaller than p1
+ */
+static int kw_compare(const void *p1, const void *p2);
+
+
+/**
+ * search in static keywords for first occurrence of a given tag
+ *
+ * @param tag/keyword to search for
+ */
+static const chunk_tag_t *kw_static_first(const chunk_tag_t *tag);
+
+
+static const chunk_tag_t *kw_static_match(bool orig_list, const chunk_tag_t *tag, int lang_flags);
+
+/**
+ * selected keywords for the choosed language.
+ */
+
+static chunk_tag_t keyword_for_lang[uncrustify::limits::MAX_KEYWORDS];
+static size_t language_count;
+
+/**
+ * interesting static keywords - keep sorted.
+ * Table includes the Name, Type, and Language flags.
+ */
+static chunk_tag_t keywords[] =
+{
+ // TODO: it might be useful if users could add their custom keywords to this list
+ { "@autoreleasepool", CT_AUTORELEASEPOOL, LANG_OC },
+ { "@available", CT_OC_AVAILABLE, LANG_OC },
+ { "@catch", CT_CATCH, LANG_OC },
+ { "@dynamic", CT_OC_DYNAMIC, LANG_OC },
+ { "@end", CT_OC_END, LANG_OC },
+ { "@finally", CT_FINALLY, LANG_OC },
+ { "@implementation", CT_OC_IMPL, LANG_OC },
+ { "@interface", CT_OC_INTF, LANG_OC },
+ { "@interface", CT_CLASS, LANG_JAVA },
+ { "@private", CT_ACCESS, LANG_OC },
+ { "@property", CT_OC_PROPERTY, LANG_OC },
+ { "@protected", CT_ACCESS, LANG_OC },
+ { "@protocol", CT_OC_PROTOCOL, LANG_OC },
+ { "@public", CT_ACCESS, LANG_OC },
+ { "@selector", CT_OC_SEL, LANG_OC },
+ { "@synchronized", CT_SYNCHRONIZED, LANG_OC },
+ { "@synthesize", CT_OC_DYNAMIC, LANG_OC },
+ { "@throw", CT_THROW, LANG_OC },
+ { "@try", CT_TRY, LANG_OC },
+ { "API_AVAILABLE", CT_ATTRIBUTE, LANG_OC },
+ { "API_DEPRECATED", CT_ATTRIBUTE, LANG_OC },
+ { "API_DEPRECATED_WITH_REPLACEMENT", CT_ATTRIBUTE, LANG_OC },
+ { "API_UNAVAILABLE", CT_ATTRIBUTE, LANG_OC },
+ { "BOOL", CT_TYPE, LANG_OC },
+ { "NS_ENUM", CT_ENUM, LANG_OC },
+ { "NS_OPTIONS", CT_ENUM, LANG_OC },
+ { "Q_EMIT", CT_Q_EMIT, LANG_CPP },
+ { "Q_FOREACH", CT_FOR, LANG_CPP },
+ { "Q_FOREVER", CT_Q_FOREVER, LANG_CPP },
+ { "Q_GADGET", CT_Q_GADGET, LANG_CPP },
+ { "Q_OBJECT", CT_COMMENT_EMBED, LANG_CPP },
+ { "Q_SIGNALS", CT_ACCESS, LANG_CPP },
+ { "_Bool", CT_TYPE, LANG_C | LANG_CPP },
+ { "_Complex", CT_TYPE, LANG_C | LANG_CPP },
+ { "_Imaginary", CT_TYPE, LANG_C | LANG_CPP },
+ { "_Nonnull", CT_QUALIFIER, LANG_OC },
+ { "_Null_unspecified", CT_QUALIFIER, LANG_OC },
+ { "_Nullable", CT_QUALIFIER, LANG_OC },
+ { "_Pragma", CT_PP_PRAGMA, LANG_ALL | FLAG_PP },
+ { "__DI__", CT_DI, LANG_C | LANG_CPP },
+ { "__HI__", CT_HI, LANG_C | LANG_CPP },
+ { "__QI__", CT_QI, LANG_C | LANG_CPP },
+ { "__SI__", CT_SI, LANG_C | LANG_CPP },
+ { "__asm__", CT_ASM, LANG_C | LANG_CPP },
+ { "__attribute__", CT_ATTRIBUTE, LANG_C | LANG_CPP | LANG_OC },
+ { "__autoreleasing", CT_QUALIFIER, LANG_C | LANG_CPP },
+ { "__block", CT_QUALIFIER, LANG_C | LANG_CPP | LANG_OC },
+ { "__bridge", CT_QUALIFIER, LANG_C | LANG_CPP },
+ { "__bridge_retained", CT_QUALIFIER, LANG_C | LANG_CPP },
+ { "__bridge_transfer", CT_QUALIFIER, LANG_C | LANG_CPP },
+ { "__const__", CT_QUALIFIER, LANG_C | LANG_CPP },
+ { "__declspec", CT_DECLSPEC, LANG_C | LANG_CPP },
+ { "__except", CT_CATCH, LANG_C | LANG_CPP },
+ { "__finally", CT_FINALLY, LANG_C | LANG_CPP },
+ { "__has_include", CT_CNG_HASINC, LANG_C | LANG_CPP | FLAG_PP },
+ { "__has_include_next", CT_CNG_HASINCN, LANG_C | LANG_CPP | FLAG_PP },
+ { "__inline__", CT_QUALIFIER, LANG_C | LANG_CPP },
+ { "__nonnull", CT_QUALIFIER, LANG_OC },
+ { "__nothrow__", CT_NOTHROW, LANG_C | LANG_CPP },
+ { "__null_unspecified", CT_QUALIFIER, LANG_OC },
+ { "__nullable", CT_QUALIFIER, LANG_OC },
+ { "__pragma", CT_PP_PRAGMA, LANG_ALL | FLAG_PP },
+ { "__restrict", CT_QUALIFIER, LANG_C | LANG_CPP },
+ { "__signed__", CT_TYPE, LANG_C | LANG_CPP },
+ { "__strong", CT_QUALIFIER, LANG_C | LANG_CPP },
+ { "__thread", CT_QUALIFIER, LANG_C | LANG_CPP },
+ { "__traits", CT_QUALIFIER, LANG_D },
+ { "__try", CT_TRY, LANG_C | LANG_CPP },
+ { "__typeof", CT_DECLTYPE, LANG_C | LANG_CPP | LANG_OC },
+ { "__typeof__", CT_DECLTYPE, LANG_C | LANG_CPP },
+ { "__unsafe_unretained", CT_QUALIFIER, LANG_OC },
+ { "__unused", CT_ATTRIBUTE, LANG_C | LANG_CPP },
+ { "__volatile__", CT_QUALIFIER, LANG_C | LANG_CPP },
+ { "__weak", CT_QUALIFIER, LANG_C | LANG_CPP },
+ { "__word__", CT_WORD_, LANG_C | LANG_CPP },
+ { "abstract", CT_QUALIFIER, LANG_CS | LANG_D | LANG_JAVA | LANG_VALA | LANG_ECMA },
+ { "add", CT_GETSET, LANG_CS },
+ { "alias", CT_USING, LANG_D },
+ { "align", CT_ALIGN, LANG_D },
+ { "alignof", CT_SIZEOF, LANG_CPP },
+ { "and", CT_SBOOL, LANG_CPP },
+ { "and_eq", CT_SASSIGN, LANG_CPP },
+ { "as", CT_AS, LANG_CS | LANG_VALA },
+ { "asm", CT_ASM, LANG_C | LANG_CPP | LANG_D },
+ { "asm", CT_PP_ASM, LANG_ALL | FLAG_PP },
+ { "assert", CT_ASSERT, LANG_JAVA },
+ { "assert", CT_FUNCTION, LANG_D | LANG_PAWN },
+ { "assert", CT_PP_ASSERT, LANG_PAWN | FLAG_PP },
+ { "auto", CT_TYPE, LANG_C | LANG_CPP | LANG_D },
+ { "base", CT_BASE, LANG_CS | LANG_VALA },
+ { "bit", CT_TYPE, LANG_D },
+ { "bitand", CT_ARITH, LANG_C | LANG_CPP },
+ { "bitor", CT_ARITH, LANG_C | LANG_CPP },
+ { "body", CT_BODY, LANG_D },
+ { "bool", CT_TYPE, LANG_C | LANG_CPP | LANG_CS | LANG_VALA },
+ { "boolean", CT_TYPE, LANG_JAVA | LANG_ECMA },
+ { "break", CT_BREAK, LANG_ALL },
+ { "byte", CT_TYPE, LANG_CS | LANG_D | LANG_JAVA | LANG_ECMA },
+ { "callback", CT_QUALIFIER, LANG_VALA },
+ { "case", CT_CASE, LANG_ALL },
+ { "cast", CT_D_CAST, LANG_D },
+ { "catch", CT_CATCH, LANG_CPP | LANG_CS | LANG_VALA | LANG_D | LANG_JAVA | LANG_ECMA },
+ { "cdouble", CT_TYPE, LANG_D },
+ { "cent", CT_TYPE, LANG_D },
+ { "cfloat", CT_TYPE, LANG_D },
+ { "char", CT_CHAR, LANG_PAWN },
+ { "char", CT_TYPE, LANG_ALLC },
+ { "checked", CT_QUALIFIER, LANG_CS },
+ { "class", CT_CLASS, LANG_CPP | LANG_CS | LANG_D | LANG_JAVA | LANG_VALA | LANG_ECMA },
+ { "compl", CT_ARITH, LANG_CPP },
+ { "const", CT_QUALIFIER, LANG_ALL },
+ { "const_cast", CT_TYPE_CAST, LANG_CPP },
+ { "constexpr", CT_QUALIFIER, LANG_CPP },
+ { "construct", CT_CONSTRUCT, LANG_VALA },
+ { "continue", CT_CONTINUE, LANG_ALL },
+ { "creal", CT_TYPE, LANG_D },
+ { "dchar", CT_TYPE, LANG_D },
+ { "debug", CT_DEBUG, LANG_D },
+ { "debugger", CT_DEBUGGER, LANG_ECMA },
+ { "decltype", CT_DECLTYPE, LANG_CPP },
+ { "default", CT_DEFAULT, LANG_ALL },
+ { "define", CT_PP_DEFINE, LANG_ALL | FLAG_PP },
+ { "defined", CT_DEFINED, LANG_PAWN },
+ { "defined", CT_PP_DEFINED, LANG_ALLC | FLAG_PP },
+ { "delegate", CT_DELEGATE, LANG_CS | LANG_VALA | LANG_D },
+ { "delete", CT_DELETE, LANG_CPP | LANG_D | LANG_ECMA | LANG_VALA },
+ { "deprecated", CT_QUALIFIER, LANG_D },
+ { "do", CT_DO, LANG_ALL },
+ { "double", CT_TYPE, LANG_ALLC },
+ { "dynamic_cast", CT_TYPE_CAST, LANG_CPP },
+ { "elif", CT_PP_ELSE, LANG_ALLC | FLAG_PP },
+ { "else", CT_ELSE, LANG_ALL },
+ { "else", CT_PP_ELSE, LANG_ALL | FLAG_PP },
+ { "elseif", CT_PP_ELSE, LANG_PAWN | FLAG_PP },
+ { "emit", CT_PP_EMIT, LANG_PAWN | FLAG_PP },
+ { "endif", CT_PP_ENDIF, LANG_ALL | FLAG_PP },
+ { "endinput", CT_PP_ENDINPUT, LANG_PAWN | FLAG_PP },
+ { "endregion", CT_PP_ENDREGION, LANG_ALL | FLAG_PP },
+ { "endscript", CT_PP_ENDINPUT, LANG_PAWN | FLAG_PP },
+ { "enum", CT_ENUM, LANG_ALL },
+ { "error", CT_PP_ERROR, LANG_PAWN | FLAG_PP },
+ { "event", CT_TYPE, LANG_CS },
+ { "exit", CT_FUNCTION, LANG_PAWN },
+ { "explicit", CT_QUALIFIER, LANG_CPP | LANG_CS },
+ { "export", CT_EXPORT, LANG_CPP | LANG_D | LANG_ECMA },
+ { "extends", CT_QUALIFIER, LANG_JAVA | LANG_ECMA },
+ { "extern", CT_EXTERN, LANG_C | LANG_CPP | LANG_OC | LANG_CS | LANG_D | LANG_VALA },
+ { "false", CT_WORD, LANG_ALL },
+ { "file", CT_PP_FILE, LANG_PAWN | FLAG_PP },
+ { "final", CT_QUALIFIER, LANG_CPP | LANG_D | LANG_ECMA },
+ { "finally", CT_FINALLY, LANG_D | LANG_CS | LANG_VALA | LANG_ECMA | LANG_JAVA },
+ { "fixed", CT_FIXED, LANG_CS },
+ { "flags", CT_TYPE, LANG_VALA },
+ { "float", CT_TYPE, LANG_ALLC },
+ { "for", CT_FOR, LANG_ALL },
+ { "foreach", CT_FOR, LANG_CS | LANG_D | LANG_VALA },
+ { "foreach_reverse", CT_FOR, LANG_D },
+ { "forward", CT_FORWARD, LANG_PAWN },
+ { "friend", CT_FRIEND, LANG_CPP },
+ { "function", CT_FUNCTION, LANG_D | LANG_ECMA },
+ { "get", CT_GETSET, LANG_CS | LANG_VALA },
+ { "goto", CT_GOTO, LANG_ALL },
+ { "idouble", CT_TYPE, LANG_D },
+ { "if", CT_IF, LANG_ALL },
+ { "if", CT_PP_IF, LANG_ALL | FLAG_PP },
+ { "ifdef", CT_PP_IF, LANG_ALLC | FLAG_PP },
+ { "ifloat", CT_TYPE, LANG_D },
+ { "ifndef", CT_PP_IF, LANG_ALLC | FLAG_PP },
+ { "implements", CT_QUALIFIER, LANG_JAVA | LANG_ECMA },
+ { "implicit", CT_QUALIFIER, LANG_CS },
+ { "import", CT_IMPORT, LANG_D | LANG_JAVA | LANG_ECMA },
+ { "import", CT_PP_INCLUDE, LANG_OC | FLAG_PP },
+ { "in", CT_IN, LANG_D | LANG_CS | LANG_VALA | LANG_ECMA | LANG_OC },
+ { "include", CT_PP_INCLUDE, LANG_C | LANG_CPP | LANG_OC | LANG_PAWN | FLAG_PP },
+ { "inline", CT_QUALIFIER, LANG_C | LANG_CPP },
+ { "inout", CT_QUALIFIER, LANG_D },
+ { "instanceof", CT_SIZEOF, LANG_JAVA | LANG_ECMA },
+ { "int", CT_TYPE, LANG_ALLC },
+ { "interface", CT_CLASS, LANG_CPP | LANG_CS | LANG_D | LANG_JAVA | LANG_VALA | LANG_ECMA },
+ { "internal", CT_QUALIFIER, LANG_CS },
+ { "invariant", CT_INVARIANT, LANG_D },
+ { "ireal", CT_TYPE, LANG_D },
+ { "is", CT_SCOMPARE, LANG_D | LANG_CS | LANG_VALA },
+ { "lazy", CT_LAZY, LANG_D },
+ { "line", CT_PP_LINE, LANG_PAWN | FLAG_PP },
+ { "lock", CT_LOCK, LANG_CS | LANG_VALA },
+ { "long", CT_TYPE, LANG_ALLC },
+ { "macro", CT_D_MACRO, LANG_D },
+ { "mixin", CT_CLASS, LANG_D }, // may need special handling
+ { "module", CT_D_MODULE, LANG_D },
+ { "mutable", CT_QUALIFIER, LANG_CPP },
+ { "namespace", CT_NAMESPACE, LANG_CPP | LANG_CS | LANG_VALA },
+ { "native", CT_NATIVE, LANG_PAWN },
+ { "native", CT_QUALIFIER, LANG_JAVA | LANG_ECMA },
+ { "new", CT_NEW, LANG_CPP | LANG_CS | LANG_D | LANG_JAVA | LANG_PAWN | LANG_VALA | LANG_ECMA },
+ { "noexcept", CT_NOEXCEPT, LANG_CPP },
+ { "nonnull", CT_TYPE, LANG_OC },
+ { "not", CT_SARITH, LANG_CPP },
+ { "not_eq", CT_SCOMPARE, LANG_CPP },
+// { "null", CT_TYPE, LANG_CS | LANG_D | LANG_JAVA | LANG_VALA },
+ { "null_resettable", CT_OC_PROPERTY_ATTR, LANG_OC },
+ { "null_unspecified", CT_TYPE, LANG_OC },
+ { "nullable", CT_TYPE, LANG_OC },
+ { "object", CT_TYPE, LANG_CS },
+ { "operator", CT_OPERATOR, LANG_CPP | LANG_CS | LANG_PAWN },
+ { "or", CT_SBOOL, LANG_CPP },
+ { "or_eq", CT_SASSIGN, LANG_CPP },
+ { "out", CT_QUALIFIER, LANG_CS | LANG_D | LANG_VALA },
+ { "override", CT_QUALIFIER, LANG_CPP | LANG_CS | LANG_D | LANG_VALA },
+ { "package", CT_ACCESS, LANG_D },
+ { "package", CT_PACKAGE, LANG_ECMA | LANG_JAVA },
+ { "params", CT_TYPE, LANG_CS | LANG_VALA },
+ { "pragma", CT_PP_PRAGMA, LANG_ALL | FLAG_PP },
+ { "private", CT_ACCESS, LANG_ALLC }, // not C
+ { "property", CT_PP_PROPERTY, LANG_CS | FLAG_PP },
+ { "protected", CT_ACCESS, LANG_ALLC }, // not C
+ { "public", CT_ACCESS, LANG_ALL }, // PAWN // not C
+ { "readonly", CT_QUALIFIER, LANG_CS },
+ { "real", CT_TYPE, LANG_D },
+ { "ref", CT_QUALIFIER, LANG_CS | LANG_VALA },
+ { "region", CT_PP_REGION, LANG_ALL | FLAG_PP },
+ { "register", CT_QUALIFIER, LANG_C | LANG_CPP },
+ { "reinterpret_cast", CT_TYPE_CAST, LANG_CPP },
+ { "remove", CT_GETSET, LANG_CS },
+ { "restrict", CT_QUALIFIER, LANG_C | LANG_CPP },
+ { "return", CT_RETURN, LANG_ALL },
+ { "sbyte", CT_TYPE, LANG_CS },
+ { "scope", CT_D_SCOPE, LANG_D },
+ { "sealed", CT_QUALIFIER, LANG_CS },
+ { "section", CT_PP_SECTION, LANG_PAWN | FLAG_PP },
+ { "self", CT_THIS, LANG_OC },
+ { "set", CT_GETSET, LANG_CS | LANG_VALA },
+ { "short", CT_TYPE, LANG_ALLC },
+ { "signal", CT_ACCESS, LANG_VALA },
+ { "signals", CT_ACCESS, LANG_CPP },
+ { "signed", CT_TYPE, LANG_C | LANG_CPP },
+ { "size_t", CT_TYPE, LANG_ALLC },
+ { "sizeof", CT_SIZEOF, LANG_C | LANG_CPP | LANG_CS | LANG_VALA | LANG_PAWN },
+ { "sleep", CT_SIZEOF, LANG_PAWN },
+ { "stackalloc", CT_NEW, LANG_CS },
+ { "state", CT_STATE, LANG_PAWN },
+ { "static", CT_QUALIFIER, LANG_ALL },
+ { "static_cast", CT_TYPE_CAST, LANG_CPP },
+ { "stock", CT_STOCK, LANG_PAWN },
+ { "strictfp", CT_QUALIFIER, LANG_JAVA },
+ { "string", CT_TYPE, LANG_CS | LANG_VALA },
+ { "struct", CT_STRUCT, LANG_C | LANG_CPP | LANG_OC | LANG_CS | LANG_D | LANG_VALA },
+ { "super", CT_SUPER, LANG_D | LANG_JAVA | LANG_ECMA },
+ { "switch", CT_SWITCH, LANG_ALL },
+ { "synchronized", CT_QUALIFIER, LANG_D | LANG_ECMA },
+ { "synchronized", CT_SYNCHRONIZED, LANG_JAVA },
+ { "tagof", CT_TAGOF, LANG_PAWN },
+ { "template", CT_TEMPLATE, LANG_CPP | LANG_D },
+ { "this", CT_THIS, LANG_CPP | LANG_CS | LANG_D | LANG_JAVA | LANG_VALA | LANG_ECMA },
+ { "throw", CT_THROW, LANG_CPP | LANG_CS | LANG_VALA | LANG_D | LANG_JAVA | LANG_ECMA },
+ { "throws", CT_QUALIFIER, LANG_JAVA | LANG_ECMA | LANG_VALA },
+ { "transient", CT_QUALIFIER, LANG_JAVA | LANG_ECMA },
+ { "true", CT_WORD, LANG_ALL },
+ { "try", CT_TRY, LANG_CPP | LANG_CS | LANG_D | LANG_JAVA | LANG_ECMA | LANG_VALA },
+ { "tryinclude", CT_PP_INCLUDE, LANG_PAWN | FLAG_PP },
+ { "typedef", CT_TYPEDEF, LANG_C | LANG_CPP | LANG_OC | LANG_D },
+ { "typeid", CT_SIZEOF, LANG_CPP | LANG_D },
+ { "typename", CT_TYPENAME, LANG_CPP },
+ { "typeof", CT_DECLTYPE, LANG_C | LANG_CPP },
+ { "typeof", CT_SIZEOF, LANG_CS | LANG_D | LANG_VALA | LANG_ECMA },
+ { "ubyte", CT_TYPE, LANG_D },
+ { "ucent", CT_TYPE, LANG_D },
+ { "uint", CT_TYPE, LANG_CS | LANG_VALA | LANG_D },
+ { "ulong", CT_TYPE, LANG_CS | LANG_VALA | LANG_D },
+ { "unchecked", CT_QUALIFIER, LANG_CS },
+ { "undef", CT_PP_UNDEF, LANG_ALL | FLAG_PP },
+ { "union", CT_UNION, LANG_C | LANG_CPP | LANG_D },
+ { "unittest", CT_UNITTEST, LANG_D },
+ { "unsafe", CT_UNSAFE, LANG_CS },
+ { "unsafe_unretained", CT_QUALIFIER, LANG_OC },
+ { "unsigned", CT_TYPE, LANG_C | LANG_CPP },
+ { "ushort", CT_TYPE, LANG_CS | LANG_VALA | LANG_D },
+ { "using", CT_USING, LANG_CPP | LANG_CS | LANG_VALA },
+ { "var", CT_TYPE, LANG_VALA | LANG_ECMA },
+ { "version", CT_D_VERSION, LANG_D },
+ { "virtual", CT_QUALIFIER, LANG_CPP | LANG_CS | LANG_VALA },
+ { "void", CT_TYPE, LANG_ALLC },
+ { "volatile", CT_QUALIFIER, LANG_C | LANG_CPP | LANG_CS | LANG_JAVA | LANG_ECMA },
+ { "volatile", CT_VOLATILE, LANG_D },
+ { "wchar", CT_TYPE, LANG_D },
+ { "wchar_t", CT_TYPE, LANG_C | LANG_CPP },
+ { "weak", CT_QUALIFIER, LANG_VALA },
+ { "when", CT_WHEN, LANG_CS },
+ { "where", CT_WHERE, LANG_CS },
+ { "while", CT_WHILE, LANG_ALL },
+ { "with", CT_D_WITH, LANG_D | LANG_ECMA },
+ { "xor", CT_SARITH, LANG_CPP },
+ { "xor_eq", CT_SASSIGN, LANG_CPP },
+};
+
+
+// Issue #3353
+void init_keywords_for_language()
+{
+ unsigned int local_flags = cpd.lang_flags;
+ size_t keywords_count = ARRAY_SIZE(keywords);
+
+ language_count = 0;
+
+ for (size_t idx = 0; idx < keywords_count; idx++)
+ {
+ chunk_tag_t *tag = &keywords[idx];
+
+ if ((tag->lang_flags & local_flags) != 0)
+ {
+ // for debugging only
+ // fprintf(stderr, "%s(%d): %zu Keyword: '%s', type is '%s'\n",
+ // __func__, __LINE__, idx, tag->tag, get_token_name(tag->type));
+ keyword_for_lang[language_count].tag = tag->tag;
+ keyword_for_lang[language_count].type = tag->type;
+ keyword_for_lang[language_count].lang_flags = tag->lang_flags;
+ language_count++;
+ }
+ }
+
+ LOG_FMT(LDYNKW, "%s(%d): Number of Keywords for language %d: '%zu'\n",
+ __func__, __LINE__, local_flags, language_count);
+} // init_keywords_for_language
+
+
+static int kw_compare(const void *p1, const void *p2)
+{
+ const chunk_tag_t *t1 = static_cast<const chunk_tag_t *>(p1);
+ const chunk_tag_t *t2 = static_cast<const chunk_tag_t *>(p2);
+
+ return(strcmp(t1->tag, t2->tag));
+} // kw_compare
+
+
+bool keywords_are_sorted(void)
+{
+ size_t keywords_count = ARRAY_SIZE(keywords);
+
+ for (size_t idx = 1; idx < keywords_count; idx++)
+ {
+ if (kw_compare(&keywords[idx - 1], &keywords[idx]) > 0)
+ {
+ fprintf(stderr, "%s: bad sort order at idx %d, words '%s' and '%s'\n",
+ __func__, (int)idx - 1, keywords[idx - 1].tag, keywords[idx].tag);
+ // coveralls will always complain.
+ // these lines are only needed for the developper.
+ log_flush(true);
+ cpd.error_count++;
+ return(false);
+ }
+ }
+
+ return(true);
+} // keywords_are_sorted
+
+
+void add_keyword(const std::string &tag, E_Token type)
+{
+ // See if the keyword has already been added
+ dkwmap::iterator it = dkwm.find(tag);
+
+ if (it != dkwm.end())
+ {
+ LOG_FMT(LDYNKW, "%s(%d): changed '%s' to '%s'\n",
+ __func__, __LINE__, tag.c_str(), get_token_name(type));
+ (*it).second = type;
+ return;
+ }
+ // Insert the keyword
+ dkwm.insert(dkwmap::value_type(tag, type));
+ LOG_FMT(LDYNKW, "%s(%d): added '%s' as '%s'\n",
+ __func__, __LINE__, tag.c_str(), get_token_name(type));
+} // add_keyword
+
+
+static const chunk_tag_t *kw_static_first(const chunk_tag_t *tag)
+{
+ const chunk_tag_t *prev = tag - 1;
+
+ // TODO: avoid pointer arithmetics
+ // loop over static keyword array
+ while ( prev >= &keyword_for_lang[0] // not at beginning of keyword array
+ && strcmp(prev->tag, tag->tag) == 0) // tags match
+ {
+ tag = prev;
+ prev--;
+ }
+ return(tag);
+} // kw_static_first
+
+
+static const chunk_tag_t *kw_static_match(bool orig_list, const chunk_tag_t *tag, int lang_flags)
+{
+ bool in_pp = ( cpd.in_preproc != CT_NONE
+ && cpd.in_preproc != CT_PP_DEFINE);
+
+ for (const chunk_tag_t *iter = kw_static_first(tag);
+ (orig_list) ? (iter < &keywords[ARRAY_SIZE(keywords)]) : (iter < &keyword_for_lang[language_count]);
+ iter++)
+ {
+ bool pp_iter = (iter->lang_flags & FLAG_PP) != 0; // forcing value to bool
+
+ if ( (strcmp(iter->tag, tag->tag) == 0)
+ && language_is_set(iter->lang_flags)
+ && (lang_flags & iter->lang_flags)
+ && in_pp == pp_iter)
+ {
+ return(iter);
+ }
+ }
+
+ return(nullptr);
+} // kw_static_match
+
+
+E_Token find_keyword_type(const char *word, size_t len)
+{
+ if (len <= 0)
+ {
+ return(CT_NONE);
+ }
+ // check the dynamic word list first
+ string ss(word, len);
+ dkwmap::iterator it = dkwm.find(ss);
+
+ if (it != dkwm.end())
+ {
+ return((*it).second);
+ }
+ chunk_tag_t key;
+
+ key.tag = ss.c_str();
+
+ // check the static word list
+ const chunk_tag_t *p_ret = static_cast<const chunk_tag_t *>(
+ bsearch(&key, keyword_for_lang, language_count, sizeof(keyword_for_lang[0]), kw_compare));
+
+ if (p_ret != nullptr)
+ {
+ if ( strcmp(p_ret->tag, "__pragma") == 0
+ || strcmp(p_ret->tag, "_Pragma") == 0)
+ {
+ cpd.in_preproc = CT_PREPROC;
+ }
+ p_ret = kw_static_match(false, p_ret, cpd.lang_flags);
+ }
+ return((p_ret != nullptr) ? p_ret->type : CT_WORD);
+} // find_keyword_type
+
+
+int load_keyword_file(const char *filename)
+{
+ FILE *pf = fopen(filename, "r");
+
+ if (pf == nullptr)
+ {
+ LOG_FMT(LERR, "%s: fopen(%s) failed: %s (%d)\n",
+ __func__, filename, strerror(errno), errno);
+ cpd.error_count++;
+ return(EX_IOERR);
+ }
+ const int max_line_length = 256;
+ const int max_arg_count = 2;
+
+ // maximal length of a line in the file
+ char buf[max_line_length];
+ char *args[max_arg_count];
+ size_t line_no = 0;
+
+ // read file line by line
+ while (fgets(buf, max_line_length, pf) != nullptr)
+ {
+ line_no++;
+
+ // remove comments after '#' sign
+ char *ptr;
+
+ if ((ptr = strchr(buf, '#')) != nullptr)
+ {
+ *ptr = 0; // set string end where comment begins
+ }
+ size_t argc = Args::SplitLine(buf, args, max_arg_count);
+
+ if (argc > 0)
+ {
+ if ( argc == 1
+ && CharTable::IsKw1(*args[0]))
+ {
+ add_keyword(args[0], CT_TYPE);
+ }
+ else
+ {
+ LOG_FMT(LWARN, "%s:%zu Invalid line (starts with '%s')\n",
+ filename, line_no, args[0]);
+ cpd.error_count++;
+ }
+ }
+ else
+ {
+ continue; // the line is empty
+ }
+ }
+ fclose(pf);
+ return(EX_OK);
+} // load_keyword_file
+
+
+void print_custom_keywords(FILE *pfile)
+{
+ for (const auto &keyword_pair : dkwm)
+ {
+ E_Token tt = keyword_pair.second;
+
+ if (tt == CT_TYPE)
+ {
+ fprintf(pfile, "custom type %*.s%s\n",
+ uncrustify::limits::MAX_OPTION_NAME_LEN - 10, " ",
+ keyword_pair.first.c_str());
+ }
+ else if (tt == CT_MACRO_OPEN)
+ {
+ fprintf(pfile, "macro-open %*.s%s\n",
+ uncrustify::limits::MAX_OPTION_NAME_LEN - 11, " ",
+ keyword_pair.first.c_str());
+ }
+ else if (tt == CT_MACRO_CLOSE)
+ {
+ fprintf(pfile, "macro-close %*.s%s\n",
+ uncrustify::limits::MAX_OPTION_NAME_LEN - 12, " ",
+ keyword_pair.first.c_str());
+ }
+ else if (tt == CT_MACRO_ELSE)
+ {
+ fprintf(pfile, "macro-else %*.s%s\n",
+ uncrustify::limits::MAX_OPTION_NAME_LEN - 11, " ",
+ keyword_pair.first.c_str());
+ }
+ else
+ {
+ const char *tn = get_token_name(tt);
+
+ fprintf(pfile, "set %s %*.s%s\n",
+ tn,
+ uncrustify::limits::MAX_OPTION_NAME_LEN - (4 + static_cast<int>(strlen(tn))),
+ " ", keyword_pair.first.c_str());
+ }
+ }
+} // print_custom_keywords
+
+
+void clear_keyword_file(void)
+{
+ dkwm.clear();
+} // clear_keyword_file
+
+
+pattern_class_e get_token_pattern_class(E_Token tok)
+{
+ // TODO: instead of this switch better assign the pattern class to each statement
+ switch (tok)
+ {
+ case CT_IF:
+ case CT_ELSEIF:
+ case CT_SWITCH:
+ case CT_FOR:
+ case CT_WHILE:
+ case CT_SYNCHRONIZED:
+ case CT_USING_STMT:
+ case CT_LOCK:
+ case CT_D_WITH:
+ case CT_D_VERSION_IF:
+ case CT_D_SCOPE_IF:
+ return(pattern_class_e::PBRACED);
+
+ case CT_ELSE:
+ return(pattern_class_e::ELSE);
+
+ case CT_DO:
+ case CT_TRY:
+ case CT_FINALLY:
+ case CT_BODY:
+ case CT_UNITTEST:
+ case CT_UNSAFE:
+ case CT_VOLATILE:
+ case CT_GETSET:
+ return(pattern_class_e::BRACED);
+
+ case CT_CATCH:
+ case CT_D_VERSION:
+ case CT_DEBUG:
+ return(pattern_class_e::OPBRACED);
+
+ case CT_NAMESPACE:
+ return(pattern_class_e::VBRACED);
+
+ case CT_WHILE_OF_DO:
+ return(pattern_class_e::PAREN);
+
+ case CT_INVARIANT:
+ return(pattern_class_e::OPPAREN);
+
+ default:
+ return(pattern_class_e::NONE);
+ } // switch
+} // get_token_pattern_class
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/keywords.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/keywords.h
new file mode 100644
index 00000000..95c41aad
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/keywords.h
@@ -0,0 +1,85 @@
+/**
+ * @file keywords.h
+ * prototypes for keywords.c
+ *
+ * @author Ben Gardner
+ * @license GPL v2+
+ */
+
+#ifndef KEYWORDS_H_INCLUDED
+#define KEYWORDS_H_INCLUDED
+
+#include "uncrustify_types.h"
+
+/**
+ * Initializes keywords table for a given language.
+ *
+ * Let us have a look on the problem is caused by the tokens "in" and "out",
+ * used in the file "Issue_3353.h" under.
+ * The strings representing the tokens ("in" and "out"), are found in the
+ * original table: static chunk_tag_t keywords[] because they are used by
+ * other languages. They are tokenized as CT_IN and CT_OUT.
+ * The correct tokenization is CT_FUNC_VAR.
+ *
+ * It is necessary to create (at run time) a new table with all the keywords
+ * proper to the used language.
+ *
+ */
+
+/**
+ * The file
+ * "Issue_3353.h"
+ * struct A {
+ * void (*in)(
+ * void);
+ * void (*out)(
+ * void);
+ * };
+ */
+void init_keywords_for_language(void);
+
+/**
+ * Loads the dynamic keywords from a file
+ *
+ * @param filename The path to the file to load
+ *
+ * @retval EX_OK successfully read keywords from file
+ * @retval EX_IOERR reading keywords file failed
+ */
+int load_keyword_file(const char *filename);
+
+
+/**
+ * Search first the dynamic and then the static table for a matching keyword
+ *
+ * @param word Pointer to the text -- NOT zero terminated
+ * @param len The length of the text
+ *
+ * @return CT_WORD (no match) or the keyword token
+ */
+E_Token find_keyword_type(const char *word, size_t len);
+
+
+/**
+ * Adds a keyword to the list of dynamic keywords
+ *
+ * @param tag The tag (string) must be zero terminated
+ * @param type The type, usually CT_TYPE
+ */
+void add_keyword(const std::string &tag, E_Token type);
+
+
+void print_custom_keywords(FILE *pfile);
+
+
+void clear_keyword_file(void);
+
+
+//! Returns the pattern that the keyword needs based on the token
+pattern_class_e get_token_pattern_class(E_Token tok);
+
+
+bool keywords_are_sorted(void);
+
+
+#endif /* KEYWORDS_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/lang_pawn.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/lang_pawn.cpp
new file mode 100644
index 00000000..77831f55
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/lang_pawn.cpp
@@ -0,0 +1,540 @@
+/**
+ * @file lang_pawn.cpp
+ * Special functions for pawn stuff
+ *
+ * @author Ben Gardner
+ * @license GPL v2+
+ */
+
+#include "lang_pawn.h"
+
+#include "prototypes.h"
+
+using namespace uncrustify;
+
+
+/**
+ * Checks to see if a token continues a statement to the next line.
+ * We need to check for 'open' braces/paren/etc because the level doesn't
+ * change until the token after the open.
+ */
+static bool pawn_continued(Chunk *pc, size_t br_level);
+
+
+/**
+ * Functions prototypes and definitions can only appear in level 0.
+ *
+ * Function prototypes start with "native", "forward", or are just a function
+ * with a trailing semicolon instead of a open brace (or something else)
+ *
+ * somefunc(params) <-- def
+ * stock somefunc(params) <-- def
+ * somefunc(params); <-- proto
+ * forward somefunc(params) <-- proto
+ * native somefunc[rect](params) <-- proto
+ *
+ * Functions start with 'stock', 'static', 'public', or '@' (on level 0)
+ *
+ * Variable definitions start with 'stock', 'static', 'new', or 'public'.
+ */
+static Chunk *pawn_process_line(Chunk *start);
+
+
+//! We are on a level 0 function proto of def
+static Chunk *pawn_mark_function0(Chunk *start, Chunk *fcn);
+
+
+/**
+ * follows a variable definition at level 0 until the end.
+ * Adds a semicolon at the end, if needed.
+ */
+static Chunk *pawn_process_variable(Chunk *start);
+
+
+static Chunk *pawn_process_func_def(Chunk *pc);
+
+
+Chunk *pawn_add_vsemi_after(Chunk *pc)
+{
+ LOG_FUNC_ENTRY();
+
+ if ( chunk_is_token(pc, CT_VSEMICOLON)
+ || chunk_is_token(pc, CT_SEMICOLON))
+ {
+ return(pc);
+ }
+
+ if (pc == nullptr)
+ {
+ pc = Chunk::NullChunkPtr;
+ }
+ Chunk *next = pc->GetNextNc();
+
+ if ( next->IsNotNullChunk()
+ && ( chunk_is_token(next, CT_VSEMICOLON)
+ || chunk_is_token(next, CT_SEMICOLON)))
+ {
+ return(pc);
+ }
+ Chunk chunk = *pc;
+
+ set_chunk_type(&chunk, CT_VSEMICOLON);
+ set_chunk_parent(&chunk, CT_NONE);
+ chunk.str = options::mod_pawn_semicolon() ? ";" : "";
+ chunk.column += pc->Len();
+
+ LOG_FMT(LPVSEMI, "%s: Added VSEMI on line %zu, prev='%s' [%s]\n",
+ __func__, pc->orig_line, pc->Text(),
+ get_token_name(pc->type));
+
+ return(chunk_add_after(&chunk, pc));
+}
+
+
+void pawn_scrub_vsemi(void)
+{
+ constexpr static auto LCURRENT = LPVSEMI;
+
+ LOG_FUNC_ENTRY();
+
+ log_rule_B("mod_pawn_semicolon");
+
+ if (!options::mod_pawn_semicolon())
+ {
+ return;
+ }
+
+ for (Chunk *pc = Chunk::GetHead(); pc->IsNotNullChunk(); pc = pc->GetNext())
+ {
+ if (pc->type != CT_VSEMICOLON)
+ {
+ continue;
+ }
+ Chunk *prev = pc->GetPrevNcNnl();
+
+ if (chunk_is_token(prev, CT_BRACE_CLOSE))
+ {
+ if ( get_chunk_parent_type(prev) == CT_IF
+ || get_chunk_parent_type(prev) == CT_ELSE
+ || get_chunk_parent_type(prev) == CT_SWITCH
+ || get_chunk_parent_type(prev) == CT_CASE
+ || get_chunk_parent_type(prev) == CT_WHILE_OF_DO)
+ {
+ pc->str.clear();
+ }
+ }
+ }
+}
+
+
+static bool pawn_continued(Chunk *pc, size_t br_level)
+{
+ LOG_FUNC_ENTRY();
+
+ if (pc == nullptr)
+ {
+ return(false);
+ }
+
+ if ( pc->level > br_level
+ || chunk_is_token(pc, CT_ARITH)
+ || chunk_is_token(pc, CT_SHIFT)
+ || chunk_is_token(pc, CT_CARET)
+ || chunk_is_token(pc, CT_QUESTION)
+ || chunk_is_token(pc, CT_BOOL)
+ || chunk_is_token(pc, CT_ASSIGN)
+ || chunk_is_token(pc, CT_COMMA)
+ || chunk_is_token(pc, CT_COMPARE)
+ || chunk_is_token(pc, CT_IF)
+ || chunk_is_token(pc, CT_ELSE)
+ || chunk_is_token(pc, CT_DO)
+ || chunk_is_token(pc, CT_SWITCH)
+ || chunk_is_token(pc, CT_WHILE)
+ || chunk_is_token(pc, CT_BRACE_OPEN)
+ || chunk_is_token(pc, CT_VBRACE_OPEN)
+ || chunk_is_token(pc, CT_FPAREN_OPEN)
+ || get_chunk_parent_type(pc) == CT_IF
+ || get_chunk_parent_type(pc) == CT_ELSE
+ || get_chunk_parent_type(pc) == CT_ELSEIF
+ || get_chunk_parent_type(pc) == CT_DO
+ || get_chunk_parent_type(pc) == CT_FOR
+ || get_chunk_parent_type(pc) == CT_SWITCH
+ || get_chunk_parent_type(pc) == CT_WHILE
+ || get_chunk_parent_type(pc) == CT_FUNC_DEF
+ || get_chunk_parent_type(pc) == CT_ENUM
+ || pc->flags.test_any(PCF_IN_ENUM | PCF_IN_STRUCT)
+ || chunk_is_str(pc, ":")
+ || chunk_is_str(pc, "+")
+ || chunk_is_str(pc, "-"))
+ {
+ return(true);
+ }
+ return(false);
+} // pawn_continued
+
+
+void pawn_prescan(void)
+{
+ LOG_FUNC_ENTRY();
+
+ /*
+ * Start at the beginning and step through the entire file, and clean up
+ * any questionable stuff
+ */
+ bool did_nl = true;
+ Chunk *pc = Chunk::GetHead();
+
+ while ( pc != nullptr
+ && pc->IsNotNullChunk())
+ {
+ if ( did_nl
+ && pc->type != CT_PREPROC
+ && !chunk_is_newline(pc)
+ && pc->level == 0)
+ {
+ // pc now points to the start of a line
+ pc = pawn_process_line(pc);
+ }
+
+ // note that continued lines are ignored
+ if ( pc != nullptr
+ && pc->IsNotNullChunk())
+ {
+ did_nl = (chunk_is_token(pc, CT_NEWLINE));
+ }
+ pc = pc->GetNextNc();
+ }
+}
+
+
+static Chunk *pawn_process_line(Chunk *start)
+{
+ LOG_FUNC_ENTRY();
+
+ //LOG_FMT(LSYS, "%s: %d - %s\n", __func__,
+ // start->orig_line, start->Text());
+
+ if ( chunk_is_token(start, CT_NEW)
+ || chunk_is_str(start, "const"))
+ {
+ return(pawn_process_variable(start));
+ }
+ // if a open paren is found before an assign, then this is a function
+ Chunk *fcn = nullptr;
+
+ if (chunk_is_token(start, CT_WORD))
+ {
+ fcn = start;
+ }
+ Chunk *pc = Chunk::NullChunkPtr;
+
+ if (start != nullptr)
+ {
+ pc = start;
+ }
+
+ while ( ((pc = pc->GetNextNc())->IsNotNullChunk())
+ && !chunk_is_str(pc, "(")
+ && pc->type != CT_ASSIGN
+ && pc->type != CT_NEWLINE)
+ {
+ if ( pc->level == 0
+ && ( chunk_is_token(pc, CT_FUNCTION)
+ || chunk_is_token(pc, CT_WORD)
+ || chunk_is_token(pc, CT_OPERATOR_VAL)))
+ {
+ fcn = pc;
+ }
+ }
+
+ if (pc->IsNotNullChunk())
+ {
+ if (chunk_is_token(pc, CT_ASSIGN))
+ {
+ return(pawn_process_variable(pc));
+ }
+ }
+
+ if (fcn != nullptr)
+ {
+ //LOG_FMT(LSYS, "FUNCTION: %s\n", fcn->Text());
+ return(pawn_mark_function0(start, fcn));
+ }
+
+ if (chunk_is_token(start, CT_ENUM))
+ {
+ pc = start->GetNextType(CT_BRACE_CLOSE, start->level);
+ return(pc);
+ }
+ //LOG_FMT(LSYS, "%s: Don't understand line %d, starting with '%s' [%s]\n",
+ // __func__, start->orig_line, start->Text(), get_token_name(start->type));
+ return(start);
+} // pawn_process_line
+
+
+static Chunk *pawn_process_variable(Chunk *start)
+{
+ LOG_FUNC_ENTRY();
+ Chunk *pc = Chunk::NullChunkPtr;
+
+ if (start != nullptr)
+ {
+ pc = start;
+ }
+ Chunk *prev = Chunk::NullChunkPtr;
+
+ while ((pc = pc->GetNextNc())->IsNotNullChunk())
+ {
+ if ( chunk_is_token(pc, CT_NEWLINE)
+ && prev->IsNotNullChunk()
+ && !pawn_continued(prev, start->level))
+ {
+ if ( prev->type != CT_VSEMICOLON
+ && prev->type != CT_SEMICOLON)
+ {
+ pawn_add_vsemi_after(prev);
+ }
+ break;
+ }
+ prev = pc;
+ }
+ return(pc);
+}
+
+
+void pawn_add_virtual_semicolons(void)
+{
+ LOG_FUNC_ENTRY();
+
+ // Add Pawn virtual semicolons
+ if (language_is_set(LANG_PAWN))
+ {
+ Chunk *prev = Chunk::NullChunkPtr;
+ Chunk *pc = Chunk::GetHead();
+
+ while ((pc = pc->GetNext())->IsNotNullChunk())
+ {
+ if ( !pc->IsComment()
+ && !chunk_is_newline(pc)
+ && pc->type != CT_VBRACE_CLOSE
+ && pc->type != CT_VBRACE_OPEN)
+ {
+ prev = pc;
+ }
+
+ if ( prev->IsNullChunk()
+ || ( pc->type != CT_NEWLINE
+ && pc->type != CT_BRACE_CLOSE
+ && pc->type != CT_VBRACE_CLOSE))
+ {
+ continue;
+ }
+
+ // we just hit a newline and we have a previous token
+ if ( !prev->flags.test(PCF_IN_PREPROC)
+ && !prev->flags.test_any(PCF_IN_ENUM | PCF_IN_STRUCT)
+ && prev->type != CT_VSEMICOLON
+ && prev->type != CT_SEMICOLON
+ && !pawn_continued(prev, prev->brace_level))
+ {
+ pawn_add_vsemi_after(prev);
+ prev = Chunk::NullChunkPtr;
+ }
+ }
+ }
+} // pawn_add_virtual_semicolons
+
+
+static Chunk *pawn_mark_function0(Chunk *start, Chunk *fcn)
+{
+ LOG_FUNC_ENTRY();
+
+ // handle prototypes
+ if (start == fcn)
+ {
+ Chunk *last = fcn->GetNextType(CT_PAREN_CLOSE, fcn->level)->GetNext();
+
+ if (chunk_is_token(last, CT_SEMICOLON))
+ {
+ LOG_FMT(LPFUNC, "%s: %zu] '%s' proto due to semicolon\n",
+ __func__, fcn->orig_line, fcn->Text());
+ set_chunk_type(fcn, CT_FUNC_PROTO);
+ return(last);
+ }
+ }
+ else
+ {
+ if ( chunk_is_token(start, CT_FORWARD)
+ || chunk_is_token(start, CT_NATIVE))
+ {
+ LOG_FMT(LPFUNC, "%s: %zu] '%s' [%s] proto due to %s\n",
+ __func__, fcn->orig_line, fcn->Text(),
+ get_token_name(fcn->type),
+ get_token_name(start->type));
+ set_chunk_type(fcn, CT_FUNC_PROTO);
+ return(fcn->GetNextNc());
+ }
+ }
+ // Not a prototype, so it must be a function def
+ return(pawn_process_func_def(fcn));
+}
+
+
+static Chunk *pawn_process_func_def(Chunk *pc)
+{
+ LOG_FUNC_ENTRY();
+
+ // We are on a function definition
+ set_chunk_type(pc, CT_FUNC_DEF);
+
+ LOG_FMT(LPFUNC, "%s: %zu:%zu %s\n",
+ __func__, pc->orig_line, pc->orig_col, pc->Text());
+
+ /*
+ * If we don't have a brace open right after the close fparen, then
+ * we need to add virtual braces around the function body.
+ */
+ Chunk *clp = pc->GetNextString(")", 1, 0);
+ Chunk *last = clp->GetNextNcNnl();
+
+ if (last->IsNotNullChunk())
+ {
+ LOG_FMT(LPFUNC, "%s: %zu] last is '%s' [%s]\n",
+ __func__, last->orig_line, last->Text(), get_token_name(last->type));
+ }
+
+ // See if there is a state clause after the function
+ if ( last->IsNotNullChunk()
+ && chunk_is_str(last, "<"))
+ {
+ LOG_FMT(LPFUNC, "%s: %zu] '%s' has state angle open %s\n",
+ __func__, pc->orig_line, pc->Text(), get_token_name(last->type));
+
+ set_chunk_type(last, CT_ANGLE_OPEN);
+ set_chunk_parent(last, CT_FUNC_DEF);
+
+ while ( ((last = last->GetNext())->IsNotNullChunk())
+ && !chunk_is_str(last, ">"))
+ {
+ // do nothing just search, TODO: use search_chunk
+ }
+
+ if (last->IsNotNullChunk())
+ {
+ LOG_FMT(LPFUNC, "%s: %zu] '%s' has state angle close %s\n",
+ __func__, pc->orig_line, pc->Text(), get_token_name(last->type));
+ set_chunk_type(last, CT_ANGLE_CLOSE);
+ set_chunk_parent(last, CT_FUNC_DEF);
+ }
+ last = last->GetNextNcNnl();
+ }
+
+ if (last->IsNullChunk())
+ {
+ return(last);
+ }
+
+ if (chunk_is_token(last, CT_BRACE_OPEN))
+ {
+ set_chunk_parent(last, CT_FUNC_DEF);
+ last = last->GetNextType(CT_BRACE_CLOSE, last->level);
+
+ if (last->IsNotNullChunk())
+ {
+ set_chunk_parent(last, CT_FUNC_DEF);
+ }
+ }
+ else
+ {
+ LOG_FMT(LPFUNC, "%s: %zu] '%s' fdef: expected brace open: %s\n",
+ __func__, pc->orig_line, pc->Text(), get_token_name(last->type));
+
+ // do not insert a vbrace before a preproc
+ if (last->flags.test(PCF_IN_PREPROC))
+ {
+ return(last);
+ }
+ Chunk chunk = *last;
+ chunk.str.clear();
+ set_chunk_type(&chunk, CT_VBRACE_OPEN);
+ set_chunk_parent(&chunk, CT_FUNC_DEF);
+
+ Chunk *prev = chunk_add_before(&chunk, last);
+ last = prev;
+
+ // find the next newline at level 0
+ prev = prev->GetNextNcNnl();
+
+ do
+ {
+ LOG_FMT(LPFUNC, "%s:%zu] check %s, level %zu\n",
+ __func__, prev->orig_line, get_token_name(prev->type), prev->level);
+
+ if ( chunk_is_token(prev, CT_NEWLINE)
+ && prev->level == 0)
+ {
+ Chunk *next = prev->GetNextNcNnl();
+
+ if ( next->IsNotNullChunk()
+ && next->type != CT_ELSE
+ && next->type != CT_WHILE_OF_DO)
+ {
+ break;
+ }
+ }
+ prev->level++;
+ prev->brace_level++;
+ last = prev;
+ } while ((prev = prev->GetNext())->IsNotNullChunk());
+
+ if ( last != nullptr
+ && last->IsNotNullChunk())
+ {
+ LOG_FMT(LPFUNC, "%s:%zu] ended on %s, level %zu\n",
+ __func__, last->orig_line, get_token_name(last->type), last->level);
+ }
+ chunk = *last;
+ chunk.str.clear();
+ set_chunk_type(&chunk, CT_VBRACE_CLOSE);
+ set_chunk_parent(&chunk, CT_FUNC_DEF);
+ chunk.column += last->Len();
+ chunk.level = 0;
+ chunk.brace_level = 0;
+ last = chunk_add_after(&chunk, last);
+ }
+ return(last);
+} // pawn_process_func_def
+
+
+Chunk *pawn_check_vsemicolon(Chunk *pc)
+{
+ LOG_FUNC_ENTRY();
+
+ // Grab the open VBrace
+ Chunk *vb_open = pc->GetPrevType(CT_VBRACE_OPEN, -1);
+
+ /*
+ * Grab the item before the newline
+ * Don't do anything if:
+ * - the only thing previous is the V-Brace open
+ * - in a preprocessor
+ * - level > (vb_open->level + 1) -- ie, in () or []
+ * - it is something that needs a continuation
+ * + arith, assign, bool, comma, compare
+ */
+ Chunk *prev = pc->GetPrevNcNnl();
+
+ if ( prev->IsNullChunk()
+ || prev == vb_open
+ || prev->flags.test(PCF_IN_PREPROC)
+ || pawn_continued(prev, vb_open->level + 1))
+ {
+ if (prev->IsNotNullChunk())
+ {
+ LOG_FMT(LPVSEMI, "%s: no VSEMI on line %zu, prev='%s' [%s]\n",
+ __func__, prev->orig_line, prev->Text(), get_token_name(prev->type));
+ }
+ return(pc);
+ }
+ return(pawn_add_vsemi_after(prev));
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/lang_pawn.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/lang_pawn.h
new file mode 100644
index 00000000..9e2d7832
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/lang_pawn.h
@@ -0,0 +1,49 @@
+/**
+ * @file long_pawn.h
+ * prototypes for long_pawn.c
+ *
+ * @author Ben Gardner
+ * @license GPL v2+
+ */
+#ifndef LONG_PAWN_H_INCLUDED
+#define LONG_PAWN_H_INCLUDED
+
+#include "uncrustify_types.h"
+
+
+/**
+ * Does a scan of level 0 BEFORE stuff in combine.cpp is called.
+ * At this point, VSemis have been added only in VBraces.
+ * Otherwise, all level info is correct, except for unbraced functions.
+ *
+ * We are looking for unbraced functions.
+ */
+void pawn_prescan(void);
+
+
+void pawn_add_virtual_semicolons(void);
+
+
+/**
+ * We are in a virtual brace and hit a newline.
+ * If this should end the vbrace, then insert a VSEMICOLON and return that.
+ *
+ * @param pc The newline (CT_NEWLINE)
+ *
+ * @return Either the newline or the newly inserted virtual semicolon
+ */
+Chunk *pawn_check_vsemicolon(Chunk *pc);
+
+
+/**
+ * Turns certain virtual semicolons invisible.
+ * - after a close brace with a parent of switch, case, else, if
+ */
+void pawn_scrub_vsemi(void);
+
+
+//! add a semicolon after ...
+Chunk *pawn_add_vsemi_after(Chunk *pc);
+
+
+#endif /* LONG_PAWN_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/language_tools.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/language_tools.cpp
index 77e577f4..77e577f4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/language_tools.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/language_tools.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/language_tools.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/language_tools.h
index 5f57c3f1..5f57c3f1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/language_tools.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/language_tools.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/log_levels.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/log_levels.h
index d809514a..d809514a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/log_levels.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/log_levels.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/log_rules.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/log_rules.cpp
new file mode 100644
index 00000000..82ee8b8e
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/log_rules.cpp
@@ -0,0 +1,80 @@
+/**
+ * @file log_rules.cpp
+ * is an extract from space.cpp
+ *
+ * @author Guy Maurel
+ * @license GPL v2+
+ */
+
+#include "log_rules.h"
+
+#include "unc_tools.h"
+
+
+void log_rule2(const char *func, size_t line, const char *rule, Chunk *first, Chunk *second)
+{
+ LOG_FUNC_ENTRY();
+
+ if (second->type != CT_NEWLINE)
+ {
+ LOG_FMT(LSPACE, "%s(%zu): first->orig_line is %zu, first->orig_col is %zu, first->Text() is '%s', [%s/%s] <===>\n",
+ func, line, first->orig_line, first->orig_col, first->Text(),
+ get_token_name(first->type), get_token_name(get_chunk_parent_type(first)));
+ LOG_FMT(LSPACE, " second->orig_line is %zu, second->orig_col is %zu, second->Text() is '%s', [%s/%s] :",
+ second->orig_line, second->orig_col, second->Text(),
+ get_token_name(second->type), get_token_name(get_chunk_parent_type(second)));
+ LOG_FMT(LSPACE, " rule %s[line %zu]\n",
+ rule, line);
+ }
+}
+
+
+#ifdef SUPER_LOG
+
+
+void log_rule3(log_sev_t sev, const char *func, size_t line, const char *rule)
+#else
+
+
+void log_rule3(log_sev_t sev, const char *func, const char *rule)
+#endif
+{
+ // some Windows platforms provide a qualified function name ("ABC::XYZ::function_Name")
+ // as __func__; call get_unqualified_func_name() to return an unqualified function name
+
+ func = get_unqualified_func_name(func);
+
+#ifdef SUPER_LOG
+ LOG_FMT(sev, "log_rule(%s:%zu): rule is '%s'\n", func, line, rule);
+#else
+ LOG_FMT(sev, "log_rule(%s): rule is '%s'\n", func, rule);
+#endif
+}
+
+
+void log_rule4(const char *rule, Chunk *first)
+{
+ if (cpd.html_file == nullptr)
+ {
+ return;
+ }
+
+ if (first->tracking == nullptr)
+ {
+ first->tracking = new track_list;
+ first->tracking->reserve(3);
+ }
+ // copy the rule
+ size_t length = strlen(rule) + 1;
+ char *r = (char *)malloc(length);
+
+ strcpy(r, rule);
+ size_t a_number = get_A_Number();
+ Track_nr A = make_pair(a_number, r);
+
+ first->tracking->push_back(A);
+ size_t sizeOfTrack = first->tracking->size();
+
+ LOG_FMT(LSPACE, "log_rule4(%d): rule is '%s', after '%s', at line %zu, tracking number is %zu, size is %zu\n",
+ __LINE__, rule, first->Text(), first->orig_line, a_number, sizeOfTrack);
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/log_rules.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/log_rules.h
new file mode 100644
index 00000000..e7916702
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/log_rules.h
@@ -0,0 +1,49 @@
+/**
+ * @file log_rules.h
+ * prototypes for log_rules.cpp
+ *
+ * @author Guy Maurel
+ * @license GPL v2+
+ */
+
+#ifndef LOG_RULES_H_INCLUDED
+#define LOG_RULES_H_INCLUDED
+
+#include "chunk.h"
+#include "uncrustify.h"
+
+using namespace uncrustify;
+
+#if defined DEBUG
+#define log_rule(rule) \
+ log_rule2(__func__, __LINE__, (rule), first, second); \
+ log_rule4((rule), first)
+#else
+#define log_rule(rule) \
+ log_rule2(__func__, __LINE__, (rule), first, second)
+#endif
+
+// if you need more debug informations, remove the comment at the next line
+#define SUPER_LOG 1
+#ifdef SUPER_LOG
+#define log_rule_B(rule) \
+ log_rule3(LCURRENT, __func__, __LINE__, (rule))
+#else
+#define log_rule_B(rule) \
+ log_rule3(LCURRENT, __func__, (rule))
+#endif
+
+void log_rule2(const char *func, size_t line, const char *rule, Chunk *first, Chunk *second);
+
+
+#ifdef SUPER_LOG
+void log_rule3(log_sev_t sev, const char *func, size_t line, const char *rule);
+
+#else
+void log_rule3(log_sev_t sev, const char *func, const char *rule);
+
+#endif
+
+void log_rule4(const char *rule, Chunk *first);
+
+#endif /* LOG_RULES_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/logger.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/logger.cpp
index 969a4192..969a4192 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/logger.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/logger.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/logger.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/logger.h
new file mode 100644
index 00000000..68501967
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/logger.h
@@ -0,0 +1,166 @@
+/**
+ * @file logger.h
+ *
+ * Functions to do logging.
+ * The macros check whether the logsev is active before evaluating the
+ * parameters. Use them instead of the functions.
+ *
+ * If a log statement ends in a newline, the current log is ended.
+ * When the log severity changes, an implicit newline is inserted.
+ *
+ * @author Ben Gardner
+ * @license GPL v2+
+ */
+
+#ifndef LOGGER_H_INCLUDED
+#define LOGGER_H_INCLUDED
+
+#include "logmask.h"
+
+#include <cstdio> // FILE
+
+
+/**
+ * Initializes the log subsystem - call this first.
+ * This function sets the log stream and enables the top 3 sevs (0-2).
+ *
+ * @param log_file nullptr for stderr or the FILE stream for logs.
+ */
+void log_init(FILE *log_file);
+
+
+/**
+ * Show or hide the severity prefix "<1>"
+ *
+ * @param show true=show, false=hide
+ */
+void log_show_sev(bool show);
+
+
+/**
+ * Returns whether a log severity is active.
+ *
+ * @param sev severity log level
+ *
+ * @return true/false
+ */
+bool log_sev_on(log_sev_t sev);
+
+
+/**
+ * Sets a log sev on or off
+ *
+ * @param sev severity log level to modify
+ * @param val new value for severity log level
+ *
+ * @return true/false
+ */
+void log_set_sev(log_sev_t sev, bool value);
+
+
+/**
+ * Sets the log mask
+ *
+ * @param mask The mask to copy
+ */
+void log_set_mask(const log_mask_t &mask);
+
+
+/**
+ * Gets the log mask
+ *
+ * @param mask Where to copy the mask
+ */
+void log_get_mask(log_mask_t &mask);
+
+
+#ifdef __MINGW_PRINTF_FORMAT
+// On MinGW, the printf functions can be provided by a number of different
+// implementations, with different format string support. Annontate log_fmt
+// below with the same format attribute as the currently chosen default printf
+// function.
+#define PRINTF_FORMAT __MINGW_PRINTF_FORMAT
+#else
+#define PRINTF_FORMAT printf
+#endif
+
+/**
+ * Logs a formatted string -- similar to printf()
+ *
+ * @param sev The severity
+ * @param fmt The format string
+ * @param ... Additional arguments
+ */
+void log_fmt(log_sev_t sev, const char *fmt, ...) __attribute__((format(PRINTF_FORMAT, 2, 3)));
+
+
+/**
+ * Flushes the cached log text to the stream
+ *
+ * @param force_nl Append NL if not present
+ */
+void log_flush(bool force_nl);
+
+
+// it is necessary to make at least one time pro change a check of all the
+// uses of the MACRO LOG_FMT under Linux. This to detect all the used pointers,
+// which might be nullptr.
+// uncomment the define to do that.
+// #define NO_MACRO_VARARG
+
+#ifdef NO_MACRO_VARARG
+#define LOG_FMT log_fmt
+// TODO during debugging add source file and line number
+#else
+#define LOG_FMT(sev, ...) \
+ if (log_sev_on(sev)) { log_fmt(sev, __VA_ARGS__); }
+#endif
+
+
+#define __unqualified_func__ get_unqualified_func_name(__func__)
+
+
+#ifdef DEBUG
+/**
+ * This should be called as the first thing in a function.
+ * It uses the log_func class to add an entry to the function log stack.
+ * It is automatically removed when the function returns.
+ */
+#define LOG_FUNC_ENTRY() log_func log_fe = log_func(__unqualified_func__, __LINE__)
+
+
+#else
+#define LOG_FUNC_ENTRY()
+#endif
+
+
+/**
+ * This class just adds a entry to the top of the stack on construction and
+ * removes it on destruction.
+ * RAII for the win.
+ */
+class log_func
+{
+public:
+ log_func(const char *name, int line);
+
+
+ ~log_func();
+};
+
+
+void log_func_stack(log_sev_t sev, const char *prefix = 0, const char *suffix = "\n", size_t skip_cnt = 0);
+
+
+/**
+ * Return the unqualified function name from the input argument
+ * @param the qualified function name, usually provided by __func__ macro
+ * @return the corresponding unqualified name
+ */
+const char *get_unqualified_func_name(const char *func);
+
+
+#define log_func_stack_inline(_sev) log_func_stack((_sev), " [CallStack:", "]\n", 0)
+
+
+#endif /* LOGGER_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/logmask.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/logmask.cpp
index ca94cd05..ca94cd05 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/logmask.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/logmask.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/logmask.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/logmask.h
index 7cc24ca4..7cc24ca4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/logmask.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/logmask.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/md5.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/md5.cpp
index af8874a4..af8874a4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/md5.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/md5.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/md5.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/md5.h
index d1148b5e..d1148b5e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/md5.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/md5.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/newlines.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/newlines.cpp
new file mode 100644
index 00000000..1b4f09b5
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/newlines.cpp
@@ -0,0 +1,6721 @@
+/**
+ * @file newlines.cpp
+ * Adds or removes newlines.
+ *
+ * Informations
+ * "Ignore" means do not change it.
+ * "Add" in the context of spaces means make sure there is at least 1.
+ * "Add" elsewhere means make sure one is present.
+ * "Remove" mean remove the space/brace/newline/etc.
+ * "Force" in the context of spaces means ensure that there is exactly 1.
+ * "Force" in other contexts means the same as "add".
+ *
+ * Rmk: spaces = space + nl
+ *
+ * @author Ben Gardner
+ * @author Guy Maurel
+ * @license GPL v2+
+ */
+
+#include "newlines.h"
+
+#include "align_stack.h"
+#include "combine_skip.h"
+#include "flag_parens.h"
+#include "indent.h"
+#include "keywords.h"
+#include "prototypes.h"
+#include "space.h"
+#include "unc_tools.h"
+
+#ifdef WIN32
+#include <algorithm> // to get max
+#endif // ifdef WIN32
+
+
+constexpr static auto LCURRENT = LNEWLINE;
+
+using namespace std;
+using namespace uncrustify;
+
+
+static void mark_change(const char *func, size_t line);
+
+
+/**
+ * Check to see if we are allowed to increase the newline count.
+ * We can't increase the newline count:
+ * - if nl_squeeze_ifdef and a preproc is after the newline.
+ * - if eat_blanks_before_close_brace and the next is '}'
+ * - unless function contains an empty body and
+ * nl_inside_empty_func is non-zero
+ * - if eat_blanks_after_open_brace and the prev is '{'
+ * - unless the brace belongs to a namespace
+ * and nl_inside_namespace is non-zero
+ */
+static bool can_increase_nl(Chunk *nl);
+
+
+/**
+ * Basic approach:
+ * 1. Find next open brace
+ * 2. Find next close brace
+ * 3. Determine why the braces are there
+ * a. struct/union/enum "enum [name] {"
+ * c. assignment "= {"
+ * b. if/while/switch/for/etc ") {"
+ * d. else "} else {"
+ */
+static void setup_newline_add(Chunk *prev, Chunk *nl, Chunk *next);
+
+
+//! Make sure there is a blank line after a commented group of values
+static void newlines_double_space_struct_enum_union(Chunk *open_brace);
+
+
+//! If requested, make sure each entry in an enum is on its own line
+static void newlines_enum_entries(Chunk *open_brace, iarf_e av);
+
+
+/**
+ * Checks to see if it is OK to add a newline around the chunk.
+ * Don't want to break one-liners...
+ * return value:
+ * true: a new line may be added
+ * false: a new line may NOT be added
+ */
+static bool one_liner_nl_ok(Chunk *pc);
+
+
+static void nl_create_one_liner(Chunk *vbrace_open);
+
+
+static void nl_create_list_liner(Chunk *brace_open);
+
+
+/**
+ * Test if a chunk belongs to a one-liner method definition inside a class body
+ */
+static bool is_class_one_liner(Chunk *pc);
+
+
+/**
+ * Test if a chunk may be combined with a function prototype group.
+ *
+ * If nl_class_leave_one_liner_groups is enabled, a chunk may be combined with
+ * a function prototype group if it is a one-liner inside a class body, and is
+ * a definition of the same sort as surrounding prototypes. This checks against
+ * either the function name, or the function closing brace.
+ */
+bool is_func_proto_group(Chunk *pc, E_Token one_liner_type);
+
+
+//! Find the next newline or nl_cont
+static void nl_handle_define(Chunk *pc);
+
+
+/**
+ * Does the Ignore, Add, Remove, or Force thing between two chunks
+ *
+ * @param before The first chunk
+ * @param after The second chunk
+ * @param av The IARF value
+ */
+static void newline_iarf_pair(Chunk *before, Chunk *after, iarf_e av, bool check_nl_assign_leave_one_liners = false);
+
+
+/**
+ * Adds newlines to multi-line function call/decl/def
+ * Start points to the open paren
+ */
+static void newline_func_multi_line(Chunk *start);
+
+
+static void newline_template(Chunk *start);
+
+
+/**
+ * Formats a function declaration
+ * Start points to the open paren
+ */
+static void newline_func_def_or_call(Chunk *start);
+
+
+/**
+ * Formats a message, adding newlines before the item before the colons.
+ *
+ * Start points to the open '[' in:
+ * [myObject doFooWith:arg1 name:arg2 // some lines with >1 arg
+ * error:arg3];
+ */
+static void newline_oc_msg(Chunk *start);
+
+
+//! Ensure that the next non-comment token after close brace is a newline
+static void newline_end_newline(Chunk *br_close);
+
+
+/**
+ * Add or remove a newline between the closing paren and opening brace.
+ * Also uncuddles anything on the closing brace. (may get fixed later)
+ *
+ * "if (...) { \n" or "if (...) \n { \n"
+ *
+ * For virtual braces, we can only add a newline after the vbrace open.
+ * If we do so, also add a newline after the vbrace close.
+ */
+static bool newlines_if_for_while_switch(Chunk *start, iarf_e nl_opt);
+
+
+/**
+ * Add or remove extra newline before the chunk.
+ * Adds before comments
+ * Doesn't do anything if open brace before it
+ * "code\n\ncomment\nif (...)" or "code\ncomment\nif (...)"
+ */
+static void newlines_if_for_while_switch_pre_blank_lines(Chunk *start, iarf_e nl_opt);
+
+
+static void blank_line_set(Chunk *pc, Option<unsigned> &opt);
+
+
+/**
+ * Add one/two newline(s) before the chunk.
+ * Adds before comments
+ * Adds before destructor
+ * Doesn't do anything if open brace before it
+ * "code\n\ncomment\nif (...)" or "code\ncomment\nif (...)"
+ */
+static void newlines_func_pre_blank_lines(Chunk *start, E_Token start_type);
+
+
+static Chunk *get_closing_brace(Chunk *start);
+
+
+/**
+ * remove any consecutive newlines following this chunk
+ * skip vbraces
+ */
+static void remove_next_newlines(Chunk *start);
+
+
+/**
+ * Add or remove extra newline after end of the block started in chunk.
+ * Doesn't do anything if close brace after it
+ * Interesting issue is that at this point, nls can be before or after vbraces
+ * VBraces will stay VBraces, conversion to real ones should have already happened
+ * "if (...)\ncode\ncode" or "if (...)\ncode\n\ncode"
+ */
+static void newlines_if_for_while_switch_post_blank_lines(Chunk *start, iarf_e nl_opt);
+
+
+/**
+ * Adds or removes a newline between the keyword and the open brace.
+ * If there is something after the '{' on the same line, then
+ * the newline is removed unconditionally.
+ * If there is a '=' between the keyword and '{', do nothing.
+ *
+ * "struct [name] {" or "struct [name] \n {"
+ */
+static void newlines_struct_union(Chunk *start, iarf_e nl_opt, bool leave_trailing);
+static void newlines_enum(Chunk *start);
+static void newlines_namespace(Chunk *start); // Issue #2186
+
+
+/**
+ * Cuddles or un-cuddles a chunk with a previous close brace
+ *
+ * "} while" vs "} \n while"
+ * "} else" vs "} \n else"
+ *
+ * @param start The chunk - should be CT_ELSE or CT_WHILE_OF_DO
+ */
+static void newlines_cuddle_uncuddle(Chunk *start, iarf_e nl_opt);
+
+
+/**
+ * Adds/removes a newline between else and '{'.
+ * "else {" or "else \n {"
+ */
+static void newlines_do_else(Chunk *start, iarf_e nl_opt);
+
+
+//! Check if token starts a variable declaration
+static bool is_var_def(Chunk *pc, Chunk *next);
+
+
+//! Put newline(s) before and/or after a block of variable definitions
+static Chunk *newline_def_blk(Chunk *start, bool fn_top);
+
+
+/**
+ * Handles the brace_on_func_line setting and decides if the closing brace
+ * of a pair should be right after a newline.
+ * The only cases where the closing brace shouldn't be the first thing on a line
+ * is where the opening brace has junk after it AND where a one-liner in a
+ * class is supposed to be preserved.
+ *
+ * General rule for break before close brace:
+ * If the brace is part of a function (call or definition) OR if the only
+ * thing after the opening brace is comments, the there must be a newline
+ * before the close brace.
+ *
+ * Example of no newline before close
+ * struct mystring { int len;
+ * char str[]; };
+ * while (*(++ptr) != 0) { }
+ *
+ * Examples of newline before close
+ * void foo() {
+ * }
+ */
+static void newlines_brace_pair(Chunk *br_open);
+
+
+/**
+ * Put a empty line between the 'case' statement and the previous case colon
+ * or semicolon.
+ * Does not work with PAWN (?)
+ */
+static void newline_case(Chunk *start);
+
+
+static void newline_case_colon(Chunk *start);
+
+
+//! Put a blank line before a return statement, unless it is after an open brace
+static void newline_before_return(Chunk *start);
+
+
+/**
+ * Put a empty line after a return statement, unless it is followed by a
+ * close brace.
+ *
+ * May not work with PAWN
+ */
+static void newline_after_return(Chunk *start);
+
+
+static void blank_line_max(Chunk *pc, Option<unsigned> &opt);
+
+
+static iarf_e newline_template_option(Chunk *pc, iarf_e special, iarf_e base, iarf_e fallback);
+
+
+#define MARK_CHANGE() mark_change(__func__, __LINE__)
+
+
+static void mark_change(const char *func, size_t line)
+{
+ LOG_FUNC_ENTRY();
+
+ cpd.changes++;
+
+ if (cpd.pass_count == 0)
+ {
+ LOG_FMT(LCHANGE, "%s(%d): change %d on %s:%zu\n",
+ __func__, __LINE__, cpd.changes, func, line);
+ }
+} // mark_change
+
+
+static bool can_increase_nl(Chunk *nl)
+{
+ LOG_FUNC_ENTRY();
+
+ Chunk *prev = nl->GetPrevNc();
+
+ Chunk *pcmt = nl->GetPrev();
+ Chunk *next = nl->GetNext();
+
+ if (options::nl_squeeze_ifdef())
+ {
+ log_rule_B("nl_squeeze_ifdef");
+
+ Chunk *pp_start = chunk_get_pp_start(prev);
+
+ if ( pp_start != nullptr
+ && ( get_chunk_parent_type(pp_start) == CT_PP_IF
+ || get_chunk_parent_type(pp_start) == CT_PP_ELSE)
+ && ( pp_start->level > 0
+ || options::nl_squeeze_ifdef_top_level()))
+ {
+ log_rule_B("nl_squeeze_ifdef_top_level");
+ bool rv = ifdef_over_whole_file() && pp_start->flags.test(PCF_WF_IF);
+ LOG_FMT(LBLANKD, "%s(%d): nl_squeeze_ifdef %zu (prev) pp_lvl=%zu rv=%d\n",
+ __func__, __LINE__, nl->orig_line, nl->pp_level, rv);
+ return(rv);
+ }
+
+ if ( chunk_is_token(next, CT_PREPROC)
+ && ( get_chunk_parent_type(next) == CT_PP_ELSE
+ || get_chunk_parent_type(next) == CT_PP_ENDIF)
+ && ( next->level > 0
+ || options::nl_squeeze_ifdef_top_level()))
+ {
+ log_rule_B("nl_squeeze_ifdef_top_level");
+ bool rv = ifdef_over_whole_file() && next->flags.test(PCF_WF_ENDIF);
+ LOG_FMT(LBLANKD, "%s(%d): nl_squeeze_ifdef %zu (next) pp_lvl=%zu rv=%d\n",
+ __func__, __LINE__, nl->orig_line, nl->pp_level, rv);
+ return(rv);
+ }
+ }
+
+ if (chunk_is_token(next, CT_BRACE_CLOSE))
+ {
+ if ( options::nl_inside_namespace() > 0
+ && get_chunk_parent_type(next) == CT_NAMESPACE)
+ {
+ log_rule_B("nl_inside_namespace");
+ LOG_FMT(LBLANKD, "%s(%d): nl_inside_namespace %zu\n",
+ __func__, __LINE__, nl->orig_line);
+ return(true);
+ }
+
+ if ( options::nl_inside_empty_func() > 0
+ && chunk_is_token(prev, CT_BRACE_OPEN)
+ && ( get_chunk_parent_type(next) == CT_FUNC_DEF
+ || get_chunk_parent_type(next) == CT_FUNC_CLASS_DEF))
+ {
+ log_rule_B("nl_inside_empty_func");
+ LOG_FMT(LBLANKD, "%s(%d): nl_inside_empty_func %zu\n",
+ __func__, __LINE__, nl->orig_line);
+ return(true);
+ }
+
+ if (options::eat_blanks_before_close_brace())
+ {
+ log_rule_B("eat_blanks_before_close_brace");
+ LOG_FMT(LBLANKD, "%s(%d): eat_blanks_before_close_brace %zu\n",
+ __func__, __LINE__, nl->orig_line);
+ return(false);
+ }
+ }
+
+ if (chunk_is_token(prev, CT_BRACE_CLOSE))
+ {
+ if ( options::nl_before_namespace()
+ && get_chunk_parent_type(prev) == CT_NAMESPACE)
+ {
+ log_rule_B("nl_before_namespace");
+ LOG_FMT(LBLANKD, "%s(%d): nl_before_namespace %zu\n",
+ __func__, __LINE__, nl->orig_line);
+ return(true);
+ }
+ }
+
+ if (chunk_is_token(prev, CT_BRACE_OPEN))
+ {
+ if ( options::nl_inside_namespace() > 0
+ && get_chunk_parent_type(prev) == CT_NAMESPACE)
+ {
+ log_rule_B("nl_inside_namespace");
+ LOG_FMT(LBLANKD, "%s(%d): nl_inside_namespace %zu\n",
+ __func__, __LINE__, nl->orig_line);
+ return(true);
+ }
+
+ if ( options::nl_inside_empty_func() > 0
+ && chunk_is_token(next, CT_BRACE_CLOSE)
+ && ( get_chunk_parent_type(prev) == CT_FUNC_DEF
+ || get_chunk_parent_type(prev) == CT_FUNC_CLASS_DEF))
+ {
+ log_rule_B("nl_inside_empty_func");
+ LOG_FMT(LBLANKD, "%s(%d): nl_inside_empty_func %zu\n",
+ __func__, __LINE__, nl->orig_line);
+ return(true);
+ }
+
+ if (options::eat_blanks_after_open_brace())
+ {
+ log_rule_B("eat_blanks_after_open_brace");
+ LOG_FMT(LBLANKD, "%s(%d): eat_blanks_after_open_brace %zu\n",
+ __func__, __LINE__, nl->orig_line);
+ return(false);
+ }
+ }
+ log_rule_B("nl_start_of_file");
+
+ if ( !pcmt
+ && (options::nl_start_of_file() != IARF_IGNORE))
+ {
+ LOG_FMT(LBLANKD, "%s(%d): SOF no prev %zu\n", __func__, __LINE__, nl->orig_line);
+ return(false);
+ }
+ log_rule_B("nl_end_of_file");
+
+ if ( next->IsNullChunk()
+ && (options::nl_end_of_file() != IARF_IGNORE))
+ {
+ LOG_FMT(LBLANKD, "%s(%d): EOF no next %zu\n", __func__, __LINE__, nl->orig_line);
+ return(false);
+ }
+ return(true);
+} // can_increase_nl
+
+
+static void setup_newline_add(Chunk *prev, Chunk *nl, Chunk *next)
+{
+ LOG_FUNC_ENTRY();
+
+ if ( prev == nullptr
+ || nl == nullptr
+ || next == nullptr)
+ {
+ return;
+ }
+ undo_one_liner(prev);
+
+ nl->orig_line = prev->orig_line;
+ nl->level = prev->level;
+ nl->pp_level = prev->pp_level;
+ nl->brace_level = prev->brace_level;
+ nl->pp_level = prev->pp_level;
+ nl->nl_count = 1;
+ nl->flags = (prev->flags & PCF_COPY_FLAGS) & ~PCF_IN_PREPROC;
+ nl->orig_col = prev->orig_col_end;
+ nl->column = prev->orig_col;
+
+ if ( prev->flags.test(PCF_IN_PREPROC)
+ && next->flags.test(PCF_IN_PREPROC))
+ {
+ chunk_flags_set(nl, PCF_IN_PREPROC);
+ }
+
+ if (nl->flags.test(PCF_IN_PREPROC))
+ {
+ set_chunk_type(nl, CT_NL_CONT);
+ nl->str = "\\\n";
+ }
+ else
+ {
+ set_chunk_type(nl, CT_NEWLINE);
+ nl->str = "\n";
+ }
+} // setup_newline_add
+
+
+void double_newline(Chunk *nl)
+{
+ LOG_FUNC_ENTRY();
+
+ Chunk *prev = Chunk::NullChunkPtr;
+
+ if (nl != nullptr)
+ {
+ prev = nl->GetPrev();
+ }
+
+ if (prev->IsNullChunk())
+ {
+ return;
+ }
+ LOG_FMT(LNEWLINE, "%s(%d): add newline after ", __func__, __LINE__);
+
+ if (chunk_is_token(prev, CT_VBRACE_CLOSE))
+ {
+ LOG_FMT(LNEWLINE, "VBRACE_CLOSE ");
+ }
+ else
+ {
+ LOG_FMT(LNEWLINE, "'%s' ", prev->Text());
+ }
+ LOG_FMT(LNEWLINE, "on line %zu", prev->orig_line);
+
+ if (!can_increase_nl(nl))
+ {
+ LOG_FMT(LNEWLINE, " - denied\n");
+ return;
+ }
+ LOG_FMT(LNEWLINE, " - done\n");
+
+ if (nl->nl_count != 2)
+ {
+ nl->nl_count = 2;
+ MARK_CHANGE();
+ }
+} // double_newline
+
+
+Chunk *newline_add_before(Chunk *pc)
+{
+ LOG_FUNC_ENTRY();
+
+ Chunk nl;
+ Chunk *prev = pc->GetPrevNvb();
+
+ if (chunk_is_newline(prev))
+ {
+ // Already has a newline before this chunk
+ return(prev);
+ }
+ LOG_FMT(LNEWLINE, "%s(%d): Text() '%s', on orig_line is %zu, orig_col is %zu, pc->column is %zu",
+ __func__, __LINE__, pc->Text(), pc->orig_line, pc->orig_col, pc->column);
+ log_func_stack_inline(LNEWLINE);
+
+ setup_newline_add(prev, &nl, pc);
+ nl.orig_col = pc->orig_col;
+ nl.pp_level = pc->pp_level;
+ LOG_FMT(LNEWLINE, "%s(%d): nl.column is %zu\n",
+ __func__, __LINE__, nl.column);
+
+ MARK_CHANGE();
+ return(chunk_add_before(&nl, pc));
+} // newline_add_before
+
+
+Chunk *newline_force_before(Chunk *pc)
+{
+ LOG_FUNC_ENTRY();
+
+ Chunk *nl = newline_add_before(pc);
+
+ if ( nl->IsNotNullChunk()
+ && nl->nl_count > 1)
+ {
+ nl->nl_count = 1;
+ MARK_CHANGE();
+ }
+ return(nl);
+} // newline_force_before
+
+
+Chunk *newline_add_after(Chunk *pc)
+{
+ LOG_FUNC_ENTRY();
+
+ if (pc == nullptr)
+ {
+ return(Chunk::NullChunkPtr);
+ }
+ Chunk *next = pc->GetNextNvb();
+
+ if (chunk_is_newline(next))
+ {
+ // Already has a newline after this chunk
+ return(next);
+ }
+ LOG_FMT(LNEWLINE, "%s(%d): '%s' on line %zu",
+ __func__, __LINE__, pc->Text(), pc->orig_line);
+ log_func_stack_inline(LNEWLINE);
+
+ Chunk nl;
+
+ nl.orig_line = pc->orig_line;
+ nl.orig_col = pc->orig_col;
+ setup_newline_add(pc, &nl, next);
+
+ MARK_CHANGE();
+ // TO DO: check why the next statement is necessary
+ nl.orig_col = pc->orig_col;
+ nl.pp_level = pc->pp_level;
+ return(chunk_add_after(&nl, pc));
+} // newline_add_after
+
+
+Chunk *newline_force_after(Chunk *pc)
+{
+ LOG_FUNC_ENTRY();
+
+ Chunk *nl = newline_add_after(pc); // add a newline
+
+ if ( nl->IsNotNullChunk()
+ && nl->nl_count > 1) // check if there are more than 1 newline
+ {
+ nl->nl_count = 1; // if so change the newline count back to 1
+ MARK_CHANGE();
+ }
+ return(nl);
+} // newline_force_after
+
+
+static void newline_end_newline(Chunk *br_close)
+{
+ LOG_FUNC_ENTRY();
+
+ Chunk *next = br_close->GetNext();
+ Chunk nl;
+
+ if ( !chunk_is_newline(next)
+ && !next->IsComment())
+ {
+ nl.orig_line = br_close->orig_line;
+ nl.orig_col = br_close->orig_col;
+ nl.nl_count = 1;
+ nl.pp_level = 0;
+ nl.flags = (br_close->flags & PCF_COPY_FLAGS) & ~PCF_IN_PREPROC;
+
+ if ( br_close->flags.test(PCF_IN_PREPROC)
+ && next->IsNotNullChunk()
+ && next->flags.test(PCF_IN_PREPROC))
+ {
+ nl.flags |= PCF_IN_PREPROC;
+ }
+
+ if (nl.flags.test(PCF_IN_PREPROC))
+ {
+ set_chunk_type(&nl, CT_NL_CONT);
+ nl.str = "\\\n";
+ }
+ else
+ {
+ set_chunk_type(&nl, CT_NEWLINE);
+ nl.str = "\n";
+ }
+ MARK_CHANGE();
+ LOG_FMT(LNEWLINE, "%s(%d): %zu:%zu add newline after '%s'\n",
+ __func__, __LINE__, br_close->orig_line, br_close->orig_col, br_close->Text());
+ chunk_add_after(&nl, br_close);
+ }
+} // newline_end_newline
+
+
+static void newline_min_after(Chunk *ref, size_t count, pcf_flag_e flag)
+{
+ LOG_FUNC_ENTRY();
+
+ LOG_FMT(LNEWLINE, "%s(%d): for '%s', at orig_line %zu, count is %zu,\n flag is %s:",
+ __func__, __LINE__, ref->Text(), ref->orig_line, count,
+ pcf_flags_str(flag).c_str());
+ log_func_stack_inline(LNEWLINE);
+
+ Chunk *pc = ref;
+
+ do
+ {
+ pc = pc->GetNext();
+ } while ( pc->IsNotNullChunk()
+ && !chunk_is_newline(pc));
+
+ if (pc->IsNotNullChunk()) // Coverity CID 76002
+ {
+ LOG_FMT(LNEWLINE, "%s(%d): type is %s, orig_line %zu, orig_col %zu\n",
+ __func__, __LINE__, get_token_name(pc->type), pc->orig_line, pc->orig_col);
+ }
+ Chunk *next = pc->GetNext();
+
+ if (next->IsNullChunk())
+ {
+ return;
+ }
+
+ if ( next->IsComment()
+ && next->nl_count == 1
+ && pc->GetPrev()->IsComment())
+ {
+ newline_min_after(next, count, flag);
+ return;
+ }
+ chunk_flags_set(pc, flag);
+
+ if ( chunk_is_newline(pc)
+ && can_increase_nl(pc))
+ {
+ if (pc->nl_count < count)
+ {
+ pc->nl_count = count;
+ MARK_CHANGE();
+ }
+ }
+} // newline_min_after
+
+
+Chunk *newline_add_between(Chunk *start, Chunk *end)
+{
+ LOG_FUNC_ENTRY();
+
+ if ( start == nullptr
+ || end == nullptr
+ || chunk_is_token(end, CT_IGNORED))
+ {
+ return(nullptr);
+ }
+ LOG_FMT(LNEWLINE, "%s(%d): start->Text() is '%s', type is %s, orig_line is %zu, orig_col is %zu\n",
+ __func__, __LINE__, start->Text(), get_token_name(start->type),
+ start->orig_line, start->orig_col);
+ LOG_FMT(LNEWLINE, "%s(%d): and end->Text() is '%s', orig_line is %zu, orig_col is %zu\n ",
+ __func__, __LINE__, end->Text(), end->orig_line, end->orig_col);
+ log_func_stack_inline(LNEWLINE);
+
+ // Back-up check for one-liners (should never be true!)
+ if (!one_liner_nl_ok(start))
+ {
+ return(nullptr);
+ }
+
+ /*
+ * Scan for a line break, if there is a line break between start and end
+ * we won't add another one
+ */
+ for (Chunk *pc = start; pc != end; pc = pc->GetNext())
+ {
+ if (chunk_is_newline(pc))
+ {
+ return(pc);
+ }
+ }
+
+ /*
+ * If the second one is a brace open, then check to see
+ * if a comment + newline follows
+ */
+ if (chunk_is_token(end, CT_BRACE_OPEN))
+ {
+ Chunk *pc = end->GetNext();
+
+ if (pc->IsComment())
+ {
+ pc = pc->GetNext();
+
+ if (chunk_is_newline(pc))
+ {
+ // are there some more (comment + newline)s ?
+ Chunk *pc1 = end->GetNextNcNnl();
+
+ if (!chunk_is_newline(pc1))
+ {
+ // yes, go back
+ Chunk *pc2 = pc1->GetPrev();
+ pc = pc2;
+ }
+ }
+
+ if (end == pc)
+ {
+ LOG_FMT(LNEWLINE, "%s(%d): pc1 and pc are identical\n",
+ __func__, __LINE__);
+ }
+ else
+ {
+ // Move the open brace to after the newline
+ chunk_move_after(end, pc);
+ }
+ LOG_FMT(LNEWLINE, "%s(%d):\n", __func__, __LINE__);
+ newline_add_after(end);
+ return(pc);
+ }
+ else
+ {
+ LOG_FMT(LNEWLINE, "%s(%d):\n", __func__, __LINE__);
+ }
+ }
+ else
+ {
+ LOG_FMT(LNEWLINE, "%s(%d):\n", __func__, __LINE__);
+ }
+ Chunk *tmp = newline_add_before(end);
+
+ return(tmp);
+} // newline_add_between
+
+
+void newline_del_between(Chunk *start, Chunk *end)
+{
+ LOG_FUNC_ENTRY();
+
+ LOG_FMT(LNEWLINE, "%s(%d): start->Text() is '%s', orig_line is %zu, orig_col is %zu\n",
+ __func__, __LINE__, start->Text(), start->orig_line, start->orig_col);
+ LOG_FMT(LNEWLINE, "%s(%d): and end->Text() is '%s', orig_line is %zu, orig_col is %zu: preproc=%c/%c\n",
+ __func__, __LINE__, end->Text(), end->orig_line, end->orig_col,
+ start->flags.test(PCF_IN_PREPROC) ? 'y' : 'n',
+ end->flags.test(PCF_IN_PREPROC) ? 'y' : 'n');
+ log_func_stack_inline(LNEWLINE);
+
+ // Can't remove anything if the preproc status differs
+ if (!chunk_same_preproc(start, end))
+ {
+ return;
+ }
+ Chunk *pc = start;
+ bool start_removed = false;
+
+ do
+ {
+ Chunk *next = pc->GetNext();
+
+ if (chunk_is_newline(pc))
+ {
+ Chunk *prev = pc->GetPrev();
+
+ if ( ( !prev->IsComment()
+ && !next->IsComment())
+ || chunk_is_newline(prev)
+ || chunk_is_newline(next))
+ {
+ if (chunk_safe_to_del_nl(pc))
+ {
+ if (pc == start)
+ {
+ start_removed = true;
+ }
+ chunk_del(pc);
+ MARK_CHANGE();
+
+ if (prev != nullptr)
+ {
+ align_to_column(next, prev->column + space_col_align(prev, next));
+ }
+ }
+ }
+ else
+ {
+ if (pc->nl_count > 1)
+ {
+ pc->nl_count = 1;
+ MARK_CHANGE();
+ }
+ }
+ }
+ pc = next;
+ } while (pc != end);
+
+ if ( !start_removed
+ && chunk_is_str(end, "{")
+ && ( chunk_is_str(start, ")")
+ || chunk_is_token(start, CT_DO)
+ || chunk_is_token(start, CT_ELSE)))
+ {
+ chunk_move_after(end, start);
+ }
+} // newline_del_between
+
+
+void newlines_sparens()
+{
+ LOG_FUNC_ENTRY();
+
+ //Chunk *sparen_open;
+
+ for (Chunk *sparen_open = Chunk::GetHead()->GetNextType(CT_SPAREN_OPEN, ANY_LEVEL);
+ sparen_open->IsNotNullChunk();
+ sparen_open = sparen_open->GetNextType(CT_SPAREN_OPEN, ANY_LEVEL))
+ {
+ Chunk *sparen_close = sparen_open->GetNextType(CT_SPAREN_CLOSE, sparen_open->level);
+
+ if (sparen_close->IsNullChunk())
+ {
+ continue;
+ }
+ Chunk *sparen_content_start = sparen_open->GetNextNnl();
+ Chunk *sparen_content_end = sparen_close->GetPrevNnl();
+ bool is_multiline = (
+ sparen_content_start != sparen_content_end
+ && !are_chunks_in_same_line(sparen_content_start, sparen_content_end));
+
+ // Add a newline after '(' if an if/for/while/switch condition spans multiple lines,
+ // as e.g. required by the ROS 2 development style guidelines:
+ // https://index.ros.org/doc/ros2/Contributing/Developer-Guide/#open-versus-cuddled-braces
+ if (is_multiline)
+ {
+ log_rule_B("nl_multi_line_sparen_open");
+ newline_iarf(sparen_open, options::nl_multi_line_sparen_open());
+ }
+
+ // Add a newline before ')' if an if/for/while/switch condition spans multiple lines. Overrides nl_before_if_closing_paren if both are specified.
+ if ( is_multiline
+ && options::nl_multi_line_sparen_close() != IARF_IGNORE)
+ {
+ log_rule_B("nl_multi_line_sparen_close");
+ newline_iarf(sparen_content_end, options::nl_multi_line_sparen_close());
+ }
+ else
+ {
+ // add/remove trailing newline in an if condition
+ Chunk *ctrl_structure = sparen_open->GetPrevNcNnl();
+
+ if ( chunk_is_token(ctrl_structure, CT_IF)
+ || chunk_is_token(ctrl_structure, CT_ELSEIF))
+ {
+ log_rule_B("nl_before_if_closing_paren");
+ newline_iarf_pair(sparen_content_end, sparen_close, options::nl_before_if_closing_paren());
+ }
+ }
+ }
+} // newlines_sparens
+
+
+static bool newlines_if_for_while_switch(Chunk *start, iarf_e nl_opt)
+{
+ LOG_FUNC_ENTRY();
+
+ log_rule_B("nl_define_macro");
+
+ if ( nl_opt == IARF_IGNORE
+ || ( start->flags.test(PCF_IN_PREPROC)
+ && !options::nl_define_macro()))
+ {
+ return(false);
+ }
+ bool retval = false;
+ Chunk *pc = start->GetNextNcNnl();
+
+ if (chunk_is_token(pc, CT_SPAREN_OPEN))
+ {
+ Chunk *close_paren = pc->GetNextType(CT_SPAREN_CLOSE, pc->level);
+ Chunk *brace_open = close_paren->GetNextNcNnl();
+
+ if ( ( chunk_is_token(brace_open, CT_BRACE_OPEN)
+ || chunk_is_token(brace_open, CT_VBRACE_OPEN))
+ && one_liner_nl_ok(brace_open))
+ {
+ log_rule_B("nl_multi_line_cond");
+
+ if (options::nl_multi_line_cond())
+ {
+ while ((pc = pc->GetNext()) != close_paren)
+ {
+ if (chunk_is_newline(pc))
+ {
+ nl_opt = IARF_ADD;
+ break;
+ }
+ }
+ }
+
+ if (chunk_is_token(brace_open, CT_VBRACE_OPEN))
+ {
+ // Can only add - we don't want to create a one-line here
+ if (nl_opt & IARF_ADD)
+ {
+ newline_iarf_pair(close_paren, brace_open->GetNextNcNnl(), nl_opt);
+ pc = brace_open->GetNextType(CT_VBRACE_CLOSE, brace_open->level);
+
+ if ( !chunk_is_newline(pc->GetPrevNc())
+ && !chunk_is_newline(pc->GetNextNc()))
+ {
+ newline_add_after(pc);
+ retval = true;
+ }
+ }
+ }
+ else
+ {
+ newline_iarf_pair(close_paren, brace_open, nl_opt);
+ Chunk *next = brace_open->GetNextNcNnl();
+
+ if (brace_open->type != next->type) // Issue #2836
+ {
+ newline_add_between(brace_open, brace_open->GetNextNcNnl());
+ }
+ // Make sure nothing is cuddled with the closing brace
+ pc = brace_open->GetNextType(CT_BRACE_CLOSE, brace_open->level);
+ newline_add_between(pc, pc->GetNextNcNnlNet());
+ retval = true;
+ }
+ }
+ }
+ return(retval);
+} // newlines_if_for_while_switch
+
+
+static void newlines_if_for_while_switch_pre_blank_lines(Chunk *start, iarf_e nl_opt)
+{
+ LOG_FUNC_ENTRY();
+
+ LOG_FMT(LNEWLINE, "%s(%d): start->Text() is '%s', type is %s, orig_line is %zu, orig_column is %zu\n",
+ __func__, __LINE__, start->Text(), get_token_name(start->type), start->orig_line, start->orig_col);
+
+ log_rule_B("nl_define_macro");
+
+ if ( nl_opt == IARF_IGNORE
+ || ( start->flags.test(PCF_IN_PREPROC)
+ && !options::nl_define_macro()))
+ {
+ return;
+ }
+
+ /*
+ * look backwards until we find
+ * open brace (don't add or remove)
+ * 2 newlines in a row (don't add)
+ * something else (don't remove)
+ */
+ for (Chunk *pc = start->GetPrev(); pc != nullptr && pc->IsNotNullChunk(); pc = pc->GetPrev())
+ {
+ size_t level = start->level;
+ bool do_add = (nl_opt & IARF_ADD) != IARF_IGNORE; // forcing value to bool
+ Chunk *last_nl = nullptr;
+
+ if (chunk_is_newline(pc))
+ {
+ last_nl = pc;
+
+ // if we found 2 or more in a row
+ if ( pc->nl_count > 1
+ || chunk_is_newline(pc->GetPrevNvb()))
+ {
+ // need to remove
+ if ( (nl_opt & IARF_REMOVE)
+ && !pc->flags.test(PCF_VAR_DEF))
+ {
+ // if we're also adding, take care of that here
+ size_t nl_count = do_add ? 2 : 1;
+
+ if (nl_count != pc->nl_count)
+ {
+ pc->nl_count = nl_count;
+ MARK_CHANGE();
+ }
+ Chunk *prev;
+
+ // can keep using pc because anything other than newline stops loop, and we delete if newline
+ while (chunk_is_newline(prev = pc->GetPrevNvb()))
+ {
+ // Make sure we don't combine a preproc and non-preproc
+ if (!chunk_safe_to_del_nl(prev))
+ {
+ break;
+ }
+ chunk_del(prev);
+ MARK_CHANGE();
+ }
+ }
+ return;
+ }
+ }
+ else if ( chunk_is_opening_brace(pc)
+ || pc->level < level)
+ {
+ return;
+ }
+ else if (pc->IsComment())
+ {
+ // vbrace close is ok because it won't go into output, so we should skip it
+ last_nl = nullptr;
+ continue;
+ }
+ else
+ {
+ if ( chunk_is_token(pc, CT_CASE_COLON)
+ && options::nl_before_ignore_after_case())
+ {
+ return;
+ }
+
+ if (do_add) // we found something previously besides a comment or a new line
+ {
+ // if we have run across a newline
+ if (last_nl != nullptr)
+ {
+ if (last_nl->nl_count < 2)
+ {
+ double_newline(last_nl);
+ }
+ }
+ else
+ {
+ Chunk *next;
+
+ // we didn't run into a newline, so we need to add one
+ if ( ((next = pc->GetNext())->IsNotNullChunk())
+ && next->IsComment())
+ {
+ pc = next;
+ }
+
+ if ((last_nl = newline_add_after(pc))->IsNotNullChunk())
+ {
+ double_newline(last_nl);
+ }
+ }
+ }
+ return;
+ }
+ }
+} // newlines_if_for_while_switch_pre_blank_lines
+
+
+static void blank_line_set(Chunk *pc, Option<unsigned> &opt)
+{
+ LOG_FUNC_ENTRY();
+
+ if (pc == nullptr)
+ {
+ return;
+ }
+ const unsigned optval = opt();
+
+ if ( (optval > 0)
+ && (pc->nl_count != optval))
+ {
+ LOG_FMT(LBLANKD, "%s(%d): do_blank_lines: %s set line %zu to %u\n",
+ __func__, __LINE__, opt.name(), pc->orig_line, optval);
+ pc->nl_count = optval;
+ MARK_CHANGE();
+ }
+} // blank_line_set
+
+
+bool do_it_newlines_func_pre_blank_lines(Chunk *last_nl, E_Token start_type)
+{
+ LOG_FUNC_ENTRY();
+
+ if (last_nl == nullptr)
+ {
+ return(false);
+ }
+ LOG_FMT(LNLFUNCT, "%s(%d): orig_line is %zu, orig_col is %zu, type is %s, Text() is '%s'\n",
+ __func__, __LINE__,
+ last_nl->orig_line, last_nl->orig_col, get_token_name(last_nl->type), last_nl->Text());
+
+ switch (start_type)
+ {
+ case CT_FUNC_CLASS_DEF:
+ {
+ log_rule_B("nl_before_func_class_def");
+ bool diff = options::nl_before_func_class_def() <= last_nl->nl_count;
+ LOG_FMT(LNLFUNCT, "%s(%d): is %s\n",
+ __func__, __LINE__, diff ? "TRUE" : "FALSE");
+
+ log_rule_B("nl_before_func_class_def");
+
+ if (options::nl_before_func_class_def() != last_nl->nl_count)
+ {
+ LOG_FMT(LNLFUNCT, "%s(%d): set blank line(s) to %u\n",
+ __func__, __LINE__, options::nl_before_func_class_def());
+ blank_line_set(last_nl, options::nl_before_func_class_def);
+ }
+ return(diff);
+ }
+
+ case CT_FUNC_CLASS_PROTO:
+ {
+ log_rule_B("nl_before_func_class_proto");
+ bool diff = options::nl_before_func_class_proto() <= last_nl->nl_count;
+ LOG_FMT(LNLFUNCT, "%s(%d): is %s\n",
+ __func__, __LINE__, diff ? "TRUE" : "FALSE");
+
+ log_rule_B("nl_before_func_class_proto");
+
+ if (options::nl_before_func_class_proto() != last_nl->nl_count)
+ {
+ LOG_FMT(LNLFUNCT, "%s(%d): set blank line(s) to %u\n",
+ __func__, __LINE__, options::nl_before_func_class_proto());
+ blank_line_set(last_nl, options::nl_before_func_class_proto);
+ }
+ return(diff);
+ }
+
+ case CT_FUNC_DEF:
+ {
+ LOG_FMT(LNLFUNCT, "%s(%d): nl_before_func_body_def() is %u, last_nl->nl_count is %zu\n",
+ __func__, __LINE__, options::nl_before_func_body_def(), last_nl->nl_count);
+ log_rule_B("nl_before_func_body_def");
+ bool diff = options::nl_before_func_body_def() <= last_nl->nl_count;
+ LOG_FMT(LNLFUNCT, "%s(%d): is %s\n",
+ __func__, __LINE__, diff ? "TRUE" : "FALSE");
+
+ log_rule_B("nl_before_func_body_def");
+
+ if (options::nl_before_func_body_def() != last_nl->nl_count)
+ {
+ LOG_FMT(LNLFUNCT, "%s(%d): set blank line(s) to %u\n",
+ __func__, __LINE__, options::nl_before_func_body_def());
+ log_rule_B("nl_before_func_body_def");
+ blank_line_set(last_nl, options::nl_before_func_body_def);
+ }
+ LOG_FMT(LNLFUNCT, "%s(%d): nl_before_func_body_def() is %u, last_nl->nl_count is %zu\n",
+ __func__, __LINE__, options::nl_before_func_body_def(), last_nl->nl_count);
+ return(diff);
+ }
+
+ case CT_FUNC_PROTO:
+ {
+ log_rule_B("nl_before_func_body_proto");
+ bool diff = options::nl_before_func_body_proto() <= last_nl->nl_count;
+ LOG_FMT(LNLFUNCT, "%s(%d): is %s\n",
+ __func__, __LINE__, diff ? "TRUE" : "FALSE");
+
+ log_rule_B("nl_before_func_body_proto");
+
+ if (options::nl_before_func_body_proto() != last_nl->nl_count)
+ {
+ LOG_FMT(LNLFUNCT, "%s(%d): set blank line(s) to %u\n",
+ __func__, __LINE__, options::nl_before_func_body_proto());
+ log_rule_B("nl_before_func_body_proto");
+ blank_line_set(last_nl, options::nl_before_func_body_proto);
+ }
+ return(diff);
+ }
+
+ default:
+ {
+ LOG_FMT(LERR, "%s(%d): setting to blank line(s) at line %zu not possible\n",
+ __func__, __LINE__, last_nl->orig_line);
+ return(false);
+ }
+ } // switch
+} // do_it_newlines_func_pre_blank_lines
+
+
+static void newlines_func_pre_blank_lines(Chunk *start, E_Token start_type)
+{
+ LOG_FUNC_ENTRY();
+
+ log_rule_B("nl_before_func_class_def");
+ log_rule_B("nl_before_func_class_proto");
+ log_rule_B("nl_before_func_body_def");
+ log_rule_B("nl_before_func_body_proto");
+
+ if ( start == nullptr
+ || ( ( start_type != CT_FUNC_CLASS_DEF
+ || options::nl_before_func_class_def() == 0)
+ && ( start_type != CT_FUNC_CLASS_PROTO
+ || options::nl_before_func_class_proto() == 0)
+ && ( start_type != CT_FUNC_DEF
+ || options::nl_before_func_body_def() == 0)
+ && ( start_type != CT_FUNC_PROTO
+ || options::nl_before_func_body_proto() == 0)))
+ {
+ return;
+ }
+ LOG_FMT(LNLFUNCT, "%s(%d): set blank line(s): for <NL> at line %zu, column %zu, start_type is %s\n",
+ __func__, __LINE__, start->orig_line, start->orig_col, get_token_name(start_type));
+ LOG_FMT(LNLFUNCT, "%s(%d): BEGIN set blank line(s) for '%s' at line %zu\n",
+ __func__, __LINE__, start->Text(), start->orig_line);
+ /*
+ * look backwards until we find:
+ * - open brace (don't add or remove)
+ * - two newlines in a row (don't add)
+ * - a destructor
+ * - something else (don't remove)
+ */
+ Chunk *pc = nullptr;
+ Chunk *last_nl = nullptr;
+ Chunk *last_comment = nullptr;
+ size_t first_line = start->orig_line;
+
+ for (pc = start->GetPrev(); pc != nullptr && pc->IsNotNullChunk(); pc = pc->GetPrev())
+ {
+ LOG_FMT(LNLFUNCT, "%s(%d): orig_line is %zu, orig_col is %zu, type is %s, Text() is '%s', nl_count is %zu\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, get_token_name(pc->type), pc->Text(), pc->nl_count);
+
+ if (chunk_is_newline(pc))
+ {
+ last_nl = pc;
+ LOG_FMT(LNLFUNCT, "%s(%d): <chunk_is_newline> found at line %zu, column %zu, nl_count is %zu\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->nl_count);
+ LOG_FMT(LNLFUNCT, "%s(%d): last_nl set to %zu\n",
+ __func__, __LINE__, last_nl->orig_line);
+ bool break_now = false;
+
+ if (pc->nl_count > 1)
+ {
+ break_now = do_it_newlines_func_pre_blank_lines(last_nl, start_type);
+ LOG_FMT(LNLFUNCT, "%s(%d): break_now is %s\n",
+ __func__, __LINE__, break_now ? "TRUE" : "FALSE");
+ }
+
+ if (break_now)
+ {
+ break;
+ }
+ else
+ {
+ continue;
+ }
+ }
+ else if (pc->IsComment())
+ {
+ LOG_FMT(LNLFUNCT, "%s(%d): <chunk_is_comment> found at line %zu, column %zu\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col);
+
+ if ( ( pc->orig_line < first_line
+ && ((first_line - pc->orig_line
+ - (chunk_is_token(pc, CT_COMMENT_MULTI) ? pc->nl_count : 0))) < 2)
+ || ( last_comment != nullptr
+ && chunk_is_token(pc, CT_COMMENT_CPP) // combine only cpp comments
+ && chunk_is_token(last_comment, pc->type) // don't mix comment types
+ && last_comment->orig_line > pc->orig_line
+ && (last_comment->orig_line - pc->orig_line) < 2))
+ {
+ last_comment = pc;
+ continue;
+ }
+ bool break_now = do_it_newlines_func_pre_blank_lines(last_nl, start_type);
+ LOG_FMT(LNLFUNCT, "%s(%d): break_now is %s\n",
+ __func__, __LINE__, break_now ? "TRUE" : "FALSE");
+ continue;
+ }
+ else if ( chunk_is_token(pc, CT_DESTRUCTOR)
+ || chunk_is_token(pc, CT_TYPE)
+ || chunk_is_token(pc, CT_TEMPLATE)
+ || chunk_is_token(pc, CT_QUALIFIER)
+ || chunk_is_token(pc, CT_PTR_TYPE)
+ || chunk_is_token(pc, CT_BYREF) // Issue #2163
+ || chunk_is_token(pc, CT_DC_MEMBER)
+ || chunk_is_token(pc, CT_EXTERN)
+ || ( chunk_is_token(pc, CT_STRING)
+ && get_chunk_parent_type(pc) == CT_EXTERN))
+ {
+ LOG_FMT(LNLFUNCT, "%s(%d): first_line set to %zu\n",
+ __func__, __LINE__, pc->orig_line);
+ first_line = pc->orig_line;
+ continue;
+ }
+ else if ( chunk_is_token(pc, CT_ANGLE_CLOSE)
+ && get_chunk_parent_type(pc) == CT_TEMPLATE)
+ {
+ LOG_FMT(LNLFUNCT, "%s(%d):\n", __func__, __LINE__);
+ // skip template stuff to add newlines before it
+ pc = chunk_skip_to_match_rev(pc);
+
+ if (pc != nullptr)
+ {
+ first_line = pc->orig_line;
+ }
+ continue;
+ }
+ else
+ {
+ LOG_FMT(LNLFUNCT, "%s(%d): else ==================================\n",
+ __func__, __LINE__);
+ bool break_now = do_it_newlines_func_pre_blank_lines(last_nl, start_type);
+ LOG_FMT(LNLFUNCT, "%s(%d): break_now is %s\n",
+ __func__, __LINE__, break_now ? "TRUE" : "FALSE");
+ break;
+ }
+ }
+} // newlines_func_pre_blank_lines
+
+
+static Chunk *get_closing_brace(Chunk *start)
+{
+ LOG_FUNC_ENTRY();
+
+ Chunk *pc;
+ size_t level = start->level;
+
+ for (pc = start; (pc = pc->GetNext())->IsNotNullChunk();)
+ {
+ if ( ( chunk_is_token(pc, CT_BRACE_CLOSE)
+ || chunk_is_token(pc, CT_VBRACE_CLOSE))
+ && pc->level == level)
+ {
+ return(pc);
+ }
+
+ // for some reason, we can have newlines between if and opening brace that are lower level than either
+ if ( !chunk_is_newline(pc)
+ && pc->level < level)
+ {
+ return(nullptr);
+ }
+ }
+
+ return(nullptr);
+} // get_closing_brace
+
+
+static void remove_next_newlines(Chunk *start)
+{
+ LOG_FUNC_ENTRY();
+
+ Chunk *next;
+
+ while ((next = start->GetNext())->IsNotNullChunk())
+ {
+ if ( chunk_is_newline(next)
+ && chunk_safe_to_del_nl(next))
+ {
+ chunk_del(next);
+ MARK_CHANGE();
+ }
+ else if (next->IsVBrace())
+ {
+ start = next;
+ }
+ else
+ {
+ break;
+ }
+ }
+} // remove_next_newlines
+
+
+static void newlines_if_for_while_switch_post_blank_lines(Chunk *start, iarf_e nl_opt)
+{
+ LOG_FUNC_ENTRY();
+
+ Chunk *prev;
+
+ LOG_FMT(LNEWLINE, "%s(%d): start->Text() is '%s', type is %s, orig_line is %zu, orig_column is %zu\n",
+ __func__, __LINE__, start->Text(), get_token_name(start->type), start->orig_line, start->orig_col);
+
+ log_rule_B("nl_define_macro");
+
+ if ( nl_opt == IARF_IGNORE
+ || ( start->flags.test(PCF_IN_PREPROC)
+ && !options::nl_define_macro()))
+ {
+ return;
+ }
+ Chunk *pc = get_closing_brace(start);
+
+ // first find ending brace
+ if (pc == nullptr)
+ {
+ return;
+ }
+ LOG_FMT(LNEWLINE, "%s(%d): pc->Text() is '%s', type is %s, orig_line is %zu, orig_column is %zu\n",
+ __func__, __LINE__, pc->Text(), get_token_name(pc->type), pc->orig_line, pc->orig_col);
+
+ /*
+ * if we're dealing with an if, we actually want to add or remove
+ * blank lines after any else
+ */
+ if (chunk_is_token(start, CT_IF))
+ {
+ Chunk *next;
+
+ while (true)
+ {
+ next = pc->GetNextNcNnl();
+
+ if ( next->IsNotNullChunk()
+ && ( chunk_is_token(next, CT_ELSE)
+ || chunk_is_token(next, CT_ELSEIF)))
+ {
+ // point to the closing brace of the else
+ if ((pc = get_closing_brace(next)) == nullptr)
+ {
+ return;
+ }
+ LOG_FMT(LNEWLINE, "%s(%d): pc->Text() is '%s', type %s, orig_line %zu, orig_column %zu\n",
+ __func__, __LINE__, pc->Text(), get_token_name(pc->type), pc->orig_line, pc->orig_col);
+ }
+ else
+ {
+ break;
+ }
+ }
+ }
+
+ /*
+ * if we're dealing with a do/while, we actually want to add or
+ * remove blank lines after while and its condition
+ */
+ if (chunk_is_token(start, CT_DO))
+ {
+ // point to the next semicolon
+ if ((pc = pc->GetNextType(CT_SEMICOLON, start->level))->IsNullChunk())
+ {
+ return;
+ }
+ LOG_FMT(LNEWLINE, "%s(%d): pc->Text() is '%s', type %s, orig_line %zu, orig_column %zu\n",
+ __func__, __LINE__, pc->Text(), get_token_name(pc->type), pc->orig_line, pc->orig_col);
+ }
+ bool isVBrace = (chunk_is_token(pc, CT_VBRACE_CLOSE));
+
+ if (isVBrace)
+ {
+ LOG_FMT(LNEWLINE, "%s(%d): isVBrace is TRUE\n", __func__, __LINE__);
+ }
+ else
+ {
+ LOG_FMT(LNEWLINE, "%s(%d): isVBrace is FALSE\n", __func__, __LINE__);
+ }
+
+ if ((prev = pc->GetPrevNvb())->IsNullChunk())
+ {
+ return;
+ }
+ bool have_pre_vbrace_nl = isVBrace && chunk_is_newline(prev);
+
+ if (have_pre_vbrace_nl)
+ {
+ LOG_FMT(LNEWLINE, "%s(%d): have_pre_vbrace_nl is TRUE\n", __func__, __LINE__);
+ }
+ else
+ {
+ LOG_FMT(LNEWLINE, "%s(%d): have_pre_vbrace_nl is FALSE\n", __func__, __LINE__);
+ }
+
+ if (nl_opt & IARF_REMOVE)
+ {
+ Chunk *next;
+
+ // if chunk before is a vbrace, remove any newlines after it
+ if (have_pre_vbrace_nl)
+ {
+ if (prev->nl_count != 1)
+ {
+ prev->nl_count = 1;
+ MARK_CHANGE();
+ }
+ remove_next_newlines(pc);
+ }
+ else if ( (chunk_is_newline(next = pc->GetNextNvb()))
+ && !next->flags.test(PCF_VAR_DEF))
+ {
+ // otherwise just deal with newlines after brace
+ if (next->nl_count != 1)
+ {
+ next->nl_count = 1;
+ MARK_CHANGE();
+ }
+ remove_next_newlines(next);
+ }
+ }
+
+ // may have a newline before and after vbrace
+ // don't do anything with it if the next non newline chunk is a closing brace
+ if (nl_opt & IARF_ADD)
+ {
+ Chunk *next = pc->GetNextNnl();
+
+ do
+ {
+ if (next->IsNullChunk())
+ {
+ return;
+ }
+
+ if (chunk_is_not_token(next, CT_VBRACE_CLOSE))
+ {
+ break;
+ }
+ next = next->GetNextNnl();
+ } while (true);
+
+ LOG_FMT(LNEWLINE, "%s(%d): next->Text() is '%s', type %s, orig_line %zu, orig_column %zu\n",
+ __func__, __LINE__, next->Text(), get_token_name(next->type), next->orig_line, next->orig_col);
+
+ if (chunk_is_not_token(next, CT_BRACE_CLOSE))
+ {
+ // if vbrace, have to check before and after
+ // if chunk before vbrace, check its count
+ size_t nl_count = have_pre_vbrace_nl ? prev->nl_count : 0;
+ LOG_FMT(LNEWLINE, "%s(%d): nl_count %zu\n", __func__, __LINE__, nl_count);
+
+ if (chunk_is_newline(next = pc->GetNextNvb()))
+ {
+ LOG_FMT(LNEWLINE, "%s(%d): next->Text() is '%s', type %s, orig_line %zu, orig_column %zu\n",
+ __func__, __LINE__, next->Text(), get_token_name(next->type), next->orig_line, next->orig_col);
+ nl_count += next->nl_count;
+ LOG_FMT(LNEWLINE, "%s(%d): nl_count is %zu\n", __func__, __LINE__, nl_count);
+ }
+
+ // if we have no newlines, add one and make it double
+ if (nl_count == 0)
+ {
+ LOG_FMT(LNEWLINE, "%s(%d): nl_count is 0\n", __func__, __LINE__);
+
+ if ( ((next = pc->GetNext())->IsNotNullChunk())
+ && next->IsComment())
+ {
+ LOG_FMT(LNEWLINE, "%s(%d): next->Text() is '%s', type %s, orig_line %zu, orig_column %zu\n",
+ __func__, __LINE__, next->Text(), get_token_name(next->type), next->orig_line, next->orig_col);
+ pc = next;
+ LOG_FMT(LNEWLINE, "%s(%d): pc->Text() is '%s', type %s, orig_line %zu, orig_column %zu\n",
+ __func__, __LINE__, pc->Text(), get_token_name(pc->type), pc->orig_line, pc->orig_col);
+ }
+
+ if ((next = newline_add_after(pc))->IsNullChunk())
+ {
+ return;
+ }
+ LOG_FMT(LNEWLINE, "%s(%d): next->Text() is '%s', type %s, orig_line %zu, orig_column %zu\n",
+ __func__, __LINE__, next->Text(), get_token_name(next->type), next->orig_line, next->orig_col);
+ double_newline(next);
+ }
+ else if (nl_count == 1) // if we don't have enough newlines
+ {
+ LOG_FMT(LNEWLINE, "%s(%d): nl_count is 1\n", __func__, __LINE__);
+
+ // if we have a preceeding vbrace, add one after it
+ if (have_pre_vbrace_nl)
+ {
+ LOG_FMT(LNEWLINE, "%s(%d): have_pre_vbrace_nl is TRUE\n", __func__, __LINE__);
+ next = newline_add_after(pc);
+ LOG_FMT(LNEWLINE, "%s(%d): next->Text() is '%s', type %s, orig_line %zu, orig_column %zu\n",
+ __func__, __LINE__, next->Text(), get_token_name(next->type), next->orig_line, next->orig_col);
+ }
+ else
+ {
+ LOG_FMT(LNEWLINE, "%s(%d): have_pre_vbrace_nl is FALSE\n", __func__, __LINE__);
+ prev = next->GetPrevNnl();
+ LOG_FMT(LNEWLINE, "%s(%d): prev->Text() is '%s', type %s, orig_line %zu, orig_column %zu\n",
+ __func__, __LINE__, prev->Text(), get_token_name(prev->type), prev->orig_line, prev->orig_col);
+ pc = next->GetNextNl();
+ LOG_FMT(LNEWLINE, "%s(%d): pc->Text() is '%s', type %s, orig_line %zu, orig_column %zu\n",
+ __func__, __LINE__, pc->Text(), get_token_name(pc->type), pc->orig_line, pc->orig_col);
+ Chunk *pc2 = pc->GetNext();
+
+ if (pc2->IsNotNullChunk())
+ {
+ pc = pc2;
+ LOG_FMT(LNEWLINE, "%s(%d): pc->Text() is '%s', type %s, orig_line %zu, orig_column %zu\n",
+ __func__, __LINE__, pc->Text(), get_token_name(pc->type), pc->orig_line, pc->orig_col);
+ }
+ else
+ {
+ LOG_FMT(LNEWLINE, "%s(%d): no next found: <EOF>\n", __func__, __LINE__);
+ }
+ log_rule_B("nl_squeeze_ifdef");
+
+ if ( chunk_is_token(pc, CT_PREPROC)
+ && get_chunk_parent_type(pc) == CT_PP_ENDIF
+ && options::nl_squeeze_ifdef())
+ {
+ LOG_FMT(LNEWLINE, "%s(%d): cannot add newline after orig_line %zu due to nl_squeeze_ifdef\n",
+ __func__, __LINE__, prev->orig_line);
+ }
+ else
+ {
+ // make newline after double
+ LOG_FMT(LNEWLINE, "%s(%d): call double_newline\n", __func__, __LINE__);
+ double_newline(next);
+ }
+ }
+ }
+ }
+ }
+} // newlines_if_for_while_switch_post_blank_lines
+
+
+static void newlines_struct_union(Chunk *start, iarf_e nl_opt, bool leave_trailing)
+{
+ LOG_FUNC_ENTRY();
+
+ log_rule_B("nl_define_macro");
+
+ if ( nl_opt == IARF_IGNORE
+ || ( start->flags.test(PCF_IN_PREPROC)
+ && !options::nl_define_macro()))
+ {
+ return;
+ }
+ /*
+ * step past any junk between the keyword and the open brace
+ * Quit if we hit a semicolon or '=', which are not expected.
+ */
+ size_t level = start->level;
+ Chunk *pc = start->GetNextNcNnl();
+
+ while ( pc->IsNotNullChunk()
+ && pc->level >= level)
+ {
+ if ( pc->level == level
+ && ( chunk_is_token(pc, CT_BRACE_OPEN)
+ || chunk_is_semicolon(pc)
+ || chunk_is_token(pc, CT_ASSIGN)))
+ {
+ break;
+ }
+ start = pc;
+ pc = pc->GetNextNcNnl();
+ }
+
+ // If we hit a brace open, then we need to toy with the newlines
+ if (chunk_is_token(pc, CT_BRACE_OPEN))
+ {
+ // Skip over embedded C comments
+ Chunk *next = pc->GetNext();
+
+ while (chunk_is_token(next, CT_COMMENT))
+ {
+ next = next->GetNext();
+ }
+
+ if ( leave_trailing
+ && !next->IsComment()
+ && !chunk_is_newline(next))
+ {
+ nl_opt = IARF_IGNORE;
+ }
+ newline_iarf_pair(start, pc, nl_opt);
+ }
+} // newlines_struct_union
+
+
+// enum {
+// enum class angle_state_e : unsigned int {
+// enum-key attr(optional) identifier(optional) enum-base(optional) { enumerator-list(optional) }
+// enum-key attr(optional) nested-name-specifier(optional) identifier enum-base(optional) ; TODO
+// enum-key - one of enum, enum class or enum struct TODO
+// identifier - the name of the enumeration that's being declared
+// enum-base(C++11) - colon (:), followed by a type-specifier-seq
+// enumerator-list - comma-separated list of enumerator definitions
+static void newlines_enum(Chunk *start)
+{
+ LOG_FUNC_ENTRY();
+
+ log_rule_B("nl_define_macro");
+
+ if ( start->flags.test(PCF_IN_PREPROC)
+ && !options::nl_define_macro())
+ {
+ return;
+ }
+ // look for 'enum class'
+ Chunk *pcClass = start->GetNextNcNnl();
+
+ if (chunk_is_token(pcClass, CT_ENUM_CLASS))
+ {
+ log_rule_B("nl_enum_class");
+ newline_iarf_pair(start, pcClass, options::nl_enum_class());
+ // look for 'identifier'/ 'type'
+ Chunk *pcType = pcClass->GetNextNcNnl();
+
+ if (chunk_is_token(pcType, CT_TYPE))
+ {
+ log_rule_B("nl_enum_class_identifier");
+ newline_iarf_pair(pcClass, pcType, options::nl_enum_class_identifier());
+ // look for ':'
+ Chunk *pcColon = pcType->GetNextNcNnl();
+
+ if (chunk_is_token(pcColon, CT_BIT_COLON))
+ {
+ log_rule_B("nl_enum_identifier_colon");
+ newline_iarf_pair(pcType, pcColon, options::nl_enum_identifier_colon());
+ // look for 'type' i.e. unsigned
+ Chunk *pcType1 = pcColon->GetNextNcNnl();
+
+ if (chunk_is_token(pcType1, CT_TYPE))
+ {
+ log_rule_B("nl_enum_colon_type");
+ newline_iarf_pair(pcColon, pcType1, options::nl_enum_colon_type());
+ // look for 'type' i.e. int
+ Chunk *pcType2 = pcType1->GetNextNcNnl();
+
+ if (chunk_is_token(pcType2, CT_TYPE))
+ {
+ log_rule_B("nl_enum_colon_type");
+ newline_iarf_pair(pcType1, pcType2, options::nl_enum_colon_type());
+ }
+ }
+ }
+ }
+ }
+ /*
+ * step past any junk between the keyword and the open brace
+ * Quit if we hit a semicolon or '=', which are not expected.
+ */
+ size_t level = start->level;
+ Chunk *pc = start->GetNextNcNnl();
+
+ while ( pc->IsNotNullChunk()
+ && pc->level >= level)
+ {
+ if ( pc->level == level
+ && ( chunk_is_token(pc, CT_BRACE_OPEN)
+ || chunk_is_semicolon(pc)
+ || chunk_is_token(pc, CT_ASSIGN)))
+ {
+ break;
+ }
+ start = pc;
+ pc = pc->GetNextNcNnl();
+ }
+
+ // If we hit a brace open, then we need to toy with the newlines
+ if (chunk_is_token(pc, CT_BRACE_OPEN))
+ {
+ // Skip over embedded C comments
+ Chunk *next = pc->GetNext();
+
+ while (chunk_is_token(next, CT_COMMENT))
+ {
+ next = next->GetNext();
+ }
+ iarf_e nl_opt;
+
+ if ( !next->IsComment()
+ && !chunk_is_newline(next))
+ {
+ nl_opt = IARF_IGNORE;
+ }
+ else
+ {
+ log_rule_B("nl_enum_brace");
+ nl_opt = options::nl_enum_brace();
+ }
+ newline_iarf_pair(start, pc, nl_opt);
+ }
+} // newlines_enum
+
+
+// namespace {
+// namespace word {
+// namespace type::word {
+static void newlines_namespace(Chunk *start)
+{
+ LOG_FUNC_ENTRY();
+
+ log_rule_B("nl_namespace_brace");
+
+ // Add or remove newline between 'namespace' and 'BRACE_OPEN'
+ log_rule_B("nl_define_macro");
+ iarf_e nl_opt = options::nl_namespace_brace();
+
+ if ( nl_opt == IARF_IGNORE
+ || ( start->flags.test(PCF_IN_PREPROC)
+ && !options::nl_define_macro()))
+ {
+ return;
+ }
+ Chunk *braceOpen = start->GetNextType(CT_BRACE_OPEN, start->level);
+
+ LOG_FMT(LNEWLINE, "%s(%d): braceOpen->orig_line is %zu, orig_col is %zu, Text() is '%s'\n",
+ __func__, __LINE__, braceOpen->orig_line, braceOpen->orig_col, braceOpen->Text());
+ // produces much more log output. Use it only debugging purpose
+ //log_pcf_flags(LNEWLINE, braceOpen->flags);
+
+ if (braceOpen->flags.test(PCF_ONE_LINER))
+ {
+ LOG_FMT(LNEWLINE, "%s(%d): is one_liner\n",
+ __func__, __LINE__);
+ return;
+ }
+ Chunk *beforeBrace = braceOpen->GetPrev();
+
+ LOG_FMT(LNEWLINE, "%s(%d): beforeBrace->orig_line is %zu, orig_col is %zu, Text() is '%s'\n",
+ __func__, __LINE__, beforeBrace->orig_line, beforeBrace->orig_col, beforeBrace->Text());
+ // 'namespace' 'BRACE_OPEN'
+ newline_iarf_pair(beforeBrace, braceOpen, nl_opt);
+} // newlines_namespace
+
+
+static void newlines_cuddle_uncuddle(Chunk *start, iarf_e nl_opt)
+{
+ LOG_FUNC_ENTRY();
+
+ log_rule_B("nl_define_macro");
+
+ if ( start->flags.test(PCF_IN_PREPROC)
+ && !options::nl_define_macro())
+ {
+ return;
+ }
+ Chunk *br_close = start->GetPrevNcNnlNi(); // Issue #2279
+
+ if (chunk_is_token(br_close, CT_BRACE_CLOSE))
+ {
+ newline_iarf_pair(br_close, start, nl_opt);
+ }
+} // newlines_cuddle_uncuddle
+
+
+static void newlines_do_else(Chunk *start, iarf_e nl_opt)
+{
+ LOG_FUNC_ENTRY();
+
+ log_rule_B("nl_define_macro");
+
+ if ( nl_opt == IARF_IGNORE
+ || ( start->flags.test(PCF_IN_PREPROC)
+ && !options::nl_define_macro()))
+ {
+ return;
+ }
+ Chunk *next = start->GetNextNcNnl();
+
+ if ( next->IsNotNullChunk()
+ && ( chunk_is_token(next, CT_BRACE_OPEN)
+ || chunk_is_token(next, CT_VBRACE_OPEN)))
+ {
+ if (!one_liner_nl_ok(next))
+ {
+ LOG_FMT(LNL1LINE, "%s(%d): a new line may NOT be added\n", __func__, __LINE__);
+ return;
+ }
+ LOG_FMT(LNL1LINE, "%s(%d): a new line may be added\n", __func__, __LINE__);
+
+ if (chunk_is_token(next, CT_VBRACE_OPEN))
+ {
+ // Can only add - we don't want to create a one-line here
+ if (nl_opt & IARF_ADD)
+ {
+ newline_iarf_pair(start, next->GetNextNcNnl(), nl_opt);
+ Chunk *tmp = next->GetNextType(CT_VBRACE_CLOSE, next->level);
+
+ if ( !chunk_is_newline(tmp->GetNextNc())
+ && !chunk_is_newline(tmp->GetPrevNc()))
+ {
+ newline_add_after(tmp);
+ }
+ }
+ }
+ else
+ {
+ newline_iarf_pair(start, next, nl_opt);
+ newline_add_between(next, next->GetNextNcNnl());
+ }
+ }
+} // newlines_do_else
+
+
+static bool is_var_def(Chunk *pc, Chunk *next)
+{
+ if ( chunk_is_token(pc, CT_DECLTYPE)
+ && chunk_is_token(next, CT_PAREN_OPEN))
+ {
+ // If current token starts a decltype expression, skip it
+ next = chunk_skip_to_match(next);
+ next = next->GetNextNcNnl();
+ }
+ else if (!chunk_is_type(pc))
+ {
+ // Otherwise, if the current token is not a type --> not a declaration
+ return(false);
+ }
+ else if (chunk_is_token(next, CT_DC_MEMBER))
+ {
+ // If next token is CT_DC_MEMBER, skip it
+ next = chunk_skip_dc_member(next);
+ }
+ else if (chunk_is_token(next, CT_ANGLE_OPEN))
+ {
+ // If we have a template type, skip it
+ next = chunk_skip_to_match(next);
+ next = next->GetNextNcNnl();
+ }
+ bool is = ( ( chunk_is_type(next)
+ && get_chunk_parent_type(next) != CT_FUNC_DEF) // Issue #2639
+ || chunk_is_token(next, CT_WORD)
+ || chunk_is_token(next, CT_FUNC_CTOR_VAR));
+
+ return(is);
+} // is_var_def
+
+
+// Put newline(s) before and/or after a block of variable definitions
+static Chunk *newline_def_blk(Chunk *start, bool fn_top)
+{
+ LOG_FUNC_ENTRY();
+
+ Chunk *prev = start->GetPrevNcNnlNi(); // Issue #2279
+
+ // can't be any variable definitions in a "= {" block
+ if (chunk_is_token(prev, CT_ASSIGN))
+ {
+ Chunk *tmp = start->GetNextType(CT_BRACE_CLOSE, start->level);
+ return(tmp->GetNextNcNnl());
+ }
+ Chunk *pc = start->GetNext();
+
+ bool did_this_line = false;
+ bool first_var_blk = true;
+ bool var_blk = false;
+
+ while ( pc->IsNotNullChunk()
+ && ( pc->level >= start->level
+ || pc->level == 0))
+ {
+ LOG_FMT(LNL1LINE, "%s(%d): pc->orig_line is %zu, pc->orig_col is %zu, Text() is '%s'\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text());
+
+ Chunk *next_pc = pc->GetNext();
+
+ if (chunk_is_token(next_pc, CT_DC_MEMBER))
+ {
+ // If next_pc token is CT_DC_MEMBER, skip it
+ pc = chunk_skip_dc_member(pc);
+ }
+
+ if (pc->IsComment())
+ {
+ pc = pc->GetNext();
+ continue;
+ }
+
+ // process nested braces
+ if (chunk_is_token(pc, CT_BRACE_OPEN))
+ {
+ pc = newline_def_blk(pc, false);
+ continue;
+ }
+
+ // Done with this brace set?
+ if (chunk_is_token(pc, CT_BRACE_CLOSE))
+ {
+ pc = pc->GetNext();
+ break;
+ }
+
+ if (pc->IsPreproc())
+ {
+ if (!var_blk)
+ {
+ pc = pc->GetNext();
+ break;
+ }
+ }
+
+ // skip vbraces
+ if (chunk_is_token(pc, CT_VBRACE_OPEN))
+ {
+ pc = pc->GetNextType(CT_VBRACE_CLOSE, pc->level);
+ pc = pc->GetNext();
+ continue;
+ }
+
+ // Ignore stuff inside parenthesis/squares/angles
+ if (pc->level > pc->brace_level)
+ {
+ pc = pc->GetNext();
+ continue;
+ }
+
+ if (chunk_is_newline(pc))
+ {
+ did_this_line = false;
+ pc = pc->GetNext();
+ continue;
+ }
+
+ // Determine if this is a variable definition or code
+ if ( !did_this_line
+ && chunk_is_not_token(pc, CT_FUNC_CLASS_DEF)
+ && chunk_is_not_token(pc, CT_FUNC_CLASS_PROTO)
+ && ( (pc->level == (start->level + 1))
+ || pc->level == 0))
+ {
+ Chunk *next = pc->GetNextNcNnl();
+
+ if ( chunk_is_token(next, CT_PTR_TYPE) // Issue #2692
+ || chunk_is_token(next, CT_BYREF)) // Issue #3018
+ {
+ next = next->GetNextNcNnl();
+ }
+
+ if (next->IsNullChunk())
+ {
+ break;
+ }
+ LOG_FMT(LNL1LINE, "%s(%d): next->orig_line is %zu, next->orig_col is %zu, Text() is '%s'\n",
+ __func__, __LINE__, next->orig_line, next->orig_col, next->Text());
+
+ prev = pc->GetPrevNcNnl();
+
+ while ( chunk_is_token(prev, CT_DC_MEMBER)
+ || chunk_is_token(prev, CT_TYPE))
+ {
+ prev = prev->GetPrevNcNnl();
+ }
+
+ if (!(chunk_is_opening_brace(prev) || chunk_is_closing_brace(prev)))
+ {
+ prev = pc->GetPrevType(CT_SEMICOLON, pc->level);
+ }
+
+ if (prev->IsNullChunk())
+ {
+ prev = pc->GetPrevType(CT_BRACE_OPEN, pc->level - 1); // Issue #2692
+ }
+
+ if ( chunk_is_token(prev, CT_STRING)
+ && get_chunk_parent_type(prev) == CT_EXTERN
+ && chunk_is_token(prev->prev, CT_EXTERN))
+ {
+ prev = prev->GetPrev()->GetPrevNcNnlNi(); // Issue #2279
+ }
+
+ if (is_var_def(pc, next))
+ {
+ LOG_FMT(LBLANKD, "%s(%d): 'typ==var' found: '%s %s' at line %zu\n",
+ __func__, __LINE__, pc->Text(), next->Text(), pc->orig_line);
+ // Put newline(s) before a block of variable definitions
+ log_rule_B("nl_var_def_blk_start");
+
+ if ( !var_blk
+ && first_var_blk
+ && options::nl_var_def_blk_start() > 0)
+ {
+ LOG_FMT(LBLANKD, "%s(%d): pc is '%s', orig_line is %zu\n",
+ __func__, __LINE__, pc->Text(), pc->orig_line);
+
+ if (prev == nullptr)
+ {
+ LOG_FMT(LBLANKD, "%s(%d): prev is nullptr\n", __func__, __LINE__);
+ }
+ else
+ {
+ LOG_FMT(LBLANKD, "%s(%d): prev is '%s', orig_line is %zu\n",
+ __func__, __LINE__, prev->Text(), prev->orig_line);
+
+ if (!chunk_is_opening_brace(prev))
+ {
+ newline_min_after(prev, options::nl_var_def_blk_start() + 1, PCF_VAR_DEF);
+ }
+ }
+ }
+
+ // set newlines within var def block
+ if ( var_blk
+ && (options::nl_var_def_blk_in() > 0))
+ {
+ log_rule_B("nl_var_def_blk_in");
+ prev = pc->GetPrev();
+ LOG_FMT(LNL1LINE, "%s(%d): prev->orig_line is %zu, prev->orig_col is %zu, Text() is '%s'\n",
+ __func__, __LINE__, prev->orig_line, prev->orig_col, prev->Text());
+
+ if (chunk_is_newline(prev))
+ {
+ log_rule_B("nl_var_def_blk_in");
+
+ if (prev->nl_count > options::nl_var_def_blk_in())
+ {
+ prev->nl_count = options::nl_var_def_blk_in();
+ MARK_CHANGE();
+ }
+ }
+ }
+ pc = pc->GetNextType(CT_SEMICOLON, pc->level);
+ var_blk = true;
+ }
+ else if (var_blk)
+ {
+ log_rule_B("nl_var_def_blk_end");
+
+ if (options::nl_var_def_blk_end() > 0)
+ {
+ // Issue #3516
+ newline_min_after(prev, options::nl_var_def_blk_end() + 1, PCF_VAR_DEF);
+ }
+ // set blank lines after first var def block
+ log_rule_B("nl_func_var_def_blk");
+ LOG_FMT(LBLANKD, "%s(%d): first_var_blk %s\n",
+ __func__, __LINE__, first_var_blk ? "TRUE" : "FALSE");
+ LOG_FMT(LBLANKD, "%s(%d): fn_top %s\n",
+ __func__, __LINE__, fn_top ? "TRUE" : "FALSE");
+
+ if ( first_var_blk
+ && fn_top
+ && (options::nl_func_var_def_blk() > 0))
+ {
+ LOG_FMT(LBLANKD, "%s(%d): nl_func_var_def_blk at line %zu\n",
+ __func__, __LINE__, prev->orig_line);
+ log_rule_B("nl_func_var_def_blk");
+ newline_min_after(prev, options::nl_func_var_def_blk() + 1, PCF_VAR_DEF);
+ }
+ // reset the variables for the next block
+ first_var_blk = true;
+ var_blk = false;
+ }
+ }
+ else
+ {
+ if (chunk_is_token(pc, CT_FUNC_CLASS_DEF))
+ {
+ log_rule_B("nl_var_def_blk_end");
+
+ if ( var_blk
+ && options::nl_var_def_blk_end() > 0)
+ {
+ prev = pc->GetPrev();
+ prev = prev->GetPrev();
+ newline_min_after(prev, options::nl_var_def_blk_end() + 1, PCF_VAR_DEF);
+ pc = pc->GetNext();
+ first_var_blk = false;
+ var_blk = false;
+ }
+ }
+ }
+ did_this_line = true;
+
+ if (pc == nullptr)
+ {
+ pc = Chunk::NullChunkPtr;
+ }
+ pc = pc->GetNext();
+ }
+ return(pc);
+} // newline_def_blk
+
+
+static bool collapse_empty_body(Chunk *br_open)
+{
+ log_rule_B("nl_collapse_empty_body");
+
+ if ( !options::nl_collapse_empty_body()
+ || !chunk_is_token(br_open->GetNextNnl(), CT_BRACE_CLOSE))
+ {
+ return(false);
+ }
+
+ for (Chunk *pc = br_open->GetNext()
+ ; chunk_is_not_token(pc, CT_BRACE_CLOSE)
+ ; pc = pc->GetNext())
+ {
+ if ( chunk_is_token(pc, CT_NEWLINE)
+ && chunk_safe_to_del_nl(pc))
+ {
+ pc = pc->prev;
+ Chunk *next = pc->next;
+ chunk_del(next);
+ MARK_CHANGE();
+ }
+ }
+
+ return(true);
+} // collapse_empty_body
+
+
+static void newlines_brace_pair(Chunk *br_open)
+{
+ LOG_FUNC_ENTRY();
+
+ log_rule_B("nl_define_macro");
+
+ if ( br_open->flags.test(PCF_IN_PREPROC)
+ && !options::nl_define_macro())
+ {
+ return;
+ }
+
+ //fixes 1235 Add single line namespace support
+ if ( chunk_is_token(br_open, CT_BRACE_OPEN)
+ && (get_chunk_parent_type(br_open) == CT_NAMESPACE)
+ && chunk_is_newline(br_open->GetPrev()))
+ {
+ Chunk *chunk_brace_close = chunk_skip_to_match(br_open, E_Scope::ALL);
+
+ if (chunk_brace_close != nullptr)
+ {
+ if (are_chunks_in_same_line(br_open, chunk_brace_close))
+ {
+ log_rule_B("nl_namespace_two_to_one_liner - 1");
+
+ if (options::nl_namespace_two_to_one_liner())
+ {
+ Chunk *prev = br_open->GetPrevNnl();
+ newline_del_between(prev, br_open);
+ }
+ /* Below code is to support conversion of 2 liner to 4 liners
+ * else
+ * {
+ * Chunk *nxt = br_open->GetNext();
+ * newline_add_between(br_open, nxt);
+ * }*/
+ }
+ }
+ }
+ // fix 1247 oneliner function support - converts 4,3,2 liners to oneliner
+ log_rule_B("nl_create_func_def_one_liner");
+
+ if ( get_chunk_parent_type(br_open) == CT_FUNC_DEF
+ && options::nl_create_func_def_one_liner()
+ && !br_open->flags.test(PCF_NOT_POSSIBLE)) // Issue #2795
+ {
+ Chunk *br_close = chunk_skip_to_match(br_open, E_Scope::ALL);
+ Chunk *tmp = br_open->GetPrevNcNnlNi(); // Issue #2279
+
+ if ( br_close != nullptr // Issue #2594
+ && ((br_close->orig_line - br_open->orig_line) <= 2)
+ && chunk_is_paren_close(tmp)) // need to check the conditions.
+ {
+ // Issue #1825
+ bool is_it_possible = true;
+
+ while ( tmp->IsNotNullChunk()
+ && (tmp = tmp->GetNext())->IsNotNullChunk()
+ && !chunk_is_closing_brace(tmp)
+ && (tmp->GetNext()->IsNotNullChunk()))
+ {
+ LOG_FMT(LNL1LINE, "%s(%d): tmp->orig_line is %zu, tmp->orig_col is %zu, Text() is '%s'\n",
+ __func__, __LINE__, tmp->orig_line, tmp->orig_col, tmp->Text());
+
+ if (tmp->IsComment())
+ {
+ is_it_possible = false;
+ break;
+ }
+ }
+
+ if (is_it_possible)
+ {
+ // Issue 2795
+ // we have to check if it could be too long for code_width
+ // make a vector to save the chunk
+ vector<Chunk> saved_chunk;
+ log_rule_B("code_width");
+
+ if (options::code_width() > 0)
+ {
+ saved_chunk.reserve(16);
+ Chunk *current = br_open->GetPrevNcNnlNi();
+ Chunk *next_br_close = br_close->GetNext();
+ current = current->GetNext();
+
+ while (current->IsNotNullChunk())
+ {
+ LOG_FMT(LNL1LINE, "%s(%d): zu kopieren: current->orig_line is %zu, orig_col is %zu, Text() is '%s'\n",
+ __func__, __LINE__, current->orig_line, current->orig_col, current->Text());
+ saved_chunk.push_back(*current);
+ Chunk *the_next = current->GetNext();
+
+ if ( the_next->IsNullChunk()
+ || the_next == next_br_close)
+ {
+ break;
+ }
+ current = the_next;
+ }
+ }
+ Chunk *tmp_1 = br_open->GetPrevNcNnlNi();
+
+ while ( tmp_1->IsNotNullChunk()
+ && (tmp_1 = tmp_1->GetNext())->IsNotNullChunk()
+ && !chunk_is_closing_brace(tmp_1)
+ && (tmp_1->GetNext()->IsNotNullChunk()))
+ {
+ LOG_FMT(LNL1LINE, "%s(%d): tmp_1->orig_line is %zu, orig_col is %zu, Text() is '%s'\n",
+ __func__, __LINE__, tmp_1->orig_line, tmp_1->orig_col, tmp_1->Text());
+
+ if (chunk_is_newline(tmp_1))
+ {
+ tmp_1 = tmp_1->GetPrev(); // Issue #1825
+ newline_iarf_pair(tmp_1, tmp_1->GetNextNcNnl(), IARF_REMOVE);
+ }
+ }
+ chunk_flags_set(br_open, PCF_ONE_LINER); // set the one liner flag if needed
+ chunk_flags_set(br_close, PCF_ONE_LINER);
+ log_rule_B("code_width");
+
+ if ( options::code_width() > 0
+ && br_close->column > options::code_width())
+ {
+ // the created line is too long
+ // it is not possible to make an one_liner
+ // because the line would be too long
+ chunk_flags_set(br_open, PCF_NOT_POSSIBLE);
+ // restore the code
+ size_t count;
+ Chunk tmp_2;
+ Chunk *current = br_open;
+
+ for (count = 0; count < saved_chunk.size(); count++)
+ {
+ tmp_2 = saved_chunk.at(count);
+
+ if (tmp_2.orig_line != current->orig_line)
+ {
+ // restore the newline
+ Chunk chunk;
+ set_chunk_type(&chunk, CT_NEWLINE);
+ chunk.orig_line = current->orig_line;
+ chunk.orig_col = current->orig_col;
+ chunk.pp_level = current->pp_level;
+ chunk.nl_count = 1;
+ chunk_add_before(&chunk, current);
+ LOG_FMT(LNEWLINE, "%s(%d): %zu:%zu add newline before '%s'\n",
+ __func__, __LINE__, current->orig_line, current->orig_col, current->Text());
+ }
+ else
+ {
+ current = current->GetNext();
+ }
+ }
+ }
+ }
+ }
+ }
+
+ // Make sure we don't break a one-liner
+ if (!one_liner_nl_ok(br_open))
+ {
+ LOG_FMT(LNL1LINE, "%s(%d): br_open->orig_line is %zu, br_open->orig_col is %zu, a new line may NOT be added\n",
+ __func__, __LINE__, br_open->orig_line, br_open->orig_col);
+ return;
+ }
+ LOG_FMT(LNL1LINE, "%s(%d): a new line may be added\n", __func__, __LINE__);
+
+ Chunk *next = br_open->GetNextNc();
+
+ // Insert a newline between the '=' and open brace, if needed
+ LOG_FMT(LNL1LINE, "%s(%d): br_open->Text() '%s', br_open->type [%s], br_open->parent_type [%s]\n",
+ __func__, __LINE__, br_open->Text(), get_token_name(br_open->type),
+ get_token_name(get_chunk_parent_type(br_open)));
+
+ if (get_chunk_parent_type(br_open) == CT_ASSIGN)
+ {
+ // Only mess with it if the open brace is followed by a newline
+ if (chunk_is_newline(next))
+ {
+ Chunk *prev = br_open->GetPrevNcNnlNi(); // Issue #2279
+ log_rule_B("nl_assign_brace");
+ newline_iarf_pair(prev, br_open, options::nl_assign_brace());
+ }
+ }
+
+ if ( get_chunk_parent_type(br_open) == CT_OC_MSG_DECL
+ || get_chunk_parent_type(br_open) == CT_FUNC_DEF
+ || get_chunk_parent_type(br_open) == CT_FUNC_CLASS_DEF
+ || get_chunk_parent_type(br_open) == CT_OC_CLASS
+ || get_chunk_parent_type(br_open) == CT_CS_PROPERTY
+ || get_chunk_parent_type(br_open) == CT_CPP_LAMBDA
+ || get_chunk_parent_type(br_open) == CT_FUNC_CALL
+ || get_chunk_parent_type(br_open) == CT_FUNC_CALL_USER)
+ {
+ Chunk *prev = Chunk::NullChunkPtr;
+ iarf_e val;
+
+ if (get_chunk_parent_type(br_open) == CT_OC_MSG_DECL)
+ {
+ log_rule_B("nl_oc_mdef_brace");
+ val = options::nl_oc_mdef_brace();
+ }
+ else
+ {
+ if ( get_chunk_parent_type(br_open) == CT_FUNC_DEF
+ || get_chunk_parent_type(br_open) == CT_FUNC_CLASS_DEF
+ || get_chunk_parent_type(br_open) == CT_OC_CLASS)
+ {
+ val = IARF_NOT_DEFINED;
+ log_rule_B("nl_fdef_brace_cond");
+ const iarf_e nl_fdef_brace_cond_v = options::nl_fdef_brace_cond();
+
+ if (nl_fdef_brace_cond_v != IARF_IGNORE)
+ {
+ prev = br_open->GetPrevNcNnlNi(); // Issue #2279
+
+ if (chunk_is_token(prev, CT_FPAREN_CLOSE))
+ {
+ val = nl_fdef_brace_cond_v;
+ }
+ }
+
+ if (val == IARF_NOT_DEFINED)
+ {
+ log_rule_B("nl_fdef_brace");
+ val = options::nl_fdef_brace();
+ }
+ }
+ else
+ {
+ log_rule_B("nl_property_brace");
+ log_rule_B("nl_cpp_ldef_brace");
+ log_rule_B("nl_fcall_brace");
+ val = ((get_chunk_parent_type(br_open) == CT_CS_PROPERTY) ?
+ options::nl_property_brace() :
+ ((get_chunk_parent_type(br_open) == CT_CPP_LAMBDA) ?
+ options::nl_cpp_ldef_brace() :
+ options::nl_fcall_brace()));
+ }
+ }
+
+ if (val != IARF_IGNORE)
+ {
+ if (prev->IsNullChunk())
+ {
+ // Grab the chunk before the open brace
+ prev = br_open->GetPrevNcNnlNi(); // Issue #2279
+ }
+ newline_iarf_pair(prev, br_open, val);
+ }
+ }
+
+ if (collapse_empty_body(br_open))
+ {
+ return;
+ }
+ //fixes #1245 will add new line between tsquare and brace open based on nl_tsquare_brace
+
+ if (chunk_is_token(br_open, CT_BRACE_OPEN))
+ {
+ Chunk *chunk_closeing_brace = chunk_skip_to_match(br_open, E_Scope::ALL);
+
+ if (chunk_closeing_brace != nullptr)
+ {
+ if (chunk_closeing_brace->orig_line > br_open->orig_line)
+ {
+ Chunk *prev = br_open->GetPrevNc();
+
+ if ( chunk_is_token(prev, CT_TSQUARE)
+ && chunk_is_newline(next))
+ {
+ log_rule_B("nl_tsquare_brace");
+ newline_iarf_pair(prev, br_open, options::nl_tsquare_brace());
+ }
+ }
+ }
+ }
+ // Eat any extra newlines after the brace open
+ log_rule_B("eat_blanks_after_open_brace");
+
+ if (options::eat_blanks_after_open_brace())
+ {
+ if (chunk_is_newline(next))
+ {
+ log_rule_B("nl_inside_empty_func");
+ log_rule_B("nl_inside_namespace");
+
+ if ( options::nl_inside_empty_func() > 0
+ && chunk_is_token(br_open->GetNextNnl(), CT_BRACE_CLOSE)
+ && ( get_chunk_parent_type(br_open) == CT_FUNC_CLASS_DEF
+ || get_chunk_parent_type(br_open) == CT_FUNC_DEF))
+ {
+ blank_line_set(next, options::nl_inside_empty_func);
+ }
+ else if ( options::nl_inside_namespace() > 0
+ && get_chunk_parent_type(br_open) == CT_NAMESPACE)
+ {
+ blank_line_set(next, options::nl_inside_namespace);
+ }
+ else if (next->nl_count > 1)
+ {
+ next->nl_count = 1;
+ LOG_FMT(LBLANKD, "%s(%d): eat_blanks_after_open_brace %zu\n",
+ __func__, __LINE__, next->orig_line);
+ MARK_CHANGE();
+ }
+ }
+ }
+ bool nl_close_brace = false;
+
+ // Handle the cases where the brace is part of a function call or definition
+ if ( get_chunk_parent_type(br_open) == CT_FUNC_DEF
+ || get_chunk_parent_type(br_open) == CT_FUNC_CALL
+ || get_chunk_parent_type(br_open) == CT_FUNC_CALL_USER
+ || get_chunk_parent_type(br_open) == CT_FUNC_CLASS_DEF
+ || get_chunk_parent_type(br_open) == CT_OC_CLASS
+ || get_chunk_parent_type(br_open) == CT_OC_MSG_DECL
+ || get_chunk_parent_type(br_open) == CT_CS_PROPERTY
+ || get_chunk_parent_type(br_open) == CT_CPP_LAMBDA)
+ {
+ // Need to force a newline before the close brace, if not in a class body
+ if (!br_open->flags.test(PCF_IN_CLASS))
+ {
+ nl_close_brace = true;
+ }
+ // handle newlines after the open brace
+ Chunk *pc = br_open->GetNextNcNnl();
+ newline_add_between(br_open, pc);
+
+ Chunk *ne = pc->GetNextNcNnl();
+ bool this_is_var_def = is_var_def(pc, ne); // Issue #3518
+ newline_def_blk(br_open, this_is_var_def);
+ }
+
+ // Handle the cases where the brace is part of a class or struct
+ if ( get_chunk_parent_type(br_open) == CT_CLASS
+ || get_chunk_parent_type(br_open) == CT_STRUCT)
+ {
+ newline_def_blk(br_open, false);
+ }
+ // Grab the matching brace close
+ Chunk *br_close = br_open->GetNextType(CT_BRACE_CLOSE, br_open->level);
+
+ if (br_close->IsNullChunk())
+ {
+ return;
+ }
+
+ if (!nl_close_brace)
+ {
+ /*
+ * If the open brace hits a CT_NEWLINE, CT_NL_CONT, CT_COMMENT_MULTI, or
+ * CT_COMMENT_CPP without hitting anything other than CT_COMMENT, then
+ * there should be a newline before the close brace.
+ */
+ Chunk *pc = br_open->GetNext();
+
+ while (chunk_is_token(pc, CT_COMMENT))
+ {
+ pc = pc->GetNext();
+ }
+
+ if ( chunk_is_newline(pc)
+ || pc->IsComment())
+ {
+ nl_close_brace = true;
+ }
+ }
+ Chunk *prev = br_close->GetPrevNcNnlNet();
+
+ if (nl_close_brace)
+ {
+ newline_add_between(prev, br_close);
+ }
+ else
+ {
+ newline_del_between(prev, br_close);
+ }
+} // newlines_brace_pair
+
+
+static void newline_case(Chunk *start)
+{
+ LOG_FUNC_ENTRY();
+
+ // printf("%s case (%s) on line %d col %d\n",
+ // __func__, c_chunk_names[start->type],
+ // start->orig_line, start->orig_col);
+
+ // Scan backwards until a '{' or ';' or ':'. Abort if a multi-newline is found
+ Chunk *prev = start;
+
+ do
+ {
+ prev = prev->GetPrevNc();
+
+ if ( prev->IsNotNullChunk()
+ && chunk_is_newline(prev)
+ && prev->nl_count > 1)
+ {
+ return;
+ }
+ } while ( chunk_is_not_token(prev, CT_BRACE_OPEN)
+ && chunk_is_not_token(prev, CT_BRACE_CLOSE)
+ && chunk_is_not_token(prev, CT_SEMICOLON)
+ && chunk_is_not_token(prev, CT_CASE_COLON));
+
+ if (prev->IsNullChunk())
+ {
+ return;
+ }
+ Chunk *pc = newline_add_between(prev, start);
+
+ if (pc == nullptr)
+ {
+ return;
+ }
+
+ // Only add an extra line after a semicolon or brace close
+ if ( chunk_is_token(prev, CT_SEMICOLON)
+ || chunk_is_token(prev, CT_BRACE_CLOSE))
+ {
+ if ( chunk_is_newline(pc)
+ && pc->nl_count < 2)
+ {
+ double_newline(pc);
+ }
+ }
+} // newline_case
+
+
+static void newline_case_colon(Chunk *start)
+{
+ LOG_FUNC_ENTRY();
+
+ // Scan forwards until a non-comment is found
+ Chunk *pc = start;
+
+ do
+ {
+ pc = pc->GetNext();
+ } while (pc->IsComment());
+
+ if ( pc->IsNotNullChunk()
+ && !chunk_is_newline(pc))
+ {
+ newline_add_before(pc);
+ }
+} // newline_case_colon
+
+
+static void newline_before_return(Chunk *start)
+{
+ LOG_FUNC_ENTRY();
+
+ Chunk *pc = Chunk::NullChunkPtr;
+
+ if (start != nullptr)
+ {
+ pc = start->GetPrev();
+ }
+ Chunk *nl = pc;
+
+ // Skip over single preceding newline
+ if (chunk_is_newline(pc))
+ {
+ // Do we already have a blank line?
+ if (nl->nl_count > 1)
+ {
+ return;
+ }
+ pc = nl->GetPrev();
+ }
+
+ // Skip over preceding comments that are not a trailing comment, taking
+ // into account that comment blocks may span multiple lines.
+ // Trailing comments are considered part of the previous token, not the
+ // return statement. They are handled below.
+ while ( pc->IsComment()
+ && get_chunk_parent_type(pc) != CT_COMMENT_END)
+ {
+ pc = pc->GetPrev();
+
+ if (!chunk_is_newline(pc))
+ {
+ return;
+ }
+ nl = pc;
+ pc = pc->GetPrev();
+ }
+ pc = nl->GetPrev();
+
+ // Peek over trailing comment of previous token
+ if ( pc->IsComment()
+ && get_chunk_parent_type(pc) == CT_COMMENT_END)
+ {
+ pc = pc->GetPrev();
+ }
+
+ // Don't add extra blanks after an opening brace or a case statement
+ if ( pc == nullptr
+ || ( chunk_is_token(pc, CT_BRACE_OPEN)
+ || chunk_is_token(pc, CT_VBRACE_OPEN)
+ || chunk_is_token(pc, CT_CASE_COLON)))
+ {
+ return;
+ }
+
+ if ( chunk_is_newline(nl)
+ && nl->nl_count < 2)
+ {
+ nl->nl_count++;
+ MARK_CHANGE();
+ LOG_FMT(LBLANK, "%s(%d): orig_line is %zu, orig_col is %zu, text is '%s', ++ nl_count is now %zu\n",
+ __func__, __LINE__, nl->orig_line, nl->orig_col, nl->Text(), nl->nl_count);
+ }
+} // newline_before_return
+
+
+static void newline_after_return(Chunk *start)
+{
+ LOG_FUNC_ENTRY();
+
+ Chunk *semi = start->GetNextType(CT_SEMICOLON, start->level);
+ Chunk *after = semi->GetNextNcNnlNet();
+
+ // If we hit a brace or an 'else', then a newline isn't needed
+ if ( after->IsNullChunk()
+ || chunk_is_token(after, CT_BRACE_CLOSE)
+ || chunk_is_token(after, CT_VBRACE_CLOSE)
+ || chunk_is_token(after, CT_ELSE))
+ {
+ return;
+ }
+ Chunk *pc;
+
+ for (pc = semi->GetNext(); pc != after; pc = pc->GetNext())
+ {
+ if (chunk_is_token(pc, CT_NEWLINE))
+ {
+ if (pc->nl_count < 2)
+ {
+ double_newline(pc);
+ }
+ return;
+ }
+ }
+} // newline_after_return
+
+
+static void newline_iarf_pair(Chunk *before, Chunk *after, iarf_e av, bool check_nl_assign_leave_one_liners)
+{
+ LOG_FUNC_ENTRY();
+
+ LOG_FMT(LNEWLINE, "%s(%d): ", __func__, __LINE__);
+ log_func_stack(LNEWLINE, "CallStack:");
+
+ if ( before == nullptr
+ || before == Chunk::NullChunkPtr
+ || after == nullptr
+ || after == Chunk::NullChunkPtr
+ || chunk_is_token(after, CT_IGNORED))
+ {
+ return;
+ }
+
+ if (av & IARF_ADD)
+ {
+ if ( check_nl_assign_leave_one_liners
+ && options::nl_assign_leave_one_liners()
+ && after->flags.test(PCF_ONE_LINER))
+ {
+ log_rule_B("nl_assign_leave_one_liners");
+ return;
+ }
+ Chunk *nl = newline_add_between(before, after);
+ LOG_FMT(LNEWLINE, "%s(%d): newline_add_between '%s' and '%s'\n",
+ __func__, __LINE__, before->Text(), after->Text());
+
+ if ( nl != nullptr
+ && av == IARF_FORCE
+ && nl->nl_count > 1)
+ {
+ nl->nl_count = 1;
+ }
+ }
+ else if (av & IARF_REMOVE)
+ {
+ LOG_FMT(LNEWLINE, "%s(%d): newline_remove_between '%s' and '%s'\n",
+ __func__, __LINE__, before->Text(), after->Text());
+ newline_del_between(before, after);
+ }
+} // newline_iarf_pair
+
+
+void newline_iarf(Chunk *pc, iarf_e av)
+{
+ LOG_FUNC_ENTRY();
+
+ LOG_FMT(LNFD, "%s(%d): ", __func__, __LINE__);
+ log_func_stack(LNFD, "CallStack:");
+ Chunk *after = Chunk::NullChunkPtr;
+
+ if (pc != nullptr)
+ {
+ after = pc->GetNextNnl();
+ }
+
+ if ( chunk_is_token(pc, CT_FPAREN_OPEN) // Issue #2914
+ && get_chunk_parent_type(pc) == CT_FUNC_CALL
+ && chunk_is_token(after, CT_COMMENT_CPP)
+ && options::donot_add_nl_before_cpp_comment())
+ {
+ return;
+ }
+ newline_iarf_pair(pc, after, av);
+} // newline_iarf
+
+
+static void newline_func_multi_line(Chunk *start)
+{
+ LOG_FUNC_ENTRY();
+
+ LOG_FMT(LNFD, "%s(%d): called on %zu:%zu '%s' [%s/%s]\n",
+ __func__, __LINE__, start->orig_line, start->orig_col,
+ start->Text(), get_token_name(start->type), get_token_name(get_chunk_parent_type(start)));
+
+ bool add_start;
+ bool add_args;
+ bool add_end;
+
+ if ( get_chunk_parent_type(start) == CT_FUNC_DEF
+ || get_chunk_parent_type(start) == CT_FUNC_CLASS_DEF)
+ {
+ log_rule_B("nl_func_def_start_multi_line");
+ add_start = options::nl_func_def_start_multi_line();
+ log_rule_B("nl_func_def_args_multi_line");
+ add_args = options::nl_func_def_args_multi_line();
+ log_rule_B("nl_func_def_end_multi_line");
+ add_end = options::nl_func_def_end_multi_line();
+ }
+ else if ( get_chunk_parent_type(start) == CT_FUNC_CALL
+ || get_chunk_parent_type(start) == CT_FUNC_CALL_USER)
+ {
+ log_rule_B("nl_func_call_start_multi_line");
+ add_start = options::nl_func_call_start_multi_line();
+ log_rule_B("nl_func_call_args_multi_line");
+ add_args = options::nl_func_call_args_multi_line();
+ log_rule_B("nl_func_call_end_multi_line");
+ add_end = options::nl_func_call_end_multi_line();
+ }
+ else
+ {
+ log_rule_B("nl_func_decl_start_multi_line");
+ add_start = options::nl_func_decl_start_multi_line();
+ log_rule_B("nl_func_decl_args_multi_line");
+ add_args = options::nl_func_decl_args_multi_line();
+ log_rule_B("nl_func_decl_end_multi_line");
+ add_end = options::nl_func_decl_end_multi_line();
+ }
+
+ if ( !add_start
+ && !add_args
+ && !add_end)
+ {
+ return;
+ }
+ Chunk *pc = start->GetNextNcNnl();
+
+ while ( pc->IsNotNullChunk()
+ && pc->level > start->level)
+ {
+ pc = pc->GetNextNcNnl();
+ }
+
+ if ( chunk_is_token(pc, CT_FPAREN_CLOSE)
+ && chunk_is_newline_between(start, pc))
+ {
+ Chunk *start_next = start->GetNextNcNnl();
+ bool has_leading_closure = ( start_next->parent_type == CT_OC_BLOCK_EXPR
+ || start_next->parent_type == CT_CPP_LAMBDA
+ || chunk_is_token(start_next, CT_BRACE_OPEN));
+
+ Chunk *prev_end = pc->GetPrevNcNnl();
+ bool has_trailing_closure = ( prev_end->parent_type == CT_OC_BLOCK_EXPR
+ || prev_end->parent_type == CT_CPP_LAMBDA
+ || chunk_is_token(prev_end, CT_BRACE_OPEN));
+
+ if ( add_start
+ && !chunk_is_newline(start->GetNext()))
+ {
+ log_rule_B("nl_func_call_args_multi_line_ignore_closures");
+
+ if (options::nl_func_call_args_multi_line_ignore_closures())
+ {
+ if ( !has_leading_closure
+ && !has_trailing_closure)
+ {
+ newline_iarf(start, IARF_ADD);
+ }
+ }
+ else
+ {
+ newline_iarf(start, IARF_ADD);
+ }
+ }
+
+ if ( add_end
+ && !chunk_is_newline(pc->GetPrev()))
+ {
+ log_rule_B("nl_func_call_args_multi_line_ignore_closures");
+
+ if (options::nl_func_call_args_multi_line_ignore_closures())
+ {
+ if ( !has_leading_closure
+ && !has_trailing_closure)
+ {
+ newline_iarf(pc->GetPrev(), IARF_ADD);
+ }
+ }
+ else
+ {
+ newline_iarf(pc->GetPrev(), IARF_ADD);
+ }
+ }
+
+ if (add_args)
+ {
+ // process the function in reverse and leave the first comma if the option to leave trailing closure
+ // is on. nl_func_call_args_multi_line_ignore_trailing_closure
+ for (pc = start->GetNextNcNnl();
+ pc->IsNotNullChunk() && pc->level > start->level;
+ pc = pc->GetNextNcNnl())
+ {
+ if ( chunk_is_token(pc, CT_COMMA)
+ && (pc->level == (start->level + 1)))
+ {
+ Chunk *tmp = pc->GetNext();
+
+ if (tmp->IsComment())
+ {
+ pc = tmp;
+ }
+
+ if (!chunk_is_newline(pc->GetNext()))
+ {
+ log_rule_B("nl_func_call_args_multi_line_ignore_closures");
+
+ if (options::nl_func_call_args_multi_line_ignore_closures())
+ {
+ Chunk *prev_comma = pc->GetPrevNcNnl();
+ Chunk *after_comma = pc->GetNextNcNnl();
+
+ if (!( ( prev_comma->parent_type == CT_OC_BLOCK_EXPR
+ || prev_comma->parent_type == CT_CPP_LAMBDA
+ || chunk_is_token(prev_comma, CT_BRACE_OPEN))
+ || ( after_comma->parent_type == CT_OC_BLOCK_EXPR
+ || after_comma->parent_type == CT_CPP_LAMBDA
+ || chunk_is_token(after_comma, CT_BRACE_OPEN))))
+ {
+ newline_iarf(pc, IARF_ADD);
+ }
+ }
+ else
+ {
+ newline_iarf(pc, IARF_ADD);
+ }
+ }
+ }
+ }
+ }
+ }
+} // newline_func_multi_line
+
+
+static void newline_template(Chunk *start)
+{
+ LOG_FUNC_ENTRY();
+
+ LOG_FMT(LNFD, "%s(%d): called on %zu:%zu '%s' [%s/%s]\n",
+ __func__, __LINE__, start->orig_line, start->orig_col,
+ start->Text(), get_token_name(start->type), get_token_name(get_chunk_parent_type(start)));
+
+ log_rule_B("nl_template_start");
+ bool add_start = options::nl_template_start();
+
+ log_rule_B("nl_template_args");
+ bool add_args = options::nl_template_args();
+
+ log_rule_B("nl_template_end");
+ bool add_end = options::nl_template_end();
+
+ if ( !add_start
+ && !add_args
+ && !add_end)
+ {
+ return;
+ }
+ Chunk *pc = start->GetNextNcNnl();
+
+ while ( pc->IsNotNullChunk()
+ && pc->level > start->level)
+ {
+ pc = pc->GetNextNcNnl();
+ }
+
+ if (chunk_is_token(pc, CT_ANGLE_CLOSE))
+ {
+ if (add_start)
+ {
+ newline_iarf(start, IARF_ADD);
+ }
+
+ if (add_end)
+ {
+ newline_iarf(pc->GetPrev(), IARF_ADD);
+ }
+
+ if (add_args)
+ {
+ Chunk *pc_1;
+
+ for (pc_1 = start->GetNextNcNnl();
+ pc_1->IsNotNullChunk() && pc_1->level > start->level;
+ pc_1 = pc_1->GetNextNcNnl())
+ {
+ if ( chunk_is_token(pc_1, CT_COMMA)
+ && (pc_1->level == (start->level + 1)))
+ {
+ Chunk *tmp = pc_1->GetNext();
+
+ if (tmp->IsComment())
+ {
+ pc_1 = tmp;
+ }
+
+ if (!chunk_is_newline(pc_1->GetNext()))
+ {
+ newline_iarf(pc_1, IARF_ADD);
+ }
+ }
+ }
+ }
+ }
+} // newline_template
+
+
+static void newline_func_def_or_call(Chunk *start)
+{
+ LOG_FUNC_ENTRY();
+
+ LOG_FMT(LNFD, "%s(%d): called on start->Text() is '%s', orig_line is %zu, orig_col is %zu, [%s/%s]\n",
+ __func__, __LINE__, start->Text(), start->orig_line, start->orig_col,
+ get_token_name(start->type), get_token_name(get_chunk_parent_type(start)));
+
+ bool is_def = (get_chunk_parent_type(start) == CT_FUNC_DEF)
+ || get_chunk_parent_type(start) == CT_FUNC_CLASS_DEF;
+ bool is_call = (get_chunk_parent_type(start) == CT_FUNC_CALL)
+ || get_chunk_parent_type(start) == CT_FUNC_CALL_USER;
+
+ LOG_FMT(LNFD, "%s(%d): is_def is %s, is_call is %s\n",
+ __func__, __LINE__, is_def ? "TRUE" : "FALSE", is_call ? "TRUE" : "FALSE");
+
+ if (is_call)
+ {
+ log_rule_B("nl_func_call_paren");
+ iarf_e atmp = options::nl_func_call_paren();
+
+ if (atmp != IARF_IGNORE)
+ {
+ Chunk *prev = start->GetPrevNcNnlNi(); // Issue #2279
+
+ if (prev->IsNotNullChunk())
+ {
+ newline_iarf(prev, atmp);
+ }
+ }
+ Chunk *pc = start->GetNextNcNnl();
+
+ if (chunk_is_str(pc, ")"))
+ {
+ log_rule_B("nl_func_call_paren_empty");
+ atmp = options::nl_func_call_paren_empty();
+
+ if (atmp != IARF_IGNORE)
+ {
+ Chunk *prev = start->GetPrevNcNnlNi(); // Issue #2279
+
+ if (prev->IsNotNullChunk())
+ {
+ newline_iarf(prev, atmp);
+ }
+ }
+ log_rule_B("nl_func_call_empty");
+ atmp = options::nl_func_call_empty();
+
+ if (atmp != IARF_IGNORE)
+ {
+ newline_iarf(start, atmp);
+ }
+ return;
+ }
+ }
+ else
+ {
+ log_rule_B("nl_func_def_paren");
+ log_rule_B("nl_func_paren");
+ iarf_e atmp = is_def ? options::nl_func_def_paren()
+ : options::nl_func_paren();
+ LOG_FMT(LSPACE, "%s(%d): atmp is %s\n",
+ __func__, __LINE__,
+ (atmp == IARF_IGNORE) ? "IGNORE" :
+ (atmp == IARF_ADD) ? "ADD" :
+ (atmp == IARF_REMOVE) ? "REMOVE" : "FORCE");
+
+ if (atmp != IARF_IGNORE)
+ {
+ Chunk *prev = start->GetPrevNcNnlNi(); // Issue #2279
+
+ if (prev->IsNotNullChunk())
+ {
+ newline_iarf(prev, atmp);
+ }
+ }
+ // Handle break newlines type and function
+ Chunk *prev = start->GetPrevNcNnlNi(); // Issue #2279
+ prev = skip_template_prev(prev);
+ // Don't split up a function variable
+ prev = chunk_is_paren_close(prev) ? nullptr : prev->GetPrevNcNnlNi(); // Issue #2279
+
+ log_rule_B("nl_func_class_scope");
+
+ if ( chunk_is_token(prev, CT_DC_MEMBER)
+ && (options::nl_func_class_scope() != IARF_IGNORE))
+ {
+ newline_iarf(prev->GetPrevNcNnlNi(), options::nl_func_class_scope()); // Issue #2279
+ }
+
+ if (chunk_is_not_token(prev, CT_ACCESS_COLON))
+ {
+ Chunk *tmp;
+
+ if (chunk_is_token(prev, CT_OPERATOR))
+ {
+ tmp = prev;
+ prev = prev->GetPrevNcNnlNi(); // Issue #2279
+ }
+ else
+ {
+ tmp = start;
+ }
+
+ if (chunk_is_token(prev, CT_DC_MEMBER))
+ {
+ log_rule_B("nl_func_scope_name");
+
+ if ( options::nl_func_scope_name() != IARF_IGNORE
+ && !start->flags.test(PCF_IN_DECLTYPE))
+ {
+ newline_iarf(prev, options::nl_func_scope_name());
+ }
+ }
+ const Chunk *tmp_next = prev->GetNextNcNnl();
+
+ if (chunk_is_not_token(tmp_next, CT_FUNC_CLASS_DEF))
+ {
+ Chunk *closing = chunk_skip_to_match(tmp);
+ Chunk *brace = closing->GetNextNcNnl();
+ iarf_e a; // Issue #2561
+
+ if ( get_chunk_parent_type(tmp) == CT_FUNC_PROTO
+ || get_chunk_parent_type(tmp) == CT_FUNC_CLASS_PROTO)
+ {
+ // proto
+ log_rule_B("nl_func_proto_type_name");
+ a = options::nl_func_proto_type_name();
+ }
+ else
+ {
+ // def
+
+ log_rule_B("nl_func_leave_one_liners");
+
+ if ( options::nl_func_leave_one_liners()
+ && ( brace == nullptr
+ || brace->flags.test(PCF_ONE_LINER))) // Issue #1511 and #3274
+ {
+ a = IARF_IGNORE;
+ }
+ else
+ {
+ log_rule_B("nl_func_type_name");
+ a = options::nl_func_type_name();
+ }
+ }
+ log_rule_B("nl_func_type_name_class");
+
+ if ( tmp->flags.test(PCF_IN_CLASS)
+ && (options::nl_func_type_name_class() != IARF_IGNORE))
+ {
+ a = options::nl_func_type_name_class();
+ }
+
+ if ( a != IARF_IGNORE
+ && prev != nullptr)
+ {
+ LOG_FMT(LNFD, "%s(%d): prev->Text() '%s', orig_line is %zu, orig_col is %zu, [%s/%s]\n",
+ __func__, __LINE__, prev->Text(), prev->orig_line, prev->orig_col,
+ get_token_name(prev->type),
+ get_token_name(get_chunk_parent_type(prev)));
+
+ if (chunk_is_token(prev, CT_DESTRUCTOR))
+ {
+ prev = prev->GetPrevNcNnlNi(); // Issue #2279
+ }
+
+ /*
+ * If we are on a '::', step back two tokens
+ * TODO: do we also need to check for '.' ?
+ */
+ while (chunk_is_token(prev, CT_DC_MEMBER))
+ {
+ prev = prev->GetPrevNcNnlNi(); // Issue #2279
+ prev = skip_template_prev(prev);
+ prev = prev->GetPrevNcNnlNi(); // Issue #2279
+ }
+
+ if ( chunk_is_not_token(prev, CT_BRACE_CLOSE)
+ && chunk_is_not_token(prev, CT_VBRACE_CLOSE)
+ && chunk_is_not_token(prev, CT_BRACE_OPEN)
+ && chunk_is_not_token(prev, CT_SEMICOLON)
+ && chunk_is_not_token(prev, CT_ACCESS_COLON)
+ // #1008: if we landed on an operator check that it is having
+ // a type before it, in order to not apply nl_func_type_name
+ // on conversion operators as they don't have a normal
+ // return type syntax
+ && (chunk_is_not_token(tmp_next, CT_OPERATOR) ? true : chunk_is_type(prev)))
+ {
+ newline_iarf(prev, a);
+ }
+ }
+ }
+ }
+ Chunk *pc = start->GetNextNcNnl();
+
+ if (chunk_is_str(pc, ")"))
+ {
+ log_rule_B("nl_func_def_empty");
+ log_rule_B("nl_func_decl_empty");
+ atmp = is_def ? options::nl_func_def_empty()
+ : options::nl_func_decl_empty();
+
+ if (atmp != IARF_IGNORE)
+ {
+ newline_iarf(start, atmp);
+ }
+ log_rule_B("nl_func_def_paren_empty");
+ log_rule_B("nl_func_paren_empty");
+ atmp = is_def ? options::nl_func_def_paren_empty()
+ : options::nl_func_paren_empty();
+
+ if (atmp != IARF_IGNORE)
+ {
+ prev = start->GetPrevNcNnlNi(); // Issue #2279
+
+ if (prev->IsNotNullChunk())
+ {
+ newline_iarf(prev, atmp);
+ }
+ }
+ return;
+ }
+ }
+ // Now scan for commas
+ size_t comma_count = 0;
+ Chunk *tmp;
+ Chunk *pc;
+
+ for (pc = start->GetNextNcNnl();
+ pc->IsNotNullChunk() && pc->level > start->level;
+ pc = pc->GetNextNcNnl())
+ {
+ if ( chunk_is_token(pc, CT_COMMA)
+ && (pc->level == (start->level + 1)))
+ {
+ comma_count++;
+ tmp = pc->GetNext();
+
+ if (tmp->IsComment())
+ {
+ pc = tmp;
+ }
+
+ if (is_def)
+ {
+ log_rule_B("nl_func_def_args");
+ newline_iarf(pc, options::nl_func_def_args());
+ }
+ else if (is_call)
+ {
+ // Issue #2604
+ log_rule_B("nl_func_call_args");
+ newline_iarf(pc, options::nl_func_call_args());
+ }
+ else // get_chunk_parent_type(start) == CT_FUNC_DECL
+ {
+ log_rule_B("nl_func_decl_args");
+ newline_iarf(pc, options::nl_func_decl_args());
+ }
+ }
+ }
+
+ log_rule_B("nl_func_def_start");
+ log_rule_B("nl_func_decl_start");
+ iarf_e as = is_def ? options::nl_func_def_start() : options::nl_func_decl_start();
+
+ log_rule_B("nl_func_def_end");
+ log_rule_B("nl_func_decl_end");
+ iarf_e ae = is_def ? options::nl_func_def_end() : options::nl_func_decl_end();
+
+ if (comma_count == 0)
+ {
+ iarf_e atmp;
+ log_rule_B("nl_func_def_start_single");
+ log_rule_B("nl_func_decl_start_single");
+ atmp = is_def ? options::nl_func_def_start_single() :
+ options::nl_func_decl_start_single();
+
+ if (atmp != IARF_IGNORE)
+ {
+ as = atmp;
+ }
+ log_rule_B("nl_func_def_end_single");
+ log_rule_B("nl_func_decl_end_single");
+ atmp = is_def ? options::nl_func_def_end_single() :
+ options::nl_func_decl_end_single();
+
+ if (atmp != IARF_IGNORE)
+ {
+ ae = atmp;
+ }
+ }
+
+ if (!is_call)
+ {
+ newline_iarf(start, as);
+ }
+
+ // and fix up the close parenthesis
+ if (chunk_is_token(pc, CT_FPAREN_CLOSE))
+ {
+ Chunk *prev = pc->GetPrevNnl();
+
+ if ( chunk_is_not_token(prev, CT_FPAREN_OPEN)
+ && !is_call)
+ {
+ newline_iarf(prev, ae);
+ }
+ newline_func_multi_line(start);
+ }
+} // newline_func_def_or_call
+
+
+static void newline_oc_msg(Chunk *start)
+{
+ LOG_FUNC_ENTRY();
+
+ Chunk *sq_c = chunk_skip_to_match(start);
+
+ if (sq_c == nullptr)
+ {
+ return;
+ }
+ log_rule_B("nl_oc_msg_leave_one_liner");
+
+ if (options::nl_oc_msg_leave_one_liner())
+ {
+ return;
+ }
+
+ for (Chunk *pc = start->GetNextNcNnl(); pc->IsNotNullChunk(); pc = pc->GetNextNcNnl())
+ {
+ if (pc->level <= start->level)
+ {
+ break;
+ }
+
+ if (chunk_is_token(pc, CT_OC_MSG_NAME))
+ {
+ newline_add_before(pc);
+ }
+ }
+} // newline_oc_msg
+
+
+static bool one_liner_nl_ok(Chunk *pc)
+{
+ LOG_FUNC_ENTRY();
+
+ LOG_FMT(LNL1LINE, "%s(%d): check type is %s, parent is %s, flag is %s, orig_line is %zu, orig_col is %zu\n",
+ __func__, __LINE__, get_token_name(pc->type), get_token_name(get_chunk_parent_type(pc)),
+ pcf_flags_str(pc->flags).c_str(), pc->orig_line, pc->orig_col);
+
+ if (!pc->flags.test(PCF_ONE_LINER))
+ {
+ LOG_FMT(LNL1LINE, "%s(%d): true (not 1-liner), a new line may be added\n", __func__, __LINE__);
+ return(true);
+ }
+ // Step back to find the opening brace
+ Chunk *br_open = pc;
+
+ if (chunk_is_closing_brace(br_open))
+ {
+ br_open = br_open->GetPrevType(chunk_is_token(br_open, CT_BRACE_CLOSE) ? CT_BRACE_OPEN : CT_VBRACE_OPEN,
+ br_open->level, E_Scope::ALL);
+ }
+ else
+ {
+ while ( br_open->IsNotNullChunk()
+ && br_open->flags.test(PCF_ONE_LINER)
+ && !chunk_is_opening_brace(br_open)
+ && !chunk_is_closing_brace(br_open))
+ {
+ br_open = br_open->GetPrev();
+ }
+ }
+ pc = br_open;
+
+ if ( pc->IsNotNullChunk()
+ && pc->flags.test(PCF_ONE_LINER)
+ && ( chunk_is_token(pc, CT_BRACE_OPEN)
+ || chunk_is_token(pc, CT_BRACE_CLOSE)
+ || chunk_is_token(pc, CT_VBRACE_OPEN)
+ || chunk_is_token(pc, CT_VBRACE_CLOSE)))
+ {
+ log_rule_B("nl_class_leave_one_liners");
+
+ if ( options::nl_class_leave_one_liners()
+ && pc->flags.test(PCF_IN_CLASS))
+ {
+ LOG_FMT(LNL1LINE, "%s(%d): false (class)\n", __func__, __LINE__);
+ return(false);
+ }
+ log_rule_B("nl_assign_leave_one_liners");
+
+ if ( options::nl_assign_leave_one_liners()
+ && get_chunk_parent_type(pc) == CT_ASSIGN)
+ {
+ LOG_FMT(LNL1LINE, "%s(%d): false (assign)\n", __func__, __LINE__);
+ return(false);
+ }
+ log_rule_B("nl_enum_leave_one_liners");
+
+ if ( options::nl_enum_leave_one_liners()
+ && get_chunk_parent_type(pc) == CT_ENUM)
+ {
+ LOG_FMT(LNL1LINE, "%s(%d): false (enum)\n", __func__, __LINE__);
+ return(false);
+ }
+ log_rule_B("nl_getset_leave_one_liners");
+
+ if ( options::nl_getset_leave_one_liners()
+ && get_chunk_parent_type(pc) == CT_GETSET)
+ {
+ LOG_FMT(LNL1LINE, "%s(%d): false (get/set), a new line may NOT be added\n", __func__, __LINE__);
+ return(false);
+ }
+ // Issue #UT-98
+ log_rule_B("nl_cs_property_leave_one_liners");
+
+ if ( options::nl_cs_property_leave_one_liners()
+ && get_chunk_parent_type(pc) == CT_CS_PROPERTY)
+ {
+ LOG_FMT(LNL1LINE, "%s(%d): false (c# property), a new line may NOT be added\n", __func__, __LINE__);
+ return(false);
+ }
+ log_rule_B("nl_func_leave_one_liners");
+
+ if ( options::nl_func_leave_one_liners()
+ && ( get_chunk_parent_type(pc) == CT_FUNC_DEF
+ || get_chunk_parent_type(pc) == CT_FUNC_CLASS_DEF))
+ {
+ LOG_FMT(LNL1LINE, "%s(%d): false (func def)\n", __func__, __LINE__);
+ return(false);
+ }
+ log_rule_B("nl_func_leave_one_liners");
+
+ if ( options::nl_func_leave_one_liners()
+ && get_chunk_parent_type(pc) == CT_OC_MSG_DECL)
+ {
+ LOG_FMT(LNL1LINE, "%s(%d): false (method def)\n", __func__, __LINE__);
+ return(false);
+ }
+ log_rule_B("nl_cpp_lambda_leave_one_liners");
+
+ if ( options::nl_cpp_lambda_leave_one_liners()
+ && ((get_chunk_parent_type(pc) == CT_CPP_LAMBDA)))
+ {
+ LOG_FMT(LNL1LINE, "%s(%d): false (lambda)\n", __func__, __LINE__);
+ return(false);
+ }
+ log_rule_B("nl_oc_msg_leave_one_liner");
+
+ if ( options::nl_oc_msg_leave_one_liner()
+ && pc->flags.test(PCF_IN_OC_MSG))
+ {
+ LOG_FMT(LNL1LINE, "%s(%d): false (message)\n", __func__, __LINE__);
+ return(false);
+ }
+ log_rule_B("nl_if_leave_one_liners");
+
+ if ( options::nl_if_leave_one_liners()
+ && ( get_chunk_parent_type(pc) == CT_IF
+ || get_chunk_parent_type(pc) == CT_ELSEIF
+ || get_chunk_parent_type(pc) == CT_ELSE))
+ {
+ LOG_FMT(LNL1LINE, "%s(%d): false (if/else)\n", __func__, __LINE__);
+ return(false);
+ }
+ log_rule_B("nl_while_leave_one_liners");
+
+ if ( options::nl_while_leave_one_liners()
+ && get_chunk_parent_type(pc) == CT_WHILE)
+ {
+ LOG_FMT(LNL1LINE, "%s(%d): false (while)\n", __func__, __LINE__);
+ return(false);
+ }
+ log_rule_B("nl_do_leave_one_liners");
+
+ if ( options::nl_do_leave_one_liners()
+ && get_chunk_parent_type(pc) == CT_DO)
+ {
+ LOG_FMT(LNL1LINE, "%s(%d): false (do)\n", __func__, __LINE__);
+ return(false);
+ }
+ log_rule_B("nl_for_leave_one_liners");
+
+ if ( options::nl_for_leave_one_liners()
+ && get_chunk_parent_type(pc) == CT_FOR)
+ {
+ LOG_FMT(LNL1LINE, "%s(%d): false (for)\n", __func__, __LINE__);
+ return(false);
+ }
+ log_rule_B("nl_namespace_two_to_one_liner - 2");
+
+ if ( options::nl_namespace_two_to_one_liner()
+ && get_chunk_parent_type(pc) == CT_NAMESPACE)
+ {
+ LOG_FMT(LNL1LINE, "%s(%d): false (namespace)\n", __func__, __LINE__);
+ return(false);
+ }
+ }
+ LOG_FMT(LNL1LINE, "%s(%d): true, a new line may be added\n", __func__, __LINE__);
+ return(true);
+} // one_liner_nl_ok
+
+
+void undo_one_liner(Chunk *pc)
+{
+ LOG_FUNC_ENTRY();
+
+ if ( pc != nullptr
+ && pc->flags.test(PCF_ONE_LINER))
+ {
+ LOG_FMT(LNL1LINE, "%s(%d): pc->Text() '%s', orig_line is %zu, orig_col is %zu",
+ __func__, __LINE__, pc->Text(), pc->orig_line, pc->orig_col);
+ chunk_flags_clr(pc, PCF_ONE_LINER);
+
+ // scan backward
+ LOG_FMT(LNL1LINE, "%s(%d): scan backward\n", __func__, __LINE__);
+ Chunk *tmp = pc;
+
+ while ((tmp = tmp->GetPrev())->IsNotNullChunk())
+ {
+ if (!tmp->flags.test(PCF_ONE_LINER))
+ {
+ LOG_FMT(LNL1LINE, "%s(%d): tmp->Text() '%s', orig_line is %zu, orig_col is %zu, --> break\n",
+ __func__, __LINE__, tmp->Text(), tmp->orig_line, tmp->orig_col);
+ break;
+ }
+ LOG_FMT(LNL1LINE, "%s(%d): clear for tmp->Text() '%s', orig_line is %zu, orig_col is %zu",
+ __func__, __LINE__, tmp->Text(), tmp->orig_line, tmp->orig_col);
+ chunk_flags_clr(tmp, PCF_ONE_LINER);
+ }
+ // scan forward
+ LOG_FMT(LNL1LINE, "%s(%d): scan forward\n", __func__, __LINE__);
+ tmp = pc;
+ LOG_FMT(LNL1LINE, "%s(%d): - \n", __func__, __LINE__);
+
+ while ((tmp = tmp->GetNext())->IsNotNullChunk())
+ {
+ if (!tmp->flags.test(PCF_ONE_LINER))
+ {
+ LOG_FMT(LNL1LINE, "%s(%d): tmp->Text() '%s', orig_line is %zu, orig_col is %zu, --> break\n",
+ __func__, __LINE__, tmp->Text(), tmp->orig_line, tmp->orig_col);
+ break;
+ }
+ LOG_FMT(LNL1LINE, "%s(%d): clear for tmp->Text() '%s', orig_line is %zu, orig_col is %zu",
+ __func__, __LINE__, tmp->Text(), tmp->orig_line, tmp->orig_col);
+ chunk_flags_clr(tmp, PCF_ONE_LINER);
+ }
+ LOG_FMT(LNL1LINE, "\n");
+ }
+} // undo_one_liner
+
+
+static void nl_create_one_liner(Chunk *vbrace_open)
+{
+ LOG_FUNC_ENTRY();
+
+ // See if we get a newline between the next text and the vbrace_close
+ Chunk *tmp = vbrace_open->GetNextNcNnl();
+ Chunk *first = tmp;
+
+ if ( first->IsNullChunk()
+ || get_token_pattern_class(first->type) != pattern_class_e::NONE)
+ {
+ return;
+ }
+ size_t nl_total = 0;
+
+ while (chunk_is_not_token(tmp, CT_VBRACE_CLOSE))
+ {
+ if (chunk_is_newline(tmp))
+ {
+ nl_total += tmp->nl_count;
+
+ if (nl_total > 1)
+ {
+ return;
+ }
+ }
+ tmp = tmp->GetNext();
+ }
+
+ if ( tmp->IsNotNullChunk()
+ && first != nullptr)
+ {
+ newline_del_between(vbrace_open, first);
+ }
+} // nl_create_one_liner
+
+
+static void nl_create_list_liner(Chunk *brace_open)
+{
+ LOG_FUNC_ENTRY();
+
+ // See if we get a newline between the next text and the vbrace_close
+ if (brace_open == nullptr)
+ {
+ return;
+ }
+ Chunk *closing = brace_open->GetNextType(CT_BRACE_CLOSE, brace_open->level);
+ Chunk *tmp = brace_open;
+
+ do
+ {
+ if (chunk_is_token(tmp, CT_COMMA))
+ {
+ return;
+ }
+ tmp = tmp->GetNext();
+ } while (tmp != closing);
+
+ newline_del_between(brace_open, closing);
+} // nl_create_list_liner
+
+
+void newlines_remove_newlines(void)
+{
+ LOG_FUNC_ENTRY();
+
+ LOG_FMT(LBLANK, "%s(%d):\n", __func__, __LINE__);
+ Chunk *pc = Chunk::GetHead();
+
+ if (!chunk_is_newline(pc))
+ {
+ pc = pc->GetNextNl();
+ }
+ Chunk *next;
+ Chunk *prev;
+
+ while (pc->IsNotNullChunk())
+ {
+ // Remove all newlines not in preproc
+ if (!pc->flags.test(PCF_IN_PREPROC))
+ {
+ next = pc->GetNext();
+ prev = pc->GetPrev();
+ newline_iarf(pc, IARF_REMOVE);
+
+ if (next == Chunk::GetHead())
+ {
+ pc = next;
+ continue;
+ }
+ else if ( prev->IsNotNullChunk()
+ && !chunk_is_newline(prev->GetNext()))
+ {
+ pc = prev;
+ }
+ }
+ pc = pc->GetNextNl();
+ }
+} // newlines_remove_newlines
+
+
+void newlines_remove_disallowed()
+{
+ LOG_FUNC_ENTRY();
+
+ Chunk *pc = Chunk::GetHead();
+ Chunk *next;
+
+ while ((pc = pc->GetNextNl())->IsNotNullChunk())
+ {
+ LOG_FMT(LBLANKD, "%s(%d): orig_line is %zu, orig_col is %zu, <Newline>, nl is %zu\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->nl_count);
+
+ next = pc->GetNext();
+
+ if ( next->IsNotNullChunk()
+ && !chunk_is_token(next, CT_NEWLINE)
+ && !can_increase_nl(pc))
+ {
+ LOG_FMT(LBLANKD, "%s(%d): force to 1 orig_line is %zu, orig_col is %zu\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col);
+
+ if (pc->nl_count != 1)
+ {
+ pc->nl_count = 1;
+ MARK_CHANGE();
+ }
+ }
+ }
+} // newlines_remove_disallowed
+
+
+void newlines_cleanup_angles()
+{
+ // Issue #1167
+ LOG_FUNC_ENTRY();
+
+ for (Chunk *pc = Chunk::GetHead(); pc->IsNotNullChunk(); pc = pc->GetNextNcNnl())
+ {
+ char copy[1000];
+ LOG_FMT(LBLANK, "%s(%d): orig_line is %zu, orig_col is %zu, Text() is '%s'\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->ElidedText(copy));
+
+ if (chunk_is_token(pc, CT_ANGLE_OPEN))
+ {
+ newline_template(pc);
+ }
+ }
+} // newlines_cleanup_angles
+
+
+void newlines_cleanup_braces(bool first)
+{
+ LOG_FUNC_ENTRY();
+
+ // Get the first token that's not an empty line:
+ Chunk *pc = Chunk::GetHead();
+
+ if (chunk_is_newline(pc))
+ {
+ pc = pc->GetNextNcNnl();
+ }
+
+ for ( ; pc->IsNotNullChunk(); pc = pc->GetNextNcNnl())
+ {
+ char copy[1000];
+ LOG_FMT(LBLANK, "%s(%d): orig_line is %zu, orig_col is %zu, Text() is '%s'\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->ElidedText(copy));
+
+ if ( chunk_is_token(pc, CT_IF)
+ || chunk_is_token(pc, CT_CONSTEXPR))
+ {
+ log_rule_B("nl_if_brace");
+ newlines_if_for_while_switch(pc, options::nl_if_brace());
+ }
+ else if (chunk_is_token(pc, CT_ELSEIF))
+ {
+ log_rule_B("nl_elseif_brace");
+ iarf_e arg = options::nl_elseif_brace();
+ log_rule_B("nl_if_brace");
+ newlines_if_for_while_switch(
+ pc, (arg != IARF_IGNORE) ? arg : options::nl_if_brace());
+ }
+ else if (chunk_is_token(pc, CT_FOR))
+ {
+ log_rule_B("nl_for_brace");
+ newlines_if_for_while_switch(pc, options::nl_for_brace());
+ }
+ else if (chunk_is_token(pc, CT_CATCH))
+ {
+ log_rule_B("nl_oc_brace_catch");
+
+ if ( language_is_set(LANG_OC)
+ && (pc->str[0] == '@')
+ && (options::nl_oc_brace_catch() != IARF_IGNORE))
+ {
+ newlines_cuddle_uncuddle(pc, options::nl_oc_brace_catch());
+ }
+ else
+ {
+ log_rule_B("nl_brace_catch");
+ newlines_cuddle_uncuddle(pc, options::nl_brace_catch());
+ }
+ Chunk *next = pc->GetNextNcNnl();
+
+ if (chunk_is_token(next, CT_BRACE_OPEN))
+ {
+ log_rule_B("nl_oc_catch_brace");
+
+ if ( language_is_set(LANG_OC)
+ && (options::nl_oc_catch_brace() != IARF_IGNORE))
+ {
+ log_rule_B("nl_oc_catch_brace");
+ newlines_do_else(pc, options::nl_oc_catch_brace());
+ }
+ else
+ {
+ log_rule_B("nl_catch_brace");
+ newlines_do_else(pc, options::nl_catch_brace());
+ }
+ }
+ else
+ {
+ log_rule_B("nl_oc_catch_brace");
+
+ if ( language_is_set(LANG_OC)
+ && (options::nl_oc_catch_brace() != IARF_IGNORE))
+ {
+ newlines_if_for_while_switch(pc, options::nl_oc_catch_brace());
+ }
+ else
+ {
+ log_rule_B("nl_catch_brace");
+ newlines_if_for_while_switch(pc, options::nl_catch_brace());
+ }
+ }
+ }
+ else if (chunk_is_token(pc, CT_WHILE))
+ {
+ log_rule_B("nl_while_brace");
+ newlines_if_for_while_switch(pc, options::nl_while_brace());
+ }
+ else if (chunk_is_token(pc, CT_USING_STMT))
+ {
+ log_rule_B("nl_using_brace");
+ newlines_if_for_while_switch(pc, options::nl_using_brace());
+ }
+ else if (chunk_is_token(pc, CT_D_SCOPE_IF))
+ {
+ log_rule_B("nl_scope_brace");
+ newlines_if_for_while_switch(pc, options::nl_scope_brace());
+ }
+ else if (chunk_is_token(pc, CT_UNITTEST))
+ {
+ log_rule_B("nl_unittest_brace");
+ newlines_do_else(pc, options::nl_unittest_brace());
+ }
+ else if (chunk_is_token(pc, CT_D_VERSION_IF))
+ {
+ log_rule_B("nl_version_brace");
+ newlines_if_for_while_switch(pc, options::nl_version_brace());
+ }
+ else if (chunk_is_token(pc, CT_SWITCH))
+ {
+ log_rule_B("nl_switch_brace");
+ newlines_if_for_while_switch(pc, options::nl_switch_brace());
+ }
+ else if (chunk_is_token(pc, CT_SYNCHRONIZED))
+ {
+ log_rule_B("nl_synchronized_brace");
+ newlines_if_for_while_switch(pc, options::nl_synchronized_brace());
+ }
+ else if (chunk_is_token(pc, CT_DO))
+ {
+ log_rule_B("nl_do_brace");
+ newlines_do_else(pc, options::nl_do_brace());
+ }
+ else if (chunk_is_token(pc, CT_ELSE))
+ {
+ log_rule_B("nl_brace_else");
+ newlines_cuddle_uncuddle(pc, options::nl_brace_else());
+ Chunk *next = pc->GetNextNcNnl();
+
+ if (chunk_is_token(next, CT_ELSEIF))
+ {
+ log_rule_B("nl_else_if");
+ newline_iarf_pair(pc, next, options::nl_else_if());
+ }
+ log_rule_B("nl_else_brace");
+ newlines_do_else(pc, options::nl_else_brace());
+ }
+ else if (chunk_is_token(pc, CT_TRY))
+ {
+ log_rule_B("nl_try_brace");
+ newlines_do_else(pc, options::nl_try_brace());
+ // Issue #1734
+ Chunk *po = pc->GetNextNcNnl();
+ flag_parens(po, PCF_IN_TRY_BLOCK, po->type, CT_NONE, false);
+ }
+ else if (chunk_is_token(pc, CT_GETSET))
+ {
+ log_rule_B("nl_getset_brace");
+ newlines_do_else(pc, options::nl_getset_brace());
+ }
+ else if (chunk_is_token(pc, CT_FINALLY))
+ {
+ log_rule_B("nl_brace_finally");
+ newlines_cuddle_uncuddle(pc, options::nl_brace_finally());
+ log_rule_B("nl_finally_brace");
+ newlines_do_else(pc, options::nl_finally_brace());
+ }
+ else if (chunk_is_token(pc, CT_WHILE_OF_DO))
+ {
+ log_rule_B("nl_brace_while");
+ newlines_cuddle_uncuddle(pc, options::nl_brace_while());
+ }
+ else if (chunk_is_token(pc, CT_BRACE_OPEN))
+ {
+ switch (get_chunk_parent_type(pc))
+ {
+ case CT_DOUBLE_BRACE:
+ {
+ log_rule_B("nl_paren_dbrace_open");
+
+ if (options::nl_paren_dbrace_open() != IARF_IGNORE)
+ {
+ Chunk *prev = pc->GetPrevNcNnlNi(E_Scope::PREPROC); // Issue #2279
+
+ if (chunk_is_paren_close(prev))
+ {
+ log_rule_B("nl_paren_dbrace_open");
+ newline_iarf_pair(prev, pc, options::nl_paren_dbrace_open());
+ }
+ }
+ break;
+ }
+
+ case CT_ENUM:
+ {
+ log_rule_B("nl_enum_own_lines");
+
+ if (options::nl_enum_own_lines() != IARF_IGNORE)
+ {
+ newlines_enum_entries(pc, options::nl_enum_own_lines());
+ }
+ log_rule_B("nl_ds_struct_enum_cmt");
+
+ if (options::nl_ds_struct_enum_cmt())
+ {
+ newlines_double_space_struct_enum_union(pc);
+ }
+ break;
+ }
+
+ case CT_STRUCT:
+ case CT_UNION:
+ {
+ log_rule_B("nl_ds_struct_enum_cmt");
+
+ if (options::nl_ds_struct_enum_cmt())
+ {
+ newlines_double_space_struct_enum_union(pc);
+ }
+ break;
+ }
+
+ case CT_CLASS:
+ {
+ if (pc->level == pc->brace_level)
+ {
+ log_rule_B("nl_class_brace");
+ newlines_do_else(pc->GetPrevNnl(), options::nl_class_brace());
+ }
+ break;
+ }
+
+ case CT_OC_CLASS:
+ {
+ if (pc->level == pc->brace_level)
+ {
+ // Request #126
+ // introduce two new options
+ // look back if we have a @interface or a @implementation
+ for (Chunk *tmp = pc->GetPrev(); tmp->IsNotNullChunk(); tmp = tmp->GetPrev())
+ {
+ LOG_FMT(LBLANK, "%s(%d): orig_line is %zu, orig_col is %zu, Text() is '%s'\n",
+ __func__, __LINE__, tmp->orig_line, tmp->orig_col, tmp->Text());
+
+ if ( chunk_is_token(tmp, CT_OC_INTF)
+ || chunk_is_token(tmp, CT_OC_IMPL))
+ {
+ LOG_FMT(LBLANK, "%s(%d): orig_line is %zu, orig_col is %zu, may be remove/force newline before {\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col);
+
+ if (chunk_is_token(tmp, CT_OC_INTF))
+ {
+ log_rule_B("nl_oc_interface_brace");
+ newlines_do_else(pc->GetPrevNnl(), options::nl_oc_interface_brace());
+ }
+ else
+ {
+ log_rule_B("nl_oc_implementation_brace");
+ newlines_do_else(pc->GetPrevNnl(), options::nl_oc_implementation_brace());
+ }
+ break;
+ }
+ }
+ }
+ break;
+ }
+
+ case CT_BRACED_INIT_LIST:
+ {
+ // Issue #1052
+ log_rule_B("nl_create_list_one_liner");
+
+ if (options::nl_create_list_one_liner())
+ {
+ nl_create_list_liner(pc);
+ break;
+ }
+ Chunk *prev = pc->GetPrevNnl();
+
+ if ( prev->IsNotNullChunk()
+ && ( prev->type == CT_TYPE
+ || prev->type == CT_WORD
+ || prev->type == CT_ASSIGN // Issue #2957
+ || prev->parent_type == CT_TEMPLATE
+ || prev->parent_type == CT_DECLTYPE))
+ {
+ log_rule_B("nl_type_brace_init_lst");
+ newline_iarf_pair(prev, pc, options::nl_type_brace_init_lst(), true);
+ }
+ break;
+ }
+
+ case CT_OC_BLOCK_EXPR:
+ {
+ // issue # 477
+ log_rule_B("nl_oc_block_brace");
+ newline_iarf_pair(pc->GetPrev(), pc, options::nl_oc_block_brace());
+ break;
+ }
+
+ case CT_FUNC_CLASS_DEF: // Issue #2343
+ {
+ if (!one_liner_nl_ok(pc))
+ {
+ LOG_FMT(LNL1LINE, "a new line may NOT be added\n");
+ // no change - preserve one liner body
+ }
+ else
+ {
+ log_rule_B("nl_before_opening_brace_func_class_def");
+
+ if (options::nl_before_opening_brace_func_class_def() != IARF_IGNORE)
+ {
+ newline_iarf_pair(pc->GetPrev(), pc, options::nl_before_opening_brace_func_class_def());
+ }
+ }
+ }
+
+ default:
+ {
+ break;
+ }
+ } // switch
+
+ log_rule_B("nl_brace_brace");
+
+ if (options::nl_brace_brace() != IARF_IGNORE)
+ {
+ Chunk *next = pc->GetNextNc(E_Scope::PREPROC);
+
+ if (chunk_is_token(next, CT_BRACE_OPEN))
+ {
+ newline_iarf_pair(pc, next, options::nl_brace_brace());
+ }
+ }
+ Chunk *next = pc->GetNextNnl();
+
+ if (next->IsNullChunk())
+ {
+ // do nothing
+ }
+ else if (chunk_is_token(next, CT_BRACE_CLOSE))
+ {
+ // TODO: add an option to split open empty statements? { };
+ }
+ else if (chunk_is_token(next, CT_BRACE_OPEN))
+ {
+ // already handled
+ }
+ else
+ {
+ next = pc->GetNextNcNnl();
+
+ // Handle unnamed temporary direct-list-initialization
+ if (get_chunk_parent_type(pc) == CT_BRACED_INIT_LIST)
+ {
+ log_rule_B("nl_type_brace_init_lst_open");
+ newline_iarf_pair(pc, pc->GetNextNnl(),
+ options::nl_type_brace_init_lst_open(), true);
+ }
+ // Handle nl_after_brace_open
+ else if ( ( get_chunk_parent_type(pc) == CT_CPP_LAMBDA
+ || pc->level == pc->brace_level)
+ && options::nl_after_brace_open())
+ {
+ log_rule_B("nl_after_brace_open");
+
+ if (!one_liner_nl_ok(pc))
+ {
+ LOG_FMT(LNL1LINE, "a new line may NOT be added (nl_after_brace_open)\n");
+ // no change - preserve one liner body
+ }
+ else if ( pc->flags.test(PCF_IN_ARRAY_ASSIGN)
+ || pc->flags.test(PCF_IN_PREPROC))
+ {
+ // no change - don't break up array assignments or preprocessors
+ }
+ else
+ {
+ // Step back from next to the first non-newline item
+ Chunk *tmp = next->GetPrev();
+
+ while (tmp != pc)
+ {
+ if (tmp->IsComment())
+ {
+ log_rule_B("nl_after_brace_open_cmt");
+
+ if ( !options::nl_after_brace_open_cmt()
+ && chunk_is_not_token(tmp, CT_COMMENT_MULTI))
+ {
+ break;
+ }
+ }
+ tmp = tmp->GetPrev();
+ }
+ // Add the newline
+ newline_iarf(tmp, IARF_ADD);
+ }
+ }
+ }
+ // braced-init-list is more like a function call with arguments,
+ // than curly braces that determine a structure of a source code,
+ // so, don't add a newline before a closing brace. Issue #1405.
+ log_rule_B("nl_type_brace_init_lst_open");
+ log_rule_B("nl_type_brace_init_lst_close");
+
+ if (!( get_chunk_parent_type(pc) == CT_BRACED_INIT_LIST
+ && options::nl_type_brace_init_lst_open() == IARF_IGNORE
+ && options::nl_type_brace_init_lst_close() == IARF_IGNORE))
+ {
+ newlines_brace_pair(pc);
+ }
+
+ // Handle nl_before_brace_open
+ if ( chunk_is_token(pc, CT_BRACE_OPEN)
+ && pc->level == pc->brace_level
+ && options::nl_before_brace_open())
+ {
+ log_rule_B("nl_before_brace_open");
+
+ if (!one_liner_nl_ok(pc))
+ {
+ LOG_FMT(LNL1LINE, "a new line may NOT be added (nl_before_brace_open)\n");
+ // no change - preserve one liner body
+ }
+ else if ( pc->flags.test(PCF_IN_PREPROC)
+ || pc->flags.test(PCF_IN_ARRAY_ASSIGN))
+ {
+ // no change - don't break up array assignments or preprocessors
+ }
+ else
+ {
+ // Step back to previous non-newline item
+ Chunk *tmp = pc->GetPrev();
+
+ if (!chunk_is_token(tmp, CT_NEWLINE))
+ {
+ newline_iarf(tmp, IARF_ADD);
+ }
+ }
+ }
+ }
+ else if (chunk_is_token(pc, CT_BRACE_CLOSE))
+ {
+ // newline between a close brace and x
+ log_rule_B("nl_brace_brace");
+
+ if (options::nl_brace_brace() != IARF_IGNORE)
+ {
+ Chunk *next = pc->GetNextNc(E_Scope::PREPROC);
+
+ if (chunk_is_token(next, CT_BRACE_CLOSE))
+ {
+ log_rule_B("nl_brace_brace");
+ newline_iarf_pair(pc, next, options::nl_brace_brace());
+ }
+ }
+ log_rule_B("nl_brace_square");
+
+ if (options::nl_brace_square() != IARF_IGNORE)
+ {
+ Chunk *next = pc->GetNextNc(E_Scope::PREPROC);
+
+ if (chunk_is_token(next, CT_SQUARE_CLOSE))
+ {
+ log_rule_B("nl_brace_square");
+ newline_iarf_pair(pc, next, options::nl_brace_square());
+ }
+ }
+ log_rule_B("nl_brace_fparen");
+
+ if (options::nl_brace_fparen() != IARF_IGNORE)
+ {
+ Chunk *next = pc->GetNextNc(E_Scope::PREPROC);
+
+ log_rule_B("nl_brace_fparen");
+
+ if ( chunk_is_token(next, CT_NEWLINE)
+ && (options::nl_brace_fparen() == IARF_REMOVE))
+ {
+ next = next->GetNextNc(E_Scope::PREPROC); // Issue #1000
+ }
+
+ if (chunk_is_token(next, CT_FPAREN_CLOSE))
+ {
+ log_rule_B("nl_brace_fparen");
+ newline_iarf_pair(pc, next, options::nl_brace_fparen());
+ }
+ }
+ // newline before a close brace
+ log_rule_B("nl_type_brace_init_lst_close");
+
+ if ( get_chunk_parent_type(pc) == CT_BRACED_INIT_LIST
+ && options::nl_type_brace_init_lst_close() != IARF_IGNORE)
+ {
+ // Handle unnamed temporary direct-list-initialization
+ newline_iarf_pair(pc->GetPrevNnl(), pc,
+ options::nl_type_brace_init_lst_close(), true);
+ }
+ // blanks before a close brace
+ log_rule_B("eat_blanks_before_close_brace");
+
+ if (options::eat_blanks_before_close_brace())
+ {
+ // Limit the newlines before the close brace to 1
+ Chunk *prev = pc->GetPrev();
+
+ if (chunk_is_newline(prev))
+ {
+ log_rule_B("nl_inside_namespace");
+ log_rule_B("nl_inside_empty_func");
+
+ if ( options::nl_inside_empty_func() > 0
+ && chunk_is_token(pc->GetPrevNnl(), CT_BRACE_OPEN)
+ && ( get_chunk_parent_type(pc) == CT_FUNC_CLASS_DEF
+ || get_chunk_parent_type(pc) == CT_FUNC_DEF))
+ {
+ blank_line_set(prev, options::nl_inside_empty_func);
+ }
+ else if ( options::nl_inside_namespace() > 0
+ && get_chunk_parent_type(pc) == CT_NAMESPACE)
+ {
+ blank_line_set(prev, options::nl_inside_namespace);
+ }
+ else if (prev->nl_count != 1)
+ {
+ prev->nl_count = 1;
+ LOG_FMT(LBLANKD, "%s(%d): eat_blanks_before_close_brace %zu\n",
+ __func__, __LINE__, prev->orig_line);
+ MARK_CHANGE();
+ }
+ }
+ }
+ else if ( options::nl_ds_struct_enum_close_brace()
+ && ( get_chunk_parent_type(pc) == CT_ENUM
+ || get_chunk_parent_type(pc) == CT_STRUCT
+ || get_chunk_parent_type(pc) == CT_UNION))
+ {
+ log_rule_B("nl_ds_struct_enum_close_brace");
+
+ if (!pc->flags.test(PCF_ONE_LINER))
+ {
+ // Make sure the brace is preceded by two newlines
+ Chunk *prev = pc->GetPrev();
+
+ if (!chunk_is_newline(prev))
+ {
+ prev = newline_add_before(pc);
+ }
+
+ if (prev->nl_count < 2)
+ {
+ double_newline(prev);
+ }
+ }
+ }
+ // Force a newline after a close brace
+ log_rule_B("nl_brace_struct_var");
+
+ if ( (options::nl_brace_struct_var() != IARF_IGNORE)
+ && ( get_chunk_parent_type(pc) == CT_STRUCT
+ || get_chunk_parent_type(pc) == CT_ENUM
+ || get_chunk_parent_type(pc) == CT_UNION))
+ {
+ Chunk *next = pc->GetNextNcNnl(E_Scope::PREPROC);
+
+ if ( chunk_is_not_token(next, CT_SEMICOLON)
+ && chunk_is_not_token(next, CT_COMMA))
+ {
+ log_rule_B("nl_brace_struct_var");
+ newline_iarf(pc, options::nl_brace_struct_var());
+ }
+ }
+ else if ( get_chunk_parent_type(pc) != CT_OC_AT
+ && get_chunk_parent_type(pc) != CT_BRACED_INIT_LIST
+ && ( options::nl_after_brace_close()
+ || get_chunk_parent_type(pc) == CT_FUNC_CLASS_DEF
+ || get_chunk_parent_type(pc) == CT_FUNC_DEF
+ || get_chunk_parent_type(pc) == CT_OC_MSG_DECL))
+ {
+ log_rule_B("nl_after_brace_close");
+ Chunk *next = pc->GetNext();
+
+ if ( chunk_is_not_token(next, CT_SEMICOLON)
+ && chunk_is_not_token(next, CT_COMMA)
+ && chunk_is_not_token(next, CT_SPAREN_CLOSE) // Issue #664
+ && chunk_is_not_token(next, CT_SQUARE_CLOSE)
+ && chunk_is_not_token(next, CT_FPAREN_CLOSE)
+ && chunk_is_not_token(next, CT_PAREN_CLOSE)
+ && chunk_is_not_token(next, CT_WHILE_OF_DO)
+ && chunk_is_not_token(next, CT_VBRACE_CLOSE) // Issue #666
+ && ( chunk_is_not_token(next, CT_BRACE_CLOSE)
+ || !next->flags.test(PCF_ONE_LINER)) // #1258
+ && !pc->flags.test(PCF_IN_ARRAY_ASSIGN)
+ && !pc->flags.test(PCF_IN_TYPEDEF)
+ && !chunk_is_newline(next)
+ && !next->IsComment())
+ {
+ // #1258
+ // dont add newline between two consecutive braces closes, if the second is a part of one liner.
+ newline_end_newline(pc);
+ }
+ }
+ else if (get_chunk_parent_type(pc) == CT_NAMESPACE)
+ {
+ log_rule_B("nl_after_namespace");
+
+ if (options::nl_after_namespace() > 0)
+ {
+ Chunk *next = pc->GetNextNcNnl(E_Scope::PREPROC);
+
+ if (next->IsNotNullChunk())
+ {
+ newline_add_before(next);
+ // newline_iarf(next, IARF_ADD);
+ }
+ }
+ }
+ }
+ else if (chunk_is_token(pc, CT_VBRACE_OPEN))
+ {
+ log_rule_B("nl_after_vbrace_open");
+ log_rule_B("nl_after_vbrace_open_empty");
+
+ if ( options::nl_after_vbrace_open()
+ || options::nl_after_vbrace_open_empty())
+ {
+ Chunk *next = pc->GetNext(E_Scope::PREPROC);
+ bool add_it;
+
+ if (chunk_is_semicolon(next))
+ {
+ log_rule_B("nl_after_vbrace_open_empty");
+ add_it = options::nl_after_vbrace_open_empty();
+ }
+ else
+ {
+ log_rule_B("nl_after_vbrace_open");
+ add_it = ( options::nl_after_vbrace_open()
+ && chunk_is_not_token(next, CT_VBRACE_CLOSE)
+ && !next->IsComment()
+ && !chunk_is_newline(next));
+ }
+
+ if (add_it)
+ {
+ newline_iarf(pc, IARF_ADD);
+ }
+ }
+ log_rule_B("nl_create_if_one_liner");
+ log_rule_B("nl_create_for_one_liner");
+ log_rule_B("nl_create_while_one_liner");
+
+ if ( ( ( get_chunk_parent_type(pc) == CT_IF
+ || get_chunk_parent_type(pc) == CT_ELSEIF
+ || get_chunk_parent_type(pc) == CT_ELSE)
+ && options::nl_create_if_one_liner())
+ || ( get_chunk_parent_type(pc) == CT_FOR
+ && options::nl_create_for_one_liner())
+ || ( get_chunk_parent_type(pc) == CT_WHILE
+ && options::nl_create_while_one_liner()))
+ {
+ nl_create_one_liner(pc);
+ }
+ log_rule_B("nl_split_if_one_liner");
+ log_rule_B("nl_split_for_one_liner");
+ log_rule_B("nl_split_while_one_liner");
+
+ if ( ( ( get_chunk_parent_type(pc) == CT_IF
+ || get_chunk_parent_type(pc) == CT_ELSEIF
+ || get_chunk_parent_type(pc) == CT_ELSE)
+ && options::nl_split_if_one_liner())
+ || ( get_chunk_parent_type(pc) == CT_FOR
+ && options::nl_split_for_one_liner())
+ || ( get_chunk_parent_type(pc) == CT_WHILE
+ && options::nl_split_while_one_liner()))
+ {
+ if (pc->flags.test(PCF_ONE_LINER))
+ {
+ // split one-liner
+ Chunk *end = pc->GetNext()->GetNextType(CT_SEMICOLON, -1)->GetNext();
+ // Scan for clear flag
+ LOG_FMT(LNEWLINE, "(%d) ", __LINE__);
+ LOG_FMT(LNEWLINE, "\n");
+
+ for (Chunk *temp = pc; temp != end; temp = temp->GetNext())
+ {
+ LOG_FMT(LNEWLINE, "%s(%d): Text() is '%s', type is %s, level is %zu\n",
+ __func__, __LINE__, temp->Text(), get_token_name(temp->type), temp->level);
+ // produces much more log output. Use it only debugging purpose
+ //log_pcf_flags(LNEWLINE, temp->flags);
+ chunk_flags_clr(temp, PCF_ONE_LINER);
+ }
+
+ // split
+ newline_add_between(pc, pc->next);
+ }
+ }
+ }
+ else if (chunk_is_token(pc, CT_VBRACE_CLOSE))
+ {
+ log_rule_B("nl_after_vbrace_close");
+
+ if (options::nl_after_vbrace_close())
+ {
+ if (!chunk_is_newline(pc->GetNextNc()))
+ {
+ newline_iarf(pc, IARF_ADD);
+ }
+ }
+ }
+ else if ( chunk_is_token(pc, CT_SQUARE_OPEN)
+ && get_chunk_parent_type(pc) == CT_OC_MSG)
+ {
+ log_rule_B("nl_oc_msg_args");
+
+ if (options::nl_oc_msg_args())
+ {
+ newline_oc_msg(pc);
+ }
+ }
+ else if (chunk_is_token(pc, CT_STRUCT))
+ {
+ log_rule_B("nl_struct_brace");
+ newlines_struct_union(pc, options::nl_struct_brace(), true);
+ }
+ else if (chunk_is_token(pc, CT_UNION))
+ {
+ log_rule_B("nl_union_brace");
+ newlines_struct_union(pc, options::nl_union_brace(), true);
+ }
+ else if (chunk_is_token(pc, CT_ENUM))
+ {
+ newlines_enum(pc);
+ }
+ else if (chunk_is_token(pc, CT_CASE))
+ {
+ // Note: 'default' also maps to CT_CASE
+ log_rule_B("nl_before_case");
+
+ if (options::nl_before_case())
+ {
+ newline_case(pc);
+ }
+ }
+ else if (chunk_is_token(pc, CT_THROW))
+ {
+ Chunk *prev = pc->GetPrev();
+
+ if ( chunk_is_token(prev, CT_PAREN_CLOSE)
+ || chunk_is_token(prev, CT_FPAREN_CLOSE)) // Issue #1122
+ {
+ log_rule_B("nl_before_throw");
+ newline_iarf(pc->GetPrevNcNnlNi(), options::nl_before_throw()); // Issue #2279
+ }
+ }
+ else if ( chunk_is_token(pc, CT_QUALIFIER)
+ && !strcmp(pc->Text(), "throws"))
+ {
+ Chunk *prev = pc->GetPrev();
+
+ if ( chunk_is_token(prev, CT_PAREN_CLOSE)
+ || chunk_is_token(prev, CT_FPAREN_CLOSE)) // Issue #1122
+ {
+ log_rule_B("nl_before_throw");
+ newline_iarf(pc->GetPrevNcNnlNi(), options::nl_before_throw()); // Issue #2279
+ }
+ }
+ else if (chunk_is_token(pc, CT_CASE_COLON))
+ {
+ Chunk *next = pc->GetNextNnl();
+
+ log_rule_B("nl_case_colon_brace");
+
+ if ( chunk_is_token(next, CT_BRACE_OPEN)
+ && options::nl_case_colon_brace() != IARF_IGNORE)
+ {
+ newline_iarf(pc, options::nl_case_colon_brace());
+ }
+ else if (options::nl_after_case())
+ {
+ log_rule_B("nl_after_case");
+ newline_case_colon(pc);
+ }
+ }
+ else if (chunk_is_token(pc, CT_SPAREN_CLOSE))
+ {
+ Chunk *next = pc->GetNextNcNnl();
+
+ if (chunk_is_token(next, CT_BRACE_OPEN))
+ {
+ /*
+ * TODO: this could be used to control newlines between the
+ * the if/while/for/switch close parenthesis and the open brace, but
+ * that is currently handled elsewhere.
+ */
+ }
+ }
+ else if (chunk_is_token(pc, CT_RETURN))
+ {
+ log_rule_B("nl_before_return");
+
+ if (options::nl_before_return())
+ {
+ newline_before_return(pc);
+ }
+ log_rule_B("nl_after_return");
+
+ if (options::nl_after_return())
+ {
+ newline_after_return(pc);
+ }
+ }
+ else if (chunk_is_token(pc, CT_SEMICOLON))
+ {
+ log_rule_B("nl_after_semicolon");
+
+ if ( !pc->flags.test(PCF_IN_SPAREN)
+ && !pc->flags.test(PCF_IN_PREPROC)
+ && options::nl_after_semicolon())
+ {
+ Chunk *next = pc->GetNext();
+
+ while (chunk_is_token(next, CT_VBRACE_CLOSE))
+ {
+ next = next->GetNext();
+ }
+
+ if ( next->IsNotNullChunk()
+ && !next->IsComment()
+ && !chunk_is_newline(next))
+ {
+ if (one_liner_nl_ok(next))
+ {
+ LOG_FMT(LNL1LINE, "%s(%d): a new line may be added\n", __func__, __LINE__);
+ newline_iarf(pc, IARF_ADD);
+ }
+ else
+ {
+ LOG_FMT(LNL1LINE, "%s(%d): a new line may NOT be added\n", __func__, __LINE__);
+ }
+ }
+ }
+ else if (get_chunk_parent_type(pc) == CT_CLASS)
+ {
+ log_rule_B("nl_after_class");
+
+ if (options::nl_after_class() > 0)
+ {
+ newline_iarf(pc, IARF_ADD);
+ }
+ }
+ }
+ else if (chunk_is_token(pc, CT_FPAREN_OPEN))
+ {
+ log_rule_B("nl_func_decl_start");
+ log_rule_B("nl_func_def_start");
+ log_rule_B("nl_func_decl_start_single");
+ log_rule_B("nl_func_def_start_single");
+ log_rule_B("nl_func_decl_start_multi_line");
+ log_rule_B("nl_func_def_start_multi_line");
+ log_rule_B("nl_func_decl_args");
+ log_rule_B("nl_func_def_args");
+ log_rule_B("nl_func_decl_args_multi_line");
+ log_rule_B("nl_func_def_args_multi_line");
+ log_rule_B("nl_func_decl_end");
+ log_rule_B("nl_func_def_end");
+ log_rule_B("nl_func_decl_end_single");
+ log_rule_B("nl_func_def_end_single");
+ log_rule_B("nl_func_decl_end_multi_line");
+ log_rule_B("nl_func_def_end_multi_line");
+ log_rule_B("nl_func_decl_empty");
+ log_rule_B("nl_func_def_empty");
+ log_rule_B("nl_func_type_name");
+ log_rule_B("nl_func_type_name_class");
+ log_rule_B("nl_func_class_scope");
+ log_rule_B("nl_func_scope_name");
+ log_rule_B("nl_func_proto_type_name");
+ log_rule_B("nl_func_paren");
+ log_rule_B("nl_func_def_paren");
+ log_rule_B("nl_func_def_paren_empty");
+ log_rule_B("nl_func_paren_empty");
+ log_rule_B("nl_func_call_args");
+
+ if ( ( ( get_chunk_parent_type(pc) == CT_FUNC_DEF
+ || get_chunk_parent_type(pc) == CT_FUNC_PROTO
+ || get_chunk_parent_type(pc) == CT_FUNC_CLASS_DEF
+ || get_chunk_parent_type(pc) == CT_FUNC_CLASS_PROTO
+ || get_chunk_parent_type(pc) == CT_OPERATOR)
+ && ( options::nl_func_decl_start() != IARF_IGNORE
+ || options::nl_func_def_start() != IARF_IGNORE
+ || options::nl_func_decl_start_single() != IARF_IGNORE
+ || options::nl_func_def_start_single() != IARF_IGNORE
+ || options::nl_func_decl_start_multi_line()
+ || options::nl_func_def_start_multi_line()
+ || options::nl_func_decl_args() != IARF_IGNORE
+ || options::nl_func_def_args() != IARF_IGNORE
+ || options::nl_func_decl_args_multi_line()
+ || options::nl_func_def_args_multi_line()
+ || options::nl_func_decl_end() != IARF_IGNORE
+ || options::nl_func_def_end() != IARF_IGNORE
+ || options::nl_func_decl_end_single() != IARF_IGNORE
+ || options::nl_func_def_end_single() != IARF_IGNORE
+ || options::nl_func_decl_end_multi_line()
+ || options::nl_func_def_end_multi_line()
+ || options::nl_func_decl_empty() != IARF_IGNORE
+ || options::nl_func_def_empty() != IARF_IGNORE
+ || options::nl_func_type_name() != IARF_IGNORE
+ || options::nl_func_type_name_class() != IARF_IGNORE
+ || options::nl_func_class_scope() != IARF_IGNORE
+ || options::nl_func_scope_name() != IARF_IGNORE
+ || options::nl_func_proto_type_name() != IARF_IGNORE
+ || options::nl_func_paren() != IARF_IGNORE
+ || options::nl_func_def_paren() != IARF_IGNORE
+ || options::nl_func_def_paren_empty() != IARF_IGNORE
+ || options::nl_func_paren_empty() != IARF_IGNORE))
+
+ || ( get_chunk_parent_type(pc) == CT_FUNC_CALL // Issue #2604
+ && options::nl_func_call_args() != IARF_IGNORE))
+ {
+ newline_func_def_or_call(pc);
+ }
+ else if ( ( get_chunk_parent_type(pc) == CT_FUNC_CALL // Issue #2020
+ || get_chunk_parent_type(pc) == CT_FUNC_CALL_USER)
+ && options::nl_func_call_start() != IARF_IGNORE)
+ {
+ log_rule_B("nl_func_call_start");
+ newline_iarf(pc, options::nl_func_call_start());
+ }
+ else if ( ( get_chunk_parent_type(pc) == CT_FUNC_CALL
+ || get_chunk_parent_type(pc) == CT_FUNC_CALL_USER)
+ && ( (options::nl_func_call_start_multi_line())
+ || (options::nl_func_call_args_multi_line())
+ || (options::nl_func_call_end_multi_line())
+ || (options::nl_func_call_paren() != IARF_IGNORE)
+ || (options::nl_func_call_paren_empty() != IARF_IGNORE)
+ || (options::nl_func_call_empty() != IARF_IGNORE)))
+ {
+ log_rule_B("nl_func_call_start_multi_line");
+ log_rule_B("nl_func_call_args_multi_line");
+ log_rule_B("nl_func_call_end_multi_line");
+ log_rule_B("nl_func_call_paren");
+ log_rule_B("nl_func_call_paren_empty");
+ log_rule_B("nl_func_call_empty");
+
+ if ( options::nl_func_call_paren() != IARF_IGNORE
+ || options::nl_func_call_paren_empty() != IARF_IGNORE
+ || options::nl_func_call_empty() != IARF_IGNORE)
+ {
+ newline_func_def_or_call(pc);
+ }
+ newline_func_multi_line(pc);
+ }
+ else if ( first
+ && (options::nl_remove_extra_newlines() == 1))
+ {
+ log_rule_B("nl_remove_extra_newlines");
+ newline_iarf(pc, IARF_REMOVE);
+ }
+ }
+ else if (chunk_is_token(pc, CT_FPAREN_CLOSE)) // Issue #2758
+ {
+ if ( ( get_chunk_parent_type(pc) == CT_FUNC_CALL
+ || get_chunk_parent_type(pc) == CT_FUNC_CALL_USER)
+ && options::nl_func_call_end() != IARF_IGNORE)
+ {
+ log_rule_B("nl_func_call_end");
+ newline_iarf(pc->prev, options::nl_func_call_end());
+ }
+ }
+ else if (chunk_is_token(pc, CT_ANGLE_CLOSE))
+ {
+ if (get_chunk_parent_type(pc) == CT_TEMPLATE)
+ {
+ Chunk *next = pc->GetNextNcNnl();
+
+ if ( next->IsNotNullChunk()
+ && next->level == next->brace_level)
+ {
+ Chunk *tmp = pc->GetPrevType(CT_ANGLE_OPEN, pc->level)->GetPrevNcNnlNi(); // Issue #2279
+
+ if (chunk_is_token(tmp, CT_TEMPLATE))
+ {
+ if (chunk_is_token(next, CT_USING))
+ {
+ newline_iarf(pc, options::nl_template_using());
+ log_rule_B("nl_template_using");
+ }
+ else if (get_chunk_parent_type(next) == CT_FUNC_DEF) // function definition
+ {
+ iarf_e const action =
+ newline_template_option(
+ pc,
+ options::nl_template_func_def_special(),
+ options::nl_template_func_def(),
+ options::nl_template_func());
+ log_rule_B("nl_template_func_def_special");
+ log_rule_B("nl_template_func_def");
+ log_rule_B("nl_template_func");
+ newline_iarf(pc, action);
+ }
+ else if (get_chunk_parent_type(next) == CT_FUNC_PROTO) // function declaration
+ {
+ iarf_e const action =
+ newline_template_option(
+ pc,
+ options::nl_template_func_decl_special(),
+ options::nl_template_func_decl(),
+ options::nl_template_func());
+ log_rule_B("nl_template_func_decl_special");
+ log_rule_B("nl_template_func_decl");
+ log_rule_B("nl_template_func");
+ newline_iarf(pc, action);
+ }
+ else if ( chunk_is_token(next, CT_TYPE)
+ || chunk_is_token(next, CT_QUALIFIER)) // variable
+ {
+ newline_iarf(pc, options::nl_template_var());
+ log_rule_B("nl_template_var");
+ }
+ else if (next->flags.test(PCF_INCOMPLETE)) // class declaration
+ {
+ iarf_e const action =
+ newline_template_option(
+ pc,
+ options::nl_template_class_decl_special(),
+ options::nl_template_class_decl(),
+ options::nl_template_class());
+ log_rule_B("nl_template_class_decl_special");
+ log_rule_B("nl_template_class_decl");
+ log_rule_B("nl_template_class");
+ newline_iarf(pc, action);
+ }
+ else // class definition
+ {
+ iarf_e const action =
+ newline_template_option(
+ pc,
+ options::nl_template_class_def_special(),
+ options::nl_template_class_def(),
+ options::nl_template_class());
+ log_rule_B("nl_template_class_def_special");
+ log_rule_B("nl_template_class_def");
+ log_rule_B("nl_template_class");
+ newline_iarf(pc, action);
+ }
+ }
+ }
+ }
+ }
+ else if ( chunk_is_token(pc, CT_NAMESPACE)
+ && get_chunk_parent_type(pc) != CT_USING)
+ {
+ // Issue #2387
+ Chunk *next = pc->GetNextNcNnl();
+
+ if (next->IsNotNullChunk())
+ {
+ next = next->GetNextNcNnl();
+
+ if (!chunk_is_token(next, CT_ASSIGN))
+ {
+ // Issue #1235
+ // Issue #2186
+ Chunk *braceOpen = pc->GetNextType(CT_BRACE_OPEN, pc->level);
+
+ if (braceOpen->IsNullChunk())
+ {
+ // fatal error
+ LOG_FMT(LERR, "%s(%d): Missing BRACE_OPEN after namespace\n orig_line is %zu, orig_col is %zu\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col);
+ exit(EXIT_FAILURE);
+ }
+ LOG_FMT(LNEWLINE, "%s(%d): braceOpen->orig_line is %zu, orig_col is %zu, Text() is '%s'\n",
+ __func__, __LINE__, braceOpen->orig_line, braceOpen->orig_col, braceOpen->Text());
+ // produces much more log output. Use it only debugging purpose
+ //log_pcf_flags(LNEWLINE, braceOpen->flags);
+ newlines_namespace(pc);
+ }
+ }
+ }
+ else if (chunk_is_token(pc, CT_SQUARE_OPEN))
+ {
+ if ( get_chunk_parent_type(pc) == CT_ASSIGN
+ && !pc->flags.test(PCF_ONE_LINER))
+ {
+ Chunk *tmp = pc->GetPrevNcNnlNi(); // Issue #2279
+ newline_iarf(tmp, options::nl_assign_square());
+ log_rule_B("nl_assign_square");
+
+ iarf_e arg = options::nl_after_square_assign();
+ log_rule_B("nl_after_square_assign");
+
+ if (options::nl_assign_square() & IARF_ADD)
+ {
+ log_rule_B("nl_assign_square");
+ arg = IARF_ADD;
+ }
+ newline_iarf(pc, arg);
+
+ /*
+ * if there is a newline after the open, then force a newline
+ * before the close
+ */
+ tmp = pc->GetNextNc();
+
+ if (chunk_is_newline(tmp))
+ {
+ tmp = pc->GetNextType(CT_SQUARE_CLOSE, pc->level);
+
+ if (tmp->IsNotNullChunk())
+ {
+ newline_add_before(tmp);
+ }
+ }
+ }
+ }
+ else if (chunk_is_token(pc, CT_ACCESS))
+ {
+ // Make sure there is a newline before an access spec
+ if (options::nl_before_access_spec() > 0)
+ {
+ log_rule_B("nl_before_access_spec");
+ Chunk *prev = pc->GetPrev();
+
+ if (!chunk_is_newline(prev))
+ {
+ newline_add_before(pc);
+ }
+ }
+ }
+ else if (chunk_is_token(pc, CT_ACCESS_COLON))
+ {
+ // Make sure there is a newline after an access spec
+ if (options::nl_after_access_spec() > 0)
+ {
+ log_rule_B("nl_after_access_spec");
+ Chunk *next = pc->GetNext();
+
+ if (!chunk_is_newline(next))
+ {
+ newline_add_before(next);
+ }
+ }
+ }
+ else if (chunk_is_token(pc, CT_PP_DEFINE))
+ {
+ if (options::nl_multi_line_define())
+ {
+ log_rule_B("nl_multi_line_define");
+ nl_handle_define(pc);
+ }
+ }
+ else if ( first
+ && (options::nl_remove_extra_newlines() == 1)
+ && !pc->flags.test(PCF_IN_PREPROC))
+ {
+ log_rule_B("nl_remove_extra_newlines");
+ newline_iarf(pc, IARF_REMOVE);
+ }
+ else if ( chunk_is_token(pc, CT_MEMBER)
+ && ( language_is_set(LANG_JAVA)
+ || language_is_set(LANG_CPP))) // Issue #2574
+ {
+ // Issue #1124
+ if (pc->parent_type != CT_FUNC_DEF)
+ {
+ newline_iarf(pc->GetPrevNnl(), options::nl_before_member());
+ log_rule_B("nl_before_member");
+ newline_iarf(pc, options::nl_after_member());
+ log_rule_B("nl_after_member");
+ }
+ }
+ else
+ {
+ // ignore it
+ }
+ }
+
+ newline_def_blk(Chunk::GetHead(), false);
+} // newlines_cleanup_braces
+
+
+static void nl_handle_define(Chunk *pc)
+{
+ LOG_FUNC_ENTRY();
+
+ Chunk *nl = pc;
+ Chunk *ref = Chunk::NullChunkPtr;
+
+ while ((nl = nl->GetNext())->IsNotNullChunk())
+ {
+ if (chunk_is_token(nl, CT_NEWLINE))
+ {
+ return;
+ }
+
+ if ( chunk_is_token(nl, CT_MACRO)
+ || ( chunk_is_token(nl, CT_FPAREN_CLOSE)
+ && get_chunk_parent_type(nl) == CT_MACRO_FUNC))
+ {
+ ref = nl;
+ }
+
+ if (chunk_is_token(nl, CT_NL_CONT))
+ {
+ if (ref->IsNotNullChunk())
+ {
+ newline_add_after(ref);
+ }
+ return;
+ }
+ }
+} // nl_handle_define
+
+
+void newline_after_multiline_comment(void)
+{
+ LOG_FUNC_ENTRY();
+
+ for (Chunk *pc = Chunk::GetHead(); pc->IsNotNullChunk(); pc = pc->GetNext())
+ {
+ if (chunk_is_not_token(pc, CT_COMMENT_MULTI))
+ {
+ continue;
+ }
+ Chunk *tmp = pc;
+
+ while ( ((tmp = tmp->GetNext())->IsNotNullChunk())
+ && !chunk_is_newline(tmp))
+ {
+ if (!tmp->IsComment())
+ {
+ newline_add_before(tmp);
+ break;
+ }
+ }
+ }
+} // newline_after_multiline_comment
+
+
+void newline_after_label_colon(void)
+{
+ LOG_FUNC_ENTRY();
+
+ for (Chunk *pc = Chunk::GetHead(); pc->IsNotNullChunk(); pc = pc->GetNext())
+ {
+ if (chunk_is_not_token(pc, CT_LABEL_COLON))
+ {
+ continue;
+ }
+ newline_add_after(pc);
+ }
+} // newline_after_label_colon
+
+
+static bool is_class_one_liner(Chunk *pc)
+{
+ if ( ( chunk_is_token(pc, CT_FUNC_CLASS_DEF)
+ || chunk_is_token(pc, CT_FUNC_DEF))
+ && pc->flags.test(PCF_IN_CLASS))
+ {
+ // Find opening brace
+ pc = pc->GetNextType(CT_BRACE_OPEN, pc->level);
+ return( pc->IsNotNullChunk()
+ && pc->flags.test(PCF_ONE_LINER));
+ }
+ return(false);
+} // is_class_one_liner
+
+
+void newlines_insert_blank_lines(void)
+{
+ LOG_FUNC_ENTRY();
+
+ for (Chunk *pc = Chunk::GetHead(); pc->IsNotNullChunk(); pc = pc->GetNextNcNnl())
+ {
+ //LOG_FMT(LNEWLINE, "%s(%d): orig_line is %zu, orig_col is %zu, Text() '%s', type is %s\n",
+ // __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type));
+ if (chunk_is_token(pc, CT_IF))
+ {
+ newlines_if_for_while_switch_pre_blank_lines(pc, options::nl_before_if());
+ log_rule_B("nl_before_if");
+ newlines_if_for_while_switch_post_blank_lines(pc, options::nl_after_if());
+ log_rule_B("nl_after_if");
+ }
+ else if (chunk_is_token(pc, CT_FOR))
+ {
+ newlines_if_for_while_switch_pre_blank_lines(pc, options::nl_before_for());
+ log_rule_B("nl_before_for");
+ newlines_if_for_while_switch_post_blank_lines(pc, options::nl_after_for());
+ log_rule_B("nl_after_for");
+ }
+ else if (chunk_is_token(pc, CT_WHILE))
+ {
+ newlines_if_for_while_switch_pre_blank_lines(pc, options::nl_before_while());
+ log_rule_B("nl_before_while");
+ newlines_if_for_while_switch_post_blank_lines(pc, options::nl_after_while());
+ log_rule_B("nl_after_while");
+ }
+ else if (chunk_is_token(pc, CT_SWITCH))
+ {
+ newlines_if_for_while_switch_pre_blank_lines(pc, options::nl_before_switch());
+ log_rule_B("nl_before_switch");
+ newlines_if_for_while_switch_post_blank_lines(pc, options::nl_after_switch());
+ log_rule_B("nl_after_switch");
+ }
+ else if (chunk_is_token(pc, CT_SYNCHRONIZED))
+ {
+ newlines_if_for_while_switch_pre_blank_lines(pc, options::nl_before_synchronized());
+ log_rule_B("nl_before_synchronized");
+ newlines_if_for_while_switch_post_blank_lines(pc, options::nl_after_synchronized());
+ log_rule_B("nl_after_synchronized");
+ }
+ else if (chunk_is_token(pc, CT_DO))
+ {
+ newlines_if_for_while_switch_pre_blank_lines(pc, options::nl_before_do());
+ log_rule_B("nl_before_do");
+ newlines_if_for_while_switch_post_blank_lines(pc, options::nl_after_do());
+ log_rule_B("nl_after_do");
+ }
+ else if (chunk_is_token(pc, CT_OC_INTF))
+ {
+ newlines_if_for_while_switch_pre_blank_lines(pc, options::nl_oc_before_interface());
+ log_rule_B("nl_oc_before_interface");
+ }
+ else if (chunk_is_token(pc, CT_OC_END))
+ {
+ newlines_if_for_while_switch_pre_blank_lines(pc, options::nl_oc_before_end());
+ log_rule_B("nl_oc_before_end");
+ }
+ else if (chunk_is_token(pc, CT_OC_IMPL))
+ {
+ newlines_if_for_while_switch_pre_blank_lines(pc, options::nl_oc_before_implementation());
+ log_rule_B("nl_oc_before_implementation");
+ }
+ else if ( chunk_is_token(pc, CT_FUNC_CLASS_DEF)
+ || chunk_is_token(pc, CT_FUNC_DEF)
+ || chunk_is_token(pc, CT_FUNC_CLASS_PROTO)
+ || chunk_is_token(pc, CT_FUNC_PROTO))
+ {
+ if ( options::nl_class_leave_one_liner_groups()
+ && is_class_one_liner(pc))
+ {
+ log_rule_B("nl_class_leave_one_liner_groups");
+ newlines_func_pre_blank_lines(pc, CT_FUNC_PROTO);
+ }
+ else
+ {
+ newlines_func_pre_blank_lines(pc, pc->type);
+ }
+ }
+ else
+ {
+ // ignore it
+ //LOG_FMT(LNEWLINE, "%s(%d): ignore it\n", __func__, __LINE__);
+ }
+ }
+} // newlines_insert_blank_lines
+
+
+void newlines_functions_remove_extra_blank_lines(void)
+{
+ LOG_FUNC_ENTRY();
+
+ const size_t nl_max_blank_in_func = options::nl_max_blank_in_func();
+
+ log_rule_B("nl_max_blank_in_func");
+
+ if (nl_max_blank_in_func == 0)
+ {
+ LOG_FMT(LNEWLINE, "%s(%d): nl_max_blank_in_func is zero\n", __func__, __LINE__);
+ return;
+ }
+
+ for (Chunk *pc = Chunk::GetHead(); pc->IsNotNullChunk(); pc = pc->GetNext())
+ {
+ LOG_FMT(LNEWLINE, "%s(%d): orig_line is %zu, orig_col is %zu, Text() '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type));
+
+ if ( chunk_is_not_token(pc, CT_BRACE_OPEN)
+ || ( get_chunk_parent_type(pc) != CT_FUNC_DEF
+ && get_chunk_parent_type(pc) != CT_CPP_LAMBDA))
+ {
+ continue;
+ }
+ const size_t startMoveLevel = pc->level;
+
+ while (pc->IsNotNullChunk())
+ {
+ if ( chunk_is_token(pc, CT_BRACE_CLOSE)
+ && pc->level == startMoveLevel)
+ {
+ break;
+ }
+
+ // delete newlines
+ if ( !chunk_is_token(pc, CT_COMMENT_MULTI) // Issue #2195
+ && pc->nl_count > nl_max_blank_in_func)
+ {
+ LOG_FMT(LNEWLINE, "%s(%d): orig_line is %zu, orig_col is %zu, Text() '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type));
+ pc->nl_count = nl_max_blank_in_func;
+ MARK_CHANGE();
+ remove_next_newlines(pc);
+ }
+ else
+ {
+ pc = pc->GetNext();
+ }
+ }
+ }
+} // newlines_functions_remove_extra_blank_lines
+
+
+void newlines_squeeze_ifdef(void)
+{
+ LOG_FUNC_ENTRY();
+
+ Chunk *pc;
+
+ for (pc = Chunk::GetHead(); pc->IsNotNullChunk(); pc = pc->GetNextNcNnl())
+ {
+ if ( chunk_is_token(pc, CT_PREPROC)
+ && ( pc->level > 0
+ || options::nl_squeeze_ifdef_top_level()))
+ {
+ log_rule_B("nl_squeeze_ifdef_top_level");
+ Chunk *ppr = pc->GetNext();
+
+ if ( chunk_is_token(ppr, CT_PP_IF)
+ || chunk_is_token(ppr, CT_PP_ELSE)
+ || chunk_is_token(ppr, CT_PP_ENDIF))
+ {
+ Chunk *pnl = Chunk::NullChunkPtr;
+ Chunk *nnl = ppr->GetNextNl();
+
+ if ( chunk_is_token(ppr, CT_PP_ELSE)
+ || chunk_is_token(ppr, CT_PP_ENDIF))
+ {
+ pnl = pc->GetPrevNl();
+ }
+ Chunk *tmp1;
+ Chunk *tmp2;
+
+ if (nnl->IsNotNullChunk())
+ {
+ if (pnl->IsNotNullChunk())
+ {
+ if (pnl->nl_count > 1)
+ {
+ pnl->nl_count = 1;
+ MARK_CHANGE();
+
+ tmp1 = pnl->GetPrevNnl();
+ tmp2 = nnl->GetPrevNnl();
+
+ LOG_FMT(LNEWLINE, "%s(%d): moved from after line %zu to after %zu\n",
+ __func__, __LINE__, tmp1->orig_line, tmp2->orig_line);
+ }
+ }
+
+ if ( chunk_is_token(ppr, CT_PP_IF)
+ || chunk_is_token(ppr, CT_PP_ELSE))
+ {
+ if (nnl->nl_count > 1)
+ {
+ tmp1 = nnl->GetPrevNnl();
+ LOG_FMT(LNEWLINE, "%s(%d): trimmed newlines after line %zu from %zu\n",
+ __func__, __LINE__, tmp1->orig_line, nnl->nl_count);
+ nnl->nl_count = 1;
+ MARK_CHANGE();
+ }
+ }
+ }
+ }
+ }
+ }
+} // newlines_squeeze_ifdef
+
+
+void newlines_squeeze_paren_close(void)
+{
+ LOG_FUNC_ENTRY();
+
+ Chunk *pc;
+
+ for (pc = Chunk::GetHead(); pc->IsNotNullChunk(); pc = pc->GetNext())
+ {
+ Chunk *next;
+ Chunk *prev;
+
+ if (chunk_is_token(pc, CT_NEWLINE))
+ {
+ prev = pc->GetPrev();
+ }
+ else
+ {
+ prev = pc;
+ }
+ next = pc->GetNext();
+
+ if ( next->IsNotNullChunk()
+ && prev->IsNotNullChunk()
+ && chunk_is_paren_close(next)
+ && chunk_is_paren_close(prev))
+ {
+ Chunk *prev_op = chunk_skip_to_match_rev(prev);
+ Chunk *next_op = chunk_skip_to_match_rev(next);
+ bool flag = true;
+
+ if (true)
+ {
+ Chunk *tmp = prev;
+
+ while (chunk_is_paren_close(tmp))
+ {
+ tmp = tmp->GetPrev();
+ }
+
+ if (chunk_is_not_token(tmp, CT_NEWLINE))
+ {
+ flag = false;
+ }
+ }
+
+ if (flag)
+ {
+ if (are_chunks_in_same_line(next_op, prev_op))
+ {
+ if (chunk_is_token(pc, CT_NEWLINE))
+ {
+ pc = next;
+ }
+ newline_del_between(prev, next);
+ }
+ else
+ {
+ newline_add_between(prev, next);
+ }
+ }
+ }
+ }
+} // newlines_squeeze_paren_close
+
+
+void newlines_eat_start_end(void)
+{
+ LOG_FUNC_ENTRY();
+
+ Chunk *pc;
+
+ // Process newlines at the start of the file
+ if ( cpd.frag_cols == 0
+ && ( (options::nl_start_of_file() & IARF_REMOVE)
+ || ( (options::nl_start_of_file() & IARF_ADD)
+ && (options::nl_start_of_file_min() > 0))))
+ {
+ log_rule_B("nl_start_of_file");
+ log_rule_B("nl_start_of_file_min");
+ pc = Chunk::GetHead();
+
+ if (pc->IsNotNullChunk())
+ {
+ if (chunk_is_token(pc, CT_NEWLINE))
+ {
+ if (options::nl_start_of_file() == IARF_REMOVE)
+ {
+ log_rule_B("nl_start_of_file");
+ LOG_FMT(LBLANKD, "%s(%d): eat_blanks_start_of_file %zu\n",
+ __func__, __LINE__, pc->orig_line);
+ chunk_del(pc);
+ MARK_CHANGE();
+ }
+ else if ( options::nl_start_of_file() == IARF_FORCE
+ || (pc->nl_count < options::nl_start_of_file_min()))
+ {
+ log_rule_B("nl_start_of_file");
+ LOG_FMT(LBLANKD, "%s(%d): set_blanks_start_of_file %zu\n",
+ __func__, __LINE__, pc->orig_line);
+ pc->nl_count = options::nl_start_of_file_min();
+ log_rule_B("nl_start_of_file_min");
+ MARK_CHANGE();
+ }
+ }
+ else if ( (options::nl_start_of_file() & IARF_ADD)
+ && (options::nl_start_of_file_min() > 0))
+ {
+ log_rule_B("nl_start_of_file");
+ log_rule_B("nl_start_of_file_min");
+ Chunk chunk;
+ set_chunk_type(&chunk, CT_NEWLINE);
+ chunk.orig_line = pc->orig_line;
+ chunk.orig_col = pc->orig_col;
+ chunk.pp_level = pc->pp_level;
+ chunk.nl_count = options::nl_start_of_file_min();
+ log_rule_B("nl_start_of_file_min");
+ chunk_add_before(&chunk, pc);
+ LOG_FMT(LNEWLINE, "%s(%d): %zu:%zu add newline before '%s'\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text());
+ MARK_CHANGE();
+ }
+ }
+ }
+
+ // Process newlines at the end of the file
+ if ( cpd.frag_cols == 0
+ && ( (options::nl_end_of_file() & IARF_REMOVE)
+ || ( (options::nl_end_of_file() & IARF_ADD)
+ && (options::nl_end_of_file_min() > 0))))
+ {
+ log_rule_B("nl_end_of_file");
+ log_rule_B("nl_end_of_file_min");
+ pc = Chunk::GetTail();
+
+ if (pc->IsNotNullChunk())
+ {
+ if (chunk_is_token(pc, CT_NEWLINE))
+ {
+ if (options::nl_end_of_file() == IARF_REMOVE)
+ {
+ log_rule_B("nl_end_of_file");
+ LOG_FMT(LBLANKD, "%s(%d): eat_blanks_end_of_file %zu\n",
+ __func__, __LINE__, pc->orig_line);
+ chunk_del(pc);
+ MARK_CHANGE();
+ }
+ else if ( options::nl_end_of_file() == IARF_FORCE
+ || (pc->nl_count < options::nl_end_of_file_min()))
+ {
+ log_rule_B("nl_end_of_file");
+ log_rule_B("nl_end_of_file_min");
+
+ if (pc->nl_count != options::nl_end_of_file_min())
+ {
+ log_rule_B("nl_end_of_file_min");
+ LOG_FMT(LBLANKD, "%s(%d): set_blanks_end_of_file %zu\n",
+ __func__, __LINE__, pc->orig_line);
+ pc->nl_count = options::nl_end_of_file_min();
+ log_rule_B("nl_end_of_file_min");
+ MARK_CHANGE();
+ }
+ }
+ }
+ else if ( (options::nl_end_of_file() & IARF_ADD)
+ && (options::nl_end_of_file_min() > 0))
+ {
+ log_rule_B("nl_end_of_file");
+ log_rule_B("nl_end_of_file_min");
+ Chunk chunk;
+ set_chunk_type(&chunk, CT_NEWLINE);
+ chunk.orig_line = pc->orig_line;
+ chunk.orig_col = pc->orig_col;
+ chunk.pp_level = pc->pp_level;
+ chunk.nl_count = options::nl_end_of_file_min();
+ log_rule_B("nl_end_of_file_min");
+ chunk_add_before(&chunk, nullptr);
+ LOG_FMT(LNEWLINE, "%s(%d): %zu:%zu add newline after '%s'\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text());
+ MARK_CHANGE();
+ }
+ }
+ }
+} // newlines_eat_start_end
+
+
+void newlines_chunk_pos(E_Token chunk_type, token_pos_e mode)
+{
+ LOG_FUNC_ENTRY();
+
+ LOG_FMT(LNEWLINE, "%s(%d): mode is %s\n",
+ __func__, __LINE__, to_string(mode));
+
+ if ( !(mode & (TP_JOIN | TP_LEAD | TP_TRAIL))
+ && chunk_type != CT_COMMA)
+ {
+ return;
+ }
+
+ for (Chunk *pc = Chunk::GetHead(); pc->IsNotNullChunk(); pc = pc->GetNextNcNnl())
+ {
+ char copy[1000];
+ LOG_FMT(LNEWLINE, "%s(%d): pc->orig_line is %zu, orig_col is %zu, Text() is '%s'\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->ElidedText(copy));
+ // produces much more log output. Use it only debugging purpose
+ //log_pcf_flags(LNEWLINE, pc->flags);
+
+ if (chunk_is_token(pc, chunk_type))
+ {
+ token_pos_e mode_local;
+
+ if (chunk_type == CT_COMMA)
+ {
+ LOG_FMT(LNEWLINE, "%s(%d): orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type));
+ // produces much more log output. Use it only debugging purpose
+ //log_pcf_flags(LNEWLINE, pc->flags);
+
+ if (pc->flags.test(PCF_IN_CONST_ARGS)) // Issue #2250
+ {
+ continue;
+ }
+
+ /*
+ * for chunk_type == CT_COMMA
+ * we get 'mode' from options::pos_comma()
+ * BUT we must take care of options::pos_class_comma()
+ * TODO and options::pos_constr_comma()
+ */
+ if (pc->flags.test(PCF_IN_CLASS_BASE))
+ {
+ // change mode
+ log_rule_B("pos_class_comma");
+ mode_local = options::pos_class_comma();
+ }
+ else if (pc->flags.test(PCF_IN_ENUM))
+ {
+ log_rule_B("pos_enum_comma");
+ mode_local = options::pos_enum_comma();
+ }
+ else
+ {
+ mode_local = mode;
+ }
+ LOG_FMT(LNEWLINE, "%s(%d): mode_local is %s\n",
+ __func__, __LINE__, to_string(mode_local));
+ }
+ else
+ {
+ mode_local = mode;
+ }
+ Chunk *prev = pc->GetPrevNc();
+ Chunk *next = pc->GetNextNc();
+
+ LOG_FMT(LNEWLINE, "%s(%d): mode_local is %s\n",
+ __func__, __LINE__, to_string(mode_local));
+
+ LOG_FMT(LNEWLINE, "%s(%d): prev->orig_line is %zu, orig_col is %zu, Text() is '%s'\n",
+ __func__, __LINE__, prev->orig_line, prev->orig_col, prev->Text());
+ LOG_FMT(LNEWLINE, "%s(%d): next->orig_line is %zu, orig_col is %zu, Text() is '%s'\n",
+ __func__, __LINE__, next->orig_line, next->orig_col, next->Text());
+ size_t nl_flag = ((chunk_is_newline(prev) ? 1 : 0) |
+ (chunk_is_newline(next) ? 2 : 0));
+ LOG_FMT(LNEWLINE, "%s(%d): nl_flag is %zu\n",
+ __func__, __LINE__, nl_flag);
+
+ if (mode_local & TP_JOIN)
+ {
+ if (nl_flag & 1)
+ {
+ // remove newline if not preceded by a comment
+ Chunk *prev2 = prev->GetPrev();
+
+ if ( prev2->IsNotNullChunk()
+ && !(prev2->IsComment()))
+ {
+ remove_next_newlines(prev2);
+ }
+ }
+
+ if (nl_flag & 2)
+ {
+ // remove newline if not followed by a comment or by '{'
+ Chunk *next2 = next->GetNext();
+
+ if ( next2->IsNotNullChunk()
+ && !next2->IsComment()
+ && !(chunk_is_token(next2, CT_BRACE_OPEN)))
+ {
+ remove_next_newlines(pc);
+ }
+ }
+ continue;
+ }
+
+ if ( ( nl_flag == 0
+ && !(mode_local & (TP_FORCE | TP_BREAK)))
+ || ( nl_flag == 3
+ && !(mode_local & TP_FORCE)))
+ {
+ // No newlines and not adding any or both and not forcing
+ continue;
+ }
+
+ if ( ( (mode_local & TP_LEAD)
+ && nl_flag == 1)
+ || ( (mode_local & TP_TRAIL)
+ && nl_flag == 2))
+ {
+ // Already a newline before (lead) or after (trail)
+ continue;
+ }
+
+ // If there were no newlines, we need to add one
+ if (nl_flag == 0)
+ {
+ if (mode_local & TP_LEAD)
+ {
+ newline_add_before(pc);
+ }
+ else
+ {
+ newline_add_after(pc);
+ }
+ continue;
+ }
+
+ // If there were both newlines, we need to remove one
+ if (nl_flag == 3)
+ {
+ if (mode_local & TP_LEAD)
+ {
+ remove_next_newlines(pc);
+ }
+ else
+ {
+ remove_next_newlines(pc->GetPrevNcNnlNi()); // Issue #2279
+ }
+ continue;
+ }
+
+ // we need to move the newline
+ if (mode_local & TP_LEAD)
+ {
+ Chunk *next2 = next->GetNext();
+
+ if ( chunk_is_token(next2, CT_PREPROC)
+ || ( chunk_type == CT_ASSIGN
+ && chunk_is_token(next2, CT_BRACE_OPEN)))
+ {
+ continue;
+ }
+
+ if (next->nl_count == 1)
+ {
+ if ( prev != nullptr
+ && !prev->flags.test(PCF_IN_PREPROC))
+ {
+ // move the CT_BOOL to after the newline
+ chunk_move_after(pc, next);
+ }
+ }
+ }
+ else
+ {
+ LOG_FMT(LNEWLINE, "%s(%d): prev->orig_line is %zu, orig_col is %zu, Text() is '%s', nl_count is %zu\n",
+ __func__, __LINE__, prev->orig_line, prev->orig_col, prev->Text(), prev->nl_count);
+
+ if (prev->nl_count == 1)
+ {
+ // Back up to the next non-comment item
+ prev = prev->GetPrevNc();
+ LOG_FMT(LNEWLINE, "%s(%d): prev->orig_line is %zu, orig_col is %zu, Text() is '%s'\n",
+ __func__, __LINE__, prev->orig_line, prev->orig_col, prev->Text());
+
+ if ( prev->IsNotNullChunk()
+ && !chunk_is_newline(prev)
+ && !prev->flags.test(PCF_IN_PREPROC)
+ && !prev->flags.test(PCF_IN_OC_MSG))
+ {
+ chunk_move_after(pc, prev);
+ }
+ }
+ }
+ }
+ }
+} // newlines_chunk_pos
+
+
+void newlines_class_colon_pos(E_Token tok)
+{
+ LOG_FUNC_ENTRY();
+
+ token_pos_e tpc;
+ token_pos_e pcc;
+ iarf_e anc;
+ iarf_e ncia;
+
+ if (tok == CT_CLASS_COLON)
+ {
+ tpc = options::pos_class_colon();
+ log_rule_B("pos_class_colon");
+ anc = options::nl_class_colon();
+ log_rule_B("nl_class_colon");
+ ncia = options::nl_class_init_args();
+ log_rule_B("nl_class_init_args");
+ pcc = options::pos_class_comma();
+ log_rule_B("pos_class_comma");
+ }
+ else // tok == CT_CONSTR_COLON
+ {
+ tpc = options::pos_constr_colon();
+ log_rule_B("pos_constr_colon");
+ anc = options::nl_constr_colon();
+ log_rule_B("nl_constr_colon");
+ ncia = options::nl_constr_init_args();
+ log_rule_B("nl_constr_init_args");
+ pcc = options::pos_constr_comma();
+ log_rule_B("pos_constr_comma");
+ }
+ Chunk *ccolon = nullptr;
+ size_t acv_span = options::align_constr_value_span();
+
+ log_rule_B("align_constr_value_span");
+ bool with_acv = (acv_span > 0) && language_is_set(LANG_CPP);
+ AlignStack constructorValue; // ABC_Member(abc_value)
+
+ if (with_acv)
+ {
+ int acv_thresh = options::align_constr_value_thresh();
+ log_rule_B("align_constr_value_thresh");
+ size_t acv_gap = options::align_constr_value_gap();
+ log_rule_B("align_constr_value_gap");
+ constructorValue.Start(acv_span, acv_thresh);
+ constructorValue.m_gap = acv_gap;
+ constructorValue.m_right_align = !options::align_on_tabstop();
+ log_rule_B("align_on_tabstop");
+ }
+
+ for (Chunk *pc = Chunk::GetHead(); pc->IsNotNullChunk(); pc = pc->GetNextNcNnl())
+ {
+ if ( ccolon == nullptr
+ && chunk_is_not_token(pc, tok))
+ {
+ continue;
+ }
+ Chunk *prev;
+ Chunk *next;
+
+ if (chunk_is_token(pc, tok))
+ {
+ LOG_FMT(LBLANKD, "%s(%d): orig_line is %zu, orig_col is %zu, Text() '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type));
+ ccolon = pc;
+ prev = pc->GetPrevNc();
+ next = pc->GetNextNc();
+
+ if (chunk_is_token(pc, CT_CONSTR_COLON))
+ {
+ LOG_FMT(LBLANKD, "%s(%d): pc->orig_line is %zu, orig_col is %zu, Text() '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type));
+ Chunk *paren_vor_value = pc->GetNextType(CT_FPAREN_OPEN, pc->level);
+
+ if ( with_acv
+ && paren_vor_value->IsNotNullChunk())
+ {
+ LOG_FMT(LBLANKD, "%s(%d): paren_vor_value->orig_line is %zu, orig_col is %zu, Text() '%s', type is %s\n",
+ __func__, __LINE__, paren_vor_value->orig_line, paren_vor_value->orig_col,
+ paren_vor_value->Text(), get_token_name(paren_vor_value->type));
+ constructorValue.NewLines(paren_vor_value->nl_count);
+ constructorValue.Add(paren_vor_value);
+ }
+ }
+
+ if ( !chunk_is_newline(prev)
+ && !chunk_is_newline(next)
+ && (anc & IARF_ADD)) // nl_class_colon, nl_constr_colon: 1
+
+ {
+ newline_add_after(pc);
+ prev = pc->GetPrevNc();
+ next = pc->GetNextNc();
+ }
+
+ if (anc == IARF_REMOVE) // nl_class_colon, nl_constr_colon: 2
+ {
+ if ( chunk_is_newline(prev)
+ && chunk_safe_to_del_nl(prev))
+ {
+ chunk_del(prev);
+ MARK_CHANGE();
+ prev = pc->GetPrevNc();
+ }
+
+ if ( chunk_is_newline(next)
+ && chunk_safe_to_del_nl(next))
+ {
+ chunk_del(next);
+ MARK_CHANGE();
+ next = pc->GetNextNc();
+ }
+ }
+
+ if (tpc & TP_TRAIL) // pos_class_colon, pos_constr_colon: 4
+ {
+ if ( chunk_is_newline(prev)
+ && prev->nl_count == 1
+ && chunk_safe_to_del_nl(prev))
+ {
+ chunk_swap(pc, prev);
+ }
+ }
+ else if (tpc & TP_LEAD) // pos_class_colon, pos_constr_colon: 3
+ {
+ if ( chunk_is_newline(next)
+ && next->nl_count == 1
+ && chunk_safe_to_del_nl(next))
+ {
+ chunk_swap(pc, next);
+ }
+ }
+ }
+ else
+ {
+ // (pc->type != tok)
+ if ( chunk_is_token(pc, CT_BRACE_OPEN)
+ || chunk_is_token(pc, CT_SEMICOLON))
+ {
+ ccolon = nullptr;
+
+ if (with_acv)
+ {
+ constructorValue.End();
+ }
+ continue;
+ }
+
+ if ( chunk_is_token(pc, CT_COMMA)
+ && pc->level == ccolon->level)
+ {
+ LOG_FMT(LBLANKD, "%s(%d): orig_line is %zu, orig_col is %zu, Text() '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type));
+ Chunk *paren_vor_value = pc->GetNextType(CT_FPAREN_OPEN, pc->level);
+
+ if ( with_acv
+ && paren_vor_value->IsNotNullChunk())
+ {
+ LOG_FMT(LBLANKD, "%s(%d): paren_vor_value->orig_line is %zu, orig_col is %zu, Text() '%s', type is %s\n",
+ __func__, __LINE__, paren_vor_value->orig_line, paren_vor_value->orig_col,
+ paren_vor_value->Text(), get_token_name(paren_vor_value->type));
+ constructorValue.NewLines(paren_vor_value->nl_count);
+ constructorValue.Add(paren_vor_value);
+ }
+
+ if (ncia & IARF_ADD) // nl_class_init_args, nl_constr_init_args:
+ {
+ if (pcc & TP_TRAIL) // pos_class_comma, pos_constr_comma
+ {
+ if (ncia == IARF_FORCE) // nl_class_init_args, nl_constr_init_args: 5
+ {
+ Chunk *after = pc->GetNext(); // Issue #2759
+
+ if (chunk_is_not_token(after, CT_COMMENT_CPP))
+ {
+ newline_force_after(pc);
+ }
+ }
+ else
+ {
+ // (ncia == IARF_ADD) // nl_class_init_args, nl_constr_init_args: 8
+ newline_add_after(pc);
+ }
+ prev = pc->GetPrevNc();
+
+ if ( chunk_is_newline(prev)
+ && chunk_safe_to_del_nl(prev))
+ {
+ chunk_del(prev);
+ MARK_CHANGE();
+ }
+ }
+ else if (pcc & TP_LEAD) // pos_class_comma, pos_constr_comma
+ {
+ if (ncia == IARF_FORCE) // nl_class_init_args, nl_constr_init_args: 7
+ {
+ newline_force_before(pc);
+ }
+ else
+ {
+ // (ncia == IARF_ADD) // nl_class_init_args, nl_constr_init_args: 9
+ newline_add_before(pc);
+ }
+ next = pc->GetNextNc();
+
+ if ( chunk_is_newline(next)
+ && chunk_safe_to_del_nl(next))
+ {
+ chunk_del(next);
+ MARK_CHANGE();
+ }
+ }
+ }
+ else if (ncia == IARF_REMOVE) // nl_class_init_args, nl_constr_init_args: 6
+ {
+ next = pc->GetNext();
+
+ if ( chunk_is_newline(next)
+ && chunk_safe_to_del_nl(next))
+ {
+ // comma is after
+ chunk_del(next);
+ MARK_CHANGE();
+ }
+ else
+ {
+ prev = pc->GetPrev();
+
+ if ( chunk_is_newline(prev)
+ && chunk_safe_to_del_nl(prev))
+ {
+ // comma is before
+ chunk_del(prev);
+ MARK_CHANGE();
+ }
+ }
+ }
+ }
+ }
+ }
+} // newlines_class_colon_pos
+
+
+static void blank_line_max(Chunk *pc, Option<unsigned> &opt)
+{
+ LOG_FUNC_ENTRY();
+
+ if (pc == nullptr)
+ {
+ return;
+ }
+ const auto optval = opt();
+
+ if ( (optval > 0)
+ && (pc->nl_count > optval))
+ {
+ LOG_FMT(LBLANKD, "%s(%d): do_blank_lines: %s max line %zu\n",
+ __func__, __LINE__, opt.name(), pc->orig_line);
+ pc->nl_count = optval;
+ MARK_CHANGE();
+ }
+} // blank_line_max
+
+
+iarf_e newline_template_option(Chunk *pc, iarf_e special, iarf_e base, iarf_e fallback)
+{
+ Chunk *const prev = pc->GetPrevNcNnl();
+
+ if ( chunk_is_token(prev, CT_ANGLE_OPEN)
+ && special != IARF_IGNORE)
+ {
+ return(special);
+ }
+ else if (base != IARF_IGNORE)
+ {
+ return(base);
+ }
+ else
+ {
+ return(fallback);
+ }
+} // newline_template_option
+
+
+bool is_func_proto_group(Chunk *pc, E_Token one_liner_type)
+{
+ if ( pc != nullptr
+ && options::nl_class_leave_one_liner_groups()
+ && ( chunk_is_token(pc, one_liner_type)
+ || get_chunk_parent_type(pc) == one_liner_type)
+ && pc->flags.test(PCF_IN_CLASS))
+ {
+ log_rule_B("nl_class_leave_one_liner_groups");
+
+ if (chunk_is_token(pc, CT_BRACE_CLOSE))
+ {
+ return(pc->flags.test(PCF_ONE_LINER));
+ }
+ else
+ {
+ // Find opening brace
+ pc = pc->GetNextType(CT_BRACE_OPEN, pc->level);
+ return( pc->IsNotNullChunk()
+ && pc->flags.test(PCF_ONE_LINER));
+ }
+ }
+ return(false);
+} // is_func_proto_group
+
+
+void do_blank_lines(void)
+{
+ LOG_FUNC_ENTRY();
+
+ for (Chunk *pc = Chunk::GetHead(); pc != nullptr && pc->IsNotNullChunk(); pc = pc->GetNext())
+ {
+ if (chunk_is_token(pc, CT_NEWLINE))
+ {
+ LOG_FMT(LBLANKD, "%s(%d): orig_line is %zu, orig_col is %zu, <Newline>, nl is %zu\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->nl_count);
+ }
+ else
+ {
+ char copy[1000];
+ LOG_FMT(LBLANKD, "%s(%d): orig_line is %zu, orig_col is %zu, Text() '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->ElidedText(copy), get_token_name(pc->type));
+ }
+ LOG_FMT(LBLANK, "%s(%d): nl_count is %zu\n",
+ __func__, __LINE__, pc->nl_count);
+
+ //if (pc->type != CT_NEWLINE)
+ if (chunk_is_not_token(pc, CT_NEWLINE))
+ {
+ continue;
+ }
+ Chunk *prev = pc->GetPrevNc();
+
+ if (prev->IsNotNullChunk())
+ {
+ LOG_FMT(LBLANK, "%s(%d): prev->orig_line is %zu, prev->Text() '%s', prev->type is %s\n",
+ __func__, __LINE__, pc->orig_line,
+ prev->Text(), get_token_name(prev->type));
+
+ if (chunk_is_token(prev, CT_IGNORED))
+ {
+ continue;
+ }
+ }
+ Chunk *next = pc->GetNext();
+ Chunk *pcmt = pc->GetPrev();
+
+ bool line_added = false;
+
+ /*
+ * If this is the first or the last token, pretend that there is an extra
+ * line. It will be removed at the end.
+ */
+ if ( pc == Chunk::GetHead()
+ || next->IsNullChunk())
+ {
+ line_added = true;
+ ++pc->nl_count;
+ LOG_FMT(LBLANK, "%s(%d): orig_line is %zu, orig_col is %zu, text is '%s', ++ nl_count is now %zu\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), pc->nl_count);
+ }
+
+ // Limit consecutive newlines
+ if ( (options::nl_max() > 0)
+ && (pc->nl_count > options::nl_max()))
+ {
+ log_rule_B("nl_max");
+ blank_line_max(pc, options::nl_max);
+ }
+
+ if (!can_increase_nl(pc))
+ {
+ LOG_FMT(LBLANKD, "%s(%d): force to 1 orig_line is %zu, orig_col is %zu\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col);
+
+ if (pc->nl_count != 1)
+ {
+ pc->nl_count = 1;
+ MARK_CHANGE();
+ }
+ continue;
+ }
+
+ // Control blanks before multi-line comments
+ if ( (options::nl_before_block_comment() > pc->nl_count)
+ && chunk_is_token(next, CT_COMMENT_MULTI))
+ {
+ log_rule_B("nl_before_block_comment");
+
+ // Don't add blanks after an open brace or a case statement
+ if ( ( prev == nullptr
+ || ( chunk_is_not_token(prev, CT_BRACE_OPEN)
+ && chunk_is_not_token(prev, CT_VBRACE_OPEN)
+ && chunk_is_not_token(prev, CT_CASE_COLON)))
+ && chunk_is_not_token(pcmt, CT_COMMENT_MULTI)) // Issue #2383
+ {
+ blank_line_set(pc, options::nl_before_block_comment);
+ log_rule_B("nl_before_block_comment");
+ }
+ }
+
+ // Control blanks before single line C comments
+ if ( (options::nl_before_c_comment() > pc->nl_count)
+ && chunk_is_token(next, CT_COMMENT))
+ {
+ log_rule_B("nl_before_c_comment");
+
+ // Don't add blanks after an open brace, a case stamement, or a comment
+ if ( ( prev == nullptr
+ || ( chunk_is_not_token(prev, CT_BRACE_OPEN)
+ && chunk_is_not_token(prev, CT_VBRACE_OPEN)
+ && chunk_is_not_token(prev, CT_CASE_COLON)))
+ && chunk_is_not_token(pcmt, CT_COMMENT)) // Issue #2383
+ {
+ blank_line_set(pc, options::nl_before_c_comment);
+ log_rule_B("nl_before_c_comment");
+ }
+ }
+
+ // Control blanks before CPP comments
+ if ( (options::nl_before_cpp_comment() > pc->nl_count)
+ && chunk_is_token(next, CT_COMMENT_CPP))
+ {
+ log_rule_B("nl_before_cpp_comment");
+
+ // Don't add blanks after an open brace or a case statement
+ if ( ( prev == nullptr
+ || ( chunk_is_not_token(prev, CT_BRACE_OPEN)
+ && chunk_is_not_token(prev, CT_VBRACE_OPEN)
+ && chunk_is_not_token(prev, CT_CASE_COLON)))
+ && chunk_is_not_token(pcmt, CT_COMMENT_CPP)) // Issue #2383
+ {
+ blank_line_set(pc, options::nl_before_cpp_comment);
+ log_rule_B("nl_before_cpp_comment");
+ }
+ }
+
+ // Control blanks before a class/struct
+ if ( ( chunk_is_token(prev, CT_SEMICOLON)
+ || chunk_is_token(prev, CT_BRACE_CLOSE))
+ && ( get_chunk_parent_type(prev) == CT_CLASS
+ || get_chunk_parent_type(prev) == CT_STRUCT))
+ {
+ E_Token parent_type = get_chunk_parent_type(prev);
+ Chunk *start = prev->GetPrevType(parent_type, prev->level);
+ Chunk *tmp = start;
+
+ // Is this a class/struct template?
+ if (get_chunk_parent_type(tmp) == CT_TEMPLATE)
+ {
+ tmp = tmp->GetPrevType(CT_TEMPLATE, prev->level);
+ tmp = tmp->GetPrevNc();
+ }
+ else
+ {
+ tmp = tmp->GetPrevNc();
+
+ while ( chunk_is_token(tmp, CT_NEWLINE)
+ && tmp->GetPrev()->IsComment())
+ {
+ tmp = tmp->GetPrev()->GetPrevNc();
+ }
+
+ if (chunk_is_token(tmp, CT_FRIEND))
+ {
+ // Account for a friend declaration
+ tmp = tmp->GetPrevNc();
+ }
+ }
+
+ while ( chunk_is_token(tmp, CT_NEWLINE)
+ && tmp->GetPrev()->IsComment())
+ {
+ tmp = tmp->GetPrev()->GetPrevNc();
+ }
+
+ if ( tmp->IsNotNullChunk()
+ && !start->flags.test(PCF_INCOMPLETE))
+ {
+ if (parent_type == CT_CLASS && options::nl_before_class() > tmp->nl_count)
+ {
+ log_rule_B("nl_before_class");
+ blank_line_set(tmp, options::nl_before_class);
+ }
+ else if (parent_type == CT_STRUCT && options::nl_before_struct() > tmp->nl_count)
+ {
+ log_rule_B("nl_before_struct");
+ blank_line_set(tmp, options::nl_before_struct);
+ }
+ }
+ }
+
+ if ( chunk_is_token(prev, CT_BRACE_CLOSE)
+ && get_chunk_parent_type(prev) == CT_NAMESPACE)
+ {
+ // Control blanks before a namespace
+ Chunk *tmp = prev->GetPrevType(CT_NAMESPACE, prev->level);
+ tmp = tmp->GetPrevNc();
+
+ while ( chunk_is_token(tmp, CT_NEWLINE)
+ && tmp->GetPrev()->IsComment())
+ {
+ tmp = tmp->GetPrev()->GetPrevNc();
+ }
+
+ if ( tmp->IsNotNullChunk()
+ && options::nl_before_namespace() > tmp->nl_count)
+ {
+ log_rule_B("nl_before_namespace");
+ blank_line_set(tmp, options::nl_before_namespace);
+ }
+
+ // Add blanks after namespace
+ if (options::nl_after_namespace() > pc->nl_count)
+ {
+ log_rule_B("nl_after_namespace");
+ blank_line_set(pc, options::nl_after_namespace);
+ }
+ }
+
+ // Control blanks inside empty function body
+ if ( chunk_is_token(prev, CT_BRACE_OPEN)
+ && chunk_is_token(next, CT_BRACE_CLOSE)
+ && ( get_chunk_parent_type(prev) == CT_FUNC_DEF
+ || get_chunk_parent_type(prev) == CT_FUNC_CLASS_DEF)
+ && options::nl_inside_empty_func() > pc->nl_count
+ && prev->flags.test(PCF_EMPTY_BODY))
+ {
+ blank_line_set(pc, options::nl_inside_empty_func);
+ log_rule_B("nl_inside_empty_func");
+ }
+
+ // Control blanks after an access spec
+ if ( (options::nl_after_access_spec() > 0)
+ && (options::nl_after_access_spec() != pc->nl_count)
+ && chunk_is_token(prev, CT_ACCESS_COLON))
+ {
+ log_rule_B("nl_after_access_spec");
+
+ // Don't add blanks before a closing brace
+ if ( next->IsNullChunk()
+ || ( chunk_is_not_token(next, CT_BRACE_CLOSE)
+ && chunk_is_not_token(next, CT_VBRACE_CLOSE)))
+ {
+ log_rule_B("nl_after_access_spec");
+ blank_line_set(pc, options::nl_after_access_spec);
+ }
+ }
+
+ // Add blanks after function bodies
+ if ( chunk_is_token(prev, CT_BRACE_CLOSE)
+ && ( get_chunk_parent_type(prev) == CT_FUNC_DEF
+ || get_chunk_parent_type(prev) == CT_FUNC_CLASS_DEF
+ || get_chunk_parent_type(prev) == CT_OC_MSG_DECL
+ || get_chunk_parent_type(prev) == CT_ASSIGN))
+ {
+ if (prev->flags.test(PCF_ONE_LINER))
+ {
+ if (options::nl_after_func_body_one_liner() > pc->nl_count)
+ {
+ log_rule_B("nl_after_func_body_one_liner");
+ blank_line_set(pc, options::nl_after_func_body_one_liner);
+ }
+ }
+ else
+ {
+ if ( prev->flags.test(PCF_IN_CLASS)
+ && (options::nl_after_func_body_class() > 0))
+ {
+ log_rule_B("nl_after_func_body_class");
+
+ if (options::nl_after_func_body_class() != pc->nl_count)
+ {
+ log_rule_B("nl_after_func_body_class");
+ blank_line_set(pc, options::nl_after_func_body_class);
+ }
+ }
+ else if (options::nl_after_func_body() > 0)
+ {
+ log_rule_B("nl_after_func_body");
+
+ // Issue #1734
+ if (!(pc->prev->flags.test(PCF_IN_TRY_BLOCK)))
+ {
+ if (options::nl_after_func_body() != pc->nl_count)
+ {
+ log_rule_B("nl_after_func_body");
+ blank_line_set(pc, options::nl_after_func_body);
+ }
+ }
+ }
+ }
+ }
+
+ // Add blanks after function prototypes
+ if ( ( chunk_is_token(prev, CT_SEMICOLON)
+ && get_chunk_parent_type(prev) == CT_FUNC_PROTO)
+ || is_func_proto_group(prev, CT_FUNC_DEF))
+ {
+ if (options::nl_after_func_proto() > pc->nl_count)
+ {
+ log_rule_B("nl_after_func_proto");
+ pc->nl_count = options::nl_after_func_proto();
+ MARK_CHANGE();
+ }
+
+ if ( (options::nl_after_func_proto_group() > pc->nl_count)
+ && next->IsNotNullChunk()
+ && get_chunk_parent_type(next) != CT_FUNC_PROTO
+ && !is_func_proto_group(next, CT_FUNC_DEF))
+ {
+ log_rule_B("nl_after_func_proto_group");
+ blank_line_set(pc, options::nl_after_func_proto_group);
+ }
+ }
+
+ // Issue #411: Add blanks after function class prototypes
+ if ( ( chunk_is_token(prev, CT_SEMICOLON)
+ && get_chunk_parent_type(prev) == CT_FUNC_CLASS_PROTO)
+ || is_func_proto_group(prev, CT_FUNC_CLASS_DEF))
+ {
+ if (options::nl_after_func_class_proto() > pc->nl_count)
+ {
+ log_rule_B("nl_after_func_class_proto");
+ pc->nl_count = options::nl_after_func_class_proto();
+ MARK_CHANGE();
+ }
+
+ if ( (options::nl_after_func_class_proto_group() > pc->nl_count)
+ && chunk_is_not_token(next, CT_FUNC_CLASS_PROTO)
+ && get_chunk_parent_type(next) != CT_FUNC_CLASS_PROTO
+ && !is_func_proto_group(next, CT_FUNC_CLASS_DEF))
+ {
+ log_rule_B("nl_after_func_class_proto_group");
+ blank_line_set(pc, options::nl_after_func_class_proto_group);
+ }
+ }
+
+ // Add blanks after struct/enum/union/class
+ if ( ( chunk_is_token(prev, CT_SEMICOLON)
+ || chunk_is_token(prev, CT_BRACE_CLOSE))
+ && ( get_chunk_parent_type(prev) == CT_STRUCT
+ || get_chunk_parent_type(prev) == CT_ENUM
+ || get_chunk_parent_type(prev) == CT_UNION
+ || get_chunk_parent_type(prev) == CT_CLASS))
+ {
+ auto &opt = (get_chunk_parent_type(prev) == CT_CLASS
+ ? options::nl_after_class
+ : options::nl_after_struct);
+ log_rule_B("nl_after_class");
+ log_rule_B("nl_after_struct");
+
+ if (opt() > pc->nl_count)
+ {
+ // Issue #1702
+ // look back if we have a variable
+ Chunk *tmp = pc;
+ bool is_var_def = false;
+ bool is_fwd_decl = false;
+
+ while ((tmp = tmp->GetPrev())->IsNotNullChunk())
+ {
+ if (tmp->level > pc->level)
+ {
+ continue;
+ }
+ LOG_FMT(LBLANK, "%s(%d): %zu:%zu token is '%s'\n",
+ __func__, __LINE__, tmp->orig_line, tmp->orig_col, tmp->Text());
+
+ if (tmp->flags.test(PCF_VAR_DEF))
+ {
+ is_var_def = true;
+ break;
+ }
+
+ if (chunk_is_token(tmp, get_chunk_parent_type(prev)))
+ {
+ is_fwd_decl = tmp->flags.test(PCF_INCOMPLETE);
+ break;
+ }
+ }
+ LOG_FMT(LBLANK, "%s(%d): var_def = %s, fwd_decl = %s\n",
+ __func__, __LINE__,
+ is_var_def ? "yes" : "no",
+ is_fwd_decl ? "yes" : "no");
+
+ if ( !is_var_def
+ && !is_fwd_decl)
+ {
+ blank_line_set(pc, opt);
+ }
+ }
+ }
+
+ // Change blanks between a function comment and body
+ if ( (options::nl_comment_func_def() != 0)
+ && chunk_is_token(pcmt, CT_COMMENT_MULTI)
+ && get_chunk_parent_type(pcmt) == CT_COMMENT_WHOLE
+ && next->IsNotNullChunk()
+ && ( get_chunk_parent_type(next) == CT_FUNC_DEF
+ || get_chunk_parent_type(next) == CT_FUNC_CLASS_DEF))
+ {
+ log_rule_B("nl_comment_func_def");
+
+ if (options::nl_comment_func_def() != pc->nl_count)
+ {
+ log_rule_B("nl_comment_func_def");
+ blank_line_set(pc, options::nl_comment_func_def);
+ }
+ }
+
+ // Change blanks after a try-catch-finally block
+ if ( (options::nl_after_try_catch_finally() != 0)
+ && (options::nl_after_try_catch_finally() != pc->nl_count)
+ && prev != nullptr
+ && next->IsNotNullChunk())
+ {
+ log_rule_B("nl_after_try_catch_finally");
+
+ if ( chunk_is_token(prev, CT_BRACE_CLOSE)
+ && ( get_chunk_parent_type(prev) == CT_CATCH
+ || get_chunk_parent_type(prev) == CT_FINALLY))
+ {
+ if ( chunk_is_not_token(next, CT_BRACE_CLOSE)
+ && chunk_is_not_token(next, CT_CATCH)
+ && chunk_is_not_token(next, CT_FINALLY))
+ {
+ blank_line_set(pc, options::nl_after_try_catch_finally);
+ log_rule_B("nl_after_try_catch_finally");
+ }
+ }
+ }
+
+ // Change blanks after a try-catch-finally block
+ if ( (options::nl_between_get_set() != 0)
+ && (options::nl_between_get_set() != pc->nl_count)
+ && prev != nullptr
+ && next->IsNotNullChunk())
+ {
+ log_rule_B("nl_between_get_set");
+
+ if ( get_chunk_parent_type(prev) == CT_GETSET
+ && chunk_is_not_token(next, CT_BRACE_CLOSE)
+ && ( chunk_is_token(prev, CT_BRACE_CLOSE)
+ || chunk_is_token(prev, CT_SEMICOLON)))
+ {
+ blank_line_set(pc, options::nl_between_get_set);
+ log_rule_B("nl_between_get_set");
+ }
+ }
+
+ // Change blanks after a try-catch-finally block
+ if ( (options::nl_around_cs_property() != 0)
+ && (options::nl_around_cs_property() != pc->nl_count)
+ && prev != nullptr
+ && next->IsNotNullChunk())
+ {
+ log_rule_B("nl_around_cs_property");
+
+ if ( chunk_is_token(prev, CT_BRACE_CLOSE)
+ && get_chunk_parent_type(prev) == CT_CS_PROPERTY
+ && chunk_is_not_token(next, CT_BRACE_CLOSE))
+ {
+ blank_line_set(pc, options::nl_around_cs_property);
+ log_rule_B("nl_around_cs_property");
+ }
+ else if ( get_chunk_parent_type(next) == CT_CS_PROPERTY
+ && next->flags.test(PCF_STMT_START))
+ {
+ blank_line_set(pc, options::nl_around_cs_property);
+ log_rule_B("nl_around_cs_property");
+ }
+ }
+
+ // Control blanks before an access spec
+ if ( (options::nl_before_access_spec() > 0)
+ && (options::nl_before_access_spec() != pc->nl_count)
+ && chunk_is_token(next, CT_ACCESS))
+ {
+ log_rule_B("nl_before_access_spec");
+
+ // Don't add blanks after an open brace
+ if ( prev == nullptr
+ || ( chunk_is_not_token(prev, CT_BRACE_OPEN)
+ && chunk_is_not_token(prev, CT_VBRACE_OPEN)))
+ {
+ log_rule_B("nl_before_access_spec");
+ blank_line_set(pc, options::nl_before_access_spec);
+ }
+ }
+
+ // Change blanks inside namespace braces
+ if ( (options::nl_inside_namespace() != 0)
+ && (options::nl_inside_namespace() != pc->nl_count)
+ && ( ( chunk_is_token(prev, CT_BRACE_OPEN)
+ && get_chunk_parent_type(prev) == CT_NAMESPACE)
+ || ( chunk_is_token(next, CT_BRACE_CLOSE)
+ && get_chunk_parent_type(next) == CT_NAMESPACE)))
+ {
+ log_rule_B("nl_inside_namespace");
+ blank_line_set(pc, options::nl_inside_namespace);
+ }
+
+ // Control blanks before a whole-file #ifdef
+ if ( options::nl_before_whole_file_ifdef() != 0
+ && options::nl_before_whole_file_ifdef() != pc->nl_count
+ && chunk_is_token(next, CT_PREPROC)
+ && get_chunk_parent_type(next) == CT_PP_IF
+ && ifdef_over_whole_file()
+ && next->flags.test(PCF_WF_IF))
+ {
+ log_rule_B("nl_before_whole_file_ifdef");
+ blank_line_set(pc, options::nl_before_whole_file_ifdef);
+ }
+
+ // Control blanks after a whole-file #ifdef
+ if ( options::nl_after_whole_file_ifdef() != 0
+ && options::nl_after_whole_file_ifdef() != pc->nl_count)
+ {
+ Chunk *pp_start = chunk_get_pp_start(prev);
+
+ if ( pp_start != nullptr
+ && get_chunk_parent_type(pp_start) == CT_PP_IF
+ && ifdef_over_whole_file()
+ && pp_start->flags.test(PCF_WF_IF))
+ {
+ log_rule_B("nl_after_whole_file_ifdef");
+ blank_line_set(pc, options::nl_after_whole_file_ifdef);
+ }
+ }
+
+ // Control blanks before a whole-file #endif
+ if ( options::nl_before_whole_file_endif() != 0
+ && options::nl_before_whole_file_endif() != pc->nl_count
+ && chunk_is_token(next, CT_PREPROC)
+ && get_chunk_parent_type(next) == CT_PP_ENDIF
+ && ifdef_over_whole_file()
+ && next->flags.test(PCF_WF_ENDIF))
+ {
+ log_rule_B("nl_before_whole_file_endif");
+ blank_line_set(pc, options::nl_before_whole_file_endif);
+ }
+
+ // Control blanks after a whole-file #endif
+ if ( options::nl_after_whole_file_endif() != 0
+ && options::nl_after_whole_file_endif() != pc->nl_count)
+ {
+ Chunk *pp_start = chunk_get_pp_start(prev);
+
+ if ( pp_start != nullptr
+ && get_chunk_parent_type(pp_start) == CT_PP_ENDIF
+ && ifdef_over_whole_file()
+ && pp_start->flags.test(PCF_WF_ENDIF))
+ {
+ log_rule_B("nl_after_whole_file_endif");
+ blank_line_set(pc, options::nl_after_whole_file_endif);
+ }
+ }
+
+ if ( line_added
+ && pc->nl_count > 1)
+ {
+ --pc->nl_count;
+ LOG_FMT(LBLANK, "%s(%d): orig_line is %zu, orig_col is %zu, text is '%s', -- nl_count is now %zu\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), pc->nl_count);
+ }
+ LOG_FMT(LBLANK, "%s(%d): orig_line is %zu, orig_col is %zu, text is '%s', end nl_count is now %zu\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), pc->nl_count);
+ }
+} // do_blank_lines
+
+
+void newlines_cleanup_dup(void)
+{
+ LOG_FUNC_ENTRY();
+
+ Chunk *pc = Chunk::GetHead();
+ Chunk *next = pc;
+
+ while (pc->IsNotNullChunk())
+ {
+ next = next->GetNext();
+
+ if ( chunk_is_token(pc, CT_NEWLINE)
+ && chunk_is_token(next, CT_NEWLINE))
+ {
+ next->nl_count = max(pc->nl_count, next->nl_count);
+ chunk_del(pc);
+ MARK_CHANGE();
+ }
+ pc = next;
+ }
+} // newlines_cleanup_dup
+
+
+static void newlines_enum_entries(Chunk *open_brace, iarf_e av)
+{
+ LOG_FUNC_ENTRY();
+
+ Chunk *pc = Chunk::NullChunkPtr;
+
+ if (open_brace != nullptr)
+ {
+ pc = open_brace;
+ }
+
+ while ( (pc = pc->GetNextNc())->IsNotNullChunk()
+ && pc->level > open_brace->level)
+ {
+ if ( (pc->level != (open_brace->level + 1))
+ || chunk_is_not_token(pc, CT_COMMA)
+ || ( chunk_is_token(pc, CT_COMMA)
+ && pc->GetNext()->IsNotNullChunk()
+ && ( pc->GetNext()->type == CT_COMMENT_CPP
+ || pc->GetNext()->type == CT_COMMENT)))
+ {
+ continue;
+ }
+ newline_iarf(pc, av);
+ }
+ newline_iarf(open_brace, av);
+} // newlines_enum_entries
+
+
+static void newlines_double_space_struct_enum_union(Chunk *open_brace)
+{
+ LOG_FUNC_ENTRY();
+
+ Chunk *pc = Chunk::NullChunkPtr;
+
+ if (open_brace != nullptr)
+ {
+ pc = open_brace;
+ }
+
+ while ( (pc = pc->GetNextNc())->IsNotNullChunk()
+ && pc->level > open_brace->level)
+ {
+ if ( pc->level != (open_brace->level + 1)
+ || chunk_is_not_token(pc, CT_NEWLINE))
+ {
+ continue;
+ }
+ /*
+ * If the newline is NOT after a comment or a brace open and
+ * it is before a comment, then make sure that the newline is
+ * at least doubled
+ */
+ Chunk *prev = pc->GetPrev();
+
+ if ( !prev->IsComment()
+ && chunk_is_not_token(prev, CT_BRACE_OPEN)
+ && pc->GetNext()->IsComment())
+ {
+ if (pc->nl_count < 2)
+ {
+ double_newline(pc);
+ }
+ }
+ }
+} // newlines_double_space_struct_enum_union
+
+
+void annotations_newlines(void)
+{
+ LOG_FUNC_ENTRY();
+
+ Chunk *next;
+ Chunk *prev;
+ Chunk *ae; // last token of the annotation
+ Chunk *pc = Chunk::GetHead();
+
+ while ( (pc = pc->GetNextType(CT_ANNOTATION, -1))->IsNotNullChunk()
+ && (next = pc->GetNextNnl())->IsNotNullChunk())
+ {
+ // find the end of this annotation
+ if (chunk_is_paren_open(next))
+ {
+ // TODO: control newline between annotation and '(' ?
+ ae = chunk_skip_to_match(next);
+ }
+ else
+ {
+ ae = pc;
+ }
+
+ if (ae->IsNullChunk())
+ {
+ break;
+ }
+ LOG_FMT(LANNOT, "%s(%d): orig_line is %zu, orig_col is %zu, annotation is '%s', end @ orig_line %zu, orig_col %zu, is '%s'\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(),
+ ae->orig_line, ae->orig_col, ae->Text());
+
+ prev = ae->GetPrev(); // Issue #1845
+ LOG_FMT(LANNOT, "%s(%d): prev->orig_line is %zu, orig_col is %zu, Text() is '%s'\n",
+ __func__, __LINE__, prev->orig_line, prev->orig_col, prev->Text());
+ next = ae->GetNextNnl();
+
+ if (chunk_is_token(next, CT_ANNOTATION))
+ {
+ LOG_FMT(LANNOT, "%s(%d): -- nl_between_annotation\n",
+ __func__, __LINE__);
+ newline_iarf(ae, options::nl_between_annotation());
+ log_rule_B("nl_between_annotation");
+ }
+
+ if (chunk_is_token(next, CT_NEWLINE))
+ {
+ if (chunk_is_token(next, CT_ANNOTATION))
+ {
+ LOG_FMT(LANNOT, "%s(%d): -- nl_after_annotation\n",
+ __func__, __LINE__);
+ newline_iarf(ae, options::nl_after_annotation());
+ log_rule_B("nl_after_annotation");
+ }
+ }
+ }
+} // annotations_newlines
+
+
+bool newlines_between(Chunk *pc_start, Chunk *pc_end, size_t &newlines, E_Scope scope)
+{
+ if ( pc_start == nullptr
+ || pc_end == nullptr)
+ {
+ return(false);
+ }
+ newlines = 0;
+
+ Chunk *it = pc_start;
+
+ for ( ; it->IsNotNullChunk() && it != pc_end; it = it->GetNext(scope))
+ {
+ newlines += it->nl_count;
+ }
+
+ // newline count is valid if search stopped on expected chunk
+ return(it == pc_end);
+} // newlines_between
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/newlines.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/newlines.h
new file mode 100644
index 00000000..b5c7db03
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/newlines.h
@@ -0,0 +1,206 @@
+/**
+ * @file newlines.h
+ * prototypes for newlines.c
+ *
+ * @author Ben Gardner
+ * @license GPL v2+
+ */
+
+#ifndef NEWLINES_H_INCLUDED
+#define NEWLINES_H_INCLUDED
+
+#include "chunk.h"
+
+/**
+ * Double the newline, if allowed.
+ */
+void double_newline(Chunk *nl);
+
+/**
+ * Remove all extra newlines.
+ * Modify line breaks as needed.
+ */
+void newlines_remove_newlines(void);
+
+
+/**
+ * Remove all newlines that fail the checks performed by the can_increase_nl() function
+ */
+void newlines_remove_disallowed();
+
+
+/** Step through all chunks, altering newlines inside parens of if/for/while/do as needed.
+ * Handles the style options: nl_multi_line_sparen_open, nl_multi_line_sparen_close, nl_before_if_closing_paren
+ */
+void newlines_sparens();
+
+//! Step through all chunks.
+void newlines_cleanup_braces(bool first);
+
+
+void newlines_cleanup_angles();
+
+
+//! Handle insertion/removal of blank lines before if/for/while/do and functions
+void newlines_insert_blank_lines(void);
+
+
+/**
+ * Handle removal of extra blank lines in functions
+ * x <= 0: do nothing, x > 0: allow max x-1 blank lines
+ */
+void newlines_functions_remove_extra_blank_lines(void);
+
+
+void newlines_squeeze_ifdef(void);
+
+/**
+ * In case of consecutive closing parens, which follow a newline,
+ * the closing paren are altered to different lines, as per the respective opening parens.
+ * In the given example, first 2 opening paren are in same line, hence the respective closing paren are put in the same line.
+ * input:
+ * func1(func2(
+ * func3(
+ * func4(
+ * )
+ * )
+ * )
+ * );
+ * output:
+ * func1(func2(
+ * func3(
+ * func4(
+ * )
+ * )
+ * ));
+ */
+void newlines_squeeze_paren_close(void);
+
+
+//! removes unnecessary newlines at start and end of a file
+void newlines_eat_start_end(void);
+
+
+/**
+ * Searches for a chunk of type chunk_type and moves them, if needed.
+ * Will not move tokens that are on their own line or have other than
+ * exactly 1 newline before (UO_pos_comma == TRAIL) or after (UO_pos_comma == LEAD).
+ * We can't remove a newline if it is right before a preprocessor.
+ */
+void newlines_chunk_pos(E_Token chunk_type, uncrustify::token_pos_e mode);
+
+
+/**
+ * Searches for CT_CLASS_COLON and moves them, if needed.
+ * Also breaks up the args
+ */
+void newlines_class_colon_pos(E_Token tok);
+
+
+void newlines_cleanup_dup(void);
+
+
+void annotations_newlines(void);
+
+
+void newline_after_multiline_comment(void);
+
+
+//! Handle insertion of blank lines after label colons
+void newline_after_label_colon(void);
+
+
+/**
+ * Scans for newline tokens and changes the nl_count.
+ * A newline token has a minimum nl_count of 1.
+ * Note that a blank line is actually 2 newlines, unless the newline is the
+ * first chunk.
+ * So, most comparisons have +1 below.
+ */
+void do_blank_lines(void);
+
+
+/**
+ * Clears the PCF_ONE_LINER flag on the current line.
+ * Done right before inserting a newline.
+ */
+void undo_one_liner(Chunk *pc);
+
+
+/**
+ * Does a simple Ignore, Add, Remove, or Force after the given chunk
+ *
+ * @param pc The chunk
+ * @param av The IARF value
+ */
+void newline_iarf(Chunk *pc, uncrustify::iarf_e av);
+
+
+/**
+ * Add a newline before the chunk if there isn't already a newline present.
+ * Virtual braces are skipped, as they do not contribute to the output.
+ */
+Chunk *newline_add_before(Chunk *pc);
+
+
+/**
+ * Add a newline after the chunk if there isn't already a newline present.
+ * Virtual braces are skipped, as they do not contribute to the output.
+ */
+Chunk *newline_force_before(Chunk *pc);
+
+
+Chunk *newline_add_after(Chunk *pc);
+
+
+Chunk *newline_force_after(Chunk *pc);
+
+
+/**
+ * Removes any CT_NEWLINE or CT_NL_CONT between start and end.
+ * Start must be before end on the chunk list.
+ * If the 'PCF_IN_PREPROC' status differs between two tags, we can't remove
+ * the newline.
+ *
+ * @param start The starting chunk (if it is a newline, it will be removed!)
+ * @param end The ending chunk (will not be removed, even if it is a newline)
+ *
+ * @return true/false - removed something
+ */
+void newline_del_between(Chunk *start, Chunk *end);
+
+
+/**
+ * Add a newline between two tokens.
+ * If there is already a newline between then, nothing is done.
+ * Otherwise a newline is inserted.
+ *
+ * If end is CT_BRACE_OPEN and a comment and newline follow, then
+ * the brace open is moved instead of inserting a newline.
+ *
+ * In this situation:
+ * if (...) { //comment
+ *
+ * you get:
+ * if (...) //comment
+ * {
+ */
+Chunk *newline_add_between(Chunk *start, Chunk *end);
+
+
+/**
+ * Counts newlines between two chunk elements
+ *
+ * @param pc_start chunk from which the counting of newlines will start
+ * @param pc_end chunk at which the counting of newlines will end
+ * @param newlines reference in which the amount of newlines will be written to
+ * (will be initialized with 0)
+ * @param scope specifies region chunks should/should not be considered.
+ *
+ * @return false if pc_start or pc_end are nullptr or if pc_end is not reached
+ * @return true if above cases are not met
+ */
+bool newlines_between(Chunk *pc_start, Chunk *pc_end, size_t &newlines, E_Scope scope = E_Scope::ALL);
+
+
+#endif /* NEWLINES_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/option.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/option.cpp
new file mode 100644
index 00000000..8160c22b
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/option.cpp
@@ -0,0 +1,1275 @@
+/**
+ * @file option.cpp
+ * Parses the options from the config file.
+ *
+ * @author Ben Gardner
+ * @author Guy Maurel October 2015, 2021
+ * @author Matthew Woehlke since version 0.67
+ * @license GPL v2+
+ */
+
+#include "option.h"
+
+#include "keywords.h"
+#include "uncrustify.h"
+#include "uncrustify_version.h"
+
+#include <fstream>
+#include <unordered_map>
+
+#include <cctype> // to get std::tolower
+#include <cstdarg> // to get va_start, va_end
+
+
+namespace uncrustify
+{
+
+namespace
+{
+
+static const char *DOC_TEXT_END = u8R"___(
+# Meaning of the settings:
+# Ignore - do not do any changes
+# Add - makes sure there is 1 or more space/brace/newline/etc
+# Force - makes sure there is exactly 1 space/brace/newline/etc,
+# behaves like Add in some contexts
+# Remove - removes space/brace/newline/etc
+#
+#
+# - Token(s) can be treated as specific type(s) with the 'set' option:
+# `set tokenType tokenString [tokenString...]`
+#
+# Example:
+# `set BOOL __AND__ __OR__`
+#
+# tokenTypes are defined in src/token_enum.h, use them without the
+# 'CT_' prefix: 'CT_BOOL' => 'BOOL'
+#
+#
+# - Token(s) can be treated as type(s) with the 'type' option.
+# `type tokenString [tokenString...]`
+#
+# Example:
+# `type int c_uint_8 Rectangle`
+#
+# This can also be achieved with `set TYPE int c_uint_8 Rectangle`
+#
+#
+# To embed whitespace in tokenStrings use the '\' escape character, or quote
+# the tokenStrings. These quotes are supported: "'`
+#
+#
+# - Support for the auto detection of languages through the file ending can be
+# added using the 'file_ext' command.
+# `file_ext langType langString [langString..]`
+#
+# Example:
+# `file_ext CPP .ch .cxx .cpp.in`
+#
+# langTypes are defined in uncrusify_types.h in the lang_flag_e enum, use
+# them without the 'LANG_' prefix: 'LANG_CPP' => 'CPP'
+#
+#
+# - Custom macro-based indentation can be set up using 'macro-open',
+# 'macro-else' and 'macro-close'.
+# `(macro-open | macro-else | macro-close) tokenString`
+#
+# Example:
+# `macro-open BEGIN_TEMPLATE_MESSAGE_MAP`
+# `macro-open BEGIN_MESSAGE_MAP`
+# `macro-close END_MESSAGE_MAP`
+#
+#
+)___";
+
+
+std::vector<OptionGroup> option_groups;
+std::unordered_map<std::string, GenericOption *> option_map;
+
+#define LOG_CONFIG(...) \
+ log_config(); LOG_FMT(LNOTE, __VA_ARGS__);
+
+
+//-----------------------------------------------------------------------------
+constexpr int option_level(int major, int minor, int patch = 0)
+{
+ return((major << 20) | (minor << 10) | (patch << 0));
+}
+
+
+//-----------------------------------------------------------------------------
+void log_config()
+{
+ // Print the name of the configuration file only once
+ static bool config_name_logged = false;
+
+ if (!config_name_logged)
+ {
+ LOG_FMT(LNOTE, "log_config: the configuration file is: %s\n",
+ cpd.filename.c_str());
+ config_name_logged = true;
+ }
+}
+
+
+//-----------------------------------------------------------------------------
+// This identity function exists so that all Option<T>::str can simply call
+// to_string(m_val); this function will be used by Option<string>
+std::string to_string(const std::string &in)
+{
+ return(in);
+}
+
+using std::to_string;
+
+
+//-----------------------------------------------------------------------------
+std::string to_lower(const char *in, std::string::size_type size = 0)
+{
+ std::string out;
+
+ if (size > 0)
+ {
+ out.reserve(size);
+ }
+
+ while (*in)
+ {
+ out += static_cast<char>(std::tolower(*in));
+ ++in;
+ }
+ return(out);
+}
+
+
+//-----------------------------------------------------------------------------
+std::string to_lower(const std::string &in)
+{
+ return(to_lower(in.data(), in.size()));
+}
+
+
+//-----------------------------------------------------------------------------
+bool is_arg_sep(int ch)
+{
+ return( isspace(ch)
+ || ch == ','
+ || ch == '=');
+}
+
+
+//-----------------------------------------------------------------------------
+bool is_varg_sep(int ch)
+{
+ return(ch == '.');
+}
+
+
+//-----------------------------------------------------------------------------
+std::vector<std::string> split_args(std::string in, const char *filename,
+ bool (*is_sep)(int))
+{
+ std::vector<std::string> out;
+ std::string::size_type n = 0;
+ std::string::size_type k = in.size();
+
+ // Parse input string
+ while (n < k)
+ {
+ // Skip leading space
+ while ( n < k
+ && is_sep(in[n]))
+ {
+ ++n;
+ }
+
+ // Detect comments or trailing space
+ if ( n >= k
+ || in[n] == '#')
+ {
+ break;
+ }
+
+ // Detect and extract quoted string
+ if (const auto *quote = strchr("\'\"`", in[n]))
+ {
+ const auto start = ++n;
+
+ for ((void)n; in[n] != *quote; ++n)
+ {
+ if ( n < k
+ && in[n] == '\\')
+ {
+ in.erase(n, 1);
+ --k;
+ }
+
+ if (n >= k)
+ {
+ OptionWarning w{ filename };
+ w("found unterminated quoted-string");
+ return{};
+ }
+ }
+
+ out.push_back(in.substr(start, n - start));
+
+ if ( ++n < k
+ && !is_sep(in[n]))
+ {
+ OptionWarning w{ filename };
+ w("unexpected text following quoted-string");
+ return{};
+ }
+ continue;
+ }
+ // Extract anything else
+ const auto start = n;
+
+ for ((void)n;
+ ( n < k
+ && !is_sep(in[n]));
+ ++n)
+ {
+ if (in[n] == '\\')
+ {
+ in.erase(n, 1);
+ --k;
+ }
+
+ if (n >= k)
+ {
+ OptionWarning w{ filename };
+ w("found unterminated quoted-string");
+ return{};
+ }
+ }
+
+ out.push_back(in.substr(start, n - start));
+ }
+ return(out);
+} // split_args
+
+
+//-----------------------------------------------------------------------------
+bool is_path_relative(const std::string &path)
+{
+ assert(!path.empty());
+
+#ifdef WIN32
+ // Check for partition labels as indication for an absolute path
+ // 'X:\path\to\file' style absolute disk path
+ if ( path.size() > 1
+ && isalpha(path[0])
+ && path[1] == ':')
+ {
+ return(false);
+ }
+
+ // Check for double backslashs as indication for a network path
+ // '\\server\path\to\file style' absolute UNC path
+ if ( path.size() > 1
+ && path[0] == '\\'
+ && path[1] == '\\')
+ {
+ return(false);
+ }
+#endif
+
+ // Check for a slash as indication for a filename with leading path
+ // '/path/to/file' style absolute path
+ return(path[0] != '/');
+}
+
+
+//-----------------------------------------------------------------------------
+void print_description(FILE *pfile, std::string description,
+ const char *eol_marker)
+{
+ // Descriptions always start with a '\n', so skip the first character
+ for (std::string::size_type start = 1, length = description.length();
+ ( start != std::string::npos
+ && start < length);
+ ++start)
+ {
+ // Check for empty line so we can squelch trailing whitespace
+ if (description[start] == '\n')
+ {
+ fprintf(pfile, "#%s", eol_marker);
+ }
+ else
+ {
+ const auto end = description.find('\n', start);
+ fprintf(pfile, "# %s%s",
+ description.substr(start, end - start).c_str(), eol_marker);
+ start = end;
+ }
+ }
+}
+
+
+//-----------------------------------------------------------------------------
+bool process_option_line_compat_0_68(const std::string &cmd,
+ const std::vector<std::string> &args,
+ const char *filename)
+{
+ if (cmd == "sp_cpp_lambda_paren")
+ {
+ OptionWarning w{ filename, OptionWarning::MINOR };
+ w("option '%s' is deprecated; use '%s' instead",
+ cmd.c_str(), options::sp_cpp_lambda_square_paren.name());
+
+ UNUSED(options::sp_cpp_lambda_square_paren.read(args[1].c_str()));
+ return(true);
+ }
+ return(false);
+} // process_option_line_compat_0_68
+
+
+bool process_option_line_compat_0_70(const std::string &cmd,
+ const char *filename)
+{
+ if (cmd == "sp_word_brace") // Issue #2428
+ {
+ OptionWarning w{ filename, OptionWarning::MINOR };
+ w("option '%s' is deprecated; did you want to use '%s' instead?",
+ cmd.c_str(), options::sp_type_brace_init_lst.name());
+
+ //UNUSED(options::sp_type_brace_init_lst.read(args[1].c_str()));
+ return(true);
+ }
+ return(false);
+} // process_option_line_compat_0_70
+
+
+bool process_option_line_compat_0_73(const std::string &cmd,
+ const char *filename)
+{
+ if (cmd == "indent_sing_line_comments") // Issue #3249
+ {
+ OptionWarning w{ filename, OptionWarning::MINOR };
+ w("option '%s' is deprecated; did you want to use '%s' instead?",
+ cmd.c_str(), options::indent_single_line_comments_before.name());
+
+ //UNUSED(options::indent_single_line_comments_before.read(args[1].c_str()));
+ return(true);
+ }
+
+ if (cmd == "sp_before_tr_emb_cmt") // Issue #3339
+ {
+ OptionWarning w{ filename, OptionWarning::MINOR };
+ w("option '%s' is deprecated; did you want to use '%s' instead?",
+ cmd.c_str(), options::sp_before_tr_cmt.name());
+
+ //UNUSED(options::sp_before_tr_cmt.read(args[1].c_str()));
+ return(true);
+ }
+
+ if (cmd == "sp_num_before_tr_emb_cmt") // Issue #3339
+ {
+ OptionWarning w{ filename, OptionWarning::MINOR };
+ w("option '%s' is deprecated; did you want to use '%s' instead?",
+ cmd.c_str(), options::sp_num_before_tr_cmt.name());
+
+ //UNUSED(options::sp_num_before_tr_cmt.read(args[1].c_str()));
+ return(true);
+ }
+ return(false);
+} // process_option_line_compat_0_73
+
+
+bool process_option_line_compat_0_74(const std::string &cmd,
+ const char *filename)
+{
+ if (cmd == "sp_type_question") // PR #3638
+ {
+ OptionWarning w{ filename, OptionWarning::MINOR };
+ w("option '%s' is deprecated; did you want to use '%s' instead?",
+ cmd.c_str(), options::sp_before_ptr_star.name());
+
+ return(true);
+ }
+ return(false);
+} // process_option_line_compat_0_74
+
+} // namespace
+
+///////////////////////////////////////////////////////////////////////////////
+
+//BEGIN Option<T> and helpers
+
+
+//-----------------------------------------------------------------------------
+OptionWarning::OptionWarning(const char *filename, Severity severity)
+{
+ if (severity != MINOR)
+ {
+ ++cpd.error_count;
+ }
+
+ if (cpd.line_number != 0)
+ {
+ fprintf(stderr, "%s:%u: ", filename, cpd.line_number);
+ }
+ else
+ {
+ fprintf(stderr, "%s: ", filename);
+ }
+}
+
+
+//-----------------------------------------------------------------------------
+OptionWarning::OptionWarning(const GenericOption *opt, Severity severity)
+{
+ if (severity != MINOR)
+ {
+ ++cpd.error_count;
+ }
+ fprintf(stderr, "Option<%s>: at %s:%d: ", to_string(opt->type()),
+ cpd.filename.c_str(), cpd.line_number);
+}
+
+
+//-----------------------------------------------------------------------------
+OptionWarning::~OptionWarning()
+{
+ fprintf(stderr, "\n");
+ log_flush(true);
+}
+
+
+//-----------------------------------------------------------------------------
+void OptionWarning::operator()(const char *fmt, ...)
+{
+ va_list args;
+
+ va_start(args, fmt);
+ vfprintf(stderr, fmt, args);
+ va_end(args);
+}
+
+
+//-----------------------------------------------------------------------------
+void GenericOption::warnUnexpectedValue(const char *actual) const
+{
+ OptionWarning w{ this };
+
+ auto values = possibleValues();
+
+ if (values[1] == nullptr)
+ {
+ w("Expected %s ", *values);
+ }
+ else
+ {
+ w("Expected one of ");
+
+ while (*values)
+ {
+ w("'%s'", *values);
+
+ if (*(++values))
+ {
+ w(", ");
+ }
+ }
+ }
+ w(", for '%s'; got '%s'", name(), actual);
+}
+
+
+//-----------------------------------------------------------------------------
+void GenericOption::warnIncompatibleReference(const GenericOption *ref) const
+{
+ OptionWarning w{ this };
+
+ w("%s references option %s with incompatible type %s",
+ name(), ref->name(), to_string(ref->type()));
+}
+
+
+//-----------------------------------------------------------------------------
+template<typename T>
+bool read_enum(const char *in, Option<T> &out)
+{
+ assert(in);
+
+ if (convert_string(in, out.m_val))
+ {
+ return(true);
+ }
+
+ if (const auto *const opt = find_option(in))
+ {
+ if (opt->type() != out.type())
+ {
+ out.warnIncompatibleReference(opt);
+ return(false);
+ }
+ auto &topt = *static_cast<const Option<T> *>(opt);
+ out.m_val = topt();
+ return(true);
+ }
+ out.warnUnexpectedValue(in);
+ return(false);
+}
+
+
+//-----------------------------------------------------------------------------
+template<typename T>
+bool read_number(const char *in, Option<T> &out)
+{
+ assert(in);
+
+ char *c;
+ const auto val = std::strtol(in, &c, 10);
+
+ if ( *c == 0
+ && out.validate(val))
+ {
+ out.m_val = static_cast<T>(val);
+ return(true);
+ }
+ bool invert = false;
+
+ if (strchr("-", in[0]))
+ {
+ invert = true;
+ ++in;
+ }
+
+ if (const auto *const opt = find_option(in))
+ {
+ LOG_CONFIG("%s(%d): line_number is %d, option(%s) %s, ref(%s) %s\n",
+ __func__, __LINE__, cpd.line_number,
+ to_string(out.type()), out.name(),
+ to_string(opt->type()), opt->name());
+
+ long tval;
+
+ if (opt->type() == OT_NUM)
+ {
+ auto &sopt = *static_cast<const Option<signed> *>(opt);
+ tval = static_cast<long>(sopt());
+ }
+ else if (opt->type() == OT_UNUM)
+ {
+ auto &uopt = *static_cast<const Option<unsigned> *>(opt);
+ tval = static_cast<long>(uopt());
+ }
+ else
+ {
+ out.warnIncompatibleReference(opt);
+ return(false);
+ }
+ const auto rval = (invert ? -tval : tval);
+
+ if (out.validate(rval))
+ {
+ out.m_val = static_cast<T>(rval);
+ return(true);
+ }
+ return(false);
+ }
+ out.warnUnexpectedValue(in);
+ return(false);
+} // read_number
+
+
+//-----------------------------------------------------------------------------
+template<typename T>
+void Option<T>::reset()
+{
+ m_val = m_default;
+}
+
+
+//-----------------------------------------------------------------------------
+template<typename T>
+std::string Option<T>::str() const
+{
+ return(to_string(m_val));
+}
+
+
+//-----------------------------------------------------------------------------
+template<typename T>
+std::string Option<T>::defaultStr() const
+{
+ return(m_default != T{} ? to_string(m_default) : std::string{});
+}
+
+// Explicit instantiations
+template class Option<bool>;
+template class Option<iarf_e>;
+template class Option<line_end_e>;
+template class Option<token_pos_e>;
+template class Option<signed>;
+template class Option<unsigned>;
+template class Option<std::string>;
+
+//END Option<T> and helpers
+
+///////////////////////////////////////////////////////////////////////////////
+
+//BEGIN Option<bool>
+
+
+//-----------------------------------------------------------------------------
+template<>
+option_type_e Option<bool>::type() const
+{
+ return(OT_BOOL);
+}
+
+
+//-----------------------------------------------------------------------------
+template<>
+const char *const *Option<bool>::possibleValues() const
+{
+ static char const *values[] = { "true", "false", nullptr };
+
+ return(values);
+}
+
+
+//-----------------------------------------------------------------------------
+template<>
+bool Option<bool>::read(const char *in)
+{
+ assert(in);
+
+ if (convert_string(in, m_val))
+ {
+ return(true);
+ }
+ bool invert = false;
+
+ if (strchr("~!-", in[0]))
+ {
+ invert = true;
+ ++in;
+ }
+
+ if (const auto *const opt = find_option(in))
+ {
+ if (opt->type() != OT_BOOL)
+ {
+ warnIncompatibleReference(opt);
+ return(false);
+ }
+ auto &bopt = *static_cast<const Option<bool> *>(opt);
+ m_val = (invert ? !bopt() : bopt());
+ return(true);
+ }
+ warnUnexpectedValue(in);
+ return(false);
+}
+
+//END Option<bool>
+
+///////////////////////////////////////////////////////////////////////////////
+
+//BEGIN Option<iarf_e>
+
+
+//-----------------------------------------------------------------------------
+template<>
+option_type_e Option<iarf_e>::type() const
+{
+ return(OT_IARF);
+}
+
+
+//-----------------------------------------------------------------------------
+template<>
+const char *const *Option<iarf_e>::possibleValues() const
+{
+ return(iarf_values);
+}
+
+
+//-----------------------------------------------------------------------------
+template<>
+bool Option<iarf_e>::read(const char *in)
+{
+ return(read_enum(in, *this));
+}
+
+//END Option<iarf_e>
+
+///////////////////////////////////////////////////////////////////////////////
+
+//BEGIN Option<line_end_e>
+
+
+//-----------------------------------------------------------------------------
+template<>
+option_type_e Option<line_end_e>::type() const
+{
+ return(OT_LINEEND);
+}
+
+
+//-----------------------------------------------------------------------------
+template<>
+const char *const *Option<line_end_e>::possibleValues() const
+{
+ return(line_end_values);
+}
+
+
+//-----------------------------------------------------------------------------
+template<>
+bool Option<line_end_e>::read(const char *in)
+{
+ return(read_enum(in, *this));
+}
+
+//END Option<line_end_e>
+
+///////////////////////////////////////////////////////////////////////////////
+
+//BEGIN Option<token_pos_e>
+
+
+//-----------------------------------------------------------------------------
+template<>
+option_type_e Option<token_pos_e>::type() const
+{
+ return(OT_TOKENPOS);
+}
+
+
+//-----------------------------------------------------------------------------
+template<>
+const char *const *Option<token_pos_e>::possibleValues() const
+{
+ return(token_pos_values);
+}
+
+
+//-----------------------------------------------------------------------------
+template<>
+bool Option<token_pos_e>::read(const char *in)
+{
+ return(read_enum(in, *this));
+}
+
+//END Option<token_pos_e>
+
+///////////////////////////////////////////////////////////////////////////////
+
+//BEGIN Option<signed>
+
+
+//-----------------------------------------------------------------------------
+template<>
+option_type_e Option<signed>::type() const
+{
+ return(OT_NUM);
+}
+
+
+//-----------------------------------------------------------------------------
+template<>
+const char *const *Option<signed>::possibleValues() const
+{
+ static char const *values[] = { "number", nullptr };
+
+ return(values);
+}
+
+
+//-----------------------------------------------------------------------------
+template<>
+bool Option<signed>::read(const char *in)
+{
+ return(read_number(in, *this));
+}
+
+//END Option<signed>
+
+///////////////////////////////////////////////////////////////////////////////
+
+//BEGIN Option<unsigned>
+
+
+//-----------------------------------------------------------------------------
+template<>
+option_type_e Option<unsigned>::type() const
+{
+ return(OT_UNUM);
+}
+
+
+//-----------------------------------------------------------------------------
+template<>
+const char *const *Option<unsigned>::possibleValues() const
+{
+ static char const *values[] = { "unsigned number", nullptr };
+
+ return(values);
+}
+
+
+//-----------------------------------------------------------------------------
+template<>
+bool Option<unsigned>::read(const char *in)
+{
+ return(read_number(in, *this));
+}
+
+//END Option<unsigned>
+
+///////////////////////////////////////////////////////////////////////////////
+
+//BEGIN Option<string>
+
+
+//-----------------------------------------------------------------------------
+template<>
+option_type_e Option<std::string>::type() const
+{
+ return(OT_STRING);
+}
+
+
+//-----------------------------------------------------------------------------
+template<>
+const char *const *Option<std::string>::possibleValues() const
+{
+ static char const *values[] = { "string", nullptr };
+
+ return(values);
+}
+
+
+//-----------------------------------------------------------------------------
+template<>
+bool Option<std::string>::read(const char *in)
+{
+ m_val = in;
+ return(true);
+}
+
+//END Option<string>
+
+///////////////////////////////////////////////////////////////////////////////
+
+//BEGIN global functions for options
+
+
+//-----------------------------------------------------------------------------
+void begin_option_group(const char *description)
+{
+ auto g = OptionGroup{ description, {} };
+
+ option_groups.push_back(g);
+}
+
+
+//-----------------------------------------------------------------------------
+void register_option(GenericOption *option)
+{
+ assert(!option_groups.empty());
+
+ option_groups.back().options.push_back(option);
+ option_map.emplace(option->name(), option);
+}
+
+
+//-----------------------------------------------------------------------------
+uncrustify::GenericOption *find_option(const char *name)
+{
+ const auto iter = option_map.find(to_lower(name));
+
+ if (iter != option_map.end())
+ {
+ return(iter->second);
+ }
+ return(nullptr);
+}
+
+
+//-----------------------------------------------------------------------------
+OptionGroup *get_option_group(size_t i)
+{
+ if (i >= option_groups.size())
+ {
+ return(nullptr);
+ }
+ return(&option_groups[i]);
+}
+
+
+//-----------------------------------------------------------------------------
+size_t get_option_count()
+{
+ return(option_map.size());
+}
+
+
+//-----------------------------------------------------------------------------
+void process_option_line(const std::string &config_line, const char *filename,
+ int &compat_level)
+{
+ // Split line into arguments, and punt if no arguments are present
+ auto args = split_args(config_line, filename, is_arg_sep);
+
+ if (args.empty())
+ {
+ return;
+ }
+ // Check for necessary arguments
+ const auto &cmd = to_lower(args.front());
+
+ if ( cmd == "set"
+ || cmd == "file_ext")
+ {
+ if (args.size() < 3)
+ {
+ OptionWarning w{ filename };
+ w("%s requires at least three arguments", cmd.c_str());
+ return;
+ }
+ }
+ else
+ {
+ if (args.size() < 2)
+ {
+ OptionWarning w{ filename };
+ w("%s requires at least two arguments", cmd.c_str());
+ return;
+ }
+ }
+
+ if (cmd == "type")
+ {
+ for (size_t i = 1; i < args.size(); ++i)
+ {
+ add_keyword(args[i], CT_TYPE);
+ }
+ }
+ else if (cmd == "macro-open")
+ {
+ add_keyword(args[1], CT_MACRO_OPEN);
+ }
+ else if (cmd == "macro-close")
+ {
+ add_keyword(args[1], CT_MACRO_CLOSE);
+ }
+ else if (cmd == "macro-else")
+ {
+ add_keyword(args[1], CT_MACRO_ELSE);
+ }
+ else if (cmd == "set")
+ {
+ const auto token = find_token_name(args[1].c_str());
+
+ if (token != CT_NONE)
+ {
+ LOG_FMT(LNOTE, "%s:%d set '%s':",
+ filename, cpd.line_number, args[1].c_str());
+
+ for (size_t i = 2; i < args.size(); ++i)
+ {
+ LOG_FMT(LNOTE, " '%s'", args[i].c_str());
+ add_keyword(args[i], token);
+ }
+
+ LOG_FMT(LNOTE, "\n");
+ }
+ else
+ {
+ OptionWarning w{ filename };
+ w("%s: unknown type '%s'", cmd.c_str(), args[1].c_str());
+ }
+ }
+#ifndef EMSCRIPTEN
+ else if (cmd == "include")
+ {
+ auto this_line_number = cpd.line_number;
+ const auto &include_path = args[1];
+
+ if (include_path.empty())
+ {
+ OptionWarning w{ filename };
+ w("include: path cannot be empty");
+ }
+ else if (is_path_relative(include_path))
+ {
+ // include is a relative path to the current config file
+ unc_text ut = std::string{ filename };
+ ut.resize(static_cast<unsigned>(path_dirname_len(filename)));
+ ut.append(include_path);
+ UNUSED(load_option_file(ut.c_str(), compat_level));
+ }
+ else
+ {
+ // include is an absolute path
+ UNUSED(load_option_file(include_path.c_str(), compat_level));
+ }
+ cpd.line_number = this_line_number;
+ }
+#endif
+ else if (cmd == "file_ext")
+ {
+ auto *const lang_arg = args[1].c_str();
+
+ for (size_t i = 2; i < args.size(); ++i)
+ {
+ auto *const lang_name = extension_add(args[i].c_str(), lang_arg);
+
+ if (lang_name)
+ {
+ LOG_FMT(LNOTE, "%s:%d file_ext '%s' => '%s'\n",
+ filename, cpd.line_number, args[i].c_str(), lang_name);
+ }
+ else
+ {
+ OptionWarning w{ filename };
+ w("file_ext: unknown language '%s'", lang_arg);
+ break;
+ }
+ }
+ }
+ else if (cmd == "using")
+ {
+ auto vargs = split_args(args[1], filename, is_varg_sep);
+
+ if (vargs.size() == 2)
+ {
+ compat_level = option_level(std::stoi(vargs[0]), std::stoi(vargs[1]));
+ }
+ else if (vargs.size() == 3)
+ {
+ compat_level = option_level(std::stoi(vargs[0]),
+ std::stoi(vargs[1]),
+ std::stoi(vargs[2]));
+ }
+ else
+ {
+ OptionWarning w{ filename };
+ w("%s requires a version number in the form MAJOR.MINOR[.PATCH]",
+ cmd.c_str());
+ }
+ }
+ else
+ {
+ // Must be a regular option = value
+ if (compat_level < option_level(0, 69))
+ {
+ if (process_option_line_compat_0_68(cmd, args, filename))
+ {
+ return;
+ }
+ }
+
+ if (compat_level < option_level(0, 71))
+ {
+ if (process_option_line_compat_0_70(cmd, filename))
+ {
+ return;
+ }
+ }
+
+ if (compat_level < option_level(0, 74))
+ {
+ if (process_option_line_compat_0_73(cmd, filename))
+ {
+ return;
+ }
+ }
+
+ if (compat_level < option_level(0, 75))
+ {
+ if (process_option_line_compat_0_74(cmd, filename))
+ {
+ return;
+ }
+ }
+ const auto oi = option_map.find(cmd);
+
+ if (oi == option_map.end())
+ {
+ OptionWarning w{ filename };
+ w("unknown option '%s'", args[0].c_str());
+ }
+ else
+ {
+ UNUSED(oi->second->read(args[1].c_str()));
+ }
+ }
+} // process_option_line
+
+
+//-----------------------------------------------------------------------------
+bool load_option_file(const char *filename, int compat_level)
+{
+ cpd.line_number = 0;
+
+#ifdef WIN32
+ // "/dev/null" not understood by "fopen" in Windows
+ if (strcasecmp(filename, "/dev/null") == 0)
+ {
+ return(true);
+ }
+#endif
+
+ std::ifstream in;
+ in.open(filename, std::ifstream::in);
+
+ if (!in.good())
+ {
+ OptionWarning w{ filename };
+ w("file could not be opened: %s (%d)\n",
+ strerror(errno), errno);
+ return(false);
+ }
+ // Read in the file line by line
+ std::string line;
+
+ while (std::getline(in, line))
+ {
+ // check all characters of the line
+ size_t howmany = line.length();
+ int ch;
+
+ for (size_t n = 0; n < howmany; n++)
+ {
+ ch = line[n];
+
+ // do not check characters in comment part of line
+ if ('#' == ch)
+ {
+ break;
+ }
+
+ // ch >= 0 && ch <= 255
+ if ( ch < 0
+ || ch > 255)
+ {
+ // error
+ // related to PR #3298
+ fprintf(stderr, "%s: line %u: Character at position %zu, is not printable.\n", filename, cpd.line_number + 1, n + 1);
+ return(false);
+ }
+ }
+
+ ++cpd.line_number;
+ process_option_line(line, filename, compat_level);
+ }
+ return(true);
+} // load_option_file
+
+
+//-----------------------------------------------------------------------------
+const char *get_eol_marker()
+{
+ static char eol[3] = { 0x0A, 0x00, 0x00 };
+
+ const auto &lines = cpd.newline.get();
+
+ for (size_t i = 0; i < lines.size(); ++i)
+ {
+ eol[i] = static_cast<char>(lines[i]);
+ }
+
+ return(eol);
+}
+
+
+//-----------------------------------------------------------------------------
+void save_option_file(FILE *pfile, bool with_doc, bool minimal)
+{
+ int non_default_values = 0;
+ const char *eol_marker = get_eol_marker();
+
+ fprintf(pfile, "# %s%s", UNCRUSTIFY_VERSION, eol_marker);
+
+ // Print the options by group
+ for (auto &og : option_groups)
+ {
+ bool first = true;
+
+ for (auto *option : og.options)
+ {
+ const auto val = option->str();
+
+ if (!option->isDefault())
+ {
+ ++non_default_values;
+ }
+ else if (minimal)
+ {
+ continue;
+ }
+ //....................................................................
+
+ if (with_doc)
+ {
+ assert(option->description() != nullptr);
+ assert(*option->description() != 0);
+
+ if (first)
+ {
+ fprintf(pfile, "%s#%s", eol_marker, eol_marker);
+ print_description(pfile, og.description, eol_marker);
+ fprintf(pfile, "#%s", eol_marker);
+ }
+ fprintf(pfile, "%s", eol_marker);
+ print_description(pfile, option->description(), eol_marker);
+
+ const auto ds = option->defaultStr();
+
+ if (!ds.empty())
+ {
+ fprintf(pfile, "#%s# Default: %s%s",
+ eol_marker, ds.c_str(), eol_marker);
+ }
+ }
+ first = false;
+
+ const int name_len = static_cast<int>(strlen(option->name()));
+ const int pad = name_len < uncrustify::limits::MAX_OPTION_NAME_LEN
+ ? (uncrustify::limits::MAX_OPTION_NAME_LEN - name_len)
+ : 1;
+
+ fprintf(pfile, "%s%*.s= ", option->name(), pad, " ");
+
+ if (option->type() == OT_STRING)
+ {
+ fprintf(pfile, "\"%s\"", val.c_str());
+ }
+ else
+ {
+ fprintf(pfile, "%s", val.c_str());
+ }
+
+ if (with_doc)
+ {
+ const int val_len = static_cast<int>(val.length());
+ fprintf(pfile, "%*.s # ", 8 - val_len, " ");
+
+ for (auto pv = option->possibleValues(); *pv; ++pv)
+ {
+ fprintf(pfile, "%s%s", *pv, pv[1] ? "/" : "");
+ }
+ }
+ fputs(eol_marker, pfile);
+ }
+ }
+
+ if (with_doc)
+ {
+ fprintf(pfile, "%s", DOC_TEXT_END);
+ }
+ print_custom_keywords(pfile); // Print custom keywords
+ print_extensions(pfile); // Print custom file extensions
+
+ fprintf(pfile, "# option(s) with 'not default' value: %d%s#%s",
+ non_default_values, eol_marker, eol_marker);
+} // save_option_file
+
+} // namespace uncrustify
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/option.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/option.h
index 4ab356b5..4ab356b5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/option.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/option.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/option_enum.cpp.in b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/option_enum.cpp.in
index aeb976b2..aeb976b2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/option_enum.cpp.in
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/option_enum.cpp.in
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/option_enum.h.in b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/option_enum.h.in
index e50a9281..e50a9281 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/option_enum.h.in
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/option_enum.h.in
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/options.cpp.in b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/options.cpp.in
index 2ee14c8b..2ee14c8b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/options.cpp.in
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/options.cpp.in
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/options.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/options.h
new file mode 100644
index 00000000..d3e5386d
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/options.h
@@ -0,0 +1,4189 @@
+/**
+ * @file options.h
+ * Declarations of all the options.
+ *
+ * September 2020
+ * @author Ben Gardner
+ * @author Guy Maurel
+ * @author Matthew Woehlke
+ * @license GPL v2+
+ */
+
+#ifndef OPTIONS_H_INCLUDED
+#define OPTIONS_H_INCLUDED
+
+/* NOTE:
+ * This file is processed by make_options.py, and must conform to a particular
+ * format. Option groups are marked by '//begin ' (in upper case; this example
+ * is lower case to prevent being considered a region marker for code folding)
+ * followed by the group description. Options consist of two lines of
+ * declaration preceded by one or more lines of C++ comments. The comments form
+ * the option description and are taken verbatim, aside from stripping the
+ * leading '// '. Only comments immediately preceding an option declaration,
+ * with no blank lines, are taken as part of the description, so a blank line
+ * may be used to separate notations from a description.
+ *
+ * An option declaration is 'extern TYPE\nNAME;', optionally followed by
+ * ' // = VALUE' if the option has a default value that is different from the
+ * default-constructed value type of the option. The 'VALUE' must be valid C++
+ * code, and is taken verbatim as an argument when creating the option's
+ * instantiation. Note also that the line break, as shown, is required.
+ */
+
+#include "option_enum.h"
+
+namespace uncrustify
+{
+
+namespace options
+{
+
+using std::string;
+
+///////////////////////////////////////////////////////////////////////////////
+//BEGIN General options
+
+// The type of line endings.
+extern Option<line_end_e>
+newlines; // = LE_AUTO
+
+// The original size of tabs in the input.
+extern BoundedOption<unsigned, 1, 32>
+input_tab_size; // = 8
+
+// The size of tabs in the output (only used if align_with_tabs=true).
+extern BoundedOption<unsigned, 1, 32>
+output_tab_size; // = 8
+
+// The ASCII value of the string escape char, usually 92 (\) or (Pawn) 94 (^).
+extern BoundedOption<unsigned, 0, 255>
+string_escape_char; // = '\\'
+
+// Alternate string escape char (usually only used for Pawn).
+// Only works right before the quote char.
+extern BoundedOption<unsigned, 0, 255>
+string_escape_char2;
+
+// Replace tab characters found in string literals with the escape sequence \t
+// instead.
+extern Option<bool>
+string_replace_tab_chars;
+
+// Allow interpreting '>=' and '>>=' as part of a template in code like
+// 'void f(list<list<B>>=val);'. If true, 'assert(x<0 && y>=3)' will be broken.
+// Improvements to template detection may make this option obsolete.
+extern Option<bool>
+tok_split_gte;
+
+// Disable formatting of NL_CONT ('\\n') ended lines (e.g. multi-line macros).
+extern Option<bool>
+disable_processing_nl_cont;
+
+// Specify the marker used in comments to disable processing of part of the
+// file.
+extern Option<string>
+disable_processing_cmt; // = UNCRUSTIFY_OFF_TEXT
+
+// Specify the marker used in comments to (re)enable processing in a file.
+extern Option<string>
+enable_processing_cmt; // = UNCRUSTIFY_ON_TEXT
+
+// Enable parsing of digraphs.
+extern Option<bool>
+enable_digraphs;
+
+// Option to allow both disable_processing_cmt and enable_processing_cmt
+// strings, if specified, to be interpreted as ECMAScript regular expressions.
+// If true, a regex search will be performed within comments according to the
+// specified patterns in order to disable/enable processing.
+extern Option<bool>
+processing_cmt_as_regex;
+
+// Add or remove the UTF-8 BOM (recommend 'remove').
+extern Option<iarf_e>
+utf8_bom;
+
+// If the file contains bytes with values between 128 and 255, but is not
+// UTF-8, then output as UTF-8.
+extern Option<bool>
+utf8_byte;
+
+// Force the output encoding to UTF-8.
+extern Option<bool>
+utf8_force;
+
+//END
+
+///////////////////////////////////////////////////////////////////////////////
+//BEGIN Spacing options
+
+// Add or remove space around non-assignment symbolic operators ('+', '/', '%',
+// '<<', and so forth).
+extern Option<iarf_e>
+sp_arith;
+
+// Add or remove space around arithmetic operators '+' and '-'.
+//
+// Overrides sp_arith.
+extern Option<iarf_e>
+sp_arith_additive;
+
+// Add or remove space around assignment operator '=', '+=', etc.
+extern Option<iarf_e>
+sp_assign;
+
+// Add or remove space around '=' in C++11 lambda capture specifications.
+//
+// Overrides sp_assign.
+extern Option<iarf_e>
+sp_cpp_lambda_assign;
+
+// Add or remove space after the capture specification of a C++11 lambda when
+// an argument list is present, as in '[] <here> (int x){ ... }'.
+extern Option<iarf_e>
+sp_cpp_lambda_square_paren;
+
+// Add or remove space after the capture specification of a C++11 lambda with
+// no argument list is present, as in '[] <here> { ... }'.
+extern Option<iarf_e>
+sp_cpp_lambda_square_brace;
+
+// Add or remove space after the opening parenthesis and before the closing
+// parenthesis of a argument list of a C++11 lambda, as in
+// '[]( <here> int x <here> ){ ... }'.
+extern Option<iarf_e>
+sp_cpp_lambda_argument_list;
+
+// Add or remove space after the argument list of a C++11 lambda, as in
+// '[](int x) <here> { ... }'.
+extern Option<iarf_e>
+sp_cpp_lambda_paren_brace;
+
+// Add or remove space between a lambda body and its call operator of an
+// immediately invoked lambda, as in '[]( ... ){ ... } <here> ( ... )'.
+extern Option<iarf_e>
+sp_cpp_lambda_fparen;
+
+// Add or remove space around assignment operator '=' in a prototype.
+//
+// If set to ignore, use sp_assign.
+extern Option<iarf_e>
+sp_assign_default;
+
+// Add or remove space before assignment operator '=', '+=', etc.
+//
+// Overrides sp_assign.
+extern Option<iarf_e>
+sp_before_assign;
+
+// Add or remove space after assignment operator '=', '+=', etc.
+//
+// Overrides sp_assign.
+extern Option<iarf_e>
+sp_after_assign;
+
+// Add or remove space in 'enum {'.
+extern Option<iarf_e>
+sp_enum_brace; // = IARF_ADD
+
+// Add or remove space in 'NS_ENUM ('.
+extern Option<iarf_e>
+sp_enum_paren;
+
+// Add or remove space around assignment '=' in enum.
+extern Option<iarf_e>
+sp_enum_assign;
+
+// Add or remove space before assignment '=' in enum.
+//
+// Overrides sp_enum_assign.
+extern Option<iarf_e>
+sp_enum_before_assign;
+
+// Add or remove space after assignment '=' in enum.
+//
+// Overrides sp_enum_assign.
+extern Option<iarf_e>
+sp_enum_after_assign;
+
+// Add or remove space around assignment ':' in enum.
+extern Option<iarf_e>
+sp_enum_colon;
+
+// Add or remove space around preprocessor '##' concatenation operator.
+extern Option<iarf_e>
+sp_pp_concat; // = IARF_ADD
+
+// Add or remove space after preprocessor '#' stringify operator.
+// Also affects the '#@' charizing operator.
+extern Option<iarf_e>
+sp_pp_stringify;
+
+// Add or remove space before preprocessor '#' stringify operator
+// as in '#define x(y) L#y'.
+extern Option<iarf_e>
+sp_before_pp_stringify;
+
+// Add or remove space around boolean operators '&&' and '||'.
+extern Option<iarf_e>
+sp_bool;
+
+// Add or remove space around compare operator '<', '>', '==', etc.
+extern Option<iarf_e>
+sp_compare;
+
+// Add or remove space inside '(' and ')'.
+extern Option<iarf_e>
+sp_inside_paren;
+
+// Add or remove space between nested parentheses, i.e. '((' vs. ') )'.
+extern Option<iarf_e>
+sp_paren_paren;
+
+// Add or remove space between back-to-back parentheses, i.e. ')(' vs. ') ('.
+extern Option<iarf_e>
+sp_cparen_oparen;
+
+// Whether to balance spaces inside nested parentheses.
+extern Option<bool>
+sp_balance_nested_parens;
+
+// Add or remove space between ')' and '{'.
+extern Option<iarf_e>
+sp_paren_brace;
+
+// Add or remove space between nested braces, i.e. '{{' vs. '{ {'.
+extern Option<iarf_e>
+sp_brace_brace;
+
+// Add or remove space before pointer star '*'.
+extern Option<iarf_e>
+sp_before_ptr_star;
+
+// Add or remove space before pointer star '*' that isn't followed by a
+// variable name. If set to ignore, sp_before_ptr_star is used instead.
+extern Option<iarf_e>
+sp_before_unnamed_ptr_star;
+
+// Add or remove space between pointer stars '*', as in 'int ***a;'.
+extern Option<iarf_e>
+sp_between_ptr_star;
+
+// Add or remove space after pointer star '*', if followed by a word.
+//
+// Overrides sp_type_func.
+extern Option<iarf_e>
+sp_after_ptr_star;
+
+// Add or remove space after pointer caret '^', if followed by a word.
+extern Option<iarf_e>
+sp_after_ptr_block_caret;
+
+// Add or remove space after pointer star '*', if followed by a qualifier.
+extern Option<iarf_e>
+sp_after_ptr_star_qualifier;
+
+// Add or remove space after a pointer star '*', if followed by a function
+// prototype or function definition.
+//
+// Overrides sp_after_ptr_star and sp_type_func.
+extern Option<iarf_e>
+sp_after_ptr_star_func;
+
+// Add or remove space after a pointer star '*' in the trailing return of a
+// function prototype or function definition.
+extern Option<iarf_e>
+sp_after_ptr_star_trailing;
+
+// Add or remove space between the pointer star '*' and the name of the variable
+// in a function pointer definition.
+extern Option<iarf_e>
+sp_ptr_star_func_var;
+
+// Add or remove space between the pointer star '*' and the name of the type
+// in a function pointer type definition.
+extern Option<iarf_e>
+sp_ptr_star_func_type;
+
+// Add or remove space after a pointer star '*', if followed by an open
+// parenthesis, as in 'void* (*)()'.
+extern Option<iarf_e>
+sp_ptr_star_paren;
+
+// Add or remove space before a pointer star '*', if followed by a function
+// prototype or function definition.
+extern Option<iarf_e>
+sp_before_ptr_star_func;
+
+// Add or remove space before a pointer star '*' in the trailing return of a
+// function prototype or function definition.
+extern Option<iarf_e>
+sp_before_ptr_star_trailing;
+
+// Add or remove space before a reference sign '&'.
+extern Option<iarf_e>
+sp_before_byref;
+
+// Add or remove space before a reference sign '&' that isn't followed by a
+// variable name. If set to ignore, sp_before_byref is used instead.
+extern Option<iarf_e>
+sp_before_unnamed_byref;
+
+// Add or remove space after reference sign '&', if followed by a word.
+//
+// Overrides sp_type_func.
+extern Option<iarf_e>
+sp_after_byref;
+
+// Add or remove space after a reference sign '&', if followed by a function
+// prototype or function definition.
+//
+// Overrides sp_after_byref and sp_type_func.
+extern Option<iarf_e>
+sp_after_byref_func;
+
+// Add or remove space before a reference sign '&', if followed by a function
+// prototype or function definition.
+extern Option<iarf_e>
+sp_before_byref_func;
+
+// Add or remove space after a reference sign '&', if followed by an open
+// parenthesis, as in 'char& (*)()'.
+extern Option<iarf_e>
+sp_byref_paren;
+
+// Add or remove space between type and word. In cases where total removal of
+// whitespace would be a syntax error, a value of 'remove' is treated the same
+// as 'force'.
+//
+// This also affects some other instances of space following a type that are
+// not covered by other options; for example, between the return type and
+// parenthesis of a function type template argument, between the type and
+// parenthesis of an array parameter, or between 'decltype(...)' and the
+// following word.
+extern Option<iarf_e>
+sp_after_type; // = IARF_FORCE
+
+// Add or remove space between 'decltype(...)' and word,
+// brace or function call.
+extern Option<iarf_e>
+sp_after_decltype;
+
+// (D) Add or remove space before the parenthesis in the D constructs
+// 'template Foo(' and 'class Foo('.
+extern Option<iarf_e>
+sp_before_template_paren;
+
+// Add or remove space between 'template' and '<'.
+// If set to ignore, sp_before_angle is used.
+extern Option<iarf_e>
+sp_template_angle;
+
+// Add or remove space before '<'.
+extern Option<iarf_e>
+sp_before_angle;
+
+// Add or remove space inside '<' and '>'.
+extern Option<iarf_e>
+sp_inside_angle;
+
+// Add or remove space inside '<>'.
+extern Option<iarf_e>
+sp_inside_angle_empty;
+
+// Add or remove space between '>' and ':'.
+extern Option<iarf_e>
+sp_angle_colon;
+
+// Add or remove space after '>'.
+extern Option<iarf_e>
+sp_after_angle;
+
+// Add or remove space between '>' and '(' as found in 'new List<byte>(foo);'.
+extern Option<iarf_e>
+sp_angle_paren;
+
+// Add or remove space between '>' and '()' as found in 'new List<byte>();'.
+extern Option<iarf_e>
+sp_angle_paren_empty;
+
+// Add or remove space between '>' and a word as in 'List<byte> m;' or
+// 'template <typename T> static ...'.
+extern Option<iarf_e>
+sp_angle_word;
+
+// Add or remove space between '>' and '>' in '>>' (template stuff).
+extern Option<iarf_e>
+sp_angle_shift; // = IARF_ADD
+
+// (C++11) Permit removal of the space between '>>' in 'foo<bar<int> >'. Note
+// that sp_angle_shift cannot remove the space without this option.
+extern Option<bool>
+sp_permit_cpp11_shift;
+
+// Add or remove space before '(' of control statements ('if', 'for', 'switch',
+// 'while', etc.).
+extern Option<iarf_e>
+sp_before_sparen;
+
+// Add or remove space inside '(' and ')' of control statements other than
+// 'for'.
+extern Option<iarf_e>
+sp_inside_sparen;
+
+// Add or remove space after '(' of control statements other than 'for'.
+//
+// Overrides sp_inside_sparen.
+extern Option<iarf_e>
+sp_inside_sparen_open;
+
+// Add or remove space before ')' of control statements other than 'for'.
+//
+// Overrides sp_inside_sparen.
+extern Option<iarf_e>
+sp_inside_sparen_close;
+
+// Add or remove space inside '(' and ')' of 'for' statements.
+extern Option<iarf_e>
+sp_inside_for;
+
+// Add or remove space after '(' of 'for' statements.
+//
+// Overrides sp_inside_for.
+extern Option<iarf_e>
+sp_inside_for_open;
+
+// Add or remove space before ')' of 'for' statements.
+//
+// Overrides sp_inside_for.
+extern Option<iarf_e>
+sp_inside_for_close;
+
+// Add or remove space between '((' or '))' of control statements.
+extern Option<iarf_e>
+sp_sparen_paren;
+
+// Add or remove space after ')' of control statements.
+extern Option<iarf_e>
+sp_after_sparen;
+
+// Add or remove space between ')' and '{' of control statements.
+extern Option<iarf_e>
+sp_sparen_brace;
+
+// Add or remove space between 'do' and '{'.
+extern Option<iarf_e>
+sp_do_brace_open;
+
+// Add or remove space between '}' and 'while'.
+extern Option<iarf_e>
+sp_brace_close_while;
+
+// Add or remove space between 'while' and '('. Overrides sp_before_sparen.
+extern Option<iarf_e>
+sp_while_paren_open;
+
+// (D) Add or remove space between 'invariant' and '('.
+extern Option<iarf_e>
+sp_invariant_paren;
+
+// (D) Add or remove space after the ')' in 'invariant (C) c'.
+extern Option<iarf_e>
+sp_after_invariant_paren;
+
+// Add or remove space before empty statement ';' on 'if', 'for' and 'while'.
+extern Option<iarf_e>
+sp_special_semi;
+
+// Add or remove space before ';'.
+extern Option<iarf_e>
+sp_before_semi; // = IARF_REMOVE
+
+// Add or remove space before ';' in non-empty 'for' statements.
+extern Option<iarf_e>
+sp_before_semi_for;
+
+// Add or remove space before a semicolon of an empty left part of a for
+// statement, as in 'for ( <here> ; ; )'.
+extern Option<iarf_e>
+sp_before_semi_for_empty;
+
+// Add or remove space between the semicolons of an empty middle part of a for
+// statement, as in 'for ( ; <here> ; )'.
+extern Option<iarf_e>
+sp_between_semi_for_empty;
+
+// Add or remove space after ';', except when followed by a comment.
+extern Option<iarf_e>
+sp_after_semi; // = IARF_ADD
+
+// Add or remove space after ';' in non-empty 'for' statements.
+extern Option<iarf_e>
+sp_after_semi_for; // = IARF_FORCE
+
+// Add or remove space after the final semicolon of an empty part of a for
+// statement, as in 'for ( ; ; <here> )'.
+extern Option<iarf_e>
+sp_after_semi_for_empty;
+
+// Add or remove space before '[' (except '[]').
+extern Option<iarf_e>
+sp_before_square;
+
+// Add or remove space before '[' for a variable definition.
+extern Option<iarf_e>
+sp_before_vardef_square; // = IARF_REMOVE
+
+// Add or remove space before '[' for asm block.
+extern Option<iarf_e>
+sp_before_square_asm_block;
+
+// Add or remove space before '[]'.
+extern Option<iarf_e>
+sp_before_squares;
+
+// Add or remove space before C++17 structured bindings.
+extern Option<iarf_e>
+sp_cpp_before_struct_binding;
+
+// Add or remove space inside a non-empty '[' and ']'.
+extern Option<iarf_e>
+sp_inside_square;
+
+// Add or remove space inside '[]'.
+extern Option<iarf_e>
+sp_inside_square_empty;
+
+// (OC) Add or remove space inside a non-empty Objective-C boxed array '@[' and
+// ']'. If set to ignore, sp_inside_square is used.
+extern Option<iarf_e>
+sp_inside_square_oc_array;
+
+// Add or remove space after ',', i.e. 'a,b' vs. 'a, b'.
+extern Option<iarf_e>
+sp_after_comma;
+
+// Add or remove space before ',', i.e. 'a,b' vs. 'a ,b'.
+extern Option<iarf_e>
+sp_before_comma; // = IARF_REMOVE
+
+// (C#) Add or remove space between ',' and ']' in multidimensional array type
+// like 'int[,,]'.
+extern Option<iarf_e>
+sp_after_mdatype_commas;
+
+// (C#) Add or remove space between '[' and ',' in multidimensional array type
+// like 'int[,,]'.
+extern Option<iarf_e>
+sp_before_mdatype_commas;
+
+// (C#) Add or remove space between ',' in multidimensional array type
+// like 'int[,,]'.
+extern Option<iarf_e>
+sp_between_mdatype_commas;
+
+// Add or remove space between an open parenthesis and comma,
+// i.e. '(,' vs. '( ,'.
+extern Option<iarf_e>
+sp_paren_comma; // = IARF_FORCE
+
+// Add or remove space between a type and ':'.
+extern Option<iarf_e>
+sp_type_colon;
+
+// Add or remove space after the variadic '...' when preceded by a
+// non-punctuator.
+// The value REMOVE will be overridden with FORCE
+extern Option<iarf_e>
+sp_after_ellipsis;
+
+// Add or remove space before the variadic '...' when preceded by a
+// non-punctuator.
+// The value REMOVE will be overridden with FORCE
+extern Option<iarf_e>
+sp_before_ellipsis;
+
+// Add or remove space between a type and '...'.
+extern Option<iarf_e>
+sp_type_ellipsis;
+
+// Add or remove space between a '*' and '...'.
+extern Option<iarf_e>
+sp_ptr_type_ellipsis;
+
+// Add or remove space between ')' and '...'.
+extern Option<iarf_e>
+sp_paren_ellipsis;
+
+// Add or remove space between '&&' and '...'.
+extern Option<iarf_e>
+sp_byref_ellipsis;
+
+// Add or remove space between ')' and a qualifier such as 'const'.
+extern Option<iarf_e>
+sp_paren_qualifier;
+
+// Add or remove space between ')' and 'noexcept'.
+extern Option<iarf_e>
+sp_paren_noexcept;
+
+// Add or remove space after class ':'.
+extern Option<iarf_e>
+sp_after_class_colon;
+
+// Add or remove space before class ':'.
+extern Option<iarf_e>
+sp_before_class_colon;
+
+// Add or remove space after class constructor ':'.
+extern Option<iarf_e>
+sp_after_constr_colon; // = IARF_ADD
+
+// Add or remove space before class constructor ':'.
+extern Option<iarf_e>
+sp_before_constr_colon; // = IARF_ADD
+
+// Add or remove space before case ':'.
+extern Option<iarf_e>
+sp_before_case_colon; // = IARF_REMOVE
+
+// Add or remove space between 'operator' and operator sign.
+extern Option<iarf_e>
+sp_after_operator;
+
+// Add or remove space between the operator symbol and the open parenthesis, as
+// in 'operator ++('.
+extern Option<iarf_e>
+sp_after_operator_sym;
+
+// Overrides sp_after_operator_sym when the operator has no arguments, as in
+// 'operator *()'.
+extern Option<iarf_e>
+sp_after_operator_sym_empty;
+
+// Add or remove space after C/D cast, i.e. 'cast(int)a' vs. 'cast(int) a' or
+// '(int)a' vs. '(int) a'.
+extern Option<iarf_e>
+sp_after_cast;
+
+// Add or remove spaces inside cast parentheses.
+extern Option<iarf_e>
+sp_inside_paren_cast;
+
+// Add or remove space between the type and open parenthesis in a C++ cast,
+// i.e. 'int(exp)' vs. 'int (exp)'.
+extern Option<iarf_e>
+sp_cpp_cast_paren;
+
+// Add or remove space between 'sizeof' and '('.
+extern Option<iarf_e>
+sp_sizeof_paren;
+
+// Add or remove space between 'sizeof' and '...'.
+extern Option<iarf_e>
+sp_sizeof_ellipsis;
+
+// Add or remove space between 'sizeof...' and '('.
+extern Option<iarf_e>
+sp_sizeof_ellipsis_paren;
+
+// Add or remove space between '...' and a parameter pack.
+extern Option<iarf_e>
+sp_ellipsis_parameter_pack;
+
+// Add or remove space between a parameter pack and '...'.
+extern Option<iarf_e>
+sp_parameter_pack_ellipsis;
+
+// Add or remove space between 'decltype' and '('.
+extern Option<iarf_e>
+sp_decltype_paren;
+
+// (Pawn) Add or remove space after the tag keyword.
+extern Option<iarf_e>
+sp_after_tag;
+
+// Add or remove space inside enum '{' and '}'.
+extern Option<iarf_e>
+sp_inside_braces_enum;
+
+// Add or remove space inside struct/union '{' and '}'.
+extern Option<iarf_e>
+sp_inside_braces_struct;
+
+// (OC) Add or remove space inside Objective-C boxed dictionary '{' and '}'
+extern Option<iarf_e>
+sp_inside_braces_oc_dict;
+
+// Add or remove space after open brace in an unnamed temporary
+// direct-list-initialization
+// if statement is a brace_init_lst
+// works only if sp_brace_brace is set to ignore.
+extern Option<iarf_e>
+sp_after_type_brace_init_lst_open;
+
+// Add or remove space before close brace in an unnamed temporary
+// direct-list-initialization
+// if statement is a brace_init_lst
+// works only if sp_brace_brace is set to ignore.
+extern Option<iarf_e>
+sp_before_type_brace_init_lst_close;
+
+// Add or remove space inside an unnamed temporary direct-list-initialization
+// if statement is a brace_init_lst
+// works only if sp_brace_brace is set to ignore
+// works only if sp_before_type_brace_init_lst_close is set to ignore.
+extern Option<iarf_e>
+sp_inside_type_brace_init_lst;
+
+// Add or remove space inside '{' and '}'.
+extern Option<iarf_e>
+sp_inside_braces;
+
+// Add or remove space inside '{}'.
+extern Option<iarf_e>
+sp_inside_braces_empty;
+
+// Add or remove space around trailing return operator '->'.
+extern Option<iarf_e>
+sp_trailing_return;
+
+// Add or remove space between return type and function name. A minimum of 1
+// is forced except for pointer return types.
+extern Option<iarf_e>
+sp_type_func;
+
+// Add or remove space between type and open brace of an unnamed temporary
+// direct-list-initialization.
+extern Option<iarf_e>
+sp_type_brace_init_lst;
+
+// Add or remove space between function name and '(' on function declaration.
+extern Option<iarf_e>
+sp_func_proto_paren;
+
+// Add or remove space between function name and '()' on function declaration
+// without parameters.
+extern Option<iarf_e>
+sp_func_proto_paren_empty;
+
+// Add or remove space between function name and '(' with a typedef specifier.
+extern Option<iarf_e>
+sp_func_type_paren;
+
+// Add or remove space between alias name and '(' of a non-pointer function type typedef.
+extern Option<iarf_e>
+sp_func_def_paren;
+
+// Add or remove space between function name and '()' on function definition
+// without parameters.
+extern Option<iarf_e>
+sp_func_def_paren_empty;
+
+// Add or remove space inside empty function '()'.
+// Overrides sp_after_angle unless use_sp_after_angle_always is set to true.
+extern Option<iarf_e>
+sp_inside_fparens;
+
+// Add or remove space inside function '(' and ')'.
+extern Option<iarf_e>
+sp_inside_fparen;
+
+// Add or remove space inside the first parentheses in a function type, as in
+// 'void (*x)(...)'.
+extern Option<iarf_e>
+sp_inside_tparen;
+
+// Add or remove space between the ')' and '(' in a function type, as in
+// 'void (*x)(...)'.
+extern Option<iarf_e>
+sp_after_tparen_close;
+
+// Add or remove space between ']' and '(' when part of a function call.
+extern Option<iarf_e>
+sp_square_fparen;
+
+// Add or remove space between ')' and '{' of function.
+extern Option<iarf_e>
+sp_fparen_brace;
+
+// Add or remove space between ')' and '{' of a function call in object
+// initialization.
+//
+// Overrides sp_fparen_brace.
+extern Option<iarf_e>
+sp_fparen_brace_initializer;
+
+// (Java) Add or remove space between ')' and '{{' of double brace initializer.
+extern Option<iarf_e>
+sp_fparen_dbrace;
+
+// Add or remove space between function name and '(' on function calls.
+extern Option<iarf_e>
+sp_func_call_paren;
+
+// Add or remove space between function name and '()' on function calls without
+// parameters. If set to ignore (the default), sp_func_call_paren is used.
+extern Option<iarf_e>
+sp_func_call_paren_empty;
+
+// Add or remove space between the user function name and '(' on function
+// calls. You need to set a keyword to be a user function in the config file,
+// like:
+// set func_call_user tr _ i18n
+extern Option<iarf_e>
+sp_func_call_user_paren;
+
+// Add or remove space inside user function '(' and ')'.
+extern Option<iarf_e>
+sp_func_call_user_inside_fparen;
+
+// Add or remove space between nested parentheses with user functions,
+// i.e. '((' vs. '( ('.
+extern Option<iarf_e>
+sp_func_call_user_paren_paren;
+
+// Add or remove space between a constructor/destructor and the open
+// parenthesis.
+extern Option<iarf_e>
+sp_func_class_paren;
+
+// Add or remove space between a constructor without parameters or destructor
+// and '()'.
+extern Option<iarf_e>
+sp_func_class_paren_empty;
+
+// Add or remove space after 'return'.
+extern Option<iarf_e>
+sp_return; // = IARF_FORCE
+
+// Add or remove space between 'return' and '('.
+extern Option<iarf_e>
+sp_return_paren;
+
+// Add or remove space between 'return' and '{'.
+extern Option<iarf_e>
+sp_return_brace;
+
+// Add or remove space between '__attribute__' and '('.
+extern Option<iarf_e>
+sp_attribute_paren;
+
+// Add or remove space between 'defined' and '(' in '#if defined (FOO)'.
+extern Option<iarf_e>
+sp_defined_paren;
+
+// Add or remove space between 'throw' and '(' in 'throw (something)'.
+extern Option<iarf_e>
+sp_throw_paren;
+
+// Add or remove space between 'throw' and anything other than '(' as in
+// '@throw [...];'.
+extern Option<iarf_e>
+sp_after_throw;
+
+// Add or remove space between 'catch' and '(' in 'catch (something) { }'.
+// If set to ignore, sp_before_sparen is used.
+extern Option<iarf_e>
+sp_catch_paren;
+
+// (OC) Add or remove space between '@catch' and '('
+// in '@catch (something) { }'. If set to ignore, sp_catch_paren is used.
+extern Option<iarf_e>
+sp_oc_catch_paren;
+
+// (OC) Add or remove space before Objective-C protocol list
+// as in '@protocol Protocol<here><Protocol_A>' or '@interface MyClass : NSObject<here><MyProtocol>'.
+extern Option<iarf_e>
+sp_before_oc_proto_list;
+
+// (OC) Add or remove space between class name and '('
+// in '@interface className(categoryName)<ProtocolName>:BaseClass'
+extern Option<iarf_e>
+sp_oc_classname_paren;
+
+// (D) Add or remove space between 'version' and '('
+// in 'version (something) { }'. If set to ignore, sp_before_sparen is used.
+extern Option<iarf_e>
+sp_version_paren;
+
+// (D) Add or remove space between 'scope' and '('
+// in 'scope (something) { }'. If set to ignore, sp_before_sparen is used.
+extern Option<iarf_e>
+sp_scope_paren;
+
+// Add or remove space between 'super' and '(' in 'super (something)'.
+extern Option<iarf_e>
+sp_super_paren; // = IARF_REMOVE
+
+// Add or remove space between 'this' and '(' in 'this (something)'.
+extern Option<iarf_e>
+sp_this_paren; // = IARF_REMOVE
+
+// Add or remove space between a macro name and its definition.
+extern Option<iarf_e>
+sp_macro;
+
+// Add or remove space between a macro function ')' and its definition.
+extern Option<iarf_e>
+sp_macro_func;
+
+// Add or remove space between 'else' and '{' if on the same line.
+extern Option<iarf_e>
+sp_else_brace;
+
+// Add or remove space between '}' and 'else' if on the same line.
+extern Option<iarf_e>
+sp_brace_else;
+
+// Add or remove space between '}' and the name of a typedef on the same line.
+extern Option<iarf_e>
+sp_brace_typedef;
+
+// Add or remove space before the '{' of a 'catch' statement, if the '{' and
+// 'catch' are on the same line, as in 'catch (decl) <here> {'.
+extern Option<iarf_e>
+sp_catch_brace;
+
+// (OC) Add or remove space before the '{' of a '@catch' statement, if the '{'
+// and '@catch' are on the same line, as in '@catch (decl) <here> {'.
+// If set to ignore, sp_catch_brace is used.
+extern Option<iarf_e>
+sp_oc_catch_brace;
+
+// Add or remove space between '}' and 'catch' if on the same line.
+extern Option<iarf_e>
+sp_brace_catch;
+
+// (OC) Add or remove space between '}' and '@catch' if on the same line.
+// If set to ignore, sp_brace_catch is used.
+extern Option<iarf_e>
+sp_oc_brace_catch;
+
+// Add or remove space between 'finally' and '{' if on the same line.
+extern Option<iarf_e>
+sp_finally_brace;
+
+// Add or remove space between '}' and 'finally' if on the same line.
+extern Option<iarf_e>
+sp_brace_finally;
+
+// Add or remove space between 'try' and '{' if on the same line.
+extern Option<iarf_e>
+sp_try_brace;
+
+// Add or remove space between get/set and '{' if on the same line.
+extern Option<iarf_e>
+sp_getset_brace;
+
+// Add or remove space between a variable and '{' for C++ uniform
+// initialization.
+extern Option<iarf_e>
+sp_word_brace_init_lst;
+
+// Add or remove space between a variable and '{' for a namespace.
+extern Option<iarf_e>
+sp_word_brace_ns; // = IARF_ADD
+
+// Add or remove space before the '::' operator.
+extern Option<iarf_e>
+sp_before_dc;
+
+// Add or remove space after the '::' operator.
+extern Option<iarf_e>
+sp_after_dc;
+
+// (D) Add or remove around the D named array initializer ':' operator.
+extern Option<iarf_e>
+sp_d_array_colon;
+
+// Add or remove space after the '!' (not) unary operator.
+extern Option<iarf_e>
+sp_not; // = IARF_REMOVE
+
+// Add or remove space between two '!' (not) unary operators.
+// If set to ignore, sp_not will be used.
+extern Option<iarf_e>
+sp_not_not; // = IARF_IGNORE
+
+// Add or remove space after the '~' (invert) unary operator.
+extern Option<iarf_e>
+sp_inv; // = IARF_REMOVE
+
+// Add or remove space after the '&' (address-of) unary operator. This does not
+// affect the spacing after a '&' that is part of a type.
+extern Option<iarf_e>
+sp_addr; // = IARF_REMOVE
+
+// Add or remove space around the '.' or '->' operators.
+extern Option<iarf_e>
+sp_member; // = IARF_REMOVE
+
+// Add or remove space after the '*' (dereference) unary operator. This does
+// not affect the spacing after a '*' that is part of a type.
+extern Option<iarf_e>
+sp_deref; // = IARF_REMOVE
+
+// Add or remove space after '+' or '-', as in 'x = -5' or 'y = +7'.
+extern Option<iarf_e>
+sp_sign; // = IARF_REMOVE
+
+// Add or remove space between '++' and '--' the word to which it is being
+// applied, as in '(--x)' or 'y++;'.
+extern Option<iarf_e>
+sp_incdec; // = IARF_REMOVE
+
+// Add or remove space before a backslash-newline at the end of a line.
+extern Option<iarf_e>
+sp_before_nl_cont; // = IARF_ADD
+
+// (OC) Add or remove space after the scope '+' or '-', as in '-(void) foo;'
+// or '+(int) bar;'.
+extern Option<iarf_e>
+sp_after_oc_scope;
+
+// (OC) Add or remove space after the colon in message specs,
+// i.e. '-(int) f:(int) x;' vs. '-(int) f: (int) x;'.
+extern Option<iarf_e>
+sp_after_oc_colon;
+
+// (OC) Add or remove space before the colon in message specs,
+// i.e. '-(int) f: (int) x;' vs. '-(int) f : (int) x;'.
+extern Option<iarf_e>
+sp_before_oc_colon;
+
+// (OC) Add or remove space after the colon in immutable dictionary expression
+// 'NSDictionary *test = @{@"foo" :@"bar"};'.
+extern Option<iarf_e>
+sp_after_oc_dict_colon;
+
+// (OC) Add or remove space before the colon in immutable dictionary expression
+// 'NSDictionary *test = @{@"foo" :@"bar"};'.
+extern Option<iarf_e>
+sp_before_oc_dict_colon;
+
+// (OC) Add or remove space after the colon in message specs,
+// i.e. '[object setValue:1];' vs. '[object setValue: 1];'.
+extern Option<iarf_e>
+sp_after_send_oc_colon;
+
+// (OC) Add or remove space before the colon in message specs,
+// i.e. '[object setValue:1];' vs. '[object setValue :1];'.
+extern Option<iarf_e>
+sp_before_send_oc_colon;
+
+// (OC) Add or remove space after the (type) in message specs,
+// i.e. '-(int)f: (int) x;' vs. '-(int)f: (int)x;'.
+extern Option<iarf_e>
+sp_after_oc_type;
+
+// (OC) Add or remove space after the first (type) in message specs,
+// i.e. '-(int) f:(int)x;' vs. '-(int)f:(int)x;'.
+extern Option<iarf_e>
+sp_after_oc_return_type;
+
+// (OC) Add or remove space between '@selector' and '(',
+// i.e. '@selector(msgName)' vs. '@selector (msgName)'.
+// Also applies to '@protocol()' constructs.
+extern Option<iarf_e>
+sp_after_oc_at_sel;
+
+// (OC) Add or remove space between '@selector(x)' and the following word,
+// i.e. '@selector(foo) a:' vs. '@selector(foo)a:'.
+extern Option<iarf_e>
+sp_after_oc_at_sel_parens;
+
+// (OC) Add or remove space inside '@selector' parentheses,
+// i.e. '@selector(foo)' vs. '@selector( foo )'.
+// Also applies to '@protocol()' constructs.
+extern Option<iarf_e>
+sp_inside_oc_at_sel_parens;
+
+// (OC) Add or remove space before a block pointer caret,
+// i.e. '^int (int arg){...}' vs. ' ^int (int arg){...}'.
+extern Option<iarf_e>
+sp_before_oc_block_caret;
+
+// (OC) Add or remove space after a block pointer caret,
+// i.e. '^int (int arg){...}' vs. '^ int (int arg){...}'.
+extern Option<iarf_e>
+sp_after_oc_block_caret;
+
+// (OC) Add or remove space between the receiver and selector in a message,
+// as in '[receiver selector ...]'.
+extern Option<iarf_e>
+sp_after_oc_msg_receiver;
+
+// (OC) Add or remove space after '@property'.
+extern Option<iarf_e>
+sp_after_oc_property;
+
+// (OC) Add or remove space between '@synchronized' and the open parenthesis,
+// i.e. '@synchronized(foo)' vs. '@synchronized (foo)'.
+extern Option<iarf_e>
+sp_after_oc_synchronized;
+
+// Add or remove space around the ':' in 'b ? t : f'.
+extern Option<iarf_e>
+sp_cond_colon;
+
+// Add or remove space before the ':' in 'b ? t : f'.
+//
+// Overrides sp_cond_colon.
+extern Option<iarf_e>
+sp_cond_colon_before;
+
+// Add or remove space after the ':' in 'b ? t : f'.
+//
+// Overrides sp_cond_colon.
+extern Option<iarf_e>
+sp_cond_colon_after;
+
+// Add or remove space around the '?' in 'b ? t : f'.
+extern Option<iarf_e>
+sp_cond_question;
+
+// Add or remove space before the '?' in 'b ? t : f'.
+//
+// Overrides sp_cond_question.
+extern Option<iarf_e>
+sp_cond_question_before;
+
+// Add or remove space after the '?' in 'b ? t : f'.
+//
+// Overrides sp_cond_question.
+extern Option<iarf_e>
+sp_cond_question_after;
+
+// In the abbreviated ternary form '(a ?: b)', add or remove space between '?'
+// and ':'.
+//
+// Overrides all other sp_cond_* options.
+extern Option<iarf_e>
+sp_cond_ternary_short;
+
+// Fix the spacing between 'case' and the label. Only 'ignore' and 'force' make
+// sense here.
+extern Option<iarf_e>
+sp_case_label;
+
+// (D) Add or remove space around the D '..' operator.
+extern Option<iarf_e>
+sp_range;
+
+// Add or remove space after ':' in a Java/C++11 range-based 'for',
+// as in 'for (Type var : <here> expr)'.
+extern Option<iarf_e>
+sp_after_for_colon;
+
+// Add or remove space before ':' in a Java/C++11 range-based 'for',
+// as in 'for (Type var <here> : expr)'.
+extern Option<iarf_e>
+sp_before_for_colon;
+
+// (D) Add or remove space between 'extern' and '(' as in 'extern <here> (C)'.
+extern Option<iarf_e>
+sp_extern_paren;
+
+// Add or remove space after the opening of a C++ comment, as in '// <here> A'.
+extern Option<iarf_e>
+sp_cmt_cpp_start;
+
+// Add or remove space in a C++ region marker comment, as in '// <here> BEGIN'.
+// A region marker is defined as a comment which is not preceded by other text
+// (i.e. the comment is the first non-whitespace on the line), and which starts
+// with either 'BEGIN' or 'END'.
+//
+// Overrides sp_cmt_cpp_start.
+extern Option<iarf_e>
+sp_cmt_cpp_region;
+
+// If true, space added with sp_cmt_cpp_start will be added after Doxygen
+// sequences like '///', '///<', '//!' and '//!<'.
+extern Option<bool>
+sp_cmt_cpp_doxygen;
+
+// If true, space added with sp_cmt_cpp_start will be added after Qt translator
+// or meta-data comments like '//:', '//=', and '//~'.
+extern Option<bool>
+sp_cmt_cpp_qttr;
+
+// Add or remove space between #else or #endif and a trailing comment.
+extern Option<iarf_e>
+sp_endif_cmt;
+
+// Add or remove space after 'new', 'delete' and 'delete[]'.
+extern Option<iarf_e>
+sp_after_new;
+
+// Add or remove space between 'new' and '(' in 'new()'.
+extern Option<iarf_e>
+sp_between_new_paren;
+
+// Add or remove space between ')' and type in 'new(foo) BAR'.
+extern Option<iarf_e>
+sp_after_newop_paren;
+
+// Add or remove space inside parenthesis of the new operator
+// as in 'new(foo) BAR'.
+extern Option<iarf_e>
+sp_inside_newop_paren;
+
+// Add or remove space after the open parenthesis of the new operator,
+// as in 'new(foo) BAR'.
+//
+// Overrides sp_inside_newop_paren.
+extern Option<iarf_e>
+sp_inside_newop_paren_open;
+
+// Add or remove space before the close parenthesis of the new operator,
+// as in 'new(foo) BAR'.
+//
+// Overrides sp_inside_newop_paren.
+extern Option<iarf_e>
+sp_inside_newop_paren_close;
+
+// Add or remove space before a trailing comment.
+extern Option<iarf_e>
+sp_before_tr_cmt;
+
+// Number of spaces before a trailing comment.
+extern BoundedOption<unsigned, 0, 16>
+sp_num_before_tr_cmt;
+
+// Add or remove space before an embedded comment.
+extern Option<iarf_e>
+sp_before_emb_cmt; // = IARF_FORCE
+
+// Number of spaces before an embedded comment.
+extern BoundedOption<unsigned, 0, 16>
+sp_num_before_emb_cmt; // = 1
+
+// Add or remove space after an embedded comment.
+extern Option<iarf_e>
+sp_after_emb_cmt; // = IARF_FORCE
+
+// Number of spaces after an embedded comment.
+extern BoundedOption<unsigned, 0, 16>
+sp_num_after_emb_cmt; // = 1
+
+// (Java) Add or remove space between an annotation and the open parenthesis.
+extern Option<iarf_e>
+sp_annotation_paren;
+
+// If true, vbrace tokens are dropped to the previous token and skipped.
+extern Option<bool>
+sp_skip_vbrace_tokens;
+
+// Add or remove space after 'noexcept'.
+extern Option<iarf_e>
+sp_after_noexcept;
+
+// Add or remove space after '_'.
+extern Option<iarf_e>
+sp_vala_after_translation;
+
+// If true, a <TAB> is inserted after #define.
+extern Option<bool>
+force_tab_after_define;
+
+//END
+
+///////////////////////////////////////////////////////////////////////////////
+//BEGIN Indenting options
+
+// The number of columns to indent per level. Usually 2, 3, 4, or 8.
+extern BoundedOption<unsigned, 0, 16>
+indent_columns; // = 8
+
+// Whether to ignore indent for the first continuation line. Subsequent
+// continuation lines will still be indented to match the first.
+extern Option<bool>
+indent_ignore_first_continue;
+
+// The continuation indent. If non-zero, this overrides the indent of '(', '['
+// and '=' continuation indents. Negative values are OK; negative value is
+// absolute and not increased for each '(' or '[' level.
+//
+// For FreeBSD, this is set to 4.
+// Requires indent_ignore_first_continue=false.
+extern BoundedOption<signed, -16, 16>
+indent_continue;
+
+// The continuation indent, only for class header line(s). If non-zero, this
+// overrides the indent of 'class' continuation indents.
+// Requires indent_ignore_first_continue=false.
+extern BoundedOption<unsigned, 0, 16>
+indent_continue_class_head;
+
+// Whether to indent empty lines (i.e. lines which contain only spaces before
+// the newline character).
+extern Option<bool>
+indent_single_newlines;
+
+// The continuation indent for func_*_param if they are true. If non-zero, this
+// overrides the indent.
+extern BoundedOption<unsigned, 0, 16>
+indent_param;
+
+// How to use tabs when indenting code.
+//
+// 0: Spaces only
+// 1: Indent with tabs to brace level, align with spaces (default)
+// 2: Indent and align with tabs, using spaces when not on a tabstop
+extern BoundedOption<unsigned, 0, 2>
+indent_with_tabs; // = 1
+
+// Whether to indent comments that are not at a brace level with tabs on a
+// tabstop. Requires indent_with_tabs=2. If false, will use spaces.
+extern Option<bool>
+indent_cmt_with_tabs;
+
+// Whether to indent strings broken by '\' so that they line up.
+extern Option<bool>
+indent_align_string;
+
+// The number of spaces to indent multi-line XML strings.
+// Requires indent_align_string=true.
+extern BoundedOption<unsigned, 0, 16>
+indent_xml_string;
+
+// Spaces to indent '{' from level.
+extern BoundedOption<unsigned, 0, 16>
+indent_brace;
+
+// Whether braces are indented to the body level.
+extern Option<bool>
+indent_braces;
+
+// Whether to disable indenting function braces if indent_braces=true.
+extern Option<bool>
+indent_braces_no_func;
+
+// Whether to disable indenting class braces if indent_braces=true.
+extern Option<bool>
+indent_braces_no_class;
+
+// Whether to disable indenting struct braces if indent_braces=true.
+extern Option<bool>
+indent_braces_no_struct;
+
+// Whether to indent based on the size of the brace parent,
+// i.e. 'if' => 3 spaces, 'for' => 4 spaces, etc.
+extern Option<bool>
+indent_brace_parent;
+
+// Whether to indent based on the open parenthesis instead of the open brace
+// in '({\n'.
+extern Option<bool>
+indent_paren_open_brace;
+
+// (C#) Whether to indent the brace of a C# delegate by another level.
+extern Option<bool>
+indent_cs_delegate_brace;
+
+// (C#) Whether to indent a C# delegate (to handle delegates with no brace) by
+// another level.
+extern Option<bool>
+indent_cs_delegate_body;
+
+// Whether to indent the body of a 'namespace'.
+extern Option<bool>
+indent_namespace;
+
+// Whether to indent only the first namespace, and not any nested namespaces.
+// Requires indent_namespace=true.
+extern Option<bool>
+indent_namespace_single_indent;
+
+// The number of spaces to indent a namespace block.
+// If set to zero, use the value indent_columns
+extern BoundedOption<unsigned, 0, 16>
+indent_namespace_level;
+
+// If the body of the namespace is longer than this number, it won't be
+// indented. Requires indent_namespace=true. 0 means no limit.
+extern BoundedOption<unsigned, 0, 255>
+indent_namespace_limit;
+
+// Whether to indent only in inner namespaces (nested in other namespaces).
+// Requires indent_namespace=true.
+extern Option<bool>
+indent_namespace_inner_only;
+
+// Whether the 'extern "C"' body is indented.
+extern Option<bool>
+indent_extern;
+
+// Whether the 'class' body is indented.
+extern Option<bool>
+indent_class;
+
+// Whether to ignore indent for the leading base class colon.
+extern Option<bool>
+indent_ignore_before_class_colon;
+
+// Additional indent before the leading base class colon.
+// Negative values decrease indent down to the first column.
+// Requires indent_ignore_before_class_colon=false and a newline break before
+// the colon (see pos_class_colon and nl_class_colon)
+extern BoundedOption<signed, -16, 16>
+indent_before_class_colon;
+
+// Whether to indent the stuff after a leading base class colon.
+extern Option<bool>
+indent_class_colon;
+
+// Whether to indent based on a class colon instead of the stuff after the
+// colon. Requires indent_class_colon=true.
+extern Option<bool>
+indent_class_on_colon;
+
+// Whether to ignore indent for a leading class initializer colon.
+extern Option<bool>
+indent_ignore_before_constr_colon;
+
+// Whether to indent the stuff after a leading class initializer colon.
+extern Option<bool>
+indent_constr_colon;
+
+// Virtual indent from the ':' for leading member initializers.
+extern BoundedOption<unsigned, 0, 16>
+indent_ctor_init_leading; // = 2
+
+// Virtual indent from the ':' for following member initializers.
+extern BoundedOption<unsigned, 0, 16>
+indent_ctor_init_following; // = 2
+
+// Additional indent for constructor initializer list.
+// Negative values decrease indent down to the first column.
+extern BoundedOption<signed, -16, 16>
+indent_ctor_init;
+
+// Whether to indent 'if' following 'else' as a new block under the 'else'.
+// If false, 'else\nif' is treated as 'else if' for indenting purposes.
+extern Option<bool>
+indent_else_if;
+
+// Amount to indent variable declarations after a open brace.
+//
+// <0: Relative
+// >=0: Absolute
+extern BoundedOption<signed, -16, 16>
+indent_var_def_blk;
+
+// Whether to indent continued variable declarations instead of aligning.
+extern Option<bool>
+indent_var_def_cont;
+
+// How to indent continued shift expressions ('<<' and '>>').
+// Set align_left_shift=false when using this.
+// 0: Align shift operators instead of indenting them (default)
+// 1: Indent by one level
+// -1: Preserve original indentation
+extern BoundedOption<signed, -1, 1>
+indent_shift;
+
+// Whether to force indentation of function definitions to start in column 1.
+extern Option<bool>
+indent_func_def_force_col1;
+
+// Whether to indent continued function call parameters one indent level,
+// rather than aligning parameters under the open parenthesis.
+extern Option<bool>
+indent_func_call_param;
+
+// Whether to indent continued function definition parameters one indent level,
+// rather than aligning parameters under the open parenthesis.
+extern Option<bool>
+indent_func_def_param;
+
+// for function definitions, only if indent_func_def_param is false
+// Allows to align params when appropriate and indent them when not
+// behave as if it was true if paren position is more than this value
+// if paren position is more than the option value
+extern BoundedOption<unsigned, 0, 160>
+indent_func_def_param_paren_pos_threshold;
+
+// Whether to indent continued function call prototype one indent level,
+// rather than aligning parameters under the open parenthesis.
+extern Option<bool>
+indent_func_proto_param;
+
+// Whether to indent continued function call declaration one indent level,
+// rather than aligning parameters under the open parenthesis.
+extern Option<bool>
+indent_func_class_param;
+
+// Whether to indent continued class variable constructors one indent level,
+// rather than aligning parameters under the open parenthesis.
+extern Option<bool>
+indent_func_ctor_var_param;
+
+// Whether to indent continued template parameter list one indent level,
+// rather than aligning parameters under the open parenthesis.
+extern Option<bool>
+indent_template_param;
+
+// Double the indent for indent_func_xxx_param options.
+// Use both values of the options indent_columns and indent_param.
+extern Option<bool>
+indent_func_param_double;
+
+// Indentation column for standalone 'const' qualifier on a function
+// prototype.
+extern BoundedOption<unsigned, 0, 69>
+indent_func_const;
+
+// Indentation column for standalone 'throw' qualifier on a function
+// prototype.
+extern BoundedOption<unsigned, 0, 41>
+indent_func_throw;
+
+// How to indent within a macro followed by a brace on the same line
+// This allows reducing the indent in macros that have (for example)
+// `do { ... } while (0)` blocks bracketing them.
+//
+// true: add an indent for the brace on the same line as the macro
+// false: do not add an indent for the brace on the same line as the macro
+extern Option<bool>
+indent_macro_brace; // = true
+
+// The number of spaces to indent a continued '->' or '.'.
+// Usually set to 0, 1, or indent_columns.
+extern BoundedOption<unsigned, 0, 16>
+indent_member;
+
+// Whether lines broken at '.' or '->' should be indented by a single indent.
+// The indent_member option will not be effective if this is set to true.
+extern Option<bool>
+indent_member_single;
+
+// Spaces to indent single line ('//') comments on lines before code.
+extern BoundedOption<unsigned, 0, 16>
+indent_single_line_comments_before;
+
+// Spaces to indent single line ('//') comments on lines after code.
+extern BoundedOption<unsigned, 0, 16>
+indent_single_line_comments_after;
+
+// When opening a paren for a control statement (if, for, while, etc), increase
+// the indent level by this value. Negative values decrease the indent level.
+extern BoundedOption<signed, -16, 16>
+indent_sparen_extra;
+
+// Whether to indent trailing single line ('//') comments relative to the code
+// instead of trying to keep the same absolute column.
+extern Option<bool>
+indent_relative_single_line_comments;
+
+// Spaces to indent 'case' from 'switch'. Usually 0 or indent_columns.
+// It might be wise to choose the same value for the option indent_case_brace.
+extern BoundedOption<unsigned, 0, 16>
+indent_switch_case;
+
+// Spaces to indent the body of a 'switch' before any 'case'.
+// Usually the same as indent_columns or indent_switch_case.
+extern BoundedOption<unsigned, 0, 16>
+indent_switch_body;
+
+// Whether to ignore indent for '{' following 'case'.
+extern Option<bool>
+indent_ignore_case_brace;
+
+// Spaces to indent '{' from 'case'. By default, the brace will appear under
+// the 'c' in case. Usually set to 0 or indent_columns. Negative values are OK.
+// It might be wise to choose the same value for the option indent_switch_case.
+extern BoundedOption<signed, -16, 16>
+indent_case_brace;
+
+// indent 'break' with 'case' from 'switch'.
+extern Option<bool>
+indent_switch_break_with_case;
+
+// Whether to indent preprocessor statements inside of switch statements.
+extern Option<bool>
+indent_switch_pp; // = true
+
+// Spaces to shift the 'case' line, without affecting any other lines.
+// Usually 0.
+extern BoundedOption<unsigned, 0, 16>
+indent_case_shift;
+
+// Whether to align comments before 'case' with the 'case'.
+extern Option<bool>
+indent_case_comment; // = true
+
+// Whether to indent comments not found in first column.
+extern Option<bool>
+indent_comment; // = true
+
+// Whether to indent comments found in first column.
+extern Option<bool>
+indent_col1_comment;
+
+// Whether to indent multi string literal in first column.
+extern Option<bool>
+indent_col1_multi_string_literal;
+
+// Align comments on adjacent lines that are this many columns apart or less.
+extern BoundedOption<unsigned, 0, 16>
+indent_comment_align_thresh; // = 3
+
+// Whether to ignore indent for goto labels.
+extern Option<bool>
+indent_ignore_label;
+
+// How to indent goto labels. Requires indent_ignore_label=false.
+//
+// >0: Absolute column where 1 is the leftmost column
+// <=0: Subtract from brace indent
+extern BoundedOption<signed, -16, 16>
+indent_label; // = 1
+
+// How to indent access specifiers that are followed by a
+// colon.
+//
+// >0: Absolute column where 1 is the leftmost column
+// <=0: Subtract from brace indent
+extern BoundedOption<signed, -16, 16>
+indent_access_spec; // = 1
+
+// Whether to indent the code after an access specifier by one level.
+// If true, this option forces 'indent_access_spec=0'.
+extern Option<bool>
+indent_access_spec_body;
+
+// If an open parenthesis is followed by a newline, whether to indent the next
+// line so that it lines up after the open parenthesis (not recommended).
+extern Option<bool>
+indent_paren_nl;
+
+// How to indent a close parenthesis after a newline.
+//
+// 0: Indent to body level (default)
+// 1: Align under the open parenthesis
+// 2: Indent to the brace level
+// -1: Preserve original indentation
+extern BoundedOption<signed, -1, 2>
+indent_paren_close;
+
+// Whether to indent the open parenthesis of a function definition,
+// if the parenthesis is on its own line.
+extern Option<bool>
+indent_paren_after_func_def;
+
+// Whether to indent the open parenthesis of a function declaration,
+// if the parenthesis is on its own line.
+extern Option<bool>
+indent_paren_after_func_decl;
+
+// Whether to indent the open parenthesis of a function call,
+// if the parenthesis is on its own line.
+extern Option<bool>
+indent_paren_after_func_call;
+
+// How to indent a comma when inside braces.
+// 0: Indent by one level (default)
+// 1: Align under the open brace
+// -1: Preserve original indentation
+extern BoundedOption<signed, -1, 1>
+indent_comma_brace;
+
+// How to indent a comma when inside parentheses.
+// 0: Indent by one level (default)
+// 1: Align under the open parenthesis
+// -1: Preserve original indentation
+extern BoundedOption<signed, -1, 1>
+indent_comma_paren;
+
+// How to indent a Boolean operator when inside parentheses.
+// 0: Indent by one level (default)
+// 1: Align under the open parenthesis
+// -1: Preserve original indentation
+extern BoundedOption<signed, -1, 1>
+indent_bool_paren;
+
+// Whether to ignore the indentation of a Boolean operator when outside
+// parentheses.
+extern Option<bool>
+indent_ignore_bool;
+
+// Whether to ignore the indentation of an arithmetic operator.
+extern Option<bool>
+indent_ignore_arith;
+
+// Whether to indent a semicolon when inside a for parenthesis.
+// If true, aligns under the open for parenthesis.
+extern Option<bool>
+indent_semicolon_for_paren;
+
+// Whether to ignore the indentation of a semicolon outside of a 'for'
+// statement.
+extern Option<bool>
+indent_ignore_semicolon;
+
+// Whether to align the first expression to following ones
+// if indent_bool_paren=1.
+extern Option<bool>
+indent_first_bool_expr;
+
+// Whether to align the first expression to following ones
+// if indent_semicolon_for_paren=true.
+extern Option<bool>
+indent_first_for_expr;
+
+// If an open square is followed by a newline, whether to indent the next line
+// so that it lines up after the open square (not recommended).
+extern Option<bool>
+indent_square_nl;
+
+// (ESQL/C) Whether to preserve the relative indent of 'EXEC SQL' bodies.
+extern Option<bool>
+indent_preserve_sql;
+
+// Whether to ignore the indentation of an assignment operator.
+extern Option<bool>
+indent_ignore_assign;
+
+// Whether to align continued statements at the '='. If false or if the '=' is
+// followed by a newline, the next line is indent one tab.
+extern Option<bool>
+indent_align_assign; // = true
+
+// If true, the indentation of the chunks after a '=' sequence will be set at
+// LHS token indentation column before '='.
+extern Option<bool>
+indent_off_after_assign;
+
+// Whether to align continued statements at the '('. If false or the '(' is
+// followed by a newline, the next line indent is one tab.
+extern Option<bool>
+indent_align_paren; // = true
+
+// (OC) Whether to indent Objective-C code inside message selectors.
+extern Option<bool>
+indent_oc_inside_msg_sel;
+
+// (OC) Whether to indent Objective-C blocks at brace level instead of usual
+// rules.
+extern Option<bool>
+indent_oc_block;
+
+// (OC) Indent for Objective-C blocks in a message relative to the parameter
+// name.
+//
+// =0: Use indent_oc_block rules
+// >0: Use specified number of spaces to indent
+extern BoundedOption<unsigned, 0, 16>
+indent_oc_block_msg;
+
+// (OC) Minimum indent for subsequent parameters
+extern BoundedOption<unsigned, 0, 5000>
+indent_oc_msg_colon;
+
+// (OC) Whether to prioritize aligning with initial colon (and stripping spaces
+// from lines, if necessary).
+extern Option<bool>
+indent_oc_msg_prioritize_first_colon; // = true
+
+// (OC) Whether to indent blocks the way that Xcode does by default
+// (from the keyword if the parameter is on its own line; otherwise, from the
+// previous indentation level). Requires indent_oc_block_msg=true.
+extern Option<bool>
+indent_oc_block_msg_xcode_style;
+
+// (OC) Whether to indent blocks from where the brace is, relative to a
+// message keyword. Requires indent_oc_block_msg=true.
+extern Option<bool>
+indent_oc_block_msg_from_keyword;
+
+// (OC) Whether to indent blocks from where the brace is, relative to a message
+// colon. Requires indent_oc_block_msg=true.
+extern Option<bool>
+indent_oc_block_msg_from_colon;
+
+// (OC) Whether to indent blocks from where the block caret is.
+// Requires indent_oc_block_msg=true.
+extern Option<bool>
+indent_oc_block_msg_from_caret;
+
+// (OC) Whether to indent blocks from where the brace caret is.
+// Requires indent_oc_block_msg=true.
+extern Option<bool>
+indent_oc_block_msg_from_brace;
+
+// When indenting after virtual brace open and newline add further spaces to
+// reach this minimum indent.
+extern BoundedOption<unsigned, 0, 16>
+indent_min_vbrace_open;
+
+// Whether to add further spaces after regular indent to reach next tabstop
+// when indenting after virtual brace open and newline.
+extern Option<bool>
+indent_vbrace_open_on_tabstop;
+
+// How to indent after a brace followed by another token (not a newline).
+// true: indent all contained lines to match the token
+// false: indent all contained lines to match the brace
+extern Option<bool>
+indent_token_after_brace; // = true
+
+// Whether to indent the body of a C++11 lambda.
+extern Option<bool>
+indent_cpp_lambda_body;
+
+// How to indent compound literals that are being returned.
+// true: add both the indent from return & the compound literal open brace
+// (i.e. 2 indent levels)
+// false: only indent 1 level, don't add the indent for the open brace, only
+// add the indent for the return.
+extern Option<bool>
+indent_compound_literal_return; // = true
+
+// (C#) Whether to indent a 'using' block if no braces are used.
+extern Option<bool>
+indent_using_block; // = true
+
+// How to indent the continuation of ternary operator.
+//
+// 0: Off (default)
+// 1: When the `if_false` is a continuation, indent it under `if_false`
+// 2: When the `:` is a continuation, indent it under `?`
+extern BoundedOption<unsigned, 0, 2>
+indent_ternary_operator;
+
+// Whether to indent the statements inside ternary operator.
+extern Option<bool>
+indent_inside_ternary_operator;
+
+// If true, the indentation of the chunks after a `return` sequence will be set at return indentation column.
+extern Option<bool>
+indent_off_after_return;
+
+// If true, the indentation of the chunks after a `return new` sequence will be set at return indentation column.
+extern Option<bool>
+indent_off_after_return_new;
+
+// If true, the tokens after return are indented with regular single indentation. By default (false) the indentation is after the return token.
+extern Option<bool>
+indent_single_after_return;
+
+// Whether to ignore indent and alignment for 'asm' blocks (i.e. assume they
+// have their own indentation).
+extern Option<bool>
+indent_ignore_asm_block;
+
+// Don't indent the close parenthesis of a function definition,
+// if the parenthesis is on its own line.
+extern Option<bool>
+donot_indent_func_def_close_paren;
+
+//END
+
+///////////////////////////////////////////////////////////////////////////////
+//BEGIN Newline adding and removing options
+
+// Whether to collapse empty blocks between '{' and '}'.
+// If true, overrides nl_inside_empty_func
+extern Option<bool>
+nl_collapse_empty_body;
+
+// Don't split one-line braced assignments, as in 'foo_t f = { 1, 2 };'.
+extern Option<bool>
+nl_assign_leave_one_liners;
+
+// Don't split one-line braced statements inside a 'class xx { }' body.
+extern Option<bool>
+nl_class_leave_one_liners;
+
+// Don't split one-line enums, as in 'enum foo { BAR = 15 };'
+extern Option<bool>
+nl_enum_leave_one_liners;
+
+// Don't split one-line get or set functions.
+extern Option<bool>
+nl_getset_leave_one_liners;
+
+// (C#) Don't split one-line property get or set functions.
+extern Option<bool>
+nl_cs_property_leave_one_liners;
+
+// Don't split one-line function definitions, as in 'int foo() { return 0; }'.
+// might modify nl_func_type_name
+extern Option<bool>
+nl_func_leave_one_liners;
+
+// Don't split one-line C++11 lambdas, as in '[]() { return 0; }'.
+extern Option<bool>
+nl_cpp_lambda_leave_one_liners;
+
+// Don't split one-line if/else statements, as in 'if(...) b++;'.
+extern Option<bool>
+nl_if_leave_one_liners;
+
+// Don't split one-line while statements, as in 'while(...) b++;'.
+extern Option<bool>
+nl_while_leave_one_liners;
+
+// Don't split one-line do statements, as in 'do { b++; } while(...);'.
+extern Option<bool>
+nl_do_leave_one_liners;
+
+// Don't split one-line for statements, as in 'for(...) b++;'.
+extern Option<bool>
+nl_for_leave_one_liners;
+
+// (OC) Don't split one-line Objective-C messages.
+extern Option<bool>
+nl_oc_msg_leave_one_liner;
+
+// (OC) Add or remove newline between method declaration and '{'.
+extern Option<iarf_e>
+nl_oc_mdef_brace;
+
+// (OC) Add or remove newline between Objective-C block signature and '{'.
+extern Option<iarf_e>
+nl_oc_block_brace;
+
+// (OC) Add or remove blank line before '@interface' statement.
+extern Option<iarf_e>
+nl_oc_before_interface;
+
+// (OC) Add or remove blank line before '@implementation' statement.
+extern Option<iarf_e>
+nl_oc_before_implementation;
+
+// (OC) Add or remove blank line before '@end' statement.
+extern Option<iarf_e>
+nl_oc_before_end;
+
+// (OC) Add or remove newline between '@interface' and '{'.
+extern Option<iarf_e>
+nl_oc_interface_brace;
+
+// (OC) Add or remove newline between '@implementation' and '{'.
+extern Option<iarf_e>
+nl_oc_implementation_brace;
+
+// Add or remove newlines at the start of the file.
+extern Option<iarf_e>
+nl_start_of_file;
+
+// The minimum number of newlines at the start of the file (only used if
+// nl_start_of_file is 'add' or 'force').
+extern BoundedOption<unsigned, 0, 16>
+nl_start_of_file_min;
+
+// Add or remove newline at the end of the file.
+extern Option<iarf_e>
+nl_end_of_file;
+
+// The minimum number of newlines at the end of the file (only used if
+// nl_end_of_file is 'add' or 'force').
+extern BoundedOption<unsigned, 0, 16>
+nl_end_of_file_min;
+
+// Add or remove newline between '=' and '{'.
+extern Option<iarf_e>
+nl_assign_brace;
+
+// (D) Add or remove newline between '=' and '['.
+extern Option<iarf_e>
+nl_assign_square;
+
+// Add or remove newline between '[]' and '{'.
+extern Option<iarf_e>
+nl_tsquare_brace;
+
+// (D) Add or remove newline after '= ['. Will also affect the newline before
+// the ']'.
+extern Option<iarf_e>
+nl_after_square_assign;
+
+// Add or remove newline between a function call's ')' and '{', as in
+// 'list_for_each(item, &list) { }'.
+extern Option<iarf_e>
+nl_fcall_brace;
+
+// Add or remove newline between 'enum' and '{'.
+extern Option<iarf_e>
+nl_enum_brace;
+
+// Add or remove newline between 'enum' and 'class'.
+extern Option<iarf_e>
+nl_enum_class;
+
+// Add or remove newline between 'enum class' and the identifier.
+extern Option<iarf_e>
+nl_enum_class_identifier;
+
+// Add or remove newline between 'enum class' type and ':'.
+extern Option<iarf_e>
+nl_enum_identifier_colon;
+
+// Add or remove newline between 'enum class identifier :' and type.
+extern Option<iarf_e>
+nl_enum_colon_type;
+
+// Add or remove newline between 'struct and '{'.
+extern Option<iarf_e>
+nl_struct_brace;
+
+// Add or remove newline between 'union' and '{'.
+extern Option<iarf_e>
+nl_union_brace;
+
+// Add or remove newline between 'if' and '{'.
+extern Option<iarf_e>
+nl_if_brace;
+
+// Add or remove newline between '}' and 'else'.
+extern Option<iarf_e>
+nl_brace_else;
+
+// Add or remove newline between 'else if' and '{'. If set to ignore,
+// nl_if_brace is used instead.
+extern Option<iarf_e>
+nl_elseif_brace;
+
+// Add or remove newline between 'else' and '{'.
+extern Option<iarf_e>
+nl_else_brace;
+
+// Add or remove newline between 'else' and 'if'.
+extern Option<iarf_e>
+nl_else_if;
+
+// Add or remove newline before '{' opening brace
+extern Option<iarf_e>
+nl_before_opening_brace_func_class_def;
+
+// Add or remove newline before 'if'/'else if' closing parenthesis.
+extern Option<iarf_e>
+nl_before_if_closing_paren;
+
+// Add or remove newline between '}' and 'finally'.
+extern Option<iarf_e>
+nl_brace_finally;
+
+// Add or remove newline between 'finally' and '{'.
+extern Option<iarf_e>
+nl_finally_brace;
+
+// Add or remove newline between 'try' and '{'.
+extern Option<iarf_e>
+nl_try_brace;
+
+// Add or remove newline between get/set and '{'.
+extern Option<iarf_e>
+nl_getset_brace;
+
+// Add or remove newline between 'for' and '{'.
+extern Option<iarf_e>
+nl_for_brace;
+
+// Add or remove newline before the '{' of a 'catch' statement, as in
+// 'catch (decl) <here> {'.
+extern Option<iarf_e>
+nl_catch_brace;
+
+// (OC) Add or remove newline before the '{' of a '@catch' statement, as in
+// '@catch (decl) <here> {'. If set to ignore, nl_catch_brace is used.
+extern Option<iarf_e>
+nl_oc_catch_brace;
+
+// Add or remove newline between '}' and 'catch'.
+extern Option<iarf_e>
+nl_brace_catch;
+
+// (OC) Add or remove newline between '}' and '@catch'. If set to ignore,
+// nl_brace_catch is used.
+extern Option<iarf_e>
+nl_oc_brace_catch;
+
+// Add or remove newline between '}' and ']'.
+extern Option<iarf_e>
+nl_brace_square;
+
+// Add or remove newline between '}' and ')' in a function invocation.
+extern Option<iarf_e>
+nl_brace_fparen;
+
+// Add or remove newline between 'while' and '{'.
+extern Option<iarf_e>
+nl_while_brace;
+
+// (D) Add or remove newline between 'scope (x)' and '{'.
+extern Option<iarf_e>
+nl_scope_brace;
+
+// (D) Add or remove newline between 'unittest' and '{'.
+extern Option<iarf_e>
+nl_unittest_brace;
+
+// (D) Add or remove newline between 'version (x)' and '{'.
+extern Option<iarf_e>
+nl_version_brace;
+
+// (C#) Add or remove newline between 'using' and '{'.
+extern Option<iarf_e>
+nl_using_brace;
+
+// Add or remove newline between two open or close braces. Due to general
+// newline/brace handling, REMOVE may not work.
+extern Option<iarf_e>
+nl_brace_brace;
+
+// Add or remove newline between 'do' and '{'.
+extern Option<iarf_e>
+nl_do_brace;
+
+// Add or remove newline between '}' and 'while' of 'do' statement.
+extern Option<iarf_e>
+nl_brace_while;
+
+// Add or remove newline between 'switch' and '{'.
+extern Option<iarf_e>
+nl_switch_brace;
+
+// Add or remove newline between 'synchronized' and '{'.
+extern Option<iarf_e>
+nl_synchronized_brace;
+
+// Add a newline between ')' and '{' if the ')' is on a different line than the
+// if/for/etc.
+//
+// Overrides nl_for_brace, nl_if_brace, nl_switch_brace, nl_while_switch and
+// nl_catch_brace.
+extern Option<bool>
+nl_multi_line_cond;
+
+// Add a newline after '(' if an if/for/while/switch condition spans multiple
+// lines
+extern Option<iarf_e>
+nl_multi_line_sparen_open;
+
+// Add a newline before ')' if an if/for/while/switch condition spans multiple
+// lines. Overrides nl_before_if_closing_paren if both are specified.
+extern Option<iarf_e>
+nl_multi_line_sparen_close;
+
+// Force a newline in a define after the macro name for multi-line defines.
+extern Option<bool>
+nl_multi_line_define;
+
+// Whether to add a newline before 'case', and a blank line before a 'case'
+// statement that follows a ';' or '}'.
+extern Option<bool>
+nl_before_case;
+
+// Whether to add a newline after a 'case' statement.
+extern Option<bool>
+nl_after_case;
+
+// Add or remove newline between a case ':' and '{'.
+//
+// Overrides nl_after_case.
+extern Option<iarf_e>
+nl_case_colon_brace;
+
+// Add or remove newline between ')' and 'throw'.
+extern Option<iarf_e>
+nl_before_throw;
+
+// Add or remove newline between 'namespace' and '{'.
+extern Option<iarf_e>
+nl_namespace_brace;
+
+// Add or remove newline after 'template<...>' of a template class.
+extern Option<iarf_e>
+nl_template_class;
+
+// Add or remove newline after 'template<...>' of a template class declaration.
+//
+// Overrides nl_template_class.
+extern Option<iarf_e>
+nl_template_class_decl;
+
+// Add or remove newline after 'template<>' of a specialized class declaration.
+//
+// Overrides nl_template_class_decl.
+extern Option<iarf_e>
+nl_template_class_decl_special;
+
+// Add or remove newline after 'template<...>' of a template class definition.
+//
+// Overrides nl_template_class.
+extern Option<iarf_e>
+nl_template_class_def;
+
+// Add or remove newline after 'template<>' of a specialized class definition.
+//
+// Overrides nl_template_class_def.
+extern Option<iarf_e>
+nl_template_class_def_special;
+
+// Add or remove newline after 'template<...>' of a template function.
+extern Option<iarf_e>
+nl_template_func;
+
+// Add or remove newline after 'template<...>' of a template function
+// declaration.
+//
+// Overrides nl_template_func.
+extern Option<iarf_e>
+nl_template_func_decl;
+
+// Add or remove newline after 'template<>' of a specialized function
+// declaration.
+//
+// Overrides nl_template_func_decl.
+extern Option<iarf_e>
+nl_template_func_decl_special;
+
+// Add or remove newline after 'template<...>' of a template function
+// definition.
+//
+// Overrides nl_template_func.
+extern Option<iarf_e>
+nl_template_func_def;
+
+// Add or remove newline after 'template<>' of a specialized function
+// definition.
+//
+// Overrides nl_template_func_def.
+extern Option<iarf_e>
+nl_template_func_def_special;
+
+// Add or remove newline after 'template<...>' of a template variable.
+extern Option<iarf_e>
+nl_template_var;
+
+// Add or remove newline between 'template<...>' and 'using' of a templated
+// type alias.
+extern Option<iarf_e>
+nl_template_using;
+
+// Add or remove newline between 'class' and '{'.
+extern Option<iarf_e>
+nl_class_brace;
+
+// Add or remove newline before or after (depending on pos_class_comma,
+// may not be IGNORE) each',' in the base class list.
+extern Option<iarf_e>
+nl_class_init_args;
+
+// Add or remove newline after each ',' in the constructor member
+// initialization. Related to nl_constr_colon, pos_constr_colon and
+// pos_constr_comma.
+extern Option<iarf_e>
+nl_constr_init_args;
+
+// Add or remove newline before first element, after comma, and after last
+// element, in 'enum'.
+extern Option<iarf_e>
+nl_enum_own_lines;
+
+// Add or remove newline between return type and function name in a function
+// definition.
+// might be modified by nl_func_leave_one_liners
+extern Option<iarf_e>
+nl_func_type_name;
+
+// Add or remove newline between return type and function name inside a class
+// definition. If set to ignore, nl_func_type_name or nl_func_proto_type_name
+// is used instead.
+extern Option<iarf_e>
+nl_func_type_name_class;
+
+// Add or remove newline between class specification and '::'
+// in 'void A::f() { }'. Only appears in separate member implementation (does
+// not appear with in-line implementation).
+extern Option<iarf_e>
+nl_func_class_scope;
+
+// Add or remove newline between function scope and name, as in
+// 'void A :: <here> f() { }'.
+extern Option<iarf_e>
+nl_func_scope_name;
+
+// Add or remove newline between return type and function name in a prototype.
+extern Option<iarf_e>
+nl_func_proto_type_name;
+
+// Add or remove newline between a function name and the opening '(' in the
+// declaration.
+extern Option<iarf_e>
+nl_func_paren;
+
+// Overrides nl_func_paren for functions with no parameters.
+extern Option<iarf_e>
+nl_func_paren_empty;
+
+// Add or remove newline between a function name and the opening '(' in the
+// definition.
+extern Option<iarf_e>
+nl_func_def_paren;
+
+// Overrides nl_func_def_paren for functions with no parameters.
+extern Option<iarf_e>
+nl_func_def_paren_empty;
+
+// Add or remove newline between a function name and the opening '(' in the
+// call.
+extern Option<iarf_e>
+nl_func_call_paren;
+
+// Overrides nl_func_call_paren for functions with no parameters.
+extern Option<iarf_e>
+nl_func_call_paren_empty;
+
+// Add or remove newline after '(' in a function declaration.
+extern Option<iarf_e>
+nl_func_decl_start;
+
+// Add or remove newline after '(' in a function definition.
+extern Option<iarf_e>
+nl_func_def_start;
+
+// Overrides nl_func_decl_start when there is only one parameter.
+extern Option<iarf_e>
+nl_func_decl_start_single;
+
+// Overrides nl_func_def_start when there is only one parameter.
+extern Option<iarf_e>
+nl_func_def_start_single;
+
+// Whether to add a newline after '(' in a function declaration if '(' and ')'
+// are in different lines. If false, nl_func_decl_start is used instead.
+extern Option<bool>
+nl_func_decl_start_multi_line;
+
+// Whether to add a newline after '(' in a function definition if '(' and ')'
+// are in different lines. If false, nl_func_def_start is used instead.
+extern Option<bool>
+nl_func_def_start_multi_line;
+
+// Add or remove newline after each ',' in a function declaration.
+extern Option<iarf_e>
+nl_func_decl_args;
+
+// Add or remove newline after each ',' in a function definition.
+extern Option<iarf_e>
+nl_func_def_args;
+
+// Add or remove newline after each ',' in a function call.
+extern Option<iarf_e>
+nl_func_call_args;
+
+// Whether to add a newline after each ',' in a function declaration if '('
+// and ')' are in different lines. If false, nl_func_decl_args is used instead.
+extern Option<bool>
+nl_func_decl_args_multi_line;
+
+// Whether to add a newline after each ',' in a function definition if '('
+// and ')' are in different lines. If false, nl_func_def_args is used instead.
+extern Option<bool>
+nl_func_def_args_multi_line;
+
+// Add or remove newline before the ')' in a function declaration.
+extern Option<iarf_e>
+nl_func_decl_end;
+
+// Add or remove newline before the ')' in a function definition.
+extern Option<iarf_e>
+nl_func_def_end;
+
+// Overrides nl_func_decl_end when there is only one parameter.
+extern Option<iarf_e>
+nl_func_decl_end_single;
+
+// Overrides nl_func_def_end when there is only one parameter.
+extern Option<iarf_e>
+nl_func_def_end_single;
+
+// Whether to add a newline before ')' in a function declaration if '(' and ')'
+// are in different lines. If false, nl_func_decl_end is used instead.
+extern Option<bool>
+nl_func_decl_end_multi_line;
+
+// Whether to add a newline before ')' in a function definition if '(' and ')'
+// are in different lines. If false, nl_func_def_end is used instead.
+extern Option<bool>
+nl_func_def_end_multi_line;
+
+// Add or remove newline between '()' in a function declaration.
+extern Option<iarf_e>
+nl_func_decl_empty;
+
+// Add or remove newline between '()' in a function definition.
+extern Option<iarf_e>
+nl_func_def_empty;
+
+// Add or remove newline between '()' in a function call.
+extern Option<iarf_e>
+nl_func_call_empty;
+
+// Whether to add a newline after '(' in a function call,
+// has preference over nl_func_call_start_multi_line.
+extern Option<iarf_e>
+nl_func_call_start;
+
+// Whether to add a newline before ')' in a function call.
+extern Option<iarf_e>
+nl_func_call_end;
+
+// Whether to add a newline after '(' in a function call if '(' and ')' are in
+// different lines.
+extern Option<bool>
+nl_func_call_start_multi_line;
+
+// Whether to add a newline after each ',' in a function call if '(' and ')'
+// are in different lines.
+extern Option<bool>
+nl_func_call_args_multi_line;
+
+// Whether to add a newline before ')' in a function call if '(' and ')' are in
+// different lines.
+extern Option<bool>
+nl_func_call_end_multi_line;
+
+// Whether to respect nl_func_call_XXX option in case of closure args.
+extern Option<bool>
+nl_func_call_args_multi_line_ignore_closures; // false
+
+// Whether to add a newline after '<' of a template parameter list.
+extern Option<bool>
+nl_template_start;
+
+// Whether to add a newline after each ',' in a template parameter list.
+extern Option<bool>
+nl_template_args;
+
+// Whether to add a newline before '>' of a template parameter list.
+extern Option<bool>
+nl_template_end;
+
+// (OC) Whether to put each Objective-C message parameter on a separate line.
+// See nl_oc_msg_leave_one_liner.
+extern Option<bool>
+nl_oc_msg_args;
+
+// Add or remove newline between function signature and '{'.
+extern Option<iarf_e>
+nl_fdef_brace;
+
+// Add or remove newline between function signature and '{',
+// if signature ends with ')'. Overrides nl_fdef_brace.
+extern Option<iarf_e>
+nl_fdef_brace_cond;
+
+// Add or remove newline between C++11 lambda signature and '{'.
+extern Option<iarf_e>
+nl_cpp_ldef_brace;
+
+// Add or remove newline between 'return' and the return expression.
+extern Option<iarf_e>
+nl_return_expr;
+
+// Whether to add a newline after semicolons, except in 'for' statements.
+extern Option<bool>
+nl_after_semicolon;
+
+// (Java) Add or remove newline between the ')' and '{{' of the double brace
+// initializer.
+extern Option<iarf_e>
+nl_paren_dbrace_open;
+
+// Whether to add a newline after the type in an unnamed temporary
+// direct-list-initialization, better:
+// before a direct-list-initialization.
+extern Option<iarf_e>
+nl_type_brace_init_lst;
+
+// Whether to add a newline after the open brace in an unnamed temporary
+// direct-list-initialization.
+extern Option<iarf_e>
+nl_type_brace_init_lst_open;
+
+// Whether to add a newline before the close brace in an unnamed temporary
+// direct-list-initialization.
+extern Option<iarf_e>
+nl_type_brace_init_lst_close;
+
+// Whether to add a newline before '{'.
+extern Option<bool>
+nl_before_brace_open;
+
+// Whether to add a newline after '{'.
+extern Option<bool>
+nl_after_brace_open;
+
+// Whether to add a newline between the open brace and a trailing single-line
+// comment. Requires nl_after_brace_open=true.
+extern Option<bool>
+nl_after_brace_open_cmt;
+
+// Whether to add a newline after a virtual brace open with a non-empty body.
+// These occur in un-braced if/while/do/for statement bodies.
+extern Option<bool>
+nl_after_vbrace_open;
+
+// Whether to add a newline after a virtual brace open with an empty body.
+// These occur in un-braced if/while/do/for statement bodies.
+extern Option<bool>
+nl_after_vbrace_open_empty;
+
+// Whether to add a newline after '}'. Does not apply if followed by a
+// necessary ';'.
+extern Option<bool>
+nl_after_brace_close;
+
+// Whether to add a newline after a virtual brace close,
+// as in 'if (foo) a++; <here> return;'.
+extern Option<bool>
+nl_after_vbrace_close;
+
+// Add or remove newline between the close brace and identifier,
+// as in 'struct { int a; } <here> b;'. Affects enumerations, unions and
+// structures. If set to ignore, uses nl_after_brace_close.
+extern Option<iarf_e>
+nl_brace_struct_var;
+
+// Whether to alter newlines in '#define' macros.
+extern Option<bool>
+nl_define_macro;
+
+// Whether to alter newlines between consecutive parenthesis closes. The number
+// of closing parentheses in a line will depend on respective open parenthesis
+// lines.
+extern Option<bool>
+nl_squeeze_paren_close;
+
+// Whether to remove blanks after '#ifxx' and '#elxx', or before '#elxx' and
+// '#endif'. Does not affect top-level #ifdefs.
+extern Option<bool>
+nl_squeeze_ifdef;
+
+// Makes the nl_squeeze_ifdef option affect the top-level #ifdefs as well.
+extern Option<bool>
+nl_squeeze_ifdef_top_level;
+
+// Add or remove blank line before 'if'.
+extern Option<iarf_e>
+nl_before_if;
+
+// Add or remove blank line after 'if' statement. Add/Force work only if the
+// next token is not a closing brace.
+extern Option<iarf_e>
+nl_after_if;
+
+// Add or remove blank line before 'for'.
+extern Option<iarf_e>
+nl_before_for;
+
+// Add or remove blank line after 'for' statement.
+extern Option<iarf_e>
+nl_after_for;
+
+// Add or remove blank line before 'while'.
+extern Option<iarf_e>
+nl_before_while;
+
+// Add or remove blank line after 'while' statement.
+extern Option<iarf_e>
+nl_after_while;
+
+// Add or remove blank line before 'switch'.
+extern Option<iarf_e>
+nl_before_switch;
+
+// Add or remove blank line after 'switch' statement.
+extern Option<iarf_e>
+nl_after_switch;
+
+// Add or remove blank line before 'synchronized'.
+extern Option<iarf_e>
+nl_before_synchronized;
+
+// Add or remove blank line after 'synchronized' statement.
+extern Option<iarf_e>
+nl_after_synchronized;
+
+// Add or remove blank line before 'do'.
+extern Option<iarf_e>
+nl_before_do;
+
+// Add or remove blank line after 'do/while' statement.
+extern Option<iarf_e>
+nl_after_do;
+
+// Ignore nl_before_{if,for,switch,do,synchronized} if the control
+// statement is immediately after a case statement.
+// if nl_before_{if,for,switch,do} is set to remove, this option
+// does nothing.
+extern Option<bool>
+nl_before_ignore_after_case;
+
+// Whether to put a blank line before 'return' statements, unless after an open
+// brace.
+extern Option<bool>
+nl_before_return;
+
+// Whether to put a blank line after 'return' statements, unless followed by a
+// close brace.
+extern Option<bool>
+nl_after_return;
+
+// Whether to put a blank line before a member '.' or '->' operators.
+extern Option<iarf_e>
+nl_before_member;
+
+// (Java) Whether to put a blank line after a member '.' or '->' operators.
+extern Option<iarf_e>
+nl_after_member;
+
+// Whether to double-space commented-entries in 'struct'/'union'/'enum'.
+extern Option<bool>
+nl_ds_struct_enum_cmt;
+
+// Whether to force a newline before '}' of a 'struct'/'union'/'enum'.
+// (Lower priority than eat_blanks_before_close_brace.)
+extern Option<bool>
+nl_ds_struct_enum_close_brace;
+
+// Add or remove newline before or after (depending on pos_class_colon) a class
+// colon, as in 'class Foo <here> : <or here> public Bar'.
+extern Option<iarf_e>
+nl_class_colon;
+
+// Add or remove newline around a class constructor colon. The exact position
+// depends on nl_constr_init_args, pos_constr_colon and pos_constr_comma.
+extern Option<iarf_e>
+nl_constr_colon;
+
+// Whether to collapse a two-line namespace, like 'namespace foo\n{ decl; }'
+// into a single line. If true, prevents other brace newline rules from turning
+// such code into four lines. If true, it also preserves one-liner namespaces.
+extern Option<bool>
+nl_namespace_two_to_one_liner;
+
+// Whether to remove a newline in simple unbraced if statements, turning them
+// into one-liners, as in 'if(b)\n i++;' => 'if(b) i++;'.
+extern Option<bool>
+nl_create_if_one_liner;
+
+// Whether to remove a newline in simple unbraced for statements, turning them
+// into one-liners, as in 'for (...)\n stmt;' => 'for (...) stmt;'.
+extern Option<bool>
+nl_create_for_one_liner;
+
+// Whether to remove a newline in simple unbraced while statements, turning
+// them into one-liners, as in 'while (expr)\n stmt;' => 'while (expr) stmt;'.
+extern Option<bool>
+nl_create_while_one_liner;
+
+// Whether to collapse a function definition whose body (not counting braces)
+// is only one line so that the entire definition (prototype, braces, body) is
+// a single line.
+extern Option<bool>
+nl_create_func_def_one_liner;
+
+// Whether to split one-line simple list definitions into three lines by
+// adding newlines, as in 'int a[12] = { <here> 0 <here> };'.
+extern Option<bool>
+nl_create_list_one_liner;
+
+// Whether to split one-line simple unbraced if statements into two lines by
+// adding a newline, as in 'if(b) <here> i++;'.
+extern Option<bool>
+nl_split_if_one_liner;
+
+// Whether to split one-line simple unbraced for statements into two lines by
+// adding a newline, as in 'for (...) <here> stmt;'.
+extern Option<bool>
+nl_split_for_one_liner;
+
+// Whether to split one-line simple unbraced while statements into two lines by
+// adding a newline, as in 'while (expr) <here> stmt;'.
+extern Option<bool>
+nl_split_while_one_liner;
+
+// Don't add a newline before a cpp-comment in a parameter list of a function
+// call.
+extern Option<bool>
+donot_add_nl_before_cpp_comment;
+
+//END
+
+///////////////////////////////////////////////////////////////////////////////
+//BEGIN Blank line options
+
+// The maximum number of consecutive newlines (3 = 2 blank lines).
+extern BoundedOption<unsigned, 0, 16>
+nl_max;
+
+// The maximum number of consecutive newlines in a function.
+extern BoundedOption<unsigned, 0, 16>
+nl_max_blank_in_func;
+
+// The number of newlines inside an empty function body.
+// This option overrides eat_blanks_after_open_brace and
+// eat_blanks_before_close_brace, but is ignored when
+// nl_collapse_empty_body=true
+extern BoundedOption<unsigned, 0, 16>
+nl_inside_empty_func;
+
+// The number of newlines before a function prototype.
+extern BoundedOption<unsigned, 0, 16>
+nl_before_func_body_proto;
+
+// The number of newlines before a multi-line function definition. Where
+// applicable, this option is overridden with eat_blanks_after_open_brace=true
+extern BoundedOption<unsigned, 0, 16>
+nl_before_func_body_def;
+
+// The number of newlines before a class constructor/destructor prototype.
+extern BoundedOption<unsigned, 0, 16>
+nl_before_func_class_proto;
+
+// The number of newlines before a class constructor/destructor definition.
+extern BoundedOption<unsigned, 0, 16>
+nl_before_func_class_def;
+
+// The number of newlines after a function prototype.
+extern BoundedOption<unsigned, 0, 16>
+nl_after_func_proto;
+
+// The number of newlines after a function prototype, if not followed by
+// another function prototype.
+extern BoundedOption<unsigned, 0, 16>
+nl_after_func_proto_group;
+
+// The number of newlines after a class constructor/destructor prototype.
+extern BoundedOption<unsigned, 0, 16>
+nl_after_func_class_proto;
+
+// The number of newlines after a class constructor/destructor prototype,
+// if not followed by another constructor/destructor prototype.
+extern BoundedOption<unsigned, 0, 16>
+nl_after_func_class_proto_group;
+
+// Whether one-line method definitions inside a class body should be treated
+// as if they were prototypes for the purposes of adding newlines.
+//
+// Requires nl_class_leave_one_liners=true. Overrides nl_before_func_body_def
+// and nl_before_func_class_def for one-liners.
+extern Option<bool>
+nl_class_leave_one_liner_groups;
+
+// The number of newlines after '}' of a multi-line function body.
+extern BoundedOption<unsigned, 0, 16>
+nl_after_func_body;
+
+// The number of newlines after '}' of a multi-line function body in a class
+// declaration. Also affects class constructors/destructors.
+//
+// Overrides nl_after_func_body.
+extern BoundedOption<unsigned, 0, 16>
+nl_after_func_body_class;
+
+// The number of newlines after '}' of a single line function body. Also
+// affects class constructors/destructors.
+//
+// Overrides nl_after_func_body and nl_after_func_body_class.
+extern BoundedOption<unsigned, 0, 16>
+nl_after_func_body_one_liner;
+
+// The number of blank lines after a block of variable definitions at the top
+// of a function body.
+//
+// 0: No change (default).
+extern BoundedOption<unsigned, 0, 16>
+nl_func_var_def_blk;
+
+// The number of newlines before a block of typedefs. If nl_after_access_spec
+// is non-zero, that option takes precedence.
+//
+// 0: No change (default).
+extern BoundedOption<unsigned, 0, 16>
+nl_typedef_blk_start;
+
+// The number of newlines after a block of typedefs.
+//
+// 0: No change (default).
+extern BoundedOption<unsigned, 0, 16>
+nl_typedef_blk_end;
+
+// The maximum number of consecutive newlines within a block of typedefs.
+//
+// 0: No change (default).
+extern BoundedOption<unsigned, 0, 16>
+nl_typedef_blk_in;
+
+// The number of empty newlines before a block of variable definitions
+// not at the top of a function body. If nl_after_access_spec is non-zero,
+// that option takes precedence.
+//
+// 0: No change (default).
+extern BoundedOption<unsigned, 0, 16>
+nl_var_def_blk_start;
+
+// The number of empty newlines after a block of variable definitions
+// not at the top of a function body.
+//
+// 0: No change (default).
+extern BoundedOption<unsigned, 0, 16>
+nl_var_def_blk_end;
+
+// The maximum number of consecutive newlines within a block of variable
+// definitions.
+//
+// 0: No change (default).
+extern BoundedOption<unsigned, 0, 16>
+nl_var_def_blk_in;
+
+// The minimum number of newlines before a multi-line comment.
+// Doesn't apply if after a brace open or another multi-line comment.
+extern BoundedOption<unsigned, 0, 16>
+nl_before_block_comment;
+
+// The minimum number of newlines before a single-line C comment.
+// Doesn't apply if after a brace open or other single-line C comments.
+extern BoundedOption<unsigned, 0, 16>
+nl_before_c_comment;
+
+// The minimum number of newlines before a CPP comment.
+// Doesn't apply if after a brace open or other CPP comments.
+extern BoundedOption<unsigned, 0, 16>
+nl_before_cpp_comment;
+
+// Whether to force a newline after a multi-line comment.
+extern Option<bool>
+nl_after_multiline_comment;
+
+// Whether to force a newline after a label's colon.
+extern Option<bool>
+nl_after_label_colon;
+
+// The number of newlines before a struct definition.
+extern BoundedOption<unsigned, 0, 16>
+nl_before_struct;
+
+// The number of newlines after '}' or ';' of a struct/enum/union definition.
+extern BoundedOption<unsigned, 0, 16>
+nl_after_struct;
+
+// The number of newlines before a class definition.
+extern BoundedOption<unsigned, 0, 16>
+nl_before_class;
+
+// The number of newlines after '}' or ';' of a class definition.
+extern BoundedOption<unsigned, 0, 16>
+nl_after_class;
+
+// The number of newlines before a namespace.
+extern BoundedOption<unsigned, 0, 16>
+nl_before_namespace;
+
+// The number of newlines after '{' of a namespace. This also adds newlines
+// before the matching '}'.
+//
+// 0: Apply eat_blanks_after_open_brace or eat_blanks_before_close_brace if
+// applicable, otherwise no change.
+//
+// Overrides eat_blanks_after_open_brace and eat_blanks_before_close_brace.
+extern BoundedOption<unsigned, 0, 16>
+nl_inside_namespace;
+
+// The number of newlines after '}' of a namespace.
+extern BoundedOption<unsigned, 0, 16>
+nl_after_namespace;
+
+// The number of newlines before an access specifier label. This also includes
+// the Qt-specific 'signals:' and 'slots:'. Will not change the newline count
+// if after a brace open.
+//
+// 0: No change (default).
+extern BoundedOption<unsigned, 0, 16>
+nl_before_access_spec;
+
+// The number of newlines after an access specifier label. This also includes
+// the Qt-specific 'signals:' and 'slots:'. Will not change the newline count
+// if after a brace open.
+//
+// 0: No change (default).
+//
+// Overrides nl_typedef_blk_start and nl_var_def_blk_start.
+extern BoundedOption<unsigned, 0, 16>
+nl_after_access_spec;
+
+// The number of newlines between a function definition and the function
+// comment, as in '// comment\n <here> void foo() {...}'.
+//
+// 0: No change (default).
+extern BoundedOption<unsigned, 0, 16>
+nl_comment_func_def;
+
+// The number of newlines after a try-catch-finally block that isn't followed
+// by a brace close.
+//
+// 0: No change (default).
+extern BoundedOption<unsigned, 0, 16>
+nl_after_try_catch_finally;
+
+// (C#) The number of newlines before and after a property, indexer or event
+// declaration.
+//
+// 0: No change (default).
+extern BoundedOption<unsigned, 0, 16>
+nl_around_cs_property;
+
+// (C#) The number of newlines between the get/set/add/remove handlers.
+//
+// 0: No change (default).
+extern BoundedOption<unsigned, 0, 16>
+nl_between_get_set;
+
+// (C#) Add or remove newline between property and the '{'.
+extern Option<iarf_e>
+nl_property_brace;
+
+// Whether to remove blank lines after '{'.
+extern Option<bool>
+eat_blanks_after_open_brace;
+
+// Whether to remove blank lines before '}'.
+extern Option<bool>
+eat_blanks_before_close_brace;
+
+// How aggressively to remove extra newlines not in preprocessor.
+//
+// 0: No change (default)
+// 1: Remove most newlines not handled by other config
+// 2: Remove all newlines and reformat completely by config
+extern BoundedOption<unsigned, 0, 2>
+nl_remove_extra_newlines;
+
+// (Java) Add or remove newline after an annotation statement. Only affects
+// annotations that are after a newline.
+extern Option<iarf_e>
+nl_after_annotation;
+
+// (Java) Add or remove newline between two annotations.
+extern Option<iarf_e>
+nl_between_annotation;
+
+// The number of newlines before a whole-file #ifdef.
+//
+// 0: No change (default).
+extern BoundedOption<unsigned, 0, 16>
+nl_before_whole_file_ifdef;
+
+// The number of newlines after a whole-file #ifdef.
+//
+// 0: No change (default).
+extern BoundedOption<unsigned, 0, 16>
+nl_after_whole_file_ifdef;
+
+// The number of newlines before a whole-file #endif.
+//
+// 0: No change (default).
+extern BoundedOption<unsigned, 0, 16>
+nl_before_whole_file_endif;
+
+// The number of newlines after a whole-file #endif.
+//
+// 0: No change (default).
+extern BoundedOption<unsigned, 0, 16>
+nl_after_whole_file_endif;
+
+//END
+
+///////////////////////////////////////////////////////////////////////////////
+//BEGIN Positioning options
+
+// The position of arithmetic operators in wrapped expressions.
+extern Option<token_pos_e>
+pos_arith;
+
+// The position of assignment in wrapped expressions. Do not affect '='
+// followed by '{'.
+extern Option<token_pos_e>
+pos_assign;
+
+// The position of Boolean operators in wrapped expressions.
+extern Option<token_pos_e>
+pos_bool;
+
+// The position of comparison operators in wrapped expressions.
+extern Option<token_pos_e>
+pos_compare;
+
+// The position of conditional operators, as in the '?' and ':' of
+// 'expr ? stmt : stmt', in wrapped expressions.
+extern Option<token_pos_e>
+pos_conditional;
+
+// The position of the comma in wrapped expressions.
+extern Option<token_pos_e>
+pos_comma;
+
+// The position of the comma in enum entries.
+extern Option<token_pos_e>
+pos_enum_comma;
+
+// The position of the comma in the base class list if there is more than one
+// line. Affects nl_class_init_args.
+extern Option<token_pos_e>
+pos_class_comma;
+
+// The position of the comma in the constructor initialization list.
+// Related to nl_constr_colon, nl_constr_init_args and pos_constr_colon.
+extern Option<token_pos_e>
+pos_constr_comma;
+
+// The position of trailing/leading class colon, between class and base class
+// list. Affects nl_class_colon.
+extern Option<token_pos_e>
+pos_class_colon;
+
+// The position of colons between constructor and member initialization.
+// Related to nl_constr_colon, nl_constr_init_args and pos_constr_comma.
+extern Option<token_pos_e>
+pos_constr_colon;
+
+// The position of shift operators in wrapped expressions.
+extern Option<token_pos_e>
+pos_shift;
+
+//END
+
+///////////////////////////////////////////////////////////////////////////////
+//BEGIN Line splitting options
+
+// Try to limit code width to N columns.
+extern BoundedOption<unsigned, 0, 10000>
+code_width;
+
+// Whether to fully split long 'for' statements at semi-colons.
+extern Option<bool>
+ls_for_split_full;
+
+// Whether to fully split long function prototypes/calls at commas.
+// The option ls_code_width has priority over the option ls_func_split_full.
+extern Option<bool>
+ls_func_split_full;
+
+// Whether to split lines as close to code_width as possible and ignore some
+// groupings.
+// The option ls_code_width has priority over the option ls_func_split_full.
+extern Option<bool>
+ls_code_width;
+
+//END
+
+///////////////////////////////////////////////////////////////////////////////
+//BEGIN Code alignment options (not left column spaces/tabs)
+
+// Whether to keep non-indenting tabs.
+extern Option<bool>
+align_keep_tabs;
+
+// Whether to use tabs for aligning.
+extern Option<bool>
+align_with_tabs;
+
+// Whether to bump out to the next tab when aligning.
+extern Option<bool>
+align_on_tabstop;
+
+// Whether to right-align numbers.
+extern Option<bool>
+align_number_right;
+
+// Whether to keep whitespace not required for alignment.
+extern Option<bool>
+align_keep_extra_space;
+
+// Whether to align variable definitions in prototypes and functions.
+extern Option<bool>
+align_func_params;
+
+// The span for aligning parameter definitions in function on parameter name.
+//
+// 0: Don't align (default).
+extern BoundedOption<unsigned, 0, 16>
+align_func_params_span;
+
+// The threshold for aligning function parameter definitions.
+// Use a negative number for absolute thresholds.
+//
+// 0: No limit (default).
+extern BoundedOption<signed, -1000, 5000>
+align_func_params_thresh;
+
+// The gap for aligning function parameter definitions.
+extern BoundedOption<unsigned, 0, 16>
+align_func_params_gap;
+
+// The span for aligning constructor value.
+//
+// 0: Don't align (default).
+extern BoundedOption<unsigned, 0, 16>
+align_constr_value_span;
+
+// The threshold for aligning constructor value.
+// Use a negative number for absolute thresholds.
+//
+// 0: No limit (default).
+extern BoundedOption<signed, -1000, 5000>
+align_constr_value_thresh;
+
+// The gap for aligning constructor value.
+extern BoundedOption<unsigned, 0, 16>
+align_constr_value_gap;
+
+// Whether to align parameters in single-line functions that have the same
+// name. The function names must already be aligned with each other.
+extern Option<bool>
+align_same_func_call_params;
+
+// The span for aligning function-call parameters for single line functions.
+//
+// 0: Don't align (default).
+extern BoundedOption<unsigned, 0, 5000>
+align_same_func_call_params_span;
+
+// The threshold for aligning function-call parameters for single line
+// functions.
+// Use a negative number for absolute thresholds.
+//
+// 0: No limit (default).
+extern BoundedOption<signed, -1000, 5000>
+align_same_func_call_params_thresh;
+
+// The span for aligning variable definitions.
+//
+// 0: Don't align (default).
+extern BoundedOption<unsigned, 0, 5000>
+align_var_def_span;
+
+// How to consider (or treat) the '*' in the alignment of variable definitions.
+//
+// 0: Part of the type 'void * foo;' (default)
+// 1: Part of the variable 'void *foo;'
+// 2: Dangling 'void *foo;'
+// Dangling: the '*' will not be taken into account when aligning.
+extern BoundedOption<unsigned, 0, 2>
+align_var_def_star_style;
+
+// How to consider (or treat) the '&' in the alignment of variable definitions.
+//
+// 0: Part of the type 'long & foo;' (default)
+// 1: Part of the variable 'long &foo;'
+// 2: Dangling 'long &foo;'
+// Dangling: the '&' will not be taken into account when aligning.
+extern BoundedOption<unsigned, 0, 2>
+align_var_def_amp_style;
+
+// The threshold for aligning variable definitions.
+// Use a negative number for absolute thresholds.
+//
+// 0: No limit (default).
+extern BoundedOption<signed, -1000, 5000>
+align_var_def_thresh;
+
+// The gap for aligning variable definitions.
+extern BoundedOption<unsigned, 0, 16>
+align_var_def_gap;
+
+// Whether to align the colon in struct bit fields.
+extern Option<bool>
+align_var_def_colon;
+
+// The gap for aligning the colon in struct bit fields.
+extern BoundedOption<unsigned, 0, 16>
+align_var_def_colon_gap;
+
+// Whether to align any attribute after the variable name.
+extern Option<bool>
+align_var_def_attribute;
+
+// Whether to align inline struct/enum/union variable definitions.
+extern Option<bool>
+align_var_def_inline;
+
+// The span for aligning on '=' in assignments.
+//
+// 0: Don't align (default).
+extern BoundedOption<unsigned, 0, 5000>
+align_assign_span;
+
+// The span for aligning on '{' in braced init list.
+//
+// 0: Don't align (default).
+extern BoundedOption<unsigned, 0, 5000>
+align_braced_init_list_span;
+
+// The span for aligning on '=' in function prototype modifier.
+//
+// 0: Don't align (default).
+extern BoundedOption<unsigned, 0, 5000>
+align_assign_func_proto_span;
+
+// The threshold for aligning on '=' in assignments.
+// Use a negative number for absolute thresholds.
+//
+// 0: No limit (default).
+extern BoundedOption<signed, -1000, 5000>
+align_assign_thresh;
+
+// Whether to align on the left most assignment when multiple
+// definitions are found on the same line.
+// Depends on 'align_assign_span' and 'align_assign_thresh' settings.
+extern Option<bool>
+align_assign_on_multi_var_defs;
+
+// The threshold for aligning on '{' in braced init list.
+// Use a negative number for absolute thresholds.
+//
+// 0: No limit (default).
+extern BoundedOption<signed, -1000, 5000>
+align_braced_init_list_thresh;
+
+// How to apply align_assign_span to function declaration "assignments", i.e.
+// 'virtual void foo() = 0' or '~foo() = {default|delete}'.
+//
+// 0: Align with other assignments (default)
+// 1: Align with each other, ignoring regular assignments
+// 2: Don't align
+extern BoundedOption<unsigned, 0, 2>
+align_assign_decl_func;
+
+// The span for aligning on '=' in enums.
+//
+// 0: Don't align (default).
+extern BoundedOption<unsigned, 0, 5000>
+align_enum_equ_span;
+
+// The threshold for aligning on '=' in enums.
+// Use a negative number for absolute thresholds.
+//
+// 0: no limit (default).
+extern BoundedOption<signed, -1000, 5000>
+align_enum_equ_thresh;
+
+// The span for aligning class member definitions.
+//
+// 0: Don't align (default).
+extern BoundedOption<unsigned, 0, 5000>
+align_var_class_span;
+
+// The threshold for aligning class member definitions.
+// Use a negative number for absolute thresholds.
+//
+// 0: No limit (default).
+extern BoundedOption<signed, -1000, 5000>
+align_var_class_thresh;
+
+// The gap for aligning class member definitions.
+extern BoundedOption<unsigned, 0, 16>
+align_var_class_gap;
+
+// The span for aligning struct/union member definitions.
+//
+// 0: Don't align (default).
+extern BoundedOption<unsigned, 0, 5000>
+align_var_struct_span;
+
+// The threshold for aligning struct/union member definitions.
+// Use a negative number for absolute thresholds.
+//
+// 0: No limit (default).
+extern BoundedOption<signed, -1000, 5000>
+align_var_struct_thresh;
+
+// The gap for aligning struct/union member definitions.
+extern BoundedOption<unsigned, 0, 16>
+align_var_struct_gap;
+
+// The span for aligning struct initializer values.
+//
+// 0: Don't align (default).
+extern BoundedOption<unsigned, 0, 5000>
+align_struct_init_span;
+
+// The span for aligning single-line typedefs.
+//
+// 0: Don't align (default).
+extern BoundedOption<unsigned, 0, 16>
+align_typedef_span;
+
+// The minimum space between the type and the synonym of a typedef.
+extern BoundedOption<unsigned, 0, 16>
+align_typedef_gap;
+
+// How to align typedef'd functions with other typedefs.
+//
+// 0: Don't mix them at all (default)
+// 1: Align the open parenthesis with the types
+// 2: Align the function type name with the other type names
+extern BoundedOption<unsigned, 0, 2>
+align_typedef_func;
+
+// How to consider (or treat) the '*' in the alignment of typedefs.
+//
+// 0: Part of the typedef type, 'typedef int * pint;' (default)
+// 1: Part of type name: 'typedef int *pint;'
+// 2: Dangling: 'typedef int *pint;'
+// Dangling: the '*' will not be taken into account when aligning.
+extern BoundedOption<unsigned, 0, 2>
+align_typedef_star_style;
+
+// How to consider (or treat) the '&' in the alignment of typedefs.
+//
+// 0: Part of the typedef type, 'typedef int & intref;' (default)
+// 1: Part of type name: 'typedef int &intref;'
+// 2: Dangling: 'typedef int &intref;'
+// Dangling: the '&' will not be taken into account when aligning.
+extern BoundedOption<unsigned, 0, 2>
+align_typedef_amp_style;
+
+// The span for aligning comments that end lines.
+//
+// 0: Don't align (default).
+extern BoundedOption<unsigned, 0, 5000>
+align_right_cmt_span;
+
+// Minimum number of columns between preceding text and a trailing comment in
+// order for the comment to qualify for being aligned. Must be non-zero to have
+// an effect.
+extern BoundedOption<unsigned, 0, 16>
+align_right_cmt_gap;
+
+// If aligning comments, whether to mix with comments after '}' and #endif with
+// less than three spaces before the comment.
+extern Option<bool>
+align_right_cmt_mix;
+
+// Whether to only align trailing comments that are at the same brace level.
+extern Option<bool>
+align_right_cmt_same_level;
+
+// Minimum column at which to align trailing comments. Comments which are
+// aligned beyond this column, but which can be aligned in a lesser column,
+// may be "pulled in".
+//
+// 0: Ignore (default).
+extern BoundedOption<unsigned, 0, 200>
+align_right_cmt_at_col;
+
+// The span for aligning function prototypes.
+//
+// 0: Don't align (default).
+extern BoundedOption<unsigned, 0, 5000>
+align_func_proto_span;
+
+// How to consider (or treat) the '*' in the alignment of function prototypes.
+//
+// 0: Part of the type 'void * foo();' (default)
+// 1: Part of the function 'void *foo();'
+// 2: Dangling 'void *foo();'
+// Dangling: the '*' will not be taken into account when aligning.
+extern BoundedOption<unsigned, 0, 2>
+align_func_proto_star_style;
+
+// How to consider (or treat) the '&' in the alignment of function prototypes.
+//
+// 0: Part of the type 'long & foo();' (default)
+// 1: Part of the function 'long &foo();'
+// 2: Dangling 'long &foo();'
+// Dangling: the '&' will not be taken into account when aligning.
+extern BoundedOption<unsigned, 0, 2>
+align_func_proto_amp_style;
+
+// The threshold for aligning function prototypes.
+// Use a negative number for absolute thresholds.
+//
+// 0: No limit (default).
+extern BoundedOption<signed, -1000, 5000>
+align_func_proto_thresh;
+
+// Minimum gap between the return type and the function name.
+extern BoundedOption<unsigned, 0, 16>
+align_func_proto_gap;
+
+// Whether to align function prototypes on the 'operator' keyword instead of
+// what follows.
+extern Option<bool>
+align_on_operator;
+
+// Whether to mix aligning prototype and variable declarations. If true,
+// align_var_def_XXX options are used instead of align_func_proto_XXX options.
+extern Option<bool>
+align_mix_var_proto;
+
+// Whether to align single-line functions with function prototypes.
+// Uses align_func_proto_span.
+extern Option<bool>
+align_single_line_func;
+
+// Whether to align the open brace of single-line functions.
+// Requires align_single_line_func=true. Uses align_func_proto_span.
+extern Option<bool>
+align_single_line_brace;
+
+// Gap for align_single_line_brace.
+extern BoundedOption<unsigned, 0, 16>
+align_single_line_brace_gap;
+
+// (OC) The span for aligning Objective-C message specifications.
+//
+// 0: Don't align (default).
+extern BoundedOption<unsigned, 0, 5000>
+align_oc_msg_spec_span;
+
+// Whether to align macros wrapped with a backslash and a newline. This will
+// not work right if the macro contains a multi-line comment.
+extern Option<bool>
+align_nl_cont;
+
+// Whether to align macro functions and variables together.
+extern Option<bool>
+align_pp_define_together;
+
+// The span for aligning on '#define' bodies.
+//
+// =0: Don't align (default)
+// >0: Number of lines (including comments) between blocks
+extern BoundedOption<unsigned, 0, 5000>
+align_pp_define_span;
+
+// The minimum space between label and value of a preprocessor define.
+extern BoundedOption<unsigned, 0, 16>
+align_pp_define_gap;
+
+// Whether to align lines that start with '<<' with previous '<<'.
+extern Option<bool>
+align_left_shift; // = true
+
+// Whether to align comma-separated statements following '<<' (as used to
+// initialize Eigen matrices).
+extern Option<bool>
+align_eigen_comma_init;
+
+// Whether to align text after 'asm volatile ()' colons.
+extern Option<bool>
+align_asm_colon;
+
+// (OC) Span for aligning parameters in an Objective-C message call
+// on the ':'.
+//
+// 0: Don't align.
+extern BoundedOption<unsigned, 0, 5000>
+align_oc_msg_colon_span;
+
+// (OC) Whether to always align with the first parameter, even if it is too
+// short.
+extern Option<bool>
+align_oc_msg_colon_first;
+
+// (OC) Whether to align parameters in an Objective-C '+' or '-' declaration
+// on the ':'.
+extern Option<bool>
+align_oc_decl_colon;
+
+// (OC) Whether to not align parameters in an Objectve-C message call if first
+// colon is not on next line of the message call (the same way Xcode does
+// alignment)
+extern Option<bool>
+align_oc_msg_colon_xcode_like;
+
+//END
+
+///////////////////////////////////////////////////////////////////////////////
+//BEGIN Comment modification options
+
+// Try to wrap comments at N columns.
+extern BoundedOption<unsigned, 0, 256>
+cmt_width;
+
+// How to reflow comments.
+//
+// 0: No reflowing (apart from the line wrapping due to cmt_width) (default)
+// 1: No touching at all
+// 2: Full reflow (enable cmt_indent_multi for indent with line wrapping due to cmt_width)
+extern BoundedOption<unsigned, 0, 2>
+cmt_reflow_mode;
+
+// Path to a file that contains regular expressions describing patterns for
+// which the end of one line and the beginning of the next will be folded into
+// the same sentence or paragraph during full comment reflow. The regular
+// expressions are described using ECMAScript syntax. The syntax for this
+// specification is as follows, where "..." indicates the custom regular
+// expression and "n" indicates the nth end_of_prev_line_regex and
+// beg_of_next_line_regex regular expression pair:
+//
+// end_of_prev_line_regex[1] = "...$"
+// beg_of_next_line_regex[1] = "^..."
+// end_of_prev_line_regex[2] = "...$"
+// beg_of_next_line_regex[2] = "^..."
+// .
+// .
+// .
+// end_of_prev_line_regex[n] = "...$"
+// beg_of_next_line_regex[n] = "^..."
+//
+// Note that use of this option overrides the default reflow fold regular
+// expressions, which are internally defined as follows:
+//
+// end_of_prev_line_regex[1] = "[\w,\]\)]$"
+// beg_of_next_line_regex[1] = "^[\w,\[\(]"
+// end_of_prev_line_regex[2] = "\.$"
+// beg_of_next_line_regex[2] = "^[A-Z]"
+extern Option<string>
+cmt_reflow_fold_regex_file;
+
+// Whether to indent wrapped lines to the start of the encompassing paragraph
+// during full comment reflow (cmt_reflow_mode = 2). Overrides the value
+// specified by cmt_sp_after_star_cont.
+//
+// Note that cmt_align_doxygen_javadoc_tags overrides this option for
+// paragraphs associated with javadoc tags
+extern Option<bool>
+cmt_reflow_indent_to_paragraph_start;
+
+// Whether to convert all tabs to spaces in comments. If false, tabs in
+// comments are left alone, unless used for indenting.
+extern Option<bool>
+cmt_convert_tab_to_spaces;
+
+// TODO This description is confusing and should be revised.
+
+// Whether to apply changes to multi-line comments, including cmt_width,
+// keyword substitution and leading chars.
+extern Option<bool>
+cmt_indent_multi; // = true
+
+// Whether to align doxygen javadoc-style tags ('@param', '@return', etc.)
+// and corresponding fields such that groups of consecutive block tags,
+// parameter names, and descriptions align with one another. Overrides that
+// which is specified by the cmt_sp_after_star_cont. If cmt_width > 0, it may
+// be necessary to enable cmt_indent_multi and set cmt_reflow_mode = 2
+// in order to achieve the desired alignment for line-wrapping.
+extern Option<bool>
+cmt_align_doxygen_javadoc_tags;
+
+// The number of spaces to insert after the star and before doxygen
+// javadoc-style tags (@param, @return, etc). Requires enabling
+// cmt_align_doxygen_javadoc_tags. Overrides that which is specified by the
+// cmt_sp_after_star_cont.
+extern BoundedOption<unsigned, 0, 16>
+cmt_sp_before_doxygen_javadoc_tags; // = 1
+
+// Whether to change trailing, single-line c-comments into cpp-comments.
+extern Option<bool>
+cmt_trailing_single_line_c_to_cpp;
+
+// Whether to group c-comments that look like they are in a block.
+extern Option<bool>
+cmt_c_group;
+
+// Whether to put an empty '/*' on the first line of the combined c-comment.
+extern Option<bool>
+cmt_c_nl_start;
+
+// Whether to add a newline before the closing '*/' of the combined c-comment.
+extern Option<bool>
+cmt_c_nl_end;
+
+// Whether to change cpp-comments into c-comments.
+extern Option<bool>
+cmt_cpp_to_c;
+
+// Whether to group cpp-comments that look like they are in a block. Only
+// meaningful if cmt_cpp_to_c=true.
+extern Option<bool>
+cmt_cpp_group;
+
+// Whether to put an empty '/*' on the first line of the combined cpp-comment
+// when converting to a c-comment.
+//
+// Requires cmt_cpp_to_c=true and cmt_cpp_group=true.
+extern Option<bool>
+cmt_cpp_nl_start;
+
+// Whether to add a newline before the closing '*/' of the combined cpp-comment
+// when converting to a c-comment.
+//
+// Requires cmt_cpp_to_c=true and cmt_cpp_group=true.
+extern Option<bool>
+cmt_cpp_nl_end;
+
+// Whether to put a star on subsequent comment lines.
+extern Option<bool>
+cmt_star_cont;
+
+// The number of spaces to insert at the start of subsequent comment lines.
+extern BoundedOption<unsigned, 0, 16>
+cmt_sp_before_star_cont;
+
+// The number of spaces to insert after the star on subsequent comment lines.
+extern BoundedOption<unsigned, 0, 16>
+cmt_sp_after_star_cont;
+
+// TODO This description is confusing and should be revised.
+
+// For multi-line comments with a '*' lead, remove leading spaces if the first
+// and last lines of the comment are the same length.
+extern Option<bool>
+cmt_multi_check_last; // = true
+
+// TODO This description is confusing and should be revised.
+
+// For multi-line comments with a '*' lead, remove leading spaces if the first
+// and last lines of the comment are the same length AND if the length is
+// bigger as the first_len minimum.
+extern BoundedOption<unsigned, 1, 20>
+cmt_multi_first_len_minimum; // = 4
+
+// Path to a file that contains text to insert at the beginning of a file if
+// the file doesn't start with a C/C++ comment. If the inserted text contains
+// '$(filename)', that will be replaced with the current file's name.
+extern Option<string>
+cmt_insert_file_header;
+
+// Path to a file that contains text to insert at the end of a file if the
+// file doesn't end with a C/C++ comment. If the inserted text contains
+// '$(filename)', that will be replaced with the current file's name.
+extern Option<string>
+cmt_insert_file_footer;
+
+// Path to a file that contains text to insert before a function definition if
+// the function isn't preceded by a C/C++ comment. If the inserted text
+// contains '$(function)', '$(javaparam)' or '$(fclass)', these will be
+// replaced with, respectively, the name of the function, the javadoc '@param'
+// and '@return' stuff, or the name of the class to which the member function
+// belongs.
+extern Option<string>
+cmt_insert_func_header;
+
+// Path to a file that contains text to insert before a class if the class
+// isn't preceded by a C/C++ comment. If the inserted text contains '$(class)',
+// that will be replaced with the class name.
+extern Option<string>
+cmt_insert_class_header;
+
+// Path to a file that contains text to insert before an Objective-C message
+// specification, if the method isn't preceded by a C/C++ comment. If the
+// inserted text contains '$(message)' or '$(javaparam)', these will be
+// replaced with, respectively, the name of the function, or the javadoc
+// '@param' and '@return' stuff.
+extern Option<string>
+cmt_insert_oc_msg_header;
+
+// TODO This description may be confusing; consider revising.
+
+// Whether a comment should be inserted if a preprocessor is encountered when
+// stepping backwards from a function name.
+//
+// Applies to cmt_insert_oc_msg_header, cmt_insert_func_header and
+// cmt_insert_class_header.
+extern Option<bool>
+cmt_insert_before_preproc;
+
+// Whether a comment should be inserted if a function is declared inline to a
+// class definition.
+//
+// Applies to cmt_insert_func_header.
+extern Option<bool>
+cmt_insert_before_inlines; // = true
+
+// Whether a comment should be inserted if the function is a class constructor
+// or destructor.
+//
+// Applies to cmt_insert_func_header.
+extern Option<bool>
+cmt_insert_before_ctor_dtor;
+
+//END
+
+///////////////////////////////////////////////////////////////////////////////
+//BEGIN Code modifying options (non-whitespace)
+
+// Add or remove braces on a single-line 'do' statement.
+extern Option<iarf_e>
+mod_full_brace_do;
+
+// Add or remove braces on a single-line 'for' statement.
+extern Option<iarf_e>
+mod_full_brace_for;
+
+// (Pawn) Add or remove braces on a single-line function definition.
+extern Option<iarf_e>
+mod_full_brace_function;
+
+// Add or remove braces on a single-line 'if' statement. Braces will not be
+// removed if the braced statement contains an 'else'.
+extern Option<iarf_e>
+mod_full_brace_if;
+
+// Whether to enforce that all blocks of an 'if'/'else if'/'else' chain either
+// have, or do not have, braces. Overrides mod_full_brace_if.
+//
+// 0: Don't override mod_full_brace_if
+// 1: Add braces to all blocks if any block needs braces and remove braces if
+// they can be removed from all blocks
+// 2: Add braces to all blocks if any block already has braces, regardless of
+// whether it needs them
+// 3: Add braces to all blocks if any block needs braces and remove braces if
+// they can be removed from all blocks, except if all blocks have braces
+// despite none needing them
+extern BoundedOption<unsigned, 0, 3>
+mod_full_brace_if_chain;
+
+// Whether to add braces to all blocks of an 'if'/'else if'/'else' chain.
+// If true, mod_full_brace_if_chain will only remove braces from an 'if' that
+// does not have an 'else if' or 'else'.
+extern Option<bool>
+mod_full_brace_if_chain_only;
+
+// Add or remove braces on single-line 'while' statement.
+extern Option<iarf_e>
+mod_full_brace_while;
+
+// Add or remove braces on single-line 'using ()' statement.
+extern Option<iarf_e>
+mod_full_brace_using;
+
+// Don't remove braces around statements that span N newlines
+extern BoundedOption<unsigned, 0, 5000>
+mod_full_brace_nl;
+
+// Whether to prevent removal of braces from 'if'/'for'/'while'/etc. blocks
+// which span multiple lines.
+//
+// Affects:
+// mod_full_brace_for
+// mod_full_brace_if
+// mod_full_brace_if_chain
+// mod_full_brace_if_chain_only
+// mod_full_brace_while
+// mod_full_brace_using
+//
+// Does not affect:
+// mod_full_brace_do
+// mod_full_brace_function
+extern Option<bool>
+mod_full_brace_nl_block_rem_mlcond;
+
+// Add or remove unnecessary parenthesis on 'return' statement.
+extern Option<iarf_e>
+mod_paren_on_return;
+
+// (Pawn) Whether to change optional semicolons to real semicolons.
+extern Option<bool>
+mod_pawn_semicolon;
+
+// Whether to fully parenthesize Boolean expressions in 'while' and 'if'
+// statement, as in 'if (a && b > c)' => 'if (a && (b > c))'.
+extern Option<bool>
+mod_full_paren_if_bool;
+
+// Whether to fully parenthesize Boolean expressions after '='
+// statement, as in 'x = a && b > c;' => 'x = (a && (b > c));'.
+extern Option<bool>
+mod_full_paren_assign_bool;
+
+// Whether to fully parenthesize Boolean expressions after '='
+// statement, as in 'return a && b > c;' => 'return (a && (b > c));'.
+extern Option<bool>
+mod_full_paren_return_bool;
+
+// Whether to remove superfluous semicolons.
+extern Option<bool>
+mod_remove_extra_semicolon;
+
+// Whether to remove duplicate include.
+extern Option<bool>
+mod_remove_duplicate_include;
+
+// If a function body exceeds the specified number of newlines and doesn't have
+// a comment after the close brace, a comment will be added.
+extern BoundedOption<unsigned, 0, 255>
+mod_add_long_function_closebrace_comment;
+
+// If a namespace body exceeds the specified number of newlines and doesn't
+// have a comment after the close brace, a comment will be added.
+extern BoundedOption<unsigned, 0, 255>
+mod_add_long_namespace_closebrace_comment;
+
+// If a class body exceeds the specified number of newlines and doesn't have a
+// comment after the close brace, a comment will be added.
+extern BoundedOption<unsigned, 0, 255>
+mod_add_long_class_closebrace_comment;
+
+// If a switch body exceeds the specified number of newlines and doesn't have a
+// comment after the close brace, a comment will be added.
+extern BoundedOption<unsigned, 0, 255>
+mod_add_long_switch_closebrace_comment;
+
+// If an #ifdef body exceeds the specified number of newlines and doesn't have
+// a comment after the #endif, a comment will be added.
+extern BoundedOption<unsigned, 0, 255>
+mod_add_long_ifdef_endif_comment;
+
+// If an #ifdef or #else body exceeds the specified number of newlines and
+// doesn't have a comment after the #else, a comment will be added.
+extern BoundedOption<unsigned, 0, 255>
+mod_add_long_ifdef_else_comment;
+
+// Whether to take care of the case by the mod_sort_xx options.
+extern Option<bool>
+mod_sort_case_sensitive;
+
+// Whether to sort consecutive single-line 'import' statements.
+extern Option<bool>
+mod_sort_import;
+
+// (C#) Whether to sort consecutive single-line 'using' statements.
+extern Option<bool>
+mod_sort_using;
+
+// Whether to sort consecutive single-line '#include' statements (C/C++) and
+// '#import' statements (Objective-C). Be aware that this has the potential to
+// break your code if your includes/imports have ordering dependencies.
+extern Option<bool>
+mod_sort_include;
+
+// Whether to prioritize '#include' and '#import' statements that contain
+// filename without extension when sorting is enabled.
+extern Option<bool>
+mod_sort_incl_import_prioritize_filename;
+
+// Whether to prioritize '#include' and '#import' statements that does not
+// contain extensions when sorting is enabled.
+extern Option<bool>
+mod_sort_incl_import_prioritize_extensionless;
+
+// Whether to prioritize '#include' and '#import' statements that contain
+// angle over quotes when sorting is enabled.
+extern Option<bool>
+mod_sort_incl_import_prioritize_angle_over_quotes;
+
+// Whether to ignore file extension in '#include' and '#import' statements
+// for sorting comparison.
+extern Option<bool>
+mod_sort_incl_import_ignore_extension;
+
+// Whether to group '#include' and '#import' statements when sorting is enabled.
+extern Option<bool>
+mod_sort_incl_import_grouping_enabled;
+
+// Whether to move a 'break' that appears after a fully braced 'case' before
+// the close brace, as in 'case X: { ... } break;' => 'case X: { ... break; }'.
+extern Option<bool>
+mod_move_case_break;
+
+// Whether to move a 'return' that appears after a fully braced 'case' before
+// the close brace, as in 'case X: { ... } return;' => 'case X: { ... return; }'.
+extern Option<bool>
+mod_move_case_return;
+
+// Add or remove braces around a fully braced case statement. Will only remove
+// braces if there are no variable declarations in the block.
+extern Option<iarf_e>
+mod_case_brace;
+
+// Whether to remove a void 'return;' that appears as the last statement in a
+// function.
+extern Option<bool>
+mod_remove_empty_return;
+
+// Add or remove the comma after the last value of an enumeration.
+extern Option<iarf_e>
+mod_enum_last_comma;
+
+// (OC) Whether to organize the properties. If true, properties will be
+// rearranged according to the mod_sort_oc_property_*_weight factors.
+extern Option<bool>
+mod_sort_oc_properties;
+
+// (OC) Weight of a class property modifier.
+extern Option<signed>
+mod_sort_oc_property_class_weight;
+
+// (OC) Weight of 'atomic' and 'nonatomic'.
+extern Option<signed>
+mod_sort_oc_property_thread_safe_weight;
+
+// (OC) Weight of 'readwrite' when organizing properties.
+extern Option<signed>
+mod_sort_oc_property_readwrite_weight;
+
+// (OC) Weight of a reference type specifier ('retain', 'copy', 'assign',
+// 'weak', 'strong') when organizing properties.
+extern Option<signed>
+mod_sort_oc_property_reference_weight;
+
+// (OC) Weight of getter type ('getter=') when organizing properties.
+extern Option<signed>
+mod_sort_oc_property_getter_weight;
+
+// (OC) Weight of setter type ('setter=') when organizing properties.
+extern Option<signed>
+mod_sort_oc_property_setter_weight;
+
+// (OC) Weight of nullability type ('nullable', 'nonnull', 'null_unspecified',
+// 'null_resettable') when organizing properties.
+extern Option<signed>
+mod_sort_oc_property_nullability_weight;
+
+//END
+
+///////////////////////////////////////////////////////////////////////////////
+//BEGIN Preprocessor options
+
+// Add or remove indentation of preprocessor directives inside #if blocks
+// at brace level 0 (file-level).
+extern Option<iarf_e>
+pp_indent;
+
+// Whether to indent #if/#else/#endif at the brace level. If false, these are
+// indented from column 1.
+extern Option<bool>
+pp_indent_at_level;
+
+// Whether to indent #if/#else/#endif at the parenthesis level if the brace
+// level is 0. If false, these are indented from column 1.
+extern Option<bool>
+pp_indent_at_level0;
+
+// Specifies the number of columns to indent preprocessors per level
+// at brace level 0 (file-level). If pp_indent_at_level=false, also specifies
+// the number of columns to indent preprocessors per level
+// at brace level > 0 (function-level).
+extern BoundedOption<unsigned, 0, 16>
+pp_indent_count; // = 1
+
+// Add or remove space after # based on pp_level of #if blocks.
+extern Option<iarf_e>
+pp_space;
+
+// Sets the number of spaces per level added with pp_space.
+extern BoundedOption<unsigned, 0, 16>
+pp_space_count;
+
+// The indent for '#region' and '#endregion' in C# and '#pragma region' in
+// C/C++. Negative values decrease indent down to the first column.
+extern BoundedOption<signed, -16, 16>
+pp_indent_region;
+
+// Whether to indent the code between #region and #endregion.
+extern Option<bool>
+pp_region_indent_code;
+
+// If pp_indent_at_level=true, sets the indent for #if, #else and #endif when
+// not at file-level. Negative values decrease indent down to the first column.
+//
+// =0: Indent preprocessors using output_tab_size
+// >0: Column at which all preprocessors will be indented
+extern BoundedOption<signed, -16, 16>
+pp_indent_if;
+
+// Whether to indent the code between #if, #else and #endif.
+extern Option<bool>
+pp_if_indent_code;
+
+// Whether to indent the body of an #if that encompasses all the code in the file.
+extern Option<bool>
+pp_indent_in_guard;
+
+// Whether to indent '#define' at the brace level. If false, these are
+// indented from column 1.
+extern Option<bool>
+pp_define_at_level;
+
+// Whether to indent '#include' at the brace level.
+extern Option<bool>
+pp_include_at_level;
+
+// Whether to ignore the '#define' body while formatting.
+extern Option<bool>
+pp_ignore_define_body;
+
+// TODO The following descriptions are confusing and suffer from sub-optimal
+// grammar, and should be revised; from here...
+
+// Whether to indent case statements between #if, #else, and #endif.
+// Only applies to the indent of the preprocesser that the case statements
+// directly inside of.
+extern Option<bool>
+pp_indent_case; // = true
+
+// Whether to indent whole function definitions between #if, #else, and #endif.
+// Only applies to the indent of the preprocesser that the function definition
+// is directly inside of.
+extern Option<bool>
+pp_indent_func_def; // = true
+
+// Whether to indent extern C blocks between #if, #else, and #endif.
+// Only applies to the indent of the preprocesser that the extern block is
+// directly inside of.
+extern Option<bool>
+pp_indent_extern; // = true
+
+// How to indent braces directly inside #if, #else, and #endif.
+// Requires pp_if_indent_code=true and only applies to the indent of the
+// preprocesser that the braces are directly inside of.
+// 0: No extra indent
+// 1: Indent by one level
+// -1: Preserve original indentation
+extern BoundedOption<signed, -1, 1>
+pp_indent_brace; // = 1
+
+// Whether to print warning messages for unbalanced #if and #else blocks.
+// This will print a message in the following cases:
+// - if an #ifdef block ends on a different indent level than
+// where it started from. Example:
+//
+// #ifdef TEST
+// int i;
+// {
+// int j;
+// #endif
+//
+// - an #elif/#else block ends on a different indent level than
+// the corresponding #ifdef block. Example:
+//
+// #ifdef TEST
+// int i;
+// #else
+// }
+// int j;
+// #endif
+extern Option<bool>
+pp_warn_unbalanced_if; // = false
+
+// TODO ...until here.
+
+//END
+
+///////////////////////////////////////////////////////////////////////////////
+//BEGIN Sort includes options
+
+// The regex for include category with priority 0.
+extern Option<string>
+include_category_0;
+
+// The regex for include category with priority 1.
+extern Option<string>
+include_category_1;
+
+// The regex for include category with priority 2.
+extern Option<string>
+include_category_2;
+
+//END
+
+///////////////////////////////////////////////////////////////////////////////
+//BEGIN Use or Do not Use options
+
+// true: indent_func_call_param will be used (default)
+// false: indent_func_call_param will NOT be used
+extern Option<bool>
+use_indent_func_call_param; // = true
+
+// The value of the indentation for a continuation line is calculated
+// differently if the statement is:
+// - a declaration: your case with QString fileName ...
+// - an assignment: your case with pSettings = new QSettings( ...
+//
+// At the second case the indentation value might be used twice:
+// - at the assignment
+// - at the function call (if present)
+//
+// To prevent the double use of the indentation value, use this option with the
+// value 'true'.
+//
+// true: indent_continue will be used only once
+// false: indent_continue will be used every time (default)
+//
+// Requires indent_ignore_first_continue=false.
+extern Option<bool>
+use_indent_continue_only_once;
+
+// The indentation can be:
+// - after the assignment, at the '[' character
+// - at the begin of the lambda body
+//
+// true: indentation will be after the assignment
+// false: indentation will be at the begin of the lambda body (default)
+extern Option<bool>
+indent_cpp_lambda_only_once;
+
+// Whether sp_after_angle takes precedence over sp_inside_fparen. This was the
+// historic behavior, but is probably not the desired behavior, so this is off
+// by default.
+extern Option<bool>
+use_sp_after_angle_always;
+
+// Whether to apply special formatting for Qt SIGNAL/SLOT macros. Essentially,
+// this tries to format these so that they match Qt's normalized form (i.e. the
+// result of QMetaObject::normalizedSignature), which can slightly improve the
+// performance of the QObject::connect call, rather than how they would
+// otherwise be formatted.
+//
+// See options_for_QT.cpp for details.
+extern Option<bool>
+use_options_overriding_for_qt_macros; // = true
+
+// If true: the form feed character is removed from the list of whitespace
+// characters. See https://en.cppreference.com/w/cpp/string/byte/isspace.
+extern Option<bool>
+use_form_feed_no_more_as_whitespace_character;
+
+//END
+
+///////////////////////////////////////////////////////////////////////////////
+//BEGIN Warn levels - 1: error, 2: warning (default), 3: note
+
+// (C#) Warning is given if doing tab-to-\t replacement and we have found one
+// in a C# verbatim string literal.
+extern BoundedOption<unsigned, 1, 3>
+warn_level_tabs_found_in_verbatim_string_literals; // = LWARN
+
+// For debugging purpose only.
+
+// Limit the number of loops.
+// Used by uncrustify.cpp to exit from infinite loop.
+// 0: no limit.
+extern Option<signed>
+debug_max_number_of_loops;
+
+// Set the number of the line to protocol;
+// Used in the function prot_the_line if the 2. parameter is zero.
+// 0: nothing protocol.
+extern Option<signed>
+debug_line_number_to_protocol;
+
+// Set the number of second(s) before terminating formatting the current file,
+// 0: no timeout.
+// only for linux
+extern Option<signed>
+debug_timeout;
+
+// Set the number of characters to be printed if the text is too long,
+// 0: do not truncate.
+extern BoundedOption<unsigned, 0, 960>
+debug_truncate;
+
+//END
+
+} // namespace options
+
+} // namespace uncrustify
+
+#endif /* OPTIONS_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/options_for_QT.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/options_for_QT.cpp
index f4a1d040..f4a1d040 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/options_for_QT.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/options_for_QT.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/options_for_QT.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/options_for_QT.h
index c114eb75..c114eb75 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/options_for_QT.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/options_for_QT.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/output.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/output.cpp
new file mode 100644
index 00000000..57d4f0bd
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/output.cpp
@@ -0,0 +1,3422 @@
+/**
+ * @file output.cpp
+ * Does all the output & comment formatting.
+ *
+ * @author Ben Gardner
+ * @author Guy Maurel October 2015, 2021
+ * @license GPL v2+
+ */
+
+#include "output.h"
+
+#include "align_tab_column.h"
+#include "braces.h"
+#include "indent.h"
+#include "prototypes.h"
+#include "tokenize.h"
+#include "unc_ctype.h"
+#include "unicode.h"
+
+#include <ctime>
+#include <map>
+#include <regex>
+#include <set>
+
+
+constexpr static auto LCURRENT = LOUTPUT;
+
+using namespace uncrustify;
+
+
+struct cmt_reflow
+{
+ Chunk *pc = nullptr;
+ size_t column = 0; //! Column of the comment start
+ size_t brace_col = 0; //! Brace column (for indenting with tabs)
+ size_t base_col = 0; //! Base column (for indenting with tabs)
+ size_t word_count = 0; //! number of words on this line
+ size_t xtra_indent = 0; //! extra indent of non-first lines (0 or 1)
+ unc_text cont_text; //! fixed text to output at the start of a line (0 to 3 chars)
+ bool reflow = false; //! reflow the current line
+};
+
+
+/**
+ * A multiline comment
+ * The only trick here is that we have to trim out whitespace characters
+ * to get the comment to line up.
+ */
+static void output_comment_multi(Chunk *pc);
+
+
+static bool kw_fcn_filename(Chunk *cmt, unc_text &out_txt);
+
+
+static bool kw_fcn_class(Chunk *cmt, unc_text &out_txt);
+
+
+static bool kw_fcn_message(Chunk *cmt, unc_text &out_txt);
+
+
+static bool kw_fcn_category(Chunk *cmt, unc_text &out_txt);
+
+
+static bool kw_fcn_scope(Chunk *cmt, unc_text &out_txt);
+
+
+static bool kw_fcn_function(Chunk *cmt, unc_text &out_txt);
+
+
+/**
+ * Adds the javadoc-style @param and @return stuff, based on the params and
+ * return value for pc.
+ * If the arg list is '()' or '(void)', then no @params are added.
+ * Likewise, if the return value is 'void', then no @return is added.
+ */
+static bool kw_fcn_javaparam(Chunk *cmt, unc_text &out_txt);
+
+
+static bool kw_fcn_fclass(Chunk *cmt, unc_text &out_txt);
+
+
+static bool kw_fcn_year(Chunk *cmt, unc_text &out_txt);
+
+
+/**
+ * Output a multiline comment without any reformatting other than shifting
+ * it left or right to get the column right.
+ *
+ * Trims trailing whitespaces.
+ */
+static void output_comment_multi_simple(Chunk *pc);
+
+
+/**
+ * This renders the #if condition to a string buffer.
+ *
+ * @param[out] dst unc_text buffer to be filled
+ * @param[in] ifdef if conditional as chunk list
+ */
+static void generate_if_conditional_as_text(unc_text &dst, Chunk *ifdef);
+
+
+/**
+ * Do keyword substitution on a comment.
+ * NOTE: it is assumed that a comment will contain at most one of each type
+ * of keyword.
+ */
+static void do_kw_subst(Chunk *pc);
+
+
+//! All output text is sent here, one char at a time.
+static void add_char(UINT32 ch, bool is_literal = false);
+
+
+static void add_text(const char *ascii_text);
+
+
+static void add_text(const unc_text &text, bool is_ignored, bool is_literal);
+
+
+/**
+ * Count the number of characters to the end of the next chunk of text.
+ * If it exceeds the limit, return true.
+ */
+static bool next_word_exceeds_limit(const unc_text &text, size_t idx);
+
+
+/**
+ * Output a comment to the column using indent_with_tabs and
+ * indent_cmt_with_tabs as the rules.
+ * base_col is the indent of the first line of the comment.
+ * On the first line, column == base_col.
+ * On subsequent lines, column >= base_col.
+ *
+ * @param brace_col the brace-level indent of the comment
+ * @param base_col the indent of the start of the comment (multiline)
+ * @param column the column that we should end up in
+ */
+static void cmt_output_indent(size_t brace_col, size_t base_col, size_t column);
+
+
+/**
+ * Checks for and updates the lead chars.
+ *
+ * @param line the comment line
+ *
+ * @return 0: not present, >0: number of chars that are part of the lead
+ */
+static size_t cmt_parse_lead(const unc_text &line, bool is_last);
+
+
+/**
+ * Scans a multiline comment to determine the following:
+ * - the extra indent of the non-first line (0 or 1)
+ * - the continuation text ('' or '* ')
+ *
+ * The decision is based on:
+ * - cmt_indent_multi
+ * - cmt_star_cont
+ * - cmt_multi_first_len_minimum
+ * - the first line length
+ * - the second line leader length
+ * - the last line length (without leading space/tab)
+ *
+ * If the first and last line are the same length and don't contain any alnum
+ * chars and (the first line len > 2 or the second leader is the same as the
+ * first line length), then the indent is 0.
+ *
+ * If the leader on the second line is 1 wide or missing, then the indent is 1.
+ *
+ * Otherwise, the indent is 0.
+ *
+ * @param str The comment string
+ * @param len Length of the comment
+ * @param start_col Starting column
+ *
+ * @return cmt.xtra_indent is set to 0 or 1
+ */
+static void calculate_comment_body_indent(cmt_reflow &cmt, const unc_text &str);
+
+
+static int next_up(const unc_text &text, size_t idx, const unc_text &tag);
+
+
+/**
+ * Outputs the C comment at pc.
+ * C comment combining is done here
+ *
+ * @return the last chunk output'd
+ */
+static Chunk *output_comment_c(Chunk *pc);
+
+
+/**
+ * Outputs the CPP comment at pc.
+ * CPP comment combining is done here
+ *
+ * @return the last chunk output'd
+ */
+static Chunk *output_comment_cpp(Chunk *pc);
+
+
+static void cmt_trim_whitespace(unc_text &line, bool in_preproc);
+
+
+/**
+ * Outputs a comment. The initial opening '//' may be included in the text.
+ * Subsequent openings (if combining comments), should not be included.
+ * The closing (for C/D comments) should not be included.
+ *
+ * TODO:
+ * If reflowing text, the comment should be added one word (or line) at a time.
+ * A newline should only be sent if a blank line is encountered or if the next
+ * line is indented beyond the current line (optional?).
+ * If the last char on a line is a ':' or '.', then the next line won't be
+ * combined.
+ */
+static void add_comment_text(const unc_text &text, cmt_reflow &cmt, bool esc_close, size_t continuation_indent = 0);
+
+
+static void output_cmt_start(cmt_reflow &cmt, Chunk *pc);
+
+
+/**
+ * Checks to see if the current comment can be combined with the next comment.
+ * The two can be combined if:
+ * 1. They are the same type
+ * 2. There is exactly one newline between then
+ * 3. They are indented to the same level
+ */
+static bool can_combine_comment(Chunk *pc, cmt_reflow &cmt);
+
+
+#define LOG_CONTTEXT() \
+ LOG_FMT(LCONTTEXT, "%s(%d): set cont_text to '%s'\n", __func__, __LINE__, cmt.cont_text.c_str())
+
+
+static void add_spaces()
+{
+ while (cpd.spaces > 0)
+ {
+ write_char(' ');
+ cpd.spaces--;
+ }
+}
+
+
+static void add_char(UINT32 ch, bool is_literal)
+{
+ // If we did a '\r' and it isn't followed by a '\n', then output a newline
+ if ( (cpd.last_char == '\r')
+ && (ch != '\n'))
+ {
+ write_string(cpd.newline);
+ cpd.column = 1;
+ cpd.did_newline = 1;
+ cpd.spaces = 0;
+ }
+
+ // convert a newline into the LF/CRLF/CR sequence
+ if (ch == '\n')
+ {
+ add_spaces();
+ write_string(cpd.newline);
+ cpd.column = 1;
+ cpd.did_newline = 1;
+ cpd.spaces = 0;
+ }
+ else if (ch == '\r') // do not output the CARRIAGERETURN
+ {
+ // do not output '\r'
+ cpd.column = 1;
+ cpd.did_newline = 1;
+ cpd.spaces = 0;
+ }
+ else if ( (ch == '\t')
+ && cpd.output_tab_as_space)
+ {
+ size_t endcol = next_tab_column(cpd.column);
+
+ while (cpd.column < endcol)
+ {
+ add_char(' ');
+ }
+ return;
+ }
+ else
+ {
+ // explicitly disallow a tab after a space
+ if ( !is_literal
+ && ch == '\t'
+ && cpd.last_char == ' ')
+ {
+ log_rule_B("indent_with_tabs");
+
+ if (options::indent_with_tabs() == 0)
+ {
+ size_t endcol = next_tab_column(cpd.column);
+
+ while (cpd.column < endcol)
+ {
+ add_char(' ');
+ }
+ return;
+ }
+ }
+
+ if ( (ch == ' ')
+ && !cpd.output_trailspace)
+ {
+ cpd.spaces++;
+ cpd.column++;
+ }
+ else
+ {
+ add_spaces();
+ write_char(ch);
+
+ if (ch == '\t')
+ {
+ cpd.column = next_tab_column(cpd.column);
+ }
+ else
+ {
+ cpd.column++;
+ }
+ }
+ }
+ cpd.last_char = ch;
+} // add_char
+
+
+static void add_text(const char *ascii_text)
+{
+ char ch;
+
+ while ((ch = *ascii_text) != 0)
+ {
+ ascii_text++;
+ add_char(ch);
+ }
+}
+
+
+static void add_text(const unc_text &text, bool is_ignored = false, bool is_literal = false)
+{
+ for (size_t idx = 0; idx < text.size(); idx++)
+ {
+ int ch = text[idx];
+
+ if (is_ignored)
+ {
+ write_char(ch);
+ }
+ else
+ {
+ add_char(ch, is_literal);
+ }
+ }
+}
+
+
+static bool next_word_exceeds_limit(const unc_text &text, size_t idx)
+{
+ LOG_FMT(LCONTTEXT, "%s(%d): idx is %zu\n",
+ __func__, __LINE__, idx);
+ size_t length = 0;
+
+ // Count any whitespace
+ while ( (idx < text.size())
+ && unc_isspace(text[idx]))
+ {
+ idx++;
+ length++;
+ }
+
+ // Count non-whitespace
+ while ( (idx < text.size())
+ && !unc_isspace(text[idx]))
+ {
+ idx++;
+ length++;
+ }
+ return((cpd.column + length - 1) > options::cmt_width());
+}
+
+
+/**
+ * Advance to a specific column
+ * cpd.column is the current column
+ *
+ * @param column The column to advance to
+ */
+static void output_to_column(size_t column, bool allow_tabs)
+{
+ cpd.did_newline = 0;
+
+ if (allow_tabs)
+ {
+ // tab out as far as possible and then use spaces
+ size_t next_column = next_tab_column(cpd.column);
+
+ while (next_column <= column)
+ {
+ add_text("\t");
+ next_column = next_tab_column(cpd.column);
+ }
+ }
+
+ // space out the final bit
+ while (cpd.column < column)
+ {
+ add_text(" ");
+ }
+}
+
+
+static void cmt_output_indent(size_t brace_col, size_t base_col, size_t column)
+{
+ log_rule_B("indent_cmt_with_tabs");
+ log_rule_B("indent_with_tabs");
+ size_t iwt = options::indent_cmt_with_tabs() ? 2 :
+ (options::indent_with_tabs() ? 1 : 0);
+
+ size_t tab_col = (iwt == 0) ? 0 : ((iwt == 1) ? brace_col : base_col);
+
+ // LOG_FMT(LSYS, "%s(brace=%zd base=%zd col=%zd iwt=%zd) tab=%zd cur=%zd\n",
+ // __func__, brace_col, base_col, column, iwt, tab_col, cpd.column);
+
+ cpd.did_newline = 0;
+
+ if ( iwt == 2
+ || ( cpd.column == 1
+ && iwt == 1))
+ {
+ // tab out as far as possible and then use spaces
+ while (next_tab_column(cpd.column) <= tab_col)
+ {
+ add_text("\t");
+ }
+ }
+
+ // space out the rest
+ while (cpd.column < column)
+ {
+ add_text(" ");
+ }
+} // cmt_output_indent
+
+
+void output_parsed(FILE *pfile, bool withOptions)
+{
+ const char *eol_marker = get_eol_marker();
+
+ if (withOptions)
+ {
+ save_option_file(pfile, false, true);
+ }
+ fprintf(pfile, "# -=====-%s", eol_marker);
+ fprintf(pfile, "# number of loops = %d\n", cpd.changes);
+ fprintf(pfile, "# -=====-%s", eol_marker);
+ fprintf(pfile, "# language = %s\n", language_name_from_flags(cpd.lang_flags));
+ fprintf(pfile, "# -=====-%s", eol_marker);
+ // MAXLENGTHOFTHENAME must be consider at the format line at the file
+ // output.cpp, line 427: fprintf(pfile, "# Line Tag Parent...
+ // and 430: ... fprintf(pfile, "%s# %3zu>%19.19s[%19.19s] ...
+ // here xx xx xx xx
+#ifdef WIN32
+ fprintf(pfile, "# Line Tag Parent_type Type of the parent Columns Br/Lvl/pp Nl Text");
+#else // not WIN32
+ fprintf(pfile, "# Line Tag Parent_type Type of the parent Columns Br/Lvl/pp Flag Nl Text");
+#endif // ifdef WIN32
+
+ for (Chunk *pc = Chunk::GetHead(); pc->IsNotNullChunk(); pc = pc->GetNext())
+ {
+#ifdef WIN32
+ fprintf(pfile, "%s# %3d>%19.19s|%19.19s|%19.19s[%3d/%3d/%3d/%3d][%d/%d/%d][%d-%d]",
+ eol_marker, (int)pc->orig_line, get_token_name(pc->type),
+ get_token_name(get_chunk_parent_type(pc)), get_token_name(get_type_of_the_parent(pc)),
+ (int)pc->column, (int)pc->orig_col, (int)pc->orig_col_end, (int)pc->orig_prev_sp,
+ (int)pc->brace_level, (int)pc->level, (int)pc->pp_level, (int)pc->nl_count, pc->after_tab);
+#else // not WIN32
+ fprintf(pfile, "%s# %3zu>%19.19s|%19.19s|%19.19s[%3zu/%3zu/%3zu/%3d][%zu/%zu/%zu]",
+ eol_marker, pc->orig_line, get_token_name(pc->type),
+ get_token_name(get_chunk_parent_type(pc)), get_token_name(get_type_of_the_parent(pc)),
+ pc->column, pc->orig_col, pc->orig_col_end, pc->orig_prev_sp,
+ pc->brace_level, pc->level, pc->pp_level);
+ // Print pc flags in groups of 4 hex characters
+ char flag_string[20];
+ sprintf(flag_string, "%12llx", static_cast<pcf_flags_t::int_t>(pc->flags));
+ fprintf(pfile, "[%.4s %.4s %.4s]", flag_string, flag_string + 4, flag_string + 8);
+ fprintf(pfile, "[%zu-%d]",
+ pc->nl_count, pc->after_tab);
+#endif // ifdef WIN32
+
+ if ( pc->type != CT_NEWLINE
+ && (pc->Len() != 0))
+ {
+ for (size_t cnt = 0; cnt < pc->column; cnt++)
+ {
+ fprintf(pfile, " ");
+ }
+
+ if (pc->type != CT_NL_CONT)
+ {
+ fprintf(pfile, "%s", pc->Text());
+ }
+ else
+ {
+ fprintf(pfile, "\\");
+ }
+ }
+ }
+
+ fprintf(pfile, "%s# -=====-%s", eol_marker, eol_marker);
+ fflush(pfile);
+} // output_parsed
+
+
+void output_parsed_csv(FILE *pfile)
+{
+ const char *eol_marker = get_eol_marker();
+
+ fprintf(pfile, "number of loops,%d,\n", cpd.changes);
+ fprintf(pfile, "language,%s,\n", language_name_from_flags(cpd.lang_flags));
+ fprintf(pfile, "Line,Tag,Parent_type,Type of the parent,Column,Orig Col Strt,"
+ "Orig Col End,Orig Sp Before,Br,Lvl,pp,Flags,Nl Before,Nl After,Text,");
+
+ for (Chunk *pc = Chunk::GetHead(); pc->IsNotNullChunk(); pc = pc->GetNext())
+ {
+ fprintf(pfile, "%s%zu,%s,%s,%s,%zu,%zu,%zu,%d,%zu,%zu,%zu,",
+ eol_marker, pc->orig_line, get_token_name(pc->type),
+ get_token_name(get_chunk_parent_type(pc)), get_token_name(get_type_of_the_parent(pc)),
+ pc->column, pc->orig_col, pc->orig_col_end, pc->orig_prev_sp,
+ pc->brace_level, pc->level, pc->pp_level);
+
+ auto pcf_flag_str = pcf_flags_str(pcf_flag_e(pc->flags));
+#ifdef WIN32
+ auto pcf_flag_str_start = pcf_flag_str.find("[") + 1;
+#else // not WIN32
+ auto pcf_flag_str_start = pcf_flag_str.find(":") + 1;
+#endif // ifdef WIN32
+ auto pcf_flag_str_end = pcf_flag_str.find("]");
+ auto pcf_names = pcf_flag_str.substr(pcf_flag_str_start,
+ pcf_flag_str_end - pcf_flag_str_start);
+ fprintf(pfile, "\"%s\",", pcf_names.c_str());
+ fprintf(pfile, "%zu,%d,",
+ pc->nl_count, pc->after_tab);
+
+ if ( pc->type != CT_NEWLINE
+ && (pc->Len() != 0))
+ {
+ fprintf(pfile, "\"");
+
+ for (size_t cnt = 0; cnt < pc->column; cnt++)
+ {
+ fprintf(pfile, " ");
+ }
+
+ if (pc->type != CT_NL_CONT)
+ {
+ for (auto *ch = pc->Text(); *ch != '\0'; ++ch)
+ {
+ fprintf(pfile, "%c", *ch);
+
+ if (*ch == '"')
+ {
+ // need to escape the double-quote for csv-format
+ fprintf(pfile, "\"");
+ }
+ }
+ }
+ else
+ {
+ fprintf(pfile, "\\");
+ }
+ fprintf(pfile, "\"");
+ }
+ }
+
+ fflush(pfile);
+} // output_parsed_csv
+
+
+void output_text(FILE *pfile)
+{
+ bool tracking = cpd.html_file != nullptr; // special for debugging
+
+ cpd.fout = pfile;
+ cpd.did_newline = 1;
+ cpd.column = 1;
+
+ if (cpd.bom)
+ {
+ write_bom();
+ }
+ Chunk *pc;
+
+ if (cpd.frag_cols > 0)
+ {
+ size_t indent = cpd.frag_cols - 1;
+
+ // loop over the whole chunk list
+ for (pc = Chunk::GetHead(); pc->IsNotNullChunk(); pc = pc->GetNext())
+ {
+ pc->column += indent;
+ pc->column_indent += indent;
+ }
+
+ cpd.frag_cols = 0;
+ }
+
+ if (tracking)
+ {
+ add_text("<html>\n");
+ add_text("<head>\n");
+ add_text(" <meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\"/>\n");
+ add_text(" <title>Uncrustify: where do the Spaces options work</title>\n");
+ add_text("</head>\n");
+ add_text("<body lang=\"en-US\">\n");
+ add_text("<p>\n");
+ add_text("</p>\n");
+ add_text("<pre>\n");
+ }
+ bool write_in_tracking = false;
+
+ // loop over the whole chunk list
+ for (pc = Chunk::GetHead(); pc->IsNotNullChunk(); pc = pc->GetNext())
+ {
+ char copy[1000];
+ LOG_FMT(LCONTTEXT, "%s(%d): Text() is '%s', type is %s, orig_line is %zu, column is %zu, nl is %zu\n",
+ __func__, __LINE__, pc->ElidedText(copy), get_token_name(pc->type), pc->orig_line, pc->column, pc->nl_count);
+ log_rule_B("cmt_convert_tab_to_spaces");
+ cpd.output_tab_as_space = ( options::cmt_convert_tab_to_spaces()
+ && pc->IsComment());
+
+ if (chunk_is_token(pc, CT_NEWLINE))
+ {
+ for (size_t cnt = 0; cnt < pc->nl_count; cnt++)
+ {
+ if ( cnt > 0
+ && pc->nl_column > 1)
+ {
+ log_rule_B("indent_with_tabs");
+ output_to_column(pc->nl_column, (options::indent_with_tabs() == 2));
+ }
+ add_char('\n');
+ }
+
+ cpd.did_newline = 1;
+ cpd.column = 1;
+ LOG_FMT(LOUTIND, " xx\n");
+ }
+ else if (chunk_is_token(pc, CT_NL_CONT))
+ {
+ // FIXME: this really shouldn't be done here!
+ if (!pc->flags.test(PCF_WAS_ALIGNED))
+ {
+ // Add or remove space before a backslash-newline at the end of a line.
+ log_rule_B("sp_before_nl_cont");
+
+ if (options::sp_before_nl_cont() & IARF_REMOVE)
+ {
+ log_rule_B("sp_before_nl_cont");
+ pc->column = cpd.column + (options::sp_before_nl_cont() == IARF_FORCE);
+ }
+ else
+ {
+ // Try to keep the same relative spacing
+ Chunk *prev = pc->GetPrev();
+
+ if (chunk_is_token(prev, CT_PP_IGNORE))
+ {
+ /*
+ * Want to completely leave alone PP_IGNORE'd blocks because
+ * they likely have special column aligned newline
+ * continuations (common in multiline macros)
+ */
+ pc->column = pc->orig_col;
+ }
+ else
+ {
+ // Try to keep the same relative spacing
+ while ( prev != nullptr
+ && prev->IsNotNullChunk()
+ && prev->orig_col == 0
+ && prev->nl_count == 0)
+ {
+ prev = prev->GetPrev();
+ }
+
+ if ( prev != nullptr
+ && prev->IsNotNullChunk()
+ && prev->nl_count == 0)
+ {
+ int orig_sp = (pc->orig_col - prev->orig_col_end);
+
+ if ((int)(cpd.column + orig_sp) < 0)
+ {
+#ifdef WIN32
+ fprintf(stderr, "FATAL: negative value.\n pc->orig_col is %d, prev->orig_col_end is %d\n",
+ (int)pc->orig_col, (int)prev->orig_col_end);
+#else // not WIN32
+ fprintf(stderr, "FATAL: negative value.\n pc->orig_col is %zu, prev->orig_col_end is %zu\n",
+ pc->orig_col, prev->orig_col_end);
+#endif // ifdef WIN32
+ log_flush(true);
+ exit(EX_SOFTWARE);
+ }
+ pc->column = cpd.column + orig_sp;
+
+ // Add or remove space before a backslash-newline at the end of a line.
+ log_rule_B("sp_before_nl_cont");
+
+ if ( (options::sp_before_nl_cont() != IARF_IGNORE)
+ && (pc->column < (cpd.column + 1)))
+ {
+ pc->column = cpd.column + 1;
+ }
+ }
+ }
+ }
+ output_to_column(pc->column, false);
+ }
+ else
+ {
+ log_rule_B("indent_with_tabs");
+ output_to_column(pc->column, (options::indent_with_tabs() == 2));
+ }
+ add_char('\\');
+ add_char('\n');
+ cpd.did_newline = 1;
+ cpd.column = 1;
+ LOG_FMT(LOUTIND, " \\xx\n");
+ }
+ else if (chunk_is_token(pc, CT_COMMENT_MULTI))
+ {
+ log_rule_B("cmt_indent_multi");
+
+ if (options::cmt_indent_multi())
+ {
+ output_comment_multi(pc);
+ }
+ else
+ {
+ output_comment_multi_simple(pc);
+ }
+ }
+ else if (chunk_is_token(pc, CT_COMMENT_CPP))
+ {
+ bool tmp = cpd.output_trailspace;
+ /*
+ * keep trailing spaces if they are still present in a chunk;
+ * note that tokenize() already strips spaces in comments,
+ * so if they made it up to here, they are to stay
+ */
+ cpd.output_trailspace = true;
+ pc = output_comment_cpp(pc);
+ cpd.output_trailspace = tmp;
+ }
+ else if (chunk_is_token(pc, CT_COMMENT))
+ {
+ pc = output_comment_c(pc);
+ }
+ else if ( chunk_is_token(pc, CT_JUNK)
+ || chunk_is_token(pc, CT_IGNORED))
+ {
+ LOG_FMT(LOUTIND, "%s(%d): orig_line is %zu, orig_col is %zu,\npc->Text() >%s<, pc->str.size() is %zu\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), pc->str.size());
+ // do not adjust the column for junk
+ add_text(pc->str, true);
+ }
+ else if (pc->Len() == 0)
+ {
+ // don't do anything for non-visible stuff
+ LOG_FMT(LOUTIND, "%s(%d): orig_line is %zu, column is %zu, non-visible stuff: type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->column, get_token_name(pc->type));
+ }
+ else
+ {
+ bool allow_tabs;
+ cpd.output_trailspace = (chunk_is_token(pc, CT_STRING_MULTI));
+
+ // indent to the 'level' first
+ if (cpd.did_newline)
+ {
+ log_rule_B("indent_with_tabs");
+
+ if (options::indent_with_tabs() == 1)
+ {
+ size_t lvlcol;
+
+ /*
+ * FIXME: it would be better to properly set column_indent in
+ * indent_text(), but this hack for '}' and '#' seems to work.
+ */
+ if ( chunk_is_token(pc, CT_BRACE_CLOSE)
+ || chunk_is_token(pc, CT_CASE_COLON)
+ || chunk_is_token(pc, CT_PREPROC))
+ {
+ lvlcol = pc->column;
+ }
+ else
+ {
+ lvlcol = pc->column_indent;
+
+ if (lvlcol > pc->column)
+ {
+ lvlcol = pc->column;
+ }
+ }
+
+ if (lvlcol > 1)
+ {
+ output_to_column(lvlcol, true);
+ }
+ }
+ log_rule_B("indent_with_tabs");
+ allow_tabs = (options::indent_with_tabs() == 2)
+ || ( pc->IsComment()
+ && options::indent_with_tabs() != 0);
+
+ LOG_FMT(LOUTIND, "%s(%d): orig_line is %zu, column is %zu, column_indent is %zu, cpd.column is %zu\n",
+ __func__, __LINE__, pc->orig_line, pc->column, pc->column_indent, cpd.column);
+ }
+ else
+ {
+ /*
+ * Reformatting multi-line comments can screw up the column.
+ * Make sure we don't mess up the spacing on this line.
+ * This has to be done here because comments are not formatted
+ * until the output phase.
+ */
+ if (pc->column < cpd.column)
+ {
+ reindent_line(pc, cpd.column);
+ }
+ // not the first item on a line
+ Chunk *prev = pc->GetPrev();
+ log_rule_B("align_with_tabs");
+ allow_tabs = ( options::align_with_tabs()
+ && pc->flags.test(PCF_WAS_ALIGNED)
+ && ((prev->column + prev->Len() + 1) != pc->column));
+
+ log_rule_B("align_keep_tabs");
+
+ if (options::align_keep_tabs())
+ {
+ allow_tabs |= pc->after_tab;
+ }
+ LOG_FMT(LOUTIND, "%s(%d): at column %zu(%s)\n",
+ __func__, __LINE__, pc->column, (allow_tabs ? "true" : "FALSE"));
+ }
+ output_to_column(pc->column, allow_tabs);
+
+ if (write_in_tracking)
+ {
+ if (chunk_is_token(pc, CT_ANGLE_OPEN))
+ {
+ add_text("&lt;", false, false);
+ }
+ else if (chunk_is_token(pc, CT_ANGLE_CLOSE))
+ {
+ add_text("&gt;", false, false);
+ }
+ else
+ {
+ add_text(pc->str, false, chunk_is_token(pc, CT_STRING));
+ }
+ write_in_tracking = false;
+ }
+ else
+ {
+ add_text(pc->str, false, chunk_is_token(pc, CT_STRING));
+ }
+
+ if (chunk_is_token(pc, CT_PP_DEFINE)) // Issue #876
+ {
+ // If true, a <TAB> is inserted after #define.
+ log_rule_B("force_tab_after_define");
+
+ if (options::force_tab_after_define())
+ {
+ add_char('\t');
+ }
+ }
+ cpd.did_newline = chunk_is_newline(pc);
+ cpd.output_trailspace = false;
+ }
+
+ if (pc->tracking != nullptr)
+ {
+ LOG_FMT(LGUY, " Tracking info are: \n");
+ LOG_FMT(LGUY, " number of track(s) %zu\n", pc->tracking->size());
+ add_text("<a title=\"");
+ char tempText[80];
+
+ for (size_t track = 0; track < pc->tracking->size(); track++)
+ {
+ track_list *A = pc->tracking;
+ Track_nr B = A->at(track);
+ size_t Bfirst = B.first;
+ char *Bsecond = B.second;
+
+ sprintf(tempText, "%zu", Bfirst);
+ add_text(tempText);
+ add_text(",");
+
+ if (track == pc->tracking->size() - 1)
+ {
+ sprintf(tempText, "%s", Bsecond);
+ add_text(tempText);
+ }
+ LOG_FMT(LGUY, " %zu, tracking number is %zu\n", track, Bfirst);
+ LOG_FMT(LGUY, " %zu, rule is %s\n", track, Bsecond);
+ }
+
+ add_text("\"><font color=\"red\">M</font></a>");
+ write_in_tracking = true;
+ }
+ }
+
+ if (tracking)
+ {
+ add_text("</pre>\n");
+ add_text("</body>\n");
+ add_text("</html>\n");
+ }
+} // output_text
+
+
+void dump_step(const char *filename, const char *step_description)
+{
+ static int file_num = 0;
+ char buffer[256];
+ FILE *dump_file;
+
+ if ( filename == nullptr
+ || strlen(filename) == 0)
+ {
+ return;
+ }
+
+ // On the first call, also save the options in use
+ if (file_num == 0)
+ {
+ snprintf(buffer, 256, "New dump file: %s_%03d.log - Options in use", filename, file_num);
+ log_rule_B(buffer);
+
+ snprintf(buffer, 256, "%s_%03d.log", filename, file_num);
+ ++file_num;
+
+ dump_file = fopen(buffer, "wb");
+
+ if (dump_file != nullptr)
+ {
+ save_option_file(dump_file, false, true);
+ fclose(dump_file);
+ }
+ }
+ snprintf(buffer, 256, "New dump file: %s_%03d.log - %s", filename, file_num, step_description);
+ log_rule_B(buffer);
+
+ snprintf(buffer, 256, "%s_%03d.log", filename, file_num);
+ ++file_num;
+
+ dump_file = fopen(buffer, "wb");
+
+ if (dump_file != nullptr)
+ {
+ fprintf(dump_file, "STEP: %s\n--------------\n", step_description);
+ output_parsed(dump_file, false);
+ fclose(dump_file);
+ }
+} // dump_step
+
+
+static size_t cmt_parse_lead(const unc_text &line, bool is_last)
+{
+ size_t len = 0;
+
+ while ( len < 32
+ && len < line.size()) // TODO what is the meaning of 32?
+ {
+ if ( len > 0
+ && line[len] == '/')
+ {
+ // ignore combined comments
+ size_t tmp = len + 1;
+
+ while ( tmp < line.size()
+ && unc_isspace(line[tmp]))
+ {
+ tmp++;
+ }
+
+ if ( tmp < line.size()
+ && line[tmp] == '/')
+ {
+ return(1);
+ }
+ break;
+ }
+ else if (strchr("*|\\#+", line[len]) == nullptr)
+ {
+ break; // none of the characters '*|\#+' found in line
+ }
+ len++;
+ }
+
+ if (len > 30) // TODO: what is the meaning of 30?
+ {
+ return(1);
+ }
+
+ if ( len > 0
+ && ( len >= line.size()
+ || unc_isspace(line[len])))
+ {
+ return(len);
+ }
+
+ if ( len == 1
+ && line[0] == '*')
+ {
+ return(len);
+ }
+
+ if ( is_last
+ && len > 0)
+ {
+ return(len);
+ }
+ return(0);
+} // cmt_parse_lead
+
+
+/**
+ * Eat whitespace characters starting at the specified index in the forward or reverse direction
+ * within a single line
+ * @param str the input string containing the comment text
+ * @param idx the starting index
+ * @param forward if true, searches in the forward direction;
+ * if false, searches in the reverse direction
+ * @return the first index at which a non-whitespace character is encountered, including
+ * a newline character
+ */
+template<typename String>
+static int eat_line_whitespace(const String &str,
+ int idx, bool
+ forward = true)
+{
+ auto advance_index = [&](int i)
+ {
+ return(forward ? i + 1 : i - 1);
+ };
+
+ auto index_in_range = [&](int i)
+ {
+ // TODO: the following BREAKS with source code formatting; uncrustify seems to
+ // think that the following is a template. This will NEED to be fixed!!!
+ // For now, reformulate the statement
+ //return(forward ? i<int(str.size()) : i> = 0);
+ return(forward ? (i < int(str.size())) : (i >= 0));
+ };
+
+ while ( index_in_range(idx)
+ && str[idx] != '\n'
+ && str[idx] != '\r'
+ && unc_isspace(str[idx]))
+ {
+ idx = advance_index(idx);
+ }
+ return(idx);
+} // eat_line_whitespace
+
+
+/**
+ * Returns whether or not a javaparam tag is the leading
+ * text in a comment line, with only a sequence of whitespace
+ * and/or '*' characters preceding it
+ * @param str the input string containing the comment text
+ * @param idx the starting index
+ * @return true/false
+ */
+template<typename String>
+static bool javaparam_tag_is_start_of_line(const String &str, int idx)
+{
+ idx = eat_line_whitespace(str,
+ str[idx] == '@' ? idx - 1 : idx,
+ false);
+
+ while (true)
+ {
+ if ( idx < 0
+ || str[idx] == '\n'
+ || str[idx] == '\r')
+ {
+ return(true);
+ }
+
+ if (str[idx] == '*')
+ {
+ idx = eat_line_whitespace(str,
+ idx - 1,
+ false);
+ }
+ else
+ {
+ return(false);
+ }
+ }
+} // javaparam_tag_is_start_of_line
+
+
+/**
+ * Attempts to match a doxygen/javadoc-style comment tag
+ * @param str the input string containing the comment text
+ * @param idx the starting index
+ * @return the index of the character immediately following the matched tag,
+ * or -1 if no match is found
+ */
+static int match_doxygen_javadoc_tag(const std::wstring &str, size_t idx)
+{
+ std::wsmatch match;
+
+ if (str[idx] == L'@')
+ {
+ // Issue #3357
+ std::wregex criteria(L"(@(?:author|"
+ L"deprecated|"
+ L"exception|"
+ L"param(?:\\s*?\\[\\s*(?:in\\s*,\\s*out|in|out)\\s*?\\])?|"
+ L"return|"
+ L"see|"
+ L"since|"
+ L"throws|"
+ L"version)(?=\\s))");
+
+ if ( std::regex_search(str.cbegin() + idx, str.cend(), match, criteria)
+ && match[1].matched
+ && match.position(1) == std::wsmatch::difference_type(0))
+ {
+ std::set<std::wstring> block_tags =
+ {
+ L"@author",
+ L"@deprecated",
+ L"@exception",
+ L"@param",
+ L"@param[in]",
+ L"@param[in,out]",
+ L"@param[out]",
+ L"@return",
+ L"@see",
+ L"@since",
+ L"@throws",
+ L"@version"
+ };
+ std::wstring result(match[1]);
+ result.erase(std::remove_if(result.begin(), result.end(), ::isspace), result.end());
+ auto &&it_block_tag = block_tags.find(result);
+
+ if ( it_block_tag != block_tags.end()
+ && javaparam_tag_is_start_of_line(str, idx))
+ {
+ return(int(idx + match[1].length()));
+ }
+ }
+ }
+ return(-1);
+} // match_javadoc_block_tag
+
+
+static void calculate_doxygen_javadoc_indent_alignment(const std::wstring &str,
+ size_t &doxygen_javadoc_param_name_indent,
+ size_t &doxygen_javadoc_continuation_indent)
+{
+ log_rule_B("cmt_align_doxygen_javadoc_tags");
+
+ doxygen_javadoc_continuation_indent = 0;
+ doxygen_javadoc_param_name_indent = 0;
+
+ if (!options::cmt_align_doxygen_javadoc_tags())
+ {
+ return;
+ }
+
+ for (size_t idx = 0; idx < str.size(); ++idx)
+ {
+ int start_idx = idx;
+ int end_idx = match_doxygen_javadoc_tag(str, start_idx);
+
+ if (end_idx > start_idx)
+ {
+ size_t block_tag_width = 1 + std::count_if(str.begin() + start_idx,
+ str.begin() + end_idx,
+ [](wchar_t ch) {
+ return(!unc_isspace(ch));
+ });
+
+ if (block_tag_width > doxygen_javadoc_param_name_indent)
+ {
+ doxygen_javadoc_param_name_indent = block_tag_width;
+ }
+ idx = eat_line_whitespace(str, end_idx);
+
+ size_t param_name_width = 0;
+
+ if (str.find(L"@param", start_idx) == size_t(start_idx))
+ {
+ param_name_width = 1;
+
+ while (true)
+ {
+ while ( !unc_isspace(str[idx])
+ && str[idx] != ',')
+ {
+ ++param_name_width;
+ ++idx;
+ }
+ idx = eat_line_whitespace(str, idx);
+
+ if (str[idx] != ',')
+ {
+ break;
+ }
+ param_name_width += 2;
+ idx = eat_line_whitespace(str, idx + 1);
+ }
+ }
+
+ if (param_name_width > doxygen_javadoc_continuation_indent)
+ {
+ doxygen_javadoc_continuation_indent = param_name_width;
+ }
+ }
+ }
+
+ if (doxygen_javadoc_param_name_indent > 0)
+ {
+ log_rule_B("cmt_sp_before_doxygen_javadoc_tags");
+
+ doxygen_javadoc_param_name_indent += options::cmt_sp_before_doxygen_javadoc_tags();
+ doxygen_javadoc_continuation_indent += doxygen_javadoc_param_name_indent;
+ }
+} // calculate_doxygen_javadoc_indent_alignment
+
+
+static void calculate_comment_body_indent(cmt_reflow &cmt, const unc_text &str)
+{
+ cmt.xtra_indent = 0;
+
+ log_rule_B("cmt_indent_multi");
+
+ if (!options::cmt_indent_multi())
+ {
+ return;
+ }
+ size_t idx = 0;
+ size_t len = str.size();
+ size_t last_len = 0;
+
+ log_rule_B("cmt_multi_check_last");
+
+ if (options::cmt_multi_check_last())
+ {
+ // find the last line length
+ for (idx = len - 1; idx > 0; idx--)
+ {
+ if ( str[idx] == '\n'
+ || str[idx] == '\r')
+ {
+ idx++;
+
+ while ( idx < len
+ && ( str[idx] == ' '
+ || str[idx] == '\t'))
+ {
+ idx++;
+ }
+ last_len = len - idx;
+ break;
+ }
+ }
+ }
+ // find the first line length
+ size_t first_len = 0;
+
+ for (idx = 0; idx < len; idx++)
+ {
+ if ( str[idx] == '\n'
+ || str[idx] == '\r')
+ {
+ first_len = idx;
+
+ while ( str[first_len - 1] == ' '
+ || str[first_len - 1] == '\t')
+ {
+ if (first_len == 0)
+ {
+ fprintf(stderr, "%s(%d): first_len is ZERO, cannot be decremented.\n",
+ __func__, __LINE__);
+ log_flush(true);
+ exit(EX_SOFTWARE);
+ }
+ first_len--;
+ }
+
+ // handle DOS endings
+ if ( str[idx] == '\r'
+ && str[idx + 1] == '\n')
+ {
+ idx++;
+ }
+ idx++;
+ break;
+ }
+ }
+
+ // Scan the second line
+ size_t width = 0;
+
+ for ( ; idx < len - 1; idx++)
+ {
+ if ( str[idx] == ' '
+ || str[idx] == '\t')
+ {
+ if (width > 0)
+ {
+ break;
+ }
+ continue;
+ }
+
+ if ( str[idx] == '\n'
+ || str[idx] == '\r')
+ {
+ break; // Done with second line
+ }
+
+ // Count the leading chars
+ if ( str[idx] == '*'
+ || str[idx] == '|'
+ || str[idx] == '\\'
+ || str[idx] == '#'
+ || str[idx] == '+')
+ {
+ width++;
+ }
+ else
+ {
+ if ( width != 1
+ || str[idx - 1] != '*')
+ {
+ width = 0;
+ }
+ break;
+ }
+ }
+
+ // LOG_FMT(LSYS, "%s: first=%d last=%d width=%d\n", __func__, first_len, last_len, width);
+
+ /*
+ * If the first and last line are the same length and don't contain any
+ * alphanumeric chars and (the first line len > cmt_multi_first_len_minimum
+ * or the second leader is the same as the first line length), then the
+ * indent is 0.
+ */
+ log_rule_B("cmt_multi_first_len_minimum");
+
+ if ( first_len == last_len
+ && ( first_len > options::cmt_multi_first_len_minimum()
+ || first_len == width))
+ {
+ return;
+ }
+ cmt.xtra_indent = (width == 2) ? 0 : 1;
+} // calculate_comment_body_indent
+
+
+// TODO: can we use search_next_chunk here?
+static Chunk *get_next_function(Chunk *pc)
+{
+ if (pc == nullptr)
+ {
+ pc = Chunk::NullChunkPtr;
+ }
+
+ while ((pc = pc->GetNext())->IsNotNullChunk())
+ {
+ if ( chunk_is_token(pc, CT_FUNC_DEF)
+ || chunk_is_token(pc, CT_FUNC_PROTO)
+ || chunk_is_token(pc, CT_FUNC_CLASS_DEF)
+ || chunk_is_token(pc, CT_FUNC_CLASS_PROTO)
+ || chunk_is_token(pc, CT_OC_MSG_DECL))
+ {
+ return(pc);
+ }
+ }
+ return(nullptr);
+}
+
+
+static Chunk *get_next_class(Chunk *pc)
+{
+ return(chunk_search_next_cat(pc, CT_CLASS)->GetNext());
+}
+
+
+static Chunk *get_prev_category(Chunk *pc)
+{
+ return(chunk_search_prev_cat(pc, CT_OC_CATEGORY));
+}
+
+
+static Chunk *get_next_scope(Chunk *pc)
+{
+ return(chunk_search_next_cat(pc, CT_OC_SCOPE));
+}
+
+
+static Chunk *get_prev_oc_class(Chunk *pc)
+{
+ return(chunk_search_prev_cat(pc, CT_OC_CLASS));
+}
+
+
+static int next_up(const unc_text &text, size_t idx, const unc_text &tag)
+{
+ size_t offs = 0;
+
+ while ( idx < text.size()
+ && unc_isspace(text[idx]))
+ {
+ idx++;
+ offs++;
+ }
+
+ if (text.startswith(tag, idx))
+ {
+ return(offs);
+ }
+ return(-1);
+}
+
+
+static void add_comment_text(const unc_text &text,
+ cmt_reflow &cmt,
+ bool esc_close,
+ size_t continuation_indent)
+{
+ bool was_star = false;
+ bool was_slash = false;
+ bool in_word = false;
+ size_t len = text.size();
+ size_t ch_cnt = 0; // chars since newline
+
+ // If the '//' is included write it first else we may wrap an empty line
+ size_t idx = 0;
+
+ if (text.startswith("//"))
+ {
+ add_text("//");
+ idx += 2;
+
+ while (unc_isspace(text[idx]))
+ {
+ add_char(text[idx++]);
+ }
+ }
+
+ for ( ; idx < len; idx++) // TODO: avoid modifying idx in loop
+ {
+ // Split the comment
+ if (text[idx] == '\n')
+ {
+ in_word = false;
+ add_char('\n');
+ cmt_output_indent(cmt.brace_col, cmt.base_col, cmt.column);
+
+ if (cmt.xtra_indent > 0)
+ {
+ add_char(' ');
+ }
+ // hack to get escaped newlines to align and not duplicate the leading '//'
+ int tmp = next_up(text, idx + 1, "//");
+
+ if (tmp < 0)
+ {
+ add_text(cmt.cont_text);
+ }
+ else
+ {
+ idx += tmp;
+ }
+ ch_cnt = 0;
+ }
+ else if ( cmt.reflow
+ && text[idx] == ' '
+ && options::cmt_width() > 0
+ && ( cpd.column > options::cmt_width()
+ || ( ch_cnt > 1
+ && next_word_exceeds_limit(text, idx))))
+ {
+ log_rule_B("cmt_width");
+ in_word = false;
+ add_char('\n');
+ cmt_output_indent(cmt.brace_col, cmt.base_col, cmt.column);
+
+ if (cmt.xtra_indent > 0)
+ {
+ add_char(' ');
+ }
+ // The number of spaces to insert after the star on subsequent comment lines.
+ log_rule_B("cmt_sp_after_star_cont");
+
+ /**
+ * calculate the output column
+ */
+ size_t column = options::cmt_sp_after_star_cont();
+
+ if ( text[idx + 1] == 42 // this is star *
+ && text[idx + 2] == 47) // this is /
+ {
+ LOG_FMT(LCONTTEXT, "%s(%d): we have a comment end\n",
+ __func__, __LINE__);
+
+ column += cmt.column;
+ }
+ else
+ {
+ add_text(cmt.cont_text);
+
+ if (continuation_indent > 0)
+ {
+ if (options::cmt_align_doxygen_javadoc_tags())
+ {
+ log_rule_B("cmt_align_doxygen_javadoc_tags");
+ }
+ else if (options::cmt_reflow_indent_to_paragraph_start())
+ {
+ log_rule_B("cmt_reflow_indent_to_paragraph_start");
+ }
+ column += continuation_indent;
+
+ log_rule_B("cmt_sp_after_star_cont");
+
+ if (column >= options::cmt_sp_after_star_cont())
+ {
+ column -= options::cmt_sp_after_star_cont();
+ }
+ }
+ /**
+ * count the number trailing spaces in the comment continuation text
+ */
+ size_t num_trailing_sp = 0;
+
+ while ( num_trailing_sp < cmt.cont_text.size()
+ && unc_isspace(cmt.cont_text[cmt.cont_text.size() - 1 - num_trailing_sp]))
+ {
+ ++num_trailing_sp;
+ }
+ column += cpd.column;
+
+ if (column >= num_trailing_sp)
+ {
+ column -= num_trailing_sp;
+ }
+ }
+ output_to_column(column,
+ false);
+ ch_cnt = 0;
+ }
+ else
+ {
+ // Escape a C closure in a CPP comment
+ if ( esc_close
+ && ( ( was_star
+ && text[idx] == '/')
+ || ( was_slash
+ && text[idx] == '*')))
+ {
+ add_char(' ');
+ }
+
+ if ( !in_word
+ && !unc_isspace(text[idx]))
+ {
+ cmt.word_count++;
+ }
+ in_word = !unc_isspace(text[idx]);
+
+ add_char(text[idx]);
+ was_star = (text[idx] == '*');
+ was_slash = (text[idx] == '/');
+ ch_cnt++;
+ }
+ }
+} // add_comment_text
+
+
+static void output_cmt_start(cmt_reflow &cmt, Chunk *pc)
+{
+ cmt.pc = pc;
+ cmt.column = pc->column;
+ cmt.brace_col = pc->column_indent;
+ cmt.base_col = pc->column_indent;
+ cmt.word_count = 0;
+ cmt.xtra_indent = 0;
+ cmt.cont_text.clear();
+ cmt.reflow = false;
+
+ // Issue #2752
+ log_rule_B("cmt_insert_file_header");
+ log_rule_B("cmt_insert_file_footer");
+ log_rule_B("cmt_insert_func_header)");
+ log_rule_B("cmt_insert_class_header");
+ log_rule_B("cmt_insert_oc_msg_header");
+
+ if ( options::cmt_insert_file_header().size() > 0
+ || options::cmt_insert_file_footer().size() > 0
+ || options::cmt_insert_func_header().size() > 0
+ || options::cmt_insert_class_header().size() > 0
+ || options::cmt_insert_oc_msg_header().size() > 0)
+ {
+ LOG_FMT(LCONTTEXT, "%s(%d): cmt_insert_file\n", __func__, __LINE__);
+ do_kw_subst(pc);
+ }
+ else
+ {
+ LOG_FMT(LCONTTEXT, "%s(%d): no cmt_insert_file\n", __func__, __LINE__);
+ }
+
+ if (cmt.brace_col == 0)
+ {
+ log_rule_B("output_tab_size");
+ cmt.brace_col = 1 + (pc->brace_level * options::output_tab_size());
+ }
+ // LOG_FMT(LSYS, "%s: line %zd, brace=%zd base=%zd col=%zd orig=%zd aligned=%x\n",
+ // __func__, pc->orig_line, cmt.brace_col, cmt.base_col, cmt.column, pc->orig_col,
+ // pc->flags & (PCF_WAS_ALIGNED | PCF_RIGHT_COMMENT));
+
+ if ( get_chunk_parent_type(pc) == CT_COMMENT_START
+ || get_chunk_parent_type(pc) == CT_COMMENT_WHOLE)
+ {
+ log_rule_B("indent_col1_comment");
+
+ if ( !options::indent_col1_comment()
+ && pc->orig_col == 1
+ && !pc->flags.test(PCF_INSERTED))
+ {
+ cmt.column = 1;
+ cmt.base_col = 1;
+ cmt.brace_col = 1;
+ }
+ }
+ // tab aligning code
+ log_rule_B("indent_cmt_with_tabs");
+
+ if ( options::indent_cmt_with_tabs()
+ && ( get_chunk_parent_type(pc) == CT_COMMENT_END
+ || get_chunk_parent_type(pc) == CT_COMMENT_WHOLE))
+ {
+ cmt.column = align_tab_column(cmt.column - 1);
+ // LOG_FMT(LSYS, "%s: line %d, orig:%d new:%d\n",
+ // __func__, pc->orig_line, pc->column, cmt.column);
+ pc->column = cmt.column;
+ }
+ cmt.base_col = cmt.column;
+
+ // LOG_FMT(LSYS, "%s: -- brace=%d base=%d col=%d\n",
+ // __func__, cmt.brace_col, cmt.base_col, cmt.column);
+
+ // Bump out to the column
+ cmt_output_indent(cmt.brace_col, cmt.base_col, cmt.column);
+} // output_cmt_start
+
+
+static bool can_combine_comment(Chunk *pc, cmt_reflow &cmt)
+{
+ // We can't combine if there is something other than a newline next
+ if (get_chunk_parent_type(pc) == CT_COMMENT_START)
+ {
+ return(false);
+ }
+
+ // next is a newline for sure, make sure it is a single newline
+ if (pc == nullptr)
+ {
+ pc = Chunk::NullChunkPtr;
+ }
+ Chunk *next = pc->GetNext();
+
+ if ( next->IsNotNullChunk()
+ && next->nl_count == 1)
+ {
+ // Make sure the comment is the same type at the same column
+ next = next->GetNext();
+
+ if ( chunk_is_token(next, pc->type)
+ && ( ( next->column == 1
+ && pc->column == 1)
+ || ( next->column == cmt.base_col
+ && pc->column == cmt.base_col)
+ || ( next->column > cmt.base_col
+ && get_chunk_parent_type(pc) == CT_COMMENT_END)))
+ {
+ return(true);
+ }
+ }
+ return(false);
+} // can_combine_comment
+
+
+static Chunk *output_comment_c(Chunk *first)
+{
+ cmt_reflow cmt;
+
+ output_cmt_start(cmt, first);
+ log_rule_B("cmt_reflow_mode");
+ cmt.reflow = (options::cmt_reflow_mode() != 1);
+
+ // See if we can combine this comment with the next comment
+ log_rule_B("cmt_c_group");
+
+ if ( !options::cmt_c_group()
+ || !can_combine_comment(first, cmt))
+ {
+ // Just add the single comment
+ log_rule_B("cmt_star_cont");
+ cmt.cont_text = options::cmt_star_cont() ? " * " : " ";
+ LOG_CONTTEXT();
+
+ log_rule_B("cmt_trailing_single_line_c_to_cpp");
+
+ if (options::cmt_trailing_single_line_c_to_cpp() && chunk_is_last_on_line(first))
+ {
+ add_text("//");
+
+ unc_text tmp;
+ tmp.set(first->str, 2, first->Len() - 4);
+ cmt_trim_whitespace(tmp, false);
+ add_comment_text(tmp, cmt, false);
+ }
+ else
+ {
+ add_comment_text(first->str, cmt, false);
+ }
+ return(first);
+ }
+ log_rule_B("cmt_star_cont");
+ cmt.cont_text = options::cmt_star_cont() ? " *" : " ";
+ LOG_CONTTEXT();
+
+ add_text("/*");
+
+ log_rule_B("cmt_c_nl_start");
+
+ if (options::cmt_c_nl_start())
+ {
+ add_comment_text("\n", cmt, false);
+ }
+ Chunk *pc = first;
+ unc_text tmp;
+
+ while (can_combine_comment(pc, cmt))
+ {
+ LOG_FMT(LCONTTEXT, "%s(%d): Text() is '%s'\n",
+ __func__, __LINE__, pc->Text());
+ tmp.set(pc->str, 2, pc->Len() - 4);
+
+ if ( cpd.last_char == '*'
+ && ( tmp[0] == '/'
+ || tmp[0] != ' ')) // Issue #1908
+ {
+ LOG_FMT(LCONTTEXT, "%s(%d): add_text a " "\n", __func__, __LINE__);
+ add_text(" ");
+ }
+ // In case of reflow, original comment could contain trailing spaces before closing the comment, we don't need them after reflow
+ LOG_FMT(LCONTTEXT, "%s(%d): trim\n", __func__, __LINE__);
+ cmt_trim_whitespace(tmp, false);
+ LOG_FMT(LCONTTEXT, "%s(%d): add_comment_text(tmp is '%s')\n",
+ __func__, __LINE__, tmp.c_str());
+ add_comment_text(tmp, cmt, false);
+ LOG_FMT(LCONTTEXT, "%s(%d): add_comment_text(newline)\n",
+ __func__, __LINE__);
+ add_comment_text("\n", cmt, false);
+ pc = pc->GetNext();
+ pc = pc->GetNext();
+ }
+ tmp.set(pc->str, 2, pc->Len() - 4);
+
+ if ( cpd.last_char == '*'
+ && tmp[0] == '/')
+ {
+ add_text(" ");
+ }
+ // In case of reflow, original comment could contain trailing spaces before closing the comment, we don't need them after reflow
+ cmt_trim_whitespace(tmp, false);
+ add_comment_text(tmp, cmt, false);
+
+ log_rule_B("cmt_c_nl_end");
+
+ if (options::cmt_c_nl_end())
+ {
+ cmt.cont_text = " ";
+ LOG_CONTTEXT();
+ add_comment_text("\n", cmt, false);
+ }
+ add_comment_text("*/", cmt, false);
+ return(pc);
+} // output_comment_c
+
+
+static Chunk *output_comment_cpp(Chunk *first)
+{
+ cmt_reflow cmt;
+
+ output_cmt_start(cmt, first);
+ log_rule_B("cmt_reflow_mode");
+ cmt.reflow = (options::cmt_reflow_mode() != 1);
+
+ unc_text leadin = "//"; // default setting to keep previous behaviour
+
+ // If true, space is added with sp_cmt_cpp_start will be added after doxygen
+ // sequences like '///', '///<', '//!' and '//!<'.
+ log_rule_B("sp_cmt_cpp_doxygen");
+
+ if (options::sp_cmt_cpp_doxygen()) // special treatment for doxygen style comments (treat as unity)
+ {
+ const char *sComment = first->Text();
+ bool grouping = (sComment[2] == '@');
+ size_t brace = 3;
+
+ if ( sComment[2] == '/'
+ || sComment[2] == '!') // doxygen style found!
+ {
+ leadin += sComment[2]; // at least one additional char (either "///" or "//!")
+
+ if (sComment[3] == '<') // and a further one (either "///<" or "//!<")
+ {
+ leadin += '<';
+ }
+ else
+ {
+ grouping = (sComment[3] == '@'); // or a further one (grouping)
+ brace = 4;
+ }
+ }
+
+ if ( grouping
+ && ( sComment[brace] == '{'
+ || sComment[brace] == '}'))
+ {
+ leadin += '@';
+ leadin += sComment[brace];
+ }
+ }
+ // Special treatment for Qt translator or meta-data comments (treat as unity)
+ // If true, space is added with sp_cmt_cpp_start will be added after Qt
+ // translator or meta-data comments like '//:', '//=', and '//~'.
+ log_rule_B("sp_cmt_cpp_qttr");
+
+ if (options::sp_cmt_cpp_qttr())
+ {
+ const int c = first->str[2];
+
+ if ( c == ':'
+ || c == '='
+ || c == '~')
+ {
+ leadin += c;
+ }
+ }
+ // CPP comments can't be grouped unless they are converted to C comments
+ log_rule_B("cmt_cpp_to_c");
+
+ if (!options::cmt_cpp_to_c())
+ {
+ auto const *cmt_text = first->str.c_str() + 2;
+ // Add or remove space after the opening of a C++ comment,
+ // i.e. '// A' vs. '//A'.
+ auto *sp_cmt = &options::sp_cmt_cpp_start;
+
+ cmt.cont_text = leadin;
+
+ // Get start of comment text
+ while ( *cmt_text != '\0'
+ && unc_isspace(*cmt_text))
+ {
+ ++cmt_text;
+ }
+
+ // Determine if we are dealing with a region marker
+ if ( ( !first->prev
+ || first->prev->orig_line != first->orig_line)
+ && ( strncmp(cmt_text, "BEGIN", 5) == 0
+ || strncmp(cmt_text, "END", 3) == 0))
+ {
+ // If sp_cmt_cpp_region is not ignore, use that instead of
+ // sp_cmt_cpp_start
+ if (options::sp_cmt_cpp_region() != IARF_IGNORE)
+ {
+ sp_cmt = &options::sp_cmt_cpp_region;
+ }
+ }
+ // Add or remove space after the opening of a C++ comment,
+ // i.e. '// A' vs. '//A'.
+ log_rule_B(sp_cmt->name());
+
+ if ((*sp_cmt)() != IARF_REMOVE)
+ {
+ cmt.cont_text += ' ';
+ }
+ LOG_CONTTEXT();
+
+ // Add or remove space after the opening of a C++ comment,
+ // i.e. '// A' vs. '//A'.
+ log_rule_B(sp_cmt->name());
+
+ if ((*sp_cmt)() == IARF_IGNORE)
+ {
+ add_comment_text(first->str, cmt, false);
+ }
+ else
+ {
+ size_t iLISz = leadin.size();
+ unc_text tmp(first->str, 0, iLISz);
+ add_comment_text(tmp, cmt, false);
+
+ tmp.set(first->str, iLISz, first->Len() - iLISz);
+
+ // Add or remove space after the opening of a C++ comment,
+ // i.e. '// A' vs. '//A'.
+ log_rule_B("sp_cmt_cpp_start");
+
+ if ((*sp_cmt)() & IARF_REMOVE)
+ {
+ while ( (tmp.size() > 0)
+ && unc_isspace(tmp[0]))
+ {
+ tmp.pop_front();
+ }
+ }
+
+ if (tmp.size() > 0)
+ {
+ // Add or remove space after the opening of a C++ comment,
+ // i.e. '// A' vs. '//A'.
+ log_rule_B("sp_cmt_cpp_start");
+
+ if ((*sp_cmt)() & IARF_ADD)
+ {
+ if ( !unc_isspace(tmp[0])
+ && (tmp[0] != '/'))
+ {
+ add_comment_text(" ", cmt, false);
+ }
+ }
+ add_comment_text(tmp, cmt, false);
+ }
+ }
+ return(first);
+ }
+ // We are going to convert the CPP comments to C comments
+ log_rule_B("cmt_star_cont");
+ cmt.cont_text = options::cmt_star_cont() ? " * " : " ";
+ LOG_CONTTEXT();
+
+ unc_text tmp;
+
+ // See if we can combine this comment with the next comment
+ log_rule_B("cmt_cpp_group");
+
+ if ( !options::cmt_cpp_group()
+ || !can_combine_comment(first, cmt))
+ {
+ // nothing to group: just output a single line
+ add_text("/*");
+
+ // patch # 32, 2012-03-23
+ // Add or remove space after the opening of a C++ comment,
+ // i.e. '// A' vs. '//A'.
+ log_rule_B("sp_cmt_cpp_start");
+
+ if ( !unc_isspace(first->str[2])
+ && (options::sp_cmt_cpp_start() & IARF_ADD))
+ {
+ add_char(' ');
+ }
+ tmp.set(first->str, 2, first->Len() - 2);
+ add_comment_text(tmp, cmt, true);
+ add_text(" */");
+ return(first);
+ }
+ add_text("/*");
+
+ log_rule_B("cmt_cpp_nl_start");
+
+ if (options::cmt_cpp_nl_start())
+ {
+ add_comment_text("\n", cmt, false);
+ }
+ else
+ {
+ add_text(" ");
+ }
+ Chunk *pc = first;
+ int offs;
+
+ while (can_combine_comment(pc, cmt))
+ {
+ offs = unc_isspace(pc->str[2]) ? 1 : 0;
+ tmp.set(pc->str, 2 + offs, pc->Len() - (2 + offs));
+
+ if ( cpd.last_char == '*'
+ && tmp[0] == '/')
+ {
+ add_text(" ");
+ }
+ add_comment_text(tmp, cmt, true);
+ add_comment_text("\n", cmt, false);
+ pc = pc->GetNext()->GetNext();
+ }
+ offs = unc_isspace(pc->str[2]) ? 1 : 0;
+ tmp.set(pc->str, 2 + offs, pc->Len() - (2 + offs));
+ add_comment_text(tmp, cmt, true);
+
+ log_rule_B("cmt_cpp_nl_end");
+
+ if (options::cmt_cpp_nl_end())
+ {
+ cmt.cont_text = "";
+ LOG_CONTTEXT();
+ add_comment_text("\n", cmt, false);
+ }
+ add_comment_text(" */", cmt, false);
+ return(pc);
+} // output_comment_cpp
+
+
+static void cmt_trim_whitespace(unc_text &line, bool in_preproc)
+{
+ // Remove trailing whitespace on the line
+ while ( line.size() > 0
+ && ( line.back() == ' '
+ || line.back() == '\t'))
+ {
+ line.pop_back();
+ }
+
+ // Shift back to the comment text, ...
+ if ( in_preproc // if in a preproc ...
+ && line.size() > 1 // with a line that holds ...
+ && line.back() == '\\') // a backslash-newline ...
+ {
+ bool do_space = false;
+
+ // If there was any space before the backslash, change it to 1 space
+ line.pop_back();
+
+ while ( line.size() > 0
+ && ( line.back() == ' '
+ || line.back() == '\t'))
+ {
+ do_space = true;
+ line.pop_back();
+ }
+
+ if (do_space)
+ {
+ line.append(' ');
+ }
+ line.append('\\');
+ }
+} // cmt_trim_whitespace
+
+
+/**
+ * Return an indexed-map of reflow fold end of line/beginning of line regex pairs read
+ * from file
+ */
+static std::map<std::size_t, std::pair<std::wregex, std::wregex> > get_reflow_fold_regex_map()
+{
+ /**
+ * TODO: should the following be static to prevent initializing it multiple times?
+ */
+ static std::map<std::size_t, std::pair<std::wregex, std::wregex> > regex_map;
+
+ if (regex_map.empty())
+ {
+ if (!options::cmt_reflow_fold_regex_file().empty())
+ {
+ std::wstring raw_wstring(cpd.reflow_fold_regex.raw.begin(),
+ cpd.reflow_fold_regex.raw.end());
+
+ std::wregex criteria(L"\\s*(?:(?:(beg_of_next)|(end_of_prev))_line_regex)"
+ "\\s*\\[\\s*([0-9]+)\\s*\\]\\s*=\\s*\"(.*)\"\\s*"
+ "(?=\\r\\n|\\r|\\n|$)");
+ std::wsregex_iterator it_regex(raw_wstring.cbegin(), raw_wstring.cend(), criteria);
+ std::wsregex_iterator it_regex_end = std::wsregex_iterator();
+
+ while (it_regex != it_regex_end)
+ {
+ std::wsmatch match = *it_regex;
+
+ if ( (( match[1].matched
+ || match[2].matched))
+ && match[3].matched
+ && match[4].matched)
+ {
+ auto &&index = std::stoi(match[3].str());
+ std::wregex *p_wregex = match[1].matched ? &regex_map[index].second
+ : &regex_map[index].first;
+ *p_wregex = match[4].str();
+ }
+ ++it_regex;
+ }
+ }
+ else
+ {
+ regex_map.emplace(0L, std::make_pair(L"[\\w,\\]\\)]$", L"^[\\w,\\[\\(]"));
+ regex_map.emplace(1L, std::make_pair(L"\\.$", L"^[A-Z]"));
+ }
+ }
+ return(regex_map);
+} // get_reflow_fold_regex_map
+
+
+static void output_comment_multi(Chunk *pc)
+{
+ if (pc == nullptr)
+ {
+ return;
+ }
+ cmt_reflow cmt;
+
+ char copy[1000];
+
+ LOG_FMT(LCONTTEXT, "%s(%d): Text() is '%s', type is %s, orig_col is %zu, column is %zu\n",
+ __func__, __LINE__, pc->ElidedText(copy), get_token_name(pc->type), pc->orig_col, pc->column);
+
+ output_cmt_start(cmt, pc);
+ log_rule_B("cmt_reflow_mode");
+ cmt.reflow = (options::cmt_reflow_mode() != 1);
+
+ size_t cmt_col = cmt.base_col;
+ int col_diff = pc->orig_col - cmt.base_col;
+
+ calculate_comment_body_indent(cmt, pc->str);
+
+ log_rule_B("cmt_indent_multi");
+ log_rule_B("cmt_star_cont");
+ cmt.cont_text = !options::cmt_indent_multi() ? "" :
+ (options::cmt_star_cont() ? "* " : " ");
+ LOG_CONTTEXT();
+
+ std::wstring pc_wstring(pc->str.get().cbegin(),
+ pc->str.get().cend());
+
+ size_t doxygen_javadoc_param_name_indent = 0;
+ size_t doxygen_javadoc_continuation_indent = 0;
+ size_t reflow_paragraph_continuation_indent = 0;
+
+ calculate_doxygen_javadoc_indent_alignment(pc_wstring,
+ doxygen_javadoc_param_name_indent,
+ doxygen_javadoc_continuation_indent);
+
+ size_t line_count = 0;
+ size_t ccol = pc->column; // the col of subsequent comment lines
+ size_t cmt_idx = 0;
+ bool nl_end = false;
+ bool doxygen_javadoc_indent_align = false;
+ unc_text line;
+
+ /*
+ * Get a map of regex pairs that define expressions to match at both the end
+ * of the previous line and the beginning of the next line
+ */
+ auto &&cmt_reflow_regex_map = get_reflow_fold_regex_map();
+
+ line.clear();
+ LOG_FMT(LCONTTEXT, "%s(%d): pc->Len() is %zu\n",
+ __func__, __LINE__, pc->Len());
+ //LOG_FMT(LCONTTEXT, "%s(%d): pc->str is %s\n",
+ // __func__, __LINE__, pc->str.c_str());
+
+ /**
+ * check for enable/disable processing comment strings that may
+ * both be embedded within the same multi-line comment
+ */
+ auto disable_processing_cmt_idx = find_disable_processing_comment_marker(pc->str);
+ auto enable_processing_cmt_idx = find_enable_processing_comment_marker(pc->str);
+
+ while (cmt_idx < pc->Len())
+ {
+ int ch = pc->str[cmt_idx];
+ cmt_idx++;
+
+ if ( cmt_idx > std::size_t(disable_processing_cmt_idx)
+ && enable_processing_cmt_idx > disable_processing_cmt_idx)
+ {
+ auto length = enable_processing_cmt_idx - disable_processing_cmt_idx;
+ unc_text verbatim_text(pc->str,
+ disable_processing_cmt_idx,
+ length);
+
+ add_text(verbatim_text);
+
+ cmt_idx = enable_processing_cmt_idx;
+
+ /**
+ * check for additional enable/disable processing comment strings that may
+ * both be embedded within the same multi-line comment
+ */
+ disable_processing_cmt_idx = find_disable_processing_comment_marker(pc->str,
+ enable_processing_cmt_idx);
+ enable_processing_cmt_idx = find_enable_processing_comment_marker(pc->str,
+ enable_processing_cmt_idx);
+
+ /**
+ * it's probably necessary to reset the line count to prevent line
+ * continuation characters from being added to the end of the current line
+ */
+ line_count = 0;
+ }
+
+ // handle the CRLF and CR endings. convert both to LF
+ if (ch == '\r')
+ {
+ ch = '\n';
+
+ if ( cmt_idx < pc->Len()
+ && pc->str[cmt_idx] == '\n')
+ {
+ cmt_idx++;
+ }
+ }
+
+ // Find the start column
+ if (line.size() == 0)
+ {
+ nl_end = false;
+
+ if (ch == ' ')
+ {
+ ccol++;
+ continue;
+ }
+ else if (ch == '\t')
+ {
+ log_rule_B("input_tab_size");
+ ccol = calc_next_tab_column(ccol, options::input_tab_size());
+ continue;
+ }
+ else
+ {
+ LOG_FMT(LCONTTEXT, "%s(%d):ch is %d, %c\n", __func__, __LINE__, ch, char(ch));
+ }
+ }
+
+ if ( ch == '@'
+ && options::cmt_align_doxygen_javadoc_tags())
+ {
+ int start_idx = cmt_idx - 1;
+ int end_idx = match_doxygen_javadoc_tag(pc_wstring, start_idx);
+
+ if (end_idx > start_idx)
+ {
+ doxygen_javadoc_indent_align = true;
+
+ std::string match(pc->str.get().cbegin() + start_idx,
+ pc->str.get().cbegin() + end_idx);
+
+ match.erase(std::remove_if(match.begin(),
+ match.end(),
+ ::isspace),
+ match.end());
+
+ /**
+ * remove whitespace before the '@'
+ */
+ int line_size_before_indent = line.size();
+
+ while ( line_size_before_indent > 0
+ && unc_isspace(line.back()))
+ {
+ line.pop_back();
+ --line_size_before_indent;
+ }
+ log_rule_B("cmt_sp_before_doxygen_javadoc_tags");
+
+ int indent = options::cmt_sp_before_doxygen_javadoc_tags();
+
+ while (indent-- > 0)
+ {
+ line.append(' ');
+ }
+ cmt_idx += (end_idx - start_idx);
+ line.append(match.c_str());
+
+ bool is_exception_tag = match.find("@exception") != std::string::npos;
+ bool is_param_tag = match.find("@param") != std::string::npos;
+ bool is_throws_tag = match.find("@throws") != std::string::npos;
+
+ if ( is_exception_tag
+ || is_param_tag
+ || is_throws_tag)
+ {
+ indent = int(doxygen_javadoc_param_name_indent) - int(line.size());
+
+ while (indent-- > -line_size_before_indent)
+ {
+ line.append(' ');
+ }
+
+ while (true)
+ {
+ cmt_idx = eat_line_whitespace(pc->str,
+ cmt_idx);
+
+ while ( cmt_idx < pc->Len()
+ && !unc_isspace(pc->str[cmt_idx])
+ && pc->str[cmt_idx] != ',')
+ {
+ line.append(pc->str[cmt_idx++]);
+ }
+
+ if (!is_param_tag)
+ {
+ break;
+ }
+ /**
+ * check for the possibility that comma-separated parameter names are present
+ */
+ cmt_idx = eat_line_whitespace(pc->str,
+ cmt_idx);
+
+ if (pc->str[cmt_idx] != ',')
+ {
+ break;
+ }
+ ++cmt_idx;
+ line.append(", ");
+ }
+ }
+ cmt_idx = eat_line_whitespace(pc->str,
+ cmt_idx);
+ indent = int(doxygen_javadoc_continuation_indent) - int(line.size());
+
+ while (indent-- > -line_size_before_indent)
+ {
+ line.append(' ');
+ }
+
+ while ( cmt_idx < pc->Len()
+ && !unc_isspace(pc->str[cmt_idx]))
+ {
+ line.append(pc->str[cmt_idx++]);
+ }
+ continue;
+ }
+ }
+ /*
+ * Now see if we need/must fold the next line with the current to enable
+ * full reflow
+ */
+ log_rule_B("cmt_reflow_mode");
+
+ if ( options::cmt_reflow_mode() == 2
+ && ch == '\n'
+ && cmt_idx < pc->Len())
+ {
+ int next_nonempty_line = -1;
+ int prev_nonempty_line = -1;
+ size_t nwidx = line.size();
+
+ // strip trailing whitespace from the line collected so far
+ while (nwidx > 0)
+ {
+ nwidx--;
+
+ if ( prev_nonempty_line < 0
+ && !unc_isspace(line[nwidx])
+ && line[nwidx] != '*' // block comment: skip '*' at end of line
+ && (pc->flags.test(PCF_IN_PREPROC)
+ ? ( line[nwidx] != '\\'
+ || ( line[nwidx + 1] != '\r'
+ && line[nwidx + 1] != '\n'))
+ : true))
+ {
+ prev_nonempty_line = nwidx; // last non-whitespace char in the previous line
+ }
+ }
+
+ for (size_t nxt_idx = cmt_idx;
+ ( nxt_idx < pc->Len()
+ && pc->str[nxt_idx] != '\r'
+ && pc->str[nxt_idx] != '\n');
+ nxt_idx++)
+ {
+ if ( next_nonempty_line < 0
+ && !unc_isspace(pc->str[nxt_idx])
+ && pc->str[nxt_idx] != '*'
+ && (pc->flags.test(PCF_IN_PREPROC)
+ ? ( pc->str[nxt_idx] != '\\'
+ || ( pc->str[nxt_idx + 1] != '\r'
+ && pc->str[nxt_idx + 1] != '\n'))
+ : true))
+ {
+ next_nonempty_line = nxt_idx; // first non-whitespace char in the next line
+ }
+ }
+
+ if ( options::cmt_reflow_indent_to_paragraph_start()
+ && next_nonempty_line >= 0
+ && ( prev_nonempty_line <= 0
+ || doxygen_javadoc_indent_align))
+ {
+ log_rule_B("cmt_reflow_indent_to_paragraph_start");
+
+ int cmt_star_indent = 0;
+
+ while ( next_nonempty_line > cmt_star_indent
+ && pc->str[next_nonempty_line - cmt_star_indent - 1] != '*')
+ {
+ ++cmt_star_indent;
+ }
+ reflow_paragraph_continuation_indent = size_t(cmt_star_indent);
+ }
+
+ /*
+ * see if we should fold up; usually that'd be a YES, but there are a few
+ * situations where folding/reflowing by merging lines is frowned upon:
+ *
+ * - ASCII art in the comments (most often, these are drawings done in +-\/|.,*)
+ *
+ * - Doxygen/JavaDoc/etc. parameters: these often start with \ or @, at least
+ * something clearly non-alphanumeric (you see where we're going with this?)
+ *
+ * - bullet lists that are closely spaced: bullets are always non-alphanumeric
+ * characters, such as '-' or '+' (or, oh horror, '*' - that's bloody ambiguous
+ * to parse :-( ... with or without '*' comment start prefix, that's the
+ * question, then.)
+ *
+ * - semi-HTML formatted code, e.g. <pre>...</pre> comment sections (NDoc, etc.)
+ *
+ * - New lines which form a new paragraph without there having been added an
+ * extra empty line between the last sentence and the new one.
+ * A bit like this, really; so it is opportune to check if the last line ended
+ * in a terminal (that would be the set '.:;!?') and the new line starts with
+ * a capital.
+ * Though new lines starting with comment delimiters, such as '(', should be
+ * pulled up.
+ *
+ * So it bores down to this: the only folding (& reflowing) that's going to happen
+ * is when the next line starts with an alphanumeric character AND the last
+ * line didn't end with an non-alphanumeric character, except: ',' AND the next
+ * line didn't start with a '*' all of a sudden while the previous one didn't
+ * (the ambiguous '*'-for-bullet case!)
+ */
+ if ( prev_nonempty_line >= 0
+ && next_nonempty_line >= int(cmt_idx))
+ {
+ std::wstring prev_line(line.get().cbegin(),
+ line.get().cend());
+ std::wstring next_line(pc->str.get().cbegin() + next_nonempty_line,
+ pc->str.get().cend());
+
+ for (auto &&cmt_reflow_regex_map_entry : cmt_reflow_regex_map)
+ {
+ auto &&cmt_reflow_regex_pair = cmt_reflow_regex_map_entry.second;
+ auto &&end_of_prev_line_regex = cmt_reflow_regex_pair.first;
+ auto &&beg_of_next_line_regex = cmt_reflow_regex_pair.second;
+ std::wsmatch match[2];
+
+ if ( std::regex_search(prev_line, match[0], end_of_prev_line_regex)
+ && match[0].position(0) + match[0].length(0) == std::wsmatch::difference_type(line.size())
+ && std::regex_search(next_line, match[1], beg_of_next_line_regex)
+ && match[1].position(0) == 0)
+ {
+ // rewind the line to the last non-alpha:
+ line.resize(prev_nonempty_line + 1);
+
+ // roll the current line forward to the first non-alpha:
+ cmt_idx = next_nonempty_line;
+ // override the NL and make it a single whitespace:
+ ch = ' ';
+
+ break;
+ }
+ }
+ }
+ }
+
+ if (ch == '\n')
+ {
+ LOG_FMT(LCONTTEXT, "%s(%d):ch is newline\n", __func__, __LINE__);
+ }
+ else
+ {
+ LOG_FMT(LCONTTEXT, "%s(%d):ch is %d, %c\n", __func__, __LINE__, ch, char(ch));
+ }
+ line.append(ch);
+
+ // If we just hit an end of line OR we just hit end-of-comment...
+ if ( ch == '\n'
+ || cmt_idx == pc->Len())
+ {
+ if (ch == '\n')
+ {
+ LOG_FMT(LCONTTEXT, "%s(%d):ch is newline\n", __func__, __LINE__);
+ }
+ else
+ {
+ LOG_FMT(LCONTTEXT, "%s(%d):ch is %d, %c\n", __func__, __LINE__, ch, char(ch));
+ }
+ line_count++;
+ LOG_FMT(LCONTTEXT, "%s(%d):line_count is %zu\n", __func__, __LINE__, line_count);
+
+ // strip trailing tabs and spaces before the newline
+ if (ch == '\n')
+ {
+ nl_end = true;
+ line.pop_back();
+ cmt_trim_whitespace(line, pc->flags.test(PCF_IN_PREPROC));
+ }
+
+ if (line_count == 1)
+ {
+ // this is the first line - add unchanged
+ add_comment_text(line, cmt, false);
+
+ if (nl_end)
+ {
+ add_char('\n');
+ }
+ }
+ else
+ {
+ /*
+ * This is not the first line, so we need to indent to the
+ * correct column. Each line is indented 0 or more spaces.
+ */
+ // Ensure ccol is not negative
+ if (static_cast<int>(ccol) >= col_diff)
+ {
+ ccol -= col_diff;
+ }
+
+ if (ccol < (cmt_col + 3))
+ {
+ ccol = cmt_col + 3;
+ }
+
+ if (line.size() == 0)
+ {
+ // Empty line - just a '\n'
+ log_rule_B("cmt_star_cont");
+
+ if (options::cmt_star_cont())
+ {
+ // The number of spaces to insert at the start of subsequent comment lines.
+ log_rule_B("cmt_sp_before_star_cont");
+ cmt.column = cmt_col + options::cmt_sp_before_star_cont();
+ cmt_output_indent(cmt.brace_col, cmt.base_col, cmt.column);
+
+ if (cmt.xtra_indent > 0)
+ {
+ add_char(' ');
+ }
+ // multiline comments can have empty lines with some spaces in them for alignment
+ // while adding * symbol and aligning them we don't want to keep these trailing spaces
+ unc_text tmp = unc_text(cmt.cont_text);
+ cmt_trim_whitespace(tmp, false);
+ add_text(tmp);
+ }
+ add_char('\n');
+ }
+ else
+ {
+ /*
+ * If this doesn't start with a '*' or '|'.
+ * '\name' is a common parameter documentation thing.
+ */
+ log_rule_B("cmt_indent_multi");
+
+ if ( options::cmt_indent_multi()
+ && line[0] != '*'
+ && line[0] != '|'
+ && line[0] != '#'
+ && ( line[0] != '\\'
+ || unc_isalpha(line[1]))
+ && line[0] != '+')
+ {
+ // The number of spaces to insert at the start of subsequent comment lines.
+ log_rule_B("cmt_sp_before_star_cont");
+ size_t start_col = cmt_col + options::cmt_sp_before_star_cont();
+
+ log_rule_B("cmt_star_cont");
+
+ if (options::cmt_star_cont())
+ {
+ cmt.column = start_col;
+ cmt_output_indent(cmt.brace_col, cmt.base_col, cmt.column);
+
+ if (cmt.xtra_indent > 0)
+ {
+ add_char(' ');
+ }
+ add_text(cmt.cont_text);
+ // The number of spaces to insert after the star on subsequent comment lines.
+ log_rule_B("cmt_sp_after_star_cont");
+ output_to_column(ccol + options::cmt_sp_after_star_cont(), false);
+ }
+ else
+ {
+ cmt.column = ccol;
+ cmt_output_indent(cmt.brace_col, cmt.base_col, cmt.column);
+ }
+ }
+ else
+ {
+ // The number of spaces to insert at the start of subsequent comment lines.
+ log_rule_B("cmt_sp_before_star_cont");
+ cmt.column = cmt_col + options::cmt_sp_before_star_cont();
+ cmt_output_indent(cmt.brace_col, cmt.base_col, cmt.column);
+
+ if (cmt.xtra_indent > 0)
+ {
+ add_char(' ');
+ }
+ size_t idx;
+
+ // Checks for and updates the lead chars.
+ // @return 0=not present, >0=number of chars that are part of the lead
+ idx = cmt_parse_lead(line, (cmt_idx == pc->Len()));
+
+ if (idx > 0)
+ {
+ // >0=number of chars that are part of the lead
+ cmt.cont_text.set(line, 0, idx);
+ LOG_CONTTEXT();
+
+ if ( (line.size() >= 2)
+ && (line[0] == '*')
+ && unc_isalnum(line[1]))
+ {
+ line.insert(1, ' ');
+ }
+ }
+ else
+ {
+ // bug #653
+ if (language_is_set(LANG_D))
+ {
+ // 0=no lead char present
+ add_text(cmt.cont_text);
+ }
+ }
+ }
+ size_t continuation_indent = 0;
+
+ if (doxygen_javadoc_indent_align)
+ {
+ continuation_indent = doxygen_javadoc_continuation_indent;
+ }
+ else if (reflow_paragraph_continuation_indent > 0)
+ {
+ continuation_indent = reflow_paragraph_continuation_indent;
+ }
+ add_comment_text(line,
+ cmt,
+ false,
+ continuation_indent);
+
+ if (nl_end)
+ {
+ add_text("\n");
+ }
+ }
+ }
+ line.clear();
+ doxygen_javadoc_indent_align = false;
+ ccol = 1;
+ }
+ }
+} // output_comment_multi
+
+
+static bool kw_fcn_filename(Chunk *cmt, unc_text &out_txt)
+{
+ UNUSED(cmt);
+ out_txt.append(path_basename(cpd.filename.c_str()));
+ return(true);
+}
+
+
+static bool kw_fcn_class(Chunk *cmt, unc_text &out_txt)
+{
+ Chunk *tmp = nullptr;
+
+ if (language_is_set(LANG_CPP | LANG_OC))
+ {
+ Chunk *fcn = get_next_function(cmt);
+
+ if (chunk_is_token(fcn, CT_OC_MSG_DECL))
+ {
+ tmp = get_prev_oc_class(cmt);
+ }
+ else
+ {
+ tmp = get_next_class(cmt);
+ }
+ }
+ else if (language_is_set(LANG_OC))
+ {
+ tmp = get_prev_oc_class(cmt);
+ }
+
+ if (tmp == nullptr)
+ {
+ tmp = get_next_class(cmt);
+ }
+
+ if (tmp != nullptr)
+ {
+ out_txt.append(tmp->str);
+
+ while ((tmp = tmp->GetNext())->IsNotNullChunk())
+ {
+ if (tmp->type != CT_DC_MEMBER)
+ {
+ break;
+ }
+ tmp = tmp->GetNext();
+
+ if (tmp->IsNotNullChunk())
+ {
+ out_txt.append("::");
+ out_txt.append(tmp->str);
+ }
+ }
+ return(true);
+ }
+ return(false);
+} // kw_fcn_class
+
+
+static bool kw_fcn_message(Chunk *cmt, unc_text &out_txt)
+{
+ Chunk *fcn = get_next_function(cmt);
+
+ if (fcn == nullptr)
+ {
+ return(false);
+ }
+ out_txt.append(fcn->str);
+
+ Chunk *tmp = fcn->GetNextNcNnl();
+ Chunk *word = Chunk::NullChunkPtr;
+
+ while (tmp->IsNotNullChunk())
+ {
+ if ( chunk_is_token(tmp, CT_BRACE_OPEN)
+ || chunk_is_token(tmp, CT_SEMICOLON))
+ {
+ break;
+ }
+
+ if (chunk_is_token(tmp, CT_OC_COLON))
+ {
+ if (word->IsNotNullChunk())
+ {
+ out_txt.append(word->str);
+ word = Chunk::NullChunkPtr;
+ }
+ out_txt.append(":");
+ }
+
+ if (chunk_is_token(tmp, CT_WORD))
+ {
+ word = tmp;
+ }
+ tmp = tmp->GetNextNcNnl();
+ }
+ return(true);
+} // kw_fcn_message
+
+
+static bool kw_fcn_category(Chunk *cmt, unc_text &out_txt)
+{
+ Chunk *category = get_prev_category(cmt);
+
+ if (category)
+ {
+ out_txt.append('(');
+ out_txt.append(category->str);
+ out_txt.append(')');
+ }
+ return(true);
+} // kw_fcn_category
+
+
+static bool kw_fcn_scope(Chunk *cmt, unc_text &out_txt)
+{
+ Chunk *scope = get_next_scope(cmt);
+
+ if (scope)
+ {
+ out_txt.append(scope->str);
+ return(true);
+ }
+ return(false);
+} // kw_fcn_scope
+
+
+static bool kw_fcn_function(Chunk *cmt, unc_text &out_txt)
+{
+ Chunk *fcn = get_next_function(cmt);
+
+ if (fcn)
+ {
+ if (get_chunk_parent_type(fcn) == CT_OPERATOR)
+ {
+ out_txt.append("operator ");
+ }
+
+ if ( fcn->prev != nullptr
+ && fcn->prev->type == CT_DESTRUCTOR)
+ {
+ out_txt.append('~');
+ }
+ out_txt.append(fcn->str);
+ return(true);
+ }
+ return(false);
+}
+
+
+static bool kw_fcn_javaparam(Chunk *cmt, unc_text &out_txt)
+{
+ Chunk *fcn = get_next_function(cmt);
+
+ if (fcn == nullptr)
+ {
+ return(false);
+ }
+ Chunk *fpo;
+ Chunk *fpc;
+ bool has_param = true;
+ bool need_nl = false;
+
+ if (chunk_is_token(fcn, CT_OC_MSG_DECL))
+ {
+ Chunk *tmp = fcn->GetNextNcNnl();
+ has_param = false;
+
+ while (tmp->IsNotNullChunk())
+ {
+ if ( chunk_is_token(tmp, CT_BRACE_OPEN)
+ || chunk_is_token(tmp, CT_SEMICOLON))
+ {
+ break;
+ }
+
+ if (has_param)
+ {
+ if (need_nl)
+ {
+ out_txt.append("\n");
+ }
+ need_nl = true;
+ out_txt.append("@param");
+ out_txt.append(" ");
+ out_txt.append(tmp->str);
+ out_txt.append(" TODO");
+ }
+ has_param = false;
+
+ if (chunk_is_token(tmp, CT_PAREN_CLOSE))
+ {
+ has_param = true;
+ }
+ tmp = tmp->GetNextNcNnl();
+ }
+ fpo = fpc = Chunk::NullChunkPtr;
+ }
+ else
+ {
+ fpo = fcn->GetNextType(CT_FPAREN_OPEN, fcn->level);
+
+ if (fpo->IsNullChunk())
+ {
+ return(true);
+ }
+ fpc = fpo->GetNextType(CT_FPAREN_CLOSE, fcn->level);
+
+ if (fpc->IsNullChunk())
+ {
+ return(true);
+ }
+ }
+ Chunk *tmp;
+
+ // Check for 'foo()' and 'foo(void)'
+ if (fpo->IsNotNullChunk())
+ {
+ if (fpo->GetNextNcNnl() == fpc)
+ {
+ has_param = false;
+ }
+ else
+ {
+ tmp = fpo->GetNextNcNnl();
+
+ if ( (tmp == fpc->GetPrevNcNnl())
+ && chunk_is_str(tmp, "void"))
+ {
+ has_param = false;
+ }
+ }
+ }
+
+ if (has_param)
+ {
+ Chunk *prev = Chunk::NullChunkPtr;
+ tmp = fpo;
+
+ while ((tmp = tmp->GetNext())->IsNotNullChunk())
+ {
+ if ( chunk_is_token(tmp, CT_COMMA)
+ || tmp == fpc)
+ {
+ if (need_nl)
+ {
+ out_txt.append("\n");
+ }
+ need_nl = true;
+ out_txt.append("@param");
+
+ if (prev->IsNotNullChunk())
+ {
+ out_txt.append(" ");
+ out_txt.append(prev->str);
+ out_txt.append(" TODO");
+ }
+ prev = Chunk::NullChunkPtr;
+
+ if (tmp == fpc)
+ {
+ break;
+ }
+ }
+
+ if (chunk_is_token(tmp, CT_WORD))
+ {
+ prev = tmp;
+ }
+ }
+ }
+ // Do the return stuff
+ tmp = fcn->GetPrevNcNnl();
+
+ // For Objective-C we need to go to the previous chunk
+ if ( tmp->IsNotNullChunk()
+ && get_chunk_parent_type(tmp) == CT_OC_MSG_DECL
+ && chunk_is_token(tmp, CT_PAREN_CLOSE))
+ {
+ tmp = tmp->GetPrevNcNnl();
+ }
+
+ if ( tmp->IsNotNullChunk()
+ && !chunk_is_str(tmp, "void"))
+ {
+ if (need_nl)
+ {
+ out_txt.append("\n");
+ }
+ out_txt.append("@return TODO");
+ }
+ return(true);
+} // kw_fcn_javaparam
+
+
+static bool kw_fcn_fclass(Chunk *cmt, unc_text &out_txt)
+{
+ Chunk *fcn = get_next_function(cmt);
+
+ if (!fcn)
+ {
+ return(false);
+ }
+
+ if (fcn->flags.test(PCF_IN_CLASS))
+ {
+ // if inside a class, we need to find to the class name
+ Chunk *tmp = fcn->GetPrevType(CT_BRACE_OPEN, fcn->level - 1);
+ tmp = tmp->GetPrevType(CT_CLASS, tmp->level);
+
+ if (tmp->IsNullChunk())
+ {
+ tmp = Chunk::NullChunkPtr;
+ }
+ else
+ {
+ tmp = tmp->GetNextNcNnl();
+ }
+
+ while ( tmp->IsNotNullChunk()
+ && chunk_is_token(tmp->GetNextNcNnl(), CT_DC_MEMBER))
+ {
+ tmp = tmp->GetNextNcNnl();
+ tmp = tmp->GetNextNcNnl();
+ }
+
+ if (tmp->IsNotNullChunk())
+ {
+ out_txt.append(tmp->str);
+ return(true);
+ }
+ }
+ else
+ {
+ // if outside a class, we expect "CLASS::METHOD(...)"
+ Chunk *tmp = fcn->GetPrevNcNnl();
+
+ if (chunk_is_token(tmp, CT_OPERATOR))
+ {
+ tmp = tmp->GetPrevNcNnl();
+ }
+
+ if ( tmp->IsNotNullChunk()
+ && ( chunk_is_token(tmp, CT_DC_MEMBER)
+ || chunk_is_token(tmp, CT_MEMBER)))
+ {
+ tmp = tmp->GetPrevNcNnl();
+ out_txt.append(tmp->str);
+ return(true);
+ }
+ }
+ return(false);
+} // kw_fcn_fclass
+
+
+static bool kw_fcn_year(Chunk *cmt, unc_text &out_txt)
+{
+ UNUSED(cmt);
+ time_t now = time(nullptr);
+
+ out_txt.append(std::to_string(1900 + localtime(&now)->tm_year));
+ return(true);
+}
+
+
+struct kw_subst_t
+{
+ const char *tag;
+ bool (*func)(Chunk *cmt, unc_text &out_txt);
+};
+
+
+static const kw_subst_t kw_subst_table[] =
+{
+ { "$(filename)", kw_fcn_filename },
+ { "$(class)", kw_fcn_class },
+ { "$(message)", kw_fcn_message },
+ { "$(category)", kw_fcn_category },
+ { "$(scope)", kw_fcn_scope },
+ { "$(function)", kw_fcn_function },
+ { "$(javaparam)", kw_fcn_javaparam },
+ { "$(fclass)", kw_fcn_fclass },
+ { "$(year)", kw_fcn_year },
+};
+
+
+static void do_kw_subst(Chunk *pc)
+{
+ for (const auto &kw : kw_subst_table)
+ {
+ int idx = pc->str.find(kw.tag);
+
+ if (idx < 0)
+ {
+ continue;
+ }
+ unc_text tmp_txt;
+ tmp_txt.clear();
+
+ if (kw.func(pc, tmp_txt))
+ {
+ // if the replacement contains '\n' we need to fix the lead
+ if (tmp_txt.find("\n") >= 0)
+ {
+ size_t nl_idx = pc->str.rfind("\n", idx);
+
+ if (nl_idx > 0)
+ {
+ // idx and nl_idx are both positive
+ unc_text nl_txt;
+ nl_txt.append("\n");
+ nl_idx++;
+
+ while ( (nl_idx < static_cast<size_t>(idx))
+ && !unc_isalnum(pc->str[nl_idx]))
+ {
+ nl_txt.append(pc->str[nl_idx++]);
+ }
+ tmp_txt.replace("\n", nl_txt);
+ }
+ }
+ pc->str.replace(kw.tag, tmp_txt);
+ }
+ }
+} // do_kw_subst
+
+
+static void output_comment_multi_simple(Chunk *pc)
+{
+ if ( pc == nullptr
+ && pc->IsNotNullChunk())
+ {
+ return;
+ }
+ cmt_reflow cmt;
+
+ LOG_FMT(LCONTTEXT, "%s(%d): Text() is '%s', type is %s, orig_col is %zu, column is %zu\n",
+ __func__, __LINE__, pc->Text(), get_token_name(pc->type), pc->orig_col, pc->column);
+
+ output_cmt_start(cmt, pc);
+
+ // The multiline comment is saved inside one chunk. If the comment is
+ // shifted all lines of the comment need to be shifted by the same amount.
+ // Save the difference of initial and current position to apply it on every
+ // line_column
+ const int col_diff = [pc]()
+ {
+ int diff = 0;
+
+ if (chunk_is_newline(pc->GetPrev()))
+ {
+ // The comment should be indented correctly
+ diff = pc->column - pc->orig_col;
+ }
+ return(diff);
+ }();
+
+ /**
+ * check for enable/disable processing comment strings that may
+ * both be embedded within the same multi-line comment
+ */
+ auto disable_processing_cmt_idx = find_disable_processing_comment_marker(pc->str);
+ auto enable_processing_cmt_idx = find_enable_processing_comment_marker(pc->str);
+
+ unc_text line;
+ size_t line_count = 0;
+ size_t line_column = pc->column;
+ size_t cmt_idx = 0;
+
+ while (cmt_idx < pc->Len())
+ {
+ int ch = pc->str[cmt_idx];
+ cmt_idx++;
+
+ if ( cmt_idx > std::size_t(disable_processing_cmt_idx)
+ && enable_processing_cmt_idx > disable_processing_cmt_idx)
+ {
+ auto length = enable_processing_cmt_idx - disable_processing_cmt_idx;
+ unc_text verbatim_text(pc->str,
+ disable_processing_cmt_idx,
+ length);
+
+ add_text(verbatim_text);
+
+ cmt_idx = enable_processing_cmt_idx;
+
+ /**
+ * check for additional enable/disable processing comment strings that may
+ * both be embedded within the same multi-line comment
+ */
+ disable_processing_cmt_idx = find_disable_processing_comment_marker(pc->str,
+ enable_processing_cmt_idx);
+ enable_processing_cmt_idx = find_enable_processing_comment_marker(pc->str,
+ enable_processing_cmt_idx);
+
+ line.clear();
+
+ continue;
+ }
+ // 1: step through leading tabs and spaces to find the start column
+ log_rule_B("cmt_convert_tab_to_spaces");
+
+ if ( line.size() == 0
+ && ( line_column < cmt.base_col
+ || options::cmt_convert_tab_to_spaces()))
+ {
+ if (ch == ' ')
+ {
+ line_column++;
+ continue;
+ }
+ else if (ch == '\t')
+ {
+ log_rule_B("input_tab_size");
+ line_column = calc_next_tab_column(line_column, options::input_tab_size());
+ continue;
+ }
+ else
+ {
+ LOG_FMT(LCONTTEXT, "%s(%d):ch is %d, %c\n", __func__, __LINE__, ch, char(ch));
+ }
+ }
+
+ // 2: add chars to line, handle the CRLF and CR endings (convert both to LF)
+ if (ch == '\r')
+ {
+ ch = '\n';
+
+ if ( (cmt_idx < pc->Len())
+ && (pc->str[cmt_idx] == '\n'))
+ {
+ cmt_idx++;
+ }
+ }
+ LOG_FMT(LCONTTEXT, "%s(%d):Line is %s\n", __func__, __LINE__, line.c_str());
+ line.append(ch);
+ LOG_FMT(LCONTTEXT, "%s(%d):Line is %s\n", __func__, __LINE__, line.c_str());
+
+ // If we just hit an end of line OR we just hit end-of-comment...
+ if ( ch == '\n'
+ || cmt_idx == pc->Len())
+ {
+ line_count++;
+ LOG_FMT(LCONTTEXT, "%s(%d):line_count is %zu\n", __func__, __LINE__, line_count);
+
+ // strip trailing tabs and spaces before the newline
+ if (ch == '\n')
+ {
+ line.pop_back();
+
+ // Say we aren't in a preproc to prevent changing any bs-nl
+ cmt_trim_whitespace(line, false);
+
+ line.append('\n');
+ }
+
+ if (line.size() > 0)
+ {
+ // unless line contains only a single newline char, indent if the
+ // line consists of either:
+ if ( line.size() > 1 // more than a single newline char or
+ || ch != '\n') // (end-of-comment) a single non newline char
+ {
+ if (line_count > 1)
+ {
+ // apply comment column shift without underflowing
+ line_column = ( col_diff < 0
+ && (cast_abs(line_column, col_diff) > line_column))
+ ? 0 : line_column + col_diff;
+ }
+ cmt.column = line_column;
+ cmt_output_indent(cmt.brace_col, cmt.base_col, cmt.column);
+ }
+ add_text(line);
+
+ line.clear();
+ }
+ line_column = 1;
+ }
+ }
+} // output_comment_multi_simple
+
+
+static void generate_if_conditional_as_text(unc_text &dst, Chunk *ifdef)
+{
+ int column = -1;
+
+ dst.clear();
+
+ for (Chunk *pc = ifdef; pc != nullptr && pc->IsNotNullChunk(); pc = pc->GetNext())
+ {
+ if (column == -1)
+ {
+ column = pc->column;
+ }
+
+ if ( chunk_is_token(pc, CT_NEWLINE)
+ || chunk_is_token(pc, CT_COMMENT_MULTI)
+ || chunk_is_token(pc, CT_COMMENT_CPP))
+ {
+ break;
+ }
+ else if (chunk_is_token(pc, CT_NL_CONT))
+ {
+ dst += ' ';
+ column = -1;
+ }
+ else if ( chunk_is_token(pc, CT_COMMENT)
+ || chunk_is_token(pc, CT_COMMENT_EMBED))
+ {
+ }
+ else // if (chunk_is_token(pc, CT_JUNK)) || else
+ {
+ for (int spacing = pc->column - column; spacing > 0; spacing--)
+ {
+ dst += ' ';
+ column++;
+ }
+
+ dst.append(pc->str);
+ column += pc->Len();
+ }
+ }
+} // generate_if_conditional_as_text
+
+
+void add_long_preprocessor_conditional_block_comment(void)
+{
+ Chunk *pp_start = nullptr;
+ Chunk *pp_end = nullptr;
+
+ for (Chunk *pc = Chunk::GetHead(); pc->IsNotNullChunk(); pc = pc->GetNextNcNnl())
+ {
+ // just track the preproc level:
+ if (chunk_is_token(pc, CT_PREPROC))
+ {
+ pp_end = pp_start = pc;
+ }
+
+ if ( pc->type != CT_PP_IF
+ || !pp_start)
+ {
+ continue;
+ }
+#if 0
+ if (pc->flags.test(PCF_IN_PREPROC))
+ {
+ continue;
+ }
+#endif
+
+ Chunk *br_close;
+ Chunk *br_open = pc;
+ size_t nl_count = 0;
+
+ Chunk *tmp = pc;
+
+ while ((tmp = tmp->GetNext())->IsNotNullChunk())
+ {
+ // just track the preproc level:
+ if (chunk_is_token(tmp, CT_PREPROC))
+ {
+ pp_end = tmp;
+ }
+
+ if (chunk_is_newline(tmp))
+ {
+ nl_count += tmp->nl_count;
+ }
+ else if ( pp_end->pp_level == pp_start->pp_level
+ && ( chunk_is_token(tmp, CT_PP_ENDIF)
+ || ((chunk_is_token(br_open, CT_PP_IF)) ? (chunk_is_token(tmp, CT_PP_ELSE)) : 0)))
+ {
+ br_close = tmp;
+
+ LOG_FMT(LPPIF, "found #if / %s section on lines %zu and %zu, nl_count=%zu\n",
+ (chunk_is_token(tmp, CT_PP_ENDIF) ? "#endif" : "#else"),
+ br_open->orig_line, br_close->orig_line, nl_count);
+
+ // Found the matching #else or #endif - make sure a newline is next
+ tmp = tmp->GetNext();
+
+ LOG_FMT(LPPIF, "next item type %d (is %s)\n",
+ (tmp ? tmp->type : -1), (tmp ? chunk_is_newline(tmp) ? "newline"
+ : tmp->IsComment() ? "comment" : "other" : "---"));
+
+ if ( tmp->IsNullChunk()
+ || chunk_is_token(tmp, CT_NEWLINE)) // chunk_is_newline(tmp))
+ {
+ size_t nl_min;
+
+ if (chunk_is_token(br_close, CT_PP_ENDIF))
+ {
+ log_rule_B("mod_add_long_ifdef_endif_comment");
+ nl_min = options::mod_add_long_ifdef_endif_comment();
+ }
+ else
+ {
+ log_rule_B("mod_add_long_ifdef_else_comment");
+ nl_min = options::mod_add_long_ifdef_else_comment();
+ }
+ const char *txt = !tmp ? "EOF" : ((chunk_is_token(tmp, CT_PP_ENDIF)) ? "#endif" : "#else");
+ LOG_FMT(LPPIF, "#if / %s section candidate for augmenting when over NL threshold %zu != 0 (nl_count=%zu)\n",
+ txt, nl_min, nl_count);
+
+ if ( nl_min > 0
+ && nl_count > nl_min) // nl_count is 1 too large at all times as #if line was counted too
+ {
+ // determine the added comment style
+ E_Token style = (language_is_set(LANG_CPP)) ?
+ CT_COMMENT_CPP : CT_COMMENT;
+
+ unc_text str;
+ generate_if_conditional_as_text(str, br_open);
+
+ LOG_FMT(LPPIF, "#if / %s section over threshold %zu (nl_count=%zu) --> insert comment after the %s: %s\n",
+ txt, nl_min, nl_count, txt, str.c_str());
+
+ // Add a comment after the close brace
+ insert_comment_after(br_close, style, str);
+ }
+ }
+
+ // checks both the #else and #endif for a given level, only then look further in the main loop
+ if (chunk_is_token(br_close, CT_PP_ENDIF))
+ {
+ break;
+ }
+ }
+ }
+ }
+} // add_long_preprocessor_conditional_block_comment
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/output.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/output.h
index b3e685d9..b3e685d9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/output.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/output.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/parameter_pack_cleanup.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/parameter_pack_cleanup.cpp
new file mode 100644
index 00000000..7b81175a
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/parameter_pack_cleanup.cpp
@@ -0,0 +1,67 @@
+/**
+ * @file parameter_pack_cleanup.cpp
+ *
+ * @author Guy Maurel
+ * @license GPL v2+
+ */
+
+#include "parameter_pack_cleanup.h"
+
+#include "chunk.h"
+
+
+void parameter_pack_cleanup(void)
+{
+ LOG_FUNC_ENTRY();
+
+ Chunk *pc = Chunk::GetHead();
+
+ while (pc->IsNotNullChunk())
+ {
+ 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 *template_end = pc->GetNextType(CT_SEMICOLON, pc->level);
+
+ // look for a parameter pack
+ while (pc->IsNotNullChunk())
+ {
+ 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 *parameter_pack = pc;
+
+ // look for a token with the same text
+ while (pc->IsNotNullChunk())
+ {
+ 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 (pc == template_end)
+ {
+ break;
+ }
+
+ if (strcmp(pc->Text(), parameter_pack->Text()) == 0)
+ {
+ set_chunk_type(pc, CT_PARAMETER_PACK);
+ }
+ pc = pc->GetNext();
+ }
+ }
+ pc = pc->GetNext();
+
+ if (pc == template_end)
+ {
+ break;
+ }
+ }
+ }
+ pc = pc->GetNext();
+ }
+} // parameter_pack_cleanup
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/parameter_pack_cleanup.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/parameter_pack_cleanup.h
index 97ff6b17..97ff6b17 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/parameter_pack_cleanup.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/parameter_pack_cleanup.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/parens.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/parens.cpp
new file mode 100644
index 00000000..64f65f50
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/parens.cpp
@@ -0,0 +1,349 @@
+/**
+ * @file parens.cpp
+ * Adds or removes parens.
+ *
+ * @author Ben Gardner
+ * @license GPL v2+
+ */
+
+#include "parens.h"
+
+#include "log_rules.h"
+
+using namespace uncrustify;
+
+
+//! Add an open parenthesis after first and add a close parenthesis before the last
+static void add_parens_between(Chunk *first, Chunk *last);
+
+
+/**
+ * Scans between two parens and adds additional parens if needed.
+ * This function is recursive. If it hits another open paren, it'll call itself
+ * with the new bounds.
+ *
+ * Adds optional parens in an IF or SWITCH conditional statement.
+ *
+ * This basically just checks for a CT_COMPARE that isn't surrounded by parens.
+ * The edges for the compare are the open, close and any CT_BOOL tokens.
+ *
+ * This only handles VERY simple patterns:
+ * (!a && b) => (!a && b) -- no change
+ * (a && b == 1) => (a && (b == 1))
+ * (a == 1 || b > 2) => ((a == 1) || (b > 2))
+ *
+ * FIXME: we really should bail if we transition between a preprocessor and
+ * a non-preprocessor
+ */
+static void check_bool_parens(Chunk *popen, Chunk *pclose, int nest);
+
+
+void do_parens(void)
+{
+ constexpr static auto LCURRENT = LPARADD;
+
+ LOG_FUNC_ENTRY();
+
+ log_rule_B("mod_full_paren_if_bool");
+
+ if (options::mod_full_paren_if_bool())
+ {
+ Chunk *pc = Chunk::GetHead();
+
+ while ( (pc = pc->GetNextNcNnl()) != nullptr
+ && pc->IsNotNullChunk())
+ {
+ if ( pc->type != CT_SPAREN_OPEN
+ || ( get_chunk_parent_type(pc) != CT_IF
+ && get_chunk_parent_type(pc) != CT_ELSEIF
+ && get_chunk_parent_type(pc) != CT_SWITCH))
+ {
+ continue;
+ }
+ // Grab the close sparen
+ Chunk *pclose = pc->GetNextType(CT_SPAREN_CLOSE, pc->level, E_Scope::PREPROC);
+
+ if (pclose->IsNotNullChunk())
+ {
+ check_bool_parens(pc, pclose, 0);
+ pc = pclose;
+ }
+ }
+ }
+} // do_parens
+
+
+void do_parens_assign(void) // Issue #3316
+{
+ constexpr static auto LCURRENT = LPARADD;
+
+ LOG_FUNC_ENTRY();
+
+ log_rule_B("mod_full_paren_assign_bool");
+
+ if (options::mod_full_paren_assign_bool())
+ {
+ Chunk *pc = Chunk::GetHead();
+
+ while ( (pc = pc->GetNextNcNnl()) != nullptr
+ && pc->IsNotNullChunk())
+ {
+ if (chunk_is_token(pc, CT_ASSIGN))
+ {
+ LOG_FMT(LPARADD, "%s(%d): orig_line is %zu, text is '%s', level is %zu\n",
+ __func__, __LINE__, pc->orig_line, pc->Text(), pc->level);
+ // look before for a open sparen
+ size_t check_level = pc->level;
+ Chunk *p = pc->GetPrevNc(E_Scope::PREPROC);
+
+ while (p->IsNotNullChunk())
+ {
+ LOG_FMT(LPARADD, "%s(%d): orig_line is %zu, text is '%s', level is %zu, type is %s\n",
+ __func__, __LINE__, p->orig_line, p->Text(), p->level, get_token_name(p->type));
+
+ //log_pcf_flags(LPARADD, p->flags);
+ if (p->flags.test(PCF_STMT_START))
+ {
+ break;
+ }
+
+ if (chunk_is_token(p, CT_PAREN_OPEN))
+ {
+ check_level--;
+ }
+
+ if (chunk_is_token(p, CT_SPAREN_OPEN))
+ {
+ break;
+ }
+ p = p->GetPrevNc(E_Scope::PREPROC);
+
+ if (p->level < check_level - 1)
+ {
+ break;
+ }
+ }
+ LOG_FMT(LPARADD, "%s(%d): orig_line is %zu, text is '%s', level is %zu, type is %s\n",
+ __func__, __LINE__, p->orig_line, p->Text(), p->level, get_token_name(p->type));
+
+ if (get_chunk_parent_type(p) == CT_WHILE)
+ {
+ continue;
+ }
+ // Grab the semicolon
+ Chunk *semicolon = pc->GetNextType(CT_SEMICOLON, pc->level, E_Scope::PREPROC);
+
+ if (semicolon->IsNotNullChunk())
+ {
+ check_bool_parens(pc, semicolon, 0);
+ pc = semicolon;
+ }
+ }
+ }
+ }
+} // do_parens_assign
+
+
+void do_parens_return(void) // Issue #3316
+{
+ constexpr static auto LCURRENT = LPARADD;
+
+ LOG_FUNC_ENTRY();
+
+ log_rule_B("mod_full_paren_return_bool");
+
+ if (options::mod_full_paren_return_bool())
+ {
+ Chunk *pc = Chunk::GetHead();
+
+ while ( (pc = pc->GetNextNcNnl()) != nullptr
+ && pc->IsNotNullChunk())
+ {
+ if (chunk_is_token(pc, CT_RETURN))
+ {
+ LOG_FMT(LPARADD, "%s(%d): orig_line is %zu, text is '%s', level is %zu\n",
+ __func__, __LINE__, pc->orig_line, pc->Text(), pc->level);
+ // look before for a open sparen
+ size_t check_level = pc->level;
+ Chunk *p = pc->GetPrevNc(E_Scope::PREPROC);
+
+ while (p->IsNotNullChunk())
+ {
+ LOG_FMT(LPARADD, "%s(%d): orig_line is %zu, text is '%s', level is %zu, type is %s\n",
+ __func__, __LINE__, p->orig_line, p->Text(), p->level, get_token_name(p->type));
+
+ //log_pcf_flags(LPARADD, p->flags);
+ if (p->flags.test(PCF_STMT_START))
+ {
+ break;
+ }
+
+ if (chunk_is_token(p, CT_PAREN_OPEN))
+ {
+ check_level--;
+ }
+
+ if (chunk_is_token(p, CT_SPAREN_OPEN))
+ {
+ break;
+ }
+ p = p->GetPrevNc(E_Scope::PREPROC);
+
+ if (p->level < check_level - 1)
+ {
+ break;
+ }
+ }
+ LOG_FMT(LPARADD, "%s(%d): orig_line is %zu, text is '%s', level is %zu, type is %s\n",
+ __func__, __LINE__, p->orig_line, p->Text(), p->level, get_token_name(p->type));
+
+ if (get_chunk_parent_type(p) == CT_WHILE)
+ {
+ continue;
+ }
+ // Grab the semicolon
+ Chunk *semicolon = pc->GetNextType(CT_SEMICOLON, pc->level, E_Scope::PREPROC);
+
+ if (semicolon->IsNotNullChunk())
+ {
+ check_bool_parens(pc, semicolon, 0);
+ pc = semicolon;
+ }
+ }
+ }
+ }
+} // do_parens_return
+
+
+static void add_parens_between(Chunk *first, Chunk *last)
+{
+ LOG_FUNC_ENTRY();
+
+ LOG_FMT(LPARADD, "%s(%d): line %zu, between '%s' [lvl is %zu] and '%s' [lvl is %zu]\n",
+ __func__, __LINE__, first->orig_line,
+ first->Text(), first->level,
+ last->Text(), last->level);
+
+ // Don't do anything if we have a bad sequence, ie "&& )"
+ Chunk *first_n = first->GetNextNcNnl();
+
+ if (first_n == last)
+ {
+ return;
+ }
+ Chunk pc;
+
+ set_chunk_type(&pc, CT_PAREN_OPEN);
+ pc.orig_line = first_n->orig_line;
+ pc.orig_col = first_n->orig_col;
+ pc.str = "(";
+ pc.flags = first_n->flags & PCF_COPY_FLAGS;
+ pc.level = first_n->level;
+ pc.pp_level = first_n->pp_level;
+ pc.brace_level = first_n->brace_level;
+
+ chunk_add_before(&pc, first_n);
+
+ Chunk *last_p = last->GetPrevNcNnl(E_Scope::PREPROC);
+
+ set_chunk_type(&pc, CT_PAREN_CLOSE);
+ pc.orig_line = last_p->orig_line;
+ pc.orig_col = last_p->orig_col;
+ pc.str = ")";
+ pc.flags = last_p->flags & PCF_COPY_FLAGS;
+ pc.level = last_p->level;
+ pc.pp_level = last_p->pp_level;
+ pc.brace_level = last_p->brace_level;
+
+ chunk_add_after(&pc, last_p);
+
+ for (Chunk *tmp = first_n;
+ tmp != last_p;
+ tmp = tmp->GetNextNcNnl())
+ {
+ tmp->level++;
+ }
+
+ last_p->level++;
+} // add_parens_between
+
+
+static void check_bool_parens(Chunk *popen, Chunk *pclose, int nest)
+{
+ LOG_FUNC_ENTRY();
+
+ Chunk *ref = popen;
+ bool hit_compare = false;
+
+ LOG_FMT(LPARADD, "%s(%d): nest is %d, popen on line %zu, orig_col is %zu, pclose on line %zu, orig_col is %zu, level is %zu\n",
+ __func__, __LINE__, nest,
+ popen->orig_line, popen->orig_col,
+ pclose->orig_line, pclose->orig_col,
+ popen->level);
+
+ Chunk *pc = popen;
+
+ while ( (pc = pc->GetNextNcNnl()) != nullptr
+ && pc->IsNotNullChunk()
+ && pc != pclose)
+ {
+ if (pc->flags.test(PCF_IN_PREPROC))
+ {
+ LOG_FMT(LPARADD2, " -- bail on PP %s [%s] at line %zu col %zu, level %zu\n",
+ get_token_name(pc->type),
+ pc->Text(), pc->orig_line, pc->orig_col, pc->level);
+ return;
+ }
+
+ if ( chunk_is_token(pc, CT_BOOL)
+ || chunk_is_token(pc, CT_QUESTION)
+ || chunk_is_token(pc, CT_COND_COLON)
+ || chunk_is_token(pc, CT_COMMA))
+ {
+ LOG_FMT(LPARADD2, " -- %s [%s] at line %zu col %zu, level %zu\n",
+ get_token_name(pc->type),
+ pc->Text(), pc->orig_line, pc->orig_col, pc->level);
+
+ if (hit_compare)
+ {
+ hit_compare = false;
+
+ if (!language_is_set(LANG_CS))
+ {
+ add_parens_between(ref, pc);
+ }
+ }
+ ref = pc;
+ }
+ else if (chunk_is_token(pc, CT_COMPARE))
+ {
+ LOG_FMT(LPARADD2, " -- compare '%s' at line %zu, orig_col is %zu, level is %zu\n",
+ pc->Text(), pc->orig_line, pc->orig_col, pc->level);
+ hit_compare = true;
+ }
+ else if (chunk_is_paren_open(pc))
+ {
+ Chunk *next = chunk_skip_to_match(pc);
+
+ if (next != nullptr)
+ {
+ check_bool_parens(pc, next, nest + 1);
+ pc = next;
+ }
+ }
+ else if ( chunk_is_token(pc, CT_BRACE_OPEN)
+ || chunk_is_token(pc, CT_SQUARE_OPEN)
+ || chunk_is_token(pc, CT_ANGLE_OPEN))
+ {
+ // Skip [], {}, and <>
+ pc = chunk_skip_to_match(pc);
+ }
+ }
+
+ if ( hit_compare
+ && ref != popen
+ && !language_is_set(LANG_CS))
+ {
+ add_parens_between(ref, pclose);
+ }
+} // check_bool_parens
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/parens.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/parens.h
new file mode 100644
index 00000000..0c961529
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/parens.h
@@ -0,0 +1,24 @@
+/**
+ * @file parens.h
+ * prototypes for parens.c
+ *
+ * @author Ben Gardner
+ * @license GPL v2+
+ */
+#ifndef PARENS_H_INCLUDED
+#define PARENS_H_INCLUDED
+
+#include "uncrustify_types.h"
+
+
+//! add parenthesis
+void do_parens(void);
+
+
+void do_parens_assign(void);
+
+
+void do_parens_return(void);
+
+
+#endif /* PARENS_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/parent_for_pp.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/parent_for_pp.cpp
new file mode 100644
index 00000000..3ed93ef2
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/parent_for_pp.cpp
@@ -0,0 +1,54 @@
+/**
+ * @file parent_for_pp.cpp
+ *
+ * @author Guy Maurel
+ * @license GPL v2+
+ */
+
+#include "parent_for_pp.h"
+
+#include "chunk.h"
+
+
+void do_parent_for_pp(void)
+{
+ LOG_FUNC_ENTRY();
+
+ vector<Chunk *> viz;
+
+ Chunk *pc = Chunk::GetHead()->GetNextNcNnl();
+
+ while (pc->IsNotNullChunk())
+ {
+ // CT_PP_IF, // #if, #ifdef, or #ifndef
+ // CT_PP_ELSE, // #else or #elif
+ // CT_PP_ENDIF, // #endif
+ if (chunk_is_token(pc, CT_PP_IF))
+ {
+ LOG_FMT(LMCB, "%s(%d): IF: orig_line %zu, orig_col is %zu\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col);
+ log_pcf_flags(LMCB, pc->flags);
+ viz.push_back(pc);
+ }
+ else if (chunk_is_token(pc, CT_PP_ELSE))
+ {
+ LOG_FMT(LMCB, "%s(%d): ELSE: orig_line %zu, orig_col is %zu\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col);
+ log_pcf_flags(LMCB, pc->flags);
+ size_t level = pc->pp_level;
+ Chunk *a = viz.at(level - 1);
+ chunk_set_parent(pc, a);
+ }
+ else if (chunk_is_token(pc, CT_PP_ENDIF))
+ {
+ LOG_FMT(LMCB, "%s(%d): ENDIF: orig_line %zu, orig_col is %zu\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col);
+ log_pcf_flags(LMCB, pc->flags);
+ size_t level = pc->pp_level;
+ Chunk *a = viz.at(level);
+ chunk_set_parent(pc, a);
+ viz.pop_back();
+ }
+ pc = pc->GetNextNcNnl();
+ }
+} // do_parent_for_pp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/parent_for_pp.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/parent_for_pp.h
index cb069680..cb069680 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/parent_for_pp.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/parent_for_pp.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/pcf_flags.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/pcf_flags.cpp
index 0a22bf72..0a22bf72 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/pcf_flags.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/pcf_flags.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/pcf_flags.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/pcf_flags.h
new file mode 100644
index 00000000..f0c7bbd5
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/pcf_flags.h
@@ -0,0 +1,96 @@
+/**
+ * @file pcf_flags.h
+ *
+ * @author Guy Maurel
+ * @license GPL v2+
+ */
+
+#ifndef PCF_FLAGS_STR_INCLUDED
+#define PCF_FLAGS_STR_INCLUDED
+
+#include "enum_flags.h"
+#include "logger.h"
+
+// and the ever-so-important array size macro
+#ifndef ARRAY_SIZE
+#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
+#endif
+
+using namespace std;
+
+
+constexpr auto pcf_bit(size_t b) -> decltype(0ULL)
+{
+ return(1ULL << b);
+}
+
+enum pcf_flag_e : decltype ( 0ULL )
+{
+// Copy flags are in the lower 17 bits
+ PCF_NONE = 0ULL,
+ PCF_COPY_FLAGS = 0x0001ffffULL,
+ PCF_IN_PREPROC = pcf_bit(0), //! in a preprocessor
+ PCF_IN_STRUCT = pcf_bit(1), //! in a struct
+ PCF_IN_ENUM = pcf_bit(2), //! in enum
+ PCF_IN_FCN_DEF = pcf_bit(3), //! inside function def parens
+ PCF_IN_FCN_CALL = pcf_bit(4), //! inside function call parens
+ PCF_IN_SPAREN = pcf_bit(5), //! inside for/if/while/switch parens
+ PCF_IN_TEMPLATE = pcf_bit(6),
+ PCF_IN_TYPEDEF = pcf_bit(7),
+ PCF_IN_CONST_ARGS = pcf_bit(8),
+ PCF_IN_ARRAY_ASSIGN = pcf_bit(9),
+ PCF_IN_CLASS = pcf_bit(10),
+ PCF_IN_CLASS_BASE = pcf_bit(11),
+ PCF_IN_NAMESPACE = pcf_bit(12),
+ PCF_IN_FOR = pcf_bit(13),
+ PCF_IN_OC_MSG = pcf_bit(14),
+ PCF_IN_WHERE_SPEC = pcf_bit(15), /* inside C# 'where' constraint clause on class or function def */
+ PCF_IN_DECLTYPE = pcf_bit(16),
+
+// Non-Copy flags are in the upper 47 bits
+ PCF_FORCE_SPACE = pcf_bit(17), //! must have a space after this token
+ PCF_STMT_START = pcf_bit(18), //! marks the start of a statement
+ PCF_EXPR_START = pcf_bit(19),
+ PCF_DONT_INDENT = pcf_bit(20), //! already aligned!
+ PCF_ALIGN_START = pcf_bit(21),
+ PCF_WAS_ALIGNED = pcf_bit(22),
+ PCF_VAR_TYPE = pcf_bit(23), //! part of a variable def type
+ PCF_VAR_DEF = pcf_bit(24), //! variable name in a variable def
+ PCF_VAR_1ST = pcf_bit(25), //! 1st variable def in a statement
+ PCF_VAR_1ST_DEF = (PCF_VAR_DEF | PCF_VAR_1ST),
+ PCF_VAR_INLINE = pcf_bit(26), //! type was an inline struct/enum/union
+ PCF_RIGHT_COMMENT = pcf_bit(27),
+ PCF_OLD_FCN_PARAMS = pcf_bit(28),
+ PCF_LVALUE = pcf_bit(29), //! left of assignment
+ PCF_ONE_LINER = pcf_bit(30),
+ PCF_ONE_CLASS = (PCF_ONE_LINER | PCF_IN_CLASS),
+ PCF_EMPTY_BODY = pcf_bit(31),
+ PCF_ANCHOR = pcf_bit(32), //! aligning anchor
+ PCF_PUNCTUATOR = pcf_bit(33),
+ PCF_INSERTED = pcf_bit(34), //! chunk was inserted from another file
+ PCF_LONG_BLOCK = pcf_bit(35), //! the block is 'long' by some measure
+ PCF_OC_BOXED = pcf_bit(36), //! inside OC boxed expression
+ PCF_KEEP_BRACE = pcf_bit(37), //! do not remove brace
+ PCF_OC_RTYPE = pcf_bit(38), //! inside OC return type
+ PCF_OC_ATYPE = pcf_bit(39), //! inside OC arg type
+ PCF_WF_ENDIF = pcf_bit(40), //! #endif for whole file ifdef
+ PCF_IN_QT_MACRO = pcf_bit(41), //! in a QT-macro, i.e. SIGNAL, SLOT
+ PCF_IN_FCN_CTOR = pcf_bit(42), //! inside function constructor
+ PCF_IN_TRY_BLOCK = pcf_bit(43), //! inside Function-try-block
+ PCF_INCOMPLETE = pcf_bit(44), //! class/struct forward declaration
+ PCF_IN_LAMBDA = pcf_bit(45), //! inside a lambda expression
+ PCF_WF_IF = pcf_bit(46), //! #if for a whole file ifdef
+ PCF_NOT_POSSIBLE = pcf_bit(47), //! it is not possible to make an one_liner
+ //! because the line would be too long
+};
+
+UNC_DECLARE_FLAGS(pcf_flags_t, pcf_flag_e);
+UNC_DECLARE_OPERATORS_FOR_FLAGS(pcf_flags_t);
+
+std::string pcf_flags_str(pcf_flags_t flags);
+
+
+void log_pcf_flags(log_sev_t sev, pcf_flags_t flags);
+
+
+#endif /* PCF_FLAGS_STR_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/prototypes.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/prototypes.h
new file mode 100644
index 00000000..55fe35b6
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/prototypes.h
@@ -0,0 +1,64 @@
+/**
+ * @file prototypes.h
+ * Big jumble of prototypes used in Uncrustify.
+ *
+ * @author Ben Gardner
+ * @license GPL v2+
+ */
+
+#ifndef C_PARSE_PROTOTYPES_H_INCLUDED
+#define C_PARSE_PROTOTYPES_H_INCLUDED
+
+#include "chunk.h"
+#include "log_rules.h"
+#include "uncrustify_types.h"
+
+#include <deque>
+#include <string>
+
+
+/**
+ * Advances to the next tab stop.
+ * Column 1 is the left-most column.
+ *
+ * @param col The current column
+ * @param tabsize The tabsize
+ * @return the next tabstop column
+ */
+static inline size_t calc_next_tab_column(size_t col, size_t tabsize)
+{
+ if (col == 0)
+ {
+ col = 1;
+ }
+
+ if (cpd.frag_cols > 0)
+ {
+ col += cpd.frag_cols - 1;
+ }
+ col = 1 + ((((col - 1) / tabsize) + 1) * tabsize);
+
+ if (cpd.frag_cols > 0)
+ {
+ col -= cpd.frag_cols - 1;
+ }
+ return(col);
+}
+
+
+/**
+ * Advances to the next tab stop for output.
+ *
+ * @param col The current column
+ * @return the next tabstop column
+ */
+static inline size_t next_tab_column(size_t col)
+{
+ constexpr static auto LCURRENT = LINDENT;
+
+ log_rule_B("output_tab_size");
+ return(calc_next_tab_column(col, uncrustify::options::output_tab_size()));
+}
+
+
+#endif /* C_PARSE_PROTOTYPES_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/punctuators.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/punctuators.cpp
index 6c9c41f4..6c9c41f4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/punctuators.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/punctuators.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/punctuators.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/punctuators.h
index ed4c3fa5..ed4c3fa5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/punctuators.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/punctuators.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/quick_align_again.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/quick_align_again.cpp
new file mode 100644
index 00000000..45dd3943
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/quick_align_again.cpp
@@ -0,0 +1,53 @@
+/**
+ * @file quick_align_again.cpp
+ *
+ * @author Guy Maurel
+ * split from align.cpp
+ * @author Ben Gardner
+ * @license GPL v2+
+ */
+
+#include "quick_align_again.h"
+
+#include "align_stack.h"
+#include "chunk.h"
+
+
+void quick_align_again(void)
+{
+ LOG_FUNC_ENTRY();
+
+ for (Chunk *pc = Chunk::GetHead(); pc->IsNotNullChunk(); pc = pc->GetNext())
+ {
+ char copy[1000];
+ LOG_FMT(LALAGAIN, "%s(%d): orig_line is %zu, orig_col is %zu, column is %zu, Text() '%s'\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->column, pc->ElidedText(copy));
+
+ if ( pc->align.next != nullptr
+ && pc->flags.test(PCF_ALIGN_START))
+ {
+ AlignStack as;
+ as.Start(100, 0);
+ as.m_right_align = pc->align.right_align;
+ as.m_star_style = static_cast<AlignStack::StarStyle>(pc->align.star_style);
+ as.m_amp_style = static_cast<AlignStack::StarStyle>(pc->align.amp_style);
+ as.m_gap = pc->align.gap;
+
+ LOG_FMT(LALAGAIN, "%s(%d): pc->Text() is '%s', orig_line is %zu\n",
+ __func__, __LINE__, pc->Text(), pc->orig_line);
+ as.Add(pc->align.start);
+ chunk_flags_set(pc, PCF_WAS_ALIGNED);
+
+ for (Chunk *tmp = pc->align.next; tmp != nullptr; tmp = tmp->align.next)
+ {
+ chunk_flags_set(tmp, PCF_WAS_ALIGNED);
+ as.Add(tmp->align.start);
+ LOG_FMT(LALAGAIN, "%s(%d): => tmp->Text() is '%s', orig_line is %zu\n",
+ __func__, __LINE__, tmp->Text(), tmp->orig_line);
+ }
+
+ LOG_FMT(LALAGAIN, "\n");
+ as.End();
+ }
+ }
+} // quick_align_again
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/quick_align_again.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/quick_align_again.h
index b31a450a..b31a450a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/quick_align_again.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/quick_align_again.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/remove_duplicate_include.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/remove_duplicate_include.cpp
new file mode 100644
index 00000000..90cf0abb
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/remove_duplicate_include.cpp
@@ -0,0 +1,94 @@
+/**
+ * @file remove_duplicate_include.cpp
+ *
+ * @author Guy Maurel
+ * October 2015, 2016
+ * @license GPL v2+
+ */
+
+#include "remove_duplicate_include.h"
+
+#include "chunk.h"
+#include "uncrustify.h"
+
+using std::vector;
+
+
+void remove_duplicate_include(void)
+{
+ LOG_FUNC_ENTRY();
+
+ vector<Chunk *> includes;
+
+ Chunk *preproc = Chunk::NullChunkPtr;
+ Chunk *pc = Chunk::GetHead();
+
+ while (pc->IsNotNullChunk())
+ {
+ //LOG_FMT(LRMRETURN, "%s(%d): orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s, parent_type is %s\n",
+ // __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(),
+ // get_token_name(pc->type), get_token_name(pc->parent_type));
+
+ if (chunk_is_token(pc, CT_PREPROC))
+ {
+ preproc = pc;
+ }
+ else if (chunk_is_token(pc, CT_PP_INCLUDE))
+ {
+ Chunk *next = pc->GetNext();
+
+ //LOG_FMT(LRMRETURN, "%s(%d): orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s, parent_type is %s\n",
+ // __func__, __LINE__, next->orig_line, next->orig_col, next->Text(),
+ // get_token_name(next->type), get_token_name(next->parent_type));
+ if (includes.empty())
+ {
+ includes.push_back(next);
+ // goto next newline
+ pc = next->GetNextNl();
+ }
+ else
+ {
+ //LOG_FMT(LRMRETURN, "%s(%d): size is %zu\n",
+ // __func__, __LINE__, includes.size());
+ // look for duplicate
+ auto ite = includes.end();
+
+ for (auto itc = includes.begin(); itc != ite; ++itc)
+ {
+ Chunk *current = *itc;
+
+ //LOG_FMT(LRMRETURN, "%s(%d): next->Text() is '%s'\n",
+ // __func__, __LINE__, next->Text());
+ //LOG_FMT(LRMRETURN, "%s(%d): current->Text() is '%s'\n",
+ // __func__, __LINE__, current->Text());
+ if (std::strcmp(next->Text(), current->Text()) == 0)
+ {
+ // erase the statement
+ Chunk *temp = pc;
+ Chunk *comment = next->GetNext();
+ Chunk *eol = next->GetNextNl();
+ pc = preproc->GetPrev();
+ chunk_del(preproc);
+ chunk_del(temp);
+ chunk_del(next);
+
+ if (comment != eol)
+ {
+ chunk_del(comment);
+ }
+ chunk_del(eol);
+ break;
+ }
+ else
+ {
+ // goto next newline
+ pc = next->GetNextNl();
+ // and still look for duplicate
+ }
+ } // for (auto itc = includes.begin();
+ } // if (includes.empty())
+ } // else if (chunk_is_token(pc, CT_PP_INCLUDE))
+ // get the next token
+ pc = pc->GetNext();
+ }
+} // remove_duplicate_include
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/remove_duplicate_include.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/remove_duplicate_include.h
new file mode 100644
index 00000000..a7ade094
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/remove_duplicate_include.h
@@ -0,0 +1,20 @@
+/**
+ * @file remove_duplicate_include.h
+ * prototypes for remove_duplicate_include.cpp
+ *
+ * @author Guy Maurel
+ * @license GPL v2+
+ */
+
+#ifndef REMOVE_DUPLICATE_INCLUDE_H_INCLUDED
+#define REMOVE_DUPLICATE_INCLUDE_H_INCLUDED
+
+#include "chunk.h"
+
+/**
+ * @brief Remove duplicate include
+ */
+void remove_duplicate_include(void);
+
+
+#endif /* REMOVE_DUPLICATE_INCLUDE_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/remove_extra_returns.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/remove_extra_returns.cpp
new file mode 100644
index 00000000..6fe4d6f0
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/remove_extra_returns.cpp
@@ -0,0 +1,84 @@
+/**
+ * @file remove_extra_returns.cpp
+ *
+ * @author Guy Maurel
+ * October 2015, 2016
+ * @license GPL v2+
+ * extract from combine.cpp
+ */
+
+#include "remove_extra_returns.h"
+
+#include "chunk.h"
+#include "uncrustify.h"
+
+
+void remove_extra_returns(void)
+{
+ LOG_FUNC_ENTRY();
+
+ Chunk *pc = Chunk::GetHead();
+
+ while (pc->IsNotNullChunk())
+ {
+ LOG_FMT(LRMRETURN, "%s(%d): orig_line is %zu, orig_col is %zu, Text() is '%s', type is %s, parent_type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(),
+ get_token_name(pc->type), get_token_name(pc->parent_type));
+
+ if ( chunk_is_token(pc, CT_RETURN)
+ && !pc->flags.test(PCF_IN_PREPROC))
+ {
+ // we might be in a class, check it Issue #2705
+ // look for a closing brace
+ bool remove_it = false;
+ Chunk *closing_brace = pc->GetNextType(CT_BRACE_CLOSE, 1);
+ LOG_FMT(LRMRETURN, "%s(%d): on orig_line %zu, level is %zu\n",
+ __func__, __LINE__, pc->orig_line, pc->level);
+
+ if (closing_brace->IsNotNullChunk())
+ {
+ if (get_chunk_parent_type(closing_brace) == CT_FUNC_CLASS_DEF)
+ {
+ // we have a class. Do nothing
+ }
+ else if ( get_chunk_parent_type(closing_brace) == CT_FUNC_DEF
+ && pc->level < 2)
+ {
+ remove_it = true;
+ }
+ }
+ else
+ {
+ // it is not a class
+ // look for a closing brace
+ closing_brace = pc->GetNextType(CT_BRACE_CLOSE, 0);
+ LOG_FMT(LRMRETURN, "%s(%d): on orig_line %zu, level is %zu\n",
+ __func__, __LINE__, pc->orig_line, pc->level);
+
+ if (closing_brace->IsNotNullChunk())
+ {
+ if (get_chunk_parent_type(closing_brace) == CT_FUNC_DEF)
+ {
+ remove_it = true;
+ }
+ }
+ }
+
+ if (remove_it)
+ {
+ Chunk *semicolon = pc->GetNextNcNnl();
+
+ if ( semicolon->IsNotNullChunk()
+ && chunk_is_token(semicolon, CT_SEMICOLON))
+ {
+ LOG_FMT(LRMRETURN, "%s(%d): Removed 'return;' on orig_line %zu\n",
+ __func__, __LINE__, pc->orig_line);
+ chunk_del(pc);
+ chunk_del(semicolon);
+ pc = closing_brace;
+ }
+ }
+ }
+ pc = pc->GetNext();
+ }
+} // remove_extra_returns
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/remove_extra_returns.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/remove_extra_returns.h
index df0974c9..df0974c9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/remove_extra_returns.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/remove_extra_returns.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/semicolons.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/semicolons.cpp
new file mode 100644
index 00000000..6f78099c
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/semicolons.cpp
@@ -0,0 +1,125 @@
+/**
+ * @file semicolons.cpp
+ * Removes extra semicolons
+ *
+ * @author Ben Gardner
+ * @license GPL v2+
+ */
+
+#include "semicolons.h"
+
+#include "prototypes.h"
+
+
+static void remove_semicolon(Chunk *pc);
+
+
+/**
+ * We are on a semicolon that is after an unidentified brace close.
+ * Check for what is before the brace open.
+ * Do not remove if it is a square close, word, type, or paren close.
+ */
+static void check_unknown_brace_close(Chunk *semi, Chunk *brace_close);
+
+
+static void remove_semicolon(Chunk *pc)
+{
+ LOG_FUNC_ENTRY();
+ LOG_FMT(LDELSEMI, "%s(%d): Removed semicolon: orig_line is %zu, orig_col is %zu",
+ __func__, __LINE__, pc->orig_line, pc->orig_col);
+ log_func_stack_inline(LDELSEMI);
+ // TODO: do we want to shift stuff back a column?
+ chunk_del(pc);
+}
+
+
+void remove_extra_semicolons(void)
+{
+ LOG_FUNC_ENTRY();
+
+ Chunk *pc = Chunk::GetHead();
+
+ while (pc->IsNotNullChunk())
+ {
+ Chunk *next = pc->GetNextNcNnl();
+ Chunk *prev;
+
+ if ( chunk_is_token(pc, CT_SEMICOLON)
+ && !pc->flags.test(PCF_IN_PREPROC)
+ && (prev = pc->GetPrevNcNnl())->IsNotNullChunk())
+ {
+ LOG_FMT(LSCANSEMI, "%s(%d): Semi orig_line is %zu, orig_col is %zu, parent is %s, prev = '%s' [%s/%s]\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, get_token_name(get_chunk_parent_type(pc)),
+ prev->Text(),
+ get_token_name(prev->type), get_token_name(get_chunk_parent_type(prev)));
+
+ if (get_chunk_parent_type(pc) == CT_TYPEDEF)
+ {
+ // keep it
+ }
+ else if ( chunk_is_token(prev, CT_BRACE_CLOSE)
+ && ( get_chunk_parent_type(prev) == CT_IF
+ || get_chunk_parent_type(prev) == CT_ELSEIF
+ || get_chunk_parent_type(prev) == CT_ELSE
+ || get_chunk_parent_type(prev) == CT_SWITCH
+ || get_chunk_parent_type(prev) == CT_WHILE
+ || get_chunk_parent_type(prev) == CT_USING_STMT
+ || get_chunk_parent_type(prev) == CT_FOR
+ || get_chunk_parent_type(prev) == CT_FUNC_DEF
+ || get_chunk_parent_type(prev) == CT_OC_MSG_DECL
+ || get_chunk_parent_type(prev) == CT_FUNC_CLASS_DEF
+ || get_chunk_parent_type(prev) == CT_NAMESPACE))
+ {
+ remove_semicolon(pc);
+ }
+ else if ( chunk_is_token(prev, CT_BRACE_CLOSE)
+ && get_chunk_parent_type(prev) == CT_NONE)
+ {
+ check_unknown_brace_close(pc, prev);
+ }
+ else if ( chunk_is_token(prev, CT_SEMICOLON)
+ && get_chunk_parent_type(prev) != CT_FOR)
+ {
+ remove_semicolon(pc);
+ }
+ else if ( language_is_set(LANG_D)
+ && ( get_chunk_parent_type(prev) == CT_ENUM
+ || get_chunk_parent_type(prev) == CT_UNION
+ || get_chunk_parent_type(prev) == CT_STRUCT))
+ {
+ remove_semicolon(pc);
+ }
+ else if ( language_is_set(LANG_JAVA)
+ && get_chunk_parent_type(prev) == CT_SYNCHRONIZED)
+ {
+ remove_semicolon(pc);
+ }
+ else if (chunk_is_token(prev, CT_BRACE_OPEN))
+ {
+ remove_semicolon(pc);
+ }
+ }
+ pc = next;
+ }
+} // remove_extra_semicolons
+
+
+static void check_unknown_brace_close(Chunk *semi, Chunk *brace_close)
+{
+ LOG_FUNC_ENTRY();
+ Chunk *pc = brace_close->GetPrevType(CT_BRACE_OPEN, brace_close->level);
+
+ pc = pc->GetPrevNcNnl();
+
+ if ( pc->IsNotNullChunk()
+ && pc->type != CT_RETURN
+ && pc->type != CT_WORD
+ && pc->type != CT_TYPE
+ && pc->type != CT_SQUARE_CLOSE
+ && pc->type != CT_ANGLE_CLOSE
+ && pc->type != CT_TSQUARE
+ && !chunk_is_paren_close(pc))
+ {
+ remove_semicolon(semi);
+ }
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/semicolons.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/semicolons.h
index c0542a76..c0542a76 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/semicolons.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/semicolons.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/sorting.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/sorting.cpp
new file mode 100644
index 00000000..888569f2
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/sorting.cpp
@@ -0,0 +1,700 @@
+/**
+ * @file sorting.cpp
+ * Sorts chunks and imports
+ *
+ * @author Ben Gardner
+ * @license GPL v2+
+ */
+
+#include "sorting.h"
+
+#include "newlines.h"
+#include "prototypes.h"
+
+#include <regex>
+
+constexpr static auto LCURRENT = LSORT;
+
+using namespace uncrustify;
+
+Option<std::string> *include_category_options[] =
+{
+ &options::include_category_0,
+ &options::include_category_1,
+ &options::include_category_2,
+};
+constexpr static int kIncludeCategoriesCount = 3;
+
+
+struct include_category
+{
+ include_category(const std::string &pattern)
+ : regex(pattern)
+ {
+ }
+ std::regex regex;
+};
+
+
+include_category *include_categories[kIncludeCategoriesCount];
+
+
+/**
+ * Compare two series of chunks, starting with the given ones.
+ * @param pc1 first instance to compare
+ * @param pc2 second instance to compare
+ * @param tcare take care of case (lower case/ upper case) Issue #2091
+ *
+ * @retval == 0 both text elements are equal
+ * @retval > 0
+ * @retval < 0
+ */
+static int compare_chunks(Chunk *pc1, Chunk *pc2, bool tcare = false);
+
+
+/**
+ * Sorting should be pretty rare and should usually only include a few chunks.
+ * We need to minimize the number of swaps, as those are expensive.
+ * So, we do a min sort.
+ */
+static void do_the_sort(Chunk **chunks, size_t num_chunks);
+
+
+#define MARK_CHANGE() mark_change(__func__, __LINE__)
+
+
+static void mark_change(const char *func, size_t line)
+{
+ LOG_FUNC_ENTRY();
+ cpd.changes++;
+
+ if (cpd.pass_count == 0)
+ {
+ LOG_FMT(LCHANGE, "%s(%d): change %d on %s:%zu\n",
+ __func__, __LINE__, cpd.changes, func, line);
+ }
+}
+
+
+static void prepare_categories()
+{
+ for (int i = 0; i < kIncludeCategoriesCount; ++i)
+ {
+ const auto &cat_pattern = (*include_category_options[i])();
+
+ if (!cat_pattern.empty())
+ {
+ include_categories[i] = new include_category(cat_pattern);
+ }
+ else
+ {
+ include_categories[i] = nullptr;
+ }
+ }
+}
+
+
+static void cleanup_categories()
+{
+ for (auto &include_category : include_categories)
+ {
+ if (include_category == nullptr)
+ {
+ continue;
+ }
+ delete include_category;
+ include_category = NULL;
+ }
+}
+
+
+static int get_chunk_priority(Chunk *pc)
+{
+ for (int i = 0; i < kIncludeCategoriesCount; i++)
+ {
+ if (include_categories[i] != nullptr)
+ {
+ if (std::regex_match(pc->Text(), include_categories[i]->regex))
+ {
+ return(i);
+ }
+ }
+ }
+
+ return(kIncludeCategoriesCount);
+}
+
+
+/**
+ * Returns true if the text contains filename without extension.
+ */
+static bool text_contains_filename_without_ext(const char *text)
+{
+ std::string filepath = cpd.filename;
+ size_t slash_idx = filepath.find_last_of("/\\");
+ std::string filename_without_ext = filepath;
+
+ if ( slash_idx != std::string::npos
+ && slash_idx < (filepath.size() - 1))
+ {
+ std::string filename = filepath.substr(slash_idx + 1);
+ size_t dot_idx = filename.find_last_of('.');
+ filename_without_ext = filename.substr(0, dot_idx);
+ }
+ const std::regex special_chars = std::regex(R"([-[\]{}()*+?.,\^$|#\s])");
+ const std::string sanitized_filename = std::regex_replace(filename_without_ext, special_chars, R"(\$&)");
+ const std::regex filename_pattern = std::regex("\\S?" + sanitized_filename + "\\b.*");
+
+ return(std::regex_match(text, filename_pattern));
+}
+
+
+/**
+ * Get chunk text without the extension.
+ */
+static unc_text get_text_without_ext(const unc_text &chunk_text)
+{
+ unc_text result = chunk_text;
+ int idx = result.rfind(".", result.size() - 1);
+
+ if (idx == -1)
+ {
+ return(result);
+ }
+ result.erase(idx, result.size() - idx);
+ return(result);
+}
+
+
+/**
+ * Returns true if unc_text has "." which implies extension.
+ */
+static bool has_dot(const unc_text &chunk_text)
+{
+ int idx = chunk_text.rfind(".", chunk_text.size() - 1);
+
+ return(idx != -1);
+}
+
+
+/**
+ * Returns chunk string required for sorting.
+ */
+static unc_text chunk_sort_str(Chunk *pc)
+{
+ if (get_chunk_parent_type(pc) == CT_PP_INCLUDE)
+ {
+ return(unc_text{ pc->str, 0, pc->Len() - 1 });
+ }
+ return(pc->str);
+}
+
+
+//! Compare two chunks
+static int compare_chunks(Chunk *pc1, Chunk *pc2, bool tcare)
+{
+ LOG_FUNC_ENTRY();
+ LOG_FMT(LSORT, "%s(%d): @begin pc1->len is %zu, line is %zu, column is %zu\n",
+ __func__, __LINE__, pc1->Len(), pc1->orig_line, pc1->orig_col);
+ LOG_FMT(LSORT, "%s(%d): @begin pc2->len is %zu, line is %zu, column is %zu\n",
+ __func__, __LINE__, pc2->Len(), pc2->orig_line, pc2->orig_col);
+
+ if (pc1 == pc2) // same chunk is always identical thus return 0 differences
+ {
+ return(0);
+ }
+
+ while ( pc1->IsNotNullChunk()
+ && pc2->IsNotNullChunk())
+ {
+ auto const &s1_ext = chunk_sort_str(pc1);
+ auto const &s2_ext = chunk_sort_str(pc2);
+
+ log_rule_B("mod_sort_incl_import_ignore_extension");
+ auto const &s1 = (options::mod_sort_incl_import_ignore_extension()) ? get_text_without_ext(s1_ext) : s1_ext;
+ auto const &s2 = (options::mod_sort_incl_import_ignore_extension()) ? get_text_without_ext(s2_ext) : s2_ext;
+ log_rule_B("mod_sort_incl_import_prioritize_filename");
+
+ if (options::mod_sort_incl_import_prioritize_filename())
+ {
+ bool s1_contains_filename = text_contains_filename_without_ext(s1.c_str());
+ bool s2_contains_filename = text_contains_filename_without_ext(s2.c_str());
+
+ if ( s1_contains_filename
+ && !s2_contains_filename)
+ {
+ return(-1);
+ }
+ else if ( !s1_contains_filename
+ && s2_contains_filename)
+ {
+ return(1);
+ }
+ }
+
+ if (options::mod_sort_incl_import_prioritize_extensionless())
+ {
+ log_rule_B("mod_sort_incl_import_prioritize_extensionless");
+ const bool s1_has_dot = has_dot(s1_ext);
+ const bool s2_has_dot = has_dot(s2_ext);
+
+ if ( s1_has_dot
+ && !s2_has_dot)
+ {
+ return(1);
+ }
+ else if ( !s1_has_dot
+ && s2_has_dot)
+ {
+ return(-1);
+ }
+ }
+
+ if (options::mod_sort_incl_import_prioritize_angle_over_quotes())
+ {
+ log_rule_B("mod_sort_incl_import_prioritize_angle_over_quotes");
+
+ if ( s1.startswith("<")
+ && s2.startswith("\""))
+ {
+ return(-1);
+ }
+ else if ( s1.startswith("\"")
+ && s2.startswith("<"))
+ {
+ return(1);
+ }
+ }
+ int ppc1 = get_chunk_priority(pc1);
+ int ppc2 = get_chunk_priority(pc2);
+
+ if (ppc1 != ppc2)
+ {
+ return(ppc1 - ppc2);
+ }
+ LOG_FMT(LSORT, "%s(%d): text is %s, pc1->len is %zu, line is %zu, column is %zu\n",
+ __func__, __LINE__, pc1->Text(), pc1->Len(), pc1->orig_line, pc1->orig_col);
+ LOG_FMT(LSORT, "%s(%d): text is %s, pc2->len is %zu, line is %zu, column is %zu\n",
+ __func__, __LINE__, pc2->Text(), pc2->Len(), pc2->orig_line, pc2->orig_col);
+
+ int ret_val = unc_text::compare(s1, s2, std::min(s1.size(), s2.size()), tcare);
+ LOG_FMT(LSORT, "%s(%d): ret_val is %d\n",
+ __func__, __LINE__, ret_val);
+
+ if (ret_val != 0)
+ {
+ return(ret_val);
+ }
+
+ if (pc1->Len() != pc2->Len())
+ {
+ return(pc1->Len() - pc2->Len());
+ }
+ // Same word, same length. Step to the next chunk.
+ pc1 = pc1->GetNext();
+ LOG_FMT(LSORT, "%s(%d): text is %s, pc1->len is %zu, line is %zu, column is %zu\n",
+ __func__, __LINE__, pc1->Text(), pc1->Len(), pc1->orig_line, pc1->orig_col);
+
+ if (chunk_is_token(pc1, CT_MEMBER))
+ {
+ pc1 = pc1->GetNext();
+ LOG_FMT(LSORT, "%s(%d): text is %s, pc1->len is %zu, line is %zu, column is %zu\n",
+ __func__, __LINE__, pc1->Text(), pc1->Len(), pc1->orig_line, pc1->orig_col);
+ }
+ pc2 = pc2->GetNext();
+ LOG_FMT(LSORT, "%s(%d): text is %s, pc2->len is %zu, line is %zu, column is %zu\n",
+ __func__, __LINE__, pc2->Text(), pc2->Len(), pc2->orig_line, pc2->orig_col);
+
+ if (chunk_is_token(pc2, CT_MEMBER))
+ {
+ pc2 = pc2->GetNext();
+ LOG_FMT(LSORT, "%s(%d): text is %s, pc2->len is %zu, line is %zu, column is %zu\n",
+ __func__, __LINE__, pc2->Text(), pc2->Len(), pc2->orig_line, pc2->orig_col);
+ }
+ LOG_FMT(LSORT, "%s(%d): >>>text is %s, pc1->len is %zu, line is %zu, column is %zu\n",
+ __func__, __LINE__, pc1->Text(), pc1->Len(), pc1->orig_line, pc1->orig_col);
+ LOG_FMT(LSORT, "%s(%d): >>>text is %s, pc2->len is %zu, line is %zu, column is %zu\n",
+ __func__, __LINE__, pc2->Text(), pc2->Len(), pc2->orig_line, pc2->orig_col);
+
+ // If we hit a newline or nullptr, we are done
+ if ( pc1->IsNullChunk()
+ || chunk_is_newline(pc1)
+ || pc2->IsNullChunk()
+ || chunk_is_newline(pc2))
+ {
+ break;
+ }
+ }
+
+ if ( pc1->IsNullChunk()
+ || !chunk_is_newline(pc2))
+ {
+ return(-1);
+ }
+
+ if (!chunk_is_newline(pc1))
+ {
+ return(1);
+ }
+ return(0);
+} // compare_chunks
+
+
+/**
+ * Sorting should be pretty rare and should usually only include a few chunks.
+ * We need to minimize the number of swaps, as those are expensive.
+ * So, we do a min sort.
+ */
+static void do_the_sort(Chunk **chunks, size_t num_chunks)
+{
+ LOG_FUNC_ENTRY();
+
+ LOG_FMT(LSORT, "%s(%d): %zu chunks:",
+ __func__, __LINE__, num_chunks);
+
+ for (size_t idx = 0; idx < num_chunks; idx++)
+ {
+ LOG_FMT(LSORT, " [%s]", chunks[idx]->Text());
+ }
+
+ LOG_FMT(LSORT, "\n");
+
+ size_t start_idx;
+
+ log_rule_B("mod_sort_case_sensitive");
+ bool take_care = options::mod_sort_case_sensitive(); // Issue #2091
+
+ for (start_idx = 0; start_idx < (num_chunks - 1); start_idx++)
+ {
+ // Find the index of the minimum value
+ size_t min_idx = start_idx;
+
+ for (size_t idx = start_idx + 1; idx < num_chunks; idx++)
+ {
+ if (compare_chunks(chunks[idx], chunks[min_idx], take_care) < 0) // Issue #2091
+ {
+ min_idx = idx;
+ }
+ }
+
+ // Swap the lines if the minimum isn't the first entry
+ if (min_idx != start_idx)
+ {
+ chunk_swap_lines(chunks[start_idx], chunks[min_idx]);
+ log_rule_B("mod_sort_incl_import_grouping_enabled");
+
+ if (options::mod_sort_incl_import_grouping_enabled())
+ {
+ Chunk *pc = chunks[min_idx];
+ chunks[min_idx] = chunks[start_idx];
+ chunks[start_idx] = pc;
+ }
+ else
+ {
+ // Don't need to swap, since we only want the side-effects
+ chunks[min_idx] = chunks[start_idx];
+ }
+ }
+ }
+} // do_the_sort
+
+
+/**
+ * Remove blank lines between chunks.
+ */
+static void remove_blank_lines_between_imports(Chunk **chunks, size_t num_chunks)
+{
+ LOG_FUNC_ENTRY();
+
+ if (num_chunks < 2)
+ {
+ return;
+ }
+
+ for (size_t idx = 0; idx < (num_chunks - 1); idx++)
+ {
+ Chunk *chunk1 = chunks[idx]->GetNextNl();
+ chunk1->nl_count = 1;
+ MARK_CHANGE();
+ }
+}
+
+
+/**
+ * Delete chunks on line having chunk.
+ */
+static void delete_chunks_on_line_having_chunk(Chunk *chunk)
+{
+ LOG_FUNC_ENTRY();
+
+ Chunk *pc = chunk_first_on_line(chunk);
+
+ while ( pc != nullptr
+ && pc->IsNotNullChunk()
+ && !pc->IsComment())
+ {
+ Chunk *next_pc = pc->GetNext();
+ LOG_FMT(LCHUNK, "%s(%d): Removed '%s' on orig_line %zu\n",
+ __func__, __LINE__, pc->Text(), pc->orig_line);
+
+ if (chunk_is_newline(pc))
+ {
+ chunk_del(pc);
+ break;
+ }
+ else
+ {
+ chunk_del(pc);
+ }
+ pc = next_pc;
+ }
+}
+
+
+/**
+ * Dedupe import/include directives.
+ */
+static void dedupe_imports(Chunk **chunks, size_t num_chunks)
+{
+ LOG_FUNC_ENTRY();
+ log_rule_B("mod_sort_case_sensitive");
+
+ for (size_t idx = 1; idx < num_chunks; idx++)
+ {
+ auto const &s1 = chunk_sort_str(chunks[idx - 1]);
+ auto const &s2 = chunk_sort_str(chunks[idx]);
+
+ if (s1.size() != s2.size())
+ {
+ continue;
+ }
+ int ret_val = unc_text::compare(s1, s2, std::min(s1.size(), s2.size()), options::mod_sort_case_sensitive());
+
+ if (ret_val == 0)
+ {
+ delete_chunks_on_line_having_chunk(chunks[idx - 1]);
+ }
+ }
+}
+
+
+/**
+ * Add blank line before the chunk.
+ */
+static void blankline_add_before(Chunk *pc)
+{
+ Chunk *newline = newline_add_before(chunk_first_on_line(pc));
+
+ if (newline->nl_count < 2)
+ {
+ double_newline(newline);
+ }
+}
+
+
+/**
+ * Group imports.
+ */
+static void group_imports_by_adding_newlines(Chunk **chunks, size_t num_chunks)
+{
+ LOG_FUNC_ENTRY();
+
+ // Group imports based on first character, typically quote or angle.
+ int c_idx = -1;
+ int c_idx_last = -1;
+
+ for (size_t idx = 0; idx < num_chunks; idx++)
+ {
+ if (chunks[idx]->str.size() > 0)
+ {
+ c_idx = chunks[idx]->str.at(0);
+ }
+ else
+ {
+ c_idx = -1;
+ }
+
+ if ( c_idx_last != c_idx
+ && idx > 0)
+ {
+ blankline_add_before(chunks[idx]);
+ }
+ c_idx_last = c_idx;
+ }
+
+ // Group imports based on having extension.
+ bool chunk_has_dot = false;
+ bool chunk_last_has_dot = false;
+
+ for (size_t idx = 0; idx < num_chunks; idx++)
+ {
+ chunk_has_dot = has_dot(chunks[idx]->str);
+
+ if ( chunk_last_has_dot != chunk_has_dot
+ && idx > 0)
+ {
+ blankline_add_before(chunks[idx]);
+ }
+ chunk_last_has_dot = chunk_has_dot;
+ }
+
+ // Group imports based on priority defined by config.
+ int chunk_pri = -1;
+ int chunk_pri_last = -1;
+
+ for (size_t idx = 0; idx < num_chunks; idx++)
+ {
+ chunk_pri = get_chunk_priority(chunks[idx]);
+
+ if ( chunk_pri_last != chunk_pri
+ && idx > 0)
+ {
+ blankline_add_before(chunks[idx]);
+ }
+ chunk_pri_last = chunk_pri;
+ }
+
+ // Group imports that contain filename pattern.
+ bool chunk_has_filename = false;
+ bool last_chunk_has_filename = false;
+
+ for (size_t idx = 0; idx < num_chunks; idx++)
+ {
+ auto const &chunk_text = chunk_sort_str(chunks[idx]);
+ chunk_has_filename = text_contains_filename_without_ext(chunk_text.c_str());
+
+ if ( !chunk_has_filename
+ && last_chunk_has_filename)
+ {
+ blankline_add_before(chunks[idx]);
+ }
+ last_chunk_has_filename = chunk_has_filename;
+ }
+} // group_imports_by_adding_newlines
+
+
+void sort_imports(void)
+{
+ LOG_FUNC_ENTRY();
+ const int max_number_to_sort = 1024;
+ const int max_lines_to_check_for_sort_after_include = 128;
+ const int max_gap_threshold_between_include_to_sort = 32;
+
+ Chunk *chunks[max_number_to_sort];
+ size_t num_chunks = 0;
+ Chunk *p_last = nullptr;
+ Chunk *p_imp = nullptr;
+ Chunk *p_imp_last = nullptr;
+
+ prepare_categories();
+
+ Chunk *pc = Chunk::GetHead();
+
+ log_rule_B("mod_sort_incl_import_grouping_enabled");
+
+ while (pc->IsNotNullChunk())
+ {
+ // Simple optimization to limit the sorting. Any MAX_LINES_TO_CHECK_AFTER_INCLUDE lines after last
+ // import is seen are ignore from sorting.
+ if ( options::mod_sort_incl_import_grouping_enabled()
+ && p_imp_last != nullptr
+ && (pc->orig_line - p_imp_last->orig_line) > max_lines_to_check_for_sort_after_include)
+ {
+ break;
+ }
+ Chunk *next = pc->GetNext();
+
+ if (chunk_is_newline(pc))
+ {
+ bool did_import = false;
+
+ if ( p_imp != nullptr
+ && p_imp->IsNotNullChunk()
+ && p_last != nullptr
+ && ( chunk_is_token(p_last, CT_SEMICOLON)
+ || p_imp->flags.test(PCF_IN_PREPROC)))
+ {
+ if (num_chunks < max_number_to_sort)
+ {
+ LOG_FMT(LSORT, "%s(%d): p_imp is %s\n",
+ __func__, __LINE__, p_imp->Text());
+ chunks[num_chunks++] = p_imp;
+ }
+ else
+ {
+ fprintf(stderr, "Number of 'import' to be sorted is too big for the current value %d.\n", max_number_to_sort);
+ fprintf(stderr, "Please make a report.\n");
+ log_flush(true);
+ cpd.error_count++;
+ exit(2);
+ }
+ did_import = true;
+ }
+ log_rule_B("mod_sort_incl_import_grouping_enabled");
+
+ if ( !did_import
+ || ( !options::mod_sort_incl_import_grouping_enabled()
+ && pc->nl_count > 1)
+ || ( options::mod_sort_incl_import_grouping_enabled()
+ && p_imp_last != nullptr
+ && (pc->orig_line - p_imp_last->orig_line) > max_gap_threshold_between_include_to_sort)
+ || next->IsNullChunk())
+ {
+ if (num_chunks > 1)
+ {
+ log_rule_B("mod_sort_incl_import_grouping_enabled");
+
+ if (options::mod_sort_incl_import_grouping_enabled())
+ {
+ remove_blank_lines_between_imports(chunks, num_chunks);
+ do_the_sort(chunks, num_chunks);
+ group_imports_by_adding_newlines(chunks, num_chunks);
+ dedupe_imports(chunks, num_chunks);
+ }
+ else
+ {
+ do_the_sort(chunks, num_chunks);
+ }
+ }
+ num_chunks = 0;
+ }
+ p_imp_last = p_imp;
+ p_imp = nullptr;
+ p_last = nullptr;
+ }
+ else if (chunk_is_token(pc, CT_IMPORT))
+ {
+ log_rule_B("mod_sort_import");
+
+ if (options::mod_sort_import())
+ {
+ p_imp = pc->GetNext();
+ }
+ }
+ else if (chunk_is_token(pc, CT_USING))
+ {
+ log_rule_B("mod_sort_using");
+
+ if (options::mod_sort_using())
+ {
+ p_imp = pc->GetNext();
+ }
+ }
+ else if (chunk_is_token(pc, CT_PP_INCLUDE))
+ {
+ log_rule_B("mod_sort_include");
+
+ if (options::mod_sort_include())
+ {
+ p_imp = pc->GetNext();
+ p_last = pc;
+ }
+ }
+ else if (!pc->IsComment())
+ {
+ p_last = pc;
+ }
+ pc = next;
+ }
+ cleanup_categories();
+} // sort_imports
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/sorting.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/sorting.h
index 5d767824..5d767824 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/sorting.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/sorting.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/space.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/space.cpp
new file mode 100644
index 00000000..e907d1ef
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/space.cpp
@@ -0,0 +1,3841 @@
+/**
+ * @file space.cpp
+ * Adds or removes inter-chunk spaces.
+ *
+ * Informations
+ * "Ignore" means do not change it.
+ * "Add" in the context of spaces means make sure there is at least 1.
+ * "Add" elsewhere means make sure one is present.
+ * "Remove" mean remove the space/brace/newline/etc.
+ * "Force" in the context of spaces means ensure that there is exactly 1.
+ * "Force" in other contexts means the same as "add".
+ *
+ * Rmk: spaces = space + nl
+ *
+ * @author Ben Gardner
+ * @author Guy Maurel, 2015-2021
+ * @license GPL v2+
+ */
+
+#include "space.h"
+
+#include "log_rules.h"
+#include "options_for_QT.h"
+#include "punctuators.h"
+
+#ifdef WIN32
+#include <algorithm> // to get max
+#endif // ifdef WIN32
+
+using namespace std;
+using namespace uncrustify;
+
+
+/**
+ * Decides how to change inter-chunk spacing.
+ * Note that the order of the if statements is VERY important.
+ *
+ * @param first The first chunk
+ * @param second The second chunk
+ *
+ * @return IARF_IGNORE, IARF_ADD, IARF_REMOVE or IARF_FORCE
+ */
+static iarf_e do_space(Chunk *first, Chunk *second, int &min_sp);
+
+/**
+ * Ensure to force the space between the \a first and the \a second chunks
+ * if the PCF_FORCE_SPACE flag is set in the \a first.
+ *
+ * @param first The first chunk
+ * @param second The second chunk
+ * @param av Av from the do_space()
+ *
+ * @return IARF_IGNORE, IARF_ADD, IARF_REMOVE or IARF_FORCE
+ */
+static iarf_e ensure_force_space(Chunk *first, Chunk *second, iarf_e av);
+
+//! type that stores two chunks between those no space shall occur
+struct no_space_table_t
+{
+ E_Token first; //! first chunk
+ E_Token second; //! second chunk
+};
+
+
+/**
+ * this table lists out all combos where a space MUST be present
+ * CT_UNKNOWN is a wildcard.
+ *
+ * TODO: some of these are no longer needed.
+ */
+const no_space_table_t add_space_table[] =
+{
+#include "add_space_table.h"
+};
+
+
+/**
+ * this table lists out all combos where a space should NOT be present
+ * CT_UNKNOWN is a wildcard.
+ *
+ * TODO: some of these are no longer needed.
+ */
+const no_space_table_t no_space_table[] =
+{
+ { CT_OC_AT, CT_UNKNOWN },
+ { CT_INCDEC_BEFORE, CT_WORD },
+ { CT_UNKNOWN, CT_INCDEC_AFTER },
+ { CT_UNKNOWN, CT_LABEL_COLON },
+ { CT_UNKNOWN, CT_ACCESS_COLON },
+ { CT_UNKNOWN, CT_SEMICOLON },
+ { CT_UNKNOWN, CT_D_TEMPLATE },
+ { CT_D_TEMPLATE, CT_UNKNOWN },
+ { CT_MACRO_FUNC, CT_FPAREN_OPEN },
+ { CT_PAREN_OPEN, CT_UNKNOWN },
+ { CT_UNKNOWN, CT_PAREN_CLOSE },
+ { CT_FPAREN_OPEN, CT_UNKNOWN },
+ { CT_UNKNOWN, CT_SPAREN_CLOSE },
+ { CT_SPAREN_OPEN, CT_UNKNOWN },
+ { CT_UNKNOWN, CT_FPAREN_CLOSE },
+ { CT_UNKNOWN, CT_COMMA },
+ { CT_POS, CT_UNKNOWN },
+ { CT_STAR, CT_UNKNOWN },
+ { CT_VBRACE_CLOSE, CT_UNKNOWN },
+ { CT_VBRACE_OPEN, CT_UNKNOWN },
+ { CT_UNKNOWN, CT_VBRACE_CLOSE },
+ { CT_UNKNOWN, CT_VBRACE_OPEN },
+ { CT_PREPROC, CT_UNKNOWN },
+ { CT_PREPROC_INDENT, CT_UNKNOWN },
+ { CT_NEG, CT_UNKNOWN },
+ { CT_UNKNOWN, CT_SQUARE_OPEN },
+ { CT_UNKNOWN, CT_SQUARE_CLOSE },
+ { CT_SQUARE_OPEN, CT_UNKNOWN },
+ { CT_PAREN_CLOSE, CT_WORD },
+ { CT_PAREN_CLOSE, CT_FUNC_DEF },
+ { CT_PAREN_CLOSE, CT_FUNC_CALL },
+ { CT_PAREN_CLOSE, CT_ADDR },
+ { CT_PAREN_CLOSE, CT_FPAREN_OPEN },
+ { CT_OC_SEL_NAME, CT_OC_SEL_NAME },
+ { CT_TYPENAME, CT_TYPE },
+};
+
+
+bool token_is_within_trailing_return(Chunk *pc)
+{
+ // look back for '->' type is TRAILING_RET
+ // until CT_FPAREN_CLOSE
+ // or CT_FPAREN_OPEN is found
+ Chunk *prev = pc;
+
+ if (prev == nullptr)
+ {
+ prev = Chunk::NullChunkPtr;
+ }
+
+ while (prev->IsNotNullChunk())
+ {
+ if (chunk_is_token(prev, CT_TRAILING_RET))
+ {
+ return(true);
+ }
+ else if ( chunk_is_token(prev, CT_FPAREN_CLOSE)
+ || chunk_is_token(prev, CT_FPAREN_OPEN))
+ {
+ return(false);
+ }
+ else
+ {
+ prev = prev->GetPrev();
+ }
+ }
+ return(false);
+} // token_is_within_trailing_return
+
+
+/*
+ * this function is called for every chunk in the input file.
+ * Thus it is important to keep this function efficient
+ */
+static iarf_e do_space(Chunk *first, Chunk *second, int &min_sp)
+{
+ LOG_FUNC_ENTRY();
+
+ LOG_FMT(LSPACE, "%s(%d): orig_line is %zu, orig_col is %zu, first->Text() '%s', type is %s\n",
+ __func__, __LINE__, first->orig_line, first->orig_col, first->Text(), get_token_name(first->type));
+
+ min_sp = 1;
+
+ if ( chunk_is_token(first, CT_IGNORED)
+ || chunk_is_token(second, CT_IGNORED))
+ {
+ log_rule("REMOVE");
+ return(IARF_REMOVE);
+ }
+
+ if ( chunk_is_token(first, CT_PP_IGNORE)
+ && chunk_is_token(second, CT_PP_IGNORE))
+ {
+ // Leave spacing alone between PP_IGNORE tokens as we don't want the default behavior (which is ADD).
+ log_rule("PP_IGNORE");
+ return(IARF_IGNORE);
+ }
+
+ if ( chunk_is_token(first, CT_PP)
+ || chunk_is_token(second, CT_PP))
+ {
+ // Add or remove space around preprocessor '##' concatenation operator.
+ log_rule("sp_pp_concat");
+ return(options::sp_pp_concat());
+ }
+
+ if (chunk_is_token(first, CT_POUND))
+ {
+ // Add or remove space after preprocessor '#' stringify operator.
+ // Also affects the '#@' charizing operator.
+ log_rule("sp_pp_stringify");
+ return(options::sp_pp_stringify());
+ }
+
+ if ( chunk_is_token(second, CT_POUND)
+ && second->flags.test(PCF_IN_PREPROC)
+ && get_chunk_parent_type(first) != CT_MACRO_FUNC)
+ {
+ // Add or remove space before preprocessor '#' stringify operator
+ // as in '#define x(y) L#y'.
+ log_rule("sp_before_pp_stringify");
+ return(options::sp_before_pp_stringify());
+ }
+
+ if ( chunk_is_token(first, CT_SPACE)
+ || chunk_is_token(second, CT_SPACE))
+ {
+ log_rule("REMOVE");
+ return(IARF_REMOVE);
+ }
+
+ if (chunk_is_token(first, CT_DECLSPEC)) // Issue 1289
+ {
+ log_rule("REMOVE");
+ return(IARF_REMOVE);
+ }
+
+ if ( chunk_is_token(second, CT_NEWLINE)
+ || chunk_is_token(second, CT_VBRACE_OPEN))
+ {
+ log_rule("REMOVE");
+ return(IARF_REMOVE);
+ }
+
+ if ( chunk_is_token(first, CT_VBRACE_OPEN)
+ && second->type != CT_NL_CONT
+ && second->type != CT_SEMICOLON) // # Issue 1158
+ {
+ log_rule("FORCE");
+ return(IARF_FORCE);
+ }
+
+ if ( chunk_is_token(first, CT_VBRACE_CLOSE)
+ && second->type != CT_NL_CONT)
+ {
+ log_rule("REMOVE");
+ return(IARF_REMOVE);
+ }
+
+ if (chunk_is_token(second, CT_VSEMICOLON))
+ {
+ log_rule("REMOVE");
+ return(IARF_REMOVE);
+ }
+
+ if (chunk_is_token(first, CT_MACRO_FUNC))
+ {
+ log_rule("REMOVE");
+ return(IARF_REMOVE);
+ }
+
+ if (chunk_is_token(second, CT_NL_CONT))
+ {
+ // Add or remove space before a backslash-newline at the end of a line.
+ log_rule("sp_before_nl_cont");
+ return(options::sp_before_nl_cont());
+ }
+
+ if ( language_is_set(LANG_D)
+ && ( chunk_is_token(first, CT_D_ARRAY_COLON)
+ || chunk_is_token(second, CT_D_ARRAY_COLON)))
+ {
+ // (D) Add or remove around the D named array initializer ':' operator.
+ log_rule("sp_d_array_colon");
+ return(options::sp_d_array_colon());
+ }
+
+ if ( chunk_is_token(first, CT_CASE)
+ && (( CharTable::IsKw1(second->str[0])
+ || chunk_is_token(second, CT_NUMBER))))
+ {
+ // Fix the spacing between 'case' and the label. Only 'ignore' and 'force' make
+ // sense here.
+ log_rule("sp_case_label");
+ return(options::sp_case_label() | IARF_ADD);
+ }
+
+ if (chunk_is_token(first, CT_FOR_COLON))
+ {
+ // java
+ // Add or remove space after ':' in a Java/C++11 range-based 'for',
+ // as in 'for (Type var : expr)'.
+ log_rule("sp_after_for_colon");
+ return(options::sp_after_for_colon());
+ }
+
+ if (chunk_is_token(second, CT_FOR_COLON))
+ {
+ // java
+ // Add or remove space before ':' in a Java/C++11 range-based 'for',
+ // as in 'for (Type var : expr)'.
+ log_rule("sp_before_for_colon");
+ return(options::sp_before_for_colon());
+ }
+
+ if ( chunk_is_token(first, CT_QUESTION)
+ && chunk_is_token(second, CT_COND_COLON))
+ {
+ // In the abbreviated ternary form '(a ?: b)', add or remove space between '?'
+ // and ':'.
+ // Overrides all other sp_cond_* options.
+ log_rule("sp_cond_ternary_short");
+ return(options::sp_cond_ternary_short());
+ }
+
+ if ( chunk_is_token(first, CT_QUESTION) // see the tests cpp:34513-34516
+ || chunk_is_token(second, CT_QUESTION))
+ {
+ if ( chunk_is_token(second, CT_QUESTION)
+ && (options::sp_cond_question_before() != IARF_IGNORE))
+ {
+ // Add or remove space before the '?' in 'b ? t : f'.
+ // Overrides sp_cond_question.
+ log_rule("sp_cond_question_before");
+ return(options::sp_cond_question_before());
+ }
+
+ if ( chunk_is_token(first, CT_QUESTION)
+ && (options::sp_cond_question_after() != IARF_IGNORE))
+ {
+ // Add or remove space after the '?' in 'b ? t : f'.
+ // Overrides sp_cond_question.
+ log_rule("sp_cond_question_after");
+ return(options::sp_cond_question_after());
+ }
+ log_rule("sp_cond_question");
+ return(options::sp_cond_question());
+ }
+
+ if ( chunk_is_token(first, CT_COND_COLON)
+ || chunk_is_token(second, CT_COND_COLON))
+ {
+ if ( chunk_is_token(second, CT_COND_COLON)
+ && (options::sp_cond_colon_before() != IARF_IGNORE))
+ {
+ // Add or remove space before the ':' in 'b ? t : f'.
+ // Overrides sp_cond_colon.
+ log_rule("sp_cond_colon_before");
+ return(options::sp_cond_colon_before());
+ }
+
+ if ( chunk_is_token(first, CT_COND_COLON)
+ && (options::sp_cond_colon_after() != IARF_IGNORE))
+ {
+ // Add or remove space after the ':' in 'b ? t : f'.
+ // Overrides sp_cond_colon.
+ log_rule("sp_cond_colon_after");
+ return(options::sp_cond_colon_after());
+ }
+ // Issue #2596
+ // replace "if (chunk_is_token(first, CT_WORD) && chunk_is_token(second, CT_COND_COLON))"
+ // Add or remove space around the ':' in 'b ? t : f'.
+ log_rule("sp_cond_colon");
+ return(options::sp_cond_colon());
+ }
+
+ if ( language_is_set(LANG_D)
+ && ( chunk_is_token(first, CT_RANGE)
+ || chunk_is_token(second, CT_RANGE)))
+ {
+ // (D) Add or remove space around the D '..' operator.
+ log_rule("sp_range");
+ return(options::sp_range());
+ }
+
+ if ( chunk_is_token(first, CT_COLON)
+ && get_chunk_parent_type(first) == CT_SQL_EXEC)
+ {
+ log_rule("REMOVE");
+ return(IARF_REMOVE);
+ }
+
+ // Macro stuff can only return IGNORE, ADD, or FORCE
+ if (chunk_is_token(first, CT_MACRO))
+ {
+ // Add or remove space between a macro name and its definition.
+ log_rule("sp_macro");
+ iarf_e arg = options::sp_macro();
+ return(arg | ((arg != IARF_IGNORE) ? IARF_ADD : IARF_IGNORE));
+ }
+
+ if ( chunk_is_token(first, CT_FPAREN_CLOSE)
+ && get_chunk_parent_type(first) == CT_MACRO_FUNC)
+ {
+ // Add or remove space between a macro function ')' and its definition.
+ log_rule("sp_macro_func");
+ iarf_e arg = options::sp_macro_func();
+ return(arg | ((arg != IARF_IGNORE) ? IARF_ADD : IARF_IGNORE));
+ }
+
+ if (chunk_is_token(first, CT_PREPROC))
+ {
+ // Remove spaces, unless we are ignoring. See indent_preproc()
+ if (options::pp_space() == IARF_IGNORE)
+ {
+ log_rule("pp_space");
+ log_rule("IGNORE");
+ return(IARF_IGNORE);
+ }
+ log_rule("REMOVE");
+ return(IARF_REMOVE);
+ }
+
+ if (chunk_is_token(second, CT_SEMICOLON)) // see the tests cpp:34517-34519
+ {
+ if (chunk_is_token(first, CT_VBRACE_OPEN))
+ {
+ // Add or remove space before ';'.
+ log_rule("sp_before_semi");
+ return(options::sp_before_semi());
+ }
+
+ if (get_chunk_parent_type(second) == CT_FOR)
+ {
+ if (chunk_is_token(first, CT_SPAREN_OPEN))
+ {
+ // empty, e.g. for (;;)
+ // ^ is first
+ // ^ is second
+ // Add or remove space before a semicolon of an empty left part of a for statement.
+ log_rule("sp_before_semi_for_empty");
+ return(options::sp_before_semi_for_empty());
+ }
+
+ if (chunk_is_token(first, CT_SEMICOLON))
+ {
+ // empty, e.g. for (;;)
+ // ^ is first
+ // ^ is second
+ // Add or remove space between semicolons of an empty middle part of a for statement.
+ log_rule("sp_between_semi_for_empty");
+ return(options::sp_between_semi_for_empty());
+ }
+ // Add or remove space before ';' in non-empty 'for' statements.
+ log_rule("sp_before_semi_for");
+ return(options::sp_before_semi_for());
+ }
+ iarf_e arg = options::sp_before_semi(); // see the tests cpp:34517-34519
+
+ if ( chunk_is_token(first, CT_VBRACE_OPEN) // Issue #2942
+ && chunk_is_token(first->prev, CT_SPAREN_CLOSE)
+ && get_chunk_parent_type(first) != CT_WHILE_OF_DO)
+ {
+ // Add or remove space before empty statement ';' on 'if', 'for' and 'while'.
+ log_rule("sp_special_semi");
+ arg = arg | options::sp_special_semi();
+ }
+ else
+ {
+ // Add or remove space before ';'.
+ log_rule("sp_before_semi");
+ }
+ return(arg);
+ }
+
+ if ( ( chunk_is_token(second, CT_COMMENT)
+ || chunk_is_token(second, CT_COMMENT_CPP))
+ && ( chunk_is_token(first, CT_PP_ELSE)
+ || chunk_is_token(first, CT_PP_ENDIF)))
+ {
+ set_chunk_type(second, CT_COMMENT_ENDIF);
+ // Add or remove space between #else or #endif and a trailing comment.
+ log_rule("sp_endif_cmt");
+ return(options::sp_endif_cmt());
+ }
+
+ if ( options::sp_before_tr_cmt() != IARF_IGNORE
+ && get_chunk_parent_type(second) == CT_COMMENT_END)
+ {
+ // Add or remove space before a trailing comment.
+ // Number of spaces before a trailing comment.
+ log_rule("sp_num_before_tr_cmt");
+ min_sp = options::sp_num_before_tr_cmt();
+ return(options::sp_before_tr_cmt());
+ }
+
+ if (get_chunk_parent_type(second) == CT_COMMENT_END)
+ {
+ switch (second->orig_prev_sp)
+ {
+ case 0:
+ log_rule("orig_prev_sp-REMOVE");
+ return(IARF_REMOVE);
+
+ case 1:
+ log_rule("orig_prev_sp-FORCE");
+ return(IARF_FORCE);
+
+ default:
+ log_rule("orig_prev_sp-ADD");
+ return(IARF_ADD);
+ }
+ }
+
+ // "for (;;)" vs. "for (;; )" and "for (a;b;c)" vs. "for (a; b; c)"
+ if (chunk_is_token(first, CT_SEMICOLON)) // see the tests cpp:34517-34519
+ {
+ if (get_chunk_parent_type(first) == CT_FOR)
+ {
+ if (chunk_is_token(second, CT_SPAREN_CLOSE))
+ {
+ // Add or remove space after the final semicolon of an empty part of a for
+ // statement, as in 'for ( ; ; <here> )'.
+ log_rule("sp_after_semi_for_empty");
+ return(options::sp_after_semi_for_empty());
+ }
+
+ if (second->type != CT_SPAREN_CLOSE) // Issue 1324
+ {
+ // Add or remove space after ';' in non-empty 'for' statements.
+ log_rule("sp_after_semi_for");
+ return(options::sp_after_semi_for());
+ }
+ }
+ else if ( !second->IsComment()
+ && second->type != CT_BRACE_CLOSE) // issue #197
+ {
+ // Add or remove space after ';', except when followed by a comment.
+ // see the tests cpp:34517-34519
+ log_rule("sp_after_semi");
+ return(options::sp_after_semi());
+ }
+ // Let the comment spacing rules handle this
+ }
+
+ // puts a space in the rare '+-' or '-+'
+ if ( ( chunk_is_token(first, CT_NEG)
+ || chunk_is_token(first, CT_POS)
+ || chunk_is_token(first, CT_ARITH)
+ || chunk_is_token(first, CT_SHIFT))
+ && ( chunk_is_token(second, CT_NEG)
+ || chunk_is_token(second, CT_POS)
+ || chunk_is_token(second, CT_ARITH)
+ || chunk_is_token(second, CT_SHIFT)))
+ {
+ log_rule("ADD");
+ return(IARF_ADD);
+ }
+
+ // "return(a);" vs. "return (foo_t)a + 3;" vs. "return a;" vs. "return;"
+ if (chunk_is_token(first, CT_RETURN))
+ {
+ if ( chunk_is_token(second, CT_PAREN_OPEN)
+ && get_chunk_parent_type(second) == CT_RETURN)
+ {
+ // Add or remove space between 'return' and '('.
+ log_rule("sp_return_paren");
+ return(options::sp_return_paren());
+ }
+ else if ( chunk_is_token(second, CT_BRACE_OPEN)
+ && get_chunk_parent_type(second) == CT_BRACED_INIT_LIST)
+ {
+ // Add or remove space between 'return' and '{'.
+ log_rule("sp_return_brace");
+ return(options::sp_return_brace());
+ }
+ // Everything else requires a space
+ // The value REMOVE will be overridden with FORCE
+ log_rule("sp_return");
+
+ if (options::sp_return() == IARF_REMOVE)
+ {
+ return(IARF_FORCE);
+ }
+ return(options::sp_return());
+ }
+
+ // "sizeof(foo_t)" vs. "sizeof (foo_t)"
+ if (chunk_is_token(first, CT_SIZEOF))
+ {
+ if (chunk_is_token(second, CT_PAREN_OPEN))
+ {
+ // Add or remove space between 'sizeof' and '('.
+ log_rule("sp_sizeof_paren");
+ return(options::sp_sizeof_paren());
+ }
+
+ if (chunk_is_token(second, CT_ELLIPSIS))
+ {
+ // Add or remove space between 'sizeof' and '...'.
+ log_rule("sp_sizeof_ellipsis");
+ return(options::sp_sizeof_ellipsis());
+ }
+ log_rule("FORCE");
+ return(IARF_FORCE);
+ }
+
+ // "decltype(foo_t)" vs. "decltype (foo_t)"
+ if (chunk_is_token(first, CT_DECLTYPE))
+ {
+ if (chunk_is_token(second, CT_PAREN_OPEN))
+ {
+ // Add or remove space between 'decltype' and '('.
+ log_rule("sp_decltype_paren");
+ return(options::sp_decltype_paren());
+ }
+ log_rule("FORCE");
+ return(IARF_FORCE);
+ }
+
+ // handle '::'
+ if (chunk_is_token(first, CT_DC_MEMBER))
+ {
+ // Add or remove space after the '::' operator.
+ log_rule("sp_after_dc");
+ return(options::sp_after_dc());
+ }
+
+ // Issue #889
+ // mapped_file_source abc((int) ::CW2A(sTemp));
+ if ( chunk_is_token(first, CT_PAREN_CLOSE)
+ && chunk_is_token(second, CT_DC_MEMBER)
+ && second->next != nullptr
+ && second->next->type == CT_FUNC_CALL)
+ {
+ log_rule("sp_after_cast");
+ return(options::sp_after_cast());
+ }
+
+ if (chunk_is_token(second, CT_DC_MEMBER))
+ {
+ /* '::' at the start of an identifier is not member access, but global scope operator.
+ * Detect if previous chunk is keyword
+ */
+ switch (first->type)
+ {
+ case CT_SBOOL:
+ case CT_SASSIGN:
+ case CT_ARITH:
+ case CT_SHIFT:
+ case CT_CASE:
+ case CT_CLASS:
+ case CT_DELETE:
+ case CT_FRIEND:
+ case CT_NAMESPACE:
+ case CT_NEW:
+ case CT_SARITH:
+ case CT_SCOMPARE:
+ case CT_OPERATOR:
+ case CT_ACCESS:
+ case CT_QUALIFIER:
+ case CT_RETURN:
+ case CT_SIZEOF:
+ case CT_DECLTYPE:
+ case CT_STRUCT:
+ case CT_THROW:
+ case CT_TYPEDEF:
+ case CT_TYPENAME:
+ case CT_UNION:
+ case CT_USING:
+ log_rule("FORCE");
+ return(IARF_FORCE);
+
+ default:
+ break;
+ }
+
+ if ( ( chunk_is_token(first, CT_WORD)
+ || chunk_is_token(first, CT_TYPE)
+ || chunk_is_token(first, CT_PAREN_CLOSE)
+ || CharTable::IsKw1(first->str[0]))
+ && (strcmp(first->Text(), "void") != 0)) // Issue 1249
+ {
+ // Add or remove space before the '::' operator.
+ log_rule("sp_before_dc");
+ return(options::sp_before_dc());
+ }
+ }
+
+ // "a,b" vs. "a, b"
+ if (chunk_is_token(first, CT_COMMA)) // see the tests cpp:34520-34524
+ // see the tests c-sharp:12200-12202
+ {
+ if ( language_is_set(LANG_CS)
+ && get_chunk_parent_type(first) == CT_TYPE)
+ {
+ // C# multidimensional array type: ',,' vs. ', ,' or ',]' vs. ', ]'
+ if (chunk_is_token(second, CT_COMMA))
+ {
+ // (C#) Add or remove space between ',' in multidimensional array type
+ // like 'int[,,]'.
+ log_rule("sp_between_mdatype_commas");
+ return(options::sp_between_mdatype_commas());
+ }
+ // (C#) Add or remove space between ',' and ']' in multidimensional array type
+ // like 'int[,,]'.
+ log_rule("sp_after_mdatype_commas");
+ return(options::sp_after_mdatype_commas());
+ }
+
+ // Fix for issue #1243
+ // Don't add extra space after comma immediately followed by Angle close
+ if (chunk_is_token(second, CT_ANGLE_CLOSE))
+ {
+ log_rule("IGNORE");
+ return(IARF_IGNORE);
+ }
+ // Add or remove space after ',', i.e. 'a,b' vs. 'a, b'.
+ log_rule("sp_after_comma");
+ return(options::sp_after_comma());
+ }
+
+ // test if we are within a SIGNAL/SLOT call
+ if (QT_SIGNAL_SLOT_found)
+ {
+ if ( chunk_is_token(first, CT_FPAREN_CLOSE)
+ && ( chunk_is_token(second, CT_FPAREN_CLOSE)
+ || chunk_is_token(second, CT_COMMA)))
+ {
+ if (second->level == QT_SIGNAL_SLOT_level)
+ {
+ restoreValues = true;
+ }
+ }
+ }
+
+ if (chunk_is_token(second, CT_COMMA))
+ {
+ if ( language_is_set(LANG_CS)
+ && chunk_is_token(first, CT_SQUARE_OPEN)
+ && get_chunk_parent_type(first) == CT_TYPE)
+ {
+ // Only for C#.
+ // (C#) Add or remove space between '[' and ',' in multidimensional array type
+ // like 'int[,,]'.
+ log_rule("sp_before_mdatype_commas");
+ return(options::sp_before_mdatype_commas());
+ }
+
+ if ( chunk_is_token(first, CT_PAREN_OPEN)
+ || chunk_is_token(first, CT_FPAREN_OPEN))
+ {
+ // Add or remove space between an open parenthesis and comma,
+ // i.e. '(,' vs. '( ,'.
+ log_rule("sp_paren_comma");
+ return(options::sp_paren_comma());
+ }
+ // Add or remove space before ',', i.e. 'a,b' vs. 'a ,b'.
+ log_rule("sp_before_comma");
+ return(options::sp_before_comma());
+ }
+
+ if (chunk_is_token(second, CT_ELLIPSIS))
+ {
+ // type followed by a ellipsis
+ Chunk *tmp = first;
+
+ if ( chunk_is_token(tmp, CT_PTR_TYPE)
+ || chunk_is_token(tmp, CT_BYREF))
+ {
+ tmp = tmp->GetPrevNcNnl();
+ }
+
+ if ( chunk_is_token(tmp, CT_TYPE)
+ || chunk_is_token(tmp, CT_QUALIFIER))
+ {
+ // Add or remove space between a type and '...'.
+ log_rule("sp_type_ellipsis");
+ return(options::sp_type_ellipsis());
+ }
+
+ // non-punc followed by a ellipsis
+ if ( !first->flags.test(PCF_PUNCTUATOR)
+ && (options::sp_before_ellipsis() != IARF_IGNORE))
+ {
+ // Add or remove space before the variadic '...' when preceded by a
+ // non-punctuator.
+ log_rule("sp_before_ellipsis");
+ return(options::sp_before_ellipsis());
+ }
+
+ if ( chunk_is_token(first, CT_FPAREN_CLOSE)
+ || chunk_is_token(first, CT_PAREN_CLOSE))
+ {
+ // Add or remove space between ')' and '...'.
+ log_rule("sp_paren_ellipsis");
+ return(options::sp_paren_ellipsis());
+ }
+
+ if (chunk_is_token(first, CT_TAG_COLON))
+ {
+ log_rule("FORCE");
+ return(IARF_FORCE);
+ }
+
+ if (chunk_is_token(first, CT_BYREF)) // Issue #3309
+ {
+ log_rule("sp_byref_ellipsis");
+ return(options::sp_byref_ellipsis());
+ }
+
+ if (chunk_is_token(first, CT_PARAMETER_PACK)) // Issue #3309
+ {
+ log_rule("sp_parameter_pack_ellipsis");
+ return(options::sp_parameter_pack_ellipsis());
+ }
+ }
+
+ if (chunk_is_token(first, CT_ELLIPSIS))
+ {
+ if (chunk_is_token(second, CT_PARAMETER_PACK)) // Issue #3309
+ {
+ log_rule("sp_ellipsis_parameter_pack");
+ return(options::sp_ellipsis_parameter_pack());
+ }
+
+ if (CharTable::IsKw1(second->str[0]))
+ {
+ log_rule("FORCE");
+ return(IARF_FORCE);
+ }
+
+ if ( chunk_is_token(second, CT_PAREN_OPEN)
+ && first->prev != nullptr
+ && chunk_is_token(first->prev, CT_SIZEOF))
+ {
+ // Add or remove space between 'sizeof...' and '('.
+ log_rule("sp_sizeof_ellipsis_paren");
+ return(options::sp_sizeof_ellipsis_paren());
+ }
+ }
+
+ if ( language_is_set(LANG_PAWN)
+ && chunk_is_token(first, CT_TAG_COLON))
+ {
+ // (Pawn) Add or remove space after the tag keyword.
+ log_rule("sp_after_tag");
+ return(options::sp_after_tag());
+ }
+
+ if (chunk_is_token(second, CT_TAG_COLON))
+ {
+ log_rule("REMOVE");
+ return(IARF_REMOVE);
+ }
+
+ // handle '~'
+ if (chunk_is_token(first, CT_DESTRUCTOR))
+ {
+ log_rule("REMOVE");
+ return(IARF_REMOVE);
+ }
+
+ if ( language_is_set(LANG_OC)
+ && chunk_is_token(first, CT_CATCH)
+ && chunk_is_token(second, CT_SPAREN_OPEN)
+ && (options::sp_oc_catch_paren() != IARF_IGNORE))
+ {
+ // (OC) Add or remove space between '@catch' and '('
+ // in '@catch (something) { }'. If set to ignore, sp_catch_paren is used.
+ log_rule("sp_oc_catch_paren");
+ return(options::sp_oc_catch_paren());
+ }
+
+ if ( language_is_set(LANG_OC)
+ && ( chunk_is_token(first, CT_PAREN_CLOSE)
+ || chunk_is_token(first, CT_OC_CLASS)
+ || chunk_is_token(first, CT_WORD))
+ && chunk_is_token(second, CT_ANGLE_OPEN)
+ && ( get_chunk_parent_type(second) == CT_OC_PROTO_LIST
+ || get_chunk_parent_type(second) == CT_OC_GENERIC_SPEC)
+ && (options::sp_before_oc_proto_list() != IARF_IGNORE))
+ {
+ // (OC) Add or remove space before Objective-C protocol list
+ // as in '@protocol Protocol<here><Protocol_A>' or '@interface MyClass : NSObject<here><MyProtocol>'.
+ log_rule("sp_before_oc_proto_list");
+ return(options::sp_before_oc_proto_list());
+ }
+
+ if ( language_is_set(LANG_OC)
+ && chunk_is_token(first, CT_OC_CLASS)
+ && chunk_is_token(second, CT_PAREN_OPEN)
+ && (options::sp_oc_classname_paren() != IARF_IGNORE))
+ {
+ // (OC) Add or remove space between class name and '('
+ // in '@interface className(categoryName)<ProtocolName>:BaseClass'
+ log_rule("sp_oc_classname_paren");
+ return(options::sp_oc_classname_paren());
+ }
+
+ if ( chunk_is_token(first, CT_CATCH)
+ && chunk_is_token(second, CT_SPAREN_OPEN)
+ && (options::sp_catch_paren() != IARF_IGNORE))
+ {
+ // Add or remove space between 'catch' and '(' in 'catch (something) { }'.
+ // If set to ignore, sp_before_sparen is used.
+ log_rule("sp_catch_paren");
+ return(options::sp_catch_paren());
+ }
+
+ if ( language_is_set(LANG_D)
+ && chunk_is_token(first, CT_D_VERSION_IF)
+ && chunk_is_token(second, CT_SPAREN_OPEN)
+ && (options::sp_version_paren() != IARF_IGNORE))
+ {
+ // (D) Add or remove space between 'version' and '('
+ // in 'version (something) { }'. If set to ignore, sp_before_sparen is used.
+ log_rule("sp_version_paren");
+ return(options::sp_version_paren());
+ }
+
+ if ( language_is_set(LANG_D)
+ && chunk_is_token(first, CT_D_SCOPE_IF)
+ && chunk_is_token(second, CT_SPAREN_OPEN)
+ && (options::sp_scope_paren() != IARF_IGNORE))
+ {
+ // (D) Add or remove space between 'scope' and '('
+ // in 'scope (something) { }'. If set to ignore, sp_before_sparen is used.
+ log_rule("sp_scope_paren");
+ return(options::sp_scope_paren());
+ }
+
+ if ( language_is_set(LANG_OC)
+ && chunk_is_token(first, CT_SYNCHRONIZED)
+ && chunk_is_token(second, CT_SPAREN_OPEN))
+ {
+ // (OC) Add or remove space between '@synchronized' and the open parenthesis,
+ // i.e. '@synchronized(foo)' vs. '@synchronized (foo)'.
+ log_rule("sp_after_oc_synchronized");
+ return(options::sp_after_oc_synchronized());
+ }
+
+ // "if (" vs. "if("
+ if (chunk_is_token(second, CT_SPAREN_OPEN))
+ {
+ // Add or remove space after 'do' between 'while' and '('. Issue #995
+ if ( chunk_is_token(first, CT_WHILE_OF_DO)
+ && options::sp_while_paren_open() != IARF_IGNORE)
+ {
+ log_rule("sp_while_paren_open");
+ return(options::sp_while_paren_open());
+ }
+ // Add or remove space before '(' of other control statements ('if', 'for',
+ // 'switch', 'while', etc.).
+ log_rule("sp_before_sparen");
+ return(options::sp_before_sparen());
+ }
+
+ if ( chunk_is_token(first, CT_LAMBDA)
+ || chunk_is_token(second, CT_LAMBDA))
+ {
+ // Add or remove space around assignment operator '=', '+=', etc.
+ log_rule("sp_assign (lambda)");
+ return(options::sp_assign());
+ }
+
+ // Handle the special lambda case for C++11:
+ // [=](Something arg){.....}
+ // Add or remove space around '=' in C++11 lambda capture specifications.
+ // Overrides sp_assign.
+ if ( (options::sp_cpp_lambda_assign() != IARF_IGNORE)
+ && ( ( chunk_is_token(first, CT_SQUARE_OPEN)
+ && get_chunk_parent_type(first) == CT_CPP_LAMBDA
+ && chunk_is_token(second, CT_ASSIGN))
+ || ( chunk_is_token(first, CT_ASSIGN)
+ && chunk_is_token(second, CT_SQUARE_CLOSE)
+ && get_chunk_parent_type(second) == CT_CPP_LAMBDA)))
+ {
+ log_rule("sp_cpp_lambda_assign");
+ return(options::sp_cpp_lambda_assign());
+ }
+
+ if ( chunk_is_token(first, CT_SQUARE_CLOSE)
+ && get_chunk_parent_type(first) == CT_CPP_LAMBDA)
+ {
+ // Handle the special lambda case for C++11:
+ // [](Something arg){.....}
+ // Add or remove space after the capture specification of a C++11 lambda when
+ // an argument list is present, as in '[] <here> (int x){ ... }'.
+ if (chunk_is_token(second, CT_LPAREN_OPEN))
+ {
+ log_rule("sp_cpp_lambda_square_paren");
+ return(options::sp_cpp_lambda_square_paren());
+ }
+ else if (chunk_is_token(second, CT_BRACE_OPEN))
+ {
+ // Add or remove space after the capture specification of a C++11 lambda with
+ // no argument list is present, as in '[] <here> { ... }'.
+ log_rule("sp_cpp_lambda_square_brace");
+ return(options::sp_cpp_lambda_square_brace());
+ }
+ }
+
+ if (chunk_is_token(first, CT_LPAREN_OPEN))
+ {
+ // Add or remove space after the opening parenthesis of a argument list
+ // of a C++11 lambda, as in '[]( <here> int x ){ ... }'.
+ log_rule("sp_cpp_lambda_argument_list");
+ return(options::sp_cpp_lambda_argument_list());
+ }
+
+ if (chunk_is_token(first, CT_LPAREN_CLOSE))
+ {
+ if (chunk_is_token(second, CT_BRACE_OPEN))
+ {
+ // Add or remove space after the argument list of a C++11 lambda, as in
+ // '[](int x) <here> { ... }'.
+ log_rule("sp_cpp_lambda_paren_brace");
+ return(options::sp_cpp_lambda_paren_brace());
+ }
+ }
+
+ if (chunk_is_token(second, CT_LPAREN_CLOSE))
+ {
+ // Add or remove space before the closing parenthesis of a argument list
+ // of a C++11 lambda, as in '[]( int x <here> ){ ... }'.
+ log_rule("sp_cpp_lambda_argument_list");
+ return(options::sp_cpp_lambda_argument_list());
+ }
+
+ if ( chunk_is_token(first, CT_BRACE_CLOSE)
+ && get_chunk_parent_type(first) == CT_CPP_LAMBDA
+ && chunk_is_token(second, CT_FPAREN_OPEN))
+ {
+ // Add or remove space between a lambda body and its call operator of an
+ // immediately invoked lambda, as in '[]( ... ){ ... } <here> ( ... )'.
+ log_rule("sp_cpp_lambda_fparen");
+ return(options::sp_cpp_lambda_fparen());
+ }
+
+ if (chunk_is_token(first, CT_ENUM))
+ {
+ if (chunk_is_token(second, CT_BRACE_OPEN))
+ {
+ // Add or remove space in 'enum {'.
+ log_rule("sp_enum_brace");
+ return(options::sp_enum_brace());
+ }
+ else if (chunk_is_token(second, CT_FPAREN_OPEN))
+ {
+ // Add or remove space in 'NS_ENUM ('.
+ log_rule("sp_enum_paren");
+ return(options::sp_enum_paren());
+ }
+ }
+
+ if (chunk_is_token(second, CT_ASSIGN))
+ {
+ if (second->flags.test(PCF_IN_ENUM))
+ {
+ // Add or remove space before assignment '=' in enum.
+ // Overrides sp_enum_assign.
+ if (options::sp_enum_before_assign() != IARF_IGNORE)
+ {
+ log_rule("sp_enum_before_assign");
+ return(options::sp_enum_before_assign());
+ }
+ // Add or remove space around assignment '=' in enum.
+ log_rule("sp_enum_assign");
+ return(options::sp_enum_assign());
+ }
+
+ // Add or remove space around assignment operator '=' in a prototype.
+ // If set to ignore, use sp_assign.
+ if ( (options::sp_assign_default() != IARF_IGNORE)
+ && get_chunk_parent_type(second) == CT_FUNC_PROTO)
+ {
+ log_rule("sp_assign_default");
+ return(options::sp_assign_default());
+ }
+
+ // Add or remove space before assignment operator '=', '+=', etc.
+ // Overrides sp_assign.
+ if (options::sp_before_assign() != IARF_IGNORE)
+ {
+ log_rule("sp_before_assign");
+ return(options::sp_before_assign());
+ }
+ // Add or remove space around assignment operator '=', '+=', etc.
+ log_rule("sp_assign");
+ return(options::sp_assign());
+ }
+
+ if (chunk_is_token(second, CT_ASSIGN_DEFAULT_ARG))
+ {
+ // Add or remove space around assignment operator '=' in a prototype.
+ // If set to ignore, use sp_assign.
+ if ( (options::sp_assign_default() != IARF_IGNORE)
+ && get_chunk_parent_type(second) == CT_FUNC_PROTO)
+ {
+ log_rule("sp_assign_default");
+ return(options::sp_assign_default());
+ }
+
+ // Add or remove space before assignment operator '=', '+=', etc.
+ // Overrides sp_assign.
+ if (options::sp_before_assign() != IARF_IGNORE)
+ {
+ log_rule("sp_before_assign");
+ return(options::sp_before_assign());
+ }
+ // Add or remove space around assignment operator '=', '+=', etc.
+ log_rule("sp_assign");
+ return(options::sp_assign());
+ }
+
+ if (chunk_is_token(first, CT_ASSIGN))
+ {
+ if (first->flags.test(PCF_IN_ENUM))
+ {
+ // Add or remove space after assignment '=' in enum.
+ // Overrides sp_enum_assign.
+ if (options::sp_enum_after_assign() != IARF_IGNORE)
+ {
+ log_rule("sp_enum_after_assign");
+ return(options::sp_enum_after_assign());
+ }
+ // Add or remove space around assignment '=' in enum.
+ log_rule("sp_enum_assign");
+ return(options::sp_enum_assign());
+ }
+
+ // Add or remove space around assignment operator '=' in a prototype.
+ // If set to ignore, use sp_assign.
+ if ( (options::sp_assign_default() != IARF_IGNORE)
+ && get_chunk_parent_type(first) == CT_FUNC_PROTO)
+ {
+ log_rule("sp_assign_default");
+ return(options::sp_assign_default());
+ }
+
+ // Add or remove space after assignment operator '=', '+=', etc.
+ // Overrides sp_assign.
+ if (options::sp_after_assign() != IARF_IGNORE)
+ {
+ log_rule("sp_after_assign");
+ return(options::sp_after_assign());
+ }
+ // Add or remove space around assignment operator '=', '+=', etc.
+ log_rule("sp_assign");
+ return(options::sp_assign());
+ }
+
+ if ( chunk_is_token(first, CT_TRAILING_RET)
+ || chunk_is_token(first, CT_CPP_LAMBDA_RET)
+ || chunk_is_token(second, CT_TRAILING_RET)
+ || chunk_is_token(second, CT_CPP_LAMBDA_RET))
+ {
+ // Add or remove space around trailing return operator '->'.
+ log_rule("sp_trailing_return");
+ return(options::sp_trailing_return());
+ }
+
+ if (chunk_is_token(first, CT_ASSIGN_DEFAULT_ARG))
+ {
+ // Add or remove space around assignment operator '=' in a prototype.
+ // If set to ignore, use sp_assign.
+ if ( (options::sp_assign_default() != IARF_IGNORE)
+ && get_chunk_parent_type(first) == CT_FUNC_PROTO)
+ {
+ log_rule("sp_assign_default");
+ return(options::sp_assign_default());
+ }
+
+ // Add or remove space after assignment operator '=', '+=', etc.
+ // Overrides sp_assign.
+ if (options::sp_after_assign() != IARF_IGNORE)
+ {
+ log_rule("sp_after_assign");
+ return(options::sp_after_assign());
+ }
+ // Add or remove space around assignment operator '=', '+=', etc.
+ log_rule("sp_assign");
+ return(options::sp_assign());
+ }
+
+ if (chunk_is_token(first, CT_BIT_COLON))
+ {
+ if ( first->flags.test(PCF_IN_ENUM)
+ || first->parent_type == CT_ENUM)
+ {
+ // Add or remove space around assignment ':' in enum.
+ log_rule("sp_enum_colon");
+ return(options::sp_enum_colon());
+ }
+ }
+
+ if (chunk_is_token(second, CT_BIT_COLON))
+ {
+ if ( second->flags.test(PCF_IN_ENUM)
+ || second->parent_type == CT_ENUM)
+ {
+ // Add or remove space around assignment ':' in enum.
+ log_rule("sp_enum_colon");
+ return(options::sp_enum_colon());
+ }
+ }
+
+ if ( chunk_is_token(first, CT_OC_AVAILABLE_VALUE)
+ || chunk_is_token(second, CT_OC_AVAILABLE_VALUE))
+ {
+ log_rule("IGNORE");
+ return(IARF_IGNORE);
+ }
+
+ if (language_is_set(LANG_OC))
+ {
+ if (chunk_is_token(second, CT_OC_BLOCK_CARET))
+ {
+ // (OC) Add or remove space before a block pointer caret,
+ // i.e. '^int (int arg){...}' vs. ' ^int (int arg){...}'.
+ log_rule("sp_before_oc_block_caret");
+ return(options::sp_before_oc_block_caret());
+ }
+
+ if (chunk_is_token(first, CT_OC_BLOCK_CARET))
+ {
+ // (OC) Add or remove space after a block pointer caret,
+ // i.e. '^int (int arg){...}' vs. '^ int (int arg){...}'.
+ log_rule("sp_after_oc_block_caret");
+ return(options::sp_after_oc_block_caret());
+ }
+
+ if (chunk_is_token(second, CT_OC_MSG_FUNC))
+ {
+ if ( (options::sp_after_oc_msg_receiver() == IARF_REMOVE)
+ && ( (first->type != CT_SQUARE_CLOSE)
+ && (first->type != CT_FPAREN_CLOSE)
+ && (first->type != CT_PAREN_CLOSE)))
+ {
+ log_rule("FORCE");
+ return(IARF_FORCE);
+ }
+ // (OC) Add or remove space between the receiver and selector in a message,
+ // as in '[receiver selector ...]'.
+ log_rule("sp_after_oc_msg_receiver");
+ return(options::sp_after_oc_msg_receiver());
+ }
+ }
+
+ // c++17 structured bindings e.g., "auto [x, y, z]" vs. a[x, y, z]" or "auto const [x, y, z]" vs. "auto const[x, y, z]"
+ if ( language_is_set(LANG_CPP)
+ && ( chunk_is_token(first, CT_BYREF)
+ || chunk_is_token(first, CT_QUALIFIER)
+ || chunk_is_token(first, CT_TYPE))
+ && chunk_is_token(second, CT_SQUARE_OPEN)
+ && get_chunk_parent_type(second) != CT_OC_MSG
+ && get_chunk_parent_type(second) != CT_CS_SQ_STMT)
+ {
+ // Add or remove space before C++17 structured bindings.
+ log_rule("sp_cpp_before_struct_binding");
+ return(options::sp_cpp_before_struct_binding());
+ }
+
+ // "a [x]" vs. "a[x]"
+ if ( chunk_is_token(second, CT_SQUARE_OPEN)
+ && ( get_chunk_parent_type(second) != CT_OC_MSG
+ && get_chunk_parent_type(second) != CT_CS_SQ_STMT
+ && get_chunk_parent_type(second) != CT_CPP_LAMBDA))
+ {
+ if ( second->flags.test(PCF_IN_SPAREN)
+ && (chunk_is_token(first, CT_IN)))
+ {
+ log_rule("FORCE");
+ return(IARF_FORCE);
+ }
+
+ if (chunk_is_token(first, CT_ASM_COLON))
+ {
+ // Add or remove space before '[' for asm block.
+ log_rule("sp_before_square_asm_block");
+ return(options::sp_before_square_asm_block());
+ }
+
+ if (first->flags.test(PCF_VAR_DEF))
+ {
+ // Add or remove space before '[' for a variable definition.
+ log_rule("sp_before_vardef_square");
+ return(options::sp_before_vardef_square());
+ }
+ // Add or remove space before '[' (except '[]').
+ log_rule("sp_before_square");
+ return(options::sp_before_square());
+ }
+
+ // "byte[]" vs. "byte []"
+ if (chunk_is_token(second, CT_TSQUARE))
+ {
+ // Add or remove space before '[]'.
+ log_rule("sp_before_squares");
+ return(options::sp_before_squares());
+ }
+
+ if ( (options::sp_angle_shift() != IARF_IGNORE)
+ && chunk_is_token(first, CT_ANGLE_CLOSE)
+ && chunk_is_token(second, CT_ANGLE_CLOSE))
+ {
+ // Add or remove space between '>' and '>' in '>>' (template stuff).
+ log_rule("sp_angle_shift");
+ return(options::sp_angle_shift());
+ }
+
+ // spacing around template < > stuff
+ if ( chunk_is_token(first, CT_ANGLE_OPEN)
+ || chunk_is_token(second, CT_ANGLE_CLOSE))
+ {
+ if ( chunk_is_token(first, CT_ANGLE_OPEN)
+ && chunk_is_token(second, CT_ANGLE_CLOSE))
+ {
+ // Add or remove space inside '<>'.
+ log_rule("sp_inside_angle_empty");
+ return(options::sp_inside_angle_empty());
+ }
+ // Add or remove space inside '<' and '>'.
+ log_rule("sp_inside_angle");
+ iarf_e op = options::sp_inside_angle();
+
+ // special: if we're not supporting digraphs, then we shouldn't create them!
+ if ( (op == IARF_REMOVE)
+ && !options::enable_digraphs()
+ && chunk_is_token(first, CT_ANGLE_OPEN)
+ && chunk_is_token(second, CT_DC_MEMBER))
+ {
+ op = IARF_IGNORE;
+ }
+ return(op);
+ }
+
+ if (chunk_is_token(second, CT_ANGLE_OPEN))
+ {
+ if ( chunk_is_token(first, CT_TEMPLATE)
+ && (options::sp_template_angle() != IARF_IGNORE))
+ {
+ // Add or remove space between 'template' and '<'.
+ // If set to ignore, sp_before_angle is used.
+ log_rule("sp_template_angle");
+ return(options::sp_template_angle());
+ }
+
+ if (first->type != CT_QUALIFIER)
+ {
+ // Add or remove space before '<'.
+ log_rule("sp_before_angle");
+ return(options::sp_before_angle());
+ }
+ }
+
+ if (chunk_is_token(first, CT_ANGLE_CLOSE))
+ {
+ if ( chunk_is_token(second, CT_WORD)
+ || CharTable::IsKw1(second->str[0]))
+ {
+ // Add or remove space between '>' and a word as in 'List<byte> m;' or
+ // 'template <typename T> static ...'.
+ log_rule("sp_angle_word");
+ return(options::sp_angle_word());
+ }
+
+ if ( chunk_is_token(second, CT_FPAREN_OPEN)
+ || chunk_is_token(second, CT_PAREN_OPEN))
+ {
+ Chunk *next = second->GetNextNcNnl();
+
+ if (chunk_is_token(next, CT_FPAREN_CLOSE))
+ {
+ // Add or remove space between '>' and '()' as found in 'new List<byte>();'.
+ log_rule("sp_angle_paren_empty");
+ return(options::sp_angle_paren_empty());
+ }
+ // Add or remove space between '>' and '(' as found in 'new List<byte>(foo);'.
+ log_rule("sp_angle_paren");
+ return(options::sp_angle_paren());
+ }
+
+ if (chunk_is_token(second, CT_DC_MEMBER))
+ {
+ // Add or remove space before the '::' operator.
+ log_rule("sp_before_dc");
+ return(options::sp_before_dc());
+ }
+
+ if ( second->type != CT_BYREF
+ && second->type != CT_PTR_TYPE
+ && second->type != CT_BRACE_OPEN
+ && second->type != CT_PAREN_CLOSE)
+ {
+ if ( chunk_is_token(second, CT_CLASS_COLON)
+ && options::sp_angle_colon() != IARF_IGNORE)
+ {
+ // Add or remove space between '>' and ':'.
+ log_rule("sp_angle_colon");
+ return(options::sp_angle_colon());
+ }
+
+ // Whether sp_after_angle takes precedence over sp_inside_fparen. This was the
+ // historic behavior, but is probably not the desired behavior, so this is off
+ // by default.
+ if ( chunk_is_token(second, CT_FPAREN_CLOSE)
+ && options::sp_inside_fparen() != IARF_IGNORE
+ && !options::use_sp_after_angle_always())
+ {
+ // Add or remove space between '>' and ')'.
+ log_rule("sp_inside_fparen");
+ return(options::sp_inside_fparen());
+ }
+ // Add or remove space after '>'.
+ log_rule("sp_after_angle");
+ return(options::sp_after_angle());
+ }
+ }
+
+ if (chunk_is_token(first, CT_BYREF)) // see the tests cpp:34509-34512
+ {
+ if (chunk_is_token(second, CT_PAREN_OPEN))
+ {
+ // Add or remove space after a reference sign '&', if followed by an open
+ // parenthesis, as in 'char& (*)()'.
+ log_rule("sp_byref_paren");
+ return(options::sp_byref_paren());
+ }
+ else if ( get_chunk_parent_type(first) == CT_FUNC_DEF // Issue #3197, #3210
+ || get_chunk_parent_type(first) == CT_FUNC_PROTO)
+ {
+ // Add or remove space after a reference sign '&', if followed by a function
+ // prototype or function definition.
+ log_rule("sp_after_byref_func"); // byref 2
+ return(options::sp_after_byref_func());
+ }
+ else if ( CharTable::IsKw1(second->str[0])
+ && ( options::sp_after_byref() != IARF_IGNORE
+ || ( !chunk_is_token(second, CT_FUNC_PROTO)
+ && !chunk_is_token(second, CT_FUNC_DEF))))
+ {
+ // Add or remove space after reference sign '&', if followed by a word.
+ log_rule("sp_after_byref"); // byref 1
+ return(options::sp_after_byref());
+ }
+ }
+
+ if ( chunk_is_token(second, CT_BYREF)
+ && !chunk_is_token(first, CT_PAREN_OPEN)) // Issue #1804
+ {
+ if ( get_chunk_parent_type(second) == CT_FUNC_DEF // Issue #3197, #3210
+ || get_chunk_parent_type(second) == CT_FUNC_PROTO)
+ {
+ // Add or remove space before a reference sign '&', if followed by a function
+ // prototype or function definition.
+ log_rule("sp_before_byref_func"); // byref 4
+ return(options::sp_before_byref_func());
+ }
+ Chunk *next = second->GetNext();
+
+ if ( next->IsNotNullChunk()
+ && ( chunk_is_token(next, CT_COMMA)
+ || chunk_is_token(next, CT_FPAREN_CLOSE)
+ || chunk_is_token(next, CT_SEMICOLON)))
+ {
+ if (options::sp_before_unnamed_byref() != IARF_IGNORE)
+ {
+ // Add or remove space before a reference sign '&' that isn't followed by a
+ // variable name. If set to 'ignore', sp_before_byref is used instead.
+ log_rule("sp_before_unnamed_byref"); // byref 5
+ return(options::sp_before_unnamed_byref());
+ }
+ else
+ {
+ // Add or remove space before a reference sign '&'.
+ log_rule("sp_before_byref"); // byref 3
+ return(options::sp_before_byref());
+ }
+ }
+ // Add or remove space before a reference sign '&'.
+ log_rule("sp_before_byref"); // byref 3
+ return(options::sp_before_byref());
+ }
+
+ if (chunk_is_token(first, CT_SPAREN_CLOSE))
+ {
+ if (chunk_is_token(second, CT_BRACE_OPEN))
+ {
+ if (get_chunk_parent_type(second) == CT_CATCH)
+ {
+ if ( language_is_set(LANG_OC)
+ && (options::sp_oc_catch_brace() != IARF_IGNORE))
+ {
+ // (OC) Add or remove space before the '{' of a '@catch' statement, if the '{'
+ // and '@catch' are on the same line, as in '@catch (decl) <here> {'.
+ // If set to ignore, sp_catch_brace is used.
+ // only to help the vim command }}
+ log_rule("sp_oc_catch_brace");
+ return(options::sp_oc_catch_brace());
+ }
+
+ if (options::sp_catch_brace() != IARF_IGNORE)
+ {
+ // Add or remove space before the '{' of a 'catch' statement, if the '{' and
+ // 'catch' are on the same line, as in 'catch (decl) <here> {'.
+ log_rule("sp_catch_brace");
+ return(options::sp_catch_brace());
+ }
+ }
+
+ if (options::sp_sparen_brace() != IARF_IGNORE)
+ {
+ // Add or remove space between ')' and '{' of control statements.
+ log_rule("sp_sparen_brace");
+ return(options::sp_sparen_brace());
+ }
+ }
+
+ if ( !second->IsComment()
+ && (options::sp_after_sparen() != IARF_IGNORE))
+ {
+ // Add or remove space after ')' of control statements.
+ log_rule("sp_after_sparen");
+ return(options::sp_after_sparen());
+ }
+ }
+
+ if ( chunk_is_token(second, CT_FPAREN_OPEN)
+ && get_chunk_parent_type(first) == CT_OPERATOR
+ && (options::sp_after_operator_sym() != IARF_IGNORE))
+ {
+ if ( (options::sp_after_operator_sym_empty() != IARF_IGNORE)
+ && chunk_is_token(second, CT_FPAREN_OPEN))
+ {
+ Chunk *next = second->GetNextNcNnl();
+
+ if (chunk_is_token(next, CT_FPAREN_CLOSE))
+ {
+ // Overrides sp_after_operator_sym when the operator has no arguments, as in
+ // 'operator *()'.
+ log_rule("sp_after_operator_sym_empty");
+ return(options::sp_after_operator_sym_empty());
+ }
+ }
+ // Add or remove space between the operator symbol and the open parenthesis, as
+ // in 'operator ++('.
+ log_rule("sp_after_operator_sym");
+ return(options::sp_after_operator_sym());
+ }
+
+ // Issue #2270
+ // Translations under vala
+ if ( language_is_set(LANG_VALA)
+ && chunk_is_token(first, CT_FUNC_CALL))
+ {
+ if ( chunk_is_str(first, "_")
+ && chunk_is_token(second, CT_FPAREN_OPEN)
+ && (options::sp_vala_after_translation() != IARF_IGNORE))
+ {
+ // Add or remove space after '_'.
+ log_rule("sp_vala_after_translation");
+ return(options::sp_vala_after_translation());
+ }
+ }
+
+ if ( chunk_is_token(first, CT_MACRO_OPEN)
+ || chunk_is_token(first, CT_MACRO_CLOSE)
+ || chunk_is_token(first, CT_MACRO_ELSE))
+ {
+ if (chunk_is_token(second, CT_FPAREN_OPEN))
+ {
+ // TODO: provide some test data to check this block
+ // Add or remove space between function name and '(' on function calls.
+ log_rule("sp_func_call_paren");
+ return(options::sp_func_call_paren());
+ }
+ log_rule("IGNORE");
+ return(IARF_IGNORE);
+ }
+
+ // spaces between function and open paren
+ if ( chunk_is_token(first, CT_FUNC_CALL)
+ || chunk_is_token(first, CT_FUNCTION) // Issue #2665
+ || chunk_is_token(first, CT_FUNC_CTOR_VAR)
+ || chunk_is_token(first, CT_CNG_HASINC)
+ || chunk_is_token(first, CT_CNG_HASINCN)
+ || ( chunk_is_token(first, CT_BRACE_CLOSE)
+ && first->parent_type == CT_BRACED_INIT_LIST
+ && chunk_is_token(second, CT_FPAREN_OPEN)))
+ {
+ if ( (options::sp_func_call_paren_empty() != IARF_IGNORE)
+ && chunk_is_token(second, CT_FPAREN_OPEN))
+ {
+ Chunk *next = second->GetNextNcNnl();
+
+ if (chunk_is_token(next, CT_FPAREN_CLOSE))
+ {
+ // Add or remove space between function name and '()' on function calls without
+ // parameters. If set to 'ignore' (the default), sp_func_call_paren is used.
+ log_rule("sp_func_call_paren_empty");
+ return(options::sp_func_call_paren_empty());
+ }
+ }
+ // Add or remove space between function name and '(' on function calls.
+ log_rule("sp_func_call_paren");
+ return(options::sp_func_call_paren());
+ }
+
+ if (chunk_is_token(first, CT_FUNC_CALL_USER))
+ {
+ // Add or remove space between the user function name and '(' on function
+ // calls. You need to set a keyword to be a user function in the config file,
+ // like:
+ // set func_call_user tr _ i18n
+ log_rule("sp_func_call_user_paren");
+ return(options::sp_func_call_user_paren());
+ }
+
+ if ( chunk_is_token(first, CT_ATTRIBUTE)
+ && chunk_is_paren_open(second))
+ {
+ // Add or remove space between '__attribute__' and '('.
+ log_rule("sp_attribute_paren");
+ return(options::sp_attribute_paren());
+ }
+
+ if (chunk_is_token(first, CT_FUNC_DEF))
+ {
+ if ( (options::sp_func_def_paren_empty() != IARF_IGNORE)
+ && chunk_is_token(second, CT_FPAREN_OPEN))
+ {
+ Chunk *next = second->GetNextNcNnl();
+
+ if (chunk_is_token(next, CT_FPAREN_CLOSE))
+ {
+ // Add or remove space between function name and '()' on function definition
+ // without parameters.
+ log_rule("sp_func_def_paren_empty");
+ return(options::sp_func_def_paren_empty());
+ }
+ }
+ // Add or remove space between function name and '(' on function definition.
+ log_rule("sp_func_def_paren");
+ return(options::sp_func_def_paren());
+ }
+
+ if ( chunk_is_token(first, CT_CPP_CAST)
+ || chunk_is_token(first, CT_TYPE_WRAP))
+ {
+ // Add or remove space between the type and open parenthesis in a C++ cast,
+ // i.e. 'int(exp)' vs. 'int (exp)'.
+ log_rule("sp_cpp_cast_paren");
+ return(options::sp_cpp_cast_paren());
+ }
+
+ if ( chunk_is_token(first, CT_SPAREN_CLOSE)
+ && chunk_is_token(second, CT_WHEN))
+ {
+ // TODO: provide some test data to check this block
+ log_rule("FORCE");
+ return(IARF_FORCE); // TODO: make this configurable?
+ }
+
+ if ( chunk_is_token(first, CT_PAREN_CLOSE)
+ && ( chunk_is_token(second, CT_PAREN_OPEN)
+ || chunk_is_token(second, CT_FPAREN_OPEN)))
+ {
+ // "(int)a" vs. "(int) a" or "cast(int)a" vs. "cast(int) a"
+ if ( get_chunk_parent_type(first) == CT_C_CAST
+ || get_chunk_parent_type(first) == CT_D_CAST)
+ {
+ // Add or remove space after C/D cast, i.e. 'cast(int)a' vs. 'cast(int) a' or
+ // '(int)a' vs. '(int) a'.
+ log_rule("sp_after_cast");
+ return(options::sp_after_cast());
+ }
+ // Probably a parenthesized indirect function call or similar (issue #3260)
+ log_rule("sp_cparen_oparen");
+ return(options::sp_cparen_oparen());
+ }
+
+ // handle the space between parens in fcn type 'void (*f)(void)'
+ if (chunk_is_token(first, CT_TPAREN_CLOSE))
+ {
+ // Add or remove space between the ')' and '(' in a function type, as in
+ // 'void (*x)(...)'.
+ log_rule("sp_after_tparen_close");
+ return(options::sp_after_tparen_close());
+ }
+
+ // ")(" vs. ") ("
+ if ( ( chunk_is_str(first, ")")
+ && chunk_is_str(second, "("))
+ || ( chunk_is_paren_close(first)
+ && chunk_is_paren_open(second)))
+ {
+ // Add or remove space between back-to-back parentheses, i.e. ')(' vs. ') ('.
+ log_rule("sp_cparen_oparen");
+ return(options::sp_cparen_oparen());
+ }
+
+ if ( chunk_is_token(first, CT_FUNC_PROTO)
+ || ( chunk_is_token(second, CT_FPAREN_OPEN)
+ && get_chunk_parent_type(second) == CT_FUNC_PROTO))
+ {
+ if ( (options::sp_func_proto_paren_empty() != IARF_IGNORE)
+ && chunk_is_token(second, CT_FPAREN_OPEN))
+ {
+ Chunk *next = second->GetNextNcNnl();
+
+ if (chunk_is_token(next, CT_FPAREN_CLOSE))
+ {
+ // Add or remove space between function name and '()' on function declaration
+ // without parameters.
+ log_rule("sp_func_proto_paren_empty");
+ return(options::sp_func_proto_paren_empty());
+ }
+ }
+ // Add or remove space between function name and '(' on function declaration.
+ log_rule("sp_func_proto_paren");
+ return(options::sp_func_proto_paren());
+ }
+
+ // Issue #2437
+ if ( chunk_is_token(first, CT_FUNC_TYPE)
+ && chunk_is_token(second, CT_FPAREN_OPEN))
+ {
+ // Add or remove space between function name and '(' with a typedef specifier.
+ log_rule("sp_func_type_paren");
+ return(options::sp_func_type_paren());
+ }
+
+ if ( chunk_is_token(first, CT_FUNC_CLASS_DEF)
+ || chunk_is_token(first, CT_FUNC_CLASS_PROTO))
+ {
+ if ( (options::sp_func_class_paren_empty() != IARF_IGNORE)
+ && chunk_is_token(second, CT_FPAREN_OPEN))
+ {
+ Chunk *next = second->GetNextNcNnl();
+
+ if (chunk_is_token(next, CT_FPAREN_CLOSE))
+ {
+ // Add or remove space between a constructor without parameters or destructor
+ // and '()'.
+ log_rule("sp_func_class_paren_empty");
+ return(options::sp_func_class_paren_empty());
+ }
+ }
+ // Add or remove space between a constructor/destructor and the open
+ // parenthesis.
+ log_rule("sp_func_class_paren");
+ return(options::sp_func_class_paren());
+ }
+
+ if ( chunk_is_token(first, CT_CLASS)
+ && !first->flags.test(PCF_IN_OC_MSG))
+ {
+ log_rule("FORCE");
+ return(IARF_FORCE);
+ }
+
+ if ( chunk_is_token(first, CT_BRACE_OPEN)
+ && chunk_is_token(second, CT_BRACE_CLOSE))
+ {
+ // Add or remove space inside '{}'.
+ log_rule("sp_inside_braces_empty");
+ return(options::sp_inside_braces_empty());
+ }
+
+ if ( ( chunk_is_token(first, CT_TYPE) // Issue #2428
+ || chunk_is_token(first, CT_ANGLE_CLOSE))
+ && chunk_is_token(second, CT_BRACE_OPEN)
+ && get_chunk_parent_type(second) == CT_BRACED_INIT_LIST)
+ {
+ iarf_flags_t arg = iarf_flags_t{ options::sp_type_brace_init_lst() };
+
+ if ( arg != IARF_IGNORE
+ || get_chunk_parent_type(first) != CT_DECLTYPE)
+ {
+ // 'int{9}' vs. 'int {9}'
+ // Add or remove space between type and open brace of an unnamed temporary
+ // direct-list-initialization.
+ log_rule("sp_type_brace_init_lst");
+ return(arg);
+ }
+ }
+
+ if ( ( chunk_is_token(first, CT_WORD) // Issue #2428
+ || chunk_is_token(first, CT_SQUARE_CLOSE)
+ || chunk_is_token(first, CT_TSQUARE))
+ && chunk_is_token(second, CT_BRACE_OPEN)
+ && get_chunk_parent_type(second) == CT_BRACED_INIT_LIST)
+ {
+ // Add or remove space between a variable and '{' for C++ uniform
+ // initialization.
+ auto arg = iarf_flags_t{ options::sp_word_brace_init_lst() };
+
+ if ( arg != IARF_IGNORE
+ || get_chunk_parent_type(first) != CT_DECLTYPE)
+ {
+ // 'a{9}' vs. 'a {9}'
+ // Add or remove space between variable/word and open brace of an unnamed
+ // temporary direct-list-initialization.
+ log_rule("sp_word_brace_init_lst");
+ return(arg);
+ }
+ }
+
+ if (chunk_is_token(second, CT_BRACE_CLOSE))
+ {
+ if (get_chunk_parent_type(second) == CT_ENUM)
+ {
+ // Add or remove space inside enum '{' and '}'.
+ log_rule("sp_inside_braces_enum");
+ return(options::sp_inside_braces_enum());
+ }
+
+ if ( get_chunk_parent_type(second) == CT_STRUCT
+ || get_chunk_parent_type(second) == CT_UNION)
+ {
+ // Fix for issue #1240 adding space in struct initializers
+ Chunk *tmp = chunk_skip_to_match_rev(second)->GetPrevNcNnl();
+
+ if (chunk_is_token(tmp, CT_ASSIGN))
+ {
+ // TODO: provide some test data to check this block
+ log_rule("IGNORE");
+ return(IARF_IGNORE);
+ }
+ // Add or remove space inside struct/union '{' and '}'.
+ log_rule("sp_inside_braces_struct");
+ return(options::sp_inside_braces_struct());
+ }
+ else if ( language_is_set(LANG_OC)
+ && get_chunk_parent_type(second) == CT_OC_AT
+ && options::sp_inside_braces_oc_dict() != IARF_IGNORE)
+ {
+ // (OC) Add or remove space inside Objective-C boxed dictionary '{' and '}'
+ log_rule("sp_inside_braces_oc_dict");
+ return(options::sp_inside_braces_oc_dict());
+ }
+
+ if (get_chunk_parent_type(second) == CT_BRACED_INIT_LIST)
+ {
+ // Add or remove space between nested braces, i.e. '{{' vs. '{ {'.
+ // only to help the vim command }}}}
+ if ( options::sp_brace_brace() != IARF_IGNORE
+ && chunk_is_token(first, CT_BRACE_CLOSE)
+ && get_chunk_parent_type(first) == CT_BRACED_INIT_LIST)
+ {
+ log_rule("sp_brace_brace");
+ return(options::sp_brace_brace());
+ }
+
+ if (options::sp_before_type_brace_init_lst_close() != IARF_IGNORE)
+ {
+ // Add or remove space before close brace in an unnamed temporary
+ // direct-list-initialization
+ // if statement is a brace_init_lst
+ // works only if sp_brace_brace is set to ignore.
+ log_rule("sp_before_type_brace_init_lst_close");
+ return(options::sp_before_type_brace_init_lst_close());
+ }
+
+ if (options::sp_inside_type_brace_init_lst() != IARF_IGNORE)
+ {
+ // Add or remove space inside an unnamed temporary direct-list-initialization.
+ // if statement is a brace_init_lst
+ // works only if sp_brace_brace is set to ignore
+ // works only if sp_before_type_brace_init_lst_close is set to ignore.
+ log_rule("sp_inside_type_brace_init_lst");
+ return(options::sp_inside_type_brace_init_lst());
+ }
+ }
+ // Add or remove space inside '{' and '}'.
+ log_rule("sp_inside_braces");
+ return(options::sp_inside_braces());
+ }
+
+ if (chunk_is_token(first, CT_D_CAST))
+ {
+ log_rule("REMOVE");
+ return(IARF_REMOVE);
+ }
+
+ if ( chunk_is_token(first, CT_PP_DEFINED)
+ && chunk_is_token(second, CT_PAREN_OPEN))
+ {
+ // Add or remove space between 'defined' and '(' in '#if defined (FOO)'.
+ log_rule("sp_defined_paren");
+ return(options::sp_defined_paren());
+ }
+
+ if (chunk_is_token(first, CT_THROW))
+ {
+ if (chunk_is_token(second, CT_PAREN_OPEN))
+ {
+ // Add or remove space between 'throw' and '(' in 'throw (something)'.
+ log_rule("sp_throw_paren");
+ return(options::sp_throw_paren());
+ }
+ // Add or remove space between 'throw' and anything other than '(' as in
+ // '@throw [...];'.
+ log_rule("sp_after_throw");
+ return(options::sp_after_throw());
+ }
+
+ if ( chunk_is_token(first, CT_THIS)
+ && chunk_is_token(second, CT_PAREN_OPEN))
+ {
+ // Add or remove space between 'this' and '(' in 'this (something)'.
+ log_rule("sp_this_paren");
+ return(options::sp_this_paren());
+ }
+
+ if ( chunk_is_token(first, CT_STATE)
+ && chunk_is_token(second, CT_PAREN_OPEN))
+ {
+ log_rule("ADD");
+ return(IARF_ADD);
+ }
+
+ if ( chunk_is_token(first, CT_DELEGATE)
+ && chunk_is_token(second, CT_PAREN_OPEN))
+ {
+ log_rule("REMOVE");
+ return(IARF_REMOVE);
+ }
+
+ if ( chunk_is_token(first, CT_MEMBER)
+ || chunk_is_token(second, CT_MEMBER))
+ {
+ // Add or remove space around the '.' or '->' operators.
+ log_rule("sp_member");
+ return(options::sp_member());
+ }
+
+ if (chunk_is_token(first, CT_C99_MEMBER))
+ {
+ // always remove space(s) after then '.' of a C99-member
+ log_rule("REMOVE");
+ return(IARF_REMOVE);
+ }
+
+ if ( chunk_is_token(first, CT_SUPER)
+ && chunk_is_token(second, CT_PAREN_OPEN))
+ {
+ // Add or remove space between 'super' and '(' in 'super (something)'.
+ log_rule("sp_super_paren");
+ return(options::sp_super_paren());
+ }
+
+ if ( chunk_is_token(first, CT_FPAREN_CLOSE)
+ && chunk_is_token(second, CT_BRACE_OPEN))
+ {
+ if ( language_is_set(LANG_JAVA)
+ && get_chunk_parent_type(second) == CT_DOUBLE_BRACE)
+ {
+ // (Java) Add or remove space between ')' and '{{' of double brace initializer.
+ // only to help the vim command }}
+ log_rule("sp_fparen_dbrace");
+ return(options::sp_fparen_dbrace());
+ }
+
+ // To fix issue #1234
+ // check for initializers and add space or ignore based on the option.
+ if (get_chunk_parent_type(first) == CT_FUNC_CALL)
+ {
+ Chunk *tmp = first->GetPrevType(get_chunk_parent_type(first), first->level);
+ tmp = tmp->GetPrevNcNnl();
+
+ if (chunk_is_token(tmp, CT_NEW))
+ {
+ // Add or remove space between ')' and '{' of s function call in object
+ // initialization.
+ // Overrides sp_fparen_brace.
+ log_rule("sp_fparen_brace_initializer");
+ return(options::sp_fparen_brace_initializer());
+ }
+ }
+ // Add or remove space between ')' and '{' of function.
+ log_rule("sp_fparen_brace");
+ return(options::sp_fparen_brace());
+ }
+
+ if ( chunk_is_token(first, CT_D_TEMPLATE)
+ || chunk_is_token(second, CT_D_TEMPLATE))
+ {
+ log_rule("REMOVE");
+ return(IARF_REMOVE);
+ }
+
+ if ( chunk_is_token(first, CT_ELSE)
+ && chunk_is_token(second, CT_BRACE_OPEN))
+ {
+ // Add or remove space between 'else' and '{' if on the same line.
+ log_rule("sp_else_brace");
+ return(options::sp_else_brace());
+ }
+
+ if ( chunk_is_token(first, CT_ELSE)
+ && chunk_is_token(second, CT_ELSEIF))
+ {
+ log_rule("FORCE");
+ return(IARF_FORCE);
+ }
+
+ if ( chunk_is_token(first, CT_FINALLY)
+ && chunk_is_token(second, CT_BRACE_OPEN))
+ {
+ // Add or remove space between 'finally' and '{' if on the same line.
+ log_rule("sp_finally_brace");
+ return(options::sp_finally_brace());
+ }
+
+ if ( chunk_is_token(first, CT_TRY)
+ && chunk_is_token(second, CT_BRACE_OPEN))
+ {
+ // Add or remove space between 'try' and '{' if on the same line.
+ log_rule("sp_try_brace");
+ return(options::sp_try_brace());
+ }
+
+ if ( chunk_is_token(first, CT_GETSET)
+ && chunk_is_token(second, CT_BRACE_OPEN))
+ {
+ // Add or remove space between get/set and '{' if on the same line.
+ log_rule("sp_getset_brace");
+ return(options::sp_getset_brace());
+ }
+
+ if ( chunk_is_token(first, CT_WORD)
+ && chunk_is_token(second, CT_BRACE_OPEN))
+ {
+ if (get_chunk_parent_type(first) == CT_NAMESPACE)
+ {
+ // Add or remove space between a variable and '{' for a namespace.
+ log_rule("sp_word_brace_ns");
+ return(options::sp_word_brace_ns());
+ }
+ }
+
+ if ( language_is_set(LANG_D)
+ && chunk_is_token(second, CT_PAREN_OPEN)
+ && get_chunk_parent_type(second) == CT_INVARIANT)
+ {
+ // (D) Add or remove space between 'invariant' and '('.
+ log_rule("sp_invariant_paren");
+ return(options::sp_invariant_paren());
+ }
+
+ if ( chunk_is_token(first, CT_PAREN_CLOSE)
+ && get_chunk_parent_type(first) != CT_DECLTYPE)
+ {
+ if ( language_is_set(LANG_D)
+ && get_chunk_parent_type(first) == CT_INVARIANT)
+ {
+ // (D) Add or remove space after the ')' in 'invariant (C) c'.
+ log_rule("sp_after_invariant_paren");
+ return(options::sp_after_invariant_paren());
+ }
+
+ // "(struct foo) {...}" vs. "(struct foo){...}"
+ if (chunk_is_token(second, CT_BRACE_OPEN))
+ {
+ // Add or remove space between ')' and '{'.
+ log_rule("sp_paren_brace");
+ return(options::sp_paren_brace());
+ }
+
+ // D-specific: "delegate(some thing) dg
+ if (get_chunk_parent_type(first) == CT_DELEGATE)
+ {
+ log_rule("ADD");
+ return(IARF_ADD);
+ }
+
+ // PAWN-specific: "state (condition) next"
+ if (get_chunk_parent_type(first) == CT_STATE)
+ {
+ log_rule("ADD");
+ return(IARF_ADD);
+ }
+
+ /* C++ new operator: new(bar) Foo */
+ if (get_chunk_parent_type(first) == CT_NEW)
+ {
+ // Add or remove space between ')' and type in 'new(foo) BAR'.
+ log_rule("sp_after_newop_paren");
+ return(options::sp_after_newop_paren());
+ }
+ }
+
+ /* "((" vs. "( (" or "))" vs. ") )" */
+ // Issue #1342
+ if ( ( chunk_is_str(first, "(")
+ && chunk_is_str(second, "("))
+ || ( chunk_is_str(first, ")")
+ && chunk_is_str(second, ")")))
+ {
+ if (get_chunk_parent_type(second) == CT_FUNC_CALL_USER)
+ {
+ // Add or remove space between nested parentheses with user functions,
+ // i.e. '((' vs. '( ('.
+ log_rule("sp_func_call_user_paren_paren");
+ return(options::sp_func_call_user_paren_paren());
+ }
+
+ if ( options::sp_sparen_paren() != IARF_IGNORE
+ && ( chunk_is_token(first, CT_SPAREN_OPEN)
+ || chunk_is_token(second, CT_SPAREN_CLOSE)))
+ {
+ // Add or remove space between nested parentheses with control
+ // statements, i.e. 'if ((' vs. 'if ( ('. Issue #3209
+ log_rule("sp_sparen_paren");
+ return(options::sp_sparen_paren());
+ }
+ // Add or remove space between nested parentheses, i.e. '((' vs. ') )'.
+ log_rule("sp_paren_paren");
+ return(options::sp_paren_paren());
+ }
+
+ // "foo(...)" vs. "foo( ... )"
+ if ( chunk_is_token(first, CT_FPAREN_OPEN)
+ || chunk_is_token(second, CT_FPAREN_CLOSE))
+ {
+ if ( (get_chunk_parent_type(first) == CT_FUNC_CALL_USER)
+ || ( (get_chunk_parent_type(second) == CT_FUNC_CALL_USER)
+ && ( (chunk_is_token(first, CT_WORD))
+ || (chunk_is_token(first, CT_SQUARE_CLOSE)))))
+ {
+ // Add or remove space inside user function '(' and ')'.
+ log_rule("sp_func_call_user_inside_fparen");
+ return(options::sp_func_call_user_inside_fparen());
+ }
+
+ if ( chunk_is_token(first, CT_FPAREN_OPEN)
+ && chunk_is_token(second, CT_FPAREN_CLOSE))
+ {
+ // Add or remove space inside empty function '()'.
+ log_rule("sp_inside_fparens");
+ return(options::sp_inside_fparens());
+ }
+ // Add or remove space inside function '(' and ')'.
+ log_rule("sp_inside_fparen");
+ return(options::sp_inside_fparen());
+ }
+
+ // "foo(...)" vs. "foo( ... )"
+ if ( chunk_is_token(first, CT_TPAREN_OPEN)
+ || chunk_is_token(second, CT_TPAREN_CLOSE))
+ {
+ // Add or remove space inside the first parentheses in a function type, as in
+ // 'void (*x)(...)'.
+ log_rule("sp_inside_tparen");
+ return(options::sp_inside_tparen());
+ }
+
+ if ( language_is_set(LANG_OC)
+ && chunk_is_token(first, CT_PAREN_CLOSE))
+ {
+ if ( first->flags.test(PCF_OC_RTYPE) // == CT_OC_RTYPE)
+ && ( get_chunk_parent_type(first) == CT_OC_MSG_DECL
+ || get_chunk_parent_type(first) == CT_OC_MSG_SPEC))
+ {
+ // (OC) Add or remove space after the first (type) in message specs,
+ // i.e. '-(int) f:(int)x;' vs. '-(int)f:(int)x;'.
+ log_rule("sp_after_oc_return_type");
+ return(options::sp_after_oc_return_type());
+ }
+
+ if ( get_chunk_parent_type(first) == CT_OC_MSG_SPEC
+ || get_chunk_parent_type(first) == CT_OC_MSG_DECL)
+ {
+ // (OC) Add or remove space after the (type) in message specs,
+ // i.e. '-(int)f: (int) x;' vs. '-(int)f: (int)x;'.
+ log_rule("sp_after_oc_type");
+ return(options::sp_after_oc_type());
+ }
+
+ if ( get_chunk_parent_type(first) == CT_OC_SEL
+ && second->type != CT_SQUARE_CLOSE)
+ {
+ // (OC) Add or remove space between '@selector(x)' and the following word,
+ // i.e. '@selector(foo) a:' vs. '@selector(foo)a:'.
+ log_rule("sp_after_oc_at_sel_parens");
+ return(options::sp_after_oc_at_sel_parens());
+ }
+ }
+
+ if ( language_is_set(LANG_OC)
+ && options::sp_inside_oc_at_sel_parens() != IARF_IGNORE)
+ {
+ if ( ( chunk_is_token(first, CT_PAREN_OPEN)
+ && ( get_chunk_parent_type(first) == CT_OC_SEL
+ || get_chunk_parent_type(first) == CT_OC_PROTOCOL))
+ || ( chunk_is_token(second, CT_PAREN_CLOSE)
+ && ( get_chunk_parent_type(second) == CT_OC_SEL
+ || get_chunk_parent_type(second) == CT_OC_PROTOCOL)))
+ {
+ // (OC) Add or remove space inside '@selector' parentheses,
+ // i.e. '@selector(foo)' vs. '@selector( foo )'.
+ // Also applies to '@protocol()' constructs.
+ log_rule("sp_inside_oc_at_sel_parens");
+ return(options::sp_inside_oc_at_sel_parens());
+ }
+ }
+
+ if ( chunk_is_token(second, CT_PAREN_OPEN)
+ && ( chunk_is_token(first, CT_OC_SEL)
+ || chunk_is_token(first, CT_OC_PROTOCOL)))
+ {
+ // (OC) Add or remove space between '@selector' and '(',
+ // i.e. '@selector(msgName)' vs. '@selector (msgName)'.
+ // Also applies to '@protocol()' constructs.
+ log_rule("sp_after_oc_at_sel");
+ return(options::sp_after_oc_at_sel());
+ }
+
+ /*
+ * C cast: "(int)" vs. "( int )"
+ * D cast: "cast(int)" vs. "cast( int )"
+ * CPP cast: "int(a + 3)" vs. "int( a + 3 )"
+ */
+ if (chunk_is_token(first, CT_PAREN_OPEN))
+ {
+ if ( get_chunk_parent_type(first) == CT_C_CAST
+ || get_chunk_parent_type(first) == CT_CPP_CAST
+ || get_chunk_parent_type(first) == CT_D_CAST)
+ {
+ // Add or remove spaces inside cast parentheses.
+ log_rule("sp_inside_paren_cast");
+ return(options::sp_inside_paren_cast());
+ }
+
+ if (get_chunk_parent_type(first) == CT_NEW)
+ {
+ if (options::sp_inside_newop_paren_open() != IARF_IGNORE)
+ {
+ // Add or remove space after the open parenthesis of the new operator,
+ // as in 'new(foo) BAR'.
+ // Overrides sp_inside_newop_paren.
+ log_rule("sp_inside_newop_paren_open");
+ return(options::sp_inside_newop_paren_open());
+ }
+
+ if (options::sp_inside_newop_paren() != IARF_IGNORE)
+ {
+ // Add or remove space inside parenthesis of the new operator
+ // as in 'new(foo) BAR'.
+ log_rule("sp_inside_newop_paren");
+ return(options::sp_inside_newop_paren());
+ }
+ }
+ log_rule("sp_inside_paren");
+ return(options::sp_inside_paren());
+ }
+
+ if (chunk_is_token(second, CT_PAREN_CLOSE))
+ {
+ if ( get_chunk_parent_type(second) == CT_C_CAST
+ || get_chunk_parent_type(second) == CT_CPP_CAST
+ || get_chunk_parent_type(second) == CT_D_CAST)
+ {
+ // Add or remove spaces inside cast parentheses.
+ log_rule("sp_inside_paren_cast");
+ return(options::sp_inside_paren_cast());
+ }
+
+ if (get_chunk_parent_type(second) == CT_NEW)
+ {
+ if (options::sp_inside_newop_paren_close() != IARF_IGNORE)
+ {
+ // Add or remove space before the close parenthesis of the new operator,
+ // as in 'new(foo) BAR'.
+ // Overrides sp_inside_newop_paren.
+ log_rule("sp_inside_newop_paren_close");
+ return(options::sp_inside_newop_paren_close());
+ }
+
+ if (options::sp_inside_newop_paren() != IARF_IGNORE)
+ {
+ // Add or remove space inside parenthesis of the new operator
+ // as in 'new(foo) BAR'.
+ log_rule("sp_inside_newop_paren");
+ return(options::sp_inside_newop_paren());
+ }
+ }
+ // Add or remove space inside '(' and ')'.
+ log_rule("sp_inside_paren");
+ return(options::sp_inside_paren());
+ }
+
+ if ( chunk_is_token(first, CT_SQUARE_OPEN)
+ && chunk_is_token(second, CT_SQUARE_CLOSE))
+ {
+ // Add or remove space inside '[]'.
+ log_rule("sp_inside_square_empty");
+ return(options::sp_inside_square_empty());
+ }
+
+ // "[3]" vs. "[ 3 ]" or for objective-c "@[@3]" vs. "@[ @3 ]"
+ if ( chunk_is_token(first, CT_SQUARE_OPEN)
+ || chunk_is_token(second, CT_SQUARE_CLOSE))
+ {
+ if ( language_is_set(LANG_OC)
+ && ( ( get_chunk_parent_type(first) == CT_OC_AT
+ && chunk_is_token(first, CT_SQUARE_OPEN))
+ || ( get_chunk_parent_type(second) == CT_OC_AT
+ && chunk_is_token(second, CT_SQUARE_CLOSE)))
+ && (options::sp_inside_square_oc_array() != IARF_IGNORE))
+ {
+ // (OC) Add or remove space inside a non-empty Objective-C boxed array '@[' and
+ // ']'. If set to ignore, sp_inside_square is used.
+ log_rule("sp_inside_square_oc_array");
+ return(options::sp_inside_square_oc_array());
+ }
+ // Add or remove space inside a non-empty '[' and ']'.
+ log_rule("sp_inside_square");
+ return(options::sp_inside_square());
+ }
+
+ if ( chunk_is_token(first, CT_SQUARE_CLOSE)
+ && chunk_is_token(second, CT_FPAREN_OPEN))
+ {
+ // Add or remove space between ']' and '(' when part of a function call.
+ log_rule("sp_square_fparen");
+ return(options::sp_square_fparen());
+ }
+
+ // "if(...)" vs. "if( ... )" etc.
+ if (chunk_is_token(second, CT_SPAREN_CLOSE))
+ {
+ if ( get_chunk_parent_type(second) == CT_FOR
+ && options::sp_inside_for_open() != IARF_IGNORE)
+ {
+ // Add or remove space before ')' of 'for' statements.
+ // Overrides sp_inside_for.
+ log_rule("sp_inside_for_close");
+ return(options::sp_inside_for_close());
+ }
+ else if (options::sp_inside_sparen_open() != IARF_IGNORE)
+ {
+ // Add or remove space before ')' of other control statements.
+ // Overrides sp_inside_sparen.
+ log_rule("sp_inside_sparen_close");
+ return(options::sp_inside_sparen_close());
+ }
+ }
+
+ if (chunk_is_token(first, CT_SPAREN_OPEN))
+ {
+ if ( get_chunk_parent_type(first) == CT_FOR
+ && options::sp_inside_for_open() != IARF_IGNORE)
+ {
+ // Add or remove space before ')' of 'for' statements.
+ // Overrides sp_inside_for.
+ log_rule("sp_inside_for_close");
+ return(options::sp_inside_for_close());
+ }
+ else if (options::sp_inside_sparen_open() != IARF_IGNORE)
+ {
+ // Add or remove space after '(' of other control statements.
+ // Overrides sp_inside_sparen.
+ log_rule("sp_inside_sparen_open");
+ return(options::sp_inside_sparen_open());
+ }
+ }
+
+ if (chunk_is_token(first, CT_SPAREN_OPEN))
+ {
+ if (get_chunk_parent_type(first) == CT_FOR)
+ {
+ // Add or remove space inside '(' and ')' of 'for' statements.
+ log_rule("sp_inside_for");
+ return(options::sp_inside_for());
+ }
+ else
+ {
+ // Add or remove space inside '(' and ')' of other control statements.
+ log_rule("sp_inside_sparen");
+ return(options::sp_inside_sparen());
+ }
+ }
+
+ if (chunk_is_token(second, CT_SPAREN_CLOSE))
+ {
+ if (get_chunk_parent_type(second) == CT_FOR)
+ {
+ // Add or remove space inside '(' and ')' of 'for' statements.
+ log_rule("sp_inside_for");
+ return(options::sp_inside_for());
+ }
+ else
+ {
+ // Add or remove space inside '(' and ')' of other control statements.
+ log_rule("sp_inside_sparen");
+ return(options::sp_inside_sparen());
+ }
+ }
+
+ if (chunk_is_token(first, CT_CLASS_COLON))
+ {
+ if ( get_chunk_parent_type(first) == CT_OC_CLASS
+ && ( first->GetPrevType(CT_OC_INTF, first->level, E_Scope::ALL)->IsNullChunk()
+ && first->GetPrevType(CT_OC_IMPL, first->level, E_Scope::ALL)->IsNullChunk()))
+ {
+ if (options::sp_after_oc_colon() != IARF_IGNORE)
+ {
+ // TODO: provide some test data to check this block
+ // (OC) Add or remove space after the colon in message specs,
+ // i.e. '-(int) f:(int) x;' vs. '-(int) f: (int) x;'.
+ log_rule("sp_after_oc_colon");
+ return(options::sp_after_oc_colon());
+ }
+ }
+
+ if (options::sp_after_class_colon() != IARF_IGNORE)
+ {
+ // Add or remove space after class ':'.
+ log_rule("sp_after_class_colon");
+ return(options::sp_after_class_colon());
+ }
+ }
+
+ if (chunk_is_token(second, CT_CLASS_COLON))
+ {
+ if ( language_is_set(LANG_OC)
+ && get_chunk_parent_type(second) == CT_OC_CLASS
+ && ( second->GetPrevType(CT_OC_INTF, second->level, E_Scope::ALL)->IsNullChunk()
+ && second->GetPrevType(CT_OC_IMPL, second->level, E_Scope::ALL)->IsNullChunk()))
+ {
+ if ( get_chunk_parent_type(second) == CT_OC_CLASS
+ && second->GetPrevType(CT_OC_INTF, second->level, E_Scope::ALL)->IsNullChunk())
+ {
+ if (options::sp_before_oc_colon() != IARF_IGNORE)
+ {
+ // TODO: provide some test data to check this block
+ // (OC) Add or remove space before the colon in message specs,
+ // i.e. '-(int) f: (int) x;' vs. '-(int) f : (int) x;'.
+ log_rule("sp_before_oc_colon");
+ return(options::sp_before_oc_colon());
+ }
+ }
+ }
+
+ if (options::sp_before_class_colon() != IARF_IGNORE)
+ {
+ // Add or remove space before class ':'.
+ log_rule("sp_before_class_colon");
+ return(options::sp_before_class_colon());
+ }
+ }
+
+ if (chunk_is_token(first, CT_CONSTR_COLON))
+ {
+ min_sp = options::indent_ctor_init_leading() - 1; // default indent is 1 space
+ // Add or remove space after class constructor ':'.
+ log_rule("sp_after_constr_colon");
+ return(options::sp_after_constr_colon());
+ }
+
+ if (chunk_is_token(second, CT_CONSTR_COLON))
+ {
+ // Add or remove space before class constructor ':'.
+ log_rule("sp_before_constr_colon");
+ return(options::sp_before_constr_colon());
+ }
+
+ if (chunk_is_token(second, CT_CASE_COLON))
+ {
+ // Add or remove space before case ':'.
+ log_rule("sp_before_case_colon");
+ return(options::sp_before_case_colon());
+ }
+
+ if (chunk_is_token(first, CT_DOT))
+ {
+ log_rule("REMOVE");
+ return(IARF_REMOVE);
+ }
+
+ if (chunk_is_token(second, CT_DOT))
+ {
+ log_rule("ADD");
+ return(IARF_ADD);
+ }
+
+ if ( chunk_is_token(first, CT_NULLCOND)
+ || chunk_is_token(second, CT_NULLCOND))
+ {
+ // TODO: provide some test data to check this block
+ // LANG_CS null conditional operator
+ // Add or remove space around the '.' or '->' operators.
+ log_rule("sp_member");
+ return(options::sp_member());
+ }
+
+ if ( chunk_is_token(first, CT_ARITH)
+ || chunk_is_token(first, CT_SHIFT)
+ || chunk_is_token(first, CT_CARET)
+ || chunk_is_token(second, CT_ARITH)
+ || chunk_is_token(second, CT_SHIFT)
+ || chunk_is_token(second, CT_CARET))
+ {
+ // Add or remove space around arithmetic operators '+' and '-'.
+ // Overrides sp_arith.
+ if (options::sp_arith_additive() != IARF_IGNORE)
+ {
+ auto arith_char = ( chunk_is_token(first, CT_ARITH)
+ || chunk_is_token(first, CT_SHIFT)
+ || chunk_is_token(first, CT_CARET))
+ ? first->str[0] : second->str[0];
+
+ if ( arith_char == '+'
+ || arith_char == '-')
+ {
+ log_rule("sp_arith_additive");
+ return(options::sp_arith_additive());
+ }
+ }
+ // Add or remove space around non-assignment symbolic operators ('+', '/', '%',
+ // '<<', and so forth).
+ log_rule("sp_arith");
+ return(options::sp_arith());
+ }
+
+ if ( chunk_is_token(first, CT_BOOL)
+ || chunk_is_token(second, CT_BOOL))
+ {
+ // Add or remove space around boolean operators '&&' and '||'.
+ iarf_e arg = options::sp_bool();
+
+ if ( (options::pos_bool() != TP_IGNORE)
+ && first->orig_line != second->orig_line)
+ {
+ arg = arg | IARF_ADD;
+ }
+ log_rule("sp_bool");
+ return(arg);
+ }
+
+ if ( chunk_is_token(first, CT_COMPARE)
+ || chunk_is_token(second, CT_COMPARE))
+ {
+ // Add or remove space around compare operator '<', '>', '==', etc.
+ log_rule("sp_compare");
+ return(options::sp_compare());
+ }
+
+ if ( chunk_is_token(first, CT_PAREN_OPEN)
+ && chunk_is_token(second, CT_PTR_TYPE))
+ {
+ // TODO: provide some test data to check this block
+ log_rule("REMOVE");
+ return(IARF_REMOVE);
+ }
+
+ if (chunk_is_token(first, CT_PTR_TYPE)) // see the tests cpp:34505-34508
+ {
+ if ( chunk_is_token(second, CT_FPAREN_OPEN)
+ || chunk_is_token(second, CT_TPAREN_OPEN))
+ {
+ // Add or remove space after a pointer star '*', if followed by an open
+ // parenthesis, as in 'void* (*)()'.
+ log_rule("sp_ptr_star_paren"); // ptr_star 10
+ return(options::sp_ptr_star_paren());
+ }
+ else if (chunk_is_token(second, CT_PTR_TYPE))
+ {
+ // Add or remove space between pointer stars '*'.
+ // as in 'int ***a;'.
+ log_rule("sp_between_ptr_star"); // ptr_star 9
+ return(options::sp_between_ptr_star());
+ }
+ else if (chunk_is_token(second, CT_FUNC_VAR))
+ {
+ // Add or remove space between the pointer star '*' and the name of the
+ // variable in a function pointer definition.
+ log_rule("sp_ptr_star_func_var");
+ return(options::sp_ptr_star_func_var());
+ }
+ else if (chunk_is_token(second, CT_FUNC_TYPE))
+ {
+ // Add or remove space between the pointer star '*' and the name of the
+ // type in a function pointer type definition.
+ log_rule("sp_ptr_star_func_type");
+ return(options::sp_ptr_star_func_type());
+ }
+ else if ( get_chunk_parent_type(first) == CT_FUNC_DEF
+ || get_chunk_parent_type(first) == CT_FUNC_PROTO
+ || get_chunk_parent_type(first) == CT_FUNC_VAR)
+ {
+ if (token_is_within_trailing_return(first))
+ {
+ // Add or remove space after a pointer star '*', in the trailing return
+ // a function prototype or function definition.
+ log_rule("sp_after_ptr_star_trailing"); // ptr_star 3
+ return(options::sp_after_ptr_star_trailing());
+ }
+ else
+ {
+ // Add or remove space after a pointer star '*', if followed by a function
+ // prototype or function definition.
+ log_rule("sp_after_ptr_star_func"); // ptr_star 2
+ return(options::sp_after_ptr_star_func());
+ }
+ }
+ else if (CharTable::IsKw1(second->str[0]))
+ {
+ Chunk *prev = first->GetPrev();
+
+ if (chunk_is_token(prev, CT_IN))
+ {
+ // Add or remove space after the '*' (dereference) unary operator. This does
+ // not affect the spacing after a '*' that is part of a type.
+ log_rule("sp_deref");
+ return(options::sp_deref());
+ }
+ else if ( get_chunk_parent_type(first) == CT_FUNC_VAR
+ || get_chunk_parent_type(first) == CT_FUNC_TYPE)
+ {
+ // Add or remove space after pointer caret '^', if followed by a word.
+ log_rule("sp_after_ptr_block_caret");
+ return(options::sp_after_ptr_block_caret());
+ }
+ else if (chunk_is_token(second, CT_QUALIFIER))
+ {
+ // Add or remove space after pointer star '*', if followed by a qualifier.
+ log_rule("sp_after_ptr_star_qualifier"); // ptr_star 4
+ return(options::sp_after_ptr_star_qualifier());
+ }
+ // Add or remove space after pointer star '*', if followed by a word.
+ log_rule("sp_after_ptr_star"); // ptr_star 1
+ return(options::sp_after_ptr_star());
+ }
+ else if (chunk_is_token(second, CT_PAREN_OPEN))
+ {
+ // Add or remove space after pointer star '*', if followed by a word.
+ log_rule("sp_after_ptr_star"); // ptr_star 1
+ return(options::sp_after_ptr_star());
+ }
+
+ // must be placed at the end of the block
+ // look back for '->' type is TRAILING_RET
+ if (token_is_within_trailing_return(first))
+ {
+ log_rule("sp_after_ptr_star_trailing"); // ptr_star 3
+ return(options::sp_after_ptr_star_trailing());
+ }
+ }
+
+ if ( chunk_is_token(second, CT_PTR_TYPE)
+ && first->type != CT_IN)
+ {
+ // look back for '->' type is TRAILING_RET
+ if (token_is_within_trailing_return(second))
+ {
+ log_rule("sp_before_ptr_star_trailing"); // ptr_star 7
+ return(options::sp_before_ptr_star_trailing());
+ }
+
+ // Add or remove space before a pointer star '*', if followed by a function
+ // prototype or function definition.
+ if (options::sp_before_ptr_star_func() != IARF_IGNORE)
+ {
+ // Find the next non-'*' chunk
+ Chunk *next = second;
+
+ do
+ {
+ next = next->GetNext();
+ } while (chunk_is_token(next, CT_PTR_TYPE));
+
+ if ( chunk_is_token(next, CT_FUNC_DEF)
+ || chunk_is_token(next, CT_FUNC_PROTO))
+ {
+ log_rule("sp_before_ptr_star_func"); // ptr_star 6
+ return(options::sp_before_ptr_star_func());
+ }
+ }
+
+ // Add or remove space before pointer star '*' that isn't followed by a
+ // variable name. If set to 'ignore', sp_before_ptr_star is used instead.
+ if (options::sp_before_unnamed_ptr_star() != IARF_IGNORE)
+ {
+ Chunk *next = second->GetNextNc();
+
+ while (chunk_is_token(next, CT_PTR_TYPE))
+ {
+ next = next->GetNextNc();
+ }
+
+ if ( next->IsNotNullChunk()
+ && next->type != CT_WORD)
+ {
+ log_rule("sp_before_unnamed_ptr_star"); // ptr_star 8
+ return(options::sp_before_unnamed_ptr_star());
+ }
+ }
+
+ // Add or remove space before pointer star '*'.
+ if (options::sp_before_ptr_star() != IARF_IGNORE)
+ {
+ log_rule("sp_before_ptr_star"); // ptr_star 5
+ return(options::sp_before_ptr_star());
+ }
+ }
+
+ if (chunk_is_token(first, CT_OPERATOR))
+ {
+ // Add or remove space between 'operator' and operator sign.
+ log_rule("sp_after_operator");
+ return(options::sp_after_operator());
+ }
+
+ if ( chunk_is_token(second, CT_FUNC_PROTO)
+ || chunk_is_token(second, CT_FUNC_DEF))
+ {
+ if ( first->type != CT_PTR_TYPE
+ && first->type != CT_BYREF)
+ {
+ // Add or remove space between return type and function name. A
+ // minimum of 1 is forced except for pointer/reference return types.
+ log_rule("sp_type_func | ADD");
+ return(options::sp_type_func() | IARF_ADD);
+ }
+ // Add or remove space between return type and function name. A
+ // minimum of 1 is forced except for pointer/reference return types.
+ log_rule("sp_type_func");
+ return(options::sp_type_func());
+ }
+
+ // "(int)a" vs. "(int) a" or "cast(int)a" vs. "cast(int) a"
+ if ( ( get_chunk_parent_type(first) == CT_C_CAST
+ || get_chunk_parent_type(first) == CT_D_CAST)
+ && chunk_is_token(first, CT_PAREN_CLOSE))
+ {
+ log_rule("sp_after_cast");
+ return(options::sp_after_cast());
+ }
+
+ if (chunk_is_token(first, CT_BRACE_CLOSE))
+ {
+ if (chunk_is_token(second, CT_ELSE))
+ {
+ // Add or remove space between '}' and 'else' if on the same line.
+ log_rule("sp_brace_else");
+ return(options::sp_brace_else());
+ }
+
+ if ( language_is_set(LANG_OC)
+ && chunk_is_token(second, CT_CATCH)
+ && (options::sp_oc_brace_catch() != IARF_IGNORE))
+ {
+ // TODO: provide some test data to check this block
+ // (OC) Add or remove space between '}' and '@catch' if on the same line.
+ // If set to ignore, sp_brace_catch is used.
+ log_rule("sp_oc_brace_catch");
+ return(options::sp_oc_brace_catch());
+ }
+
+ if (chunk_is_token(second, CT_CATCH))
+ {
+ // TODO: provide some test data to check this block
+ // Add or remove space between '}' and 'catch' if on the same line.
+ log_rule("sp_brace_catch");
+ return(options::sp_brace_catch());
+ }
+
+ if (chunk_is_token(second, CT_FINALLY))
+ {
+ // Add or remove space between '}' and 'finally' if on the same line.
+ log_rule("sp_brace_finally");
+ return(options::sp_brace_finally());
+ }
+ }
+
+ if (chunk_is_token(first, CT_BRACE_OPEN))
+ {
+ if (get_chunk_parent_type(first) == CT_ENUM)
+ {
+ // Add or remove space inside enum '{' and '}'.
+ log_rule("sp_inside_braces_enum");
+ return(options::sp_inside_braces_enum());
+ }
+
+ if ( get_chunk_parent_type(first) == CT_STRUCT
+ || get_chunk_parent_type(first) == CT_UNION)
+ {
+ // Fix for issue #1240 adding space in struct initializers
+ Chunk *tmp = first->GetPrevNcNnl();
+
+ if (chunk_is_token(tmp, CT_ASSIGN))
+ {
+ // TODO: provide some test data to check this block
+ log_rule("IGNORE");
+ return(IARF_IGNORE);
+ }
+ // Add or remove space inside struct/union '{' and '}'.
+ log_rule("sp_inside_braces_struct");
+ return(options::sp_inside_braces_struct());
+ }
+ else if ( get_chunk_parent_type(first) == CT_OC_AT
+ && options::sp_inside_braces_oc_dict() != IARF_IGNORE)
+ {
+ // (OC) Add or remove space inside Objective-C boxed dictionary '{' and '}'
+ log_rule("sp_inside_braces_oc_dict");
+ return(options::sp_inside_braces_oc_dict());
+ }
+
+ if (get_chunk_parent_type(first) == CT_BRACED_INIT_LIST)
+ {
+ // Add or remove space between nested braces, i.e. '{{' vs. '{ {'.
+ // only to help the vim command }}}}
+ if ( options::sp_brace_brace() != IARF_IGNORE
+ && chunk_is_token(second, CT_BRACE_OPEN)
+ && get_chunk_parent_type(second) == CT_BRACED_INIT_LIST)
+ {
+ log_rule("sp_brace_brace");
+ return(options::sp_brace_brace());
+ }
+
+ if (options::sp_after_type_brace_init_lst_open() != IARF_IGNORE)
+ {
+ // Add or remove space after open brace in an unnamed temporary
+ // direct-list-initialization
+ // if statement is a brace_init_lst
+ // works only if sp_brace_brace is set to ignore.
+ log_rule("sp_after_type_brace_init_lst_open");
+ return(options::sp_after_type_brace_init_lst_open());
+ }
+
+ if (options::sp_inside_type_brace_init_lst() != IARF_IGNORE)
+ {
+ // Add or remove space inside an unnamed temporary direct-list-initialization
+ // if statement is a brace_init_lst
+ // works only if sp_brace_brace is set to ignore
+ // works only if sp_after_type_brace_init_lst_close is set to ignore.
+ log_rule("sp_inside_type_brace_init_lst");
+ return(options::sp_inside_type_brace_init_lst());
+ }
+ }
+
+ if (!second->IsComment())
+ {
+ // Add or remove space inside '{' and '}'.
+ log_rule("sp_inside_braces");
+ return(options::sp_inside_braces());
+ }
+ }
+
+ if ( chunk_is_token(first, CT_BRACE_CLOSE)
+ && first->flags.test(PCF_IN_TYPEDEF)
+ && ( get_chunk_parent_type(first) == CT_ENUM
+ || get_chunk_parent_type(first) == CT_STRUCT
+ || get_chunk_parent_type(first) == CT_UNION))
+ {
+ // Add or remove space between '}' and the name of a typedef on the same line.
+ log_rule("sp_brace_typedef");
+ return(options::sp_brace_typedef());
+ }
+
+ if ( language_is_set(LANG_D)
+ && chunk_is_token(second, CT_PAREN_OPEN)
+ && get_chunk_parent_type(second) == CT_TEMPLATE)
+ {
+ // (D) Add or remove space before the parenthesis in the D constructs
+ // 'template Foo(' and 'class Foo('.
+ log_rule("sp_before_template_paren");
+ return(options::sp_before_template_paren());
+ }
+
+ // Issue #3080
+ if ( chunk_is_token(first, CT_PAREN_CLOSE)
+ && get_chunk_parent_type(first) == CT_DECLTYPE
+ && ( chunk_is_token(second, CT_WORD)
+ || chunk_is_token(second, CT_BRACE_OPEN)
+ || chunk_is_token(second, CT_FUNC_CALL)))
+ {
+ iarf_e arg = options::sp_after_decltype();
+ // Add or remove space between 'decltype(...)' and word, brace or function call.
+ log_rule("sp_after_decltype");
+ return(arg);
+ }
+
+ // Issue #3080
+ if ( !language_is_set(LANG_D)
+ && chunk_is_token(first, CT_PAREN_CLOSE)
+ && chunk_is_token(second, CT_WORD))
+ {
+ // Add or remove space between type and word.
+ log_rule("sp_after_type");
+ return(options::sp_after_type());
+ }
+
+ // see if the D template expression is used as a type
+ if ( language_is_set(LANG_D)
+ && chunk_is_token(first, CT_PAREN_CLOSE)
+ && get_chunk_parent_type(first) == CT_D_TEMPLATE)
+ {
+ if (get_chunk_parent_type(second) == CT_USING_ALIAS)
+ {
+ log_rule("sp_after_type | ADD");
+ return(options::sp_after_type() | IARF_ADD);
+ }
+
+ if (chunk_is_token(second, CT_WORD))
+ {
+ Chunk *open_paren = chunk_skip_to_match_rev(first);
+
+ if (open_paren == nullptr)
+ {
+ open_paren = Chunk::NullChunkPtr;
+ }
+ Chunk *type = open_paren->GetPrev()->GetPrev();
+
+ if (chunk_is_token(type, CT_TYPE))
+ {
+ log_rule("sp_after_type");
+ return(options::sp_after_type());
+ }
+ }
+ }
+
+ if ( chunk_is_token(first, CT_TYPE) // Issue #3457
+ && chunk_is_token(second, CT_COLON))
+ {
+ log_rule("sp_type_colon");
+ return(options::sp_type_colon());
+ }
+
+ if ( !chunk_is_token(second, CT_PTR_TYPE)
+ && ( chunk_is_token(first, CT_QUALIFIER)
+ || chunk_is_token(first, CT_TYPE)))
+ {
+ // Add or remove space between type and word. In cases where total removal of
+ // whitespace would be a syntax error, a value of 'remove' is treated the same
+ // as 'force'.
+ //
+ // This also affects some other instances of space following a type that are
+ // not covered by other options; for example, between the return type and
+ // parenthesis of a function type template argument, between the type and
+ // parenthesis of an array parameter, or between 'decltype(...)' and the
+ // following word.
+ iarf_e arg = options::sp_after_type();
+ log_rule("sp_after_type");
+ return(arg);
+ }
+
+ if ( chunk_is_token(first, CT_PTR_TYPE)
+ && chunk_is_token(second, CT_ELLIPSIS))
+ {
+ log_rule("sp_ptr_type_ellipsis");
+ return(options::sp_ptr_type_ellipsis());
+ }
+
+ // If nothing claimed the PTR_TYPE, then return ignore
+ if ( chunk_is_token(first, CT_PTR_TYPE)
+ || chunk_is_token(second, CT_PTR_TYPE))
+ {
+ log_rule("IGNORE");
+ return(IARF_IGNORE);
+ }
+
+ if (chunk_is_token(first, CT_NOT))
+ {
+ if ( chunk_is_token(second, CT_NOT)
+ && (options::sp_not_not() != IARF_IGNORE))
+ {
+ log_rule("sp_not_not");
+ return(options::sp_not_not());
+ }
+ // Add or remove space after the '!' (not) unary operator.
+ log_rule("sp_not");
+ return(options::sp_not());
+ }
+
+ if (chunk_is_token(first, CT_INV))
+ {
+ // Add or remove space after the '~' (invert) unary operator.
+ log_rule("sp_inv");
+ return(options::sp_inv());
+ }
+
+ if (chunk_is_token(first, CT_ADDR))
+ {
+ // Add or remove space after the '&' (address-of) unary operator. This does not
+ // affect the spacing after a '&' that is part of a type.
+ log_rule("sp_addr");
+ return(options::sp_addr());
+ }
+
+ if (chunk_is_token(first, CT_DEREF))
+ {
+ // Add or remove space after the '*' (dereference) unary operator. This does
+ // not affect the spacing after a '*' that is part of a type.
+ log_rule("sp_deref");
+ return(options::sp_deref());
+ }
+
+ if ( chunk_is_token(first, CT_POS)
+ || chunk_is_token(first, CT_NEG))
+ {
+ // Add or remove space after '+' or '-', as in 'x = -5' or 'y = +7'.
+ log_rule("sp_sign");
+ return(options::sp_sign());
+ }
+
+ if ( chunk_is_token(first, CT_INCDEC_BEFORE)
+ || chunk_is_token(second, CT_INCDEC_AFTER))
+ {
+ // Add or remove space between '++' and '--' the word to which it is being
+ // applied, as in '(--x)' or 'y++;'.
+ log_rule("sp_incdec");
+ return(options::sp_incdec());
+ }
+
+ if (chunk_is_token(second, CT_CS_SQ_COLON))
+ {
+ log_rule("REMOVE");
+ return(IARF_REMOVE);
+ }
+
+ if (chunk_is_token(first, CT_CS_SQ_COLON))
+ {
+ log_rule("FORCE");
+ return(IARF_FORCE);
+ }
+
+ if ( language_is_set(LANG_OC)
+ && chunk_is_token(first, CT_OC_SCOPE))
+ {
+ // (OC) Add or remove space after the scope '+' or '-', as in '-(void) foo;'
+ // or '+(int) bar;'.
+ log_rule("sp_after_oc_scope");
+ return(options::sp_after_oc_scope());
+ }
+
+ if ( language_is_set(LANG_OC)
+ && chunk_is_token(first, CT_OC_DICT_COLON))
+ {
+ // (OC) Add or remove space after the colon in immutable dictionary expression
+ // 'NSDictionary *test = @{@"foo" :@"bar"};'.
+ log_rule("sp_after_oc_dict_colon");
+ return(options::sp_after_oc_dict_colon());
+ }
+
+ if ( language_is_set(LANG_OC)
+ && chunk_is_token(second, CT_OC_DICT_COLON))
+ {
+ // (OC) Add or remove space before the colon in immutable dictionary expression
+ // 'NSDictionary *test = @{@"foo" :@"bar"};'.
+ log_rule("sp_before_oc_dict_colon");
+ return(options::sp_before_oc_dict_colon());
+ }
+
+ if ( language_is_set(LANG_OC)
+ && chunk_is_token(first, CT_OC_COLON))
+ {
+ if (first->flags.test(PCF_IN_OC_MSG))
+ {
+ // (OC) Add or remove space after the colon in message specs,
+ // i.e. '[object setValue:1];' vs. '[object setValue: 1];'.
+ log_rule("sp_after_send_oc_colon");
+ return(options::sp_after_send_oc_colon());
+ }
+ // (OC) Add or remove space after the colon in message specs,
+ // i.e. '-(int) f:(int) x;' vs. '-(int) f: (int) x;'.
+ log_rule("sp_after_oc_colon");
+ return(options::sp_after_oc_colon());
+ }
+
+ if ( language_is_set(LANG_OC)
+ && chunk_is_token(second, CT_OC_COLON))
+ {
+ if ( first->flags.test(PCF_IN_OC_MSG)
+ && ( chunk_is_token(first, CT_OC_MSG_FUNC)
+ || chunk_is_token(first, CT_OC_MSG_NAME)))
+ {
+ // (OC) Add or remove space before the colon in message specs,
+ // i.e. '[object setValue:1];' vs. '[object setValue :1];'.
+ log_rule("sp_before_send_oc_colon");
+ return(options::sp_before_send_oc_colon());
+ }
+ // (OC) Add or remove space before the colon in message specs,
+ // i.e. '-(int) f: (int) x;' vs. '-(int) f : (int) x;'.
+ log_rule("sp_before_oc_colon");
+ return(options::sp_before_oc_colon());
+ }
+
+ if ( chunk_is_token(second, CT_COMMENT)
+ && get_chunk_parent_type(second) == CT_COMMENT_EMBED)
+ {
+ // Add or remove space before an embedded comment.
+ // Number of spaces before an embedded comment.
+ log_rule("sp_before_emb_cmt");
+ min_sp = options::sp_num_before_emb_cmt();
+ return(options::sp_before_emb_cmt());
+ }
+
+ if (chunk_is_token(first, CT_COMMENT))
+ {
+ // Add or remove space after an embedded comment.
+ // Number of spaces after an embedded comment.
+ log_rule("sp_after_emb_cmt");
+ min_sp = options::sp_num_after_emb_cmt();
+ return(options::sp_after_emb_cmt());
+ }
+
+ if ( chunk_is_token(first, CT_NEW)
+ && chunk_is_token(second, CT_PAREN_OPEN))
+ {
+ // c# new Constraint, c++ new operator
+ // Add or remove space between 'new' and '(' in 'new()'.
+ log_rule("sp_between_new_paren");
+ return(options::sp_between_new_paren());
+ }
+
+ if ( chunk_is_token(first, CT_NEW)
+ || chunk_is_token(first, CT_DELETE)
+ || ( chunk_is_token(first, CT_TSQUARE)
+ && get_chunk_parent_type(first) == CT_DELETE))
+ {
+ // Add or remove space after 'new', 'delete' and 'delete[]'.
+ log_rule("sp_after_new");
+ return(options::sp_after_new());
+ }
+
+ if ( language_is_set(LANG_JAVA)
+ && chunk_is_token(first, CT_ANNOTATION)
+ && chunk_is_paren_open(second))
+ {
+ // (Java) Add or remove space between an annotation and the open parenthesis.
+ log_rule("sp_annotation_paren");
+ return(options::sp_annotation_paren());
+ }
+
+ if ( language_is_set(LANG_OC)
+ && chunk_is_token(first, CT_OC_PROPERTY))
+ {
+ // (OC) Add or remove space after '@property'.
+ log_rule("sp_after_oc_property");
+ return(options::sp_after_oc_property());
+ }
+
+ if ( language_is_set(LANG_D)
+ && chunk_is_token(first, CT_EXTERN)
+ && chunk_is_token(second, CT_PAREN_OPEN))
+ {
+ // (D) Add or remove space between 'extern' and '(' as in 'extern (C)'.
+ log_rule("sp_extern_paren");
+ return(options::sp_extern_paren());
+ }
+
+ if ( chunk_is_token(second, CT_TYPE)
+ && ( ( chunk_is_token(first, CT_STRING)
+ && get_chunk_parent_type(first) == CT_EXTERN)
+ || ( chunk_is_token(first, CT_FPAREN_CLOSE)
+ && get_chunk_parent_type(first) == CT_ATTRIBUTE)))
+ {
+ log_rule("FORCE");
+ return(IARF_FORCE); /* TODO: make this configurable? */
+ }
+
+ if (chunk_is_token(first, CT_NOEXCEPT))
+ {
+ // Add or remove space after 'noexcept'.
+ log_rule("sp_after_noexcept");
+ return(options::sp_after_noexcept());
+ }
+
+ // Issue #2138
+ if (chunk_is_token(first, CT_FPAREN_CLOSE))
+ {
+ if (chunk_is_token(second, CT_QUALIFIER))
+ {
+ // Add or remove space between ')' and a qualifier such as 'const'.
+ log_rule("sp_paren_qualifier");
+ return(options::sp_paren_qualifier());
+ }
+ else if (chunk_is_token(second, CT_NOEXCEPT))
+ {
+ // Add or remove space between ')' and 'noexcept'.
+ log_rule("sp_paren_noexcept");
+ return(options::sp_paren_noexcept());
+ }
+ }
+
+ // Issue #2098
+ if ( chunk_is_token(first, CT_PP_PRAGMA)
+ && chunk_is_token(second, CT_PREPROC_BODY))
+ {
+ log_rule("REMOVE");
+ return(IARF_REMOVE);
+ }
+
+ // Issue #1733
+ if ( chunk_is_token(first, CT_OPERATOR_VAL)
+ && chunk_is_token(second, CT_TYPE))
+ {
+ log_rule("IGNORE");
+ return(IARF_IGNORE);
+ }
+
+ // Issue #995
+ if ( chunk_is_token(first, CT_DO)
+ && chunk_is_token(second, CT_BRACE_OPEN))
+ {
+ // Add or remove space between 'do' and '{'.
+ log_rule("sp_do_brace_open");
+ return(options::sp_do_brace_open());
+ }
+
+ // Issue #995
+ if ( chunk_is_token(first, CT_BRACE_CLOSE)
+ && chunk_is_token(second, CT_WHILE_OF_DO))
+ {
+ // Add or remove space between '}' and 'while.
+ log_rule("sp_brace_close_while");
+ return(options::sp_brace_close_while());
+ }
+
+ // TODO: have a look to Issue #2186, why NEWLINE?
+ // Issue #2524
+ if ( chunk_is_token(first, CT_NEWLINE)
+ && chunk_is_token(second, CT_BRACE_OPEN))
+ {
+ log_rule("IGNORE");
+ return(IARF_IGNORE);
+ }
+
+ // =============================================================
+ // categorie 1
+ // this table lists out all combos where a space should NOT be present
+ // CT_UNKNOWN is a wildcard.
+ for (auto it : no_space_table)
+ {
+ if ( ( it.first == CT_UNKNOWN
+ || it.first == first->type)
+ && ( it.second == CT_UNKNOWN
+ || it.second == second->type))
+ {
+ log_rule("REMOVE from no_space_table");
+ return(IARF_REMOVE);
+ }
+ }
+
+ // =============================================================
+ // categorie 2
+ // this table lists out all combos where a space MUST be present
+ for (auto it : add_space_table)
+ {
+ if ( it.first == first->type
+ && it.second == second->type)
+ {
+ // TODO: if necessary create a new option
+ log_rule("ADD from add_space_table");
+ return(IARF_ADD);
+ }
+ }
+
+ // Issue #2386
+ if ( chunk_is_token(first, CT_FORM_FEED)
+ || chunk_is_token(second, CT_FORM_FEED))
+ {
+ log_rule("IGNORE");
+ return(IARF_IGNORE);
+ }
+
+ // TODO: if necessary create a new option
+ if ( chunk_is_token(first, CT_MACRO_FUNC_CALL)
+ && chunk_is_token(second, CT_FPAREN_OPEN))
+ {
+ log_rule("IGNORE");
+ return(IARF_IGNORE);
+ }
+
+ if ( chunk_is_token(first, CT_CASE_ELLIPSIS)
+ && chunk_is_token(second, CT_NUMBER))
+ {
+ // Add or remove space after the variadic '...' when preceded by a
+ // non-punctuator.
+ // The value REMOVE will be overridden with FORCE
+ if (options::sp_after_ellipsis() == IARF_REMOVE)
+ {
+ log_rule("sp_after_ellipsis/FORCE");
+ return(IARF_FORCE);
+ }
+ else
+ {
+ log_rule("sp_after_ellipsis");
+ return(options::sp_after_ellipsis());
+ }
+ }
+
+ if ( chunk_is_token(first, CT_NUMBER)
+ && chunk_is_token(second, CT_CASE_ELLIPSIS))
+ {
+ // Add or remove space before the variadic '...' when preceded by a
+ // non-punctuator.
+ // The value REMOVE will be overridden with FORCE
+ if (options::sp_before_ellipsis() == IARF_REMOVE)
+ {
+ log_rule("sp_before_ellipsis/FORCE");
+ return(IARF_FORCE);
+ }
+ else
+ {
+ log_rule("sp_before_ellipsis");
+ return(options::sp_before_ellipsis());
+ }
+ }
+ // =============================================================
+ // categorie 3
+ // these lines are only useful for debugging uncrustify itself
+ LOG_FMT(LSPACE, "\n\n%s(%d): WARNING: unrecognize do_space:\n",
+ __func__, __LINE__);
+ LOG_FMT(LSPACE, " first->orig_line is %zu, first->orig_col is %zu, first->Text() '%s', first->type is %s\n",
+ first->orig_line, first->orig_col, first->Text(), get_token_name(first->type));
+ LOG_FMT(LSPACE, " second->orig_line is %zu, second->orig_col is %zu, second->Text() '%s', second->type is %s\n",
+ second->orig_line, second->orig_col, second->Text(), get_token_name(second->type));
+ LOG_FMT(LSPACE, " Please make a call at https://github.com/uncrustify/uncrustify/issues/new\n");
+ LOG_FMT(LSPACE, " or merge the line:\n");
+ LOG_FMT(LSPACE, " {%s, %s},\n",
+ get_token_name(first->type), get_token_name(second->type));
+ LOG_FMT(LSPACE, " in the file <Path_to_uncrustify>/src/add_space_table.h\n");
+
+ log_rule("ADD as default value");
+ return(IARF_ADD);
+} // do_space
+
+
+static iarf_e ensure_force_space(Chunk *first, Chunk *second, iarf_e av)
+{
+ if (first->flags.test(PCF_FORCE_SPACE))
+ {
+ LOG_FMT(LSPACE, "%s(%d): <force between '%s' and '%s'>",
+ __func__, __LINE__, first->Text(), second->Text());
+ return(av | IARF_ADD);
+ }
+ return(av);
+}
+
+
+static iarf_e do_space_ensured(Chunk *first, Chunk *second, int &min_sp)
+{
+ iarf_e aa = ensure_force_space(first, second, do_space(first, second, min_sp));
+
+ return(aa);
+}
+
+
+void space_text(void)
+{
+ LOG_FUNC_ENTRY();
+
+ Chunk *pc = Chunk::GetHead();
+ Chunk *next;
+ size_t prev_column;
+ size_t column = pc->column;
+
+ while (pc->IsNotNullChunk())
+ {
+ if (chunk_is_token(pc, CT_NEWLINE))
+ {
+ LOG_FMT(LSPACE, "%s(%d): orig_line is %zu, orig_col is %zu, <Newline>, nl is %zu\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->nl_count);
+ }
+ else
+ {
+ char copy[1000];
+ LOG_FMT(LSPACE, "%s(%d): orig_line is %zu, orig_col is %zu, '%s' type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->ElidedText(copy), get_token_name(pc->type));
+ }
+
+ if ( (options::use_options_overriding_for_qt_macros())
+ && ( (strcmp(pc->Text(), "SIGNAL") == 0)
+ || (strcmp(pc->Text(), "SLOT") == 0)))
+ {
+ LOG_FMT(LSPACE, "%s(%d): orig_col is %zu, type is %s SIGNAL/SLOT found\n",
+ __func__, __LINE__, pc->orig_line, get_token_name(pc->type));
+ chunk_flags_set(pc, PCF_IN_QT_MACRO); // flag the chunk for a second processing
+
+ // save the values
+ save_set_options_for_QT(pc->level);
+ }
+
+ // Bug # 637
+ // If true, vbrace tokens are dropped to the previous token and skipped.
+ if (options::sp_skip_vbrace_tokens())
+ {
+ next = pc->GetNext();
+
+ while ( next->IsEmptyText()
+ && !chunk_is_newline(next)
+ && ( chunk_is_token(next, CT_VBRACE_OPEN)
+ || chunk_is_token(next, CT_VBRACE_CLOSE)))
+ {
+ LOG_FMT(LSPACE, "%s(%d): orig_line is %zu, orig_col is %zu, Skip %s (%zu+%zu)\n",
+ __func__, __LINE__, next->orig_line, next->orig_col, get_token_name(next->type),
+ pc->column, pc->str.size());
+ next->column = pc->column + pc->str.size();
+ next = next->GetNext();
+ }
+ }
+ else
+ {
+ next = pc->GetNext();
+ }
+
+ if (next->IsNullChunk())
+ {
+ break;
+ }
+
+ // Issue # 481
+ // Whether to balance spaces inside nested parentheses.
+ if ( QT_SIGNAL_SLOT_found
+ && options::sp_balance_nested_parens())
+ {
+ Chunk *nn = next->GetNext(); // Issue #2734
+
+ if ( nn->IsNotNullChunk()
+ && chunk_is_token(nn, CT_SPACE))
+ {
+ chunk_del(nn); // remove the space
+ }
+ }
+
+ /*
+ * If the current chunk contains a newline, do not change the column
+ * of the next item
+ */
+ if ( chunk_is_token(pc, CT_NEWLINE)
+ || chunk_is_token(pc, CT_NL_CONT)
+ || chunk_is_token(pc, CT_COMMENT_MULTI))
+ {
+ column = next->column;
+ }
+ else
+ {
+ // Set to the minimum allowed column
+ if (pc->nl_count == 0)
+ {
+ column += pc->Len();
+ }
+ else
+ {
+ column = pc->orig_col_end;
+ }
+ prev_column = column;
+
+ /*
+ * Apply a general safety check
+ * If the two chunks combined will tokenize differently, then we
+ * must force a space.
+ * Two chunks -- "()" and "[]" will always tokenize differently.
+ * They are always safe to not have a space after them.
+ */
+ chunk_flags_clr(pc, PCF_FORCE_SPACE);
+
+ if ( (pc->Len() > 0)
+ && !chunk_is_str(pc, "[]")
+ && !chunk_is_str(pc, "{{")
+ && !chunk_is_str(pc, "}}")
+ && !chunk_is_str(pc, "()")
+ && !pc->str.startswith("@\""))
+ {
+ // Find the next non-empty chunk on this line
+ Chunk *tmp = next;
+
+ while ( tmp->IsNotNullChunk()
+ && (tmp->Len() == 0)
+ && !chunk_is_newline(tmp))
+ {
+ tmp = tmp->GetNext();
+ }
+
+ if ( tmp->IsNotNullChunk()
+ && tmp->Len() > 0)
+ {
+ bool kw1 = CharTable::IsKw2(pc->str[pc->Len() - 1]);
+ bool kw2 = CharTable::IsKw1(next->str[0]);
+
+ if ( kw1
+ && kw2)
+ {
+ // back-to-back words need a space
+ LOG_FMT(LSPACE, "%s(%d): back-to-back words need a space: pc->Text() '%s', next->Text() '%s'\n",
+ __func__, __LINE__, pc->Text(), next->Text());
+ chunk_flags_set(pc, PCF_FORCE_SPACE);
+ }
+ // TODO: what is the meaning of 4
+ else if ( !kw1
+ && !kw2
+ && (pc->Len() < 4)
+ && (next->Len() < 4))
+ {
+ // We aren't dealing with keywords. concat and try punctuators
+ char buf[9];
+ memcpy(buf, pc->Text(), pc->Len());
+ memcpy(buf + pc->Len(), next->Text(), next->Len());
+ buf[pc->Len() + next->Len()] = 0;
+
+ const chunk_tag_t *ct;
+ ct = find_punctuator(buf, cpd.lang_flags);
+
+ if ( ct != nullptr
+ && (strlen(ct->tag) != pc->Len()))
+ {
+ // punctuator parsed to a different size..
+
+ /*
+ * C++11 allows '>>' to mean '> >' in templates:
+ * some_func<vector<string>>();
+ */
+ // (C++11) Permit removal of the space between '>>' in 'foo<bar<int> >'. Note
+ // that sp_angle_shift cannot remove the space without this option.
+ if ( ( ( language_is_set(LANG_CPP)
+ && options::sp_permit_cpp11_shift())
+ || (language_is_set(LANG_JAVA | LANG_CS | LANG_VALA | LANG_OC)))
+ && chunk_is_token(pc, CT_ANGLE_CLOSE)
+ && chunk_is_token(next, CT_ANGLE_CLOSE))
+ {
+ // allow '>' and '>' to become '>>'
+ }
+ else if (strcmp(ct->tag, "[]") == 0)
+ {
+ // this is OK
+ }
+ else
+ {
+ LOG_FMT(LSPACE, "%s(%d): : pc->Text() is %s, next->Text() is %s\n",
+ __func__, __LINE__, pc->Text(), next->Text());
+ chunk_flags_set(pc, PCF_FORCE_SPACE);
+ }
+ }
+ }
+ }
+ }
+ int min_sp;
+ LOG_FMT(LSPACE, "%s(%d): orig_line is %zu, orig_col is %zu, pc-Text() '%s', type is %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text(), get_token_name(pc->type));
+ iarf_e av = do_space_ensured(pc, next, min_sp);
+ min_sp = max(1, min_sp);
+
+ switch (av)
+ {
+ case IARF_FORCE:
+ column += min_sp; // add exactly the specified number of spaces
+ break;
+
+ case IARF_ADD:
+ {
+ int delta = min_sp;
+
+ if ( next->orig_col >= pc->orig_col_end
+ && pc->orig_col_end != 0)
+ {
+ // Keep the same relative spacing, minimum 1
+ delta = next->orig_col - pc->orig_col_end;
+
+ if (delta < min_sp)
+ {
+ delta = min_sp;
+ }
+ }
+ column += delta;
+ break;
+ }
+
+ case IARF_REMOVE:
+ // the symbols will be back-to-back "a+3"
+ break;
+
+ case IARF_IGNORE:
+
+ // Keep the same relative spacing, if possible
+ if ( next->orig_col >= pc->orig_col_end
+ && pc->orig_col_end != 0)
+ {
+ column += next->orig_col - pc->orig_col_end;
+ }
+ else
+ {
+ // preserve the position if virtual brace
+ // Issue #1854
+ if (chunk_is_token(pc, CT_VBRACE_OPEN))
+ {
+ column = next->orig_col;
+ }
+ }
+ break;
+
+ default:
+ // If we got here, something is wrong...
+ break;
+ } // switch
+
+ if ( next->IsComment()
+ && chunk_is_newline(next->GetNext())
+ && column < next->orig_col)
+ {
+ /*
+ * do some comment adjustments if sp_before_tr_cmt and sp_endif_cmt
+ * did not apply.
+ */
+ // Add or remove space between #else or #endif and a trailing comment.
+ if ( ( options::sp_before_tr_cmt() == IARF_IGNORE
+ || get_chunk_parent_type(next) != CT_COMMENT_END)
+ && ( options::sp_endif_cmt() == IARF_IGNORE
+ || ( pc->type != CT_PP_ELSE
+ && pc->type != CT_PP_ENDIF)))
+ {
+ if (options::indent_relative_single_line_comments())
+ {
+ // Try to keep relative spacing between tokens
+ LOG_FMT(LSPACE, "%s(%d): <relative adj>", __func__, __LINE__);
+ LOG_FMT(LSPACE, "%s(%d): pc is '%s', pc->orig_col is %zu, next->orig_col is %zu, pc->orig_col_end is %zu\n",
+ __func__, __LINE__, pc->Text(),
+ pc->orig_col, next->orig_col, pc->orig_col_end);
+ column = pc->column + (next->orig_col - pc->orig_col_end);
+ }
+ else
+ {
+ /*
+ * If there was a space, we need to force one, otherwise
+ * try to keep the comment in the same column.
+ */
+ size_t col_min = pc->column + pc->Len() + ((next->orig_prev_sp > 0) ? 1 : 0);
+ column = next->orig_col;
+
+ if (column < col_min)
+ {
+ column = col_min;
+ }
+ LOG_FMT(LSPACE, "%s(%d): <relative set>", __func__, __LINE__);
+ }
+ }
+ }
+ next->column = column;
+
+ LOG_FMT(LSPACE, " rule = %s @ %zu => %zu\n",
+ (av == IARF_IGNORE) ? "IGNORE" :
+ (av == IARF_ADD) ? "ADD" :
+ (av == IARF_REMOVE) ? "REMOVE" : "FORCE",
+ column - prev_column, next->column);
+
+ if (restoreValues) // guy 2015-09-22
+ {
+ restore_options_for_QT();
+ }
+ }
+ pc = next;
+
+ if (QT_SIGNAL_SLOT_found)
+ {
+ // flag the chunk for a second processing
+ chunk_flags_set(pc, PCF_IN_QT_MACRO);
+ }
+ }
+} // space_text
+
+
+void space_text_balance_nested_parens(void)
+{
+ LOG_FUNC_ENTRY();
+
+ Chunk *first = Chunk::GetHead();
+
+ while (first->IsNotNullChunk())
+ {
+ Chunk *next = first->GetNext();
+
+ if (next->IsNullChunk())
+ {
+ break;
+ }
+
+ // if there are two successive opening parenthesis
+ if ( chunk_is_str(first, "(")
+ && chunk_is_str(next, "("))
+ {
+ // insert a space between them
+ space_add_after(first, 1);
+
+ // test after the closing parens Issue #1703
+ Chunk *closing = first->GetNextType((E_Token)(first->type + 1), first->level);
+
+ if (closing->orig_col == closing->prev->orig_col_end)
+ {
+ space_add_after(closing->prev, 1);
+ }
+ }
+ else if ( chunk_is_str(first, ")")
+ && chunk_is_str(next, ")"))
+ {
+ // insert a space between the two closing parens
+ space_add_after(first, 1);
+
+ // test after the opening parens Issue #1703
+ Chunk *opening = next->GetPrevType((E_Token)(next->type - 1), next->level);
+
+ if (opening->orig_col_end == opening->GetNext()->orig_col)
+ {
+ space_add_after(opening, 1);
+ }
+ }
+ first = next;
+ }
+} // space_text_balance_nested_parens
+
+
+size_t space_needed(Chunk *first, Chunk *second)
+{
+ LOG_FUNC_ENTRY();
+ LOG_FMT(LSPACE, "%s(%d)\n", __func__, __LINE__);
+
+ int min_sp;
+
+ switch (do_space_ensured(first, second, min_sp))
+ {
+ case IARF_ADD:
+ case IARF_FORCE:
+ return(max(1, min_sp));
+
+ case IARF_REMOVE:
+ return(0);
+
+ case IARF_IGNORE:
+ default:
+ return(second->orig_col > (first->orig_col + first->Len()));
+ }
+}
+
+
+size_t space_col_align(Chunk *first, Chunk *second)
+{
+ LOG_FUNC_ENTRY();
+
+ LOG_FMT(LSPACE, "%s(%d): first->orig_line is %zu, orig_col is %zu, [%s/%s], Text() '%s' <==>\n",
+ __func__, __LINE__, first->orig_line, first->orig_col,
+ get_token_name(first->type), get_token_name(get_chunk_parent_type(first)),
+ first->Text());
+ LOG_FMT(LSPACE, "%s(%d): second->orig_line is %zu, orig_col is %zu [%s/%s], Text() '%s',",
+ __func__, __LINE__, second->orig_line, second->orig_col,
+ get_token_name(second->type), get_token_name(get_chunk_parent_type(second)),
+ second->Text());
+ log_func_stack_inline(LSPACE);
+
+ int min_sp;
+ iarf_e av = do_space_ensured(first, second, min_sp);
+
+ LOG_FMT(LSPACE, "%s(%d): av is %s\n", __func__, __LINE__, to_string(av));
+ size_t coldiff;
+
+ if (first->nl_count)
+ {
+ LOG_FMT(LSPACE, "%s(%d): nl_count is %zu, orig_col_end is %zu\n", __func__, __LINE__, first->nl_count, first->orig_col_end);
+ coldiff = first->orig_col_end - 1;
+ }
+ else
+ {
+ LOG_FMT(LSPACE, "%s(%d): Len is %zu\n", __func__, __LINE__, first->Len());
+ coldiff = first->Len();
+ }
+ LOG_FMT(LSPACE, "%s(%d): => coldiff is %zu\n", __func__, __LINE__, coldiff);
+
+ LOG_FMT(LSPACE, "%s(%d): => av is %s\n", __func__, __LINE__,
+ (av == IARF_IGNORE) ? "IGNORE" :
+ (av == IARF_ADD) ? "ADD" :
+ (av == IARF_REMOVE) ? "REMOVE" : "FORCE");
+
+ switch (av)
+ {
+ case IARF_ADD:
+ case IARF_FORCE:
+ coldiff++;
+ break;
+
+ case IARF_REMOVE:
+ break;
+
+ case IARF_IGNORE: // Issue #2064
+ LOG_FMT(LSPACE, "%s(%d): => first->orig_line is %zu\n", __func__, __LINE__, first->orig_line);
+ LOG_FMT(LSPACE, "%s(%d): => second->orig_line is %zu\n", __func__, __LINE__, second->orig_line);
+ LOG_FMT(LSPACE, "%s(%d): => first->Text() is '%s'\n", __func__, __LINE__, first->Text());
+ LOG_FMT(LSPACE, "%s(%d): => second->Text() is '%s'\n", __func__, __LINE__, second->Text());
+ LOG_FMT(LSPACE, "%s(%d): => first->orig_col is %zu\n", __func__, __LINE__, first->orig_col);
+ LOG_FMT(LSPACE, "%s(%d): => second->orig_col is %zu\n", __func__, __LINE__, second->orig_col);
+ LOG_FMT(LSPACE, "%s(%d): => first->Len() is %zu\n", __func__, __LINE__, first->Len());
+
+ if ( first->orig_line == second->orig_line
+ && second->orig_col > (first->orig_col + first->Len()))
+ {
+ coldiff++;
+ }
+ break;
+
+ default:
+ // If we got here, something is wrong...
+ break;
+ }
+ LOG_FMT(LSPACE, "%s(%d): => coldiff is %zu\n", __func__, __LINE__, coldiff);
+ return(coldiff);
+} // space_col_align
+
+
+void space_add_after(Chunk *pc, size_t count)
+{
+ LOG_FUNC_ENTRY();
+
+ Chunk *next = pc->GetNext();
+
+ // don't add at the end of the file or before a newline
+ if ( next->IsNullChunk()
+ || chunk_is_newline(next))
+ {
+ return;
+ }
+
+ // Limit to 16 spaces
+ if (count > 16)
+ {
+ count = 16;
+ }
+
+ // Two CT_SPACE in a row -- use the max of the two
+ if (chunk_is_token(next, CT_SPACE))
+ {
+ if (next->Len() < count)
+ {
+ while (next->Len() < count)
+ {
+ next->str.append(' ');
+ }
+ }
+ return;
+ }
+ Chunk sp;
+
+ set_chunk_type(&sp, CT_SPACE);
+ sp.flags = pc->flags & PCF_COPY_FLAGS;
+ sp.str = " "; // 16 spaces
+ sp.str.resize(count);
+ sp.level = pc->level;
+ sp.brace_level = pc->brace_level;
+ sp.pp_level = pc->pp_level;
+ sp.column = pc->column + pc->Len();
+ sp.orig_line = pc->orig_line;
+ sp.orig_col = pc->orig_col;
+
+ chunk_add_after(&sp, pc);
+} // space_add_after
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/space.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/space.h
new file mode 100644
index 00000000..3989e126
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/space.h
@@ -0,0 +1,45 @@
+/**
+ * @file space.h
+ * prototypes for space.cpp
+ *
+ * @author Ben Gardner
+ * @license GPL v2+
+ */
+#ifndef SPACE_H_INCLUDED
+#define SPACE_H_INCLUDED
+
+#include "uncrustify_types.h"
+
+
+/**
+ * Marches through the whole file and checks to see how many spaces should be
+ * between two chunks
+ */
+void space_text(void);
+
+
+//! Marches through the whole file and adds spaces around nested parenthesis
+void space_text_balance_nested_parens(void);
+
+
+//! Determines if a space is required between two chunks
+size_t space_needed(Chunk *first, Chunk *second);
+
+
+/**
+ * Calculates the column difference between two chunks.
+ * The rules are bent a bit here, as IARF_IGNORE and IARF_ADD become IARF_FORCE.
+ * So the column difference is either first->len or first->len + 1.
+ *
+ * @param first The first chunk
+ * @param second The second chunk
+ *
+ * @return the column difference between the two chunks
+ */
+size_t space_col_align(Chunk *first, Chunk *second);
+
+
+void space_add_after(Chunk *pc, size_t count);
+
+
+#endif /* SPACE_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/symbols_table.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/symbols_table.h
index 1a864478..1a864478 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/symbols_table.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/symbols_table.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/token_enum.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/token_enum.h
new file mode 100644
index 00000000..7a138d41
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/token_enum.h
@@ -0,0 +1,399 @@
+/**
+ * @file token_enum.h
+ * List of the different tokens used in the program.
+ *
+ * @author Ben Gardner
+ * @author Guy Maurel since version 0.62 for uncrustify4Qt
+ * October 2015
+ * @license GPL v2+
+ */
+
+#ifndef TOKEN_ENUM_H_INCLUDED
+#define TOKEN_ENUM_H_INCLUDED
+
+/**
+ * abbreviations used:
+ * CT = chunk type
+ */
+
+
+/**
+ * This is an enum of all the different chunks/tokens/elements that the
+ * program can work with. The parser and scanner assigns one of these to
+ * each chunk/token.
+ */
+enum E_Token
+{
+ CT_NONE,
+ CT_PARENT_NOT_SET,
+ CT_EOF,
+ CT_UNKNOWN,
+
+ CT_JUNK, // junk collected when parsing is disabled
+
+ CT_WHITESPACE, // whitespace without any newlines
+ CT_SPACE, // a fixed number of spaces to support weird spacing rules
+ CT_NEWLINE, // CRA, one or more newlines
+ CT_NL_CONT, // CRA, backslash-newline
+ CT_FORM_FEED, // character 12
+ CT_COMMENT_CPP, // C++ comment (always followed by CT_NEWLINE)
+ CT_COMMENT, // C-comment, single line
+ CT_COMMENT_MULTI, // Multi-lined comment
+ CT_COMMENT_EMBED, // comment parent_type: non-newline before and after
+ CT_COMMENT_START, // comment parent_type: newline before
+ CT_COMMENT_END, // comment parent_type: newline after
+ CT_COMMENT_WHOLE, // comment parent_type: newline before and after
+ CT_COMMENT_ENDIF, // C-comment, single line, after ENDIF
+
+ CT_IGNORED, // a chunk of ignored text
+
+ CT_WORD, // variable, type, function name, etc
+ CT_NUMBER,
+ CT_NUMBER_FP,
+ CT_STRING, // quoted string "hi" or 'a' or <in> for include
+ CT_STRING_MULTI, // quoted string with embedded newline
+ CT_IF, // built-in keywords
+ CT_ELSE,
+ CT_ELSEIF,
+ CT_CONSTEXPR, // only when preceded by 'if' (otherwise CT_QUALIFIER)
+ CT_FOR,
+ CT_WHILE,
+ CT_WHILE_OF_DO,
+ CT_SWITCH,
+ CT_CASE,
+ CT_DO,
+ CT_SYNCHRONIZED,
+ CT_VOLATILE,
+ CT_TYPEDEF,
+ CT_STRUCT,
+ CT_ENUM,
+ CT_ENUM_CLASS,
+ CT_SIZEOF,
+ CT_DECLTYPE,
+ CT_RETURN,
+ CT_BREAK,
+ CT_UNION,
+ CT_GOTO,
+ CT_CONTINUE,
+ CT_C_CAST, // C-style cast: "(int)5.6"
+ CT_CPP_CAST, // C++-style cast: "int(5.6)"
+ CT_D_CAST, // D-style cast: "cast(type)" and "const(type)"
+ CT_TYPE_CAST, // static_cast<type>(exp)
+ CT_TYPENAME, // typename type
+ CT_TEMPLATE, // template<...>
+ CT_PARAMETER_PACK, // template<typename ... ARGS>
+ CT_WHERE_SPEC, // 'where' : used in C# generic constraint
+
+ CT_ASSIGN, // =, +=, /=, etc
+ CT_ASSIGN_NL, // Assign followed by a newline - fake item for indenting
+ CT_SASSIGN, // 'and_eq'
+
+ CT_ASSIGN_DEFAULT_ARG, // Default argument such as
+ // Foo( int Foo = 5 );
+ CT_ASSIGN_FUNC_PROTO, // function prototype modifier such as
+ // void* operator new(std::size_t) = delete;
+ // Foo( const Foo & ) = default;
+ // Foo( const Foo & ) = 0;
+
+ CT_COMPARE, // ==, !=, <=, >=
+ CT_SCOMPARE, // compare op that is a string 'is', 'neq'
+ CT_BOOL, // || or &&
+ CT_SBOOL, // or, and
+ CT_ARITH, // +, -, /, etc
+ CT_SARITH, // 'not', 'xor'
+ CT_SHIFT, // <<, >>
+ CT_CARET, // ^
+ CT_DEREF, // * dereference
+ CT_INCDEC_BEFORE, // ++a or --a
+ CT_INCDEC_AFTER, // a++ or a--
+ CT_MEMBER, // . or ->
+ CT_DC_MEMBER, // ::
+ CT_C99_MEMBER, // . in structure stuff
+ CT_INV, // ~
+ CT_DESTRUCTOR, // ~
+ CT_NOT, // !
+ CT_D_TEMPLATE, // ! as in Foo!(A)
+ CT_ADDR, // &
+ CT_NEG, // - as in -1
+ CT_POS, // + as in +1
+ CT_STAR, // * : raw char to be changed
+ CT_PLUS, // + : raw char to be changed
+ CT_MINUS, // - : raw char to be changed
+ CT_AMP, // & : raw char to be changed
+ CT_BYREF, // & in function def/proto params
+
+ // CT_BITWISE_AND, // & // is a CT_ARITH
+ // CT_BITWISE_OR, // | // is a CT_ARITH
+ // CT_BITWISE_EXCLUSIVE_OR,// ^ // is a CT_ARITH
+ // CT_BITWISE_NOT, // ~ // is a CT_ARITH
+
+ CT_POUND, // #
+ CT_PREPROC, // # at the start of a line
+ CT_PREPROC_INDENT, // # at the start of a line that gets indented: #region
+ CT_PREPROC_BODY, // body of every preproc EXCEPT #define
+ CT_PP, // ##
+ CT_ELLIPSIS, // ...
+ CT_RANGE, // ..
+ CT_NULLCOND, // ?.
+
+ CT_SEMICOLON,
+ CT_VSEMICOLON, // virtual semicolon for PAWN
+ CT_COLON,
+ CT_ASM_COLON,
+ CT_CASE_COLON,
+ CT_CASE_ELLIPSIS, // '...' in `case 1 ... 5`:
+ CT_CLASS_COLON, // colon after a class def
+ CT_CONSTR_COLON, // colon after a constructor
+ CT_D_ARRAY_COLON, // D named array initializer colon
+ CT_COND_COLON, // conditional colon in 'b ? t : f'
+ CT_WHERE_COLON, // C# where-constraint colon (after the type)
+ CT_QUESTION,
+ CT_COMMA,
+
+ CT_ASM,
+ CT_ATTRIBUTE,
+ CT_AUTORELEASEPOOL, // OC: Autorelease Pool Blocks, used by iOS
+ CT_OC_AVAILABLE,
+ CT_OC_AVAILABLE_VALUE,
+ CT_CATCH,
+ CT_WHEN,
+ CT_WHERE, // C# where clause
+ CT_CLASS,
+ CT_DELETE,
+ CT_EXPORT,
+ CT_FRIEND,
+ CT_NAMESPACE,
+ CT_PACKAGE,
+ CT_NEW, // may turn into CT_PBRACED if followed by a '('
+ CT_OPERATOR,
+ CT_OPERATOR_VAL,
+ CT_ASSIGN_OPERATOR, // the value after 'operator' such as:
+ // Foo &operator= ( const Foo & );
+ CT_ACCESS,
+ CT_ACCESS_COLON,
+ CT_THROW,
+ CT_NOEXCEPT,
+ CT_TRY,
+ CT_BRACED_INIT_LIST,
+ CT_USING,
+ CT_USING_STMT, // using (xxx) ...
+ CT_USING_ALIAS, // using identifier attr(optional) = type-id
+ CT_D_WITH, // D: parenthetis+braced
+ CT_D_MODULE,
+ CT_SUPER,
+ CT_DELEGATE,
+ CT_BODY,
+ CT_DEBUG,
+ CT_DEBUGGER,
+ CT_INVARIANT,
+ CT_UNITTEST,
+ CT_UNSAFE,
+ CT_FINALLY,
+ CT_FIXED, // C# fixed
+ CT_IMPORT,
+ CT_D_SCOPE,
+ CT_D_SCOPE_IF,
+ CT_LAZY,
+ CT_D_MACRO,
+ CT_D_VERSION, // turns into CT_D_VERSION_IF if not followed by '='
+ CT_D_VERSION_IF, // version(x) { }
+
+ // note for parenthetis/brace/square pairs: close MUST be open + 1
+ CT_PAREN_OPEN,
+ CT_PAREN_CLOSE,
+
+ CT_ANGLE_OPEN, // template<T*>
+ CT_ANGLE_CLOSE,
+
+ CT_SPAREN_OPEN, // 'special' parenthetis after if/for/switch/while/synchronized/catch
+ CT_SPAREN_CLOSE,
+
+ CT_PPAREN_OPEN, // 'protect' parenthetis to protect a type such as (*int)
+ CT_PPAREN_CLOSE, // used at align_func_param
+
+ CT_FPAREN_OPEN, // 'function' parenthetis after fcn/macro fcn
+ CT_FPAREN_CLOSE,
+
+ CT_LPAREN_OPEN, // lambda-declarator parenthetis
+ CT_LPAREN_CLOSE,
+
+ CT_TPAREN_OPEN, // 'type' parenthetis used in function types
+ CT_TPAREN_CLOSE,
+
+ CT_BRACE_OPEN, // {...}
+ CT_BRACE_CLOSE,
+
+ CT_VBRACE_OPEN, // virtual brace, i.e. brace inserted by uncrustify
+ CT_VBRACE_CLOSE,
+
+ CT_SQUARE_OPEN, // [...]
+ CT_SQUARE_CLOSE,
+
+ CT_TSQUARE, // special case of []
+
+ CT_MACRO_OPEN, // stuff specified via custom-pair
+ CT_MACRO_CLOSE,
+ CT_MACRO_ELSE,
+
+ // aggregate types
+ CT_LABEL, // a non-case label
+ CT_LABEL_COLON, // the colon for a label
+ CT_FUNCTION, // function - unspecified, call mark_function()
+ CT_FUNC_CALL, // function call
+ CT_FUNC_CALL_USER, // function call (special user)
+ CT_FUNC_DEF, // function definition/implementation
+ CT_FUNC_TYPE, // function type - foo in "typedef void (*foo)(void)"
+ CT_FUNC_VAR, // foo and parent type of first parens in "void (*foo)(void)"
+ CT_FUNC_PROTO, // function prototype
+ CT_FUNC_START, // global DC member for functions(void ::func())
+ CT_FUNC_CLASS_DEF, // ctor or dtor for a class
+ CT_FUNC_CLASS_PROTO, // ctor or dtor for a class
+ CT_FUNC_CTOR_VAR, // variable or class initialization
+ CT_FUNC_WRAP, // macro that wraps the function name
+ CT_PROTO_WRAP, // macro: "RETVAL PROTO_WRAP( fcn_name, (PARAMS))". Parens for PARAMS are optional.
+ CT_MACRO_FUNC, // function-like macro
+ CT_MACRO_FUNC_CALL, // function-like macro call
+ CT_MACRO, // a macro def
+ CT_QUALIFIER, // static, const, etc
+ CT_EXTERN, // extern
+ CT_DECLSPEC, // __declspec
+ CT_ALIGN, // paren'd qualifier: align(4) struct a { }
+ CT_TYPE,
+ CT_PTR_TYPE, // a '*' as part of a type
+ CT_TYPE_WRAP, // macro that wraps a type name
+ CT_CPP_LAMBDA, // parent for '[=](...){...}'
+ CT_CPP_LAMBDA_RET, // '->' in '[=](...) -> type {...}'
+ CT_EXECUTION_CONTEXT, // Keyword for use in lambda statement: [] CT_EXECUTION_CONTEXT ()->{}
+ CT_TRAILING_RET, // '->' in 'auto fname(...) -> type;'
+ // '->' in 'auto fname(...) const -> type;'
+ CT_BIT_COLON, // a ':' in a variable declaration
+
+ CT_OC_DYNAMIC,
+ CT_OC_END, // ObjC: @end
+ CT_OC_IMPL, // ObjC: @implementation
+ CT_OC_INTF, // ObjC: @interface
+ CT_OC_PROTOCOL, // ObjC: @protocol or @protocol()
+ CT_OC_PROTO_LIST, // ObjC: protocol list < > (parent token only)
+ CT_OC_GENERIC_SPEC, // ObjC: specification of generic < >
+ CT_OC_PROPERTY, // ObjC: @property
+ CT_OC_CLASS, // ObjC: the name after @interface or @implementation
+ CT_OC_CLASS_EXT, // ObjC: a pair of empty parens after the class name in a @interface or @implementation
+ CT_OC_CATEGORY, // ObjC: the category name in parens after the class name in a @interface or @implementation
+ CT_OC_SCOPE, // ObjC: the '-' or '+' in '-(void) func: (int) i;'
+ CT_OC_MSG, // ObjC: parent type to '[', ']' and ';' in '[class func : param name: param];'
+ CT_OC_MSG_CLASS, // ObjC: 'class' in '[class func : param name: param];' (see also PCF_IN_OC_MSG)
+ CT_OC_MSG_FUNC, // ObjC: 'func' in '[class func : param name: param];' (see also PCF_IN_OC_MSG)
+ CT_OC_MSG_NAME, // ObjC: 'name' in '[class func : param name: param];' (see also PCF_IN_OC_MSG)
+ CT_OC_MSG_SPEC, // ObjC: msg spec '-(void) func: (int) i;'
+ CT_OC_MSG_DECL, // ObjC: msg decl '-(void) func: (int) i { }'
+ CT_OC_RTYPE, // ObjC: marks parens of the return type after scope
+ CT_OC_ATYPE, // ObjC: marks parens of the arg type after scope
+ CT_OC_COLON, // ObjC: the colon in a msg spec
+ CT_OC_DICT_COLON, // ObjC: colon in dictionary constant: "KEY: VALUE"
+ CT_OC_SEL, // ObjC: @selector
+ CT_OC_SEL_NAME, // ObjC: selector name
+ CT_OC_BLOCK, // ObjC: block parent type.
+ CT_OC_BLOCK_ARG, // ObjC: block arguments parent type.
+ CT_OC_BLOCK_TYPE, // ObjC: block declaration parent type, e.g. mainly the '(^block_t)' in 'void (^block_t)(int arg);'
+ CT_OC_BLOCK_EXPR, // ObjC: block expression with arg: '^(int arg) { arg++; };' and without (called a block literal): '^{ ... };'
+ CT_OC_BLOCK_CARET, // ObjC: block pointer caret: '^'
+ CT_OC_AT, // ObjC: boxed constants using '@'
+ CT_OC_PROPERTY_ATTR, // ObjC: property attribute (strong, weak, readonly, etc...)
+
+ // start PP types
+ CT_PP_DEFINE, // #define
+ CT_PP_DEFINED, // #if defined
+ CT_PP_INCLUDE, // #include
+ CT_PP_IF, // #if, #ifdef, or #ifndef
+ CT_PP_ELSE, // #else or #elif
+ CT_PP_ENDIF, // #endif
+ CT_PP_ASSERT,
+ CT_PP_EMIT,
+ CT_PP_ENDINPUT,
+ CT_PP_ERROR,
+ CT_PP_FILE,
+ CT_PP_LINE,
+ CT_PP_SECTION,
+ CT_PP_ASM, // start of assembly code section
+ CT_PP_UNDEF,
+ CT_PP_PROPERTY,
+
+ CT_PP_BODYCHUNK, // everything after this gets put in CT_PREPROC_BODY
+
+ CT_PP_PRAGMA, // pragma's should not be altered
+ CT_PP_REGION, // C# #region
+ CT_PP_ENDREGION, // C# #endregion
+ CT_PP_REGION_INDENT, // Dummy token for indenting a C# #region
+ CT_PP_IF_INDENT, // Dummy token for indenting a #if stuff
+ CT_PP_IGNORE, // Dummy token for ignoring a certain preprocessor directive (do not do any processing)
+ CT_PP_OTHER, // #line, #error, #pragma, etc
+ // end PP types
+
+ // PAWN stuff
+ CT_CHAR,
+ CT_DEFINED,
+ CT_FORWARD,
+ CT_NATIVE,
+ CT_STATE,
+ CT_STOCK,
+ CT_TAGOF,
+ CT_DOT,
+ CT_TAG,
+ CT_TAG_COLON,
+
+ // C-sharp
+ CT_LOCK, // lock/unlock
+ CT_AS,
+ CT_IN, // "foreach (T c in x)" or "foo(in char c)" or "in { ..."
+ CT_BRACED, // simple braced items: try {}
+ CT_THIS, // may turn into CT_PBRACED if followed by a '('
+ CT_BASE, // C# thingy
+ CT_DEFAULT, // may be changed into CT_CASE
+ CT_GETSET, // must be followed by CT_BRACE_OPEN or reverts to CT_WORD
+ CT_GETSET_EMPTY, // get/set/add/remove followed by a semicolon
+ CT_CONCAT, // The '~' between strings
+ CT_CS_SQ_STMT, // '[assembly: xxx]' or '[Attribute()]' or '[Help()]', etc
+ CT_CS_SQ_COLON, // the colon in one of those [] thingys
+ CT_CS_PROPERTY, // word or ']' followed by '{'
+
+ // Embedded SQL - always terminated with a semicolon
+ CT_SQL_EXEC, // the 'EXEC' in 'EXEC SQL ...'
+ CT_SQL_BEGIN, // the 'BEGINN' in 'EXEC SQL BEGIN ...'
+ CT_SQL_END, // the 'END' in 'EXEC SQL END ...'
+ CT_SQL_WORD, // CT_WORDs in the 'EXEC SQL' statement
+ CT_SQL_ASSIGN, // :=
+
+ // Vala stuff
+ CT_CONSTRUCT, // braced "construct { }" or qualifier "(construct int x)"
+ CT_LAMBDA,
+
+ // Java
+ CT_ASSERT, // assert EXP1 [ : EXP2 ] ;
+ CT_ANNOTATION, // @interface or @something(...)
+ CT_FOR_COLON, // colon in "for ( TYPE var: EXPR ) { ... }"
+ CT_DOUBLE_BRACE, // parent for double brace
+
+ /* Clang */
+ CT_CNG_HASINC, // Clang: __has_include()
+ CT_CNG_HASINCN, // Clang: __has_include_next()
+
+ // extensions for Qt macros
+ CT_Q_EMIT, // guy 2015-10-16
+ CT_Q_FOREACH, // guy 2015-09-23
+ CT_Q_FOREVER, // guy 2015-10-18
+ CT_Q_GADGET, // guy 2016-05-04
+ CT_Q_OBJECT, // guy 2015-10-16
+
+ // Machine Modes
+ CT_MODE, // guy 2016-03-11
+ CT_DI, // guy 2016-03-11
+ CT_HI, // guy 2016-03-11
+ CT_QI, // guy 2016-03-11
+ CT_SI, // guy 2016-03-11
+ CT_NOTHROW, // guy 2016-03-11
+ CT_WORD_, // guy 2016-03-11
+
+ CT_TOKEN_COUNT_ // NOTE: Keep this the last entry because it's used as a counter.
+};
+
+#endif /* TOKEN_ENUM_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/tokenize.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/tokenize.cpp
new file mode 100644
index 00000000..4d446f6c
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/tokenize.cpp
@@ -0,0 +1,2855 @@
+/**
+ * @file tokenize.cpp
+ * This file breaks up the text stream into tokens or chunks.
+ *
+ * Each routine needs to set pc.len and pc.type.
+ *
+ * @author Ben Gardner
+ * @license GPL v2+
+ */
+
+#include "tokenize.h"
+
+#include "keywords.h"
+#include "prototypes.h"
+#include "punctuators.h"
+#include "unc_ctype.h"
+
+#include <regex>
+#include <stack>
+
+
+#define LE_COUNT(x) cpd.le_counts[static_cast<size_t>(LE_ ## x)]
+
+constexpr static auto LCURRENT = LTOK;
+
+using namespace std;
+using namespace uncrustify;
+
+
+struct tok_info
+{
+ tok_info()
+ : last_ch(0)
+ , idx(0)
+ , row(1)
+ , col(1)
+ {
+ }
+
+ size_t last_ch;
+ size_t idx;
+ size_t row;
+ size_t col;
+};
+
+
+struct tok_ctx
+{
+ tok_ctx(const deque<int> &d)
+ : data(d)
+ {
+ }
+
+
+ //! save before trying to parse something that may fail
+ void save()
+ {
+ save(s);
+ }
+
+
+ void save(tok_info &info)
+ {
+ info = c;
+ }
+
+
+ //! restore previous saved state
+ void restore()
+ {
+ restore(s);
+ }
+
+
+ void restore(const tok_info &info)
+ {
+ c = info;
+ }
+
+
+ bool more()
+ {
+ return(c.idx < data.size());
+ }
+
+
+ size_t peek()
+ {
+ return(more() ? data[c.idx] : 0);
+ }
+
+
+ size_t peek(size_t idx)
+ {
+ idx += c.idx;
+ return((idx < data.size()) ? data[idx] : 0);
+ }
+
+
+ size_t get()
+ {
+ if (more())
+ {
+ size_t ch = data[c.idx++];
+
+ switch (ch)
+ {
+ case '\t':
+ log_rule_B("input_tab_size");
+ c.col = calc_next_tab_column(c.col, options::input_tab_size());
+ break;
+
+ case '\n':
+
+ if (c.last_ch != '\r')
+ {
+ c.row++;
+ c.col = 1;
+ }
+ break;
+
+ case '\r':
+ c.row++;
+ c.col = 1;
+ break;
+
+ default:
+ c.col++;
+ break;
+ }
+ c.last_ch = ch;
+ return(ch);
+ }
+ return(0);
+ }
+
+
+ bool expect(size_t ch)
+ {
+ if (peek() == ch)
+ {
+ get();
+ return(true);
+ }
+ return(false);
+ }
+
+
+ const deque<int> &data;
+ tok_info c; //! current
+ tok_info s; //! saved
+};
+
+
+/**
+ * Count the number of characters in a quoted string.
+ * The next bit of text starts with a quote char " or ' or <.
+ * Count the number of characters until the matching character.
+ *
+ * @param pc The structure to update, str is an input.
+ *
+ * @return Whether a string was parsed
+ */
+static bool parse_string(tok_ctx &ctx, Chunk &pc, size_t quote_idx, bool allow_escape);
+
+
+/**
+ * Literal string, ends with single "
+ * Two "" don't end the string.
+ *
+ * @param pc The structure to update, str is an input.
+ *
+ * @return Whether a string was parsed
+ */
+static bool parse_cs_string(tok_ctx &ctx, Chunk &pc);
+
+
+/**
+ * VALA verbatim string, ends with three quotes (""")
+ *
+ * @param pc The structure to update, str is an input.
+ */
+static void parse_verbatim_string(tok_ctx &ctx, Chunk &pc);
+
+
+static bool tag_compare(const deque<int> &d, size_t a_idx, size_t b_idx, size_t len);
+
+
+/**
+ * Parses a C++0x 'R' string. R"( xxx )" R"tag( )tag" u8R"(x)" uR"(x)"
+ * Newlines may be in the string.
+ *
+ * @param pc structure to update, str is an input.
+ */
+static bool parse_cr_string(tok_ctx &ctx, Chunk &pc, size_t q_idx);
+
+
+/**
+ * Count the number of whitespace characters.
+ *
+ * @param pc The structure to update, str is an input.
+ *
+ * @return Whether whitespace was parsed
+ */
+static bool parse_whitespace(tok_ctx &ctx, Chunk &pc);
+
+
+/**
+ * Called when we hit a backslash.
+ * If there is nothing but whitespace until the newline, then this is a
+ * backslash newline
+ *
+ * @param pc structure to update, str is an input
+ */
+static bool parse_bs_newline(tok_ctx &ctx, Chunk &pc);
+
+
+/**
+ * Parses any number of tab or space chars followed by a newline.
+ * Does not change pc.len if a newline isn't found.
+ * This is not the same as parse_whitespace() because it only consumes until
+ * a single newline is encountered.
+ */
+static bool parse_newline(tok_ctx &ctx);
+
+
+/**
+ * PAWN #define is different than C/C++.
+ * #define PATTERN REPLACEMENT_TEXT
+ * The PATTERN may not contain a space or '[' or ']'.
+ * A generic whitespace check should be good enough.
+ * Do not change the pattern.
+ *
+ * @param pc structure to update, str is an input
+ */
+static void parse_pawn_pattern(tok_ctx &ctx, Chunk &pc, E_Token tt);
+
+
+static bool parse_ignored(tok_ctx &ctx, Chunk &pc);
+
+
+/**
+ * Skips the next bit of whatever and returns the type of block.
+ *
+ * pc.str is the input text.
+ * pc.len in the output length.
+ * pc.type is the output type
+ * pc.column is output column
+ *
+ * @param pc The structure to update, str is an input.
+ * @param prev_pc The previous structure
+ *
+ * @return true/false - whether anything was parsed
+ */
+static bool parse_next(tok_ctx &ctx, Chunk &pc, const Chunk *prev_pc);
+
+
+/**
+ * Parses all legal D string constants.
+ *
+ * Quoted strings:
+ * r"Wysiwyg" # WYSIWYG string
+ * x"hexstring" # Hexadecimal array
+ * `Wysiwyg` # WYSIWYG string
+ * 'char' # single character
+ * "reg_string" # regular string
+ *
+ * Non-quoted strings:
+ * \x12 # 1-byte hex constant
+ * \u1234 # 2-byte hex constant
+ * \U12345678 # 4-byte hex constant
+ * \123 # octal constant
+ * \&amp; # named entity
+ * \n # single character
+ *
+ * @param pc The structure to update, str is an input.
+ *
+ * @return Whether a string was parsed
+ */
+static bool d_parse_string(tok_ctx &ctx, Chunk &pc);
+
+
+/**
+ * Figure of the length of the comment at text.
+ * The next bit of text starts with a '/', so it might be a comment.
+ * There are three types of comments:
+ * - C comments that start with '/ *' and end with '* /'
+ * - C++ comments that start with //
+ * - D nestable comments '/+' '+/'
+ *
+ * @param pc The structure to update, str is an input.
+ *
+ * @return Whether a comment was parsed
+ */
+static bool parse_comment(tok_ctx &ctx, Chunk &pc);
+
+
+/**
+ * Figure of the length of the code placeholder at text, if present.
+ * This is only for Xcode which sometimes inserts temporary code placeholder chunks, which in plaintext <#look like this#>.
+ *
+ * @param pc The structure to update, str is an input.
+ *
+ * @return Whether a placeholder was parsed.
+ */
+static bool parse_code_placeholder(tok_ctx &ctx, Chunk &pc);
+
+
+/**
+ * Parse any attached suffix, which may be a user-defined literal suffix.
+ * If for a string, explicitly exclude common format and scan specifiers, ie,
+ * PRIx32 and SCNx64.
+ */
+static void parse_suffix(tok_ctx &ctx, Chunk &pc, bool forstring);
+
+
+//! check if a symbol holds a boolean value
+static bool is_bin(int ch);
+static bool is_bin_(int ch);
+
+
+//! check if a symbol holds a octal value
+static bool is_oct(int ch);
+static bool is_oct_(int ch);
+
+
+//! check if a symbol holds a decimal value;
+static bool is_dec(int ch);
+static bool is_dec_(int ch);
+
+
+//! check if a symbol holds a hexadecimal value
+static bool is_hex(int ch);
+static bool is_hex_(int ch);
+
+
+/**
+ * Count the number of characters in the number.
+ * The next bit of text starts with a number (0-9 or '.'), so it is a number.
+ * Count the number of characters in the number.
+ *
+ * This should cover all number formats for all languages.
+ * Note that this is not a strict parser. It will happily parse numbers in
+ * an invalid format.
+ *
+ * For example, only D allows underscores in the numbers, but they are
+ * allowed in all formats.
+ *
+ * @param[in,out] pc The structure to update, str is an input.
+ *
+ * @return Whether a number was parsed
+ */
+static bool parse_number(tok_ctx &ctx, Chunk &pc);
+
+
+static bool d_parse_string(tok_ctx &ctx, Chunk &pc)
+{
+ size_t ch = ctx.peek();
+
+ if ( ch == '"'
+ || ch == '\'')
+ {
+ return(parse_string(ctx, pc, 0, true));
+ }
+
+ if (ch == '`')
+ {
+ return(parse_string(ctx, pc, 0, false));
+ }
+
+ if ( ( ch == 'r'
+ || ch == 'x')
+ && ctx.peek(1) == '"')
+ {
+ return(parse_string(ctx, pc, 1, false));
+ }
+
+ if (ch != '\\')
+ {
+ return(false);
+ }
+ ctx.save();
+ int cnt;
+
+ pc.str.clear();
+
+ while (ctx.peek() == '\\')
+ {
+ pc.str.append(ctx.get());
+
+ // Check for end of file
+ switch (ctx.peek())
+ {
+ case 'x': // \x HexDigit HexDigit
+ cnt = 3;
+
+ while (cnt--)
+ {
+ pc.str.append(ctx.get());
+ }
+ break;
+
+ case 'u': // \u HexDigit (x4)
+ cnt = 5;
+
+ while (cnt--)
+ {
+ pc.str.append(ctx.get());
+ }
+ break;
+
+ case 'U': // \U HexDigit (x8)
+ cnt = 9;
+
+ while (cnt--)
+ {
+ pc.str.append(ctx.get());
+ }
+ break;
+
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ // handle up to 3 octal digits
+ pc.str.append(ctx.get());
+ ch = ctx.peek();
+
+ if ( (ch >= '0')
+ && (ch <= '7'))
+ {
+ pc.str.append(ctx.get());
+ ch = ctx.peek();
+
+ if ( (ch >= '0')
+ && (ch <= '7'))
+ {
+ pc.str.append(ctx.get());
+ }
+ }
+ break;
+
+ case '&':
+ // \& NamedCharacterEntity ;
+ pc.str.append(ctx.get());
+
+ while (unc_isalpha(ctx.peek()))
+ {
+ pc.str.append(ctx.get());
+ }
+
+ if (ctx.peek() == ';')
+ {
+ pc.str.append(ctx.get());
+ }
+ break;
+
+ default:
+ // Everything else is a single character
+ pc.str.append(ctx.get());
+ break;
+ } // switch
+ }
+
+ if (pc.str.size() < 1)
+ {
+ ctx.restore();
+ return(false);
+ }
+ set_chunk_type(&pc, CT_STRING);
+ return(true);
+} // d_parse_string
+
+
+#if 0
+
+
+//! A string-in-string search. Like strstr() with a haystack length.
+static const char *str_search(const char *needle, const char *haystack, int haystack_len)
+{
+ int needle_len = strlen(needle);
+
+ while (haystack_len-- >= needle_len)
+ {
+ if (memcmp(needle, haystack, needle_len) == 0)
+ {
+ return(haystack);
+ }
+ haystack++;
+ }
+ return(NULL);
+}
+#endif
+
+
+static bool parse_comment(tok_ctx &ctx, Chunk &pc)
+{
+ bool is_d = language_is_set(LANG_D);
+ bool is_cs = language_is_set(LANG_CS);
+ size_t d_level = 0;
+
+ // does this start with '/ /' or '/ *' or '/ +' (d)
+ if ( (ctx.peek() != '/')
+ || ( (ctx.peek(1) != '*')
+ && (ctx.peek(1) != '/')
+ && ( (ctx.peek(1) != '+')
+ || !is_d)))
+ {
+ return(false);
+ }
+ ctx.save();
+
+ // account for opening two chars
+ pc.str = ctx.get(); // opening '/'
+ size_t ch = ctx.get();
+
+ pc.str.append(ch); // second char
+
+ if (ch == '/')
+ {
+ set_chunk_type(&pc, CT_COMMENT_CPP);
+
+ while (true)
+ {
+ int bs_cnt = 0;
+
+ while (ctx.more())
+ {
+ ch = ctx.peek();
+
+ if ( (ch == '\r')
+ || (ch == '\n'))
+ {
+ break;
+ }
+
+ if ( (ch == '\\')
+ && !is_cs) // backslashes aren't special in comments in C#
+ {
+ bs_cnt++;
+ }
+ else
+ {
+ bs_cnt = 0;
+ }
+ pc.str.append(ctx.get());
+ }
+
+ /*
+ * If we hit an odd number of backslashes right before the newline,
+ * then we keep going.
+ */
+ if ( ((bs_cnt & 1) == 0)
+ || !ctx.more())
+ {
+ break;
+ }
+
+ if (ctx.peek() == '\r')
+ {
+ pc.str.append(ctx.get());
+ }
+
+ if (ctx.peek() == '\n')
+ {
+ pc.str.append(ctx.get());
+ }
+ pc.nl_count++;
+ cpd.did_newline = true;
+ }
+ }
+ else if (!ctx.more())
+ {
+ // unexpected end of file
+ ctx.restore();
+ return(false);
+ }
+ else if (ch == '+')
+ {
+ set_chunk_type(&pc, CT_COMMENT);
+ d_level++;
+
+ while ( d_level > 0
+ && ctx.more())
+ {
+ if ( (ctx.peek() == '+')
+ && (ctx.peek(1) == '/'))
+ {
+ pc.str.append(ctx.get()); // store the '+'
+ pc.str.append(ctx.get()); // store the '/'
+ d_level--;
+ continue;
+ }
+
+ if ( (ctx.peek() == '/')
+ && (ctx.peek(1) == '+'))
+ {
+ pc.str.append(ctx.get()); // store the '/'
+ pc.str.append(ctx.get()); // store the '+'
+ d_level++;
+ continue;
+ }
+ ch = ctx.get();
+ pc.str.append(ch);
+
+ if ( (ch == '\n')
+ || (ch == '\r'))
+ {
+ set_chunk_type(&pc, CT_COMMENT_MULTI);
+ pc.nl_count++;
+
+ if (ch == '\r')
+ {
+ if (ctx.peek() == '\n')
+ {
+ ++LE_COUNT(CRLF);
+ pc.str.append(ctx.get()); // store the '\n'
+ }
+ else
+ {
+ ++LE_COUNT(CR);
+ }
+ }
+ else
+ {
+ ++LE_COUNT(LF);
+ }
+ }
+ }
+ }
+ else // must be '/ *'
+ {
+ set_chunk_type(&pc, CT_COMMENT);
+
+ while (ctx.more())
+ {
+ if ( (ctx.peek() == '*')
+ && (ctx.peek(1) == '/'))
+ {
+ pc.str.append(ctx.get()); // store the '*'
+ pc.str.append(ctx.get()); // store the '/'
+
+ tok_info ss;
+ ctx.save(ss);
+ size_t oldsize = pc.str.size();
+
+ // If there is another C comment right after this one, combine them
+ while ( (ctx.peek() == ' ')
+ || (ctx.peek() == '\t'))
+ {
+ pc.str.append(ctx.get());
+ }
+
+ if ( (ctx.peek() != '/')
+ || (ctx.peek(1) != '*'))
+ {
+ // undo the attempt to join
+ ctx.restore(ss);
+ pc.str.resize(oldsize);
+ break;
+ }
+ }
+ ch = ctx.get();
+ pc.str.append(ch);
+
+ if ( (ch == '\n')
+ || (ch == '\r'))
+ {
+ set_chunk_type(&pc, CT_COMMENT_MULTI);
+ pc.nl_count++;
+
+ if (ch == '\r')
+ {
+ if (ctx.peek() == '\n')
+ {
+ ++LE_COUNT(CRLF);
+ pc.str.append(ctx.get()); // store the '\n'
+ }
+ else
+ {
+ ++LE_COUNT(CR);
+ }
+ }
+ else
+ {
+ ++LE_COUNT(LF);
+ }
+ }
+ }
+ }
+
+ if (cpd.unc_off)
+ {
+ bool found_enable_marker = (find_enable_processing_comment_marker(pc.str) >= 0);
+
+ if (found_enable_marker)
+ {
+ const auto &ontext = options::enable_processing_cmt();
+
+ LOG_FMT(LBCTRL, "%s(%d): Found '%s' on line %zu\n",
+ __func__, __LINE__, ontext.c_str(), pc.orig_line);
+ cpd.unc_off = false;
+ }
+ }
+ else
+ {
+ auto position_disable_processing_cmt = find_disable_processing_comment_marker(pc.str);
+ bool found_disable_marker = (position_disable_processing_cmt >= 0);
+
+ if (found_disable_marker)
+ {
+ /**
+ * the user may wish to disable processing part of a multiline comment,
+ * in which case we'll handle at a late time. Check to see if processing
+ * is re-enabled elsewhere in this comment
+ */
+ auto position_enable_processing_cmt = find_enable_processing_comment_marker(pc.str);
+
+ if (position_enable_processing_cmt < position_disable_processing_cmt)
+ {
+ const auto &offtext = options::disable_processing_cmt();
+
+ LOG_FMT(LBCTRL, "%s(%d): Found '%s' on line %zu\n",
+ __func__, __LINE__, offtext.c_str(), pc.orig_line);
+ cpd.unc_off = true;
+ // Issue #842
+ cpd.unc_off_used = true;
+ }
+ }
+ }
+ return(true);
+} // parse_comment
+
+
+static bool parse_code_placeholder(tok_ctx &ctx, Chunk &pc)
+{
+ if ( (ctx.peek() != '<')
+ || (ctx.peek(1) != '#'))
+ {
+ return(false);
+ }
+ ctx.save();
+
+ // account for opening two chars '<#'
+ pc.str = ctx.get();
+ pc.str.append(ctx.get());
+
+ // grab everything until '#>', fail if not found.
+ size_t last1 = 0;
+
+ while (ctx.more())
+ {
+ size_t last2 = last1;
+ last1 = ctx.get();
+ pc.str.append(last1);
+
+ if ( (last2 == '#')
+ && (last1 == '>'))
+ {
+ set_chunk_type(&pc, CT_WORD);
+ return(true);
+ }
+ }
+ ctx.restore();
+ return(false);
+}
+
+
+static void parse_suffix(tok_ctx &ctx, Chunk &pc, bool forstring = false)
+{
+ if (CharTable::IsKw1(ctx.peek()))
+ {
+ size_t slen = 0;
+ size_t oldsize = pc.str.size();
+
+ // don't add the suffix if we see L" or L' or S"
+ size_t p1 = ctx.peek();
+ size_t p2 = ctx.peek(1);
+
+ if ( forstring
+ && ( ( (p1 == 'L')
+ && ( (p2 == '"')
+ || (p2 == '\'')))
+ || ( (p1 == 'S')
+ && (p2 == '"'))))
+ {
+ return;
+ }
+ tok_info ss;
+ ctx.save(ss);
+
+ while ( ctx.more()
+ && CharTable::IsKw2(ctx.peek()))
+ {
+ slen++;
+ pc.str.append(ctx.get());
+ }
+
+ if ( forstring
+ && slen >= 4
+ && ( pc.str.startswith("PRI", oldsize)
+ || pc.str.startswith("SCN", oldsize)))
+ {
+ ctx.restore(ss);
+ pc.str.resize(oldsize);
+ }
+ }
+}
+
+
+static bool is_bin(int ch)
+{
+ return( (ch == '0')
+ || (ch == '1'));
+}
+
+
+static bool is_bin_(int ch)
+{
+ return( is_bin(ch)
+ || ch == '_'
+ || ch == '\'');
+}
+
+
+static bool is_oct(int ch)
+{
+ return( (ch >= '0')
+ && (ch <= '7'));
+}
+
+
+static bool is_oct_(int ch)
+{
+ return( is_oct(ch)
+ || ch == '_'
+ || ch == '\'');
+}
+
+
+static bool is_dec(int ch)
+{
+ return( (ch >= '0')
+ && (ch <= '9'));
+}
+
+
+static bool is_dec_(int ch)
+{
+ // number separators: JAVA: "_", C++14: "'"
+ return( is_dec(ch)
+ || (ch == '_')
+ || (ch == '\''));
+}
+
+
+static bool is_hex(int ch)
+{
+ return( ( (ch >= '0')
+ && (ch <= '9'))
+ || ( (ch >= 'a')
+ && (ch <= 'f'))
+ || ( (ch >= 'A')
+ && (ch <= 'F')));
+}
+
+
+static bool is_hex_(int ch)
+{
+ return( is_hex(ch)
+ || ch == '_'
+ || ch == '\'');
+}
+
+
+static bool parse_number(tok_ctx &ctx, Chunk &pc)
+{
+ /*
+ * A number must start with a digit or a dot, followed by a digit
+ * (signs handled elsewhere)
+ */
+ if ( !is_dec(ctx.peek())
+ && ( (ctx.peek() != '.')
+ || !is_dec(ctx.peek(1))))
+ {
+ return(false);
+ }
+ bool is_float = (ctx.peek() == '.');
+
+ if ( is_float
+ && (ctx.peek(1) == '.')) // make sure it isn't '..'
+ {
+ return(false);
+ }
+ /*
+ * Check for Hex, Octal, or Binary
+ * Note that only D, C++14 and Pawn support binary
+ * Fixes the issue # 1591
+ * In c# the numbers starting with 0 are not treated as octal numbers.
+ */
+ bool did_hex = false;
+
+ if ( ctx.peek() == '0'
+ && !language_is_set(LANG_CS))
+ {
+ size_t ch;
+ Chunk pc_temp;
+
+ pc.str.append(ctx.get()); // store the '0'
+ pc_temp.str.append('0');
+
+ // MS constant might have an "h" at the end. Look for it
+ ctx.save();
+
+ while ( ctx.more()
+ && CharTable::IsKw2(ctx.peek()))
+ {
+ ch = ctx.get();
+ pc_temp.str.append(ch);
+ }
+ ch = pc_temp.str[pc_temp.Len() - 1];
+ ctx.restore();
+ LOG_FMT(LGUY, "%s(%d): pc_temp:%s\n", __func__, __LINE__, pc_temp.Text());
+
+ if (ch == 'h') // TODO can we combine this in analyze_character
+ {
+ // we have an MS hexadecimal number with "h" at the end
+ LOG_FMT(LGUY, "%s(%d): MS hexadecimal number\n", __func__, __LINE__);
+ did_hex = true;
+
+ do
+ {
+ pc.str.append(ctx.get()); // store the rest
+ } while (is_hex_(ctx.peek()));
+
+ pc.str.append(ctx.get()); // store the h
+ LOG_FMT(LGUY, "%s(%d): pc:%s\n", __func__, __LINE__, pc.Text());
+ }
+ else
+ {
+ switch (unc_toupper(ctx.peek()))
+ {
+ case 'X': // hex
+ did_hex = true;
+
+ do
+ {
+ pc.str.append(ctx.get()); // store the 'x' and then the rest
+ } while (is_hex_(ctx.peek()));
+
+ break;
+
+ case 'B': // binary
+
+ do
+ {
+ pc.str.append(ctx.get()); // store the 'b' and then the rest
+ } while (is_bin_(ctx.peek()));
+
+ break;
+
+ case '0': // octal or decimal
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9':
+
+ do
+ {
+ pc.str.append(ctx.get());
+ } while (is_oct_(ctx.peek()));
+
+ break;
+
+ default:
+ // either just 0 or 0.1 or 0UL, etc
+ break;
+ } // switch
+ }
+ }
+ else
+ {
+ // Regular int or float
+ while (is_dec_(ctx.peek()))
+ {
+ pc.str.append(ctx.get());
+ }
+ }
+
+ // Check if we stopped on a decimal point & make sure it isn't '..'
+ if ( (ctx.peek() == '.')
+ && (ctx.peek(1) != '.'))
+ {
+ // Issue #1265, 5.clamp()
+ tok_info ss;
+ ctx.save(ss);
+
+ while ( ctx.more()
+ && CharTable::IsKw2(ctx.peek(1)))
+ {
+ // skip characters to check for paren open
+ ctx.get();
+ }
+
+ if (ctx.peek(1) == '(')
+ {
+ ctx.restore(ss);
+ set_chunk_type(&pc, CT_NUMBER);
+ return(true);
+ }
+ else
+ {
+ ctx.restore(ss);
+ }
+ pc.str.append(ctx.get());
+ is_float = true;
+
+ if (did_hex)
+ {
+ while (is_hex_(ctx.peek()))
+ {
+ pc.str.append(ctx.get());
+ }
+ }
+ else
+ {
+ while (is_dec_(ctx.peek()))
+ {
+ pc.str.append(ctx.get());
+ }
+ }
+ }
+ /*
+ * Check exponent
+ * Valid exponents per language (not that it matters):
+ * C/C++/D/Java: eEpP
+ * C#/Pawn: eE
+ */
+ size_t tmp = unc_toupper(ctx.peek());
+
+ if ( (tmp == 'E')
+ || (tmp == 'P'))
+ {
+ is_float = true;
+ pc.str.append(ctx.get());
+
+ if ( (ctx.peek() == '+')
+ || (ctx.peek() == '-'))
+ {
+ pc.str.append(ctx.get());
+ }
+
+ while (is_dec_(ctx.peek()))
+ {
+ pc.str.append(ctx.get());
+ }
+ }
+
+ /*
+ * Check the suffixes
+ * Valid suffixes per language (not that it matters):
+ * Integer Float
+ * C/C++: uUlL64 lLfF
+ * C#: uUlL fFdDMm
+ * D: uUL ifFL
+ * Java: lL fFdD
+ * Pawn: (none) (none)
+ *
+ * Note that i, f, d, and m only appear in floats.
+ */
+ while (1)
+ {
+ size_t tmp2 = unc_toupper(ctx.peek());
+
+ if ( (tmp2 == 'I')
+ || (tmp2 == 'F')
+ || (tmp2 == 'D')
+ || (tmp2 == 'M'))
+ {
+ is_float = true;
+ }
+ else if ( (tmp2 != 'L')
+ && (tmp2 != 'U'))
+ {
+ break;
+ }
+ pc.str.append(ctx.get());
+ }
+
+ // skip the Microsoft-specific '32' and '64' suffix
+ if ( ( (ctx.peek() == '3')
+ && (ctx.peek(1) == '2'))
+ || ( (ctx.peek() == '6')
+ && (ctx.peek(1) == '4')))
+ {
+ pc.str.append(ctx.get());
+ pc.str.append(ctx.get());
+ }
+ set_chunk_type(&pc, is_float ? CT_NUMBER_FP : CT_NUMBER);
+
+ /*
+ * If there is anything left, then we are probably dealing with garbage or
+ * some sick macro junk. Eat it.
+ */
+ parse_suffix(ctx, pc);
+
+ return(true);
+} // parse_number
+
+
+static bool parse_string(tok_ctx &ctx, Chunk &pc, size_t quote_idx, bool allow_escape)
+{
+ log_rule_B("string_escape_char");
+ const size_t escape_char = options::string_escape_char();
+
+ log_rule_B("string_escape_char2");
+ const size_t escape_char2 = options::string_escape_char2();
+
+ log_rule_B("string_replace_tab_chars");
+ const bool should_escape_tabs = ( allow_escape
+ && options::string_replace_tab_chars()
+ && language_is_set(LANG_ALLC));
+
+ pc.str.clear();
+
+ while (quote_idx-- > 0)
+ {
+ pc.str.append(ctx.get());
+ }
+ set_chunk_type(&pc, CT_STRING);
+ const size_t termination_character = CharTable::Get(ctx.peek()) & 0xff;
+
+ pc.str.append(ctx.get()); // store the "
+
+ bool escaped = false;
+
+ while (ctx.more())
+ {
+ const size_t ch = ctx.get();
+
+ // convert char 9 (\t) to chars \t
+ if ( (ch == '\t')
+ && should_escape_tabs)
+ {
+ const size_t lastcol = ctx.c.col - 1;
+ ctx.c.col = lastcol + 2;
+ pc.str.append(escape_char);
+ pc.str.append('t');
+ continue;
+ }
+ pc.str.append(ch);
+
+ if (ch == '\n')
+ {
+ pc.nl_count++;
+ set_chunk_type(&pc, CT_STRING_MULTI);
+ }
+ else if ( ch == '\r'
+ && ctx.peek() != '\n')
+ {
+ pc.str.append(ctx.get());
+ pc.nl_count++;
+ set_chunk_type(&pc, CT_STRING_MULTI);
+ }
+
+ // if last char in prev loop was escaped the one in the current loop isn't
+ if (escaped)
+ {
+ escaped = false;
+ continue;
+ }
+
+ // see if the current char is a escape char
+ if (allow_escape)
+ {
+ if (ch == escape_char)
+ {
+ escaped = (escape_char != 0);
+ continue;
+ }
+
+ if ( ch == escape_char2
+ && (ctx.peek() == termination_character))
+ {
+ escaped = allow_escape;
+ continue;
+ }
+ }
+
+ if (ch == termination_character)
+ {
+ break;
+ }
+ }
+ parse_suffix(ctx, pc, true);
+ return(true);
+} // parse_string
+
+enum cs_string_t
+{
+ CS_STRING_NONE = 0,
+ CS_STRING_STRING = 1 << 0, // is any kind of string
+ CS_STRING_VERBATIM = 1 << 1, // @"" style string
+ CS_STRING_INTERPOLATED = 1 << 2, // $"" or $@"" style string
+};
+
+static cs_string_t operator|=(cs_string_t &value, cs_string_t other)
+{
+ return(value = static_cast<cs_string_t>(value | other));
+}
+
+
+static cs_string_t parse_cs_string_start(tok_ctx &ctx, Chunk &pc)
+{
+ cs_string_t stringType = CS_STRING_NONE;
+ int offset = 0;
+
+ if (ctx.peek(offset) == '$')
+ {
+ stringType |= CS_STRING_INTERPOLATED;
+ ++offset;
+ }
+
+ if (ctx.peek(offset) == '@')
+ {
+ stringType |= CS_STRING_VERBATIM;
+ ++offset;
+ }
+
+ if (ctx.peek(offset) == '"')
+ {
+ stringType |= CS_STRING_STRING;
+
+ set_chunk_type(&pc, CT_STRING);
+
+ for (int i = 0; i <= offset; ++i)
+ {
+ pc.str.append(ctx.get());
+ }
+ }
+ else
+ {
+ stringType = CS_STRING_NONE;
+ }
+ return(stringType);
+} // parse_cs_string_start
+
+
+struct CsStringParseState
+{
+ cs_string_t type;
+ int braceDepth;
+
+
+ CsStringParseState(cs_string_t stringType)
+ {
+ type = stringType;
+ braceDepth = 0;
+ }
+};
+
+
+/**
+ * C# strings are complex enough (mostly due to interpolation and nesting) that they need a custom parser.
+ */
+static bool parse_cs_string(tok_ctx &ctx, Chunk &pc)
+{
+ cs_string_t stringType = parse_cs_string_start(ctx, pc);
+
+ if (stringType == 0)
+ {
+ return(false);
+ }
+ // an interpolated string can contain {expressions}, which can contain $"strings", which in turn
+ // can contain {expressions}, so we must track both as they are interleaved, in order to properly
+ // parse the outermost string.
+
+ std::stack<CsStringParseState> parseState; // each entry is a nested string
+
+ parseState.push(CsStringParseState(stringType));
+
+ log_rule_B("string_replace_tab_chars");
+ bool should_escape_tabs = options::string_replace_tab_chars();
+
+ while (ctx.more())
+ {
+ if (parseState.top().braceDepth > 0)
+ {
+ // all we can do when in an expr is look for expr close with }, or a new string opening. must do this first
+ // so we can peek and potentially consume chars for new string openings, before the ch=get() happens later,
+ // which is needed for newline processing.
+
+ if (ctx.peek() == '}')
+ {
+ pc.str.append(ctx.get());
+
+ if (ctx.peek() == '}')
+ {
+ pc.str.append(ctx.get()); // in interpolated string, `}}` is escape'd `}`
+ }
+ else
+ {
+ --parseState.top().braceDepth;
+ }
+ continue;
+ }
+ stringType = parse_cs_string_start(ctx, pc);
+
+ if (stringType)
+ {
+ parseState.push(CsStringParseState(stringType));
+ continue;
+ }
+ }
+ int lastcol = ctx.c.col;
+ int ch = ctx.get();
+
+ pc.str.append(ch);
+
+ if (ch == '\n')
+ {
+ set_chunk_type(&pc, CT_STRING_MULTI);
+ pc.nl_count++;
+ }
+ else if (ch == '\r')
+ {
+ set_chunk_type(&pc, CT_STRING_MULTI);
+ }
+ else if (parseState.top().braceDepth > 0)
+ {
+ // do nothing. if we're in a brace, we only want the newline handling, and skip the rest.
+ }
+ else if ( (ch == '\t')
+ && should_escape_tabs)
+ {
+ if (parseState.top().type & CS_STRING_VERBATIM)
+ {
+ if (!cpd.warned_unable_string_replace_tab_chars)
+ {
+ cpd.warned_unable_string_replace_tab_chars = true;
+
+ log_rule_B("warn_level_tabs_found_in_verbatim_string_literals");
+ log_sev_t warnlevel = (log_sev_t)options::warn_level_tabs_found_in_verbatim_string_literals();
+
+ /*
+ * a tab char can't be replaced with \\t because escapes don't
+ * work in here-strings. best we can do is warn.
+ */
+ LOG_FMT(warnlevel, "%s(%d): %s: orig_line is %zu, orig_col is %zu, Detected non-replaceable tab char in literal string\n",
+ __func__, __LINE__, cpd.filename.c_str(), pc.orig_line, pc.orig_col);
+ LOG_FMT(warnlevel, "%s(%d): Warning is given if doing tab-to-\\t replacement and we have found one in a C# verbatim string literal.\n",
+ __func__, __LINE__);
+
+ if (warnlevel < LWARN)
+ {
+ cpd.error_count++;
+ }
+ }
+ }
+ else
+ {
+ ctx.c.col = lastcol + 2;
+ pc.str.pop_back(); // remove \t
+ pc.str.append("\\t");
+
+ continue;
+ }
+ }
+ else if ( ch == '\\'
+ && !(parseState.top().type & CS_STRING_VERBATIM))
+ {
+ // catch escaped quote in order to avoid ending string (but also must handle \\ to avoid accidental 'escape' seq of `\\"`)
+ if ( ctx.peek() == '"'
+ || ctx.peek() == '\\')
+ {
+ pc.str.append(ctx.get());
+ }
+ }
+ else if (ch == '"')
+ {
+ if ( (parseState.top().type & CS_STRING_VERBATIM)
+ && (ctx.peek() == '"'))
+ {
+ // in verbatim string, `""` is escape'd `"`
+ pc.str.append(ctx.get());
+ }
+ else
+ {
+ // end of string
+ parseState.pop();
+
+ if (parseState.empty())
+ {
+ break;
+ }
+ }
+ }
+ else if (parseState.top().type & CS_STRING_INTERPOLATED)
+ {
+ if (ch == '{')
+ {
+ if (ctx.peek() == '{')
+ {
+ pc.str.append(ctx.get()); // in interpolated string, `{{` is escape'd `{`
+ }
+ else
+ {
+ ++parseState.top().braceDepth;
+ }
+ }
+ }
+ }
+ return(true);
+} // parse_cs_string
+
+
+static void parse_verbatim_string(tok_ctx &ctx, Chunk &pc)
+{
+ set_chunk_type(&pc, CT_STRING);
+
+ // consume the initial """
+ pc.str = ctx.get();
+ pc.str.append(ctx.get());
+ pc.str.append(ctx.get());
+
+ // go until we hit a zero (end of file) or a """
+ while (ctx.more())
+ {
+ size_t ch = ctx.get();
+ pc.str.append(ch);
+
+ if ( (ch == '"')
+ && (ctx.peek() == '"')
+ && (ctx.peek(1) == '"'))
+ {
+ pc.str.append(ctx.get());
+ pc.str.append(ctx.get());
+ break;
+ }
+
+ if ( (ch == '\n')
+ || (ch == '\r'))
+ {
+ set_chunk_type(&pc, CT_STRING_MULTI);
+ pc.nl_count++;
+ }
+ }
+}
+
+
+static bool tag_compare(const deque<int> &d, size_t a_idx, size_t b_idx, size_t len)
+{
+ if (a_idx != b_idx)
+ {
+ while (len-- > 0)
+ {
+ if (d[a_idx] != d[b_idx])
+ {
+ return(false);
+ }
+ }
+ }
+ return(true);
+}
+
+
+static bool parse_cr_string(tok_ctx &ctx, Chunk &pc, size_t q_idx)
+{
+ size_t tag_idx = ctx.c.idx + q_idx + 1;
+ size_t tag_len = 0;
+
+ ctx.save();
+
+ // Copy the prefix + " to the string
+ pc.str.clear();
+ int cnt = q_idx + 1;
+
+ while (cnt--)
+ {
+ pc.str.append(ctx.get());
+ }
+
+ // Add the tag and get the length of the tag
+ while ( ctx.more()
+ && (ctx.peek() != '('))
+ {
+ tag_len++;
+ pc.str.append(ctx.get());
+ }
+
+ if (ctx.peek() != '(')
+ {
+ ctx.restore();
+ return(false);
+ }
+ set_chunk_type(&pc, CT_STRING);
+
+ while (ctx.more())
+ {
+ if ( (ctx.peek() == ')')
+ && (ctx.peek(tag_len + 1) == '"')
+ && tag_compare(ctx.data, tag_idx, ctx.c.idx + 1, tag_len))
+ {
+ cnt = tag_len + 2; // for the )"
+
+ while (cnt--)
+ {
+ pc.str.append(ctx.get());
+ }
+ parse_suffix(ctx, pc);
+ return(true);
+ }
+
+ if (ctx.peek() == '\n')
+ {
+ pc.str.append(ctx.get());
+ pc.nl_count++;
+ set_chunk_type(&pc, CT_STRING_MULTI);
+ }
+ else
+ {
+ pc.str.append(ctx.get());
+ }
+ }
+ ctx.restore();
+ return(false);
+} // parse_cr_string
+
+
+/**
+ * Count the number of characters in a word.
+ * The first character is already valid for a keyword
+ *
+ * @param pc The structure to update, str is an input.
+ * @return Whether a word was parsed (always true)
+ */
+static bool parse_word(tok_ctx &ctx, Chunk &pc, bool skipcheck)
+{
+ static unc_text intr_txt("@interface");
+
+ // The first character is already valid
+ pc.str.clear();
+ pc.str.append(ctx.get());
+
+ while (ctx.more())
+ {
+ size_t ch = ctx.peek();
+
+ if (CharTable::IsKw2(ch))
+ {
+ pc.str.append(ctx.get());
+ }
+ else if ( (ch == '\\')
+ && (unc_tolower(ctx.peek(1)) == 'u'))
+ {
+ pc.str.append(ctx.get());
+ pc.str.append(ctx.get());
+ skipcheck = true;
+ }
+ else
+ {
+ break;
+ }
+
+ // HACK: Non-ASCII character are only allowed in identifiers
+ if (ch > 0x7f)
+ {
+ skipcheck = true;
+ }
+ }
+ set_chunk_type(&pc, CT_WORD);
+
+ if (skipcheck)
+ {
+ return(true);
+ }
+
+ // Detect pre-processor functions now
+ if ( cpd.in_preproc == CT_PP_DEFINE
+ && cpd.preproc_ncnl_count == 1)
+ {
+ if (ctx.peek() == '(')
+ {
+ set_chunk_type(&pc, CT_MACRO_FUNC);
+ }
+ else
+ {
+ set_chunk_type(&pc, CT_MACRO);
+
+ log_rule_B("pp_ignore_define_body");
+
+ if (options::pp_ignore_define_body())
+ {
+ /*
+ * We are setting the PP_IGNORE preproc state because the following
+ * chunks are part of the macro body and will have to be ignored.
+ */
+ cpd.in_preproc = CT_PP_IGNORE;
+ }
+ }
+ }
+ else
+ {
+ // '@interface' is reserved, not an interface itself
+ if ( language_is_set(LANG_JAVA)
+ && pc.str.startswith("@")
+ && !pc.str.equals(intr_txt))
+ {
+ set_chunk_type(&pc, CT_ANNOTATION);
+ }
+ else
+ {
+ // Turn it into a keyword now
+ // Issue #1460 will return "COMMENT_CPP"
+ set_chunk_type(&pc, find_keyword_type(pc.Text(), pc.str.size()));
+
+ /* Special pattern: if we're trying to redirect a preprocessor directive to PP_IGNORE,
+ * then ensure we're actually part of a preprocessor before doing the swap, or we'll
+ * end up with a function named 'define' as PP_IGNORE. This is necessary because with
+ * the config 'set' feature, there's no way to do a pair of tokens as a word
+ * substitution. */
+ if ( pc.type == CT_PP_IGNORE
+ && !cpd.in_preproc)
+ {
+ set_chunk_type(&pc, find_keyword_type(pc.Text(), pc.str.size()));
+ }
+ else if (pc.type == CT_COMMENT_CPP) // Issue #1460
+ {
+ size_t ch;
+ bool is_cs = language_is_set(LANG_CS);
+
+ // read until EOL
+ while (true)
+ {
+ int bs_cnt = 0;
+
+ while (ctx.more())
+ {
+ ch = ctx.peek();
+
+ if ( (ch == '\r')
+ || (ch == '\n'))
+ {
+ break;
+ }
+
+ if ( (ch == '\\')
+ && !is_cs) // backslashes aren't special in comments in C#
+ {
+ bs_cnt++;
+ }
+ else
+ {
+ bs_cnt = 0;
+ }
+ pc.str.append(ctx.get());
+ }
+
+ /*
+ * If we hit an odd number of backslashes right before the newline,
+ * then we keep going.
+ */
+ if ( ((bs_cnt & 1) == 0)
+ || !ctx.more())
+ {
+ break;
+ }
+
+ if (ctx.peek() == '\r')
+ {
+ pc.str.append(ctx.get());
+ }
+
+ if (ctx.peek() == '\n')
+ {
+ pc.str.append(ctx.get());
+ }
+ pc.nl_count++;
+ cpd.did_newline = true;
+ }
+ // Store off the end column
+ pc.orig_col_end = ctx.c.col;
+ }
+ }
+ }
+ return(true);
+} // parse_word
+
+
+static size_t parse_attribute_specifier_sequence(tok_ctx &ctx)
+{
+ size_t nested = 0;
+ size_t offset = 0;
+ size_t parens = 0;
+ auto ch1 = ctx.peek(offset++);
+
+ while (ch1)
+ {
+ auto ch2 = ctx.peek(offset++);
+
+ while ( ch2 == ' '
+ || ch2 == '\n'
+ || ch2 == '\r'
+ || ch2 == '\t')
+ {
+ ch2 = ctx.peek(offset++);
+ }
+
+ if ( nested == 0
+ && ch2 != '[')
+ {
+ break;
+ }
+
+ if (ch1 == '(')
+ {
+ ++parens;
+ ch1 = ch2;
+ continue;
+ }
+
+ if (ch1 == ')')
+ {
+ if (parens == 0)
+ {
+ break;
+ }
+ --parens;
+ ch1 = ch2;
+ continue;
+ }
+
+ if ( ch1 != '['
+ && ch1 != ']')
+ {
+ ch1 = ch2;
+ continue;
+ }
+
+ if (ch2 != ch1)
+ {
+ if (parens == 0)
+ {
+ break;
+ }
+ ch1 = ch2;
+ continue;
+ }
+
+ if (ch1 == '[')
+ {
+ if ( nested != 0
+ && parens == 0)
+ {
+ break;
+ }
+ ++nested;
+ }
+ else if (--nested == 0)
+ {
+ return(offset);
+ }
+ ch1 = ctx.peek(offset++);
+ }
+ return(0);
+} // parse_attribute_specifier_sequence
+
+
+static bool extract_attribute_specifier_sequence(tok_ctx &ctx, Chunk &pc, size_t length)
+{
+ pc.str.clear();
+
+ while (length--)
+ {
+ pc.str.append(ctx.get());
+ }
+ set_chunk_type(&pc, CT_ATTRIBUTE);
+ return(true);
+} // extract_attribute_specifier_sequence
+
+
+static bool parse_whitespace(tok_ctx &ctx, Chunk &pc)
+{
+ size_t nl_count = 0;
+ size_t ch = 0;
+
+ // REVISIT: use a better whitespace detector?
+ while ( ctx.more()
+ && unc_isspace(ctx.peek()))
+ {
+ ch = ctx.get(); // throw away the whitespace char
+
+ switch (ch)
+ {
+ case '\r':
+
+ if (ctx.expect('\n'))
+ {
+ // CRLF ending
+ ++LE_COUNT(CRLF);
+ }
+ else
+ {
+ // CR ending
+ ++LE_COUNT(CR);
+ }
+ nl_count++;
+ pc.orig_prev_sp = 0;
+ break;
+
+ case '\n':
+ // LF ending
+ ++LE_COUNT(LF);
+ nl_count++;
+ pc.orig_prev_sp = 0;
+ break;
+
+ case '\t':
+ log_rule_B("input_tab_size");
+ pc.orig_prev_sp += calc_next_tab_column(cpd.column, options::input_tab_size()) - cpd.column;
+ break;
+
+ case ' ':
+ pc.orig_prev_sp++;
+ break;
+
+ default:
+ break;
+ }
+ }
+
+ if (ch != 0)
+ {
+ pc.str.clear();
+ set_chunk_type(&pc, nl_count ? CT_NEWLINE : CT_WHITESPACE);
+ pc.nl_count = nl_count;
+ pc.after_tab = (ctx.c.last_ch == '\t');
+ return(true);
+ }
+ return(false);
+} // parse_whitespace
+
+
+static bool parse_bs_newline(tok_ctx &ctx, Chunk &pc)
+{
+ ctx.save();
+ ctx.get(); // skip the '\'
+
+ size_t ch;
+
+ while ( ctx.more()
+ && unc_isspace(ch = ctx.peek()))
+ {
+ ctx.get();
+
+ if ( (ch == '\r')
+ || (ch == '\n'))
+ {
+ if (ch == '\r')
+ {
+ ctx.expect('\n');
+ }
+ set_chunk_type(&pc, CT_NL_CONT);
+ pc.str = "\\";
+ pc.nl_count = 1;
+ return(true);
+ }
+ }
+ ctx.restore();
+ return(false);
+}
+
+
+static bool parse_newline(tok_ctx &ctx)
+{
+ ctx.save();
+
+ // Eat whitespace
+ while ( (ctx.peek() == ' ')
+ || (ctx.peek() == '\t'))
+ {
+ ctx.get();
+ }
+
+ if ( (ctx.peek() == '\r')
+ || (ctx.peek() == '\n'))
+ {
+ if (!ctx.expect('\n'))
+ {
+ ctx.get();
+ ctx.expect('\n');
+ }
+ return(true);
+ }
+ ctx.restore();
+ return(false);
+}
+
+
+static void parse_pawn_pattern(tok_ctx &ctx, Chunk &pc, E_Token tt)
+{
+ pc.str.clear();
+ set_chunk_type(&pc, tt);
+
+ while (!unc_isspace(ctx.peek()))
+ {
+ // end the pattern on an escaped newline
+ if (ctx.peek() == '\\')
+ {
+ size_t ch = ctx.peek(1);
+
+ if ( (ch == '\n')
+ || (ch == '\r'))
+ {
+ break;
+ }
+ }
+ pc.str.append(ctx.get());
+ }
+}
+
+
+static bool parse_off_newlines(tok_ctx &ctx, Chunk &pc)
+{
+ size_t nl_count = 0;
+
+ // Parse off newlines/blank lines
+ while (parse_newline(ctx))
+ {
+ nl_count++;
+ }
+
+ if (nl_count > 0)
+ {
+ pc.nl_count = nl_count;
+ set_chunk_type(&pc, CT_NEWLINE);
+ return(true);
+ }
+ return(false);
+}
+
+
+static bool parse_macro(tok_ctx &ctx, Chunk &pc, const Chunk *prev_pc)
+{
+ if (parse_off_newlines(ctx, pc))
+ {
+ return(true);
+ }
+
+ if (parse_comment(ctx, pc)) // allow CT_COMMENT_MULTI within macros
+ {
+ return(true);
+ }
+ ctx.save();
+ pc.str.clear();
+
+ bool continued = ( chunk_is_token(prev_pc, CT_NL_CONT)
+ || chunk_is_token(prev_pc, CT_COMMENT_MULTI));
+
+ while (ctx.more())
+ {
+ size_t pk = ctx.peek(), pk1 = ctx.peek(1);
+ bool nl = ( pk == '\n'
+ || pk == '\r');
+ bool nl_cont = ( pk == '\\'
+ && ( pk1 == '\n'
+ || pk1 == '\r'));
+
+ if ( ( nl_cont
+ || ( continued
+ && nl))
+ && pc.str.size() > 0)
+ {
+ set_chunk_type(&pc, CT_IGNORED);
+ return(true);
+ }
+ else if (nl)
+ {
+ break;
+ }
+ pc.str.append(ctx.get());
+ }
+ pc.str.clear();
+ ctx.restore();
+ return(false);
+} // parse_macro
+
+
+static bool parse_ignored(tok_ctx &ctx, Chunk &pc)
+{
+ if (parse_off_newlines(ctx, pc))
+ {
+ return(true);
+ }
+ // See if the UO_enable_processing_cmt or #pragma endasm / #endasm text is on this line
+ ctx.save();
+ pc.str.clear();
+
+ while ( ctx.more()
+ && (ctx.peek() != '\r')
+ && (ctx.peek() != '\n'))
+ {
+ pc.str.append(ctx.get());
+ }
+
+ if (pc.str.size() == 0)
+ {
+ // end of file?
+ return(false);
+ }
+
+ // HACK: turn on if we find '#endasm' or '#pragma' and 'endasm' separated by blanks
+ if ( ( ( (pc.str.find("#pragma ") >= 0)
+ || (pc.str.find("#pragma ") >= 0))
+ && ( (pc.str.find(" endasm") >= 0)
+ || (pc.str.find(" endasm") >= 0)))
+ || (pc.str.find("#endasm") >= 0))
+ {
+ cpd.unc_off = false;
+ ctx.restore();
+ pc.str.clear();
+ return(false);
+ }
+ // Note that we aren't actually making sure this is in a comment, yet
+ log_rule_B("enable_processing_cmt");
+ const auto &ontext = options::enable_processing_cmt();
+
+ if (!ontext.empty())
+ {
+ bool found_enable_pattern = false;
+
+ if ( ontext != UNCRUSTIFY_ON_TEXT
+ && options::processing_cmt_as_regex())
+ {
+ std::wstring pc_wstring(pc.str.get().cbegin(),
+ pc.str.get().cend());
+ std::wregex criteria(std::wstring(ontext.cbegin(),
+ ontext.cend()));
+
+ found_enable_pattern = std::regex_search(pc_wstring.cbegin(),
+ pc_wstring.cend(),
+ criteria);
+ }
+ else
+ {
+ found_enable_pattern = (pc.str.find(ontext.c_str()) >= 0);
+ }
+
+ if (!found_enable_pattern)
+ {
+ set_chunk_type(&pc, CT_IGNORED);
+ return(true);
+ }
+ }
+ ctx.restore();
+
+ // parse off whitespace leading to the comment
+ if (parse_whitespace(ctx, pc))
+ {
+ set_chunk_type(&pc, CT_IGNORED);
+ return(true);
+ }
+
+ // Look for the ending comment and let it pass
+ if ( parse_comment(ctx, pc)
+ && !cpd.unc_off)
+ {
+ return(true);
+ }
+ // Reset the chunk & scan to until a newline
+ pc.str.clear();
+
+ while ( ctx.more()
+ && (ctx.peek() != '\r')
+ && (ctx.peek() != '\n'))
+ {
+ pc.str.append(ctx.get());
+ }
+
+ if (pc.str.size() > 0)
+ {
+ set_chunk_type(&pc, CT_IGNORED);
+ return(true);
+ }
+ return(false);
+} // parse_ignored
+
+
+static bool parse_next(tok_ctx &ctx, Chunk &pc, const Chunk *prev_pc)
+{
+ if (!ctx.more())
+ {
+ return(false);
+ }
+ // Save off the current column
+ set_chunk_type(&pc, CT_NONE);
+ pc.orig_line = ctx.c.row;
+ pc.column = ctx.c.col;
+ pc.orig_col = ctx.c.col;
+ pc.nl_count = 0;
+ pc.flags = PCF_NONE;
+
+ // If it is turned off, we put everything except newlines into CT_UNKNOWN
+ if (cpd.unc_off)
+ {
+ if (parse_ignored(ctx, pc))
+ {
+ return(true);
+ }
+ }
+ log_rule_B("disable_processing_nl_cont");
+
+ // Parse macro blocks
+ if (options::disable_processing_nl_cont())
+ {
+ if (parse_macro(ctx, pc, prev_pc))
+ {
+ return(true);
+ }
+ }
+
+ // Parse whitespace
+ if (parse_whitespace(ctx, pc))
+ {
+ return(true);
+ }
+
+ // Handle unknown/unhandled preprocessors
+ if ( cpd.in_preproc > CT_PP_BODYCHUNK
+ && cpd.in_preproc <= CT_PP_OTHER)
+ {
+ pc.str.clear();
+ tok_info ss;
+ ctx.save(ss);
+ // Chunk to a newline or comment
+ set_chunk_type(&pc, CT_PREPROC_BODY);
+ size_t last = 0;
+
+ while (ctx.more())
+ {
+ size_t ch = ctx.peek();
+
+ // Fix for issue #1752
+ // Ignoring extra spaces after ' \ ' for preproc body continuations
+ if ( last == '\\'
+ && ch == ' ')
+ {
+ ctx.get();
+ continue;
+ }
+
+ if ( (ch == '\n')
+ || (ch == '\r'))
+ {
+ // Back off if this is an escaped newline
+ if (last == '\\')
+ {
+ ctx.restore(ss);
+ pc.str.pop_back();
+ }
+ break;
+ }
+
+ // Quit on a C or C++ comment start Issue #1966
+ if ( (ch == '/')
+ && ( (ctx.peek(1) == '/')
+ || (ctx.peek(1) == '*')))
+ {
+ break;
+ }
+ last = ch;
+ ctx.save(ss);
+
+ pc.str.append(ctx.get());
+ }
+
+ if (pc.str.size() > 0)
+ {
+ return(true);
+ }
+ }
+
+ // Detect backslash-newline
+ if ( (ctx.peek() == '\\')
+ && parse_bs_newline(ctx, pc))
+ {
+ return(true);
+ }
+
+ // Parse comments
+ if (parse_comment(ctx, pc))
+ {
+ return(true);
+ }
+
+ // Parse code placeholders
+ if (parse_code_placeholder(ctx, pc))
+ {
+ return(true);
+ }
+
+ if (language_is_set(LANG_CS))
+ {
+ if (parse_cs_string(ctx, pc))
+ {
+ return(true);
+ }
+
+ // check for non-keyword identifiers such as @if @switch, etc
+ if ( (ctx.peek() == '@')
+ && CharTable::IsKw1(ctx.peek(1)))
+ {
+ parse_word(ctx, pc, true);
+ return(true);
+ }
+ }
+
+ // handle VALA """ strings """
+ if ( language_is_set(LANG_VALA)
+ && (ctx.peek() == '"')
+ && (ctx.peek(1) == '"')
+ && (ctx.peek(2) == '"'))
+ {
+ parse_verbatim_string(ctx, pc);
+ return(true);
+ }
+ /*
+ * handle C++(11) string/char literal prefixes u8|u|U|L|R including all
+ * possible combinations and optional R delimiters: R"delim(x)delim"
+ */
+ auto ch = ctx.peek();
+
+ if ( language_is_set(LANG_C | LANG_CPP)
+ && ( ch == 'u'
+ || ch == 'U'
+ || ch == 'R'
+ || ch == 'L'))
+ {
+ auto idx = size_t{};
+ auto is_real = false;
+
+ if ( ch == 'u'
+ && ctx.peek(1) == '8')
+ {
+ idx = 2;
+ }
+ else if ( unc_tolower(ch) == 'u'
+ || ch == 'L')
+ {
+ idx++;
+ }
+
+ if ( language_is_set(LANG_C | LANG_CPP)
+ && ctx.peek(idx) == 'R')
+ {
+ idx++;
+ is_real = true;
+ }
+ const auto quote = ctx.peek(idx);
+
+ if (is_real)
+ {
+ if ( quote == '"'
+ && parse_cr_string(ctx, pc, idx))
+ {
+ return(true);
+ }
+ }
+ else if ( ( quote == '"'
+ || quote == '\'')
+ && parse_string(ctx, pc, idx, true))
+ {
+ return(true);
+ }
+ }
+
+ // PAWN specific stuff
+ if (language_is_set(LANG_PAWN))
+ {
+ if ( cpd.preproc_ncnl_count == 1
+ && ( cpd.in_preproc == CT_PP_DEFINE
+ || cpd.in_preproc == CT_PP_EMIT))
+ {
+ parse_pawn_pattern(ctx, pc, CT_MACRO);
+ return(true);
+ }
+
+ // Check for PAWN strings: \"hi" or !"hi" or !\"hi" or \!"hi"
+ if ( (ctx.peek() == '\\')
+ || (ctx.peek() == '!'))
+ {
+ if (ctx.peek(1) == '"')
+ {
+ parse_string(ctx, pc, 1, (ctx.peek() == '!'));
+ return(true);
+ }
+
+ if ( ( (ctx.peek(1) == '\\')
+ || (ctx.peek(1) == '!'))
+ && (ctx.peek(2) == '"'))
+ {
+ parse_string(ctx, pc, 2, false);
+ return(true);
+ }
+ }
+
+ // handle PAWN preprocessor args %0 .. %9
+ if ( cpd.in_preproc == CT_PP_DEFINE
+ && (ctx.peek() == '%')
+ && unc_isdigit(ctx.peek(1)))
+ {
+ pc.str.clear();
+ pc.str.append(ctx.get());
+ pc.str.append(ctx.get());
+ set_chunk_type(&pc, CT_WORD);
+ return(true);
+ }
+ }
+ // Parse strings and character constants
+
+//parse_word(ctx, pc_temp, true);
+//ctx.restore(ctx.c);
+ if (parse_number(ctx, pc))
+ {
+ return(true);
+ }
+
+ if (language_is_set(LANG_D))
+ {
+ // D specific stuff
+ if (d_parse_string(ctx, pc))
+ {
+ return(true);
+ }
+ }
+ else
+ {
+ // Not D stuff
+
+ // Check for L'a', L"abc", 'a', "abc", <abc> strings
+ ch = ctx.peek();
+ size_t ch1 = ctx.peek(1);
+
+ if ( ( ( (ch == 'L')
+ || (ch == 'S'))
+ && ( (ch1 == '"')
+ || (ch1 == '\'')))
+ || (ch == '"')
+ || (ch == '\'')
+ || ( (ch == '<')
+ && cpd.in_preproc == CT_PP_INCLUDE))
+ {
+ parse_string(ctx, pc, unc_isalpha(ch) ? 1 : 0, true);
+ set_chunk_parent(&pc, CT_PP_INCLUDE);
+ return(true);
+ }
+
+ if ( (ch == '<')
+ && cpd.in_preproc == CT_PP_DEFINE)
+ {
+ if (chunk_is_token(Chunk::GetTail(), CT_MACRO))
+ {
+ // We have "#define XXX <", assume '<' starts an include string
+ parse_string(ctx, pc, 0, false);
+ return(true);
+ }
+ }
+ /* Inside clang's __has_include() could be "path/to/file.h" or system-style <path/to/file.h> */
+ Chunk *tail = Chunk::GetTail();
+
+ if ( (ch == '(')
+ && (tail->IsNotNullChunk())
+ && ( chunk_is_token(tail, CT_CNG_HASINC)
+ || chunk_is_token(tail, CT_CNG_HASINCN)))
+ {
+ parse_string(ctx, pc, 0, false);
+ return(true);
+ }
+ }
+
+ // Check for Objective C literals and VALA identifiers ('@1', '@if')
+ if ( language_is_set(LANG_OC | LANG_VALA)
+ && (ctx.peek() == '@'))
+ {
+ size_t nc = ctx.peek(1);
+
+ if (nc == 'R') // Issue #2720
+ {
+ if (ctx.peek(2) == '"')
+ {
+ if (parse_cr_string(ctx, pc, 2)) // Issue #3027
+ {
+ return(true);
+ }
+ // parse string without escaping
+ parse_string(ctx, pc, 2, false);
+ return(true);
+ }
+ }
+
+ if ( (nc == '"')
+ || (nc == '\''))
+ {
+ // literal string
+ parse_string(ctx, pc, 1, true);
+ return(true);
+ }
+
+ if ( (nc >= '0')
+ && (nc <= '9'))
+ {
+ // literal number
+ pc.str.append(ctx.get()); // store the '@'
+ parse_number(ctx, pc);
+ return(true);
+ }
+ }
+
+ // Check for pawn/ObjectiveC/Java and normal identifiers
+ if ( CharTable::IsKw1(ctx.peek())
+ || ( (ctx.peek() == '\\')
+ && (unc_tolower(ctx.peek(1)) == 'u'))
+ || ( (ctx.peek() == '@')
+ && CharTable::IsKw1(ctx.peek(1))))
+ {
+ parse_word(ctx, pc, false);
+ return(true);
+ }
+
+ // Check for C++11/14/17/20 attribute specifier sequences
+ if ( language_is_set(LANG_CPP)
+ && ctx.peek() == '[')
+ {
+ if ( !language_is_set(LANG_OC)
+ || !chunk_is_token(prev_pc, CT_OC_AT))
+ {
+ if (auto length = parse_attribute_specifier_sequence(ctx))
+ {
+ extract_attribute_specifier_sequence(ctx, pc, length);
+ return(true);
+ }
+ }
+ }
+ // see if we have a punctuator
+ char punc_txt[7];
+
+ punc_txt[0] = ctx.peek();
+ punc_txt[1] = ctx.peek(1);
+ punc_txt[2] = ctx.peek(2);
+ punc_txt[3] = ctx.peek(3);
+ punc_txt[4] = ctx.peek(4);
+ punc_txt[5] = ctx.peek(5);
+ punc_txt[6] = '\0';
+ const chunk_tag_t *punc;
+
+ if ((punc = find_punctuator(punc_txt, cpd.lang_flags)) != nullptr)
+ {
+ int cnt = strlen(punc->tag);
+
+ while (cnt--)
+ {
+ pc.str.append(ctx.get());
+ }
+ set_chunk_type(&pc, punc->type);
+ pc.flags |= PCF_PUNCTUATOR;
+ return(true);
+ }
+ /* When parsing C/C++ files and running into some unknown token,
+ * check if matches Objective-C as a last resort, before
+ * considering it as garbage.
+ */
+ int probe_lang_flags = 0;
+
+ if (language_is_set(LANG_C | LANG_CPP))
+ {
+ probe_lang_flags = cpd.lang_flags | LANG_OC;
+ }
+
+ if (probe_lang_flags != 0)
+ {
+ if ((punc = find_punctuator(punc_txt, probe_lang_flags)) != NULL)
+ {
+ cpd.lang_flags = probe_lang_flags;
+ int cnt = strlen(punc->tag);
+
+ while (cnt--)
+ {
+ pc.str.append(ctx.get());
+ }
+ set_chunk_type(&pc, punc->type);
+ pc.flags |= PCF_PUNCTUATOR;
+ return(true);
+ }
+ }
+ // throw away this character
+ set_chunk_type(&pc, CT_UNKNOWN);
+ pc.str.append(ctx.get());
+
+ LOG_FMT(LWARN, "%s:%zu Garbage in col %zu: %x\n",
+ cpd.filename.c_str(), pc.orig_line, ctx.c.col, pc.str[0]);
+ cpd.error_count++;
+ return(true);
+} // parse_next
+
+
+int find_disable_processing_comment_marker(const unc_text &text,
+ std::size_t start_idx)
+{
+ log_rule_B("disable_processing_cmt");
+ const auto &offtext = options::disable_processing_cmt();
+ int idx = -1;
+
+ if ( !offtext.empty()
+ && start_idx < text.size())
+ {
+ if ( offtext != UNCRUSTIFY_OFF_TEXT
+ && options::processing_cmt_as_regex())
+ {
+ std::wsmatch match;
+ std::wstring pc_wstring(text.get().cbegin() + start_idx,
+ text.get().cend());
+ std::wregex criteria(std::wstring(offtext.cbegin(),
+ offtext.cend()));
+
+ std::regex_search(pc_wstring.cbegin(),
+ pc_wstring.cend(),
+ match,
+ criteria);
+
+ if (!match.empty())
+ {
+ idx = int(match.position() + start_idx);
+ }
+ }
+ else
+ {
+ idx = text.find(offtext.c_str(),
+ start_idx);
+
+ if (idx >= 0)
+ {
+ idx += int(offtext.size());
+ }
+ }
+
+ /**
+ * update the position to the start of the current line
+ */
+ while ( idx > 0
+ && text[idx - 1] != '\n')
+ {
+ --idx;
+ }
+ }
+ return(idx);
+} // find_disable_processing_comment_marker
+
+
+int find_enable_processing_comment_marker(const unc_text &text,
+ std::size_t start_idx)
+{
+ log_rule_B("enable_processing_cmt");
+ const auto &ontext = options::enable_processing_cmt();
+ int idx = -1;
+
+ if ( !ontext.empty()
+ && start_idx < text.size())
+ {
+ if ( ontext != UNCRUSTIFY_ON_TEXT
+ && options::processing_cmt_as_regex())
+ {
+ std::wsmatch match;
+ std::wstring pc_wstring(text.get().cbegin() + start_idx,
+ text.get().cend());
+ std::wregex criteria(std::wstring(ontext.cbegin(),
+ ontext.cend()));
+
+ std::regex_search(pc_wstring.cbegin(),
+ pc_wstring.cend(),
+ match,
+ criteria);
+
+ if (!match.empty())
+ {
+ idx = int(start_idx + match.position() + match.size());
+ }
+ }
+ else
+ {
+ idx = text.find(ontext.c_str(),
+ start_idx);
+
+ if (idx >= 0)
+ {
+ idx += int(ontext.size());
+ }
+ }
+
+ /**
+ * update the position to the end of the current line
+ */
+ if (idx >= 0)
+ {
+ while ( idx < int(text.size())
+ && text[idx] != '\n')
+ {
+ ++idx;
+ }
+ }
+ }
+ return(idx);
+} // find_enable_processing_comment_marker
+
+
+void tokenize(const deque<int> &data, Chunk *ref)
+{
+ tok_ctx ctx(data);
+ Chunk chunk;
+ Chunk *pc = nullptr;
+ Chunk *rprev = nullptr;
+ bool last_was_tab = false;
+ size_t prev_sp = 0;
+ int num_stripped = 0; // Issue #1966
+
+ cpd.unc_stage = unc_stage_e::TOKENIZE;
+
+ while (ctx.more())
+ {
+ chunk.Reset();
+ chunk.pp_level = 0;
+
+ if (!parse_next(ctx, chunk, pc))
+ {
+ LOG_FMT(LERR, "%s:%zu Bailed before the end?\n",
+ cpd.filename.c_str(), ctx.c.row);
+ cpd.error_count++;
+ break;
+ }
+
+ if ( language_is_set(LANG_JAVA)
+ && chunk.type == CT_MEMBER
+ && !memcmp(chunk.Text(), "->", 2))
+ {
+ chunk.type = CT_LAMBDA;
+ }
+
+ // Don't create an entry for whitespace
+ if (chunk.type == CT_WHITESPACE)
+ {
+ last_was_tab = chunk.after_tab;
+ prev_sp = chunk.orig_prev_sp;
+ continue;
+ }
+ chunk.orig_prev_sp = prev_sp;
+ prev_sp = 0;
+
+ if (chunk.type == CT_NEWLINE)
+ {
+ last_was_tab = chunk.after_tab;
+ chunk.after_tab = false;
+ chunk.str.clear();
+ }
+ else if (chunk.type == CT_NL_CONT)
+ {
+ last_was_tab = chunk.after_tab;
+ chunk.after_tab = false;
+ chunk.str = "\\\n";
+ }
+ else
+ {
+ chunk.after_tab = last_was_tab;
+ last_was_tab = false;
+ }
+ num_stripped = 0; // Issue #1966 and #3565
+
+ if (chunk.type != CT_IGNORED)
+ {
+ // Issue #1338
+ // Strip trailing whitespace (for CPP comments and PP blocks)
+ while ( (chunk.str.size() > 0)
+ && ( (chunk.str[chunk.str.size() - 1] == ' ')
+ || (chunk.str[chunk.str.size() - 1] == '\t')))
+ {
+ // If comment contains backslash '\' followed by whitespace chars, keep last one;
+ // this will prevent it from turning '\' into line continuation.
+ if ( (chunk.str.size() > 1)
+ && (chunk.str[chunk.str.size() - 2] == '\\'))
+ {
+ break;
+ }
+ chunk.str.pop_back();
+ num_stripped++; // Issue #1966
+ }
+ }
+ // Store off the end column
+ chunk.orig_col_end = ctx.c.col - num_stripped; // Issue #1966 and #3565
+
+ // Add the chunk to the list
+ rprev = pc;
+
+ if (rprev != nullptr)
+ {
+ chunk_flags_set(pc, rprev->flags & PCF_COPY_FLAGS);
+
+ // a newline can't be in a preprocessor
+ if (chunk_is_token(pc, CT_NEWLINE))
+ {
+ chunk_flags_clr(pc, PCF_IN_PREPROC);
+ }
+ }
+
+ if (ref != nullptr)
+ {
+ chunk.flags |= PCF_INSERTED;
+ }
+ else
+ {
+ chunk.flags &= ~PCF_INSERTED;
+ }
+ pc = chunk_add_before(&chunk, ref);
+
+ // A newline marks the end of a preprocessor
+ if (chunk_is_token(pc, CT_NEWLINE)) // || chunk_is_token(pc, CT_COMMENT_MULTI))
+ {
+ cpd.in_preproc = CT_NONE;
+ cpd.preproc_ncnl_count = 0;
+ }
+
+ // Disable indentation when #asm directive found
+ if (chunk_is_token(pc, CT_PP_ASM))
+ {
+ LOG_FMT(LBCTRL, "Found a directive %s on line %zu\n", "#asm", pc->orig_line);
+ cpd.unc_off = true;
+ }
+
+ // Special handling for preprocessor stuff
+ if (cpd.in_preproc != CT_NONE)
+ {
+ chunk_flags_set(pc, PCF_IN_PREPROC);
+
+ // Count words after the preprocessor
+ if ( !pc->IsComment()
+ && !chunk_is_newline(pc))
+ {
+ cpd.preproc_ncnl_count++;
+ }
+
+ // Disable indentation if a #pragma asm directive is found
+ if (cpd.in_preproc == CT_PP_PRAGMA)
+ {
+ if (memcmp(pc->Text(), "asm", 3) == 0)
+ {
+ LOG_FMT(LBCTRL, "Found a pragma %s on line %zu\n", "asm", pc->orig_line);
+ cpd.unc_off = true;
+ }
+ }
+
+ // Figure out the type of preprocessor for #include parsing
+ if (cpd.in_preproc == CT_PREPROC)
+ {
+ if ( pc->type < CT_PP_DEFINE
+ || pc->type > CT_PP_OTHER)
+ {
+ set_chunk_type(pc, CT_PP_OTHER);
+ }
+ cpd.in_preproc = pc->type;
+ }
+ else if (cpd.in_preproc == CT_PP_IGNORE)
+ {
+ // ASSERT(options::pp_ignore_define_body());
+ if ( !chunk_is_token(pc, CT_NL_CONT)
+ && !chunk_is_token(pc, CT_COMMENT_CPP)
+ && !chunk_is_token(pc, CT_COMMENT)
+ && !chunk_is_token(pc, CT_COMMENT_MULTI)) // Issue #1966
+ {
+ set_chunk_type(pc, CT_PP_IGNORE);
+ }
+ }
+ else if ( cpd.in_preproc == CT_PP_DEFINE
+ && chunk_is_token(pc, CT_PAREN_CLOSE)
+ && options::pp_ignore_define_body())
+ {
+ log_rule_B("pp_ignore_define_body");
+ // When we have a PAREN_CLOSE in a PP_DEFINE we should be terminating a MACRO_FUNC
+ // arguments list. Therefore we can enter the PP_IGNORE state and ignore next chunks.
+ cpd.in_preproc = CT_PP_IGNORE;
+ }
+ }
+ else
+ {
+ // Check for a preprocessor start
+ if ( chunk_is_token(pc, CT_POUND)
+ && ( rprev == nullptr
+ || chunk_is_token(rprev, CT_NEWLINE)))
+ {
+ set_chunk_type(pc, CT_PREPROC);
+ chunk_flags_set(pc, PCF_IN_PREPROC);
+ cpd.in_preproc = CT_PREPROC;
+ }
+ }
+
+ if (chunk_is_token(pc, CT_NEWLINE))
+ {
+ LOG_FMT(LGUY, "%s(%d): orig_line is %zu, orig_col is %zu, <Newline>, nl is %zu\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->nl_count);
+ }
+ else if (chunk_is_token(pc, CT_VBRACE_OPEN))
+ {
+ LOG_FMT(LGUY, "%s(%d): orig_line is %zu, orig_col is %zu, type is %s, orig_col_end is %zu\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, get_token_name(pc->type), pc->orig_col_end);
+ }
+ else
+ {
+ char copy[1000];
+ LOG_FMT(LGUY, "%s(%d): orig_line is %zu, orig_col is %zu, Text() '%s', type is %s, orig_col_end is %zu\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->ElidedText(copy), get_token_name(pc->type), pc->orig_col_end);
+ }
+ }
+ // Set the cpd.newline string for this file
+ log_rule_B("newlines");
+
+ if ( options::newlines() == LE_LF
+ || ( options::newlines() == LE_AUTO
+ && (LE_COUNT(LF) >= LE_COUNT(CRLF))
+ && (LE_COUNT(LF) >= LE_COUNT(CR))))
+ {
+ // LF line ends
+ cpd.newline = "\n";
+ LOG_FMT(LLINEENDS, "Using LF line endings\n");
+ }
+ else if ( options::newlines() == LE_CRLF
+ || ( options::newlines() == LE_AUTO
+ && (LE_COUNT(CRLF) >= LE_COUNT(LF))
+ && (LE_COUNT(CRLF) >= LE_COUNT(CR))))
+ {
+ // CRLF line ends
+ cpd.newline = "\r\n";
+ LOG_FMT(LLINEENDS, "Using CRLF line endings\r\n");
+ }
+ else
+ {
+ // CR line ends
+ cpd.newline = "\r";
+ LOG_FMT(LLINEENDS, "Using CR line endings\n");
+ }
+} // tokenize
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/tokenize.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/tokenize.h
new file mode 100644
index 00000000..a111143b
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/tokenize.h
@@ -0,0 +1,55 @@
+/**
+ * @file tokenize.h
+ * prototypes for tokenize.c
+ *
+ * @author Ben Gardner
+ * @license GPL v2+
+ */
+
+#ifndef TOKENIZE_H_INCLUDED
+#define TOKENIZE_H_INCLUDED
+
+#include "uncrustify_types.h"
+
+
+/**
+ * Test the input string to see if it satisfies the criteria
+ * specified by the disable_processing_cmt option
+ * @param text the string to which a match will be attempted
+ * @param start_idx the starting index within the string from which the
+ * search will be performed
+ * @return returns a non-negative position index that points to the beginning
+ * of the line containing the marker, if found
+ */
+int find_disable_processing_comment_marker(const unc_text &text, std::size_t start_idx = 0);
+
+
+/**
+ * Test the input string to see if it satisfies the criteria
+ * specified by the enable_processing_cmt option
+ * @param text the string to which a match will be attempted
+ * @param start_idx the starting index within the string from which the
+ * search will be performed
+ * @return returns a non-negative position index that points to the end
+ * of the line containing the marker, if found
+ */
+int find_enable_processing_comment_marker(const unc_text &text, std::size_t start_idx = 0);
+
+
+/**
+ * @brief Parse the text into chunks
+ *
+ * This function parses or tokenizes the whole buffer into a list.
+ * It has to do some tricks to parse preprocessors.
+ *
+ * If output_text() were called immediately after, two things would happen:
+ * - trailing whitespace are removed.
+ * - leading space & tabs are converted to the appropriate format.
+ *
+ * All the tokens are inserted before ref. If ref is NULL, they are inserted
+ * at the end of the list. Line numbers are relative to the start of the data.
+ */
+void tokenize(const std::deque<int> &data, Chunk *ref);
+
+
+#endif /* TOKENIZE_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/tokenize_cleanup.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/tokenize_cleanup.cpp
new file mode 100644
index 00000000..108a8db8
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/tokenize_cleanup.cpp
@@ -0,0 +1,1766 @@
+/**
+ * @file tokenize_cleanup.cpp
+ * Looks at simple sequences to refine the chunk types.
+ * Examples:
+ * - change '[' + ']' into '[]'/
+ * - detect "version = 10;" vs "version (xxx) {"
+ *
+ * @author Ben Gardner
+ * @author Guy Maurel 2015, 2021
+ * @license GPL v2+
+ */
+
+#include "tokenize_cleanup.h"
+
+#include "combine.h"
+#include "combine_skip.h"
+#include "flag_braced_init_list.h"
+#include "flag_decltype.h"
+#include "keywords.h"
+#include "prototypes.h"
+#include "punctuators.h"
+#include "space.h"
+#include "unc_ctype.h"
+
+
+using namespace uncrustify;
+
+
+/**
+ * Mark types in a single template argument.
+ *
+ * @param start chunk to start check at
+ * @param end chunk to end check at
+ */
+static void check_template_arg(Chunk *start, Chunk *end);
+
+
+/**
+ * Mark types in template argument(s).
+ *
+ * @param start chunk to start check at
+ * @param end chunk to end check at
+ */
+static void check_template_args(Chunk *start, Chunk *end);
+
+
+/**
+ * If there is nothing but CT_WORD and CT_MEMBER, then it's probably a
+ * template thingy. Otherwise, it's likely a comparison.
+ *
+ * @param start chunk to start check at
+ */
+static void check_template(Chunk *start, bool in_type_cast);
+
+
+/**
+ * Convert '>' + '>' into '>>'
+ * If we only have a single '>', then change it to CT_COMPARE.
+ *
+ * @param pc chunk to start at
+ */
+static Chunk *handle_double_angle_close(Chunk *pc);
+
+
+/**
+ * Marks ObjC specific chunks in propery declaration, by setting
+ * parent types and chunk types.
+ */
+static void cleanup_objc_property(Chunk *start);
+
+
+/**
+ * Marks ObjC specific chunks in propery declaration (getter/setter attribute)
+ * Will mark 'test4Setter'and ':' in '@property (setter=test4Setter:, strong) int test4;' as CT_OC_SEL_NAME
+ */
+static void mark_selectors_in_property_with_open_paren(Chunk *open_paren);
+
+
+/**
+ * Marks ObjC specific chunks in propery declaration ( attributes)
+ * Changes all the CT_WORD and CT_TYPE to CT_OC_PROPERTY_ATTR
+ */
+static void mark_attributes_in_property_with_open_paren(Chunk *open_paren);
+
+
+static Chunk *handle_double_angle_close(Chunk *pc)
+{
+ if (pc == nullptr)
+ {
+ pc = Chunk::NullChunkPtr;
+ }
+ Chunk *next = pc->GetNext();
+
+ if (next->IsNotNullChunk())
+ {
+ if ( chunk_is_token(pc, CT_ANGLE_CLOSE)
+ && chunk_is_token(next, CT_ANGLE_CLOSE)
+ && get_chunk_parent_type(pc) == CT_NONE
+ && (pc->orig_col_end + 1) == next->orig_col
+ && get_chunk_parent_type(next) == CT_NONE)
+ {
+ pc->str.append('>');
+ set_chunk_type(pc, CT_SHIFT);
+ pc->orig_col_end = next->orig_col_end;
+
+ Chunk *tmp = next->GetNextNcNnl();
+ chunk_del(next);
+ next = tmp;
+ }
+ else
+ {
+ // bug #663
+ set_chunk_type(pc, CT_COMPARE);
+ }
+ }
+ return(next);
+}
+
+
+void split_off_angle_close(Chunk *pc)
+{
+ const chunk_tag_t *ct = find_punctuator(pc->Text() + 1, cpd.lang_flags);
+
+ if (ct == nullptr)
+ {
+ return;
+ }
+ Chunk nc = *pc;
+
+ pc->str.resize(1);
+ pc->orig_col_end = pc->orig_col + 1;
+ set_chunk_type(pc, CT_ANGLE_CLOSE);
+
+ set_chunk_type(&nc, ct->type);
+ nc.str.pop_front();
+ nc.orig_col++;
+ nc.column++;
+ chunk_add_after(&nc, pc);
+}
+
+
+void tokenize_trailing_return_types(void)
+{
+ // Issue #2330
+ // auto max(int a, int b) -> int;
+ // Issue #2460
+ // auto f01() -> bool;
+ // auto f02() noexcept -> bool;
+ // auto f03() noexcept(true) -> bool;
+ // auto f04() noexcept(false) -> bool;
+ // auto f05() noexcept -> bool = delete;
+ // auto f06() noexcept(true) -> bool = delete;
+ // auto f07() noexcept(false) -> bool = delete;
+ // auto f11() const -> bool;
+ // auto f12() const noexcept -> bool;
+ // auto f13() const noexcept(true) -> bool;
+ // auto f14() const noexcept(false) -> bool;
+ // auto f15() const noexcept -> bool = delete;
+ // auto f16() const noexcept(true) -> bool = delete;
+ // auto f17() const noexcept(false) -> bool = delete;
+ // auto f21() throw() -> bool;
+ // auto f22() throw() -> bool = delete;
+ // auto f23() const throw() -> bool;
+ // auto f24() const throw() -> bool = delete;
+
+ for (Chunk *pc = Chunk::GetHead(); pc->IsNotNullChunk(); pc = pc->GetNextNcNnl())
+ {
+ char copy[1000];
+ LOG_FMT(LNOTE, "%s(%d): orig_line is %zu, orig_col is %zu, Text() is '%s'\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->ElidedText(copy));
+
+ if ( chunk_is_token(pc, CT_MEMBER)
+ && (strcmp(pc->Text(), "->") == 0))
+ {
+ Chunk *tmp = pc->GetPrevNcNnl();
+ Chunk *tmp_2;
+ Chunk *open_paren;
+
+ if (chunk_is_token(tmp, CT_QUALIFIER))
+ {
+ // auto max(int a, int b) const -> int;
+ // auto f11() const -> bool;
+ tmp = tmp->GetPrevNcNnl();
+ }
+ else if (chunk_is_token(tmp, CT_NOEXCEPT))
+ {
+ // noexcept is present
+ tmp_2 = tmp->GetPrevNcNnl();
+
+ if (chunk_is_token(tmp_2, CT_QUALIFIER))
+ {
+ // auto f12() const noexcept -> bool;
+ // auto f15() const noexcept -> bool = delete;
+ tmp = tmp_2->GetPrevNcNnl();
+ }
+ else
+ {
+ // auto f02() noexcept -> bool;
+ // auto f05() noexcept -> bool = delete;
+ tmp = tmp_2;
+ }
+ }
+ else if (chunk_is_token(tmp, CT_PAREN_CLOSE))
+ {
+ open_paren = tmp->GetPrevType(CT_PAREN_OPEN, tmp->level);
+ tmp = open_paren->GetPrevNcNnl();
+
+ if (chunk_is_token(tmp, CT_NOEXCEPT))
+ {
+ // noexcept is present
+ tmp_2 = tmp->GetPrevNcNnl();
+
+ if (chunk_is_token(tmp_2, CT_QUALIFIER))
+ {
+ // auto f13() const noexcept(true) -> bool;
+ // auto f14() const noexcept(false) -> bool;
+ // auto f16() const noexcept(true) -> bool = delete;
+ // auto f17() const noexcept(false) -> bool = delete;
+ tmp = tmp_2->GetPrevNcNnl();
+ }
+ else
+ {
+ // auto f03() noexcept(true) -> bool;
+ // auto f04() noexcept(false) -> bool;
+ // auto f06() noexcept(true) -> bool = delete;
+ // auto f07() noexcept(false) -> bool = delete;
+ tmp = tmp_2;
+ }
+ }
+ else if (chunk_is_token(tmp, CT_THROW))
+ {
+ // throw is present
+ tmp_2 = tmp->GetPrevNcNnl();
+
+ if (chunk_is_token(tmp_2, CT_QUALIFIER))
+ {
+ // auto f23() const throw() -> bool;
+ // auto f24() const throw() -> bool = delete;
+ tmp = tmp_2->GetPrevNcNnl();
+ }
+ else
+ {
+ // auto f21() throw() -> bool;
+ // auto f22() throw() -> bool = delete;
+ tmp = tmp_2;
+ }
+ }
+ else
+ {
+ LOG_FMT(LNOTE, "%s(%d): NOT COVERED\n", __func__, __LINE__);
+ }
+ }
+ else
+ {
+ LOG_FMT(LNOTE, "%s(%d): NOT COVERED\n", __func__, __LINE__);
+ }
+
+ if ( chunk_is_token(tmp, CT_FPAREN_CLOSE)
+ && ( get_chunk_parent_type(tmp) == CT_FUNC_PROTO
+ || get_chunk_parent_type(tmp) == CT_FUNC_DEF))
+ {
+ set_chunk_type(pc, CT_TRAILING_RET);
+ LOG_FMT(LNOTE, "%s(%d): set trailing return type for Text() is '%s'\n",
+ __func__, __LINE__, pc->Text()); // Issue #3222
+ // TODO
+ // https://en.cppreference.com/w/cpp/language/function
+ // noptr-declarator ( parameter-list ) cv(optional) ref(optional) except(optional) attr(optional) -> trailing
+ Chunk *next = pc->GetNextNcNnl();
+
+ if (chunk_is_token(next, CT_DECLTYPE))
+ {
+ // TODO
+ }
+ else if (chunk_is_token(next, CT_WORD))
+ {
+ set_chunk_type(next, CT_TYPE); // Issue #3222
+ next = next->GetNextNcNnl();
+
+ if (chunk_is_token(next, CT_ARITH))
+ {
+ if (next->str[0] == '*')
+ {
+ set_chunk_type(next, CT_PTR_TYPE);
+ }
+ else if (next->str[0] == '&') // Issue #3407
+ {
+ set_chunk_type(next, CT_BYREF);
+ }
+ }
+ }
+ else
+ {
+ // TODO
+ }
+ }
+ }
+ }
+} // tokenize_trailing_return_types
+
+
+void tokenize_cleanup(void)
+{
+ LOG_FUNC_ENTRY();
+
+ Chunk *prev = nullptr;
+ Chunk *next;
+ bool in_type_cast = false;
+
+ cpd.unc_stage = unc_stage_e::TOKENIZE_CLEANUP;
+
+ /*
+ * Since [] is expected to be TSQUARE for the 'operator', we need to make
+ * this change in the first pass.
+ */
+ Chunk *pc;
+
+ for (pc = Chunk::GetHead(); pc->IsNotNullChunk(); pc = pc->GetNextNcNnl())
+ {
+ if (chunk_is_token(pc, CT_SQUARE_OPEN))
+ {
+ next = pc->GetNextNcNnl();
+
+ if (chunk_is_token(next, CT_SQUARE_CLOSE))
+ {
+ // Change '[' + ']' into '[]'
+ set_chunk_type(pc, CT_TSQUARE);
+ pc->str = "[]";
+ /*
+ * bug #664: The original orig_col_end of CT_SQUARE_CLOSE is
+ * stored at orig_col_end of CT_TSQUARE.
+ * pc->orig_col_end += 1;
+ */
+ pc->orig_col_end = next->orig_col_end;
+ chunk_del(next);
+ }
+ }
+
+ if ( chunk_is_token(pc, CT_SEMICOLON)
+ && pc->flags.test(PCF_IN_PREPROC)
+ && !pc->GetNextNcNnl(E_Scope::PREPROC))
+ {
+ LOG_FMT(LNOTE, "%s(%d): %s:%zu Detected a macro that ends with a semicolon. Possible failures if used.\n",
+ __func__, __LINE__, cpd.filename.c_str(), pc->orig_line);
+ }
+ }
+
+ // change := to CT_SQL_ASSIGN Issue #527
+ for (pc = Chunk::GetHead(); pc->IsNotNullChunk(); pc = pc->GetNextNcNnl())
+ {
+ if (chunk_is_token(pc, CT_COLON))
+ {
+ next = pc->GetNextNcNnl();
+
+ if (chunk_is_token(next, CT_ASSIGN))
+ {
+ // Change ':' + '=' into ':='
+ set_chunk_type(pc, CT_SQL_ASSIGN);
+ pc->str = ":=";
+ pc->orig_col_end = next->orig_col_end;
+ chunk_del(next);
+ }
+ }
+ }
+
+ // We can handle everything else in the second pass
+ pc = Chunk::GetHead();
+ next = pc->GetNextNcNnl();
+
+ while ( pc->IsNotNullChunk()
+ && next->IsNotNullChunk())
+ {
+ if ( chunk_is_token(pc, CT_DOT)
+ && language_is_set(LANG_ALLC))
+ {
+ set_chunk_type(pc, CT_MEMBER);
+ }
+
+ if ( chunk_is_token(pc, CT_NULLCOND)
+ && language_is_set(LANG_CS))
+ {
+ set_chunk_type(pc, CT_MEMBER);
+ }
+
+ // Determine the version stuff (D only)
+ if (chunk_is_token(pc, CT_D_VERSION))
+ {
+ if (chunk_is_token(next, CT_PAREN_OPEN))
+ {
+ set_chunk_type(pc, CT_D_VERSION_IF);
+ }
+ else
+ {
+ if (next->type != CT_ASSIGN)
+ {
+ LOG_FMT(LERR, "%s(%d): %s:%zu: version: Unexpected token %s\n",
+ __func__, __LINE__, cpd.filename.c_str(), pc->orig_line, get_token_name(next->type));
+ cpd.error_count++;
+ }
+ set_chunk_type(pc, CT_WORD);
+ }
+ }
+
+ // Determine the scope stuff (D only)
+ if (chunk_is_token(pc, CT_D_SCOPE))
+ {
+ if (chunk_is_token(next, CT_PAREN_OPEN))
+ {
+ set_chunk_type(pc, CT_D_SCOPE_IF);
+ }
+ else
+ {
+ set_chunk_type(pc, CT_TYPE);
+ }
+ }
+
+ /*
+ * Change CT_BASE before CT_PAREN_OPEN to CT_WORD.
+ * public myclass() : base() {}
+ * -or-
+ * var x = (T)base.y;
+ */
+ if ( chunk_is_token(pc, CT_BASE)
+ && ( chunk_is_token(next, CT_PAREN_OPEN)
+ || chunk_is_token(next, CT_DOT)))
+ {
+ set_chunk_type(pc, CT_WORD);
+ }
+
+ if ( chunk_is_token(pc, CT_ENUM)
+ && ( chunk_is_token(next, CT_STRUCT)
+ || chunk_is_token(next, CT_CLASS)))
+ {
+ set_chunk_type(next, CT_ENUM_CLASS);
+ }
+ Chunk *next_non_attr = language_is_set(LANG_CPP) ? skip_attribute_next(next) : next;
+
+ /*
+ * Change CT_WORD after CT_ENUM, CT_UNION, CT_STRUCT, or CT_CLASS to CT_TYPE
+ * Change CT_WORD before CT_WORD to CT_TYPE
+ */
+ if (chunk_is_token(next_non_attr, CT_WORD))
+ {
+ if ( chunk_is_token(pc, CT_ENUM)
+ || chunk_is_token(pc, CT_ENUM_CLASS)
+ || chunk_is_token(pc, CT_UNION)
+ || chunk_is_token(pc, CT_STRUCT)
+ || chunk_is_token(pc, CT_CLASS))
+ {
+ set_chunk_type(next_non_attr, CT_TYPE);
+ }
+
+ if (chunk_is_token(pc, CT_WORD))
+ {
+ set_chunk_type(pc, CT_TYPE);
+ }
+ }
+
+ /*
+ * change extern to qualifier if extern isn't followed by a string or
+ * an open parenthesis
+ */
+ if (chunk_is_token(pc, CT_EXTERN))
+ {
+ if (chunk_is_token(next, CT_STRING))
+ {
+ // Probably 'extern "C"'
+ }
+ else if (chunk_is_token(next, CT_PAREN_OPEN))
+ {
+ // Probably 'extern (C)'
+ }
+ else
+ {
+ // Something else followed by a open brace
+ Chunk *tmp = next->GetNextNcNnl();
+
+ if ( tmp->IsNullChunk()
+ || tmp->type != CT_BRACE_OPEN)
+ {
+ set_chunk_type(pc, CT_QUALIFIER);
+ }
+ }
+ }
+
+ /*
+ * Change CT_STAR to CT_PTR_TYPE if preceded by
+ * CT_TYPE, CT_QUALIFIER, or CT_PTR_TYPE
+ * or by a
+ * CT_WORD which is preceded by CT_DC_MEMBER: '::aaa *b'
+ */
+ if ( (chunk_is_token(next, CT_STAR))
+ || ( language_is_set(LANG_CPP)
+ && (chunk_is_token(next, CT_CARET)))
+ || ( language_is_set(LANG_CS | LANG_VALA)
+ && (chunk_is_token(next, CT_QUESTION))
+ && (strcmp(pc->Text(), "null") != 0)))
+ {
+ if ( chunk_is_token(pc, CT_TYPE)
+ || chunk_is_token(pc, CT_QUALIFIER)
+ || chunk_is_token(pc, CT_PTR_TYPE))
+ {
+ set_chunk_type(next, CT_PTR_TYPE);
+ }
+ }
+
+ if ( chunk_is_token(pc, CT_TYPE_CAST)
+ && chunk_is_token(next, CT_ANGLE_OPEN))
+ {
+ set_chunk_parent(next, CT_TYPE_CAST);
+ in_type_cast = true;
+ }
+
+ if (chunk_is_token(pc, CT_DECLTYPE))
+ {
+ flag_cpp_decltype(pc);
+ }
+
+ // Change angle open/close to CT_COMPARE, if not a template thingy
+ if ( chunk_is_token(pc, CT_ANGLE_OPEN)
+ && pc->parent_type != CT_TYPE_CAST)
+ {
+ /*
+ * pretty much all languages except C use <> for something other than
+ * comparisons. "#include<xxx>" is handled elsewhere.
+ */
+ if (language_is_set(LANG_OC | LANG_CPP | LANG_CS | LANG_JAVA | LANG_VALA))
+ {
+ // bug #663
+ check_template(pc, in_type_cast);
+ }
+ else
+ {
+ // convert CT_ANGLE_OPEN to CT_COMPARE
+ set_chunk_type(pc, CT_COMPARE);
+ }
+ }
+
+ if ( chunk_is_token(pc, CT_ANGLE_CLOSE)
+ && pc->parent_type != CT_TEMPLATE)
+ {
+ if (in_type_cast)
+ {
+ in_type_cast = false;
+ set_chunk_parent(pc, CT_TYPE_CAST);
+ }
+ else
+ {
+ next = handle_double_angle_close(pc);
+ }
+ }
+
+ if (language_is_set(LANG_D))
+ {
+ // Check for the D string concat symbol '~'
+ if ( chunk_is_token(pc, CT_INV)
+ && ( chunk_is_token(prev, CT_STRING)
+ || chunk_is_token(prev, CT_WORD)
+ || chunk_is_token(next, CT_STRING)))
+ {
+ set_chunk_type(pc, CT_CONCAT);
+ }
+
+ // Check for the D template symbol '!' (word + '!' + word or '(')
+ if ( chunk_is_token(pc, CT_NOT)
+ && chunk_is_token(prev, CT_WORD)
+ && ( chunk_is_token(next, CT_PAREN_OPEN)
+ || chunk_is_token(next, CT_WORD)
+ || chunk_is_token(next, CT_TYPE)
+ || chunk_is_token(next, CT_NUMBER)
+ || chunk_is_token(next, CT_NUMBER_FP)
+ || chunk_is_token(next, CT_STRING)
+ || chunk_is_token(next, CT_STRING_MULTI)))
+ {
+ set_chunk_type(pc, CT_D_TEMPLATE);
+ }
+
+ // handle "version(unittest) { }" vs "unittest { }"
+ if ( chunk_is_token(pc, CT_UNITTEST)
+ && chunk_is_token(prev, CT_PAREN_OPEN))
+ {
+ set_chunk_type(pc, CT_WORD);
+ }
+
+ // handle 'static if' and merge the tokens
+ if ( chunk_is_token(pc, CT_IF)
+ && chunk_is_str(prev, "static"))
+ {
+ // delete PREV and merge with IF
+ pc->str.insert(0, ' ');
+ pc->str.insert(0, prev->str);
+ pc->orig_col = prev->orig_col;
+ pc->orig_line = prev->orig_line;
+ Chunk *to_be_deleted = prev;
+ prev = prev->GetPrevNcNnl();
+
+ if (prev->IsNotNullChunk())
+ {
+ chunk_del(to_be_deleted);
+ }
+ }
+ }
+
+ if (language_is_set(LANG_CPP))
+ {
+ // Change Word before '::' into a type
+ if ( chunk_is_token(pc, CT_WORD)
+ && chunk_is_token(next, CT_DC_MEMBER))
+ {
+ prev = pc->GetPrev();
+
+ if (prev->IsNullChunk()) // Issue #3010
+ {
+ set_chunk_type(pc, CT_TYPE);
+ }
+ else
+ {
+ if (chunk_is_token(prev, CT_COLON))
+ {
+ // nothing to do
+ }
+ else
+ {
+ set_chunk_type(pc, CT_TYPE);
+ }
+ }
+ }
+
+ // Set parent type for 'if constexpr'
+ if ( chunk_is_token(prev, CT_IF)
+ && chunk_is_token(pc, CT_QUALIFIER)
+ && chunk_is_str(pc, "constexpr"))
+ {
+ set_chunk_type(pc, CT_CONSTEXPR);
+ }
+ }
+
+ // Change get/set to CT_WORD if not followed by a brace open
+ if ( chunk_is_token(pc, CT_GETSET)
+ && next->type != CT_BRACE_OPEN)
+ {
+ if ( chunk_is_token(next, CT_SEMICOLON)
+ && ( chunk_is_token(prev, CT_BRACE_CLOSE)
+ || chunk_is_token(prev, CT_BRACE_OPEN)
+ || chunk_is_token(prev, CT_SEMICOLON)))
+ {
+ set_chunk_type(pc, CT_GETSET_EMPTY);
+ set_chunk_parent(next, CT_GETSET);
+ }
+ else
+ {
+ set_chunk_type(pc, CT_WORD);
+ }
+ }
+
+ /*
+ * Interface is only a keyword in MS land if followed by 'class' or 'struct'
+ * likewise, 'class' may be a member name in Java.
+ */
+ if ( chunk_is_token(pc, CT_CLASS)
+ && !CharTable::IsKw1(next->str[0]))
+ {
+ if ( chunk_is_not_token(next, CT_DC_MEMBER)
+ && chunk_is_not_token(next, CT_ATTRIBUTE)) // Issue #2570
+ {
+ set_chunk_type(pc, CT_WORD);
+ }
+ else if ( chunk_is_token(prev, CT_DC_MEMBER)
+ || chunk_is_token(prev, CT_TYPE))
+ {
+ set_chunk_type(pc, CT_TYPE);
+ }
+ else if (chunk_is_token(next, CT_DC_MEMBER))
+ {
+ Chunk *next2 = next->GetNextNcNnlNet();
+
+ if ( chunk_is_token(next2, CT_INV) // CT_INV hasn't turned into CT_DESTRUCTOR just yet
+ || ( chunk_is_token(next2, CT_CLASS) // constructor isn't turned into CT_FUNC* just yet
+ && !strcmp(pc->Text(), next2->Text())))
+ {
+ set_chunk_type(pc, CT_TYPE);
+ }
+ }
+ }
+
+ /*
+ * Change item after operator (>=, ==, etc) to a CT_OPERATOR_VAL
+ * Usually the next item is part of the operator.
+ * In a few cases the next few tokens are part of it:
+ * operator + - common case
+ * operator >> - need to combine '>' and '>'
+ * operator ()
+ * operator [] - already converted to TSQUARE
+ * operator new []
+ * operator delete []
+ * operator const char *
+ * operator const B&
+ * operator std::allocator<U>
+ *
+ * In all cases except the last, this will put the entire operator value
+ * in one chunk.
+ */
+ if (chunk_is_token(pc, CT_OPERATOR))
+ {
+ Chunk *tmp2 = next->GetNext();
+
+ // Handle special case of () operator -- [] already handled
+ if (chunk_is_token(next, CT_PAREN_OPEN))
+ {
+ Chunk *tmp = next->GetNext();
+
+ if (chunk_is_token(tmp, CT_PAREN_CLOSE))
+ {
+ next->str = "()";
+ set_chunk_type(next, CT_OPERATOR_VAL);
+ chunk_del(tmp);
+ next->orig_col_end += 1;
+ }
+ }
+ else if ( chunk_is_token(next, CT_ANGLE_CLOSE)
+ && chunk_is_token(tmp2, CT_ANGLE_CLOSE)
+ && tmp2->orig_col == next->orig_col_end)
+ {
+ next->str.append('>');
+ next->orig_col_end++;
+ set_chunk_type(next, CT_OPERATOR_VAL);
+ chunk_del(tmp2);
+ }
+ else if (next->flags.test(PCF_PUNCTUATOR))
+ {
+ set_chunk_type(next, CT_OPERATOR_VAL);
+ }
+ else
+ {
+ set_chunk_type(next, CT_TYPE);
+
+ /*
+ * Replace next with a collection of all tokens that are part of
+ * the type.
+ */
+ tmp2 = next;
+ Chunk *tmp;
+
+ while ((tmp = tmp2->GetNext())->IsNotNullChunk())
+ {
+ if ( tmp->type != CT_WORD
+ && tmp->type != CT_TYPE
+ && tmp->type != CT_QUALIFIER
+ && tmp->type != CT_STAR
+ && tmp->type != CT_CARET
+ && tmp->type != CT_AMP
+ && tmp->type != CT_TSQUARE)
+ {
+ break;
+ }
+ // Change tmp into a type so that space_needed() works right
+ make_type(tmp);
+ size_t num_sp = space_needed(tmp2, tmp);
+
+ while (num_sp-- > 0)
+ {
+ next->str.append(" ");
+ }
+ next->str.append(tmp->str);
+ tmp2 = tmp;
+ }
+
+ while ((tmp2 = next->GetNext()) != tmp)
+ {
+ chunk_del(tmp2);
+ }
+ set_chunk_type(next, CT_OPERATOR_VAL);
+
+ next->orig_col_end = next->orig_col + next->Len();
+ }
+ set_chunk_parent(next, CT_OPERATOR);
+
+ LOG_FMT(LOPERATOR, "%s(%d): %zu:%zu operator '%s'\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, next->Text());
+ }
+
+ // Change private, public, protected into either a qualifier or label
+ if (chunk_is_token(pc, CT_ACCESS))
+ {
+ // Handle Qt slots - maybe should just check for a CT_WORD?
+ if ( chunk_is_str(next, "slots")
+ || chunk_is_str(next, "Q_SLOTS"))
+ {
+ Chunk *tmp = next->GetNext();
+
+ if (chunk_is_token(tmp, CT_COLON))
+ {
+ next = tmp;
+ }
+ }
+
+ if (chunk_is_token(next, CT_COLON))
+ {
+ set_chunk_type(next, CT_ACCESS_COLON);
+ Chunk *tmp;
+
+ if ((tmp = next->GetNextNcNnl())->IsNotNullChunk())
+ {
+ chunk_flags_set(tmp, PCF_STMT_START | PCF_EXPR_START);
+ }
+ }
+ else
+ {
+ set_chunk_type(pc, ( chunk_is_str(pc, "signals")
+ || chunk_is_str(pc, "Q_SIGNALS"))
+ ? CT_WORD : CT_QUALIFIER);
+ }
+ }
+
+ // Look for <newline> 'EXEC' 'SQL'
+ if ( ( chunk_is_str_case(pc, "EXEC", 4)
+ && chunk_is_str_case(next, "SQL", 3))
+ || ( (*pc->str.c_str() == '$')
+ && pc->type != CT_SQL_WORD
+ /* but avoid breaking tokenization for C# 6 interpolated strings. */
+ && ( !language_is_set(LANG_CS)
+ || ( chunk_is_token(pc, CT_STRING)
+ && (!pc->str.startswith("$\""))
+ && (!pc->str.startswith("$@\""))))))
+ {
+ Chunk *tmp = pc->GetPrev();
+
+ if (chunk_is_newline(tmp))
+ {
+ if (*pc->str.c_str() == '$')
+ {
+ set_chunk_type(pc, CT_SQL_EXEC);
+
+ if (pc->Len() > 1)
+ {
+ // SPLIT OFF '$'
+ Chunk nc;
+
+ nc = *pc;
+ pc->str.resize(1);
+ pc->orig_col_end = pc->orig_col + 1;
+
+ set_chunk_type(&nc, CT_SQL_WORD);
+ nc.str.pop_front();
+ nc.orig_col++;
+ nc.column++;
+ chunk_add_after(&nc, pc);
+
+ next = pc->GetNext();
+ }
+ }
+ tmp = next->GetNext();
+
+ if (chunk_is_str_case(tmp, "BEGIN", 5))
+ {
+ set_chunk_type(pc, CT_SQL_BEGIN);
+ }
+ else if (chunk_is_str_case(tmp, "END", 3))
+ {
+ set_chunk_type(pc, CT_SQL_END);
+ }
+ else
+ {
+ set_chunk_type(pc, CT_SQL_EXEC);
+ }
+
+ // Change words into CT_SQL_WORD until CT_SEMICOLON
+ while (tmp->IsNotNullChunk())
+ {
+ if (chunk_is_token(tmp, CT_SEMICOLON))
+ {
+ break;
+ }
+
+ if ( (tmp->Len() > 0)
+ && ( unc_isalpha(*tmp->str.c_str())
+ || (*tmp->str.c_str() == '$')))
+ {
+ set_chunk_type(tmp, CT_SQL_WORD);
+ }
+ tmp = tmp->GetNextNcNnl();
+ }
+ }
+ }
+
+ // handle MS abomination 'for each'
+ if ( chunk_is_token(pc, CT_FOR)
+ && chunk_is_str(next, "each")
+ && (next == pc->GetNext()))
+ {
+ // merge the two with a space between
+ pc->str.append(' ');
+ pc->str += next->str;
+ pc->orig_col_end = next->orig_col_end;
+ chunk_del(next);
+ next = pc->GetNextNcNnl();
+
+ // label the 'in'
+ if (chunk_is_token(next, CT_PAREN_OPEN))
+ {
+ Chunk *tmp = next->GetNextNcNnl();
+
+ while ( tmp->IsNotNullChunk()
+ && tmp->type != CT_PAREN_CLOSE)
+ {
+ if (chunk_is_str(tmp, "in"))
+ {
+ set_chunk_type(tmp, CT_IN);
+ break;
+ }
+ tmp = tmp->GetNextNcNnl();
+ }
+ }
+ }
+
+ /*
+ * ObjectiveC allows keywords to be used as identifiers in some situations
+ * This is a dirty hack to allow some of the more common situations.
+ */
+ if (language_is_set(LANG_OC))
+ {
+ if ( ( chunk_is_token(pc, CT_IF)
+ || chunk_is_token(pc, CT_FOR)
+ || chunk_is_token(pc, CT_WHILE))
+ && !chunk_is_token(next, CT_PAREN_OPEN))
+ {
+ set_chunk_type(pc, CT_WORD);
+ }
+
+ if ( chunk_is_token(pc, CT_DO)
+ && ( chunk_is_token(prev, CT_MINUS)
+ || chunk_is_token(next, CT_SQUARE_CLOSE)))
+ {
+ set_chunk_type(pc, CT_WORD);
+ }
+
+ // Fix self keyword back to word when mixing c++/objective-c
+ if ( chunk_is_token(pc, CT_THIS)
+ && !strcmp(pc->Text(), "self")
+ && ( chunk_is_token(next, CT_COMMA)
+ || chunk_is_token(next, CT_PAREN_CLOSE)))
+ {
+ set_chunk_type(pc, CT_WORD);
+ }
+
+ // Fix self keyword back to word when mixing c++/objective-c
+ if ( chunk_is_token(pc, CT_THIS)
+ && !strcmp(pc->Text(), "self")
+ && ( chunk_is_token(next, CT_COMMA)
+ || chunk_is_token(next, CT_PAREN_CLOSE)))
+ {
+ set_chunk_type(pc, CT_WORD);
+ }
+ }
+
+ // Another hack to clean up more keyword abuse
+ if ( chunk_is_token(pc, CT_CLASS)
+ && ( chunk_is_token(prev, CT_DOT)
+ || chunk_is_token(next, CT_DOT)
+ || chunk_is_token(prev, CT_MEMBER) // Issue #3031
+ || chunk_is_token(next, CT_MEMBER)))
+ {
+ set_chunk_type(pc, CT_WORD);
+ }
+
+ // Detect Objective C class name
+ if ( chunk_is_token(pc, CT_OC_IMPL)
+ || chunk_is_token(pc, CT_OC_INTF)
+ || chunk_is_token(pc, CT_OC_PROTOCOL))
+ {
+ if (next->type != CT_PAREN_OPEN)
+ {
+ set_chunk_type(next, CT_OC_CLASS);
+ }
+ set_chunk_parent(next, pc->type);
+
+ Chunk *tmp = next->GetNextNcNnl();
+
+ if (tmp->IsNotNullChunk())
+ {
+ chunk_flags_set(tmp, PCF_STMT_START | PCF_EXPR_START);
+ }
+ tmp = pc->GetNextType(CT_OC_END, pc->level);
+
+ if (tmp->IsNotNullChunk())
+ {
+ set_chunk_parent(tmp, pc->type);
+ }
+ }
+
+ if (chunk_is_token(pc, CT_OC_INTF))
+ {
+ Chunk *tmp = pc->GetNextNcNnl(E_Scope::PREPROC);
+
+ while ( tmp->IsNotNullChunk()
+ && tmp->type != CT_OC_END)
+ {
+ if (get_token_pattern_class(tmp->type) != pattern_class_e::NONE)
+ {
+ LOG_FMT(LOBJCWORD, "%s(%d): @interface %zu:%zu change '%s' (%s) to CT_WORD\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, tmp->Text(),
+ get_token_name(tmp->type));
+ set_chunk_type(tmp, CT_WORD);
+ }
+ tmp = tmp->GetNextNcNnl(E_Scope::PREPROC);
+ }
+ }
+
+ /*
+ * Detect Objective-C categories and class extensions:
+ * @interface ClassName (CategoryName)
+ * @implementation ClassName (CategoryName)
+ * @interface ClassName ()
+ * @implementation ClassName ()
+ */
+ if ( ( get_chunk_parent_type(pc) == CT_OC_IMPL
+ || get_chunk_parent_type(pc) == CT_OC_INTF
+ || chunk_is_token(pc, CT_OC_CLASS))
+ && chunk_is_token(next, CT_PAREN_OPEN))
+ {
+ set_chunk_parent(next, get_chunk_parent_type(pc));
+
+ Chunk *tmp = next->GetNext();
+
+ if ( tmp->IsNotNullChunk()
+ && tmp->GetNext()->IsNotNullChunk())
+ {
+ if (chunk_is_token(tmp, CT_PAREN_CLOSE))
+ {
+ //set_chunk_type(tmp, CT_OC_CLASS_EXT);
+ set_chunk_parent(tmp, get_chunk_parent_type(pc));
+ }
+ else
+ {
+ set_chunk_type(tmp, CT_OC_CATEGORY);
+ set_chunk_parent(tmp, get_chunk_parent_type(pc));
+ }
+ }
+ tmp = pc->GetNextType(CT_PAREN_CLOSE, pc->level);
+
+ if (tmp->IsNotNullChunk())
+ {
+ set_chunk_parent(tmp, get_chunk_parent_type(pc));
+ }
+ }
+
+ /*
+ * Detect Objective C @property:
+ * @property NSString *stringProperty;
+ * @property(nonatomic, retain) NSMutableDictionary *shareWith;
+ */
+ if (chunk_is_token(pc, CT_OC_PROPERTY))
+ {
+ if (next->type != CT_PAREN_OPEN)
+ {
+ chunk_flags_set(next, PCF_STMT_START | PCF_EXPR_START);
+ }
+ else
+ {
+ cleanup_objc_property(pc);
+ }
+ }
+
+ /*
+ * Detect Objective C @selector:
+ * @selector(msgNameWithNoArg)
+ * @selector(msgNameWith1Arg:)
+ * @selector(msgNameWith2Args:arg2Name:)
+ */
+ if ( chunk_is_token(pc, CT_OC_SEL)
+ && chunk_is_token(next, CT_PAREN_OPEN))
+ {
+ set_chunk_parent(next, pc->type);
+
+ Chunk *tmp = next->GetNext();
+
+ if (tmp->IsNotNullChunk())
+ {
+ set_chunk_type(tmp, CT_OC_SEL_NAME);
+ set_chunk_parent(tmp, pc->type);
+
+ while ((tmp = tmp->GetNextNcNnl())->IsNotNullChunk())
+ {
+ if (chunk_is_token(tmp, CT_PAREN_CLOSE))
+ {
+ set_chunk_parent(tmp, CT_OC_SEL);
+ break;
+ }
+ set_chunk_type(tmp, CT_OC_SEL_NAME);
+ set_chunk_parent(tmp, pc->type);
+ }
+ }
+ }
+
+ // Handle special preprocessor junk
+ if (chunk_is_token(pc, CT_PREPROC))
+ {
+ set_chunk_parent(pc, next->type);
+ }
+
+ // Detect "pragma region" and "pragma endregion"
+ if ( chunk_is_token(pc, CT_PP_PRAGMA)
+ && chunk_is_token(next, CT_PREPROC_BODY))
+ {
+ if ( (strncmp(next->str.c_str(), "region", 6) == 0)
+ || (strncmp(next->str.c_str(), "endregion", 9) == 0))
+ // TODO: probably better use strncmp
+ {
+ set_chunk_type(pc, (*next->str.c_str() == 'r') ? CT_PP_REGION : CT_PP_ENDREGION);
+
+ set_chunk_parent(prev, pc->type);
+ }
+ }
+
+ // Change 'default(' into a sizeof-like statement
+ if ( language_is_set(LANG_CS)
+ && chunk_is_token(pc, CT_DEFAULT)
+ && chunk_is_token(next, CT_PAREN_OPEN))
+ {
+ set_chunk_type(pc, CT_SIZEOF);
+ }
+
+ if ( chunk_is_token(pc, CT_UNSAFE)
+ && next->type != CT_BRACE_OPEN)
+ {
+ set_chunk_type(pc, CT_QUALIFIER);
+ }
+
+ if ( ( chunk_is_token(pc, CT_USING)
+ || ( chunk_is_token(pc, CT_TRY)
+ && language_is_set(LANG_JAVA)))
+ && chunk_is_token(next, CT_PAREN_OPEN))
+ {
+ set_chunk_type(pc, CT_USING_STMT);
+ }
+
+ // Add minimal support for C++0x rvalue references
+ if ( chunk_is_token(pc, CT_BOOL)
+ && language_is_set(LANG_CPP)
+ && chunk_is_str(pc, "&&"))
+ {
+ if (chunk_is_token(prev, CT_TYPE))
+ {
+ // Issue # 1002
+ if (!pc->flags.test(PCF_IN_TEMPLATE))
+ {
+ set_chunk_type(pc, CT_BYREF);
+ }
+ }
+ }
+
+ /*
+ * HACK: treat try followed by a colon as a qualifier to handle this:
+ * A::A(int) try : B() { } catch (...) { }
+ */
+ if ( chunk_is_token(pc, CT_TRY)
+ && chunk_is_str(pc, "try")
+ && chunk_is_token(next, CT_COLON))
+ {
+ set_chunk_type(pc, CT_QUALIFIER);
+ }
+
+ /*
+ * If Java's 'synchronized' is in a method declaration, it should be
+ * a qualifier.
+ */
+ if ( language_is_set(LANG_JAVA)
+ && chunk_is_token(pc, CT_SYNCHRONIZED)
+ && next->type != CT_PAREN_OPEN)
+ {
+ set_chunk_type(pc, CT_QUALIFIER);
+ }
+
+ // change CT_DC_MEMBER + CT_FOR into CT_DC_MEMBER + CT_FUNC_CALL
+ if ( chunk_is_token(pc, CT_FOR)
+ && chunk_is_token(pc->prev, CT_DC_MEMBER))
+ {
+ set_chunk_type(pc, CT_FUNC_CALL);
+ }
+ // TODO: determine other stuff here
+
+ prev = pc;
+ pc = next;
+ next = pc->GetNextNcNnl();
+ }
+} // tokenize_cleanup
+
+
+bool invalid_open_angle_template(Chunk *prev)
+{
+ if (prev == nullptr)
+ {
+ return(false);
+ }
+ // A template requires a word/type right before the open angle
+ return( prev->type != CT_WORD
+ && prev->type != CT_TYPE
+ && prev->type != CT_COMMA
+ && prev->type != CT_QUALIFIER
+ && prev->type != CT_OPERATOR_VAL
+ && get_chunk_parent_type(prev) != CT_OPERATOR);
+}
+
+
+static void check_template(Chunk *start, bool in_type_cast)
+{
+ LOG_FMT(LTEMPL, "%s(%d): orig_line %zu, orig_col %zu:\n",
+ __func__, __LINE__, start->orig_line, start->orig_col);
+
+ Chunk *prev = start->GetPrevNcNnl(E_Scope::PREPROC);
+
+ if (prev->IsNullChunk())
+ {
+ return;
+ }
+ Chunk *end;
+ Chunk *pc;
+
+ if (chunk_is_token(prev, CT_TEMPLATE))
+ {
+ LOG_FMT(LTEMPL, "%s(%d): CT_TEMPLATE:\n", __func__, __LINE__);
+
+ // We have: "template< ... >", which is a template declaration
+ size_t level = 1;
+ size_t parens = 0;
+
+ for (pc = start->GetNextNcNnl(E_Scope::PREPROC);
+ pc->IsNotNullChunk();
+ pc = pc->GetNextNcNnl(E_Scope::PREPROC))
+ {
+ LOG_FMT(LTEMPL, "%s(%d): type is %s, level is %zu\n",
+ __func__, __LINE__, get_token_name(pc->type), level);
+
+ if ( (pc->str[0] == '>')
+ && (pc->Len() > 1))
+ {
+ if (pc->str[1] == '=') // Issue #1462 and #2565
+ {
+ LOG_FMT(LTEMPL, "%s(%d): do not split '%s' at orig_line %zu, orig_col %zu\n",
+ __func__, __LINE__, pc->Text(), pc->orig_line, pc->orig_col);
+ }
+ else
+ {
+ LOG_FMT(LTEMPL, "%s(%d): {split '%s' at orig_line %zu, orig_col %zu}\n",
+ __func__, __LINE__, pc->Text(), pc->orig_line, pc->orig_col);
+ split_off_angle_close(pc);
+ }
+ }
+
+ if (chunk_is_token(pc, CT_DECLTYPE))
+ {
+ flag_cpp_decltype(pc);
+ }
+ else if (chunk_is_token(pc, CT_PAREN_OPEN))
+ {
+ ++parens;
+ }
+ else if (chunk_is_token(pc, CT_PAREN_CLOSE))
+ {
+ --parens;
+ }
+
+ if (parens == 0)
+ {
+ if (chunk_is_str(pc, "<"))
+ {
+ level++;
+ }
+ else if (chunk_is_str(pc, ">"))
+ {
+ if (level == 0)
+ {
+ fprintf(stderr, "%s(%d): level is ZERO, cannot be decremented, at line %zu, column %zu\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col);
+ log_flush(true);
+ exit(EX_SOFTWARE);
+ }
+ level--;
+
+ if (level == 0)
+ {
+ break;
+ }
+ }
+ }
+ }
+
+ end = pc;
+ }
+ else
+ {
+ /*
+ * We may have something like "a< ... >", which is a template where
+ * '...' may consist of anything except a semicolon, unbalanced
+ * parens, or braces (with one exception being braced initializers
+ * embedded within decltypes).
+ *
+ * For example, braces may be encountered as such in the following
+ * snippet of valid C++ code:
+ *
+ * template<typename T,
+ * typename = enable_if_t<is_same<typename decay<T>::type,
+ * decltype (make_index_sequence<5> { })>::value>>
+ * void foo(T &&arg)
+ * {
+ *
+ * }
+ *
+ * Finally, if we are inside an 'if' statement and hit a CT_BOOL,
+ * then it isn't a template.
+ */
+
+ if (invalid_open_angle_template(prev))
+ {
+ LOG_FMT(LTEMPL, "%s(%d): - after type %s + ( - Not a template\n",
+ __func__, __LINE__, get_token_name(prev->type));
+ set_chunk_type(start, CT_COMPARE);
+ return;
+ }
+ LOG_FMT(LTEMPL, "%s(%d): - prev->type is %s -\n",
+ __func__, __LINE__, get_token_name(prev->type));
+
+ // Scan back and make sure we aren't inside square parenthesis
+ bool in_if = false;
+ bool hit_semicolon = false;
+ pc = start->GetPrevNcNnl(E_Scope::PREPROC);
+
+ while (pc->IsNotNullChunk())
+ {
+ if ( ( chunk_is_token(pc, CT_SEMICOLON)
+ && hit_semicolon)
+ || chunk_is_token(pc, CT_SQUARE_CLOSE))
+ {
+ break;
+ }
+
+ if (chunk_is_token(pc, CT_DECLTYPE))
+ {
+ flag_cpp_decltype(pc);
+ }
+
+ if (chunk_is_token(pc, CT_BRACE_OPEN))
+ {
+ if ( !pc->flags.test(PCF_IN_DECLTYPE)
+ || !detect_cpp_braced_init_list(pc->prev, pc))
+ {
+ break;
+ }
+ flag_cpp_braced_init_list(pc->prev, pc);
+ }
+
+ if ( chunk_is_token(pc, CT_BRACE_CLOSE)
+ && get_chunk_parent_type(pc) != CT_BRACED_INIT_LIST
+ && !pc->flags.test(PCF_IN_DECLTYPE))
+ {
+ break;
+ }
+
+ if ( chunk_is_token(pc, CT_SEMICOLON)
+ && !hit_semicolon)
+ {
+ hit_semicolon = true;
+ }
+
+ if ( ( ( chunk_is_token(pc, CT_IF)
+ || chunk_is_token(pc, CT_RETURN)
+ || chunk_is_token(pc, CT_WHILE)
+ || chunk_is_token(pc, CT_WHILE_OF_DO))
+ && !hit_semicolon)
+ || ( chunk_is_token(pc, CT_FOR)
+ && hit_semicolon))
+ {
+ in_if = true;
+ break;
+ }
+ pc = pc->GetPrevNcNnl(E_Scope::PREPROC);
+ }
+ /*
+ * Scan forward to the angle close
+ * If we have a comparison in there, then it can't be a template.
+ */
+ const int max_token_count = 1024;
+ E_Token tokens[max_token_count];
+ size_t num_tokens = 1;
+
+ tokens[0] = CT_ANGLE_OPEN;
+
+ for (pc = start->GetNextNcNnl(E_Scope::PREPROC);
+ pc->IsNotNullChunk();
+ pc = pc->GetNextNcNnl(E_Scope::PREPROC))
+ {
+ constexpr static auto LCURRENT = LTEMPL;
+
+ LOG_FMT(LTEMPL, "%s(%d): pc->orig_line is %zu, pc->orig_col is %zu, type is %s, num_tokens is %zu\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, get_token_name(pc->type), num_tokens);
+
+ log_rule_B("tok_split_gte");
+
+ if (chunk_is_token(pc, CT_BRACE_OPEN)) // Issue #2886
+ {
+ // look for the closing brace
+ Chunk *A = chunk_skip_to_match(pc);
+ LOG_FMT(LTEMPL, "%s(%d): A->orig_line is %zu, A->orig_col is %zu, type is %s\n",
+ __func__, __LINE__, A->orig_line, A->orig_col, get_token_name(A->type));
+ pc = A->GetNext();
+ }
+
+ if ( (tokens[num_tokens - 1] == CT_ANGLE_OPEN)
+ && (pc->str[0] == '>')
+ && (pc->Len() > 1)
+ && ( options::tok_split_gte()
+ || ( ( chunk_is_str(pc, ">>")
+ || chunk_is_str(pc, ">>>"))
+ && ( num_tokens >= 2
+ || ( num_tokens >= 1
+ && in_type_cast)))))
+ {
+ LOG_FMT(LTEMPL, "%s(%d): {split '%s' at orig_line %zu, orig_col %zu}\n",
+ __func__, __LINE__, pc->Text(), pc->orig_line, pc->orig_col);
+
+ split_off_angle_close(pc);
+ }
+
+ if (chunk_is_str(pc, "<"))
+ {
+ if ( num_tokens > 0 && (tokens[num_tokens - 1] == CT_PAREN_OPEN)
+ && invalid_open_angle_template(pc->prev))
+ {
+ set_chunk_type(pc, CT_COMPARE); // Issue #3127
+ }
+ else
+ {
+ tokens[num_tokens] = CT_ANGLE_OPEN;
+ num_tokens++;
+ }
+ }
+ else if (chunk_is_str(pc, ">"))
+ {
+ if (num_tokens > 0 && (tokens[num_tokens - 1] == CT_PAREN_OPEN))
+ {
+ handle_double_angle_close(pc);
+ }
+ else if (--num_tokens <= 0)
+ {
+ break;
+ }
+ else if (tokens[num_tokens] != CT_ANGLE_OPEN)
+ {
+ break; // unbalanced parentheses
+ }
+ }
+ else if ( in_if
+ && ( chunk_is_token(pc, CT_BOOL)
+ || chunk_is_token(pc, CT_COMPARE)))
+ {
+ break;
+ }
+ else if (chunk_is_token(pc, CT_BRACE_OPEN))
+ {
+ if ( !pc->flags.test(PCF_IN_DECLTYPE)
+ || !detect_cpp_braced_init_list(pc->prev, pc))
+ {
+ break;
+ }
+ auto brace_open = pc->GetNextNcNnl();
+ auto brace_close = chunk_skip_to_match(brace_open);
+
+ set_chunk_parent(brace_open, CT_BRACED_INIT_LIST);
+ set_chunk_parent(brace_close, CT_BRACED_INIT_LIST);
+ }
+ else if ( chunk_is_token(pc, CT_BRACE_CLOSE)
+ && get_chunk_parent_type(pc) != CT_BRACED_INIT_LIST
+ && !pc->flags.test(PCF_IN_DECLTYPE))
+ {
+ break;
+ }
+ else if (chunk_is_token(pc, CT_SEMICOLON))
+ {
+ break;
+ }
+ else if (chunk_is_token(pc, CT_PAREN_OPEN))
+ {
+ if (num_tokens >= max_token_count - 1)
+ {
+ break;
+ }
+ tokens[num_tokens] = CT_PAREN_OPEN;
+ num_tokens++;
+ }
+ else if ( chunk_is_token(pc, CT_QUESTION) // Issue #2949
+ && language_is_set(LANG_CPP))
+ {
+ break;
+ }
+ else if (chunk_is_token(pc, CT_PAREN_CLOSE))
+ {
+ if (num_tokens == 0)
+ {
+ fprintf(stderr, "%s(%d): num_tokens is ZERO, cannot be decremented, at line %zu, column %zu\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col);
+ log_flush(true);
+ exit(EX_SOFTWARE);
+ }
+ num_tokens--;
+
+ if (tokens[num_tokens] != CT_PAREN_OPEN)
+ {
+ break; // unbalanced parentheses
+ }
+ }
+ }
+
+ end = pc;
+ }
+
+ if (chunk_is_token(end, CT_ANGLE_CLOSE))
+ {
+ pc = end->GetNextNcNnl(E_Scope::PREPROC);
+
+ if ( pc->IsNullChunk()
+ || pc->type != CT_NUMBER)
+ {
+ LOG_FMT(LTEMPL, "%s(%d): Template detected\n", __func__, __LINE__);
+ LOG_FMT(LTEMPL, "%s(%d): from orig_line %zu, orig_col %zu\n",
+ __func__, __LINE__, start->orig_line, start->orig_col);
+ LOG_FMT(LTEMPL, "%s(%d): to orig_line %zu, orig_col %zu\n",
+ __func__, __LINE__, end->orig_line, end->orig_col);
+ set_chunk_parent(start, CT_TEMPLATE);
+
+ check_template_args(start, end);
+
+ set_chunk_parent(end, CT_TEMPLATE);
+ chunk_flags_set(end, PCF_IN_TEMPLATE);
+ return;
+ }
+ }
+ LOG_FMT(LTEMPL, "%s(%d): - Not a template: end = %s\n",
+ __func__, __LINE__, (end != nullptr) ? get_token_name(end->type) : "<null>");
+ set_chunk_type(start, CT_COMPARE);
+} // check_template
+
+
+static void check_template_arg(Chunk *start, Chunk *end)
+{
+ LOG_FMT(LTEMPL, "%s(%d): Template argument detected\n", __func__, __LINE__);
+ LOG_FMT(LTEMPL, "%s(%d): from orig_line %zu, orig_col %zu\n",
+ __func__, __LINE__, start->orig_line, start->orig_col);
+ LOG_FMT(LTEMPL, "%s(%d): to orig_line %zu, orig_col %zu\n",
+ __func__, __LINE__, end->orig_line, end->orig_col);
+
+ // Issue #1127
+ // MyFoo<mySize * 2> foo1;
+ // MyFoo<2*mySize * 2> foo1;
+ // Issue #1346
+ // use it as ONE line:
+ // typename std::enable_if<!std::is_void<T>::value,
+ // QVector<T> >::type dummy(const std::function<T*(const S&)>&
+ // pFunc, const QVector<S>& pItems)
+ // we need two runs
+ // 1. run to test if expression is numeric
+ bool expressionIsNumeric = false;
+ Chunk *pc = start;
+
+ while (pc != end)
+ {
+ Chunk *next = pc->GetNextNcNnl(E_Scope::PREPROC);
+ // a test "if (next == nullptr)" is not necessary
+ chunk_flags_set(pc, PCF_IN_TEMPLATE);
+
+ if ( chunk_is_token(pc, CT_DECLTYPE)
+ || chunk_is_token(pc, CT_SIZEOF))
+ {
+ expressionIsNumeric = true;
+ break;
+ }
+
+ if (next->type != CT_PAREN_OPEN)
+ {
+ if ( chunk_is_token(pc, CT_NUMBER)
+ || chunk_is_token(pc, CT_ARITH)
+ || chunk_is_token(pc, CT_SHIFT))
+ {
+ expressionIsNumeric = true;
+ break;
+ }
+ }
+ pc = next;
+ }
+ LOG_FMT(LTEMPL, "%s(%d): expressionIsNumeric is %s\n",
+ __func__, __LINE__, expressionIsNumeric ? "TRUE" : "FALSE");
+
+ // 2. run to do the work
+ if (!expressionIsNumeric)
+ {
+ pc = start;
+
+ while (pc != end)
+ {
+ Chunk *next = pc->GetNextNcNnl(E_Scope::PREPROC);
+ // a test "if (next == nullptr)" is not necessary
+ chunk_flags_set(pc, PCF_IN_TEMPLATE);
+
+ Chunk *prev = pc->GetPrevNcNnl(E_Scope::PREPROC);
+ Chunk *prev2 = prev->GetPrevNcNnl(E_Scope::PREPROC);
+
+ if ( chunk_is_token(prev, CT_ELLIPSIS) // Issue #3309
+ && chunk_is_token(prev2, CT_TYPENAME))
+ {
+ set_chunk_type(pc, CT_PARAMETER_PACK);
+ }
+ else
+ {
+ make_type(pc);
+ }
+ pc = next;
+ }
+ }
+} // check_template_arg
+
+
+static void check_template_args(Chunk *start, Chunk *end)
+{
+ std::vector<E_Token> tokens;
+
+ // Scan for commas
+ Chunk *pc;
+
+ for (pc = start->GetNextNcNnl(E_Scope::PREPROC);
+ pc->IsNotNullChunk() && pc != end;
+ pc = pc->GetNextNcNnl(E_Scope::PREPROC))
+ {
+ switch (pc->type)
+ {
+ case CT_COMMA:
+
+ if (tokens.empty())
+ {
+ // Check current argument
+ check_template_args(start, pc);
+ start = pc;
+ }
+ break;
+
+ case CT_ANGLE_OPEN:
+ case CT_PAREN_OPEN:
+ tokens.push_back(pc->type);
+ break;
+
+ case CT_ANGLE_CLOSE:
+
+ if ( !tokens.empty()
+ && tokens.back() == CT_ANGLE_OPEN)
+ {
+ tokens.pop_back();
+ }
+ break;
+
+ case CT_PAREN_CLOSE:
+
+ if ( !tokens.empty()
+ && tokens.back() == CT_PAREN_OPEN)
+ {
+ tokens.pop_back();
+ }
+ break;
+
+ default:
+ break;
+ }
+ }
+
+ // Check whatever is left
+ check_template_arg(start, end);
+} // check_template_args
+
+
+static void cleanup_objc_property(Chunk *start)
+{
+ assert(chunk_is_token(start, CT_OC_PROPERTY));
+
+ Chunk *open_paren = start->GetNextType(CT_PAREN_OPEN, start->level);
+
+ if (open_paren->IsNullChunk())
+ {
+ LOG_FMT(LTEMPL, "%s(%d): Property is not followed by openning paren\n", __func__, __LINE__);
+ return;
+ }
+ set_chunk_parent(open_paren, start->type);
+
+ Chunk *tmp = start->GetNextType(CT_PAREN_CLOSE, start->level);
+
+ if (tmp->IsNotNullChunk())
+ {
+ set_chunk_parent(tmp, start->type);
+ tmp = tmp->GetNextNcNnl();
+
+ if (tmp->IsNotNullChunk())
+ {
+ chunk_flags_set(tmp, PCF_STMT_START | PCF_EXPR_START);
+
+ tmp = tmp->GetNextType(CT_SEMICOLON, start->level);
+
+ if (tmp->IsNotNullChunk())
+ {
+ set_chunk_parent(tmp, start->type);
+ }
+ }
+ }
+ mark_selectors_in_property_with_open_paren(open_paren);
+ mark_attributes_in_property_with_open_paren(open_paren);
+}
+
+
+static void mark_selectors_in_property_with_open_paren(Chunk *open_paren)
+{
+ assert(chunk_is_token(open_paren, CT_PAREN_OPEN));
+
+ Chunk *tmp = open_paren;
+
+ while ( tmp != nullptr
+ && tmp->type != CT_PAREN_CLOSE)
+ {
+ if ( chunk_is_token(tmp, CT_WORD)
+ && ( chunk_is_str(tmp, "setter")
+ || chunk_is_str(tmp, "getter")))
+ {
+ tmp = tmp->next;
+
+ while ( tmp != nullptr
+ && tmp->type != CT_COMMA
+ && tmp->type != CT_PAREN_CLOSE)
+ {
+ if ( chunk_is_token(tmp, CT_WORD)
+ || chunk_is_str(tmp, ":"))
+ {
+ set_chunk_type(tmp, CT_OC_SEL_NAME);
+ }
+ tmp = tmp->next;
+ }
+ }
+ else
+ {
+ tmp = tmp->next;
+ }
+ }
+}
+
+
+static void mark_attributes_in_property_with_open_paren(Chunk *open_paren)
+{
+ assert(chunk_is_token(open_paren, CT_PAREN_OPEN));
+
+ Chunk *tmp = open_paren;
+
+ while ( tmp != nullptr
+ && tmp->type != CT_PAREN_CLOSE)
+ {
+ if ( ( chunk_is_token(tmp, CT_COMMA)
+ || chunk_is_token(tmp, CT_PAREN_OPEN))
+ && ( chunk_is_token(tmp->next, CT_WORD)
+ || chunk_is_token(tmp->next, CT_TYPE)))
+ {
+ set_chunk_type(tmp->next, CT_OC_PROPERTY_ATTR);
+ }
+ tmp = tmp->next;
+ }
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/tokenize_cleanup.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/tokenize_cleanup.h
new file mode 100644
index 00000000..1a75cde9
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/tokenize_cleanup.h
@@ -0,0 +1,31 @@
+/**
+ * @file tokenize_cleanup.h
+ * prototypes for tokenize_cleanup.c
+ *
+ * @author Ben Gardner
+ * @license GPL v2+
+ */
+#ifndef TOKENIZ_CLEANUP_H_INCLUDED
+#define TOKENIZ_CLEANUP_H_INCLUDED
+
+#include "uncrustify_types.h"
+
+
+/**
+ * @brief clean up tokens
+ *
+ * Change certain token types based on simple sequence.
+ * Example: change '[' + ']' to '[]'
+ * Note that level info is not yet available, so it is OK to do all
+ * processing that doesn't need to know level info. (that's very little!)
+ */
+void tokenize_cleanup(void);
+
+
+void tokenize_trailing_return_types(void);
+
+
+void split_off_angle_close(Chunk *pc);
+
+
+#endif /* TOKENIZ_CLEANUP_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/unc_ctype.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/unc_ctype.h
index 50b7a6f3..50b7a6f3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/unc_ctype.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/unc_ctype.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/unc_text.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/unc_text.cpp
index 1f96a67c..1f96a67c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/unc_text.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/unc_text.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/unc_text.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/unc_text.h
index dd678f16..dd678f16 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/unc_text.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/unc_text.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/unc_tools.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/unc_tools.cpp
new file mode 100644
index 00000000..20aa4b99
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/unc_tools.cpp
@@ -0,0 +1,496 @@
+/**
+ * @file unc_tools.cpp
+ * This file contains lot of tools for debugging
+ *
+ * @author Guy Maurel
+ * October 2015- 2021
+ * @license GPL v2+
+ */
+
+#include "unc_tools.h"
+
+#include "args.h"
+#include "output.h"
+
+
+/*
+ * the test suite Coveralls: https://coveralls.io
+ * will complains because these functions are only
+ * used at developement time.
+ * Don't worry about unsed lines for the functions:
+ * prot_the_line
+ * prot_the_source
+ * examine_Data
+ * dump_out
+ * dump_in
+ */
+
+static size_t counter = 0;
+static size_t tokenCounter;
+
+
+/* protocol of the line
+ * examples:
+ * prot_the_line(__func__, __LINE__, pc->orig_line, 0);
+ * prot_the_line(__func__, __LINE__, 0, 0);
+ * prot_the_line(__func__, __LINE__, 6, 5);
+ * prot_the_source(__LINE__);
+ * log_pcf_flags(LSYS, pc->flags);
+ *
+ * if actual_line is zero, use the option debug_line_number_to_protocol.
+ * if the value is zero, don't make any protocol and return.
+ *
+ * if partNumber is zero, all the tokens of the line are shown,
+ * if partNumber is NOT zero, only the token with this partNumber is shown.
+ *
+ * prot_the_line_pc(pc_sub, __func__, __LINE__, 6, 5);
+ * to get a protocol of a sub branch, which begins with pc_sub
+ */
+void prot_the_line(const char *func_name, int theLine, unsigned int actual_line, size_t partNumber)
+{
+ prot_the_line_pc(Chunk::GetHead(), func_name, theLine, actual_line, partNumber);
+}
+
+
+void prot_the_line_pc(Chunk *pc_sub, const char *func_name, int theLine, unsigned int actual_line, size_t partNumber)
+{
+ if (actual_line == 0)
+ {
+ // use the option debug_line_number_to_protocol.
+ actual_line = options::debug_line_number_to_protocol();
+
+ if (actual_line == 0)
+ {
+ // don't make any protocol.
+ return;
+ }
+ }
+ counter++;
+ tokenCounter = 0;
+ LOG_FMT(LGUY, "Prot_the_line:(%s:%d)(%zu)\n", func_name, theLine, counter);
+
+ for (Chunk *pc = pc_sub; pc->IsNotNullChunk(); pc = pc->GetNext())
+ {
+ if (pc->orig_line == actual_line)
+ {
+ tokenCounter++;
+
+ if ( partNumber == 0
+ || partNumber == tokenCounter)
+ {
+ LOG_FMT(LGUY, " orig_line is %d, (%zu) ", actual_line, tokenCounter);
+
+ if (chunk_is_token(pc, CT_VBRACE_OPEN))
+ {
+ LOG_FMT(LGUY, "<VBRACE_OPEN>, ");
+ }
+ else if (chunk_is_token(pc, CT_NEWLINE))
+ {
+ LOG_FMT(LGUY, "<NL>(nl_count is %zu), ", pc->nl_count);
+ }
+ else if (chunk_is_token(pc, CT_VBRACE_CLOSE))
+ {
+ LOG_FMT(LGUY, "<CT_VBRACE_CLOSE>, ");
+ }
+ else if (chunk_is_token(pc, CT_VBRACE_OPEN))
+ {
+ LOG_FMT(LGUY, "<CT_VBRACE_OPEN>, ");
+ }
+ else if (chunk_is_token(pc, CT_SPACE))
+ {
+ LOG_FMT(LGUY, "<CT_SPACE>, ");
+ }
+ else if (chunk_is_token(pc, CT_IGNORED))
+ {
+ LOG_FMT(LGUY, "<IGNORED> ");
+ }
+ else
+ {
+ LOG_FMT(LGUY, "Text() '%s', ", pc->Text());
+ }
+ LOG_FMT(LGUY, " column is %zu, pp_level is %zu, type is %s, parent_type is %s, orig_col is %zu,",
+ pc->column, pc->pp_level, get_token_name(pc->type),
+ get_token_name(get_chunk_parent_type(pc)), pc->orig_col);
+
+ if (chunk_is_token(pc, CT_IGNORED))
+ {
+ LOG_FMT(LGUY, "\n");
+ }
+ else
+ {
+ LOG_FMT(LGUY, " pc->flags: ");
+ log_pcf_flags(LGUY, pc->flags);
+ }
+
+ if (pc->tracking != nullptr)
+ {
+ LOG_FMT(LGUY, " Tracking info are: \n");
+ LOG_FMT(LGUY, " number of track(s) %zu\n", pc->tracking->size());
+
+ for (size_t track = 0; track < pc->tracking->size(); track++)
+ {
+ track_list *A = pc->tracking;
+ Track_nr B = A->at(track);
+ size_t Bfirst = B.first;
+ char *Bsecond = B.second;
+
+ LOG_FMT(LGUY, " %zu, tracking number is %zu\n", track, Bfirst);
+ LOG_FMT(LGUY, " %zu, rule is %s\n", track, Bsecond);
+ }
+ }
+ }
+ }
+ }
+
+ LOG_FMT(LGUY, "\n");
+} // prot_the_line_pc
+
+
+void prot_all_lines(const char *func_name, int theLine)
+{
+ counter++;
+ tokenCounter = 0;
+ size_t lineNumber = 1;
+
+ LOG_FMT(LGUY, "Prot_all_lines:(%s:%d)(%zu)\n", func_name, theLine, counter);
+
+ for (Chunk *pc = Chunk::GetHead(); pc->IsNotNullChunk(); pc = pc->GetNext())
+ {
+ tokenCounter++;
+
+ LOG_FMT(LGUY, " orig_line is %zu,%zu, pp_level is %zu, ", lineNumber, tokenCounter, pc->pp_level);
+
+ if (chunk_is_token(pc, CT_VBRACE_OPEN))
+ {
+ LOG_FMT(LGUY, "<VBRACE_OPEN>, ");
+ }
+ else if (chunk_is_token(pc, CT_NEWLINE))
+ {
+ LOG_FMT(LGUY, "<NL>(nl_count is %zu), ", pc->nl_count);
+ tokenCounter = 0;
+ lineNumber = lineNumber + pc->nl_count;
+ }
+ else if (chunk_is_token(pc, CT_VBRACE_CLOSE))
+ {
+ LOG_FMT(LGUY, "<CT_VBRACE_CLOSE>, ");
+ }
+ else if (chunk_is_token(pc, CT_VBRACE_OPEN))
+ {
+ LOG_FMT(LGUY, "<CT_VBRACE_OPEN>, ");
+ }
+ else if (chunk_is_token(pc, CT_SPACE))
+ {
+ LOG_FMT(LGUY, "<CT_SPACE>, ");
+ }
+ else if (chunk_is_token(pc, CT_IGNORED))
+ {
+ LOG_FMT(LGUY, "<IGNORED> ");
+ }
+ else
+ {
+ LOG_FMT(LGUY, "Text() '%s', ", pc->Text());
+ }
+ LOG_FMT(LGUY, " column is %zu, type is %s\n",
+ pc->column, get_token_name(pc->type));
+ }
+} // prot_all_lines
+
+
+void prot_the_source(int theLine)
+{
+ counter++;
+ LOG_FMT(LGUY, "Prot_the_source:(%d)(%zu)\n", theLine, counter);
+ output_text(stderr);
+}
+
+
+// examples:
+// examine_Data(__func__, __LINE__, n);
+void examine_Data(const char *func_name, int theLine, int what)
+{
+ LOG_FMT(LGUY, "\n%s:", func_name);
+
+ Chunk *pc;
+
+ switch (what)
+ {
+ case 1:
+
+ for (pc = Chunk::GetHead(); pc->IsNotNullChunk(); pc = pc->GetNext())
+ {
+ if ( chunk_is_token(pc, CT_SQUARE_CLOSE)
+ || chunk_is_token(pc, CT_TSQUARE))
+ {
+ LOG_FMT(LGUY, "\n");
+ LOG_FMT(LGUY, "1:(%d),", theLine);
+ LOG_FMT(LGUY, "%s, orig_col=%zu, orig_col_end=%zu\n", pc->Text(), pc->orig_col, pc->orig_col_end);
+ }
+ }
+
+ break;
+
+ case 2:
+ LOG_FMT(LGUY, "2:(%d)\n", theLine);
+
+ for (pc = Chunk::GetHead(); pc->IsNotNullChunk(); pc = pc->GetNext())
+ {
+ if (pc->orig_line == 7)
+ {
+ if (chunk_is_token(pc, CT_NEWLINE))
+ {
+ LOG_FMT(LGUY, "(%zu)<NL> col=%zu\n\n", pc->orig_line, pc->orig_col);
+ }
+ else
+ {
+ LOG_FMT(LGUY, "(%zu)%s %s, col=%zu, column=%zu\n", pc->orig_line, pc->Text(), get_token_name(pc->type), pc->orig_col, pc->column);
+ }
+ }
+ }
+
+ break;
+
+ case 3:
+ LOG_FMT(LGUY, "3:(%d)\n", theLine);
+
+ for (pc = Chunk::GetHead(); pc->IsNotNullChunk(); pc = pc->GetNext())
+ {
+ if (chunk_is_token(pc, CT_NEWLINE))
+ {
+ LOG_FMT(LGUY, "(%zu)<NL> col=%zu\n\n", pc->orig_line, pc->orig_col);
+ }
+ else
+ {
+ LOG_FMT(LGUY, "(%zu)%s %s, col=%zu, column=%zu\n", pc->orig_line, pc->Text(), get_token_name(pc->type), pc->orig_col, pc->column);
+ }
+ }
+
+ break;
+
+ case 4:
+ LOG_FMT(LGUY, "4:(%d)\n", theLine);
+
+ for (pc = Chunk::GetHead(); pc->IsNotNullChunk(); pc = pc->GetNext())
+ {
+ if (pc->orig_line == 6)
+ {
+ if (chunk_is_token(pc, CT_NEWLINE))
+ {
+ LOG_FMT(LGUY, "(%zu)<NL> col=%zu\n\n", pc->orig_line, pc->orig_col);
+ }
+ else
+ {
+ LOG_FMT(LGUY, "(%zu)%s %s, col=%zu, column=%zu\n", pc->orig_line, pc->Text(), get_token_name(pc->type), pc->orig_col, pc->column);
+ }
+ }
+ }
+
+ break;
+
+ default:
+ break;
+ } // switch
+} // examine_Data
+
+
+void dump_out(unsigned int type)
+{
+ char dumpFileName[300];
+
+ if (cpd.dumped_file == nullptr)
+ {
+ sprintf(dumpFileName, "%s.%u", cpd.filename.c_str(), type);
+ }
+ else
+ {
+ sprintf(dumpFileName, "%s.%u", cpd.dumped_file, type);
+ }
+ FILE *D_file = fopen(dumpFileName, "w");
+
+ if (D_file != nullptr)
+ {
+ for (Chunk *pc = Chunk::GetHead(); pc->IsNotNullChunk(); pc = pc->GetNext())
+ {
+ fprintf(D_file, "[%p]\n", pc);
+ fprintf(D_file, " type %s\n", get_token_name(pc->type));
+ fprintf(D_file, " orig_line %zu\n", pc->orig_line);
+ fprintf(D_file, " orig_col %zu\n", pc->orig_col);
+ fprintf(D_file, " orig_col_end %zu\n", pc->orig_col_end);
+
+ if (pc->orig_prev_sp != 0)
+ {
+ fprintf(D_file, " orig_prev_sp %u\n", pc->orig_prev_sp);
+ }
+
+ if (pc->column != 0)
+ {
+ fprintf(D_file, " column %zu\n", pc->column);
+ }
+
+ if (pc->column_indent != 0)
+ {
+ fprintf(D_file, " column_indent %zu\n", pc->column_indent);
+ }
+
+ if (pc->nl_count != 0)
+ {
+ fprintf(D_file, " nl_count %zu\n", pc->nl_count);
+ }
+
+ if (pc->level != 0)
+ {
+ fprintf(D_file, " level %zu\n", pc->level);
+ }
+
+ if (pc->brace_level != 0)
+ {
+ fprintf(D_file, " brace_level %zu\n", pc->brace_level);
+ }
+
+ if (pc->pp_level != 0)
+ {
+ fprintf(D_file, " pp_level %zu\n", pc->pp_level);
+ }
+
+ if (pc->after_tab != 0)
+ {
+ fprintf(D_file, " after_tab %d\n", pc->after_tab);
+ }
+
+ if (pc->type != CT_NEWLINE)
+ {
+ fprintf(D_file, " Text %s\n", pc->Text());
+ }
+ }
+
+ fclose(D_file);
+ }
+} // dump_out
+
+
+void dump_in(unsigned int type)
+{
+ char buffer[256];
+ bool aNewChunkIsFound = false;
+ Chunk chunk;
+ char dumpFileName[300];
+
+ if (cpd.dumped_file == nullptr)
+ {
+ sprintf(dumpFileName, "%s.%u", cpd.filename.c_str(), type);
+ }
+ else
+ {
+ sprintf(dumpFileName, "%s.%u", cpd.dumped_file, type);
+ }
+ FILE *D_file = fopen(dumpFileName, "r");
+
+ if (D_file != nullptr)
+ {
+ unsigned int lineNumber = 0;
+
+ while (fgets(buffer, sizeof(buffer), D_file) != nullptr)
+ {
+ ++lineNumber;
+
+ if (aNewChunkIsFound)
+ {
+ // look for the next chunk
+ char first = buffer[0];
+
+ if (first == '[')
+ {
+ aNewChunkIsFound = false;
+ // add the chunk in the list
+ chunk_add_before(&chunk, nullptr);
+ chunk.Reset();
+ aNewChunkIsFound = true;
+ continue;
+ }
+ // the line as the form
+ // part value
+ // Split the line
+ const int max_parts_count = 3;
+ char *parts[max_parts_count];
+ int parts_count = Args::SplitLine(buffer, parts, max_parts_count - 1);
+
+ if (parts_count != 2)
+ {
+ exit(EX_SOFTWARE);
+ }
+
+ if (strcasecmp(parts[0], "type") == 0)
+ {
+ E_Token tokenName = find_token_name(parts[1]);
+ set_chunk_type(&chunk, tokenName);
+ }
+ else if (strcasecmp(parts[0], "orig_line") == 0)
+ {
+ chunk.orig_line = strtol(parts[1], nullptr, 0);
+ }
+ else if (strcasecmp(parts[0], "orig_col") == 0)
+ {
+ chunk.orig_col = strtol(parts[1], nullptr, 0);
+ }
+ else if (strcasecmp(parts[0], "orig_col_end") == 0)
+ {
+ chunk.orig_col_end = strtol(parts[1], nullptr, 0);
+ }
+ else if (strcasecmp(parts[0], "orig_prev_sp") == 0)
+ {
+ chunk.orig_prev_sp = strtol(parts[1], nullptr, 0);
+ }
+ else if (strcasecmp(parts[0], "column") == 0)
+ {
+ chunk.column = strtol(parts[1], nullptr, 0);
+ }
+ else if (strcasecmp(parts[0], "nl_count") == 0)
+ {
+ chunk.nl_count = strtol(parts[1], nullptr, 0);
+ }
+ else if (strcasecmp(parts[0], "text") == 0)
+ {
+ if (chunk.type != CT_NEWLINE)
+ {
+ chunk.str = parts[1];
+ }
+ }
+ else
+ {
+ fprintf(stderr, "on line=%d, for '%s'\n", lineNumber, parts[0]);
+ log_flush(true);
+ exit(EX_SOFTWARE);
+ }
+ }
+ else
+ {
+ // look for a new chunk
+ char first = buffer[0];
+
+ if (first == '[')
+ {
+ aNewChunkIsFound = true;
+ chunk.Reset();
+ }
+ }
+ }
+ // add the last chunk in the list
+ chunk_add_before(&chunk, nullptr);
+ fclose(D_file);
+ }
+ else
+ {
+ fprintf(stderr, "FATAL: file not found '%s'\n", dumpFileName);
+ log_flush(true);
+ exit(EX_SOFTWARE);
+ }
+} // dump_in
+
+
+size_t number = 0;
+
+
+size_t get_A_Number()
+{
+ number = number + 1;
+ return(number);
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/unc_tools.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/unc_tools.h
new file mode 100644
index 00000000..acd199b9
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/unc_tools.h
@@ -0,0 +1,46 @@
+/**
+ * @file unc_tools.h
+ *
+ * @author Guy Maurel
+ * October 2015, 2016, 2017, 2018, 2019, 2020, 2021
+ * @license GPL v2+
+ */
+
+#ifndef UNC_TOOLS_H_INCLUDED
+#define UNC_TOOLS_H_INCLUDED
+
+#include "prototypes.h"
+
+#if defined DEBUG
+#define PROT_THE_LINE prot_the_line(__func__, __LINE__, 0, 0);
+#else
+#define PROT_THE_LINE /* do nothing */;
+#endif
+
+
+void prot_the_line(const char *func_name, int theLine, unsigned int actual_line, size_t partNumber);
+
+
+void prot_the_line_pc(Chunk *pc_sub, const char *func_name, int theLine, unsigned int actual_line, size_t partNumber);
+
+
+void prot_all_lines(const char *func_name, int theLine);
+
+
+void prot_the_source(int theLine);
+
+
+void examine_Data(const char *func_name, int theLine, int what);
+
+
+//! dump the chunk list to a file
+void dump_out(unsigned int type);
+
+
+//! create chunk list from a file
+void dump_in(unsigned int type);
+
+
+size_t get_A_Number();
+
+#endif /* UNC_TOOLS_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/uncrustify.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/uncrustify.cpp
new file mode 100644
index 00000000..ee5dac2b
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/uncrustify.cpp
@@ -0,0 +1,2708 @@
+/**
+ * @file uncrustify.cpp
+ * This file takes an input C/C++/D/Java file and reformats it.
+ *
+ * @author Ben Gardner
+ * @license GPL v2+
+ */
+
+#define DEFINE_CHAR_TABLE
+
+#include "uncrustify.h"
+
+#include "align.h"
+#include "align_nl_cont.h"
+#include "align_preprocessor.h"
+#include "align_trailing_comments.h"
+#include "args.h"
+#include "backup.h"
+#include "brace_cleanup.h"
+#include "braces.h"
+#include "combine.h"
+#include "compat.h"
+#include "detect.h"
+#include "enum_cleanup.h"
+#include "indent.h"
+#include "keywords.h"
+#include "lang_pawn.h"
+#include "newlines.h"
+#include "output.h"
+#include "parameter_pack_cleanup.h"
+#include "parens.h"
+#include "parent_for_pp.h"
+#include "remove_duplicate_include.h"
+#include "remove_extra_returns.h"
+#include "semicolons.h"
+#include "sorting.h"
+#include "space.h"
+#include "token_names.h"
+#include "tokenize.h"
+#include "tokenize_cleanup.h"
+#include "unc_ctype.h"
+#include "unc_tools.h"
+#include "uncrustify_version.h"
+#include "unicode.h"
+#include "universalindentgui.h"
+#include "width.h"
+
+#include <cerrno>
+#include <fcntl.h>
+#include <map>
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+#ifdef HAVE_STRINGS_H
+#include <strings.h> // provides strcasecmp()
+#endif
+#ifdef HAVE_UTIME_H
+#include <time.h>
+#endif
+
+
+// VS throws an error if an attribute newer than the requested standard level
+// is used; everyone else just ignores it (or warns) like they are supposed to
+
+#if __cplusplus >= 201703L
+#define NODISCARD [[nodiscard]]
+#elif defined (__has_cpp_attribute)
+#if __has_cpp_attribute(nodiscard)
+#define NODISCARD [[nodiscard]]
+#else
+#define NODISCARD
+#endif
+#else
+#define NODISCARD
+#endif
+
+constexpr static auto LCURRENT = LUNC;
+
+using namespace std;
+using namespace uncrustify;
+
+
+// Global data
+cp_data_t cpd;
+
+
+static size_t language_flags_from_name(const char *tag);
+
+
+/**
+ * Find the language for the file extension
+ * Defaults to C
+ *
+ * @param filename The name of the file
+ * @return LANG_xxx
+ */
+static size_t language_flags_from_filename(const char *filename);
+
+
+static bool read_stdin(file_mem &fm);
+
+
+static void uncrustify_start(const deque<int> &data);
+
+
+static bool ends_with(const char *filename, const char *tag, bool case_sensitive);
+
+
+/**
+ * Does a source file.
+ *
+ * @param filename_in the file to read
+ * @param filename_out nullptr (stdout) or the file to write
+ * @param parsed_file nullptr or the filename for the parsed debug info
+ * @param dump_file nullptr or the filename prefix for dumping formatting steps debug info
+ * @param no_backup don't create a backup, if filename_out == filename_in
+ * @param keep_mtime don't change the mtime (dangerous)
+ */
+static void do_source_file(const char *filename_in, const char *filename_out, const char *parsed_file, const char *dump_file, bool no_backup, bool keep_mtime);
+
+
+static void add_file_header();
+
+
+static void add_file_footer();
+
+
+static void add_func_header(E_Token type, file_mem &fm);
+
+
+static void add_msg_header(E_Token type, file_mem &fm);
+
+
+static void process_source_list(const char *source_list, const char *prefix, const char *suffix, bool no_backup, bool keep_mtime);
+
+
+static const char *make_output_filename(char *buf, size_t buf_size, const char *filename, const char *prefix, const char *suffix);
+
+
+//! compare the content of two files
+static bool file_content_matches(const string &filename1, const string &filename2);
+
+
+static string fix_filename(const char *filename);
+
+
+static bool bout_content_matches(const file_mem &fm, bool report_status);
+
+
+/**
+ * Loads a file into memory
+ *
+ * @param filename name of file to load
+ *
+ * @retval true file was loaded successfully
+ * @retval false file could not be loaded
+ */
+static int load_mem_file(const char *filename, file_mem &fm);
+
+
+/**
+ * Try to load the file from the config folder first and then by name
+ *
+ * @param filename name of file to load
+ *
+ * @retval true file was loaded successfully
+ * @retval false file could not be loaded
+ */
+static int load_mem_file_config(const std::string &filename, file_mem &fm);
+
+
+//! print uncrustify version number and terminate
+static void version_exit(void);
+
+
+const char *path_basename(const char *path)
+{
+ if (path == nullptr)
+ {
+ return("");
+ }
+ const char *last_path = path;
+ char ch;
+
+ while ((ch = *path) != 0) // check for end of string
+ {
+ path++;
+
+ // Check both slash types to support Linux and Windows
+ if ( (ch == '/')
+ || (ch == '\\'))
+ {
+ last_path = path;
+ }
+ }
+ return(last_path);
+}
+
+
+int path_dirname_len(const char *filename)
+{
+ if (filename == nullptr)
+ {
+ return(0);
+ }
+ // subtracting addresses like this works only on big endian systems
+ return(static_cast<int>(path_basename(filename) - filename));
+}
+
+
+void usage_error(const char *msg)
+{
+ if (msg != nullptr)
+ {
+ fprintf(stderr, "%s\n", msg);
+ log_flush(true);
+ }
+ fprintf(stderr, "Try running with -h for usage information\n");
+ log_flush(true);
+}
+
+
+static void tease()
+{
+ fprintf(stdout,
+ "There are currently %zu options and minimal documentation.\n"
+ "Try UniversalIndentGUI and good luck.\n", get_option_count());
+}
+
+
+void usage(const char *argv0)
+{
+ fprintf(stdout,
+ "Usage:\n"
+ "%s [options] [files ...]\n"
+ "\n"
+ "If no input files are specified, the input is read from stdin\n"
+ "If reading from stdin, you should specify the language using -l\n"
+ "or specify a filename using --assume for automatic language detection.\n"
+ "\n"
+ "If -F is used or files are specified on the command line,\n"
+ "the output filename is 'prefix/filename' + suffix\n"
+ "\n"
+ "When reading from stdin or doing a single file via the '-f' option,\n"
+ "the output is dumped to stdout, unless redirected with -o FILE.\n"
+ "\n"
+ "Errors are always dumped to stderr\n"
+ "\n"
+ "The '-f' and '-o' options may not be used with '-F' or '--replace'.\n"
+ "The '--prefix' and '--suffix' options may not be used with '--replace'.\n"
+ "\n"
+ "Basic Options:\n"
+ " -c CFG : Use the config file CFG, or defaults if CFG is set to '-'.\n"
+ " -f FILE : Process the single file FILE (output to stdout, use with -o).\n"
+ " -o FILE : Redirect stdout to FILE.\n"
+ " -F FILE : Read files to process from FILE, one filename per line (- is stdin).\n"
+ " --check : Do not output the new text, instead verify that nothing changes when\n"
+ " the file(s) are processed.\n"
+ " The status of every file is printed to stderr.\n"
+ " The exit code is EXIT_SUCCESS if there were no changes, EXIT_FAILURE otherwise.\n"
+ " files : Files to process (can be combined with -F).\n"
+ " --suffix SFX : Append SFX to the output filename. The default is '.uncrustify'\n"
+ " --prefix PFX : Prepend PFX to the output filename path.\n"
+ " --replace : Replace source files (creates a backup).\n"
+ " --no-backup : Do not create backup and md5 files. Useful if files are under source control.\n"
+ " --if-changed : Write to stdout (or create output FILE) only if a change was detected.\n"
+#ifdef HAVE_UTIME_H
+ " --mtime : Preserve mtime on replaced files.\n"
+#endif
+ " -l : Language override: C, CPP, D, CS, JAVA, PAWN, OC, OC+, VALA.\n"
+ " -t : Load a file with types (usually not needed).\n"
+ " -q : Quiet mode - no output on stderr (-L will override).\n"
+ " --frag : Code fragment, assume the first line is indented correctly.\n"
+ " --assume FN : Uses the filename FN for automatic language detection if reading\n"
+ " from stdin unless -l is specified.\n"
+ "\n"
+ "Config/Help Options:\n"
+ " -h -? --help --usage : Print this message and exit.\n"
+ " --version : Print the version and exit.\n"
+ " --count-options : Print the number of available options and exit.\n"
+ " --show-config : Print out option documentation and exit.\n"
+ " --update-config : Output a new config file. Use with -o FILE.\n"
+ " --update-config-with-doc : Output a new config file. Use with -o FILE.\n"
+ " --universalindent : Output a config file for Universal Indent GUI.\n"
+ " --detect : Detects the config from a source file. Use with '-f FILE'.\n"
+ " Detection is fairly limited.\n"
+ " --set <option>=<value> : Sets a new value to a config option.\n"
+ "\n"
+ "Debug Options:\n"
+ " -p FILE : Dump debug info into FILE, or to stdout if FILE is set to '-'.\n"
+ " Must be used in combination with '-f FILE'\n"
+ " -ds FILE : Dump parsing info at various moments of the formatting process.\n"
+ " --dump-steps FILE This creates a series of files named 'FILE_nnn.log', each\n"
+ " corresponding to a formatting step in uncrustify.\n"
+ " The file 'FILE_000.log' lists the formatting options in use.\n"
+ " Must be used in combination with '-f FILE'\n"
+ " -L SEV : Set the log severity (see log_levels.h; note 'A' = 'all')\n"
+ " -s : Show the log severity in the logs.\n"
+ " --decode : Decode remaining args (chunk flags) and exit.\n"
+ " --tracking_space FILE : Prepare tracking informations for debugging.\n"
+ " Cannot be used with the -o option'\n"
+ "\n"
+ "Usage Examples\n"
+ "cat foo.d | uncrustify -q -c my.cfg -l d\n"
+ "uncrustify -c my.cfg -f foo.d\n"
+ "uncrustify -c my.cfg -f foo.d -L0-2,20-23,51\n"
+ "uncrustify -c my.cfg -f foo.d -o foo.d\n"
+ "uncrustify -c my.cfg -f foo.d -o foo.d -ds dump\n"
+ "uncrustify -c my.cfg foo.d\n"
+ "uncrustify -c my.cfg --replace foo.d\n"
+ "uncrustify -c my.cfg --no-backup foo.d\n"
+ "uncrustify -c my.cfg --prefix=out -F files.txt\n"
+ "\n"
+ "Note: Use comments containing ' *INDENT-OFF*' and ' *INDENT-ON*' to disable\n"
+ " processing of parts of the source file (these can be overridden with\n"
+ " enable_processing_cmt and disable_processing_cmt).\n"
+ "\n"
+ ,
+ path_basename(argv0));
+ tease();
+} // usage
+
+
+static void version_exit(void)
+{
+ printf("%s\n", UNCRUSTIFY_VERSION);
+ exit(EX_OK);
+}
+
+
+NODISCARD static int redir_stdout(const char *output_file)
+{
+ FILE *my_stdout = stdout; // Reopen stdout
+
+ if (output_file != nullptr)
+ {
+ my_stdout = freopen(output_file, "wb", stdout);
+
+ if (my_stdout == nullptr)
+ {
+ LOG_FMT(LERR, "Unable to open %s for write: %s (%d)\n",
+ output_file, strerror(errno), errno);
+ cpd.error_count++;
+ usage_error();
+ return(EX_IOERR);
+ }
+ LOG_FMT(LNOTE, "Redirecting output to %s\n", output_file);
+ }
+ return(EXIT_SUCCESS);
+}
+
+// Currently, the crash handler is only supported while building under MSVC
+#if defined (WIN32) && defined (_MSC_VER)
+
+
+void setup_crash_handling()
+{
+ // prevent crash popup. uncrustify is a batch processing tool and a popup is unacceptable.
+ ::SetErrorMode(::GetErrorMode() | SEM_NOGPFAULTERRORBOX);
+
+ struct local
+ {
+ static LONG WINAPI crash_filter(_In_ struct _EXCEPTION_POINTERS *exceptionInfo)
+ {
+ __try
+ {
+ LOG_FMT(LERR, "crash_filter: exception 0x%08X at [%d:%d] (ip=%p)",
+ exceptionInfo->ExceptionRecord->ExceptionCode,
+ cpd.line_number, cpd.column,
+ exceptionInfo->ExceptionRecord->ExceptionAddress);
+ log_func_stack(LERR, " [CallStack:", "]\n", 0);
+
+ // treat an exception the same as a parse failure. exceptions can result from parse failures where we
+ // do not have specific handling (null-checks for particular parse paths etc.) and callers generally
+ // won't care about the difference. they just want to know it failed.
+ exit(EXIT_FAILURE);
+ }
+ __except (EXCEPTION_EXECUTE_HANDLER)
+ {
+ // have to be careful of crashes in crash handling code
+ }
+
+ // safety - note that this will not flush like we need, but at least will get the right return code
+ ::ExitProcess(EXIT_FAILURE);
+ }
+ };
+
+ // route all crashes through our own handler
+ ::SetUnhandledExceptionFilter(local::crash_filter);
+}
+
+#else
+
+
+void setup_crash_handling()
+{
+ // TODO: unixes
+}
+
+#endif
+
+
+int main(int argc, char *argv[])
+{
+ // initialize the global data
+ cpd.unc_off_used = false;
+
+ setup_crash_handling();
+
+ // Build options map
+ register_options();
+
+ // If ran without options show the usage info and exit */
+ if (argc == 1)
+ {
+ usage(argv[0]);
+ return(EXIT_SUCCESS);
+ }
+#ifdef DEBUG
+ // make sure we have 'name' not too big
+ const int max_name_length = 19;
+
+ // maxLengthOfTheName must be consider at the format line at the file
+ // output.cpp, line 427: fprintf(pfile, "# Line Tag Parent...
+ // and 430: ... fprintf(pfile, "%s# %3zu>%19.19s[%19.19s] ...
+ // here xx xx xx xx
+ for (size_t token = 0; token < ARRAY_SIZE(token_names); token++)
+ {
+ const size_t name_length = strlen(token_names[token]);
+
+ if (name_length > max_name_length)
+ {
+ fprintf(stderr, "%s(%d): The token name '%s' is too long (%d)\n",
+ __func__, __LINE__, token_names[token], static_cast<int>(name_length));
+ fprintf(stderr, "%s(%d): the max token name length is %d\n",
+ __func__, __LINE__, max_name_length);
+ log_flush(true);
+ exit(EX_SOFTWARE);
+ }
+ }
+
+ // make sure we have token_names.h in sync with token_enum.h
+ assert(ARRAY_SIZE(token_names) == CT_TOKEN_COUNT_);
+#endif // DEBUG
+
+ Args arg(argc, argv);
+
+ if ( arg.Present("--version")
+ || arg.Present("-v"))
+ {
+ version_exit();
+ }
+
+ if ( arg.Present("--help")
+ || arg.Present("-h")
+ || arg.Present("--usage")
+ || arg.Present("-?"))
+ {
+ usage(argv[0]);
+ return(EXIT_SUCCESS);
+ }
+
+ if (arg.Present("--count-options"))
+ {
+ tease();
+ return(EXIT_SUCCESS);
+ }
+
+ if (arg.Present("--show-config"))
+ {
+ save_option_file(stdout, true);
+ return(EXIT_SUCCESS);
+ }
+ cpd.do_check = arg.Present("--check");
+ cpd.if_changed = arg.Present("--if-changed");
+
+#ifdef WIN32
+ // tell Windows not to change what I write to stdout
+ UNUSED(_setmode(_fileno(stdout), _O_BINARY));
+#endif
+
+ // Init logging
+ log_init(cpd.do_check ? stdout : stderr);
+ log_mask_t mask;
+
+ if (arg.Present("-q"))
+ {
+ logmask_from_string("", mask);
+ log_set_mask(mask);
+ }
+ const char *p_arg;
+
+ if ( ((p_arg = arg.Param("-L")) != nullptr)
+ || ((p_arg = arg.Param("--log")) != nullptr))
+ {
+ logmask_from_string(p_arg, mask);
+ log_set_mask(mask);
+ }
+ cpd.frag = arg.Present("--frag");
+
+ if (arg.Present("--decode"))
+ {
+ size_t idx = 1;
+
+ while ((p_arg = arg.Unused(idx)) != nullptr)
+ {
+ log_pcf_flags(LSYS, static_cast<pcf_flag_e>(strtoul(p_arg, nullptr, 16)));
+ }
+ return(EXIT_SUCCESS);
+ }
+ // Get the config file name
+ string cfg_file;
+
+ if ( ((p_arg = arg.Param("--config")) != nullptr)
+ || ((p_arg = arg.Param("-c")) != nullptr))
+ {
+ cfg_file = p_arg;
+ }
+ else if (!unc_getenv("UNCRUSTIFY_CONFIG", cfg_file))
+ {
+ // Try to find a config file at an alternate location
+ string home;
+
+ if (unc_homedir(home))
+ {
+ struct stat tmp_stat = {};
+
+ const auto path0 = home + "/.uncrustify.cfg";
+ const auto path1 = home + "/uncrustify.cfg";
+
+ if (stat(path0.c_str(), &tmp_stat) == 0)
+ {
+ cfg_file = path0;
+ }
+ else if (stat(path1.c_str(), &tmp_stat) == 0)
+ {
+ cfg_file = path1;
+ }
+ }
+ }
+ // Get the parsed file name
+ const char *parsed_file;
+
+ if ( ((parsed_file = arg.Param("--parsed")) != nullptr)
+ || ((parsed_file = arg.Param("-p")) != nullptr))
+ {
+ if ( parsed_file[0] == '-'
+ && !parsed_file[1])
+ {
+ LOG_FMT(LNOTE, "Will print parsed data to stdout\n");
+ }
+ else
+ {
+ LOG_FMT(LNOTE, "Will export parsed data to: %s\n", parsed_file);
+ }
+ }
+ // Get the dump file name prefix
+ const char *dump_file;
+
+ if ( ((dump_file = arg.Param("--dump-steps")) != nullptr)
+ || ((dump_file = arg.Param("-ds")) != nullptr))
+ {
+ LOG_FMT(LNOTE, "Will export formatting steps data to '%s_nnn.log' files\n", dump_file);
+ }
+
+ // Enable log severities
+ if ( arg.Present("-s")
+ || arg.Present("--show"))
+ {
+ log_show_sev(true);
+ }
+ // Load type files
+ size_t idx = 0;
+
+ while ((p_arg = arg.Params("-t", idx)) != nullptr)
+ {
+ load_keyword_file(p_arg);
+ }
+ // add types
+ idx = 0;
+
+ while ((p_arg = arg.Params("--type", idx)) != nullptr)
+ {
+ add_keyword(p_arg, CT_TYPE);
+ }
+ bool arg_l_is_set = false;
+
+ // Check for a language override
+ if ((p_arg = arg.Param("-l")) != nullptr)
+ {
+ arg_l_is_set = true;
+ cpd.lang_flags = language_flags_from_name(p_arg);
+
+ if (cpd.lang_flags == 0)
+ {
+ LOG_FMT(LWARN, "Ignoring unknown language: %s\n", p_arg);
+ }
+ else
+ {
+ cpd.lang_forced = true;
+ }
+ }
+ // Get the source file name
+ const char *source_file;
+
+ if ( ((source_file = arg.Param("--file")) == nullptr)
+ && ((source_file = arg.Param("-f")) == nullptr))
+ {
+ // not using a single file, source_file is nullptr
+ }
+ // Get a source file list
+ const char *source_list;
+
+ if ( ((source_list = arg.Param("--files")) == nullptr)
+ && ((source_list = arg.Param("-F")) == nullptr))
+ {
+ // not using a file list, source_list is nullptr
+ }
+ const char *prefix = arg.Param("--prefix");
+ const char *suffix = arg.Param("--suffix");
+ const char *assume = arg.Param("--assume");
+
+ bool no_backup = arg.Present("--no-backup");
+ bool replace = arg.Present("--replace");
+ bool keep_mtime = arg.Present("--mtime");
+ bool update_config = arg.Present("--update-config");
+ bool update_config_wd = arg.Present("--update-config-with-doc");
+ bool detect = arg.Present("--detect");
+ bool pfile_csv = arg.Present("--debug-csv-format");
+
+ std::string parsed_file_csv;
+
+ if (pfile_csv)
+ {
+ if ( parsed_file == nullptr
+ || ( parsed_file[0] == '-'
+ && !parsed_file[1]))
+ {
+ fprintf(stderr,
+ "FAIL: --debug-csv-format option must be used in combination with '-p FILE', where FILE\n"
+ " is not set to '-'\n");
+ log_flush(true);
+ exit(EX_CONFIG);
+ }
+ else if (!ends_with(parsed_file, ".csv", false))
+ {
+ parsed_file_csv = parsed_file;
+
+ // user-specified parsed filename does not end in a ".csv" extension, so add it
+ parsed_file_csv += ".csv";
+ parsed_file = parsed_file_csv.c_str();
+ }
+ }
+ // Grab the output override
+ const char *output_file = arg.Param("-o");
+
+ // for debugging tracking
+ cpd.html_file = arg.Param("--tracking_space");
+
+ LOG_FMT(LDATA, "%s\n", UNCRUSTIFY_VERSION);
+ LOG_FMT(LDATA, "config_file = %s\n", cfg_file.c_str());
+ LOG_FMT(LDATA, "output_file = %s\n", (output_file != NULL) ? output_file : "null");
+ LOG_FMT(LDATA, "source_file = %s\n", (source_file != NULL) ? source_file : "null");
+ LOG_FMT(LDATA, "source_list = %s\n", (source_list != NULL) ? source_list : "null");
+ LOG_FMT(LDATA, "tracking = %s\n", (cpd.html_file != NULL) ? cpd.html_file : "null");
+ LOG_FMT(LDATA, "prefix = %s\n", (prefix != NULL) ? prefix : "null");
+ LOG_FMT(LDATA, "suffix = %s\n", (suffix != NULL) ? suffix : "null");
+ LOG_FMT(LDATA, "assume = %s\n", (assume != NULL) ? assume : "null");
+ LOG_FMT(LDATA, "replace = %s\n", replace ? "true" : "false");
+ LOG_FMT(LDATA, "no_backup = %s\n", no_backup ? "true" : "false");
+ LOG_FMT(LDATA, "detect = %s\n", detect ? "true" : "false");
+ LOG_FMT(LDATA, "check = %s\n", cpd.do_check ? "true" : "false");
+ LOG_FMT(LDATA, "if_changed = %s\n", cpd.if_changed ? "true" : "false");
+
+ if ( cpd.do_check
+ && ( output_file
+ || replace
+ || no_backup
+ || keep_mtime
+ || update_config
+ || update_config_wd
+ || detect
+ || prefix
+ || suffix
+ || cpd.if_changed))
+ {
+ usage_error("Cannot use --check with output options.");
+ return(EX_NOUSER);
+ }
+
+ if (!cpd.do_check)
+ {
+ if (replace)
+ {
+ if ( prefix != nullptr
+ || suffix != nullptr)
+ {
+ usage_error("Cannot use --replace with --prefix or --suffix");
+ return(EX_NOINPUT);
+ }
+
+ if ( source_file != nullptr
+ || output_file != nullptr)
+ {
+ usage_error("Cannot use --replace with -f or -o");
+ return(EX_NOINPUT);
+ }
+ }
+ else if (!no_backup)
+ {
+ if ( prefix == nullptr
+ && suffix == nullptr)
+ {
+ suffix = ".uncrustify";
+ }
+ }
+ }
+
+ /*
+ * Try to load the config file, if available.
+ * It is optional for "--universalindent", "--parsed" and "--detect", but
+ * required for everything else.
+ */
+ if ( !cfg_file.empty()
+ && cfg_file[0] != '-')
+ {
+ cpd.filename = cfg_file;
+
+ if (!load_option_file(cpd.filename.c_str()))
+ {
+ usage_error("Unable to load the config file");
+ return(EX_IOERR);
+ }
+ // test if all options are compatible to each other
+ log_rule_B("nl_max");
+
+ if (options::nl_max() > 0)
+ {
+ // test if one/some option(s) is/are not too big for that
+ log_rule_B("nl_func_var_def_blk");
+
+ if (options::nl_func_var_def_blk() >= options::nl_max())
+ {
+ fprintf(stderr, "The option 'nl_func_var_def_blk' is too big against the option 'nl_max'\n");
+ log_flush(true);
+ exit(EX_CONFIG);
+ }
+ }
+ }
+ // Set config options using command line arguments.
+ idx = 0;
+
+ const size_t max_args_length = 256;
+
+ while ((p_arg = arg.Params("--set", idx)) != nullptr)
+ {
+ size_t argLength = strlen(p_arg);
+
+ if (argLength > max_args_length)
+ {
+ fprintf(stderr, "The buffer is to short for the set argument '%s'\n", p_arg);
+ log_flush(true);
+ exit(EX_SOFTWARE);
+ }
+ char buffer[max_args_length];
+ strcpy(buffer, p_arg);
+
+ // Tokenize and extract key and value
+ const char *token = strtok(buffer, "=");
+ const char *option = token;
+
+ token = strtok(nullptr, "=");
+ const char *value = token;
+
+ if ( option != nullptr
+ && value != nullptr
+ && strtok(nullptr, "=") == nullptr) // end of argument reached
+ {
+ if (auto *opt = uncrustify::find_option(option))
+ {
+ if (!opt->read(value))
+ {
+ return(EXIT_FAILURE);
+ }
+ }
+ else
+ {
+ fprintf(stderr, "Unknown option '%s' to override.\n", buffer);
+ log_flush(true);
+ return(EXIT_FAILURE);
+ }
+ }
+ else
+ {
+ // TODO: consider using defines like EX_USAGE from sysexits.h
+ usage_error("Error while parsing --set");
+ return(EX_USAGE);
+ }
+ }
+
+ if (arg.Present("--universalindent"))
+ {
+ FILE *pfile = stdout;
+
+ if (output_file != nullptr)
+ {
+ pfile = fopen(output_file, "w");
+
+ if (pfile == nullptr)
+ {
+ fprintf(stderr, "Unable to open %s for write: %s (%d)\n",
+ output_file, strerror(errno), errno);
+ log_flush(true);
+ return(EXIT_FAILURE);
+ }
+ }
+ print_universal_indent_cfg(pfile);
+ fclose(pfile);
+
+ return(EXIT_SUCCESS);
+ }
+ // Set the number of second(s) before terminating formatting the current file.
+#ifdef WIN32
+ if (options::debug_timeout() > 0)
+ {
+ fprintf(stderr, "The option 'debug_timeout' is not available under Windows.\n");
+ log_flush(true);
+ exit(EX_SOFTWARE);
+ }
+#else
+ if (options::debug_timeout() > 0)
+ {
+ alarm(options::debug_timeout());
+ }
+#endif // ifdef WIN32
+
+ if (detect)
+ {
+ file_mem fm;
+
+ if ( source_file == nullptr
+ || source_list != nullptr)
+ {
+ fprintf(stderr, "The --detect option requires a single input file\n");
+ log_flush(true);
+ return(EXIT_FAILURE);
+ }
+
+ // Do some simple language detection based on the filename extension
+ if ( !cpd.lang_forced
+ || cpd.lang_flags == 0)
+ {
+ cpd.lang_flags = language_flags_from_filename(source_file);
+ }
+
+ // Try to read in the source file
+ if (load_mem_file(source_file, fm) < 0)
+ {
+ LOG_FMT(LERR, "Failed to load (%s)\n", source_file);
+ cpd.error_count++;
+ return(EXIT_FAILURE);
+ }
+ uncrustify_start(fm.data);
+ detect_options();
+ uncrustify_end();
+
+ if (auto error = redir_stdout(output_file))
+ {
+ return(error);
+ }
+ save_option_file(stdout, update_config_wd);
+ return(EXIT_SUCCESS);
+ }
+
+ if ( update_config
+ || update_config_wd)
+ {
+ // TODO: complain if file-processing related options are present
+ if (auto error = redir_stdout(output_file))
+ {
+ return(error);
+ }
+ save_option_file(stdout, update_config_wd);
+ return(EXIT_SUCCESS);
+ }
+
+ /*
+ * Everything beyond this point aside from dumping the parse tree is silly
+ * without a config file, so complain and bail if we don't have one.
+ */
+ if ( cfg_file.empty()
+ && !parsed_file)
+ {
+ usage_error("Specify the config file with '-c file' or set UNCRUSTIFY_CONFIG");
+ return(EX_IOERR);
+ }
+ // Done parsing args
+
+ // Check for unused args (ignore them)
+ idx = 1;
+ p_arg = arg.Unused(idx);
+
+ // Check args - for multifile options
+ if ( source_list != nullptr
+ || p_arg != nullptr)
+ {
+ if (source_file != nullptr)
+ {
+ usage_error("Cannot specify both the single file option and a multi-file option.");
+ return(EX_NOUSER);
+ }
+
+ if (output_file != nullptr)
+ {
+ usage_error("Cannot specify -o with a multi-file option.");
+ return(EX_NOHOST);
+ }
+ }
+ // This relies on cpd.filename being the config file name
+ load_header_files();
+
+ if ( cpd.do_check
+ || cpd.if_changed)
+ {
+ cpd.bout = new deque<UINT8>();
+ }
+ idx = 1;
+
+ if ( source_file == nullptr
+ && source_list == nullptr
+ && arg.Unused(idx) == nullptr)
+ {
+ if (!arg_l_is_set) // Issue #3064
+ {
+ if (assume == nullptr)
+ {
+ LOG_FMT(LERR, "If reading from stdin, you should specify the language using -l\n");
+ LOG_FMT(LERR, "or specify a filename using --assume for automatic language detection.\n");
+ return(EXIT_FAILURE);
+ }
+ }
+
+ if (cpd.lang_flags == 0)
+ {
+ if (assume != nullptr)
+ {
+ cpd.lang_flags = language_flags_from_filename(assume);
+ }
+ else
+ {
+ cpd.lang_flags = LANG_C;
+ }
+ }
+
+ if (!cpd.do_check)
+ {
+ if (auto error = redir_stdout(output_file))
+ {
+ return(error);
+ }
+ }
+ file_mem fm;
+
+ if (!read_stdin(fm))
+ {
+ LOG_FMT(LERR, "Failed to read stdin\n");
+ cpd.error_count++;
+ return(100);
+ }
+ cpd.filename = "stdin";
+
+ // Done reading from stdin
+ LOG_FMT(LSYS, "%s(%d): Parsing: %zu bytes (%zu chars) from stdin as language %s\n",
+ __func__, __LINE__, fm.raw.size(), fm.data.size(),
+ language_name_from_flags(cpd.lang_flags));
+
+ // Issue #3427
+ init_keywords_for_language();
+ uncrustify_file(fm, stdout, parsed_file, dump_file);
+ }
+ else if (source_file != nullptr)
+ {
+ // Doing a single file
+ do_source_file(source_file, output_file, parsed_file, dump_file, no_backup, keep_mtime);
+ }
+ else
+ {
+ if (parsed_file != nullptr) // Issue #930
+ {
+ fprintf(stderr, "FAIL: -p option must be used with the -f option\n");
+ log_flush(true);
+ exit(EX_CONFIG);
+ }
+
+ if (dump_file != nullptr)
+ {
+ fprintf(stderr, "FAIL: -ds/--dump-steps option must be used with the -f option\n");
+ log_flush(true);
+ exit(EX_CONFIG);
+ }
+
+ // Doing multiple files, TODO: multiple threads for parallel processing
+ if (prefix != nullptr)
+ {
+ LOG_FMT(LSYS, "Output prefix: %s/\n", prefix);
+ }
+
+ if (suffix != nullptr)
+ {
+ LOG_FMT(LSYS, "Output suffix: %s\n", suffix);
+ }
+ // Do the files on the command line first
+ idx = 1;
+
+ while ((p_arg = arg.Unused(idx)) != nullptr)
+ {
+ char outbuf[1024];
+ do_source_file(p_arg,
+ make_output_filename(outbuf, sizeof(outbuf), p_arg, prefix, suffix),
+ nullptr, nullptr, no_backup, keep_mtime);
+ }
+
+ if (source_list != nullptr)
+ {
+ process_source_list(source_list, prefix, suffix, no_backup, keep_mtime);
+ }
+ }
+ clear_keyword_file();
+
+ if (cpd.error_count != 0)
+ {
+ return(EXIT_FAILURE);
+ }
+
+ if ( cpd.do_check
+ && cpd.check_fail_cnt != 0)
+ {
+ return(EXIT_FAILURE);
+ }
+ return(EXIT_SUCCESS);
+} // main
+
+
+static void process_source_list(const char *source_list,
+ const char *prefix, const char *suffix,
+ bool no_backup, bool keep_mtime)
+{
+ bool from_stdin = strcmp(source_list, "-") == 0;
+ FILE *p_file = from_stdin ? stdin : fopen(source_list, "r");
+
+ if (p_file == nullptr)
+ {
+ LOG_FMT(LERR, "%s: fopen(%s) failed: %s (%d)\n",
+ __func__, source_list, strerror(errno), errno);
+ cpd.error_count++;
+ return;
+ }
+ char linebuf[256];
+ int line = 0;
+
+ while (fgets(linebuf, sizeof(linebuf), p_file) != nullptr)
+ {
+ line++;
+ char *fname = linebuf;
+ int len = strlen(fname);
+
+ while ( len > 0
+ && unc_isspace(*fname))
+ {
+ fname++;
+ len--;
+ }
+
+ while ( len > 0
+ && unc_isspace(fname[len - 1]))
+ {
+ len--;
+ }
+ fname[len] = 0;
+
+ while (len-- > 0)
+ {
+ if (fname[len] == '\\')
+ {
+ fname[len] = '/';
+ }
+ }
+ LOG_FMT(LFILELIST, "%3d file to uncrustify: %s\n", line, fname);
+
+ if (fname[0] != '#')
+ {
+ char outbuf[1024];
+ do_source_file(fname,
+ make_output_filename(outbuf, sizeof(outbuf), fname, prefix, suffix),
+ nullptr, nullptr, no_backup, keep_mtime);
+ }
+ }
+
+ if (!from_stdin)
+ {
+ fclose(p_file);
+ }
+} // process_source_list
+
+
+static bool read_stdin(file_mem &fm)
+{
+ deque<UINT8> dq;
+ char buf[4096];
+
+ fm.raw.clear();
+ fm.data.clear();
+ fm.enc = char_encoding_e::e_ASCII;
+
+ // Re-open stdin in binary mode to preserve newline characters
+#ifdef WIN32
+ _setmode(_fileno(stdin), _O_BINARY);
+#endif
+
+ while (!feof(stdin))
+ {
+ int len = fread(buf, 1, sizeof(buf), stdin);
+
+ for (int idx = 0; idx < len; idx++)
+ {
+ dq.push_back(buf[idx]);
+ }
+ }
+ // Copy the raw data from the deque to the vector
+ fm.raw.insert(fm.raw.end(), dq.begin(), dq.end());
+ return(decode_unicode(fm.raw, fm.data, fm.enc, fm.bom));
+}
+
+
+static void make_folders(const string &filename)
+{
+ int last_idx = 0;
+ char outname[4096];
+
+ snprintf(outname, sizeof(outname), "%s", filename.c_str());
+
+ for (int idx = 0; outname[idx] != 0; idx++)
+ {
+ if ( (outname[idx] == '/')
+ || (outname[idx] == '\\'))
+ {
+ outname[idx] = PATH_SEP;
+ }
+
+ // search until end of subpath is found
+ if ( idx > last_idx
+ && (outname[idx] == PATH_SEP))
+ {
+ outname[idx] = 0; // mark the end of the subpath
+
+ // create subfolder if it is not the start symbol of a path
+ // and not a Windows drive letter
+ if ( (strcmp(&outname[last_idx], ".") != 0)
+ && (strcmp(&outname[last_idx], "..") != 0)
+ && (!( last_idx == 0
+ && idx == 2
+ && outname[1] == ':')))
+ {
+ int status; // Coverity CID 75999
+ status = mkdir(outname, 0750);
+
+ if ( status != 0
+ && errno != EEXIST)
+ {
+ LOG_FMT(LERR, "%s: Unable to create %s: %s (%d)\n",
+ __func__, outname, strerror(errno), errno);
+ cpd.error_count++;
+ return;
+ }
+ }
+ outname[idx] = PATH_SEP; // reconstruct full path to search for next subpath
+ }
+
+ if (outname[idx] == PATH_SEP)
+ {
+ last_idx = idx + 1;
+ }
+ }
+} // make_folders
+
+
+static int load_mem_file(const char *filename, file_mem &fm)
+{
+ int retval = -1;
+ struct stat my_stat;
+ FILE *p_file;
+
+ fm.raw.clear();
+ fm.data.clear();
+ fm.enc = char_encoding_e::e_ASCII;
+
+ // Grab the stat info for the file, return if it cannot be read
+ if (stat(filename, &my_stat) < 0)
+ {
+ return(-1);
+ }
+#ifdef HAVE_UTIME_H
+ // Save off modification time (mtime)
+ fm.utb.modtime = my_stat.st_mtime;
+#endif
+
+ // Try to read in the file
+ p_file = fopen(filename, "rb");
+
+ if (p_file == nullptr)
+ {
+ return(-1);
+ }
+ fm.raw.resize(my_stat.st_size);
+
+ if (my_stat.st_size == 0) // check if file is empty
+ {
+ retval = 0;
+ fm.bom = false;
+ fm.enc = char_encoding_e::e_ASCII;
+ fm.data.clear();
+ }
+ else
+ {
+ // read the raw data
+ if (fread(&fm.raw[0], fm.raw.size(), 1, p_file) != 1)
+ {
+ LOG_FMT(LERR, "%s: fread(%s) failed: %s (%d)\n",
+ __func__, filename, strerror(errno), errno);
+ cpd.error_count++;
+ }
+ else if (!decode_unicode(fm.raw, fm.data, fm.enc, fm.bom))
+ {
+ LOG_FMT(LERR, "%s: failed to decode the file '%s'\n", __func__, filename);
+ cpd.error_count++;
+ }
+ else
+ {
+ LOG_FMT(LNOTE, "%s: '%s' encoding looks like %s (%d)\n", __func__, filename,
+ fm.enc == char_encoding_e::e_ASCII ? "ASCII" :
+ fm.enc == char_encoding_e::e_BYTE ? "BYTES" :
+ fm.enc == char_encoding_e::e_UTF8 ? "UTF-8" :
+ fm.enc == char_encoding_e::e_UTF16_LE ? "UTF-16-LE" :
+ fm.enc == char_encoding_e::e_UTF16_BE ? "UTF-16-BE" : "Error",
+ (int)fm.enc);
+ retval = 0;
+ }
+ }
+ fclose(p_file);
+ return(retval);
+} // load_mem_file
+
+
+static int load_mem_file_config(const std::string &filename, file_mem &fm)
+{
+ int retval;
+ char buf[1024];
+
+ snprintf(buf, sizeof(buf), "%.*s%s",
+ path_dirname_len(cpd.filename.c_str()), cpd.filename.c_str(), filename.c_str());
+
+ retval = load_mem_file(buf, fm);
+
+ if (retval < 0)
+ {
+ retval = load_mem_file(filename.c_str(), fm);
+
+ if (retval < 0)
+ {
+ LOG_FMT(LERR, "Failed to load (%s) or (%s)\n", buf, filename.c_str());
+ cpd.error_count++;
+ }
+ }
+ return(retval);
+}
+
+
+int load_header_files()
+{
+ int retval = 0;
+
+ log_rule_B("cmt_insert_file_header");
+
+ if (!options::cmt_insert_file_header().empty())
+ {
+ // try to load the file referred to by the options string
+ retval |= load_mem_file_config(options::cmt_insert_file_header(),
+ cpd.file_hdr);
+ }
+ log_rule_B("cmt_insert_file_footer");
+
+ if (!options::cmt_insert_file_footer().empty())
+ {
+ retval |= load_mem_file_config(options::cmt_insert_file_footer(),
+ cpd.file_ftr);
+ }
+ log_rule_B("cmt_insert_func_header");
+
+ if (!options::cmt_insert_func_header().empty())
+ {
+ retval |= load_mem_file_config(options::cmt_insert_func_header(),
+ cpd.func_hdr);
+ }
+ log_rule_B("cmt_insert_class_header");
+
+ if (!options::cmt_insert_class_header().empty())
+ {
+ retval |= load_mem_file_config(options::cmt_insert_class_header(),
+ cpd.class_hdr);
+ }
+ log_rule_B("cmt_insert_oc_msg_header");
+
+ if (!options::cmt_insert_oc_msg_header().empty())
+ {
+ retval |= load_mem_file_config(options::cmt_insert_oc_msg_header(),
+ cpd.oc_msg_hdr);
+ }
+ log_rule_B("cmt_reflow_fold_regex_file");
+
+ if (!options::cmt_reflow_fold_regex_file().empty())
+ {
+ retval |= load_mem_file_config(options::cmt_reflow_fold_regex_file(),
+ cpd.reflow_fold_regex);
+ }
+ return(retval);
+} // load_header_files
+
+
+static const char *make_output_filename(char *buf, size_t buf_size,
+ const char *filename,
+ const char *prefix,
+ const char *suffix)
+{
+ int len = 0;
+
+ if (prefix != nullptr)
+ {
+ len = snprintf(buf, buf_size, "%s/", prefix);
+ }
+ snprintf(&buf[len], buf_size - len, "%s%s", filename,
+ (suffix != nullptr) ? suffix : "");
+
+ return(buf);
+}
+
+
+static bool file_content_matches(const string &filename1, const string &filename2)
+{
+ struct stat st1, st2;
+ int fd1, fd2;
+
+ // Check the file sizes first
+ if ( (stat(filename1.c_str(), &st1) != 0)
+ || (stat(filename2.c_str(), &st2) != 0)
+ || st1.st_size != st2.st_size)
+ {
+ return(false);
+ }
+
+ if ((fd1 = open(filename1.c_str(), O_RDONLY)) < 0)
+ {
+ return(false);
+ }
+
+ if ((fd2 = open(filename2.c_str(), O_RDONLY)) < 0)
+ {
+ close(fd1);
+ return(false);
+ }
+ int len1 = 0;
+ int len2 = 0;
+ UINT8 buf1[1024];
+ UINT8 buf2[1024];
+
+ memset(buf1, 0, sizeof(buf1));
+ memset(buf2, 0, sizeof(buf2));
+
+ while ( len1 >= 0
+ && len2 >= 0)
+ {
+ if (len1 == 0)
+ {
+ len1 = read(fd1, buf1, sizeof(buf1));
+ }
+
+ if (len2 == 0)
+ {
+ len2 = read(fd2, buf2, sizeof(buf2));
+ }
+
+ if ( len1 <= 0
+ || len2 <= 0)
+ {
+ break; // reached end of either files
+ // TODO: what is if one file is longer than the other, do we miss that ?
+ }
+ int minlen = (len1 < len2) ? len1 : len2;
+
+ if (memcmp(buf1, buf2, minlen) != 0)
+ {
+ break; // found a difference
+ }
+ len1 -= minlen;
+ len2 -= minlen;
+ }
+ close(fd1);
+ close(fd2);
+
+ return( len1 == 0
+ && len2 == 0);
+} // file_content_matches
+
+
+static string fix_filename(const char *filename)
+{
+ char *tmp_file;
+ string rv;
+
+ // Create 'outfile.uncrustify'
+ tmp_file = new char[strlen(filename) + 16 + 1]; // + 1 for '// + 1 for '/* + 1 for '\0' */' '
+
+ if (tmp_file != nullptr)
+ {
+ sprintf(tmp_file, "%s.uncrustify", filename);
+ }
+ rv = tmp_file;
+ delete[] tmp_file;
+ return(rv);
+}
+
+
+static bool bout_content_matches(const file_mem &fm, bool report_status)
+{
+ bool is_same = true;
+
+ // compare the old data vs the new data
+ if (cpd.bout->size() != fm.raw.size())
+ {
+ if (report_status)
+ {
+ fprintf(stderr, "FAIL: %s (File size changed from %u to %u)\n",
+ cpd.filename.c_str(), static_cast<int>(fm.raw.size()),
+ static_cast<int>(cpd.bout->size()));
+ log_flush(true);
+ }
+ is_same = false;
+ }
+ else
+ {
+ for (int idx = 0; idx < static_cast<int>(fm.raw.size()); idx++)
+ {
+ if (fm.raw[idx] != (*cpd.bout)[idx])
+ {
+ if (report_status)
+ {
+ fprintf(stderr, "FAIL: %s (Difference at byte %u)\n",
+ cpd.filename.c_str(), idx);
+ log_flush(true);
+ }
+ is_same = false;
+ break;
+ }
+ }
+ }
+
+ if ( is_same
+ && report_status)
+ {
+ fprintf(stdout, "PASS: %s (%u bytes)\n",
+ cpd.filename.c_str(), static_cast<int>(fm.raw.size()));
+ }
+ return(is_same);
+} // bout_content_matches
+
+
+static void do_source_file(const char *filename_in,
+ const char *filename_out,
+ const char *parsed_file,
+ const char *dump_file,
+ bool no_backup,
+ bool keep_mtime)
+{
+ FILE *pfout = nullptr;
+ bool did_open = false;
+ bool need_backup = false;
+ file_mem fm;
+ string filename_tmp;
+
+ // Do some simple language detection based on the filename extension
+ if ( !cpd.lang_forced
+ || cpd.lang_flags == 0)
+ {
+ cpd.lang_flags = language_flags_from_filename(filename_in);
+ }
+
+ // Try to read in the source file
+ if (load_mem_file(filename_in, fm) < 0)
+ {
+ LOG_FMT(LERR, "Failed to load (%s)\n", filename_in);
+ cpd.error_count++;
+ return;
+ }
+ LOG_FMT(LSYS, "%s(%d): Parsing: %s as language %s\n",
+ __func__, __LINE__, filename_in, language_name_from_flags(cpd.lang_flags));
+
+ // check keyword sort
+ assert(keywords_are_sorted());
+
+ // Issue #3353
+ init_keywords_for_language();
+
+ cpd.filename = filename_in;
+
+ /*
+ * If we're only going to write on an actual change, then build the output
+ * buffer now and if there were changes, run it through the normal file
+ * write path.
+ *
+ * Future: many code paths could be simplified if 'bout' were always used and not
+ * optionally selected in just for do_check and if_changed.
+ */
+ if (cpd.if_changed)
+ {
+ /*
+ * Cleanup is deferred because we need 'bout' preserved long enough
+ * to write it to a file (if it changed).
+ */
+ uncrustify_file(fm, nullptr, parsed_file, dump_file, true);
+
+ if (bout_content_matches(fm, false))
+ {
+ uncrustify_end();
+ return;
+ }
+ }
+
+ if (!cpd.do_check)
+ {
+ if (filename_out == nullptr)
+ {
+ pfout = stdout;
+ }
+ else
+ {
+ // If the out file is the same as the in file, then use a temp file
+ filename_tmp = filename_out;
+
+ if (strcmp(filename_in, filename_out) == 0)
+ {
+ // Create 'outfile.uncrustify'
+ filename_tmp = fix_filename(filename_out);
+
+ if (!no_backup)
+ {
+ if (backup_copy_file(filename_in, fm.raw) != EX_OK)
+ {
+ LOG_FMT(LERR, "%s: Failed to create backup file for %s\n",
+ __func__, filename_in);
+ cpd.error_count++;
+ return;
+ }
+ need_backup = true;
+ }
+ }
+ make_folders(filename_tmp);
+
+ pfout = fopen(filename_tmp.c_str(), "wb");
+
+ if (pfout == nullptr)
+ {
+ LOG_FMT(LERR, "%s: Unable to create %s: %s (%d)\n",
+ __func__, filename_tmp.c_str(), strerror(errno), errno);
+ cpd.error_count++;
+ return;
+ }
+ did_open = true;
+ //LOG_FMT(LSYS, "Output file %s\n", filename_out);
+ }
+ }
+
+ if (cpd.if_changed)
+ {
+ for (deque<UINT8>::const_iterator i = cpd.bout->begin(), end = cpd.bout->end(); i != end; ++i)
+ {
+ fputc(*i, pfout);
+ }
+
+ uncrustify_end();
+ }
+ else
+ {
+ uncrustify_file(fm, pfout, parsed_file, dump_file);
+ }
+
+ if (did_open)
+ {
+ fclose(pfout);
+
+ if (need_backup)
+ {
+ backup_create_md5_file(filename_in);
+ }
+
+ if (filename_tmp != filename_out)
+ {
+ // We need to compare and then do a rename (but avoid redundant test when if_changed set)
+ if ( !cpd.if_changed
+ && file_content_matches(filename_tmp, filename_out))
+ {
+ // No change - remove tmp file
+ UNUSED(unlink(filename_tmp.c_str()));
+ }
+ else
+ {
+ // Change - rename filename_tmp to filename_out
+
+#ifdef WIN32
+ /*
+ * Atomic rename in windows can't go through stdio rename() func because underneath
+ * it calls MoveFileExW without MOVEFILE_REPLACE_EXISTING.
+ */
+ if (!MoveFileEx(filename_tmp.c_str(), filename_out, MOVEFILE_REPLACE_EXISTING | MOVEFILE_COPY_ALLOWED))
+#else
+ if (rename(filename_tmp.c_str(), filename_out) != 0)
+#endif
+ {
+ LOG_FMT(LERR, "%s: Unable to rename '%s' to '%s'\n",
+ __func__, filename_tmp.c_str(), filename_out);
+ cpd.error_count++;
+ }
+ }
+ }
+
+ if (keep_mtime)
+ {
+#ifdef HAVE_UTIME_H
+ // update mtime -- don't care if it fails
+ fm.utb.actime = time(nullptr);
+ UNUSED(utime(filename_in, &fm.utb));
+#endif
+ }
+ }
+} // do_source_file
+
+
+static void add_file_header()
+{
+ // don't add the file header if running as frag
+ if ( !Chunk::GetHead()->IsComment()
+ && !cpd.frag)
+ {
+ // TODO: detect the typical #ifndef FOO / #define FOO sequence
+ tokenize(cpd.file_hdr.data, Chunk::GetHead());
+ }
+}
+
+
+static void add_file_footer()
+{
+ Chunk *pc = Chunk::GetTail();
+
+ // Back up if the file ends with a newline
+ if ( pc->IsNotNullChunk()
+ && chunk_is_newline(pc))
+ {
+ pc = pc->GetPrev();
+ }
+
+ if ( pc->IsNotNullChunk()
+ && ( !pc->IsComment()
+ || !chunk_is_newline(pc->GetPrev())))
+ {
+ pc = Chunk::GetTail();
+
+ if (!chunk_is_newline(pc))
+ {
+ LOG_FMT(LSYS, "Adding a newline at the end of the file\n");
+ newline_add_after(pc);
+ }
+ tokenize(cpd.file_ftr.data, nullptr);
+ }
+}
+
+
+static void add_func_header(E_Token type, file_mem &fm)
+{
+ Chunk *pc;
+ Chunk *ref;
+ Chunk *tmp;
+ bool do_insert;
+
+ for (pc = Chunk::GetHead(); pc->IsNotNullChunk(); pc = pc->GetNextNcNnlNpp())
+ {
+ if (pc->type != type)
+ {
+ continue;
+ }
+ log_rule_B("cmt_insert_before_inlines");
+
+ if ( pc->flags.test(PCF_IN_CLASS)
+ && !options::cmt_insert_before_inlines())
+ {
+ continue;
+ }
+ // Check for one liners for classes. Declarations only. Walk down the chunks.
+ ref = pc;
+
+ if ( chunk_is_token(ref, CT_CLASS)
+ && get_chunk_parent_type(ref) == CT_NONE
+ && ref->GetNext())
+ {
+ ref = ref->GetNext();
+
+ if ( chunk_is_token(ref, CT_TYPE)
+ && get_chunk_parent_type(ref) == type
+ && ref->GetNext())
+ {
+ ref = ref->GetNext();
+
+ if ( chunk_is_token(ref, CT_SEMICOLON)
+ && ref->level == pc->level)
+ {
+ continue;
+ }
+ }
+ }
+ // Check for one liners for functions. There'll be a closing brace w/o any newlines. Walk down the chunks.
+ ref = pc;
+
+ if ( chunk_is_token(ref, CT_FUNC_DEF)
+ && get_chunk_parent_type(ref) == CT_NONE
+ && ref->GetNext())
+ {
+ int found_brace = 0; // Set if a close brace is found before a newline
+
+ while ( ref->type != CT_NEWLINE
+ && (ref = ref->GetNext())) // TODO: is the assignment of ref wanted here?, better move it to the loop
+ {
+ if (chunk_is_token(ref, CT_BRACE_CLOSE))
+ {
+ found_brace = 1;
+ break;
+ }
+ }
+
+ if (found_brace)
+ {
+ continue;
+ }
+ }
+ do_insert = false;
+
+ /*
+ * On a function proto or def. Back up to a close brace or semicolon on
+ * the same level
+ */
+ ref = pc;
+
+ while ( (ref = ref->GetPrev())
+ && ref->IsNotNullChunk())
+ {
+ // Bail if we change level or find an access specifier colon
+ if ( ref->level != pc->level
+ || chunk_is_token(ref, CT_ACCESS_COLON))
+ {
+ do_insert = true;
+ break;
+ }
+
+ // If we hit an angle close, back up to the angle open
+ if (chunk_is_token(ref, CT_ANGLE_CLOSE))
+ {
+ ref = ref->GetPrevType(CT_ANGLE_OPEN, ref->level, E_Scope::PREPROC);
+ continue;
+ }
+
+ // Bail if we hit a preprocessor and cmt_insert_before_preproc is false
+ if (ref->flags.test(PCF_IN_PREPROC))
+ {
+ tmp = ref->GetPrevType(CT_PREPROC, ref->level);
+
+ if ( tmp->IsNotNullChunk()
+ && get_chunk_parent_type(tmp) == CT_PP_IF)
+ {
+ tmp = tmp->GetPrevNnl();
+
+ log_rule_B("cmt_insert_before_preproc");
+
+ if ( tmp->IsComment()
+ && !options::cmt_insert_before_preproc())
+ {
+ break;
+ }
+ }
+ }
+
+ // Ignore 'right' comments
+ if ( ref->IsComment()
+ && chunk_is_newline(ref->GetPrev()))
+ {
+ break;
+ }
+
+ if ( ref->level == pc->level
+ && ( ref->flags.test(PCF_IN_PREPROC)
+ || chunk_is_token(ref, CT_SEMICOLON)
+ || chunk_is_token(ref, CT_BRACE_CLOSE)))
+ {
+ do_insert = true;
+ break;
+ }
+ }
+
+ if ( ref->IsNullChunk()
+ && !Chunk::GetHead()->IsComment()
+ && get_chunk_parent_type(Chunk::GetHead()) == type)
+ {
+ /**
+ * In addition to testing for preceding semicolons, closing braces, etc.,
+ * we need to also account for the possibility that the function declaration
+ * or definition occurs at the very beginning of the file
+ */
+ tokenize(fm.data, Chunk::GetHead());
+ }
+ else if (do_insert)
+ {
+ // Insert between after and ref
+ Chunk *after = ref->GetNextNcNnl();
+ tokenize(fm.data, after);
+
+ for (tmp = ref->GetNext(); tmp != after; tmp = tmp->GetNext())
+ {
+ tmp->level = after->level;
+ }
+ }
+ }
+} // add_func_header
+
+
+static void add_msg_header(E_Token type, file_mem &fm)
+{
+ Chunk *pc;
+ Chunk *ref;
+ Chunk *tmp;
+ bool do_insert;
+
+ for (pc = Chunk::GetHead(); pc->IsNotNullChunk(); pc = pc->GetNextNcNnlNpp())
+ {
+ if (pc->type != type)
+ {
+ continue;
+ }
+ do_insert = false;
+
+ /*
+ * On a message declaration back up to a Objective-C scope
+ * the same level
+ */
+ ref = pc;
+
+ while ( (ref = ref->GetPrev()) != nullptr
+ && ref->IsNotNullChunk())
+ {
+ // ignore the CT_TYPE token that is the result type
+ if ( ref->level != pc->level
+ && ( chunk_is_token(ref, CT_TYPE)
+ || chunk_is_token(ref, CT_PTR_TYPE)))
+ {
+ continue;
+ }
+
+ // If we hit a parentheses around return type, back up to the open parentheses
+ if (chunk_is_token(ref, CT_PAREN_CLOSE))
+ {
+ ref = ref->GetPrevType(CT_PAREN_OPEN, ref->level, E_Scope::PREPROC);
+ continue;
+ }
+
+ // Bail if we hit a preprocessor and cmt_insert_before_preproc is false
+ if (ref->flags.test(PCF_IN_PREPROC))
+ {
+ tmp = ref->GetPrevType(CT_PREPROC, ref->level);
+
+ if ( tmp->IsNotNullChunk()
+ && get_chunk_parent_type(tmp) == CT_PP_IF)
+ {
+ tmp = tmp->GetPrevNnl();
+
+ log_rule_B("cmt_insert_before_preproc");
+
+ if ( tmp->IsComment()
+ && !options::cmt_insert_before_preproc())
+ {
+ break;
+ }
+ }
+ }
+
+ if ( ref->level == pc->level
+ && ( ref->flags.test(PCF_IN_PREPROC)
+ || chunk_is_token(ref, CT_OC_SCOPE)))
+ {
+ ref = ref->GetPrev();
+
+ if (ref->IsNotNullChunk())
+ {
+ // Ignore 'right' comments
+ if ( chunk_is_newline(ref)
+ && ref->GetPrev()->IsComment())
+ {
+ break;
+ }
+ do_insert = true;
+ }
+ break;
+ }
+ }
+
+ if (do_insert)
+ {
+ // Insert between after and ref
+ Chunk *after = ref->GetNextNcNnl();
+ tokenize(fm.data, after);
+
+ for (tmp = ref->GetNext(); tmp != after; tmp = tmp->GetNext())
+ {
+ tmp->level = after->level;
+ }
+ }
+ }
+} // add_msg_header
+
+
+static void uncrustify_start(const deque<int> &data)
+{
+ // Parse the text into chunks
+ tokenize(data, nullptr);
+ PROT_THE_LINE
+
+ cpd.unc_stage = unc_stage_e::HEADER;
+
+ // Get the column for the fragment indent
+ if (cpd.frag)
+ {
+ Chunk *pc = Chunk::GetHead();
+
+ cpd.frag_cols = pc->orig_col;
+ }
+
+ // Add the file header
+ if (!cpd.file_hdr.data.empty())
+ {
+ add_file_header();
+ }
+
+ // Add the file footer
+ if (!cpd.file_ftr.data.empty())
+ {
+ add_file_footer();
+ }
+ /*
+ * Change certain token types based on simple sequence.
+ * Example: change '[' + ']' to '[]'
+ * Note that level info is not yet available, so it is OK to do all
+ * processing that doesn't need to know level info. (that's very little!)
+ */
+ tokenize_cleanup();
+
+ /*
+ * Detect the brace and paren levels and insert virtual braces.
+ * This handles all that nasty preprocessor stuff
+ */
+ brace_cleanup();
+
+ parameter_pack_cleanup();
+
+ // At this point, the level information is available and accurate.
+
+ if (language_is_set(LANG_PAWN))
+ {
+ pawn_prescan();
+ }
+ // Re-type chunks, combine chunks
+ fix_symbols();
+ tokenize_trailing_return_types();
+
+ mark_comments();
+
+ // Look at all colons ':' and mark labels, :? sequences, etc.
+ combine_labels();
+
+ enum_cleanup();
+} // uncrustify_start
+
+
+void uncrustify_file(const file_mem &fm, FILE *pfout, const char *parsed_file,
+ const char *dump_file, bool defer_uncrustify_end)
+{
+ const deque<int> &data = fm.data;
+
+ // Save off the encoding and whether a BOM is required
+ cpd.bom = fm.bom;
+ cpd.enc = fm.enc;
+
+ log_rule_B("utf8_force");
+ log_rule_B("utf8_byte");
+
+ if ( options::utf8_force()
+ || ( (cpd.enc == char_encoding_e::e_BYTE)
+ && options::utf8_byte()))
+ {
+ cpd.enc = char_encoding_e::e_UTF8;
+ }
+ iarf_e av;
+
+ switch (cpd.enc)
+ {
+ case char_encoding_e::e_UTF8:
+ log_rule_B("utf8_bom");
+ av = options::utf8_bom();
+ break;
+
+ case char_encoding_e::e_UTF16_LE:
+ case char_encoding_e::e_UTF16_BE:
+ av = IARF_FORCE;
+ break;
+
+ default:
+ av = IARF_IGNORE;
+ break;
+ }
+
+ if (av == IARF_REMOVE)
+ {
+ cpd.bom = false;
+ }
+ else if (av != IARF_IGNORE)
+ {
+ cpd.bom = true;
+ }
+ // Check for embedded 0's (represents a decoding failure or corrupt file)
+ size_t count_line = 1;
+ size_t count_column = 1;
+
+ for (int idx = 0; idx < static_cast<int>(data.size()) - 1; idx++)
+ {
+ if (data[idx] == 0)
+ {
+ LOG_FMT(LERR, "An embedded 0 was found in '%s' %zu:%zu.\n",
+ cpd.filename.c_str(), count_line, count_column);
+ LOG_FMT(LERR, "The file may be encoded in an unsupported Unicode format.\n");
+ LOG_FMT(LERR, "Aborting.\n");
+ cpd.error_count++;
+ return;
+ }
+ count_column++;
+
+ if (data[idx] == '\n')
+ {
+ count_line++;
+ count_column = 1;
+ }
+ }
+
+ uncrustify_start(data);
+ dump_step(dump_file, "After uncrustify_start()");
+
+ cpd.unc_stage = unc_stage_e::OTHER;
+
+ /*
+ * Done with detection. Do the rest only if the file will go somewhere.
+ * The detection code needs as few changes as possible.
+ */
+ {
+ // Add comments before function defs and classes
+ if (!cpd.func_hdr.data.empty())
+ {
+ add_func_header(CT_FUNC_DEF, cpd.func_hdr);
+
+ log_rule_B("cmt_insert_before_ctor_dtor");
+
+ if (options::cmt_insert_before_ctor_dtor())
+ {
+ add_func_header(CT_FUNC_CLASS_DEF, cpd.func_hdr);
+ }
+ }
+
+ if (!cpd.class_hdr.data.empty())
+ {
+ add_func_header(CT_CLASS, cpd.class_hdr);
+ }
+
+ if (!cpd.oc_msg_hdr.data.empty())
+ {
+ add_msg_header(CT_OC_MSG_DECL, cpd.oc_msg_hdr);
+ }
+ do_parent_for_pp();
+ do_braces(); // Change virtual braces into real braces...
+
+ // Scrub extra semicolons
+ log_rule_B("mod_remove_extra_semicolon");
+
+ if (options::mod_remove_extra_semicolon())
+ {
+ remove_extra_semicolons();
+ }
+ // Remove unnecessary returns
+ log_rule_B("mod_remove_empty_return");
+
+ if (options::mod_remove_empty_return())
+ {
+ remove_extra_returns();
+ }
+ // Remove duplicate include
+ log_rule_B("mod_duplicate_include");
+
+ if (options::mod_remove_duplicate_include())
+ {
+ remove_duplicate_include();
+ }
+ // Add parens
+ do_parens();
+ do_parens_assign();
+ do_parens_return();
+
+ // Modify line breaks as needed
+ bool first = true;
+ int old_changes;
+
+ log_rule_B("nl_remove_extra_newlines");
+
+ if (options::nl_remove_extra_newlines() == 2)
+ {
+ newlines_remove_newlines();
+ }
+ cpd.pass_count = 3;
+
+ dump_step(dump_file, "Before first while loop");
+
+ do
+ {
+ old_changes = cpd.changes;
+
+ LOG_FMT(LNEWLINE, "Newline loop start: %d\n", cpd.changes);
+
+ annotations_newlines();
+ newlines_cleanup_dup();
+ newlines_sparens();
+ newlines_cleanup_braces(first);
+ newlines_cleanup_angles(); // Issue #1167
+
+ log_rule_B("nl_after_multiline_comment");
+
+ if (options::nl_after_multiline_comment())
+ {
+ newline_after_multiline_comment();
+ }
+ log_rule_B("nl_after_label_colon");
+
+ if (options::nl_after_label_colon())
+ {
+ newline_after_label_colon();
+ }
+ newlines_insert_blank_lines();
+
+ log_rule_B("pos_bool");
+
+ if (options::pos_bool() != TP_IGNORE)
+ {
+ newlines_chunk_pos(CT_BOOL, options::pos_bool());
+ }
+ log_rule_B("pos_compare");
+
+ if (options::pos_compare() != TP_IGNORE)
+ {
+ newlines_chunk_pos(CT_COMPARE, options::pos_compare());
+ }
+ log_rule_B("pos_conditional");
+
+ if (options::pos_conditional() != TP_IGNORE)
+ {
+ newlines_chunk_pos(CT_COND_COLON, options::pos_conditional());
+ newlines_chunk_pos(CT_QUESTION, options::pos_conditional());
+ }
+ log_rule_B("pos_comma");
+ log_rule_B("pos_enum_comma");
+
+ if ( options::pos_comma() != TP_IGNORE
+ || options::pos_enum_comma() != TP_IGNORE)
+ {
+ newlines_chunk_pos(CT_COMMA, options::pos_comma());
+ }
+ log_rule_B("pos_assign");
+
+ if (options::pos_assign() != TP_IGNORE)
+ {
+ newlines_chunk_pos(CT_ASSIGN, options::pos_assign());
+ }
+ log_rule_B("pos_arith");
+
+ if (options::pos_arith() != TP_IGNORE)
+ {
+ newlines_chunk_pos(CT_ARITH, options::pos_arith());
+ newlines_chunk_pos(CT_CARET, options::pos_arith());
+ }
+ log_rule_B("pos_shift");
+
+ if (options::pos_shift() != TP_IGNORE)
+ {
+ newlines_chunk_pos(CT_SHIFT, options::pos_shift());
+ }
+ newlines_class_colon_pos(CT_CLASS_COLON);
+ newlines_class_colon_pos(CT_CONSTR_COLON);
+
+ log_rule_B("nl_squeeze_ifdef");
+
+ if (options::nl_squeeze_ifdef())
+ {
+ newlines_squeeze_ifdef();
+ }
+ log_rule_B("nl_squeeze_paren_close");
+
+ if (options::nl_squeeze_paren_close())
+ {
+ newlines_squeeze_paren_close();
+ }
+ do_blank_lines();
+ newlines_eat_start_end();
+ newlines_functions_remove_extra_blank_lines();
+ newlines_cleanup_dup();
+ first = false;
+ dump_step(dump_file, "Inside first while loop");
+ } while ( old_changes != cpd.changes
+ && cpd.pass_count-- > 0);
+
+ mark_comments();
+
+ // Add balanced spaces around nested params
+ log_rule_B("sp_balance_nested_parens");
+
+ if (options::sp_balance_nested_parens())
+ {
+ space_text_balance_nested_parens();
+ }
+ // Scrub certain added semicolons
+ log_rule_B("mod_pawn_semicolon");
+
+ if ( language_is_set(LANG_PAWN)
+ && options::mod_pawn_semicolon())
+ {
+ pawn_scrub_vsemi();
+ }
+ // Sort imports/using/include
+ log_rule_B("mod_sort_import");
+ log_rule_B("mod_sort_include");
+ log_rule_B("mod_sort_using");
+
+ if ( options::mod_sort_import()
+ || options::mod_sort_include()
+ || options::mod_sort_using())
+ {
+ sort_imports();
+ }
+ // Fix same-line inter-chunk spacing
+ space_text();
+
+ // Do any aligning of preprocessors
+ log_rule_B("align_pp_define_span");
+
+ if (options::align_pp_define_span() > 0)
+ {
+ align_preprocessor();
+ }
+ // Indent the text
+ indent_preproc();
+ indent_text();
+
+ // Insert trailing comments after certain close braces
+ log_rule_B("mod_add_long_switch_closebrace_comment");
+ log_rule_B("mod_add_long_function_closebrace_comment");
+ log_rule_B("mod_add_long_class_closebrace_comment");
+ log_rule_B("mod_add_long_namespace_closebrace_comment");
+
+ if ( (options::mod_add_long_switch_closebrace_comment() > 0)
+ || (options::mod_add_long_function_closebrace_comment() > 0)
+ || (options::mod_add_long_class_closebrace_comment() > 0)
+ || (options::mod_add_long_namespace_closebrace_comment() > 0))
+ {
+ add_long_closebrace_comment();
+ }
+ // Insert trailing comments after certain preprocessor conditional blocks
+ log_rule_B("mod_add_long_ifdef_else_comment");
+ log_rule_B("mod_add_long_ifdef_endif_comment");
+
+ if ( (options::mod_add_long_ifdef_else_comment() > 0)
+ || (options::mod_add_long_ifdef_endif_comment() > 0))
+ {
+ add_long_preprocessor_conditional_block_comment();
+ }
+ // Align everything else, reindent and break at code_width
+ first = true;
+
+ dump_step(dump_file, "Before second while loop");
+
+ do
+ {
+ align_all();
+ indent_text();
+ old_changes = cpd.changes;
+
+ log_rule_B("code_width");
+
+ if (options::code_width() > 0)
+ {
+ LOG_FMT(LNEWLINE, "%s(%d): Code_width loop start: %d\n",
+ __func__, __LINE__, cpd.changes);
+ log_rule_B("debug_max_number_of_loops");
+
+ if (options::debug_max_number_of_loops() > 0)
+ {
+ if (cpd.changes > options::debug_max_number_of_loops()) // Issue #2432
+ {
+ LOG_FMT(LNEWLINE, "%s(%d): too many loops. Make a report, please.\n",
+ __func__, __LINE__);
+ log_flush(true);
+ exit(EX_SOFTWARE);
+ }
+ }
+ do_code_width();
+
+ if ( old_changes != cpd.changes
+ && first)
+ {
+ // retry line breaks caused by splitting 1-liners
+ newlines_cleanup_braces(false);
+ newlines_insert_blank_lines();
+ newlines_functions_remove_extra_blank_lines();
+ newlines_remove_disallowed();
+ first = false;
+ }
+ }
+ dump_step(dump_file, "Inside second while loop");
+ } while (old_changes != cpd.changes);
+
+ // And finally, align the backslash newline stuff
+ align_right_comments();
+
+ log_rule_B("align_nl_cont");
+
+ if (options::align_nl_cont())
+ {
+ align_backslash_newline();
+ }
+ dump_step(dump_file, "Final version");
+
+ // which output is to be done?
+ if (cpd.html_file == nullptr)
+ {
+ // Now render it all to the output file
+ output_text(pfout);
+ }
+ else
+ {
+ // create the tracking file
+ FILE *t_file;
+ t_file = fopen(cpd.html_file, "wb");
+
+ if (t_file)
+ {
+ output_text(t_file);
+ fclose(t_file);
+ exit(EX_OK);
+ }
+ exit(EX_USAGE);
+ }
+ }
+
+ // Special hook for dumping parsed data for debugging
+ if (parsed_file != nullptr)
+ {
+ FILE *p_file;
+
+ if ( parsed_file[0] == '-'
+ && !parsed_file[1])
+ {
+ p_file = stdout;
+ }
+ else
+ {
+ p_file = fopen(parsed_file, "wb");
+ }
+
+ if (p_file != nullptr)
+ {
+ if (ends_with(parsed_file, ".csv", false))
+ {
+ output_parsed_csv(p_file);
+ }
+ else
+ {
+ output_parsed(p_file);
+ }
+
+ if (p_file != stdout)
+ {
+ fclose(p_file);
+ }
+ }
+ else
+ {
+ LOG_FMT(LERR, "%s: Failed to open '%s' for write: %s (%d)\n",
+ __func__, parsed_file, strerror(errno), errno);
+ cpd.error_count++;
+ }
+ }
+
+ if ( cpd.do_check
+ && !bout_content_matches(fm, true))
+ {
+ cpd.check_fail_cnt++;
+ }
+
+ if (!defer_uncrustify_end)
+ {
+ uncrustify_end();
+ }
+} // uncrustify_file
+
+
+void uncrustify_end()
+{
+ // Free all the memory
+ Chunk *pc;
+
+ cpd.unc_stage = unc_stage_e::CLEANUP;
+
+ while ((pc = Chunk::GetHead())->IsNotNullChunk())
+ {
+ chunk_del(pc);
+ }
+
+ if (cpd.bout)
+ {
+ cpd.bout->clear();
+ }
+ // Clean up some state variables
+ cpd.unc_off = false;
+ cpd.al_cnt = 0;
+ cpd.did_newline = true;
+ cpd.pp_level = 0;
+ cpd.changes = 0;
+ cpd.in_preproc = CT_NONE;
+ memset(cpd.le_counts, 0, sizeof(cpd.le_counts));
+ cpd.preproc_ncnl_count = 0;
+ cpd.ifdef_over_whole_file = 0;
+ cpd.warned_unable_string_replace_tab_chars = false;
+}
+
+
+const char *get_token_name(E_Token token)
+{
+ if ( token >= 0
+ && (token < static_cast<int> ARRAY_SIZE(token_names))
+ && (token_names[token] != nullptr))
+ {
+ return(token_names[token]);
+ }
+ return("???");
+}
+
+
+E_Token find_token_name(const char *text)
+{
+ if ( text != nullptr
+ && (*text != 0))
+ {
+ for (int idx = 1; idx < static_cast<int> ARRAY_SIZE(token_names); idx++)
+ {
+ if (strcasecmp(text, token_names[idx]) == 0)
+ {
+ return(static_cast<E_Token>(idx));
+ }
+ }
+ }
+ return(CT_NONE);
+}
+
+
+static bool ends_with(const char *filename, const char *tag, bool case_sensitive = true)
+{
+ int len1 = strlen(filename);
+ int len2 = strlen(tag);
+
+ return( len2 <= len1
+ && ( ( case_sensitive
+ && (strcmp(&filename[len1 - len2], tag) == 0))
+ || ( !case_sensitive
+ && (strcasecmp(&filename[len1 - len2], tag) == 0))));
+}
+
+
+struct lang_name_t
+{
+ const char *name;
+ size_t lang;
+};
+
+static lang_name_t language_names[] =
+{
+ { "C", LANG_C }, // 0x0001
+ { "CPP", LANG_CPP }, // 0x0002
+ { "D", LANG_D }, // 0x0004
+ { "CS", LANG_CS }, // 0x0008
+ { "JAVA", LANG_JAVA }, // 0x0010
+ { "OC", LANG_OC }, // 0x0020
+ { "VALA", LANG_VALA }, // 0x0040
+ { "PAWN", LANG_PAWN }, // 0x0080
+ { "ECMA", LANG_ECMA }, // 0x0100
+ { "OC+", LANG_OC | LANG_CPP }, // 0x0020 + 0x0002
+ { "CS+", LANG_CS | LANG_CPP }, // 0x0008 + 0x0002
+ { "C-Header", LANG_C | LANG_CPP | FLAG_HDR }, // 0x0001 + 0x0002 + 0x2000 = 0x2022
+};
+
+
+static size_t language_flags_from_name(const char *name)
+{
+ for (const auto &language : language_names)
+ {
+ if (strcasecmp(name, language.name) == 0)
+ {
+ return(language.lang);
+ }
+ }
+
+ return(0);
+}
+
+
+const char *language_name_from_flags(size_t lang)
+{
+ // Check for an exact match first
+ for (auto &language_name : language_names)
+ {
+ if (language_name.lang == lang)
+ {
+ return(language_name.name);
+ }
+ }
+
+ // Check for the first set language bit
+ for (auto &language_name : language_names)
+ {
+ if ((language_name.lang & lang) != 0)
+ {
+ return(language_name.name);
+ }
+ }
+
+ return("???");
+}
+
+
+//! type to map a programming language to a typically used filename extension
+struct lang_ext_t
+{
+ const char *ext; //! filename extension typically used for ...
+ const char *name; //! a programming language
+};
+
+//! known filename extensions linked to the corresponding programming language
+struct lang_ext_t language_exts[] =
+{
+ { ".c", "C" },
+ { ".c++", "CPP" },
+ { ".cc", "CPP" },
+ { ".cp", "CPP" },
+ { ".cpp", "CPP" },
+ { ".cs", "CS" },
+ { ".cxx", "CPP" },
+ { ".d", "D" },
+ { ".di", "D" },
+ { ".es", "ECMA" },
+ { ".h", "C-Header" },
+ { ".h++", "CPP" },
+ { ".hh", "CPP" },
+ { ".hp", "CPP" },
+ { ".hpp", "CPP" },
+ { ".hxx", "CPP" },
+ { ".inl", "PAWN" },
+ { ".java", "JAVA" },
+ { ".js", "ECMA" },
+ { ".m", "OC" },
+ { ".mm", "OC+" },
+ { ".p", "PAWN" },
+ { ".pawn", "PAWN" },
+ { ".sma", "PAWN" },
+ { ".sqc", "C" }, // embedded SQL
+ { ".sql", "SQL" },
+ { ".vala", "VALA" },
+};
+
+
+const char *get_file_extension(int &idx)
+{
+ const char *val = nullptr;
+
+ if (idx < static_cast<int> ARRAY_SIZE(language_exts))
+ {
+ val = language_exts[idx].ext;
+ }
+ idx++;
+ return(val);
+}
+
+
+typedef std::map<string, string> extension_map_t;
+/**
+ * maps a file extension to a language flag.
+ *
+ * @note The "." need to be included, as in ".c". The file extensions
+ * ARE case sensitive.
+ */
+static extension_map_t g_ext_map;
+
+
+const char *extension_add(const char *ext_text, const char *lang_text)
+{
+ size_t lang_flags = language_flags_from_name(lang_text);
+
+ if (lang_flags)
+ {
+ const char *lang_name = language_name_from_flags(lang_flags);
+ g_ext_map[string(ext_text)] = lang_name;
+ return(lang_name);
+ }
+ return(nullptr);
+}
+
+
+void print_extensions(FILE *pfile)
+{
+ for (auto &language : language_names)
+ {
+ bool did_one = false;
+
+ for (auto &extension_val : g_ext_map)
+ {
+ if (strcmp(extension_val.second.c_str(), language.name) == 0)
+ {
+ if (!did_one)
+ {
+ fprintf(pfile, "file_ext %s", extension_val.second.c_str());
+ did_one = true;
+ }
+ fprintf(pfile, " %s", extension_val.first.c_str());
+ }
+ }
+
+ if (did_one)
+ {
+ fprintf(pfile, "\n");
+ }
+ }
+}
+
+
+// TODO: better use enum lang_t for source file language
+static size_t language_flags_from_filename(const char *filename)
+{
+ // check custom extensions first
+ for (const auto &extension_val : g_ext_map)
+ {
+ if (ends_with(filename, extension_val.first.c_str()))
+ {
+ return(language_flags_from_name(extension_val.second.c_str()));
+ }
+ }
+
+ for (auto &language : language_exts)
+ {
+ if (ends_with(filename, language.ext))
+ {
+ return(language_flags_from_name(language.name));
+ }
+ }
+
+ // check again without case sensitivity
+ for (auto &extension_val : g_ext_map)
+ {
+ if (ends_with(filename, extension_val.first.c_str(), false))
+ {
+ return(language_flags_from_name(extension_val.second.c_str()));
+ }
+ }
+
+ for (auto &language : language_exts)
+ {
+ if (ends_with(filename, language.ext, false))
+ {
+ return(language_flags_from_name(language.name));
+ }
+ }
+
+ return(LANG_C);
+} // language_flags_from_filename
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/uncrustify.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/uncrustify.h
new file mode 100644
index 00000000..1f85b993
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/uncrustify.h
@@ -0,0 +1,99 @@
+/**
+ * @file uncrustify.h
+ * prototypes for uncrustify.c
+ *
+ * @author Ben Gardner
+ * @license GPL v2+
+ */
+
+#ifndef UNCRUSTIFY_H_INCLUDED
+#define UNCRUSTIFY_H_INCLUDED
+
+#include "uncrustify_types.h"
+
+#include <stdio.h>
+
+int load_header_files(void);
+
+
+void uncrustify_file(const file_mem &fm, FILE *pfout, const char *parsed_file, const char *dump_filename, bool defer_uncrustify_end = false);
+
+
+void uncrustify_end();
+
+
+const char *get_token_name(E_Token token);
+
+
+/**
+ * Gets the tag text for a language
+ *
+ * @param lang The LANG_xxx enum
+ *
+ * @return A string
+ */
+const char *language_name_from_flags(size_t lang);
+
+
+/**
+ * Grab the token id for the text.
+ *
+ * @return token, will be CT_NONE on failure to match
+ */
+E_Token find_token_name(const char *text);
+
+std::string pcf_flags_str(pcf_flags_t flags);
+
+
+void log_pcf_flags(log_sev_t sev, pcf_flags_t flags);
+
+
+/**
+ * Replace the brain-dead and non-portable basename().
+ * Returns a pointer to the character after the last '/'.
+ * The returned value always points into path, unless path is nullptr.
+ *
+ * Input Returns
+ * nullptr => ""
+ * "/some/path/" => ""
+ * "/some/path" => "path"
+ * "afile" => "afile"
+ *
+ * @param path The path to look at
+ *
+ * @return Pointer to the character after the last path separator
+ */
+const char *path_basename(const char *path);
+
+
+/**
+ * Returns the length of the directory part of the filename.
+ *
+ * @param filename filename including full path
+ *
+ * @return character size of path
+ */
+int path_dirname_len(const char *filename);
+
+
+void usage(const char *argv0);
+
+
+void usage_error(const char *msg = nullptr);
+
+
+/**
+ * Set idx = 0 before the first call.
+ * Done when returns nullptr
+ */
+const char *get_file_extension(int &idx);
+
+
+//! Prints custom file extensions to the file
+void print_extensions(FILE *pfile);
+
+
+const char *extension_add(const char *ext_text, const char *lang_text);
+
+
+#endif /* UNCRUSTIFY_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/uncrustify_emscripten.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/uncrustify_emscripten.cpp
new file mode 100644
index 00000000..a336fea4
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/uncrustify_emscripten.cpp
@@ -0,0 +1,1218 @@
+/*
+ * uncrustify_emscripten.cpp - JavaScript Emscripten binding interface
+ *
+ * Created on: May 8, 2016
+ * Author: Daniel Chumak
+ *
+ * INTERFACE:
+ * ============================================================================
+ * unsure about these:
+ * --check TODO ???
+ * --decode TODO ???
+ * --detect TODO needs uncrustify start and end which both are static
+ *
+ *
+ * will not be included:
+ * ----------------------------------------------------------------------------
+ * -t ( define via multiple --type )
+ * -d ( define via multiple --define )
+ * --assume ( no files available to guess the lang. based on the filename ending )
+ * --files ( no batch processing will be available )
+ * --prefix
+ * --suffix
+ * --assume
+ * --no-backup
+ * --replace
+ * --mtime
+ * --universalindent
+ * --ds/--dump-steps
+ * -help, -h, --usage, -?
+ *
+ *
+ * done:
+ * ----------------------------------------------------------------------------
+ * --update-config ( use show_config() )
+ * --update-config-with-doc ( show_config( bool withDoc = true ) )
+ * --version, -v ( use get_version() )
+ * --log, -L ( use log_type_enable( log_sev_t sev, bool value ) )
+ * -q ( use quiet() )
+ * --config, -c ( use loadConfig( string _cfg ) )
+ * --file, -f ( use uncrustify( string _file ) )
+ * --show ( use log_type_show_name( bool ) )
+ * --frag ( use uncrustify( string _file, bool frag = true ) )
+ * --type ( use add_keyword( string _type, E_Token type ) )
+ * -l ( use uncrustify() )
+ * --parsed, -p ( use debug() )
+ */
+
+
+#if defined (__linux__)
+
+
+#include "keywords.h"
+#include "log_levels.h"
+#include "logger.h"
+#include "option.h"
+#include "options.h"
+#include "output.h"
+#include "prototypes.h"
+#include "uncrustify.h"
+#include "uncrustify_version.h"
+#include "unicode.h"
+
+#include <iostream>
+#include <map>
+#include <memory>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unordered_map>
+#include <vector>
+
+
+#ifdef EMSCRIPTEN
+#include <emscripten/bind.h>
+#include <emscripten/val.h>
+using namespace emscripten;
+#else
+#define EMSCRIPTEN_BINDINGS(module) void dummyFcn()
+template<class T>
+struct base {};
+struct emscripten
+{
+ template<class... Args>
+ emscripten value(Args...) { return{}; }
+
+ template<class... Args>
+ static emscripten function(Args...) { return{}; }
+
+ template<class... Args>
+ emscripten property(Args...) { return{}; }
+};
+using Dummy = emscripten;
+
+
+template<class T>
+Dummy enum_(char const *const)
+{
+ return(Dummy{});
+}
+
+
+template<class T>
+Dummy register_vector(char const *const)
+{
+ return(Dummy{});
+}
+
+
+template<class... Args>
+Dummy class_(char const *const)
+{
+ return(Dummy{});
+}
+
+
+template<class T>
+Dummy select_overload(T)
+{
+ return(Dummy{});
+}
+#endif
+
+using namespace std;
+using namespace uncrustify;
+
+namespace
+{
+
+/**
+ * Loads options from a file represented as a single char array.
+ * Modifies: input char array, cpd.line_number
+ * Expects: \0 terminated char array
+ *
+ * @param configString char array that holds the whole config
+ * @return EXIT_SUCCESS on success
+ */
+int load_option_fileChar(char *configString)
+{
+ char *delimPos = &configString[0];
+ char *subStringStart = &configString[0];
+
+ cpd.line_number = 0;
+
+ // TODO: handle compat_level
+ int compat_level = 0;
+
+ while (true)
+ {
+ delimPos = strchr(delimPos, '\n');
+
+ if (delimPos == nullptr)
+ {
+ break;
+ }
+ // replaces \n with \0 -> string including multiple terminated substrings
+ *delimPos = '\0';
+
+
+ process_option_line(subStringStart, "", compat_level);
+
+ delimPos++;
+ subStringStart = delimPos;
+ }
+ //get last line, expectation: ends with \0
+ process_option_line(subStringStart, "", compat_level);
+
+ return(EXIT_SUCCESS);
+}
+
+
+/**
+ * adds a new keyword to Uncrustify's dynamic keyword map (dkwm, keywords.cpp)
+ *
+ * @param tag: keyword that is going to be added
+ * @param type: type of the keyword
+ */
+void _add_keyword(string tag, E_Token type)
+{
+ if (tag.empty())
+ {
+ LOG_FMT(LERR, "%s: input string is empty\n", __func__);
+ return;
+ }
+ add_keyword(tag, type);
+}
+
+
+//! clears Uncrustify's dynamic keyword map (dkwm, keywords.cpp)
+void clear_keywords()
+{
+ clear_keyword_file();
+}
+
+
+/**
+ * Show or hide the severity prefix "<1>"
+ *
+ * @param b: true=show, false=hide
+ */
+void show_log_type(bool b)
+{
+ log_show_sev(b);
+}
+
+
+//! returns the UNCRUSTIFY_VERSION string
+string get_version()
+{
+ return(UNCRUSTIFY_VERSION);
+}
+
+
+//! disables all logging messages
+void set_quiet()
+{
+ // set empty mask
+ log_set_mask({});
+}
+
+
+/**
+ * resets value of an option to its default
+ *
+ * @param name: name of the option
+ * @return options enum value of the found option or -1 if option was not found
+ */
+int reset_option(string name)
+{
+ if (name.empty())
+ {
+ LOG_FMT(LERR, "%s: name string is empty\n", __func__);
+ return(-1);
+ }
+ const auto option = find_option(name.c_str());
+
+ if (option == nullptr)
+ {
+ LOG_FMT(LERR, "Option %s not found\n", name.c_str());
+ return(-1);
+ }
+ option->reset();
+ return(0);
+}
+
+
+/**
+ * sets value of an option
+ *
+ * @param name: name of the option
+ * @param value: value that is going to be set
+ * @return options enum value of the found option or -1 if option was not found
+ */
+int set_option(string name, string value)
+{
+ if (name.empty())
+ {
+ LOG_FMT(LERR, "%s: name string is empty\n", __func__);
+ return(-1);
+ }
+
+ if (value.empty())
+ {
+ LOG_FMT(LERR, "%s: value string is empty\n", __func__);
+ return(-1);
+ }
+ const auto option = find_option(name.c_str());
+
+ if (option == nullptr)
+ {
+ LOG_FMT(LERR, "Option %s not found\n", name.c_str());
+ return(-1);
+ }
+
+ if (!option->read(value.c_str()))
+ {
+ LOG_FMT(
+ LERR,
+ "Failed to set value %s for option: %s of type: %s\n",
+ name.c_str(),
+ value.c_str(),
+ to_string(option->type())
+ );
+ return(-1);
+ }
+ return(0);
+}
+
+
+/**
+ * returns value of an option
+ *
+ * @param name: name of the option
+ * @return currently set value of the option
+ */
+string get_option(string name)
+{
+ if (name.empty())
+ {
+ LOG_FMT(LERR, "%s: input string is empty\n", __func__);
+ return("");
+ }
+ const auto option = find_option(name.c_str());
+
+ if (option == nullptr)
+ {
+ LOG_FMT(LWARN, "Option %s not found\n", name.c_str());
+ return("");
+ }
+ return(option->str());
+}
+
+
+/**
+ * returns the config file string based on the current configuration
+ *
+ * @param withDoc: false=without documentation,
+ * true=with documentation text lines
+ * @param only_not_default: false=containing all options,
+ * true=containing only options with non default values
+ * @return returns the config file string based on the current configuration
+ */
+string show_config(bool withDoc, bool only_not_default)
+{
+ char *buf;
+ size_t len;
+
+ FILE *stream = open_memstream(&buf, &len);
+
+ if (stream == nullptr)
+ {
+ LOG_FMT(LERR, "Failed to open_memstream\n");
+ fflush(stream);
+ fclose(stream);
+ free(buf);
+ return("");
+ }
+ save_option_file(stream, withDoc, only_not_default);
+
+ fflush(stream);
+ fclose(stream);
+
+ string out(buf);
+
+ free(buf);
+
+ return(out);
+}
+
+
+/**
+ * returns the config file string with all options based on the current configuration
+ *
+ * @param withDoc: false= without documentation, true=with documentation text lines
+ * @return returns the config file string with all options based on the current configuration
+ */
+string show_config(bool withDoc)
+{
+ return(show_config(withDoc, false));
+}
+
+
+//!returns the config file string with all options and without documentation based on the current configuration
+string show_config()
+{
+ return(show_config(false, false));
+}
+
+
+std::vector<OptionGroup *> get_groups()
+{
+ std::vector<OptionGroup *> groups;
+
+ groups.reserve(5);
+
+ for (size_t i = 0; true; ++i)
+ {
+ OptionGroup *group = get_option_group(i);
+
+ if (!group)
+ {
+ break;
+ }
+ groups.push_back(group);
+ }
+
+ return(groups);
+}
+
+
+std::vector<GenericOption *> get_options()
+{
+ std::vector<GenericOption *> options;
+
+ options.reserve(get_option_count());
+
+ for (size_t i = 0; true; ++i)
+ {
+ OptionGroup *group = get_option_group(i);
+
+ if (!group)
+ {
+ break;
+ }
+ options.insert(
+ end(options),
+ begin(group->options),
+ end(group->options)
+ );
+ }
+
+ return(options);
+}
+
+
+//! resets all options to their default values
+void reset_options()
+{
+ auto options = get_options();
+
+ for (auto *option : options)
+ {
+ option->reset();
+ }
+}
+
+
+/**
+ * initializes the current libUncrustify instance,
+ * used only for emscripten binding here and will be automatically called while
+ * module initialization
+ */
+void _initialize()
+{
+ register_options();
+ log_init(stdout);
+
+ LOG_FMT(LSYS, "Initialized libUncrustify - " UNCRUSTIFY_VERSION "\n");
+}
+
+
+//! destroys the current libUncrustify instance
+void destruct()
+{
+ clear_keyword_file();
+}
+
+
+/**
+ * reads option file string, sets the defined options
+ *
+ * @return returns EXIT_SUCCESS on success
+ */
+int _loadConfig(intptr_t _cfg)
+{
+ // reset everything in case a config was loaded previously
+ clear_keyword_file();
+ reset_options();
+
+ // embind complains about char* so we use an int to get the pointer and cast
+ // it, memory management is done in /emscripten/postfix_module.js
+ char *cfg = reinterpret_cast<char *>(_cfg);
+
+ if (load_option_fileChar(cfg) != EXIT_SUCCESS)
+ {
+ LOG_FMT(LERR, "unable to load the config\n");
+ return(EXIT_FAILURE);
+ }
+ // This relies on cpd.filename being the config file name
+ load_header_files();
+
+ LOG_FMT(LSYS, "finished loading config\n");
+ return(EXIT_SUCCESS);
+}
+
+
+/**
+ * format string
+ *
+ * @param file: pointer to the file char* string that is going to be formatted
+ * @param langIDX: specifies in which language the input file is written
+ * @param frag: true=fragmented code input, false=unfragmented code input
+ * @param defer: true=do not perform cleanup of Uncrustify structures
+ *
+ * @return pointer to the formatted file char* string
+ */
+intptr_t _uncrustify(intptr_t _file, lang_flag_e langIDX, bool frag, bool defer)
+{
+ // Problem: uncrustify originally is not a lib and uses global vars such as
+ // cpd.error_count for the whole program execution
+ // to know if errors occurred during the formating step we reset this var here
+ cpd.error_count = 0;
+ cpd.filename = "stdin";
+ cpd.frag = frag;
+
+ if (langIDX == 0) // 0 == undefined
+ {
+ LOG_FMT(LWARN, "language of input file not defined, C++ will be assumed\n");
+ cpd.lang_flags = LANG_CPP;
+ }
+ else
+ {
+ cpd.lang_flags = langIDX;
+ }
+ // embind complains about char* so we use an intptr_t to get the pointer and
+ // cast it, memory management is done in /emscripten/postfix_module.js
+ char *file = reinterpret_cast<char *>(_file);
+
+ file_mem fm;
+
+ fm.raw.clear();
+ fm.data.clear();
+ fm.enc = char_encoding_e::e_ASCII;
+ fm.raw = vector<UINT8>();
+
+ char c;
+
+ for (auto idx = 0; (c = file[idx]) != 0; ++idx)
+ {
+ fm.raw.push_back(c);
+ }
+
+ if (!decode_unicode(fm.raw, fm.data, fm.enc, fm.bom))
+ {
+ LOG_FMT(LERR, "Failed to read code\n");
+ return(0);
+ }
+ // Done reading from stdin
+ LOG_FMT(LSYS, "Parsing: %zu bytes (%zu chars) from stdin as language %s\n",
+ fm.raw.size(), fm.data.size(),
+ language_name_from_flags(cpd.lang_flags));
+
+
+ char *buf = nullptr;
+ size_t len = 0;
+
+ // uncrustify uses FILE instead of streams for its outputs
+ // to redirect FILE writes into a char* open_memstream is used
+ // windows lacks open_memstream, only UNIX/BSD is supported
+ // apparently emscripten has its own implementation, if that is not working
+ // see: stackoverflow.com/questions/10305095#answer-10341073
+ FILE *stream = open_memstream(&buf, &len);
+
+ if (stream == nullptr)
+ {
+ LOG_FMT(LERR, "Failed to open_memstream\n");
+ return(0);
+ }
+ // TODO One way to implement the --parsed, -p functionality would
+ // be to let the uncrustify_file function run, throw away the formated
+ // output and return the debug as a string. For this uncrustify_file would
+ // need to accept a stream, FILE or a char array pointer in which the output
+ // will be stored.
+ // Another option would be to check, inside the uncrustify_file function,
+ // if the current filename string matches stdout or stderr and use those as
+ // output locations. This is the easier fix but the debug info in the
+ // browsers console is littered with other unneeded text.
+ // Finally, the ugliest solution, would be also possible to re-route
+ // either stdout or stderr inside the Module var of emscripten to a js
+ // function which passes the debug output into a dedicated output js target.
+ // This therefore would introduce the dependency on the user to always have
+ // the output js target available.
+ uncrustify_file(fm, stream, nullptr, nullptr, defer);
+
+ fflush(stream);
+ fclose(stream);
+
+ if (cpd.error_count != 0)
+ {
+ LOG_FMT(LWARN, "%d errors occurred during formating\n", cpd.error_count);
+ }
+
+ if (len == 0)
+ {
+ return(0);
+ }
+ // buf is deleted inside js code
+ return(reinterpret_cast<intptr_t>(buf));
+} // uncrustify
+
+
+/**
+ * format string
+ *
+ * @param file: pointer to the file char* string that is going to be formatted
+ * @param langIDX: specifies in which language the input file is written
+ * @param frag: true=fragmented code input, false=unfragmented code input
+ *
+ * @return pointer to the formatted file char* string
+ */
+intptr_t _uncrustify(intptr_t file, lang_flag_e langIDX, bool frag)
+{
+ return(_uncrustify(file, langIDX, frag, false));
+}
+
+
+/**
+ * format string, assume unfragmented code input
+ *
+ * @param file: pointer to the file char* string that is going to be formatted
+ * @param langIDX: specifies in which language the input file is written
+ *
+ * @return pointer to the formatted file char* string
+ */
+intptr_t _uncrustify(intptr_t file, lang_flag_e langIDX)
+{
+ return(_uncrustify(file, langIDX, false, false));
+}
+
+
+/**
+ * generate debug output
+ *
+ * @param file: pointer to the file char* string that is going to be formatted
+ * @param langIDX: specifies in which language the input file is written
+ * @param frag: true=fragmented code input, false=unfragmented code input
+ *
+ * @return pointer to the debug file char* string
+ */
+intptr_t _debug(intptr_t _file, lang_flag_e langIDX, bool frag)
+{
+ auto formatted_str_ptr = _uncrustify(_file, langIDX, frag, true);
+ char *formatted_str = reinterpret_cast<char *>(formatted_str_ptr);
+
+ // Lazy solution: Throw away the formated file output.
+ // Maybe later add option to return both formatted file string and debug
+ // file string together ... somehow.
+ free(formatted_str);
+
+ char *buf = nullptr;
+ size_t len = 0;
+ FILE *stream = open_memstream(&buf, &len);
+
+ if (stream == nullptr)
+ {
+ LOG_FMT(LERR, "Failed to open_memstream\n");
+ return(0);
+ }
+ output_parsed(stream);
+ fflush(stream);
+ fclose(stream);
+
+ // start deferred _uncrustify cleanup
+ uncrustify_end();
+
+ if (len == 0)
+ {
+ return(0);
+ }
+ // buf is deleted inside js code
+ return(reinterpret_cast<intptr_t>(buf));
+} // uncrustify
+
+
+/**
+ * generate debug output, assume unfragmented code input
+ *
+ * @param file: pointer to the file char* string that is going to be formatted
+ * @param langIDX: specifies in which language the input file is written
+ *
+ * @return pointer to the debug file char* string
+ */
+intptr_t _debug(intptr_t _file, lang_flag_e langIDX)
+{
+ return(_debug(_file, langIDX, false));
+}
+
+} // namespace
+
+EMSCRIPTEN_BINDINGS(MainModule)
+{
+ // region enum bindings
+ enum_<option_type_e>("OptionType")
+ .value("BOOL", option_type_e::BOOL)
+ .value("IARF", option_type_e::IARF)
+ .value("LINEEND", option_type_e::LINEEND)
+ .value("TOKENPOS", option_type_e::TOKENPOS)
+ .value("NUM", option_type_e::NUM)
+ .value("UNUM", option_type_e::UNUM)
+ .value("STRING", option_type_e::STRING);
+
+ enum_<iarf_e>("IARF")
+ .value("IGNORE", IARF_IGNORE)
+ .value("ADD", IARF_ADD)
+ .value("REMOVE", IARF_REMOVE)
+ .value("FORCE", IARF_FORCE);
+
+ enum_<line_end_e>("LineEnd")
+ .value("LF", line_end_e::LF)
+ .value("CRLF", line_end_e::CRLF)
+ .value("CR", line_end_e::CR)
+ .value("AUTO", line_end_e::AUTO);
+
+ enum_<token_pos_e>("TokenPos")
+ .value("IGNORE", token_pos_e::IGNORE)
+ .value("BREAK", token_pos_e::BREAK)
+ .value("FORCE", token_pos_e::FORCE)
+ .value("LEAD", token_pos_e::LEAD)
+ .value("TRAIL", token_pos_e::TRAIL)
+ .value("JOIN", token_pos_e::JOIN)
+ .value("LEAD_BREAK", token_pos_e::LEAD_BREAK)
+ .value("LEAD_FORCE", token_pos_e::LEAD_FORCE)
+ .value("TRAIL_BREAK", token_pos_e::TRAIL_BREAK)
+ .value("TRAIL_FORCE", token_pos_e::TRAIL_FORCE);
+
+ enum_<log_sev_t>("LogType")
+ .value("SYS", log_sev_t::LSYS)
+ .value("ERR", log_sev_t::LERR)
+ .value("WARN", log_sev_t::LWARN)
+ .value("NOTE", log_sev_t::LNOTE)
+ .value("INFO", log_sev_t::LINFO)
+ .value("DATA", log_sev_t::LDATA)
+ .value("FILELIST", log_sev_t::LFILELIST)
+ .value("LINEENDS", log_sev_t::LLINEENDS)
+ .value("CASTS", log_sev_t::LCASTS)
+ .value("ALBR", log_sev_t::LALBR)
+ .value("ALTD", log_sev_t::LALTD)
+ .value("ALPP", log_sev_t::LALPP)
+ .value("ALPROTO", log_sev_t::LALPROTO)
+ .value("ALNLC", log_sev_t::LALNLC)
+ .value("ALTC", log_sev_t::LALTC)
+ .value("ALADD", log_sev_t::LALADD)
+ .value("ALASS", log_sev_t::LALASS)
+ .value("FVD", log_sev_t::LFVD)
+ .value("FVD2", log_sev_t::LFVD2)
+ .value("INDENT", log_sev_t::LINDENT)
+ .value("INDENT2", log_sev_t::LINDENT2)
+ .value("INDPSE", log_sev_t::LINDPSE)
+ .value("INDPC", log_sev_t::LINDPC)
+ .value("NEWLINE", log_sev_t::LNEWLINE)
+ .value("PF", log_sev_t::LPF)
+ .value("STMT", log_sev_t::LSTMT)
+ .value("TOK", log_sev_t::LTOK)
+ .value("ALRC", log_sev_t::LALRC)
+ .value("CMTIND", log_sev_t::LCMTIND)
+ .value("INDLINE", log_sev_t::LINDLINE)
+ .value("SIB", log_sev_t::LSIB)
+ .value("RETURN", log_sev_t::LRETURN)
+ .value("BRDEL", log_sev_t::LBRDEL)
+ .value("FCN", log_sev_t::LFCN)
+ .value("FCNP", log_sev_t::LFCNP)
+ .value("PCU", log_sev_t::LPCU)
+ .value("DYNKW", log_sev_t::LDYNKW)
+ .value("OUTIND", log_sev_t::LOUTIND)
+ .value("BCSAFTER", log_sev_t::LBCSAFTER)
+ .value("BCSPOP", log_sev_t::LBCSPOP)
+ .value("BCSPUSH", log_sev_t::LBCSPUSH)
+ .value("BCSSWAP", log_sev_t::LBCSSWAP)
+ .value("FTOR", log_sev_t::LFTOR)
+ .value("AS", log_sev_t::LAS)
+ .value("PPIS", log_sev_t::LPPIS)
+ .value("TYPEDEF", log_sev_t::LTYPEDEF)
+ .value("VARDEF", log_sev_t::LVARDEF)
+ .value("DEFVAL", log_sev_t::LDEFVAL)
+ .value("PVSEMI", log_sev_t::LPVSEMI)
+ .value("PFUNC", log_sev_t::LPFUNC)
+ .value("SPLIT", log_sev_t::LSPLIT)
+ .value("FTYPE", log_sev_t::LFTYPE)
+ .value("TEMPL", log_sev_t::LTEMPL)
+ .value("PARADD", log_sev_t::LPARADD)
+ .value("PARADD2", log_sev_t::LPARADD2)
+ .value("BLANKD", log_sev_t::LBLANKD)
+ .value("TEMPFUNC", log_sev_t::LTEMPFUNC)
+ .value("SCANSEMI", log_sev_t::LSCANSEMI)
+ .value("DELSEMI", log_sev_t::LDELSEMI)
+ .value("FPARAM", log_sev_t::LFPARAM)
+ .value("NL1LINE", log_sev_t::LNL1LINE)
+ .value("PFCHK", log_sev_t::LPFCHK)
+ .value("AVDB", log_sev_t::LAVDB)
+ .value("SORT", log_sev_t::LSORT)
+ .value("SPACE", log_sev_t::LSPACE)
+ .value("ALIGN", log_sev_t::LALIGN)
+ .value("ALAGAIN", log_sev_t::LALAGAIN)
+ .value("OPERATOR", log_sev_t::LOPERATOR)
+ .value("ASFCP", log_sev_t::LASFCP)
+ .value("INDLINED", log_sev_t::LINDLINED)
+ .value("BCTRL", log_sev_t::LBCTRL)
+ .value("RMRETURN", log_sev_t::LRMRETURN)
+ .value("PPIF", log_sev_t::LPPIF)
+ .value("MCB", log_sev_t::LMCB)
+ .value("BRCH", log_sev_t::LBRCH)
+ .value("FCNR", log_sev_t::LFCNR)
+ .value("OCCLASS", log_sev_t::LOCCLASS)
+ .value("OCMSG", log_sev_t::LOCMSG)
+ .value("BLANK", log_sev_t::LBLANK)
+ .value("OBJCWORD", log_sev_t::LOBJCWORD)
+ .value("CHANGE", log_sev_t::LCHANGE)
+ .value("CONTTEXT", log_sev_t::LCONTTEXT)
+ .value("ANNOT", log_sev_t::LANNOT)
+ .value("OCBLK", log_sev_t::LOCBLK)
+ .value("FLPAREN", log_sev_t::LFLPAREN)
+ .value("OCMSGD", log_sev_t::LOCMSGD)
+ .value("INDENTAG", log_sev_t::LINDENTAG)
+ .value("NFD", log_sev_t::LNFD)
+ .value("JDBI", log_sev_t::LJDBI)
+ .value("SETPAR", log_sev_t::LSETPAR)
+ .value("SETTYP", log_sev_t::LSETTYP)
+ .value("SETFLG", log_sev_t::LSETFLG)
+ .value("NLFUNCT", log_sev_t::LNLFUNCT)
+ .value("CHUNK", log_sev_t::LCHUNK)
+ .value("GUY98", log_sev_t::LGUY98)
+ .value("GUY", log_sev_t::LGUY);
+
+ enum_<E_Token>("TokenType")
+ .value("NONE", E_Token::CT_NONE)
+ .value("EOF", E_Token::CT_EOF)
+ .value("UNKNOWN", E_Token::CT_UNKNOWN)
+ .value("JUNK", E_Token::CT_JUNK)
+ .value("WHITESPACE", E_Token::CT_WHITESPACE)
+ .value("SPACE", E_Token::CT_SPACE)
+ .value("NEWLINE", E_Token::CT_NEWLINE)
+ .value("NL_CONT", E_Token::CT_NL_CONT)
+ .value("COMMENT_CPP", E_Token::CT_COMMENT_CPP)
+ .value("COMMENT", E_Token::CT_COMMENT)
+ .value("COMMENT_MULTI", E_Token::CT_COMMENT_MULTI)
+ .value("COMMENT_EMBED", E_Token::CT_COMMENT_EMBED)
+ .value("COMMENT_START", E_Token::CT_COMMENT_START)
+ .value("COMMENT_END", E_Token::CT_COMMENT_END)
+ .value("COMMENT_WHOLE", E_Token::CT_COMMENT_WHOLE)
+ .value("COMMENT_ENDIF", E_Token::CT_COMMENT_ENDIF)
+ .value("IGNORED", E_Token::CT_IGNORED)
+ .value("WORD", E_Token::CT_WORD)
+ .value("NUMBER", E_Token::CT_NUMBER)
+ .value("NUMBER_FP", E_Token::CT_NUMBER_FP)
+ .value("STRING", E_Token::CT_STRING)
+ .value("STRING_MULTI", E_Token::CT_STRING_MULTI)
+ .value("IF", E_Token::CT_IF)
+ .value("ELSE", E_Token::CT_ELSE)
+ .value("ELSEIF", E_Token::CT_ELSEIF)
+ .value("FOR", E_Token::CT_FOR)
+ .value("WHILE", E_Token::CT_WHILE)
+ .value("WHILE_OF_DO", E_Token::CT_WHILE_OF_DO)
+ .value("SWITCH", E_Token::CT_SWITCH)
+ .value("CASE", E_Token::CT_CASE)
+ .value("DO", E_Token::CT_DO)
+ .value("SYNCHRONIZED", E_Token::CT_SYNCHRONIZED)
+ .value("VOLATILE", E_Token::CT_VOLATILE)
+ .value("TYPEDEF", E_Token::CT_TYPEDEF)
+ .value("STRUCT", E_Token::CT_STRUCT)
+ .value("ENUM", E_Token::CT_ENUM)
+ .value("ENUM_CLASS", E_Token::CT_ENUM_CLASS)
+ .value("SIZEOF", E_Token::CT_SIZEOF)
+ .value("DECLTYPE", E_Token::CT_DECLTYPE)
+ .value("RETURN", E_Token::CT_RETURN)
+ .value("BREAK", E_Token::CT_BREAK)
+ .value("UNION", E_Token::CT_UNION)
+ .value("GOTO", E_Token::CT_GOTO)
+ .value("CONTINUE", E_Token::CT_CONTINUE)
+ .value("C_CAST", E_Token::CT_C_CAST)
+ .value("CPP_CAST", E_Token::CT_CPP_CAST)
+ .value("D_CAST", E_Token::CT_D_CAST)
+ .value("TYPE_CAST", E_Token::CT_TYPE_CAST)
+ .value("TYPENAME", E_Token::CT_TYPENAME)
+ .value("TEMPLATE", E_Token::CT_TEMPLATE)
+ .value("WHERE_SPEC", E_Token::CT_WHERE_SPEC)
+ .value("ASSIGN", E_Token::CT_ASSIGN)
+ .value("ASSIGN_NL", E_Token::CT_ASSIGN_NL)
+ .value("SASSIGN", E_Token::CT_SASSIGN)
+ .value("ASSIGN_DEFAULT_ARG", E_Token::CT_ASSIGN_DEFAULT_ARG)
+ .value("ASSIGN_FUNC_PROTO", E_Token::CT_ASSIGN_FUNC_PROTO)
+ .value("COMPARE", E_Token::CT_COMPARE)
+ .value("SCOMPARE", E_Token::CT_SCOMPARE)
+ .value("BOOL", E_Token::CT_BOOL)
+ .value("SBOOL", E_Token::CT_SBOOL)
+ .value("ARITH", E_Token::CT_ARITH)
+ .value("SARITH", E_Token::CT_SARITH)
+ .value("CARET", E_Token::CT_CARET)
+ .value("DEREF", E_Token::CT_DEREF)
+ .value("INCDEC_BEFORE", E_Token::CT_INCDEC_BEFORE)
+ .value("INCDEC_AFTER", E_Token::CT_INCDEC_AFTER)
+ .value("MEMBER", E_Token::CT_MEMBER)
+ .value("DC_MEMBER", E_Token::CT_DC_MEMBER)
+ .value("C99_MEMBER", E_Token::CT_C99_MEMBER)
+ .value("INV", E_Token::CT_INV)
+ .value("DESTRUCTOR", E_Token::CT_DESTRUCTOR)
+ .value("NOT", E_Token::CT_NOT)
+ .value("D_TEMPLATE", E_Token::CT_D_TEMPLATE)
+ .value("ADDR", E_Token::CT_ADDR)
+ .value("NEG", E_Token::CT_NEG)
+ .value("POS", E_Token::CT_POS)
+ .value("STAR", E_Token::CT_STAR)
+ .value("PLUS", E_Token::CT_PLUS)
+ .value("MINUS", E_Token::CT_MINUS)
+ .value("AMP", E_Token::CT_AMP)
+ .value("BYREF", E_Token::CT_BYREF)
+ .value("POUND", E_Token::CT_POUND)
+ .value("PREPROC", E_Token::CT_PREPROC)
+ .value("PREPROC_INDENT", E_Token::CT_PREPROC_INDENT)
+ .value("PREPROC_BODY", E_Token::CT_PREPROC_BODY)
+ .value("PP", E_Token::CT_PP)
+ .value("ELLIPSIS", E_Token::CT_ELLIPSIS)
+ .value("RANGE", E_Token::CT_RANGE)
+ .value("NULLCOND", E_Token::CT_NULLCOND)
+ .value("SEMICOLON", E_Token::CT_SEMICOLON)
+ .value("VSEMICOLON", E_Token::CT_VSEMICOLON)
+ .value("COLON", E_Token::CT_COLON)
+ .value("ASM_COLON", E_Token::CT_ASM_COLON)
+ .value("CASE_COLON", E_Token::CT_CASE_COLON)
+ .value("CLASS_COLON", E_Token::CT_CLASS_COLON)
+ .value("CONSTR_COLON", E_Token::CT_CONSTR_COLON)
+ .value("D_ARRAY_COLON", E_Token::CT_D_ARRAY_COLON)
+ .value("COND_COLON", E_Token::CT_COND_COLON)
+ .value("WHERE_COLON", E_Token::CT_WHERE_COLON)
+ .value("QUESTION", E_Token::CT_QUESTION)
+ .value("COMMA", E_Token::CT_COMMA)
+ .value("ASM", E_Token::CT_ASM)
+ .value("ATTRIBUTE", E_Token::CT_ATTRIBUTE)
+ .value("AUTORELEASEPOOL", E_Token::CT_AUTORELEASEPOOL)
+ .value("OC_AVAILABLE", E_Token::CT_OC_AVAILABLE)
+ .value("OC_AVAILABLE_VALUE", E_Token::CT_OC_AVAILABLE_VALUE)
+ .value("CATCH", E_Token::CT_CATCH)
+ .value("WHEN", E_Token::CT_WHEN)
+ .value("WHERE", E_Token::CT_WHERE)
+ .value("CLASS", E_Token::CT_CLASS)
+ .value("DELETE", E_Token::CT_DELETE)
+ .value("EXPORT", E_Token::CT_EXPORT)
+ .value("FRIEND", E_Token::CT_FRIEND)
+ .value("NAMESPACE", E_Token::CT_NAMESPACE)
+ .value("PACKAGE", E_Token::CT_PACKAGE)
+ .value("NEW", E_Token::CT_NEW)
+ .value("OPERATOR", E_Token::CT_OPERATOR)
+ .value("OPERATOR_VAL", E_Token::CT_OPERATOR_VAL)
+ .value("ASSIGN_OPERATOR", E_Token::CT_ASSIGN_OPERATOR)
+ .value("ACCESS", E_Token::CT_ACCESS)
+ .value("ACCESS_COLON", E_Token::CT_ACCESS_COLON)
+ .value("THROW", E_Token::CT_THROW)
+ .value("NOEXCEPT", E_Token::CT_NOEXCEPT)
+ .value("TRY", E_Token::CT_TRY)
+ .value("BRACED_INIT_LIST", E_Token::CT_BRACED_INIT_LIST)
+ .value("USING", E_Token::CT_USING)
+ .value("USING_STMT", E_Token::CT_USING_STMT)
+ .value("USING_ALIAS", E_Token::CT_USING_ALIAS)
+ .value("D_WITH", E_Token::CT_D_WITH)
+ .value("D_MODULE", E_Token::CT_D_MODULE)
+ .value("SUPER", E_Token::CT_SUPER)
+ .value("DELEGATE", E_Token::CT_DELEGATE)
+ .value("BODY", E_Token::CT_BODY)
+ .value("DEBUG", E_Token::CT_DEBUG)
+ .value("DEBUGGER", E_Token::CT_DEBUGGER)
+ .value("INVARIANT", E_Token::CT_INVARIANT)
+ .value("UNITTEST", E_Token::CT_UNITTEST)
+ .value("UNSAFE", E_Token::CT_UNSAFE)
+ .value("FINALLY", E_Token::CT_FINALLY)
+ .value("FIXED", E_Token::CT_FIXED)
+ .value("IMPORT", E_Token::CT_IMPORT)
+ .value("D_SCOPE", E_Token::CT_D_SCOPE)
+ .value("D_SCOPE_IF", E_Token::CT_D_SCOPE_IF)
+ .value("LAZY", E_Token::CT_LAZY)
+ .value("D_MACRO", E_Token::CT_D_MACRO)
+ .value("D_VERSION", E_Token::CT_D_VERSION)
+ .value("D_VERSION_IF", E_Token::CT_D_VERSION_IF)
+ .value("PAREN_OPEN", E_Token::CT_PAREN_OPEN)
+ .value("PAREN_CLOSE", E_Token::CT_PAREN_CLOSE)
+ .value("ANGLE_OPEN", E_Token::CT_ANGLE_OPEN)
+ .value("ANGLE_CLOSE", E_Token::CT_ANGLE_CLOSE)
+ .value("SPAREN_OPEN", E_Token::CT_SPAREN_OPEN)
+ .value("SPAREN_CLOSE", E_Token::CT_SPAREN_CLOSE)
+ .value("FPAREN_OPEN", E_Token::CT_FPAREN_OPEN)
+ .value("FPAREN_CLOSE", E_Token::CT_FPAREN_CLOSE)
+ .value("TPAREN_OPEN", E_Token::CT_TPAREN_OPEN)
+ .value("TPAREN_CLOSE", E_Token::CT_TPAREN_CLOSE)
+ .value("BRACE_OPEN", E_Token::CT_BRACE_OPEN)
+ .value("BRACE_CLOSE", E_Token::CT_BRACE_CLOSE)
+ .value("VBRACE_OPEN", E_Token::CT_VBRACE_OPEN)
+ .value("VBRACE_CLOSE", E_Token::CT_VBRACE_CLOSE)
+ .value("SQUARE_OPEN", E_Token::CT_SQUARE_OPEN)
+ .value("SQUARE_CLOSE", E_Token::CT_SQUARE_CLOSE)
+ .value("TSQUARE", E_Token::CT_TSQUARE)
+ .value("MACRO_OPEN", E_Token::CT_MACRO_OPEN)
+ .value("MACRO_CLOSE", E_Token::CT_MACRO_CLOSE)
+ .value("MACRO_ELSE", E_Token::CT_MACRO_ELSE)
+ .value("LABEL", E_Token::CT_LABEL)
+ .value("LABEL_COLON", E_Token::CT_LABEL_COLON)
+ .value("FUNCTION", E_Token::CT_FUNCTION)
+ .value("FUNC_CALL", E_Token::CT_FUNC_CALL)
+ .value("FUNC_CALL_USER", E_Token::CT_FUNC_CALL_USER)
+ .value("FUNC_DEF", E_Token::CT_FUNC_DEF)
+ .value("FUNC_TYPE", E_Token::CT_FUNC_TYPE)
+ .value("FUNC_VAR", E_Token::CT_FUNC_VAR)
+ .value("FUNC_PROTO", E_Token::CT_FUNC_PROTO)
+ .value("FUNC_START", E_Token::CT_FUNC_START)
+ .value("FUNC_CLASS_DEF", E_Token::CT_FUNC_CLASS_DEF)
+ .value("FUNC_CLASS_PROTO", E_Token::CT_FUNC_CLASS_PROTO)
+ .value("FUNC_CTOR_VAR", E_Token::CT_FUNC_CTOR_VAR)
+ .value("FUNC_WRAP", E_Token::CT_FUNC_WRAP)
+ .value("PROTO_WRAP", E_Token::CT_PROTO_WRAP)
+ .value("MACRO_FUNC", E_Token::CT_MACRO_FUNC)
+ .value("MACRO", E_Token::CT_MACRO)
+ .value("QUALIFIER", E_Token::CT_QUALIFIER)
+ .value("EXTERN", E_Token::CT_EXTERN)
+ .value("DECLSPEC", E_Token::CT_DECLSPEC)
+ .value("ALIGN", E_Token::CT_ALIGN)
+ .value("TYPE", E_Token::CT_TYPE)
+ .value("PTR_TYPE", E_Token::CT_PTR_TYPE)
+ .value("TYPE_WRAP", E_Token::CT_TYPE_WRAP)
+ .value("CPP_LAMBDA", E_Token::CT_CPP_LAMBDA)
+ .value("CPP_LAMBDA_RET", E_Token::CT_CPP_LAMBDA_RET)
+ .value("TRAILING_RET", E_Token::CT_TRAILING_RET)
+ .value("BIT_COLON", E_Token::CT_BIT_COLON)
+ .value("OC_DYNAMIC", E_Token::CT_OC_DYNAMIC)
+ .value("OC_END", E_Token::CT_OC_END)
+ .value("OC_IMPL", E_Token::CT_OC_IMPL)
+ .value("OC_INTF", E_Token::CT_OC_INTF)
+ .value("OC_PROTOCOL", E_Token::CT_OC_PROTOCOL)
+ .value("OC_PROTO_LIST", E_Token::CT_OC_PROTO_LIST)
+ .value("OC_GENERIC_SPEC", E_Token::CT_OC_GENERIC_SPEC)
+ .value("OC_PROPERTY", E_Token::CT_OC_PROPERTY)
+ .value("OC_CLASS", E_Token::CT_OC_CLASS)
+ .value("OC_CLASS_EXT", E_Token::CT_OC_CLASS_EXT)
+ .value("OC_CATEGORY", E_Token::CT_OC_CATEGORY)
+ .value("OC_SCOPE", E_Token::CT_OC_SCOPE)
+ .value("OC_MSG", E_Token::CT_OC_MSG)
+ .value("OC_MSG_CLASS", E_Token::CT_OC_MSG_CLASS)
+ .value("OC_MSG_FUNC", E_Token::CT_OC_MSG_FUNC)
+ .value("OC_MSG_NAME", E_Token::CT_OC_MSG_NAME)
+ .value("OC_MSG_SPEC", E_Token::CT_OC_MSG_SPEC)
+ .value("OC_MSG_DECL", E_Token::CT_OC_MSG_DECL)
+ .value("OC_RTYPE", E_Token::CT_OC_RTYPE)
+ .value("OC_ATYPE", E_Token::CT_OC_ATYPE)
+ .value("OC_COLON", E_Token::CT_OC_COLON)
+ .value("OC_DICT_COLON", E_Token::CT_OC_DICT_COLON)
+ .value("OC_SEL", E_Token::CT_OC_SEL)
+ .value("OC_SEL_NAME", E_Token::CT_OC_SEL_NAME)
+ .value("OC_BLOCK", E_Token::CT_OC_BLOCK)
+ .value("OC_BLOCK_ARG", E_Token::CT_OC_BLOCK_ARG)
+ .value("OC_BLOCK_TYPE", E_Token::CT_OC_BLOCK_TYPE)
+ .value("OC_BLOCK_EXPR", E_Token::CT_OC_BLOCK_EXPR)
+ .value("OC_BLOCK_CARET", E_Token::CT_OC_BLOCK_CARET)
+ .value("OC_AT", E_Token::CT_OC_AT)
+ .value("OC_PROPERTY_ATTR", E_Token::CT_OC_PROPERTY_ATTR)
+ .value("PP_DEFINE", E_Token::CT_PP_DEFINE)
+ .value("PP_DEFINED", E_Token::CT_PP_DEFINED)
+ .value("PP_INCLUDE", E_Token::CT_PP_INCLUDE)
+ .value("PP_IF", E_Token::CT_PP_IF)
+ .value("PP_ELSE", E_Token::CT_PP_ELSE)
+ .value("PP_ENDIF", E_Token::CT_PP_ENDIF)
+ .value("PP_ASSERT", E_Token::CT_PP_ASSERT)
+ .value("PP_EMIT", E_Token::CT_PP_EMIT)
+ .value("PP_ENDINPUT", E_Token::CT_PP_ENDINPUT)
+ .value("PP_ERROR", E_Token::CT_PP_ERROR)
+ .value("PP_FILE", E_Token::CT_PP_FILE)
+ .value("PP_LINE", E_Token::CT_PP_LINE)
+ .value("PP_SECTION", E_Token::CT_PP_SECTION)
+ .value("PP_ASM", E_Token::CT_PP_ASM)
+ .value("PP_UNDEF", E_Token::CT_PP_UNDEF)
+ .value("PP_PROPERTY", E_Token::CT_PP_PROPERTY)
+ .value("PP_BODYCHUNK", E_Token::CT_PP_BODYCHUNK)
+ .value("PP_PRAGMA", E_Token::CT_PP_PRAGMA)
+ .value("PP_REGION", E_Token::CT_PP_REGION)
+ .value("PP_ENDREGION", E_Token::CT_PP_ENDREGION)
+ .value("PP_REGION_INDENT", E_Token::CT_PP_REGION_INDENT)
+ .value("PP_IF_INDENT", E_Token::CT_PP_IF_INDENT)
+ .value("PP_IGNORE", E_Token::CT_PP_IGNORE)
+ .value("PP_OTHER", E_Token::CT_PP_OTHER)
+ .value("CHAR", E_Token::CT_CHAR)
+ .value("DEFINED", E_Token::CT_DEFINED)
+ .value("FORWARD", E_Token::CT_FORWARD)
+ .value("NATIVE", E_Token::CT_NATIVE)
+ .value("STATE", E_Token::CT_STATE)
+ .value("STOCK", E_Token::CT_STOCK)
+ .value("TAGOF", E_Token::CT_TAGOF)
+ .value("DOT", E_Token::CT_DOT)
+ .value("TAG", E_Token::CT_TAG)
+ .value("TAG_COLON", E_Token::CT_TAG_COLON)
+ .value("LOCK", E_Token::CT_LOCK)
+ .value("AS", E_Token::CT_AS)
+ .value("IN", E_Token::CT_IN)
+ .value("BRACED", E_Token::CT_BRACED)
+ .value("THIS", E_Token::CT_THIS)
+ .value("BASE", E_Token::CT_BASE)
+ .value("DEFAULT", E_Token::CT_DEFAULT)
+ .value("GETSET", E_Token::CT_GETSET)
+ .value("GETSET_EMPTY", E_Token::CT_GETSET_EMPTY)
+ .value("CONCAT", E_Token::CT_CONCAT)
+ .value("CS_SQ_STMT", E_Token::CT_CS_SQ_STMT)
+ .value("CS_SQ_COLON", E_Token::CT_CS_SQ_COLON)
+ .value("CS_PROPERTY", E_Token::CT_CS_PROPERTY)
+ .value("SQL_EXEC", E_Token::CT_SQL_EXEC)
+ .value("SQL_BEGIN", E_Token::CT_SQL_BEGIN)
+ .value("SQL_END", E_Token::CT_SQL_END)
+ .value("SQL_WORD", E_Token::CT_SQL_WORD)
+ .value("SQL_ASSIGN", E_Token::CT_SQL_ASSIGN)
+ .value("CONSTRUCT", E_Token::CT_CONSTRUCT)
+ .value("LAMBDA", E_Token::CT_LAMBDA)
+ .value("ASSERT", E_Token::CT_ASSERT)
+ .value("ANNOTATION", E_Token::CT_ANNOTATION)
+ .value("FOR_COLON", E_Token::CT_FOR_COLON)
+ .value("DOUBLE_BRACE", E_Token::CT_DOUBLE_BRACE)
+ .value("CNG_HASINC", E_Token::CT_CNG_HASINC)
+ .value("CNG_HASINCN", E_Token::CT_CNG_HASINCN)
+ .value("Q_EMIT", E_Token::CT_Q_EMIT)
+ .value("Q_FOREACH", E_Token::CT_Q_FOREACH)
+ .value("Q_FOREVER", E_Token::CT_Q_FOREVER)
+ .value("Q_GADGET", E_Token::CT_Q_GADGET)
+ .value("Q_OBJECT", E_Token::CT_Q_OBJECT)
+ .value("MODE", E_Token::CT_MODE)
+ .value("DI", E_Token::CT_DI)
+ .value("HI", E_Token::CT_HI)
+ .value("QI", E_Token::CT_QI)
+ .value("SI", E_Token::CT_SI)
+ .value("NOTHROW", E_Token::CT_NOTHROW)
+ .value("WORD_", E_Token::CT_WORD_);
+
+ enum_<lang_flag_e>("Language")
+ .value("C", lang_flag_e::LANG_C)
+ .value("CPP", lang_flag_e::LANG_CPP)
+ .value("D", lang_flag_e::LANG_D)
+ .value("CS", lang_flag_e::LANG_CS)
+ .value("JAVA", lang_flag_e::LANG_JAVA)
+ .value("OC", lang_flag_e::LANG_OC)
+ .value("VALA", lang_flag_e::LANG_VALA)
+ .value("PAWN", lang_flag_e::LANG_PAWN)
+ .value("ECMA", lang_flag_e::LANG_ECMA);
+
+ // endregion enum bindings
+
+ register_vector<std::string>("strings");
+
+ class_<GenericOption>("GenericOption")
+ .function("type", &GenericOption::type)
+ .function("description", select_overload<std::string(const GenericOption &)>(
+ [](const GenericOption &o)
+ {
+ return((o.description() != nullptr) ? string(o.description()) : "");
+ }))
+ .function("name", select_overload<std::string(const GenericOption &)>(
+ [](const GenericOption &o)
+ {
+ return((o.name() != nullptr) ? string(o.name()) : "");
+ }))
+ .function("possible_values", select_overload<std::vector<std::string>(const GenericOption &)>(
+ [](const GenericOption &o)
+ {
+ std::vector<std::string> strings;
+
+ auto ptr = o.possibleValues();
+
+ for (auto c = *ptr; c; c = *++ptr)
+ {
+ strings.push_back(std::string{ c });
+ }
+
+ return(strings);
+ }))
+ .function("default", &GenericOption::defaultStr)
+ .function("min", &GenericOption::minStr)
+ .function("max", &GenericOption::maxStr)
+ .function("is_default", &GenericOption::isDefault)
+ .function("reset", &GenericOption::reset)
+ .function("set", select_overload<bool(GenericOption &o, const std::string &s)>(
+ [](GenericOption &o, const std::string &s)
+ {
+ return(o.read(s.c_str()));
+ }))
+ .function("value", &GenericOption::str);
+
+ register_vector<GenericOption *>("options");
+
+ class_<Option<iarf_e>, base<GenericOption> >("OptionIARF")
+ .function("value", &Option<iarf_e>::operator());
+
+ class_<Option<line_end_e>, base<GenericOption> >("OptionLineEnd")
+ .function("value", &Option<line_end_e>::operator());
+
+ class_<Option<token_pos_e>, base<GenericOption> >("OptionTokenPos")
+ .function("value", &Option<token_pos_e>::operator());
+
+ class_<Option<unsigned>, base<GenericOption> >("OptionUnsigned")
+ .function("value", &Option<unsigned>::operator());
+
+ class_<Option<signed>, base<GenericOption> >("OptionSigned")
+ .function("value", &Option<signed>::operator());
+
+ class_<Option<std::string>, base<GenericOption> >("OptionString")
+ .function("value", &Option<std::string>::operator());
+
+ class_<OptionGroup>("OptionGroup")
+ .property("description", select_overload<std::string(const OptionGroup &)>(
+ [](const OptionGroup &g)
+ {
+ return(std::string(g.description));
+ }))
+ .property("options", &OptionGroup::options);
+
+ register_vector<OptionGroup *>("groups");
+
+ emscripten::function("get_options", &get_options);
+ emscripten::function("get_groups", &get_groups);
+
+ emscripten::function("_initialize", &_initialize);
+ emscripten::function("destruct", &destruct);
+
+ emscripten::function("get_version", &get_version);
+
+ emscripten::function("add_keyword", &_add_keyword);
+ emscripten::function("clear_keywords", &clear_keywords);
+
+ emscripten::function("reset_options", &reset_options);
+ emscripten::function("option_reset_value", &reset_option);
+ emscripten::function("option_set_value", &set_option);
+ emscripten::function("option_get_value", &get_option);
+
+ emscripten::function("_load_config", &_loadConfig);
+ emscripten::function("show_config", select_overload<string(bool, bool)>(&show_config));
+ emscripten::function("show_config", select_overload<string(bool)>(&show_config));
+ emscripten::function("show_config", select_overload<string()>(&show_config));
+
+ emscripten::function("log_type_enable", &log_set_sev);
+ emscripten::function("log_type_show_name", &show_log_type);
+ emscripten::function("quiet", &set_quiet);
+
+ emscripten::function("_uncrustify", select_overload<intptr_t(intptr_t, lang_flag_e, bool, bool)>(&_uncrustify));
+ emscripten::function("_uncrustify", select_overload<intptr_t(intptr_t, lang_flag_e, bool)>(&_uncrustify));
+ emscripten::function("_uncrustify", select_overload<intptr_t(intptr_t, lang_flag_e)>(&_uncrustify));
+
+ emscripten::function("_debug", select_overload<intptr_t(intptr_t, lang_flag_e, bool)>(&_debug));
+ emscripten::function("_debug", select_overload<intptr_t(intptr_t, lang_flag_e)>(&_debug));
+};
+
+#endif
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/uncrustify_limits.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/uncrustify_limits.h
new file mode 100644
index 00000000..9f226870
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/uncrustify_limits.h
@@ -0,0 +1,19 @@
+#pragma once
+
+namespace uncrustify
+{
+
+namespace limits
+{
+
+static constexpr int MAX_OPTION_NAME_LEN = 32;
+static constexpr int AL_SIZE = 8000;
+static constexpr int MAX_KEYWORDS = 300;
+
+// uncrustify doesn't support more than one variable definition per line/ type,
+// the maximum level of pointer indirection is 3 (i.e., ***p).
+// TODO add some more limitations
+
+} // namespace limits
+
+} // namespace uncrustify
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/uncrustify_types.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/uncrustify_types.cpp
index bd57f2d5..bd57f2d5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/uncrustify_types.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/uncrustify_types.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/uncrustify_types.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/uncrustify_types.h
new file mode 100644
index 00000000..b0bdae8d
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/uncrustify_types.h
@@ -0,0 +1,284 @@
+/**
+ * @file uncrustify_types.h
+ *
+ * Defines some types for the uncrustify program
+ *
+ * @author Ben Gardner
+ * @license GPL v2+
+ */
+
+#ifndef UNCRUSTIFY_TYPES_H_INCLUDED
+#define UNCRUSTIFY_TYPES_H_INCLUDED
+
+#include "options.h"
+#include "pcf_flags.h"
+#include "token_enum.h" // E_Token
+#include "unc_text.h"
+#include "uncrustify_limits.h"
+
+#include <assert.h>
+#include <cstddef> // do get the definition of size_t
+
+#ifdef HAVE_UTIME_H
+#include <utime.h>
+#endif
+
+
+class ParseFrame;
+
+
+/**
+ * abbreviations used:
+ * SS = star style
+ */
+
+/**
+ * special strings to mark a part of the input file where
+ * uncrustify shall not change anything
+ */
+#define UNCRUSTIFY_OFF_TEXT " *INDENT-OFF*"
+#define UNCRUSTIFY_ON_TEXT " *INDENT-ON*"
+
+//! returns type (with removed reference) of a variable
+#define noref_decl_t(X) std::remove_reference<decltype((X))>::type
+
+//! returns type (with removed const and reference) of a variable
+#define nocref_decl_t(X) std::remove_const<noref_decl_t((X))>::type
+
+//! static casts Y to the type (with removed reference) of X
+#define s_cast_noref_decl_t(X, Y) static_cast<nocref_decl_t(X)>(Y)
+
+//! performs abs on Y after static casting it to the type (with removed reference) of X
+#define cast_abs(X, Y) s_cast_noref_decl_t(X, abs(Y))
+
+/**
+ * @brief Macro to inform the compiler that a variable is intentionally
+ * not in use.
+ *
+ * @param [in] variableName: The unused variable.
+ */
+#define UNUSED(variableName) ((void)variableName)
+
+
+//! Brace stage enum used in brace_cleanup
+enum class brace_stage_e : unsigned int
+{
+ NONE,
+ PAREN1, //! expected paren after if/catch (C++)/for/switch/synchronized/while
+ OP_PAREN1, //! optional paren after catch (C#)
+ WOD_PAREN, //! while of do parens
+ WOD_SEMI, //! semicolon after while of do
+ BRACE_DO, //! do
+ BRACE2, //! if/catch/else/finally/for/switch/synchronized/while
+ ELSE, //! expecting 'else' after 'if'
+ ELSEIF, //! expecting 'if' after 'else'
+ WHILE, //! expecting 'while' after 'do'
+ CATCH, //! expecting 'catch' or 'finally' after 'try'
+ CATCH_WHEN, //! optional 'when' after 'catch'
+};
+
+
+enum class char_encoding_e : unsigned int
+{
+ e_ASCII, //! 0-127
+ e_BYTE, //! 0-255, not UTF-8
+ e_UTF8, //! utf 8 bit wide
+ e_UTF16_LE, //! utf 16 bit wide, little endian
+ e_UTF16_BE //! utf 16 bit wide, big endian
+};
+
+
+class Chunk; //forward declaration
+
+
+/**
+ * Sort of like the aligning stuff, but the token indent is relative to the
+ * indent of another chunk. This is needed, as that chunk may be aligned and
+ * so the indent cannot be determined in the indent code.
+ */
+struct indent_ptr_t
+{
+ Chunk *ref;
+ int delta;
+};
+
+
+struct align_ptr_t
+{
+ Chunk *next; //! nullptr or the chunk that should be under this one
+ bool right_align; //! AlignStack.m_right_align
+ size_t star_style; //! AlignStack.m_star_style
+ size_t amp_style; //! AlignStack.m_amp_style
+ int gap; //! AlignStack.m_gap
+
+ /*
+ * col_adj is the amount to alter the column for the token.
+ * For example, a dangling '*' would be set to -1.
+ * A right-aligned word would be a positive value.
+ */
+ int col_adj;
+ Chunk *ref;
+ Chunk *start;
+};
+
+
+// for debugging purpose only
+typedef std::pair<size_t, char *> Track_nr; // track for "trackNumber" and "rule"
+typedef std::vector<Track_nr> track_list; // liste for many tracks
+
+//! list of all programming languages Uncrustify supports
+enum lang_flag_e
+{
+ LANG_C = 0x0001,
+ LANG_CPP = 0x0002,
+ LANG_D = 0x0004,
+ LANG_CS = 0x0008, //! C# (C-Sharp)
+ LANG_JAVA = 0x0010,
+ LANG_OC = 0x0020, //! Objective-C
+ LANG_VALA = 0x0040,
+ LANG_PAWN = 0x0080,
+ LANG_ECMA = 0x0100, //! ECMA Script (JavaScript)
+
+ LANG_ALLC = 0x017f, /** LANG_C | LANG_CPP | LANG_D | LANG_CS |
+ * LANG_JAVA | LANG_OC | LANG_VALA | LANG_ECMA */
+ LANG_ALL = 0x0fff, //! applies to all languages
+
+ FLAG_HDR = 0x2000, /*<< Header file for C family languages */
+ FLAG_DIG = 0x4000, //! digraph/trigraph
+ FLAG_PP = 0x8000, //! only appears in a preprocessor
+};
+
+//! Pattern classes for special keywords
+enum class pattern_class_e : unsigned int
+{
+ NONE,
+ BRACED, /** keyword + braced statement:
+ * do, try, finally, body, unittest, unsafe, volatile
+ * add, get, remove, set */
+ PBRACED, /** keyword + parens + braced statement:
+ * if, elseif, switch, for, while, synchronized,
+ * using, lock, with, version, CT_D_SCOPE_IF */
+ OPBRACED, /** keyword + optional parens + braced statement:
+ * catch, version, debug */
+ VBRACED, /** keyword + value + braced statement:
+ * namespace */
+ PAREN, /** keyword + parens:
+ * while-of-do */
+ OPPAREN, /** keyword + optional parens:
+ * invariant (D lang) */
+ ELSE, /** Special case of pattern_class_e::BRACED for handling CT_IF
+ * else */
+};
+
+//! used to link language keywords with some addition information
+struct chunk_tag_t
+{
+ const char *tag; //! name of the keyword e.g. "bool"
+ E_Token type; //! uncrustify type assigned to that keyword
+ size_t lang_flags; //! programming language that uses this keyword
+};
+
+
+struct align_t
+{
+ size_t col;
+ E_Token type;
+ size_t len; //! length of the token + space
+};
+
+//! holds information and data of a file
+struct file_mem
+{
+ std::vector<UINT8> raw; //! raw content of file
+ std::deque<int> data; //! processed content of file
+ bool bom;
+ char_encoding_e enc; //! character encoding of file ASCII, utf, etc.
+#ifdef HAVE_UTIME_H
+ struct utimbuf utb;
+#endif
+};
+
+enum class unc_stage_e : unsigned int
+{
+ TOKENIZE,
+ HEADER,
+ TOKENIZE_CLEANUP,
+ BRACE_CLEANUP,
+ FIX_SYMBOLS,
+ MARK_COMMENTS,
+ COMBINE_LABELS,
+ OTHER,
+ CLEANUP
+};
+
+struct cp_data_t
+{
+ std::deque<UINT8> *bout;
+ FILE *fout;
+ int last_char;
+ bool do_check;
+ unc_stage_e unc_stage;
+ int check_fail_cnt; //! total failure count
+ bool if_changed;
+
+ UINT32 error_count; //! counts how many errors occurred so far
+ std::string filename;
+
+ file_mem file_hdr; // for cmt_insert_file_header
+ file_mem file_ftr; // for cmt_insert_file_footer
+ file_mem func_hdr; // for cmt_insert_func_header
+ file_mem oc_msg_hdr; // for cmt_insert_oc_msg_header
+ file_mem class_hdr; // for cmt_insert_class_header
+ file_mem reflow_fold_regex; // for cmt_reflow_fold_regex_file
+
+ size_t lang_flags; //! defines the language of the source input
+ bool lang_forced; //! overwrites automatic language detection
+
+ bool unc_off;
+ bool unc_off_used; //! true if the `disable_processing_cmt` option was actively used in the processed file
+ UINT32 line_number;
+ size_t column; //! column for parsing
+ UINT16 spaces; //! space count on output
+
+ int ifdef_over_whole_file;
+
+ bool frag; //! activates code fragment option
+ UINT32 frag_cols;
+
+ // stuff to auto-detect line endings
+ UINT32 le_counts[uncrustify::line_end_styles];
+ unc_text newline;
+
+ int did_newline; //! flag indicates if a newline was added or converted
+ E_Token in_preproc;
+ int preproc_ncnl_count;
+ bool output_trailspace;
+ bool output_tab_as_space;
+
+ bool bom;
+ char_encoding_e enc;
+
+ // bumped up when a line is split or indented
+ int changes;
+ int pass_count; //! indicates how often the chunk list shall be processed
+
+ align_t al[uncrustify::limits::AL_SIZE];
+ size_t al_cnt;
+ bool al_c99_array;
+
+ bool warned_unable_string_replace_tab_chars;
+
+ int pp_level; // TODO: can this ever be -1?
+
+ const char *phase_name;
+ const char *dumped_file;
+ const char *html_file = nullptr; // for debugging purpose only
+};
+
+extern cp_data_t cpd; // TODO: can we avoid this external variable?
+
+const char *get_brace_stage_name(brace_stage_e brace_stage);
+
+const char *get_unc_stage_name(unc_stage_e unc_stage);
+
+#endif /* UNCRUSTIFY_TYPES_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/uncrustify_version.h.in b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/uncrustify_version.h.in
index 079e0fa6..079e0fa6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/uncrustify_version.h.in
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/uncrustify_version.h.in
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/unicode.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/unicode.cpp
index 172cda28..172cda28 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/unicode.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/unicode.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/unicode.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/unicode.h
index e9cbd97c..e9cbd97c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/unicode.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/unicode.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/universalindentgui.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/universalindentgui.cpp
index eff612be..eff612be 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/universalindentgui.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/universalindentgui.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/universalindentgui.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/universalindentgui.h
index 35a65167..35a65167 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/universalindentgui.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/universalindentgui.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/width.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/width.cpp
new file mode 100644
index 00000000..a3dbeab4
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/width.cpp
@@ -0,0 +1,923 @@
+/**
+ * @file width.cpp
+ * Limits line width.
+ *
+ * @author Ben Gardner
+ * @license GPL v2+
+ */
+
+#include "width.h"
+
+#include "indent.h"
+#include "newlines.h"
+#include "prototypes.h"
+
+
+constexpr static auto LCURRENT = LSPLIT;
+
+using namespace uncrustify;
+
+
+/**
+ * abbreviations used:
+ * - fparen = function parenthesis
+ */
+
+struct cw_entry
+{
+ Chunk *pc;
+ size_t pri;
+};
+
+
+struct token_pri
+{
+ E_Token tok;
+ size_t pri;
+};
+
+
+static inline bool is_past_width(Chunk *pc);
+
+
+//! Split right after the chunk
+static void split_before_chunk(Chunk *pc);
+
+
+static size_t get_split_pri(E_Token tok);
+
+
+/**
+ * Checks to see if pc is a better spot to split.
+ * This should only be called going BACKWARDS (ie prev)
+ * A lower level wins
+ *
+ * Splitting Preference:
+ * - semicolon
+ * - comma
+ * - boolean op
+ * - comparison
+ * - arithmetic op
+ * - assignment
+ * - concatenated strings
+ * - ? :
+ * - function open paren not followed by close paren
+ */
+static void try_split_here(cw_entry &ent, Chunk *pc);
+
+
+/**
+ * Scan backwards to find the most appropriate spot to split the line
+ * and insert a newline.
+ *
+ * See if this needs special function handling.
+ * Scan backwards and find the best token for the split.
+ *
+ * @param start The first chunk that exceeded the limit
+ */
+static bool split_line(Chunk *pc);
+
+
+/**
+ * Figures out where to split a function def/proto/call
+ *
+ * For function prototypes and definition. Also function calls where
+ * level == brace_level:
+ * - find the open function parenthesis
+ * + if it doesn't have a newline right after it
+ * * see if all parameters will fit individually after the paren
+ * * if not, throw a newline after the open paren & return
+ * - scan backwards to the open fparen or comma
+ * + if there isn't a newline after that item, add one & return
+ * + otherwise, add a newline before the start token
+ *
+ * @param start the offending token
+ * @return the token that should have a newline
+ * inserted before it
+ */
+static void split_fcn_params(Chunk *start);
+
+
+/**
+ * Figures out where to split a template
+ *
+ *
+ * @param start the offending token
+ */
+static void split_template(Chunk *start);
+
+
+/**
+ * Splits the parameters at every comma that is at the fparen level.
+ *
+ * @param start the offending token
+ */
+static void split_fcn_params_full(Chunk *start);
+
+
+/**
+ * A for statement is too long.
+ * Step backwards and forwards to find the semicolons
+ * Try splitting at the semicolons first.
+ * If that doesn't work, then look for a comma at paren level.
+ * If that doesn't work, then look for an assignment at paren level.
+ * If that doesn't work, then give up.
+ */
+static void split_for_stmt(Chunk *start);
+
+
+static inline bool is_past_width(Chunk *pc)
+{
+ // allow char to sit at last column by subtracting 1
+ LOG_FMT(LSPLIT, "%s(%d): orig_line is %zu, orig_col is %zu, for %s\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text());
+ log_rule_B("code_width");
+ return((pc->column + pc->Len() - 1) > options::code_width());
+}
+
+
+static void split_before_chunk(Chunk *pc)
+{
+ LOG_FUNC_ENTRY();
+ LOG_FMT(LSPLIT, "%s(%d): Text() '%s'\n", __func__, __LINE__, pc->Text());
+
+ if ( !chunk_is_newline(pc)
+ && !chunk_is_newline(pc->GetPrev()))
+ {
+ newline_add_before(pc);
+ // reindent needs to include the indent_continue value and was off by one
+ log_rule_B("indent_columns");
+ log_rule_B("indent_continue");
+ reindent_line(pc, pc->brace_level * options::indent_columns() +
+ abs(options::indent_continue()) + 1);
+ cpd.changes++;
+ }
+}
+
+
+void do_code_width(void)
+{
+ LOG_FUNC_ENTRY();
+ LOG_FMT(LSPLIT, "%s(%d)\n", __func__, __LINE__);
+
+ for (Chunk *pc = Chunk::GetHead(); pc->IsNotNullChunk(); pc = pc->GetNext())
+ {
+ if ( !chunk_is_newline(pc)
+ && !pc->IsComment()
+ && chunk_is_not_token(pc, CT_SPACE)
+ && is_past_width(pc))
+ {
+ if ( chunk_is_token(pc, CT_VBRACE_CLOSE) // don't break if a vbrace close
+ && chunk_is_last_on_line(pc)) // is the last chunk on its line
+ {
+ continue;
+ }
+ bool split_OK = split_line(pc);
+
+ if (split_OK)
+ {
+ LOG_FMT(LSPLIT, "%s(%d): orig_line is %zu, orig_col is %zu, Text() '%s'\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text());
+ }
+ else
+ {
+ LOG_FMT(LSPLIT, "%s(%d): Bailed! orig_line is %zu, orig_col is %zu, Text() '%s'\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->Text());
+ break;
+ }
+ }
+ }
+}
+
+
+static const token_pri pri_table[] =
+{
+ { CT_SEMICOLON, 1 },
+ { CT_COMMA, 2 },
+ { CT_BOOL, 3 },
+ { CT_COMPARE, 4 },
+ { CT_SHIFT, 5 },
+ { CT_ARITH, 6 },
+ { CT_CARET, 7 },
+ { CT_ASSIGN, 8 },
+ { CT_STRING, 9 },
+ { CT_FOR_COLON, 10 },
+ //{ CT_DC_MEMBER, 11 },
+ //{ CT_MEMBER, 11 },
+ { CT_QUESTION, 20 }, // allow break in ? : for ls_code_width
+ { CT_COND_COLON, 20 },
+ { CT_FPAREN_OPEN, 21 }, // break after function open paren not followed by close paren
+ { CT_QUALIFIER, 25 },
+ { CT_CLASS, 25 },
+ { CT_STRUCT, 25 },
+ { CT_TYPE, 25 },
+ { CT_TYPENAME, 25 },
+ { CT_VOLATILE, 25 },
+};
+
+
+static size_t get_split_pri(E_Token tok)
+{
+ for (auto token : pri_table)
+ {
+ if (token.tok == tok)
+ {
+ return(token.pri);
+ }
+ }
+
+ return(0);
+}
+
+
+static void try_split_here(cw_entry &ent, Chunk *pc)
+{
+ LOG_FUNC_ENTRY();
+
+ LOG_FMT(LSPLIT, "%s(%d): at %s, orig_col=%zu\n", __func__, __LINE__, pc->Text(), pc->orig_col);
+ size_t pc_pri = get_split_pri(pc->type);
+
+ LOG_FMT(LSPLIT, "%s(%d): pc_pri is %zu\n", __func__, __LINE__, pc_pri);
+
+ if (pc_pri == 0)
+ {
+ LOG_FMT(LSPLIT, "%s(%d): pc_pri is 0, return\n", __func__, __LINE__);
+ return;
+ }
+ LOG_FMT(LSPLIT, "%s(%d):\n", __func__, __LINE__);
+ // Can't split after a newline
+ Chunk *prev = pc->GetPrev();
+
+ if ( prev == nullptr
+ || ( chunk_is_newline(prev)
+ && chunk_is_not_token(pc, CT_STRING)))
+ {
+ if (prev != nullptr)
+ {
+ LOG_FMT(LSPLIT, "%s(%d): Can't split after a newline, orig_line is %zu, return\n",
+ __func__, __LINE__, prev->orig_line);
+ }
+ return;
+ }
+ LOG_FMT(LSPLIT, "%s(%d):\n", __func__, __LINE__);
+
+ // Can't split a function without arguments
+ if (chunk_is_token(pc, CT_FPAREN_OPEN))
+ {
+ Chunk *next = pc->GetNext();
+
+ if (chunk_is_token(next, CT_FPAREN_CLOSE))
+ {
+ LOG_FMT(LSPLIT, "%s(%d): Can't split a function without arguments, return\n", __func__, __LINE__);
+ return;
+ }
+ }
+ LOG_FMT(LSPLIT, "%s(%d):\n", __func__, __LINE__);
+
+ // Only split concatenated strings
+ if (chunk_is_token(pc, CT_STRING))
+ {
+ Chunk *next = pc->GetNext();
+
+ if (chunk_is_not_token(next, CT_STRING))
+ {
+ LOG_FMT(LSPLIT, "%s(%d): Only split concatenated strings, return\n", __func__, __LINE__);
+ return;
+ }
+ }
+ LOG_FMT(LSPLIT, "%s(%d):\n", __func__, __LINE__);
+
+ // keep common groupings unless ls_code_width
+ log_rule_B("ls_code_width");
+
+ if ( !options::ls_code_width()
+ && pc_pri >= 20)
+ {
+ LOG_FMT(LSPLIT, "%s(%d): keep common groupings unless ls_code_width, return\n", __func__, __LINE__);
+ return;
+ }
+ LOG_FMT(LSPLIT, "%s(%d):\n", __func__, __LINE__);
+
+ // don't break after last term of a qualified type
+ if (pc_pri == 25)
+ {
+ Chunk *next = pc->GetNext();
+
+ if ( chunk_is_not_token(next, CT_WORD)
+ && (get_split_pri(next->type) != 25))
+ {
+ LOG_FMT(LSPLIT, "%s(%d): don't break after last term of a qualified type, return\n", __func__, __LINE__);
+ return;
+ }
+ }
+ LOG_FMT(LSPLIT, "%s(%d):\n", __func__, __LINE__);
+ // Check levels first
+ bool change = false;
+
+ if ( ent.pc == nullptr
+ || pc->level < ent.pc->level)
+ {
+ LOG_FMT(LSPLIT, "%s(%d):\n", __func__, __LINE__);
+ change = true;
+ }
+ else
+ {
+ if (pc_pri < ent.pri)
+ {
+ LOG_FMT(LSPLIT, "%s(%d):\n", __func__, __LINE__);
+ change = true;
+ }
+ }
+ LOG_FMT(LSPLIT, "%s(%d): change is %s\n", __func__, __LINE__, change ? "TRUE" : "FALSE");
+
+ if (change)
+ {
+ LOG_FMT(LSPLIT, "%s(%d): do the change\n", __func__, __LINE__);
+ ent.pc = pc;
+ ent.pri = pc_pri;
+ }
+} // try_split_here
+
+
+static bool split_line(Chunk *start)
+{
+ LOG_FUNC_ENTRY();
+ LOG_FMT(LSPLIT, "%s(%d): start->Text() '%s', orig_line is %zu, orig_col is %zu, type is %s\n",
+ __func__, __LINE__, start->Text(), start->orig_line, start->orig_col, get_token_name(start->type));
+ LOG_FMT(LSPLIT, " start->flags ");
+ log_pcf_flags(LSPLIT, start->flags);
+ LOG_FMT(LSPLIT, " start->parent_type %s, (PCF_IN_FCN_DEF is %s), (PCF_IN_FCN_CALL is %s)\n",
+ get_token_name(get_chunk_parent_type(start)),
+ start->flags.test((PCF_IN_FCN_DEF)) ? "TRUE" : "FALSE",
+ start->flags.test((PCF_IN_FCN_CALL)) ? "TRUE" : "FALSE");
+
+ // break at maximum line length if ls_code_width is true
+ // Issue #2432
+ if (start->flags.test(PCF_ONE_LINER))
+ {
+ LOG_FMT(LSPLIT, "%s(%d): ** ONCE LINER SPLIT **\n", __func__, __LINE__);
+ undo_one_liner(start);
+ newlines_cleanup_braces(false);
+ // Issue #1352
+ cpd.changes++;
+ return(false);
+ }
+ LOG_FMT(LSPLIT, "%s(%d): before ls_code_width\n", __func__, __LINE__);
+
+ log_rule_B("ls_code_width");
+
+ if (options::ls_code_width())
+ {
+ }
+ // Check to see if we are in a for statement
+ else if (start->flags.test(PCF_IN_FOR))
+ {
+ LOG_FMT(LSPLIT, " ** FOR SPLIT **\n");
+ split_for_stmt(start);
+
+ if (!is_past_width(start))
+ {
+ return(true);
+ }
+ LOG_FMT(LSPLIT, "%s(%d): for split didn't work\n", __func__, __LINE__);
+ }
+
+ /*
+ * If this is in a function call or prototype, split on commas or right
+ * after the open parenthesis
+ */
+ else if ( start->flags.test(PCF_IN_FCN_DEF)
+ || get_chunk_parent_type(start) == CT_FUNC_PROTO // Issue #1169
+ || ( (start->level == (start->brace_level + 1))
+ && start->flags.test(PCF_IN_FCN_CALL)))
+ {
+ LOG_FMT(LSPLIT, " ** FUNC SPLIT **\n");
+
+ log_rule_B("ls_func_split_full");
+
+ if (options::ls_func_split_full())
+ {
+ split_fcn_params_full(start);
+
+ if (!is_past_width(start))
+ {
+ return(true);
+ }
+ }
+ split_fcn_params(start);
+ return(true);
+ }
+
+ /*
+ * If this is in a template, split on commas, Issue #1170
+ */
+ else if (start->flags.test(PCF_IN_TEMPLATE))
+ {
+ LOG_FMT(LSPLIT, " ** TEMPLATE SPLIT **\n");
+ split_template(start);
+ return(true);
+ }
+ LOG_FMT(LSPLIT, "%s(%d):\n", __func__, __LINE__);
+ // Try to find the best spot to split the line
+ cw_entry ent;
+
+ memset(&ent, 0, sizeof(ent));
+ Chunk *pc = start;
+ Chunk *prev;
+
+ while ( ((pc = pc->GetPrev()) != nullptr)
+ && pc->IsNotNullChunk()
+ && !chunk_is_newline(pc))
+ {
+ LOG_FMT(LSPLIT, "%s(%d): at %s, orig_line is %zu, orig_col is %zu\n",
+ __func__, __LINE__, pc->Text(), pc->orig_line, pc->orig_col);
+
+ if (chunk_is_not_token(pc, CT_SPACE))
+ {
+ try_split_here(ent, pc);
+
+ // break at maximum line length
+ log_rule_B("ls_code_width");
+
+ if ( ent.pc != nullptr
+ && (options::ls_code_width()))
+ {
+ break;
+ }
+ }
+ }
+
+ if (ent.pc == nullptr)
+ {
+ LOG_FMT(LSPLIT, "%s(%d): TRY_SPLIT yielded NO SOLUTION for orig_line %zu at '%s' [%s]\n",
+ __func__, __LINE__, start->orig_line, start->Text(), get_token_name(start->type));
+ }
+ else
+ {
+ LOG_FMT(LSPLIT, "%s(%d): TRY_SPLIT yielded '%s' [%s] on orig_line %zu\n",
+ __func__, __LINE__, ent.pc->Text(), get_token_name(ent.pc->type), ent.pc->orig_line);
+ LOG_FMT(LSPLIT, "%s(%d): ent at '%s', orig_col is %zu\n",
+ __func__, __LINE__, ent.pc->Text(), ent.pc->orig_col);
+ }
+
+ // Break before the token instead of after it according to the pos_xxx rules
+ if (ent.pc == nullptr)
+ {
+ pc = nullptr;
+ }
+ else
+ {
+ log_rule_B("pos_arith");
+ log_rule_B("pos_assign");
+ log_rule_B("pos_compare");
+ log_rule_B("pos_conditional");
+ log_rule_B("pos_shift");
+ log_rule_B("pos_bool");
+
+ if ( ( chunk_is_token(ent.pc, CT_SHIFT)
+ && (options::pos_shift() & TP_LEAD))
+ || ( ( chunk_is_token(ent.pc, CT_ARITH)
+ || chunk_is_token(ent.pc, CT_CARET))
+ && (options::pos_arith() & TP_LEAD))
+ || ( chunk_is_token(ent.pc, CT_ASSIGN)
+ && (options::pos_assign() & TP_LEAD))
+ || ( chunk_is_token(ent.pc, CT_COMPARE)
+ && (options::pos_compare() & TP_LEAD))
+ || ( ( chunk_is_token(ent.pc, CT_COND_COLON)
+ || chunk_is_token(ent.pc, CT_QUESTION))
+ && (options::pos_conditional() & TP_LEAD))
+ || ( chunk_is_token(ent.pc, CT_BOOL)
+ && (options::pos_bool() & TP_LEAD)))
+ {
+ pc = ent.pc;
+ }
+ else
+ {
+ pc = ent.pc->GetNext();
+ }
+ LOG_FMT(LSPLIT, "%s(%d): at '%s', orig_col is %zu\n",
+ __func__, __LINE__, pc->Text(), pc->orig_col);
+ }
+
+ if ( pc == nullptr
+ || pc->IsNullChunk())
+ {
+ pc = start;
+
+ // Don't break before a close, comma, or colon
+ if ( chunk_is_token(start, CT_PAREN_CLOSE)
+ || chunk_is_token(start, CT_PAREN_OPEN)
+ || chunk_is_token(start, CT_FPAREN_CLOSE)
+ || chunk_is_token(start, CT_FPAREN_OPEN)
+ || chunk_is_token(start, CT_SPAREN_CLOSE)
+ || chunk_is_token(start, CT_SPAREN_OPEN)
+ || chunk_is_token(start, CT_ANGLE_CLOSE)
+ || chunk_is_token(start, CT_BRACE_CLOSE)
+ || chunk_is_token(start, CT_COMMA)
+ || chunk_is_token(start, CT_SEMICOLON)
+ || chunk_is_token(start, CT_VSEMICOLON)
+ || start->Len() == 0)
+ {
+ LOG_FMT(LSPLIT, " ** NO GO **\n");
+
+ // TODO: Add in logic to handle 'hard' limits by backing up a token
+ return(true);
+ }
+ }
+ // add a newline before pc
+ prev = pc->GetPrev();
+
+ if ( prev != nullptr
+ && prev->IsNotNullChunk()
+ && !chunk_is_newline(pc)
+ && !chunk_is_newline(prev))
+ {
+ //int plen = (pc->Len() < 5) ? pc->Len() : 5;
+ //int slen = (start->Len() < 5) ? start->Len() : 5;
+ //LOG_FMT(LSPLIT, " '%.*s' [%s], started on token '%.*s' [%s]\n",
+ // plen, pc->Text(), get_token_name(pc->type),
+ // slen, start->Text(), get_token_name(start->type));
+ LOG_FMT(LSPLIT, "%s(%d): Text() '%s', type %s, started on token '%s', type %s\n",
+ __func__, __LINE__, pc->Text(), get_token_name(pc->type),
+ start->Text(), get_token_name(start->type));
+
+ split_before_chunk(pc);
+ }
+ return(true);
+} // split_line
+
+
+/*
+ * The for statement split algorithm works as follows:
+ * 1. Step backwards and forwards to find the semicolons
+ * 2. Try splitting at the semicolons first.
+ * 3. If that doesn't work, then look for a comma at paren level.
+ * 4. If that doesn't work, then look for an assignment at paren level.
+ * 5. If that doesn't work, then give up.
+ */
+static void split_for_stmt(Chunk *start)
+{
+ LOG_FUNC_ENTRY();
+ // how many semicolons (1 or 2) do we need to find
+ log_rule_B("ls_for_split_full");
+ size_t max_cnt = options::ls_for_split_full() ? 2 : 1;
+ Chunk *open_paren = nullptr;
+ size_t nl_cnt = 0;
+
+ LOG_FMT(LSPLIT, "%s: starting on %s, line %zu\n",
+ __func__, start->Text(), start->orig_line);
+
+ // Find the open paren so we know the level and count newlines
+ Chunk *pc = start;
+
+ while ( ((pc = pc->GetPrev()) != nullptr)
+ && pc->IsNotNullChunk())
+ {
+ if (chunk_is_token(pc, CT_SPAREN_OPEN))
+ {
+ open_paren = pc;
+ break;
+ }
+
+ if (pc->nl_count > 0)
+ {
+ nl_cnt += pc->nl_count;
+ }
+ }
+
+ if (open_paren == nullptr)
+ {
+ LOG_FMT(LSPLIT, "No open paren\n");
+ return;
+ }
+ // see if we started on the semicolon
+ int count = 0;
+ Chunk *st[2];
+
+ pc = start;
+
+ if ( chunk_is_token(pc, CT_SEMICOLON)
+ && get_chunk_parent_type(pc) == CT_FOR)
+ {
+ st[count++] = pc;
+ }
+
+ // first scan backwards for the semicolons
+ while ( (count < static_cast<int>(max_cnt))
+ && ((pc = pc->GetPrev()) != nullptr)
+ && pc->IsNotNullChunk()
+ && pc->flags.test(PCF_IN_SPAREN))
+ {
+ if ( chunk_is_token(pc, CT_SEMICOLON)
+ && get_chunk_parent_type(pc) == CT_FOR)
+ {
+ st[count++] = pc;
+ }
+ }
+ // And now scan forward
+ pc = start;
+
+ while ( (count < static_cast<int>(max_cnt))
+ && ((pc = pc->GetNext())->IsNotNullChunk())
+ && pc->flags.test(PCF_IN_SPAREN))
+ {
+ if ( chunk_is_token(pc, CT_SEMICOLON)
+ && get_chunk_parent_type(pc) == CT_FOR)
+ {
+ st[count++] = pc;
+ }
+ }
+
+ while (--count >= 0)
+ {
+ // TODO: st[0] may be uninitialized here
+ LOG_FMT(LSPLIT, "%s(%d): split before %s\n", __func__, __LINE__, st[count]->Text());
+ split_before_chunk(st[count]->GetNext());
+ }
+
+ if ( !is_past_width(start)
+ || nl_cnt > 0)
+ {
+ return;
+ }
+ // Still past width, check for commas at parenthese level
+ pc = open_paren;
+
+ while ((pc = pc->GetNext()) != start)
+ {
+ if ( chunk_is_token(pc, CT_COMMA)
+ && (pc->level == (open_paren->level + 1)))
+ {
+ split_before_chunk(pc->GetNext());
+
+ if (!is_past_width(pc))
+ {
+ return;
+ }
+ }
+ }
+ // Still past width, check for a assignments at parenthese level
+ pc = open_paren;
+
+ while ((pc = pc->GetNext()) != start)
+ {
+ if ( chunk_is_token(pc, CT_ASSIGN)
+ && (pc->level == (open_paren->level + 1)))
+ {
+ split_before_chunk(pc->GetNext());
+
+ if (!is_past_width(pc))
+ {
+ return;
+ }
+ }
+ }
+ // Oh, well. We tried.
+} // split_for_stmt
+
+
+static void split_fcn_params_full(Chunk *start)
+{
+ LOG_FUNC_ENTRY();
+ LOG_FMT(LSPLIT, "%s(%d): %s\n", __func__, __LINE__, start->Text());
+
+ // Find the opening function parenthesis
+ Chunk *fpo = start;
+
+ LOG_FMT(LSPLIT, " %s(%d): Find the opening function parenthesis\n", __func__, __LINE__);
+
+ while ( (fpo = fpo->GetPrev()) != nullptr
+ && fpo->IsNotNullChunk())
+ {
+ LOG_FMT(LSPLIT, "%s(%d): %s, orig_col is %zu, level is %zu\n",
+ __func__, __LINE__, fpo->Text(), fpo->orig_col, fpo->level);
+
+ if ( chunk_is_token(fpo, CT_FPAREN_OPEN)
+ && (fpo->level == start->level - 1))
+ {
+ break; // opening parenthesis found. Issue #1020
+ }
+ }
+ // Now break after every comma
+ Chunk *pc = fpo->GetNextNcNnl();
+
+ while (pc->IsNotNullChunk())
+ {
+ if (pc->level <= fpo->level)
+ {
+ break;
+ }
+
+ if ( (pc->level == (fpo->level + 1))
+ && chunk_is_token(pc, CT_COMMA))
+ {
+ split_before_chunk(pc->GetNext());
+ }
+ pc = pc->GetNextNcNnl();
+ }
+}
+
+
+static void split_fcn_params(Chunk *start)
+{
+ LOG_FUNC_ENTRY();
+ LOG_FMT(LSPLIT, "%s(%d): start->Text() is '%s', orig_line is %zu, orig_col is %zu\n",
+ __func__, __LINE__, start->Text(), start->orig_line, start->orig_col);
+ Chunk *fpo = start;
+
+ if (!chunk_is_token(start, CT_FPAREN_OPEN))
+ {
+ // Find the opening function parenthesis
+ LOG_FMT(LSPLIT, "%s(%d): Find the opening function parenthesis\n", __func__, __LINE__);
+
+ while ( ((fpo = fpo->GetPrev()) != nullptr)
+ && fpo->IsNotNullChunk()
+ && chunk_is_not_token(fpo, CT_FPAREN_OPEN))
+ {
+ // do nothing
+ LOG_FMT(LSPLIT, "%s(%d): '%s', orig_col is %zu, level is %zu\n",
+ __func__, __LINE__, fpo->Text(), fpo->orig_col, fpo->level);
+ }
+ }
+ Chunk *pc = fpo->GetNextNcNnl();
+ size_t min_col = pc->column;
+
+ log_rule_B("code_width");
+ LOG_FMT(LSPLIT, " mincol is %zu, max_width is %zu\n",
+ min_col, options::code_width() - min_col);
+
+ int cur_width = 0;
+ int last_col = -1;
+
+ LOG_FMT(LSPLIT, "%s(%d):look forward until CT_COMMA or CT_FPAREN_CLOSE\n", __func__, __LINE__);
+
+ while (pc->IsNotNullChunk())
+ {
+ LOG_FMT(LSPLIT, "%s(%d): pc->Text() '%s', type is %s\n",
+ __func__, __LINE__, pc->Text(), get_token_name(pc->type));
+
+ if (chunk_is_newline(pc))
+ {
+ cur_width = 0;
+ last_col = -1;
+ }
+ else
+ {
+ if (last_col < 0)
+ {
+ last_col = pc->column;
+ LOG_FMT(LSPLIT, "%s(%d): last_col is %d\n",
+ __func__, __LINE__, last_col);
+ }
+ cur_width += (pc->column - last_col) + pc->Len();
+ last_col = pc->column + pc->Len();
+
+ LOG_FMT(LSPLIT, "%s(%d): last_col is %d\n",
+ __func__, __LINE__, last_col);
+
+ if ( chunk_is_token(pc, CT_COMMA)
+ || chunk_is_token(pc, CT_FPAREN_CLOSE))
+ {
+ if (cur_width == 0)
+ {
+ fprintf(stderr, "%s(%d): cur_width is ZERO, cannot be decremented, at line %zu, column %zu\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col);
+ log_flush(true);
+ exit(EX_SOFTWARE);
+ }
+ cur_width--;
+ LOG_FMT(LSPLIT, "%s(%d): cur_width is %d\n",
+ __func__, __LINE__, cur_width);
+
+ log_rule_B("code_width");
+
+ if ( ((last_col - 1) > static_cast<int>(options::code_width()))
+ || chunk_is_token(pc, CT_FPAREN_CLOSE))
+ {
+ break;
+ }
+ }
+ }
+ pc = pc->GetNext();
+ }
+ // back up until the prev is a comma
+ Chunk *prev = pc;
+
+ LOG_FMT(LSPLIT, "%s(%d): back up until the prev is a comma, begin is '%s', level is %zu\n",
+ __func__, __LINE__, prev->Text(), prev->level);
+
+ while ((prev = prev->GetPrev())->IsNotNullChunk())
+ {
+ LOG_FMT(LSPLIT, "%s(%d): prev->Text() is '%s', prev->orig_line is %zu, prev->orig_col is %zu\n",
+ __func__, __LINE__, prev->Text(), prev->orig_line, prev->orig_col);
+ LOG_FMT(LSPLIT, "%s(%d): prev->level is %zu, prev '%s', prev->type is %s\n",
+ __func__, __LINE__, prev->level, prev->Text(), get_token_name(prev->type));
+
+ if ( chunk_is_newline(prev)
+ || chunk_is_token(prev, CT_COMMA))
+ {
+ LOG_FMT(LSPLIT, "%s(%d): found at %zu\n",
+ __func__, __LINE__, prev->orig_col);
+ break;
+ }
+ LOG_FMT(LSPLIT, "%s(%d): last_col is %d, prev->Len() is %zu\n",
+ __func__, __LINE__, last_col, prev->Len());
+ last_col -= prev->Len();
+ LOG_FMT(LSPLIT, "%s(%d): last_col is %d\n",
+ __func__, __LINE__, last_col);
+
+ if (chunk_is_token(prev, CT_FPAREN_OPEN))
+ {
+ pc = prev->GetNext();
+
+ log_rule_B("indent_paren_nl");
+
+ if (!options::indent_paren_nl())
+ {
+ log_rule_B("indent_columns");
+ min_col = pc->brace_level * options::indent_columns() + 1;
+ LOG_FMT(LSPLIT, "%s(%d): min_col is %zu\n",
+ __func__, __LINE__, min_col);
+
+ log_rule_B("indent_continue");
+
+ if (options::indent_continue() == 0)
+ {
+ log_rule_B("indent_columns");
+ min_col += options::indent_columns();
+ }
+ else
+ {
+ min_col += abs(options::indent_continue());
+ }
+ LOG_FMT(LSPLIT, "%s(%d): min_col is %zu\n",
+ __func__, __LINE__, min_col);
+ }
+
+ // Don't split "()"
+ if (pc->type != E_Token(prev->type + 1))
+ {
+ break;
+ }
+ }
+ }
+
+ if ( prev->IsNotNullChunk()
+ && !chunk_is_newline(prev))
+ {
+ LOG_FMT(LSPLIT, "%s(%d): -- ended on %s --\n",
+ __func__, __LINE__, get_token_name(prev->type));
+ LOG_FMT(LSPLIT, "%s(%d): min_col is %zu\n",
+ __func__, __LINE__, min_col);
+ pc = prev->GetNext();
+ newline_add_before(pc);
+ reindent_line(pc, min_col);
+ cpd.changes++;
+ }
+} // split_fcn_params
+
+
+static void split_template(Chunk *start)
+{
+ LOG_FUNC_ENTRY();
+ LOG_FMT(LSPLIT, " %s(%d): start %s\n", __func__, __LINE__, start->Text());
+ LOG_FMT(LSPLIT, " %s(%d): back up until the prev is a comma\n", __func__, __LINE__);
+
+ // back up until the prev is a comma
+ Chunk *prev = start;
+
+ while ((prev = prev->GetPrev())->IsNotNullChunk())
+ {
+ LOG_FMT(LSPLIT, " %s(%d): prev '%s'\n", __func__, __LINE__, prev->Text());
+
+ if ( chunk_is_newline(prev)
+ || chunk_is_token(prev, CT_COMMA))
+ {
+ break;
+ }
+ }
+
+ if ( prev != nullptr
+ && !chunk_is_newline(prev))
+ {
+ LOG_FMT(LSPLIT, " %s(%d):", __func__, __LINE__);
+ LOG_FMT(LSPLIT, " -- ended on %s --\n", get_token_name(prev->type));
+ Chunk *pc = prev->GetNext();
+ newline_add_before(pc);
+ size_t min_col = 1;
+
+ log_rule_B("indent_continue");
+
+ if (options::indent_continue() == 0)
+ {
+ log_rule_B("indent_columns");
+ min_col += options::indent_columns();
+ }
+ else
+ {
+ min_col += abs(options::indent_continue());
+ }
+ reindent_line(pc, min_col);
+ cpd.changes++;
+ }
+} // split_templatefcn_params
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/width.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/width.h
index 3c5ad0b0..3c5ad0b0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/width.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/width.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/windows_compat.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/windows_compat.h
index 8210adab..8210adab 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/windows_compat.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/src/windows_compat.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/.editorconfig b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/.editorconfig
index fcea945e..fcea945e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/.editorconfig
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/.editorconfig
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/CMakeLists.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/CMakeLists.txt
index 13839df9..13839df9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/CMakeLists.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/CMakeLists.txt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/c-sharp.test b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/c-sharp.test
new file mode 100644
index 00000000..4837a5ae
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/c-sharp.test
@@ -0,0 +1,138 @@
+#
+# Test cases specifically for the C# language.
+#
+# Range: 10000 - 19999
+# test.name config.file input.file
+
+10000 cs/mono.cfg cs/simple.cs
+10001 cs/getset.cfg cs/getset.cs
+10002 cs/ben_032.cfg cs/simple.cs
+10003 cs/ben_033.cfg cs/region.cs
+10010 cs/ben_034.cfg cs/var-member.cs
+10011 common/indent_columns-3.cfg cs/strings.cs
+10013 cs/625_where-constraints.cfg cs/625_where-constraints.cs
+
+10020 common/region-0.cfg cs/region.cs
+10021 common/region-1.cfg cs/region.cs
+10022 common/region-2.cfg cs/region.cs
+10023 common/region-3.cfg cs/region.cs
+
+10030 common/sort_imports.cfg cs/sort_using.cs
+10031 cs/mod_sort_using-t.cfg cs/bug_i_935.cs
+10032 cs/sort_using_categ.cfg cs/sort_using_categ.cs
+
+10040 cs/tcf.cfg cs/tcf.cs
+10041 cs/tcf.cfg cs/gs.cs
+10042 cs/ben_036.cfg cs/exception-filters.cs
+
+10050 cs/cs_generics.cfg cs/generics.cs
+
+10060 cs/ben_037.cfg cs/unsafe.cs
+10065 cs/UNI-1975.cfg cs/UNI-1975.cs
+
+10070 cs/ben_038.cfg cs/utf16le.cs
+10071 cs/ben_038.cfg cs/utf16be.cs
+10072 cs/ben_038.cfg cs/utf16le_no_bom.cs
+10073 cs/ben_038.cfg cs/utf16be_no_bom.cs
+10074 cs/UNI-2020.cfg cs/UNI-2020.cs
+
+10080 common/ben_042.cfg cs/property.cs
+
+10090 cs/ben_043.cfg cs/string_multi.cs
+
+10100 cs/bug_600.cfg cs/bug_600.cs
+10101 cs/sf607.cfg cs/sf607.cs
+
+10110 cs/mda_space_a.cfg cs/mdarray_space.cs
+10111 cs/sp_after_comma-a.cfg cs/mdarray_space.cs
+10112 cs/mda_space_c.cfg cs/mdarray_space.cs
+
+10119 common/empty.cfg cs/preserveTabs.cs
+10120 common/empty.cfg cs/cmt_backslash_eol.cs
+
+10130 cs/sp_between_new_paren.cfg cs/sp_between_new_paren.cs
+
+10140 cs/ben_044.cfg cs/remove_semi.cs
+
+10150 cs/ben_045.cfg cs/operator-null-conditional.cs
+10151 cs/sp_assign-a.cfg cs/operator_null-coalescing-assignment.cs
+
+10200 common/empty.cfg cs/logger.cs
+
+10300 common/empty.cfg cs/1822.cs
+
+10628 common/empty.cfg cs/sf628.cs
+10160 common/empty.cfg cs/delegate.cs
+10161 cs/indent_cs_delegate_brace-t.cfg cs/delegate.cs
+12001 cs/bug_620.cfg cs/bug_620.cs
+12002 common/empty.cfg cs/nullable_prop.cs
+12003 cs/ben_043.cfg cs/fncall_as_ctor_in_attr.cs
+12004 cs/verbatim_strings.cfg cs/verbatim_strings.cs
+12005 common/empty.cfg cs/bug_1591.cs
+
+12101 cs/indent_using_block-f.cfg cs/bug_i_679.cs
+
+12102 cs/mod_full_brace_nl_block_rem_mlcond-0.cfg cs/mod_full_brace_nl_block_rem_mlcond.cs
+12103 cs/mod_full_brace_nl_block_rem_mlcond-1.cfg cs/mod_full_brace_nl_block_rem_mlcond.cs
+12104 cs/bug_1637.cfg cs/bug_1637.cs
+12105 cs/bug_1650.cfg cs/bug_1650.cs
+12106 cs/bug_1650.cfg cs/UNI-40685.cs
+12107 cs/mod_full_paren_if_bool.cfg cs/mod_full_paren_if_bool.cs
+12108 cs/Issue_2705.cfg cs/Issue_2705.cs
+
+# test the options sp_ with the value "ignore"
+12200 cs/comma-cs-f.cfg cs/comma.cs
+12201 cs/comma-cs-i.cfg cs/comma.cs
+12202 cs/comma-cs-r.cfg cs/comma.cs
+
+# Adopt some UT tests
+10012 common/empty.cfg cs/621_this-spacing.cs
+10014 common/empty.cfg cs/630_bad-new-init-semicolon-removal.cs
+10015 cs/misc-failures.cfg cs/misc-failures.cs
+10016 cs/new-constraint-paren-space.cfg cs/new-constraint-paren-space.cs
+10027 cs/U01-Cs.cfg cs/oneline_property.cs
+10028 cs/U02-Cs.cfg cs/ifcolalign.cs
+10029 cs/U03-Cs.cfg cs/when.cs
+10039 cs/615_nested_usings.cfg cs/615_nested-usings.cs
+10044 cs/U04-Cs.cfg cs/ifcomment.cs
+10045 cs/UNI-1288.cfg cs/UNI-1288.cs
+10051 cs/UNI-1338.cfg cs/UNI-1338.cs
+10055 cs/U06-Cs.cfg cs/UNI-1345.cs
+10066 cs/UNI-1977.cfg cs/UNI-1977.cs
+10067 cs/UNI-1978.cfg cs/UNI-1978.cs
+10075 cs/UNI-2021.cfg cs/UNI-2021.cs
+10076 cs/UNI-1343.cfg cs/UNI-1343.cs
+10077 cs/U09-Cs.cfg cs/UNI-1919.cs
+10078 cs/U10-Cs.cfg cs/UNI-3484.cs
+10103 cs/U11-Cs.cfg cs/UNI-2506.cs
+10104 common/empty.cfg cs/UNI-2505.cs
+11011 cs/620_getset-brace.cfg cs/620_getset-brace.cs
+11072 cs/U07-Cs.cfg cs/UNI-2007.cs
+11073 cs/U08-Cs.cfg cs/UNI-2008.cs
+20010 cs/UNI-32658.cfg cs/UNI-32658.cs
+20011 cs/bug_1620.cfg cs/bug_1620.cs
+
+60004 cs/UNI-2684.cfg cs/UNI-2684.cs
+60005 cs/UNI-2685.cfg cs/UNI-2685.cs
+60007 cs/UNI-3083.cfg cs/UNI-3083.cs
+60008 cs/U-J.cfg cs/UNI-17253.cs
+60009 cs/UNI-9917.cfg cs/UNI-9917.cs
+60012 cs/U13-Cs.cfg cs/UNI-12303.cs
+60013 cs/UNI-13955.cfg cs/UNI-13955.cs
+60015 cs/UNI-14131.cfg cs/UNI-14131.cs
+60016 cs/UNI-11662.cfg cs/UNI-11662.cs
+60018 common/UNI-18777.cfg cs/UNI-18777.cs
+60019 common/empty.cfg cs/UNI-18780.cs
+60020 cs/UNI-18829.cfg cs/UNI-18829.cs
+60023 cs/UNI-18437.cfg cs/UNI-18437.cs
+60024 cs/U15-Cs.cfg cs/UNI-19644.cs
+60026 cs/UNI-19895.cfg cs/UNI-19895.cs
+60033 cs/UNI-21730.cfg cs/UNI-21730.cs
+60036 cs/UNI-11993.cfg cs/UNI-11993.cs
+60037 cs/UNI-29933.cfg cs/UNI-29933.cs
+60040 cs/UNI-30498_2.cfg cs/UNI-30498_2.cs
+60041 cs/squeeze-paren-close-Option.cfg cs/squeeze-paren-close-Option.cs
+60042 cs/indent-multistring-coulmn1.cfg cs/indent-multistring-coulmn1.cs
+60044 cs/UNI-37241.cfg cs/UNI-37241.cs
+60045 common/nl_before_after.cfg cs/add-nl-before-namespace.cs
+60046 common/sp_after_cast.cfg cs/cast.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/c.test b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/c.test
new file mode 100644
index 00000000..584ca033
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/c.test
@@ -0,0 +1,462 @@
+#
+# Test cases specifically for the C language.
+#
+# test.name config.file input.file
+
+
+# little general tests ====================================================
+
+00000 common/indent_columns-3.cfg c/comment-indent.c
+00001 c/cpp_to_c-1.cfg c/comment-indent.c
+00002 c/cpp_to_c-2.cfg c/comment-indent.c
+00003 c/cpp_to_c-3.cfg c/comment-indent.c
+00004 c/indent-1.cfg c/switch.c
+00005 c/ben_047.cfg c/cmt-align.c
+00006 common/indent_columns-3.cfg c/comment-convert.c
+00007 c/cpp_to_c-1.cfg c/comment-convert.c
+00008 c/cpp_to_c-2.cfg c/comment-convert.c
+00009 c/cpp_to_c-3.cfg c/comment-convert.c
+
+
+# brace styles
+
+00010 c/ben_048.cfg c/braces.c
+00011 common/brace-allman.cfg c/braces.c
+00012! c/brace-banner.cfg c/braces.c
+00013 c/brace-gnu.cfg c/braces.c
+00014 c/brace-kr.cfg c/braces.c
+00015 c/brace-ws.cfg c/braces.c
+00016 c/brace-ws2.cfg c/braces.c
+
+00020 c/ben_049.cfg c/define-if-indent.c
+00050 c/brace-remove-2.cfg c/brace-remove.c
+00051 c/brace-remove-all.cfg c/brace-remove.c
+00052 c/brace-remove-all.cfg c/brace-remove2.c
+00053 c/nl_brace_test.cfg c/brace.c
+00054 c/if_chain.cfg c/if_chain.c
+00055 c/cgal.cfg c/braces-2.c
+00056 c/brace-remove-all.cfg c/brace-remove3.c
+00057 c/if_chain.cfg c/brace-remove3.c
+00058 c/brace-kr-nobr.cfg c/if_chain.c
+
+00060 c/ben_050.cfg c/braces-2.c
+00061 c/ben_051.cfg c/braces-3.c
+00062 c/ben_052.cfg c/braces-4.c
+00065 c/ben_053.cfg c/braces-5.c
+00066 c/ben_054.cfg c/vb-while.c
+00067 c/ben_055.cfg c/vb-do.c
+00068 c/ben_056.cfg c/bsnl.c
+00069 c/ben_057.cfg c/vb-pp.c
+
+00070 c/ben_058.cfg c/return-multi.c
+00071 common/ben_042.cfg c/include_define.h
+00072 common/star_pos-0.cfg c/align-proto.c
+00073 common/empty.cfg c/nl_proto_endif.c
+00074 c/clang-has_include.cfg c/clang-has_include.h
+00076 c/1225.cfg c/1225.c
+
+00081 c/else-if-1.cfg c/else-if.c
+00082 c/else-if-2.cfg c/else-if.c
+00083 c/Issue_3601.cfg c/Issue_3601.c
+
+00091 c/cond-1.cfg c/cond.c
+00092 common/indent_columns-3.cfg c/cond.c
+00093 c/sp_cond_colon.cfg c/cond.c
+00094 c/Issue_3457.cfg c/Issue_3457.c
+
+00101 c/ben_061.cfg c/bugs-1.c
+00102 c/space_indent_columns-3.cfg c/bugs-2.c
+00103 c/ben_063.cfg c/bugs-3.c
+00104 c/ben_064.cfg c/bugs-4.c
+00105 c/ben_065.cfg c/bugs-5.c
+00106 common/ben_011.cfg c/bugs-6.c
+00107 common/ben_011.cfg c/bugs-7.c
+00108 common/indent_columns-3.cfg c/bugs-8.c
+
+00110 c/ben_069.cfg c/misc.c
+00111 c/brace-kr-br.cfg c/misc.c
+
+00120 c/sp_cmt_cpp_start-r.cfg c/sp_cmt_cpp_start.c
+00121 common/sp_cmt_cpp_start-a.cfg c/sp_cmt_cpp_start.c
+00122 common/sp_cmt_cpp_start_force.cfg c/sp_cmt_cpp_start.c
+00123 c/cmt_reflow.cfg c/cmt_reflow.c
+
+00130 c/ben_070.cfg c/minus-minus.c
+00135 c/nepenthes.cfg c/br_cmt.c
+
+00140 c/ben_071.cfg c/global-vars.c
+00141 c/ben_072.cfg c/deref.c
+00142 c/ben_073.cfg c/type-cast.c
+00143 c/ben_074.cfg c/t3.in.c
+00144 c/ben_075.cfg c/align-proto-vars.c
+00145 c/ben_076.cfg c/vardefcol.c
+00146 c/Issue_3516.cfg c/Issue_3516.c
+00147 c/Issue_3517.cfg c/Issue_3516.c
+00148 c/Issue_3518.cfg c/Issue_3518.c
+
+# casts
+
+00150 c/ben_077.cfg c/casts.c
+00151 c/cast-sp-r.cfg c/casts.c
+00152 c/cast-sp-a.cfg c/casts.c
+00153 c/cast-type.cfg c/casts.c
+00154 common/sp_after_cast.cfg c/casts.c
+00155 c/ben_078.cfg c/cast_brace.c
+
+
+# fcn indents
+
+00160 c/indent_func_param.cfg c/fcn_indent.c
+00161 c/indent_func_call_param.cfg c/fcn_indent.c
+00162 c/indent_func_def_param.cfg c/fcn_indent.c
+00163 c/indent_func_proto_param.cfg c/fcn_indent.c
+00164 c/rdan.cfg c/fcn_indent_func_def_col1.c
+00165 c/sp_func_call_user_inside_fparen.cfg c/sp_func_call_user_inside_fparen.c
+
+00170 common/empty.cfg c/beautifier-off.c
+00180 c/sf538.cfg c/lvalue.c
+
+
+# switch & case stuff
+
+00201 c/case-1.cfg c/case.c
+00202 c/case-2.cfg c/case.c
+00203 c/case-3.cfg c/case.c
+00204 c/bug_1718.cfg c/bug_1718.c
+00205 c/nl_before_return_false.cfg c/case-nl_before_return.c
+00206 c/nl_before_return_true.cfg c/case-nl_before_return.c
+00207 common/nl_before_ignore_after_case.cfg c/nl_before_ignore_after_case.c
+
+
+# structure initializers
+
+00301 c/ben_079.cfg c/align-struct-init.c
+00302 c/ben_080.cfg c/one-liner-init.c
+00303 c/1liner-split.cfg c/one-liner-init.c
+00304 c/1liner-no-split.cfg c/one-liner-init.c
+00305 c/ben_081.cfg c/one-liner-define.c
+
+00310 common/empty.cfg c/sp_embed_comment.c
+
+00320 c/rdan.cfg c/indent_first_bool_expr.c
+
+
+# aligning tresholds
+
+00401 common/align-1.cfg c/align-equ.c
+00402 common/align-1.cfg c/align-var.c
+00403 c/align-2.cfg c/align-var.c
+00404 c/align-3.cfg c/align-var.c
+00405 c/align-3.cfg c/bits.c
+00406 c/bug_i_771.cfg c/bug_i_771.c
+
+00411 c/align_typedef_gap-3_span-5.cfg c/align-typedef.c
+00412 c/align_typedef_gap-3_span-5.cfg c/align-typedef.c
+00413 c/align_typedef_func-1.cfg c/align-typedef.c
+00414 c/align_typedef_func-2.cfg c/align-typedef.c
+00415 c/align_stack.cfg c/align_stack.c
+00416 c/align_sf_call_thresh_416.cfg c/align_sf_call_thresh_416.c
+00417 c/align_sf_call_thresh_417.cfg c/align_sf_call_thresh_417.c
+00418 c/align_sf_call_span_418.cfg c/align_sf_call_span_418.c
+00419 c/align_sf_call_span_419.cfg c/align_sf_call_span_419.c
+00420 c/Issue-2278.cfg c/Issue-2278.c
+
+00421 c/nl_ds_struct_enum_cmt-t.cfg c/nl_ds_struct_enum.c
+00422 c/nl_ds_struct_enum-2.cfg c/nl_ds_struct_enum.c
+00423 c/bug_1702.cfg c/bug_1702.c
+
+00430 common/empty.cfg c/paren-indent.c
+00431 c/indent_paren_close-1.cfg c/paren-indent.c
+00432 c/indent_paren_close-2.cfg c/paren-indent.c
+
+00440 c/bug_489.cfg c/bug_489.c
+
+00451 c/code_width-80.cfg c/enum_gallery.c
+00452 c/nl_enum_own_lines-a.cfg c/enum_gallery.c
+00453! c/nl_enum_own_lines-3.cfg c/enum_gallery.c
+00454 c/nl_enum_own_lines-4.cfg c/enum_gallery.c
+
+00461 c/align_func_proto_star_amp-1.cfg c/align_func_proto_star_amp.h
+00462 c/align_func_proto_star_amp-2.cfg c/align_func_proto_star_amp.h
+00463 c/align_func_proto_star_amp-3.cfg c/align_func_proto_star_amp.h
+00464 c/align_func_proto_star_amp-4.cfg c/align_func_proto_star_amp.h
+00465 c/align_func_proto_star_amp-5.cfg c/align_func_proto_star_amp.h
+00466 c/align_func_proto_star_amp-6.cfg c/align_func_proto_star_amp.h
+00467 c/align_func_proto_star_amp-7.cfg c/align_func_proto_star_amp.h
+00468 c/align_func_proto_star_amp-8.cfg c/align_func_proto_star_amp.h
+00469 c/align_func_proto_star_amp-9.cfg c/align_func_proto_star_amp.h
+
+# boolean and comma positioning
+
+00501 c/bool-pos-eol.cfg c/bool-pos.c
+00502 c/bool-pos-sol.cfg c/bool-pos.c
+00503 c/pos_compare-sol.cfg c/pos_compare.c
+00504 c/pos_compare-eol.cfg c/pos_compare.c
+00505 c/pos_conditional-l.cfg c/pos_conditional.c
+00506 c/pos_conditional-t.cfg c/pos_conditional.c
+00510 c/bool-pos-eol-break.cfg c/bool-pos.c
+00511 c/bool-pos-sol-break.cfg c/bool-pos.c
+00512 common/bool-pos-eol-force.cfg c/bool-pos.c
+00513 c/bool-pos-sol-force.cfg c/bool-pos.c
+00514 c/my_conf.cfg c/my_infile.c
+
+00600 common/indent_columns-3.cfg c/dos.c
+00601 common/indent_columns-3.cfg c/mac.c
+00611 common/empty.cfg c/pp-space.c
+00612 c/pp-indent-2.cfg c/pp-space.c
+00613 c/pp_indent-a.cfg c/pp-space.c
+00614 c/pp-space.cfg c/pp-space.c
+00615 c/pp-indent-2.cfg c/pp-nest.c
+00616 c/pp_if_indent-1.cfg c/pp-if-indent.c
+00617 c/rdan.cfg c/pp-if-indent.c
+00618 c/pp_if_indent-4.cfg c/pp-if-indent.c
+00619 c/Issue_3169.cfg c/Issue_3169.c
+
+00620 c/ben_083.cfg c/indent-assign.c
+00621 c/nl_endif.cfg c/nl_endif.c
+00622 c/indent_assign.cfg c/indent-off-after-assign.c
+
+00631 c/nl_assign1.cfg c/nl_assign.c
+00632 c/nl_assign2.cfg c/nl_assign.c
+00633 c/nl_assign1.cfg c/bug_3156.c
+
+# function def newlines
+00701 common/func-def-1.cfg c/function-def.c
+00702 common/func-def-2.cfg c/function-def.c
+00703 common/func-def-3.cfg c/function-def.c
+
+00710 c/add_long_closebrace_comment_1.cfg c/add_long_comment.c
+
+# nl_after_semicolon and nl_after_open_brace
+
+00721 c/nl_semicolon.cfg c/nl-semicolon.c
+
+# function types
+
+00801 c/ben_084.cfg c/fcn_type.c
+00802 c/ben_085.cfg c/funcfunc.c
+00803 c/sf537.cfg c/fcn_type.c
+
+# code width
+
+00901 c/width.cfg c/code_width.c
+00902 common/width-2.cfg c/code_width.c
+00903 c/width-3.cfg c/code_width.c
+
+# pascal ptr_type
+
+00910 c/pascal_ptr.cfg c/pascal_ptr.c
+00911 c/empty_body.cfg c/pascal_ptr.c
+
+01000 c/mod-paren.cfg c/mod-paren.c
+01001 c/nl-comment.cfg c/nl-comment.c
+01002 c/mod-paren2.cfg c/mod-paren.c
+
+01005 c/mod_case_brace_add.cfg c/mod_case_brace.c
+01006 common/mod_case_brace_rm.cfg c/mod_case_brace.c
+01007 c/mod_move_case_brace.cfg c/mod_case_brace.c
+01008 c/mod_case_brace_add.cfg c/Issue_3366.c
+01009 c/mod_move_case_return.cfg c/mod_move_case_return.c
+01010 c/mod_move_case_return.cfg c/mod_move_case_return_bad.c
+
+01011 common/del_semicolon.cfg c/semicolons.c
+01012 c/ben_086.cfg c/semicolons.c
+
+01015 common/empty.cfg c/paren_indent.c
+01016 c/align_attr.cfg c/align_attr.c
+
+01020 common/kw_subst.cfg c/kw_subst.c
+01021 common/kw_subst3.cfg c/hello.c
+01022 common/kw_subst3.cfg c/kw_subst.c
+
+01030 c/cmt_indent_multi-f.cfg c/multi.h
+
+01035 common/empty.cfg c/func_wrap.c
+01036 common/sp_inside_fparen-f.cfg c/func_wrap.c
+01037 c/type_wrap.cfg c/type_wrap.c
+
+01040 c/newline_after_endif.cfg c/newline_after_endif.c
+
+01050 c/func_call_user.cfg c/func_call_user.c
+
+01060 common/empty.cfg c/backslash-newline-lex.c
+
+01070 c/label_colon_nl_1.cfg c/various_colons.c
+01071 c/label_colon_nl_2.cfg c/various_colons.c
+
+01080 common/empty.cfg c/bug_1196.c
+
+# big general tests
+
+02000 c/ben_087.cfg c/i2c-core.c
+02001 c/preproc-cleanup.cfg c/directfb.h
+02002 common/ben2.cfg c/i2c-core.c
+02003 c/Issue_3353.cfg c/Issue_3353.h
+
+# clark's style - blank lines before and after flow control, indented comments
+
+02100 common/clark.cfg c/i2c-core.c
+02101 common/clark.cfg c/comment-indent.c
+
+02200 c/xml-str.cfg c/xml.c
+02201 c/xml-str.cfg c/align-string.c
+
+02300 c/ben_088.cfg c/preproc-if.c
+02301 common/d.cfg c/preproc-if.c
+02302 c/cpp_to_c-1.cfg c/nl-cont.c
+02303 c/cpp_to_c-1.cfg c/nl-cont2.c
+
+02310 c/ben_089.cfg c/empty-for.c
+02311 c/ben_090.cfg c/pragma.c
+
+02315 c/pp_ret.cfg c/pp_ret.c
+
+02320 c/nl_create_one_liner.cfg c/nl_create_one_liner.c
+02325 common/sort_imports.cfg c/sort_include.c
+
+02330 c/leave_one_liners.cfg c/one_liners.c
+
+# some embedded sql stuff
+
+02400 c/ben_091.cfg sql/mysql.sqc C
+02401 c/ben_092.cfg sql/sta-select.sqc C
+02402 c/issue_527.cfg sql/issue_527.sqc C
+
+02410 c/pp_if_indent-0.cfg c/ifdef-indent.c
+02411 c/pp_if_indent-1.cfg c/ifdef-indent.c
+02412 c/pp_if_indent-2.cfg c/ifdef-indent.c
+02413 c/pp_if_indent-3.cfg c/ifdef-indent.c
+02414 c/nl_whole_file_ifdef.cfg c/whole_file_ifdef.c
+02415 c/endif.cfg c/endif.c
+02416 c/cmt_nl_end.cfg c/cmt_nl_end.c
+
+02421 c/cmt_multi_check_last-f.cfg c/cmt_multi.c
+02422 common/empty.cfg c/cmt_multi.c
+02423 common/empty.cfg c/cmt_multi_utf8.c
+
+02431 c/align_right_cmt_gap-1.cfg c/cmt_right_align.c
+02432 c/space_indent_columns-3.cfg c/cmt_right_align.c
+
+02440 common/empty.cfg c/string_utf8.c
+02441 common/empty.cfg c/utf8-identifiers.c
+
+02451 c/return-1.cfg c/nl_return_expr.c
+02452 c/return-2.cfg c/nl_return_expr.c
+02453 c/return-3.cfg c/nl_return_expr.c
+02454 c/return-4.cfg c/nl_return_expr.c
+
+02455 common/mod_paren_on_return-a.cfg c/macro-returns.c
+02456 common/mod_paren_on_return-r.cfg c/macro-returns.c
+02457 c/nl_before_return_true.cfg c/nl_before_return.c
+
+02460 c/freebsd.cfg c/freebsd.c
+
+02486 c/doxy-comment-no.cfg c/doxy-comment.c
+02487 c/doxy-comment-yes.cfg c/doxy-comment.c
+
+02501 c/ger.cfg c/custom_types_ssl.c
+02502 c/custom_types_ssl.cfg c/custom_types_ssl.c
+#02503 ger.cfg c/pp_concat_asn1.h
+
+02504 c/align_keep_extra.cfg c/align_keep_extra.c
+
+02510 c/ben_093.cfg c/asm.c
+
+07630 c/indent-vbrace.cfg c/indent-vbrace.c
+
+08399 c/ben_095.cfg c/gh399.c
+
+09594 common/indent_columns-3.cfg c/sf594.c
+09588 common/empty.cfg c/sf588.c
+
+09601 c/sp_after_sparen.cfg c/sp_after_sparen.c
+09602 common/bug_671.cfg c/bug_671.c
+09603 c/indent_ternary_operator-1.cfg c/indent_ternary-1.c
+09604 c/indent_ternary_operator-2.cfg c/indent_ternary-2.c
+09605 common/sp_arith-f.cfg c/negative_value.c
+09606 c/ptr-arith.cfg c/extern.c
+09607 c/ptr-arith.cfg c/attribute.c
+09608 common/aet-func_call_user.cfg c/func_call_user2.c
+09609 c/Issue_2279.cfg c/Issue_2279.c
+
+09610 c/force_tab_after_define-t.cfg c/bug_i_876.c
+09611 common/space_indent_columns-4.cfg c/bug_i_222.c
+09612 common/empty.cfg c/bug_1041.c
+09613 common/empty.cfg c/i1413.c
+09614 common/empty.cfg c/string_prefixes.c
+09615 c/i1564.cfg c/i1564.c
+09616 c/enum_comma_ifdef.cfg c/enum_comma_ifdef.c
+09617 c/Issue_2360-a.cfg c/Issue_2360.c
+09618 c/Issue_2360-b.cfg c/Issue_2360.c
+09619 c/Issue_2411.cfg c/Issue_2411.c
+
+09620 c/Issue_2640.cfg c/Issue_2640.c
+09621 c/preproc-cleanup.cfg c/pp-before-func-def.c
+09622 c/Issue_3356.cfg c/Issue_3356.c
+
+10004 c/ben_094.cfg c/pragma_asm.c
+10005 common/empty.cfg c/i1270.c
+10006 c/bug_2331.cfg c/bug_2331.c
+10007 c/indent_macro_brace-true.cfg c/indent-macro-brace.c
+10008 c/indent_macro_brace-false.cfg c/indent-macro-brace.c
+10009 common/empty.cfg c/return-compound-literal.c
+
+10010 c/indent_compound_literal_return-false.cfg c/return-compound-literal.c
+10011 c/indent_compound_literal_return-true.cfg c/return-compound-literal.c
+10012 c/indent_sparen_extra-8.cfg c/sparen-indent.c
+10013 common/empty.cfg c/sparen-indent.c
+10014 common/indent_continue-8.cfg c/sparen-indent.c
+10015 common/empty.cfg c/Issue_2845.h
+10016 c/Issue_3233.cfg c/Issue_3233.c
+10017 c/sp_sparen_paren-a.cfg c/double-sparen.c
+10018 c/sp_sparen_paren-i.cfg c/double-sparen.c
+10019 c/pp_indent_in_guard.cfg c/include-guard.h
+10020 c/indent_single_line_comments_after.cfg c/single_line_comment_after.c
+10021 common/sp_cparen_oparen-f.cfg c/parenthesized_indirect_call.c
+10022 c/Issue_3269.cfg c/Issue_3269.c
+10023 c/Issue_3272.cfg c/Issue_3272.h
+10024 c/Issue_3274.cfg c/Issue_3274.c
+10025 c/sp_between_semi_for_empty-r.cfg c/forever.c
+10026 c/sp_between_semi_for_empty-i.cfg c/forever.c
+10027 c/Issue_3327.cfg c/Issue_3327.c
+10028 c/sp_emb_cmt-i.cfg c/Issue_3339.c
+10029 c/sp_emb_cmt-f.cfg c/Issue_3339.c
+10030 c/sp_emb_cmt-r.cfg c/Issue_3339.c
+10031 c/sp_after_pointer_star-r.cfg c/Issue_3342.c
+10032 c/sp_after_pointer_star-r.cfg c/Issue_3345.c
+10033 c/pp_include_at_level-true.cfg c/Issue_3343.c
+10034 c/pp_include_at_level-false.cfg c/Issue_3343.c
+10035 c/indent_comment_align_thresh-0.cfg c/comment-indent.c
+10036 c/Issue_3350.cfg c/comment-indent.c
+10037 c/indent_case_comment-true.cfg c/Issue_3362.c
+10038 c/indent_case_comment-false.cfg c/Issue_3362.c
+10039 c/Issue_3370.cfg c/Issue_3370.c
+10040 c/Issue_3377.cfg c/Issue_3377.c
+10041 c/Issue_3351.cfg c/Issue_3351.c
+10042 c/sp_ptr_star_func_var-i.cfg c/Issue_3376.c
+10043 c/sp_ptr_star_func_var-a.cfg c/Issue_3376.c
+10044 c/sp_ptr_star_func_var-r.cfg c/Issue_3376.c
+10045 c/sp_ptr_star_func_var-f.cfg c/Issue_3376.c
+10046 c/Issue_3402.cfg c/Issue_3402.c
+10047 c/pp_if_indent_code-true.cfg c/Issue_3421.h
+10048 c/Issue_3431.cfg c/Issue_3431.c
+10049 c/indent_paren_close--1.cfg c/Issue_3436.c
+10050 common/empty.cfg c/Issue_3192.c
+10051 c/Issue_3454.cfg c/Issue_3454.c
+10052 c/Issue_3472.cfg c/Issue_3472.c
+10053 c/Issue_3476.cfg c/Issue_3476.c
+10054 c/Issue_3480.cfg c/Issue_3480.c
+10055 c/Issue_3493.cfg c/Issue_3493.c
+10056 c/sp_enum_brace-i.cfg c/Issue_3496.h
+10057 c/sp_enum_brace-a.cfg c/Issue_3496.h
+10058 c/sp_enum_brace-r.cfg c/Issue_3496.h
+10059 c/sp_enum_brace-f.cfg c/Issue_3496.h
+10060 c/indent_ignore_bool-true.cfg c/Issue_3548.c
+10061 c/Issue_3556.cfg c/Issue_3556.c
+10062 c/Issue_3561.cfg c/Issue_3561.c
+10063 c/Issue_3565.cfg c/Issue_3565.c
+10064 c/Issue_3567-a.cfg c/Issue_3567.c
+10065 c/Issue_3567-b.cfg c/Issue_3567.c
+10066 c/Issue_3580.cfg c/Issue_3580.c
+10077 c/Issue_3582.cfg c/Issue_3582.c
+10078 c/pp_indent_brace--1.cfg c/Issue_3587.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/config/I-842.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/config/I-842.cfg
index e69de29b..e69de29b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/config/I-842.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/config/I-842.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/config/copyright-header.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/config/copyright-header.cfg
index 13d5020b..13d5020b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/config/copyright-header.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/config/copyright-header.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/config/copyright-header.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/config/copyright-header.txt
index f96c1ae8..f96c1ae8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/config/copyright-header.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/config/copyright-header.txt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/config/mini_d.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/config/mini_d.cfg
index ddd51138..ddd51138 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/config/mini_d.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/config/mini_d.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/config/mini_nd.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/config/mini_nd.cfg
index 23db4460..23db4460 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/config/mini_nd.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/config/mini_nd.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/config/replace.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/config/replace.cfg
index 16473bf2..16473bf2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/config/replace.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/config/replace.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/config/tracking_space.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/config/tracking_space.cfg
index 8b37aa38..8b37aa38 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/config/tracking_space.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/config/tracking_space.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/config/truncate.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/config/truncate.cfg
index cc48c57e..cc48c57e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/config/truncate.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/config/truncate.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/config/unmatched_close_pp.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/config/unmatched_close_pp.cfg
index e69de29b..e69de29b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/config/unmatched_close_pp.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/config/unmatched_close_pp.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/input/I-3310.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/input/I-3310.c
index e69de29b..e69de29b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/input/I-3310.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/input/I-3310.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/input/I-842.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/input/I-842.cpp
index 7f7bcaf3..7f7bcaf3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/input/I-842.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/input/I-842.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/input/backup.h-save b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/input/backup.h-save
index 9a66578c..9a66578c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/input/backup.h-save
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/input/backup.h-save
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/input/class_enum_struct_union.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/input/class_enum_struct_union.cpp
index 6a72c823..6a72c823 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/input/class_enum_struct_union.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/input/class_enum_struct_union.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/input/logger.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/input/logger.cs
index defede8a..defede8a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/input/logger.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/input/logger.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/input/replace.list b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/input/replace.list
index 009e6f33..009e6f33 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/input/replace.list
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/input/replace.list
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/input/testSrc.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/input/testSrc.cpp
index 1a22f6d9..1a22f6d9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/input/testSrc.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/input/testSrc.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/input/testSrcP.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/input/testSrcP.cpp
index 85e36674..85e36674 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/input/testSrcP.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/input/testSrcP.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/input/tracking_space.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/input/tracking_space.cpp
index 5b0b8aa1..5b0b8aa1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/input/tracking_space.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/input/tracking_space.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/input/truncate.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/input/truncate.cpp
index 7ef9530d..7ef9530d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/input/truncate.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/input/truncate.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/input/unmatched_close_pp.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/input/unmatched_close_pp.cpp
index b79d12fd..b79d12fd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/input/unmatched_close_pp.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/input/unmatched_close_pp.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/21.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/21.txt
new file mode 100644
index 00000000..91ddb8ed
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/21.txt
@@ -0,0 +1,2007 @@
+log_rule(indent_text : rule is 'indent_columns'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+indent_text : pc->line is 1, pc->column is 1, pc->Text() is 'struct, indent_column is 1
+log_rule(indent_text : rule is 'pos_conditional'
+indent_text : orig_line is 1, indent_column set to 1, for 'struct'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_macro_brace'
+log_rule(indent_text : rule is 'Update the indent_column'
+log_rule(indent_text : rule is 'indent_shift'
+indent_text : pc->line is 2, pc->column is 1, pc->Text() is '{, indent_column is 1
+log_rule(indent_text : rule is 'pos_conditional'
+indent_text : orig_line is 2, indent_column set to 1, for '{'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+indent_text : pc->line is 3, pc->column is 1, pc->Text() is 'TelegramIndex, indent_column is 9
+log_rule(indent_text : rule is 'pos_conditional'
+indent_text : orig_line is 3, indent_column set to 9, for 'TelegramIndex'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_align_paren'
+log_rule(indent_text : rule is 'indent_paren_nl'
+log_rule(indent_text : rule is 'indent_square_nl'
+log_rule(indent_text : rule is 'indent_paren_after_func_def'
+log_rule(indent_text : rule is 'indent_paren_after_func_decl'
+log_rule(indent_text : rule is 'indent_paren_after_func_call'
+log_rule(indent_text : rule is 'use_indent_continue_only_once'
+log_rule(indent_text : rule is 'indent_paren_after_func_decl'
+log_rule(indent_text : rule is 'indent_paren_after_func_def'
+log_rule(indent_text : rule is 'indent_paren_after_func_call'
+log_rule(indent_text : rule is 'indent_continue'
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_class_colon'
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+indent_text : pc->line is 4, pc->column is 1, pc->Text() is 'pTelName, indent_column is 17
+log_rule(indent_text : rule is 'pos_conditional'
+indent_text : orig_line is 4, indent_column set to 17, for 'pTelName'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_align_paren'
+log_rule(indent_text : rule is 'indent_paren_nl'
+log_rule(indent_text : rule is 'indent_square_nl'
+log_rule(indent_text : rule is 'indent_paren_after_func_def'
+log_rule(indent_text : rule is 'indent_paren_after_func_decl'
+log_rule(indent_text : rule is 'indent_paren_after_func_call'
+log_rule(indent_text : rule is 'use_indent_continue_only_once'
+log_rule(indent_text : rule is 'indent_paren_after_func_decl'
+log_rule(indent_text : rule is 'indent_paren_after_func_def'
+log_rule(indent_text : rule is 'indent_paren_after_func_call'
+log_rule(indent_text : rule is 'indent_continue'
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+indent_text : pc->line is 5, pc->column is 1, pc->Text() is 'nTelIndex, indent_column is 17
+log_rule(indent_text : rule is 'pos_conditional'
+indent_text : orig_line is 5, indent_column set to 17, for 'nTelIndex'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_align_paren'
+log_rule(indent_text : rule is 'indent_paren_nl'
+log_rule(indent_text : rule is 'indent_square_nl'
+log_rule(indent_text : rule is 'indent_paren_after_func_def'
+log_rule(indent_text : rule is 'indent_paren_after_func_decl'
+log_rule(indent_text : rule is 'indent_paren_after_func_call'
+log_rule(indent_text : rule is 'use_indent_continue_only_once'
+log_rule(indent_text : rule is 'indent_paren_after_func_decl'
+log_rule(indent_text : rule is 'indent_paren_after_func_def'
+log_rule(indent_text : rule is 'indent_paren_after_func_call'
+log_rule(indent_text : rule is 'indent_continue'
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_macro_brace'
+log_rule(indent_text : rule is 'Update the indent_column'
+log_rule(indent_text : rule is 'indent_shift'
+indent_text : pc->line is 6, pc->column is 1, pc->Text() is '{, indent_column is 9
+log_rule(indent_text : rule is 'pos_conditional'
+indent_text : orig_line is 6, indent_column set to 9, for '{'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+indent_text : pc->line is 7, pc->column is 1, pc->Text() is '}, indent_column is 9
+log_rule(indent_text : rule is 'pos_conditional'
+indent_text : orig_line is 7, indent_column set to 9, for '}'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+indent_text : pc->line is 9, pc->column is 1, pc->Text() is '~, indent_column is 9
+log_rule(indent_text : rule is 'pos_conditional'
+indent_text : orig_line is 9, indent_column set to 9, for '~'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_align_paren'
+log_rule(indent_text : rule is 'indent_paren_nl'
+log_rule(indent_text : rule is 'indent_square_nl'
+log_rule(indent_text : rule is 'indent_paren_after_func_def'
+log_rule(indent_text : rule is 'indent_paren_after_func_decl'
+log_rule(indent_text : rule is 'indent_paren_after_func_call'
+log_rule(indent_text : rule is 'use_indent_continue_only_once'
+log_rule(indent_text : rule is 'indent_paren_after_func_decl'
+log_rule(indent_text : rule is 'indent_paren_after_func_def'
+log_rule(indent_text : rule is 'indent_paren_after_func_call'
+log_rule(indent_text : rule is 'indent_continue'
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_macro_brace'
+log_rule(indent_text : rule is 'Update the indent_column'
+log_rule(indent_text : rule is 'indent_shift'
+indent_text : pc->line is 10, pc->column is 1, pc->Text() is '{, indent_column is 9
+log_rule(indent_text : rule is 'pos_conditional'
+indent_text : orig_line is 10, indent_column set to 9, for '{'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+indent_text : pc->line is 11, pc->column is 1, pc->Text() is '}, indent_column is 9
+log_rule(indent_text : rule is 'pos_conditional'
+indent_text : orig_line is 11, indent_column set to 9, for '}'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+indent_text : pc->line is 13, pc->column is 1, pc->Text() is 'const, indent_column is 9
+log_rule(indent_text : rule is 'pos_conditional'
+indent_text : orig_line is 13, indent_column set to 9, for 'const'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_continue'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+indent_text : pc->line is 14, pc->column is 1, pc->Text() is 'unsigned, indent_column is 9
+log_rule(indent_text : rule is 'pos_conditional'
+indent_text : orig_line is 14, indent_column set to 9, for 'unsigned'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(reindent_line : rule is 'indent_relative_single_line_comments'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_continue'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+indent_text : pc->line is 15, pc->column is 1, pc->Text() is '}, indent_column is 1
+log_rule(indent_text : rule is 'pos_conditional'
+indent_text : orig_line is 15, indent_column set to 1, for '}'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_columns'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+indent_text : pc->line is 1, pc->column is 1, pc->Text() is 'struct, indent_column is 1
+log_rule(indent_text : rule is 'pos_conditional'
+indent_text : orig_line is 1, indent_column set to 1, for 'struct'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_macro_brace'
+log_rule(indent_text : rule is 'Update the indent_column'
+log_rule(indent_text : rule is 'indent_shift'
+indent_text : pc->line is 2, pc->column is 1, pc->Text() is '{, indent_column is 1
+log_rule(indent_text : rule is 'pos_conditional'
+indent_text : orig_line is 2, indent_column set to 1, for '{'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+indent_text : pc->line is 3, pc->column is 9, pc->Text() is 'TelegramIndex, indent_column is 9
+log_rule(indent_text : rule is 'pos_conditional'
+indent_text : orig_line is 3, indent_column set to 9, for 'TelegramIndex'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_align_paren'
+log_rule(indent_text : rule is 'indent_paren_nl'
+log_rule(indent_text : rule is 'indent_square_nl'
+log_rule(indent_text : rule is 'indent_paren_after_func_def'
+log_rule(indent_text : rule is 'indent_paren_after_func_decl'
+log_rule(indent_text : rule is 'indent_paren_after_func_call'
+log_rule(indent_text : rule is 'use_indent_continue_only_once'
+log_rule(indent_text : rule is 'indent_paren_after_func_decl'
+log_rule(indent_text : rule is 'indent_paren_after_func_def'
+log_rule(indent_text : rule is 'indent_paren_after_func_call'
+log_rule(indent_text : rule is 'indent_continue'
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_class_colon'
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+indent_text : pc->line is 4, pc->column is 17, pc->Text() is 'pTelName, indent_column is 17
+log_rule(indent_text : rule is 'pos_conditional'
+indent_text : orig_line is 4, indent_column set to 17, for 'pTelName'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_align_paren'
+log_rule(indent_text : rule is 'indent_paren_nl'
+log_rule(indent_text : rule is 'indent_square_nl'
+log_rule(indent_text : rule is 'indent_paren_after_func_def'
+log_rule(indent_text : rule is 'indent_paren_after_func_decl'
+log_rule(indent_text : rule is 'indent_paren_after_func_call'
+log_rule(indent_text : rule is 'use_indent_continue_only_once'
+log_rule(indent_text : rule is 'indent_paren_after_func_decl'
+log_rule(indent_text : rule is 'indent_paren_after_func_def'
+log_rule(indent_text : rule is 'indent_paren_after_func_call'
+log_rule(indent_text : rule is 'indent_continue'
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+indent_text : pc->line is 5, pc->column is 17, pc->Text() is 'nTelIndex, indent_column is 17
+log_rule(indent_text : rule is 'pos_conditional'
+indent_text : orig_line is 5, indent_column set to 17, for 'nTelIndex'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_align_paren'
+log_rule(indent_text : rule is 'indent_paren_nl'
+log_rule(indent_text : rule is 'indent_square_nl'
+log_rule(indent_text : rule is 'indent_paren_after_func_def'
+log_rule(indent_text : rule is 'indent_paren_after_func_decl'
+log_rule(indent_text : rule is 'indent_paren_after_func_call'
+log_rule(indent_text : rule is 'use_indent_continue_only_once'
+log_rule(indent_text : rule is 'indent_paren_after_func_decl'
+log_rule(indent_text : rule is 'indent_paren_after_func_def'
+log_rule(indent_text : rule is 'indent_paren_after_func_call'
+log_rule(indent_text : rule is 'indent_continue'
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_macro_brace'
+log_rule(indent_text : rule is 'Update the indent_column'
+log_rule(indent_text : rule is 'indent_shift'
+indent_text : pc->line is 6, pc->column is 9, pc->Text() is '{, indent_column is 9
+log_rule(indent_text : rule is 'pos_conditional'
+indent_text : orig_line is 6, indent_column set to 9, for '{'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+indent_text : pc->line is 7, pc->column is 9, pc->Text() is '}, indent_column is 9
+log_rule(indent_text : rule is 'pos_conditional'
+indent_text : orig_line is 7, indent_column set to 9, for '}'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+indent_text : pc->line is 9, pc->column is 9, pc->Text() is '~, indent_column is 9
+log_rule(indent_text : rule is 'pos_conditional'
+indent_text : orig_line is 9, indent_column set to 9, for '~'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_align_paren'
+log_rule(indent_text : rule is 'indent_paren_nl'
+log_rule(indent_text : rule is 'indent_square_nl'
+log_rule(indent_text : rule is 'indent_paren_after_func_def'
+log_rule(indent_text : rule is 'indent_paren_after_func_decl'
+log_rule(indent_text : rule is 'indent_paren_after_func_call'
+log_rule(indent_text : rule is 'use_indent_continue_only_once'
+log_rule(indent_text : rule is 'indent_paren_after_func_decl'
+log_rule(indent_text : rule is 'indent_paren_after_func_def'
+log_rule(indent_text : rule is 'indent_paren_after_func_call'
+log_rule(indent_text : rule is 'indent_continue'
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_macro_brace'
+log_rule(indent_text : rule is 'Update the indent_column'
+log_rule(indent_text : rule is 'indent_shift'
+indent_text : pc->line is 10, pc->column is 9, pc->Text() is '{, indent_column is 9
+log_rule(indent_text : rule is 'pos_conditional'
+indent_text : orig_line is 10, indent_column set to 9, for '{'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+indent_text : pc->line is 11, pc->column is 9, pc->Text() is '}, indent_column is 9
+log_rule(indent_text : rule is 'pos_conditional'
+indent_text : orig_line is 11, indent_column set to 9, for '}'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+indent_text : pc->line is 13, pc->column is 9, pc->Text() is 'const, indent_column is 9
+log_rule(indent_text : rule is 'pos_conditional'
+indent_text : orig_line is 13, indent_column set to 9, for 'const'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_continue'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+indent_text : pc->line is 14, pc->column is 9, pc->Text() is 'unsigned, indent_column is 9
+log_rule(indent_text : rule is 'pos_conditional'
+indent_text : orig_line is 14, indent_column set to 9, for 'unsigned'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_continue'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+indent_text : pc->line is 15, pc->column is 1, pc->Text() is '}, indent_column is 1
+log_rule(indent_text : rule is 'pos_conditional'
+indent_text : orig_line is 15, indent_column set to 1, for '}'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(indent_text : rule is 'indent_col1_multi_string_literal'
+log_rule(indent_text : rule is 'use_options_overriding_for_qt_macros'
+log_rule(indent_text : rule is 'indent_brace_parent'
+log_rule(indent_text : rule is 'indent_func_def_force_col1'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_inside_ternary_operator'
+log_rule(indent_text : rule is 'indent_access_spec_body'
+log_rule(indent_text : rule is 'indent_oc_inside_msg_sel'
+log_rule(indent_text : rule is 'indent_single_newlines'
+log_rule(indent_text : rule is 'indent_braces'
+log_rule(indent_text : rule is 'indent_braces_no_func'
+log_rule(indent_text : rule is 'indent_braces_no_class'
+log_rule(indent_text : rule is 'indent_braces_no_struct'
+indent_text : brace_indent is FAlse
+log_rule(indent_text : rule is 'indent_shift'
+log_rule(indent_text : rule is 'indent_xml_string'
+log_rule(indent_text : rule is 'indent_continue_class_head'
+log_rule(next_tab_column : rule is 'output_tab_size'
+log_rule(next_tab_column : rule is 'output_tab_size'
+log_rule(next_tab_column : rule is 'output_tab_size'
+log_rule(next_tab_column : rule is 'output_tab_size'
+log_rule(next_tab_column : rule is 'output_tab_size'
+log_rule(next_tab_column : rule is 'output_tab_size'
+log_rule(next_tab_column : rule is 'output_tab_size'
+log_rule(next_tab_column : rule is 'output_tab_size'
+log_rule(next_tab_column : rule is 'output_tab_size'
+log_rule(next_tab_column : rule is 'output_tab_size'
+log_rule(next_tab_column : rule is 'output_tab_size'
+log_rule(next_tab_column : rule is 'output_tab_size'
+log_rule(next_tab_column : rule is 'output_tab_size'
+log_rule(next_tab_column : rule is 'output_tab_size'
+log_rule(next_tab_column : rule is 'output_tab_size'
+log_rule(next_tab_column : rule is 'output_tab_size'
+log_rule(next_tab_column : rule is 'output_tab_size'
+log_rule(next_tab_column : rule is 'output_tab_size'
+log_rule(next_tab_column : rule is 'output_tab_size'
+log_rule(next_tab_column : rule is 'output_tab_size'
+log_rule(next_tab_column : rule is 'output_tab_size'
+log_rule(next_tab_column : rule is 'output_tab_size'
+log_rule(next_tab_column : rule is 'output_tab_size'
+log_rule(next_tab_column : rule is 'output_tab_size'
+log_rule(next_tab_column : rule is 'output_tab_size'
+log_rule(next_tab_column : rule is 'output_tab_size'
+log_rule(next_tab_column : rule is 'output_tab_size'
+log_rule(next_tab_column : rule is 'output_tab_size'
+log_rule(next_tab_column : rule is 'output_tab_size'
+log_rule(next_tab_column : rule is 'output_tab_size'
+log_rule(next_tab_column : rule is 'output_tab_size'
+log_rule(next_tab_column : rule is 'output_tab_size'
+log_rule(next_tab_column : rule is 'output_tab_size'
+log_rule(next_tab_column : rule is 'output_tab_size'
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/25.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/25.txt
new file mode 100644
index 00000000..b801ef15
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/25.txt
@@ -0,0 +1,237 @@
+Newline loop start: 0
+log_rule(newlines_cleanup_braces : rule is 'nl_struct_brace'
+log_rule(newlines_struct_union : rule is 'nl_define_macro'
+log_rule(newlines_cleanup_braces : rule is 'nl_ds_struct_enum_cmt'
+log_rule(newlines_cleanup_braces : rule is 'nl_brace_brace'
+log_rule(newlines_cleanup_braces : rule is 'nl_type_brace_init_lst_open'
+log_rule(newlines_cleanup_braces : rule is 'nl_type_brace_init_lst_close'
+log_rule(newlines_brace_pair : rule is 'nl_define_macro'
+log_rule(newlines_brace_pair : rule is 'nl_create_func_def_one_liner'
+log_rule(collapse_empty_body : rule is 'nl_collapse_empty_body'
+log_rule(newlines_brace_pair : rule is 'eat_blanks_after_open_brace'
+log_rule(newline_def_blk : rule is 'nl_var_def_blk_end'
+log_rule(newline_def_blk : rule is 'nl_var_def_blk_end'
+log_rule(newline_def_blk : rule is 'nl_var_def_blk_start'
+log_rule(newline_def_blk : rule is 'nl_var_def_blk_start'
+newline_add_between : start->Text() is ';', type is SEMICOLON, orig_line is 14, orig_col is 24
+newline_add_between : and end->Text() is '}', orig_line is 15, orig_col is 1
+ [CallStack]
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_start'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_start'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_start_single'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_start_single'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_start_multi_line'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_start_multi_line'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_args'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_args'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_args_multi_line'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_args_multi_line'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_end'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_end'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_end_single'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_end_single'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_end_multi_line'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_end_multi_line'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_empty'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_empty'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_type_name'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_type_name_class'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_class_scope'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_scope_name'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_proto_type_name'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_paren'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_paren'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_paren_empty'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_paren_empty'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_call_args'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_start'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_start'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_start_single'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_start_single'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_start_multi_line'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_start_multi_line'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_args'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_args'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_args_multi_line'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_args_multi_line'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_end'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_end'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_end_single'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_end_single'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_end_multi_line'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_end_multi_line'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_empty'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_empty'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_type_name'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_type_name_class'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_class_scope'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_scope_name'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_proto_type_name'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_paren'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_paren'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_paren_empty'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_paren_empty'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_call_args'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_start'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_start'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_start_single'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_start_single'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_start_multi_line'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_start_multi_line'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_args'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_args'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_args_multi_line'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_args_multi_line'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_end'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_end'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_end_single'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_end_single'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_end_multi_line'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_end_multi_line'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_empty'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_empty'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_type_name'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_type_name_class'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_class_scope'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_scope_name'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_proto_type_name'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_paren'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_paren'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_paren_empty'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_paren_empty'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_call_args'
+log_rule(newlines_cleanup_braces : rule is 'nl_before_opening_brace_func_class_def'
+log_rule(newlines_cleanup_braces : rule is 'nl_brace_brace'
+log_rule(newlines_cleanup_braces : rule is 'nl_type_brace_init_lst_open'
+log_rule(newlines_cleanup_braces : rule is 'nl_type_brace_init_lst_close'
+log_rule(newlines_brace_pair : rule is 'nl_define_macro'
+log_rule(newlines_brace_pair : rule is 'nl_create_func_def_one_liner'
+log_rule(newlines_brace_pair : rule is 'nl_fdef_brace_cond'
+log_rule(newlines_brace_pair : rule is 'nl_fdef_brace'
+log_rule(collapse_empty_body : rule is 'nl_collapse_empty_body'
+log_rule(newlines_brace_pair : rule is 'eat_blanks_after_open_brace'
+newline_add_between : start->Text() is '{', type is BRACE_OPEN, orig_line is 6, orig_col is 1
+newline_add_between : and end->Text() is '}', orig_line is 7, orig_col is 1
+ [CallStack]
+newline_add_between : start->Text() is '{', type is BRACE_OPEN, orig_line is 6, orig_col is 1
+newline_add_between : and end->Text() is '}', orig_line is 7, orig_col is 1
+ [CallStack]
+log_rule(newlines_cleanup_braces : rule is 'nl_brace_brace'
+log_rule(newlines_cleanup_braces : rule is 'nl_brace_square'
+log_rule(newlines_cleanup_braces : rule is 'nl_brace_fparen'
+log_rule(newlines_cleanup_braces : rule is 'nl_type_brace_init_lst_close'
+log_rule(newlines_cleanup_braces : rule is 'eat_blanks_before_close_brace'
+log_rule(newlines_cleanup_braces : rule is 'nl_brace_struct_var'
+log_rule(newlines_cleanup_braces : rule is 'nl_after_brace_close'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_start'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_start'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_start_single'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_start_single'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_start_multi_line'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_start_multi_line'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_args'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_args'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_args_multi_line'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_args_multi_line'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_end'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_end'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_end_single'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_end_single'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_end_multi_line'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_end_multi_line'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_decl_empty'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_empty'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_type_name'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_type_name_class'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_class_scope'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_scope_name'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_proto_type_name'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_paren'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_paren'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_def_paren_empty'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_paren_empty'
+log_rule(newlines_cleanup_braces : rule is 'nl_func_call_args'
+log_rule(newlines_cleanup_braces : rule is 'nl_before_opening_brace_func_class_def'
+log_rule(newlines_cleanup_braces : rule is 'nl_brace_brace'
+log_rule(newlines_cleanup_braces : rule is 'nl_type_brace_init_lst_open'
+log_rule(newlines_cleanup_braces : rule is 'nl_type_brace_init_lst_close'
+log_rule(newlines_brace_pair : rule is 'nl_define_macro'
+log_rule(newlines_brace_pair : rule is 'nl_create_func_def_one_liner'
+log_rule(newlines_brace_pair : rule is 'nl_fdef_brace_cond'
+log_rule(newlines_brace_pair : rule is 'nl_fdef_brace'
+log_rule(collapse_empty_body : rule is 'nl_collapse_empty_body'
+log_rule(newlines_brace_pair : rule is 'eat_blanks_after_open_brace'
+newline_add_between : start->Text() is '{', type is BRACE_OPEN, orig_line is 10, orig_col is 1
+newline_add_between : and end->Text() is '}', orig_line is 11, orig_col is 1
+ [CallStack]
+newline_add_between : start->Text() is '{', type is BRACE_OPEN, orig_line is 10, orig_col is 1
+newline_add_between : and end->Text() is '}', orig_line is 11, orig_col is 1
+ [CallStack]
+log_rule(newlines_cleanup_braces : rule is 'nl_brace_brace'
+log_rule(newlines_cleanup_braces : rule is 'nl_brace_square'
+log_rule(newlines_cleanup_braces : rule is 'nl_brace_fparen'
+log_rule(newlines_cleanup_braces : rule is 'nl_type_brace_init_lst_close'
+log_rule(newlines_cleanup_braces : rule is 'eat_blanks_before_close_brace'
+log_rule(newlines_cleanup_braces : rule is 'nl_brace_struct_var'
+log_rule(newlines_cleanup_braces : rule is 'nl_after_brace_close'
+log_rule(newlines_cleanup_braces : rule is 'nl_after_semicolon'
+log_rule(newlines_cleanup_braces : rule is 'nl_after_semicolon'
+log_rule(newlines_cleanup_braces : rule is 'nl_brace_brace'
+log_rule(newlines_cleanup_braces : rule is 'nl_brace_square'
+log_rule(newlines_cleanup_braces : rule is 'nl_brace_fparen'
+log_rule(newlines_cleanup_braces : rule is 'nl_type_brace_init_lst_close'
+log_rule(newlines_cleanup_braces : rule is 'eat_blanks_before_close_brace'
+log_rule(newlines_cleanup_braces : rule is 'nl_brace_struct_var'
+log_rule(newlines_cleanup_braces : rule is 'nl_after_semicolon'
+log_rule(newline_def_blk : rule is 'nl_var_def_blk_end'
+log_rule(newline_def_blk : rule is 'nl_var_def_blk_end'
+log_rule(newline_def_blk : rule is 'nl_var_def_blk_start'
+log_rule(newline_def_blk : rule is 'nl_var_def_blk_start'
+log_rule(newlines_func_pre_blank_lines : rule is 'nl_before_func_class_def'
+log_rule(newlines_func_pre_blank_lines : rule is 'nl_before_func_class_proto'
+log_rule(newlines_func_pre_blank_lines : rule is 'nl_before_func_body_def'
+log_rule(newlines_func_pre_blank_lines : rule is 'nl_before_func_body_proto'
+log_rule(newlines_func_pre_blank_lines : rule is 'nl_before_func_class_def'
+log_rule(newlines_func_pre_blank_lines : rule is 'nl_before_func_class_proto'
+log_rule(newlines_func_pre_blank_lines : rule is 'nl_before_func_body_def'
+log_rule(newlines_func_pre_blank_lines : rule is 'nl_before_func_body_proto'
+log_rule(newlines_class_colon_pos : rule is 'pos_class_colon'
+log_rule(newlines_class_colon_pos : rule is 'nl_class_colon'
+log_rule(newlines_class_colon_pos : rule is 'nl_class_init_args'
+log_rule(newlines_class_colon_pos : rule is 'pos_class_comma'
+log_rule(newlines_class_colon_pos : rule is 'align_constr_value_span'
+log_rule(newlines_class_colon_pos : rule is 'pos_constr_colon'
+log_rule(newlines_class_colon_pos : rule is 'nl_constr_colon'
+log_rule(newlines_class_colon_pos : rule is 'nl_constr_init_args'
+log_rule(newlines_class_colon_pos : rule is 'pos_constr_comma'
+log_rule(newlines_class_colon_pos : rule is 'align_constr_value_span'
+log_rule(can_increase_nl : rule is 'nl_start_of_file'
+log_rule(can_increase_nl : rule is 'nl_end_of_file'
+log_rule(can_increase_nl : rule is 'nl_start_of_file'
+log_rule(can_increase_nl : rule is 'nl_end_of_file'
+log_rule(can_increase_nl : rule is 'nl_start_of_file'
+log_rule(can_increase_nl : rule is 'nl_end_of_file'
+log_rule(can_increase_nl : rule is 'nl_start_of_file'
+log_rule(can_increase_nl : rule is 'nl_end_of_file'
+log_rule(can_increase_nl : rule is 'nl_start_of_file'
+log_rule(can_increase_nl : rule is 'nl_end_of_file'
+log_rule(can_increase_nl : rule is 'nl_start_of_file'
+log_rule(can_increase_nl : rule is 'nl_end_of_file'
+log_rule(can_increase_nl : rule is 'nl_start_of_file'
+log_rule(can_increase_nl : rule is 'nl_end_of_file'
+log_rule(can_increase_nl : rule is 'nl_start_of_file'
+log_rule(can_increase_nl : rule is 'nl_end_of_file'
+log_rule(can_increase_nl : rule is 'nl_start_of_file'
+log_rule(can_increase_nl : rule is 'nl_end_of_file'
+log_rule(can_increase_nl : rule is 'nl_start_of_file'
+log_rule(can_increase_nl : rule is 'nl_end_of_file'
+log_rule(can_increase_nl : rule is 'nl_start_of_file'
+log_rule(can_increase_nl : rule is 'nl_end_of_file'
+log_rule(can_increase_nl : rule is 'nl_start_of_file'
+log_rule(can_increase_nl : rule is 'nl_end_of_file'
+log_rule(can_increase_nl : rule is 'nl_start_of_file'
+log_rule(can_increase_nl : rule is 'nl_end_of_file'
+log_rule(do_blank_lines : rule is 'nl_after_class'
+log_rule(do_blank_lines : rule is 'nl_after_struct'
+log_rule(newlines_functions_remove_extra_blank_lines : rule is 'nl_max_blank_in_func'
+newlines_functions_remove_extra_blank_lines : nl_max_blank_in_func is zero
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/28.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/28.txt
new file mode 100644
index 00000000..7dc7aab8
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/28.txt
@@ -0,0 +1,428 @@
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(parse_next : rule is 'disable_processing_nl_cont'
+log_rule(tokenize : rule is 'newlines'
+brace_cleanup : orig_line is 1, orig_col is 1, Text() is 'struct'
+brace_cleanup : pp_level is 0
+parse_cleanup : orig_line is 1, orig_col is 1, type is STRUCT, tos is 0, TOS.type is EOF, TOS.stage is NONE, []
+parse_cleanup : orig_line is 1, type is STRUCT, Text() is 'struct'
+parse_cleanup : frm.stmt_count is 0, frm.expr_count is 0
+parse_cleanup : frm.stmt_count is 1, frm.expr_count is 1
+brace_cleanup : orig_line is 1, orig_col is 8, Text() is 'TelegramIndex'
+brace_cleanup : pp_level is 0
+parse_cleanup : orig_line is 1, orig_col is 8, type is TYPE, tos is 0, TOS.type is EOF, TOS.stage is NONE, []
+parse_cleanup : orig_line is 1, type is TYPE, Text() is 'TelegramIndex'
+parse_cleanup : frm.stmt_count is 1, frm.expr_count is 1
+parse_cleanup : frm.stmt_count is 2, frm.expr_count is 2
+brace_cleanup : orig_line is 1, orig_col is 21, Text() is ''
+brace_cleanup : pp_level is 0
+brace_cleanup : orig_line is 2, orig_col is 1, Text() is '{'
+brace_cleanup : pp_level is 0
+parse_cleanup : orig_line is 2, orig_col is 1, type is BRACE_OPEN, tos is 0, TOS.type is EOF, TOS.stage is NONE, []
+parse_cleanup : orig_line is 2, type is BRACE_OPEN, Text() is '{'
+parse_cleanup : frm.stmt_count is 2, frm.expr_count is 2
+parse_cleanup : frm.stmt_count is 3, frm.expr_count is 3
+parse_cleanup : frm.stmt_count is 0, frm.expr_count is 0
+brace_cleanup : orig_line is 2, orig_col is 2, Text() is ''
+brace_cleanup : pp_level is 0
+brace_cleanup : orig_line is 3, orig_col is 1, Text() is 'TelegramIndex'
+brace_cleanup : pp_level is 0
+parse_cleanup : orig_line is 3, orig_col is 1, type is WORD, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, []
+parse_cleanup : orig_line is 3, type is WORD, Text() is 'TelegramIndex'
+parse_cleanup : frm.stmt_count is 0, frm.expr_count is 0
+parse_cleanup : frm.stmt_count is 1, frm.expr_count is 1
+brace_cleanup : orig_line is 3, orig_col is 14, Text() is '('
+brace_cleanup : pp_level is 0
+parse_cleanup : orig_line is 3, orig_col is 14, type is PAREN_OPEN, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, []
+parse_cleanup : orig_line is 3, type is PAREN_OPEN, Text() is '('
+parse_cleanup : frm.stmt_count is 1, frm.expr_count is 1
+parse_cleanup : frm.stmt_count is 2, frm.expr_count is 2
+brace_cleanup : orig_line is 3, orig_col is 15, Text() is 'const'
+brace_cleanup : pp_level is 0
+parse_cleanup : orig_line is 3, orig_col is 15, type is QUALIFIER, tos is 2, TOS.type is PAREN_OPEN, TOS.stage is NONE, []
+parse_cleanup : orig_line is 3, type is QUALIFIER, Text() is 'const'
+parse_cleanup : frm.stmt_count is 2, frm.expr_count is 0
+parse_cleanup : frm.stmt_count is 3, frm.expr_count is 1
+brace_cleanup : orig_line is 3, orig_col is 21, Text() is 'char'
+brace_cleanup : pp_level is 0
+parse_cleanup : orig_line is 3, orig_col is 21, type is TYPE, tos is 2, TOS.type is PAREN_OPEN, TOS.stage is NONE, []
+parse_cleanup : orig_line is 3, type is TYPE, Text() is 'char'
+parse_cleanup : frm.stmt_count is 3, frm.expr_count is 1
+parse_cleanup : frm.stmt_count is 4, frm.expr_count is 2
+brace_cleanup : orig_line is 3, orig_col is 25, Text() is '*'
+brace_cleanup : pp_level is 0
+parse_cleanup : orig_line is 3, orig_col is 25, type is PTR_TYPE, tos is 2, TOS.type is PAREN_OPEN, TOS.stage is NONE, []
+parse_cleanup : orig_line is 3, type is PTR_TYPE, Text() is '*'
+parse_cleanup : frm.stmt_count is 4, frm.expr_count is 2
+parse_cleanup : frm.stmt_count is 5, frm.expr_count is 3
+brace_cleanup : orig_line is 3, orig_col is 27, Text() is 'pN'
+brace_cleanup : pp_level is 0
+parse_cleanup : orig_line is 3, orig_col is 27, type is WORD, tos is 2, TOS.type is PAREN_OPEN, TOS.stage is NONE, []
+parse_cleanup : orig_line is 3, type is WORD, Text() is 'pN'
+parse_cleanup : frm.stmt_count is 5, frm.expr_count is 3
+parse_cleanup : frm.stmt_count is 6, frm.expr_count is 4
+brace_cleanup : orig_line is 3, orig_col is 29, Text() is ','
+brace_cleanup : pp_level is 0
+parse_cleanup : orig_line is 3, orig_col is 29, type is COMMA, tos is 2, TOS.type is PAREN_OPEN, TOS.stage is NONE, []
+parse_cleanup : orig_line is 3, type is COMMA, Text() is ','
+parse_cleanup : frm.stmt_count is 6, frm.expr_count is 4
+parse_cleanup : frm.stmt_count is 7, frm.expr_count is 5
+brace_cleanup : orig_line is 3, orig_col is 31, Text() is 'unsigned'
+brace_cleanup : pp_level is 0
+parse_cleanup : orig_line is 3, orig_col is 31, type is TYPE, tos is 2, TOS.type is PAREN_OPEN, TOS.stage is NONE, []
+parse_cleanup : orig_line is 3, type is TYPE, Text() is 'unsigned'
+parse_cleanup : frm.stmt_count is 7, frm.expr_count is 0
+parse_cleanup : frm.stmt_count is 8, frm.expr_count is 1
+brace_cleanup : orig_line is 3, orig_col is 40, Text() is 'long'
+brace_cleanup : pp_level is 0
+parse_cleanup : orig_line is 3, orig_col is 40, type is TYPE, tos is 2, TOS.type is PAREN_OPEN, TOS.stage is NONE, []
+parse_cleanup : orig_line is 3, type is TYPE, Text() is 'long'
+parse_cleanup : frm.stmt_count is 8, frm.expr_count is 1
+parse_cleanup : frm.stmt_count is 9, frm.expr_count is 2
+brace_cleanup : orig_line is 3, orig_col is 45, Text() is 'nI'
+brace_cleanup : pp_level is 0
+parse_cleanup : orig_line is 3, orig_col is 45, type is WORD, tos is 2, TOS.type is PAREN_OPEN, TOS.stage is NONE, []
+parse_cleanup : orig_line is 3, type is WORD, Text() is 'nI'
+parse_cleanup : frm.stmt_count is 9, frm.expr_count is 2
+parse_cleanup : frm.stmt_count is 10, frm.expr_count is 3
+brace_cleanup : orig_line is 3, orig_col is 47, Text() is ')'
+brace_cleanup : pp_level is 0
+parse_cleanup : orig_line is 3, orig_col is 47, type is PAREN_CLOSE, tos is 2, TOS.type is PAREN_OPEN, TOS.stage is NONE, []
+parse_cleanup : orig_line is 3, type is PAREN_CLOSE, Text() is ')'
+parse_cleanup : frm.stmt_count is 10, frm.expr_count is 3
+parse_cleanup : frm.stmt_count is 11, frm.expr_count is 4
+brace_cleanup : orig_line is 3, orig_col is 49, Text() is ':'
+brace_cleanup : pp_level is 0
+parse_cleanup : orig_line is 3, orig_col is 49, type is COLON, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, []
+parse_cleanup : orig_line is 3, type is COLON, Text() is ':'
+parse_cleanup : frm.stmt_count is 11, frm.expr_count is 4
+parse_cleanup : frm.stmt_count is 12, frm.expr_count is 5
+parse_cleanup : frm.stmt_count is 0, frm.expr_count is 0
+brace_cleanup : orig_line is 3, orig_col is 50, Text() is ''
+brace_cleanup : pp_level is 0
+brace_cleanup : orig_line is 4, orig_col is 1, Text() is 'pTelName'
+brace_cleanup : pp_level is 0
+parse_cleanup : orig_line is 4, orig_col is 1, type is WORD, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, []
+parse_cleanup : orig_line is 4, type is WORD, Text() is 'pTelName'
+parse_cleanup : frm.stmt_count is 0, frm.expr_count is 0
+parse_cleanup : frm.stmt_count is 1, frm.expr_count is 1
+brace_cleanup : orig_line is 4, orig_col is 9, Text() is '('
+brace_cleanup : pp_level is 0
+parse_cleanup : orig_line is 4, orig_col is 9, type is PAREN_OPEN, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, []
+parse_cleanup : orig_line is 4, type is PAREN_OPEN, Text() is '('
+parse_cleanup : frm.stmt_count is 1, frm.expr_count is 1
+parse_cleanup : frm.stmt_count is 2, frm.expr_count is 2
+brace_cleanup : orig_line is 4, orig_col is 10, Text() is 'pN'
+brace_cleanup : pp_level is 0
+parse_cleanup : orig_line is 4, orig_col is 10, type is WORD, tos is 2, TOS.type is PAREN_OPEN, TOS.stage is NONE, []
+parse_cleanup : orig_line is 4, type is WORD, Text() is 'pN'
+parse_cleanup : frm.stmt_count is 2, frm.expr_count is 0
+parse_cleanup : frm.stmt_count is 3, frm.expr_count is 1
+brace_cleanup : orig_line is 4, orig_col is 12, Text() is ')'
+brace_cleanup : pp_level is 0
+parse_cleanup : orig_line is 4, orig_col is 12, type is PAREN_CLOSE, tos is 2, TOS.type is PAREN_OPEN, TOS.stage is NONE, []
+parse_cleanup : orig_line is 4, type is PAREN_CLOSE, Text() is ')'
+parse_cleanup : frm.stmt_count is 3, frm.expr_count is 1
+parse_cleanup : frm.stmt_count is 4, frm.expr_count is 2
+brace_cleanup : orig_line is 4, orig_col is 13, Text() is ','
+brace_cleanup : pp_level is 0
+parse_cleanup : orig_line is 4, orig_col is 13, type is COMMA, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, []
+parse_cleanup : orig_line is 4, type is COMMA, Text() is ','
+parse_cleanup : frm.stmt_count is 4, frm.expr_count is 2
+parse_cleanup : frm.stmt_count is 5, frm.expr_count is 3
+brace_cleanup : orig_line is 4, orig_col is 14, Text() is ''
+brace_cleanup : pp_level is 0
+brace_cleanup : orig_line is 5, orig_col is 1, Text() is 'nTelIndex'
+brace_cleanup : pp_level is 0
+parse_cleanup : orig_line is 5, orig_col is 1, type is WORD, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, []
+parse_cleanup : orig_line is 5, type is WORD, Text() is 'nTelIndex'
+parse_cleanup : frm.stmt_count is 5, frm.expr_count is 0
+parse_cleanup : frm.stmt_count is 6, frm.expr_count is 1
+brace_cleanup : orig_line is 5, orig_col is 10, Text() is '('
+brace_cleanup : pp_level is 0
+parse_cleanup : orig_line is 5, orig_col is 10, type is PAREN_OPEN, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, []
+parse_cleanup : orig_line is 5, type is PAREN_OPEN, Text() is '('
+parse_cleanup : frm.stmt_count is 6, frm.expr_count is 1
+parse_cleanup : frm.stmt_count is 7, frm.expr_count is 2
+brace_cleanup : orig_line is 5, orig_col is 11, Text() is 'n'
+brace_cleanup : pp_level is 0
+parse_cleanup : orig_line is 5, orig_col is 11, type is WORD, tos is 2, TOS.type is PAREN_OPEN, TOS.stage is NONE, []
+parse_cleanup : orig_line is 5, type is WORD, Text() is 'n'
+parse_cleanup : frm.stmt_count is 7, frm.expr_count is 0
+parse_cleanup : frm.stmt_count is 8, frm.expr_count is 1
+brace_cleanup : orig_line is 5, orig_col is 12, Text() is ')'
+brace_cleanup : pp_level is 0
+parse_cleanup : orig_line is 5, orig_col is 12, type is PAREN_CLOSE, tos is 2, TOS.type is PAREN_OPEN, TOS.stage is NONE, []
+parse_cleanup : orig_line is 5, type is PAREN_CLOSE, Text() is ')'
+parse_cleanup : frm.stmt_count is 8, frm.expr_count is 1
+parse_cleanup : frm.stmt_count is 9, frm.expr_count is 2
+brace_cleanup : orig_line is 5, orig_col is 13, Text() is ''
+brace_cleanup : pp_level is 0
+brace_cleanup : orig_line is 6, orig_col is 1, Text() is '{'
+brace_cleanup : pp_level is 0
+parse_cleanup : orig_line is 6, orig_col is 1, type is BRACE_OPEN, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, []
+parse_cleanup : orig_line is 6, type is BRACE_OPEN, Text() is '{'
+parse_cleanup : frm.stmt_count is 9, frm.expr_count is 2
+parse_cleanup : frm.stmt_count is 10, frm.expr_count is 3
+parse_cleanup : frm.stmt_count is 0, frm.expr_count is 0
+brace_cleanup : orig_line is 6, orig_col is 2, Text() is ''
+brace_cleanup : pp_level is 0
+brace_cleanup : orig_line is 7, orig_col is 1, Text() is '}'
+brace_cleanup : pp_level is 0
+parse_cleanup : orig_line is 7, orig_col is 1, type is BRACE_CLOSE, tos is 2, TOS.type is BRACE_OPEN, TOS.stage is NONE, []
+parse_cleanup : orig_line is 7, type is BRACE_CLOSE, Text() is '}'
+parse_cleanup : frm.stmt_count is 0, frm.expr_count is 0
+parse_cleanup : frm.stmt_count is 1, frm.expr_count is 1
+parse_cleanup : frm.stmt_count is 0, frm.expr_count is 0
+brace_cleanup : orig_line is 7, orig_col is 2, Text() is ''
+brace_cleanup : pp_level is 0
+brace_cleanup : orig_line is 9, orig_col is 1, Text() is '~'
+brace_cleanup : pp_level is 0
+parse_cleanup : orig_line is 9, orig_col is 1, type is INV, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, []
+parse_cleanup : orig_line is 9, type is INV, Text() is '~'
+parse_cleanup : frm.stmt_count is 0, frm.expr_count is 0
+parse_cleanup : frm.stmt_count is 1, frm.expr_count is 1
+brace_cleanup : orig_line is 9, orig_col is 2, Text() is 'TelegramIndex'
+brace_cleanup : pp_level is 0
+parse_cleanup : orig_line is 9, orig_col is 2, type is WORD, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, []
+parse_cleanup : orig_line is 9, type is WORD, Text() is 'TelegramIndex'
+parse_cleanup : frm.stmt_count is 1, frm.expr_count is 0
+parse_cleanup : frm.stmt_count is 2, frm.expr_count is 1
+brace_cleanup : orig_line is 9, orig_col is 15, Text() is '('
+brace_cleanup : pp_level is 0
+parse_cleanup : orig_line is 9, orig_col is 15, type is PAREN_OPEN, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, []
+parse_cleanup : orig_line is 9, type is PAREN_OPEN, Text() is '('
+parse_cleanup : frm.stmt_count is 2, frm.expr_count is 1
+parse_cleanup : frm.stmt_count is 3, frm.expr_count is 2
+brace_cleanup : orig_line is 9, orig_col is 16, Text() is ')'
+brace_cleanup : pp_level is 0
+parse_cleanup : orig_line is 9, orig_col is 16, type is PAREN_CLOSE, tos is 2, TOS.type is PAREN_OPEN, TOS.stage is NONE, []
+parse_cleanup : orig_line is 9, type is PAREN_CLOSE, Text() is ')'
+parse_cleanup : frm.stmt_count is 3, frm.expr_count is 0
+parse_cleanup : frm.stmt_count is 4, frm.expr_count is 1
+brace_cleanup : orig_line is 9, orig_col is 17, Text() is ''
+brace_cleanup : pp_level is 0
+brace_cleanup : orig_line is 10, orig_col is 1, Text() is '{'
+brace_cleanup : pp_level is 0
+parse_cleanup : orig_line is 10, orig_col is 1, type is BRACE_OPEN, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, []
+parse_cleanup : orig_line is 10, type is BRACE_OPEN, Text() is '{'
+parse_cleanup : frm.stmt_count is 4, frm.expr_count is 1
+parse_cleanup : frm.stmt_count is 5, frm.expr_count is 2
+parse_cleanup : frm.stmt_count is 0, frm.expr_count is 0
+brace_cleanup : orig_line is 10, orig_col is 2, Text() is ''
+brace_cleanup : pp_level is 0
+brace_cleanup : orig_line is 11, orig_col is 1, Text() is '}'
+brace_cleanup : pp_level is 0
+parse_cleanup : orig_line is 11, orig_col is 1, type is BRACE_CLOSE, tos is 2, TOS.type is BRACE_OPEN, TOS.stage is NONE, []
+parse_cleanup : orig_line is 11, type is BRACE_CLOSE, Text() is '}'
+parse_cleanup : frm.stmt_count is 0, frm.expr_count is 0
+parse_cleanup : frm.stmt_count is 1, frm.expr_count is 1
+parse_cleanup : frm.stmt_count is 0, frm.expr_count is 0
+brace_cleanup : orig_line is 11, orig_col is 2, Text() is ''
+brace_cleanup : pp_level is 0
+brace_cleanup : orig_line is 13, orig_col is 1, Text() is 'const'
+brace_cleanup : pp_level is 0
+parse_cleanup : orig_line is 13, orig_col is 1, type is QUALIFIER, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, []
+parse_cleanup : orig_line is 13, type is QUALIFIER, Text() is 'const'
+parse_cleanup : frm.stmt_count is 0, frm.expr_count is 0
+parse_cleanup : frm.stmt_count is 1, frm.expr_count is 1
+brace_cleanup : orig_line is 13, orig_col is 7, Text() is 'char'
+brace_cleanup : pp_level is 0
+parse_cleanup : orig_line is 13, orig_col is 7, type is TYPE, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, []
+parse_cleanup : orig_line is 13, type is TYPE, Text() is 'char'
+parse_cleanup : frm.stmt_count is 1, frm.expr_count is 1
+parse_cleanup : frm.stmt_count is 2, frm.expr_count is 2
+brace_cleanup : orig_line is 13, orig_col is 11, Text() is '*'
+brace_cleanup : pp_level is 0
+parse_cleanup : orig_line is 13, orig_col is 11, type is PTR_TYPE, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, []
+parse_cleanup : orig_line is 13, type is PTR_TYPE, Text() is '*'
+parse_cleanup : frm.stmt_count is 2, frm.expr_count is 2
+parse_cleanup : frm.stmt_count is 3, frm.expr_count is 3
+brace_cleanup : orig_line is 13, orig_col is 13, Text() is 'const'
+brace_cleanup : pp_level is 0
+parse_cleanup : orig_line is 13, orig_col is 13, type is QUALIFIER, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, []
+parse_cleanup : orig_line is 13, type is QUALIFIER, Text() is 'const'
+parse_cleanup : frm.stmt_count is 3, frm.expr_count is 3
+parse_cleanup : frm.stmt_count is 4, frm.expr_count is 4
+brace_cleanup : orig_line is 13, orig_col is 19, Text() is 'pTelName'
+brace_cleanup : pp_level is 0
+parse_cleanup : orig_line is 13, orig_col is 19, type is WORD, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, []
+parse_cleanup : orig_line is 13, type is WORD, Text() is 'pTelName'
+parse_cleanup : frm.stmt_count is 4, frm.expr_count is 4
+parse_cleanup : frm.stmt_count is 5, frm.expr_count is 5
+brace_cleanup : orig_line is 13, orig_col is 27, Text() is ';'
+brace_cleanup : pp_level is 0
+parse_cleanup : orig_line is 13, orig_col is 27, type is SEMICOLON, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, []
+parse_cleanup : orig_line is 13, type is SEMICOLON, Text() is ';'
+parse_cleanup : frm.stmt_count is 5, frm.expr_count is 5
+parse_cleanup : frm.stmt_count is 6, frm.expr_count is 6
+parse_cleanup : frm.stmt_count is 0, frm.expr_count is 0
+brace_cleanup : orig_line is 13, orig_col is 28, Text() is ''
+brace_cleanup : pp_level is 0
+brace_cleanup : orig_line is 14, orig_col is 1, Text() is 'unsigned'
+brace_cleanup : pp_level is 0
+parse_cleanup : orig_line is 14, orig_col is 1, type is TYPE, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, []
+parse_cleanup : orig_line is 14, type is TYPE, Text() is 'unsigned'
+parse_cleanup : frm.stmt_count is 0, frm.expr_count is 0
+parse_cleanup : frm.stmt_count is 1, frm.expr_count is 1
+brace_cleanup : orig_line is 14, orig_col is 10, Text() is 'long'
+brace_cleanup : pp_level is 0
+parse_cleanup : orig_line is 14, orig_col is 10, type is TYPE, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, []
+parse_cleanup : orig_line is 14, type is TYPE, Text() is 'long'
+parse_cleanup : frm.stmt_count is 1, frm.expr_count is 1
+parse_cleanup : frm.stmt_count is 2, frm.expr_count is 2
+brace_cleanup : orig_line is 14, orig_col is 15, Text() is 'nTelIndex'
+brace_cleanup : pp_level is 0
+parse_cleanup : orig_line is 14, orig_col is 15, type is WORD, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, []
+parse_cleanup : orig_line is 14, type is WORD, Text() is 'nTelIndex'
+parse_cleanup : frm.stmt_count is 2, frm.expr_count is 2
+parse_cleanup : frm.stmt_count is 3, frm.expr_count is 3
+brace_cleanup : orig_line is 14, orig_col is 24, Text() is ';'
+brace_cleanup : pp_level is 0
+parse_cleanup : orig_line is 14, orig_col is 24, type is SEMICOLON, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, []
+parse_cleanup : orig_line is 14, type is SEMICOLON, Text() is ';'
+parse_cleanup : frm.stmt_count is 3, frm.expr_count is 3
+parse_cleanup : frm.stmt_count is 4, frm.expr_count is 4
+parse_cleanup : frm.stmt_count is 0, frm.expr_count is 0
+brace_cleanup : orig_line is 14, orig_col is 25, Text() is ''
+brace_cleanup : pp_level is 0
+brace_cleanup : orig_line is 15, orig_col is 1, Text() is '}'
+brace_cleanup : pp_level is 0
+parse_cleanup : orig_line is 15, orig_col is 1, type is BRACE_CLOSE, tos is 1, TOS.type is BRACE_OPEN, TOS.stage is NONE, []
+parse_cleanup : orig_line is 15, type is BRACE_CLOSE, Text() is '}'
+parse_cleanup : frm.stmt_count is 0, frm.expr_count is 0
+parse_cleanup : frm.stmt_count is 1, frm.expr_count is 1
+parse_cleanup : frm.stmt_count is 0, frm.expr_count is 0
+brace_cleanup : orig_line is 15, orig_col is 2, Text() is ';'
+brace_cleanup : pp_level is 0
+parse_cleanup : orig_line is 15, orig_col is 2, type is SEMICOLON, tos is 0, TOS.type is EOF, TOS.stage is NONE, []
+parse_cleanup : orig_line is 15, type is SEMICOLON, Text() is ';'
+parse_cleanup : frm.stmt_count is 0, frm.expr_count is 0
+parse_cleanup : frm.stmt_count is 1, frm.expr_count is 1
+parse_cleanup : frm.stmt_count is 0, frm.expr_count is 0
+brace_cleanup : orig_line is 15, orig_col is 3, Text() is ''
+brace_cleanup : pp_level is 0
+parameter_pack_cleanup : orig_line is 1, orig_col is 1, Text() is 'struct'
+parameter_pack_cleanup : orig_line is 1, orig_col is 8, Text() is 'TelegramIndex'
+parameter_pack_cleanup : orig_line is 1, orig_col is 21, Text() is ''
+parameter_pack_cleanup : orig_line is 2, orig_col is 1, Text() is '{'
+parameter_pack_cleanup : orig_line is 2, orig_col is 2, Text() is ''
+parameter_pack_cleanup : orig_line is 3, orig_col is 1, Text() is 'TelegramIndex'
+parameter_pack_cleanup : orig_line is 3, orig_col is 14, Text() is '('
+parameter_pack_cleanup : orig_line is 3, orig_col is 15, Text() is 'const'
+parameter_pack_cleanup : orig_line is 3, orig_col is 21, Text() is 'char'
+parameter_pack_cleanup : orig_line is 3, orig_col is 25, Text() is '*'
+parameter_pack_cleanup : orig_line is 3, orig_col is 27, Text() is 'pN'
+parameter_pack_cleanup : orig_line is 3, orig_col is 29, Text() is ','
+parameter_pack_cleanup : orig_line is 3, orig_col is 31, Text() is 'unsigned'
+parameter_pack_cleanup : orig_line is 3, orig_col is 40, Text() is 'long'
+parameter_pack_cleanup : orig_line is 3, orig_col is 45, Text() is 'nI'
+parameter_pack_cleanup : orig_line is 3, orig_col is 47, Text() is ')'
+parameter_pack_cleanup : orig_line is 3, orig_col is 49, Text() is ':'
+parameter_pack_cleanup : orig_line is 3, orig_col is 50, Text() is ''
+parameter_pack_cleanup : orig_line is 4, orig_col is 1, Text() is 'pTelName'
+parameter_pack_cleanup : orig_line is 4, orig_col is 9, Text() is '('
+parameter_pack_cleanup : orig_line is 4, orig_col is 10, Text() is 'pN'
+parameter_pack_cleanup : orig_line is 4, orig_col is 12, Text() is ')'
+parameter_pack_cleanup : orig_line is 4, orig_col is 13, Text() is ','
+parameter_pack_cleanup : orig_line is 4, orig_col is 14, Text() is ''
+parameter_pack_cleanup : orig_line is 5, orig_col is 1, Text() is 'nTelIndex'
+parameter_pack_cleanup : orig_line is 5, orig_col is 10, Text() is '('
+parameter_pack_cleanup : orig_line is 5, orig_col is 11, Text() is 'n'
+parameter_pack_cleanup : orig_line is 5, orig_col is 12, Text() is ')'
+parameter_pack_cleanup : orig_line is 5, orig_col is 13, Text() is ''
+parameter_pack_cleanup : orig_line is 6, orig_col is 1, Text() is '{'
+parameter_pack_cleanup : orig_line is 6, orig_col is 2, Text() is ''
+parameter_pack_cleanup : orig_line is 7, orig_col is 1, Text() is '}'
+parameter_pack_cleanup : orig_line is 7, orig_col is 2, Text() is ''
+parameter_pack_cleanup : orig_line is 9, orig_col is 1, Text() is '~'
+parameter_pack_cleanup : orig_line is 9, orig_col is 2, Text() is 'TelegramIndex'
+parameter_pack_cleanup : orig_line is 9, orig_col is 15, Text() is '('
+parameter_pack_cleanup : orig_line is 9, orig_col is 16, Text() is ')'
+parameter_pack_cleanup : orig_line is 9, orig_col is 17, Text() is ''
+parameter_pack_cleanup : orig_line is 10, orig_col is 1, Text() is '{'
+parameter_pack_cleanup : orig_line is 10, orig_col is 2, Text() is ''
+parameter_pack_cleanup : orig_line is 11, orig_col is 1, Text() is '}'
+parameter_pack_cleanup : orig_line is 11, orig_col is 2, Text() is ''
+parameter_pack_cleanup : orig_line is 13, orig_col is 1, Text() is 'const'
+parameter_pack_cleanup : orig_line is 13, orig_col is 7, Text() is 'char'
+parameter_pack_cleanup : orig_line is 13, orig_col is 11, Text() is '*'
+parameter_pack_cleanup : orig_line is 13, orig_col is 13, Text() is 'const'
+parameter_pack_cleanup : orig_line is 13, orig_col is 19, Text() is 'pTelName'
+parameter_pack_cleanup : orig_line is 13, orig_col is 27, Text() is ';'
+parameter_pack_cleanup : orig_line is 13, orig_col is 28, Text() is ''
+parameter_pack_cleanup : orig_line is 14, orig_col is 1, Text() is 'unsigned'
+parameter_pack_cleanup : orig_line is 14, orig_col is 10, Text() is 'long'
+parameter_pack_cleanup : orig_line is 14, orig_col is 15, Text() is 'nTelIndex'
+parameter_pack_cleanup : orig_line is 14, orig_col is 24, Text() is ';'
+parameter_pack_cleanup : orig_line is 14, orig_col is 25, Text() is ''
+parameter_pack_cleanup : orig_line is 15, orig_col is 1, Text() is '}'
+parameter_pack_cleanup : orig_line is 15, orig_col is 2, Text() is ';'
+parameter_pack_cleanup : orig_line is 15, orig_col is 3, Text() is ''
+log_rule(enum_cleanup : rule is 'mod_enum_last_comma'
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/31.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/31.txt
new file mode 100644
index 00000000..b683ad53
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/31.txt
@@ -0,0 +1,876 @@
+indent_text : orig_line is 1, orig_col is 1, for 'struct'
+indent_text : orig_line is 1, orig_col is 1, column is 1, for 'struct'
+ []
+indent_text : frm.pse_tos is 0, ...indent_tmp is 1
+indent_text : pc->orig_line is 1, orig_col is 1, Text() is 'struct', type is STRUCT
+indent_text : frm.pse_tos is 0, ...indent_tmp is 1
+reindent_line : orig_line is 1, orig_col is 1, on 'struct' [STRUCT/NONE] => 1
+ [CallStack]
+indent_text : pc->orig_line is 1, orig_col is 8, Text() is 'TelegramIndex', type is TYPE
+indent_text : orig_line is 1, orig_col is 8, for 'TelegramIndex'
+indent_text : orig_line is 1, orig_col is 8, column is 8, for 'TelegramIndex'
+ []
+indent_text : frm.pse_tos is 0, ...indent_tmp is 1
+indent_text : pc->orig_line is 1, orig_col is 8, Text() is 'TelegramIndex', type is TYPE
+indent_text : frm.pse_tos is 0, ...indent_tmp is 1
+indent_text : pc->orig_line is 1, orig_col is 21, Text() is '', type is NEWLINE
+indent_text : orig_line is 1, orig_col is 21, for ''
+indent_text : orig_line is 1, <Newline>
+indent_text : frm.pse_tos is 0, ...indent_tmp is 1
+indent_text : pc->orig_line is 1, orig_col is 21, Text() is '', type is NEWLINE
+indent_text : frm.pse_tos is 0, ...indent_tmp is 1
+indent_text : frm.pse_tos is 0, ...indent is 1
+indent_text : frm.pse_tos is 0, ...indent_tmp is 1
+indent_text : pc->orig_line is 2, orig_col is 1, Text() is '{', type is BRACE_OPEN
+indent_text : orig_line is 2, orig_col is 1, for '{'
+indent_text : orig_line is 2, orig_col is 1, column is 1, for '{'
+ []
+indent_text : frm.pse_tos is 0, ...indent_tmp is 1
+indent_text : pc->orig_line is 2, orig_col is 1, Text() is '{', type is BRACE_OPEN
+indent_text : frm.pse_tos is 0, ...indent_tmp is 1
+indent_text : frm.pse_tos is 1, ... indent is 9
+indent_text : orig_line is 2, orig_col is 1, Text() is '{', parent_type is STRUCT
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+reindent_line : orig_line is 2, orig_col is 1, on '{' [BRACE_OPEN/STRUCT] => 1
+ [CallStack]
+indent_text : pc->orig_line is 2, orig_col is 2, Text() is '', type is NEWLINE
+indent_text : orig_line is 2, orig_col is 2, for ''
+indent_text : orig_line is 2, <Newline>
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc->orig_line is 3, orig_col is 1, Text() is 'TelegramIndex', type is FUNC_CLASS_DEF
+indent_text : orig_line is 3, orig_col is 1, for 'TelegramIndex'
+indent_text : orig_line is 3, orig_col is 1, column is 1, for 'TelegramIndex'
+ []
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+reindent_line : orig_line is 3, orig_col is 1, on 'TelegramIndex' [FUNC_CLASS_DEF/NONE] => 9
+ [CallStack]
+indent_text : pc->orig_line is 3, orig_col is 14, Text() is '(', type is FPAREN_OPEN
+indent_text : orig_line is 3, orig_col is 14, for '('
+indent_text : orig_line is 3, orig_col is 14, column is 22, for '('
+ []
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 2, ...indent is 23
+indent_text : frm.pse_tos is 2, ...indent is 23
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : pc->orig_line is 3, orig_col is 15, Text() is 'const', type is QUALIFIER
+indent_text : orig_line is 3, orig_col is 15, for 'const'
+indent_text : orig_line is 3, orig_col is 15, column is 23, for 'const'
+ []
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : pc->orig_line is 3, orig_col is 21, Text() is 'char', type is TYPE
+indent_text : orig_line is 3, orig_col is 21, for 'char'
+indent_text : orig_line is 3, orig_col is 21, column is 29, for 'char'
+ []
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : pc->orig_line is 3, orig_col is 25, Text() is '*', type is PTR_TYPE
+indent_text : orig_line is 3, orig_col is 25, for '*'
+indent_text : orig_line is 3, orig_col is 25, column is 33, for '*'
+ []
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : pc->orig_line is 3, orig_col is 27, Text() is 'pN', type is WORD
+indent_text : orig_line is 3, orig_col is 27, for 'pN'
+indent_text : orig_line is 3, orig_col is 27, column is 35, for 'pN'
+ []
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : pc->orig_line is 3, orig_col is 29, Text() is ',', type is COMMA
+indent_text : orig_line is 3, orig_col is 29, for ','
+indent_text : orig_line is 3, orig_col is 29, column is 37, for ','
+ []
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : pc->orig_line is 3, orig_col is 31, Text() is 'unsigned', type is TYPE
+indent_text : orig_line is 3, orig_col is 31, for 'unsigned'
+indent_text : orig_line is 3, orig_col is 31, column is 39, for 'unsigned'
+ []
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : pc->orig_line is 3, orig_col is 40, Text() is 'long', type is TYPE
+indent_text : orig_line is 3, orig_col is 40, for 'long'
+indent_text : orig_line is 3, orig_col is 40, column is 48, for 'long'
+ []
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : pc->orig_line is 3, orig_col is 45, Text() is 'nI', type is WORD
+indent_text : orig_line is 3, orig_col is 45, for 'nI'
+indent_text : orig_line is 3, orig_col is 45, column is 53, for 'nI'
+ []
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : pc->orig_line is 3, orig_col is 47, Text() is ')', type is FPAREN_CLOSE
+indent_text : orig_line is 3, orig_col is 47, for ')'
+indent_text : orig_line is 3, orig_col is 47, column is 55, for ')'
+ []
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : pc->orig_line is 3, orig_col is 47, Text() is ')', type is FPAREN_CLOSE
+indent_text : pc->orig_line is 3, orig_col is 47, Text() is ')', type is FPAREN_CLOSE
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc->orig_line is 3, orig_col is 49, Text() is ':', type is CONSTR_COLON
+indent_text : orig_line is 3, orig_col is 49, for ':'
+indent_text : orig_line is 3, orig_col is 49, column is 57, for ':'
+ []
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 2, ...indent is 17
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc->orig_line is 3, orig_col is 50, Text() is '', type is NEWLINE
+indent_text : orig_line is 3, orig_col is 50, for ''
+indent_text : orig_line is 3, <Newline>
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc->orig_line is 3, orig_col is 50, Text() is '', type is NEWLINE
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : frm.pse_tos is 2, ...indent is 17
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc->orig_line is 4, orig_col is 1, Text() is 'pTelName', type is FUNC_CTOR_VAR
+indent_text : orig_line is 4, orig_col is 1, for 'pTelName'
+indent_text : orig_line is 4, orig_col is 1, column is 1, for 'pTelName'
+ []
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc->orig_line is 4, orig_col is 1, Text() is 'pTelName', type is FUNC_CTOR_VAR
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+reindent_line : orig_line is 4, orig_col is 1, on 'pTelName' [FUNC_CTOR_VAR/NONE] => 17
+ [CallStack]
+indent_text : pc->orig_line is 4, orig_col is 9, Text() is '(', type is FPAREN_OPEN
+indent_text : orig_line is 4, orig_col is 9, for '('
+indent_text : orig_line is 4, orig_col is 9, column is 25, for '('
+ []
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc->orig_line is 4, orig_col is 9, Text() is '(', type is FPAREN_OPEN
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : frm.pse_tos is 3, ...indent is 26
+indent_text : frm.pse_tos is 3, ...indent is 26
+indent_text : frm.pse_tos is 3, ...indent_tmp is 26
+indent_text : pc->orig_line is 4, orig_col is 10, Text() is 'pN', type is WORD
+indent_text : orig_line is 4, orig_col is 10, for 'pN'
+indent_text : orig_line is 4, orig_col is 10, column is 26, for 'pN'
+ []
+indent_text : frm.pse_tos is 3, ...indent_tmp is 26
+indent_text : frm.pse_tos is 3, ...indent_tmp is 26
+indent_text : pc->orig_line is 4, orig_col is 12, Text() is ')', type is FPAREN_CLOSE
+indent_text : orig_line is 4, orig_col is 12, for ')'
+indent_text : orig_line is 4, orig_col is 12, column is 28, for ')'
+ []
+indent_text : frm.pse_tos is 3, ...indent_tmp is 26
+indent_text : pc->orig_line is 4, orig_col is 12, Text() is ')', type is FPAREN_CLOSE
+indent_text : pc->orig_line is 4, orig_col is 12, Text() is ')', type is FPAREN_CLOSE
+indent_text : pc->orig_line is 4, orig_col is 12, Text() is ')', type is FPAREN_CLOSE
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc->orig_line is 4, orig_col is 13, Text() is ',', type is COMMA
+indent_text : orig_line is 4, orig_col is 13, for ','
+indent_text : orig_line is 4, orig_col is 13, column is 29, for ','
+ []
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc->orig_line is 4, orig_col is 13, Text() is ',', type is COMMA
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc->orig_line is 4, orig_col is 14, Text() is '', type is NEWLINE
+indent_text : orig_line is 4, orig_col is 14, for ''
+indent_text : orig_line is 4, <Newline>
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc->orig_line is 4, orig_col is 14, Text() is '', type is NEWLINE
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : frm.pse_tos is 2, ...indent is 17
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc->orig_line is 5, orig_col is 1, Text() is 'nTelIndex', type is FUNC_CTOR_VAR
+indent_text : orig_line is 5, orig_col is 1, for 'nTelIndex'
+indent_text : orig_line is 5, orig_col is 1, column is 1, for 'nTelIndex'
+ []
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc->orig_line is 5, orig_col is 1, Text() is 'nTelIndex', type is FUNC_CTOR_VAR
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+reindent_line : orig_line is 5, orig_col is 1, on 'nTelIndex' [FUNC_CTOR_VAR/NONE] => 17
+ [CallStack]
+indent_text : pc->orig_line is 5, orig_col is 10, Text() is '(', type is FPAREN_OPEN
+indent_text : orig_line is 5, orig_col is 10, for '('
+indent_text : orig_line is 5, orig_col is 10, column is 26, for '('
+ []
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc->orig_line is 5, orig_col is 10, Text() is '(', type is FPAREN_OPEN
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : frm.pse_tos is 3, ...indent is 27
+indent_text : frm.pse_tos is 3, ...indent is 27
+indent_text : frm.pse_tos is 3, ...indent_tmp is 27
+indent_text : pc->orig_line is 5, orig_col is 11, Text() is 'n', type is WORD
+indent_text : orig_line is 5, orig_col is 11, for 'n'
+indent_text : orig_line is 5, orig_col is 11, column is 27, for 'n'
+ []
+indent_text : frm.pse_tos is 3, ...indent_tmp is 27
+indent_text : frm.pse_tos is 3, ...indent_tmp is 27
+indent_text : pc->orig_line is 5, orig_col is 12, Text() is ')', type is FPAREN_CLOSE
+indent_text : orig_line is 5, orig_col is 12, for ')'
+indent_text : orig_line is 5, orig_col is 12, column is 28, for ')'
+ []
+indent_text : frm.pse_tos is 3, ...indent_tmp is 27
+indent_text : pc->orig_line is 5, orig_col is 12, Text() is ')', type is FPAREN_CLOSE
+indent_text : pc->orig_line is 5, orig_col is 12, Text() is ')', type is FPAREN_CLOSE
+indent_text : pc->orig_line is 5, orig_col is 12, Text() is ')', type is FPAREN_CLOSE
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc->orig_line is 5, orig_col is 13, Text() is '', type is NEWLINE
+indent_text : orig_line is 5, orig_col is 13, for ''
+indent_text : orig_line is 5, <Newline>
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc->orig_line is 5, orig_col is 13, Text() is '', type is NEWLINE
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : frm.pse_tos is 2, ...indent is 17
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc->orig_line is 6, orig_col is 1, Text() is '{', type is BRACE_OPEN
+indent_text : orig_line is 6, orig_col is 1, for '{'
+indent_text : orig_line is 6, orig_col is 1, column is 1, for '{'
+ []
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc->orig_line is 6, orig_col is 1, Text() is '{', type is BRACE_OPEN
+indent_text : pc->orig_line is 6, orig_col is 1, Text() is '{', type is BRACE_OPEN
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 2, ... indent is 17
+indent_text : orig_line is 6, orig_col is 1, Text() is '{', parent_type is FUNC_CLASS_DEF
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+reindent_line : orig_line is 6, orig_col is 1, on '{' [BRACE_OPEN/FUNC_CLASS_DEF] => 9
+ [CallStack]
+indent_text : pc->orig_line is 6, orig_col is 2, Text() is '', type is NEWLINE
+indent_text : orig_line is 6, orig_col is 2, for ''
+indent_text : orig_line is 6, <Newline>
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : frm.pse_tos is 2, ...indent is 17
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc->orig_line is 7, orig_col is 1, Text() is '}', type is BRACE_CLOSE
+indent_text : orig_line is 7, orig_col is 1, for '}'
+indent_text : orig_line is 7, orig_col is 1, column is 1, for '}'
+ []
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc->orig_line is 7, orig_col is 1, Text() is '}', type is BRACE_CLOSE
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc->orig_line is 7, orig_col is 1, Text() is '}', type is BRACE_CLOSE
+reindent_line : orig_line is 7, orig_col is 1, on '}' [BRACE_CLOSE/FUNC_CLASS_DEF] => 9
+ [CallStack]
+indent_text : pc->orig_line is 7, orig_col is 2, Text() is '', type is NEWLINE
+indent_text : orig_line is 7, orig_col is 2, for ''
+indent_text : orig_line is 7, <Newline>
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc->orig_line is 9, orig_col is 1, Text() is '~', type is DESTRUCTOR
+indent_text : orig_line is 9, orig_col is 1, for '~'
+indent_text : orig_line is 9, orig_col is 1, column is 1, for '~'
+ []
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+reindent_line : orig_line is 9, orig_col is 1, on '~' [DESTRUCTOR/FUNC_CLASS_DEF] => 9
+ [CallStack]
+indent_text : pc->orig_line is 9, orig_col is 2, Text() is 'TelegramIndex', type is FUNC_CLASS_DEF
+indent_text : orig_line is 9, orig_col is 2, for 'TelegramIndex'
+indent_text : orig_line is 9, orig_col is 2, column is 10, for 'TelegramIndex'
+ []
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc->orig_line is 9, orig_col is 15, Text() is '(', type is FPAREN_OPEN
+indent_text : orig_line is 9, orig_col is 15, for '('
+indent_text : orig_line is 9, orig_col is 15, column is 23, for '('
+ []
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 2, ...indent is 24
+indent_text : frm.pse_tos is 2, ...indent is 24
+indent_text : frm.pse_tos is 2, ...indent_tmp is 24
+indent_text : pc->orig_line is 9, orig_col is 16, Text() is ')', type is FPAREN_CLOSE
+indent_text : orig_line is 9, orig_col is 16, for ')'
+indent_text : orig_line is 9, orig_col is 16, column is 24, for ')'
+ []
+indent_text : frm.pse_tos is 2, ...indent_tmp is 24
+indent_text : pc->orig_line is 9, orig_col is 16, Text() is ')', type is FPAREN_CLOSE
+indent_text : pc->orig_line is 9, orig_col is 16, Text() is ')', type is FPAREN_CLOSE
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc->orig_line is 9, orig_col is 17, Text() is '', type is NEWLINE
+indent_text : orig_line is 9, orig_col is 17, for ''
+indent_text : orig_line is 9, <Newline>
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc->orig_line is 10, orig_col is 1, Text() is '{', type is BRACE_OPEN
+indent_text : orig_line is 10, orig_col is 1, for '{'
+indent_text : orig_line is 10, orig_col is 1, column is 1, for '{'
+ []
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 2, ... indent is 17
+indent_text : orig_line is 10, orig_col is 1, Text() is '{', parent_type is FUNC_CLASS_DEF
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+reindent_line : orig_line is 10, orig_col is 1, on '{' [BRACE_OPEN/FUNC_CLASS_DEF] => 9
+ [CallStack]
+indent_text : pc->orig_line is 10, orig_col is 2, Text() is '', type is NEWLINE
+indent_text : orig_line is 10, orig_col is 2, for ''
+indent_text : orig_line is 10, <Newline>
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : frm.pse_tos is 2, ...indent is 17
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc->orig_line is 11, orig_col is 1, Text() is '}', type is BRACE_CLOSE
+indent_text : orig_line is 11, orig_col is 1, for '}'
+indent_text : orig_line is 11, orig_col is 1, column is 1, for '}'
+ []
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc->orig_line is 11, orig_col is 1, Text() is '}', type is BRACE_CLOSE
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc->orig_line is 11, orig_col is 1, Text() is '}', type is BRACE_CLOSE
+reindent_line : orig_line is 11, orig_col is 1, on '}' [BRACE_CLOSE/FUNC_CLASS_DEF] => 9
+ [CallStack]
+indent_text : pc->orig_line is 11, orig_col is 2, Text() is '', type is NEWLINE
+indent_text : orig_line is 11, orig_col is 2, for ''
+indent_text : orig_line is 11, <Newline>
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc->orig_line is 13, orig_col is 1, Text() is 'const', type is QUALIFIER
+indent_text : orig_line is 13, orig_col is 1, for 'const'
+indent_text : orig_line is 13, orig_col is 1, column is 1, for 'const'
+ []
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+reindent_line : orig_line is 13, orig_col is 1, on 'const' [QUALIFIER/NONE] => 9
+ [CallStack]
+indent_text : pc->orig_line is 13, orig_col is 7, Text() is 'char', type is TYPE
+indent_text : orig_line is 13, orig_col is 7, for 'char'
+indent_text : orig_line is 13, orig_col is 7, column is 15, for 'char'
+ []
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc->orig_line is 13, orig_col is 11, Text() is '*', type is PTR_TYPE
+indent_text : orig_line is 13, orig_col is 11, for '*'
+indent_text : orig_line is 13, orig_col is 11, column is 19, for '*'
+ []
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc->orig_line is 13, orig_col is 13, Text() is 'const', type is QUALIFIER
+indent_text : orig_line is 13, orig_col is 13, for 'const'
+indent_text : orig_line is 13, orig_col is 13, column is 21, for 'const'
+ []
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc->orig_line is 13, orig_col is 19, Text() is 'pTelName', type is WORD
+indent_text : orig_line is 13, orig_col is 19, for 'pTelName'
+indent_text : orig_line is 13, orig_col is 19, column is 27, for 'pTelName'
+ []
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc->orig_line is 13, orig_col is 27, Text() is ';', type is SEMICOLON
+indent_text : orig_line is 13, orig_col is 27, for ';'
+indent_text : orig_line is 13, orig_col is 27, column is 35, for ';'
+ []
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc->orig_line is 13, orig_col is 28, Text() is '', type is NEWLINE
+indent_text : orig_line is 13, orig_col is 28, for ''
+indent_text : orig_line is 13, <Newline>
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc->orig_line is 14, orig_col is 1, Text() is 'unsigned', type is TYPE
+indent_text : orig_line is 14, orig_col is 1, for 'unsigned'
+indent_text : orig_line is 14, orig_col is 1, column is 1, for 'unsigned'
+ []
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+reindent_line : orig_line is 14, orig_col is 1, on 'unsigned' [TYPE/NONE] => 9
+ [CallStack]
+indent_text : pc->orig_line is 14, orig_col is 10, Text() is 'long', type is TYPE
+indent_text : orig_line is 14, orig_col is 10, for 'long'
+indent_text : orig_line is 14, orig_col is 10, column is 18, for 'long'
+ []
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc->orig_line is 14, orig_col is 15, Text() is 'nTelIndex', type is WORD
+indent_text : orig_line is 14, orig_col is 15, for 'nTelIndex'
+indent_text : orig_line is 14, orig_col is 15, column is 23, for 'nTelIndex'
+ []
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc->orig_line is 14, orig_col is 24, Text() is ';', type is SEMICOLON
+indent_text : orig_line is 14, orig_col is 24, for ';'
+indent_text : orig_line is 14, orig_col is 24, column is 32, for ';'
+ []
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc->orig_line is 14, orig_col is 25, Text() is '', type is NEWLINE
+indent_text : orig_line is 14, orig_col is 25, for ''
+indent_text : orig_line is 14, <Newline>
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc->orig_line is 15, orig_col is 1, Text() is '}', type is BRACE_CLOSE
+indent_text : orig_line is 15, orig_col is 1, for '}'
+indent_text : orig_line is 15, orig_col is 1, column is 1, for '}'
+ []
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc->orig_line is 15, orig_col is 1, Text() is '}', type is BRACE_CLOSE
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc->orig_line is 15, orig_col is 1, Text() is '}', type is BRACE_CLOSE
+reindent_line : orig_line is 15, orig_col is 1, on '}' [BRACE_CLOSE/STRUCT] => 1
+ [CallStack]
+indent_text : pc->orig_line is 15, orig_col is 2, Text() is ';', type is SEMICOLON
+indent_text : orig_line is 15, orig_col is 2, for ';'
+indent_text : orig_line is 15, orig_col is 2, column is 2, for ';'
+ []
+indent_text : frm.pse_tos is 0, ...indent_tmp is 1
+indent_text : pc->orig_line is 15, orig_col is 2, Text() is ';', type is SEMICOLON
+indent_text : frm.pse_tos is 0, ...indent_tmp is 1
+indent_text : pc->orig_line is 15, orig_col is 3, Text() is '', type is NEWLINE
+indent_text : orig_line is 15, orig_col is 3, for ''
+indent_text : orig_line is 15, <Newline>
+indent_text : frm.pse_tos is 0, ...indent_tmp is 1
+indent_text : pc->orig_line is 15, orig_col is 3, Text() is '', type is NEWLINE
+indent_text : frm.pse_tos is 0, ...indent_tmp is 1
+indent_text : frm.pse_tos is 0, ...indent is 1
+indent_text : frm.pse_tos is 0, ...indent_tmp is 1
+indent_text : pc->orig_line is 0, orig_col is 0, Text() is '', type is NONE
+indent_text : before quick_align_again
+indent_text : after quick_align_again
+indent_text : orig_line is 1, orig_col is 1, for 'struct'
+indent_text : orig_line is 1, orig_col is 1, column is 1, for 'struct'
+ []
+indent_text : frm.pse_tos is 0, ...indent_tmp is 1
+indent_text : pc->orig_line is 1, orig_col is 1, Text() is 'struct', type is STRUCT
+indent_text : frm.pse_tos is 0, ...indent_tmp is 1
+reindent_line : orig_line is 1, orig_col is 1, on 'struct' [STRUCT/NONE] => 1
+ [CallStack]
+indent_text : pc->orig_line is 1, orig_col is 8, Text() is 'TelegramIndex', type is TYPE
+indent_text : orig_line is 1, orig_col is 8, for 'TelegramIndex'
+indent_text : orig_line is 1, orig_col is 8, column is 8, for 'TelegramIndex'
+ []
+indent_text : frm.pse_tos is 0, ...indent_tmp is 1
+indent_text : pc->orig_line is 1, orig_col is 8, Text() is 'TelegramIndex', type is TYPE
+indent_text : frm.pse_tos is 0, ...indent_tmp is 1
+indent_text : pc->orig_line is 1, orig_col is 21, Text() is '', type is NEWLINE
+indent_text : orig_line is 1, orig_col is 21, for ''
+indent_text : orig_line is 1, <Newline>
+indent_text : frm.pse_tos is 0, ...indent_tmp is 1
+indent_text : pc->orig_line is 1, orig_col is 21, Text() is '', type is NEWLINE
+indent_text : frm.pse_tos is 0, ...indent_tmp is 1
+indent_text : frm.pse_tos is 0, ...indent is 1
+indent_text : frm.pse_tos is 0, ...indent_tmp is 1
+indent_text : pc->orig_line is 2, orig_col is 1, Text() is '{', type is BRACE_OPEN
+indent_text : orig_line is 2, orig_col is 1, for '{'
+indent_text : orig_line is 2, orig_col is 1, column is 1, for '{'
+ []
+indent_text : frm.pse_tos is 0, ...indent_tmp is 1
+indent_text : pc->orig_line is 2, orig_col is 1, Text() is '{', type is BRACE_OPEN
+indent_text : frm.pse_tos is 0, ...indent_tmp is 1
+indent_text : frm.pse_tos is 1, ... indent is 9
+indent_text : orig_line is 2, orig_col is 1, Text() is '{', parent_type is STRUCT
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+reindent_line : orig_line is 2, orig_col is 1, on '{' [BRACE_OPEN/STRUCT] => 1
+ [CallStack]
+indent_text : pc->orig_line is 2, orig_col is 2, Text() is '', type is NEWLINE
+indent_text : orig_line is 2, orig_col is 2, for ''
+indent_text : orig_line is 2, <Newline>
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc->orig_line is 3, orig_col is 1, Text() is 'TelegramIndex', type is FUNC_CLASS_DEF
+indent_text : orig_line is 3, orig_col is 1, for 'TelegramIndex'
+indent_text : orig_line is 3, orig_col is 1, column is 9, for 'TelegramIndex'
+ []
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+reindent_line : orig_line is 3, orig_col is 1, on 'TelegramIndex' [FUNC_CLASS_DEF/NONE] => 9
+ [CallStack]
+indent_text : pc->orig_line is 3, orig_col is 14, Text() is '(', type is FPAREN_OPEN
+indent_text : orig_line is 3, orig_col is 14, for '('
+indent_text : orig_line is 3, orig_col is 14, column is 22, for '('
+ []
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 2, ...indent is 23
+indent_text : frm.pse_tos is 2, ...indent is 23
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : pc->orig_line is 3, orig_col is 15, Text() is 'const', type is QUALIFIER
+indent_text : orig_line is 3, orig_col is 15, for 'const'
+indent_text : orig_line is 3, orig_col is 15, column is 23, for 'const'
+ []
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : pc->orig_line is 3, orig_col is 21, Text() is 'char', type is TYPE
+indent_text : orig_line is 3, orig_col is 21, for 'char'
+indent_text : orig_line is 3, orig_col is 21, column is 29, for 'char'
+ []
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : pc->orig_line is 3, orig_col is 25, Text() is '*', type is PTR_TYPE
+indent_text : orig_line is 3, orig_col is 25, for '*'
+indent_text : orig_line is 3, orig_col is 25, column is 33, for '*'
+ []
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : pc->orig_line is 3, orig_col is 27, Text() is 'pN', type is WORD
+indent_text : orig_line is 3, orig_col is 27, for 'pN'
+indent_text : orig_line is 3, orig_col is 27, column is 35, for 'pN'
+ []
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : pc->orig_line is 3, orig_col is 29, Text() is ',', type is COMMA
+indent_text : orig_line is 3, orig_col is 29, for ','
+indent_text : orig_line is 3, orig_col is 29, column is 37, for ','
+ []
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : pc->orig_line is 3, orig_col is 31, Text() is 'unsigned', type is TYPE
+indent_text : orig_line is 3, orig_col is 31, for 'unsigned'
+indent_text : orig_line is 3, orig_col is 31, column is 39, for 'unsigned'
+ []
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : pc->orig_line is 3, orig_col is 40, Text() is 'long', type is TYPE
+indent_text : orig_line is 3, orig_col is 40, for 'long'
+indent_text : orig_line is 3, orig_col is 40, column is 48, for 'long'
+ []
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : pc->orig_line is 3, orig_col is 45, Text() is 'nI', type is WORD
+indent_text : orig_line is 3, orig_col is 45, for 'nI'
+indent_text : orig_line is 3, orig_col is 45, column is 53, for 'nI'
+ []
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : pc->orig_line is 3, orig_col is 47, Text() is ')', type is FPAREN_CLOSE
+indent_text : orig_line is 3, orig_col is 47, for ')'
+indent_text : orig_line is 3, orig_col is 47, column is 55, for ')'
+ []
+indent_text : frm.pse_tos is 2, ...indent_tmp is 23
+indent_text : pc->orig_line is 3, orig_col is 47, Text() is ')', type is FPAREN_CLOSE
+indent_text : pc->orig_line is 3, orig_col is 47, Text() is ')', type is FPAREN_CLOSE
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc->orig_line is 3, orig_col is 49, Text() is ':', type is CONSTR_COLON
+indent_text : orig_line is 3, orig_col is 49, for ':'
+indent_text : orig_line is 3, orig_col is 49, column is 57, for ':'
+ []
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 2, ...indent is 17
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc->orig_line is 3, orig_col is 50, Text() is '', type is NEWLINE
+indent_text : orig_line is 3, orig_col is 50, for ''
+indent_text : orig_line is 3, <Newline>
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc->orig_line is 3, orig_col is 50, Text() is '', type is NEWLINE
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : frm.pse_tos is 2, ...indent is 17
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc->orig_line is 4, orig_col is 1, Text() is 'pTelName', type is FUNC_CTOR_VAR
+indent_text : orig_line is 4, orig_col is 1, for 'pTelName'
+indent_text : orig_line is 4, orig_col is 1, column is 17, for 'pTelName'
+ []
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc->orig_line is 4, orig_col is 1, Text() is 'pTelName', type is FUNC_CTOR_VAR
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+reindent_line : orig_line is 4, orig_col is 1, on 'pTelName' [FUNC_CTOR_VAR/NONE] => 17
+ [CallStack]
+indent_text : pc->orig_line is 4, orig_col is 9, Text() is '(', type is FPAREN_OPEN
+indent_text : orig_line is 4, orig_col is 9, for '('
+indent_text : orig_line is 4, orig_col is 9, column is 25, for '('
+ []
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc->orig_line is 4, orig_col is 9, Text() is '(', type is FPAREN_OPEN
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : frm.pse_tos is 3, ...indent is 26
+indent_text : frm.pse_tos is 3, ...indent is 26
+indent_text : frm.pse_tos is 3, ...indent_tmp is 26
+indent_text : pc->orig_line is 4, orig_col is 10, Text() is 'pN', type is WORD
+indent_text : orig_line is 4, orig_col is 10, for 'pN'
+indent_text : orig_line is 4, orig_col is 10, column is 26, for 'pN'
+ []
+indent_text : frm.pse_tos is 3, ...indent_tmp is 26
+indent_text : frm.pse_tos is 3, ...indent_tmp is 26
+indent_text : pc->orig_line is 4, orig_col is 12, Text() is ')', type is FPAREN_CLOSE
+indent_text : orig_line is 4, orig_col is 12, for ')'
+indent_text : orig_line is 4, orig_col is 12, column is 28, for ')'
+ []
+indent_text : frm.pse_tos is 3, ...indent_tmp is 26
+indent_text : pc->orig_line is 4, orig_col is 12, Text() is ')', type is FPAREN_CLOSE
+indent_text : pc->orig_line is 4, orig_col is 12, Text() is ')', type is FPAREN_CLOSE
+indent_text : pc->orig_line is 4, orig_col is 12, Text() is ')', type is FPAREN_CLOSE
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc->orig_line is 4, orig_col is 13, Text() is ',', type is COMMA
+indent_text : orig_line is 4, orig_col is 13, for ','
+indent_text : orig_line is 4, orig_col is 13, column is 29, for ','
+ []
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc->orig_line is 4, orig_col is 13, Text() is ',', type is COMMA
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc->orig_line is 4, orig_col is 14, Text() is '', type is NEWLINE
+indent_text : orig_line is 4, orig_col is 14, for ''
+indent_text : orig_line is 4, <Newline>
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc->orig_line is 4, orig_col is 14, Text() is '', type is NEWLINE
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : frm.pse_tos is 2, ...indent is 17
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc->orig_line is 5, orig_col is 1, Text() is 'nTelIndex', type is FUNC_CTOR_VAR
+indent_text : orig_line is 5, orig_col is 1, for 'nTelIndex'
+indent_text : orig_line is 5, orig_col is 1, column is 17, for 'nTelIndex'
+ []
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc->orig_line is 5, orig_col is 1, Text() is 'nTelIndex', type is FUNC_CTOR_VAR
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+reindent_line : orig_line is 5, orig_col is 1, on 'nTelIndex' [FUNC_CTOR_VAR/NONE] => 17
+ [CallStack]
+indent_text : pc->orig_line is 5, orig_col is 10, Text() is '(', type is FPAREN_OPEN
+indent_text : orig_line is 5, orig_col is 10, for '('
+indent_text : orig_line is 5, orig_col is 10, column is 26, for '('
+ []
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc->orig_line is 5, orig_col is 10, Text() is '(', type is FPAREN_OPEN
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : frm.pse_tos is 3, ...indent is 27
+indent_text : frm.pse_tos is 3, ...indent is 27
+indent_text : frm.pse_tos is 3, ...indent_tmp is 27
+indent_text : pc->orig_line is 5, orig_col is 11, Text() is 'n', type is WORD
+indent_text : orig_line is 5, orig_col is 11, for 'n'
+indent_text : orig_line is 5, orig_col is 11, column is 27, for 'n'
+ []
+indent_text : frm.pse_tos is 3, ...indent_tmp is 27
+indent_text : frm.pse_tos is 3, ...indent_tmp is 27
+indent_text : pc->orig_line is 5, orig_col is 12, Text() is ')', type is FPAREN_CLOSE
+indent_text : orig_line is 5, orig_col is 12, for ')'
+indent_text : orig_line is 5, orig_col is 12, column is 28, for ')'
+ []
+indent_text : frm.pse_tos is 3, ...indent_tmp is 27
+indent_text : pc->orig_line is 5, orig_col is 12, Text() is ')', type is FPAREN_CLOSE
+indent_text : pc->orig_line is 5, orig_col is 12, Text() is ')', type is FPAREN_CLOSE
+indent_text : pc->orig_line is 5, orig_col is 12, Text() is ')', type is FPAREN_CLOSE
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc->orig_line is 5, orig_col is 13, Text() is '', type is NEWLINE
+indent_text : orig_line is 5, orig_col is 13, for ''
+indent_text : orig_line is 5, <Newline>
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc->orig_line is 5, orig_col is 13, Text() is '', type is NEWLINE
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : frm.pse_tos is 2, ...indent is 17
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc->orig_line is 6, orig_col is 1, Text() is '{', type is BRACE_OPEN
+indent_text : orig_line is 6, orig_col is 1, for '{'
+indent_text : orig_line is 6, orig_col is 1, column is 9, for '{'
+ []
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc->orig_line is 6, orig_col is 1, Text() is '{', type is BRACE_OPEN
+indent_text : pc->orig_line is 6, orig_col is 1, Text() is '{', type is BRACE_OPEN
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 2, ... indent is 17
+indent_text : orig_line is 6, orig_col is 1, Text() is '{', parent_type is FUNC_CLASS_DEF
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+reindent_line : orig_line is 6, orig_col is 1, on '{' [BRACE_OPEN/FUNC_CLASS_DEF] => 9
+ [CallStack]
+indent_text : pc->orig_line is 6, orig_col is 2, Text() is '', type is NEWLINE
+indent_text : orig_line is 6, orig_col is 2, for ''
+indent_text : orig_line is 6, <Newline>
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : frm.pse_tos is 2, ...indent is 17
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc->orig_line is 7, orig_col is 1, Text() is '}', type is BRACE_CLOSE
+indent_text : orig_line is 7, orig_col is 1, for '}'
+indent_text : orig_line is 7, orig_col is 1, column is 9, for '}'
+ []
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc->orig_line is 7, orig_col is 1, Text() is '}', type is BRACE_CLOSE
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc->orig_line is 7, orig_col is 1, Text() is '}', type is BRACE_CLOSE
+reindent_line : orig_line is 7, orig_col is 1, on '}' [BRACE_CLOSE/FUNC_CLASS_DEF] => 9
+ [CallStack]
+indent_text : pc->orig_line is 7, orig_col is 2, Text() is '', type is NEWLINE
+indent_text : orig_line is 7, orig_col is 2, for ''
+indent_text : orig_line is 7, <Newline>
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc->orig_line is 9, orig_col is 1, Text() is '~', type is DESTRUCTOR
+indent_text : orig_line is 9, orig_col is 1, for '~'
+indent_text : orig_line is 9, orig_col is 1, column is 9, for '~'
+ []
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+reindent_line : orig_line is 9, orig_col is 1, on '~' [DESTRUCTOR/FUNC_CLASS_DEF] => 9
+ [CallStack]
+indent_text : pc->orig_line is 9, orig_col is 2, Text() is 'TelegramIndex', type is FUNC_CLASS_DEF
+indent_text : orig_line is 9, orig_col is 2, for 'TelegramIndex'
+indent_text : orig_line is 9, orig_col is 2, column is 10, for 'TelegramIndex'
+ []
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc->orig_line is 9, orig_col is 15, Text() is '(', type is FPAREN_OPEN
+indent_text : orig_line is 9, orig_col is 15, for '('
+indent_text : orig_line is 9, orig_col is 15, column is 23, for '('
+ []
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 2, ...indent is 24
+indent_text : frm.pse_tos is 2, ...indent is 24
+indent_text : frm.pse_tos is 2, ...indent_tmp is 24
+indent_text : pc->orig_line is 9, orig_col is 16, Text() is ')', type is FPAREN_CLOSE
+indent_text : orig_line is 9, orig_col is 16, for ')'
+indent_text : orig_line is 9, orig_col is 16, column is 24, for ')'
+ []
+indent_text : frm.pse_tos is 2, ...indent_tmp is 24
+indent_text : pc->orig_line is 9, orig_col is 16, Text() is ')', type is FPAREN_CLOSE
+indent_text : pc->orig_line is 9, orig_col is 16, Text() is ')', type is FPAREN_CLOSE
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc->orig_line is 9, orig_col is 17, Text() is '', type is NEWLINE
+indent_text : orig_line is 9, orig_col is 17, for ''
+indent_text : orig_line is 9, <Newline>
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc->orig_line is 10, orig_col is 1, Text() is '{', type is BRACE_OPEN
+indent_text : orig_line is 10, orig_col is 1, for '{'
+indent_text : orig_line is 10, orig_col is 1, column is 9, for '{'
+ []
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 2, ... indent is 17
+indent_text : orig_line is 10, orig_col is 1, Text() is '{', parent_type is FUNC_CLASS_DEF
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+reindent_line : orig_line is 10, orig_col is 1, on '{' [BRACE_OPEN/FUNC_CLASS_DEF] => 9
+ [CallStack]
+indent_text : pc->orig_line is 10, orig_col is 2, Text() is '', type is NEWLINE
+indent_text : orig_line is 10, orig_col is 2, for ''
+indent_text : orig_line is 10, <Newline>
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : frm.pse_tos is 2, ...indent is 17
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc->orig_line is 11, orig_col is 1, Text() is '}', type is BRACE_CLOSE
+indent_text : orig_line is 11, orig_col is 1, for '}'
+indent_text : orig_line is 11, orig_col is 1, column is 9, for '}'
+ []
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc->orig_line is 11, orig_col is 1, Text() is '}', type is BRACE_CLOSE
+indent_text : frm.pse_tos is 2, ...indent_tmp is 17
+indent_text : pc->orig_line is 11, orig_col is 1, Text() is '}', type is BRACE_CLOSE
+reindent_line : orig_line is 11, orig_col is 1, on '}' [BRACE_CLOSE/FUNC_CLASS_DEF] => 9
+ [CallStack]
+indent_text : pc->orig_line is 11, orig_col is 2, Text() is '', type is NEWLINE
+indent_text : orig_line is 11, orig_col is 2, for ''
+indent_text : orig_line is 11, <Newline>
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc->orig_line is 13, orig_col is 1, Text() is 'const', type is QUALIFIER
+indent_text : orig_line is 13, orig_col is 1, for 'const'
+indent_text : orig_line is 13, orig_col is 1, column is 9, for 'const'
+ []
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+reindent_line : orig_line is 13, orig_col is 1, on 'const' [QUALIFIER/NONE] => 9
+ [CallStack]
+indent_text : pc->orig_line is 13, orig_col is 7, Text() is 'char', type is TYPE
+indent_text : orig_line is 13, orig_col is 7, for 'char'
+indent_text : orig_line is 13, orig_col is 7, column is 15, for 'char'
+ []
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc->orig_line is 13, orig_col is 11, Text() is '*', type is PTR_TYPE
+indent_text : orig_line is 13, orig_col is 11, for '*'
+indent_text : orig_line is 13, orig_col is 11, column is 19, for '*'
+ []
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc->orig_line is 13, orig_col is 13, Text() is 'const', type is QUALIFIER
+indent_text : orig_line is 13, orig_col is 13, for 'const'
+indent_text : orig_line is 13, orig_col is 13, column is 21, for 'const'
+ []
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc->orig_line is 13, orig_col is 19, Text() is 'pTelName', type is WORD
+indent_text : orig_line is 13, orig_col is 19, for 'pTelName'
+indent_text : orig_line is 13, orig_col is 19, column is 27, for 'pTelName'
+ []
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc->orig_line is 13, orig_col is 27, Text() is ';', type is SEMICOLON
+indent_text : orig_line is 13, orig_col is 27, for ';'
+indent_text : orig_line is 13, orig_col is 27, column is 35, for ';'
+ []
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc->orig_line is 13, orig_col is 28, Text() is '', type is NEWLINE
+indent_text : orig_line is 13, orig_col is 28, for ''
+indent_text : orig_line is 13, <Newline>
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc->orig_line is 14, orig_col is 1, Text() is 'unsigned', type is TYPE
+indent_text : orig_line is 14, orig_col is 1, for 'unsigned'
+indent_text : orig_line is 14, orig_col is 1, column is 9, for 'unsigned'
+ []
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+reindent_line : orig_line is 14, orig_col is 1, on 'unsigned' [TYPE/NONE] => 9
+ [CallStack]
+indent_text : pc->orig_line is 14, orig_col is 10, Text() is 'long', type is TYPE
+indent_text : orig_line is 14, orig_col is 10, for 'long'
+indent_text : orig_line is 14, orig_col is 10, column is 18, for 'long'
+ []
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc->orig_line is 14, orig_col is 15, Text() is 'nTelIndex', type is WORD
+indent_text : orig_line is 14, orig_col is 15, for 'nTelIndex'
+indent_text : orig_line is 14, orig_col is 15, column is 23, for 'nTelIndex'
+ []
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc->orig_line is 14, orig_col is 24, Text() is ';', type is SEMICOLON
+indent_text : orig_line is 14, orig_col is 24, for ';'
+indent_text : orig_line is 14, orig_col is 24, column is 32, for ';'
+ []
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc->orig_line is 14, orig_col is 25, Text() is '', type is NEWLINE
+indent_text : orig_line is 14, orig_col is 25, for ''
+indent_text : orig_line is 14, <Newline>
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : frm.pse_tos is 1, ...indent is 9
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc->orig_line is 15, orig_col is 1, Text() is '}', type is BRACE_CLOSE
+indent_text : orig_line is 15, orig_col is 1, for '}'
+indent_text : orig_line is 15, orig_col is 1, column is 1, for '}'
+ []
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc->orig_line is 15, orig_col is 1, Text() is '}', type is BRACE_CLOSE
+indent_text : frm.pse_tos is 1, ...indent_tmp is 9
+indent_text : pc->orig_line is 15, orig_col is 1, Text() is '}', type is BRACE_CLOSE
+reindent_line : orig_line is 15, orig_col is 1, on '}' [BRACE_CLOSE/STRUCT] => 1
+ [CallStack]
+indent_text : pc->orig_line is 15, orig_col is 2, Text() is ';', type is SEMICOLON
+indent_text : orig_line is 15, orig_col is 2, for ';'
+indent_text : orig_line is 15, orig_col is 2, column is 2, for ';'
+ []
+indent_text : frm.pse_tos is 0, ...indent_tmp is 1
+indent_text : pc->orig_line is 15, orig_col is 2, Text() is ';', type is SEMICOLON
+indent_text : frm.pse_tos is 0, ...indent_tmp is 1
+indent_text : pc->orig_line is 15, orig_col is 3, Text() is '', type is NEWLINE
+indent_text : orig_line is 15, orig_col is 3, for ''
+indent_text : orig_line is 15, <Newline>
+indent_text : frm.pse_tos is 0, ...indent_tmp is 1
+indent_text : pc->orig_line is 15, orig_col is 3, Text() is '', type is NEWLINE
+indent_text : frm.pse_tos is 0, ...indent_tmp is 1
+indent_text : frm.pse_tos is 0, ...indent is 1
+indent_text : frm.pse_tos is 0, ...indent_tmp is 1
+indent_text : pc->orig_line is 0, orig_col is 0, Text() is '', type is NONE
+indent_text : before quick_align_again
+indent_text : after quick_align_again
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/36.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/36.txt
new file mode 100644
index 00000000..5eed370e
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/36.txt
@@ -0,0 +1,19 @@
+fix_fcn_def_params : Text() '(', type is PAREN_OPEN, on orig_line 3, level is 1
+fix_fcn_def_params : looking at, Text() 'const' on orig_line 3, level 2
+fix_fcn_def_params : looking at, Text() 'char' on orig_line 3, level 2
+fix_fcn_def_params : looking at, Text() '*' on orig_line 3, level 2
+fix_fcn_def_params : looking at, Text() 'pN' on orig_line 3, level 2
+fix_fcn_def_params : looking at, Text() ',' on orig_line 3, level 2
+mark_variable_stack : parameter on orig_line 3, orig_col 27:
+mark_variable_stack : parameter on orig_line 3, orig_col 27: <char> as TYPE
+mark_variable_stack : parameter on orig_line 3, orig_col 27: <pN> as VAR
+fix_fcn_def_params : looking at, Text() 'unsigned' on orig_line 3, level 2
+fix_fcn_def_params : looking at, Text() 'long' on orig_line 3, level 2
+fix_fcn_def_params : looking at, Text() 'nI' on orig_line 3, level 2
+fix_fcn_def_params : bailed on Text() ')', on orig_line 3
+mark_variable_stack : parameter on orig_line 3, orig_col 45:
+mark_variable_stack : parameter on orig_line 3, orig_col 45: <long> as TYPE
+mark_variable_stack : parameter on orig_line 3, orig_col 45: <unsigned> as TYPE
+mark_variable_stack : parameter on orig_line 3, orig_col 45: <nI> as VAR
+fix_fcn_def_params : Text() '(', type is PAREN_OPEN, on orig_line 9, level is 1
+fix_fcn_def_params : bailed on Text() ')', on orig_line 9
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/66.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/66.txt
new file mode 100644
index 00000000..85cdb21a
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/66.txt
@@ -0,0 +1,741 @@
+space_text : orig_line is 1, orig_col is 1, 'struct' type is STRUCT
+space_text : back-to-back words need a space: pc->Text() 'struct', next->Text() 'TelegramIndex'
+space_text : orig_line is 1, orig_col is 1, pc-Text() 'struct', type is STRUCT
+do_space : orig_line is 1, orig_col is 1, first->Text() 'struct', type is STRUCT
+do_space : first->orig_line is 1, first->orig_col is 1, first->Text() is 'struct', [STRUCT/NONE] <===>
+ second->orig_line is 1, second->orig_col is 8, second->Text() is 'TelegramIndex', [TYPE/STRUCT] : rule ADD from add_space_table[ ]
+ensure_force_space : <force between 'struct' and 'TelegramIndex'> rule = ADD @ 1 => 8
+space_text : orig_line is 1, orig_col is 8, 'TelegramIndex' type is TYPE
+space_text : orig_line is 1, orig_col is 8, pc-Text() 'TelegramIndex', type is TYPE
+do_space : orig_line is 1, orig_col is 8, first->Text() 'TelegramIndex', type is TYPE
+ rule = REMOVE @ 0 => 21
+space_text : orig_line is 1, orig_col is 21, <Newline>, nl is 1
+space_text : orig_line is 2, orig_col is 1, '{' type is BRACE_OPEN
+space_text : orig_line is 2, orig_col is 1, pc-Text() '{', type is BRACE_OPEN
+do_space : orig_line is 2, orig_col is 1, first->Text() '{', type is BRACE_OPEN
+ rule = REMOVE @ 0 => 2
+space_text : orig_line is 2, orig_col is 2, <Newline>, nl is 1
+space_text : orig_line is 3, orig_col is 1, 'TelegramIndex' type is FUNC_CLASS_DEF
+space_text : orig_line is 3, orig_col is 1, pc-Text() 'TelegramIndex', type is FUNC_CLASS_DEF
+do_space : orig_line is 3, orig_col is 1, first->Text() 'TelegramIndex', type is FUNC_CLASS_DEF
+do_space : first->orig_line is 3, first->orig_col is 1, first->Text() is 'TelegramIndex', [FUNC_CLASS_DEF/NONE] <===>
+ second->orig_line is 3, second->orig_col is 14, second->Text() is '(', [FPAREN_OPEN/FUNC_CLASS_DEF] : rule sp_func_class_paren[ ]
+ rule = IGNORE @ 0 => 14
+space_text : orig_line is 3, orig_col is 14, '(' type is FPAREN_OPEN
+space_text : orig_line is 3, orig_col is 14, pc-Text() '(', type is FPAREN_OPEN
+do_space : orig_line is 3, orig_col is 14, first->Text() '(', type is FPAREN_OPEN
+do_space : first->orig_line is 3, first->orig_col is 14, first->Text() is '(', [FPAREN_OPEN/FUNC_CLASS_DEF] <===>
+ second->orig_line is 3, second->orig_col is 15, second->Text() is 'const', [QUALIFIER/NONE] : rule sp_inside_fparen[ ]
+ rule = IGNORE @ 0 => 15
+space_text : orig_line is 3, orig_col is 15, 'const' type is QUALIFIER
+space_text : back-to-back words need a space: pc->Text() 'const', next->Text() 'char'
+space_text : orig_line is 3, orig_col is 15, pc-Text() 'const', type is QUALIFIER
+do_space : orig_line is 3, orig_col is 15, first->Text() 'const', type is QUALIFIER
+do_space : first->orig_line is 3, first->orig_col is 15, first->Text() is 'const', [QUALIFIER/NONE] <===>
+ second->orig_line is 3, second->orig_col is 21, second->Text() is 'char', [TYPE/NONE] : rule sp_after_type[ ]
+ensure_force_space : <force between 'const' and 'char'> rule = FORCE @ 1 => 21
+space_text : orig_line is 3, orig_col is 21, 'char' type is TYPE
+space_text : orig_line is 3, orig_col is 21, pc-Text() 'char', type is TYPE
+do_space : orig_line is 3, orig_col is 21, first->Text() 'char', type is TYPE
+do_space : first->orig_line is 3, first->orig_col is 21, first->Text() is 'char', [TYPE/NONE] <===>
+ second->orig_line is 3, second->orig_col is 25, second->Text() is '*', [PTR_TYPE/NONE] : rule IGNORE[ ]
+ rule = IGNORE @ 0 => 25
+space_text : orig_line is 3, orig_col is 25, '*' type is PTR_TYPE
+space_text : orig_line is 3, orig_col is 25, pc-Text() '*', type is PTR_TYPE
+do_space : orig_line is 3, orig_col is 25, first->Text() '*', type is PTR_TYPE
+do_space : first->orig_line is 3, first->orig_col is 25, first->Text() is '*', [PTR_TYPE/NONE] <===>
+ second->orig_line is 3, second->orig_col is 27, second->Text() is 'pN', [WORD/NONE] : rule sp_after_ptr_star[ ]
+ rule = IGNORE @ 1 => 27
+space_text : orig_line is 3, orig_col is 27, 'pN' type is WORD
+space_text : orig_line is 3, orig_col is 27, pc-Text() 'pN', type is WORD
+do_space : orig_line is 3, orig_col is 27, first->Text() 'pN', type is WORD
+do_space : first->orig_line is 3, first->orig_col is 27, first->Text() is 'pN', [WORD/NONE] <===>
+ second->orig_line is 3, second->orig_col is 29, second->Text() is ',', [COMMA/NONE] : rule sp_before_comma[ ]
+ rule = REMOVE @ 0 => 29
+space_text : orig_line is 3, orig_col is 29, ',' type is COMMA
+space_text : orig_line is 3, orig_col is 29, pc-Text() ',', type is COMMA
+do_space : orig_line is 3, orig_col is 29, first->Text() ',', type is COMMA
+do_space : first->orig_line is 3, first->orig_col is 29, first->Text() is ',', [COMMA/NONE] <===>
+ second->orig_line is 3, second->orig_col is 31, second->Text() is 'unsigned', [TYPE/NONE] : rule sp_after_comma[ ]
+ rule = IGNORE @ 1 => 31
+space_text : orig_line is 3, orig_col is 31, 'unsigned' type is TYPE
+space_text : back-to-back words need a space: pc->Text() 'unsigned', next->Text() 'long'
+space_text : orig_line is 3, orig_col is 31, pc-Text() 'unsigned', type is TYPE
+do_space : orig_line is 3, orig_col is 31, first->Text() 'unsigned', type is TYPE
+do_space : first->orig_line is 3, first->orig_col is 31, first->Text() is 'unsigned', [TYPE/NONE] <===>
+ second->orig_line is 3, second->orig_col is 40, second->Text() is 'long', [TYPE/NONE] : rule sp_after_type[ ]
+ensure_force_space : <force between 'unsigned' and 'long'> rule = FORCE @ 1 => 40
+space_text : orig_line is 3, orig_col is 40, 'long' type is TYPE
+space_text : back-to-back words need a space: pc->Text() 'long', next->Text() 'nI'
+space_text : orig_line is 3, orig_col is 40, pc-Text() 'long', type is TYPE
+do_space : orig_line is 3, orig_col is 40, first->Text() 'long', type is TYPE
+do_space : first->orig_line is 3, first->orig_col is 40, first->Text() is 'long', [TYPE/NONE] <===>
+ second->orig_line is 3, second->orig_col is 45, second->Text() is 'nI', [WORD/NONE] : rule sp_after_type[ ]
+ensure_force_space : <force between 'long' and 'nI'> rule = FORCE @ 1 => 45
+space_text : orig_line is 3, orig_col is 45, 'nI' type is WORD
+space_text : orig_line is 3, orig_col is 45, pc-Text() 'nI', type is WORD
+do_space : orig_line is 3, orig_col is 45, first->Text() 'nI', type is WORD
+do_space : first->orig_line is 3, first->orig_col is 45, first->Text() is 'nI', [WORD/NONE] <===>
+ second->orig_line is 3, second->orig_col is 47, second->Text() is ')', [FPAREN_CLOSE/FUNC_CLASS_DEF] : rule sp_inside_fparen[ ]
+ rule = IGNORE @ 0 => 47
+space_text : orig_line is 3, orig_col is 47, ')' type is FPAREN_CLOSE
+space_text : orig_line is 3, orig_col is 47, pc-Text() ')', type is FPAREN_CLOSE
+do_space : orig_line is 3, orig_col is 47, first->Text() ')', type is FPAREN_CLOSE
+do_space : first->orig_line is 3, first->orig_col is 47, first->Text() is ')', [FPAREN_CLOSE/FUNC_CLASS_DEF] <===>
+ second->orig_line is 3, second->orig_col is 49, second->Text() is ':', [CONSTR_COLON/NONE] : rule sp_before_constr_colon[ ]
+ rule = ADD @ 1 => 49
+space_text : orig_line is 3, orig_col is 49, ':' type is CONSTR_COLON
+space_text : orig_line is 3, orig_col is 49, pc-Text() ':', type is CONSTR_COLON
+do_space : orig_line is 3, orig_col is 49, first->Text() ':', type is CONSTR_COLON
+ rule = REMOVE @ 0 => 50
+space_text : orig_line is 3, orig_col is 50, <Newline>, nl is 1
+space_text : orig_line is 4, orig_col is 1, 'pTelName' type is FUNC_CTOR_VAR
+space_text : orig_line is 4, orig_col is 1, pc-Text() 'pTelName', type is FUNC_CTOR_VAR
+do_space : orig_line is 4, orig_col is 1, first->Text() 'pTelName', type is FUNC_CTOR_VAR
+do_space : first->orig_line is 4, first->orig_col is 1, first->Text() is 'pTelName', [FUNC_CTOR_VAR/NONE] <===>
+ second->orig_line is 4, second->orig_col is 9, second->Text() is '(', [FPAREN_OPEN/FUNC_CTOR_VAR] : rule sp_func_call_paren[ ]
+ rule = IGNORE @ 0 => 9
+space_text : orig_line is 4, orig_col is 9, '(' type is FPAREN_OPEN
+space_text : orig_line is 4, orig_col is 9, pc-Text() '(', type is FPAREN_OPEN
+do_space : orig_line is 4, orig_col is 9, first->Text() '(', type is FPAREN_OPEN
+do_space : first->orig_line is 4, first->orig_col is 9, first->Text() is '(', [FPAREN_OPEN/FUNC_CTOR_VAR] <===>
+ second->orig_line is 4, second->orig_col is 10, second->Text() is 'pN', [WORD/NONE] : rule sp_inside_fparen[ ]
+ rule = IGNORE @ 0 => 10
+space_text : orig_line is 4, orig_col is 10, 'pN' type is WORD
+space_text : orig_line is 4, orig_col is 10, pc-Text() 'pN', type is WORD
+do_space : orig_line is 4, orig_col is 10, first->Text() 'pN', type is WORD
+do_space : first->orig_line is 4, first->orig_col is 10, first->Text() is 'pN', [WORD/NONE] <===>
+ second->orig_line is 4, second->orig_col is 12, second->Text() is ')', [FPAREN_CLOSE/FUNC_CTOR_VAR] : rule sp_inside_fparen[ ]
+ rule = IGNORE @ 0 => 12
+space_text : orig_line is 4, orig_col is 12, ')' type is FPAREN_CLOSE
+space_text : orig_line is 4, orig_col is 12, pc-Text() ')', type is FPAREN_CLOSE
+do_space : orig_line is 4, orig_col is 12, first->Text() ')', type is FPAREN_CLOSE
+do_space : first->orig_line is 4, first->orig_col is 12, first->Text() is ')', [FPAREN_CLOSE/FUNC_CTOR_VAR] <===>
+ second->orig_line is 4, second->orig_col is 13, second->Text() is ',', [COMMA/NONE] : rule sp_before_comma[ ]
+ rule = REMOVE @ 0 => 13
+space_text : orig_line is 4, orig_col is 13, ',' type is COMMA
+space_text : orig_line is 4, orig_col is 13, pc-Text() ',', type is COMMA
+do_space : orig_line is 4, orig_col is 13, first->Text() ',', type is COMMA
+ rule = REMOVE @ 0 => 14
+space_text : orig_line is 4, orig_col is 14, <Newline>, nl is 1
+space_text : orig_line is 5, orig_col is 1, 'nTelIndex' type is FUNC_CTOR_VAR
+space_text : orig_line is 5, orig_col is 1, pc-Text() 'nTelIndex', type is FUNC_CTOR_VAR
+do_space : orig_line is 5, orig_col is 1, first->Text() 'nTelIndex', type is FUNC_CTOR_VAR
+do_space : first->orig_line is 5, first->orig_col is 1, first->Text() is 'nTelIndex', [FUNC_CTOR_VAR/NONE] <===>
+ second->orig_line is 5, second->orig_col is 10, second->Text() is '(', [FPAREN_OPEN/FUNC_CTOR_VAR] : rule sp_func_call_paren[ ]
+ rule = IGNORE @ 0 => 10
+space_text : orig_line is 5, orig_col is 10, '(' type is FPAREN_OPEN
+space_text : orig_line is 5, orig_col is 10, pc-Text() '(', type is FPAREN_OPEN
+do_space : orig_line is 5, orig_col is 10, first->Text() '(', type is FPAREN_OPEN
+do_space : first->orig_line is 5, first->orig_col is 10, first->Text() is '(', [FPAREN_OPEN/FUNC_CTOR_VAR] <===>
+ second->orig_line is 5, second->orig_col is 11, second->Text() is 'n', [WORD/NONE] : rule sp_inside_fparen[ ]
+ rule = IGNORE @ 0 => 11
+space_text : orig_line is 5, orig_col is 11, 'n' type is WORD
+space_text : orig_line is 5, orig_col is 11, pc-Text() 'n', type is WORD
+do_space : orig_line is 5, orig_col is 11, first->Text() 'n', type is WORD
+do_space : first->orig_line is 5, first->orig_col is 11, first->Text() is 'n', [WORD/NONE] <===>
+ second->orig_line is 5, second->orig_col is 12, second->Text() is ')', [FPAREN_CLOSE/FUNC_CTOR_VAR] : rule sp_inside_fparen[ ]
+ rule = IGNORE @ 0 => 12
+space_text : orig_line is 5, orig_col is 12, ')' type is FPAREN_CLOSE
+space_text : orig_line is 5, orig_col is 12, pc-Text() ')', type is FPAREN_CLOSE
+do_space : orig_line is 5, orig_col is 12, first->Text() ')', type is FPAREN_CLOSE
+ rule = REMOVE @ 0 => 13
+space_text : orig_line is 5, orig_col is 13, <Newline>, nl is 1
+space_text : orig_line is 6, orig_col is 1, '{' type is BRACE_OPEN
+space_text : orig_line is 6, orig_col is 1, pc-Text() '{', type is BRACE_OPEN
+do_space : orig_line is 6, orig_col is 1, first->Text() '{', type is BRACE_OPEN
+ rule = REMOVE @ 0 => 2
+space_text : orig_line is 6, orig_col is 2, <Newline>, nl is 1
+space_text : orig_line is 7, orig_col is 1, '}' type is BRACE_CLOSE
+space_text : orig_line is 7, orig_col is 1, pc-Text() '}', type is BRACE_CLOSE
+do_space : orig_line is 7, orig_col is 1, first->Text() '}', type is BRACE_CLOSE
+ rule = REMOVE @ 0 => 2
+space_text : orig_line is 7, orig_col is 2, <Newline>, nl is 2
+space_text : orig_line is 9, orig_col is 1, '~' type is DESTRUCTOR
+space_text : orig_line is 9, orig_col is 1, pc-Text() '~', type is DESTRUCTOR
+do_space : orig_line is 9, orig_col is 1, first->Text() '~', type is DESTRUCTOR
+do_space : first->orig_line is 9, first->orig_col is 1, first->Text() is '~', [DESTRUCTOR/FUNC_CLASS_DEF] <===>
+ second->orig_line is 9, second->orig_col is 2, second->Text() is 'TelegramIndex', [FUNC_CLASS_DEF/DESTRUCTOR] : rule REMOVE[ ]
+ rule = REMOVE @ 0 => 2
+space_text : orig_line is 9, orig_col is 2, 'TelegramIndex' type is FUNC_CLASS_DEF
+space_text : orig_line is 9, orig_col is 2, pc-Text() 'TelegramIndex', type is FUNC_CLASS_DEF
+do_space : orig_line is 9, orig_col is 2, first->Text() 'TelegramIndex', type is FUNC_CLASS_DEF
+do_space : first->orig_line is 9, first->orig_col is 2, first->Text() is 'TelegramIndex', [FUNC_CLASS_DEF/DESTRUCTOR] <===>
+ second->orig_line is 9, second->orig_col is 15, second->Text() is '(', [FPAREN_OPEN/FUNC_CLASS_DEF] : rule sp_func_class_paren[ ]
+ rule = IGNORE @ 0 => 15
+space_text : orig_line is 9, orig_col is 15, '(' type is FPAREN_OPEN
+space_text : orig_line is 9, orig_col is 15, pc-Text() '(', type is FPAREN_OPEN
+do_space : orig_line is 9, orig_col is 15, first->Text() '(', type is FPAREN_OPEN
+do_space : first->orig_line is 9, first->orig_col is 15, first->Text() is '(', [FPAREN_OPEN/FUNC_CLASS_DEF] <===>
+ second->orig_line is 9, second->orig_col is 16, second->Text() is ')', [FPAREN_CLOSE/FUNC_CLASS_DEF] : rule sp_inside_fparens[ ]
+ rule = IGNORE @ 0 => 16
+space_text : orig_line is 9, orig_col is 16, ')' type is FPAREN_CLOSE
+space_text : orig_line is 9, orig_col is 16, pc-Text() ')', type is FPAREN_CLOSE
+do_space : orig_line is 9, orig_col is 16, first->Text() ')', type is FPAREN_CLOSE
+ rule = REMOVE @ 0 => 17
+space_text : orig_line is 9, orig_col is 17, <Newline>, nl is 1
+space_text : orig_line is 10, orig_col is 1, '{' type is BRACE_OPEN
+space_text : orig_line is 10, orig_col is 1, pc-Text() '{', type is BRACE_OPEN
+do_space : orig_line is 10, orig_col is 1, first->Text() '{', type is BRACE_OPEN
+ rule = REMOVE @ 0 => 2
+space_text : orig_line is 10, orig_col is 2, <Newline>, nl is 1
+space_text : orig_line is 11, orig_col is 1, '}' type is BRACE_CLOSE
+space_text : orig_line is 11, orig_col is 1, pc-Text() '}', type is BRACE_CLOSE
+do_space : orig_line is 11, orig_col is 1, first->Text() '}', type is BRACE_CLOSE
+ rule = REMOVE @ 0 => 2
+space_text : orig_line is 11, orig_col is 2, <Newline>, nl is 2
+space_text : orig_line is 13, orig_col is 1, 'const' type is QUALIFIER
+space_text : back-to-back words need a space: pc->Text() 'const', next->Text() 'char'
+space_text : orig_line is 13, orig_col is 1, pc-Text() 'const', type is QUALIFIER
+do_space : orig_line is 13, orig_col is 1, first->Text() 'const', type is QUALIFIER
+do_space : first->orig_line is 13, first->orig_col is 1, first->Text() is 'const', [QUALIFIER/NONE] <===>
+ second->orig_line is 13, second->orig_col is 7, second->Text() is 'char', [TYPE/NONE] : rule sp_after_type[ ]
+ensure_force_space : <force between 'const' and 'char'> rule = FORCE @ 1 => 7
+space_text : orig_line is 13, orig_col is 7, 'char' type is TYPE
+space_text : orig_line is 13, orig_col is 7, pc-Text() 'char', type is TYPE
+do_space : orig_line is 13, orig_col is 7, first->Text() 'char', type is TYPE
+do_space : first->orig_line is 13, first->orig_col is 7, first->Text() is 'char', [TYPE/NONE] <===>
+ second->orig_line is 13, second->orig_col is 11, second->Text() is '*', [PTR_TYPE/NONE] : rule IGNORE[ ]
+ rule = IGNORE @ 0 => 11
+space_text : orig_line is 13, orig_col is 11, '*' type is PTR_TYPE
+space_text : orig_line is 13, orig_col is 11, pc-Text() '*', type is PTR_TYPE
+do_space : orig_line is 13, orig_col is 11, first->Text() '*', type is PTR_TYPE
+do_space : first->orig_line is 13, first->orig_col is 11, first->Text() is '*', [PTR_TYPE/NONE] <===>
+ second->orig_line is 13, second->orig_col is 13, second->Text() is 'const', [QUALIFIER/NONE] : rule sp_after_ptr_star_qualifier[ ]
+ rule = IGNORE @ 1 => 13
+space_text : orig_line is 13, orig_col is 13, 'const' type is QUALIFIER
+space_text : back-to-back words need a space: pc->Text() 'const', next->Text() 'pTelName'
+space_text : orig_line is 13, orig_col is 13, pc-Text() 'const', type is QUALIFIER
+do_space : orig_line is 13, orig_col is 13, first->Text() 'const', type is QUALIFIER
+do_space : first->orig_line is 13, first->orig_col is 13, first->Text() is 'const', [QUALIFIER/NONE] <===>
+ second->orig_line is 13, second->orig_col is 19, second->Text() is 'pTelName', [WORD/NONE] : rule sp_after_type[ ]
+ensure_force_space : <force between 'const' and 'pTelName'> rule = FORCE @ 1 => 19
+space_text : orig_line is 13, orig_col is 19, 'pTelName' type is WORD
+space_text : orig_line is 13, orig_col is 19, pc-Text() 'pTelName', type is WORD
+do_space : orig_line is 13, orig_col is 19, first->Text() 'pTelName', type is WORD
+do_space : first->orig_line is 13, first->orig_col is 19, first->Text() is 'pTelName', [WORD/NONE] <===>
+ second->orig_line is 13, second->orig_col is 27, second->Text() is ';', [SEMICOLON/NONE] : rule sp_before_semi[ ]
+ rule = REMOVE @ 0 => 27
+space_text : orig_line is 13, orig_col is 27, ';' type is SEMICOLON
+space_text : orig_line is 13, orig_col is 27, pc-Text() ';', type is SEMICOLON
+do_space : orig_line is 13, orig_col is 27, first->Text() ';', type is SEMICOLON
+ rule = REMOVE @ 0 => 28
+space_text : orig_line is 13, orig_col is 28, <Newline>, nl is 1
+space_text : orig_line is 14, orig_col is 1, 'unsigned' type is TYPE
+space_text : back-to-back words need a space: pc->Text() 'unsigned', next->Text() 'long'
+space_text : orig_line is 14, orig_col is 1, pc-Text() 'unsigned', type is TYPE
+do_space : orig_line is 14, orig_col is 1, first->Text() 'unsigned', type is TYPE
+do_space : first->orig_line is 14, first->orig_col is 1, first->Text() is 'unsigned', [TYPE/NONE] <===>
+ second->orig_line is 14, second->orig_col is 10, second->Text() is 'long', [TYPE/NONE] : rule sp_after_type[ ]
+ensure_force_space : <force between 'unsigned' and 'long'> rule = FORCE @ 1 => 10
+space_text : orig_line is 14, orig_col is 10, 'long' type is TYPE
+space_text : back-to-back words need a space: pc->Text() 'long', next->Text() 'nTelIndex'
+space_text : orig_line is 14, orig_col is 10, pc-Text() 'long', type is TYPE
+do_space : orig_line is 14, orig_col is 10, first->Text() 'long', type is TYPE
+do_space : first->orig_line is 14, first->orig_col is 10, first->Text() is 'long', [TYPE/NONE] <===>
+ second->orig_line is 14, second->orig_col is 15, second->Text() is 'nTelIndex', [WORD/NONE] : rule sp_after_type[ ]
+ensure_force_space : <force between 'long' and 'nTelIndex'> rule = FORCE @ 1 => 15
+space_text : orig_line is 14, orig_col is 15, 'nTelIndex' type is WORD
+space_text : orig_line is 14, orig_col is 15, pc-Text() 'nTelIndex', type is WORD
+do_space : orig_line is 14, orig_col is 15, first->Text() 'nTelIndex', type is WORD
+do_space : first->orig_line is 14, first->orig_col is 15, first->Text() is 'nTelIndex', [WORD/NONE] <===>
+ second->orig_line is 14, second->orig_col is 24, second->Text() is ';', [SEMICOLON/NONE] : rule sp_before_semi[ ]
+ rule = REMOVE @ 0 => 24
+space_text : orig_line is 14, orig_col is 24, ';' type is SEMICOLON
+space_text : orig_line is 14, orig_col is 24, pc-Text() ';', type is SEMICOLON
+do_space : orig_line is 14, orig_col is 24, first->Text() ';', type is SEMICOLON
+ rule = REMOVE @ 0 => 25
+space_text : orig_line is 14, orig_col is 25, <Newline>, nl is 1
+space_text : orig_line is 15, orig_col is 1, '}' type is BRACE_CLOSE
+space_text : orig_line is 15, orig_col is 1, pc-Text() '}', type is BRACE_CLOSE
+do_space : orig_line is 15, orig_col is 1, first->Text() '}', type is BRACE_CLOSE
+do_space : first->orig_line is 15, first->orig_col is 1, first->Text() is '}', [BRACE_CLOSE/STRUCT] <===>
+ second->orig_line is 15, second->orig_col is 2, second->Text() is ';', [SEMICOLON/STRUCT] : rule sp_before_semi[ ]
+ rule = REMOVE @ 0 => 2
+space_text : orig_line is 15, orig_col is 2, ';' type is SEMICOLON
+space_text : orig_line is 15, orig_col is 2, pc-Text() ';', type is SEMICOLON
+do_space : orig_line is 15, orig_col is 2, first->Text() ';', type is SEMICOLON
+ rule = REMOVE @ 0 => 3
+space_text : orig_line is 15, orig_col is 3, <Newline>, nl is 2
+space_col_align : first->orig_line is 3, orig_col is 1, [FUNC_CLASS_DEF/NONE], Text() 'TelegramIndex' <==>
+space_col_align : second->orig_line is 3, orig_col is 14 [FPAREN_OPEN/FUNC_CLASS_DEF], Text() '(', [CallStack]
+do_space : orig_line is 3, orig_col is 1, first->Text() 'TelegramIndex', type is FUNC_CLASS_DEF
+do_space : first->orig_line is 3, first->orig_col is 1, first->Text() is 'TelegramIndex', [FUNC_CLASS_DEF/NONE] <===>
+ second->orig_line is 3, second->orig_col is 14, second->Text() is '(', [FPAREN_OPEN/FUNC_CLASS_DEF] : rule sp_func_class_paren[ ]
+space_col_align : av is ignore
+space_col_align : Len is 13
+space_col_align : => coldiff is 13
+space_col_align : => av is IGNORE
+space_col_align : => first->orig_line is 3
+space_col_align : => second->orig_line is 3
+space_col_align : => first->Text() is 'TelegramIndex'
+space_col_align : => second->Text() is '('
+space_col_align : => first->orig_col is 1
+space_col_align : => second->orig_col is 14
+space_col_align : => first->Len() is 13
+space_col_align : => coldiff is 13
+space_col_align : first->orig_line is 3, orig_col is 14, [FPAREN_OPEN/FUNC_CLASS_DEF], Text() '(' <==>
+space_col_align : second->orig_line is 3, orig_col is 15 [QUALIFIER/NONE], Text() 'const', [CallStack]
+do_space : orig_line is 3, orig_col is 14, first->Text() '(', type is FPAREN_OPEN
+do_space : first->orig_line is 3, first->orig_col is 14, first->Text() is '(', [FPAREN_OPEN/FUNC_CLASS_DEF] <===>
+ second->orig_line is 3, second->orig_col is 15, second->Text() is 'const', [QUALIFIER/NONE] : rule sp_inside_fparen[ ]
+space_col_align : av is ignore
+space_col_align : Len is 1
+space_col_align : => coldiff is 1
+space_col_align : => av is IGNORE
+space_col_align : => first->orig_line is 3
+space_col_align : => second->orig_line is 3
+space_col_align : => first->Text() is '('
+space_col_align : => second->Text() is 'const'
+space_col_align : => first->orig_col is 14
+space_col_align : => second->orig_col is 15
+space_col_align : => first->Len() is 1
+space_col_align : => coldiff is 1
+space_col_align : first->orig_line is 3, orig_col is 15, [QUALIFIER/NONE], Text() 'const' <==>
+space_col_align : second->orig_line is 3, orig_col is 21 [TYPE/NONE], Text() 'char', [CallStack]
+do_space : orig_line is 3, orig_col is 15, first->Text() 'const', type is QUALIFIER
+do_space : first->orig_line is 3, first->orig_col is 15, first->Text() is 'const', [QUALIFIER/NONE] <===>
+ second->orig_line is 3, second->orig_col is 21, second->Text() is 'char', [TYPE/NONE] : rule sp_after_type[ ]
+ensure_force_space : <force between 'const' and 'char'>space_col_align : av is force
+space_col_align : Len is 5
+space_col_align : => coldiff is 5
+space_col_align : => av is FORCE
+space_col_align : => coldiff is 6
+space_col_align : first->orig_line is 3, orig_col is 21, [TYPE/NONE], Text() 'char' <==>
+space_col_align : second->orig_line is 3, orig_col is 25 [PTR_TYPE/NONE], Text() '*', [CallStack]
+do_space : orig_line is 3, orig_col is 21, first->Text() 'char', type is TYPE
+do_space : first->orig_line is 3, first->orig_col is 21, first->Text() is 'char', [TYPE/NONE] <===>
+ second->orig_line is 3, second->orig_col is 25, second->Text() is '*', [PTR_TYPE/NONE] : rule IGNORE[ ]
+space_col_align : av is ignore
+space_col_align : Len is 4
+space_col_align : => coldiff is 4
+space_col_align : => av is IGNORE
+space_col_align : => first->orig_line is 3
+space_col_align : => second->orig_line is 3
+space_col_align : => first->Text() is 'char'
+space_col_align : => second->Text() is '*'
+space_col_align : => first->orig_col is 21
+space_col_align : => second->orig_col is 25
+space_col_align : => first->Len() is 4
+space_col_align : => coldiff is 4
+space_col_align : first->orig_line is 3, orig_col is 25, [PTR_TYPE/NONE], Text() '*' <==>
+space_col_align : second->orig_line is 3, orig_col is 27 [WORD/NONE], Text() 'pN', [CallStack]
+do_space : orig_line is 3, orig_col is 25, first->Text() '*', type is PTR_TYPE
+do_space : first->orig_line is 3, first->orig_col is 25, first->Text() is '*', [PTR_TYPE/NONE] <===>
+ second->orig_line is 3, second->orig_col is 27, second->Text() is 'pN', [WORD/NONE] : rule sp_after_ptr_star[ ]
+space_col_align : av is ignore
+space_col_align : Len is 1
+space_col_align : => coldiff is 1
+space_col_align : => av is IGNORE
+space_col_align : => first->orig_line is 3
+space_col_align : => second->orig_line is 3
+space_col_align : => first->Text() is '*'
+space_col_align : => second->Text() is 'pN'
+space_col_align : => first->orig_col is 25
+space_col_align : => second->orig_col is 27
+space_col_align : => first->Len() is 1
+space_col_align : => coldiff is 2
+space_col_align : first->orig_line is 3, orig_col is 27, [WORD/NONE], Text() 'pN' <==>
+space_col_align : second->orig_line is 3, orig_col is 29 [COMMA/NONE], Text() ',', [CallStack]
+do_space : orig_line is 3, orig_col is 27, first->Text() 'pN', type is WORD
+do_space : first->orig_line is 3, first->orig_col is 27, first->Text() is 'pN', [WORD/NONE] <===>
+ second->orig_line is 3, second->orig_col is 29, second->Text() is ',', [COMMA/NONE] : rule sp_before_comma[ ]
+space_col_align : av is remove
+space_col_align : Len is 2
+space_col_align : => coldiff is 2
+space_col_align : => av is REMOVE
+space_col_align : => coldiff is 2
+space_col_align : first->orig_line is 3, orig_col is 29, [COMMA/NONE], Text() ',' <==>
+space_col_align : second->orig_line is 3, orig_col is 31 [TYPE/NONE], Text() 'unsigned', [CallStack]
+do_space : orig_line is 3, orig_col is 29, first->Text() ',', type is COMMA
+do_space : first->orig_line is 3, first->orig_col is 29, first->Text() is ',', [COMMA/NONE] <===>
+ second->orig_line is 3, second->orig_col is 31, second->Text() is 'unsigned', [TYPE/NONE] : rule sp_after_comma[ ]
+space_col_align : av is ignore
+space_col_align : Len is 1
+space_col_align : => coldiff is 1
+space_col_align : => av is IGNORE
+space_col_align : => first->orig_line is 3
+space_col_align : => second->orig_line is 3
+space_col_align : => first->Text() is ','
+space_col_align : => second->Text() is 'unsigned'
+space_col_align : => first->orig_col is 29
+space_col_align : => second->orig_col is 31
+space_col_align : => first->Len() is 1
+space_col_align : => coldiff is 2
+space_col_align : first->orig_line is 3, orig_col is 31, [TYPE/NONE], Text() 'unsigned' <==>
+space_col_align : second->orig_line is 3, orig_col is 40 [TYPE/NONE], Text() 'long', [CallStack]
+do_space : orig_line is 3, orig_col is 31, first->Text() 'unsigned', type is TYPE
+do_space : first->orig_line is 3, first->orig_col is 31, first->Text() is 'unsigned', [TYPE/NONE] <===>
+ second->orig_line is 3, second->orig_col is 40, second->Text() is 'long', [TYPE/NONE] : rule sp_after_type[ ]
+ensure_force_space : <force between 'unsigned' and 'long'>space_col_align : av is force
+space_col_align : Len is 8
+space_col_align : => coldiff is 8
+space_col_align : => av is FORCE
+space_col_align : => coldiff is 9
+space_col_align : first->orig_line is 3, orig_col is 40, [TYPE/NONE], Text() 'long' <==>
+space_col_align : second->orig_line is 3, orig_col is 45 [WORD/NONE], Text() 'nI', [CallStack]
+do_space : orig_line is 3, orig_col is 40, first->Text() 'long', type is TYPE
+do_space : first->orig_line is 3, first->orig_col is 40, first->Text() is 'long', [TYPE/NONE] <===>
+ second->orig_line is 3, second->orig_col is 45, second->Text() is 'nI', [WORD/NONE] : rule sp_after_type[ ]
+ensure_force_space : <force between 'long' and 'nI'>space_col_align : av is force
+space_col_align : Len is 4
+space_col_align : => coldiff is 4
+space_col_align : => av is FORCE
+space_col_align : => coldiff is 5
+space_col_align : first->orig_line is 3, orig_col is 45, [WORD/NONE], Text() 'nI' <==>
+space_col_align : second->orig_line is 3, orig_col is 47 [FPAREN_CLOSE/FUNC_CLASS_DEF], Text() ')', [CallStack]
+do_space : orig_line is 3, orig_col is 45, first->Text() 'nI', type is WORD
+do_space : first->orig_line is 3, first->orig_col is 45, first->Text() is 'nI', [WORD/NONE] <===>
+ second->orig_line is 3, second->orig_col is 47, second->Text() is ')', [FPAREN_CLOSE/FUNC_CLASS_DEF] : rule sp_inside_fparen[ ]
+space_col_align : av is ignore
+space_col_align : Len is 2
+space_col_align : => coldiff is 2
+space_col_align : => av is IGNORE
+space_col_align : => first->orig_line is 3
+space_col_align : => second->orig_line is 3
+space_col_align : => first->Text() is 'nI'
+space_col_align : => second->Text() is ')'
+space_col_align : => first->orig_col is 45
+space_col_align : => second->orig_col is 47
+space_col_align : => first->Len() is 2
+space_col_align : => coldiff is 2
+space_col_align : first->orig_line is 3, orig_col is 47, [FPAREN_CLOSE/FUNC_CLASS_DEF], Text() ')' <==>
+space_col_align : second->orig_line is 3, orig_col is 49 [CONSTR_COLON/NONE], Text() ':', [CallStack]
+do_space : orig_line is 3, orig_col is 47, first->Text() ')', type is FPAREN_CLOSE
+do_space : first->orig_line is 3, first->orig_col is 47, first->Text() is ')', [FPAREN_CLOSE/FUNC_CLASS_DEF] <===>
+ second->orig_line is 3, second->orig_col is 49, second->Text() is ':', [CONSTR_COLON/NONE] : rule sp_before_constr_colon[ ]
+space_col_align : av is add
+space_col_align : Len is 1
+space_col_align : => coldiff is 1
+space_col_align : => av is ADD
+space_col_align : => coldiff is 2
+space_col_align : first->orig_line is 3, orig_col is 49, [CONSTR_COLON/NONE], Text() ':' <==>
+space_col_align : second->orig_line is 3, orig_col is 50 [NEWLINE/NONE], Text() '', [CallStack]
+do_space : orig_line is 3, orig_col is 49, first->Text() ':', type is CONSTR_COLON
+space_col_align : av is remove
+space_col_align : Len is 1
+space_col_align : => coldiff is 1
+space_col_align : => av is REMOVE
+space_col_align : => coldiff is 1
+space_col_align : first->orig_line is 4, orig_col is 1, [FUNC_CTOR_VAR/NONE], Text() 'pTelName' <==>
+space_col_align : second->orig_line is 4, orig_col is 9 [FPAREN_OPEN/FUNC_CTOR_VAR], Text() '(', [CallStack]
+do_space : orig_line is 4, orig_col is 1, first->Text() 'pTelName', type is FUNC_CTOR_VAR
+do_space : first->orig_line is 4, first->orig_col is 1, first->Text() is 'pTelName', [FUNC_CTOR_VAR/NONE] <===>
+ second->orig_line is 4, second->orig_col is 9, second->Text() is '(', [FPAREN_OPEN/FUNC_CTOR_VAR] : rule sp_func_call_paren[ ]
+space_col_align : av is ignore
+space_col_align : Len is 8
+space_col_align : => coldiff is 8
+space_col_align : => av is IGNORE
+space_col_align : => first->orig_line is 4
+space_col_align : => second->orig_line is 4
+space_col_align : => first->Text() is 'pTelName'
+space_col_align : => second->Text() is '('
+space_col_align : => first->orig_col is 1
+space_col_align : => second->orig_col is 9
+space_col_align : => first->Len() is 8
+space_col_align : => coldiff is 8
+space_col_align : first->orig_line is 4, orig_col is 9, [FPAREN_OPEN/FUNC_CTOR_VAR], Text() '(' <==>
+space_col_align : second->orig_line is 4, orig_col is 10 [WORD/NONE], Text() 'pN', [CallStack]
+do_space : orig_line is 4, orig_col is 9, first->Text() '(', type is FPAREN_OPEN
+do_space : first->orig_line is 4, first->orig_col is 9, first->Text() is '(', [FPAREN_OPEN/FUNC_CTOR_VAR] <===>
+ second->orig_line is 4, second->orig_col is 10, second->Text() is 'pN', [WORD/NONE] : rule sp_inside_fparen[ ]
+space_col_align : av is ignore
+space_col_align : Len is 1
+space_col_align : => coldiff is 1
+space_col_align : => av is IGNORE
+space_col_align : => first->orig_line is 4
+space_col_align : => second->orig_line is 4
+space_col_align : => first->Text() is '('
+space_col_align : => second->Text() is 'pN'
+space_col_align : => first->orig_col is 9
+space_col_align : => second->orig_col is 10
+space_col_align : => first->Len() is 1
+space_col_align : => coldiff is 1
+space_col_align : first->orig_line is 4, orig_col is 10, [WORD/NONE], Text() 'pN' <==>
+space_col_align : second->orig_line is 4, orig_col is 12 [FPAREN_CLOSE/FUNC_CTOR_VAR], Text() ')', [CallStack]
+do_space : orig_line is 4, orig_col is 10, first->Text() 'pN', type is WORD
+do_space : first->orig_line is 4, first->orig_col is 10, first->Text() is 'pN', [WORD/NONE] <===>
+ second->orig_line is 4, second->orig_col is 12, second->Text() is ')', [FPAREN_CLOSE/FUNC_CTOR_VAR] : rule sp_inside_fparen[ ]
+space_col_align : av is ignore
+space_col_align : Len is 2
+space_col_align : => coldiff is 2
+space_col_align : => av is IGNORE
+space_col_align : => first->orig_line is 4
+space_col_align : => second->orig_line is 4
+space_col_align : => first->Text() is 'pN'
+space_col_align : => second->Text() is ')'
+space_col_align : => first->orig_col is 10
+space_col_align : => second->orig_col is 12
+space_col_align : => first->Len() is 2
+space_col_align : => coldiff is 2
+space_col_align : first->orig_line is 4, orig_col is 12, [FPAREN_CLOSE/FUNC_CTOR_VAR], Text() ')' <==>
+space_col_align : second->orig_line is 4, orig_col is 13 [COMMA/NONE], Text() ',', [CallStack]
+do_space : orig_line is 4, orig_col is 12, first->Text() ')', type is FPAREN_CLOSE
+do_space : first->orig_line is 4, first->orig_col is 12, first->Text() is ')', [FPAREN_CLOSE/FUNC_CTOR_VAR] <===>
+ second->orig_line is 4, second->orig_col is 13, second->Text() is ',', [COMMA/NONE] : rule sp_before_comma[ ]
+space_col_align : av is remove
+space_col_align : Len is 1
+space_col_align : => coldiff is 1
+space_col_align : => av is REMOVE
+space_col_align : => coldiff is 1
+space_col_align : first->orig_line is 4, orig_col is 13, [COMMA/NONE], Text() ',' <==>
+space_col_align : second->orig_line is 4, orig_col is 14 [NEWLINE/NONE], Text() '', [CallStack]
+do_space : orig_line is 4, orig_col is 13, first->Text() ',', type is COMMA
+space_col_align : av is remove
+space_col_align : Len is 1
+space_col_align : => coldiff is 1
+space_col_align : => av is REMOVE
+space_col_align : => coldiff is 1
+space_col_align : first->orig_line is 5, orig_col is 1, [FUNC_CTOR_VAR/NONE], Text() 'nTelIndex' <==>
+space_col_align : second->orig_line is 5, orig_col is 10 [FPAREN_OPEN/FUNC_CTOR_VAR], Text() '(', [CallStack]
+do_space : orig_line is 5, orig_col is 1, first->Text() 'nTelIndex', type is FUNC_CTOR_VAR
+do_space : first->orig_line is 5, first->orig_col is 1, first->Text() is 'nTelIndex', [FUNC_CTOR_VAR/NONE] <===>
+ second->orig_line is 5, second->orig_col is 10, second->Text() is '(', [FPAREN_OPEN/FUNC_CTOR_VAR] : rule sp_func_call_paren[ ]
+space_col_align : av is ignore
+space_col_align : Len is 9
+space_col_align : => coldiff is 9
+space_col_align : => av is IGNORE
+space_col_align : => first->orig_line is 5
+space_col_align : => second->orig_line is 5
+space_col_align : => first->Text() is 'nTelIndex'
+space_col_align : => second->Text() is '('
+space_col_align : => first->orig_col is 1
+space_col_align : => second->orig_col is 10
+space_col_align : => first->Len() is 9
+space_col_align : => coldiff is 9
+space_col_align : first->orig_line is 5, orig_col is 10, [FPAREN_OPEN/FUNC_CTOR_VAR], Text() '(' <==>
+space_col_align : second->orig_line is 5, orig_col is 11 [WORD/NONE], Text() 'n', [CallStack]
+do_space : orig_line is 5, orig_col is 10, first->Text() '(', type is FPAREN_OPEN
+do_space : first->orig_line is 5, first->orig_col is 10, first->Text() is '(', [FPAREN_OPEN/FUNC_CTOR_VAR] <===>
+ second->orig_line is 5, second->orig_col is 11, second->Text() is 'n', [WORD/NONE] : rule sp_inside_fparen[ ]
+space_col_align : av is ignore
+space_col_align : Len is 1
+space_col_align : => coldiff is 1
+space_col_align : => av is IGNORE
+space_col_align : => first->orig_line is 5
+space_col_align : => second->orig_line is 5
+space_col_align : => first->Text() is '('
+space_col_align : => second->Text() is 'n'
+space_col_align : => first->orig_col is 10
+space_col_align : => second->orig_col is 11
+space_col_align : => first->Len() is 1
+space_col_align : => coldiff is 1
+space_col_align : first->orig_line is 5, orig_col is 11, [WORD/NONE], Text() 'n' <==>
+space_col_align : second->orig_line is 5, orig_col is 12 [FPAREN_CLOSE/FUNC_CTOR_VAR], Text() ')', [CallStack]
+do_space : orig_line is 5, orig_col is 11, first->Text() 'n', type is WORD
+do_space : first->orig_line is 5, first->orig_col is 11, first->Text() is 'n', [WORD/NONE] <===>
+ second->orig_line is 5, second->orig_col is 12, second->Text() is ')', [FPAREN_CLOSE/FUNC_CTOR_VAR] : rule sp_inside_fparen[ ]
+space_col_align : av is ignore
+space_col_align : Len is 1
+space_col_align : => coldiff is 1
+space_col_align : => av is IGNORE
+space_col_align : => first->orig_line is 5
+space_col_align : => second->orig_line is 5
+space_col_align : => first->Text() is 'n'
+space_col_align : => second->Text() is ')'
+space_col_align : => first->orig_col is 11
+space_col_align : => second->orig_col is 12
+space_col_align : => first->Len() is 1
+space_col_align : => coldiff is 1
+space_col_align : first->orig_line is 5, orig_col is 12, [FPAREN_CLOSE/FUNC_CTOR_VAR], Text() ')' <==>
+space_col_align : second->orig_line is 5, orig_col is 13 [NEWLINE/NONE], Text() '', [CallStack]
+do_space : orig_line is 5, orig_col is 12, first->Text() ')', type is FPAREN_CLOSE
+space_col_align : av is remove
+space_col_align : Len is 1
+space_col_align : => coldiff is 1
+space_col_align : => av is REMOVE
+space_col_align : => coldiff is 1
+space_col_align : first->orig_line is 6, orig_col is 1, [BRACE_OPEN/FUNC_CLASS_DEF], Text() '{' <==>
+space_col_align : second->orig_line is 6, orig_col is 2 [NEWLINE/NONE], Text() '', [CallStack]
+do_space : orig_line is 6, orig_col is 1, first->Text() '{', type is BRACE_OPEN
+space_col_align : av is remove
+space_col_align : Len is 1
+space_col_align : => coldiff is 1
+space_col_align : => av is REMOVE
+space_col_align : => coldiff is 1
+space_col_align : first->orig_line is 7, orig_col is 1, [BRACE_CLOSE/FUNC_CLASS_DEF], Text() '}' <==>
+space_col_align : second->orig_line is 7, orig_col is 2 [NEWLINE/NONE], Text() '', [CallStack]
+do_space : orig_line is 7, orig_col is 1, first->Text() '}', type is BRACE_CLOSE
+space_col_align : av is remove
+space_col_align : Len is 1
+space_col_align : => coldiff is 1
+space_col_align : => av is REMOVE
+space_col_align : => coldiff is 1
+space_col_align : first->orig_line is 9, orig_col is 1, [DESTRUCTOR/FUNC_CLASS_DEF], Text() '~' <==>
+space_col_align : second->orig_line is 9, orig_col is 2 [FUNC_CLASS_DEF/DESTRUCTOR], Text() 'TelegramIndex', [CallStack]
+do_space : orig_line is 9, orig_col is 1, first->Text() '~', type is DESTRUCTOR
+do_space : first->orig_line is 9, first->orig_col is 1, first->Text() is '~', [DESTRUCTOR/FUNC_CLASS_DEF] <===>
+ second->orig_line is 9, second->orig_col is 2, second->Text() is 'TelegramIndex', [FUNC_CLASS_DEF/DESTRUCTOR] : rule REMOVE[ ]
+space_col_align : av is remove
+space_col_align : Len is 1
+space_col_align : => coldiff is 1
+space_col_align : => av is REMOVE
+space_col_align : => coldiff is 1
+space_col_align : first->orig_line is 9, orig_col is 2, [FUNC_CLASS_DEF/DESTRUCTOR], Text() 'TelegramIndex' <==>
+space_col_align : second->orig_line is 9, orig_col is 15 [FPAREN_OPEN/FUNC_CLASS_DEF], Text() '(', [CallStack]
+do_space : orig_line is 9, orig_col is 2, first->Text() 'TelegramIndex', type is FUNC_CLASS_DEF
+do_space : first->orig_line is 9, first->orig_col is 2, first->Text() is 'TelegramIndex', [FUNC_CLASS_DEF/DESTRUCTOR] <===>
+ second->orig_line is 9, second->orig_col is 15, second->Text() is '(', [FPAREN_OPEN/FUNC_CLASS_DEF] : rule sp_func_class_paren[ ]
+space_col_align : av is ignore
+space_col_align : Len is 13
+space_col_align : => coldiff is 13
+space_col_align : => av is IGNORE
+space_col_align : => first->orig_line is 9
+space_col_align : => second->orig_line is 9
+space_col_align : => first->Text() is 'TelegramIndex'
+space_col_align : => second->Text() is '('
+space_col_align : => first->orig_col is 2
+space_col_align : => second->orig_col is 15
+space_col_align : => first->Len() is 13
+space_col_align : => coldiff is 13
+space_col_align : first->orig_line is 9, orig_col is 15, [FPAREN_OPEN/FUNC_CLASS_DEF], Text() '(' <==>
+space_col_align : second->orig_line is 9, orig_col is 16 [FPAREN_CLOSE/FUNC_CLASS_DEF], Text() ')', [CallStack]
+do_space : orig_line is 9, orig_col is 15, first->Text() '(', type is FPAREN_OPEN
+do_space : first->orig_line is 9, first->orig_col is 15, first->Text() is '(', [FPAREN_OPEN/FUNC_CLASS_DEF] <===>
+ second->orig_line is 9, second->orig_col is 16, second->Text() is ')', [FPAREN_CLOSE/FUNC_CLASS_DEF] : rule sp_inside_fparens[ ]
+space_col_align : av is ignore
+space_col_align : Len is 1
+space_col_align : => coldiff is 1
+space_col_align : => av is IGNORE
+space_col_align : => first->orig_line is 9
+space_col_align : => second->orig_line is 9
+space_col_align : => first->Text() is '('
+space_col_align : => second->Text() is ')'
+space_col_align : => first->orig_col is 15
+space_col_align : => second->orig_col is 16
+space_col_align : => first->Len() is 1
+space_col_align : => coldiff is 1
+space_col_align : first->orig_line is 9, orig_col is 16, [FPAREN_CLOSE/FUNC_CLASS_DEF], Text() ')' <==>
+space_col_align : second->orig_line is 9, orig_col is 17 [NEWLINE/NONE], Text() '', [CallStack]
+do_space : orig_line is 9, orig_col is 16, first->Text() ')', type is FPAREN_CLOSE
+space_col_align : av is remove
+space_col_align : Len is 1
+space_col_align : => coldiff is 1
+space_col_align : => av is REMOVE
+space_col_align : => coldiff is 1
+space_col_align : first->orig_line is 10, orig_col is 1, [BRACE_OPEN/FUNC_CLASS_DEF], Text() '{' <==>
+space_col_align : second->orig_line is 10, orig_col is 2 [NEWLINE/NONE], Text() '', [CallStack]
+do_space : orig_line is 10, orig_col is 1, first->Text() '{', type is BRACE_OPEN
+space_col_align : av is remove
+space_col_align : Len is 1
+space_col_align : => coldiff is 1
+space_col_align : => av is REMOVE
+space_col_align : => coldiff is 1
+space_col_align : first->orig_line is 11, orig_col is 1, [BRACE_CLOSE/FUNC_CLASS_DEF], Text() '}' <==>
+space_col_align : second->orig_line is 11, orig_col is 2 [NEWLINE/NONE], Text() '', [CallStack]
+do_space : orig_line is 11, orig_col is 1, first->Text() '}', type is BRACE_CLOSE
+space_col_align : av is remove
+space_col_align : Len is 1
+space_col_align : => coldiff is 1
+space_col_align : => av is REMOVE
+space_col_align : => coldiff is 1
+space_col_align : first->orig_line is 13, orig_col is 1, [QUALIFIER/NONE], Text() 'const' <==>
+space_col_align : second->orig_line is 13, orig_col is 7 [TYPE/NONE], Text() 'char', [CallStack]
+do_space : orig_line is 13, orig_col is 1, first->Text() 'const', type is QUALIFIER
+do_space : first->orig_line is 13, first->orig_col is 1, first->Text() is 'const', [QUALIFIER/NONE] <===>
+ second->orig_line is 13, second->orig_col is 7, second->Text() is 'char', [TYPE/NONE] : rule sp_after_type[ ]
+ensure_force_space : <force between 'const' and 'char'>space_col_align : av is force
+space_col_align : Len is 5
+space_col_align : => coldiff is 5
+space_col_align : => av is FORCE
+space_col_align : => coldiff is 6
+space_col_align : first->orig_line is 13, orig_col is 7, [TYPE/NONE], Text() 'char' <==>
+space_col_align : second->orig_line is 13, orig_col is 11 [PTR_TYPE/NONE], Text() '*', [CallStack]
+do_space : orig_line is 13, orig_col is 7, first->Text() 'char', type is TYPE
+do_space : first->orig_line is 13, first->orig_col is 7, first->Text() is 'char', [TYPE/NONE] <===>
+ second->orig_line is 13, second->orig_col is 11, second->Text() is '*', [PTR_TYPE/NONE] : rule IGNORE[ ]
+space_col_align : av is ignore
+space_col_align : Len is 4
+space_col_align : => coldiff is 4
+space_col_align : => av is IGNORE
+space_col_align : => first->orig_line is 13
+space_col_align : => second->orig_line is 13
+space_col_align : => first->Text() is 'char'
+space_col_align : => second->Text() is '*'
+space_col_align : => first->orig_col is 7
+space_col_align : => second->orig_col is 11
+space_col_align : => first->Len() is 4
+space_col_align : => coldiff is 4
+space_col_align : first->orig_line is 13, orig_col is 11, [PTR_TYPE/NONE], Text() '*' <==>
+space_col_align : second->orig_line is 13, orig_col is 13 [QUALIFIER/NONE], Text() 'const', [CallStack]
+do_space : orig_line is 13, orig_col is 11, first->Text() '*', type is PTR_TYPE
+do_space : first->orig_line is 13, first->orig_col is 11, first->Text() is '*', [PTR_TYPE/NONE] <===>
+ second->orig_line is 13, second->orig_col is 13, second->Text() is 'const', [QUALIFIER/NONE] : rule sp_after_ptr_star_qualifier[ ]
+space_col_align : av is ignore
+space_col_align : Len is 1
+space_col_align : => coldiff is 1
+space_col_align : => av is IGNORE
+space_col_align : => first->orig_line is 13
+space_col_align : => second->orig_line is 13
+space_col_align : => first->Text() is '*'
+space_col_align : => second->Text() is 'const'
+space_col_align : => first->orig_col is 11
+space_col_align : => second->orig_col is 13
+space_col_align : => first->Len() is 1
+space_col_align : => coldiff is 2
+space_col_align : first->orig_line is 13, orig_col is 13, [QUALIFIER/NONE], Text() 'const' <==>
+space_col_align : second->orig_line is 13, orig_col is 19 [WORD/NONE], Text() 'pTelName', [CallStack]
+do_space : orig_line is 13, orig_col is 13, first->Text() 'const', type is QUALIFIER
+do_space : first->orig_line is 13, first->orig_col is 13, first->Text() is 'const', [QUALIFIER/NONE] <===>
+ second->orig_line is 13, second->orig_col is 19, second->Text() is 'pTelName', [WORD/NONE] : rule sp_after_type[ ]
+ensure_force_space : <force between 'const' and 'pTelName'>space_col_align : av is force
+space_col_align : Len is 5
+space_col_align : => coldiff is 5
+space_col_align : => av is FORCE
+space_col_align : => coldiff is 6
+space_col_align : first->orig_line is 13, orig_col is 19, [WORD/NONE], Text() 'pTelName' <==>
+space_col_align : second->orig_line is 13, orig_col is 27 [SEMICOLON/NONE], Text() ';', [CallStack]
+do_space : orig_line is 13, orig_col is 19, first->Text() 'pTelName', type is WORD
+do_space : first->orig_line is 13, first->orig_col is 19, first->Text() is 'pTelName', [WORD/NONE] <===>
+ second->orig_line is 13, second->orig_col is 27, second->Text() is ';', [SEMICOLON/NONE] : rule sp_before_semi[ ]
+space_col_align : av is remove
+space_col_align : Len is 8
+space_col_align : => coldiff is 8
+space_col_align : => av is REMOVE
+space_col_align : => coldiff is 8
+space_col_align : first->orig_line is 13, orig_col is 27, [SEMICOLON/NONE], Text() ';' <==>
+space_col_align : second->orig_line is 13, orig_col is 28 [NEWLINE/NONE], Text() '', [CallStack]
+do_space : orig_line is 13, orig_col is 27, first->Text() ';', type is SEMICOLON
+space_col_align : av is remove
+space_col_align : Len is 1
+space_col_align : => coldiff is 1
+space_col_align : => av is REMOVE
+space_col_align : => coldiff is 1
+space_col_align : first->orig_line is 14, orig_col is 1, [TYPE/NONE], Text() 'unsigned' <==>
+space_col_align : second->orig_line is 14, orig_col is 10 [TYPE/NONE], Text() 'long', [CallStack]
+do_space : orig_line is 14, orig_col is 1, first->Text() 'unsigned', type is TYPE
+do_space : first->orig_line is 14, first->orig_col is 1, first->Text() is 'unsigned', [TYPE/NONE] <===>
+ second->orig_line is 14, second->orig_col is 10, second->Text() is 'long', [TYPE/NONE] : rule sp_after_type[ ]
+ensure_force_space : <force between 'unsigned' and 'long'>space_col_align : av is force
+space_col_align : Len is 8
+space_col_align : => coldiff is 8
+space_col_align : => av is FORCE
+space_col_align : => coldiff is 9
+space_col_align : first->orig_line is 14, orig_col is 10, [TYPE/NONE], Text() 'long' <==>
+space_col_align : second->orig_line is 14, orig_col is 15 [WORD/NONE], Text() 'nTelIndex', [CallStack]
+do_space : orig_line is 14, orig_col is 10, first->Text() 'long', type is TYPE
+do_space : first->orig_line is 14, first->orig_col is 10, first->Text() is 'long', [TYPE/NONE] <===>
+ second->orig_line is 14, second->orig_col is 15, second->Text() is 'nTelIndex', [WORD/NONE] : rule sp_after_type[ ]
+ensure_force_space : <force between 'long' and 'nTelIndex'>space_col_align : av is force
+space_col_align : Len is 4
+space_col_align : => coldiff is 4
+space_col_align : => av is FORCE
+space_col_align : => coldiff is 5
+space_col_align : first->orig_line is 14, orig_col is 15, [WORD/NONE], Text() 'nTelIndex' <==>
+space_col_align : second->orig_line is 14, orig_col is 24 [SEMICOLON/NONE], Text() ';', [CallStack]
+do_space : orig_line is 14, orig_col is 15, first->Text() 'nTelIndex', type is WORD
+do_space : first->orig_line is 14, first->orig_col is 15, first->Text() is 'nTelIndex', [WORD/NONE] <===>
+ second->orig_line is 14, second->orig_col is 24, second->Text() is ';', [SEMICOLON/NONE] : rule sp_before_semi[ ]
+space_col_align : av is remove
+space_col_align : Len is 9
+space_col_align : => coldiff is 9
+space_col_align : => av is REMOVE
+space_col_align : => coldiff is 9
+space_col_align : first->orig_line is 14, orig_col is 24, [SEMICOLON/NONE], Text() ';' <==>
+space_col_align : second->orig_line is 14, orig_col is 25 [NEWLINE/NONE], Text() '', [CallStack]
+do_space : orig_line is 14, orig_col is 24, first->Text() ';', type is SEMICOLON
+space_col_align : av is remove
+space_col_align : Len is 1
+space_col_align : => coldiff is 1
+space_col_align : => av is REMOVE
+space_col_align : => coldiff is 1
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/9.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/9.txt
index 98afe921..98afe921 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/9.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/9.txt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/92.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/92.txt
new file mode 100644
index 00000000..95a7ecd5
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/92.txt
@@ -0,0 +1,196 @@
+parse_word : orig_line is 1, orig_col is 1, pc->Text() 'struct'
+ pc->type is NONE, pc->parent_type is NONE => *type is WORD, *parent_type is NONE
+parse_word : orig_line is 1, orig_col is 1, pc->Text() 'struct'
+ pc->type is WORD, pc->parent_type is NONE => *type is STRUCT, *parent_type is NONE
+parse_whitespace : orig_line is 1, orig_col is 7, pc->Text() ''
+ pc->type is NONE, pc->parent_type is NONE => *type is WHITESPACE, *parent_type is NONE
+parse_word : orig_line is 1, orig_col is 8, pc->Text() 'TelegramIndex'
+ pc->type is NONE, pc->parent_type is NONE => *type is WORD, *parent_type is NONE
+parse_whitespace : orig_line is 1, orig_col is 21, pc->Text() <Newline>
+ pc->type is NONE, pc->parent_type is NONE => *type is NEWLINE, *parent_type is NONE
+parse_next : orig_line is 2, orig_col is 1, pc->Text() '{'
+ pc->type is NONE, pc->parent_type is NONE => *type is BRACE_OPEN, *parent_type is NONE
+parse_whitespace : orig_line is 2, orig_col is 2, pc->Text() <Newline>
+ pc->type is NONE, pc->parent_type is NONE => *type is NEWLINE, *parent_type is NONE
+parse_word : orig_line is 3, orig_col is 1, pc->Text() 'TelegramIndex'
+ pc->type is NONE, pc->parent_type is NONE => *type is WORD, *parent_type is NONE
+parse_next : orig_line is 3, orig_col is 14, pc->Text() '('
+ pc->type is NONE, pc->parent_type is NONE => *type is PAREN_OPEN, *parent_type is NONE
+parse_word : orig_line is 3, orig_col is 15, pc->Text() 'const'
+ pc->type is NONE, pc->parent_type is NONE => *type is WORD, *parent_type is NONE
+parse_word : orig_line is 3, orig_col is 15, pc->Text() 'const'
+ pc->type is WORD, pc->parent_type is NONE => *type is QUALIFIER, *parent_type is NONE
+parse_whitespace : orig_line is 3, orig_col is 20, pc->Text() ''
+ pc->type is NONE, pc->parent_type is NONE => *type is WHITESPACE, *parent_type is NONE
+parse_word : orig_line is 3, orig_col is 21, pc->Text() 'char'
+ pc->type is NONE, pc->parent_type is NONE => *type is WORD, *parent_type is NONE
+parse_word : orig_line is 3, orig_col is 21, pc->Text() 'char'
+ pc->type is WORD, pc->parent_type is NONE => *type is TYPE, *parent_type is NONE
+parse_next : orig_line is 3, orig_col is 25, pc->Text() '*'
+ pc->type is NONE, pc->parent_type is NONE => *type is STAR, *parent_type is NONE
+parse_whitespace : orig_line is 3, orig_col is 26, pc->Text() ''
+ pc->type is NONE, pc->parent_type is NONE => *type is WHITESPACE, *parent_type is NONE
+parse_word : orig_line is 3, orig_col is 27, pc->Text() 'pN'
+ pc->type is NONE, pc->parent_type is NONE => *type is WORD, *parent_type is NONE
+parse_next : orig_line is 3, orig_col is 29, pc->Text() ','
+ pc->type is NONE, pc->parent_type is NONE => *type is COMMA, *parent_type is NONE
+parse_whitespace : orig_line is 3, orig_col is 30, pc->Text() ''
+ pc->type is NONE, pc->parent_type is NONE => *type is WHITESPACE, *parent_type is NONE
+parse_word : orig_line is 3, orig_col is 31, pc->Text() 'unsigned'
+ pc->type is NONE, pc->parent_type is NONE => *type is WORD, *parent_type is NONE
+parse_word : orig_line is 3, orig_col is 31, pc->Text() 'unsigned'
+ pc->type is WORD, pc->parent_type is NONE => *type is TYPE, *parent_type is NONE
+parse_whitespace : orig_line is 3, orig_col is 39, pc->Text() ''
+ pc->type is NONE, pc->parent_type is NONE => *type is WHITESPACE, *parent_type is NONE
+parse_word : orig_line is 3, orig_col is 40, pc->Text() 'long'
+ pc->type is NONE, pc->parent_type is NONE => *type is WORD, *parent_type is NONE
+parse_word : orig_line is 3, orig_col is 40, pc->Text() 'long'
+ pc->type is WORD, pc->parent_type is NONE => *type is TYPE, *parent_type is NONE
+parse_whitespace : orig_line is 3, orig_col is 44, pc->Text() ''
+ pc->type is NONE, pc->parent_type is NONE => *type is WHITESPACE, *parent_type is NONE
+parse_word : orig_line is 3, orig_col is 45, pc->Text() 'nI'
+ pc->type is NONE, pc->parent_type is NONE => *type is WORD, *parent_type is NONE
+parse_next : orig_line is 3, orig_col is 47, pc->Text() ')'
+ pc->type is NONE, pc->parent_type is NONE => *type is PAREN_CLOSE, *parent_type is NONE
+parse_whitespace : orig_line is 3, orig_col is 48, pc->Text() ''
+ pc->type is NONE, pc->parent_type is NONE => *type is WHITESPACE, *parent_type is NONE
+parse_next : orig_line is 3, orig_col is 49, pc->Text() ':'
+ pc->type is NONE, pc->parent_type is NONE => *type is COLON, *parent_type is NONE
+parse_whitespace : orig_line is 3, orig_col is 50, pc->Text() <Newline>
+ pc->type is NONE, pc->parent_type is NONE => *type is NEWLINE, *parent_type is NONE
+parse_word : orig_line is 4, orig_col is 1, pc->Text() 'pTelName'
+ pc->type is NONE, pc->parent_type is NONE => *type is WORD, *parent_type is NONE
+parse_next : orig_line is 4, orig_col is 9, pc->Text() '('
+ pc->type is NONE, pc->parent_type is NONE => *type is PAREN_OPEN, *parent_type is NONE
+parse_word : orig_line is 4, orig_col is 10, pc->Text() 'pN'
+ pc->type is NONE, pc->parent_type is NONE => *type is WORD, *parent_type is NONE
+parse_next : orig_line is 4, orig_col is 12, pc->Text() ')'
+ pc->type is NONE, pc->parent_type is NONE => *type is PAREN_CLOSE, *parent_type is NONE
+parse_next : orig_line is 4, orig_col is 13, pc->Text() ','
+ pc->type is NONE, pc->parent_type is NONE => *type is COMMA, *parent_type is NONE
+parse_whitespace : orig_line is 4, orig_col is 14, pc->Text() <Newline>
+ pc->type is NONE, pc->parent_type is NONE => *type is NEWLINE, *parent_type is NONE
+parse_word : orig_line is 5, orig_col is 1, pc->Text() 'nTelIndex'
+ pc->type is NONE, pc->parent_type is NONE => *type is WORD, *parent_type is NONE
+parse_next : orig_line is 5, orig_col is 10, pc->Text() '('
+ pc->type is NONE, pc->parent_type is NONE => *type is PAREN_OPEN, *parent_type is NONE
+parse_word : orig_line is 5, orig_col is 11, pc->Text() 'n'
+ pc->type is NONE, pc->parent_type is NONE => *type is WORD, *parent_type is NONE
+parse_next : orig_line is 5, orig_col is 12, pc->Text() ')'
+ pc->type is NONE, pc->parent_type is NONE => *type is PAREN_CLOSE, *parent_type is NONE
+parse_whitespace : orig_line is 5, orig_col is 13, pc->Text() <Newline>
+ pc->type is NONE, pc->parent_type is NONE => *type is NEWLINE, *parent_type is NONE
+parse_next : orig_line is 6, orig_col is 1, pc->Text() '{'
+ pc->type is NONE, pc->parent_type is NONE => *type is BRACE_OPEN, *parent_type is NONE
+parse_whitespace : orig_line is 6, orig_col is 2, pc->Text() <Newline>
+ pc->type is NONE, pc->parent_type is NONE => *type is NEWLINE, *parent_type is NONE
+parse_next : orig_line is 7, orig_col is 1, pc->Text() '}'
+ pc->type is NONE, pc->parent_type is NONE => *type is BRACE_CLOSE, *parent_type is NONE
+parse_whitespace : orig_line is 7, orig_col is 2, pc->Text() <Newline>
+ pc->type is NONE, pc->parent_type is NONE => *type is NEWLINE, *parent_type is NONE
+parse_next : orig_line is 9, orig_col is 1, pc->Text() '~'
+ pc->type is NONE, pc->parent_type is NONE => *type is INV, *parent_type is NONE
+parse_word : orig_line is 9, orig_col is 2, pc->Text() 'TelegramIndex'
+ pc->type is NONE, pc->parent_type is NONE => *type is WORD, *parent_type is NONE
+parse_next : orig_line is 9, orig_col is 15, pc->Text() '('
+ pc->type is NONE, pc->parent_type is NONE => *type is PAREN_OPEN, *parent_type is NONE
+parse_next : orig_line is 9, orig_col is 16, pc->Text() ')'
+ pc->type is NONE, pc->parent_type is NONE => *type is PAREN_CLOSE, *parent_type is NONE
+parse_whitespace : orig_line is 9, orig_col is 17, pc->Text() <Newline>
+ pc->type is NONE, pc->parent_type is NONE => *type is NEWLINE, *parent_type is NONE
+parse_next : orig_line is 10, orig_col is 1, pc->Text() '{'
+ pc->type is NONE, pc->parent_type is NONE => *type is BRACE_OPEN, *parent_type is NONE
+parse_whitespace : orig_line is 10, orig_col is 2, pc->Text() <Newline>
+ pc->type is NONE, pc->parent_type is NONE => *type is NEWLINE, *parent_type is NONE
+parse_next : orig_line is 11, orig_col is 1, pc->Text() '}'
+ pc->type is NONE, pc->parent_type is NONE => *type is BRACE_CLOSE, *parent_type is NONE
+parse_whitespace : orig_line is 11, orig_col is 2, pc->Text() <Newline>
+ pc->type is NONE, pc->parent_type is NONE => *type is NEWLINE, *parent_type is NONE
+parse_word : orig_line is 13, orig_col is 1, pc->Text() 'const'
+ pc->type is NONE, pc->parent_type is NONE => *type is WORD, *parent_type is NONE
+parse_word : orig_line is 13, orig_col is 1, pc->Text() 'const'
+ pc->type is WORD, pc->parent_type is NONE => *type is QUALIFIER, *parent_type is NONE
+parse_whitespace : orig_line is 13, orig_col is 6, pc->Text() ''
+ pc->type is NONE, pc->parent_type is NONE => *type is WHITESPACE, *parent_type is NONE
+parse_word : orig_line is 13, orig_col is 7, pc->Text() 'char'
+ pc->type is NONE, pc->parent_type is NONE => *type is WORD, *parent_type is NONE
+parse_word : orig_line is 13, orig_col is 7, pc->Text() 'char'
+ pc->type is WORD, pc->parent_type is NONE => *type is TYPE, *parent_type is NONE
+parse_next : orig_line is 13, orig_col is 11, pc->Text() '*'
+ pc->type is NONE, pc->parent_type is NONE => *type is STAR, *parent_type is NONE
+parse_whitespace : orig_line is 13, orig_col is 12, pc->Text() ''
+ pc->type is NONE, pc->parent_type is NONE => *type is WHITESPACE, *parent_type is NONE
+parse_word : orig_line is 13, orig_col is 13, pc->Text() 'const'
+ pc->type is NONE, pc->parent_type is NONE => *type is WORD, *parent_type is NONE
+parse_word : orig_line is 13, orig_col is 13, pc->Text() 'const'
+ pc->type is WORD, pc->parent_type is NONE => *type is QUALIFIER, *parent_type is NONE
+parse_whitespace : orig_line is 13, orig_col is 18, pc->Text() ''
+ pc->type is NONE, pc->parent_type is NONE => *type is WHITESPACE, *parent_type is NONE
+parse_word : orig_line is 13, orig_col is 19, pc->Text() 'pTelName'
+ pc->type is NONE, pc->parent_type is NONE => *type is WORD, *parent_type is NONE
+parse_next : orig_line is 13, orig_col is 27, pc->Text() ';'
+ pc->type is NONE, pc->parent_type is NONE => *type is SEMICOLON, *parent_type is NONE
+parse_whitespace : orig_line is 13, orig_col is 28, pc->Text() <Newline>
+ pc->type is NONE, pc->parent_type is NONE => *type is NEWLINE, *parent_type is NONE
+parse_word : orig_line is 14, orig_col is 1, pc->Text() 'unsigned'
+ pc->type is NONE, pc->parent_type is NONE => *type is WORD, *parent_type is NONE
+parse_word : orig_line is 14, orig_col is 1, pc->Text() 'unsigned'
+ pc->type is WORD, pc->parent_type is NONE => *type is TYPE, *parent_type is NONE
+parse_whitespace : orig_line is 14, orig_col is 9, pc->Text() ''
+ pc->type is NONE, pc->parent_type is NONE => *type is WHITESPACE, *parent_type is NONE
+parse_word : orig_line is 14, orig_col is 10, pc->Text() 'long'
+ pc->type is NONE, pc->parent_type is NONE => *type is WORD, *parent_type is NONE
+parse_word : orig_line is 14, orig_col is 10, pc->Text() 'long'
+ pc->type is WORD, pc->parent_type is NONE => *type is TYPE, *parent_type is NONE
+parse_whitespace : orig_line is 14, orig_col is 14, pc->Text() ''
+ pc->type is NONE, pc->parent_type is NONE => *type is WHITESPACE, *parent_type is NONE
+parse_word : orig_line is 14, orig_col is 15, pc->Text() 'nTelIndex'
+ pc->type is NONE, pc->parent_type is NONE => *type is WORD, *parent_type is NONE
+parse_next : orig_line is 14, orig_col is 24, pc->Text() ';'
+ pc->type is NONE, pc->parent_type is NONE => *type is SEMICOLON, *parent_type is NONE
+parse_whitespace : orig_line is 14, orig_col is 25, pc->Text() <Newline>
+ pc->type is NONE, pc->parent_type is NONE => *type is NEWLINE, *parent_type is NONE
+parse_next : orig_line is 15, orig_col is 1, pc->Text() '}'
+ pc->type is NONE, pc->parent_type is NONE => *type is BRACE_CLOSE, *parent_type is NONE
+parse_next : orig_line is 15, orig_col is 2, pc->Text() ';'
+ pc->type is NONE, pc->parent_type is NONE => *type is SEMICOLON, *parent_type is NONE
+parse_whitespace : orig_line is 15, orig_col is 3, pc->Text() <Newline>
+ pc->type is NONE, pc->parent_type is NONE => *type is NEWLINE, *parent_type is NONE
+tokenize_cleanup : orig_line is 1, orig_col is 8, pc->Text() 'TelegramIndex'
+ pc->type is WORD, pc->parent_type is NONE => *type is TYPE, *parent_type is NONE
+tokenize_cleanup : orig_line is 3, orig_col is 25, pc->Text() '*'
+ pc->type is STAR, pc->parent_type is NONE => *type is PTR_TYPE, *parent_type is NONE
+tokenize_cleanup : orig_line is 13, orig_col is 11, pc->Text() '*'
+ pc->type is STAR, pc->parent_type is NONE => *type is PTR_TYPE, *parent_type is NONE
+try_find_end_chunk : orig_line is 1, orig_col is 8, pc->Text() 'TelegramIndex'
+ pc->type is TYPE, pc->parent_type is NONE => *type is WORD, *parent_type is NONE
+make_type : orig_line is 1, orig_col is 8, pc->Text() 'TelegramIndex'
+ pc->type is WORD, pc->parent_type is NONE => *type is TYPE, *parent_type is NONE
+mark_constructors : orig_line is 3, orig_col is 1, pc->Text() 'TelegramIndex'
+ pc->type is WORD, pc->parent_type is NONE => *type is FUNC_CLASS_DEF, *parent_type is NONE
+flag_parens : orig_line is 3, orig_col is 14, pc->Text() '('
+ pc->type is PAREN_OPEN, pc->parent_type is NONE => *type is FPAREN_OPEN, *parent_type is NONE
+flag_parens : orig_line is 3, orig_col is 47, pc->Text() ')'
+ pc->type is PAREN_CLOSE, pc->parent_type is NONE => *type is FPAREN_CLOSE, *parent_type is NONE
+mark_cpp_constructor : orig_line is 3, orig_col is 49, pc->Text() ':'
+ pc->type is COLON, pc->parent_type is NONE => *type is CONSTR_COLON, *parent_type is NONE
+mark_cpp_constructor : orig_line is 4, orig_col is 1, pc->Text() 'pTelName'
+ pc->type is WORD, pc->parent_type is NONE => *type is FUNC_CTOR_VAR, *parent_type is NONE
+flag_parens : orig_line is 4, orig_col is 9, pc->Text() '('
+ pc->type is PAREN_OPEN, pc->parent_type is NONE => *type is FPAREN_OPEN, *parent_type is NONE
+flag_parens : orig_line is 4, orig_col is 12, pc->Text() ')'
+ pc->type is PAREN_CLOSE, pc->parent_type is NONE => *type is FPAREN_CLOSE, *parent_type is NONE
+mark_cpp_constructor : orig_line is 5, orig_col is 1, pc->Text() 'nTelIndex'
+ pc->type is WORD, pc->parent_type is NONE => *type is FUNC_CTOR_VAR, *parent_type is NONE
+flag_parens : orig_line is 5, orig_col is 10, pc->Text() '('
+ pc->type is PAREN_OPEN, pc->parent_type is NONE => *type is FPAREN_OPEN, *parent_type is NONE
+flag_parens : orig_line is 5, orig_col is 12, pc->Text() ')'
+ pc->type is PAREN_CLOSE, pc->parent_type is NONE => *type is FPAREN_CLOSE, *parent_type is NONE
+mark_constructors : orig_line is 9, orig_col is 2, pc->Text() 'TelegramIndex'
+ pc->type is WORD, pc->parent_type is NONE => *type is FUNC_CLASS_DEF, *parent_type is NONE
+mark_cpp_constructor : orig_line is 9, orig_col is 1, pc->Text() '~'
+ pc->type is INV, pc->parent_type is NONE => *type is DESTRUCTOR, *parent_type is NONE
+flag_parens : orig_line is 9, orig_col is 15, pc->Text() '('
+ pc->type is PAREN_OPEN, pc->parent_type is NONE => *type is FPAREN_OPEN, *parent_type is NONE
+flag_parens : orig_line is 9, orig_col is 16, pc->Text() ')'
+ pc->type is PAREN_CLOSE, pc->parent_type is NONE => *type is FPAREN_CLOSE, *parent_type is NONE
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/Debug_tracking_space.html b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/Debug_tracking_space.html
index b7adc237..b7adc237 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/Debug_tracking_space.html
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/Debug_tracking_space.html
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/I-842.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/I-842.txt
index e69de29b..e69de29b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/I-842.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/I-842.txt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/backup.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/backup.h
index 210c6f7c..210c6f7c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/backup.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/backup.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/class_enum_struct_union.csv b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/class_enum_struct_union.csv
index 3b5c4a4e..3b5c4a4e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/class_enum_struct_union.csv
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/class_enum_struct_union.csv
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/class_enum_struct_union.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/class_enum_struct_union.txt
new file mode 100644
index 00000000..c104ff44
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/class_enum_struct_union.txt
@@ -0,0 +1,692 @@
+
+# option(s) with 'not default' value: 0
+#
+# -=====-
+# number of loops = 1
+# -=====-
+# language = CPP
+# -=====-
+# Line Tag Parent_type Type of the parent Columns Br/Lvl/pp Flag Nl Text
+# 1> COMMENT_MULTI| COMMENT_WHOLE| PARENT_NOT_SET[ 1/ 4/ 7/ 3][0/0/0][ 0][9-0] /**␤ * the enum (and variable declarations thereof) could be of␤ * the following forms:␤ *␤ * "enum type [: integral_type] { ... } [x, ...]"␤ * "enum type [: integral_type]"␤ * "enum class type [: integral_type] { ... } [x, ...]"␤ * "enum class type [: integral_type]"␤ * "enum [: integral_type] { ... } x, ..."␤ */
+# 10> NEWLINE| NONE| PARENT_NOT_SET[ 7/ 7/ 4/ 0][0/0/0][ 0][2-0]
+# 12> COMMENT_MULTI| COMMENT_WHOLE| PARENT_NOT_SET[ 1/ 4/ 7/ 0][0/0/0][ 0][9-0] /**␤ * the class/struct (and variable declarations thereof) could be of␤ * the following forms:␤ *␤ * template<...> class/struct[<...>] [macros/attributes ...] type [: bases ...] { }␤ * template<...> class/struct[<...>] [macros/attributes ...] type␤ * class/struct[ [macros/attributes ...] type [: bases ...] { } [x, ...]␤ * class/struct [macros/attributes ...] type [x, ...]␤ * class/struct [macros/attributes ...] [: bases] { } x, ...␤ */
+# 21> NEWLINE| NONE| PARENT_NOT_SET[ 7/ 7/ 1/ 0][0/0/0][ 0][2-0]
+# 23> PREPROC| PP_DEFINE| PARENT_NOT_SET[ 1/ 1/ 2/ 0][1/1/0][ 2 001c 0001][0-0] #
+# 23> PP_DEFINE| NONE| PARENT_NOT_SET[ 2/ 2/ 8/ 0][1/1/0][ 2 0001][0-0] define
+# 23> MACRO_FUNC| NONE| PARENT_NOT_SET[ 9/ 9/ 16/ 1][1/1/0][ 8 0001][0-0] ALIGNAS
+# 23> FPAREN_OPEN| MACRO_FUNC| PARENT_NOT_SET[ 16/ 16/ 17/ 0][1/1/0][ 2 0000 0001][0-0] (
+# 23> WORD| NONE| PARENT_NOT_SET[ 17/ 17/ 31/ 0][1/2/0][ 8 0011][0-0] byte_alignment
+# 23> FPAREN_CLOSE| MACRO_FUNC| PARENT_NOT_SET[ 31/ 31/ 32/ 0][1/1/0][ 2 0000 0011][0-0] )
+# 23> ATTRIBUTE| NONE| PARENT_NOT_SET[ 33/ 33/ 46/ 1][1/1/0][ 1][0-0] __attribute__
+# 23> FPAREN_OPEN| ATTRIBUTE| PARENT_NOT_SET[ 46/ 46/ 47/ 0][1/1/0][ 2 0000 0001][0-0] (
+# 23> PAREN_OPEN| NONE| PARENT_NOT_SET[ 47/ 47/ 48/ 0][1/2/0][ 2 0008 0001][0-0] (
+# 23> FUNC_CALL| NONE| PARENT_NOT_SET[ 48/ 48/ 55/ 0][1/3/0][ 8 0001][0-0] aligned
+# 23> FPAREN_OPEN| FUNC_CALL| PARENT_NOT_SET[ 55/ 55/ 56/ 0][1/3/0][ 2 0000 0001][0-0] (
+# 23> WORD| NONE| PARENT_NOT_SET[ 56/ 56/ 70/ 0][1/4/0][ 8 0011][0-0] byte_alignment
+# 23> FPAREN_CLOSE| FUNC_CALL| PARENT_NOT_SET[ 70/ 70/ 71/ 0][1/3/0][ 2 0000 0011][0-0] )
+# 23> PAREN_CLOSE| NONE| PARENT_NOT_SET[ 71/ 71/ 72/ 0][1/2/0][ 2 0000 0001][0-0] )
+# 23> FPAREN_CLOSE| ATTRIBUTE| PARENT_NOT_SET[ 72/ 72/ 73/ 0][1/1/0][ 2 0000 0001][0-0] )
+# 23> NEWLINE| NONE| PARENT_NOT_SET[ 73/ 73/ 1/ 0][0/0/0][ 0][2-0]
+# 25> PREPROC| PP_IF| PARENT_NOT_SET[ 1/ 1/ 2/ 0][0/0/0][ 2 0010 0001][0-0] #
+# 25> PP_IF| NONE| PARENT_NOT_SET[ 2/ 2/ 4/ 0][0/0/1][ 2 0001][0-0] if
+# 25> PP_DEFINED| NONE| PARENT_NOT_SET[ 5/ 5/ 12/ 1][0/0/1][ 8 0001][0-0] defined
+# 25> PAREN_OPEN| NONE| PARENT_NOT_SET[ 13/ 13/ 14/ 1][0/0/1][ 2 0000 0001][0-0] (
+# 25> WORD| NONE| PARENT_NOT_SET[ 14/ 14/ 22/ 0][0/0/1][ 8 0001][0-0] __unix__
+# 25> PAREN_CLOSE| NONE| PARENT_NOT_SET[ 22/ 22/ 23/ 0][0/0/1][ 2 0000 0001][0-0] )
+# 25> BOOL| NONE| PARENT_NOT_SET[ 24/ 24/ 26/ 1][0/0/1][ 2 0000 0001][0-0] ||
+# 25> PAREN_OPEN| NONE| PARENT_NOT_SET[ 27/ 27/ 28/ 1][0/0/1][ 2 0000 0001][0-0] (
+# 25> PP_DEFINED| NONE| PARENT_NOT_SET[ 28/ 28/ 35/ 0][0/0/1][ 8 0001][0-0] defined
+# 25> PAREN_OPEN| NONE| PARENT_NOT_SET[ 36/ 36/ 37/ 1][0/0/1][ 2 0000 0001][0-0] (
+# 25> WORD| NONE| PARENT_NOT_SET[ 37/ 37/ 46/ 0][0/0/1][ 8 0001][0-0] __APPLE__
+# 25> PAREN_CLOSE| NONE| PARENT_NOT_SET[ 46/ 46/ 47/ 0][0/0/1][ 2 0000 0001][0-0] )
+# 25> BOOL| NONE| PARENT_NOT_SET[ 48/ 48/ 50/ 1][0/0/1][ 2 0000 0001][0-0] &&
+# 25> PP_DEFINED| NONE| PARENT_NOT_SET[ 51/ 51/ 58/ 1][0/0/1][ 1][0-0] defined
+# 25> PAREN_OPEN| NONE| PARENT_NOT_SET[ 59/ 59/ 60/ 1][0/0/1][ 2 0000 0001][0-0] (
+# 25> WORD| NONE| PARENT_NOT_SET[ 60/ 60/ 68/ 0][0/0/1][ 8 0001][0-0] __MACH__
+# 25> PAREN_CLOSE| NONE| PARENT_NOT_SET[ 68/ 68/ 69/ 0][0/0/1][ 2 0000 0001][0-0] )
+# 25> PAREN_CLOSE| NONE| PARENT_NOT_SET[ 69/ 69/ 70/ 0][0/0/1][ 2 0000 0001][0-0] )
+# 25> NEWLINE| NONE| PARENT_NOT_SET[ 70/ 70/ 1/ 0][0/0/1][ 0][1-0]
+# 26> PREPROC| PP_DEFINE| PARENT_NOT_SET[ 1/ 1/ 2/ 0][1/1/1][ 2 001c 0001][0-0] #
+# 26> PP_DEFINE| NONE| PARENT_NOT_SET[ 2/ 2/ 8/ 0][1/1/1][ 2 0001][0-0] define
+# 26> MACRO| NONE| PARENT_NOT_SET[ 9/ 9/ 19/ 1][1/1/1][ 2 0001][0-0] API_EXPORT
+# 26> ATTRIBUTE| NONE| PARENT_NOT_SET[ 20/ 20/ 33/ 1][1/1/1][ 8 0001][0-0] __attribute__
+# 26> FPAREN_OPEN| ATTRIBUTE| PARENT_NOT_SET[ 34/ 34/ 35/ 1][1/1/1][ 2 000c 0001][0-0] (
+# 26> PAREN_OPEN| NONE| PARENT_NOT_SET[ 35/ 35/ 36/ 0][1/2/1][ 2 0008 0001][0-0] (
+# 26> FUNC_CALL| NONE| PARENT_NOT_SET[ 36/ 36/ 46/ 0][1/3/1][ 8 0001][0-0] visibility
+# 26> FPAREN_OPEN| FUNC_CALL| PARENT_NOT_SET[ 46/ 46/ 47/ 0][1/3/1][ 2 0000 0001][0-0] (
+# 26> STRING| PP_INCLUDE| PARENT_NOT_SET[ 47/ 47/ 56/ 0][1/4/1][ 8 0011][0-0] "default"
+# 26> FPAREN_CLOSE| FUNC_CALL| PARENT_NOT_SET[ 56/ 56/ 57/ 0][1/3/1][ 2 0000 0011][0-0] )
+# 26> PAREN_CLOSE| NONE| PARENT_NOT_SET[ 57/ 57/ 58/ 0][1/2/1][ 2 0000 0001][0-0] )
+# 26> FPAREN_CLOSE| ATTRIBUTE| PARENT_NOT_SET[ 58/ 58/ 59/ 0][1/1/1][ 2 0000 0001][0-0] )
+# 26> NEWLINE| NONE| PARENT_NOT_SET[ 59/ 59/ 1/ 0][0/0/1][ 0][1-0]
+# 27> PREPROC| PP_ELSE| PARENT_NOT_SET[ 1/ 1/ 2/ 0][0/0/0][ 2 0010 0001][0-0] #
+# 27> PP_ELSE| NONE| PP_IF[ 2/ 2/ 6/ 0][0/0/1][ 2 0001][0-0] elif
+# 27> PP_DEFINED| NONE| PARENT_NOT_SET[ 7/ 7/ 14/ 1][0/0/1][ a 0001][0-0] defined
+# 27> WORD| NONE| PARENT_NOT_SET[ 15/ 15/ 21/ 1][0/0/1][ 1][0-0] _WIN32
+# 27> NEWLINE| NONE| PARENT_NOT_SET[ 21/ 21/ 1/ 0][0/0/1][ 0][1-0]
+# 28> PREPROC| PP_DEFINE| PARENT_NOT_SET[ 1/ 1/ 2/ 0][1/1/1][ 2 001c 0001][0-0] #
+# 28> PP_DEFINE| NONE| PARENT_NOT_SET[ 2/ 2/ 8/ 0][1/1/1][ 2 0001][0-0] define
+# 28> MACRO| NONE| PARENT_NOT_SET[ 9/ 9/ 19/ 1][1/1/1][ 2 0001][0-0] API_EXPORT
+# 28> DECLSPEC| NONE| PARENT_NOT_SET[ 20/ 20/ 30/ 1][1/1/1][ c 0001][0-0] __declspec
+# 28> PAREN_OPEN| DECLSPEC| PARENT_NOT_SET[ 30/ 30/ 31/ 0][1/1/1][ 2 0000 0001][0-0] (
+# 28> WORD| NONE| PARENT_NOT_SET[ 31/ 31/ 40/ 0][1/2/1][ 8 0001][0-0] dllexport
+# 28> PAREN_CLOSE| DECLSPEC| PARENT_NOT_SET[ 40/ 40/ 41/ 0][1/1/1][ 2 0000 0001][0-0] )
+# 28> NEWLINE| NONE| PARENT_NOT_SET[ 41/ 41/ 1/ 0][0/0/1][ 0][1-0]
+# 29> PREPROC| PP_ELSE| PARENT_NOT_SET[ 1/ 1/ 2/ 0][0/0/0][ 2 0010 0001][0-0] #
+# 29> PP_ELSE| NONE| PP_IF[ 2/ 2/ 6/ 0][0/0/1][ 1][0-0] else
+# 29> NEWLINE| NONE| PARENT_NOT_SET[ 6/ 6/ 1/ 0][0/0/1][ 0][1-0]
+# 30> PREPROC| PP_DEFINE| PARENT_NOT_SET[ 1/ 1/ 2/ 0][1/1/1][ 2 001c 0001][0-0] #
+# 30> PP_DEFINE| NONE| PARENT_NOT_SET[ 2/ 2/ 8/ 0][1/1/1][ 2 0001][0-0] define
+# 30> MACRO| NONE| PARENT_NOT_SET[ 9/ 9/ 19/ 1][1/1/1][ 1][0-0] API_EXPORT
+# 30> NEWLINE| NONE| PARENT_NOT_SET[ 19/ 19/ 1/ 0][0/0/1][ 0][1-0]
+# 31> PREPROC| PP_ENDIF| PARENT_NOT_SET[ 1/ 1/ 2/ 0][0/0/0][ 2 0010 0001][0-0] #
+# 31> PP_ENDIF| NONE| PP_IF[ 2/ 2/ 7/ 0][0/0/0][ 1][0-0] endif
+# 31> NEWLINE| NONE| PARENT_NOT_SET[ 7/ 7/ 1/ 0][0/0/0][ 0][2-0]
+# 33> NAMESPACE| NONE| PARENT_NOT_SET[ 1/ 1/ 10/ 0][0/0/0][ e 0000][0-0] namespace
+# 33> WORD| NAMESPACE| PARENT_NOT_SET[ 11/ 11/ 26/ 1][0/0/0][ 0][0-0] outer_namespace
+# 33> NEWLINE| NONE| PARENT_NOT_SET[ 26/ 26/ 1/ 0][0/0/0][ 0][1-0]
+# 34> BRACE_OPEN| NAMESPACE| PARENT_NOT_SET[ 1/ 1/ 2/ 0][0/0/0][ 2 0000 0000][0-0] {
+# 34> NEWLINE| NONE| PARENT_NOT_SET[ 2/ 2/ 1/ 0][1/1/0][ 1000][2-0]
+# 36> NAMESPACE| NONE| PARENT_NOT_SET[ 1/ 1/ 10/ 0][1/1/0][ e 1000][0-0] namespace
+# 36> WORD| NAMESPACE| PARENT_NOT_SET[ 11/ 11/ 26/ 1][1/1/0][ 1000][0-0] inner_namespace
+# 36> NEWLINE| NONE| PARENT_NOT_SET[ 26/ 26/ 1/ 0][1/1/0][ 1000][1-0]
+# 37> BRACE_OPEN| NAMESPACE| PARENT_NOT_SET[ 1/ 1/ 2/ 0][1/1/0][ 2 0000 1000][0-0] {
+# 37> NEWLINE| NONE| PARENT_NOT_SET[ 2/ 2/ 1/ 0][2/2/0][ 1000][2-0]
+# 39> CLASS| NONE| PARENT_NOT_SET[ 1/ 1/ 6/ 0][2/2/0][ e 1000][0-0] class
+# 39> TYPE| CLASS| PARENT_NOT_SET[ 7/ 7/ 12/ 1][2/2/0][ 1000][0-0] Base1
+# 39> BRACE_OPEN| CLASS| PARENT_NOT_SET[ 13/ 13/ 14/ 1][2/2/0][ 2 c000 1400][0-0] {
+# 39> BRACE_CLOSE| CLASS| PARENT_NOT_SET[ 15/ 15/ 16/ 1][2/2/0][ 2 c000 1400][0-0] }
+# 39> SEMICOLON| CLASS| PARENT_NOT_SET[ 16/ 16/ 17/ 0][2/2/0][ 2 0000 0000][0-0] ;
+# 39> NEWLINE| NONE| PARENT_NOT_SET[ 17/ 17/ 1/ 0][2/2/0][ 0][2-0]
+# 41> TEMPLATE| NONE| PARENT_NOT_SET[ 1/ 1/ 9/ 0][2/2/0][ c 0000][0-0] template
+# 41> ANGLE_OPEN| TEMPLATE| PARENT_NOT_SET[ 9/ 9/ 10/ 0][2/2/0][ 2 0000 0040][0-0] <
+# 41> TYPENAME| NONE| PARENT_NOT_SET[ 10/ 10/ 18/ 0][2/3/0][ 8 0040][0-0] typename
+# 41> ANGLE_CLOSE| TEMPLATE| PARENT_NOT_SET[ 18/ 18/ 19/ 0][2/2/0][ 2 0000 0040][0-0] >
+# 41> CLASS| TEMPLATE| PARENT_NOT_SET[ 20/ 20/ 25/ 1][2/2/0][ a 0000][0-0] class
+# 41> TYPE| CLASS| PARENT_NOT_SET[ 26/ 26/ 31/ 1][2/2/0][ 0][0-0] Base2
+# 41> BRACE_OPEN| CLASS| PARENT_NOT_SET[ 32/ 32/ 33/ 1][2/2/0][ 2 c000 0400][0-0] {
+# 41> BRACE_CLOSE| CLASS| PARENT_NOT_SET[ 34/ 34/ 35/ 1][2/2/0][ 2 c000 0400][0-0] }
+# 41> SEMICOLON| CLASS| PARENT_NOT_SET[ 35/ 35/ 36/ 0][2/2/0][ 2 0000 0000][0-0] ;
+# 41> NEWLINE| NONE| PARENT_NOT_SET[ 36/ 36/ 1/ 0][2/2/0][ 0][2-0]
+# 43> BRACE_CLOSE| NAMESPACE| PARENT_NOT_SET[ 1/ 1/ 2/ 0][1/1/0][ 2 0000 0000][0-0] }
+# 43> NEWLINE| NONE| PARENT_NOT_SET[ 2/ 2/ 1/ 0][1/1/0][ 0][2-0]
+# 45> BRACE_CLOSE| NAMESPACE| PARENT_NOT_SET[ 1/ 1/ 2/ 0][0/0/0][ 2 0000 0000][0-0] }
+# 45> NEWLINE| NONE| PARENT_NOT_SET[ 2/ 2/ 1/ 0][0/0/0][ 0][2-0]
+# 47> COMMENT_CPP| COMMENT_WHOLE| PARENT_NOT_SET[ 1/ 1/ 82/ 0][0/0/0][ 0][0-0] // template<...> class/struct[<...>] [macros/attributes ...] type : bases ... { }
+# 47> NEWLINE| NONE| PARENT_NOT_SET[ 82/ 82/ 1/ 0][0/0/0][ 0][1-0]
+# 48> TEMPLATE| NONE| PARENT_NOT_SET[ 1/ 1/ 9/ 0][0/0/0][ c 0000][0-0] template
+# 48> ANGLE_OPEN| TEMPLATE| PARENT_NOT_SET[ 9/ 9/ 10/ 0][0/0/0][ 2 0000 0040][0-0] <
+# 48> TYPENAME| NONE| PARENT_NOT_SET[ 10/ 10/ 18/ 0][0/1/0][ 8 0040][0-0] typename
+# 48> COMMA| NONE| PARENT_NOT_SET[ 18/ 18/ 19/ 0][0/1/0][ 2 0000 0040][0-0] ,
+# 48> TYPENAME| NONE| PARENT_NOT_SET[ 20/ 20/ 28/ 1][0/1/0][ 8 0040][0-0] typename
+# 48> ELLIPSIS| NONE| PARENT_NOT_SET[ 29/ 29/ 32/ 1][0/1/0][ 2 0000 0040][0-0] ...
+# 48> ANGLE_CLOSE| TEMPLATE| PARENT_NOT_SET[ 32/ 32/ 33/ 0][0/0/0][ 2 0000 0040][0-0] >
+# 48> NEWLINE| NONE| PARENT_NOT_SET[ 33/ 33/ 1/ 0][0/0/0][ 0][1-0]
+# 49> CLASS| TEMPLATE| PARENT_NOT_SET[ 1/ 1/ 6/ 0][0/0/0][ a 0000][0-0] class
+# 49> WORD| NONE| PARENT_NOT_SET[ 7/ 7/ 17/ 1][0/0/0][ 2 0000][0-0] API_EXPORT
+# 49> ATTRIBUTE| NONE| PARENT_NOT_SET[ 18/ 18/ 31/ 1][0/0/0][ 0][0-0] __attribute__
+# 49> FPAREN_OPEN| ATTRIBUTE| PARENT_NOT_SET[ 31/ 31/ 32/ 0][0/0/0][ 2 0000 0000][0-0] (
+# 49> PAREN_OPEN| NONE| PARENT_NOT_SET[ 32/ 32/ 33/ 0][0/1/0][ 2 0008 0000][0-0] (
+# 49> WORD| NONE| PARENT_NOT_SET[ 33/ 33/ 47/ 0][0/2/0][ 8 0000][0-0] __deprecated__
+# 49> PAREN_CLOSE| NONE| PARENT_NOT_SET[ 47/ 47/ 48/ 0][0/1/0][ 2 0000 0000][0-0] )
+# 49> FPAREN_CLOSE| ATTRIBUTE| PARENT_NOT_SET[ 48/ 48/ 49/ 0][0/0/0][ 2 0000 0000][0-0] )
+# 49> MACRO_FUNC_CALL| NONE| PARENT_NOT_SET[ 50/ 50/ 57/ 1][0/0/0][ 0][0-0] ALIGNAS
+# 49> FPAREN_OPEN| MACRO_FUNC_CALL| PARENT_NOT_SET[ 57/ 57/ 58/ 0][0/0/0][ 2 0000 0000][0-0] (
+# 49> NUMBER| NONE| PARENT_NOT_SET[ 58/ 58/ 59/ 0][0/1/0][ 8 0000][0-0] 4
+# 49> FPAREN_CLOSE| MACRO_FUNC_CALL| PARENT_NOT_SET[ 59/ 59/ 60/ 0][0/0/0][ 2 0000 0000][0-0] )
+# 49> TYPE| CLASS| PARENT_NOT_SET[ 61/ 61/ 63/ 1][0/0/0][ 0][0-0] c1
+# 49> NEWLINE| NONE| PARENT_NOT_SET[ 63/ 63/ 1/ 0][0/0/0][ 0][1-0]
+# 50> CLASS_COLON| CLASS| PARENT_NOT_SET[ 9/ 1/ 2/ 0][0/0/0][ 2 0000 0800][0-0] :
+# 50> QUALIFIER| NONE| PARENT_NOT_SET[ 11/ 3/ 9/ 1][0/0/0][ e 0800][0-0] public
+# 50> TYPE| NONE| PARENT_NOT_SET[ 18/ 10/ 25/ 1][0/0/0][ 800][0-0] outer_namespace
+# 50> DC_MEMBER| NONE| PARENT_NOT_SET[ 33/ 25/ 27/ 0][0/0/0][ 2 0000 0800][0-0] ::
+# 50> TYPE| NONE| PARENT_NOT_SET[ 35/ 27/ 42/ 0][0/0/0][ 800][0-0] inner_namespace
+# 50> DC_MEMBER| NONE| PARENT_NOT_SET[ 50/ 42/ 44/ 0][0/0/0][ 2 0000 0800][0-0] ::
+# 50> TYPE| NONE| PARENT_NOT_SET[ 52/ 44/ 49/ 0][0/0/0][ 800][0-0] Base1
+# 50> COMMA| NONE| PARENT_NOT_SET[ 57/ 49/ 50/ 0][0/0/0][ 2 0000 0800][0-0] ,
+# 50> NEWLINE| NONE| PARENT_NOT_SET[ 58/ 50/ 3/ 0][0/0/0][ 0][1-0]
+# 51> QUALIFIER| NONE| PARENT_NOT_SET[ 9/ 3/ 9/ 0][0/0/0][ a 0800][0-0] public
+# 51> TYPE| NONE| PARENT_NOT_SET[ 16/ 10/ 25/ 1][0/0/0][ 800][0-0] outer_namespace
+# 51> DC_MEMBER| NONE| PARENT_NOT_SET[ 31/ 25/ 27/ 0][0/0/0][ 2 0000 0800][0-0] ::
+# 51> TYPE| NONE| PARENT_NOT_SET[ 33/ 27/ 42/ 0][0/0/0][ 800][0-0] inner_namespace
+# 51> DC_MEMBER| NONE| PARENT_NOT_SET[ 48/ 42/ 44/ 0][0/0/0][ 2 0000 0800][0-0] ::
+# 51> TYPE| NONE| PARENT_NOT_SET[ 50/ 44/ 49/ 0][0/0/0][ 800][0-0] Base2
+# 51> ANGLE_OPEN| TEMPLATE| PARENT_NOT_SET[ 55/ 49/ 50/ 0][0/0/0][ 2 0000 0840][0-0] <
+# 51> TYPE| NONE| PARENT_NOT_SET[ 56/ 50/ 65/ 0][0/1/0][ 8 0840][0-0] outer_namespace
+# 51> DC_MEMBER| NONE| PARENT_NOT_SET[ 71/ 65/ 67/ 0][0/1/0][ 2 0000 0840][0-0] ::
+# 51> TYPE| NONE| PARENT_NOT_SET[ 73/ 67/ 82/ 0][0/1/0][ 840][0-0] inner_namespace
+# 51> DC_MEMBER| NONE| PARENT_NOT_SET[ 88/ 82/ 84/ 0][0/1/0][ 2 0000 0840][0-0] ::
+# 51> TYPE| NONE| PARENT_NOT_SET[ 90/ 84/ 89/ 0][0/1/0][ 840][0-0] Base1
+# 51> ANGLE_CLOSE| TEMPLATE| PARENT_NOT_SET[ 95/ 89/ 90/ 0][0/0/0][ 2 0000 0840][0-0] >
+# 51> NEWLINE| NONE| PARENT_NOT_SET[ 96/ 90/ 1/ 0][0/0/0][ 0][1-0]
+# 52> BRACE_OPEN| CLASS| PARENT_NOT_SET[ 1/ 1/ 2/ 0][0/0/0][ 2 8008 0400][0-0] {
+# 52> NEWLINE| NONE| PARENT_NOT_SET[ 2/ 2/ 1/ 0][1/1/0][ 400][2-0]
+# 54> BRACE_CLOSE| CLASS| PARENT_NOT_SET[ 1/ 1/ 2/ 0][0/0/0][ 2 8000 0400][0-0] }
+# 54> SEMICOLON| CLASS| PARENT_NOT_SET[ 2/ 2/ 3/ 0][0/0/0][ 2 0000 0000][0-0] ;
+# 54> NEWLINE| NONE| PARENT_NOT_SET[ 3/ 3/ 1/ 0][0/0/0][ 0][2-0]
+# 56> COMMENT_CPP| COMMENT_WHOLE| PARENT_NOT_SET[ 1/ 1/ 70/ 0][0/0/0][ 0][0-0] // template<...> class/struct[<...>] [macros/attributes ...] type { }
+# 56> NEWLINE| NONE| PARENT_NOT_SET[ 70/ 70/ 1/ 0][0/0/0][ 0][1-0]
+# 57> TEMPLATE| NONE| PARENT_NOT_SET[ 1/ 1/ 9/ 0][0/0/0][ c 0000][0-0] template
+# 57> ANGLE_OPEN| TEMPLATE| PARENT_NOT_SET[ 9/ 9/ 10/ 0][0/0/0][ 2 0000 0040][0-0] <
+# 57> TYPENAME| NONE| PARENT_NOT_SET[ 10/ 10/ 18/ 0][0/1/0][ 8 0040][0-0] typename
+# 57> COMMA| NONE| PARENT_NOT_SET[ 18/ 18/ 19/ 0][0/1/0][ 2 0000 0040][0-0] ,
+# 57> TYPENAME| NONE| PARENT_NOT_SET[ 20/ 20/ 28/ 1][0/1/0][ 8 0040][0-0] typename
+# 57> ELLIPSIS| NONE| PARENT_NOT_SET[ 29/ 29/ 32/ 1][0/1/0][ 2 0000 0040][0-0] ...
+# 57> ANGLE_CLOSE| TEMPLATE| PARENT_NOT_SET[ 32/ 32/ 33/ 0][0/0/0][ 2 0000 0040][0-0] >
+# 57> NEWLINE| NONE| PARENT_NOT_SET[ 33/ 33/ 1/ 0][0/0/0][ 0][1-0]
+# 58> CLASS| TEMPLATE| PARENT_NOT_SET[ 1/ 1/ 6/ 0][0/0/0][ a 0000][0-0] class
+# 58> WORD| NONE| PARENT_NOT_SET[ 7/ 7/ 17/ 1][0/0/0][ 2 0000][0-0] API_EXPORT
+# 58> TYPE| CLASS| PARENT_NOT_SET[ 18/ 18/ 20/ 1][0/0/0][ 0][0-0] c2
+# 58> NEWLINE| NONE| PARENT_NOT_SET[ 20/ 20/ 1/ 0][0/0/0][ 0][1-0]
+# 59> BRACE_OPEN| CLASS| PARENT_NOT_SET[ 1/ 1/ 2/ 0][0/0/0][ 2 0000 0400][0-0] {
+# 59> NEWLINE| NONE| PARENT_NOT_SET[ 2/ 2/ 1/ 0][1/1/0][ 400][1-0]
+# 60> ACCESS| NONE| PARENT_NOT_SET[ 1/ 1/ 7/ 0][1/1/0][ c 0400][0-0] public
+# 60> ACCESS_COLON| NONE| PARENT_NOT_SET[ 7/ 7/ 8/ 0][1/1/0][ 2 0000 0400][0-0] :
+# 60> NEWLINE| NONE| PARENT_NOT_SET[ 8/ 8/ 4/ 0][1/1/0][ 400][2-0]
+# 62> TEMPLATE| NONE| PARENT_NOT_SET[ 1/ 4/ 12/ 0][1/1/0][ c 0400][0-0] template
+# 62> ANGLE_OPEN| TEMPLATE| PARENT_NOT_SET[ 9/ 12/ 13/ 0][1/1/0][ 2 0000 0440][0-0] <
+# 62> TYPENAME| NONE| PARENT_NOT_SET[ 10/ 13/ 21/ 0][1/2/0][ a 0440][0-0] typename
+# 62> TYPE| NONE| PARENT_NOT_SET[ 19/ 22/ 23/ 1][1/2/0][ 440][0-0] T
+# 62> ANGLE_CLOSE| TEMPLATE| PARENT_NOT_SET[ 20/ 23/ 24/ 0][1/1/0][ 2 0000 0440][0-0] >
+# 62> NEWLINE| NONE| PARENT_NOT_SET[ 21/ 24/ 4/ 0][1/1/0][ 400][1-0]
+# 63> STRUCT| TEMPLATE| PARENT_NOT_SET[ 1/ 4/ 10/ 0][1/1/0][ a 0400][0-0] struct
+# 63> TYPE| STRUCT| PARENT_NOT_SET[ 8/ 11/ 22/ 1][1/1/0][ 400][0-0] inner_class
+# 63> NEWLINE| NONE| PARENT_NOT_SET[ 19/ 22/ 4/ 0][1/1/0][ 400][1-0]
+# 64> BRACE_OPEN| STRUCT| PARENT_NOT_SET[ 1/ 4/ 5/ 0][1/1/0][ 2 0000 0400][0-0] {
+# 64> NEWLINE| NONE| PARENT_NOT_SET[ 2/ 5/ 7/ 0][2/2/0][ 402][1-0]
+# 65> QUALIFIER| NONE| PARENT_NOT_SET[ 9/ 7/ 13/ 0][2/2/0][ 8e 0402][0-0] static
+# 65> TYPE| NONE| PARENT_NOT_SET[ 16/ 14/ 25/ 1][2/2/0][ 80 0402][0-0] inner_class
+# 65> ANGLE_OPEN| TEMPLATE| PARENT_NOT_SET[ 27/ 25/ 26/ 0][2/2/0][ 2 0000 0442][0-0] <
+# 65> TYPE| NONE| PARENT_NOT_SET[ 28/ 26/ 27/ 0][2/3/0][ 8 0442][0-0] T
+# 65> ANGLE_CLOSE| TEMPLATE| PARENT_NOT_SET[ 29/ 27/ 28/ 0][2/2/0][ 2 0000 0442][0-0] >
+# 65> PTR_TYPE| NONE| PARENT_NOT_SET[ 31/ 29/ 30/ 1][2/2/0][ 2 0088 0402][0-0] *
+# 65> WORD| NONE| PARENT_NOT_SET[ 32/ 30/ 43/ 0][2/2/0][ 308 0402][0-0] m_inner_class
+# 65> SEMICOLON| NONE| PARENT_NOT_SET[ 45/ 43/ 44/ 0][2/2/0][ 2 0000 0402][0-0] ;
+# 65> NEWLINE| NONE| PARENT_NOT_SET[ 46/ 44/ 4/ 0][2/2/0][ 402][1-0]
+# 66> BRACE_CLOSE| STRUCT| PARENT_NOT_SET[ 1/ 4/ 5/ 0][1/1/0][ 2 0000 0402][0-0] }
+# 66> SEMICOLON| STRUCT| PARENT_NOT_SET[ 2/ 5/ 6/ 0][1/1/0][ 2 0000 0400][0-0] ;
+# 66> NEWLINE| NONE| PARENT_NOT_SET[ 3/ 6/ 1/ 0][1/1/0][ 400][1-0]
+# 67> BRACE_CLOSE| CLASS| PARENT_NOT_SET[ 1/ 1/ 2/ 0][0/0/0][ 2 0000 0400][0-0] }
+# 67> SEMICOLON| CLASS| PARENT_NOT_SET[ 2/ 2/ 3/ 0][0/0/0][ 2 0000 0000][0-0] ;
+# 67> NEWLINE| NONE| PARENT_NOT_SET[ 3/ 3/ 1/ 0][0/0/0][ 0][2-0]
+# 69> TEMPLATE| NONE| PARENT_NOT_SET[ 1/ 1/ 9/ 0][0/0/0][ c 0000][0-0] template
+# 69> ANGLE_OPEN| TEMPLATE| PARENT_NOT_SET[ 9/ 9/ 10/ 0][0/0/0][ 2 0000 0040][0-0] <
+# 69> ANGLE_CLOSE| TEMPLATE| PARENT_NOT_SET[ 10/ 10/ 11/ 0][0/0/0][ 2 0008 0040][0-0] >
+# 69> TEMPLATE| NONE| PARENT_NOT_SET[ 12/ 12/ 20/ 1][0/0/0][ 8 0000][0-0] template
+# 69> ANGLE_OPEN| TEMPLATE| PARENT_NOT_SET[ 20/ 20/ 21/ 0][0/0/0][ 2 0000 0040][0-0] <
+# 69> ANGLE_CLOSE| TEMPLATE| PARENT_NOT_SET[ 21/ 21/ 22/ 0][0/0/0][ 2 0008 0040][0-0] >
+# 69> STRUCT| TEMPLATE| PARENT_NOT_SET[ 23/ 23/ 29/ 1][0/0/0][ a 0000][0-0] struct
+# 69> WORD| NONE| PARENT_NOT_SET[ 30/ 30/ 40/ 1][0/0/0][ 2 0000][0-0] API_EXPORT
+# 69> TYPE| NONE| PARENT_NOT_SET[ 41/ 41/ 43/ 1][0/0/0][ 0][0-0] c2
+# 69> ANGLE_OPEN| TEMPLATE| PARENT_NOT_SET[ 43/ 43/ 44/ 0][0/0/0][ 2 0000 0040][0-0] <
+# 69> TYPE| NONE| PARENT_NOT_SET[ 44/ 44/ 47/ 0][0/1/0][ 8 0040][0-0] int
+# 69> ANGLE_CLOSE| TEMPLATE| PARENT_NOT_SET[ 47/ 47/ 48/ 0][0/0/0][ 2 0000 0040][0-0] >
+# 69> DC_MEMBER| NONE| PARENT_NOT_SET[ 48/ 48/ 50/ 0][0/0/0][ 2 0008 0000][0-0] ::
+# 69> TYPE| STRUCT| PARENT_NOT_SET[ 50/ 50/ 61/ 0][0/0/0][ 80 0000][0-0] inner_class
+# 69> ANGLE_OPEN| TEMPLATE| PARENT_NOT_SET[ 61/ 61/ 62/ 0][0/0/0][ 2 0000 0040][0-0] <
+# 69> TYPE| NONE| PARENT_NOT_SET[ 62/ 62/ 65/ 0][0/1/0][ 8 0040][0-0] int
+# 69> ANGLE_CLOSE| TEMPLATE| PARENT_NOT_SET[ 65/ 65/ 66/ 0][0/0/0][ 2 0000 0040][0-0] >
+# 69> PTR_TYPE| NONE| PARENT_NOT_SET[ 67/ 67/ 68/ 1][0/0/0][ 2 0008 0000][0-0] *
+# 69> TYPE| NONE| PARENT_NOT_SET[ 68/ 68/ 70/ 0][0/0/0][ 8 0000][0-0] c2
+# 69> ANGLE_OPEN| TEMPLATE| PARENT_NOT_SET[ 70/ 70/ 71/ 0][0/0/0][ 2 0000 0040][0-0] <
+# 69> TYPE| NONE| PARENT_NOT_SET[ 71/ 71/ 74/ 0][0/1/0][ 8 0040][0-0] int
+# 69> ANGLE_CLOSE| TEMPLATE| PARENT_NOT_SET[ 74/ 74/ 75/ 0][0/0/0][ 2 0000 0040][0-0] >
+# 69> DC_MEMBER| NONE| PARENT_NOT_SET[ 75/ 75/ 77/ 0][0/0/0][ 2 0008 0000][0-0] ::
+# 69> TYPE| NONE| PARENT_NOT_SET[ 77/ 77/ 88/ 0][0/0/0][ 0][0-0] inner_class
+# 69> ANGLE_OPEN| TEMPLATE| PARENT_NOT_SET[ 88/ 88/ 89/ 0][0/0/0][ 2 0000 0040][0-0] <
+# 69> TYPE| NONE| PARENT_NOT_SET[ 89/ 89/ 92/ 0][0/1/0][ 8 0040][0-0] int
+# 69> ANGLE_CLOSE| TEMPLATE| PARENT_NOT_SET[ 92/ 92/ 93/ 0][0/0/0][ 2 0000 0040][0-0] >
+# 69> DC_MEMBER| NONE| PARENT_NOT_SET[ 93/ 93/ 95/ 0][0/0/0][ 2 0008 0000][0-0] ::
+# 69> WORD| NONE| PARENT_NOT_SET[ 95/ 95/108/ 0][0/0/0][ 2300 0000][0-0] m_inner_class
+# 69> ASSIGN| NONE| PARENT_NOT_SET[109/109/110/ 1][0/0/0][ 2 0000 0000][0-0] =
+# 69> WORD| NONE| PARENT_NOT_SET[111/111/118/ 1][0/0/0][ 8 0000][0-0] nullptr
+# 69> SEMICOLON| STRUCT| PARENT_NOT_SET[118/118/119/ 0][0/0/0][ 2 0000 0000][0-0] ;
+# 69> NEWLINE| NONE| PARENT_NOT_SET[119/119/ 1/ 0][0/0/0][ 0][2-0]
+# 71> COMMENT_CPP| COMMENT_WHOLE| PARENT_NOT_SET[ 1/ 1/ 66/ 0][0/0/0][ 0][0-0] // template<...> class/struct[<...>] [macros/attributes ...] type
+# 71> NEWLINE| NONE| PARENT_NOT_SET[ 66/ 66/ 1/ 0][0/0/0][ 0][1-0]
+# 72> TEMPLATE| NONE| PARENT_NOT_SET[ 1/ 1/ 9/ 0][0/0/0][ c 0000][0-0] template
+# 72> ANGLE_OPEN| TEMPLATE| PARENT_NOT_SET[ 9/ 9/ 10/ 0][0/0/0][ 2 0000 0040][0-0] <
+# 72> TYPENAME| NONE| PARENT_NOT_SET[ 10/ 10/ 18/ 0][0/1/0][ 8 0040][0-0] typename
+# 72> COMMA| NONE| PARENT_NOT_SET[ 18/ 18/ 19/ 0][0/1/0][ 2 0000 0040][0-0] ,
+# 72> TYPENAME| NONE| PARENT_NOT_SET[ 20/ 20/ 28/ 1][0/1/0][ 8 0040][0-0] typename
+# 72> ELLIPSIS| NONE| PARENT_NOT_SET[ 29/ 29/ 32/ 1][0/1/0][ 2 0000 0040][0-0] ...
+# 72> ANGLE_CLOSE| TEMPLATE| PARENT_NOT_SET[ 32/ 32/ 33/ 0][0/0/0][ 2 0000 0040][0-0] >
+# 72> NEWLINE| NONE| PARENT_NOT_SET[ 33/ 33/ 1/ 0][0/0/0][ 0][1-0]
+# 73> CLASS| TEMPLATE| PARENT_NOT_SET[ 1/ 1/ 6/ 0][0/0/0][1000 000a 0000][0-0] class
+# 73> WORD| NONE| PARENT_NOT_SET[ 7/ 7/ 17/ 1][0/0/0][1000 0002 0000][0-0] API_EXPORT
+# 73> TYPE| CLASS| PARENT_NOT_SET[ 18/ 18/ 20/ 1][0/0/0][1000 0000 0000][0-0] c2
+# 73> SEMICOLON| CLASS| PARENT_NOT_SET[ 20/ 20/ 21/ 0][0/0/0][ 2 0000 0000][0-0] ;
+# 73> NEWLINE| NONE| PARENT_NOT_SET[ 21/ 21/ 1/ 0][0/0/0][ 0][2-0]
+# 75> COMMENT_CPP| COMMENT_WHOLE| PARENT_NOT_SET[ 1/ 1/ 68/ 0][0/0/0][ 0][0-0] // class/struct [macros/attributes ...] type : bases ... { } x, ...
+# 75> NEWLINE| NONE| PARENT_NOT_SET[ 68/ 68/ 1/ 0][0/0/0][ 0][1-0]
+# 76> CLASS| NONE| PARENT_NOT_SET[ 1/ 1/ 6/ 0][0/0/0][ e 0000][0-0] class
+# 76> WORD| NONE| PARENT_NOT_SET[ 7/ 7/ 17/ 1][0/0/0][ 2 0000][0-0] API_EXPORT
+# 76> ATTRIBUTE| NONE| PARENT_NOT_SET[ 18/ 18/ 31/ 1][0/0/0][ 0][0-0] __attribute__
+# 76> FPAREN_OPEN| ATTRIBUTE| PARENT_NOT_SET[ 31/ 31/ 32/ 0][0/0/0][ 2 0000 0000][0-0] (
+# 76> PAREN_OPEN| NONE| PARENT_NOT_SET[ 32/ 32/ 33/ 0][0/1/0][ 2 0008 0000][0-0] (
+# 76> WORD| NONE| PARENT_NOT_SET[ 33/ 33/ 47/ 0][0/2/0][ 8 0000][0-0] __deprecated__
+# 76> PAREN_CLOSE| NONE| PARENT_NOT_SET[ 47/ 47/ 48/ 0][0/1/0][ 2 0000 0000][0-0] )
+# 76> FPAREN_CLOSE| ATTRIBUTE| PARENT_NOT_SET[ 48/ 48/ 49/ 0][0/0/0][ 2 0000 0000][0-0] )
+# 76> MACRO_FUNC_CALL| NONE| PARENT_NOT_SET[ 50/ 50/ 57/ 1][0/0/0][ 0][0-0] ALIGNAS
+# 76> FPAREN_OPEN| MACRO_FUNC_CALL| PARENT_NOT_SET[ 57/ 57/ 58/ 0][0/0/0][ 2 0000 0000][0-0] (
+# 76> NUMBER| NONE| PARENT_NOT_SET[ 58/ 58/ 59/ 0][0/1/0][ 8 0000][0-0] 4
+# 76> FPAREN_CLOSE| MACRO_FUNC_CALL| PARENT_NOT_SET[ 59/ 59/ 60/ 0][0/0/0][ 2 0000 0000][0-0] )
+# 76> TYPE| CLASS| PARENT_NOT_SET[ 61/ 61/ 63/ 1][0/0/0][ 80 0000][0-0] c3
+# 76> NEWLINE| NONE| PARENT_NOT_SET[ 63/ 63/ 1/ 0][0/0/0][ 0][1-0]
+# 77> CLASS_COLON| CLASS| PARENT_NOT_SET[ 9/ 1/ 2/ 0][0/0/0][ 2 0000 0800][0-0] :
+# 77> QUALIFIER| NONE| PARENT_NOT_SET[ 11/ 3/ 9/ 1][0/0/0][ e 0800][0-0] public
+# 77> TYPE| NONE| PARENT_NOT_SET[ 18/ 10/ 25/ 1][0/0/0][ 800][0-0] outer_namespace
+# 77> DC_MEMBER| NONE| PARENT_NOT_SET[ 33/ 25/ 27/ 0][0/0/0][ 2 0000 0800][0-0] ::
+# 77> TYPE| NONE| PARENT_NOT_SET[ 35/ 27/ 42/ 0][0/0/0][ 800][0-0] inner_namespace
+# 77> DC_MEMBER| NONE| PARENT_NOT_SET[ 50/ 42/ 44/ 0][0/0/0][ 2 0000 0800][0-0] ::
+# 77> TYPE| NONE| PARENT_NOT_SET[ 52/ 44/ 49/ 0][0/0/0][ 800][0-0] Base2
+# 77> ANGLE_OPEN| TEMPLATE| PARENT_NOT_SET[ 57/ 49/ 50/ 0][0/0/0][ 2 0000 0840][0-0] <
+# 77> TYPE| NONE| PARENT_NOT_SET[ 58/ 50/ 53/ 0][0/1/0][ 8 0840][0-0] int
+# 77> ANGLE_CLOSE| TEMPLATE| PARENT_NOT_SET[ 61/ 53/ 54/ 0][0/0/0][ 2 0000 0840][0-0] >
+# 77> COMMA| NONE| PARENT_NOT_SET[ 62/ 54/ 55/ 0][0/0/0][ 2 0008 0800][0-0] ,
+# 77> NEWLINE| NONE| PARENT_NOT_SET[ 63/ 55/ 3/ 0][0/0/0][ 0][1-0]
+# 78> QUALIFIER| NONE| PARENT_NOT_SET[ 9/ 3/ 9/ 0][0/0/0][ a 0800][0-0] public
+# 78> TYPE| NONE| PARENT_NOT_SET[ 16/ 10/ 12/ 1][0/0/0][ 800][0-0] c2
+# 78> ANGLE_OPEN| TEMPLATE| PARENT_NOT_SET[ 18/ 12/ 13/ 0][0/0/0][ 2 0000 0840][0-0] <
+# 78> TYPE| NONE| PARENT_NOT_SET[ 19/ 13/ 16/ 0][0/1/0][ 8 0840][0-0] int
+# 78> ANGLE_CLOSE| TEMPLATE| PARENT_NOT_SET[ 22/ 16/ 17/ 0][0/0/0][ 2 0000 0840][0-0] >
+# 78> DC_MEMBER| NONE| PARENT_NOT_SET[ 23/ 17/ 19/ 0][0/0/0][ 2 0008 0800][0-0] ::
+# 78> TYPE| NONE| PARENT_NOT_SET[ 25/ 19/ 30/ 0][0/0/0][ 800][0-0] inner_class
+# 78> ANGLE_OPEN| TEMPLATE| PARENT_NOT_SET[ 36/ 30/ 31/ 0][0/0/0][ 2 0000 0840][0-0] <
+# 78> TYPE| NONE| PARENT_NOT_SET[ 37/ 31/ 34/ 0][0/1/0][ 8 0840][0-0] int
+# 78> ANGLE_CLOSE| TEMPLATE| PARENT_NOT_SET[ 40/ 34/ 35/ 0][0/0/0][ 2 0000 0840][0-0] >
+# 78> NEWLINE| NONE| PARENT_NOT_SET[ 41/ 35/ 1/ 0][0/0/0][ 0][1-0]
+# 79> BRACE_OPEN| CLASS| PARENT_NOT_SET[ 1/ 1/ 2/ 0][0/0/0][ 2 0008 0400][0-0] {
+# 79> NEWLINE| NONE| PARENT_NOT_SET[ 2/ 2/ 1/ 0][1/1/0][ 400][1-0]
+# 80> ACCESS| NONE| PARENT_NOT_SET[ 1/ 1/ 7/ 0][1/1/0][ c 0400][0-0] public
+# 80> ACCESS_COLON| NONE| PARENT_NOT_SET[ 7/ 7/ 8/ 0][1/1/0][ 2 0000 0400][0-0] :
+# 80> NEWLINE| NONE| PARENT_NOT_SET[ 8/ 8/ 4/ 0][1/1/0][ 400][1-0]
+# 81> FUNC_CLASS_DEF| NONE| PARENT_NOT_SET[ 1/ 4/ 6/ 0][1/1/0][ c 0400][0-0] c3
+# 81> FPAREN_OPEN| FUNC_CLASS_DEF| PARENT_NOT_SET[ 3/ 6/ 7/ 0][1/1/0][ 2 0000 0500][0-0] (
+# 81> TYPE| NONE| PARENT_NOT_SET[ 4/ 7/ 10/ 0][1/2/0][ 208a 0510][0-0] int
+# 81> WORD| NONE| PARENT_NOT_SET[ 8/ 11/ 12/ 1][1/2/0][ 2100 0510][0-0] x
+# 81> ASSIGN_DEFAULT_ARG| FUNC_PROTO| PARENT_NOT_SET[ 10/ 13/ 14/ 1][1/2/0][ 2 0000 0510][0-0] =
+# 81> NUMBER| NONE| PARENT_NOT_SET[ 12/ 15/ 16/ 1][1/2/0][ 8 0510][0-0] 0
+# 81> COMMA| NONE| PARENT_NOT_SET[ 13/ 16/ 17/ 0][1/2/0][ 2 0000 0510][0-0] ,
+# 81> TYPE| NONE| PARENT_NOT_SET[ 15/ 18/ 21/ 1][1/2/0][ 208a 0510][0-0] int
+# 81> WORD| NONE| PARENT_NOT_SET[ 19/ 22/ 23/ 1][1/2/0][ 2100 0510][0-0] y
+# 81> ASSIGN_DEFAULT_ARG| FUNC_PROTO| PARENT_NOT_SET[ 21/ 24/ 25/ 1][1/2/0][ 2 0000 0510][0-0] =
+# 81> NUMBER| NONE| PARENT_NOT_SET[ 23/ 26/ 27/ 1][1/2/0][ 8 0510][0-0] 0
+# 81> COMMA| NONE| PARENT_NOT_SET[ 24/ 27/ 28/ 0][1/2/0][ 2 0000 0510][0-0] ,
+# 81> TYPE| NONE| PARENT_NOT_SET[ 26/ 29/ 32/ 1][1/2/0][ 208a 0510][0-0] int
+# 81> WORD| NONE| PARENT_NOT_SET[ 30/ 33/ 34/ 1][1/2/0][ 2100 0510][0-0] z
+# 81> ASSIGN_DEFAULT_ARG| FUNC_PROTO| PARENT_NOT_SET[ 32/ 35/ 36/ 1][1/2/0][ 2 0000 0510][0-0] =
+# 81> NUMBER| NONE| PARENT_NOT_SET[ 34/ 37/ 38/ 1][1/2/0][ 8 0510][0-0] 0
+# 81> FPAREN_CLOSE| FUNC_CLASS_DEF| PARENT_NOT_SET[ 35/ 38/ 39/ 0][1/1/0][ 2 0000 0510][0-0] )
+# 81> CONSTR_COLON| NONE| PARENT_NOT_SET[ 37/ 40/ 41/ 1][1/1/0][ 2 0000 0500][0-0] :
+# 81> FUNC_CTOR_VAR| NONE| PARENT_NOT_SET[ 39/ 42/ 45/ 1][1/1/0][ c 0500][0-0] m_x
+# 81> FPAREN_OPEN| FUNC_CTOR_VAR| PARENT_NOT_SET[ 42/ 45/ 46/ 0][1/1/0][ 2 0000 0500][0-0] (
+# 81> WORD| NONE| PARENT_NOT_SET[ 43/ 46/ 47/ 0][1/2/0][ 8 0510][0-0] x
+# 81> FPAREN_CLOSE| FUNC_CTOR_VAR| PARENT_NOT_SET[ 44/ 47/ 48/ 0][1/1/0][ 2 0000 0510][0-0] )
+# 81> COMMA| NONE| PARENT_NOT_SET[ 45/ 48/ 49/ 0][1/1/0][ 2 0000 0500][0-0] ,
+# 81> FUNC_CTOR_VAR| NONE| PARENT_NOT_SET[ 47/ 50/ 53/ 1][1/1/0][ 8 0500][0-0] m_y
+# 81> FPAREN_OPEN| FUNC_CTOR_VAR| PARENT_NOT_SET[ 50/ 53/ 54/ 0][1/1/0][ 2 0000 0500][0-0] (
+# 81> WORD| NONE| PARENT_NOT_SET[ 51/ 54/ 55/ 0][1/2/0][ 8 0510][0-0] y
+# 81> FPAREN_CLOSE| FUNC_CTOR_VAR| PARENT_NOT_SET[ 52/ 55/ 56/ 0][1/1/0][ 2 0000 0510][0-0] )
+# 81> COMMA| NONE| PARENT_NOT_SET[ 53/ 56/ 57/ 0][1/1/0][ 2 0000 0500][0-0] ,
+# 81> FUNC_CTOR_VAR| NONE| PARENT_NOT_SET[ 55/ 58/ 61/ 1][1/1/0][ 8 0500][0-0] m_z
+# 81> FPAREN_OPEN| FUNC_CTOR_VAR| PARENT_NOT_SET[ 58/ 61/ 62/ 0][1/1/0][ 2 0000 0500][0-0] (
+# 81> WORD| NONE| PARENT_NOT_SET[ 59/ 62/ 63/ 0][1/2/0][ 8 0510][0-0] z
+# 81> FPAREN_CLOSE| FUNC_CTOR_VAR| PARENT_NOT_SET[ 60/ 63/ 64/ 0][1/1/0][ 2 0000 0510][0-0] )
+# 81> BRACE_OPEN| FUNC_CLASS_DEF| PARENT_NOT_SET[ 62/ 65/ 66/ 1][1/1/0][ 2 8000 0400][0-0] {
+# 81> NEWLINE| NONE| PARENT_NOT_SET[ 63/ 67/ 0/ 0][1/1/0][ 400][1-0]
+# 81> BRACE_CLOSE| FUNC_CLASS_DEF| PARENT_NOT_SET[ 1/ 67/ 68/ 1][1/1/0][ 2 8000 0400][0-0] }
+# 81> NEWLINE| NONE| PARENT_NOT_SET[ 2/ 68/ 4/ 0][1/1/0][ 400][2-0]
+# 83> TYPE| NONE| PARENT_NOT_SET[ 1/ 4/ 7/ 0][1/1/0][ 8e 0400][0-0] int
+# 83> WORD| NONE| PARENT_NOT_SET[ 5/ 8/ 11/ 1][1/1/0][ 300 0400][0-0] m_x
+# 83> SEMICOLON| NONE| PARENT_NOT_SET[ 8/ 11/ 12/ 0][1/1/0][ 2 0000 0400][0-0] ;
+# 83> NEWLINE| NONE| PARENT_NOT_SET[ 9/ 12/ 4/ 0][1/1/0][ 400][1-0]
+# 84> TYPE| NONE| PARENT_NOT_SET[ 1/ 4/ 7/ 0][1/1/0][ 8e 0400][0-0] int
+# 84> WORD| NONE| PARENT_NOT_SET[ 5/ 8/ 11/ 1][1/1/0][ 300 0400][0-0] m_y
+# 84> SEMICOLON| NONE| PARENT_NOT_SET[ 8/ 11/ 12/ 0][1/1/0][ 2 0000 0400][0-0] ;
+# 84> NEWLINE| NONE| PARENT_NOT_SET[ 9/ 12/ 4/ 0][1/1/0][ 400][1-0]
+# 85> TYPE| NONE| PARENT_NOT_SET[ 1/ 4/ 7/ 0][1/1/0][ 8e 0400][0-0] int
+# 85> WORD| NONE| PARENT_NOT_SET[ 5/ 8/ 11/ 1][1/1/0][ 300 0400][0-0] m_z
+# 85> SEMICOLON| NONE| PARENT_NOT_SET[ 8/ 11/ 12/ 0][1/1/0][ 2 0000 0400][0-0] ;
+# 85> NEWLINE| NONE| PARENT_NOT_SET[ 9/ 12/ 1/ 0][1/1/0][ 400][1-0]
+# 86> BRACE_CLOSE| CLASS| PARENT_NOT_SET[ 1/ 1/ 2/ 0][0/0/0][ 2 0000 0400][0-0] }
+# 86> WORD| NONE| PARENT_NOT_SET[ 3/ 3/ 6/ 1][0/0/0][ 70c 0000][0-0] c31
+# 86> COMMA| NONE| PARENT_NOT_SET[ 6/ 6/ 7/ 0][0/0/0][ 2 0000 0000][0-0] ,
+# 86> PTR_TYPE| CLASS| PARENT_NOT_SET[ 8/ 8/ 9/ 1][0/0/0][ 2 0008 0000][0-0] *
+# 86> WORD| NONE| PARENT_NOT_SET[ 9/ 9/ 12/ 0][0/0/0][ 2508 0000][0-0] c32
+# 86> ASSIGN| NONE| PARENT_NOT_SET[ 13/ 13/ 14/ 1][0/0/0][ 2 0000 0000][0-0] =
+# 86> WORD| NONE| PARENT_NOT_SET[ 15/ 15/ 22/ 1][0/0/0][ 8 0000][0-0] nullptr
+# 86> COMMA| NONE| PARENT_NOT_SET[ 22/ 22/ 23/ 0][0/0/0][ 2 0000 0000][0-0] ,
+# 86> PTR_TYPE| CLASS| PARENT_NOT_SET[ 24/ 24/ 25/ 1][0/0/0][ 2 0008 0000][0-0] *
+# 86> WORD| NONE| PARENT_NOT_SET[ 25/ 25/ 28/ 0][0/0/0][ 508 0000][0-0] c33
+# 86> TSQUARE| NONE| PARENT_NOT_SET[ 28/ 28/ 30/ 0][0/0/0][ 2 0000 0000][0-0] []
+# 86> ASSIGN| NONE| PARENT_NOT_SET[ 31/ 31/ 32/ 1][0/0/0][ 2 0000 0000][0-0] =
+# 86> BRACE_OPEN| BRACED_INIT_LIST| PARENT_NOT_SET[ 33/ 33/ 34/ 1][0/0/0][ 2 4008 0000][0-0] {
+# 86> WORD| NONE| PARENT_NOT_SET[ 35/ 35/ 42/ 1][1/1/0][ 4008 0000][0-0] nullptr
+# 86> COMMA| NONE| PARENT_NOT_SET[ 42/ 42/ 43/ 0][1/1/0][ 2 4000 0000][0-0] ,
+# 86> WORD| NONE| PARENT_NOT_SET[ 44/ 44/ 51/ 1][1/1/0][ 4008 0000][0-0] nullptr
+# 86> BRACE_CLOSE| BRACED_INIT_LIST| PARENT_NOT_SET[ 52/ 52/ 53/ 1][0/0/0][ 2 4000 0000][0-0] }
+# 86> COMMA| NONE| PARENT_NOT_SET[ 53/ 53/ 54/ 0][0/0/0][ 2 0000 0000][0-0] ,
+# 86> WORD| NONE| PARENT_NOT_SET[ 55/ 55/ 58/ 1][0/0/0][ 2508 0000][0-0] c34
+# 86> BRACE_OPEN| BRACED_INIT_LIST| PARENT_NOT_SET[ 58/ 58/ 59/ 0][0/0/0][ 2 4000 0000][0-0] {
+# 86> NUMBER| NONE| PARENT_NOT_SET[ 60/ 60/ 61/ 1][1/1/0][ 400c 0000][0-0] 0
+# 86> COMMA| NONE| PARENT_NOT_SET[ 61/ 61/ 62/ 0][1/1/0][ 2 4000 0000][0-0] ,
+# 86> NUMBER| NONE| PARENT_NOT_SET[ 63/ 63/ 64/ 1][1/1/0][ 4008 0000][0-0] 1
+# 86> COMMA| NONE| PARENT_NOT_SET[ 64/ 64/ 65/ 0][1/1/0][ 2 4000 0000][0-0] ,
+# 86> NUMBER| NONE| PARENT_NOT_SET[ 66/ 66/ 67/ 1][1/1/0][ 4008 0000][0-0] 2
+# 86> BRACE_CLOSE| BRACED_INIT_LIST| PARENT_NOT_SET[ 67/ 67/ 68/ 0][0/0/0][ 2 4000 0000][0-0] }
+# 86> COMMA| NONE| PARENT_NOT_SET[ 68/ 68/ 69/ 0][0/0/0][ 2 0000 0000][0-0] ,
+# 86> PTR_TYPE| CLASS| PARENT_NOT_SET[ 70/ 70/ 71/ 1][0/0/0][ 2 0008 0000][0-0] *
+# 86> QUALIFIER| NONE| PARENT_NOT_SET[ 72/ 72/ 77/ 1][0/0/0][ a 0000][0-0] const
+# 86> FUNC_CALL| NONE| PARENT_NOT_SET[ 78/ 78/ 81/ 1][0/0/0][ 500 0000][0-0] c35
+# 86> FPAREN_OPEN| FUNC_CALL| PARENT_NOT_SET[ 81/ 81/ 82/ 0][0/0/0][ 2 0000 0000][0-0] (
+# 86> WORD| NONE| PARENT_NOT_SET[ 82/ 82/ 89/ 0][0/1/0][ 8 0010][0-0] nullptr
+# 86> FPAREN_CLOSE| FUNC_CALL| PARENT_NOT_SET[ 89/ 89/ 90/ 0][0/0/0][ 2 0000 0010][0-0] )
+# 86> COMMA| NONE| PARENT_NOT_SET[ 90/ 90/ 91/ 0][0/0/0][ 2 0000 0000][0-0] ,
+# 86> FUNC_CALL| NONE| PARENT_NOT_SET[ 92/ 92/ 95/ 1][0/0/0][ 508 0000][0-0] c16
+# 86> FPAREN_OPEN| FUNC_CALL| PARENT_NOT_SET[ 95/ 95/ 96/ 0][0/0/0][ 2 0000 0000][0-0] (
+# 86> NUMBER| NONE| PARENT_NOT_SET[ 96/ 96/ 97/ 0][0/1/0][ 8 0010][0-0] 0
+# 86> COMMA| NONE| PARENT_NOT_SET[ 97/ 97/ 98/ 0][0/1/0][ 2 0000 0010][0-0] ,
+# 86> NUMBER| NONE| PARENT_NOT_SET[ 99/ 99/100/ 1][0/1/0][ 8 0010][0-0] 1
+# 86> COMMA| NONE| PARENT_NOT_SET[100/100/101/ 0][0/1/0][ 2 0000 0010][0-0] ,
+# 86> NUMBER| NONE| PARENT_NOT_SET[102/102/103/ 1][0/1/0][ 8 0010][0-0] 2
+# 86> FPAREN_CLOSE| FUNC_CALL| PARENT_NOT_SET[103/103/104/ 0][0/0/0][ 2 0000 0010][0-0] )
+# 86> SEMICOLON| CLASS| PARENT_NOT_SET[104/104/105/ 0][0/0/0][ 2 0000 0000][0-0] ;
+# 86> NEWLINE| NONE| PARENT_NOT_SET[105/105/ 1/ 0][0/0/0][ 0][2-0]
+# 88> COMMENT_CPP| COMMENT_WHOLE| PARENT_NOT_SET[ 1/ 1/ 52/ 0][0/0/0][ 0][0-0] // class/struct [macros/attributes ...] type x, ...
+# 88> NEWLINE| NONE| PARENT_NOT_SET[ 52/ 52/ 1/ 0][0/0/0][ 0][1-0]
+# 89> CLASS| NONE| PARENT_NOT_SET[ 1/ 1/ 6/ 0][0/0/0][ e 0000][0-0] class
+# 89> ATTRIBUTE| NONE| PARENT_NOT_SET[ 7/ 7/ 20/ 1][0/0/0][ 0][0-0] __attribute__
+# 89> FPAREN_OPEN| ATTRIBUTE| PARENT_NOT_SET[ 20/ 20/ 21/ 0][0/0/0][ 2 0000 0000][0-0] (
+# 89> PAREN_OPEN| NONE| PARENT_NOT_SET[ 21/ 21/ 22/ 0][0/1/0][ 2 0008 0000][0-0] (
+# 89> WORD| NONE| PARENT_NOT_SET[ 22/ 22/ 36/ 0][0/2/0][ 8 0000][0-0] __deprecated__
+# 89> PAREN_CLOSE| NONE| PARENT_NOT_SET[ 36/ 36/ 37/ 0][0/1/0][ 2 0000 0000][0-0] )
+# 89> FPAREN_CLOSE| ATTRIBUTE| PARENT_NOT_SET[ 37/ 37/ 38/ 0][0/0/0][ 2 0000 0000][0-0] )
+# 89> WORD| NONE| PARENT_NOT_SET[ 39/ 39/ 49/ 1][0/0/0][ e 0000][0-0] API_EXPORT
+# 89> MACRO_FUNC_CALL| NONE| PARENT_NOT_SET[ 50/ 50/ 57/ 1][0/0/0][ 0][0-0] ALIGNAS
+# 89> FPAREN_OPEN| MACRO_FUNC_CALL| PARENT_NOT_SET[ 57/ 57/ 58/ 0][0/0/0][ 2 0000 0000][0-0] (
+# 89> NUMBER| NONE| PARENT_NOT_SET[ 58/ 58/ 59/ 0][0/1/0][ 8 0000][0-0] 4
+# 89> FPAREN_CLOSE| MACRO_FUNC_CALL| PARENT_NOT_SET[ 59/ 59/ 60/ 0][0/0/0][ 2 0000 0000][0-0] )
+# 89> TYPE| CLASS| PARENT_NOT_SET[ 61/ 61/ 63/ 1][0/0/0][ 82 0000][0-0] c3
+# 89> WORD| NONE| PARENT_NOT_SET[ 64/ 64/ 67/ 1][0/0/0][ 300 0000][0-0] c41
+# 89> COMMA| NONE| PARENT_NOT_SET[ 67/ 67/ 68/ 0][0/0/0][ 2 0000 0000][0-0] ,
+# 89> PTR_TYPE| CLASS| PARENT_NOT_SET[ 69/ 69/ 70/ 1][0/0/0][ 2 0008 0000][0-0] *
+# 89> WORD| NONE| PARENT_NOT_SET[ 70/ 70/ 73/ 0][0/0/0][ 2108 0000][0-0] c42
+# 89> ASSIGN| NONE| PARENT_NOT_SET[ 74/ 74/ 75/ 1][0/0/0][ 2 0000 0000][0-0] =
+# 89> WORD| NONE| PARENT_NOT_SET[ 76/ 76/ 79/ 1][0/0/0][ 8 0000][0-0] c32
+# 89> QUESTION| NONE| PARENT_NOT_SET[ 80/ 80/ 81/ 1][0/0/0][ 2 0000 0000][0-0] ?
+# 89> WORD| NONE| PARENT_NOT_SET[ 82/ 82/ 85/ 1][0/0/0][ 8 0000][0-0] c32
+# 89> COND_COLON| NONE| PARENT_NOT_SET[ 86/ 86/ 87/ 1][0/0/0][ 2 0000 0000][0-0] :
+# 89> WORD| NONE| PARENT_NOT_SET[ 88/ 88/ 95/ 1][0/0/0][ c 0000][0-0] nullptr
+# 89> COMMA| NONE| PARENT_NOT_SET[ 95/ 95/ 96/ 0][0/0/0][ 2 0000 0000][0-0] ,
+# 89> PTR_TYPE| CLASS| PARENT_NOT_SET[ 97/ 97/ 98/ 1][0/0/0][ 2 0008 0000][0-0] *
+# 89> WORD| NONE| PARENT_NOT_SET[ 98/ 98/101/ 0][0/0/0][ 108 0000][0-0] c43
+# 89> TSQUARE| NONE| PARENT_NOT_SET[101/101/103/ 0][0/0/0][ 2 0000 0000][0-0] []
+# 89> ASSIGN| NONE| PARENT_NOT_SET[104/104/105/ 1][0/0/0][ 2 0000 0000][0-0] =
+# 89> BRACE_OPEN| BRACED_INIT_LIST| PARENT_NOT_SET[106/106/107/ 1][0/0/0][ 2 4008 0000][0-0] {
+# 89> WORD| NONE| PARENT_NOT_SET[108/108/115/ 1][1/1/0][ 4008 0000][0-0] nullptr
+# 89> COMMA| NONE| PARENT_NOT_SET[115/115/116/ 0][1/1/0][ 2 4000 0000][0-0] ,
+# 89> WORD| NONE| PARENT_NOT_SET[117/117/124/ 1][1/1/0][ 4008 0000][0-0] nullptr
+# 89> BRACE_CLOSE| BRACED_INIT_LIST| PARENT_NOT_SET[125/125/126/ 1][0/0/0][ 2 4000 0000][0-0] }
+# 89> COMMA| NONE| PARENT_NOT_SET[126/126/127/ 0][0/0/0][ 2 0000 0000][0-0] ,
+# 89> WORD| NONE| PARENT_NOT_SET[128/128/131/ 1][0/0/0][ 2108 0000][0-0] c44
+# 89> BRACE_OPEN| BRACED_INIT_LIST| PARENT_NOT_SET[131/131/132/ 0][0/0/0][ 2 4000 0000][0-0] {
+# 89> NUMBER| NONE| PARENT_NOT_SET[133/133/134/ 1][1/1/0][ 400c 0000][0-0] 0
+# 89> COMMA| NONE| PARENT_NOT_SET[134/134/135/ 0][1/1/0][ 2 4000 0000][0-0] ,
+# 89> NUMBER| NONE| PARENT_NOT_SET[136/136/137/ 1][1/1/0][ 4008 0000][0-0] 1
+# 89> COMMA| NONE| PARENT_NOT_SET[137/137/138/ 0][1/1/0][ 2 4000 0000][0-0] ,
+# 89> NUMBER| NONE| PARENT_NOT_SET[139/139/140/ 1][1/1/0][ 4008 0000][0-0] 2
+# 89> BRACE_CLOSE| BRACED_INIT_LIST| PARENT_NOT_SET[140/140/141/ 0][0/0/0][ 2 4000 0000][0-0] }
+# 89> COMMA| NONE| PARENT_NOT_SET[141/141/142/ 0][0/0/0][ 2 0000 0000][0-0] ,
+# 89> PTR_TYPE| CLASS| PARENT_NOT_SET[143/143/144/ 1][0/0/0][ 2 0008 0000][0-0] *
+# 89> QUALIFIER| NONE| PARENT_NOT_SET[145/145/150/ 1][0/0/0][ a 0000][0-0] const
+# 89> FUNC_CALL| NONE| PARENT_NOT_SET[151/151/154/ 1][0/0/0][ 100 0000][0-0] c45
+# 89> FPAREN_OPEN| FUNC_CALL| PARENT_NOT_SET[154/154/155/ 0][0/0/0][ 2 0000 0000][0-0] (
+# 89> WORD| NONE| PARENT_NOT_SET[155/155/162/ 0][0/1/0][ 8 0010][0-0] nullptr
+# 89> FPAREN_CLOSE| FUNC_CALL| PARENT_NOT_SET[162/162/163/ 0][0/0/0][ 2 0000 0010][0-0] )
+# 89> COMMA| NONE| PARENT_NOT_SET[163/163/164/ 0][0/0/0][ 2 0000 0000][0-0] ,
+# 89> FUNC_CALL| NONE| PARENT_NOT_SET[165/165/168/ 1][0/0/0][ 108 0000][0-0] c46
+# 89> FPAREN_OPEN| FUNC_CALL| PARENT_NOT_SET[168/168/169/ 0][0/0/0][ 2 0000 0000][0-0] (
+# 89> NUMBER| NONE| PARENT_NOT_SET[169/169/170/ 0][0/1/0][ 8 0010][0-0] 0
+# 89> COMMA| NONE| PARENT_NOT_SET[170/170/171/ 0][0/1/0][ 2 0000 0010][0-0] ,
+# 89> NUMBER| NONE| PARENT_NOT_SET[172/172/173/ 1][0/1/0][ 8 0010][0-0] 1
+# 89> COMMA| NONE| PARENT_NOT_SET[173/173/174/ 0][0/1/0][ 2 0000 0010][0-0] ,
+# 89> NUMBER| NONE| PARENT_NOT_SET[175/175/176/ 1][0/1/0][ 8 0010][0-0] 2
+# 89> FPAREN_CLOSE| FUNC_CALL| PARENT_NOT_SET[176/176/177/ 0][0/0/0][ 2 0000 0010][0-0] )
+# 89> SEMICOLON| CLASS| PARENT_NOT_SET[177/177/178/ 0][0/0/0][ 2 0000 0000][0-0] ;
+# 89> NEWLINE| NONE| PARENT_NOT_SET[178/178/ 1/ 0][0/0/0][ 0][2-0]
+# 91> COMMENT_CPP| COMMENT_WHOLE| PARENT_NOT_SET[ 1/ 1/ 68/ 0][0/0/0][ 0][0-0] // class/struct [macros/attributes ...] type : bases ... { } x, ...
+# 91> NEWLINE| NONE| PARENT_NOT_SET[ 68/ 68/ 1/ 0][0/0/0][ 0][1-0]
+# 92> CLASS| NONE| PARENT_NOT_SET[ 1/ 1/ 6/ 0][0/0/0][ e 0000][0-0] class
+# 92> FUNC_CALL| NONE| PARENT_NOT_SET[ 7/ 7/ 14/ 1][0/0/0][ 0][0-0] ALIGNAS
+# 92> FPAREN_OPEN| FUNC_CALL| PARENT_NOT_SET[ 14/ 14/ 15/ 0][0/0/0][ 2 0000 0000][0-0] (
+# 92> NUMBER| NONE| PARENT_NOT_SET[ 15/ 15/ 16/ 0][0/1/0][ 8 0010][0-0] 4
+# 92> FPAREN_CLOSE| FUNC_CALL| PARENT_NOT_SET[ 16/ 16/ 17/ 0][0/0/0][ 2 0000 0010][0-0] )
+# 92> WORD| NONE| PARENT_NOT_SET[ 18/ 18/ 28/ 1][0/0/0][ 2 0000][0-0] API_EXPORT
+# 92> ATTRIBUTE| NONE| PARENT_NOT_SET[ 29/ 29/ 42/ 1][0/0/0][ 0][0-0] __attribute__
+# 92> FPAREN_OPEN| ATTRIBUTE| PARENT_NOT_SET[ 42/ 42/ 43/ 0][0/0/0][ 2 0000 0000][0-0] (
+# 92> PAREN_OPEN| NONE| PARENT_NOT_SET[ 43/ 43/ 44/ 0][0/1/0][ 2 0008 0000][0-0] (
+# 92> WORD| NONE| PARENT_NOT_SET[ 44/ 44/ 58/ 0][0/2/0][ 8 0000][0-0] __deprecated__
+# 92> PAREN_CLOSE| NONE| PARENT_NOT_SET[ 58/ 58/ 59/ 0][0/1/0][ 2 0000 0000][0-0] )
+# 92> FPAREN_CLOSE| ATTRIBUTE| PARENT_NOT_SET[ 59/ 59/ 60/ 0][0/0/0][ 2 0000 0000][0-0] )
+# 92> NEWLINE| NONE| PARENT_NOT_SET[ 60/ 60/ 1/ 0][0/0/0][ 0][1-0]
+# 93> CLASS_COLON| CLASS| PARENT_NOT_SET[ 9/ 1/ 2/ 0][0/0/0][ 2 0000 0800][0-0] :
+# 93> QUALIFIER| NONE| PARENT_NOT_SET[ 11/ 3/ 9/ 1][0/0/0][ e 0800][0-0] public
+# 93> TYPE| NONE| PARENT_NOT_SET[ 18/ 10/ 25/ 1][0/0/0][ 800][0-0] outer_namespace
+# 93> DC_MEMBER| NONE| PARENT_NOT_SET[ 33/ 25/ 27/ 0][0/0/0][ 2 0000 0800][0-0] ::
+# 93> TYPE| NONE| PARENT_NOT_SET[ 35/ 27/ 42/ 0][0/0/0][ 800][0-0] inner_namespace
+# 93> DC_MEMBER| NONE| PARENT_NOT_SET[ 50/ 42/ 44/ 0][0/0/0][ 2 0000 0800][0-0] ::
+# 93> TYPE| NONE| PARENT_NOT_SET[ 52/ 44/ 49/ 0][0/0/0][ 800][0-0] Base1
+# 93> NEWLINE| NONE| PARENT_NOT_SET[ 57/ 49/ 1/ 0][0/0/0][ 0][1-0]
+# 94> BRACE_OPEN| CLASS| PARENT_NOT_SET[ 1/ 1/ 2/ 0][0/0/0][ 2 0000 0000][0-0] {
+# 94> NEWLINE| NONE| PARENT_NOT_SET[ 2/ 2/ 1/ 0][1/1/0][ 400][1-0]
+# 95> ACCESS| NONE| PARENT_NOT_SET[ 1/ 1/ 7/ 0][1/1/0][ c 0400][0-0] public
+# 95> ACCESS_COLON| NONE| PARENT_NOT_SET[ 7/ 7/ 8/ 0][1/1/0][ 2 0000 0400][0-0] :
+# 95> NEWLINE| NONE| PARENT_NOT_SET[ 8/ 8/ 4/ 0][1/1/0][ 400][1-0]
+# 96> TYPE| NONE| PARENT_NOT_SET[ 1/ 4/ 7/ 0][1/1/0][ 8e 0400][0-0] int
+# 96> WORD| NONE| PARENT_NOT_SET[ 5/ 8/ 11/ 1][1/1/0][ 300 0400][0-0] m_x
+# 96> SEMICOLON| NONE| PARENT_NOT_SET[ 8/ 11/ 12/ 0][1/1/0][ 2 0000 0400][0-0] ;
+# 96> NEWLINE| NONE| PARENT_NOT_SET[ 9/ 12/ 4/ 0][1/1/0][ 400][1-0]
+# 97> TYPE| NONE| PARENT_NOT_SET[ 1/ 4/ 7/ 0][1/1/0][ 8e 0400][0-0] int
+# 97> WORD| NONE| PARENT_NOT_SET[ 5/ 8/ 11/ 1][1/1/0][ 300 0400][0-0] m_y
+# 97> SEMICOLON| NONE| PARENT_NOT_SET[ 8/ 11/ 12/ 0][1/1/0][ 2 0000 0400][0-0] ;
+# 97> NEWLINE| NONE| PARENT_NOT_SET[ 9/ 12/ 4/ 0][1/1/0][ 400][1-0]
+# 98> TYPE| NONE| PARENT_NOT_SET[ 1/ 4/ 7/ 0][1/1/0][ 8e 0400][0-0] int
+# 98> WORD| NONE| PARENT_NOT_SET[ 5/ 8/ 11/ 1][1/1/0][ 300 0400][0-0] m_z
+# 98> SEMICOLON| NONE| PARENT_NOT_SET[ 8/ 11/ 12/ 0][1/1/0][ 2 0000 0400][0-0] ;
+# 98> NEWLINE| NONE| PARENT_NOT_SET[ 9/ 12/ 1/ 0][1/1/0][ 400][1-0]
+# 99> BRACE_CLOSE| CLASS| PARENT_NOT_SET[ 1/ 1/ 2/ 0][0/0/0][ 2 0000 0400][0-0] }
+# 99> WORD| NONE| PARENT_NOT_SET[ 3/ 3/ 6/ 1][0/0/0][ 70c 0000][0-0] c51
+# 99> COMMA| NONE| PARENT_NOT_SET[ 6/ 6/ 7/ 0][0/0/0][ 2 0000 0000][0-0] ,
+# 99> PTR_TYPE| CLASS| PARENT_NOT_SET[ 8/ 8/ 9/ 1][0/0/0][ 2 0008 0000][0-0] *
+# 99> WORD| NONE| PARENT_NOT_SET[ 9/ 9/ 12/ 0][0/0/0][ 2508 0000][0-0] c52
+# 99> ASSIGN| NONE| PARENT_NOT_SET[ 13/ 13/ 14/ 1][0/0/0][ 2 0000 0000][0-0] =
+# 99> WORD| NONE| PARENT_NOT_SET[ 15/ 15/ 22/ 1][0/0/0][ 8 0000][0-0] nullptr
+# 99> COMMA| NONE| PARENT_NOT_SET[ 22/ 22/ 23/ 0][0/0/0][ 2 0000 0000][0-0] ,
+# 99> PTR_TYPE| CLASS| PARENT_NOT_SET[ 24/ 24/ 25/ 1][0/0/0][ 2 0008 0000][0-0] *
+# 99> WORD| NONE| PARENT_NOT_SET[ 25/ 25/ 28/ 0][0/0/0][ 508 0000][0-0] c53
+# 99> TSQUARE| NONE| PARENT_NOT_SET[ 28/ 28/ 30/ 0][0/0/0][ 2 0000 0000][0-0] []
+# 99> ASSIGN| NONE| PARENT_NOT_SET[ 31/ 31/ 32/ 1][0/0/0][ 2 0000 0000][0-0] =
+# 99> BRACE_OPEN| BRACED_INIT_LIST| PARENT_NOT_SET[ 33/ 33/ 34/ 1][0/0/0][ 2 4008 0000][0-0] {
+# 99> WORD| NONE| PARENT_NOT_SET[ 35/ 35/ 42/ 1][1/1/0][ 4008 0000][0-0] nullptr
+# 99> COMMA| NONE| PARENT_NOT_SET[ 42/ 42/ 43/ 0][1/1/0][ 2 4000 0000][0-0] ,
+# 99> WORD| NONE| PARENT_NOT_SET[ 44/ 44/ 51/ 1][1/1/0][ 4008 0000][0-0] nullptr
+# 99> BRACE_CLOSE| BRACED_INIT_LIST| PARENT_NOT_SET[ 52/ 52/ 53/ 1][0/0/0][ 2 4000 0000][0-0] }
+# 99> SEMICOLON| CLASS| PARENT_NOT_SET[ 53/ 53/ 54/ 0][0/0/0][ 2 0000 0000][0-0] ;
+# 99> NEWLINE| NONE| PARENT_NOT_SET[ 54/ 54/ 1/ 0][0/0/0][ 0][3-0]
+# 102> COMMENT_CPP| COMMENT_WHOLE| PARENT_NOT_SET[ 1/ 1/ 44/ 0][0/0/0][ 0][0-0] // enum type : integral_type { ... } x, ...
+# 102> NEWLINE| NONE| PARENT_NOT_SET[ 44/ 44/ 1/ 0][0/0/0][ 0][1-0]
+# 103> ENUM| NONE| PARENT_NOT_SET[ 1/ 1/ 5/ 0][0/0/0][ e 0000][0-0] enum
+# 103> TYPE| ENUM| PARENT_NOT_SET[ 6/ 6/ 8/ 1][0/0/0][ 80 0000][0-0] e1
+# 103> BIT_COLON| ENUM| PARENT_NOT_SET[ 9/ 9/ 10/ 1][0/0/0][ 2 0000 0000][0-0] :
+# 103> TYPE| BIT_COLON| PARENT_NOT_SET[ 11/ 11/ 15/ 1][0/0/0][ e 0000][0-0] long
+# 103> TYPE| BIT_COLON| PARENT_NOT_SET[ 16/ 16/ 20/ 1][0/0/0][ 0][0-0] long
+# 103> BRACE_OPEN| ENUM| PARENT_NOT_SET[ 21/ 21/ 22/ 1][0/0/0][ 2 4000 0000][0-0] {
+# 103> WORD| NONE| PARENT_NOT_SET[ 23/ 23/ 25/ 1][1/1/0][ 400c 0004][0-0] a1
+# 103> COMMA| NONE| PARENT_NOT_SET[ 25/ 25/ 26/ 0][1/1/0][ 2 4000 0004][0-0] ,
+# 103> WORD| NONE| PARENT_NOT_SET[ 27/ 27/ 29/ 1][1/1/0][ 4008 0004][0-0] b1
+# 103> COMMA| NONE| PARENT_NOT_SET[ 29/ 29/ 30/ 0][1/1/0][ 2 4000 0004][0-0] ,
+# 103> WORD| NONE| PARENT_NOT_SET[ 31/ 31/ 33/ 1][1/1/0][ 4008 0004][0-0] d1
+# 103> BRACE_CLOSE| ENUM| PARENT_NOT_SET[ 34/ 34/ 35/ 1][0/0/0][ 2 4000 0004][0-0] }
+# 103> WORD| NONE| PARENT_NOT_SET[ 36/ 36/ 39/ 1][0/0/0][ 70c 0000][0-0] e11
+# 103> COMMA| NONE| PARENT_NOT_SET[ 39/ 39/ 40/ 0][0/0/0][ 2 0000 0000][0-0] ,
+# 103> WORD| NONE| PARENT_NOT_SET[ 41/ 41/ 44/ 1][0/0/0][ 508 0000][0-0] e12
+# 103> COMMA| NONE| PARENT_NOT_SET[ 44/ 44/ 45/ 0][0/0/0][ 2 0000 0000][0-0] ,
+# 103> WORD| NONE| PARENT_NOT_SET[ 46/ 46/ 49/ 1][0/0/0][ 508 0000][0-0] e13
+# 103> SEMICOLON| ENUM| PARENT_NOT_SET[ 49/ 49/ 50/ 0][0/0/0][ 2 0000 0000][0-0] ;
+# 103> NEWLINE| NONE| PARENT_NOT_SET[ 50/ 50/ 1/ 0][0/0/0][ 0][2-0]
+# 105> COMMENT_CPP| COMMENT_WHOLE| PARENT_NOT_SET[ 1/ 1/ 37/ 0][0/0/0][ 0][0-0] // enum type : integral_type { ... }
+# 105> NEWLINE| NONE| PARENT_NOT_SET[ 37/ 37/ 1/ 0][0/0/0][ 0][1-0]
+# 106> ENUM| NONE| PARENT_NOT_SET[ 1/ 1/ 5/ 0][0/0/0][ e 0000][0-0] enum
+# 106> TYPE| ENUM| PARENT_NOT_SET[ 6/ 6/ 8/ 1][0/0/0][ 0][0-0] e2
+# 106> BIT_COLON| ENUM| PARENT_NOT_SET[ 9/ 9/ 10/ 1][0/0/0][ 2 0000 0000][0-0] :
+# 106> TYPE| BIT_COLON| PARENT_NOT_SET[ 11/ 11/ 19/ 1][0/0/0][ e 0000][0-0] unsigned
+# 106> TYPE| BIT_COLON| PARENT_NOT_SET[ 20/ 20/ 23/ 1][0/0/0][ 0][0-0] int
+# 106> BRACE_OPEN| ENUM| PARENT_NOT_SET[ 24/ 24/ 25/ 1][0/0/0][ 2 4000 0000][0-0] {
+# 106> WORD| NONE| PARENT_NOT_SET[ 26/ 26/ 28/ 1][1/1/0][ 400c 0004][0-0] a2
+# 106> COMMA| NONE| PARENT_NOT_SET[ 28/ 28/ 29/ 0][1/1/0][ 2 4000 0004][0-0] ,
+# 106> WORD| NONE| PARENT_NOT_SET[ 30/ 30/ 32/ 1][1/1/0][ 4008 0004][0-0] b2
+# 106> COMMA| NONE| PARENT_NOT_SET[ 32/ 32/ 33/ 0][1/1/0][ 2 4000 0004][0-0] ,
+# 106> WORD| NONE| PARENT_NOT_SET[ 34/ 34/ 36/ 1][1/1/0][ 4008 0004][0-0] d2
+# 106> BRACE_CLOSE| ENUM| PARENT_NOT_SET[ 37/ 37/ 38/ 1][0/0/0][ 2 4000 0004][0-0] }
+# 106> SEMICOLON| ENUM| PARENT_NOT_SET[ 38/ 38/ 39/ 0][0/0/0][ 2 0000 0000][0-0] ;
+# 106> NEWLINE| NONE| PARENT_NOT_SET[ 39/ 39/ 1/ 0][0/0/0][ 0][2-0]
+# 108> COMMENT_CPP| COMMENT_WHOLE| PARENT_NOT_SET[ 1/ 1/ 29/ 0][0/0/0][ 0][0-0] // enum type : integral_type
+# 108> NEWLINE| NONE| PARENT_NOT_SET[ 29/ 29/ 1/ 0][0/0/0][ 0][1-0]
+# 109> ENUM| NONE| PARENT_NOT_SET[ 1/ 1/ 5/ 0][0/0/0][1000 000e 0000][0-0] enum
+# 109> TYPE| ENUM| PARENT_NOT_SET[ 6/ 6/ 8/ 1][0/0/0][1000 0000 0000][0-0] e3
+# 109> BIT_COLON| ENUM| PARENT_NOT_SET[ 9/ 9/ 10/ 1][0/0/0][ 2 0000 0000][0-0] :
+# 109> TYPE| BIT_COLON| PARENT_NOT_SET[ 11/ 11/ 16/ 1][0/0/0][ c 0000][0-0] short
+# 109> SEMICOLON| ENUM| PARENT_NOT_SET[ 16/ 16/ 17/ 0][0/0/0][ 2 0000 0000][0-0] ;
+# 109> NEWLINE| NONE| PARENT_NOT_SET[ 17/ 17/ 1/ 0][0/0/0][ 0][2-0]
+# 111> COMMENT_CPP| COMMENT_WHOLE| PARENT_NOT_SET[ 1/ 1/ 20/ 0][0/0/0][ 0][0-0] // enum type x, ...
+# 111> NEWLINE| NONE| PARENT_NOT_SET[ 20/ 20/ 1/ 0][0/0/0][ 0][1-0]
+# 112> ENUM| NONE| PARENT_NOT_SET[ 1/ 1/ 5/ 0][0/0/0][ e 0000][0-0] enum
+# 112> TYPE| ENUM| PARENT_NOT_SET[ 6/ 6/ 8/ 1][0/0/0][ 82 0000][0-0] e3
+# 112> WORD| NONE| PARENT_NOT_SET[ 9/ 9/ 12/ 1][0/0/0][ 300 0000][0-0] e31
+# 112> COMMA| NONE| PARENT_NOT_SET[ 12/ 12/ 13/ 0][0/0/0][ 2 0000 0000][0-0] ,
+# 112> WORD| NONE| PARENT_NOT_SET[ 14/ 14/ 17/ 1][0/0/0][ 108 0000][0-0] e32
+# 112> SEMICOLON| ENUM| PARENT_NOT_SET[ 17/ 17/ 18/ 0][0/0/0][ 2 0000 0000][0-0] ;
+# 112> NEWLINE| NONE| PARENT_NOT_SET[ 18/ 18/ 1/ 0][0/0/0][ 0][2-0]
+# 114> COMMENT_CPP| COMMENT_WHOLE| PARENT_NOT_SET[ 1/ 1/ 50/ 0][0/0/0][ 0][0-0] // enum class type : integral_type { ... } x, ...
+# 114> NEWLINE| NONE| PARENT_NOT_SET[ 50/ 50/ 1/ 0][0/0/0][ 0][1-0]
+# 115> ENUM| NONE| PARENT_NOT_SET[ 1/ 1/ 5/ 0][0/0/0][ e 0000][0-0] enum
+# 115> ENUM_CLASS| NONE| PARENT_NOT_SET[ 6/ 6/ 11/ 1][0/0/0][ 2 0000][0-0] class
+# 115> TYPE| ENUM| PARENT_NOT_SET[ 12/ 12/ 14/ 1][0/0/0][ 80 0000][0-0] e4
+# 115> BIT_COLON| ENUM| PARENT_NOT_SET[ 15/ 15/ 16/ 1][0/0/0][ 2 0000 0000][0-0] :
+# 115> TYPE| BIT_COLON| PARENT_NOT_SET[ 17/ 17/ 21/ 1][0/0/0][ e 0000][0-0] long
+# 115> TYPE| BIT_COLON| PARENT_NOT_SET[ 22/ 22/ 26/ 1][0/0/0][ 0][0-0] long
+# 115> BRACE_OPEN| ENUM| PARENT_NOT_SET[ 27/ 27/ 28/ 1][0/0/0][ 2 4000 0000][0-0] {
+# 115> WORD| NONE| PARENT_NOT_SET[ 29/ 29/ 31/ 1][1/1/0][ 400c 0004][0-0] a4
+# 115> COMMA| NONE| PARENT_NOT_SET[ 31/ 31/ 32/ 0][1/1/0][ 2 4000 0004][0-0] ,
+# 115> WORD| NONE| PARENT_NOT_SET[ 33/ 33/ 35/ 1][1/1/0][ 4008 0004][0-0] b4
+# 115> COMMA| NONE| PARENT_NOT_SET[ 35/ 35/ 36/ 0][1/1/0][ 2 4000 0004][0-0] ,
+# 115> WORD| NONE| PARENT_NOT_SET[ 37/ 37/ 39/ 1][1/1/0][ 4008 0004][0-0] d4
+# 115> BRACE_CLOSE| ENUM| PARENT_NOT_SET[ 40/ 40/ 41/ 1][0/0/0][ 2 4000 0004][0-0] }
+# 115> WORD| NONE| PARENT_NOT_SET[ 42/ 42/ 45/ 1][0/0/0][ 70c 0000][0-0] e41
+# 115> COMMA| NONE| PARENT_NOT_SET[ 45/ 45/ 46/ 0][0/0/0][ 2 0000 0000][0-0] ,
+# 115> WORD| NONE| PARENT_NOT_SET[ 47/ 47/ 50/ 1][0/0/0][ 508 0000][0-0] e42
+# 115> COMMA| NONE| PARENT_NOT_SET[ 50/ 50/ 51/ 0][0/0/0][ 2 0000 0000][0-0] ,
+# 115> WORD| NONE| PARENT_NOT_SET[ 52/ 52/ 55/ 1][0/0/0][ 508 0000][0-0] e43
+# 115> COMMA| NONE| PARENT_NOT_SET[ 55/ 55/ 56/ 0][0/0/0][ 2 0000 0000][0-0] ,
+# 115> WORD| NONE| PARENT_NOT_SET[ 57/ 57/ 60/ 1][0/0/0][ 508 0000][0-0] e44
+# 115> SEMICOLON| ENUM| PARENT_NOT_SET[ 60/ 60/ 61/ 0][0/0/0][ 2 0000 0000][0-0] ;
+# 115> NEWLINE| NONE| PARENT_NOT_SET[ 61/ 61/ 1/ 0][0/0/0][ 0][2-0]
+# 117> COMMENT_CPP| COMMENT_WHOLE| PARENT_NOT_SET[ 1/ 1/ 43/ 0][0/0/0][ 0][0-0] // enum class type : integral_type { ... }
+# 117> NEWLINE| NONE| PARENT_NOT_SET[ 43/ 43/ 1/ 0][0/0/0][ 0][1-0]
+# 118> ENUM| NONE| PARENT_NOT_SET[ 1/ 1/ 5/ 0][0/0/0][ e 0000][0-0] enum
+# 118> ENUM_CLASS| NONE| PARENT_NOT_SET[ 6/ 6/ 11/ 1][0/0/0][ 2 0000][0-0] class
+# 118> TYPE| ENUM| PARENT_NOT_SET[ 12/ 12/ 14/ 1][0/0/0][ 0][0-0] e5
+# 118> BIT_COLON| ENUM| PARENT_NOT_SET[ 15/ 15/ 16/ 1][0/0/0][ 2 0000 0000][0-0] :
+# 118> TYPE| BIT_COLON| PARENT_NOT_SET[ 17/ 17/ 25/ 1][0/0/0][ e 0000][0-0] unsigned
+# 118> TYPE| BIT_COLON| PARENT_NOT_SET[ 26/ 26/ 29/ 1][0/0/0][ 0][0-0] int
+# 118> BRACE_OPEN| ENUM| PARENT_NOT_SET[ 30/ 30/ 31/ 1][0/0/0][ 2 4000 0000][0-0] {
+# 118> WORD| NONE| PARENT_NOT_SET[ 32/ 32/ 34/ 1][1/1/0][ 400c 0004][0-0] a5
+# 118> COMMA| NONE| PARENT_NOT_SET[ 34/ 34/ 35/ 0][1/1/0][ 2 4000 0004][0-0] ,
+# 118> WORD| NONE| PARENT_NOT_SET[ 36/ 36/ 38/ 1][1/1/0][ 4008 0004][0-0] b5
+# 118> COMMA| NONE| PARENT_NOT_SET[ 38/ 38/ 39/ 0][1/1/0][ 2 4000 0004][0-0] ,
+# 118> WORD| NONE| PARENT_NOT_SET[ 40/ 40/ 42/ 1][1/1/0][ 4008 0004][0-0] d5
+# 118> BRACE_CLOSE| ENUM| PARENT_NOT_SET[ 43/ 43/ 44/ 1][0/0/0][ 2 4000 0004][0-0] }
+# 118> SEMICOLON| ENUM| PARENT_NOT_SET[ 44/ 44/ 45/ 0][0/0/0][ 2 0000 0000][0-0] ;
+# 118> NEWLINE| NONE| PARENT_NOT_SET[ 45/ 45/ 1/ 0][0/0/0][ 0][2-0]
+# 120> COMMENT_CPP| COMMENT_WHOLE| PARENT_NOT_SET[ 1/ 1/ 35/ 0][0/0/0][ 0][0-0] // enum class type : integral_type
+# 120> NEWLINE| NONE| PARENT_NOT_SET[ 35/ 35/ 1/ 0][0/0/0][ 0][1-0]
+# 121> ENUM| NONE| PARENT_NOT_SET[ 1/ 1/ 5/ 0][0/0/0][1000 000e 0000][0-0] enum
+# 121> ENUM_CLASS| NONE| PARENT_NOT_SET[ 6/ 6/ 11/ 1][0/0/0][1000 0002 0000][0-0] class
+# 121> TYPE| ENUM| PARENT_NOT_SET[ 12/ 12/ 14/ 1][0/0/0][1000 0000 0000][0-0] e6
+# 121> BIT_COLON| ENUM| PARENT_NOT_SET[ 15/ 15/ 16/ 1][0/0/0][ 2 0000 0000][0-0] :
+# 121> TYPE| BIT_COLON| PARENT_NOT_SET[ 17/ 17/ 22/ 1][0/0/0][ c 0000][0-0] short
+# 121> SEMICOLON| ENUM| PARENT_NOT_SET[ 22/ 22/ 23/ 0][0/0/0][ 2 0000 0000][0-0] ;
+# 121> NEWLINE| NONE| PARENT_NOT_SET[ 23/ 23/ 1/ 0][0/0/0][ 0][2-0]
+# 123> COMMENT_CPP| COMMENT_WHOLE| PARENT_NOT_SET[ 1/ 1/ 19/ 0][0/0/0][ 0][0-0] // enum class type
+# 123> NEWLINE| NONE| PARENT_NOT_SET[ 19/ 19/ 1/ 0][0/0/0][ 0][1-0]
+# 124> ENUM| NONE| PARENT_NOT_SET[ 1/ 1/ 5/ 0][0/0/0][1000 000e 0000][0-0] enum
+# 124> ENUM_CLASS| NONE| PARENT_NOT_SET[ 6/ 6/ 11/ 1][0/0/0][1000 0002 0000][0-0] class
+# 124> TYPE| ENUM| PARENT_NOT_SET[ 12/ 12/ 14/ 1][0/0/0][1000 0000 0000][0-0] e7
+# 124> SEMICOLON| ENUM| PARENT_NOT_SET[ 14/ 14/ 15/ 0][0/0/0][ 2 0000 0000][0-0] ;
+# 124> NEWLINE| NONE| PARENT_NOT_SET[ 15/ 15/ 1/ 0][0/0/0][ 0][2-0]
+# 126> COMMENT_CPP| COMMENT_WHOLE| PARENT_NOT_SET[ 1/ 1/ 39/ 0][0/0/0][ 0][0-0] // enum : integral_type { ... } x, ...
+# 126> NEWLINE| NONE| PARENT_NOT_SET[ 39/ 39/ 1/ 0][0/0/0][ 0][1-0]
+# 127> ENUM| NONE| PARENT_NOT_SET[ 1/ 1/ 5/ 0][0/0/0][ c 0000][0-0] enum
+# 127> BIT_COLON| ENUM| PARENT_NOT_SET[ 6/ 6/ 7/ 1][0/0/0][ 2 0000 0000][0-0] :
+# 127> TYPE| BIT_COLON| PARENT_NOT_SET[ 8/ 8/ 12/ 1][0/0/0][ e 0000][0-0] long
+# 127> TYPE| BIT_COLON| PARENT_NOT_SET[ 13/ 13/ 17/ 1][0/0/0][ 0][0-0] long
+# 127> BRACE_OPEN| ENUM| PARENT_NOT_SET[ 18/ 18/ 19/ 1][0/0/0][ 2 4000 0000][0-0] {
+# 127> WORD| NONE| PARENT_NOT_SET[ 20/ 20/ 22/ 1][1/1/0][ 400c 0004][0-0] a8
+# 127> COMMA| NONE| PARENT_NOT_SET[ 22/ 22/ 23/ 0][1/1/0][ 2 4000 0004][0-0] ,
+# 127> WORD| NONE| PARENT_NOT_SET[ 24/ 24/ 26/ 1][1/1/0][ 4008 0004][0-0] b8
+# 127> COMMA| NONE| PARENT_NOT_SET[ 26/ 26/ 27/ 0][1/1/0][ 2 4000 0004][0-0] ,
+# 127> WORD| NONE| PARENT_NOT_SET[ 28/ 28/ 30/ 1][1/1/0][ 4008 0004][0-0] c8
+# 127> BRACE_CLOSE| ENUM| PARENT_NOT_SET[ 31/ 31/ 32/ 1][0/0/0][ 2 4000 0004][0-0] }
+# 127> WORD| NONE| PARENT_NOT_SET[ 33/ 33/ 36/ 1][0/0/0][ 70c 0000][0-0] e81
+# 127> COMMA| NONE| PARENT_NOT_SET[ 36/ 36/ 37/ 0][0/0/0][ 2 0000 0000][0-0] ,
+# 127> WORD| NONE| PARENT_NOT_SET[ 38/ 38/ 41/ 1][0/0/0][ 508 0000][0-0] e82
+# 127> SEMICOLON| ENUM| PARENT_NOT_SET[ 41/ 41/ 42/ 0][0/0/0][ 2 0000 0000][0-0] ;
+# 127> NEWLINE| NONE| PARENT_NOT_SET[ 42/ 42/ 1/ 0][0/0/0][ 0][2-0]
+# 129> COMMENT_CPP| COMMENT_WHOLE| PARENT_NOT_SET[ 1/ 1/ 23/ 0][0/0/0][ 0][0-0] // enum { ... } x, ...
+# 129> NEWLINE| NONE| PARENT_NOT_SET[ 23/ 23/ 1/ 0][0/0/0][ 0][1-0]
+# 130> ENUM| NONE| PARENT_NOT_SET[ 1/ 1/ 5/ 0][0/0/0][ c 0000][0-0] enum
+# 130> BRACE_OPEN| ENUM| PARENT_NOT_SET[ 6/ 6/ 7/ 1][0/0/0][ 2 4000 0000][0-0] {
+# 130> WORD| NONE| PARENT_NOT_SET[ 8/ 8/ 10/ 1][1/1/0][ 400c 0004][0-0] a9
+# 130> COMMA| NONE| PARENT_NOT_SET[ 10/ 10/ 11/ 0][1/1/0][ 2 4000 0004][0-0] ,
+# 130> WORD| NONE| PARENT_NOT_SET[ 12/ 12/ 14/ 1][1/1/0][ 4008 0004][0-0] b9
+# 130> COMMA| NONE| PARENT_NOT_SET[ 14/ 14/ 15/ 0][1/1/0][ 2 4000 0004][0-0] ,
+# 130> WORD| NONE| PARENT_NOT_SET[ 16/ 16/ 18/ 1][1/1/0][ 4008 0004][0-0] c9
+# 130> BRACE_CLOSE| ENUM| PARENT_NOT_SET[ 19/ 19/ 20/ 1][0/0/0][ 2 4000 0004][0-0] }
+# 130> WORD| NONE| PARENT_NOT_SET[ 21/ 21/ 24/ 1][0/0/0][ 70c 0000][0-0] e91
+# 130> COMMA| NONE| PARENT_NOT_SET[ 24/ 24/ 25/ 0][0/0/0][ 2 0000 0000][0-0] ,
+# 130> WORD| NONE| PARENT_NOT_SET[ 26/ 26/ 29/ 1][0/0/0][ 508 0000][0-0] e92
+# 130> SEMICOLON| ENUM| PARENT_NOT_SET[ 29/ 29/ 30/ 0][0/0/0][ 2 0000 0000][0-0] ;
+# 130> NEWLINE| NONE| PARENT_NOT_SET[ 30/ 30/ 1/ 0][0/0/0][ 0][2-0]
+# 132> UNION| NONE| PARENT_NOT_SET[ 1/ 1/ 6/ 0][0/0/0][ e 0000][0-0] union
+# 132> WORD| NONE| PARENT_NOT_SET[ 7/ 7/ 17/ 1][0/0/0][ 2 0000][0-0] API_EXPORT
+# 132> TYPE| UNION| PARENT_NOT_SET[ 18/ 18/ 20/ 1][0/0/0][ 80 0000][0-0] u1
+# 132> BRACE_OPEN| UNION| PARENT_NOT_SET[ 21/ 21/ 22/ 1][0/0/0][ 2 4000 0000][0-0] {
+# 132> TYPE| NONE| PARENT_NOT_SET[ 23/ 23/ 26/ 1][1/1/0][ 408e 0000][0-0] int
+# 132> WORD| NONE| PARENT_NOT_SET[ 27/ 27/ 28/ 1][1/1/0][ 4300 0000][0-0] x
+# 132> SEMICOLON| NONE| PARENT_NOT_SET[ 28/ 28/ 29/ 0][1/1/0][ 2 4000 0000][0-0] ;
+# 132> TYPE| NONE| PARENT_NOT_SET[ 30/ 30/ 34/ 1][1/1/0][ 408e 0000][0-0] long
+# 132> WORD| NONE| PARENT_NOT_SET[ 35/ 35/ 36/ 1][1/1/0][ 4300 0000][0-0] y
+# 132> SEMICOLON| NONE| PARENT_NOT_SET[ 36/ 36/ 37/ 0][1/1/0][ 2 4000 0000][0-0] ;
+# 132> BRACE_CLOSE| UNION| PARENT_NOT_SET[ 38/ 38/ 39/ 1][0/0/0][ 2 4000 0000][0-0] }
+# 132> WORD| NONE| PARENT_NOT_SET[ 40/ 40/ 43/ 1][0/0/0][ 70c 0000][0-0] u11
+# 132> COMMA| NONE| PARENT_NOT_SET[ 43/ 43/ 44/ 0][0/0/0][ 2 0000 0000][0-0] ,
+# 132> PTR_TYPE| UNION| PARENT_NOT_SET[ 45/ 45/ 46/ 1][0/0/0][ 2 0008 0000][0-0] *
+# 132> WORD| NONE| PARENT_NOT_SET[ 46/ 46/ 49/ 0][0/0/0][ 2508 0000][0-0] u12
+# 132> ASSIGN| NONE| PARENT_NOT_SET[ 50/ 50/ 51/ 1][0/0/0][ 2 0000 0000][0-0] =
+# 132> WORD| NONE| PARENT_NOT_SET[ 52/ 52/ 59/ 1][0/0/0][ 8 0000][0-0] nullptr
+# 132> COMMA| NONE| PARENT_NOT_SET[ 59/ 59/ 60/ 0][0/0/0][ 2 0000 0000][0-0] ,
+# 132> PTR_TYPE| UNION| PARENT_NOT_SET[ 61/ 61/ 62/ 1][0/0/0][ 2 0008 0000][0-0] *
+# 132> WORD| NONE| PARENT_NOT_SET[ 62/ 62/ 65/ 0][0/0/0][ 2508 0000][0-0] u13
+# 132> BRACE_OPEN| BRACED_INIT_LIST| PARENT_NOT_SET[ 65/ 65/ 66/ 0][0/0/0][ 2 4000 0000][0-0] {
+# 132> NUMBER| NONE| PARENT_NOT_SET[ 66/ 66/ 67/ 0][1/1/0][ 400c 0000][0-0] 0
+# 132> BRACE_CLOSE| BRACED_INIT_LIST| PARENT_NOT_SET[ 67/ 67/ 68/ 0][0/0/0][ 2 4000 0000][0-0] }
+# 132> SEMICOLON| UNION| PARENT_NOT_SET[ 68/ 68/ 69/ 0][0/0/0][ 2 0000 0000][0-0] ;
+# 132> NEWLINE| NONE| PARENT_NOT_SET[ 69/ 69/ 1/ 0][0/0/0][ 0][2-0]
+# 134> UNION| NONE| PARENT_NOT_SET[ 1/ 1/ 6/ 0][0/0/0][ e 0000][0-0] union
+# 134> WORD| NONE| PARENT_NOT_SET[ 7/ 7/ 17/ 1][0/0/0][ 2 0000][0-0] API_EXPORT
+# 134> TYPE| UNION| PARENT_NOT_SET[ 18/ 18/ 20/ 1][0/0/0][ 82 0000][0-0] u1
+# 134> WORD| NONE| PARENT_NOT_SET[ 21/ 21/ 24/ 1][0/0/0][ 300 0000][0-0] u21
+# 134> SEMICOLON| UNION| PARENT_NOT_SET[ 24/ 24/ 25/ 0][0/0/0][ 2 0000 0000][0-0] ;
+# 134> NEWLINE| NONE| PARENT_NOT_SET[ 25/ 25/ 1/ 0][0/0/0][ 0][1-0]
+# -=====-
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/copyright-header.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/copyright-header.cpp
index 348902a5..348902a5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/copyright-header.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/copyright-header.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/help.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/help.txt
index ff83f72b..ff83f72b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/help.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/help.txt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/logger_cs_L_99.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/logger_cs_L_99.txt
new file mode 100644
index 00000000..7e7b6f8a
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/logger_cs_L_99.txt
@@ -0,0 +1,8 @@
+tokenize(): orig_line is , orig_col is , Text() '// Turning on sp_inside_braces=add fixes it, but also changes a lot of initializer code we don't want to touch (like x = {}). May need special support, or perhaps there's a bug..', type is COMMENT_CPP, orig_col_end is
+tokenize(): orig_line is , orig_col is , <Newline>, nl is
+tokenize(): orig_line is , orig_col is , Text() '// long comment line(s), such as here, might be too long to produce a correct LOG-file such as', type is COMMENT_CPP, orig_col_end is
+tokenize(): orig_line is , orig_col is , <Newline>, nl is
+tokenize(): orig_line is , orig_col is , Text() '// with the use of option -L A', type is COMMENT_CPP, orig_col_end is
+tokenize(): orig_line is , orig_col is , <Newline>, nl is
+tokenize(): orig_line is , orig_col is , Text() '// in such a case, the output of the log will be cut.', type is COMMENT_CPP, orig_col_end is
+tokenize(): orig_line is , orig_col is , <Newline>, nl is
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/p.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/p.txt
new file mode 100644
index 00000000..88b242fb
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/p.txt
@@ -0,0 +1,79 @@
+
+newlines = crlf
+# option(s) with 'not default' value: 1
+#
+# -=====-
+# number of loops = 0
+# -=====-
+# language = CPP
+# -=====-
+# Line Tag Parent_type Type of the parent Columns Br/Lvl/pp Flag Nl Text
+# 1> PREPROC| PP_DEFINE| PARENT_NOT_SET[ 1/ 1/ 2/ 0][1/1/0][ 2 001c 0001][0-0] #
+# 1> PP_DEFINE| NONE| PARENT_NOT_SET[ 2/ 2/ 8/ 0][1/1/0][ 2 0001][0-0] define
+# 1> MACRO| NONE| PARENT_NOT_SET[ 9/ 9/ 10/ 1][1/1/0][ 2 0001][0-0] x
+# 1> WORD| NONE| PARENT_NOT_SET[ 11/ 11/ 18/ 1][1/1/0][ c 0001][0-0] s23_foo
+# 1> ASSIGN| NONE| PARENT_NOT_SET[ 19/ 19/ 21/ 1][1/1/0][ 2 0000 0001][0-0] +=
+# 1> NL_CONT| NONE| PARENT_NOT_SET[ 22/ 22/ 1/ 1][1/1/0][ 8 0001][1-0] \
+# 2> WORD| NONE| PARENT_NOT_SET[ 9/ 1/ 7/ 0][1/1/0][ 8 0001][0-0] s8_foo
+# 2> ARITH| NONE| PARENT_NOT_SET[ 16/ 8/ 9/ 1][1/1/0][ 2 0000 0001][0-0] *
+# 2> WORD| NONE| PARENT_NOT_SET[ 18/ 10/ 17/ 1][1/1/0][ 8 0001][0-0] s16_bar
+# 2> SEMICOLON| NONE| PARENT_NOT_SET[ 25/ 17/ 18/ 0][1/1/0][ 2 0000 0001][0-0] ;
+# 2> NEWLINE| NONE| PARENT_NOT_SET[ 26/ 18/ 1/ 0][0/0/0][ 0][2-0]
+# 4> STRUCT| NONE| PARENT_NOT_SET[ 1/ 1/ 7/ 0][0/0/0][ e 0000][0-0] struct
+# 4> TYPE| STRUCT| PARENT_NOT_SET[ 8/ 8/ 21/ 1][0/0/0][ 0][0-0] TelegramIndex
+# 4> NEWLINE| NONE| PARENT_NOT_SET[ 21/ 21/ 1/ 0][0/0/0][ 0][1-0]
+# 5> BRACE_OPEN| STRUCT| PARENT_NOT_SET[ 1/ 1/ 2/ 0][0/0/0][ 2 0000 0400][0-0] {
+# 5> NEWLINE| NONE| PARENT_NOT_SET[ 2/ 2/ 1/ 0][1/1/0][ 2][1-0]
+# 6> FUNC_CLASS_DEF| NONE| PARENT_NOT_SET[ 9/ 1/ 14/ 0][1/1/0][ c 0402][0-0] TelegramIndex
+# 6> FPAREN_OPEN| FUNC_CLASS_DEF| PARENT_NOT_SET[ 22/ 14/ 15/ 0][1/1/0][ 2 0000 0502][0-0] (
+# 6> QUALIFIER| NONE| PARENT_NOT_SET[ 23/ 15/ 20/ 0][1/2/0][ a 0512][0-0] const
+# 6> TYPE| NONE| PARENT_NOT_SET[ 29/ 21/ 25/ 1][1/2/0][ 80 0512][0-0] char
+# 6> PTR_TYPE| NONE| PARENT_NOT_SET[ 33/ 25/ 26/ 0][1/2/0][ 2 0000 0512][0-0] *
+# 6> WORD| NONE| PARENT_NOT_SET[ 35/ 27/ 29/ 1][1/2/0][ 100 0512][0-0] pN
+# 6> COMMA| NONE| PARENT_NOT_SET[ 37/ 29/ 30/ 0][1/2/0][ 2 0000 0512][0-0] ,
+# 6> TYPE| NONE| PARENT_NOT_SET[ 39/ 31/ 39/ 1][1/2/0][ 8a 0512][0-0] unsigned
+# 6> TYPE| NONE| PARENT_NOT_SET[ 48/ 40/ 44/ 1][1/2/0][ 82 0512][0-0] long
+# 6> WORD| NONE| PARENT_NOT_SET[ 53/ 45/ 47/ 1][1/2/0][ 100 0512][0-0] nI
+# 6> FPAREN_CLOSE| FUNC_CLASS_DEF| PARENT_NOT_SET[ 55/ 47/ 48/ 0][1/1/0][ 2 0000 0512][0-0] )
+# 6> CONSTR_COLON| NONE| PARENT_NOT_SET[ 57/ 49/ 50/ 1][1/1/0][ 2 0000 0502][0-0] :
+# 6> NEWLINE| NONE| PARENT_NOT_SET[ 58/ 50/ 1/ 0][1/1/0][ 2][1-0]
+# 7> FUNC_CTOR_VAR| NONE| PARENT_NOT_SET[ 17/ 1/ 9/ 0][1/1/0][ c 0502][0-0] pTelName
+# 7> FPAREN_OPEN| FUNC_CTOR_VAR| PARENT_NOT_SET[ 25/ 9/ 10/ 0][1/1/0][ 2 0000 0502][0-0] (
+# 7> WORD| NONE| PARENT_NOT_SET[ 26/ 10/ 12/ 0][1/2/0][ 8 0512][0-0] pN
+# 7> FPAREN_CLOSE| FUNC_CTOR_VAR| PARENT_NOT_SET[ 28/ 12/ 13/ 0][1/1/0][ 2 0000 0512][0-0] )
+# 7> COMMA| NONE| PARENT_NOT_SET[ 29/ 13/ 14/ 0][1/1/0][ 2 0000 0502][0-0] ,
+# 7> NEWLINE| NONE| PARENT_NOT_SET[ 30/ 14/ 1/ 0][1/1/0][ 2][1-0]
+# 8> FUNC_CTOR_VAR| NONE| PARENT_NOT_SET[ 17/ 1/ 10/ 0][1/1/0][ 8 0502][0-0] nTelIndex
+# 8> FPAREN_OPEN| FUNC_CTOR_VAR| PARENT_NOT_SET[ 26/ 10/ 11/ 0][1/1/0][ 2 0000 0502][0-0] (
+# 8> WORD| NONE| PARENT_NOT_SET[ 27/ 11/ 12/ 0][1/2/0][ 8 0512][0-0] n
+# 8> FPAREN_CLOSE| FUNC_CTOR_VAR| PARENT_NOT_SET[ 28/ 12/ 13/ 0][1/1/0][ 2 0000 0512][0-0] )
+# 8> NEWLINE| NONE| PARENT_NOT_SET[ 29/ 13/ 1/ 0][1/1/0][ 2][1-0]
+# 9> BRACE_OPEN| FUNC_CLASS_DEF| PARENT_NOT_SET[ 9/ 1/ 2/ 0][1/1/0][ 2 8000 0402][0-0] {
+# 9> NEWLINE| NONE| PARENT_NOT_SET[ 10/ 2/ 1/ 0][2/2/0][ 2][1-0]
+# 10> BRACE_CLOSE| FUNC_CLASS_DEF| PARENT_NOT_SET[ 9/ 1/ 2/ 0][1/1/0][ 2 8000 0402][0-0] }
+# 10> NEWLINE| NONE| PARENT_NOT_SET[ 10/ 2/ 1/ 0][1/1/0][ 2][2-0]
+# 12> DESTRUCTOR| FUNC_CLASS_DEF| PARENT_NOT_SET[ 9/ 1/ 2/ 0][1/1/0][ 2 000c 0402][0-0] ~
+# 12> FUNC_CLASS_DEF| DESTRUCTOR| PARENT_NOT_SET[ 10/ 2/ 15/ 0][1/1/0][ 8 0402][0-0] TelegramIndex
+# 12> FPAREN_OPEN| FUNC_CLASS_DEF| PARENT_NOT_SET[ 23/ 15/ 16/ 0][1/1/0][ 2 0000 0502][0-0] (
+# 12> FPAREN_CLOSE| FUNC_CLASS_DEF| PARENT_NOT_SET[ 24/ 16/ 17/ 0][1/1/0][ 2 0000 0512][0-0] )
+# 12> NEWLINE| NONE| PARENT_NOT_SET[ 25/ 17/ 1/ 0][1/1/0][ 2][1-0]
+# 13> BRACE_OPEN| FUNC_CLASS_DEF| PARENT_NOT_SET[ 9/ 1/ 2/ 0][1/1/0][ 2 8000 0402][0-0] {
+# 13> NEWLINE| NONE| PARENT_NOT_SET[ 10/ 2/ 1/ 0][2/2/0][ 2][1-0]
+# 14> BRACE_CLOSE| FUNC_CLASS_DEF| PARENT_NOT_SET[ 9/ 1/ 2/ 0][1/1/0][ 2 8000 0402][0-0] }
+# 14> NEWLINE| NONE| PARENT_NOT_SET[ 10/ 2/ 1/ 0][1/1/0][ 2][2-0]
+# 16> QUALIFIER| NONE| PARENT_NOT_SET[ 9/ 1/ 6/ 0][1/1/0][ 8e 0402][0-0] const
+# 16> TYPE| NONE| PARENT_NOT_SET[ 15/ 7/ 11/ 1][1/1/0][ 80 0402][0-0] char
+# 16> PTR_TYPE| NONE| PARENT_NOT_SET[ 19/ 11/ 12/ 0][1/1/0][ 2 0080 0402][0-0] *
+# 16> QUALIFIER| NONE| PARENT_NOT_SET[ 21/ 13/ 18/ 1][1/1/0][ 82 0402][0-0] const
+# 16> WORD| NONE| PARENT_NOT_SET[ 27/ 19/ 27/ 1][1/1/0][ 300 0402][0-0] pTelName
+# 16> SEMICOLON| NONE| PARENT_NOT_SET[ 35/ 27/ 28/ 0][1/1/0][ 2 0000 0402][0-0] ;
+# 16> NEWLINE| NONE| PARENT_NOT_SET[ 36/ 28/ 1/ 0][1/1/0][ 2][1-0]
+# 17> TYPE| NONE| PARENT_NOT_SET[ 9/ 1/ 9/ 0][1/1/0][ 8e 0402][0-0] unsigned
+# 17> TYPE| NONE| PARENT_NOT_SET[ 18/ 10/ 14/ 1][1/1/0][ 82 0402][0-0] long
+# 17> WORD| NONE| PARENT_NOT_SET[ 23/ 15/ 24/ 1][1/1/0][ 300 0402][0-0] nTelIndex
+# 17> SEMICOLON| NONE| PARENT_NOT_SET[ 32/ 24/ 25/ 0][1/1/0][ 2 0000 0402][0-0] ;
+# 17> NEWLINE| NONE| PARENT_NOT_SET[ 33/ 25/ 1/ 0][1/1/0][ 2][1-0]
+# 18> BRACE_CLOSE| STRUCT| PARENT_NOT_SET[ 1/ 1/ 2/ 0][0/0/0][ 2 0000 0402][0-0] }
+# 18> SEMICOLON| STRUCT| PARENT_NOT_SET[ 2/ 2/ 3/ 0][0/0/0][ 2 0000 0000][0-0] ;
+# 18> NEWLINE| NONE| PARENT_NOT_SET[ 3/ 3/ 1/ 0][0/0/0][ 0][2-0]
+# -=====-
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/pc-.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/pc-.txt
new file mode 100644
index 00000000..2b7e9280
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/pc-.txt
@@ -0,0 +1,10 @@
+
+# option(s) with 'not default' value: 0
+#
+# -=====-
+# number of loops = 0
+# -=====-
+# language = C
+# -=====-
+# Line Tag Parent_type Type of the parent Columns Br/Lvl/pp Flag Nl Text
+# -=====-
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/replace.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/replace.txt
new file mode 100644
index 00000000..ba5422dd
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/replace.txt
@@ -0,0 +1,2 @@
+do_source_file(1507): Parsing: input/I-3310.c as language C
+do_source_file(1507): Parsing: input/backup.h as language C-Header
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/tracking_space.html b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/tracking_space.html
index b0098a0e..b0098a0e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/tracking_space.html
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/tracking_space.html
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/truncate.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/truncate.txt
new file mode 100644
index 00000000..ab5bb332
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/truncate.txt
@@ -0,0 +1,16 @@
+output_text : Text() is '// 1 6789A123456789B123456789c12345678 ... <The string is truncated>', type is COMMENT_CPP, orig_line is 1, column is 1, nl is 0
+output_cmt_start : no cmt_insert_file
+output_comment_cpp : set cont_text to '// '
+output_text : Text() is '', type is NEWLINE, orig_line is 1, column is 74, nl is 1
+output_text : Text() is '// 2 678 ... <The string is truncated>', type is COMMENT_CPP, orig_line is 2, column is 1, nl is 0
+output_cmt_start : no cmt_insert_file
+output_comment_cpp : set cont_text to '// '
+output_text : Text() is '', type is NEWLINE, orig_line is 2, column is 40, nl is 1
+output_text : Text() is '// 3 6789A123456789B123456789c12345678', type is COMMENT_CPP, orig_line is 3, column is 1, nl is 0
+output_cmt_start : no cmt_insert_file
+output_comment_cpp : set cont_text to '// '
+output_text : Text() is '', type is NEWLINE, orig_line is 3, column is 39, nl is 1
+output_text : Text() is '// 4 6789A123456789B123456789c1234567', type is COMMENT_CPP, orig_line is 4, column is 1, nl is 0
+output_cmt_start : no cmt_insert_file
+output_comment_cpp : set cont_text to '// '
+output_text : Text() is '', type is NEWLINE, orig_line is 4, column is 38, nl is 1
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/universalindent.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/universalindent.cfg
new file mode 100644
index 00000000..722ba239
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/universalindent.cfg
@@ -0,0 +1,7206 @@
+[header]
+categories=General options|Spacing options|Indenting options|Newline adding and removing options|Blank line options|Positioning options|Line splitting options|Code alignment options (not left column spaces/tabs)|Comment modification options|Code modifying options (non-whitespace)|Preprocessor options|Sort includes options|Use or Do not Use options|Warn levels - 1: error, 2: warning (default), 3: note
+cfgFileParameterEnding=cr
+configFilename=uncrustify.cfg
+fileTypes=*.c|*.c++|*.cc|*.cp|*.cpp|*.cs|*.cxx|*.d|*.di|*.es|*.h|*.h++|*.hh|*.hp|*.hpp|*.hxx|*.inl|*.java|*.js|*.m|*.mm|*.p|*.pawn|*.sma|*.sqc|*.sql|*.vala
+indenterFileName=uncrustify
+indenterName=Uncrustify (C, C++, C#, ObjectiveC, D, Java, Pawn, VALA)
+inputFileName=indentinput
+inputFileParameter="-f "
+manual=http://uncrustify.sourceforge.net/config.txt
+outputFileName=indentoutput
+outputFileParameter="-o "
+stringparaminquotes=false
+parameterOrder=ipo
+showHelpParameter=-h
+stringparaminquotes=false
+useCfgFileParameter="-c "
+
+
+[Newlines]
+Category=0
+Description="<html>The type of line endings.<br/><br/>Default: auto</html>"
+Enabled=false
+EditorType=multiple
+Choices=newlines=lf|newlines=crlf|newlines=cr|newlines=auto
+ChoicesReadable="Newlines Unix|Newlines Win|Newlines Mac|Newlines Auto"
+ValueDefault=auto
+
+[Input Tab Size]
+Category=0
+Description="<html>The original size of tabs in the input.<br/><br/>Default: 8</html>"
+Enabled=false
+EditorType=numeric
+CallName="input_tab_size="
+MinVal=1
+MaxVal=32
+ValueDefault=8
+
+[Output Tab Size]
+Category=0
+Description="<html>The size of tabs in the output (only used if align_with_tabs=true).<br/><br/>Default: 8</html>"
+Enabled=false
+EditorType=numeric
+CallName="output_tab_size="
+MinVal=1
+MaxVal=32
+ValueDefault=8
+
+[String Escape Char]
+Category=0
+Description="<html>The ASCII value of the string escape char, usually 92 (\) or (Pawn) 94 (^).<br/><br/>Default: 92</html>"
+Enabled=false
+EditorType=numeric
+CallName="string_escape_char="
+MinVal=0
+MaxVal=255
+ValueDefault=92
+
+[String Escape Char2]
+Category=0
+Description="<html>Alternate string escape char (usually only used for Pawn).<br/>Only works right before the quote char.</html>"
+Enabled=false
+EditorType=numeric
+CallName="string_escape_char2="
+MinVal=0
+MaxVal=255
+ValueDefault=0
+
+[String Replace Tab Chars]
+Category=0
+Description="<html>Replace tab characters found in string literals with the escape sequence \t<br/>instead.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=string_replace_tab_chars=true|string_replace_tab_chars=false
+ValueDefault=false
+
+[Tok Split Gte]
+Category=0
+Description="<html>Allow interpreting '&gt;=' and '&gt;&gt;=' as part of a template in code like<br/>'void f(list&lt;list&lt;B&gt;&gt;=val);'. If true, 'assert(x&lt;0 &amp;&amp; y&gt;=3)' will be broken.<br/>Improvements to template detection may make this option obsolete.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=tok_split_gte=true|tok_split_gte=false
+ValueDefault=false
+
+[Disable Processing Nl Cont]
+Category=0
+Description="<html>Disable formatting of NL_CONT ('\\n') ended lines (e.g. multi-line macros).</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=disable_processing_nl_cont=true|disable_processing_nl_cont=false
+ValueDefault=false
+
+[Disable Processing Cmt]
+Category=0
+Description="<html>Specify the marker used in comments to disable processing of part of the<br/>file.<br/><br/>Default: *INDENT-OFF*</html>"
+Enabled=false
+CallName=disable_processing_cmt=
+EditorType=string
+ValueDefault= *INDENT-OFF*
+
+[Enable Processing Cmt]
+Category=0
+Description="<html>Specify the marker used in comments to (re)enable processing in a file.<br/><br/>Default: *INDENT-ON*</html>"
+Enabled=false
+CallName=enable_processing_cmt=
+EditorType=string
+ValueDefault= *INDENT-ON*
+
+[Enable Digraphs]
+Category=0
+Description="<html>Enable parsing of digraphs.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=enable_digraphs=true|enable_digraphs=false
+ValueDefault=false
+
+[Processing Cmt As Regex]
+Category=0
+Description="<html>Option to allow both disable_processing_cmt and enable_processing_cmt<br/>strings, if specified, to be interpreted as ECMAScript regular expressions.<br/>If true, a regex search will be performed within comments according to the<br/>specified patterns in order to disable/enable processing.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=processing_cmt_as_regex=true|processing_cmt_as_regex=false
+ValueDefault=false
+
+[Utf8 Bom]
+Category=0
+Description="<html>Add or remove the UTF-8 BOM (recommend 'remove').</html>"
+Enabled=false
+EditorType=multiple
+Choices=utf8_bom=ignore|utf8_bom=add|utf8_bom=remove|utf8_bom=force|utf8_bom=not_defined
+ChoicesReadable="Ignore Utf8 Bom|Add Utf8 Bom|Remove Utf8 Bom|Force Utf8 Bom"
+ValueDefault=ignore
+
+[Utf8 Byte]
+Category=0
+Description="<html>If the file contains bytes with values between 128 and 255, but is not<br/>UTF-8, then output as UTF-8.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=utf8_byte=true|utf8_byte=false
+ValueDefault=false
+
+[Utf8 Force]
+Category=0
+Description="<html>Force the output encoding to UTF-8.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=utf8_force=true|utf8_force=false
+ValueDefault=false
+
+[Sp Arith]
+Category=1
+Description="<html>Add or remove space around non-assignment symbolic operators ('+', '/', '%',<br/>'&lt;&lt;', and so forth).</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_arith=ignore|sp_arith=add|sp_arith=remove|sp_arith=force|sp_arith=not_defined
+ChoicesReadable="Ignore Sp Arith|Add Sp Arith|Remove Sp Arith|Force Sp Arith"
+ValueDefault=ignore
+
+[Sp Arith Additive]
+Category=1
+Description="<html>Add or remove space around arithmetic operators '+' and '-'.<br/><br/>Overrides sp_arith.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_arith_additive=ignore|sp_arith_additive=add|sp_arith_additive=remove|sp_arith_additive=force|sp_arith_additive=not_defined
+ChoicesReadable="Ignore Sp Arith Additive|Add Sp Arith Additive|Remove Sp Arith Additive|Force Sp Arith Additive"
+ValueDefault=ignore
+
+[Sp Assign]
+Category=1
+Description="<html>Add or remove space around assignment operator '=', '+=', etc.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_assign=ignore|sp_assign=add|sp_assign=remove|sp_assign=force|sp_assign=not_defined
+ChoicesReadable="Ignore Sp Assign|Add Sp Assign|Remove Sp Assign|Force Sp Assign"
+ValueDefault=ignore
+
+[Sp Cpp Lambda Assign]
+Category=1
+Description="<html>Add or remove space around '=' in C++11 lambda capture specifications.<br/><br/>Overrides sp_assign.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_cpp_lambda_assign=ignore|sp_cpp_lambda_assign=add|sp_cpp_lambda_assign=remove|sp_cpp_lambda_assign=force|sp_cpp_lambda_assign=not_defined
+ChoicesReadable="Ignore Sp Cpp Lambda Assign|Add Sp Cpp Lambda Assign|Remove Sp Cpp Lambda Assign|Force Sp Cpp Lambda Assign"
+ValueDefault=ignore
+
+[Sp Cpp Lambda Square Paren]
+Category=1
+Description="<html>Add or remove space after the capture specification of a C++11 lambda when<br/>an argument list is present, as in '[] &lt;here&gt; (int x){ ... }'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_cpp_lambda_square_paren=ignore|sp_cpp_lambda_square_paren=add|sp_cpp_lambda_square_paren=remove|sp_cpp_lambda_square_paren=force|sp_cpp_lambda_square_paren=not_defined
+ChoicesReadable="Ignore Sp Cpp Lambda Square Paren|Add Sp Cpp Lambda Square Paren|Remove Sp Cpp Lambda Square Paren|Force Sp Cpp Lambda Square Paren"
+ValueDefault=ignore
+
+[Sp Cpp Lambda Square Brace]
+Category=1
+Description="<html>Add or remove space after the capture specification of a C++11 lambda with<br/>no argument list is present, as in '[] &lt;here&gt; { ... }'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_cpp_lambda_square_brace=ignore|sp_cpp_lambda_square_brace=add|sp_cpp_lambda_square_brace=remove|sp_cpp_lambda_square_brace=force|sp_cpp_lambda_square_brace=not_defined
+ChoicesReadable="Ignore Sp Cpp Lambda Square Brace|Add Sp Cpp Lambda Square Brace|Remove Sp Cpp Lambda Square Brace|Force Sp Cpp Lambda Square Brace"
+ValueDefault=ignore
+
+[Sp Cpp Lambda Argument List]
+Category=1
+Description="<html>Add or remove space after the opening parenthesis and before the closing<br/>parenthesis of a argument list of a C++11 lambda, as in<br/>'[]( &lt;here&gt; int x &lt;here&gt; ){ ... }'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_cpp_lambda_argument_list=ignore|sp_cpp_lambda_argument_list=add|sp_cpp_lambda_argument_list=remove|sp_cpp_lambda_argument_list=force|sp_cpp_lambda_argument_list=not_defined
+ChoicesReadable="Ignore Sp Cpp Lambda Argument List|Add Sp Cpp Lambda Argument List|Remove Sp Cpp Lambda Argument List|Force Sp Cpp Lambda Argument List"
+ValueDefault=ignore
+
+[Sp Cpp Lambda Paren Brace]
+Category=1
+Description="<html>Add or remove space after the argument list of a C++11 lambda, as in<br/>'[](int x) &lt;here&gt; { ... }'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_cpp_lambda_paren_brace=ignore|sp_cpp_lambda_paren_brace=add|sp_cpp_lambda_paren_brace=remove|sp_cpp_lambda_paren_brace=force|sp_cpp_lambda_paren_brace=not_defined
+ChoicesReadable="Ignore Sp Cpp Lambda Paren Brace|Add Sp Cpp Lambda Paren Brace|Remove Sp Cpp Lambda Paren Brace|Force Sp Cpp Lambda Paren Brace"
+ValueDefault=ignore
+
+[Sp Cpp Lambda Fparen]
+Category=1
+Description="<html>Add or remove space between a lambda body and its call operator of an<br/>immediately invoked lambda, as in '[]( ... ){ ... } &lt;here&gt; ( ... )'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_cpp_lambda_fparen=ignore|sp_cpp_lambda_fparen=add|sp_cpp_lambda_fparen=remove|sp_cpp_lambda_fparen=force|sp_cpp_lambda_fparen=not_defined
+ChoicesReadable="Ignore Sp Cpp Lambda Fparen|Add Sp Cpp Lambda Fparen|Remove Sp Cpp Lambda Fparen|Force Sp Cpp Lambda Fparen"
+ValueDefault=ignore
+
+[Sp Assign Default]
+Category=1
+Description="<html>Add or remove space around assignment operator '=' in a prototype.<br/><br/>If set to ignore, use sp_assign.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_assign_default=ignore|sp_assign_default=add|sp_assign_default=remove|sp_assign_default=force|sp_assign_default=not_defined
+ChoicesReadable="Ignore Sp Assign Default|Add Sp Assign Default|Remove Sp Assign Default|Force Sp Assign Default"
+ValueDefault=ignore
+
+[Sp Before Assign]
+Category=1
+Description="<html>Add or remove space before assignment operator '=', '+=', etc.<br/><br/>Overrides sp_assign.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_assign=ignore|sp_before_assign=add|sp_before_assign=remove|sp_before_assign=force|sp_before_assign=not_defined
+ChoicesReadable="Ignore Sp Before Assign|Add Sp Before Assign|Remove Sp Before Assign|Force Sp Before Assign"
+ValueDefault=ignore
+
+[Sp After Assign]
+Category=1
+Description="<html>Add or remove space after assignment operator '=', '+=', etc.<br/><br/>Overrides sp_assign.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_assign=ignore|sp_after_assign=add|sp_after_assign=remove|sp_after_assign=force|sp_after_assign=not_defined
+ChoicesReadable="Ignore Sp After Assign|Add Sp After Assign|Remove Sp After Assign|Force Sp After Assign"
+ValueDefault=ignore
+
+[Sp Enum Brace]
+Category=1
+Description="<html>Add or remove space in 'enum {'.<br/><br/>Default: add</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_enum_brace=ignore|sp_enum_brace=add|sp_enum_brace=remove|sp_enum_brace=force|sp_enum_brace=not_defined
+ChoicesReadable="Ignore Sp Enum Brace|Add Sp Enum Brace|Remove Sp Enum Brace|Force Sp Enum Brace"
+ValueDefault=add
+
+[Sp Enum Paren]
+Category=1
+Description="<html>Add or remove space in 'NS_ENUM ('.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_enum_paren=ignore|sp_enum_paren=add|sp_enum_paren=remove|sp_enum_paren=force|sp_enum_paren=not_defined
+ChoicesReadable="Ignore Sp Enum Paren|Add Sp Enum Paren|Remove Sp Enum Paren|Force Sp Enum Paren"
+ValueDefault=ignore
+
+[Sp Enum Assign]
+Category=1
+Description="<html>Add or remove space around assignment '=' in enum.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_enum_assign=ignore|sp_enum_assign=add|sp_enum_assign=remove|sp_enum_assign=force|sp_enum_assign=not_defined
+ChoicesReadable="Ignore Sp Enum Assign|Add Sp Enum Assign|Remove Sp Enum Assign|Force Sp Enum Assign"
+ValueDefault=ignore
+
+[Sp Enum Before Assign]
+Category=1
+Description="<html>Add or remove space before assignment '=' in enum.<br/><br/>Overrides sp_enum_assign.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_enum_before_assign=ignore|sp_enum_before_assign=add|sp_enum_before_assign=remove|sp_enum_before_assign=force|sp_enum_before_assign=not_defined
+ChoicesReadable="Ignore Sp Enum Before Assign|Add Sp Enum Before Assign|Remove Sp Enum Before Assign|Force Sp Enum Before Assign"
+ValueDefault=ignore
+
+[Sp Enum After Assign]
+Category=1
+Description="<html>Add or remove space after assignment '=' in enum.<br/><br/>Overrides sp_enum_assign.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_enum_after_assign=ignore|sp_enum_after_assign=add|sp_enum_after_assign=remove|sp_enum_after_assign=force|sp_enum_after_assign=not_defined
+ChoicesReadable="Ignore Sp Enum After Assign|Add Sp Enum After Assign|Remove Sp Enum After Assign|Force Sp Enum After Assign"
+ValueDefault=ignore
+
+[Sp Enum Colon]
+Category=1
+Description="<html>Add or remove space around assignment ':' in enum.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_enum_colon=ignore|sp_enum_colon=add|sp_enum_colon=remove|sp_enum_colon=force|sp_enum_colon=not_defined
+ChoicesReadable="Ignore Sp Enum Colon|Add Sp Enum Colon|Remove Sp Enum Colon|Force Sp Enum Colon"
+ValueDefault=ignore
+
+[Sp Pp Concat]
+Category=1
+Description="<html>Add or remove space around preprocessor '##' concatenation operator.<br/><br/>Default: add</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_pp_concat=ignore|sp_pp_concat=add|sp_pp_concat=remove|sp_pp_concat=force|sp_pp_concat=not_defined
+ChoicesReadable="Ignore Sp Pp Concat|Add Sp Pp Concat|Remove Sp Pp Concat|Force Sp Pp Concat"
+ValueDefault=add
+
+[Sp Pp Stringify]
+Category=1
+Description="<html>Add or remove space after preprocessor '#' stringify operator.<br/>Also affects the '#@' charizing operator.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_pp_stringify=ignore|sp_pp_stringify=add|sp_pp_stringify=remove|sp_pp_stringify=force|sp_pp_stringify=not_defined
+ChoicesReadable="Ignore Sp Pp Stringify|Add Sp Pp Stringify|Remove Sp Pp Stringify|Force Sp Pp Stringify"
+ValueDefault=ignore
+
+[Sp Before Pp Stringify]
+Category=1
+Description="<html>Add or remove space before preprocessor '#' stringify operator<br/>as in '#define x(y) L#y'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_pp_stringify=ignore|sp_before_pp_stringify=add|sp_before_pp_stringify=remove|sp_before_pp_stringify=force|sp_before_pp_stringify=not_defined
+ChoicesReadable="Ignore Sp Before Pp Stringify|Add Sp Before Pp Stringify|Remove Sp Before Pp Stringify|Force Sp Before Pp Stringify"
+ValueDefault=ignore
+
+[Sp Bool]
+Category=1
+Description="<html>Add or remove space around boolean operators '&amp;&amp;' and '||'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_bool=ignore|sp_bool=add|sp_bool=remove|sp_bool=force|sp_bool=not_defined
+ChoicesReadable="Ignore Sp Bool|Add Sp Bool|Remove Sp Bool|Force Sp Bool"
+ValueDefault=ignore
+
+[Sp Compare]
+Category=1
+Description="<html>Add or remove space around compare operator '&lt;', '&gt;', '==', etc.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_compare=ignore|sp_compare=add|sp_compare=remove|sp_compare=force|sp_compare=not_defined
+ChoicesReadable="Ignore Sp Compare|Add Sp Compare|Remove Sp Compare|Force Sp Compare"
+ValueDefault=ignore
+
+[Sp Inside Paren]
+Category=1
+Description="<html>Add or remove space inside '(' and ')'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_paren=ignore|sp_inside_paren=add|sp_inside_paren=remove|sp_inside_paren=force|sp_inside_paren=not_defined
+ChoicesReadable="Ignore Sp Inside Paren|Add Sp Inside Paren|Remove Sp Inside Paren|Force Sp Inside Paren"
+ValueDefault=ignore
+
+[Sp Paren Paren]
+Category=1
+Description="<html>Add or remove space between nested parentheses, i.e. '((' vs. ') )'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_paren_paren=ignore|sp_paren_paren=add|sp_paren_paren=remove|sp_paren_paren=force|sp_paren_paren=not_defined
+ChoicesReadable="Ignore Sp Paren Paren|Add Sp Paren Paren|Remove Sp Paren Paren|Force Sp Paren Paren"
+ValueDefault=ignore
+
+[Sp Cparen Oparen]
+Category=1
+Description="<html>Add or remove space between back-to-back parentheses, i.e. ')(' vs. ') ('.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_cparen_oparen=ignore|sp_cparen_oparen=add|sp_cparen_oparen=remove|sp_cparen_oparen=force|sp_cparen_oparen=not_defined
+ChoicesReadable="Ignore Sp Cparen Oparen|Add Sp Cparen Oparen|Remove Sp Cparen Oparen|Force Sp Cparen Oparen"
+ValueDefault=ignore
+
+[Sp Balance Nested Parens]
+Category=1
+Description="<html>Whether to balance spaces inside nested parentheses.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=sp_balance_nested_parens=true|sp_balance_nested_parens=false
+ValueDefault=false
+
+[Sp Paren Brace]
+Category=1
+Description="<html>Add or remove space between ')' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_paren_brace=ignore|sp_paren_brace=add|sp_paren_brace=remove|sp_paren_brace=force|sp_paren_brace=not_defined
+ChoicesReadable="Ignore Sp Paren Brace|Add Sp Paren Brace|Remove Sp Paren Brace|Force Sp Paren Brace"
+ValueDefault=ignore
+
+[Sp Brace Brace]
+Category=1
+Description="<html>Add or remove space between nested braces, i.e. '{{' vs. '{ {'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_brace_brace=ignore|sp_brace_brace=add|sp_brace_brace=remove|sp_brace_brace=force|sp_brace_brace=not_defined
+ChoicesReadable="Ignore Sp Brace Brace|Add Sp Brace Brace|Remove Sp Brace Brace|Force Sp Brace Brace"
+ValueDefault=ignore
+
+[Sp Before Ptr Star]
+Category=1
+Description="<html>Add or remove space before pointer star '*'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_ptr_star=ignore|sp_before_ptr_star=add|sp_before_ptr_star=remove|sp_before_ptr_star=force|sp_before_ptr_star=not_defined
+ChoicesReadable="Ignore Sp Before Ptr Star|Add Sp Before Ptr Star|Remove Sp Before Ptr Star|Force Sp Before Ptr Star"
+ValueDefault=ignore
+
+[Sp Before Unnamed Ptr Star]
+Category=1
+Description="<html>Add or remove space before pointer star '*' that isn't followed by a<br/>variable name. If set to ignore, sp_before_ptr_star is used instead.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_unnamed_ptr_star=ignore|sp_before_unnamed_ptr_star=add|sp_before_unnamed_ptr_star=remove|sp_before_unnamed_ptr_star=force|sp_before_unnamed_ptr_star=not_defined
+ChoicesReadable="Ignore Sp Before Unnamed Ptr Star|Add Sp Before Unnamed Ptr Star|Remove Sp Before Unnamed Ptr Star|Force Sp Before Unnamed Ptr Star"
+ValueDefault=ignore
+
+[Sp Between Ptr Star]
+Category=1
+Description="<html>Add or remove space between pointer stars '*', as in 'int ***a;'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_between_ptr_star=ignore|sp_between_ptr_star=add|sp_between_ptr_star=remove|sp_between_ptr_star=force|sp_between_ptr_star=not_defined
+ChoicesReadable="Ignore Sp Between Ptr Star|Add Sp Between Ptr Star|Remove Sp Between Ptr Star|Force Sp Between Ptr Star"
+ValueDefault=ignore
+
+[Sp After Ptr Star]
+Category=1
+Description="<html>Add or remove space after pointer star '*', if followed by a word.<br/><br/>Overrides sp_type_func.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_ptr_star=ignore|sp_after_ptr_star=add|sp_after_ptr_star=remove|sp_after_ptr_star=force|sp_after_ptr_star=not_defined
+ChoicesReadable="Ignore Sp After Ptr Star|Add Sp After Ptr Star|Remove Sp After Ptr Star|Force Sp After Ptr Star"
+ValueDefault=ignore
+
+[Sp After Ptr Block Caret]
+Category=1
+Description="<html>Add or remove space after pointer caret '^', if followed by a word.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_ptr_block_caret=ignore|sp_after_ptr_block_caret=add|sp_after_ptr_block_caret=remove|sp_after_ptr_block_caret=force|sp_after_ptr_block_caret=not_defined
+ChoicesReadable="Ignore Sp After Ptr Block Caret|Add Sp After Ptr Block Caret|Remove Sp After Ptr Block Caret|Force Sp After Ptr Block Caret"
+ValueDefault=ignore
+
+[Sp After Ptr Star Qualifier]
+Category=1
+Description="<html>Add or remove space after pointer star '*', if followed by a qualifier.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_ptr_star_qualifier=ignore|sp_after_ptr_star_qualifier=add|sp_after_ptr_star_qualifier=remove|sp_after_ptr_star_qualifier=force|sp_after_ptr_star_qualifier=not_defined
+ChoicesReadable="Ignore Sp After Ptr Star Qualifier|Add Sp After Ptr Star Qualifier|Remove Sp After Ptr Star Qualifier|Force Sp After Ptr Star Qualifier"
+ValueDefault=ignore
+
+[Sp After Ptr Star Func]
+Category=1
+Description="<html>Add or remove space after a pointer star '*', if followed by a function<br/>prototype or function definition.<br/><br/>Overrides sp_after_ptr_star and sp_type_func.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_ptr_star_func=ignore|sp_after_ptr_star_func=add|sp_after_ptr_star_func=remove|sp_after_ptr_star_func=force|sp_after_ptr_star_func=not_defined
+ChoicesReadable="Ignore Sp After Ptr Star Func|Add Sp After Ptr Star Func|Remove Sp After Ptr Star Func|Force Sp After Ptr Star Func"
+ValueDefault=ignore
+
+[Sp After Ptr Star Trailing]
+Category=1
+Description="<html>Add or remove space after a pointer star '*' in the trailing return of a<br/>function prototype or function definition.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_ptr_star_trailing=ignore|sp_after_ptr_star_trailing=add|sp_after_ptr_star_trailing=remove|sp_after_ptr_star_trailing=force|sp_after_ptr_star_trailing=not_defined
+ChoicesReadable="Ignore Sp After Ptr Star Trailing|Add Sp After Ptr Star Trailing|Remove Sp After Ptr Star Trailing|Force Sp After Ptr Star Trailing"
+ValueDefault=ignore
+
+[Sp Ptr Star Func Var]
+Category=1
+Description="<html>Add or remove space between the pointer star '*' and the name of the variable<br/>in a function pointer definition.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_ptr_star_func_var=ignore|sp_ptr_star_func_var=add|sp_ptr_star_func_var=remove|sp_ptr_star_func_var=force|sp_ptr_star_func_var=not_defined
+ChoicesReadable="Ignore Sp Ptr Star Func Var|Add Sp Ptr Star Func Var|Remove Sp Ptr Star Func Var|Force Sp Ptr Star Func Var"
+ValueDefault=ignore
+
+[Sp Ptr Star Func Type]
+Category=1
+Description="<html>Add or remove space between the pointer star '*' and the name of the type<br/>in a function pointer type definition.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_ptr_star_func_type=ignore|sp_ptr_star_func_type=add|sp_ptr_star_func_type=remove|sp_ptr_star_func_type=force|sp_ptr_star_func_type=not_defined
+ChoicesReadable="Ignore Sp Ptr Star Func Type|Add Sp Ptr Star Func Type|Remove Sp Ptr Star Func Type|Force Sp Ptr Star Func Type"
+ValueDefault=ignore
+
+[Sp Ptr Star Paren]
+Category=1
+Description="<html>Add or remove space after a pointer star '*', if followed by an open<br/>parenthesis, as in 'void* (*)()'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_ptr_star_paren=ignore|sp_ptr_star_paren=add|sp_ptr_star_paren=remove|sp_ptr_star_paren=force|sp_ptr_star_paren=not_defined
+ChoicesReadable="Ignore Sp Ptr Star Paren|Add Sp Ptr Star Paren|Remove Sp Ptr Star Paren|Force Sp Ptr Star Paren"
+ValueDefault=ignore
+
+[Sp Before Ptr Star Func]
+Category=1
+Description="<html>Add or remove space before a pointer star '*', if followed by a function<br/>prototype or function definition.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_ptr_star_func=ignore|sp_before_ptr_star_func=add|sp_before_ptr_star_func=remove|sp_before_ptr_star_func=force|sp_before_ptr_star_func=not_defined
+ChoicesReadable="Ignore Sp Before Ptr Star Func|Add Sp Before Ptr Star Func|Remove Sp Before Ptr Star Func|Force Sp Before Ptr Star Func"
+ValueDefault=ignore
+
+[Sp Before Ptr Star Trailing]
+Category=1
+Description="<html>Add or remove space before a pointer star '*' in the trailing return of a<br/>function prototype or function definition.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_ptr_star_trailing=ignore|sp_before_ptr_star_trailing=add|sp_before_ptr_star_trailing=remove|sp_before_ptr_star_trailing=force|sp_before_ptr_star_trailing=not_defined
+ChoicesReadable="Ignore Sp Before Ptr Star Trailing|Add Sp Before Ptr Star Trailing|Remove Sp Before Ptr Star Trailing|Force Sp Before Ptr Star Trailing"
+ValueDefault=ignore
+
+[Sp Before Byref]
+Category=1
+Description="<html>Add or remove space before a reference sign '&amp;'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_byref=ignore|sp_before_byref=add|sp_before_byref=remove|sp_before_byref=force|sp_before_byref=not_defined
+ChoicesReadable="Ignore Sp Before Byref|Add Sp Before Byref|Remove Sp Before Byref|Force Sp Before Byref"
+ValueDefault=ignore
+
+[Sp Before Unnamed Byref]
+Category=1
+Description="<html>Add or remove space before a reference sign '&amp;' that isn't followed by a<br/>variable name. If set to ignore, sp_before_byref is used instead.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_unnamed_byref=ignore|sp_before_unnamed_byref=add|sp_before_unnamed_byref=remove|sp_before_unnamed_byref=force|sp_before_unnamed_byref=not_defined
+ChoicesReadable="Ignore Sp Before Unnamed Byref|Add Sp Before Unnamed Byref|Remove Sp Before Unnamed Byref|Force Sp Before Unnamed Byref"
+ValueDefault=ignore
+
+[Sp After Byref]
+Category=1
+Description="<html>Add or remove space after reference sign '&amp;', if followed by a word.<br/><br/>Overrides sp_type_func.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_byref=ignore|sp_after_byref=add|sp_after_byref=remove|sp_after_byref=force|sp_after_byref=not_defined
+ChoicesReadable="Ignore Sp After Byref|Add Sp After Byref|Remove Sp After Byref|Force Sp After Byref"
+ValueDefault=ignore
+
+[Sp After Byref Func]
+Category=1
+Description="<html>Add or remove space after a reference sign '&amp;', if followed by a function<br/>prototype or function definition.<br/><br/>Overrides sp_after_byref and sp_type_func.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_byref_func=ignore|sp_after_byref_func=add|sp_after_byref_func=remove|sp_after_byref_func=force|sp_after_byref_func=not_defined
+ChoicesReadable="Ignore Sp After Byref Func|Add Sp After Byref Func|Remove Sp After Byref Func|Force Sp After Byref Func"
+ValueDefault=ignore
+
+[Sp Before Byref Func]
+Category=1
+Description="<html>Add or remove space before a reference sign '&amp;', if followed by a function<br/>prototype or function definition.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_byref_func=ignore|sp_before_byref_func=add|sp_before_byref_func=remove|sp_before_byref_func=force|sp_before_byref_func=not_defined
+ChoicesReadable="Ignore Sp Before Byref Func|Add Sp Before Byref Func|Remove Sp Before Byref Func|Force Sp Before Byref Func"
+ValueDefault=ignore
+
+[Sp Byref Paren]
+Category=1
+Description="<html>Add or remove space after a reference sign '&amp;', if followed by an open<br/>parenthesis, as in 'char&amp; (*)()'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_byref_paren=ignore|sp_byref_paren=add|sp_byref_paren=remove|sp_byref_paren=force|sp_byref_paren=not_defined
+ChoicesReadable="Ignore Sp Byref Paren|Add Sp Byref Paren|Remove Sp Byref Paren|Force Sp Byref Paren"
+ValueDefault=ignore
+
+[Sp After Type]
+Category=1
+Description="<html>Add or remove space between type and word. In cases where total removal of<br/>whitespace would be a syntax error, a value of 'remove' is treated the same<br/>as 'force'.<br/><br/>This also affects some other instances of space following a type that are<br/>not covered by other options; for example, between the return type and<br/>parenthesis of a function type template argument, between the type and<br/>parenthesis of an array parameter, or between 'decltype(...)' and the<br/>following word.<br/><br/>Default: force</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_type=ignore|sp_after_type=add|sp_after_type=remove|sp_after_type=force|sp_after_type=not_defined
+ChoicesReadable="Ignore Sp After Type|Add Sp After Type|Remove Sp After Type|Force Sp After Type"
+ValueDefault=force
+
+[Sp After Decltype]
+Category=1
+Description="<html>Add or remove space between 'decltype(...)' and word,<br/>brace or function call.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_decltype=ignore|sp_after_decltype=add|sp_after_decltype=remove|sp_after_decltype=force|sp_after_decltype=not_defined
+ChoicesReadable="Ignore Sp After Decltype|Add Sp After Decltype|Remove Sp After Decltype|Force Sp After Decltype"
+ValueDefault=ignore
+
+[Sp Before Template Paren]
+Category=1
+Description="<html>(D) Add or remove space before the parenthesis in the D constructs<br/>'template Foo(' and 'class Foo('.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_template_paren=ignore|sp_before_template_paren=add|sp_before_template_paren=remove|sp_before_template_paren=force|sp_before_template_paren=not_defined
+ChoicesReadable="Ignore Sp Before Template Paren|Add Sp Before Template Paren|Remove Sp Before Template Paren|Force Sp Before Template Paren"
+ValueDefault=ignore
+
+[Sp Template Angle]
+Category=1
+Description="<html>Add or remove space between 'template' and '&lt;'.<br/>If set to ignore, sp_before_angle is used.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_template_angle=ignore|sp_template_angle=add|sp_template_angle=remove|sp_template_angle=force|sp_template_angle=not_defined
+ChoicesReadable="Ignore Sp Template Angle|Add Sp Template Angle|Remove Sp Template Angle|Force Sp Template Angle"
+ValueDefault=ignore
+
+[Sp Before Angle]
+Category=1
+Description="<html>Add or remove space before '&lt;'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_angle=ignore|sp_before_angle=add|sp_before_angle=remove|sp_before_angle=force|sp_before_angle=not_defined
+ChoicesReadable="Ignore Sp Before Angle|Add Sp Before Angle|Remove Sp Before Angle|Force Sp Before Angle"
+ValueDefault=ignore
+
+[Sp Inside Angle]
+Category=1
+Description="<html>Add or remove space inside '&lt;' and '&gt;'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_angle=ignore|sp_inside_angle=add|sp_inside_angle=remove|sp_inside_angle=force|sp_inside_angle=not_defined
+ChoicesReadable="Ignore Sp Inside Angle|Add Sp Inside Angle|Remove Sp Inside Angle|Force Sp Inside Angle"
+ValueDefault=ignore
+
+[Sp Inside Angle Empty]
+Category=1
+Description="<html>Add or remove space inside '&lt;&gt;'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_angle_empty=ignore|sp_inside_angle_empty=add|sp_inside_angle_empty=remove|sp_inside_angle_empty=force|sp_inside_angle_empty=not_defined
+ChoicesReadable="Ignore Sp Inside Angle Empty|Add Sp Inside Angle Empty|Remove Sp Inside Angle Empty|Force Sp Inside Angle Empty"
+ValueDefault=ignore
+
+[Sp Angle Colon]
+Category=1
+Description="<html>Add or remove space between '&gt;' and ':'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_angle_colon=ignore|sp_angle_colon=add|sp_angle_colon=remove|sp_angle_colon=force|sp_angle_colon=not_defined
+ChoicesReadable="Ignore Sp Angle Colon|Add Sp Angle Colon|Remove Sp Angle Colon|Force Sp Angle Colon"
+ValueDefault=ignore
+
+[Sp After Angle]
+Category=1
+Description="<html>Add or remove space after '&gt;'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_angle=ignore|sp_after_angle=add|sp_after_angle=remove|sp_after_angle=force|sp_after_angle=not_defined
+ChoicesReadable="Ignore Sp After Angle|Add Sp After Angle|Remove Sp After Angle|Force Sp After Angle"
+ValueDefault=ignore
+
+[Sp Angle Paren]
+Category=1
+Description="<html>Add or remove space between '&gt;' and '(' as found in 'new List&lt;byte&gt;(foo);'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_angle_paren=ignore|sp_angle_paren=add|sp_angle_paren=remove|sp_angle_paren=force|sp_angle_paren=not_defined
+ChoicesReadable="Ignore Sp Angle Paren|Add Sp Angle Paren|Remove Sp Angle Paren|Force Sp Angle Paren"
+ValueDefault=ignore
+
+[Sp Angle Paren Empty]
+Category=1
+Description="<html>Add or remove space between '&gt;' and '()' as found in 'new List&lt;byte&gt;();'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_angle_paren_empty=ignore|sp_angle_paren_empty=add|sp_angle_paren_empty=remove|sp_angle_paren_empty=force|sp_angle_paren_empty=not_defined
+ChoicesReadable="Ignore Sp Angle Paren Empty|Add Sp Angle Paren Empty|Remove Sp Angle Paren Empty|Force Sp Angle Paren Empty"
+ValueDefault=ignore
+
+[Sp Angle Word]
+Category=1
+Description="<html>Add or remove space between '&gt;' and a word as in 'List&lt;byte&gt; m;' or<br/>'template &lt;typename T&gt; static ...'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_angle_word=ignore|sp_angle_word=add|sp_angle_word=remove|sp_angle_word=force|sp_angle_word=not_defined
+ChoicesReadable="Ignore Sp Angle Word|Add Sp Angle Word|Remove Sp Angle Word|Force Sp Angle Word"
+ValueDefault=ignore
+
+[Sp Angle Shift]
+Category=1
+Description="<html>Add or remove space between '&gt;' and '&gt;' in '&gt;&gt;' (template stuff).<br/><br/>Default: add</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_angle_shift=ignore|sp_angle_shift=add|sp_angle_shift=remove|sp_angle_shift=force|sp_angle_shift=not_defined
+ChoicesReadable="Ignore Sp Angle Shift|Add Sp Angle Shift|Remove Sp Angle Shift|Force Sp Angle Shift"
+ValueDefault=add
+
+[Sp Permit Cpp11 Shift]
+Category=1
+Description="<html>(C++11) Permit removal of the space between '&gt;&gt;' in 'foo&lt;bar&lt;int&gt; &gt;'. Note<br/>that sp_angle_shift cannot remove the space without this option.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=sp_permit_cpp11_shift=true|sp_permit_cpp11_shift=false
+ValueDefault=false
+
+[Sp Before Sparen]
+Category=1
+Description="<html>Add or remove space before '(' of control statements ('if', 'for', 'switch',<br/>'while', etc.).</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_sparen=ignore|sp_before_sparen=add|sp_before_sparen=remove|sp_before_sparen=force|sp_before_sparen=not_defined
+ChoicesReadable="Ignore Sp Before Sparen|Add Sp Before Sparen|Remove Sp Before Sparen|Force Sp Before Sparen"
+ValueDefault=ignore
+
+[Sp Inside Sparen]
+Category=1
+Description="<html>Add or remove space inside '(' and ')' of control statements other than<br/>'for'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_sparen=ignore|sp_inside_sparen=add|sp_inside_sparen=remove|sp_inside_sparen=force|sp_inside_sparen=not_defined
+ChoicesReadable="Ignore Sp Inside Sparen|Add Sp Inside Sparen|Remove Sp Inside Sparen|Force Sp Inside Sparen"
+ValueDefault=ignore
+
+[Sp Inside Sparen Open]
+Category=1
+Description="<html>Add or remove space after '(' of control statements other than 'for'.<br/><br/>Overrides sp_inside_sparen.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_sparen_open=ignore|sp_inside_sparen_open=add|sp_inside_sparen_open=remove|sp_inside_sparen_open=force|sp_inside_sparen_open=not_defined
+ChoicesReadable="Ignore Sp Inside Sparen Open|Add Sp Inside Sparen Open|Remove Sp Inside Sparen Open|Force Sp Inside Sparen Open"
+ValueDefault=ignore
+
+[Sp Inside Sparen Close]
+Category=1
+Description="<html>Add or remove space before ')' of control statements other than 'for'.<br/><br/>Overrides sp_inside_sparen.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_sparen_close=ignore|sp_inside_sparen_close=add|sp_inside_sparen_close=remove|sp_inside_sparen_close=force|sp_inside_sparen_close=not_defined
+ChoicesReadable="Ignore Sp Inside Sparen Close|Add Sp Inside Sparen Close|Remove Sp Inside Sparen Close|Force Sp Inside Sparen Close"
+ValueDefault=ignore
+
+[Sp Inside For]
+Category=1
+Description="<html>Add or remove space inside '(' and ')' of 'for' statements.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_for=ignore|sp_inside_for=add|sp_inside_for=remove|sp_inside_for=force|sp_inside_for=not_defined
+ChoicesReadable="Ignore Sp Inside For|Add Sp Inside For|Remove Sp Inside For|Force Sp Inside For"
+ValueDefault=ignore
+
+[Sp Inside For Open]
+Category=1
+Description="<html>Add or remove space after '(' of 'for' statements.<br/><br/>Overrides sp_inside_for.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_for_open=ignore|sp_inside_for_open=add|sp_inside_for_open=remove|sp_inside_for_open=force|sp_inside_for_open=not_defined
+ChoicesReadable="Ignore Sp Inside For Open|Add Sp Inside For Open|Remove Sp Inside For Open|Force Sp Inside For Open"
+ValueDefault=ignore
+
+[Sp Inside For Close]
+Category=1
+Description="<html>Add or remove space before ')' of 'for' statements.<br/><br/>Overrides sp_inside_for.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_for_close=ignore|sp_inside_for_close=add|sp_inside_for_close=remove|sp_inside_for_close=force|sp_inside_for_close=not_defined
+ChoicesReadable="Ignore Sp Inside For Close|Add Sp Inside For Close|Remove Sp Inside For Close|Force Sp Inside For Close"
+ValueDefault=ignore
+
+[Sp Sparen Paren]
+Category=1
+Description="<html>Add or remove space between '((' or '))' of control statements.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_sparen_paren=ignore|sp_sparen_paren=add|sp_sparen_paren=remove|sp_sparen_paren=force|sp_sparen_paren=not_defined
+ChoicesReadable="Ignore Sp Sparen Paren|Add Sp Sparen Paren|Remove Sp Sparen Paren|Force Sp Sparen Paren"
+ValueDefault=ignore
+
+[Sp After Sparen]
+Category=1
+Description="<html>Add or remove space after ')' of control statements.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_sparen=ignore|sp_after_sparen=add|sp_after_sparen=remove|sp_after_sparen=force|sp_after_sparen=not_defined
+ChoicesReadable="Ignore Sp After Sparen|Add Sp After Sparen|Remove Sp After Sparen|Force Sp After Sparen"
+ValueDefault=ignore
+
+[Sp Sparen Brace]
+Category=1
+Description="<html>Add or remove space between ')' and '{' of control statements.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_sparen_brace=ignore|sp_sparen_brace=add|sp_sparen_brace=remove|sp_sparen_brace=force|sp_sparen_brace=not_defined
+ChoicesReadable="Ignore Sp Sparen Brace|Add Sp Sparen Brace|Remove Sp Sparen Brace|Force Sp Sparen Brace"
+ValueDefault=ignore
+
+[Sp Do Brace Open]
+Category=1
+Description="<html>Add or remove space between 'do' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_do_brace_open=ignore|sp_do_brace_open=add|sp_do_brace_open=remove|sp_do_brace_open=force|sp_do_brace_open=not_defined
+ChoicesReadable="Ignore Sp Do Brace Open|Add Sp Do Brace Open|Remove Sp Do Brace Open|Force Sp Do Brace Open"
+ValueDefault=ignore
+
+[Sp Brace Close While]
+Category=1
+Description="<html>Add or remove space between '}' and 'while'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_brace_close_while=ignore|sp_brace_close_while=add|sp_brace_close_while=remove|sp_brace_close_while=force|sp_brace_close_while=not_defined
+ChoicesReadable="Ignore Sp Brace Close While|Add Sp Brace Close While|Remove Sp Brace Close While|Force Sp Brace Close While"
+ValueDefault=ignore
+
+[Sp While Paren Open]
+Category=1
+Description="<html>Add or remove space between 'while' and '('. Overrides sp_before_sparen.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_while_paren_open=ignore|sp_while_paren_open=add|sp_while_paren_open=remove|sp_while_paren_open=force|sp_while_paren_open=not_defined
+ChoicesReadable="Ignore Sp While Paren Open|Add Sp While Paren Open|Remove Sp While Paren Open|Force Sp While Paren Open"
+ValueDefault=ignore
+
+[Sp Invariant Paren]
+Category=1
+Description="<html>(D) Add or remove space between 'invariant' and '('.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_invariant_paren=ignore|sp_invariant_paren=add|sp_invariant_paren=remove|sp_invariant_paren=force|sp_invariant_paren=not_defined
+ChoicesReadable="Ignore Sp Invariant Paren|Add Sp Invariant Paren|Remove Sp Invariant Paren|Force Sp Invariant Paren"
+ValueDefault=ignore
+
+[Sp After Invariant Paren]
+Category=1
+Description="<html>(D) Add or remove space after the ')' in 'invariant (C) c'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_invariant_paren=ignore|sp_after_invariant_paren=add|sp_after_invariant_paren=remove|sp_after_invariant_paren=force|sp_after_invariant_paren=not_defined
+ChoicesReadable="Ignore Sp After Invariant Paren|Add Sp After Invariant Paren|Remove Sp After Invariant Paren|Force Sp After Invariant Paren"
+ValueDefault=ignore
+
+[Sp Special Semi]
+Category=1
+Description="<html>Add or remove space before empty statement ';' on 'if', 'for' and 'while'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_special_semi=ignore|sp_special_semi=add|sp_special_semi=remove|sp_special_semi=force|sp_special_semi=not_defined
+ChoicesReadable="Ignore Sp Special Semi|Add Sp Special Semi|Remove Sp Special Semi|Force Sp Special Semi"
+ValueDefault=ignore
+
+[Sp Before Semi]
+Category=1
+Description="<html>Add or remove space before ';'.<br/><br/>Default: remove</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_semi=ignore|sp_before_semi=add|sp_before_semi=remove|sp_before_semi=force|sp_before_semi=not_defined
+ChoicesReadable="Ignore Sp Before Semi|Add Sp Before Semi|Remove Sp Before Semi|Force Sp Before Semi"
+ValueDefault=remove
+
+[Sp Before Semi For]
+Category=1
+Description="<html>Add or remove space before ';' in non-empty 'for' statements.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_semi_for=ignore|sp_before_semi_for=add|sp_before_semi_for=remove|sp_before_semi_for=force|sp_before_semi_for=not_defined
+ChoicesReadable="Ignore Sp Before Semi For|Add Sp Before Semi For|Remove Sp Before Semi For|Force Sp Before Semi For"
+ValueDefault=ignore
+
+[Sp Before Semi For Empty]
+Category=1
+Description="<html>Add or remove space before a semicolon of an empty left part of a for<br/>statement, as in 'for ( &lt;here&gt; ; ; )'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_semi_for_empty=ignore|sp_before_semi_for_empty=add|sp_before_semi_for_empty=remove|sp_before_semi_for_empty=force|sp_before_semi_for_empty=not_defined
+ChoicesReadable="Ignore Sp Before Semi For Empty|Add Sp Before Semi For Empty|Remove Sp Before Semi For Empty|Force Sp Before Semi For Empty"
+ValueDefault=ignore
+
+[Sp Between Semi For Empty]
+Category=1
+Description="<html>Add or remove space between the semicolons of an empty middle part of a for<br/>statement, as in 'for ( ; &lt;here&gt; ; )'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_between_semi_for_empty=ignore|sp_between_semi_for_empty=add|sp_between_semi_for_empty=remove|sp_between_semi_for_empty=force|sp_between_semi_for_empty=not_defined
+ChoicesReadable="Ignore Sp Between Semi For Empty|Add Sp Between Semi For Empty|Remove Sp Between Semi For Empty|Force Sp Between Semi For Empty"
+ValueDefault=ignore
+
+[Sp After Semi]
+Category=1
+Description="<html>Add or remove space after ';', except when followed by a comment.<br/><br/>Default: add</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_semi=ignore|sp_after_semi=add|sp_after_semi=remove|sp_after_semi=force|sp_after_semi=not_defined
+ChoicesReadable="Ignore Sp After Semi|Add Sp After Semi|Remove Sp After Semi|Force Sp After Semi"
+ValueDefault=add
+
+[Sp After Semi For]
+Category=1
+Description="<html>Add or remove space after ';' in non-empty 'for' statements.<br/><br/>Default: force</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_semi_for=ignore|sp_after_semi_for=add|sp_after_semi_for=remove|sp_after_semi_for=force|sp_after_semi_for=not_defined
+ChoicesReadable="Ignore Sp After Semi For|Add Sp After Semi For|Remove Sp After Semi For|Force Sp After Semi For"
+ValueDefault=force
+
+[Sp After Semi For Empty]
+Category=1
+Description="<html>Add or remove space after the final semicolon of an empty part of a for<br/>statement, as in 'for ( ; ; &lt;here&gt; )'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_semi_for_empty=ignore|sp_after_semi_for_empty=add|sp_after_semi_for_empty=remove|sp_after_semi_for_empty=force|sp_after_semi_for_empty=not_defined
+ChoicesReadable="Ignore Sp After Semi For Empty|Add Sp After Semi For Empty|Remove Sp After Semi For Empty|Force Sp After Semi For Empty"
+ValueDefault=ignore
+
+[Sp Before Square]
+Category=1
+Description="<html>Add or remove space before '[' (except '[]').</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_square=ignore|sp_before_square=add|sp_before_square=remove|sp_before_square=force|sp_before_square=not_defined
+ChoicesReadable="Ignore Sp Before Square|Add Sp Before Square|Remove Sp Before Square|Force Sp Before Square"
+ValueDefault=ignore
+
+[Sp Before Vardef Square]
+Category=1
+Description="<html>Add or remove space before '[' for a variable definition.<br/><br/>Default: remove</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_vardef_square=ignore|sp_before_vardef_square=add|sp_before_vardef_square=remove|sp_before_vardef_square=force|sp_before_vardef_square=not_defined
+ChoicesReadable="Ignore Sp Before Vardef Square|Add Sp Before Vardef Square|Remove Sp Before Vardef Square|Force Sp Before Vardef Square"
+ValueDefault=remove
+
+[Sp Before Square Asm Block]
+Category=1
+Description="<html>Add or remove space before '[' for asm block.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_square_asm_block=ignore|sp_before_square_asm_block=add|sp_before_square_asm_block=remove|sp_before_square_asm_block=force|sp_before_square_asm_block=not_defined
+ChoicesReadable="Ignore Sp Before Square Asm Block|Add Sp Before Square Asm Block|Remove Sp Before Square Asm Block|Force Sp Before Square Asm Block"
+ValueDefault=ignore
+
+[Sp Before Squares]
+Category=1
+Description="<html>Add or remove space before '[]'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_squares=ignore|sp_before_squares=add|sp_before_squares=remove|sp_before_squares=force|sp_before_squares=not_defined
+ChoicesReadable="Ignore Sp Before Squares|Add Sp Before Squares|Remove Sp Before Squares|Force Sp Before Squares"
+ValueDefault=ignore
+
+[Sp Cpp Before Struct Binding]
+Category=1
+Description="<html>Add or remove space before C++17 structured bindings.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_cpp_before_struct_binding=ignore|sp_cpp_before_struct_binding=add|sp_cpp_before_struct_binding=remove|sp_cpp_before_struct_binding=force|sp_cpp_before_struct_binding=not_defined
+ChoicesReadable="Ignore Sp Cpp Before Struct Binding|Add Sp Cpp Before Struct Binding|Remove Sp Cpp Before Struct Binding|Force Sp Cpp Before Struct Binding"
+ValueDefault=ignore
+
+[Sp Inside Square]
+Category=1
+Description="<html>Add or remove space inside a non-empty '[' and ']'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_square=ignore|sp_inside_square=add|sp_inside_square=remove|sp_inside_square=force|sp_inside_square=not_defined
+ChoicesReadable="Ignore Sp Inside Square|Add Sp Inside Square|Remove Sp Inside Square|Force Sp Inside Square"
+ValueDefault=ignore
+
+[Sp Inside Square Empty]
+Category=1
+Description="<html>Add or remove space inside '[]'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_square_empty=ignore|sp_inside_square_empty=add|sp_inside_square_empty=remove|sp_inside_square_empty=force|sp_inside_square_empty=not_defined
+ChoicesReadable="Ignore Sp Inside Square Empty|Add Sp Inside Square Empty|Remove Sp Inside Square Empty|Force Sp Inside Square Empty"
+ValueDefault=ignore
+
+[Sp Inside Square Oc Array]
+Category=1
+Description="<html>(OC) Add or remove space inside a non-empty Objective-C boxed array '@[' and<br/>']'. If set to ignore, sp_inside_square is used.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_square_oc_array=ignore|sp_inside_square_oc_array=add|sp_inside_square_oc_array=remove|sp_inside_square_oc_array=force|sp_inside_square_oc_array=not_defined
+ChoicesReadable="Ignore Sp Inside Square Oc Array|Add Sp Inside Square Oc Array|Remove Sp Inside Square Oc Array|Force Sp Inside Square Oc Array"
+ValueDefault=ignore
+
+[Sp After Comma]
+Category=1
+Description="<html>Add or remove space after ',', i.e. 'a,b' vs. 'a, b'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_comma=ignore|sp_after_comma=add|sp_after_comma=remove|sp_after_comma=force|sp_after_comma=not_defined
+ChoicesReadable="Ignore Sp After Comma|Add Sp After Comma|Remove Sp After Comma|Force Sp After Comma"
+ValueDefault=ignore
+
+[Sp Before Comma]
+Category=1
+Description="<html>Add or remove space before ',', i.e. 'a,b' vs. 'a ,b'.<br/><br/>Default: remove</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_comma=ignore|sp_before_comma=add|sp_before_comma=remove|sp_before_comma=force|sp_before_comma=not_defined
+ChoicesReadable="Ignore Sp Before Comma|Add Sp Before Comma|Remove Sp Before Comma|Force Sp Before Comma"
+ValueDefault=remove
+
+[Sp After Mdatype Commas]
+Category=1
+Description="<html>(C#) Add or remove space between ',' and ']' in multidimensional array type<br/>like 'int[,,]'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_mdatype_commas=ignore|sp_after_mdatype_commas=add|sp_after_mdatype_commas=remove|sp_after_mdatype_commas=force|sp_after_mdatype_commas=not_defined
+ChoicesReadable="Ignore Sp After Mdatype Commas|Add Sp After Mdatype Commas|Remove Sp After Mdatype Commas|Force Sp After Mdatype Commas"
+ValueDefault=ignore
+
+[Sp Before Mdatype Commas]
+Category=1
+Description="<html>(C#) Add or remove space between '[' and ',' in multidimensional array type<br/>like 'int[,,]'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_mdatype_commas=ignore|sp_before_mdatype_commas=add|sp_before_mdatype_commas=remove|sp_before_mdatype_commas=force|sp_before_mdatype_commas=not_defined
+ChoicesReadable="Ignore Sp Before Mdatype Commas|Add Sp Before Mdatype Commas|Remove Sp Before Mdatype Commas|Force Sp Before Mdatype Commas"
+ValueDefault=ignore
+
+[Sp Between Mdatype Commas]
+Category=1
+Description="<html>(C#) Add or remove space between ',' in multidimensional array type<br/>like 'int[,,]'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_between_mdatype_commas=ignore|sp_between_mdatype_commas=add|sp_between_mdatype_commas=remove|sp_between_mdatype_commas=force|sp_between_mdatype_commas=not_defined
+ChoicesReadable="Ignore Sp Between Mdatype Commas|Add Sp Between Mdatype Commas|Remove Sp Between Mdatype Commas|Force Sp Between Mdatype Commas"
+ValueDefault=ignore
+
+[Sp Paren Comma]
+Category=1
+Description="<html>Add or remove space between an open parenthesis and comma,<br/>i.e. '(,' vs. '( ,'.<br/><br/>Default: force</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_paren_comma=ignore|sp_paren_comma=add|sp_paren_comma=remove|sp_paren_comma=force|sp_paren_comma=not_defined
+ChoicesReadable="Ignore Sp Paren Comma|Add Sp Paren Comma|Remove Sp Paren Comma|Force Sp Paren Comma"
+ValueDefault=force
+
+[Sp Type Colon]
+Category=1
+Description="<html>Add or remove space between a type and ':'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_type_colon=ignore|sp_type_colon=add|sp_type_colon=remove|sp_type_colon=force|sp_type_colon=not_defined
+ChoicesReadable="Ignore Sp Type Colon|Add Sp Type Colon|Remove Sp Type Colon|Force Sp Type Colon"
+ValueDefault=ignore
+
+[Sp After Ellipsis]
+Category=1
+Description="<html>Add or remove space after the variadic '...' when preceded by a<br/>non-punctuator.<br/>The value REMOVE will be overridden with FORCE</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_ellipsis=ignore|sp_after_ellipsis=add|sp_after_ellipsis=remove|sp_after_ellipsis=force|sp_after_ellipsis=not_defined
+ChoicesReadable="Ignore Sp After Ellipsis|Add Sp After Ellipsis|Remove Sp After Ellipsis|Force Sp After Ellipsis"
+ValueDefault=ignore
+
+[Sp Before Ellipsis]
+Category=1
+Description="<html>Add or remove space before the variadic '...' when preceded by a<br/>non-punctuator.<br/>The value REMOVE will be overridden with FORCE</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_ellipsis=ignore|sp_before_ellipsis=add|sp_before_ellipsis=remove|sp_before_ellipsis=force|sp_before_ellipsis=not_defined
+ChoicesReadable="Ignore Sp Before Ellipsis|Add Sp Before Ellipsis|Remove Sp Before Ellipsis|Force Sp Before Ellipsis"
+ValueDefault=ignore
+
+[Sp Type Ellipsis]
+Category=1
+Description="<html>Add or remove space between a type and '...'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_type_ellipsis=ignore|sp_type_ellipsis=add|sp_type_ellipsis=remove|sp_type_ellipsis=force|sp_type_ellipsis=not_defined
+ChoicesReadable="Ignore Sp Type Ellipsis|Add Sp Type Ellipsis|Remove Sp Type Ellipsis|Force Sp Type Ellipsis"
+ValueDefault=ignore
+
+[Sp Ptr Type Ellipsis]
+Category=1
+Description="<html>Add or remove space between a '*' and '...'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_ptr_type_ellipsis=ignore|sp_ptr_type_ellipsis=add|sp_ptr_type_ellipsis=remove|sp_ptr_type_ellipsis=force|sp_ptr_type_ellipsis=not_defined
+ChoicesReadable="Ignore Sp Ptr Type Ellipsis|Add Sp Ptr Type Ellipsis|Remove Sp Ptr Type Ellipsis|Force Sp Ptr Type Ellipsis"
+ValueDefault=ignore
+
+[Sp Paren Ellipsis]
+Category=1
+Description="<html>Add or remove space between ')' and '...'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_paren_ellipsis=ignore|sp_paren_ellipsis=add|sp_paren_ellipsis=remove|sp_paren_ellipsis=force|sp_paren_ellipsis=not_defined
+ChoicesReadable="Ignore Sp Paren Ellipsis|Add Sp Paren Ellipsis|Remove Sp Paren Ellipsis|Force Sp Paren Ellipsis"
+ValueDefault=ignore
+
+[Sp Byref Ellipsis]
+Category=1
+Description="<html>Add or remove space between '&amp;&amp;' and '...'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_byref_ellipsis=ignore|sp_byref_ellipsis=add|sp_byref_ellipsis=remove|sp_byref_ellipsis=force|sp_byref_ellipsis=not_defined
+ChoicesReadable="Ignore Sp Byref Ellipsis|Add Sp Byref Ellipsis|Remove Sp Byref Ellipsis|Force Sp Byref Ellipsis"
+ValueDefault=ignore
+
+[Sp Paren Qualifier]
+Category=1
+Description="<html>Add or remove space between ')' and a qualifier such as 'const'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_paren_qualifier=ignore|sp_paren_qualifier=add|sp_paren_qualifier=remove|sp_paren_qualifier=force|sp_paren_qualifier=not_defined
+ChoicesReadable="Ignore Sp Paren Qualifier|Add Sp Paren Qualifier|Remove Sp Paren Qualifier|Force Sp Paren Qualifier"
+ValueDefault=ignore
+
+[Sp Paren Noexcept]
+Category=1
+Description="<html>Add or remove space between ')' and 'noexcept'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_paren_noexcept=ignore|sp_paren_noexcept=add|sp_paren_noexcept=remove|sp_paren_noexcept=force|sp_paren_noexcept=not_defined
+ChoicesReadable="Ignore Sp Paren Noexcept|Add Sp Paren Noexcept|Remove Sp Paren Noexcept|Force Sp Paren Noexcept"
+ValueDefault=ignore
+
+[Sp After Class Colon]
+Category=1
+Description="<html>Add or remove space after class ':'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_class_colon=ignore|sp_after_class_colon=add|sp_after_class_colon=remove|sp_after_class_colon=force|sp_after_class_colon=not_defined
+ChoicesReadable="Ignore Sp After Class Colon|Add Sp After Class Colon|Remove Sp After Class Colon|Force Sp After Class Colon"
+ValueDefault=ignore
+
+[Sp Before Class Colon]
+Category=1
+Description="<html>Add or remove space before class ':'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_class_colon=ignore|sp_before_class_colon=add|sp_before_class_colon=remove|sp_before_class_colon=force|sp_before_class_colon=not_defined
+ChoicesReadable="Ignore Sp Before Class Colon|Add Sp Before Class Colon|Remove Sp Before Class Colon|Force Sp Before Class Colon"
+ValueDefault=ignore
+
+[Sp After Constr Colon]
+Category=1
+Description="<html>Add or remove space after class constructor ':'.<br/><br/>Default: add</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_constr_colon=ignore|sp_after_constr_colon=add|sp_after_constr_colon=remove|sp_after_constr_colon=force|sp_after_constr_colon=not_defined
+ChoicesReadable="Ignore Sp After Constr Colon|Add Sp After Constr Colon|Remove Sp After Constr Colon|Force Sp After Constr Colon"
+ValueDefault=add
+
+[Sp Before Constr Colon]
+Category=1
+Description="<html>Add or remove space before class constructor ':'.<br/><br/>Default: add</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_constr_colon=ignore|sp_before_constr_colon=add|sp_before_constr_colon=remove|sp_before_constr_colon=force|sp_before_constr_colon=not_defined
+ChoicesReadable="Ignore Sp Before Constr Colon|Add Sp Before Constr Colon|Remove Sp Before Constr Colon|Force Sp Before Constr Colon"
+ValueDefault=add
+
+[Sp Before Case Colon]
+Category=1
+Description="<html>Add or remove space before case ':'.<br/><br/>Default: remove</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_case_colon=ignore|sp_before_case_colon=add|sp_before_case_colon=remove|sp_before_case_colon=force|sp_before_case_colon=not_defined
+ChoicesReadable="Ignore Sp Before Case Colon|Add Sp Before Case Colon|Remove Sp Before Case Colon|Force Sp Before Case Colon"
+ValueDefault=remove
+
+[Sp After Operator]
+Category=1
+Description="<html>Add or remove space between 'operator' and operator sign.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_operator=ignore|sp_after_operator=add|sp_after_operator=remove|sp_after_operator=force|sp_after_operator=not_defined
+ChoicesReadable="Ignore Sp After Operator|Add Sp After Operator|Remove Sp After Operator|Force Sp After Operator"
+ValueDefault=ignore
+
+[Sp After Operator Sym]
+Category=1
+Description="<html>Add or remove space between the operator symbol and the open parenthesis, as<br/>in 'operator ++('.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_operator_sym=ignore|sp_after_operator_sym=add|sp_after_operator_sym=remove|sp_after_operator_sym=force|sp_after_operator_sym=not_defined
+ChoicesReadable="Ignore Sp After Operator Sym|Add Sp After Operator Sym|Remove Sp After Operator Sym|Force Sp After Operator Sym"
+ValueDefault=ignore
+
+[Sp After Operator Sym Empty]
+Category=1
+Description="<html>Overrides sp_after_operator_sym when the operator has no arguments, as in<br/>'operator *()'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_operator_sym_empty=ignore|sp_after_operator_sym_empty=add|sp_after_operator_sym_empty=remove|sp_after_operator_sym_empty=force|sp_after_operator_sym_empty=not_defined
+ChoicesReadable="Ignore Sp After Operator Sym Empty|Add Sp After Operator Sym Empty|Remove Sp After Operator Sym Empty|Force Sp After Operator Sym Empty"
+ValueDefault=ignore
+
+[Sp After Cast]
+Category=1
+Description="<html>Add or remove space after C/D cast, i.e. 'cast(int)a' vs. 'cast(int) a' or<br/>'(int)a' vs. '(int) a'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_cast=ignore|sp_after_cast=add|sp_after_cast=remove|sp_after_cast=force|sp_after_cast=not_defined
+ChoicesReadable="Ignore Sp After Cast|Add Sp After Cast|Remove Sp After Cast|Force Sp After Cast"
+ValueDefault=ignore
+
+[Sp Inside Paren Cast]
+Category=1
+Description="<html>Add or remove spaces inside cast parentheses.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_paren_cast=ignore|sp_inside_paren_cast=add|sp_inside_paren_cast=remove|sp_inside_paren_cast=force|sp_inside_paren_cast=not_defined
+ChoicesReadable="Ignore Sp Inside Paren Cast|Add Sp Inside Paren Cast|Remove Sp Inside Paren Cast|Force Sp Inside Paren Cast"
+ValueDefault=ignore
+
+[Sp Cpp Cast Paren]
+Category=1
+Description="<html>Add or remove space between the type and open parenthesis in a C++ cast,<br/>i.e. 'int(exp)' vs. 'int (exp)'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_cpp_cast_paren=ignore|sp_cpp_cast_paren=add|sp_cpp_cast_paren=remove|sp_cpp_cast_paren=force|sp_cpp_cast_paren=not_defined
+ChoicesReadable="Ignore Sp Cpp Cast Paren|Add Sp Cpp Cast Paren|Remove Sp Cpp Cast Paren|Force Sp Cpp Cast Paren"
+ValueDefault=ignore
+
+[Sp Sizeof Paren]
+Category=1
+Description="<html>Add or remove space between 'sizeof' and '('.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_sizeof_paren=ignore|sp_sizeof_paren=add|sp_sizeof_paren=remove|sp_sizeof_paren=force|sp_sizeof_paren=not_defined
+ChoicesReadable="Ignore Sp Sizeof Paren|Add Sp Sizeof Paren|Remove Sp Sizeof Paren|Force Sp Sizeof Paren"
+ValueDefault=ignore
+
+[Sp Sizeof Ellipsis]
+Category=1
+Description="<html>Add or remove space between 'sizeof' and '...'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_sizeof_ellipsis=ignore|sp_sizeof_ellipsis=add|sp_sizeof_ellipsis=remove|sp_sizeof_ellipsis=force|sp_sizeof_ellipsis=not_defined
+ChoicesReadable="Ignore Sp Sizeof Ellipsis|Add Sp Sizeof Ellipsis|Remove Sp Sizeof Ellipsis|Force Sp Sizeof Ellipsis"
+ValueDefault=ignore
+
+[Sp Sizeof Ellipsis Paren]
+Category=1
+Description="<html>Add or remove space between 'sizeof...' and '('.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_sizeof_ellipsis_paren=ignore|sp_sizeof_ellipsis_paren=add|sp_sizeof_ellipsis_paren=remove|sp_sizeof_ellipsis_paren=force|sp_sizeof_ellipsis_paren=not_defined
+ChoicesReadable="Ignore Sp Sizeof Ellipsis Paren|Add Sp Sizeof Ellipsis Paren|Remove Sp Sizeof Ellipsis Paren|Force Sp Sizeof Ellipsis Paren"
+ValueDefault=ignore
+
+[Sp Ellipsis Parameter Pack]
+Category=1
+Description="<html>Add or remove space between '...' and a parameter pack.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_ellipsis_parameter_pack=ignore|sp_ellipsis_parameter_pack=add|sp_ellipsis_parameter_pack=remove|sp_ellipsis_parameter_pack=force|sp_ellipsis_parameter_pack=not_defined
+ChoicesReadable="Ignore Sp Ellipsis Parameter Pack|Add Sp Ellipsis Parameter Pack|Remove Sp Ellipsis Parameter Pack|Force Sp Ellipsis Parameter Pack"
+ValueDefault=ignore
+
+[Sp Parameter Pack Ellipsis]
+Category=1
+Description="<html>Add or remove space between a parameter pack and '...'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_parameter_pack_ellipsis=ignore|sp_parameter_pack_ellipsis=add|sp_parameter_pack_ellipsis=remove|sp_parameter_pack_ellipsis=force|sp_parameter_pack_ellipsis=not_defined
+ChoicesReadable="Ignore Sp Parameter Pack Ellipsis|Add Sp Parameter Pack Ellipsis|Remove Sp Parameter Pack Ellipsis|Force Sp Parameter Pack Ellipsis"
+ValueDefault=ignore
+
+[Sp Decltype Paren]
+Category=1
+Description="<html>Add or remove space between 'decltype' and '('.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_decltype_paren=ignore|sp_decltype_paren=add|sp_decltype_paren=remove|sp_decltype_paren=force|sp_decltype_paren=not_defined
+ChoicesReadable="Ignore Sp Decltype Paren|Add Sp Decltype Paren|Remove Sp Decltype Paren|Force Sp Decltype Paren"
+ValueDefault=ignore
+
+[Sp After Tag]
+Category=1
+Description="<html>(Pawn) Add or remove space after the tag keyword.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_tag=ignore|sp_after_tag=add|sp_after_tag=remove|sp_after_tag=force|sp_after_tag=not_defined
+ChoicesReadable="Ignore Sp After Tag|Add Sp After Tag|Remove Sp After Tag|Force Sp After Tag"
+ValueDefault=ignore
+
+[Sp Inside Braces Enum]
+Category=1
+Description="<html>Add or remove space inside enum '{' and '}'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_braces_enum=ignore|sp_inside_braces_enum=add|sp_inside_braces_enum=remove|sp_inside_braces_enum=force|sp_inside_braces_enum=not_defined
+ChoicesReadable="Ignore Sp Inside Braces Enum|Add Sp Inside Braces Enum|Remove Sp Inside Braces Enum|Force Sp Inside Braces Enum"
+ValueDefault=ignore
+
+[Sp Inside Braces Struct]
+Category=1
+Description="<html>Add or remove space inside struct/union '{' and '}'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_braces_struct=ignore|sp_inside_braces_struct=add|sp_inside_braces_struct=remove|sp_inside_braces_struct=force|sp_inside_braces_struct=not_defined
+ChoicesReadable="Ignore Sp Inside Braces Struct|Add Sp Inside Braces Struct|Remove Sp Inside Braces Struct|Force Sp Inside Braces Struct"
+ValueDefault=ignore
+
+[Sp Inside Braces Oc Dict]
+Category=1
+Description="<html>(OC) Add or remove space inside Objective-C boxed dictionary '{' and '}'</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_braces_oc_dict=ignore|sp_inside_braces_oc_dict=add|sp_inside_braces_oc_dict=remove|sp_inside_braces_oc_dict=force|sp_inside_braces_oc_dict=not_defined
+ChoicesReadable="Ignore Sp Inside Braces Oc Dict|Add Sp Inside Braces Oc Dict|Remove Sp Inside Braces Oc Dict|Force Sp Inside Braces Oc Dict"
+ValueDefault=ignore
+
+[Sp After Type Brace Init Lst Open]
+Category=1
+Description="<html>Add or remove space after open brace in an unnamed temporary<br/>direct-list-initialization<br/>if statement is a brace_init_lst<br/>works only if sp_brace_brace is set to ignore.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_type_brace_init_lst_open=ignore|sp_after_type_brace_init_lst_open=add|sp_after_type_brace_init_lst_open=remove|sp_after_type_brace_init_lst_open=force|sp_after_type_brace_init_lst_open=not_defined
+ChoicesReadable="Ignore Sp After Type Brace Init Lst Open|Add Sp After Type Brace Init Lst Open|Remove Sp After Type Brace Init Lst Open|Force Sp After Type Brace Init Lst Open"
+ValueDefault=ignore
+
+[Sp Before Type Brace Init Lst Close]
+Category=1
+Description="<html>Add or remove space before close brace in an unnamed temporary<br/>direct-list-initialization<br/>if statement is a brace_init_lst<br/>works only if sp_brace_brace is set to ignore.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_type_brace_init_lst_close=ignore|sp_before_type_brace_init_lst_close=add|sp_before_type_brace_init_lst_close=remove|sp_before_type_brace_init_lst_close=force|sp_before_type_brace_init_lst_close=not_defined
+ChoicesReadable="Ignore Sp Before Type Brace Init Lst Close|Add Sp Before Type Brace Init Lst Close|Remove Sp Before Type Brace Init Lst Close|Force Sp Before Type Brace Init Lst Close"
+ValueDefault=ignore
+
+[Sp Inside Type Brace Init Lst]
+Category=1
+Description="<html>Add or remove space inside an unnamed temporary direct-list-initialization<br/>if statement is a brace_init_lst<br/>works only if sp_brace_brace is set to ignore<br/>works only if sp_before_type_brace_init_lst_close is set to ignore.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_type_brace_init_lst=ignore|sp_inside_type_brace_init_lst=add|sp_inside_type_brace_init_lst=remove|sp_inside_type_brace_init_lst=force|sp_inside_type_brace_init_lst=not_defined
+ChoicesReadable="Ignore Sp Inside Type Brace Init Lst|Add Sp Inside Type Brace Init Lst|Remove Sp Inside Type Brace Init Lst|Force Sp Inside Type Brace Init Lst"
+ValueDefault=ignore
+
+[Sp Inside Braces]
+Category=1
+Description="<html>Add or remove space inside '{' and '}'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_braces=ignore|sp_inside_braces=add|sp_inside_braces=remove|sp_inside_braces=force|sp_inside_braces=not_defined
+ChoicesReadable="Ignore Sp Inside Braces|Add Sp Inside Braces|Remove Sp Inside Braces|Force Sp Inside Braces"
+ValueDefault=ignore
+
+[Sp Inside Braces Empty]
+Category=1
+Description="<html>Add or remove space inside '{}'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_braces_empty=ignore|sp_inside_braces_empty=add|sp_inside_braces_empty=remove|sp_inside_braces_empty=force|sp_inside_braces_empty=not_defined
+ChoicesReadable="Ignore Sp Inside Braces Empty|Add Sp Inside Braces Empty|Remove Sp Inside Braces Empty|Force Sp Inside Braces Empty"
+ValueDefault=ignore
+
+[Sp Trailing Return]
+Category=1
+Description="<html>Add or remove space around trailing return operator '-&gt;'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_trailing_return=ignore|sp_trailing_return=add|sp_trailing_return=remove|sp_trailing_return=force|sp_trailing_return=not_defined
+ChoicesReadable="Ignore Sp Trailing Return|Add Sp Trailing Return|Remove Sp Trailing Return|Force Sp Trailing Return"
+ValueDefault=ignore
+
+[Sp Type Func]
+Category=1
+Description="<html>Add or remove space between return type and function name. A minimum of 1<br/>is forced except for pointer return types.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_type_func=ignore|sp_type_func=add|sp_type_func=remove|sp_type_func=force|sp_type_func=not_defined
+ChoicesReadable="Ignore Sp Type Func|Add Sp Type Func|Remove Sp Type Func|Force Sp Type Func"
+ValueDefault=ignore
+
+[Sp Type Brace Init Lst]
+Category=1
+Description="<html>Add or remove space between type and open brace of an unnamed temporary<br/>direct-list-initialization.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_type_brace_init_lst=ignore|sp_type_brace_init_lst=add|sp_type_brace_init_lst=remove|sp_type_brace_init_lst=force|sp_type_brace_init_lst=not_defined
+ChoicesReadable="Ignore Sp Type Brace Init Lst|Add Sp Type Brace Init Lst|Remove Sp Type Brace Init Lst|Force Sp Type Brace Init Lst"
+ValueDefault=ignore
+
+[Sp Func Proto Paren]
+Category=1
+Description="<html>Add or remove space between function name and '(' on function declaration.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_func_proto_paren=ignore|sp_func_proto_paren=add|sp_func_proto_paren=remove|sp_func_proto_paren=force|sp_func_proto_paren=not_defined
+ChoicesReadable="Ignore Sp Func Proto Paren|Add Sp Func Proto Paren|Remove Sp Func Proto Paren|Force Sp Func Proto Paren"
+ValueDefault=ignore
+
+[Sp Func Proto Paren Empty]
+Category=1
+Description="<html>Add or remove space between function name and '()' on function declaration<br/>without parameters.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_func_proto_paren_empty=ignore|sp_func_proto_paren_empty=add|sp_func_proto_paren_empty=remove|sp_func_proto_paren_empty=force|sp_func_proto_paren_empty=not_defined
+ChoicesReadable="Ignore Sp Func Proto Paren Empty|Add Sp Func Proto Paren Empty|Remove Sp Func Proto Paren Empty|Force Sp Func Proto Paren Empty"
+ValueDefault=ignore
+
+[Sp Func Type Paren]
+Category=1
+Description="<html>Add or remove space between function name and '(' with a typedef specifier.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_func_type_paren=ignore|sp_func_type_paren=add|sp_func_type_paren=remove|sp_func_type_paren=force|sp_func_type_paren=not_defined
+ChoicesReadable="Ignore Sp Func Type Paren|Add Sp Func Type Paren|Remove Sp Func Type Paren|Force Sp Func Type Paren"
+ValueDefault=ignore
+
+[Sp Func Def Paren]
+Category=1
+Description="<html>Add or remove space between alias name and '(' of a non-pointer function type typedef.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_func_def_paren=ignore|sp_func_def_paren=add|sp_func_def_paren=remove|sp_func_def_paren=force|sp_func_def_paren=not_defined
+ChoicesReadable="Ignore Sp Func Def Paren|Add Sp Func Def Paren|Remove Sp Func Def Paren|Force Sp Func Def Paren"
+ValueDefault=ignore
+
+[Sp Func Def Paren Empty]
+Category=1
+Description="<html>Add or remove space between function name and '()' on function definition<br/>without parameters.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_func_def_paren_empty=ignore|sp_func_def_paren_empty=add|sp_func_def_paren_empty=remove|sp_func_def_paren_empty=force|sp_func_def_paren_empty=not_defined
+ChoicesReadable="Ignore Sp Func Def Paren Empty|Add Sp Func Def Paren Empty|Remove Sp Func Def Paren Empty|Force Sp Func Def Paren Empty"
+ValueDefault=ignore
+
+[Sp Inside Fparens]
+Category=1
+Description="<html>Add or remove space inside empty function '()'.<br/>Overrides sp_after_angle unless use_sp_after_angle_always is set to true.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_fparens=ignore|sp_inside_fparens=add|sp_inside_fparens=remove|sp_inside_fparens=force|sp_inside_fparens=not_defined
+ChoicesReadable="Ignore Sp Inside Fparens|Add Sp Inside Fparens|Remove Sp Inside Fparens|Force Sp Inside Fparens"
+ValueDefault=ignore
+
+[Sp Inside Fparen]
+Category=1
+Description="<html>Add or remove space inside function '(' and ')'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_fparen=ignore|sp_inside_fparen=add|sp_inside_fparen=remove|sp_inside_fparen=force|sp_inside_fparen=not_defined
+ChoicesReadable="Ignore Sp Inside Fparen|Add Sp Inside Fparen|Remove Sp Inside Fparen|Force Sp Inside Fparen"
+ValueDefault=ignore
+
+[Sp Inside Tparen]
+Category=1
+Description="<html>Add or remove space inside the first parentheses in a function type, as in<br/>'void (*x)(...)'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_tparen=ignore|sp_inside_tparen=add|sp_inside_tparen=remove|sp_inside_tparen=force|sp_inside_tparen=not_defined
+ChoicesReadable="Ignore Sp Inside Tparen|Add Sp Inside Tparen|Remove Sp Inside Tparen|Force Sp Inside Tparen"
+ValueDefault=ignore
+
+[Sp After Tparen Close]
+Category=1
+Description="<html>Add or remove space between the ')' and '(' in a function type, as in<br/>'void (*x)(...)'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_tparen_close=ignore|sp_after_tparen_close=add|sp_after_tparen_close=remove|sp_after_tparen_close=force|sp_after_tparen_close=not_defined
+ChoicesReadable="Ignore Sp After Tparen Close|Add Sp After Tparen Close|Remove Sp After Tparen Close|Force Sp After Tparen Close"
+ValueDefault=ignore
+
+[Sp Square Fparen]
+Category=1
+Description="<html>Add or remove space between ']' and '(' when part of a function call.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_square_fparen=ignore|sp_square_fparen=add|sp_square_fparen=remove|sp_square_fparen=force|sp_square_fparen=not_defined
+ChoicesReadable="Ignore Sp Square Fparen|Add Sp Square Fparen|Remove Sp Square Fparen|Force Sp Square Fparen"
+ValueDefault=ignore
+
+[Sp Fparen Brace]
+Category=1
+Description="<html>Add or remove space between ')' and '{' of function.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_fparen_brace=ignore|sp_fparen_brace=add|sp_fparen_brace=remove|sp_fparen_brace=force|sp_fparen_brace=not_defined
+ChoicesReadable="Ignore Sp Fparen Brace|Add Sp Fparen Brace|Remove Sp Fparen Brace|Force Sp Fparen Brace"
+ValueDefault=ignore
+
+[Sp Fparen Brace Initializer]
+Category=1
+Description="<html>Add or remove space between ')' and '{' of a function call in object<br/>initialization.<br/><br/>Overrides sp_fparen_brace.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_fparen_brace_initializer=ignore|sp_fparen_brace_initializer=add|sp_fparen_brace_initializer=remove|sp_fparen_brace_initializer=force|sp_fparen_brace_initializer=not_defined
+ChoicesReadable="Ignore Sp Fparen Brace Initializer|Add Sp Fparen Brace Initializer|Remove Sp Fparen Brace Initializer|Force Sp Fparen Brace Initializer"
+ValueDefault=ignore
+
+[Sp Fparen Dbrace]
+Category=1
+Description="<html>(Java) Add or remove space between ')' and '{{' of double brace initializer.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_fparen_dbrace=ignore|sp_fparen_dbrace=add|sp_fparen_dbrace=remove|sp_fparen_dbrace=force|sp_fparen_dbrace=not_defined
+ChoicesReadable="Ignore Sp Fparen Dbrace|Add Sp Fparen Dbrace|Remove Sp Fparen Dbrace|Force Sp Fparen Dbrace"
+ValueDefault=ignore
+
+[Sp Func Call Paren]
+Category=1
+Description="<html>Add or remove space between function name and '(' on function calls.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_func_call_paren=ignore|sp_func_call_paren=add|sp_func_call_paren=remove|sp_func_call_paren=force|sp_func_call_paren=not_defined
+ChoicesReadable="Ignore Sp Func Call Paren|Add Sp Func Call Paren|Remove Sp Func Call Paren|Force Sp Func Call Paren"
+ValueDefault=ignore
+
+[Sp Func Call Paren Empty]
+Category=1
+Description="<html>Add or remove space between function name and '()' on function calls without<br/>parameters. If set to ignore (the default), sp_func_call_paren is used.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_func_call_paren_empty=ignore|sp_func_call_paren_empty=add|sp_func_call_paren_empty=remove|sp_func_call_paren_empty=force|sp_func_call_paren_empty=not_defined
+ChoicesReadable="Ignore Sp Func Call Paren Empty|Add Sp Func Call Paren Empty|Remove Sp Func Call Paren Empty|Force Sp Func Call Paren Empty"
+ValueDefault=ignore
+
+[Sp Func Call User Paren]
+Category=1
+Description="<html>Add or remove space between the user function name and '(' on function<br/>calls. You need to set a keyword to be a user function in the config file,<br/>like:<br/> set func_call_user tr _ i18n</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_func_call_user_paren=ignore|sp_func_call_user_paren=add|sp_func_call_user_paren=remove|sp_func_call_user_paren=force|sp_func_call_user_paren=not_defined
+ChoicesReadable="Ignore Sp Func Call User Paren|Add Sp Func Call User Paren|Remove Sp Func Call User Paren|Force Sp Func Call User Paren"
+ValueDefault=ignore
+
+[Sp Func Call User Inside Fparen]
+Category=1
+Description="<html>Add or remove space inside user function '(' and ')'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_func_call_user_inside_fparen=ignore|sp_func_call_user_inside_fparen=add|sp_func_call_user_inside_fparen=remove|sp_func_call_user_inside_fparen=force|sp_func_call_user_inside_fparen=not_defined
+ChoicesReadable="Ignore Sp Func Call User Inside Fparen|Add Sp Func Call User Inside Fparen|Remove Sp Func Call User Inside Fparen|Force Sp Func Call User Inside Fparen"
+ValueDefault=ignore
+
+[Sp Func Call User Paren Paren]
+Category=1
+Description="<html>Add or remove space between nested parentheses with user functions,<br/>i.e. '((' vs. '( ('.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_func_call_user_paren_paren=ignore|sp_func_call_user_paren_paren=add|sp_func_call_user_paren_paren=remove|sp_func_call_user_paren_paren=force|sp_func_call_user_paren_paren=not_defined
+ChoicesReadable="Ignore Sp Func Call User Paren Paren|Add Sp Func Call User Paren Paren|Remove Sp Func Call User Paren Paren|Force Sp Func Call User Paren Paren"
+ValueDefault=ignore
+
+[Sp Func Class Paren]
+Category=1
+Description="<html>Add or remove space between a constructor/destructor and the open<br/>parenthesis.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_func_class_paren=ignore|sp_func_class_paren=add|sp_func_class_paren=remove|sp_func_class_paren=force|sp_func_class_paren=not_defined
+ChoicesReadable="Ignore Sp Func Class Paren|Add Sp Func Class Paren|Remove Sp Func Class Paren|Force Sp Func Class Paren"
+ValueDefault=ignore
+
+[Sp Func Class Paren Empty]
+Category=1
+Description="<html>Add or remove space between a constructor without parameters or destructor<br/>and '()'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_func_class_paren_empty=ignore|sp_func_class_paren_empty=add|sp_func_class_paren_empty=remove|sp_func_class_paren_empty=force|sp_func_class_paren_empty=not_defined
+ChoicesReadable="Ignore Sp Func Class Paren Empty|Add Sp Func Class Paren Empty|Remove Sp Func Class Paren Empty|Force Sp Func Class Paren Empty"
+ValueDefault=ignore
+
+[Sp Return]
+Category=1
+Description="<html>Add or remove space after 'return'.<br/><br/>Default: force</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_return=ignore|sp_return=add|sp_return=remove|sp_return=force|sp_return=not_defined
+ChoicesReadable="Ignore Sp Return|Add Sp Return|Remove Sp Return|Force Sp Return"
+ValueDefault=force
+
+[Sp Return Paren]
+Category=1
+Description="<html>Add or remove space between 'return' and '('.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_return_paren=ignore|sp_return_paren=add|sp_return_paren=remove|sp_return_paren=force|sp_return_paren=not_defined
+ChoicesReadable="Ignore Sp Return Paren|Add Sp Return Paren|Remove Sp Return Paren|Force Sp Return Paren"
+ValueDefault=ignore
+
+[Sp Return Brace]
+Category=1
+Description="<html>Add or remove space between 'return' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_return_brace=ignore|sp_return_brace=add|sp_return_brace=remove|sp_return_brace=force|sp_return_brace=not_defined
+ChoicesReadable="Ignore Sp Return Brace|Add Sp Return Brace|Remove Sp Return Brace|Force Sp Return Brace"
+ValueDefault=ignore
+
+[Sp Attribute Paren]
+Category=1
+Description="<html>Add or remove space between '__attribute__' and '('.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_attribute_paren=ignore|sp_attribute_paren=add|sp_attribute_paren=remove|sp_attribute_paren=force|sp_attribute_paren=not_defined
+ChoicesReadable="Ignore Sp Attribute Paren|Add Sp Attribute Paren|Remove Sp Attribute Paren|Force Sp Attribute Paren"
+ValueDefault=ignore
+
+[Sp Defined Paren]
+Category=1
+Description="<html>Add or remove space between 'defined' and '(' in '#if defined (FOO)'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_defined_paren=ignore|sp_defined_paren=add|sp_defined_paren=remove|sp_defined_paren=force|sp_defined_paren=not_defined
+ChoicesReadable="Ignore Sp Defined Paren|Add Sp Defined Paren|Remove Sp Defined Paren|Force Sp Defined Paren"
+ValueDefault=ignore
+
+[Sp Throw Paren]
+Category=1
+Description="<html>Add or remove space between 'throw' and '(' in 'throw (something)'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_throw_paren=ignore|sp_throw_paren=add|sp_throw_paren=remove|sp_throw_paren=force|sp_throw_paren=not_defined
+ChoicesReadable="Ignore Sp Throw Paren|Add Sp Throw Paren|Remove Sp Throw Paren|Force Sp Throw Paren"
+ValueDefault=ignore
+
+[Sp After Throw]
+Category=1
+Description="<html>Add or remove space between 'throw' and anything other than '(' as in<br/>'@throw [...];'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_throw=ignore|sp_after_throw=add|sp_after_throw=remove|sp_after_throw=force|sp_after_throw=not_defined
+ChoicesReadable="Ignore Sp After Throw|Add Sp After Throw|Remove Sp After Throw|Force Sp After Throw"
+ValueDefault=ignore
+
+[Sp Catch Paren]
+Category=1
+Description="<html>Add or remove space between 'catch' and '(' in 'catch (something) { }'.<br/>If set to ignore, sp_before_sparen is used.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_catch_paren=ignore|sp_catch_paren=add|sp_catch_paren=remove|sp_catch_paren=force|sp_catch_paren=not_defined
+ChoicesReadable="Ignore Sp Catch Paren|Add Sp Catch Paren|Remove Sp Catch Paren|Force Sp Catch Paren"
+ValueDefault=ignore
+
+[Sp Oc Catch Paren]
+Category=1
+Description="<html>(OC) Add or remove space between '@catch' and '('<br/>in '@catch (something) { }'. If set to ignore, sp_catch_paren is used.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_oc_catch_paren=ignore|sp_oc_catch_paren=add|sp_oc_catch_paren=remove|sp_oc_catch_paren=force|sp_oc_catch_paren=not_defined
+ChoicesReadable="Ignore Sp Oc Catch Paren|Add Sp Oc Catch Paren|Remove Sp Oc Catch Paren|Force Sp Oc Catch Paren"
+ValueDefault=ignore
+
+[Sp Before Oc Proto List]
+Category=1
+Description="<html>(OC) Add or remove space before Objective-C protocol list<br/>as in '@protocol Protocol&lt;here&gt;&lt;Protocol_A&gt;' or '@interface MyClass : NSObject&lt;here&gt;&lt;MyProtocol&gt;'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_oc_proto_list=ignore|sp_before_oc_proto_list=add|sp_before_oc_proto_list=remove|sp_before_oc_proto_list=force|sp_before_oc_proto_list=not_defined
+ChoicesReadable="Ignore Sp Before Oc Proto List|Add Sp Before Oc Proto List|Remove Sp Before Oc Proto List|Force Sp Before Oc Proto List"
+ValueDefault=ignore
+
+[Sp Oc Classname Paren]
+Category=1
+Description="<html>(OC) Add or remove space between class name and '('<br/>in '@interface className(categoryName)&lt;ProtocolName&gt;:BaseClass'</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_oc_classname_paren=ignore|sp_oc_classname_paren=add|sp_oc_classname_paren=remove|sp_oc_classname_paren=force|sp_oc_classname_paren=not_defined
+ChoicesReadable="Ignore Sp Oc Classname Paren|Add Sp Oc Classname Paren|Remove Sp Oc Classname Paren|Force Sp Oc Classname Paren"
+ValueDefault=ignore
+
+[Sp Version Paren]
+Category=1
+Description="<html>(D) Add or remove space between 'version' and '('<br/>in 'version (something) { }'. If set to ignore, sp_before_sparen is used.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_version_paren=ignore|sp_version_paren=add|sp_version_paren=remove|sp_version_paren=force|sp_version_paren=not_defined
+ChoicesReadable="Ignore Sp Version Paren|Add Sp Version Paren|Remove Sp Version Paren|Force Sp Version Paren"
+ValueDefault=ignore
+
+[Sp Scope Paren]
+Category=1
+Description="<html>(D) Add or remove space between 'scope' and '('<br/>in 'scope (something) { }'. If set to ignore, sp_before_sparen is used.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_scope_paren=ignore|sp_scope_paren=add|sp_scope_paren=remove|sp_scope_paren=force|sp_scope_paren=not_defined
+ChoicesReadable="Ignore Sp Scope Paren|Add Sp Scope Paren|Remove Sp Scope Paren|Force Sp Scope Paren"
+ValueDefault=ignore
+
+[Sp Super Paren]
+Category=1
+Description="<html>Add or remove space between 'super' and '(' in 'super (something)'.<br/><br/>Default: remove</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_super_paren=ignore|sp_super_paren=add|sp_super_paren=remove|sp_super_paren=force|sp_super_paren=not_defined
+ChoicesReadable="Ignore Sp Super Paren|Add Sp Super Paren|Remove Sp Super Paren|Force Sp Super Paren"
+ValueDefault=remove
+
+[Sp This Paren]
+Category=1
+Description="<html>Add or remove space between 'this' and '(' in 'this (something)'.<br/><br/>Default: remove</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_this_paren=ignore|sp_this_paren=add|sp_this_paren=remove|sp_this_paren=force|sp_this_paren=not_defined
+ChoicesReadable="Ignore Sp This Paren|Add Sp This Paren|Remove Sp This Paren|Force Sp This Paren"
+ValueDefault=remove
+
+[Sp Macro]
+Category=1
+Description="<html>Add or remove space between a macro name and its definition.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_macro=ignore|sp_macro=add|sp_macro=remove|sp_macro=force|sp_macro=not_defined
+ChoicesReadable="Ignore Sp Macro|Add Sp Macro|Remove Sp Macro|Force Sp Macro"
+ValueDefault=ignore
+
+[Sp Macro Func]
+Category=1
+Description="<html>Add or remove space between a macro function ')' and its definition.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_macro_func=ignore|sp_macro_func=add|sp_macro_func=remove|sp_macro_func=force|sp_macro_func=not_defined
+ChoicesReadable="Ignore Sp Macro Func|Add Sp Macro Func|Remove Sp Macro Func|Force Sp Macro Func"
+ValueDefault=ignore
+
+[Sp Else Brace]
+Category=1
+Description="<html>Add or remove space between 'else' and '{' if on the same line.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_else_brace=ignore|sp_else_brace=add|sp_else_brace=remove|sp_else_brace=force|sp_else_brace=not_defined
+ChoicesReadable="Ignore Sp Else Brace|Add Sp Else Brace|Remove Sp Else Brace|Force Sp Else Brace"
+ValueDefault=ignore
+
+[Sp Brace Else]
+Category=1
+Description="<html>Add or remove space between '}' and 'else' if on the same line.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_brace_else=ignore|sp_brace_else=add|sp_brace_else=remove|sp_brace_else=force|sp_brace_else=not_defined
+ChoicesReadable="Ignore Sp Brace Else|Add Sp Brace Else|Remove Sp Brace Else|Force Sp Brace Else"
+ValueDefault=ignore
+
+[Sp Brace Typedef]
+Category=1
+Description="<html>Add or remove space between '}' and the name of a typedef on the same line.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_brace_typedef=ignore|sp_brace_typedef=add|sp_brace_typedef=remove|sp_brace_typedef=force|sp_brace_typedef=not_defined
+ChoicesReadable="Ignore Sp Brace Typedef|Add Sp Brace Typedef|Remove Sp Brace Typedef|Force Sp Brace Typedef"
+ValueDefault=ignore
+
+[Sp Catch Brace]
+Category=1
+Description="<html>Add or remove space before the '{' of a 'catch' statement, if the '{' and<br/>'catch' are on the same line, as in 'catch (decl) &lt;here&gt; {'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_catch_brace=ignore|sp_catch_brace=add|sp_catch_brace=remove|sp_catch_brace=force|sp_catch_brace=not_defined
+ChoicesReadable="Ignore Sp Catch Brace|Add Sp Catch Brace|Remove Sp Catch Brace|Force Sp Catch Brace"
+ValueDefault=ignore
+
+[Sp Oc Catch Brace]
+Category=1
+Description="<html>(OC) Add or remove space before the '{' of a '@catch' statement, if the '{'<br/>and '@catch' are on the same line, as in '@catch (decl) &lt;here&gt; {'.<br/>If set to ignore, sp_catch_brace is used.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_oc_catch_brace=ignore|sp_oc_catch_brace=add|sp_oc_catch_brace=remove|sp_oc_catch_brace=force|sp_oc_catch_brace=not_defined
+ChoicesReadable="Ignore Sp Oc Catch Brace|Add Sp Oc Catch Brace|Remove Sp Oc Catch Brace|Force Sp Oc Catch Brace"
+ValueDefault=ignore
+
+[Sp Brace Catch]
+Category=1
+Description="<html>Add or remove space between '}' and 'catch' if on the same line.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_brace_catch=ignore|sp_brace_catch=add|sp_brace_catch=remove|sp_brace_catch=force|sp_brace_catch=not_defined
+ChoicesReadable="Ignore Sp Brace Catch|Add Sp Brace Catch|Remove Sp Brace Catch|Force Sp Brace Catch"
+ValueDefault=ignore
+
+[Sp Oc Brace Catch]
+Category=1
+Description="<html>(OC) Add or remove space between '}' and '@catch' if on the same line.<br/>If set to ignore, sp_brace_catch is used.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_oc_brace_catch=ignore|sp_oc_brace_catch=add|sp_oc_brace_catch=remove|sp_oc_brace_catch=force|sp_oc_brace_catch=not_defined
+ChoicesReadable="Ignore Sp Oc Brace Catch|Add Sp Oc Brace Catch|Remove Sp Oc Brace Catch|Force Sp Oc Brace Catch"
+ValueDefault=ignore
+
+[Sp Finally Brace]
+Category=1
+Description="<html>Add or remove space between 'finally' and '{' if on the same line.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_finally_brace=ignore|sp_finally_brace=add|sp_finally_brace=remove|sp_finally_brace=force|sp_finally_brace=not_defined
+ChoicesReadable="Ignore Sp Finally Brace|Add Sp Finally Brace|Remove Sp Finally Brace|Force Sp Finally Brace"
+ValueDefault=ignore
+
+[Sp Brace Finally]
+Category=1
+Description="<html>Add or remove space between '}' and 'finally' if on the same line.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_brace_finally=ignore|sp_brace_finally=add|sp_brace_finally=remove|sp_brace_finally=force|sp_brace_finally=not_defined
+ChoicesReadable="Ignore Sp Brace Finally|Add Sp Brace Finally|Remove Sp Brace Finally|Force Sp Brace Finally"
+ValueDefault=ignore
+
+[Sp Try Brace]
+Category=1
+Description="<html>Add or remove space between 'try' and '{' if on the same line.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_try_brace=ignore|sp_try_brace=add|sp_try_brace=remove|sp_try_brace=force|sp_try_brace=not_defined
+ChoicesReadable="Ignore Sp Try Brace|Add Sp Try Brace|Remove Sp Try Brace|Force Sp Try Brace"
+ValueDefault=ignore
+
+[Sp Getset Brace]
+Category=1
+Description="<html>Add or remove space between get/set and '{' if on the same line.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_getset_brace=ignore|sp_getset_brace=add|sp_getset_brace=remove|sp_getset_brace=force|sp_getset_brace=not_defined
+ChoicesReadable="Ignore Sp Getset Brace|Add Sp Getset Brace|Remove Sp Getset Brace|Force Sp Getset Brace"
+ValueDefault=ignore
+
+[Sp Word Brace Init Lst]
+Category=1
+Description="<html>Add or remove space between a variable and '{' for C++ uniform<br/>initialization.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_word_brace_init_lst=ignore|sp_word_brace_init_lst=add|sp_word_brace_init_lst=remove|sp_word_brace_init_lst=force|sp_word_brace_init_lst=not_defined
+ChoicesReadable="Ignore Sp Word Brace Init Lst|Add Sp Word Brace Init Lst|Remove Sp Word Brace Init Lst|Force Sp Word Brace Init Lst"
+ValueDefault=ignore
+
+[Sp Word Brace Ns]
+Category=1
+Description="<html>Add or remove space between a variable and '{' for a namespace.<br/><br/>Default: add</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_word_brace_ns=ignore|sp_word_brace_ns=add|sp_word_brace_ns=remove|sp_word_brace_ns=force|sp_word_brace_ns=not_defined
+ChoicesReadable="Ignore Sp Word Brace Ns|Add Sp Word Brace Ns|Remove Sp Word Brace Ns|Force Sp Word Brace Ns"
+ValueDefault=add
+
+[Sp Before Dc]
+Category=1
+Description="<html>Add or remove space before the '::' operator.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_dc=ignore|sp_before_dc=add|sp_before_dc=remove|sp_before_dc=force|sp_before_dc=not_defined
+ChoicesReadable="Ignore Sp Before Dc|Add Sp Before Dc|Remove Sp Before Dc|Force Sp Before Dc"
+ValueDefault=ignore
+
+[Sp After Dc]
+Category=1
+Description="<html>Add or remove space after the '::' operator.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_dc=ignore|sp_after_dc=add|sp_after_dc=remove|sp_after_dc=force|sp_after_dc=not_defined
+ChoicesReadable="Ignore Sp After Dc|Add Sp After Dc|Remove Sp After Dc|Force Sp After Dc"
+ValueDefault=ignore
+
+[Sp D Array Colon]
+Category=1
+Description="<html>(D) Add or remove around the D named array initializer ':' operator.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_d_array_colon=ignore|sp_d_array_colon=add|sp_d_array_colon=remove|sp_d_array_colon=force|sp_d_array_colon=not_defined
+ChoicesReadable="Ignore Sp D Array Colon|Add Sp D Array Colon|Remove Sp D Array Colon|Force Sp D Array Colon"
+ValueDefault=ignore
+
+[Sp Not]
+Category=1
+Description="<html>Add or remove space after the '!' (not) unary operator.<br/><br/>Default: remove</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_not=ignore|sp_not=add|sp_not=remove|sp_not=force|sp_not=not_defined
+ChoicesReadable="Ignore Sp Not|Add Sp Not|Remove Sp Not|Force Sp Not"
+ValueDefault=remove
+
+[Sp Not Not]
+Category=1
+Description="<html>Add or remove space between two '!' (not) unary operators.<br/>If set to ignore, sp_not will be used.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_not_not=ignore|sp_not_not=add|sp_not_not=remove|sp_not_not=force|sp_not_not=not_defined
+ChoicesReadable="Ignore Sp Not Not|Add Sp Not Not|Remove Sp Not Not|Force Sp Not Not"
+ValueDefault=ignore
+
+[Sp Inv]
+Category=1
+Description="<html>Add or remove space after the '~' (invert) unary operator.<br/><br/>Default: remove</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inv=ignore|sp_inv=add|sp_inv=remove|sp_inv=force|sp_inv=not_defined
+ChoicesReadable="Ignore Sp Inv|Add Sp Inv|Remove Sp Inv|Force Sp Inv"
+ValueDefault=remove
+
+[Sp Addr]
+Category=1
+Description="<html>Add or remove space after the '&amp;' (address-of) unary operator. This does not<br/>affect the spacing after a '&amp;' that is part of a type.<br/><br/>Default: remove</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_addr=ignore|sp_addr=add|sp_addr=remove|sp_addr=force|sp_addr=not_defined
+ChoicesReadable="Ignore Sp Addr|Add Sp Addr|Remove Sp Addr|Force Sp Addr"
+ValueDefault=remove
+
+[Sp Member]
+Category=1
+Description="<html>Add or remove space around the '.' or '-&gt;' operators.<br/><br/>Default: remove</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_member=ignore|sp_member=add|sp_member=remove|sp_member=force|sp_member=not_defined
+ChoicesReadable="Ignore Sp Member|Add Sp Member|Remove Sp Member|Force Sp Member"
+ValueDefault=remove
+
+[Sp Deref]
+Category=1
+Description="<html>Add or remove space after the '*' (dereference) unary operator. This does<br/>not affect the spacing after a '*' that is part of a type.<br/><br/>Default: remove</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_deref=ignore|sp_deref=add|sp_deref=remove|sp_deref=force|sp_deref=not_defined
+ChoicesReadable="Ignore Sp Deref|Add Sp Deref|Remove Sp Deref|Force Sp Deref"
+ValueDefault=remove
+
+[Sp Sign]
+Category=1
+Description="<html>Add or remove space after '+' or '-', as in 'x = -5' or 'y = +7'.<br/><br/>Default: remove</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_sign=ignore|sp_sign=add|sp_sign=remove|sp_sign=force|sp_sign=not_defined
+ChoicesReadable="Ignore Sp Sign|Add Sp Sign|Remove Sp Sign|Force Sp Sign"
+ValueDefault=remove
+
+[Sp Incdec]
+Category=1
+Description="<html>Add or remove space between '++' and '--' the word to which it is being<br/>applied, as in '(--x)' or 'y++;'.<br/><br/>Default: remove</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_incdec=ignore|sp_incdec=add|sp_incdec=remove|sp_incdec=force|sp_incdec=not_defined
+ChoicesReadable="Ignore Sp Incdec|Add Sp Incdec|Remove Sp Incdec|Force Sp Incdec"
+ValueDefault=remove
+
+[Sp Before Nl Cont]
+Category=1
+Description="<html>Add or remove space before a backslash-newline at the end of a line.<br/><br/>Default: add</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_nl_cont=ignore|sp_before_nl_cont=add|sp_before_nl_cont=remove|sp_before_nl_cont=force|sp_before_nl_cont=not_defined
+ChoicesReadable="Ignore Sp Before Nl Cont|Add Sp Before Nl Cont|Remove Sp Before Nl Cont|Force Sp Before Nl Cont"
+ValueDefault=add
+
+[Sp After Oc Scope]
+Category=1
+Description="<html>(OC) Add or remove space after the scope '+' or '-', as in '-(void) foo;'<br/>or '+(int) bar;'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_oc_scope=ignore|sp_after_oc_scope=add|sp_after_oc_scope=remove|sp_after_oc_scope=force|sp_after_oc_scope=not_defined
+ChoicesReadable="Ignore Sp After Oc Scope|Add Sp After Oc Scope|Remove Sp After Oc Scope|Force Sp After Oc Scope"
+ValueDefault=ignore
+
+[Sp After Oc Colon]
+Category=1
+Description="<html>(OC) Add or remove space after the colon in message specs,<br/>i.e. '-(int) f:(int) x;' vs. '-(int) f: (int) x;'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_oc_colon=ignore|sp_after_oc_colon=add|sp_after_oc_colon=remove|sp_after_oc_colon=force|sp_after_oc_colon=not_defined
+ChoicesReadable="Ignore Sp After Oc Colon|Add Sp After Oc Colon|Remove Sp After Oc Colon|Force Sp After Oc Colon"
+ValueDefault=ignore
+
+[Sp Before Oc Colon]
+Category=1
+Description="<html>(OC) Add or remove space before the colon in message specs,<br/>i.e. '-(int) f: (int) x;' vs. '-(int) f : (int) x;'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_oc_colon=ignore|sp_before_oc_colon=add|sp_before_oc_colon=remove|sp_before_oc_colon=force|sp_before_oc_colon=not_defined
+ChoicesReadable="Ignore Sp Before Oc Colon|Add Sp Before Oc Colon|Remove Sp Before Oc Colon|Force Sp Before Oc Colon"
+ValueDefault=ignore
+
+[Sp After Oc Dict Colon]
+Category=1
+Description="<html>(OC) Add or remove space after the colon in immutable dictionary expression<br/>'NSDictionary *test = @{@"foo" :@"bar"};'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_oc_dict_colon=ignore|sp_after_oc_dict_colon=add|sp_after_oc_dict_colon=remove|sp_after_oc_dict_colon=force|sp_after_oc_dict_colon=not_defined
+ChoicesReadable="Ignore Sp After Oc Dict Colon|Add Sp After Oc Dict Colon|Remove Sp After Oc Dict Colon|Force Sp After Oc Dict Colon"
+ValueDefault=ignore
+
+[Sp Before Oc Dict Colon]
+Category=1
+Description="<html>(OC) Add or remove space before the colon in immutable dictionary expression<br/>'NSDictionary *test = @{@"foo" :@"bar"};'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_oc_dict_colon=ignore|sp_before_oc_dict_colon=add|sp_before_oc_dict_colon=remove|sp_before_oc_dict_colon=force|sp_before_oc_dict_colon=not_defined
+ChoicesReadable="Ignore Sp Before Oc Dict Colon|Add Sp Before Oc Dict Colon|Remove Sp Before Oc Dict Colon|Force Sp Before Oc Dict Colon"
+ValueDefault=ignore
+
+[Sp After Send Oc Colon]
+Category=1
+Description="<html>(OC) Add or remove space after the colon in message specs,<br/>i.e. '[object setValue:1];' vs. '[object setValue: 1];'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_send_oc_colon=ignore|sp_after_send_oc_colon=add|sp_after_send_oc_colon=remove|sp_after_send_oc_colon=force|sp_after_send_oc_colon=not_defined
+ChoicesReadable="Ignore Sp After Send Oc Colon|Add Sp After Send Oc Colon|Remove Sp After Send Oc Colon|Force Sp After Send Oc Colon"
+ValueDefault=ignore
+
+[Sp Before Send Oc Colon]
+Category=1
+Description="<html>(OC) Add or remove space before the colon in message specs,<br/>i.e. '[object setValue:1];' vs. '[object setValue :1];'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_send_oc_colon=ignore|sp_before_send_oc_colon=add|sp_before_send_oc_colon=remove|sp_before_send_oc_colon=force|sp_before_send_oc_colon=not_defined
+ChoicesReadable="Ignore Sp Before Send Oc Colon|Add Sp Before Send Oc Colon|Remove Sp Before Send Oc Colon|Force Sp Before Send Oc Colon"
+ValueDefault=ignore
+
+[Sp After Oc Type]
+Category=1
+Description="<html>(OC) Add or remove space after the (type) in message specs,<br/>i.e. '-(int)f: (int) x;' vs. '-(int)f: (int)x;'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_oc_type=ignore|sp_after_oc_type=add|sp_after_oc_type=remove|sp_after_oc_type=force|sp_after_oc_type=not_defined
+ChoicesReadable="Ignore Sp After Oc Type|Add Sp After Oc Type|Remove Sp After Oc Type|Force Sp After Oc Type"
+ValueDefault=ignore
+
+[Sp After Oc Return Type]
+Category=1
+Description="<html>(OC) Add or remove space after the first (type) in message specs,<br/>i.e. '-(int) f:(int)x;' vs. '-(int)f:(int)x;'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_oc_return_type=ignore|sp_after_oc_return_type=add|sp_after_oc_return_type=remove|sp_after_oc_return_type=force|sp_after_oc_return_type=not_defined
+ChoicesReadable="Ignore Sp After Oc Return Type|Add Sp After Oc Return Type|Remove Sp After Oc Return Type|Force Sp After Oc Return Type"
+ValueDefault=ignore
+
+[Sp After Oc At Sel]
+Category=1
+Description="<html>(OC) Add or remove space between '@selector' and '(',<br/>i.e. '@selector(msgName)' vs. '@selector (msgName)'.<br/>Also applies to '@protocol()' constructs.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_oc_at_sel=ignore|sp_after_oc_at_sel=add|sp_after_oc_at_sel=remove|sp_after_oc_at_sel=force|sp_after_oc_at_sel=not_defined
+ChoicesReadable="Ignore Sp After Oc At Sel|Add Sp After Oc At Sel|Remove Sp After Oc At Sel|Force Sp After Oc At Sel"
+ValueDefault=ignore
+
+[Sp After Oc At Sel Parens]
+Category=1
+Description="<html>(OC) Add or remove space between '@selector(x)' and the following word,<br/>i.e. '@selector(foo) a:' vs. '@selector(foo)a:'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_oc_at_sel_parens=ignore|sp_after_oc_at_sel_parens=add|sp_after_oc_at_sel_parens=remove|sp_after_oc_at_sel_parens=force|sp_after_oc_at_sel_parens=not_defined
+ChoicesReadable="Ignore Sp After Oc At Sel Parens|Add Sp After Oc At Sel Parens|Remove Sp After Oc At Sel Parens|Force Sp After Oc At Sel Parens"
+ValueDefault=ignore
+
+[Sp Inside Oc At Sel Parens]
+Category=1
+Description="<html>(OC) Add or remove space inside '@selector' parentheses,<br/>i.e. '@selector(foo)' vs. '@selector( foo )'.<br/>Also applies to '@protocol()' constructs.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_oc_at_sel_parens=ignore|sp_inside_oc_at_sel_parens=add|sp_inside_oc_at_sel_parens=remove|sp_inside_oc_at_sel_parens=force|sp_inside_oc_at_sel_parens=not_defined
+ChoicesReadable="Ignore Sp Inside Oc At Sel Parens|Add Sp Inside Oc At Sel Parens|Remove Sp Inside Oc At Sel Parens|Force Sp Inside Oc At Sel Parens"
+ValueDefault=ignore
+
+[Sp Before Oc Block Caret]
+Category=1
+Description="<html>(OC) Add or remove space before a block pointer caret,<br/>i.e. '^int (int arg){...}' vs. ' ^int (int arg){...}'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_oc_block_caret=ignore|sp_before_oc_block_caret=add|sp_before_oc_block_caret=remove|sp_before_oc_block_caret=force|sp_before_oc_block_caret=not_defined
+ChoicesReadable="Ignore Sp Before Oc Block Caret|Add Sp Before Oc Block Caret|Remove Sp Before Oc Block Caret|Force Sp Before Oc Block Caret"
+ValueDefault=ignore
+
+[Sp After Oc Block Caret]
+Category=1
+Description="<html>(OC) Add or remove space after a block pointer caret,<br/>i.e. '^int (int arg){...}' vs. '^ int (int arg){...}'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_oc_block_caret=ignore|sp_after_oc_block_caret=add|sp_after_oc_block_caret=remove|sp_after_oc_block_caret=force|sp_after_oc_block_caret=not_defined
+ChoicesReadable="Ignore Sp After Oc Block Caret|Add Sp After Oc Block Caret|Remove Sp After Oc Block Caret|Force Sp After Oc Block Caret"
+ValueDefault=ignore
+
+[Sp After Oc Msg Receiver]
+Category=1
+Description="<html>(OC) Add or remove space between the receiver and selector in a message,<br/>as in '[receiver selector ...]'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_oc_msg_receiver=ignore|sp_after_oc_msg_receiver=add|sp_after_oc_msg_receiver=remove|sp_after_oc_msg_receiver=force|sp_after_oc_msg_receiver=not_defined
+ChoicesReadable="Ignore Sp After Oc Msg Receiver|Add Sp After Oc Msg Receiver|Remove Sp After Oc Msg Receiver|Force Sp After Oc Msg Receiver"
+ValueDefault=ignore
+
+[Sp After Oc Property]
+Category=1
+Description="<html>(OC) Add or remove space after '@property'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_oc_property=ignore|sp_after_oc_property=add|sp_after_oc_property=remove|sp_after_oc_property=force|sp_after_oc_property=not_defined
+ChoicesReadable="Ignore Sp After Oc Property|Add Sp After Oc Property|Remove Sp After Oc Property|Force Sp After Oc Property"
+ValueDefault=ignore
+
+[Sp After Oc Synchronized]
+Category=1
+Description="<html>(OC) Add or remove space between '@synchronized' and the open parenthesis,<br/>i.e. '@synchronized(foo)' vs. '@synchronized (foo)'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_oc_synchronized=ignore|sp_after_oc_synchronized=add|sp_after_oc_synchronized=remove|sp_after_oc_synchronized=force|sp_after_oc_synchronized=not_defined
+ChoicesReadable="Ignore Sp After Oc Synchronized|Add Sp After Oc Synchronized|Remove Sp After Oc Synchronized|Force Sp After Oc Synchronized"
+ValueDefault=ignore
+
+[Sp Cond Colon]
+Category=1
+Description="<html>Add or remove space around the ':' in 'b ? t : f'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_cond_colon=ignore|sp_cond_colon=add|sp_cond_colon=remove|sp_cond_colon=force|sp_cond_colon=not_defined
+ChoicesReadable="Ignore Sp Cond Colon|Add Sp Cond Colon|Remove Sp Cond Colon|Force Sp Cond Colon"
+ValueDefault=ignore
+
+[Sp Cond Colon Before]
+Category=1
+Description="<html>Add or remove space before the ':' in 'b ? t : f'.<br/><br/>Overrides sp_cond_colon.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_cond_colon_before=ignore|sp_cond_colon_before=add|sp_cond_colon_before=remove|sp_cond_colon_before=force|sp_cond_colon_before=not_defined
+ChoicesReadable="Ignore Sp Cond Colon Before|Add Sp Cond Colon Before|Remove Sp Cond Colon Before|Force Sp Cond Colon Before"
+ValueDefault=ignore
+
+[Sp Cond Colon After]
+Category=1
+Description="<html>Add or remove space after the ':' in 'b ? t : f'.<br/><br/>Overrides sp_cond_colon.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_cond_colon_after=ignore|sp_cond_colon_after=add|sp_cond_colon_after=remove|sp_cond_colon_after=force|sp_cond_colon_after=not_defined
+ChoicesReadable="Ignore Sp Cond Colon After|Add Sp Cond Colon After|Remove Sp Cond Colon After|Force Sp Cond Colon After"
+ValueDefault=ignore
+
+[Sp Cond Question]
+Category=1
+Description="<html>Add or remove space around the '?' in 'b ? t : f'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_cond_question=ignore|sp_cond_question=add|sp_cond_question=remove|sp_cond_question=force|sp_cond_question=not_defined
+ChoicesReadable="Ignore Sp Cond Question|Add Sp Cond Question|Remove Sp Cond Question|Force Sp Cond Question"
+ValueDefault=ignore
+
+[Sp Cond Question Before]
+Category=1
+Description="<html>Add or remove space before the '?' in 'b ? t : f'.<br/><br/>Overrides sp_cond_question.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_cond_question_before=ignore|sp_cond_question_before=add|sp_cond_question_before=remove|sp_cond_question_before=force|sp_cond_question_before=not_defined
+ChoicesReadable="Ignore Sp Cond Question Before|Add Sp Cond Question Before|Remove Sp Cond Question Before|Force Sp Cond Question Before"
+ValueDefault=ignore
+
+[Sp Cond Question After]
+Category=1
+Description="<html>Add or remove space after the '?' in 'b ? t : f'.<br/><br/>Overrides sp_cond_question.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_cond_question_after=ignore|sp_cond_question_after=add|sp_cond_question_after=remove|sp_cond_question_after=force|sp_cond_question_after=not_defined
+ChoicesReadable="Ignore Sp Cond Question After|Add Sp Cond Question After|Remove Sp Cond Question After|Force Sp Cond Question After"
+ValueDefault=ignore
+
+[Sp Cond Ternary Short]
+Category=1
+Description="<html>In the abbreviated ternary form '(a ?: b)', add or remove space between '?'<br/>and ':'.<br/><br/>Overrides all other sp_cond_* options.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_cond_ternary_short=ignore|sp_cond_ternary_short=add|sp_cond_ternary_short=remove|sp_cond_ternary_short=force|sp_cond_ternary_short=not_defined
+ChoicesReadable="Ignore Sp Cond Ternary Short|Add Sp Cond Ternary Short|Remove Sp Cond Ternary Short|Force Sp Cond Ternary Short"
+ValueDefault=ignore
+
+[Sp Case Label]
+Category=1
+Description="<html>Fix the spacing between 'case' and the label. Only 'ignore' and 'force' make<br/>sense here.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_case_label=ignore|sp_case_label=add|sp_case_label=remove|sp_case_label=force|sp_case_label=not_defined
+ChoicesReadable="Ignore Sp Case Label|Add Sp Case Label|Remove Sp Case Label|Force Sp Case Label"
+ValueDefault=ignore
+
+[Sp Range]
+Category=1
+Description="<html>(D) Add or remove space around the D '..' operator.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_range=ignore|sp_range=add|sp_range=remove|sp_range=force|sp_range=not_defined
+ChoicesReadable="Ignore Sp Range|Add Sp Range|Remove Sp Range|Force Sp Range"
+ValueDefault=ignore
+
+[Sp After For Colon]
+Category=1
+Description="<html>Add or remove space after ':' in a Java/C++11 range-based 'for',<br/>as in 'for (Type var : &lt;here&gt; expr)'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_for_colon=ignore|sp_after_for_colon=add|sp_after_for_colon=remove|sp_after_for_colon=force|sp_after_for_colon=not_defined
+ChoicesReadable="Ignore Sp After For Colon|Add Sp After For Colon|Remove Sp After For Colon|Force Sp After For Colon"
+ValueDefault=ignore
+
+[Sp Before For Colon]
+Category=1
+Description="<html>Add or remove space before ':' in a Java/C++11 range-based 'for',<br/>as in 'for (Type var &lt;here&gt; : expr)'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_for_colon=ignore|sp_before_for_colon=add|sp_before_for_colon=remove|sp_before_for_colon=force|sp_before_for_colon=not_defined
+ChoicesReadable="Ignore Sp Before For Colon|Add Sp Before For Colon|Remove Sp Before For Colon|Force Sp Before For Colon"
+ValueDefault=ignore
+
+[Sp Extern Paren]
+Category=1
+Description="<html>(D) Add or remove space between 'extern' and '(' as in 'extern &lt;here&gt; (C)'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_extern_paren=ignore|sp_extern_paren=add|sp_extern_paren=remove|sp_extern_paren=force|sp_extern_paren=not_defined
+ChoicesReadable="Ignore Sp Extern Paren|Add Sp Extern Paren|Remove Sp Extern Paren|Force Sp Extern Paren"
+ValueDefault=ignore
+
+[Sp Cmt Cpp Start]
+Category=1
+Description="<html>Add or remove space after the opening of a C++ comment, as in '// &lt;here&gt; A'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_cmt_cpp_start=ignore|sp_cmt_cpp_start=add|sp_cmt_cpp_start=remove|sp_cmt_cpp_start=force|sp_cmt_cpp_start=not_defined
+ChoicesReadable="Ignore Sp Cmt Cpp Start|Add Sp Cmt Cpp Start|Remove Sp Cmt Cpp Start|Force Sp Cmt Cpp Start"
+ValueDefault=ignore
+
+[Sp Cmt Cpp Region]
+Category=1
+Description="<html>Add or remove space in a C++ region marker comment, as in '// &lt;here&gt; BEGIN'.<br/>A region marker is defined as a comment which is not preceded by other text<br/>(i.e. the comment is the first non-whitespace on the line), and which starts<br/>with either 'BEGIN' or 'END'.<br/><br/>Overrides sp_cmt_cpp_start.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_cmt_cpp_region=ignore|sp_cmt_cpp_region=add|sp_cmt_cpp_region=remove|sp_cmt_cpp_region=force|sp_cmt_cpp_region=not_defined
+ChoicesReadable="Ignore Sp Cmt Cpp Region|Add Sp Cmt Cpp Region|Remove Sp Cmt Cpp Region|Force Sp Cmt Cpp Region"
+ValueDefault=ignore
+
+[Sp Cmt Cpp Doxygen]
+Category=1
+Description="<html>If true, space added with sp_cmt_cpp_start will be added after Doxygen<br/>sequences like '///', '///&lt;', '//!' and '//!&lt;'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=sp_cmt_cpp_doxygen=true|sp_cmt_cpp_doxygen=false
+ValueDefault=false
+
+[Sp Cmt Cpp Qttr]
+Category=1
+Description="<html>If true, space added with sp_cmt_cpp_start will be added after Qt translator<br/>or meta-data comments like '//:', '//=', and '//~'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=sp_cmt_cpp_qttr=true|sp_cmt_cpp_qttr=false
+ValueDefault=false
+
+[Sp Endif Cmt]
+Category=1
+Description="<html>Add or remove space between #else or #endif and a trailing comment.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_endif_cmt=ignore|sp_endif_cmt=add|sp_endif_cmt=remove|sp_endif_cmt=force|sp_endif_cmt=not_defined
+ChoicesReadable="Ignore Sp Endif Cmt|Add Sp Endif Cmt|Remove Sp Endif Cmt|Force Sp Endif Cmt"
+ValueDefault=ignore
+
+[Sp After New]
+Category=1
+Description="<html>Add or remove space after 'new', 'delete' and 'delete[]'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_new=ignore|sp_after_new=add|sp_after_new=remove|sp_after_new=force|sp_after_new=not_defined
+ChoicesReadable="Ignore Sp After New|Add Sp After New|Remove Sp After New|Force Sp After New"
+ValueDefault=ignore
+
+[Sp Between New Paren]
+Category=1
+Description="<html>Add or remove space between 'new' and '(' in 'new()'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_between_new_paren=ignore|sp_between_new_paren=add|sp_between_new_paren=remove|sp_between_new_paren=force|sp_between_new_paren=not_defined
+ChoicesReadable="Ignore Sp Between New Paren|Add Sp Between New Paren|Remove Sp Between New Paren|Force Sp Between New Paren"
+ValueDefault=ignore
+
+[Sp After Newop Paren]
+Category=1
+Description="<html>Add or remove space between ')' and type in 'new(foo) BAR'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_newop_paren=ignore|sp_after_newop_paren=add|sp_after_newop_paren=remove|sp_after_newop_paren=force|sp_after_newop_paren=not_defined
+ChoicesReadable="Ignore Sp After Newop Paren|Add Sp After Newop Paren|Remove Sp After Newop Paren|Force Sp After Newop Paren"
+ValueDefault=ignore
+
+[Sp Inside Newop Paren]
+Category=1
+Description="<html>Add or remove space inside parenthesis of the new operator<br/>as in 'new(foo) BAR'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_newop_paren=ignore|sp_inside_newop_paren=add|sp_inside_newop_paren=remove|sp_inside_newop_paren=force|sp_inside_newop_paren=not_defined
+ChoicesReadable="Ignore Sp Inside Newop Paren|Add Sp Inside Newop Paren|Remove Sp Inside Newop Paren|Force Sp Inside Newop Paren"
+ValueDefault=ignore
+
+[Sp Inside Newop Paren Open]
+Category=1
+Description="<html>Add or remove space after the open parenthesis of the new operator,<br/>as in 'new(foo) BAR'.<br/><br/>Overrides sp_inside_newop_paren.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_newop_paren_open=ignore|sp_inside_newop_paren_open=add|sp_inside_newop_paren_open=remove|sp_inside_newop_paren_open=force|sp_inside_newop_paren_open=not_defined
+ChoicesReadable="Ignore Sp Inside Newop Paren Open|Add Sp Inside Newop Paren Open|Remove Sp Inside Newop Paren Open|Force Sp Inside Newop Paren Open"
+ValueDefault=ignore
+
+[Sp Inside Newop Paren Close]
+Category=1
+Description="<html>Add or remove space before the close parenthesis of the new operator,<br/>as in 'new(foo) BAR'.<br/><br/>Overrides sp_inside_newop_paren.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_inside_newop_paren_close=ignore|sp_inside_newop_paren_close=add|sp_inside_newop_paren_close=remove|sp_inside_newop_paren_close=force|sp_inside_newop_paren_close=not_defined
+ChoicesReadable="Ignore Sp Inside Newop Paren Close|Add Sp Inside Newop Paren Close|Remove Sp Inside Newop Paren Close|Force Sp Inside Newop Paren Close"
+ValueDefault=ignore
+
+[Sp Before Tr Cmt]
+Category=1
+Description="<html>Add or remove space before a trailing comment.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_tr_cmt=ignore|sp_before_tr_cmt=add|sp_before_tr_cmt=remove|sp_before_tr_cmt=force|sp_before_tr_cmt=not_defined
+ChoicesReadable="Ignore Sp Before Tr Cmt|Add Sp Before Tr Cmt|Remove Sp Before Tr Cmt|Force Sp Before Tr Cmt"
+ValueDefault=ignore
+
+[Sp Num Before Tr Cmt]
+Category=1
+Description="<html>Number of spaces before a trailing comment.</html>"
+Enabled=false
+EditorType=numeric
+CallName="sp_num_before_tr_cmt="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Sp Before Emb Cmt]
+Category=1
+Description="<html>Add or remove space before an embedded comment.<br/><br/>Default: force</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_before_emb_cmt=ignore|sp_before_emb_cmt=add|sp_before_emb_cmt=remove|sp_before_emb_cmt=force|sp_before_emb_cmt=not_defined
+ChoicesReadable="Ignore Sp Before Emb Cmt|Add Sp Before Emb Cmt|Remove Sp Before Emb Cmt|Force Sp Before Emb Cmt"
+ValueDefault=force
+
+[Sp Num Before Emb Cmt]
+Category=1
+Description="<html>Number of spaces before an embedded comment.<br/><br/>Default: 1</html>"
+Enabled=false
+EditorType=numeric
+CallName="sp_num_before_emb_cmt="
+MinVal=0
+MaxVal=16
+ValueDefault=1
+
+[Sp After Emb Cmt]
+Category=1
+Description="<html>Add or remove space after an embedded comment.<br/><br/>Default: force</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_emb_cmt=ignore|sp_after_emb_cmt=add|sp_after_emb_cmt=remove|sp_after_emb_cmt=force|sp_after_emb_cmt=not_defined
+ChoicesReadable="Ignore Sp After Emb Cmt|Add Sp After Emb Cmt|Remove Sp After Emb Cmt|Force Sp After Emb Cmt"
+ValueDefault=force
+
+[Sp Num After Emb Cmt]
+Category=1
+Description="<html>Number of spaces after an embedded comment.<br/><br/>Default: 1</html>"
+Enabled=false
+EditorType=numeric
+CallName="sp_num_after_emb_cmt="
+MinVal=0
+MaxVal=16
+ValueDefault=1
+
+[Sp Annotation Paren]
+Category=1
+Description="<html>(Java) Add or remove space between an annotation and the open parenthesis.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_annotation_paren=ignore|sp_annotation_paren=add|sp_annotation_paren=remove|sp_annotation_paren=force|sp_annotation_paren=not_defined
+ChoicesReadable="Ignore Sp Annotation Paren|Add Sp Annotation Paren|Remove Sp Annotation Paren|Force Sp Annotation Paren"
+ValueDefault=ignore
+
+[Sp Skip Vbrace Tokens]
+Category=1
+Description="<html>If true, vbrace tokens are dropped to the previous token and skipped.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=sp_skip_vbrace_tokens=true|sp_skip_vbrace_tokens=false
+ValueDefault=false
+
+[Sp After Noexcept]
+Category=1
+Description="<html>Add or remove space after 'noexcept'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_after_noexcept=ignore|sp_after_noexcept=add|sp_after_noexcept=remove|sp_after_noexcept=force|sp_after_noexcept=not_defined
+ChoicesReadable="Ignore Sp After Noexcept|Add Sp After Noexcept|Remove Sp After Noexcept|Force Sp After Noexcept"
+ValueDefault=ignore
+
+[Sp Vala After Translation]
+Category=1
+Description="<html>Add or remove space after '_'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=sp_vala_after_translation=ignore|sp_vala_after_translation=add|sp_vala_after_translation=remove|sp_vala_after_translation=force|sp_vala_after_translation=not_defined
+ChoicesReadable="Ignore Sp Vala After Translation|Add Sp Vala After Translation|Remove Sp Vala After Translation|Force Sp Vala After Translation"
+ValueDefault=ignore
+
+[Force Tab After Define]
+Category=1
+Description="<html>If true, a &lt;TAB&gt; is inserted after #define.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=force_tab_after_define=true|force_tab_after_define=false
+ValueDefault=false
+
+[Indent Columns]
+Category=2
+Description="<html>The number of columns to indent per level. Usually 2, 3, 4, or 8.<br/><br/>Default: 8</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_columns="
+MinVal=0
+MaxVal=16
+ValueDefault=8
+
+[Indent Ignore First Continue]
+Category=2
+Description="<html>Whether to ignore indent for the first continuation line. Subsequent<br/>continuation lines will still be indented to match the first.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_ignore_first_continue=true|indent_ignore_first_continue=false
+ValueDefault=false
+
+[Indent Continue]
+Category=2
+Description="<html>The continuation indent. If non-zero, this overrides the indent of '(', '['<br/>and '=' continuation indents. Negative values are OK; negative value is<br/>absolute and not increased for each '(' or '[' level.<br/><br/>For FreeBSD, this is set to 4.<br/>Requires indent_ignore_first_continue=false.</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_continue="
+MinVal=-16
+MaxVal=16
+ValueDefault=0
+
+[Indent Continue Class Head]
+Category=2
+Description="<html>The continuation indent, only for class header line(s). If non-zero, this<br/>overrides the indent of 'class' continuation indents.<br/>Requires indent_ignore_first_continue=false.</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_continue_class_head="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Indent Single Newlines]
+Category=2
+Description="<html>Whether to indent empty lines (i.e. lines which contain only spaces before<br/>the newline character).</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_single_newlines=true|indent_single_newlines=false
+ValueDefault=false
+
+[Indent Param]
+Category=2
+Description="<html>The continuation indent for func_*_param if they are true. If non-zero, this<br/>overrides the indent.</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_param="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Indent With Tabs]
+Category=2
+Description="<html>How to use tabs when indenting code.<br/><br/>0: Spaces only<br/>1: Indent with tabs to brace level, align with spaces (default)<br/>2: Indent and align with tabs, using spaces when not on a tabstop<br/><br/>Default: 1</html>"
+Enabled=true
+EditorType=multiple
+Choices="indent_with_tabs=0|indent_with_tabs=1|indent_with_tabs=2"
+ChoicesReadable="Spaces only|Indent with tabs, align with spaces|Indent and align with tabs"
+ValueDefault=1
+
+[Indent Cmt With Tabs]
+Category=2
+Description="<html>Whether to indent comments that are not at a brace level with tabs on a<br/>tabstop. Requires indent_with_tabs=2. If false, will use spaces.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_cmt_with_tabs=true|indent_cmt_with_tabs=false
+ValueDefault=false
+
+[Indent Align String]
+Category=2
+Description="<html>Whether to indent strings broken by '\' so that they line up.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_align_string=true|indent_align_string=false
+ValueDefault=false
+
+[Indent Xml String]
+Category=2
+Description="<html>The number of spaces to indent multi-line XML strings.<br/>Requires indent_align_string=true.</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_xml_string="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Indent Brace]
+Category=2
+Description="<html>Spaces to indent '{' from level.</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_brace="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Indent Braces]
+Category=2
+Description="<html>Whether braces are indented to the body level.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_braces=true|indent_braces=false
+ValueDefault=false
+
+[Indent Braces No Func]
+Category=2
+Description="<html>Whether to disable indenting function braces if indent_braces=true.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_braces_no_func=true|indent_braces_no_func=false
+ValueDefault=false
+
+[Indent Braces No Class]
+Category=2
+Description="<html>Whether to disable indenting class braces if indent_braces=true.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_braces_no_class=true|indent_braces_no_class=false
+ValueDefault=false
+
+[Indent Braces No Struct]
+Category=2
+Description="<html>Whether to disable indenting struct braces if indent_braces=true.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_braces_no_struct=true|indent_braces_no_struct=false
+ValueDefault=false
+
+[Indent Brace Parent]
+Category=2
+Description="<html>Whether to indent based on the size of the brace parent,<br/>i.e. 'if' =&gt; 3 spaces, 'for' =&gt; 4 spaces, etc.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_brace_parent=true|indent_brace_parent=false
+ValueDefault=false
+
+[Indent Paren Open Brace]
+Category=2
+Description="<html>Whether to indent based on the open parenthesis instead of the open brace<br/>in '({\n'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_paren_open_brace=true|indent_paren_open_brace=false
+ValueDefault=false
+
+[Indent Cs Delegate Brace]
+Category=2
+Description="<html>(C#) Whether to indent the brace of a C# delegate by another level.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_cs_delegate_brace=true|indent_cs_delegate_brace=false
+ValueDefault=false
+
+[Indent Cs Delegate Body]
+Category=2
+Description="<html>(C#) Whether to indent a C# delegate (to handle delegates with no brace) by<br/>another level.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_cs_delegate_body=true|indent_cs_delegate_body=false
+ValueDefault=false
+
+[Indent Namespace]
+Category=2
+Description="<html>Whether to indent the body of a 'namespace'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_namespace=true|indent_namespace=false
+ValueDefault=false
+
+[Indent Namespace Single Indent]
+Category=2
+Description="<html>Whether to indent only the first namespace, and not any nested namespaces.<br/>Requires indent_namespace=true.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_namespace_single_indent=true|indent_namespace_single_indent=false
+ValueDefault=false
+
+[Indent Namespace Level]
+Category=2
+Description="<html>The number of spaces to indent a namespace block.<br/>If set to zero, use the value indent_columns</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_namespace_level="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Indent Namespace Limit]
+Category=2
+Description="<html>If the body of the namespace is longer than this number, it won't be<br/>indented. Requires indent_namespace=true. 0 means no limit.</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_namespace_limit="
+MinVal=0
+MaxVal=255
+ValueDefault=0
+
+[Indent Namespace Inner Only]
+Category=2
+Description="<html>Whether to indent only in inner namespaces (nested in other namespaces).<br/>Requires indent_namespace=true.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_namespace_inner_only=true|indent_namespace_inner_only=false
+ValueDefault=false
+
+[Indent Extern]
+Category=2
+Description="<html>Whether the 'extern "C"' body is indented.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_extern=true|indent_extern=false
+ValueDefault=false
+
+[Indent Class]
+Category=2
+Description="<html>Whether the 'class' body is indented.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_class=true|indent_class=false
+ValueDefault=false
+
+[Indent Ignore Before Class Colon]
+Category=2
+Description="<html>Whether to ignore indent for the leading base class colon.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_ignore_before_class_colon=true|indent_ignore_before_class_colon=false
+ValueDefault=false
+
+[Indent Before Class Colon]
+Category=2
+Description="<html>Additional indent before the leading base class colon.<br/>Negative values decrease indent down to the first column.<br/>Requires indent_ignore_before_class_colon=false and a newline break before<br/>the colon (see pos_class_colon and nl_class_colon)</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_before_class_colon="
+MinVal=-16
+MaxVal=16
+ValueDefault=0
+
+[Indent Class Colon]
+Category=2
+Description="<html>Whether to indent the stuff after a leading base class colon.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_class_colon=true|indent_class_colon=false
+ValueDefault=false
+
+[Indent Class On Colon]
+Category=2
+Description="<html>Whether to indent based on a class colon instead of the stuff after the<br/>colon. Requires indent_class_colon=true.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_class_on_colon=true|indent_class_on_colon=false
+ValueDefault=false
+
+[Indent Ignore Before Constr Colon]
+Category=2
+Description="<html>Whether to ignore indent for a leading class initializer colon.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_ignore_before_constr_colon=true|indent_ignore_before_constr_colon=false
+ValueDefault=false
+
+[Indent Constr Colon]
+Category=2
+Description="<html>Whether to indent the stuff after a leading class initializer colon.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_constr_colon=true|indent_constr_colon=false
+ValueDefault=false
+
+[Indent Ctor Init Leading]
+Category=2
+Description="<html>Virtual indent from the ':' for leading member initializers.<br/><br/>Default: 2</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_ctor_init_leading="
+MinVal=0
+MaxVal=16
+ValueDefault=2
+
+[Indent Ctor Init Following]
+Category=2
+Description="<html>Virtual indent from the ':' for following member initializers.<br/><br/>Default: 2</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_ctor_init_following="
+MinVal=0
+MaxVal=16
+ValueDefault=2
+
+[Indent Ctor Init]
+Category=2
+Description="<html>Additional indent for constructor initializer list.<br/>Negative values decrease indent down to the first column.</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_ctor_init="
+MinVal=-16
+MaxVal=16
+ValueDefault=0
+
+[Indent Else If]
+Category=2
+Description="<html>Whether to indent 'if' following 'else' as a new block under the 'else'.<br/>If false, 'else\nif' is treated as 'else if' for indenting purposes.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_else_if=true|indent_else_if=false
+ValueDefault=false
+
+[Indent Var Def Blk]
+Category=2
+Description="<html>Amount to indent variable declarations after a open brace.<br/><br/> &lt;0: Relative<br/>&gt;=0: Absolute</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_var_def_blk="
+MinVal=-16
+MaxVal=16
+ValueDefault=0
+
+[Indent Var Def Cont]
+Category=2
+Description="<html>Whether to indent continued variable declarations instead of aligning.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_var_def_cont=true|indent_var_def_cont=false
+ValueDefault=false
+
+[Indent Shift]
+Category=2
+Description="<html>How to indent continued shift expressions ('&lt;&lt;' and '&gt;&gt;').<br/>Set align_left_shift=false when using this.<br/> 0: Align shift operators instead of indenting them (default)<br/> 1: Indent by one level<br/>-1: Preserve original indentation</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_shift="
+MinVal=-1
+MaxVal=1
+ValueDefault=0
+
+[Indent Func Def Force Col1]
+Category=2
+Description="<html>Whether to force indentation of function definitions to start in column 1.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_func_def_force_col1=true|indent_func_def_force_col1=false
+ValueDefault=false
+
+[Indent Func Call Param]
+Category=2
+Description="<html>Whether to indent continued function call parameters one indent level,<br/>rather than aligning parameters under the open parenthesis.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_func_call_param=true|indent_func_call_param=false
+ValueDefault=false
+
+[Indent Func Def Param]
+Category=2
+Description="<html>Whether to indent continued function definition parameters one indent level,<br/>rather than aligning parameters under the open parenthesis.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_func_def_param=true|indent_func_def_param=false
+ValueDefault=false
+
+[Indent Func Def Param Paren Pos Threshold]
+Category=2
+Description="<html>for function definitions, only if indent_func_def_param is false<br/>Allows to align params when appropriate and indent them when not<br/>behave as if it was true if paren position is more than this value<br/>if paren position is more than the option value</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_func_def_param_paren_pos_threshold="
+MinVal=0
+MaxVal=160
+ValueDefault=0
+
+[Indent Func Proto Param]
+Category=2
+Description="<html>Whether to indent continued function call prototype one indent level,<br/>rather than aligning parameters under the open parenthesis.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_func_proto_param=true|indent_func_proto_param=false
+ValueDefault=false
+
+[Indent Func Class Param]
+Category=2
+Description="<html>Whether to indent continued function call declaration one indent level,<br/>rather than aligning parameters under the open parenthesis.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_func_class_param=true|indent_func_class_param=false
+ValueDefault=false
+
+[Indent Func Ctor Var Param]
+Category=2
+Description="<html>Whether to indent continued class variable constructors one indent level,<br/>rather than aligning parameters under the open parenthesis.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_func_ctor_var_param=true|indent_func_ctor_var_param=false
+ValueDefault=false
+
+[Indent Template Param]
+Category=2
+Description="<html>Whether to indent continued template parameter list one indent level,<br/>rather than aligning parameters under the open parenthesis.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_template_param=true|indent_template_param=false
+ValueDefault=false
+
+[Indent Func Param Double]
+Category=2
+Description="<html>Double the indent for indent_func_xxx_param options.<br/>Use both values of the options indent_columns and indent_param.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_func_param_double=true|indent_func_param_double=false
+ValueDefault=false
+
+[Indent Func Const]
+Category=2
+Description="<html>Indentation column for standalone 'const' qualifier on a function<br/>prototype.</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_func_const="
+MinVal=0
+MaxVal=69
+ValueDefault=0
+
+[Indent Func Throw]
+Category=2
+Description="<html>Indentation column for standalone 'throw' qualifier on a function<br/>prototype.</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_func_throw="
+MinVal=0
+MaxVal=41
+ValueDefault=0
+
+[Indent Macro Brace]
+Category=2
+Description="<html>How to indent within a macro followed by a brace on the same line<br/>This allows reducing the indent in macros that have (for example)<br/>`do { ... } while ` blocks bracketing them.<br/><br/>true: add an indent for the brace on the same line as the macro<br/>false: do not add an indent for the brace on the same line as the macro<br/><br/>Default: true</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_macro_brace=true|indent_macro_brace=false
+ValueDefault=true
+
+[Indent Member]
+Category=2
+Description="<html>The number of spaces to indent a continued '-&gt;' or '.'.<br/>Usually set to 0, 1, or indent_columns.</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_member="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Indent Member Single]
+Category=2
+Description="<html>Whether lines broken at '.' or '-&gt;' should be indented by a single indent.<br/>The indent_member option will not be effective if this is set to true.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_member_single=true|indent_member_single=false
+ValueDefault=false
+
+[Indent Single Line Comments Before]
+Category=2
+Description="<html>Spaces to indent single line ('//') comments on lines before code.</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_single_line_comments_before="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Indent Single Line Comments After]
+Category=2
+Description="<html>Spaces to indent single line ('//') comments on lines after code.</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_single_line_comments_after="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Indent Sparen Extra]
+Category=2
+Description="<html>When opening a paren for a control statement (if, for, while, etc), increase<br/>the indent level by this value. Negative values decrease the indent level.</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_sparen_extra="
+MinVal=-16
+MaxVal=16
+ValueDefault=0
+
+[Indent Relative Single Line Comments]
+Category=2
+Description="<html>Whether to indent trailing single line ('//') comments relative to the code<br/>instead of trying to keep the same absolute column.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_relative_single_line_comments=true|indent_relative_single_line_comments=false
+ValueDefault=false
+
+[Indent Switch Case]
+Category=2
+Description="<html>Spaces to indent 'case' from 'switch'. Usually 0 or indent_columns.<br/>It might be wise to choose the same value for the option indent_case_brace.</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_switch_case="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Indent Switch Body]
+Category=2
+Description="<html>Spaces to indent the body of a 'switch' before any 'case'.<br/>Usually the same as indent_columns or indent_switch_case.</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_switch_body="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Indent Ignore Case Brace]
+Category=2
+Description="<html>Whether to ignore indent for '{' following 'case'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_ignore_case_brace=true|indent_ignore_case_brace=false
+ValueDefault=false
+
+[Indent Case Brace]
+Category=2
+Description="<html>Spaces to indent '{' from 'case'. By default, the brace will appear under<br/>the 'c' in case. Usually set to 0 or indent_columns. Negative values are OK.<br/>It might be wise to choose the same value for the option indent_switch_case.</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_case_brace="
+MinVal=-16
+MaxVal=16
+ValueDefault=0
+
+[Indent Switch Break With Case]
+Category=2
+Description="<html>indent 'break' with 'case' from 'switch'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_switch_break_with_case=true|indent_switch_break_with_case=false
+ValueDefault=false
+
+[Indent Switch Pp]
+Category=2
+Description="<html>Whether to indent preprocessor statements inside of switch statements.<br/><br/>Default: true</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_switch_pp=true|indent_switch_pp=false
+ValueDefault=true
+
+[Indent Case Shift]
+Category=2
+Description="<html>Spaces to shift the 'case' line, without affecting any other lines.<br/>Usually 0.</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_case_shift="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Indent Case Comment]
+Category=2
+Description="<html>Whether to align comments before 'case' with the 'case'.<br/><br/>Default: true</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_case_comment=true|indent_case_comment=false
+ValueDefault=true
+
+[Indent Comment]
+Category=2
+Description="<html>Whether to indent comments not found in first column.<br/><br/>Default: true</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_comment=true|indent_comment=false
+ValueDefault=true
+
+[Indent Col1 Comment]
+Category=2
+Description="<html>Whether to indent comments found in first column.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_col1_comment=true|indent_col1_comment=false
+ValueDefault=false
+
+[Indent Col1 Multi String Literal]
+Category=2
+Description="<html>Whether to indent multi string literal in first column.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_col1_multi_string_literal=true|indent_col1_multi_string_literal=false
+ValueDefault=false
+
+[Indent Comment Align Thresh]
+Category=2
+Description="<html>Align comments on adjacent lines that are this many columns apart or less.<br/><br/>Default: 3</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_comment_align_thresh="
+MinVal=0
+MaxVal=16
+ValueDefault=3
+
+[Indent Ignore Label]
+Category=2
+Description="<html>Whether to ignore indent for goto labels.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_ignore_label=true|indent_ignore_label=false
+ValueDefault=false
+
+[Indent Label]
+Category=2
+Description="<html>How to indent goto labels. Requires indent_ignore_label=false.<br/><br/> &gt;0: Absolute column where 1 is the leftmost column<br/>&lt;=0: Subtract from brace indent<br/><br/>Default: 1</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_label="
+MinVal=-16
+MaxVal=16
+ValueDefault=1
+
+[Indent Access Spec]
+Category=2
+Description="<html>How to indent access specifiers that are followed by a<br/>colon.<br/><br/> &gt;0: Absolute column where 1 is the leftmost column<br/>&lt;=0: Subtract from brace indent<br/><br/>Default: 1</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_access_spec="
+MinVal=-16
+MaxVal=16
+ValueDefault=1
+
+[Indent Access Spec Body]
+Category=2
+Description="<html>Whether to indent the code after an access specifier by one level.<br/>If true, this option forces 'indent_access_spec=0'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_access_spec_body=true|indent_access_spec_body=false
+ValueDefault=false
+
+[Indent Paren Nl]
+Category=2
+Description="<html>If an open parenthesis is followed by a newline, whether to indent the next<br/>line so that it lines up after the open parenthesis (not recommended).</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_paren_nl=true|indent_paren_nl=false
+ValueDefault=false
+
+[Indent Paren Close]
+Category=2
+Description="<html>How to indent a close parenthesis after a newline.<br/><br/> 0: Indent to body level (default)<br/> 1: Align under the open parenthesis<br/> 2: Indent to the brace level<br/>-1: Preserve original indentation</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_paren_close="
+MinVal=-1
+MaxVal=2
+ValueDefault=0
+
+[Indent Paren After Func Def]
+Category=2
+Description="<html>Whether to indent the open parenthesis of a function definition,<br/>if the parenthesis is on its own line.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_paren_after_func_def=true|indent_paren_after_func_def=false
+ValueDefault=false
+
+[Indent Paren After Func Decl]
+Category=2
+Description="<html>Whether to indent the open parenthesis of a function declaration,<br/>if the parenthesis is on its own line.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_paren_after_func_decl=true|indent_paren_after_func_decl=false
+ValueDefault=false
+
+[Indent Paren After Func Call]
+Category=2
+Description="<html>Whether to indent the open parenthesis of a function call,<br/>if the parenthesis is on its own line.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_paren_after_func_call=true|indent_paren_after_func_call=false
+ValueDefault=false
+
+[Indent Comma Brace]
+Category=2
+Description="<html>How to indent a comma when inside braces.<br/> 0: Indent by one level (default)<br/> 1: Align under the open brace<br/>-1: Preserve original indentation</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_comma_brace="
+MinVal=-1
+MaxVal=1
+ValueDefault=0
+
+[Indent Comma Paren]
+Category=2
+Description="<html>How to indent a comma when inside parentheses.<br/> 0: Indent by one level (default)<br/> 1: Align under the open parenthesis<br/>-1: Preserve original indentation</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_comma_paren="
+MinVal=-1
+MaxVal=1
+ValueDefault=0
+
+[Indent Bool Paren]
+Category=2
+Description="<html>How to indent a Boolean operator when inside parentheses.<br/> 0: Indent by one level (default)<br/> 1: Align under the open parenthesis<br/>-1: Preserve original indentation</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_bool_paren="
+MinVal=-1
+MaxVal=1
+ValueDefault=0
+
+[Indent Ignore Bool]
+Category=2
+Description="<html>Whether to ignore the indentation of a Boolean operator when outside<br/>parentheses.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_ignore_bool=true|indent_ignore_bool=false
+ValueDefault=false
+
+[Indent Ignore Arith]
+Category=2
+Description="<html>Whether to ignore the indentation of an arithmetic operator.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_ignore_arith=true|indent_ignore_arith=false
+ValueDefault=false
+
+[Indent Semicolon For Paren]
+Category=2
+Description="<html>Whether to indent a semicolon when inside a for parenthesis.<br/>If true, aligns under the open for parenthesis.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_semicolon_for_paren=true|indent_semicolon_for_paren=false
+ValueDefault=false
+
+[Indent Ignore Semicolon]
+Category=2
+Description="<html>Whether to ignore the indentation of a semicolon outside of a 'for'<br/>statement.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_ignore_semicolon=true|indent_ignore_semicolon=false
+ValueDefault=false
+
+[Indent First Bool Expr]
+Category=2
+Description="<html>Whether to align the first expression to following ones<br/>if indent_bool_paren=1.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_first_bool_expr=true|indent_first_bool_expr=false
+ValueDefault=false
+
+[Indent First For Expr]
+Category=2
+Description="<html>Whether to align the first expression to following ones<br/>if indent_semicolon_for_paren=true.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_first_for_expr=true|indent_first_for_expr=false
+ValueDefault=false
+
+[Indent Square Nl]
+Category=2
+Description="<html>If an open square is followed by a newline, whether to indent the next line<br/>so that it lines up after the open square (not recommended).</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_square_nl=true|indent_square_nl=false
+ValueDefault=false
+
+[Indent Preserve Sql]
+Category=2
+Description="<html>(ESQL/C) Whether to preserve the relative indent of 'EXEC SQL' bodies.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_preserve_sql=true|indent_preserve_sql=false
+ValueDefault=false
+
+[Indent Ignore Assign]
+Category=2
+Description="<html>Whether to ignore the indentation of an assignment operator.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_ignore_assign=true|indent_ignore_assign=false
+ValueDefault=false
+
+[Indent Align Assign]
+Category=2
+Description="<html>Whether to align continued statements at the '='. If false or if the '=' is<br/>followed by a newline, the next line is indent one tab.<br/><br/>Default: true</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_align_assign=true|indent_align_assign=false
+ValueDefault=true
+
+[Indent Off After Assign]
+Category=2
+Description="<html>If true, the indentation of the chunks after a '=' sequence will be set at<br/>LHS token indentation column before '='.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_off_after_assign=true|indent_off_after_assign=false
+ValueDefault=false
+
+[Indent Align Paren]
+Category=2
+Description="<html>Whether to align continued statements at the '('. If false or the '(' is<br/>followed by a newline, the next line indent is one tab.<br/><br/>Default: true</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_align_paren=true|indent_align_paren=false
+ValueDefault=true
+
+[Indent Oc Inside Msg Sel]
+Category=2
+Description="<html>(OC) Whether to indent Objective-C code inside message selectors.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_oc_inside_msg_sel=true|indent_oc_inside_msg_sel=false
+ValueDefault=false
+
+[Indent Oc Block]
+Category=2
+Description="<html>(OC) Whether to indent Objective-C blocks at brace level instead of usual<br/>rules.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_oc_block=true|indent_oc_block=false
+ValueDefault=false
+
+[Indent Oc Block Msg]
+Category=2
+Description="<html>(OC) Indent for Objective-C blocks in a message relative to the parameter<br/>name.<br/><br/>=0: Use indent_oc_block rules<br/>&gt;0: Use specified number of spaces to indent</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_oc_block_msg="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Indent Oc Msg Colon]
+Category=2
+Description="<html>(OC) Minimum indent for subsequent parameters</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_oc_msg_colon="
+MinVal=0
+MaxVal=5000
+ValueDefault=0
+
+[Indent Oc Msg Prioritize First Colon]
+Category=2
+Description="<html>(OC) Whether to prioritize aligning with initial colon (and stripping spaces<br/>from lines, if necessary).<br/><br/>Default: true</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_oc_msg_prioritize_first_colon=true|indent_oc_msg_prioritize_first_colon=false
+ValueDefault=true
+
+[Indent Oc Block Msg Xcode Style]
+Category=2
+Description="<html>(OC) Whether to indent blocks the way that Xcode does by default<br/>(from the keyword if the parameter is on its own line; otherwise, from the<br/>previous indentation level). Requires indent_oc_block_msg=true.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_oc_block_msg_xcode_style=true|indent_oc_block_msg_xcode_style=false
+ValueDefault=false
+
+[Indent Oc Block Msg From Keyword]
+Category=2
+Description="<html>(OC) Whether to indent blocks from where the brace is, relative to a<br/>message keyword. Requires indent_oc_block_msg=true.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_oc_block_msg_from_keyword=true|indent_oc_block_msg_from_keyword=false
+ValueDefault=false
+
+[Indent Oc Block Msg From Colon]
+Category=2
+Description="<html>(OC) Whether to indent blocks from where the brace is, relative to a message<br/>colon. Requires indent_oc_block_msg=true.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_oc_block_msg_from_colon=true|indent_oc_block_msg_from_colon=false
+ValueDefault=false
+
+[Indent Oc Block Msg From Caret]
+Category=2
+Description="<html>(OC) Whether to indent blocks from where the block caret is.<br/>Requires indent_oc_block_msg=true.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_oc_block_msg_from_caret=true|indent_oc_block_msg_from_caret=false
+ValueDefault=false
+
+[Indent Oc Block Msg From Brace]
+Category=2
+Description="<html>(OC) Whether to indent blocks from where the brace caret is.<br/>Requires indent_oc_block_msg=true.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_oc_block_msg_from_brace=true|indent_oc_block_msg_from_brace=false
+ValueDefault=false
+
+[Indent Min Vbrace Open]
+Category=2
+Description="<html>When indenting after virtual brace open and newline add further spaces to<br/>reach this minimum indent.</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_min_vbrace_open="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Indent Vbrace Open On Tabstop]
+Category=2
+Description="<html>Whether to add further spaces after regular indent to reach next tabstop<br/>when indenting after virtual brace open and newline.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_vbrace_open_on_tabstop=true|indent_vbrace_open_on_tabstop=false
+ValueDefault=false
+
+[Indent Token After Brace]
+Category=2
+Description="<html>How to indent after a brace followed by another token (not a newline).<br/>true: indent all contained lines to match the token<br/>false: indent all contained lines to match the brace<br/><br/>Default: true</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_token_after_brace=true|indent_token_after_brace=false
+ValueDefault=true
+
+[Indent Cpp Lambda Body]
+Category=2
+Description="<html>Whether to indent the body of a C++11 lambda.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_cpp_lambda_body=true|indent_cpp_lambda_body=false
+ValueDefault=false
+
+[Indent Compound Literal Return]
+Category=2
+Description="<html>How to indent compound literals that are being returned.<br/>true: add both the indent from return &amp; the compound literal open brace<br/> (i.e. 2 indent levels)<br/>false: only indent 1 level, don't add the indent for the open brace, only<br/> add the indent for the return.<br/><br/>Default: true</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_compound_literal_return=true|indent_compound_literal_return=false
+ValueDefault=true
+
+[Indent Using Block]
+Category=2
+Description="<html>(C#) Whether to indent a 'using' block if no braces are used.<br/><br/>Default: true</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_using_block=true|indent_using_block=false
+ValueDefault=true
+
+[Indent Ternary Operator]
+Category=2
+Description="<html>How to indent the continuation of ternary operator.<br/><br/>0: Off (default)<br/>1: When the `if_false` is a continuation, indent it under `if_false`<br/>2: When the `:` is a continuation, indent it under `?`</html>"
+Enabled=false
+EditorType=numeric
+CallName="indent_ternary_operator="
+MinVal=0
+MaxVal=2
+ValueDefault=0
+
+[Indent Inside Ternary Operator]
+Category=2
+Description="<html>Whether to indent the statements inside ternary operator.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_inside_ternary_operator=true|indent_inside_ternary_operator=false
+ValueDefault=false
+
+[Indent Off After Return]
+Category=2
+Description="<html>If true, the indentation of the chunks after a `return` sequence will be set at return indentation column.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_off_after_return=true|indent_off_after_return=false
+ValueDefault=false
+
+[Indent Off After Return New]
+Category=2
+Description="<html>If true, the indentation of the chunks after a `return new` sequence will be set at return indentation column.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_off_after_return_new=true|indent_off_after_return_new=false
+ValueDefault=false
+
+[Indent Single After Return]
+Category=2
+Description="<html>If true, the tokens after return are indented with regular single indentation. By default (false) the indentation is after the return token.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_single_after_return=true|indent_single_after_return=false
+ValueDefault=false
+
+[Indent Ignore Asm Block]
+Category=2
+Description="<html>Whether to ignore indent and alignment for 'asm' blocks (i.e. assume they<br/>have their own indentation).</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_ignore_asm_block=true|indent_ignore_asm_block=false
+ValueDefault=false
+
+[Donot Indent Func Def Close Paren]
+Category=2
+Description="<html>Don't indent the close parenthesis of a function definition,<br/>if the parenthesis is on its own line.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=donot_indent_func_def_close_paren=true|donot_indent_func_def_close_paren=false
+ValueDefault=false
+
+[Nl Collapse Empty Body]
+Category=3
+Description="<html>Whether to collapse empty blocks between '{' and '}'.<br/>If true, overrides nl_inside_empty_func</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_collapse_empty_body=true|nl_collapse_empty_body=false
+ValueDefault=false
+
+[Nl Assign Leave One Liners]
+Category=3
+Description="<html>Don't split one-line braced assignments, as in 'foo_t f = { 1, 2 };'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_assign_leave_one_liners=true|nl_assign_leave_one_liners=false
+ValueDefault=false
+
+[Nl Class Leave One Liners]
+Category=3
+Description="<html>Don't split one-line braced statements inside a 'class xx { }' body.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_class_leave_one_liners=true|nl_class_leave_one_liners=false
+ValueDefault=false
+
+[Nl Enum Leave One Liners]
+Category=3
+Description="<html>Don't split one-line enums, as in 'enum foo { BAR = 15 };'</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_enum_leave_one_liners=true|nl_enum_leave_one_liners=false
+ValueDefault=false
+
+[Nl Getset Leave One Liners]
+Category=3
+Description="<html>Don't split one-line get or set functions.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_getset_leave_one_liners=true|nl_getset_leave_one_liners=false
+ValueDefault=false
+
+[Nl Cs Property Leave One Liners]
+Category=3
+Description="<html>(C#) Don't split one-line property get or set functions.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_cs_property_leave_one_liners=true|nl_cs_property_leave_one_liners=false
+ValueDefault=false
+
+[Nl Func Leave One Liners]
+Category=3
+Description="<html>Don't split one-line function definitions, as in 'int foo() { return 0; }'.<br/>might modify nl_func_type_name</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_func_leave_one_liners=true|nl_func_leave_one_liners=false
+ValueDefault=false
+
+[Nl Cpp Lambda Leave One Liners]
+Category=3
+Description="<html>Don't split one-line C++11 lambdas, as in '[]() { return 0; }'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_cpp_lambda_leave_one_liners=true|nl_cpp_lambda_leave_one_liners=false
+ValueDefault=false
+
+[Nl If Leave One Liners]
+Category=3
+Description="<html>Don't split one-line if/else statements, as in 'if(...) b++;'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_if_leave_one_liners=true|nl_if_leave_one_liners=false
+ValueDefault=false
+
+[Nl While Leave One Liners]
+Category=3
+Description="<html>Don't split one-line while statements, as in 'while(...) b++;'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_while_leave_one_liners=true|nl_while_leave_one_liners=false
+ValueDefault=false
+
+[Nl Do Leave One Liners]
+Category=3
+Description="<html>Don't split one-line do statements, as in 'do { b++; } while(...);'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_do_leave_one_liners=true|nl_do_leave_one_liners=false
+ValueDefault=false
+
+[Nl For Leave One Liners]
+Category=3
+Description="<html>Don't split one-line for statements, as in 'for(...) b++;'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_for_leave_one_liners=true|nl_for_leave_one_liners=false
+ValueDefault=false
+
+[Nl Oc Msg Leave One Liner]
+Category=3
+Description="<html>(OC) Don't split one-line Objective-C messages.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_oc_msg_leave_one_liner=true|nl_oc_msg_leave_one_liner=false
+ValueDefault=false
+
+[Nl Oc Mdef Brace]
+Category=3
+Description="<html>(OC) Add or remove newline between method declaration and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_oc_mdef_brace=ignore|nl_oc_mdef_brace=add|nl_oc_mdef_brace=remove|nl_oc_mdef_brace=force|nl_oc_mdef_brace=not_defined
+ChoicesReadable="Ignore Nl Oc Mdef Brace|Add Nl Oc Mdef Brace|Remove Nl Oc Mdef Brace|Force Nl Oc Mdef Brace"
+ValueDefault=ignore
+
+[Nl Oc Block Brace]
+Category=3
+Description="<html>(OC) Add or remove newline between Objective-C block signature and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_oc_block_brace=ignore|nl_oc_block_brace=add|nl_oc_block_brace=remove|nl_oc_block_brace=force|nl_oc_block_brace=not_defined
+ChoicesReadable="Ignore Nl Oc Block Brace|Add Nl Oc Block Brace|Remove Nl Oc Block Brace|Force Nl Oc Block Brace"
+ValueDefault=ignore
+
+[Nl Oc Before Interface]
+Category=3
+Description="<html>(OC) Add or remove blank line before '@interface' statement.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_oc_before_interface=ignore|nl_oc_before_interface=add|nl_oc_before_interface=remove|nl_oc_before_interface=force|nl_oc_before_interface=not_defined
+ChoicesReadable="Ignore Nl Oc Before Interface|Add Nl Oc Before Interface|Remove Nl Oc Before Interface|Force Nl Oc Before Interface"
+ValueDefault=ignore
+
+[Nl Oc Before Implementation]
+Category=3
+Description="<html>(OC) Add or remove blank line before '@implementation' statement.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_oc_before_implementation=ignore|nl_oc_before_implementation=add|nl_oc_before_implementation=remove|nl_oc_before_implementation=force|nl_oc_before_implementation=not_defined
+ChoicesReadable="Ignore Nl Oc Before Implementation|Add Nl Oc Before Implementation|Remove Nl Oc Before Implementation|Force Nl Oc Before Implementation"
+ValueDefault=ignore
+
+[Nl Oc Before End]
+Category=3
+Description="<html>(OC) Add or remove blank line before '@end' statement.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_oc_before_end=ignore|nl_oc_before_end=add|nl_oc_before_end=remove|nl_oc_before_end=force|nl_oc_before_end=not_defined
+ChoicesReadable="Ignore Nl Oc Before End|Add Nl Oc Before End|Remove Nl Oc Before End|Force Nl Oc Before End"
+ValueDefault=ignore
+
+[Nl Oc Interface Brace]
+Category=3
+Description="<html>(OC) Add or remove newline between '@interface' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_oc_interface_brace=ignore|nl_oc_interface_brace=add|nl_oc_interface_brace=remove|nl_oc_interface_brace=force|nl_oc_interface_brace=not_defined
+ChoicesReadable="Ignore Nl Oc Interface Brace|Add Nl Oc Interface Brace|Remove Nl Oc Interface Brace|Force Nl Oc Interface Brace"
+ValueDefault=ignore
+
+[Nl Oc Implementation Brace]
+Category=3
+Description="<html>(OC) Add or remove newline between '@implementation' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_oc_implementation_brace=ignore|nl_oc_implementation_brace=add|nl_oc_implementation_brace=remove|nl_oc_implementation_brace=force|nl_oc_implementation_brace=not_defined
+ChoicesReadable="Ignore Nl Oc Implementation Brace|Add Nl Oc Implementation Brace|Remove Nl Oc Implementation Brace|Force Nl Oc Implementation Brace"
+ValueDefault=ignore
+
+[Nl Start Of File]
+Category=3
+Description="<html>Add or remove newlines at the start of the file.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_start_of_file=ignore|nl_start_of_file=add|nl_start_of_file=remove|nl_start_of_file=force|nl_start_of_file=not_defined
+ChoicesReadable="Ignore Nl Start Of File|Add Nl Start Of File|Remove Nl Start Of File|Force Nl Start Of File"
+ValueDefault=ignore
+
+[Nl Start Of File Min]
+Category=3
+Description="<html>The minimum number of newlines at the start of the file (only used if<br/>nl_start_of_file is 'add' or 'force').</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_start_of_file_min="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl End Of File]
+Category=3
+Description="<html>Add or remove newline at the end of the file.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_end_of_file=ignore|nl_end_of_file=add|nl_end_of_file=remove|nl_end_of_file=force|nl_end_of_file=not_defined
+ChoicesReadable="Ignore Nl End Of File|Add Nl End Of File|Remove Nl End Of File|Force Nl End Of File"
+ValueDefault=ignore
+
+[Nl End Of File Min]
+Category=3
+Description="<html>The minimum number of newlines at the end of the file (only used if<br/>nl_end_of_file is 'add' or 'force').</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_end_of_file_min="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Assign Brace]
+Category=3
+Description="<html>Add or remove newline between '=' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_assign_brace=ignore|nl_assign_brace=add|nl_assign_brace=remove|nl_assign_brace=force|nl_assign_brace=not_defined
+ChoicesReadable="Ignore Nl Assign Brace|Add Nl Assign Brace|Remove Nl Assign Brace|Force Nl Assign Brace"
+ValueDefault=ignore
+
+[Nl Assign Square]
+Category=3
+Description="<html>(D) Add or remove newline between '=' and '['.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_assign_square=ignore|nl_assign_square=add|nl_assign_square=remove|nl_assign_square=force|nl_assign_square=not_defined
+ChoicesReadable="Ignore Nl Assign Square|Add Nl Assign Square|Remove Nl Assign Square|Force Nl Assign Square"
+ValueDefault=ignore
+
+[Nl Tsquare Brace]
+Category=3
+Description="<html>Add or remove newline between '[]' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_tsquare_brace=ignore|nl_tsquare_brace=add|nl_tsquare_brace=remove|nl_tsquare_brace=force|nl_tsquare_brace=not_defined
+ChoicesReadable="Ignore Nl Tsquare Brace|Add Nl Tsquare Brace|Remove Nl Tsquare Brace|Force Nl Tsquare Brace"
+ValueDefault=ignore
+
+[Nl After Square Assign]
+Category=3
+Description="<html>(D) Add or remove newline after '= ['. Will also affect the newline before<br/>the ']'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_after_square_assign=ignore|nl_after_square_assign=add|nl_after_square_assign=remove|nl_after_square_assign=force|nl_after_square_assign=not_defined
+ChoicesReadable="Ignore Nl After Square Assign|Add Nl After Square Assign|Remove Nl After Square Assign|Force Nl After Square Assign"
+ValueDefault=ignore
+
+[Nl Fcall Brace]
+Category=3
+Description="<html>Add or remove newline between a function call's ')' and '{', as in<br/>'list_for_each(item, &amp;list) { }'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_fcall_brace=ignore|nl_fcall_brace=add|nl_fcall_brace=remove|nl_fcall_brace=force|nl_fcall_brace=not_defined
+ChoicesReadable="Ignore Nl Fcall Brace|Add Nl Fcall Brace|Remove Nl Fcall Brace|Force Nl Fcall Brace"
+ValueDefault=ignore
+
+[Nl Enum Brace]
+Category=3
+Description="<html>Add or remove newline between 'enum' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_enum_brace=ignore|nl_enum_brace=add|nl_enum_brace=remove|nl_enum_brace=force|nl_enum_brace=not_defined
+ChoicesReadable="Ignore Nl Enum Brace|Add Nl Enum Brace|Remove Nl Enum Brace|Force Nl Enum Brace"
+ValueDefault=ignore
+
+[Nl Enum Class]
+Category=3
+Description="<html>Add or remove newline between 'enum' and 'class'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_enum_class=ignore|nl_enum_class=add|nl_enum_class=remove|nl_enum_class=force|nl_enum_class=not_defined
+ChoicesReadable="Ignore Nl Enum Class|Add Nl Enum Class|Remove Nl Enum Class|Force Nl Enum Class"
+ValueDefault=ignore
+
+[Nl Enum Class Identifier]
+Category=3
+Description="<html>Add or remove newline between 'enum class' and the identifier.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_enum_class_identifier=ignore|nl_enum_class_identifier=add|nl_enum_class_identifier=remove|nl_enum_class_identifier=force|nl_enum_class_identifier=not_defined
+ChoicesReadable="Ignore Nl Enum Class Identifier|Add Nl Enum Class Identifier|Remove Nl Enum Class Identifier|Force Nl Enum Class Identifier"
+ValueDefault=ignore
+
+[Nl Enum Identifier Colon]
+Category=3
+Description="<html>Add or remove newline between 'enum class' type and ':'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_enum_identifier_colon=ignore|nl_enum_identifier_colon=add|nl_enum_identifier_colon=remove|nl_enum_identifier_colon=force|nl_enum_identifier_colon=not_defined
+ChoicesReadable="Ignore Nl Enum Identifier Colon|Add Nl Enum Identifier Colon|Remove Nl Enum Identifier Colon|Force Nl Enum Identifier Colon"
+ValueDefault=ignore
+
+[Nl Enum Colon Type]
+Category=3
+Description="<html>Add or remove newline between 'enum class identifier :' and type.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_enum_colon_type=ignore|nl_enum_colon_type=add|nl_enum_colon_type=remove|nl_enum_colon_type=force|nl_enum_colon_type=not_defined
+ChoicesReadable="Ignore Nl Enum Colon Type|Add Nl Enum Colon Type|Remove Nl Enum Colon Type|Force Nl Enum Colon Type"
+ValueDefault=ignore
+
+[Nl Struct Brace]
+Category=3
+Description="<html>Add or remove newline between 'struct and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_struct_brace=ignore|nl_struct_brace=add|nl_struct_brace=remove|nl_struct_brace=force|nl_struct_brace=not_defined
+ChoicesReadable="Ignore Nl Struct Brace|Add Nl Struct Brace|Remove Nl Struct Brace|Force Nl Struct Brace"
+ValueDefault=ignore
+
+[Nl Union Brace]
+Category=3
+Description="<html>Add or remove newline between 'union' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_union_brace=ignore|nl_union_brace=add|nl_union_brace=remove|nl_union_brace=force|nl_union_brace=not_defined
+ChoicesReadable="Ignore Nl Union Brace|Add Nl Union Brace|Remove Nl Union Brace|Force Nl Union Brace"
+ValueDefault=ignore
+
+[Nl If Brace]
+Category=3
+Description="<html>Add or remove newline between 'if' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_if_brace=ignore|nl_if_brace=add|nl_if_brace=remove|nl_if_brace=force|nl_if_brace=not_defined
+ChoicesReadable="Ignore Nl If Brace|Add Nl If Brace|Remove Nl If Brace|Force Nl If Brace"
+ValueDefault=ignore
+
+[Nl Brace Else]
+Category=3
+Description="<html>Add or remove newline between '}' and 'else'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_brace_else=ignore|nl_brace_else=add|nl_brace_else=remove|nl_brace_else=force|nl_brace_else=not_defined
+ChoicesReadable="Ignore Nl Brace Else|Add Nl Brace Else|Remove Nl Brace Else|Force Nl Brace Else"
+ValueDefault=ignore
+
+[Nl Elseif Brace]
+Category=3
+Description="<html>Add or remove newline between 'else if' and '{'. If set to ignore,<br/>nl_if_brace is used instead.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_elseif_brace=ignore|nl_elseif_brace=add|nl_elseif_brace=remove|nl_elseif_brace=force|nl_elseif_brace=not_defined
+ChoicesReadable="Ignore Nl Elseif Brace|Add Nl Elseif Brace|Remove Nl Elseif Brace|Force Nl Elseif Brace"
+ValueDefault=ignore
+
+[Nl Else Brace]
+Category=3
+Description="<html>Add or remove newline between 'else' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_else_brace=ignore|nl_else_brace=add|nl_else_brace=remove|nl_else_brace=force|nl_else_brace=not_defined
+ChoicesReadable="Ignore Nl Else Brace|Add Nl Else Brace|Remove Nl Else Brace|Force Nl Else Brace"
+ValueDefault=ignore
+
+[Nl Else If]
+Category=3
+Description="<html>Add or remove newline between 'else' and 'if'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_else_if=ignore|nl_else_if=add|nl_else_if=remove|nl_else_if=force|nl_else_if=not_defined
+ChoicesReadable="Ignore Nl Else If|Add Nl Else If|Remove Nl Else If|Force Nl Else If"
+ValueDefault=ignore
+
+[Nl Before Opening Brace Func Class Def]
+Category=3
+Description="<html>Add or remove newline before '{' opening brace</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_before_opening_brace_func_class_def=ignore|nl_before_opening_brace_func_class_def=add|nl_before_opening_brace_func_class_def=remove|nl_before_opening_brace_func_class_def=force|nl_before_opening_brace_func_class_def=not_defined
+ChoicesReadable="Ignore Nl Before Opening Brace Func Class Def|Add Nl Before Opening Brace Func Class Def|Remove Nl Before Opening Brace Func Class Def|Force Nl Before Opening Brace Func Class Def"
+ValueDefault=ignore
+
+[Nl Before If Closing Paren]
+Category=3
+Description="<html>Add or remove newline before 'if'/'else if' closing parenthesis.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_before_if_closing_paren=ignore|nl_before_if_closing_paren=add|nl_before_if_closing_paren=remove|nl_before_if_closing_paren=force|nl_before_if_closing_paren=not_defined
+ChoicesReadable="Ignore Nl Before If Closing Paren|Add Nl Before If Closing Paren|Remove Nl Before If Closing Paren|Force Nl Before If Closing Paren"
+ValueDefault=ignore
+
+[Nl Brace Finally]
+Category=3
+Description="<html>Add or remove newline between '}' and 'finally'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_brace_finally=ignore|nl_brace_finally=add|nl_brace_finally=remove|nl_brace_finally=force|nl_brace_finally=not_defined
+ChoicesReadable="Ignore Nl Brace Finally|Add Nl Brace Finally|Remove Nl Brace Finally|Force Nl Brace Finally"
+ValueDefault=ignore
+
+[Nl Finally Brace]
+Category=3
+Description="<html>Add or remove newline between 'finally' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_finally_brace=ignore|nl_finally_brace=add|nl_finally_brace=remove|nl_finally_brace=force|nl_finally_brace=not_defined
+ChoicesReadable="Ignore Nl Finally Brace|Add Nl Finally Brace|Remove Nl Finally Brace|Force Nl Finally Brace"
+ValueDefault=ignore
+
+[Nl Try Brace]
+Category=3
+Description="<html>Add or remove newline between 'try' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_try_brace=ignore|nl_try_brace=add|nl_try_brace=remove|nl_try_brace=force|nl_try_brace=not_defined
+ChoicesReadable="Ignore Nl Try Brace|Add Nl Try Brace|Remove Nl Try Brace|Force Nl Try Brace"
+ValueDefault=ignore
+
+[Nl Getset Brace]
+Category=3
+Description="<html>Add or remove newline between get/set and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_getset_brace=ignore|nl_getset_brace=add|nl_getset_brace=remove|nl_getset_brace=force|nl_getset_brace=not_defined
+ChoicesReadable="Ignore Nl Getset Brace|Add Nl Getset Brace|Remove Nl Getset Brace|Force Nl Getset Brace"
+ValueDefault=ignore
+
+[Nl For Brace]
+Category=3
+Description="<html>Add or remove newline between 'for' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_for_brace=ignore|nl_for_brace=add|nl_for_brace=remove|nl_for_brace=force|nl_for_brace=not_defined
+ChoicesReadable="Ignore Nl For Brace|Add Nl For Brace|Remove Nl For Brace|Force Nl For Brace"
+ValueDefault=ignore
+
+[Nl Catch Brace]
+Category=3
+Description="<html>Add or remove newline before the '{' of a 'catch' statement, as in<br/>'catch (decl) &lt;here&gt; {'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_catch_brace=ignore|nl_catch_brace=add|nl_catch_brace=remove|nl_catch_brace=force|nl_catch_brace=not_defined
+ChoicesReadable="Ignore Nl Catch Brace|Add Nl Catch Brace|Remove Nl Catch Brace|Force Nl Catch Brace"
+ValueDefault=ignore
+
+[Nl Oc Catch Brace]
+Category=3
+Description="<html>(OC) Add or remove newline before the '{' of a '@catch' statement, as in<br/>'@catch (decl) &lt;here&gt; {'. If set to ignore, nl_catch_brace is used.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_oc_catch_brace=ignore|nl_oc_catch_brace=add|nl_oc_catch_brace=remove|nl_oc_catch_brace=force|nl_oc_catch_brace=not_defined
+ChoicesReadable="Ignore Nl Oc Catch Brace|Add Nl Oc Catch Brace|Remove Nl Oc Catch Brace|Force Nl Oc Catch Brace"
+ValueDefault=ignore
+
+[Nl Brace Catch]
+Category=3
+Description="<html>Add or remove newline between '}' and 'catch'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_brace_catch=ignore|nl_brace_catch=add|nl_brace_catch=remove|nl_brace_catch=force|nl_brace_catch=not_defined
+ChoicesReadable="Ignore Nl Brace Catch|Add Nl Brace Catch|Remove Nl Brace Catch|Force Nl Brace Catch"
+ValueDefault=ignore
+
+[Nl Oc Brace Catch]
+Category=3
+Description="<html>(OC) Add or remove newline between '}' and '@catch'. If set to ignore,<br/>nl_brace_catch is used.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_oc_brace_catch=ignore|nl_oc_brace_catch=add|nl_oc_brace_catch=remove|nl_oc_brace_catch=force|nl_oc_brace_catch=not_defined
+ChoicesReadable="Ignore Nl Oc Brace Catch|Add Nl Oc Brace Catch|Remove Nl Oc Brace Catch|Force Nl Oc Brace Catch"
+ValueDefault=ignore
+
+[Nl Brace Square]
+Category=3
+Description="<html>Add or remove newline between '}' and ']'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_brace_square=ignore|nl_brace_square=add|nl_brace_square=remove|nl_brace_square=force|nl_brace_square=not_defined
+ChoicesReadable="Ignore Nl Brace Square|Add Nl Brace Square|Remove Nl Brace Square|Force Nl Brace Square"
+ValueDefault=ignore
+
+[Nl Brace Fparen]
+Category=3
+Description="<html>Add or remove newline between '}' and ')' in a function invocation.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_brace_fparen=ignore|nl_brace_fparen=add|nl_brace_fparen=remove|nl_brace_fparen=force|nl_brace_fparen=not_defined
+ChoicesReadable="Ignore Nl Brace Fparen|Add Nl Brace Fparen|Remove Nl Brace Fparen|Force Nl Brace Fparen"
+ValueDefault=ignore
+
+[Nl While Brace]
+Category=3
+Description="<html>Add or remove newline between 'while' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_while_brace=ignore|nl_while_brace=add|nl_while_brace=remove|nl_while_brace=force|nl_while_brace=not_defined
+ChoicesReadable="Ignore Nl While Brace|Add Nl While Brace|Remove Nl While Brace|Force Nl While Brace"
+ValueDefault=ignore
+
+[Nl Scope Brace]
+Category=3
+Description="<html>(D) Add or remove newline between 'scope (x)' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_scope_brace=ignore|nl_scope_brace=add|nl_scope_brace=remove|nl_scope_brace=force|nl_scope_brace=not_defined
+ChoicesReadable="Ignore Nl Scope Brace|Add Nl Scope Brace|Remove Nl Scope Brace|Force Nl Scope Brace"
+ValueDefault=ignore
+
+[Nl Unittest Brace]
+Category=3
+Description="<html>(D) Add or remove newline between 'unittest' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_unittest_brace=ignore|nl_unittest_brace=add|nl_unittest_brace=remove|nl_unittest_brace=force|nl_unittest_brace=not_defined
+ChoicesReadable="Ignore Nl Unittest Brace|Add Nl Unittest Brace|Remove Nl Unittest Brace|Force Nl Unittest Brace"
+ValueDefault=ignore
+
+[Nl Version Brace]
+Category=3
+Description="<html>(D) Add or remove newline between 'version (x)' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_version_brace=ignore|nl_version_brace=add|nl_version_brace=remove|nl_version_brace=force|nl_version_brace=not_defined
+ChoicesReadable="Ignore Nl Version Brace|Add Nl Version Brace|Remove Nl Version Brace|Force Nl Version Brace"
+ValueDefault=ignore
+
+[Nl Using Brace]
+Category=3
+Description="<html>(C#) Add or remove newline between 'using' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_using_brace=ignore|nl_using_brace=add|nl_using_brace=remove|nl_using_brace=force|nl_using_brace=not_defined
+ChoicesReadable="Ignore Nl Using Brace|Add Nl Using Brace|Remove Nl Using Brace|Force Nl Using Brace"
+ValueDefault=ignore
+
+[Nl Brace Brace]
+Category=3
+Description="<html>Add or remove newline between two open or close braces. Due to general<br/>newline/brace handling, REMOVE may not work.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_brace_brace=ignore|nl_brace_brace=add|nl_brace_brace=remove|nl_brace_brace=force|nl_brace_brace=not_defined
+ChoicesReadable="Ignore Nl Brace Brace|Add Nl Brace Brace|Remove Nl Brace Brace|Force Nl Brace Brace"
+ValueDefault=ignore
+
+[Nl Do Brace]
+Category=3
+Description="<html>Add or remove newline between 'do' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_do_brace=ignore|nl_do_brace=add|nl_do_brace=remove|nl_do_brace=force|nl_do_brace=not_defined
+ChoicesReadable="Ignore Nl Do Brace|Add Nl Do Brace|Remove Nl Do Brace|Force Nl Do Brace"
+ValueDefault=ignore
+
+[Nl Brace While]
+Category=3
+Description="<html>Add or remove newline between '}' and 'while' of 'do' statement.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_brace_while=ignore|nl_brace_while=add|nl_brace_while=remove|nl_brace_while=force|nl_brace_while=not_defined
+ChoicesReadable="Ignore Nl Brace While|Add Nl Brace While|Remove Nl Brace While|Force Nl Brace While"
+ValueDefault=ignore
+
+[Nl Switch Brace]
+Category=3
+Description="<html>Add or remove newline between 'switch' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_switch_brace=ignore|nl_switch_brace=add|nl_switch_brace=remove|nl_switch_brace=force|nl_switch_brace=not_defined
+ChoicesReadable="Ignore Nl Switch Brace|Add Nl Switch Brace|Remove Nl Switch Brace|Force Nl Switch Brace"
+ValueDefault=ignore
+
+[Nl Synchronized Brace]
+Category=3
+Description="<html>Add or remove newline between 'synchronized' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_synchronized_brace=ignore|nl_synchronized_brace=add|nl_synchronized_brace=remove|nl_synchronized_brace=force|nl_synchronized_brace=not_defined
+ChoicesReadable="Ignore Nl Synchronized Brace|Add Nl Synchronized Brace|Remove Nl Synchronized Brace|Force Nl Synchronized Brace"
+ValueDefault=ignore
+
+[Nl Multi Line Cond]
+Category=3
+Description="<html>Add a newline between ')' and '{' if the ')' is on a different line than the<br/>if/for/etc.<br/><br/>Overrides nl_for_brace, nl_if_brace, nl_switch_brace, nl_while_switch and<br/>nl_catch_brace.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_multi_line_cond=true|nl_multi_line_cond=false
+ValueDefault=false
+
+[Nl Multi Line Sparen Open]
+Category=3
+Description="<html>Add a newline after '(' if an if/for/while/switch condition spans multiple<br/>lines</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_multi_line_sparen_open=ignore|nl_multi_line_sparen_open=add|nl_multi_line_sparen_open=remove|nl_multi_line_sparen_open=force|nl_multi_line_sparen_open=not_defined
+ChoicesReadable="Ignore Nl Multi Line Sparen Open|Add Nl Multi Line Sparen Open|Remove Nl Multi Line Sparen Open|Force Nl Multi Line Sparen Open"
+ValueDefault=ignore
+
+[Nl Multi Line Sparen Close]
+Category=3
+Description="<html>Add a newline before ')' if an if/for/while/switch condition spans multiple<br/>lines. Overrides nl_before_if_closing_paren if both are specified.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_multi_line_sparen_close=ignore|nl_multi_line_sparen_close=add|nl_multi_line_sparen_close=remove|nl_multi_line_sparen_close=force|nl_multi_line_sparen_close=not_defined
+ChoicesReadable="Ignore Nl Multi Line Sparen Close|Add Nl Multi Line Sparen Close|Remove Nl Multi Line Sparen Close|Force Nl Multi Line Sparen Close"
+ValueDefault=ignore
+
+[Nl Multi Line Define]
+Category=3
+Description="<html>Force a newline in a define after the macro name for multi-line defines.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_multi_line_define=true|nl_multi_line_define=false
+ValueDefault=false
+
+[Nl Before Case]
+Category=3
+Description="<html>Whether to add a newline before 'case', and a blank line before a 'case'<br/>statement that follows a ';' or '}'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_before_case=true|nl_before_case=false
+ValueDefault=false
+
+[Nl After Case]
+Category=3
+Description="<html>Whether to add a newline after a 'case' statement.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_after_case=true|nl_after_case=false
+ValueDefault=false
+
+[Nl Case Colon Brace]
+Category=3
+Description="<html>Add or remove newline between a case ':' and '{'.<br/><br/>Overrides nl_after_case.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_case_colon_brace=ignore|nl_case_colon_brace=add|nl_case_colon_brace=remove|nl_case_colon_brace=force|nl_case_colon_brace=not_defined
+ChoicesReadable="Ignore Nl Case Colon Brace|Add Nl Case Colon Brace|Remove Nl Case Colon Brace|Force Nl Case Colon Brace"
+ValueDefault=ignore
+
+[Nl Before Throw]
+Category=3
+Description="<html>Add or remove newline between ')' and 'throw'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_before_throw=ignore|nl_before_throw=add|nl_before_throw=remove|nl_before_throw=force|nl_before_throw=not_defined
+ChoicesReadable="Ignore Nl Before Throw|Add Nl Before Throw|Remove Nl Before Throw|Force Nl Before Throw"
+ValueDefault=ignore
+
+[Nl Namespace Brace]
+Category=3
+Description="<html>Add or remove newline between 'namespace' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_namespace_brace=ignore|nl_namespace_brace=add|nl_namespace_brace=remove|nl_namespace_brace=force|nl_namespace_brace=not_defined
+ChoicesReadable="Ignore Nl Namespace Brace|Add Nl Namespace Brace|Remove Nl Namespace Brace|Force Nl Namespace Brace"
+ValueDefault=ignore
+
+[Nl Template Class]
+Category=3
+Description="<html>Add or remove newline after 'template&lt;...&gt;' of a template class.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_template_class=ignore|nl_template_class=add|nl_template_class=remove|nl_template_class=force|nl_template_class=not_defined
+ChoicesReadable="Ignore Nl Template Class|Add Nl Template Class|Remove Nl Template Class|Force Nl Template Class"
+ValueDefault=ignore
+
+[Nl Template Class Decl]
+Category=3
+Description="<html>Add or remove newline after 'template&lt;...&gt;' of a template class declaration.<br/><br/>Overrides nl_template_class.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_template_class_decl=ignore|nl_template_class_decl=add|nl_template_class_decl=remove|nl_template_class_decl=force|nl_template_class_decl=not_defined
+ChoicesReadable="Ignore Nl Template Class Decl|Add Nl Template Class Decl|Remove Nl Template Class Decl|Force Nl Template Class Decl"
+ValueDefault=ignore
+
+[Nl Template Class Decl Special]
+Category=3
+Description="<html>Add or remove newline after 'template&lt;&gt;' of a specialized class declaration.<br/><br/>Overrides nl_template_class_decl.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_template_class_decl_special=ignore|nl_template_class_decl_special=add|nl_template_class_decl_special=remove|nl_template_class_decl_special=force|nl_template_class_decl_special=not_defined
+ChoicesReadable="Ignore Nl Template Class Decl Special|Add Nl Template Class Decl Special|Remove Nl Template Class Decl Special|Force Nl Template Class Decl Special"
+ValueDefault=ignore
+
+[Nl Template Class Def]
+Category=3
+Description="<html>Add or remove newline after 'template&lt;...&gt;' of a template class definition.<br/><br/>Overrides nl_template_class.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_template_class_def=ignore|nl_template_class_def=add|nl_template_class_def=remove|nl_template_class_def=force|nl_template_class_def=not_defined
+ChoicesReadable="Ignore Nl Template Class Def|Add Nl Template Class Def|Remove Nl Template Class Def|Force Nl Template Class Def"
+ValueDefault=ignore
+
+[Nl Template Class Def Special]
+Category=3
+Description="<html>Add or remove newline after 'template&lt;&gt;' of a specialized class definition.<br/><br/>Overrides nl_template_class_def.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_template_class_def_special=ignore|nl_template_class_def_special=add|nl_template_class_def_special=remove|nl_template_class_def_special=force|nl_template_class_def_special=not_defined
+ChoicesReadable="Ignore Nl Template Class Def Special|Add Nl Template Class Def Special|Remove Nl Template Class Def Special|Force Nl Template Class Def Special"
+ValueDefault=ignore
+
+[Nl Template Func]
+Category=3
+Description="<html>Add or remove newline after 'template&lt;...&gt;' of a template function.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_template_func=ignore|nl_template_func=add|nl_template_func=remove|nl_template_func=force|nl_template_func=not_defined
+ChoicesReadable="Ignore Nl Template Func|Add Nl Template Func|Remove Nl Template Func|Force Nl Template Func"
+ValueDefault=ignore
+
+[Nl Template Func Decl]
+Category=3
+Description="<html>Add or remove newline after 'template&lt;...&gt;' of a template function<br/>declaration.<br/><br/>Overrides nl_template_func.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_template_func_decl=ignore|nl_template_func_decl=add|nl_template_func_decl=remove|nl_template_func_decl=force|nl_template_func_decl=not_defined
+ChoicesReadable="Ignore Nl Template Func Decl|Add Nl Template Func Decl|Remove Nl Template Func Decl|Force Nl Template Func Decl"
+ValueDefault=ignore
+
+[Nl Template Func Decl Special]
+Category=3
+Description="<html>Add or remove newline after 'template&lt;&gt;' of a specialized function<br/>declaration.<br/><br/>Overrides nl_template_func_decl.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_template_func_decl_special=ignore|nl_template_func_decl_special=add|nl_template_func_decl_special=remove|nl_template_func_decl_special=force|nl_template_func_decl_special=not_defined
+ChoicesReadable="Ignore Nl Template Func Decl Special|Add Nl Template Func Decl Special|Remove Nl Template Func Decl Special|Force Nl Template Func Decl Special"
+ValueDefault=ignore
+
+[Nl Template Func Def]
+Category=3
+Description="<html>Add or remove newline after 'template&lt;...&gt;' of a template function<br/>definition.<br/><br/>Overrides nl_template_func.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_template_func_def=ignore|nl_template_func_def=add|nl_template_func_def=remove|nl_template_func_def=force|nl_template_func_def=not_defined
+ChoicesReadable="Ignore Nl Template Func Def|Add Nl Template Func Def|Remove Nl Template Func Def|Force Nl Template Func Def"
+ValueDefault=ignore
+
+[Nl Template Func Def Special]
+Category=3
+Description="<html>Add or remove newline after 'template&lt;&gt;' of a specialized function<br/>definition.<br/><br/>Overrides nl_template_func_def.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_template_func_def_special=ignore|nl_template_func_def_special=add|nl_template_func_def_special=remove|nl_template_func_def_special=force|nl_template_func_def_special=not_defined
+ChoicesReadable="Ignore Nl Template Func Def Special|Add Nl Template Func Def Special|Remove Nl Template Func Def Special|Force Nl Template Func Def Special"
+ValueDefault=ignore
+
+[Nl Template Var]
+Category=3
+Description="<html>Add or remove newline after 'template&lt;...&gt;' of a template variable.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_template_var=ignore|nl_template_var=add|nl_template_var=remove|nl_template_var=force|nl_template_var=not_defined
+ChoicesReadable="Ignore Nl Template Var|Add Nl Template Var|Remove Nl Template Var|Force Nl Template Var"
+ValueDefault=ignore
+
+[Nl Template Using]
+Category=3
+Description="<html>Add or remove newline between 'template&lt;...&gt;' and 'using' of a templated<br/>type alias.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_template_using=ignore|nl_template_using=add|nl_template_using=remove|nl_template_using=force|nl_template_using=not_defined
+ChoicesReadable="Ignore Nl Template Using|Add Nl Template Using|Remove Nl Template Using|Force Nl Template Using"
+ValueDefault=ignore
+
+[Nl Class Brace]
+Category=3
+Description="<html>Add or remove newline between 'class' and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_class_brace=ignore|nl_class_brace=add|nl_class_brace=remove|nl_class_brace=force|nl_class_brace=not_defined
+ChoicesReadable="Ignore Nl Class Brace|Add Nl Class Brace|Remove Nl Class Brace|Force Nl Class Brace"
+ValueDefault=ignore
+
+[Nl Class Init Args]
+Category=3
+Description="<html>Add or remove newline before or after (depending on pos_class_comma,<br/>may not be IGNORE) each',' in the base class list.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_class_init_args=ignore|nl_class_init_args=add|nl_class_init_args=remove|nl_class_init_args=force|nl_class_init_args=not_defined
+ChoicesReadable="Ignore Nl Class Init Args|Add Nl Class Init Args|Remove Nl Class Init Args|Force Nl Class Init Args"
+ValueDefault=ignore
+
+[Nl Constr Init Args]
+Category=3
+Description="<html>Add or remove newline after each ',' in the constructor member<br/>initialization. Related to nl_constr_colon, pos_constr_colon and<br/>pos_constr_comma.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_constr_init_args=ignore|nl_constr_init_args=add|nl_constr_init_args=remove|nl_constr_init_args=force|nl_constr_init_args=not_defined
+ChoicesReadable="Ignore Nl Constr Init Args|Add Nl Constr Init Args|Remove Nl Constr Init Args|Force Nl Constr Init Args"
+ValueDefault=ignore
+
+[Nl Enum Own Lines]
+Category=3
+Description="<html>Add or remove newline before first element, after comma, and after last<br/>element, in 'enum'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_enum_own_lines=ignore|nl_enum_own_lines=add|nl_enum_own_lines=remove|nl_enum_own_lines=force|nl_enum_own_lines=not_defined
+ChoicesReadable="Ignore Nl Enum Own Lines|Add Nl Enum Own Lines|Remove Nl Enum Own Lines|Force Nl Enum Own Lines"
+ValueDefault=ignore
+
+[Nl Func Type Name]
+Category=3
+Description="<html>Add or remove newline between return type and function name in a function<br/>definition.<br/>might be modified by nl_func_leave_one_liners</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_type_name=ignore|nl_func_type_name=add|nl_func_type_name=remove|nl_func_type_name=force|nl_func_type_name=not_defined
+ChoicesReadable="Ignore Nl Func Type Name|Add Nl Func Type Name|Remove Nl Func Type Name|Force Nl Func Type Name"
+ValueDefault=ignore
+
+[Nl Func Type Name Class]
+Category=3
+Description="<html>Add or remove newline between return type and function name inside a class<br/>definition. If set to ignore, nl_func_type_name or nl_func_proto_type_name<br/>is used instead.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_type_name_class=ignore|nl_func_type_name_class=add|nl_func_type_name_class=remove|nl_func_type_name_class=force|nl_func_type_name_class=not_defined
+ChoicesReadable="Ignore Nl Func Type Name Class|Add Nl Func Type Name Class|Remove Nl Func Type Name Class|Force Nl Func Type Name Class"
+ValueDefault=ignore
+
+[Nl Func Class Scope]
+Category=3
+Description="<html>Add or remove newline between class specification and '::'<br/>in 'void A::f() { }'. Only appears in separate member implementation (does<br/>not appear with in-line implementation).</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_class_scope=ignore|nl_func_class_scope=add|nl_func_class_scope=remove|nl_func_class_scope=force|nl_func_class_scope=not_defined
+ChoicesReadable="Ignore Nl Func Class Scope|Add Nl Func Class Scope|Remove Nl Func Class Scope|Force Nl Func Class Scope"
+ValueDefault=ignore
+
+[Nl Func Scope Name]
+Category=3
+Description="<html>Add or remove newline between function scope and name, as in<br/>'void A :: &lt;here&gt; f() { }'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_scope_name=ignore|nl_func_scope_name=add|nl_func_scope_name=remove|nl_func_scope_name=force|nl_func_scope_name=not_defined
+ChoicesReadable="Ignore Nl Func Scope Name|Add Nl Func Scope Name|Remove Nl Func Scope Name|Force Nl Func Scope Name"
+ValueDefault=ignore
+
+[Nl Func Proto Type Name]
+Category=3
+Description="<html>Add or remove newline between return type and function name in a prototype.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_proto_type_name=ignore|nl_func_proto_type_name=add|nl_func_proto_type_name=remove|nl_func_proto_type_name=force|nl_func_proto_type_name=not_defined
+ChoicesReadable="Ignore Nl Func Proto Type Name|Add Nl Func Proto Type Name|Remove Nl Func Proto Type Name|Force Nl Func Proto Type Name"
+ValueDefault=ignore
+
+[Nl Func Paren]
+Category=3
+Description="<html>Add or remove newline between a function name and the opening '(' in the<br/>declaration.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_paren=ignore|nl_func_paren=add|nl_func_paren=remove|nl_func_paren=force|nl_func_paren=not_defined
+ChoicesReadable="Ignore Nl Func Paren|Add Nl Func Paren|Remove Nl Func Paren|Force Nl Func Paren"
+ValueDefault=ignore
+
+[Nl Func Paren Empty]
+Category=3
+Description="<html>Overrides nl_func_paren for functions with no parameters.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_paren_empty=ignore|nl_func_paren_empty=add|nl_func_paren_empty=remove|nl_func_paren_empty=force|nl_func_paren_empty=not_defined
+ChoicesReadable="Ignore Nl Func Paren Empty|Add Nl Func Paren Empty|Remove Nl Func Paren Empty|Force Nl Func Paren Empty"
+ValueDefault=ignore
+
+[Nl Func Def Paren]
+Category=3
+Description="<html>Add or remove newline between a function name and the opening '(' in the<br/>definition.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_def_paren=ignore|nl_func_def_paren=add|nl_func_def_paren=remove|nl_func_def_paren=force|nl_func_def_paren=not_defined
+ChoicesReadable="Ignore Nl Func Def Paren|Add Nl Func Def Paren|Remove Nl Func Def Paren|Force Nl Func Def Paren"
+ValueDefault=ignore
+
+[Nl Func Def Paren Empty]
+Category=3
+Description="<html>Overrides nl_func_def_paren for functions with no parameters.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_def_paren_empty=ignore|nl_func_def_paren_empty=add|nl_func_def_paren_empty=remove|nl_func_def_paren_empty=force|nl_func_def_paren_empty=not_defined
+ChoicesReadable="Ignore Nl Func Def Paren Empty|Add Nl Func Def Paren Empty|Remove Nl Func Def Paren Empty|Force Nl Func Def Paren Empty"
+ValueDefault=ignore
+
+[Nl Func Call Paren]
+Category=3
+Description="<html>Add or remove newline between a function name and the opening '(' in the<br/>call.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_call_paren=ignore|nl_func_call_paren=add|nl_func_call_paren=remove|nl_func_call_paren=force|nl_func_call_paren=not_defined
+ChoicesReadable="Ignore Nl Func Call Paren|Add Nl Func Call Paren|Remove Nl Func Call Paren|Force Nl Func Call Paren"
+ValueDefault=ignore
+
+[Nl Func Call Paren Empty]
+Category=3
+Description="<html>Overrides nl_func_call_paren for functions with no parameters.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_call_paren_empty=ignore|nl_func_call_paren_empty=add|nl_func_call_paren_empty=remove|nl_func_call_paren_empty=force|nl_func_call_paren_empty=not_defined
+ChoicesReadable="Ignore Nl Func Call Paren Empty|Add Nl Func Call Paren Empty|Remove Nl Func Call Paren Empty|Force Nl Func Call Paren Empty"
+ValueDefault=ignore
+
+[Nl Func Decl Start]
+Category=3
+Description="<html>Add or remove newline after '(' in a function declaration.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_decl_start=ignore|nl_func_decl_start=add|nl_func_decl_start=remove|nl_func_decl_start=force|nl_func_decl_start=not_defined
+ChoicesReadable="Ignore Nl Func Decl Start|Add Nl Func Decl Start|Remove Nl Func Decl Start|Force Nl Func Decl Start"
+ValueDefault=ignore
+
+[Nl Func Def Start]
+Category=3
+Description="<html>Add or remove newline after '(' in a function definition.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_def_start=ignore|nl_func_def_start=add|nl_func_def_start=remove|nl_func_def_start=force|nl_func_def_start=not_defined
+ChoicesReadable="Ignore Nl Func Def Start|Add Nl Func Def Start|Remove Nl Func Def Start|Force Nl Func Def Start"
+ValueDefault=ignore
+
+[Nl Func Decl Start Single]
+Category=3
+Description="<html>Overrides nl_func_decl_start when there is only one parameter.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_decl_start_single=ignore|nl_func_decl_start_single=add|nl_func_decl_start_single=remove|nl_func_decl_start_single=force|nl_func_decl_start_single=not_defined
+ChoicesReadable="Ignore Nl Func Decl Start Single|Add Nl Func Decl Start Single|Remove Nl Func Decl Start Single|Force Nl Func Decl Start Single"
+ValueDefault=ignore
+
+[Nl Func Def Start Single]
+Category=3
+Description="<html>Overrides nl_func_def_start when there is only one parameter.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_def_start_single=ignore|nl_func_def_start_single=add|nl_func_def_start_single=remove|nl_func_def_start_single=force|nl_func_def_start_single=not_defined
+ChoicesReadable="Ignore Nl Func Def Start Single|Add Nl Func Def Start Single|Remove Nl Func Def Start Single|Force Nl Func Def Start Single"
+ValueDefault=ignore
+
+[Nl Func Decl Start Multi Line]
+Category=3
+Description="<html>Whether to add a newline after '(' in a function declaration if '(' and ')'<br/>are in different lines. If false, nl_func_decl_start is used instead.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_func_decl_start_multi_line=true|nl_func_decl_start_multi_line=false
+ValueDefault=false
+
+[Nl Func Def Start Multi Line]
+Category=3
+Description="<html>Whether to add a newline after '(' in a function definition if '(' and ')'<br/>are in different lines. If false, nl_func_def_start is used instead.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_func_def_start_multi_line=true|nl_func_def_start_multi_line=false
+ValueDefault=false
+
+[Nl Func Decl Args]
+Category=3
+Description="<html>Add or remove newline after each ',' in a function declaration.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_decl_args=ignore|nl_func_decl_args=add|nl_func_decl_args=remove|nl_func_decl_args=force|nl_func_decl_args=not_defined
+ChoicesReadable="Ignore Nl Func Decl Args|Add Nl Func Decl Args|Remove Nl Func Decl Args|Force Nl Func Decl Args"
+ValueDefault=ignore
+
+[Nl Func Def Args]
+Category=3
+Description="<html>Add or remove newline after each ',' in a function definition.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_def_args=ignore|nl_func_def_args=add|nl_func_def_args=remove|nl_func_def_args=force|nl_func_def_args=not_defined
+ChoicesReadable="Ignore Nl Func Def Args|Add Nl Func Def Args|Remove Nl Func Def Args|Force Nl Func Def Args"
+ValueDefault=ignore
+
+[Nl Func Call Args]
+Category=3
+Description="<html>Add or remove newline after each ',' in a function call.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_call_args=ignore|nl_func_call_args=add|nl_func_call_args=remove|nl_func_call_args=force|nl_func_call_args=not_defined
+ChoicesReadable="Ignore Nl Func Call Args|Add Nl Func Call Args|Remove Nl Func Call Args|Force Nl Func Call Args"
+ValueDefault=ignore
+
+[Nl Func Decl Args Multi Line]
+Category=3
+Description="<html>Whether to add a newline after each ',' in a function declaration if '('<br/>and ')' are in different lines. If false, nl_func_decl_args is used instead.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_func_decl_args_multi_line=true|nl_func_decl_args_multi_line=false
+ValueDefault=false
+
+[Nl Func Def Args Multi Line]
+Category=3
+Description="<html>Whether to add a newline after each ',' in a function definition if '('<br/>and ')' are in different lines. If false, nl_func_def_args is used instead.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_func_def_args_multi_line=true|nl_func_def_args_multi_line=false
+ValueDefault=false
+
+[Nl Func Decl End]
+Category=3
+Description="<html>Add or remove newline before the ')' in a function declaration.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_decl_end=ignore|nl_func_decl_end=add|nl_func_decl_end=remove|nl_func_decl_end=force|nl_func_decl_end=not_defined
+ChoicesReadable="Ignore Nl Func Decl End|Add Nl Func Decl End|Remove Nl Func Decl End|Force Nl Func Decl End"
+ValueDefault=ignore
+
+[Nl Func Def End]
+Category=3
+Description="<html>Add or remove newline before the ')' in a function definition.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_def_end=ignore|nl_func_def_end=add|nl_func_def_end=remove|nl_func_def_end=force|nl_func_def_end=not_defined
+ChoicesReadable="Ignore Nl Func Def End|Add Nl Func Def End|Remove Nl Func Def End|Force Nl Func Def End"
+ValueDefault=ignore
+
+[Nl Func Decl End Single]
+Category=3
+Description="<html>Overrides nl_func_decl_end when there is only one parameter.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_decl_end_single=ignore|nl_func_decl_end_single=add|nl_func_decl_end_single=remove|nl_func_decl_end_single=force|nl_func_decl_end_single=not_defined
+ChoicesReadable="Ignore Nl Func Decl End Single|Add Nl Func Decl End Single|Remove Nl Func Decl End Single|Force Nl Func Decl End Single"
+ValueDefault=ignore
+
+[Nl Func Def End Single]
+Category=3
+Description="<html>Overrides nl_func_def_end when there is only one parameter.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_def_end_single=ignore|nl_func_def_end_single=add|nl_func_def_end_single=remove|nl_func_def_end_single=force|nl_func_def_end_single=not_defined
+ChoicesReadable="Ignore Nl Func Def End Single|Add Nl Func Def End Single|Remove Nl Func Def End Single|Force Nl Func Def End Single"
+ValueDefault=ignore
+
+[Nl Func Decl End Multi Line]
+Category=3
+Description="<html>Whether to add a newline before ')' in a function declaration if '(' and ')'<br/>are in different lines. If false, nl_func_decl_end is used instead.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_func_decl_end_multi_line=true|nl_func_decl_end_multi_line=false
+ValueDefault=false
+
+[Nl Func Def End Multi Line]
+Category=3
+Description="<html>Whether to add a newline before ')' in a function definition if '(' and ')'<br/>are in different lines. If false, nl_func_def_end is used instead.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_func_def_end_multi_line=true|nl_func_def_end_multi_line=false
+ValueDefault=false
+
+[Nl Func Decl Empty]
+Category=3
+Description="<html>Add or remove newline between '()' in a function declaration.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_decl_empty=ignore|nl_func_decl_empty=add|nl_func_decl_empty=remove|nl_func_decl_empty=force|nl_func_decl_empty=not_defined
+ChoicesReadable="Ignore Nl Func Decl Empty|Add Nl Func Decl Empty|Remove Nl Func Decl Empty|Force Nl Func Decl Empty"
+ValueDefault=ignore
+
+[Nl Func Def Empty]
+Category=3
+Description="<html>Add or remove newline between '()' in a function definition.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_def_empty=ignore|nl_func_def_empty=add|nl_func_def_empty=remove|nl_func_def_empty=force|nl_func_def_empty=not_defined
+ChoicesReadable="Ignore Nl Func Def Empty|Add Nl Func Def Empty|Remove Nl Func Def Empty|Force Nl Func Def Empty"
+ValueDefault=ignore
+
+[Nl Func Call Empty]
+Category=3
+Description="<html>Add or remove newline between '()' in a function call.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_call_empty=ignore|nl_func_call_empty=add|nl_func_call_empty=remove|nl_func_call_empty=force|nl_func_call_empty=not_defined
+ChoicesReadable="Ignore Nl Func Call Empty|Add Nl Func Call Empty|Remove Nl Func Call Empty|Force Nl Func Call Empty"
+ValueDefault=ignore
+
+[Nl Func Call Start]
+Category=3
+Description="<html>Whether to add a newline after '(' in a function call,<br/>has preference over nl_func_call_start_multi_line.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_call_start=ignore|nl_func_call_start=add|nl_func_call_start=remove|nl_func_call_start=force|nl_func_call_start=not_defined
+ChoicesReadable="Ignore Nl Func Call Start|Add Nl Func Call Start|Remove Nl Func Call Start|Force Nl Func Call Start"
+ValueDefault=ignore
+
+[Nl Func Call End]
+Category=3
+Description="<html>Whether to add a newline before ')' in a function call.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_func_call_end=ignore|nl_func_call_end=add|nl_func_call_end=remove|nl_func_call_end=force|nl_func_call_end=not_defined
+ChoicesReadable="Ignore Nl Func Call End|Add Nl Func Call End|Remove Nl Func Call End|Force Nl Func Call End"
+ValueDefault=ignore
+
+[Nl Func Call Start Multi Line]
+Category=3
+Description="<html>Whether to add a newline after '(' in a function call if '(' and ')' are in<br/>different lines.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_func_call_start_multi_line=true|nl_func_call_start_multi_line=false
+ValueDefault=false
+
+[Nl Func Call Args Multi Line]
+Category=3
+Description="<html>Whether to add a newline after each ',' in a function call if '(' and ')'<br/>are in different lines.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_func_call_args_multi_line=true|nl_func_call_args_multi_line=false
+ValueDefault=false
+
+[Nl Func Call End Multi Line]
+Category=3
+Description="<html>Whether to add a newline before ')' in a function call if '(' and ')' are in<br/>different lines.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_func_call_end_multi_line=true|nl_func_call_end_multi_line=false
+ValueDefault=false
+
+[Nl Func Call Args Multi Line Ignore Closures]
+Category=3
+Description="<html>Whether to respect nl_func_call_XXX option in case of closure args.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_func_call_args_multi_line_ignore_closures=true|nl_func_call_args_multi_line_ignore_closures=false
+ValueDefault=false
+
+[Nl Template Start]
+Category=3
+Description="<html>Whether to add a newline after '&lt;' of a template parameter list.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_template_start=true|nl_template_start=false
+ValueDefault=false
+
+[Nl Template Args]
+Category=3
+Description="<html>Whether to add a newline after each ',' in a template parameter list.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_template_args=true|nl_template_args=false
+ValueDefault=false
+
+[Nl Template End]
+Category=3
+Description="<html>Whether to add a newline before '&gt;' of a template parameter list.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_template_end=true|nl_template_end=false
+ValueDefault=false
+
+[Nl Oc Msg Args]
+Category=3
+Description="<html>(OC) Whether to put each Objective-C message parameter on a separate line.<br/>See nl_oc_msg_leave_one_liner.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_oc_msg_args=true|nl_oc_msg_args=false
+ValueDefault=false
+
+[Nl Fdef Brace]
+Category=3
+Description="<html>Add or remove newline between function signature and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_fdef_brace=ignore|nl_fdef_brace=add|nl_fdef_brace=remove|nl_fdef_brace=force|nl_fdef_brace=not_defined
+ChoicesReadable="Ignore Nl Fdef Brace|Add Nl Fdef Brace|Remove Nl Fdef Brace|Force Nl Fdef Brace"
+ValueDefault=ignore
+
+[Nl Fdef Brace Cond]
+Category=3
+Description="<html>Add or remove newline between function signature and '{',<br/>if signature ends with ')'. Overrides nl_fdef_brace.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_fdef_brace_cond=ignore|nl_fdef_brace_cond=add|nl_fdef_brace_cond=remove|nl_fdef_brace_cond=force|nl_fdef_brace_cond=not_defined
+ChoicesReadable="Ignore Nl Fdef Brace Cond|Add Nl Fdef Brace Cond|Remove Nl Fdef Brace Cond|Force Nl Fdef Brace Cond"
+ValueDefault=ignore
+
+[Nl Cpp Ldef Brace]
+Category=3
+Description="<html>Add or remove newline between C++11 lambda signature and '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_cpp_ldef_brace=ignore|nl_cpp_ldef_brace=add|nl_cpp_ldef_brace=remove|nl_cpp_ldef_brace=force|nl_cpp_ldef_brace=not_defined
+ChoicesReadable="Ignore Nl Cpp Ldef Brace|Add Nl Cpp Ldef Brace|Remove Nl Cpp Ldef Brace|Force Nl Cpp Ldef Brace"
+ValueDefault=ignore
+
+[Nl Return Expr]
+Category=3
+Description="<html>Add or remove newline between 'return' and the return expression.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_return_expr=ignore|nl_return_expr=add|nl_return_expr=remove|nl_return_expr=force|nl_return_expr=not_defined
+ChoicesReadable="Ignore Nl Return Expr|Add Nl Return Expr|Remove Nl Return Expr|Force Nl Return Expr"
+ValueDefault=ignore
+
+[Nl After Semicolon]
+Category=3
+Description="<html>Whether to add a newline after semicolons, except in 'for' statements.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_after_semicolon=true|nl_after_semicolon=false
+ValueDefault=false
+
+[Nl Paren Dbrace Open]
+Category=3
+Description="<html>(Java) Add or remove newline between the ')' and '{{' of the double brace<br/>initializer.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_paren_dbrace_open=ignore|nl_paren_dbrace_open=add|nl_paren_dbrace_open=remove|nl_paren_dbrace_open=force|nl_paren_dbrace_open=not_defined
+ChoicesReadable="Ignore Nl Paren Dbrace Open|Add Nl Paren Dbrace Open|Remove Nl Paren Dbrace Open|Force Nl Paren Dbrace Open"
+ValueDefault=ignore
+
+[Nl Type Brace Init Lst]
+Category=3
+Description="<html>Whether to add a newline after the type in an unnamed temporary<br/>direct-list-initialization, better:<br/>before a direct-list-initialization.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_type_brace_init_lst=ignore|nl_type_brace_init_lst=add|nl_type_brace_init_lst=remove|nl_type_brace_init_lst=force|nl_type_brace_init_lst=not_defined
+ChoicesReadable="Ignore Nl Type Brace Init Lst|Add Nl Type Brace Init Lst|Remove Nl Type Brace Init Lst|Force Nl Type Brace Init Lst"
+ValueDefault=ignore
+
+[Nl Type Brace Init Lst Open]
+Category=3
+Description="<html>Whether to add a newline after the open brace in an unnamed temporary<br/>direct-list-initialization.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_type_brace_init_lst_open=ignore|nl_type_brace_init_lst_open=add|nl_type_brace_init_lst_open=remove|nl_type_brace_init_lst_open=force|nl_type_brace_init_lst_open=not_defined
+ChoicesReadable="Ignore Nl Type Brace Init Lst Open|Add Nl Type Brace Init Lst Open|Remove Nl Type Brace Init Lst Open|Force Nl Type Brace Init Lst Open"
+ValueDefault=ignore
+
+[Nl Type Brace Init Lst Close]
+Category=3
+Description="<html>Whether to add a newline before the close brace in an unnamed temporary<br/>direct-list-initialization.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_type_brace_init_lst_close=ignore|nl_type_brace_init_lst_close=add|nl_type_brace_init_lst_close=remove|nl_type_brace_init_lst_close=force|nl_type_brace_init_lst_close=not_defined
+ChoicesReadable="Ignore Nl Type Brace Init Lst Close|Add Nl Type Brace Init Lst Close|Remove Nl Type Brace Init Lst Close|Force Nl Type Brace Init Lst Close"
+ValueDefault=ignore
+
+[Nl Before Brace Open]
+Category=3
+Description="<html>Whether to add a newline before '{'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_before_brace_open=true|nl_before_brace_open=false
+ValueDefault=false
+
+[Nl After Brace Open]
+Category=3
+Description="<html>Whether to add a newline after '{'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_after_brace_open=true|nl_after_brace_open=false
+ValueDefault=false
+
+[Nl After Brace Open Cmt]
+Category=3
+Description="<html>Whether to add a newline between the open brace and a trailing single-line<br/>comment. Requires nl_after_brace_open=true.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_after_brace_open_cmt=true|nl_after_brace_open_cmt=false
+ValueDefault=false
+
+[Nl After Vbrace Open]
+Category=3
+Description="<html>Whether to add a newline after a virtual brace open with a non-empty body.<br/>These occur in un-braced if/while/do/for statement bodies.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_after_vbrace_open=true|nl_after_vbrace_open=false
+ValueDefault=false
+
+[Nl After Vbrace Open Empty]
+Category=3
+Description="<html>Whether to add a newline after a virtual brace open with an empty body.<br/>These occur in un-braced if/while/do/for statement bodies.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_after_vbrace_open_empty=true|nl_after_vbrace_open_empty=false
+ValueDefault=false
+
+[Nl After Brace Close]
+Category=3
+Description="<html>Whether to add a newline after '}'. Does not apply if followed by a<br/>necessary ';'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_after_brace_close=true|nl_after_brace_close=false
+ValueDefault=false
+
+[Nl After Vbrace Close]
+Category=3
+Description="<html>Whether to add a newline after a virtual brace close,<br/>as in 'if (foo) a++; &lt;here&gt; return;'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_after_vbrace_close=true|nl_after_vbrace_close=false
+ValueDefault=false
+
+[Nl Brace Struct Var]
+Category=3
+Description="<html>Add or remove newline between the close brace and identifier,<br/>as in 'struct { int a; } &lt;here&gt; b;'. Affects enumerations, unions and<br/>structures. If set to ignore, uses nl_after_brace_close.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_brace_struct_var=ignore|nl_brace_struct_var=add|nl_brace_struct_var=remove|nl_brace_struct_var=force|nl_brace_struct_var=not_defined
+ChoicesReadable="Ignore Nl Brace Struct Var|Add Nl Brace Struct Var|Remove Nl Brace Struct Var|Force Nl Brace Struct Var"
+ValueDefault=ignore
+
+[Nl Define Macro]
+Category=3
+Description="<html>Whether to alter newlines in '#define' macros.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_define_macro=true|nl_define_macro=false
+ValueDefault=false
+
+[Nl Squeeze Paren Close]
+Category=3
+Description="<html>Whether to alter newlines between consecutive parenthesis closes. The number<br/>of closing parentheses in a line will depend on respective open parenthesis<br/>lines.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_squeeze_paren_close=true|nl_squeeze_paren_close=false
+ValueDefault=false
+
+[Nl Squeeze Ifdef]
+Category=3
+Description="<html>Whether to remove blanks after '#ifxx' and '#elxx', or before '#elxx' and<br/>'#endif'. Does not affect top-level #ifdefs.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_squeeze_ifdef=true|nl_squeeze_ifdef=false
+ValueDefault=false
+
+[Nl Squeeze Ifdef Top Level]
+Category=3
+Description="<html>Makes the nl_squeeze_ifdef option affect the top-level #ifdefs as well.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_squeeze_ifdef_top_level=true|nl_squeeze_ifdef_top_level=false
+ValueDefault=false
+
+[Nl Before If]
+Category=3
+Description="<html>Add or remove blank line before 'if'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_before_if=ignore|nl_before_if=add|nl_before_if=remove|nl_before_if=force|nl_before_if=not_defined
+ChoicesReadable="Ignore Nl Before If|Add Nl Before If|Remove Nl Before If|Force Nl Before If"
+ValueDefault=ignore
+
+[Nl After If]
+Category=3
+Description="<html>Add or remove blank line after 'if' statement. Add/Force work only if the<br/>next token is not a closing brace.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_after_if=ignore|nl_after_if=add|nl_after_if=remove|nl_after_if=force|nl_after_if=not_defined
+ChoicesReadable="Ignore Nl After If|Add Nl After If|Remove Nl After If|Force Nl After If"
+ValueDefault=ignore
+
+[Nl Before For]
+Category=3
+Description="<html>Add or remove blank line before 'for'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_before_for=ignore|nl_before_for=add|nl_before_for=remove|nl_before_for=force|nl_before_for=not_defined
+ChoicesReadable="Ignore Nl Before For|Add Nl Before For|Remove Nl Before For|Force Nl Before For"
+ValueDefault=ignore
+
+[Nl After For]
+Category=3
+Description="<html>Add or remove blank line after 'for' statement.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_after_for=ignore|nl_after_for=add|nl_after_for=remove|nl_after_for=force|nl_after_for=not_defined
+ChoicesReadable="Ignore Nl After For|Add Nl After For|Remove Nl After For|Force Nl After For"
+ValueDefault=ignore
+
+[Nl Before While]
+Category=3
+Description="<html>Add or remove blank line before 'while'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_before_while=ignore|nl_before_while=add|nl_before_while=remove|nl_before_while=force|nl_before_while=not_defined
+ChoicesReadable="Ignore Nl Before While|Add Nl Before While|Remove Nl Before While|Force Nl Before While"
+ValueDefault=ignore
+
+[Nl After While]
+Category=3
+Description="<html>Add or remove blank line after 'while' statement.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_after_while=ignore|nl_after_while=add|nl_after_while=remove|nl_after_while=force|nl_after_while=not_defined
+ChoicesReadable="Ignore Nl After While|Add Nl After While|Remove Nl After While|Force Nl After While"
+ValueDefault=ignore
+
+[Nl Before Switch]
+Category=3
+Description="<html>Add or remove blank line before 'switch'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_before_switch=ignore|nl_before_switch=add|nl_before_switch=remove|nl_before_switch=force|nl_before_switch=not_defined
+ChoicesReadable="Ignore Nl Before Switch|Add Nl Before Switch|Remove Nl Before Switch|Force Nl Before Switch"
+ValueDefault=ignore
+
+[Nl After Switch]
+Category=3
+Description="<html>Add or remove blank line after 'switch' statement.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_after_switch=ignore|nl_after_switch=add|nl_after_switch=remove|nl_after_switch=force|nl_after_switch=not_defined
+ChoicesReadable="Ignore Nl After Switch|Add Nl After Switch|Remove Nl After Switch|Force Nl After Switch"
+ValueDefault=ignore
+
+[Nl Before Synchronized]
+Category=3
+Description="<html>Add or remove blank line before 'synchronized'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_before_synchronized=ignore|nl_before_synchronized=add|nl_before_synchronized=remove|nl_before_synchronized=force|nl_before_synchronized=not_defined
+ChoicesReadable="Ignore Nl Before Synchronized|Add Nl Before Synchronized|Remove Nl Before Synchronized|Force Nl Before Synchronized"
+ValueDefault=ignore
+
+[Nl After Synchronized]
+Category=3
+Description="<html>Add or remove blank line after 'synchronized' statement.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_after_synchronized=ignore|nl_after_synchronized=add|nl_after_synchronized=remove|nl_after_synchronized=force|nl_after_synchronized=not_defined
+ChoicesReadable="Ignore Nl After Synchronized|Add Nl After Synchronized|Remove Nl After Synchronized|Force Nl After Synchronized"
+ValueDefault=ignore
+
+[Nl Before Do]
+Category=3
+Description="<html>Add or remove blank line before 'do'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_before_do=ignore|nl_before_do=add|nl_before_do=remove|nl_before_do=force|nl_before_do=not_defined
+ChoicesReadable="Ignore Nl Before Do|Add Nl Before Do|Remove Nl Before Do|Force Nl Before Do"
+ValueDefault=ignore
+
+[Nl After Do]
+Category=3
+Description="<html>Add or remove blank line after 'do/while' statement.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_after_do=ignore|nl_after_do=add|nl_after_do=remove|nl_after_do=force|nl_after_do=not_defined
+ChoicesReadable="Ignore Nl After Do|Add Nl After Do|Remove Nl After Do|Force Nl After Do"
+ValueDefault=ignore
+
+[Nl Before Ignore After Case]
+Category=3
+Description="<html>Ignore nl_before_{if,for,switch,do,synchronized} if the control<br/>statement is immediately after a case statement.<br/>if nl_before_{if,for,switch,do} is set to remove, this option<br/>does nothing.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_before_ignore_after_case=true|nl_before_ignore_after_case=false
+ValueDefault=false
+
+[Nl Before Return]
+Category=3
+Description="<html>Whether to put a blank line before 'return' statements, unless after an open<br/>brace.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_before_return=true|nl_before_return=false
+ValueDefault=false
+
+[Nl After Return]
+Category=3
+Description="<html>Whether to put a blank line after 'return' statements, unless followed by a<br/>close brace.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_after_return=true|nl_after_return=false
+ValueDefault=false
+
+[Nl Before Member]
+Category=3
+Description="<html>Whether to put a blank line before a member '.' or '-&gt;' operators.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_before_member=ignore|nl_before_member=add|nl_before_member=remove|nl_before_member=force|nl_before_member=not_defined
+ChoicesReadable="Ignore Nl Before Member|Add Nl Before Member|Remove Nl Before Member|Force Nl Before Member"
+ValueDefault=ignore
+
+[Nl After Member]
+Category=3
+Description="<html>(Java) Whether to put a blank line after a member '.' or '-&gt;' operators.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_after_member=ignore|nl_after_member=add|nl_after_member=remove|nl_after_member=force|nl_after_member=not_defined
+ChoicesReadable="Ignore Nl After Member|Add Nl After Member|Remove Nl After Member|Force Nl After Member"
+ValueDefault=ignore
+
+[Nl Ds Struct Enum Cmt]
+Category=3
+Description="<html>Whether to double-space commented-entries in 'struct'/'union'/'enum'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_ds_struct_enum_cmt=true|nl_ds_struct_enum_cmt=false
+ValueDefault=false
+
+[Nl Ds Struct Enum Close Brace]
+Category=3
+Description="<html>Whether to force a newline before '}' of a 'struct'/'union'/'enum'.<br/>(Lower priority than eat_blanks_before_close_brace.)</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_ds_struct_enum_close_brace=true|nl_ds_struct_enum_close_brace=false
+ValueDefault=false
+
+[Nl Class Colon]
+Category=3
+Description="<html>Add or remove newline before or after (depending on pos_class_colon) a class<br/>colon, as in 'class Foo &lt;here&gt; : &lt;or here&gt; public Bar'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_class_colon=ignore|nl_class_colon=add|nl_class_colon=remove|nl_class_colon=force|nl_class_colon=not_defined
+ChoicesReadable="Ignore Nl Class Colon|Add Nl Class Colon|Remove Nl Class Colon|Force Nl Class Colon"
+ValueDefault=ignore
+
+[Nl Constr Colon]
+Category=3
+Description="<html>Add or remove newline around a class constructor colon. The exact position<br/>depends on nl_constr_init_args, pos_constr_colon and pos_constr_comma.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_constr_colon=ignore|nl_constr_colon=add|nl_constr_colon=remove|nl_constr_colon=force|nl_constr_colon=not_defined
+ChoicesReadable="Ignore Nl Constr Colon|Add Nl Constr Colon|Remove Nl Constr Colon|Force Nl Constr Colon"
+ValueDefault=ignore
+
+[Nl Namespace Two To One Liner]
+Category=3
+Description="<html>Whether to collapse a two-line namespace, like 'namespace foo\n{ decl; }'<br/>into a single line. If true, prevents other brace newline rules from turning<br/>such code into four lines. If true, it also preserves one-liner namespaces.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_namespace_two_to_one_liner=true|nl_namespace_two_to_one_liner=false
+ValueDefault=false
+
+[Nl Create If One Liner]
+Category=3
+Description="<html>Whether to remove a newline in simple unbraced if statements, turning them<br/>into one-liners, as in 'if(b)\n i++;' =&gt; 'if(b) i++;'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_create_if_one_liner=true|nl_create_if_one_liner=false
+ValueDefault=false
+
+[Nl Create For One Liner]
+Category=3
+Description="<html>Whether to remove a newline in simple unbraced for statements, turning them<br/>into one-liners, as in 'for (...)\n stmt;' =&gt; 'for (...) stmt;'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_create_for_one_liner=true|nl_create_for_one_liner=false
+ValueDefault=false
+
+[Nl Create While One Liner]
+Category=3
+Description="<html>Whether to remove a newline in simple unbraced while statements, turning<br/>them into one-liners, as in 'while (expr)\n stmt;' =&gt; 'while (expr) stmt;'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_create_while_one_liner=true|nl_create_while_one_liner=false
+ValueDefault=false
+
+[Nl Create Func Def One Liner]
+Category=3
+Description="<html>Whether to collapse a function definition whose body (not counting braces)<br/>is only one line so that the entire definition (prototype, braces, body) is<br/>a single line.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_create_func_def_one_liner=true|nl_create_func_def_one_liner=false
+ValueDefault=false
+
+[Nl Create List One Liner]
+Category=3
+Description="<html>Whether to split one-line simple list definitions into three lines by<br/>adding newlines, as in 'int a[12] = { &lt;here&gt; 0 &lt;here&gt; };'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_create_list_one_liner=true|nl_create_list_one_liner=false
+ValueDefault=false
+
+[Nl Split If One Liner]
+Category=3
+Description="<html>Whether to split one-line simple unbraced if statements into two lines by<br/>adding a newline, as in 'if(b) &lt;here&gt; i++;'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_split_if_one_liner=true|nl_split_if_one_liner=false
+ValueDefault=false
+
+[Nl Split For One Liner]
+Category=3
+Description="<html>Whether to split one-line simple unbraced for statements into two lines by<br/>adding a newline, as in 'for (...) &lt;here&gt; stmt;'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_split_for_one_liner=true|nl_split_for_one_liner=false
+ValueDefault=false
+
+[Nl Split While One Liner]
+Category=3
+Description="<html>Whether to split one-line simple unbraced while statements into two lines by<br/>adding a newline, as in 'while (expr) &lt;here&gt; stmt;'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_split_while_one_liner=true|nl_split_while_one_liner=false
+ValueDefault=false
+
+[Donot Add Nl Before Cpp Comment]
+Category=3
+Description="<html>Don't add a newline before a cpp-comment in a parameter list of a function<br/>call.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=donot_add_nl_before_cpp_comment=true|donot_add_nl_before_cpp_comment=false
+ValueDefault=false
+
+[Nl Max]
+Category=4
+Description="<html>The maximum number of consecutive newlines (3 = 2 blank lines).</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_max="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Max Blank In Func]
+Category=4
+Description="<html>The maximum number of consecutive newlines in a function.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_max_blank_in_func="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Inside Empty Func]
+Category=4
+Description="<html>The number of newlines inside an empty function body.<br/>This option overrides eat_blanks_after_open_brace and<br/>eat_blanks_before_close_brace, but is ignored when<br/>nl_collapse_empty_body=true</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_inside_empty_func="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Before Func Body Proto]
+Category=4
+Description="<html>The number of newlines before a function prototype.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_before_func_body_proto="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Before Func Body Def]
+Category=4
+Description="<html>The number of newlines before a multi-line function definition. Where<br/>applicable, this option is overridden with eat_blanks_after_open_brace=true</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_before_func_body_def="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Before Func Class Proto]
+Category=4
+Description="<html>The number of newlines before a class constructor/destructor prototype.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_before_func_class_proto="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Before Func Class Def]
+Category=4
+Description="<html>The number of newlines before a class constructor/destructor definition.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_before_func_class_def="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl After Func Proto]
+Category=4
+Description="<html>The number of newlines after a function prototype.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_after_func_proto="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl After Func Proto Group]
+Category=4
+Description="<html>The number of newlines after a function prototype, if not followed by<br/>another function prototype.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_after_func_proto_group="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl After Func Class Proto]
+Category=4
+Description="<html>The number of newlines after a class constructor/destructor prototype.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_after_func_class_proto="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl After Func Class Proto Group]
+Category=4
+Description="<html>The number of newlines after a class constructor/destructor prototype,<br/>if not followed by another constructor/destructor prototype.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_after_func_class_proto_group="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Class Leave One Liner Groups]
+Category=4
+Description="<html>Whether one-line method definitions inside a class body should be treated<br/>as if they were prototypes for the purposes of adding newlines.<br/><br/>Requires nl_class_leave_one_liners=true. Overrides nl_before_func_body_def<br/>and nl_before_func_class_def for one-liners.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_class_leave_one_liner_groups=true|nl_class_leave_one_liner_groups=false
+ValueDefault=false
+
+[Nl After Func Body]
+Category=4
+Description="<html>The number of newlines after '}' of a multi-line function body.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_after_func_body="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl After Func Body Class]
+Category=4
+Description="<html>The number of newlines after '}' of a multi-line function body in a class<br/>declaration. Also affects class constructors/destructors.<br/><br/>Overrides nl_after_func_body.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_after_func_body_class="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl After Func Body One Liner]
+Category=4
+Description="<html>The number of newlines after '}' of a single line function body. Also<br/>affects class constructors/destructors.<br/><br/>Overrides nl_after_func_body and nl_after_func_body_class.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_after_func_body_one_liner="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Func Var Def Blk]
+Category=4
+Description="<html>The number of blank lines after a block of variable definitions at the top<br/>of a function body.<br/><br/>0: No change (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_func_var_def_blk="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Typedef Blk Start]
+Category=4
+Description="<html>The number of newlines before a block of typedefs. If nl_after_access_spec<br/>is non-zero, that option takes precedence.<br/><br/>0: No change (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_typedef_blk_start="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Typedef Blk End]
+Category=4
+Description="<html>The number of newlines after a block of typedefs.<br/><br/>0: No change (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_typedef_blk_end="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Typedef Blk In]
+Category=4
+Description="<html>The maximum number of consecutive newlines within a block of typedefs.<br/><br/>0: No change (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_typedef_blk_in="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Var Def Blk Start]
+Category=4
+Description="<html>The number of empty newlines before a block of variable definitions<br/>not at the top of a function body. If nl_after_access_spec is non-zero,<br/>that option takes precedence.<br/><br/>0: No change (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_var_def_blk_start="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Var Def Blk End]
+Category=4
+Description="<html>The number of empty newlines after a block of variable definitions<br/>not at the top of a function body.<br/><br/>0: No change (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_var_def_blk_end="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Var Def Blk In]
+Category=4
+Description="<html>The maximum number of consecutive newlines within a block of variable<br/>definitions.<br/><br/>0: No change (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_var_def_blk_in="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Before Block Comment]
+Category=4
+Description="<html>The minimum number of newlines before a multi-line comment.<br/>Doesn't apply if after a brace open or another multi-line comment.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_before_block_comment="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Before C Comment]
+Category=4
+Description="<html>The minimum number of newlines before a single-line C comment.<br/>Doesn't apply if after a brace open or other single-line C comments.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_before_c_comment="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Before Cpp Comment]
+Category=4
+Description="<html>The minimum number of newlines before a CPP comment.<br/>Doesn't apply if after a brace open or other CPP comments.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_before_cpp_comment="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl After Multiline Comment]
+Category=4
+Description="<html>Whether to force a newline after a multi-line comment.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_after_multiline_comment=true|nl_after_multiline_comment=false
+ValueDefault=false
+
+[Nl After Label Colon]
+Category=4
+Description="<html>Whether to force a newline after a label's colon.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=nl_after_label_colon=true|nl_after_label_colon=false
+ValueDefault=false
+
+[Nl Before Struct]
+Category=4
+Description="<html>The number of newlines before a struct definition.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_before_struct="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl After Struct]
+Category=4
+Description="<html>The number of newlines after '}' or ';' of a struct/enum/union definition.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_after_struct="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Before Class]
+Category=4
+Description="<html>The number of newlines before a class definition.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_before_class="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl After Class]
+Category=4
+Description="<html>The number of newlines after '}' or ';' of a class definition.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_after_class="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Before Namespace]
+Category=4
+Description="<html>The number of newlines before a namespace.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_before_namespace="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Inside Namespace]
+Category=4
+Description="<html>The number of newlines after '{' of a namespace. This also adds newlines<br/>before the matching '}'.<br/><br/>0: Apply eat_blanks_after_open_brace or eat_blanks_before_close_brace if<br/> applicable, otherwise no change.<br/><br/>Overrides eat_blanks_after_open_brace and eat_blanks_before_close_brace.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_inside_namespace="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl After Namespace]
+Category=4
+Description="<html>The number of newlines after '}' of a namespace.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_after_namespace="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Before Access Spec]
+Category=4
+Description="<html>The number of newlines before an access specifier label. This also includes<br/>the Qt-specific 'signals:' and 'slots:'. Will not change the newline count<br/>if after a brace open.<br/><br/>0: No change (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_before_access_spec="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl After Access Spec]
+Category=4
+Description="<html>The number of newlines after an access specifier label. This also includes<br/>the Qt-specific 'signals:' and 'slots:'. Will not change the newline count<br/>if after a brace open.<br/><br/>0: No change (default).<br/><br/>Overrides nl_typedef_blk_start and nl_var_def_blk_start.</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_after_access_spec="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Comment Func Def]
+Category=4
+Description="<html>The number of newlines between a function definition and the function<br/>comment, as in '// comment\n &lt;here&gt; void foo() {...}'.<br/><br/>0: No change (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_comment_func_def="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl After Try Catch Finally]
+Category=4
+Description="<html>The number of newlines after a try-catch-finally block that isn't followed<br/>by a brace close.<br/><br/>0: No change (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_after_try_catch_finally="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Around Cs Property]
+Category=4
+Description="<html>(C#) The number of newlines before and after a property, indexer or event<br/>declaration.<br/><br/>0: No change (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_around_cs_property="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Between Get Set]
+Category=4
+Description="<html>(C#) The number of newlines between the get/set/add/remove handlers.<br/><br/>0: No change (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_between_get_set="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Property Brace]
+Category=4
+Description="<html>(C#) Add or remove newline between property and the '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_property_brace=ignore|nl_property_brace=add|nl_property_brace=remove|nl_property_brace=force|nl_property_brace=not_defined
+ChoicesReadable="Ignore Nl Property Brace|Add Nl Property Brace|Remove Nl Property Brace|Force Nl Property Brace"
+ValueDefault=ignore
+
+[Eat Blanks After Open Brace]
+Category=4
+Description="<html>Whether to remove blank lines after '{'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=eat_blanks_after_open_brace=true|eat_blanks_after_open_brace=false
+ValueDefault=false
+
+[Eat Blanks Before Close Brace]
+Category=4
+Description="<html>Whether to remove blank lines before '}'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=eat_blanks_before_close_brace=true|eat_blanks_before_close_brace=false
+ValueDefault=false
+
+[Nl Remove Extra Newlines]
+Category=4
+Description="<html>How aggressively to remove extra newlines not in preprocessor.<br/><br/>0: No change (default)<br/>1: Remove most newlines not handled by other config<br/>2: Remove all newlines and reformat completely by config</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_remove_extra_newlines="
+MinVal=0
+MaxVal=2
+ValueDefault=0
+
+[Nl After Annotation]
+Category=4
+Description="<html>(Java) Add or remove newline after an annotation statement. Only affects<br/>annotations that are after a newline.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_after_annotation=ignore|nl_after_annotation=add|nl_after_annotation=remove|nl_after_annotation=force|nl_after_annotation=not_defined
+ChoicesReadable="Ignore Nl After Annotation|Add Nl After Annotation|Remove Nl After Annotation|Force Nl After Annotation"
+ValueDefault=ignore
+
+[Nl Between Annotation]
+Category=4
+Description="<html>(Java) Add or remove newline between two annotations.</html>"
+Enabled=false
+EditorType=multiple
+Choices=nl_between_annotation=ignore|nl_between_annotation=add|nl_between_annotation=remove|nl_between_annotation=force|nl_between_annotation=not_defined
+ChoicesReadable="Ignore Nl Between Annotation|Add Nl Between Annotation|Remove Nl Between Annotation|Force Nl Between Annotation"
+ValueDefault=ignore
+
+[Nl Before Whole File Ifdef]
+Category=4
+Description="<html>The number of newlines before a whole-file #ifdef.<br/><br/>0: No change (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_before_whole_file_ifdef="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl After Whole File Ifdef]
+Category=4
+Description="<html>The number of newlines after a whole-file #ifdef.<br/><br/>0: No change (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_after_whole_file_ifdef="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl Before Whole File Endif]
+Category=4
+Description="<html>The number of newlines before a whole-file #endif.<br/><br/>0: No change (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_before_whole_file_endif="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Nl After Whole File Endif]
+Category=4
+Description="<html>The number of newlines after a whole-file #endif.<br/><br/>0: No change (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="nl_after_whole_file_endif="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Pos Arith]
+Category=5
+Description="<html>The position of arithmetic operators in wrapped expressions.</html>"
+Enabled=false
+EditorType=multiple
+Choices=pos_arith=ignore|pos_arith=break|pos_arith=force|pos_arith=lead|pos_arith=trail|pos_arith=join|pos_arith=lead_break|pos_arith=lead_force|pos_arith=trail_break|pos_arith=trail_force
+ChoicesReadable="Ignore Pos Arith|Break Pos Arith|Force Pos Arith|Lead Pos Arith|Trail Pos Arith|Join Pos Arith|Lead Break Pos Arith|Lead Force Pos Arith|Trail Break Pos Arith|Trail Force Pos Arith"
+ValueDefault=ignore
+
+[Pos Assign]
+Category=5
+Description="<html>The position of assignment in wrapped expressions. Do not affect '='<br/>followed by '{'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=pos_assign=ignore|pos_assign=break|pos_assign=force|pos_assign=lead|pos_assign=trail|pos_assign=join|pos_assign=lead_break|pos_assign=lead_force|pos_assign=trail_break|pos_assign=trail_force
+ChoicesReadable="Ignore Pos Assign|Break Pos Assign|Force Pos Assign|Lead Pos Assign|Trail Pos Assign|Join Pos Assign|Lead Break Pos Assign|Lead Force Pos Assign|Trail Break Pos Assign|Trail Force Pos Assign"
+ValueDefault=ignore
+
+[Pos Bool]
+Category=5
+Description="<html>The position of Boolean operators in wrapped expressions.</html>"
+Enabled=false
+EditorType=multiple
+Choices=pos_bool=ignore|pos_bool=break|pos_bool=force|pos_bool=lead|pos_bool=trail|pos_bool=join|pos_bool=lead_break|pos_bool=lead_force|pos_bool=trail_break|pos_bool=trail_force
+ChoicesReadable="Ignore Pos Bool|Break Pos Bool|Force Pos Bool|Lead Pos Bool|Trail Pos Bool|Join Pos Bool|Lead Break Pos Bool|Lead Force Pos Bool|Trail Break Pos Bool|Trail Force Pos Bool"
+ValueDefault=ignore
+
+[Pos Compare]
+Category=5
+Description="<html>The position of comparison operators in wrapped expressions.</html>"
+Enabled=false
+EditorType=multiple
+Choices=pos_compare=ignore|pos_compare=break|pos_compare=force|pos_compare=lead|pos_compare=trail|pos_compare=join|pos_compare=lead_break|pos_compare=lead_force|pos_compare=trail_break|pos_compare=trail_force
+ChoicesReadable="Ignore Pos Compare|Break Pos Compare|Force Pos Compare|Lead Pos Compare|Trail Pos Compare|Join Pos Compare|Lead Break Pos Compare|Lead Force Pos Compare|Trail Break Pos Compare|Trail Force Pos Compare"
+ValueDefault=ignore
+
+[Pos Conditional]
+Category=5
+Description="<html>The position of conditional operators, as in the '?' and ':' of<br/>'expr ? stmt : stmt', in wrapped expressions.</html>"
+Enabled=false
+EditorType=multiple
+Choices=pos_conditional=ignore|pos_conditional=break|pos_conditional=force|pos_conditional=lead|pos_conditional=trail|pos_conditional=join|pos_conditional=lead_break|pos_conditional=lead_force|pos_conditional=trail_break|pos_conditional=trail_force
+ChoicesReadable="Ignore Pos Conditional|Break Pos Conditional|Force Pos Conditional|Lead Pos Conditional|Trail Pos Conditional|Join Pos Conditional|Lead Break Pos Conditional|Lead Force Pos Conditional|Trail Break Pos Conditional|Trail Force Pos Conditional"
+ValueDefault=ignore
+
+[Pos Comma]
+Category=5
+Description="<html>The position of the comma in wrapped expressions.</html>"
+Enabled=false
+EditorType=multiple
+Choices=pos_comma=ignore|pos_comma=break|pos_comma=force|pos_comma=lead|pos_comma=trail|pos_comma=join|pos_comma=lead_break|pos_comma=lead_force|pos_comma=trail_break|pos_comma=trail_force
+ChoicesReadable="Ignore Pos Comma|Break Pos Comma|Force Pos Comma|Lead Pos Comma|Trail Pos Comma|Join Pos Comma|Lead Break Pos Comma|Lead Force Pos Comma|Trail Break Pos Comma|Trail Force Pos Comma"
+ValueDefault=ignore
+
+[Pos Enum Comma]
+Category=5
+Description="<html>The position of the comma in enum entries.</html>"
+Enabled=false
+EditorType=multiple
+Choices=pos_enum_comma=ignore|pos_enum_comma=break|pos_enum_comma=force|pos_enum_comma=lead|pos_enum_comma=trail|pos_enum_comma=join|pos_enum_comma=lead_break|pos_enum_comma=lead_force|pos_enum_comma=trail_break|pos_enum_comma=trail_force
+ChoicesReadable="Ignore Pos Enum Comma|Break Pos Enum Comma|Force Pos Enum Comma|Lead Pos Enum Comma|Trail Pos Enum Comma|Join Pos Enum Comma|Lead Break Pos Enum Comma|Lead Force Pos Enum Comma|Trail Break Pos Enum Comma|Trail Force Pos Enum Comma"
+ValueDefault=ignore
+
+[Pos Class Comma]
+Category=5
+Description="<html>The position of the comma in the base class list if there is more than one<br/>line. Affects nl_class_init_args.</html>"
+Enabled=false
+EditorType=multiple
+Choices=pos_class_comma=ignore|pos_class_comma=break|pos_class_comma=force|pos_class_comma=lead|pos_class_comma=trail|pos_class_comma=join|pos_class_comma=lead_break|pos_class_comma=lead_force|pos_class_comma=trail_break|pos_class_comma=trail_force
+ChoicesReadable="Ignore Pos Class Comma|Break Pos Class Comma|Force Pos Class Comma|Lead Pos Class Comma|Trail Pos Class Comma|Join Pos Class Comma|Lead Break Pos Class Comma|Lead Force Pos Class Comma|Trail Break Pos Class Comma|Trail Force Pos Class Comma"
+ValueDefault=ignore
+
+[Pos Constr Comma]
+Category=5
+Description="<html>The position of the comma in the constructor initialization list.<br/>Related to nl_constr_colon, nl_constr_init_args and pos_constr_colon.</html>"
+Enabled=false
+EditorType=multiple
+Choices=pos_constr_comma=ignore|pos_constr_comma=break|pos_constr_comma=force|pos_constr_comma=lead|pos_constr_comma=trail|pos_constr_comma=join|pos_constr_comma=lead_break|pos_constr_comma=lead_force|pos_constr_comma=trail_break|pos_constr_comma=trail_force
+ChoicesReadable="Ignore Pos Constr Comma|Break Pos Constr Comma|Force Pos Constr Comma|Lead Pos Constr Comma|Trail Pos Constr Comma|Join Pos Constr Comma|Lead Break Pos Constr Comma|Lead Force Pos Constr Comma|Trail Break Pos Constr Comma|Trail Force Pos Constr Comma"
+ValueDefault=ignore
+
+[Pos Class Colon]
+Category=5
+Description="<html>The position of trailing/leading class colon, between class and base class<br/>list. Affects nl_class_colon.</html>"
+Enabled=false
+EditorType=multiple
+Choices=pos_class_colon=ignore|pos_class_colon=break|pos_class_colon=force|pos_class_colon=lead|pos_class_colon=trail|pos_class_colon=join|pos_class_colon=lead_break|pos_class_colon=lead_force|pos_class_colon=trail_break|pos_class_colon=trail_force
+ChoicesReadable="Ignore Pos Class Colon|Break Pos Class Colon|Force Pos Class Colon|Lead Pos Class Colon|Trail Pos Class Colon|Join Pos Class Colon|Lead Break Pos Class Colon|Lead Force Pos Class Colon|Trail Break Pos Class Colon|Trail Force Pos Class Colon"
+ValueDefault=ignore
+
+[Pos Constr Colon]
+Category=5
+Description="<html>The position of colons between constructor and member initialization.<br/>Related to nl_constr_colon, nl_constr_init_args and pos_constr_comma.</html>"
+Enabled=false
+EditorType=multiple
+Choices=pos_constr_colon=ignore|pos_constr_colon=break|pos_constr_colon=force|pos_constr_colon=lead|pos_constr_colon=trail|pos_constr_colon=join|pos_constr_colon=lead_break|pos_constr_colon=lead_force|pos_constr_colon=trail_break|pos_constr_colon=trail_force
+ChoicesReadable="Ignore Pos Constr Colon|Break Pos Constr Colon|Force Pos Constr Colon|Lead Pos Constr Colon|Trail Pos Constr Colon|Join Pos Constr Colon|Lead Break Pos Constr Colon|Lead Force Pos Constr Colon|Trail Break Pos Constr Colon|Trail Force Pos Constr Colon"
+ValueDefault=ignore
+
+[Pos Shift]
+Category=5
+Description="<html>The position of shift operators in wrapped expressions.</html>"
+Enabled=false
+EditorType=multiple
+Choices=pos_shift=ignore|pos_shift=break|pos_shift=force|pos_shift=lead|pos_shift=trail|pos_shift=join|pos_shift=lead_break|pos_shift=lead_force|pos_shift=trail_break|pos_shift=trail_force
+ChoicesReadable="Ignore Pos Shift|Break Pos Shift|Force Pos Shift|Lead Pos Shift|Trail Pos Shift|Join Pos Shift|Lead Break Pos Shift|Lead Force Pos Shift|Trail Break Pos Shift|Trail Force Pos Shift"
+ValueDefault=ignore
+
+[Code Width]
+Category=6
+Description="<html>Try to limit code width to N columns.</html>"
+Enabled=false
+EditorType=numeric
+CallName="code_width="
+MinVal=0
+MaxVal=10000
+ValueDefault=0
+
+[Ls For Split Full]
+Category=6
+Description="<html>Whether to fully split long 'for' statements at semi-colons.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=ls_for_split_full=true|ls_for_split_full=false
+ValueDefault=false
+
+[Ls Func Split Full]
+Category=6
+Description="<html>Whether to fully split long function prototypes/calls at commas.<br/>The option ls_code_width has priority over the option ls_func_split_full.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=ls_func_split_full=true|ls_func_split_full=false
+ValueDefault=false
+
+[Ls Code Width]
+Category=6
+Description="<html>Whether to split lines as close to code_width as possible and ignore some<br/>groupings.<br/>The option ls_code_width has priority over the option ls_func_split_full.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=ls_code_width=true|ls_code_width=false
+ValueDefault=false
+
+[Align Keep Tabs]
+Category=7
+Description="<html>Whether to keep non-indenting tabs.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_keep_tabs=true|align_keep_tabs=false
+ValueDefault=false
+
+[Align With Tabs]
+Category=7
+Description="<html>Whether to use tabs for aligning.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_with_tabs=true|align_with_tabs=false
+ValueDefault=false
+
+[Align On Tabstop]
+Category=7
+Description="<html>Whether to bump out to the next tab when aligning.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_on_tabstop=true|align_on_tabstop=false
+ValueDefault=false
+
+[Align Number Right]
+Category=7
+Description="<html>Whether to right-align numbers.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_number_right=true|align_number_right=false
+ValueDefault=false
+
+[Align Keep Extra Space]
+Category=7
+Description="<html>Whether to keep whitespace not required for alignment.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_keep_extra_space=true|align_keep_extra_space=false
+ValueDefault=false
+
+[Align Func Params]
+Category=7
+Description="<html>Whether to align variable definitions in prototypes and functions.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_func_params=true|align_func_params=false
+ValueDefault=false
+
+[Align Func Params Span]
+Category=7
+Description="<html>The span for aligning parameter definitions in function on parameter name.<br/><br/>0: Don't align (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_func_params_span="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Align Func Params Thresh]
+Category=7
+Description="<html>The threshold for aligning function parameter definitions.<br/>Use a negative number for absolute thresholds.<br/><br/>0: No limit (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_func_params_thresh="
+MinVal=-1000
+MaxVal=5000
+ValueDefault=0
+
+[Align Func Params Gap]
+Category=7
+Description="<html>The gap for aligning function parameter definitions.</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_func_params_gap="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Align Constr Value Span]
+Category=7
+Description="<html>The span for aligning constructor value.<br/><br/>0: Don't align (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_constr_value_span="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Align Constr Value Thresh]
+Category=7
+Description="<html>The threshold for aligning constructor value.<br/>Use a negative number for absolute thresholds.<br/><br/>0: No limit (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_constr_value_thresh="
+MinVal=-1000
+MaxVal=5000
+ValueDefault=0
+
+[Align Constr Value Gap]
+Category=7
+Description="<html>The gap for aligning constructor value.</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_constr_value_gap="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Align Same Func Call Params]
+Category=7
+Description="<html>Whether to align parameters in single-line functions that have the same<br/>name. The function names must already be aligned with each other.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_same_func_call_params=true|align_same_func_call_params=false
+ValueDefault=false
+
+[Align Same Func Call Params Span]
+Category=7
+Description="<html>The span for aligning function-call parameters for single line functions.<br/><br/>0: Don't align (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_same_func_call_params_span="
+MinVal=0
+MaxVal=5000
+ValueDefault=0
+
+[Align Same Func Call Params Thresh]
+Category=7
+Description="<html>The threshold for aligning function-call parameters for single line<br/>functions.<br/>Use a negative number for absolute thresholds.<br/><br/>0: No limit (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_same_func_call_params_thresh="
+MinVal=-1000
+MaxVal=5000
+ValueDefault=0
+
+[Align Var Def Span]
+Category=7
+Description="<html>The span for aligning variable definitions.<br/><br/>0: Don't align (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_var_def_span="
+MinVal=0
+MaxVal=5000
+ValueDefault=0
+
+[Align Var Def Star Style]
+Category=7
+Description="<html>How to consider (or treat) the '*' in the alignment of variable definitions.<br/><br/>0: Part of the type 'void * foo;' (default)<br/>1: Part of the variable 'void *foo;'<br/>2: Dangling 'void *foo;'<br/>Dangling: the '*' will not be taken into account when aligning.</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_var_def_star_style="
+MinVal=0
+MaxVal=2
+ValueDefault=0
+
+[Align Var Def Amp Style]
+Category=7
+Description="<html>How to consider (or treat) the '&amp;' in the alignment of variable definitions.<br/><br/>0: Part of the type 'long &amp; foo;' (default)<br/>1: Part of the variable 'long &amp;foo;'<br/>2: Dangling 'long &amp;foo;'<br/>Dangling: the '&amp;' will not be taken into account when aligning.</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_var_def_amp_style="
+MinVal=0
+MaxVal=2
+ValueDefault=0
+
+[Align Var Def Thresh]
+Category=7
+Description="<html>The threshold for aligning variable definitions.<br/>Use a negative number for absolute thresholds.<br/><br/>0: No limit (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_var_def_thresh="
+MinVal=-1000
+MaxVal=5000
+ValueDefault=0
+
+[Align Var Def Gap]
+Category=7
+Description="<html>The gap for aligning variable definitions.</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_var_def_gap="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Align Var Def Colon]
+Category=7
+Description="<html>Whether to align the colon in struct bit fields.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_var_def_colon=true|align_var_def_colon=false
+ValueDefault=false
+
+[Align Var Def Colon Gap]
+Category=7
+Description="<html>The gap for aligning the colon in struct bit fields.</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_var_def_colon_gap="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Align Var Def Attribute]
+Category=7
+Description="<html>Whether to align any attribute after the variable name.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_var_def_attribute=true|align_var_def_attribute=false
+ValueDefault=false
+
+[Align Var Def Inline]
+Category=7
+Description="<html>Whether to align inline struct/enum/union variable definitions.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_var_def_inline=true|align_var_def_inline=false
+ValueDefault=false
+
+[Align Assign Span]
+Category=7
+Description="<html>The span for aligning on '=' in assignments.<br/><br/>0: Don't align (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_assign_span="
+MinVal=0
+MaxVal=5000
+ValueDefault=0
+
+[Align Braced Init List Span]
+Category=7
+Description="<html>The span for aligning on '{' in braced init list.<br/><br/>0: Don't align (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_braced_init_list_span="
+MinVal=0
+MaxVal=5000
+ValueDefault=0
+
+[Align Assign Func Proto Span]
+Category=7
+Description="<html>The span for aligning on '=' in function prototype modifier.<br/><br/>0: Don't align (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_assign_func_proto_span="
+MinVal=0
+MaxVal=5000
+ValueDefault=0
+
+[Align Assign Thresh]
+Category=7
+Description="<html>The threshold for aligning on '=' in assignments.<br/>Use a negative number for absolute thresholds.<br/><br/>0: No limit (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_assign_thresh="
+MinVal=-1000
+MaxVal=5000
+ValueDefault=0
+
+[Align Assign On Multi Var Defs]
+Category=7
+Description="<html>Whether to align on the left most assignment when multiple<br/>definitions are found on the same line.<br/>Depends on 'align_assign_span' and 'align_assign_thresh' settings.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_assign_on_multi_var_defs=true|align_assign_on_multi_var_defs=false
+ValueDefault=false
+
+[Align Braced Init List Thresh]
+Category=7
+Description="<html>The threshold for aligning on '{' in braced init list.<br/>Use a negative number for absolute thresholds.<br/><br/>0: No limit (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_braced_init_list_thresh="
+MinVal=-1000
+MaxVal=5000
+ValueDefault=0
+
+[Align Assign Decl Func]
+Category=7
+Description="<html>How to apply align_assign_span to function declaration "assignments", i.e.<br/>'virtual void foo() = 0' or '~foo() = {default|delete}'.<br/><br/>0: Align with other assignments (default)<br/>1: Align with each other, ignoring regular assignments<br/>2: Don't align</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_assign_decl_func="
+MinVal=0
+MaxVal=2
+ValueDefault=0
+
+[Align Enum Equ Span]
+Category=7
+Description="<html>The span for aligning on '=' in enums.<br/><br/>0: Don't align (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_enum_equ_span="
+MinVal=0
+MaxVal=5000
+ValueDefault=0
+
+[Align Enum Equ Thresh]
+Category=7
+Description="<html>The threshold for aligning on '=' in enums.<br/>Use a negative number for absolute thresholds.<br/><br/>0: no limit (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_enum_equ_thresh="
+MinVal=-1000
+MaxVal=5000
+ValueDefault=0
+
+[Align Var Class Span]
+Category=7
+Description="<html>The span for aligning class member definitions.<br/><br/>0: Don't align (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_var_class_span="
+MinVal=0
+MaxVal=5000
+ValueDefault=0
+
+[Align Var Class Thresh]
+Category=7
+Description="<html>The threshold for aligning class member definitions.<br/>Use a negative number for absolute thresholds.<br/><br/>0: No limit (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_var_class_thresh="
+MinVal=-1000
+MaxVal=5000
+ValueDefault=0
+
+[Align Var Class Gap]
+Category=7
+Description="<html>The gap for aligning class member definitions.</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_var_class_gap="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Align Var Struct Span]
+Category=7
+Description="<html>The span for aligning struct/union member definitions.<br/><br/>0: Don't align (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_var_struct_span="
+MinVal=0
+MaxVal=5000
+ValueDefault=0
+
+[Align Var Struct Thresh]
+Category=7
+Description="<html>The threshold for aligning struct/union member definitions.<br/>Use a negative number for absolute thresholds.<br/><br/>0: No limit (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_var_struct_thresh="
+MinVal=-1000
+MaxVal=5000
+ValueDefault=0
+
+[Align Var Struct Gap]
+Category=7
+Description="<html>The gap for aligning struct/union member definitions.</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_var_struct_gap="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Align Struct Init Span]
+Category=7
+Description="<html>The span for aligning struct initializer values.<br/><br/>0: Don't align (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_struct_init_span="
+MinVal=0
+MaxVal=5000
+ValueDefault=0
+
+[Align Typedef Span]
+Category=7
+Description="<html>The span for aligning single-line typedefs.<br/><br/>0: Don't align (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_typedef_span="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Align Typedef Gap]
+Category=7
+Description="<html>The minimum space between the type and the synonym of a typedef.</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_typedef_gap="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Align Typedef Func]
+Category=7
+Description="<html>How to align typedef'd functions with other typedefs.<br/><br/>0: Don't mix them at all (default)<br/>1: Align the open parenthesis with the types<br/>2: Align the function type name with the other type names</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_typedef_func="
+MinVal=0
+MaxVal=2
+ValueDefault=0
+
+[Align Typedef Star Style]
+Category=7
+Description="<html>How to consider (or treat) the '*' in the alignment of typedefs.<br/><br/>0: Part of the typedef type, 'typedef int * pint;' (default)<br/>1: Part of type name: 'typedef int *pint;'<br/>2: Dangling: 'typedef int *pint;'<br/>Dangling: the '*' will not be taken into account when aligning.</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_typedef_star_style="
+MinVal=0
+MaxVal=2
+ValueDefault=0
+
+[Align Typedef Amp Style]
+Category=7
+Description="<html>How to consider (or treat) the '&amp;' in the alignment of typedefs.<br/><br/>0: Part of the typedef type, 'typedef int &amp; intref;' (default)<br/>1: Part of type name: 'typedef int &amp;intref;'<br/>2: Dangling: 'typedef int &amp;intref;'<br/>Dangling: the '&amp;' will not be taken into account when aligning.</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_typedef_amp_style="
+MinVal=0
+MaxVal=2
+ValueDefault=0
+
+[Align Right Cmt Span]
+Category=7
+Description="<html>The span for aligning comments that end lines.<br/><br/>0: Don't align (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_right_cmt_span="
+MinVal=0
+MaxVal=5000
+ValueDefault=0
+
+[Align Right Cmt Gap]
+Category=7
+Description="<html>Minimum number of columns between preceding text and a trailing comment in<br/>order for the comment to qualify for being aligned. Must be non-zero to have<br/>an effect.</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_right_cmt_gap="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Align Right Cmt Mix]
+Category=7
+Description="<html>If aligning comments, whether to mix with comments after '}' and #endif with<br/>less than three spaces before the comment.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_right_cmt_mix=true|align_right_cmt_mix=false
+ValueDefault=false
+
+[Align Right Cmt Same Level]
+Category=7
+Description="<html>Whether to only align trailing comments that are at the same brace level.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_right_cmt_same_level=true|align_right_cmt_same_level=false
+ValueDefault=false
+
+[Align Right Cmt At Col]
+Category=7
+Description="<html>Minimum column at which to align trailing comments. Comments which are<br/>aligned beyond this column, but which can be aligned in a lesser column,<br/>may be "pulled in".<br/><br/>0: Ignore (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_right_cmt_at_col="
+MinVal=0
+MaxVal=200
+ValueDefault=0
+
+[Align Func Proto Span]
+Category=7
+Description="<html>The span for aligning function prototypes.<br/><br/>0: Don't align (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_func_proto_span="
+MinVal=0
+MaxVal=5000
+ValueDefault=0
+
+[Align Func Proto Star Style]
+Category=7
+Description="<html>How to consider (or treat) the '*' in the alignment of function prototypes.<br/><br/>0: Part of the type 'void * foo();' (default)<br/>1: Part of the function 'void *foo();'<br/>2: Dangling 'void *foo();'<br/>Dangling: the '*' will not be taken into account when aligning.</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_func_proto_star_style="
+MinVal=0
+MaxVal=2
+ValueDefault=0
+
+[Align Func Proto Amp Style]
+Category=7
+Description="<html>How to consider (or treat) the '&amp;' in the alignment of function prototypes.<br/><br/>0: Part of the type 'long &amp; foo();' (default)<br/>1: Part of the function 'long &amp;foo();'<br/>2: Dangling 'long &amp;foo();'<br/>Dangling: the '&amp;' will not be taken into account when aligning.</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_func_proto_amp_style="
+MinVal=0
+MaxVal=2
+ValueDefault=0
+
+[Align Func Proto Thresh]
+Category=7
+Description="<html>The threshold for aligning function prototypes.<br/>Use a negative number for absolute thresholds.<br/><br/>0: No limit (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_func_proto_thresh="
+MinVal=-1000
+MaxVal=5000
+ValueDefault=0
+
+[Align Func Proto Gap]
+Category=7
+Description="<html>Minimum gap between the return type and the function name.</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_func_proto_gap="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Align On Operator]
+Category=7
+Description="<html>Whether to align function prototypes on the 'operator' keyword instead of<br/>what follows.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_on_operator=true|align_on_operator=false
+ValueDefault=false
+
+[Align Mix Var Proto]
+Category=7
+Description="<html>Whether to mix aligning prototype and variable declarations. If true,<br/>align_var_def_XXX options are used instead of align_func_proto_XXX options.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_mix_var_proto=true|align_mix_var_proto=false
+ValueDefault=false
+
+[Align Single Line Func]
+Category=7
+Description="<html>Whether to align single-line functions with function prototypes.<br/>Uses align_func_proto_span.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_single_line_func=true|align_single_line_func=false
+ValueDefault=false
+
+[Align Single Line Brace]
+Category=7
+Description="<html>Whether to align the open brace of single-line functions.<br/>Requires align_single_line_func=true. Uses align_func_proto_span.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_single_line_brace=true|align_single_line_brace=false
+ValueDefault=false
+
+[Align Single Line Brace Gap]
+Category=7
+Description="<html>Gap for align_single_line_brace.</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_single_line_brace_gap="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Align Oc Msg Spec Span]
+Category=7
+Description="<html>(OC) The span for aligning Objective-C message specifications.<br/><br/>0: Don't align (default).</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_oc_msg_spec_span="
+MinVal=0
+MaxVal=5000
+ValueDefault=0
+
+[Align Nl Cont]
+Category=7
+Description="<html>Whether to align macros wrapped with a backslash and a newline. This will<br/>not work right if the macro contains a multi-line comment.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_nl_cont=true|align_nl_cont=false
+ValueDefault=false
+
+[Align Pp Define Together]
+Category=7
+Description="<html>Whether to align macro functions and variables together.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_pp_define_together=true|align_pp_define_together=false
+ValueDefault=false
+
+[Align Pp Define Span]
+Category=7
+Description="<html>The span for aligning on '#define' bodies.<br/><br/>=0: Don't align (default)<br/>&gt;0: Number of lines (including comments) between blocks</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_pp_define_span="
+MinVal=0
+MaxVal=5000
+ValueDefault=0
+
+[Align Pp Define Gap]
+Category=7
+Description="<html>The minimum space between label and value of a preprocessor define.</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_pp_define_gap="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Align Left Shift]
+Category=7
+Description="<html>Whether to align lines that start with '&lt;&lt;' with previous '&lt;&lt;'.<br/><br/>Default: true</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_left_shift=true|align_left_shift=false
+ValueDefault=true
+
+[Align Eigen Comma Init]
+Category=7
+Description="<html>Whether to align comma-separated statements following '&lt;&lt;' (as used to<br/>initialize Eigen matrices).</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_eigen_comma_init=true|align_eigen_comma_init=false
+ValueDefault=false
+
+[Align Asm Colon]
+Category=7
+Description="<html>Whether to align text after 'asm volatile ()' colons.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_asm_colon=true|align_asm_colon=false
+ValueDefault=false
+
+[Align Oc Msg Colon Span]
+Category=7
+Description="<html>(OC) Span for aligning parameters in an Objective-C message call<br/>on the ':'.<br/><br/>0: Don't align.</html>"
+Enabled=false
+EditorType=numeric
+CallName="align_oc_msg_colon_span="
+MinVal=0
+MaxVal=5000
+ValueDefault=0
+
+[Align Oc Msg Colon First]
+Category=7
+Description="<html>(OC) Whether to always align with the first parameter, even if it is too<br/>short.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_oc_msg_colon_first=true|align_oc_msg_colon_first=false
+ValueDefault=false
+
+[Align Oc Decl Colon]
+Category=7
+Description="<html>(OC) Whether to align parameters in an Objective-C '+' or '-' declaration<br/>on the ':'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_oc_decl_colon=true|align_oc_decl_colon=false
+ValueDefault=false
+
+[Align Oc Msg Colon Xcode Like]
+Category=7
+Description="<html>(OC) Whether to not align parameters in an Objectve-C message call if first<br/>colon is not on next line of the message call (the same way Xcode does<br/>alignment)</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=align_oc_msg_colon_xcode_like=true|align_oc_msg_colon_xcode_like=false
+ValueDefault=false
+
+[Cmt Width]
+Category=8
+Description="<html>Try to wrap comments at N columns.</html>"
+Enabled=false
+EditorType=numeric
+CallName="cmt_width="
+MinVal=0
+MaxVal=256
+ValueDefault=0
+
+[Cmt Reflow Mode]
+Category=8
+Description="<html>How to reflow comments.<br/><br/>0: No reflowing (apart from the line wrapping due to cmt_width) (default)<br/>1: No touching at all<br/>2: Full reflow (enable cmt_indent_multi for indent with line wrapping due to cmt_width)</html>"
+Enabled=false
+EditorType=numeric
+CallName="cmt_reflow_mode="
+MinVal=0
+MaxVal=2
+ValueDefault=0
+
+[Cmt Reflow Fold Regex File]
+Category=8
+Description="<html>Path to a file that contains regular expressions describing patterns for<br/>which the end of one line and the beginning of the next will be folded into<br/>the same sentence or paragraph during full comment reflow. The regular<br/>expressions are described using ECMAScript syntax. The syntax for this<br/>specification is as follows, where "..." indicates the custom regular<br/>expression and "n" indicates the nth end_of_prev_line_regex and<br/>beg_of_next_line_regex regular expression pair:<br/><br/>end_of_prev_line_regex[1] = "...$"<br/>beg_of_next_line_regex[1] = "^..."<br/>end_of_prev_line_regex[2] = "...$"<br/>beg_of_next_line_regex[2] = "^..."<br/> .<br/> .<br/> .<br/>end_of_prev_line_regex[n] = "...$"<br/>beg_of_next_line_regex[n] = "^..."<br/><br/>Note that use of this option overrides the default reflow fold regular<br/>expressions, which are internally defined as follows:<br/><br/>end_of_prev_line_regex[1] = "[\w,\]\)]$"<br/>beg_of_next_line_regex[1] = "^[\w,\[\(]"<br/>end_of_prev_line_regex[2] = "\.$"<br/>beg_of_next_line_regex[2] = "^[A-Z]"</html>"
+Enabled=false
+CallName=cmt_reflow_fold_regex_file=
+EditorType=string
+ValueDefault=
+
+[Cmt Reflow Indent To Paragraph Start]
+Category=8
+Description="<html>Whether to indent wrapped lines to the start of the encompassing paragraph<br/>during full comment reflow (cmt_reflow_mode = 2). Overrides the value<br/>specified by cmt_sp_after_star_cont.<br/><br/>Note that cmt_align_doxygen_javadoc_tags overrides this option for<br/>paragraphs associated with javadoc tags</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=cmt_reflow_indent_to_paragraph_start=true|cmt_reflow_indent_to_paragraph_start=false
+ValueDefault=false
+
+[Cmt Convert Tab To Spaces]
+Category=8
+Description="<html>Whether to convert all tabs to spaces in comments. If false, tabs in<br/>comments are left alone, unless used for indenting.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=cmt_convert_tab_to_spaces=true|cmt_convert_tab_to_spaces=false
+ValueDefault=false
+
+[Cmt Indent Multi]
+Category=8
+Description="<html>Whether to apply changes to multi-line comments, including cmt_width,<br/>keyword substitution and leading chars.<br/><br/>Default: true</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=cmt_indent_multi=true|cmt_indent_multi=false
+ValueDefault=true
+
+[Cmt Align Doxygen Javadoc Tags]
+Category=8
+Description="<html>Whether to align doxygen javadoc-style tags ('@param', '@return', etc.)<br/>and corresponding fields such that groups of consecutive block tags,<br/>parameter names, and descriptions align with one another. Overrides that<br/>which is specified by the cmt_sp_after_star_cont. If cmt_width &gt; 0, it may<br/>be necessary to enable cmt_indent_multi and set cmt_reflow_mode = 2<br/>in order to achieve the desired alignment for line-wrapping.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=cmt_align_doxygen_javadoc_tags=true|cmt_align_doxygen_javadoc_tags=false
+ValueDefault=false
+
+[Cmt Sp Before Doxygen Javadoc Tags]
+Category=8
+Description="<html>The number of spaces to insert after the star and before doxygen<br/>javadoc-style tags (@param, @return, etc). Requires enabling<br/>cmt_align_doxygen_javadoc_tags. Overrides that which is specified by the<br/>cmt_sp_after_star_cont.<br/><br/>Default: 1</html>"
+Enabled=false
+EditorType=numeric
+CallName="cmt_sp_before_doxygen_javadoc_tags="
+MinVal=0
+MaxVal=16
+ValueDefault=1
+
+[Cmt Trailing Single Line C To Cpp]
+Category=8
+Description="<html>Whether to change trailing, single-line c-comments into cpp-comments.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=cmt_trailing_single_line_c_to_cpp=true|cmt_trailing_single_line_c_to_cpp=false
+ValueDefault=false
+
+[Cmt C Group]
+Category=8
+Description="<html>Whether to group c-comments that look like they are in a block.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=cmt_c_group=true|cmt_c_group=false
+ValueDefault=false
+
+[Cmt C Nl Start]
+Category=8
+Description="<html>Whether to put an empty '/*' on the first line of the combined c-comment.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=cmt_c_nl_start=true|cmt_c_nl_start=false
+ValueDefault=false
+
+[Cmt C Nl End]
+Category=8
+Description="<html>Whether to add a newline before the closing '*/' of the combined c-comment.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=cmt_c_nl_end=true|cmt_c_nl_end=false
+ValueDefault=false
+
+[Cmt Cpp To C]
+Category=8
+Description="<html>Whether to change cpp-comments into c-comments.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=cmt_cpp_to_c=true|cmt_cpp_to_c=false
+ValueDefault=false
+
+[Cmt Cpp Group]
+Category=8
+Description="<html>Whether to group cpp-comments that look like they are in a block. Only<br/>meaningful if cmt_cpp_to_c=true.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=cmt_cpp_group=true|cmt_cpp_group=false
+ValueDefault=false
+
+[Cmt Cpp Nl Start]
+Category=8
+Description="<html>Whether to put an empty '/*' on the first line of the combined cpp-comment<br/>when converting to a c-comment.<br/><br/>Requires cmt_cpp_to_c=true and cmt_cpp_group=true.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=cmt_cpp_nl_start=true|cmt_cpp_nl_start=false
+ValueDefault=false
+
+[Cmt Cpp Nl End]
+Category=8
+Description="<html>Whether to add a newline before the closing '*/' of the combined cpp-comment<br/>when converting to a c-comment.<br/><br/>Requires cmt_cpp_to_c=true and cmt_cpp_group=true.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=cmt_cpp_nl_end=true|cmt_cpp_nl_end=false
+ValueDefault=false
+
+[Cmt Star Cont]
+Category=8
+Description="<html>Whether to put a star on subsequent comment lines.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=cmt_star_cont=true|cmt_star_cont=false
+ValueDefault=false
+
+[Cmt Sp Before Star Cont]
+Category=8
+Description="<html>The number of spaces to insert at the start of subsequent comment lines.</html>"
+Enabled=false
+EditorType=numeric
+CallName="cmt_sp_before_star_cont="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Cmt Sp After Star Cont]
+Category=8
+Description="<html>The number of spaces to insert after the star on subsequent comment lines.</html>"
+Enabled=false
+EditorType=numeric
+CallName="cmt_sp_after_star_cont="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Cmt Multi Check Last]
+Category=8
+Description="<html>For multi-line comments with a '*' lead, remove leading spaces if the first<br/>and last lines of the comment are the same length.<br/><br/>Default: true</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=cmt_multi_check_last=true|cmt_multi_check_last=false
+ValueDefault=true
+
+[Cmt Multi First Len Minimum]
+Category=8
+Description="<html>For multi-line comments with a '*' lead, remove leading spaces if the first<br/>and last lines of the comment are the same length AND if the length is<br/>bigger as the first_len minimum.<br/><br/>Default: 4</html>"
+Enabled=false
+EditorType=numeric
+CallName="cmt_multi_first_len_minimum="
+MinVal=1
+MaxVal=20
+ValueDefault=4
+
+[Cmt Insert File Header]
+Category=8
+Description="<html>Path to a file that contains text to insert at the beginning of a file if<br/>the file doesn't start with a C/C++ comment. If the inserted text contains<br/>'$(filename)', that will be replaced with the current file's name.</html>"
+Enabled=false
+CallName=cmt_insert_file_header=
+EditorType=string
+ValueDefault=
+
+[Cmt Insert File Footer]
+Category=8
+Description="<html>Path to a file that contains text to insert at the end of a file if the<br/>file doesn't end with a C/C++ comment. If the inserted text contains<br/>'$(filename)', that will be replaced with the current file's name.</html>"
+Enabled=false
+CallName=cmt_insert_file_footer=
+EditorType=string
+ValueDefault=
+
+[Cmt Insert Func Header]
+Category=8
+Description="<html>Path to a file that contains text to insert before a function definition if<br/>the function isn't preceded by a C/C++ comment. If the inserted text<br/>contains '$(function)', '$(javaparam)' or '$(fclass)', these will be<br/>replaced with, respectively, the name of the function, the javadoc '@param'<br/>and '@return' stuff, or the name of the class to which the member function<br/>belongs.</html>"
+Enabled=false
+CallName=cmt_insert_func_header=
+EditorType=string
+ValueDefault=
+
+[Cmt Insert Class Header]
+Category=8
+Description="<html>Path to a file that contains text to insert before a class if the class<br/>isn't preceded by a C/C++ comment. If the inserted text contains '$(class)',<br/>that will be replaced with the class name.</html>"
+Enabled=false
+CallName=cmt_insert_class_header=
+EditorType=string
+ValueDefault=
+
+[Cmt Insert Oc Msg Header]
+Category=8
+Description="<html>Path to a file that contains text to insert before an Objective-C message<br/>specification, if the method isn't preceded by a C/C++ comment. If the<br/>inserted text contains '$(message)' or '$(javaparam)', these will be<br/>replaced with, respectively, the name of the function, or the javadoc<br/>'@param' and '@return' stuff.</html>"
+Enabled=false
+CallName=cmt_insert_oc_msg_header=
+EditorType=string
+ValueDefault=
+
+[Cmt Insert Before Preproc]
+Category=8
+Description="<html>Whether a comment should be inserted if a preprocessor is encountered when<br/>stepping backwards from a function name.<br/><br/>Applies to cmt_insert_oc_msg_header, cmt_insert_func_header and<br/>cmt_insert_class_header.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=cmt_insert_before_preproc=true|cmt_insert_before_preproc=false
+ValueDefault=false
+
+[Cmt Insert Before Inlines]
+Category=8
+Description="<html>Whether a comment should be inserted if a function is declared inline to a<br/>class definition.<br/><br/>Applies to cmt_insert_func_header.<br/><br/>Default: true</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=cmt_insert_before_inlines=true|cmt_insert_before_inlines=false
+ValueDefault=true
+
+[Cmt Insert Before Ctor Dtor]
+Category=8
+Description="<html>Whether a comment should be inserted if the function is a class constructor<br/>or destructor.<br/><br/>Applies to cmt_insert_func_header.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=cmt_insert_before_ctor_dtor=true|cmt_insert_before_ctor_dtor=false
+ValueDefault=false
+
+[Mod Full Brace Do]
+Category=9
+Description="<html>Add or remove braces on a single-line 'do' statement.</html>"
+Enabled=false
+EditorType=multiple
+Choices=mod_full_brace_do=ignore|mod_full_brace_do=add|mod_full_brace_do=remove|mod_full_brace_do=force|mod_full_brace_do=not_defined
+ChoicesReadable="Ignore Mod Full Brace Do|Add Mod Full Brace Do|Remove Mod Full Brace Do|Force Mod Full Brace Do"
+ValueDefault=ignore
+
+[Mod Full Brace For]
+Category=9
+Description="<html>Add or remove braces on a single-line 'for' statement.</html>"
+Enabled=false
+EditorType=multiple
+Choices=mod_full_brace_for=ignore|mod_full_brace_for=add|mod_full_brace_for=remove|mod_full_brace_for=force|mod_full_brace_for=not_defined
+ChoicesReadable="Ignore Mod Full Brace For|Add Mod Full Brace For|Remove Mod Full Brace For|Force Mod Full Brace For"
+ValueDefault=ignore
+
+[Mod Full Brace Function]
+Category=9
+Description="<html>(Pawn) Add or remove braces on a single-line function definition.</html>"
+Enabled=false
+EditorType=multiple
+Choices=mod_full_brace_function=ignore|mod_full_brace_function=add|mod_full_brace_function=remove|mod_full_brace_function=force|mod_full_brace_function=not_defined
+ChoicesReadable="Ignore Mod Full Brace Function|Add Mod Full Brace Function|Remove Mod Full Brace Function|Force Mod Full Brace Function"
+ValueDefault=ignore
+
+[Mod Full Brace If]
+Category=9
+Description="<html>Add or remove braces on a single-line 'if' statement. Braces will not be<br/>removed if the braced statement contains an 'else'.</html>"
+Enabled=false
+EditorType=multiple
+Choices=mod_full_brace_if=ignore|mod_full_brace_if=add|mod_full_brace_if=remove|mod_full_brace_if=force|mod_full_brace_if=not_defined
+ChoicesReadable="Ignore Mod Full Brace If|Add Mod Full Brace If|Remove Mod Full Brace If|Force Mod Full Brace If"
+ValueDefault=ignore
+
+[Mod Full Brace If Chain]
+Category=9
+Description="<html>Whether to enforce that all blocks of an 'if'/'else if'/'else' chain either<br/>have, or do not have, braces. Overrides mod_full_brace_if.<br/><br/>0: Don't override mod_full_brace_if<br/>1: Add braces to all blocks if any block needs braces and remove braces if<br/> they can be removed from all blocks<br/>2: Add braces to all blocks if any block already has braces, regardless of<br/> whether it needs them<br/>3: Add braces to all blocks if any block needs braces and remove braces if<br/> they can be removed from all blocks, except if all blocks have braces<br/> despite none needing them</html>"
+Enabled=false
+EditorType=numeric
+CallName="mod_full_brace_if_chain="
+MinVal=0
+MaxVal=3
+ValueDefault=0
+
+[Mod Full Brace If Chain Only]
+Category=9
+Description="<html>Whether to add braces to all blocks of an 'if'/'else if'/'else' chain.<br/>If true, mod_full_brace_if_chain will only remove braces from an 'if' that<br/>does not have an 'else if' or 'else'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=mod_full_brace_if_chain_only=true|mod_full_brace_if_chain_only=false
+ValueDefault=false
+
+[Mod Full Brace While]
+Category=9
+Description="<html>Add or remove braces on single-line 'while' statement.</html>"
+Enabled=false
+EditorType=multiple
+Choices=mod_full_brace_while=ignore|mod_full_brace_while=add|mod_full_brace_while=remove|mod_full_brace_while=force|mod_full_brace_while=not_defined
+ChoicesReadable="Ignore Mod Full Brace While|Add Mod Full Brace While|Remove Mod Full Brace While|Force Mod Full Brace While"
+ValueDefault=ignore
+
+[Mod Full Brace Using]
+Category=9
+Description="<html>Add or remove braces on single-line 'using ()' statement.</html>"
+Enabled=false
+EditorType=multiple
+Choices=mod_full_brace_using=ignore|mod_full_brace_using=add|mod_full_brace_using=remove|mod_full_brace_using=force|mod_full_brace_using=not_defined
+ChoicesReadable="Ignore Mod Full Brace Using|Add Mod Full Brace Using|Remove Mod Full Brace Using|Force Mod Full Brace Using"
+ValueDefault=ignore
+
+[Mod Full Brace Nl]
+Category=9
+Description="<html>Don't remove braces around statements that span N newlines</html>"
+Enabled=false
+EditorType=numeric
+CallName="mod_full_brace_nl="
+MinVal=0
+MaxVal=5000
+ValueDefault=0
+
+[Mod Full Brace Nl Block Rem Mlcond]
+Category=9
+Description="<html>Whether to prevent removal of braces from 'if'/'for'/'while'/etc. blocks<br/>which span multiple lines.<br/><br/>Affects:<br/> mod_full_brace_for<br/> mod_full_brace_if<br/> mod_full_brace_if_chain<br/> mod_full_brace_if_chain_only<br/> mod_full_brace_while<br/> mod_full_brace_using<br/><br/>Does not affect:<br/> mod_full_brace_do<br/> mod_full_brace_function</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=mod_full_brace_nl_block_rem_mlcond=true|mod_full_brace_nl_block_rem_mlcond=false
+ValueDefault=false
+
+[Mod Paren On Return]
+Category=9
+Description="<html>Add or remove unnecessary parenthesis on 'return' statement.</html>"
+Enabled=false
+EditorType=multiple
+Choices=mod_paren_on_return=ignore|mod_paren_on_return=add|mod_paren_on_return=remove|mod_paren_on_return=force|mod_paren_on_return=not_defined
+ChoicesReadable="Ignore Mod Paren On Return|Add Mod Paren On Return|Remove Mod Paren On Return|Force Mod Paren On Return"
+ValueDefault=ignore
+
+[Mod Pawn Semicolon]
+Category=9
+Description="<html>(Pawn) Whether to change optional semicolons to real semicolons.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=mod_pawn_semicolon=true|mod_pawn_semicolon=false
+ValueDefault=false
+
+[Mod Full Paren If Bool]
+Category=9
+Description="<html>Whether to fully parenthesize Boolean expressions in 'while' and 'if'<br/>statement, as in 'if (a &amp;&amp; b &gt; c)' =&gt; 'if (a &amp;&amp; (b &gt; c))'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=mod_full_paren_if_bool=true|mod_full_paren_if_bool=false
+ValueDefault=false
+
+[Mod Full Paren Assign Bool]
+Category=9
+Description="<html>Whether to fully parenthesize Boolean expressions after '='<br/>statement, as in 'x = a &amp;&amp; b &gt; c;' =&gt; 'x = (a &amp;&amp; (b &gt; c));'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=mod_full_paren_assign_bool=true|mod_full_paren_assign_bool=false
+ValueDefault=false
+
+[Mod Full Paren Return Bool]
+Category=9
+Description="<html>Whether to fully parenthesize Boolean expressions after '='<br/>statement, as in 'return a &amp;&amp; b &gt; c;' =&gt; 'return (a &amp;&amp; (b &gt; c));'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=mod_full_paren_return_bool=true|mod_full_paren_return_bool=false
+ValueDefault=false
+
+[Mod Remove Extra Semicolon]
+Category=9
+Description="<html>Whether to remove superfluous semicolons.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=mod_remove_extra_semicolon=true|mod_remove_extra_semicolon=false
+ValueDefault=false
+
+[Mod Remove Duplicate Include]
+Category=9
+Description="<html>Whether to remove duplicate include.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=mod_remove_duplicate_include=true|mod_remove_duplicate_include=false
+ValueDefault=false
+
+[Mod Add Long Function Closebrace Comment]
+Category=9
+Description="<html>If a function body exceeds the specified number of newlines and doesn't have<br/>a comment after the close brace, a comment will be added.</html>"
+Enabled=false
+EditorType=numeric
+CallName="mod_add_long_function_closebrace_comment="
+MinVal=0
+MaxVal=255
+ValueDefault=0
+
+[Mod Add Long Namespace Closebrace Comment]
+Category=9
+Description="<html>If a namespace body exceeds the specified number of newlines and doesn't<br/>have a comment after the close brace, a comment will be added.</html>"
+Enabled=false
+EditorType=numeric
+CallName="mod_add_long_namespace_closebrace_comment="
+MinVal=0
+MaxVal=255
+ValueDefault=0
+
+[Mod Add Long Class Closebrace Comment]
+Category=9
+Description="<html>If a class body exceeds the specified number of newlines and doesn't have a<br/>comment after the close brace, a comment will be added.</html>"
+Enabled=false
+EditorType=numeric
+CallName="mod_add_long_class_closebrace_comment="
+MinVal=0
+MaxVal=255
+ValueDefault=0
+
+[Mod Add Long Switch Closebrace Comment]
+Category=9
+Description="<html>If a switch body exceeds the specified number of newlines and doesn't have a<br/>comment after the close brace, a comment will be added.</html>"
+Enabled=false
+EditorType=numeric
+CallName="mod_add_long_switch_closebrace_comment="
+MinVal=0
+MaxVal=255
+ValueDefault=0
+
+[Mod Add Long Ifdef Endif Comment]
+Category=9
+Description="<html>If an #ifdef body exceeds the specified number of newlines and doesn't have<br/>a comment after the #endif, a comment will be added.</html>"
+Enabled=false
+EditorType=numeric
+CallName="mod_add_long_ifdef_endif_comment="
+MinVal=0
+MaxVal=255
+ValueDefault=0
+
+[Mod Add Long Ifdef Else Comment]
+Category=9
+Description="<html>If an #ifdef or #else body exceeds the specified number of newlines and<br/>doesn't have a comment after the #else, a comment will be added.</html>"
+Enabled=false
+EditorType=numeric
+CallName="mod_add_long_ifdef_else_comment="
+MinVal=0
+MaxVal=255
+ValueDefault=0
+
+[Mod Sort Case Sensitive]
+Category=9
+Description="<html>Whether to take care of the case by the mod_sort_xx options.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=mod_sort_case_sensitive=true|mod_sort_case_sensitive=false
+ValueDefault=false
+
+[Mod Sort Import]
+Category=9
+Description="<html>Whether to sort consecutive single-line 'import' statements.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=mod_sort_import=true|mod_sort_import=false
+ValueDefault=false
+
+[Mod Sort Using]
+Category=9
+Description="<html>(C#) Whether to sort consecutive single-line 'using' statements.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=mod_sort_using=true|mod_sort_using=false
+ValueDefault=false
+
+[Mod Sort Include]
+Category=9
+Description="<html>Whether to sort consecutive single-line '#include' statements (C/C++) and<br/>'#import' statements (Objective-C). Be aware that this has the potential to<br/>break your code if your includes/imports have ordering dependencies.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=mod_sort_include=true|mod_sort_include=false
+ValueDefault=false
+
+[Mod Sort Incl Import Prioritize Filename]
+Category=9
+Description="<html>Whether to prioritize '#include' and '#import' statements that contain<br/>filename without extension when sorting is enabled.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=mod_sort_incl_import_prioritize_filename=true|mod_sort_incl_import_prioritize_filename=false
+ValueDefault=false
+
+[Mod Sort Incl Import Prioritize Extensionless]
+Category=9
+Description="<html>Whether to prioritize '#include' and '#import' statements that does not<br/>contain extensions when sorting is enabled.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=mod_sort_incl_import_prioritize_extensionless=true|mod_sort_incl_import_prioritize_extensionless=false
+ValueDefault=false
+
+[Mod Sort Incl Import Prioritize Angle Over Quotes]
+Category=9
+Description="<html>Whether to prioritize '#include' and '#import' statements that contain<br/>angle over quotes when sorting is enabled.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=mod_sort_incl_import_prioritize_angle_over_quotes=true|mod_sort_incl_import_prioritize_angle_over_quotes=false
+ValueDefault=false
+
+[Mod Sort Incl Import Ignore Extension]
+Category=9
+Description="<html>Whether to ignore file extension in '#include' and '#import' statements<br/>for sorting comparison.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=mod_sort_incl_import_ignore_extension=true|mod_sort_incl_import_ignore_extension=false
+ValueDefault=false
+
+[Mod Sort Incl Import Grouping Enabled]
+Category=9
+Description="<html>Whether to group '#include' and '#import' statements when sorting is enabled.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=mod_sort_incl_import_grouping_enabled=true|mod_sort_incl_import_grouping_enabled=false
+ValueDefault=false
+
+[Mod Move Case Break]
+Category=9
+Description="<html>Whether to move a 'break' that appears after a fully braced 'case' before<br/>the close brace, as in 'case X: { ... } break;' =&gt; 'case X: { ... break; }'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=mod_move_case_break=true|mod_move_case_break=false
+ValueDefault=false
+
+[Mod Move Case Return]
+Category=9
+Description="<html>Whether to move a 'return' that appears after a fully braced 'case' before<br/>the close brace, as in 'case X: { ... } return;' =&gt; 'case X: { ... return; }'.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=mod_move_case_return=true|mod_move_case_return=false
+ValueDefault=false
+
+[Mod Case Brace]
+Category=9
+Description="<html>Add or remove braces around a fully braced case statement. Will only remove<br/>braces if there are no variable declarations in the block.</html>"
+Enabled=false
+EditorType=multiple
+Choices=mod_case_brace=ignore|mod_case_brace=add|mod_case_brace=remove|mod_case_brace=force|mod_case_brace=not_defined
+ChoicesReadable="Ignore Mod Case Brace|Add Mod Case Brace|Remove Mod Case Brace|Force Mod Case Brace"
+ValueDefault=ignore
+
+[Mod Remove Empty Return]
+Category=9
+Description="<html>Whether to remove a void 'return;' that appears as the last statement in a<br/>function.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=mod_remove_empty_return=true|mod_remove_empty_return=false
+ValueDefault=false
+
+[Mod Enum Last Comma]
+Category=9
+Description="<html>Add or remove the comma after the last value of an enumeration.</html>"
+Enabled=false
+EditorType=multiple
+Choices=mod_enum_last_comma=ignore|mod_enum_last_comma=add|mod_enum_last_comma=remove|mod_enum_last_comma=force|mod_enum_last_comma=not_defined
+ChoicesReadable="Ignore Mod Enum Last Comma|Add Mod Enum Last Comma|Remove Mod Enum Last Comma|Force Mod Enum Last Comma"
+ValueDefault=ignore
+
+[Mod Sort Oc Properties]
+Category=9
+Description="<html>(OC) Whether to organize the properties. If true, properties will be<br/>rearranged according to the mod_sort_oc_property_*_weight factors.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=mod_sort_oc_properties=true|mod_sort_oc_properties=false
+ValueDefault=false
+
+[Mod Sort Oc Property Class Weight]
+Category=9
+Description="<html>(OC) Weight of a class property modifier.</html>"
+Enabled=false
+EditorType=numeric
+CallName="mod_sort_oc_property_class_weight="
+MinVal=
+MaxVal=
+ValueDefault=0
+
+[Mod Sort Oc Property Thread Safe Weight]
+Category=9
+Description="<html>(OC) Weight of 'atomic' and 'nonatomic'.</html>"
+Enabled=false
+EditorType=numeric
+CallName="mod_sort_oc_property_thread_safe_weight="
+MinVal=
+MaxVal=
+ValueDefault=0
+
+[Mod Sort Oc Property Readwrite Weight]
+Category=9
+Description="<html>(OC) Weight of 'readwrite' when organizing properties.</html>"
+Enabled=false
+EditorType=numeric
+CallName="mod_sort_oc_property_readwrite_weight="
+MinVal=
+MaxVal=
+ValueDefault=0
+
+[Mod Sort Oc Property Reference Weight]
+Category=9
+Description="<html>(OC) Weight of a reference type specifier ('retain', 'copy', 'assign',<br/>'weak', 'strong') when organizing properties.</html>"
+Enabled=false
+EditorType=numeric
+CallName="mod_sort_oc_property_reference_weight="
+MinVal=
+MaxVal=
+ValueDefault=0
+
+[Mod Sort Oc Property Getter Weight]
+Category=9
+Description="<html>(OC) Weight of getter type ('getter=') when organizing properties.</html>"
+Enabled=false
+EditorType=numeric
+CallName="mod_sort_oc_property_getter_weight="
+MinVal=
+MaxVal=
+ValueDefault=0
+
+[Mod Sort Oc Property Setter Weight]
+Category=9
+Description="<html>(OC) Weight of setter type ('setter=') when organizing properties.</html>"
+Enabled=false
+EditorType=numeric
+CallName="mod_sort_oc_property_setter_weight="
+MinVal=
+MaxVal=
+ValueDefault=0
+
+[Mod Sort Oc Property Nullability Weight]
+Category=9
+Description="<html>(OC) Weight of nullability type ('nullable', 'nonnull', 'null_unspecified',<br/>'null_resettable') when organizing properties.</html>"
+Enabled=false
+EditorType=numeric
+CallName="mod_sort_oc_property_nullability_weight="
+MinVal=
+MaxVal=
+ValueDefault=0
+
+[Pp Indent]
+Category=10
+Description="<html>Add or remove indentation of preprocessor directives inside #if blocks<br/>at brace level 0 (file-level).</html>"
+Enabled=false
+EditorType=multiple
+Choices=pp_indent=ignore|pp_indent=add|pp_indent=remove|pp_indent=force|pp_indent=not_defined
+ChoicesReadable="Ignore Pp Indent|Add Pp Indent|Remove Pp Indent|Force Pp Indent"
+ValueDefault=ignore
+
+[Pp Indent At Level]
+Category=10
+Description="<html>Whether to indent #if/#else/#endif at the brace level. If false, these are<br/>indented from column 1.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=pp_indent_at_level=true|pp_indent_at_level=false
+ValueDefault=false
+
+[Pp Indent At Level0]
+Category=10
+Description="<html>Whether to indent #if/#else/#endif at the parenthesis level if the brace<br/>level is 0. If false, these are indented from column 1.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=pp_indent_at_level0=true|pp_indent_at_level0=false
+ValueDefault=false
+
+[Pp Indent Count]
+Category=10
+Description="<html>Specifies the number of columns to indent preprocessors per level<br/>at brace level 0 (file-level). If pp_indent_at_level=false, also specifies<br/>the number of columns to indent preprocessors per level<br/>at brace level &gt; 0 (function-level).<br/><br/>Default: 1</html>"
+Enabled=false
+EditorType=numeric
+CallName="pp_indent_count="
+MinVal=0
+MaxVal=16
+ValueDefault=1
+
+[Pp Space]
+Category=10
+Description="<html>Add or remove space after # based on pp_level of #if blocks.</html>"
+Enabled=false
+EditorType=multiple
+Choices=pp_space=ignore|pp_space=add|pp_space=remove|pp_space=force|pp_space=not_defined
+ChoicesReadable="Ignore Pp Space|Add Pp Space|Remove Pp Space|Force Pp Space"
+ValueDefault=ignore
+
+[Pp Space Count]
+Category=10
+Description="<html>Sets the number of spaces per level added with pp_space.</html>"
+Enabled=false
+EditorType=numeric
+CallName="pp_space_count="
+MinVal=0
+MaxVal=16
+ValueDefault=0
+
+[Pp Indent Region]
+Category=10
+Description="<html>The indent for '#region' and '#endregion' in C# and '#pragma region' in<br/>C/C++. Negative values decrease indent down to the first column.</html>"
+Enabled=false
+EditorType=numeric
+CallName="pp_indent_region="
+MinVal=-16
+MaxVal=16
+ValueDefault=0
+
+[Pp Region Indent Code]
+Category=10
+Description="<html>Whether to indent the code between #region and #endregion.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=pp_region_indent_code=true|pp_region_indent_code=false
+ValueDefault=false
+
+[Pp Indent If]
+Category=10
+Description="<html>If pp_indent_at_level=true, sets the indent for #if, #else and #endif when<br/>not at file-level. Negative values decrease indent down to the first column.<br/><br/>=0: Indent preprocessors using output_tab_size<br/>&gt;0: Column at which all preprocessors will be indented</html>"
+Enabled=false
+EditorType=numeric
+CallName="pp_indent_if="
+MinVal=-16
+MaxVal=16
+ValueDefault=0
+
+[Pp If Indent Code]
+Category=10
+Description="<html>Whether to indent the code between #if, #else and #endif.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=pp_if_indent_code=true|pp_if_indent_code=false
+ValueDefault=false
+
+[Pp Indent In Guard]
+Category=10
+Description="<html>Whether to indent the body of an #if that encompasses all the code in the file.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=pp_indent_in_guard=true|pp_indent_in_guard=false
+ValueDefault=false
+
+[Pp Define At Level]
+Category=10
+Description="<html>Whether to indent '#define' at the brace level. If false, these are<br/>indented from column 1.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=pp_define_at_level=true|pp_define_at_level=false
+ValueDefault=false
+
+[Pp Include At Level]
+Category=10
+Description="<html>Whether to indent '#include' at the brace level.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=pp_include_at_level=true|pp_include_at_level=false
+ValueDefault=false
+
+[Pp Ignore Define Body]
+Category=10
+Description="<html>Whether to ignore the '#define' body while formatting.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=pp_ignore_define_body=true|pp_ignore_define_body=false
+ValueDefault=false
+
+[Pp Indent Case]
+Category=10
+Description="<html>Whether to indent case statements between #if, #else, and #endif.<br/>Only applies to the indent of the preprocesser that the case statements<br/>directly inside of.<br/><br/>Default: true</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=pp_indent_case=true|pp_indent_case=false
+ValueDefault=true
+
+[Pp Indent Func Def]
+Category=10
+Description="<html>Whether to indent whole function definitions between #if, #else, and #endif.<br/>Only applies to the indent of the preprocesser that the function definition<br/>is directly inside of.<br/><br/>Default: true</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=pp_indent_func_def=true|pp_indent_func_def=false
+ValueDefault=true
+
+[Pp Indent Extern]
+Category=10
+Description="<html>Whether to indent extern C blocks between #if, #else, and #endif.<br/>Only applies to the indent of the preprocesser that the extern block is<br/>directly inside of.<br/><br/>Default: true</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=pp_indent_extern=true|pp_indent_extern=false
+ValueDefault=true
+
+[Pp Indent Brace]
+Category=10
+Description="<html>How to indent braces directly inside #if, #else, and #endif.<br/>Requires pp_if_indent_code=true and only applies to the indent of the<br/>preprocesser that the braces are directly inside of.<br/> 0: No extra indent<br/> 1: Indent by one level<br/>-1: Preserve original indentation<br/><br/>Default: 1</html>"
+Enabled=false
+EditorType=numeric
+CallName="pp_indent_brace="
+MinVal=-1
+MaxVal=1
+ValueDefault=1
+
+[Pp Warn Unbalanced If]
+Category=10
+Description="<html>Whether to print warning messages for unbalanced #if and #else blocks.<br/>This will print a message in the following cases:<br/>- if an #ifdef block ends on a different indent level than<br/> where it started from. Example:<br/><br/> #ifdef TEST<br/> int i;<br/> {<br/> int j;<br/> #endif<br/><br/>- an #elif/#else block ends on a different indent level than<br/> the corresponding #ifdef block. Example:<br/><br/> #ifdef TEST<br/> int i;<br/> #else<br/> }<br/> int j;<br/> #endif</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=pp_warn_unbalanced_if=true|pp_warn_unbalanced_if=false
+ValueDefault=false
+
+[Include Category 0]
+Category=11
+Description="<html>The regex for include category with priority 0.</html>"
+Enabled=false
+CallName=include_category_0=
+EditorType=string
+ValueDefault=
+
+[Include Category 1]
+Category=11
+Description="<html>The regex for include category with priority 1.</html>"
+Enabled=false
+CallName=include_category_1=
+EditorType=string
+ValueDefault=
+
+[Include Category 2]
+Category=11
+Description="<html>The regex for include category with priority 2.</html>"
+Enabled=false
+CallName=include_category_2=
+EditorType=string
+ValueDefault=
+
+[Use Indent Func Call Param]
+Category=12
+Description="<html>true: indent_func_call_param will be used (default)<br/>false: indent_func_call_param will NOT be used<br/><br/>Default: true</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=use_indent_func_call_param=true|use_indent_func_call_param=false
+ValueDefault=true
+
+[Use Indent Continue Only Once]
+Category=12
+Description="<html>The value of the indentation for a continuation line is calculated<br/>differently if the statement is:<br/>- a declaration: your case with QString fileName ...<br/>- an assignment: your case with pSettings = new QSettings( ...<br/><br/>At the second case the indentation value might be used twice:<br/>- at the assignment<br/>- at the function call (if present)<br/><br/>To prevent the double use of the indentation value, use this option with the<br/>value 'true'.<br/><br/>true: indent_continue will be used only once<br/>false: indent_continue will be used every time (default)<br/><br/>Requires indent_ignore_first_continue=false.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=use_indent_continue_only_once=true|use_indent_continue_only_once=false
+ValueDefault=false
+
+[Indent Cpp Lambda Only Once]
+Category=12
+Description="<html>The indentation can be:<br/>- after the assignment, at the '[' character<br/>- at the begin of the lambda body<br/><br/>true: indentation will be after the assignment<br/>false: indentation will be at the begin of the lambda body (default)</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=indent_cpp_lambda_only_once=true|indent_cpp_lambda_only_once=false
+ValueDefault=false
+
+[Use Sp After Angle Always]
+Category=12
+Description="<html>Whether sp_after_angle takes precedence over sp_inside_fparen. This was the<br/>historic behavior, but is probably not the desired behavior, so this is off<br/>by default.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=use_sp_after_angle_always=true|use_sp_after_angle_always=false
+ValueDefault=false
+
+[Use Options Overriding For Qt Macros]
+Category=12
+Description="<html>Whether to apply special formatting for Qt SIGNAL/SLOT macros. Essentially,<br/>this tries to format these so that they match Qt's normalized form (i.e. the<br/>result of QMetaObject::normalizedSignature), which can slightly improve the<br/>performance of the QObject::connect call, rather than how they would<br/>otherwise be formatted.<br/><br/>See options_for_QT.cpp for details.<br/><br/>Default: true</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=use_options_overriding_for_qt_macros=true|use_options_overriding_for_qt_macros=false
+ValueDefault=true
+
+[Use Form Feed No More As Whitespace Character]
+Category=12
+Description="<html>If true: the form feed character is removed from the list of whitespace<br/>characters. See https://en.cppreference.com/w/cpp/string/byte/isspace.</html>"
+Enabled=false
+EditorType=boolean
+TrueFalse=use_form_feed_no_more_as_whitespace_character=true|use_form_feed_no_more_as_whitespace_character=false
+ValueDefault=false
+
+[Warn Level Tabs Found In Verbatim String Literals]
+Category=13
+Description="<html>(C#) Warning is given if doing tab-to-\t replacement and we have found one<br/>in a C# verbatim string literal.<br/><br/>Default: 2</html>"
+Enabled=false
+EditorType=numeric
+CallName="warn_level_tabs_found_in_verbatim_string_literals="
+MinVal=1
+MaxVal=3
+ValueDefault=2
+
+[Debug Max Number Of Loops]
+Category=13
+Description="<html>Limit the number of loops.<br/>Used by uncrustify.cpp to exit from infinite loop.<br/>0: no limit.</html>"
+Enabled=false
+EditorType=numeric
+CallName="debug_max_number_of_loops="
+MinVal=
+MaxVal=
+ValueDefault=0
+
+[Debug Line Number To Protocol]
+Category=13
+Description="<html>Set the number of the line to protocol;<br/>Used in the function prot_the_line if the 2. parameter is zero.<br/>0: nothing protocol.</html>"
+Enabled=false
+EditorType=numeric
+CallName="debug_line_number_to_protocol="
+MinVal=
+MaxVal=
+ValueDefault=0
+
+[Debug Timeout]
+Category=13
+Description="<html>Set the number of second(s) before terminating formatting the current file,<br/>0: no timeout.<br/>only for linux</html>"
+Enabled=false
+EditorType=numeric
+CallName="debug_timeout="
+MinVal=
+MaxVal=
+ValueDefault=0
+
+[Debug Truncate]
+Category=13
+Description="<html>Set the number of characters to be printed if the text is too long,<br/>0: do not truncate.</html>"
+Enabled=false
+EditorType=numeric
+CallName="debug_truncate="
+MinVal=0
+MaxVal=960
+ValueDefault=0
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/unmatched_close_pp.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/unmatched_close_pp.txt
index e69de29b..e69de29b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/unmatched_close_pp.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/unmatched_close_pp.txt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/v-out.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/v-out.txt
index 129af768..129af768 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/v-out.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/v-out.txt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/xyz-err.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/xyz-err.txt
index a16550ed..a16550ed 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/xyz-err.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/output/xyz-err.txt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/test_cli_options.py b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/test_cli_options.py
index 69c1c620..69c1c620 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/test_cli_options.py
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cli/test_cli_options.py
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/1225.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/1225.cfg
index cbc83adb..cbc83adb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/1225.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/1225.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/1liner-no-split.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/1liner-no-split.cfg
index 84eba64d..84eba64d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/1liner-no-split.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/1liner-no-split.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/1liner-split.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/1liner-split.cfg
index e666ea24..e666ea24 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/1liner-split.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/1liner-split.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue-2278.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue-2278.cfg
index 80ba4f6f..80ba4f6f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue-2278.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue-2278.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_2279.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_2279.cfg
index 1f646668..1f646668 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_2279.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_2279.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_2360-a.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_2360-a.cfg
index 85052020..85052020 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_2360-a.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_2360-a.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_2360-b.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_2360-b.cfg
index b61841cc..b61841cc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_2360-b.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_2360-b.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_2411.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_2411.cfg
index a4770ec9..a4770ec9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_2411.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_2411.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_2640.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_2640.cfg
index a4dd2354..a4dd2354 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_2640.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_2640.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3169.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3169.cfg
index 9feaa3d8..9feaa3d8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3169.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3169.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3233.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3233.cfg
index 71ee918b..71ee918b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3233.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3233.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3269.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3269.cfg
index 3a4bb6bf..3a4bb6bf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3269.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3269.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3272.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3272.cfg
index 2cda9402..2cda9402 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3272.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3272.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3274.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3274.cfg
index 63aa1d0c..63aa1d0c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3274.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3274.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3327.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3327.cfg
index 1470c6b5..1470c6b5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3327.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3327.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3350.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3350.cfg
index d53c8094..d53c8094 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3350.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3350.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3351.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3351.cfg
index 67df4d20..67df4d20 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3351.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3351.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3353.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3353.cfg
new file mode 100644
index 00000000..56810833
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3353.cfg
@@ -0,0 +1,3 @@
+sp_func_call_paren = remove
+indent_columns = 4
+indent_with_tabs = 0
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3356.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3356.cfg
index 2791f6c6..2791f6c6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3356.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3356.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3370.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3370.cfg
index 05f38590..05f38590 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3370.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3370.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3377.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3377.cfg
index ca7a07db..ca7a07db 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3377.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3377.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3402.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3402.cfg
new file mode 100644
index 00000000..5252c78d
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3402.cfg
@@ -0,0 +1,3 @@
+sp_after_ptr_star = add
+sp_ptr_star_func_var = force
+sp_ptr_star_func_type = remove
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3431.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3431.cfg
new file mode 100644
index 00000000..45dbff25
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3431.cfg
@@ -0,0 +1,4 @@
+indent_paren_close = 1
+pp_if_indent_code = true
+pp_indent_at_level = true
+pp_indent_at_level0 = true
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3454.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3454.cfg
new file mode 100644
index 00000000..9674606a
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3454.cfg
@@ -0,0 +1,4 @@
+indent_columns = 4
+indent_with_tabs = 0
+indent_comma_brace = -1
+indent_comma_paren = -1
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3457.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3457.cfg
new file mode 100644
index 00000000..78984566
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3457.cfg
@@ -0,0 +1 @@
+sp_type_colon = remove
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3472.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3472.cfg
new file mode 100644
index 00000000..9e1acf21
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3472.cfg
@@ -0,0 +1,3 @@
+indent_columns = 4
+indent_with_tabs = 0
+indent_bool_paren = -1
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3476.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3476.cfg
new file mode 100644
index 00000000..3fef0a75
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3476.cfg
@@ -0,0 +1,3 @@
+indent_columns = 4
+indent_with_tabs = 0
+indent_ignore_arith = true
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3480.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3480.cfg
new file mode 100644
index 00000000..d86880ad
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3480.cfg
@@ -0,0 +1,4 @@
+indent_columns = 4
+indent_with_tabs = 0
+indent_shift = -1
+align_left_shift = false
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3493.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3493.cfg
new file mode 100644
index 00000000..cfc36660
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3493.cfg
@@ -0,0 +1,3 @@
+indent_columns = 4
+indent_with_tabs = 0
+indent_ignore_semicolon = true
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3516.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3516.cfg
new file mode 100644
index 00000000..ba1f9656
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3516.cfg
@@ -0,0 +1,5 @@
+# The number of newlines after a block of variable definitions not at the top
+# of a function body.
+#
+# 0: No change (default).
+nl_var_def_blk_end = 1
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3517.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3517.cfg
new file mode 100644
index 00000000..ed31649e
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3517.cfg
@@ -0,0 +1 @@
+nl_var_def_blk_start = 1
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3518.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3518.cfg
new file mode 100644
index 00000000..6e8afc35
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3518.cfg
@@ -0,0 +1 @@
+nl_func_var_def_blk = 1
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3556.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3556.cfg
new file mode 100644
index 00000000..9840c82d
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3556.cfg
@@ -0,0 +1,3 @@
+indent_columns = 4
+indent_with_tabs = 0
+indent_ignore_assign = true
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3561.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3561.cfg
new file mode 100644
index 00000000..56965ae8
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3561.cfg
@@ -0,0 +1,3 @@
+indent_with_tabs = 0
+indent_columns = 4
+indent_ignore_first_continue = true
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3565.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3565.cfg
new file mode 100644
index 00000000..c1a793e8
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3565.cfg
@@ -0,0 +1,4 @@
+indent_with_tabs = 0
+pp_ignore_define_body = true
+sp_before_emb_cmt = ignore
+sp_after_emb_cmt = ignore
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3567-a.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3567-a.cfg
new file mode 100644
index 00000000..1659f46a
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3567-a.cfg
@@ -0,0 +1,4 @@
+indent_paren_after_func_def = true
+indent_paren_after_func_decl = true
+indent_paren_after_func_call = true
+use_indent_continue_only_once = true
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3567-b.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3567-b.cfg
new file mode 100644
index 00000000..454bc264
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3567-b.cfg
@@ -0,0 +1,4 @@
+indent_paren_after_func_def = true
+indent_paren_after_func_decl = true
+indent_paren_after_func_call = true
+use_indent_continue_only_once = false
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3580.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3580.cfg
new file mode 100644
index 00000000..fc53aac2
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3580.cfg
@@ -0,0 +1,3 @@
+indent_with_tabs = 0
+indent_columns = 4
+indent_ignore_case_brace = true
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3582.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3582.cfg
new file mode 100644
index 00000000..d6b1a287
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3582.cfg
@@ -0,0 +1,5 @@
+indent_with_tabs = 0
+indent_columns = 4
+pp_indent_at_level = true
+pp_if_indent_code = true
+pp_indent_brace = -1
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3601.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3601.cfg
new file mode 100644
index 00000000..3537fd11
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/Issue_3601.cfg
@@ -0,0 +1,2 @@
+#Config file
+sp_after_ptr_star = remove
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/add_long_closebrace_comment_1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/add_long_closebrace_comment_1.cfg
index b8190eb1..b8190eb1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/add_long_closebrace_comment_1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/add_long_closebrace_comment_1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align-2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/align-2.cfg
index ea78a8d4..ea78a8d4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align-2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/align-2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align-3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/align-3.cfg
index 1b46c840..1b46c840 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align-3.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/align-3.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_attr.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/align_attr.cfg
index 3249cd7b..3249cd7b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_attr.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/align_attr.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_func_proto_star_amp-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/align_func_proto_star_amp-1.cfg
index 83874b8b..83874b8b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_func_proto_star_amp-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/align_func_proto_star_amp-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_func_proto_star_amp-2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/align_func_proto_star_amp-2.cfg
index 3afaa70a..3afaa70a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_func_proto_star_amp-2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/align_func_proto_star_amp-2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_func_proto_star_amp-3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/align_func_proto_star_amp-3.cfg
index 1b1e7541..1b1e7541 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_func_proto_star_amp-3.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/align_func_proto_star_amp-3.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_func_proto_star_amp-4.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/align_func_proto_star_amp-4.cfg
index 391526e0..391526e0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_func_proto_star_amp-4.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/align_func_proto_star_amp-4.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_func_proto_star_amp-5.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/align_func_proto_star_amp-5.cfg
index 7fd9cd6c..7fd9cd6c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_func_proto_star_amp-5.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/align_func_proto_star_amp-5.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_func_proto_star_amp-6.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/align_func_proto_star_amp-6.cfg
index 00d18433..00d18433 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_func_proto_star_amp-6.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/align_func_proto_star_amp-6.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_func_proto_star_amp-7.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/align_func_proto_star_amp-7.cfg
index 64af8258..64af8258 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_func_proto_star_amp-7.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/align_func_proto_star_amp-7.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_func_proto_star_amp-8.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/align_func_proto_star_amp-8.cfg
index 4531b895..4531b895 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_func_proto_star_amp-8.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/align_func_proto_star_amp-8.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_func_proto_star_amp-9.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/align_func_proto_star_amp-9.cfg
index 2b2b6b02..2b2b6b02 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_func_proto_star_amp-9.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/align_func_proto_star_amp-9.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_keep_extra.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/align_keep_extra.cfg
index fcaab9f2..fcaab9f2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_keep_extra.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/align_keep_extra.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_right_cmt_gap-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/align_right_cmt_gap-1.cfg
index 46aaf838..46aaf838 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_right_cmt_gap-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/align_right_cmt_gap-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_sf_call_span_418.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/align_sf_call_span_418.cfg
index cdf7f052..cdf7f052 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_sf_call_span_418.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/align_sf_call_span_418.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_sf_call_span_419.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/align_sf_call_span_419.cfg
index a11c2102..a11c2102 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_sf_call_span_419.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/align_sf_call_span_419.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_sf_call_thresh_416.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/align_sf_call_thresh_416.cfg
index 6280b856..6280b856 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_sf_call_thresh_416.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/align_sf_call_thresh_416.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_sf_call_thresh_417.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/align_sf_call_thresh_417.cfg
index 9d09abb2..9d09abb2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_sf_call_thresh_417.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/align_sf_call_thresh_417.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_stack.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/align_stack.cfg
index d53a6bb3..d53a6bb3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_stack.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/align_stack.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_typedef_func-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/align_typedef_func-1.cfg
index ea45e4d8..ea45e4d8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_typedef_func-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/align_typedef_func-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_typedef_func-2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/align_typedef_func-2.cfg
index 252f07ea..252f07ea 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_typedef_func-2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/align_typedef_func-2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_typedef_gap-3_span-5.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/align_typedef_gap-3_span-5.cfg
index 338f078f..338f078f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_typedef_gap-3_span-5.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/align_typedef_gap-3_span-5.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_047.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_047.cfg
index 2af44bb3..2af44bb3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_047.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_047.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_048.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_048.cfg
index 81d0ba54..81d0ba54 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_048.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_048.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_049.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_049.cfg
index b8e6f708..b8e6f708 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_049.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_049.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_050.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_050.cfg
index 0f0e30ac..0f0e30ac 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_050.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_050.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_051.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_051.cfg
index 786fb030..786fb030 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_051.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_051.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_052.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_052.cfg
index ba150be7..ba150be7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_052.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_052.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_053.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_053.cfg
index 7cf1c682..7cf1c682 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_053.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_053.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_054.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_054.cfg
index 56661763..56661763 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_054.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_054.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_055.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_055.cfg
index f050b219..f050b219 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_055.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_055.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_056.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_056.cfg
index 43e9f6cc..43e9f6cc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_056.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_056.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_057.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_057.cfg
index fbf24d72..fbf24d72 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_057.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_057.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_058.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_058.cfg
index 7c908d56..7c908d56 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_058.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_058.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_061.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_061.cfg
index 89f76fae..89f76fae 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_061.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_061.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_063.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_063.cfg
index 3c5e88f1..3c5e88f1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_063.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_063.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_064.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_064.cfg
index f56efbdf..f56efbdf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_064.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_064.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_065.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_065.cfg
index 21d55b16..21d55b16 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_065.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_065.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_069.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_069.cfg
index d42173e1..d42173e1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_069.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_069.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_070.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_070.cfg
index f304ca8a..f304ca8a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_070.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_070.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_071.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_071.cfg
index 869f2a94..869f2a94 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_071.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_071.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_072.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_072.cfg
index 973d8c6c..973d8c6c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_072.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_072.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_073.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_073.cfg
index 49f69643..49f69643 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_073.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_073.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_074.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_074.cfg
index 31a1de44..31a1de44 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_074.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_074.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_075.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_075.cfg
index 9eca8a9b..9eca8a9b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_075.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_075.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_076.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_076.cfg
index fb27ba74..fb27ba74 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_076.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_076.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_077.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_077.cfg
index 4e9760f7..4e9760f7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_077.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_077.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_078.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_078.cfg
index 54fcc628..54fcc628 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_078.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_078.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_079.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_079.cfg
index 77a732e5..77a732e5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_079.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_079.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_080.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_080.cfg
index 45e16a8d..45e16a8d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_080.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_080.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_081.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_081.cfg
index dc15820d..dc15820d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_081.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_081.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_083.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_083.cfg
index 2ccee465..2ccee465 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_083.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_083.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_084.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_084.cfg
index bbb0e675..bbb0e675 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_084.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_084.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_085.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_085.cfg
index b02673d7..b02673d7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_085.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_085.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_086.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_086.cfg
index 7ffcd831..7ffcd831 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_086.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_086.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_087.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_087.cfg
index 2184c985..2184c985 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_087.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_087.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_088.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_088.cfg
index 19cc7dc4..19cc7dc4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_088.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_088.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_089.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_089.cfg
index d3c152df..d3c152df 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_089.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_089.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_090.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_090.cfg
index eba1ab79..eba1ab79 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_090.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_090.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_091.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_091.cfg
index aec90af1..aec90af1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_091.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_091.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_092.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_092.cfg
index bb993d75..bb993d75 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_092.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_092.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_093.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_093.cfg
index 4e50b52b..4e50b52b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_093.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_093.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_094.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_094.cfg
index 9ab0c51f..9ab0c51f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_094.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_094.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_095.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_095.cfg
index edb10a4f..edb10a4f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_095.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ben_095.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/bool-pos-eol-break.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/bool-pos-eol-break.cfg
index d2abdeb6..d2abdeb6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/bool-pos-eol-break.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/bool-pos-eol-break.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/bool-pos-eol.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/bool-pos-eol.cfg
index f7fe1330..f7fe1330 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/bool-pos-eol.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/bool-pos-eol.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/bool-pos-sol-break.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/bool-pos-sol-break.cfg
index e07ab7e9..e07ab7e9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/bool-pos-sol-break.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/bool-pos-sol-break.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/bool-pos-sol-force.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/bool-pos-sol-force.cfg
index 36f81a26..36f81a26 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/bool-pos-sol-force.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/bool-pos-sol-force.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/bool-pos-sol.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/bool-pos-sol.cfg
index 9dbcbaf2..9dbcbaf2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/bool-pos-sol.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/bool-pos-sol.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/brace-banner.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/brace-banner.cfg
index 2fc753a6..2fc753a6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/brace-banner.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/brace-banner.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/brace-banner.rerun.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/brace-banner.rerun.cfg
index df289545..df289545 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/brace-banner.rerun.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/brace-banner.rerun.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/brace-gnu.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/brace-gnu.cfg
index c5bd1371..c5bd1371 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/brace-gnu.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/brace-gnu.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/brace-kr-br.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/brace-kr-br.cfg
index 59bc4084..59bc4084 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/brace-kr-br.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/brace-kr-br.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/brace-kr-nobr.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/brace-kr-nobr.cfg
index 970b1ab0..970b1ab0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/brace-kr-nobr.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/brace-kr-nobr.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/brace-kr.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/brace-kr.cfg
index 7ef5aa16..7ef5aa16 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/brace-kr.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/brace-kr.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/brace-remove-2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/brace-remove-2.cfg
index 9aa693fc..9aa693fc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/brace-remove-2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/brace-remove-2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/brace-remove-all.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/brace-remove-all.cfg
index ca279abd..ca279abd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/brace-remove-all.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/brace-remove-all.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/brace-ws.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/brace-ws.cfg
index 76d8908a..76d8908a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/brace-ws.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/brace-ws.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/brace-ws2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/brace-ws2.cfg
index 55eb6ece..55eb6ece 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/brace-ws2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/brace-ws2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/bug_1702.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/bug_1702.cfg
index 1c415eec..1c415eec 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/bug_1702.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/bug_1702.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/bug_1718.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/bug_1718.cfg
index e55de095..e55de095 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/bug_1718.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/bug_1718.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/bug_2331.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/bug_2331.cfg
index 4a4af2f3..4a4af2f3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/bug_2331.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/bug_2331.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/bug_489.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/bug_489.cfg
index 61d4693c..61d4693c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/bug_489.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/bug_489.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/bug_i_771.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/bug_i_771.cfg
index 69b6e1a3..69b6e1a3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/bug_i_771.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/bug_i_771.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/case-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/case-1.cfg
index 7c65a819..7c65a819 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/case-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/case-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/case-2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/case-2.cfg
index 07c0566d..07c0566d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/case-2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/case-2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/case-3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/case-3.cfg
index 74f16293..74f16293 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/case-3.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/case-3.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cast-sp-a.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/cast-sp-a.cfg
index 488198a9..488198a9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cast-sp-a.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/cast-sp-a.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cast-sp-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/cast-sp-r.cfg
index 1d0138a2..1d0138a2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cast-sp-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/cast-sp-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cast-type.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/cast-type.cfg
index 5900ffd5..5900ffd5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cast-type.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/cast-type.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cgal.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/cgal.cfg
index a4ec1fa0..a4ec1fa0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cgal.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/cgal.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/clang-has_include.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/clang-has_include.cfg
index 35d668f3..35d668f3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/clang-has_include.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/clang-has_include.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cmt_indent_multi-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/cmt_indent_multi-f.cfg
index 1bd265a3..1bd265a3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cmt_indent_multi-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/cmt_indent_multi-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cmt_multi_check_last-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/cmt_multi_check_last-f.cfg
index 7fdebde0..7fdebde0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cmt_multi_check_last-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/cmt_multi_check_last-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cmt_nl_end.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/cmt_nl_end.cfg
index 1c0b396a..1c0b396a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cmt_nl_end.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/cmt_nl_end.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cmt_reflow.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/cmt_reflow.cfg
index 9b280d18..9b280d18 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cmt_reflow.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/cmt_reflow.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/code_width-80.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/code_width-80.cfg
index 4bdb0ce7..4bdb0ce7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/code_width-80.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/code_width-80.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cond-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/cond-1.cfg
index 61669da9..61669da9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cond-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/cond-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cpp_to_c-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/cpp_to_c-1.cfg
index 83e3aa7c..83e3aa7c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cpp_to_c-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/cpp_to_c-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cpp_to_c-2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/cpp_to_c-2.cfg
index 9f0d9e3a..9f0d9e3a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cpp_to_c-2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/cpp_to_c-2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cpp_to_c-3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/cpp_to_c-3.cfg
index 20bbb9e1..20bbb9e1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cpp_to_c-3.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/cpp_to_c-3.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/custom_types_ssl.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/custom_types_ssl.cfg
index 4005234e..4005234e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/custom_types_ssl.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/custom_types_ssl.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/doxy-comment-no.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/doxy-comment-no.cfg
index bd2bd258..bd2bd258 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/doxy-comment-no.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/doxy-comment-no.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/doxy-comment-yes.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/doxy-comment-yes.cfg
new file mode 100644
index 00000000..bc1d5584
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/doxy-comment-yes.cfg
@@ -0,0 +1,13 @@
+sp_cmt_cpp_start = add
+sp_cmt_cpp_doxygen = true
+nl_start_of_file = add
+nl_start_of_file_min = 5
+nl_end_of_file = add
+nl_end_of_file_min = 2
+align_on_tabstop = true
+align_var_def_span = 8
+align_var_def_gap = 8
+align_right_cmt_span = 16
+align_right_cmt_at_col = 64
+
+cmt_cpp_to_c = true
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/else-if-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/else-if-1.cfg
index b4e4aecb..b4e4aecb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/else-if-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/else-if-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/else-if-2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/else-if-2.cfg
index 75d7936e..75d7936e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/else-if-2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/else-if-2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/empty_body.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/empty_body.cfg
index 4563a84f..4563a84f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/empty_body.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/empty_body.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/endif.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/endif.cfg
index ff69251b..ff69251b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/endif.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/endif.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/enum_comma_ifdef.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/enum_comma_ifdef.cfg
index a2622767..a2622767 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/enum_comma_ifdef.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/enum_comma_ifdef.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/force_tab_after_define-t.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/force_tab_after_define-t.cfg
index 67b04e78..67b04e78 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/force_tab_after_define-t.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/force_tab_after_define-t.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/freebsd.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/freebsd.cfg
index 725b00b0..725b00b0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/freebsd.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/freebsd.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/func_call_user.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/func_call_user.cfg
index 504fb3d8..504fb3d8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/func_call_user.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/func_call_user.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ger.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ger.cfg
index 976c0c35..976c0c35 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ger.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ger.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/i1564.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/i1564.cfg
index 74c53e52..74c53e52 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/i1564.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/i1564.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/if_chain.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/if_chain.cfg
new file mode 100644
index 00000000..d3449cc5
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/if_chain.cfg
@@ -0,0 +1,11 @@
+sp_before_sparen = force
+sp_inside_sparen = remove
+sp_else_brace = force
+sp_brace_else = force
+nl_if_brace = remove
+nl_brace_else = remove
+nl_else_brace = remove
+align_right_cmt_span = 3
+mod_full_brace_if_chain = 1
+mod_full_brace_nl = 3
+mod_full_brace_while = remove
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent-1.cfg
index 943d0eb6..943d0eb6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent-vbrace.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent-vbrace.cfg
index 7e6ca7c1..7e6ca7c1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent-vbrace.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent-vbrace.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_assign.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent_assign.cfg
index 6bad61f1..6bad61f1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_assign.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent_assign.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_case_comment-false.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent_case_comment-false.cfg
index 15e0e2e8..15e0e2e8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_case_comment-false.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent_case_comment-false.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_case_comment-true.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent_case_comment-true.cfg
index abcadd59..abcadd59 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_case_comment-true.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent_case_comment-true.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_comment_align_thresh-0.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent_comment_align_thresh-0.cfg
index dc730bf8..dc730bf8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_comment_align_thresh-0.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent_comment_align_thresh-0.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_compound_literal_return-false.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent_compound_literal_return-false.cfg
index b686aabe..b686aabe 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_compound_literal_return-false.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent_compound_literal_return-false.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_compound_literal_return-true.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent_compound_literal_return-true.cfg
index 9fa1d2ef..9fa1d2ef 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_compound_literal_return-true.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent_compound_literal_return-true.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_func_call_param.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent_func_call_param.cfg
index 26b4e03a..26b4e03a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_func_call_param.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent_func_call_param.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_func_def_param.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent_func_def_param.cfg
index c448b21f..c448b21f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_func_def_param.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent_func_def_param.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_func_param.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent_func_param.cfg
index 7db464b4..7db464b4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_func_param.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent_func_param.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_func_proto_param.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent_func_proto_param.cfg
index 6cfb83ed..6cfb83ed 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_func_proto_param.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent_func_proto_param.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent_ignore_bool-true.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent_ignore_bool-true.cfg
new file mode 100644
index 00000000..0f952471
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent_ignore_bool-true.cfg
@@ -0,0 +1 @@
+indent_ignore_bool = true
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_macro_brace-false.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent_macro_brace-false.cfg
index f9e3bdca..f9e3bdca 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_macro_brace-false.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent_macro_brace-false.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_macro_brace-true.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent_macro_brace-true.cfg
index 62573cad..62573cad 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_macro_brace-true.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent_macro_brace-true.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent_paren_close--1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent_paren_close--1.cfg
new file mode 100644
index 00000000..0656a55f
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent_paren_close--1.cfg
@@ -0,0 +1 @@
+indent_paren_close = -1
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent_paren_close-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent_paren_close-1.cfg
new file mode 100644
index 00000000..e380b281
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent_paren_close-1.cfg
@@ -0,0 +1,6 @@
+sp_after_comma = force
+sp_inside_fparen = force
+indent_paren_close = 1
+indent_comma_paren = 1
+indent_bool_paren = 1
+pos_comma = lead
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_paren_close-2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent_paren_close-2.cfg
index 2a77fedf..2a77fedf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_paren_close-2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent_paren_close-2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_single_line_comments_after.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent_single_line_comments_after.cfg
index bae9787c..bae9787c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_single_line_comments_after.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent_single_line_comments_after.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_sparen_extra-8.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent_sparen_extra-8.cfg
index 6344ceb2..6344ceb2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_sparen_extra-8.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent_sparen_extra-8.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_ternary_operator-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent_ternary_operator-1.cfg
index 80ea4e7a..80ea4e7a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_ternary_operator-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent_ternary_operator-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_ternary_operator-2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent_ternary_operator-2.cfg
index 1d5a91ab..1d5a91ab 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_ternary_operator-2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/indent_ternary_operator-2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/issue_527.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/issue_527.cfg
new file mode 100644
index 00000000..aa11dbbc
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/issue_527.cfg
@@ -0,0 +1,266 @@
+## Ingres coding style config for http://uncrustify.sourceforge.net/
+##
+## Based on defaults.cfg file (from uncrustify-0.40).
+## Main diffs are spaces for tabs and tab length.
+### FIXME find out why old 0.38 version removed spaces in "# if..." 0.40 retains them.
+##
+## There is a GUI from http://universalindent.sourceforge.net/
+## which can use different formatters too, e.g.
+## gnu indent (no suport for EXEC SQL)
+## bcpp
+
+## FIXME try different settings for indent_preserve_sql - not seeing any difference!
+##indent_preserve_sql = false # false/true
+
+# How to run:
+# $ uncrustify -c ./ingres.cfg -f dirtyfile.c > cleanfile.c
+# > uncrustify -c ingres.cfg -f dirtyfile.c > cleanfile.c
+#
+
+##############################
+
+newlines = auto
+input_tab_size = 4
+output_tab_size = 4
+string_escape_char = 92
+string_escape_char2 = 0
+indent_columns = 4
+indent_with_tabs = 0
+indent_align_string = false
+indent_xml_string = 0
+indent_brace = 0
+indent_braces = false
+indent_braces_no_func = false
+indent_brace_parent = false
+indent_namespace = false
+indent_class = false
+indent_class_colon = false
+indent_func_call_param = false
+indent_member = 0
+indent_single_line_comments_before = 0
+indent_switch_case = indent_columns
+indent_case_shift = 0
+indent_case_brace = 0
+indent_col1_comment = false
+indent_label = 1
+indent_access_spec = 1
+indent_paren_nl = false
+indent_paren_close = 0
+indent_comma_paren = 0
+indent_bool_paren = 0
+indent_square_nl = false
+indent_preserve_sql = false
+sp_arith = ignore
+sp_assign = ignore
+sp_bool = ignore
+sp_compare = ignore
+sp_inside_paren = ignore
+sp_paren_paren = ignore
+sp_balance_nested_parens = false
+sp_paren_brace = ignore
+sp_before_ptr_star = ignore
+sp_between_ptr_star = ignore
+sp_after_ptr_star = ignore
+sp_before_byref = ignore
+sp_after_byref = ignore
+sp_before_angle = ignore
+sp_after_angle = ignore
+sp_angle_paren = ignore
+sp_angle_word = ignore
+sp_before_sparen = add
+sp_inside_sparen = remove
+sp_after_sparen = remove
+sp_sparen_brace = ignore
+sp_special_semi = ignore
+sp_before_semi = remove
+sp_before_semi_for = ignore
+sp_before_semi_for_empty = ignore
+sp_between_semi_for_empty = ignore
+sp_after_semi_for_empty = ignore
+sp_before_square = remove
+sp_before_squares = remove
+sp_inside_square = remove
+sp_after_comma = add
+sp_before_comma = remove
+sp_after_operator = ignore
+sp_after_cast = add
+sp_inside_paren_cast = remove
+sp_sizeof_paren = remove
+sp_after_tag = ignore
+sp_inside_braces_enum = ignore
+sp_inside_braces_struct = ignore
+sp_inside_braces = ignore
+sp_inside_angle = remove
+sp_type_func = remove
+sp_func_proto_paren = remove
+sp_func_def_paren = remove
+sp_inside_fparens = remove
+sp_inside_fparen = remove
+sp_square_fparen = ignore
+sp_fparen_brace = ignore
+sp_func_call_paren = ignore
+sp_func_class_paren = ignore
+sp_return_paren = ignore
+sp_attribute_paren = ignore
+sp_macro = ignore
+sp_macro_func = ignore
+sp_else_brace = ignore
+sp_brace_else = ignore
+sp_catch_brace = ignore
+sp_brace_catch = ignore
+sp_finally_brace = ignore
+sp_brace_finally = ignore
+sp_try_brace = ignore
+sp_getset_brace = ignore
+sp_before_dc = ignore
+sp_after_dc = ignore
+sp_d_array_colon = ignore
+sp_not = remove
+sp_inv = remove
+sp_addr = remove
+sp_deref = remove
+align_keep_tabs = false
+align_with_tabs = false
+align_on_tabstop = false
+align_number_right = false
+align_func_params = false
+align_var_def_span = 1
+align_var_def_star_style = 1
+align_var_def_amp_style = 0
+align_var_def_thresh = 0
+align_var_def_colon = false
+align_var_def_inline = false
+align_assign_span = 0
+align_assign_thresh = 0
+align_enum_equ_span = 0
+align_enum_equ_thresh = 0
+align_var_struct_span = 0
+align_var_struct_thresh = 0
+align_struct_init_span = 0
+align_typedef_gap = 0
+align_typedef_span = 0
+align_typedef_func = 0
+align_typedef_star_style = 0
+align_typedef_amp_style = 0
+align_right_cmt_span = 0
+align_func_proto_span = 0
+align_nl_cont = false
+align_pp_define_gap = 0
+align_pp_define_span = 0
+nl_collapse_empty_body = false
+nl_assign_leave_one_liners = false
+nl_class_leave_one_liners = false
+nl_enum_leave_one_liners = false
+nl_getset_leave_one_liners = false
+nl_func_leave_one_liners = false
+nl_if_leave_one_liners = false
+nl_start_of_file = ignore
+nl_start_of_file_min = 0
+nl_end_of_file = ignore
+nl_end_of_file_min = 0
+nl_assign_brace = ignore
+nl_assign_square = ignore
+nl_after_square_assign = ignore
+nl_func_var_def_blk = 0
+nl_fcall_brace = ignore
+nl_enum_brace = ignore
+nl_struct_brace = ignore
+nl_union_brace = ignore
+nl_if_brace = force
+nl_brace_else = force
+nl_elseif_brace = force
+nl_else_brace = force
+nl_brace_finally = ignore
+nl_finally_brace = ignore
+nl_try_brace = ignore
+nl_getset_brace = ignore
+nl_for_brace = force
+nl_catch_brace = ignore
+nl_brace_catch = ignore
+nl_while_brace = force
+nl_do_brace = force
+nl_brace_while = force
+nl_switch_brace = force
+nl_multi_line_cond = false
+nl_before_case = false
+nl_after_case = false
+nl_namespace_brace = ignore
+nl_template_class = ignore
+nl_class_brace = ignore
+nl_class_init_args = ignore
+nl_func_type_name = ignore
+nl_func_paren = force
+nl_func_decl_start = ignore
+nl_func_decl_args = ignore
+nl_func_decl_end = ignore
+nl_fdef_brace = ignore
+nl_after_return = false
+nl_after_semicolon = false
+nl_after_brace_open = false
+nl_after_vbrace_open = false
+nl_define_macro = false
+nl_squeeze_ifdef = false
+nl_before_if = ignore
+nl_after_if = ignore
+nl_before_for = ignore
+nl_after_for = ignore
+nl_before_while = ignore
+nl_after_while = ignore
+nl_before_switch = ignore
+nl_after_switch = ignore
+nl_before_do = ignore
+nl_after_do = ignore
+nl_ds_struct_enum_cmt = false
+nl_ds_struct_enum_close_brace = false
+nl_class_colon = ignore
+nl_create_if_one_liner = false
+nl_create_for_one_liner = false
+nl_create_while_one_liner = false
+pos_bool = ignore
+pos_comma = ignore
+pos_class_comma = ignore
+pos_class_colon = ignore
+code_width = 0
+ls_for_split_full = false
+ls_func_split_full = false
+nl_max = 0
+nl_after_func_proto = 0
+nl_after_func_proto_group = 0
+nl_after_func_body = 0
+nl_after_func_body_one_liner = 0
+nl_before_block_comment = 0
+nl_before_c_comment = 0
+nl_before_cpp_comment = 0
+nl_after_multiline_comment = false
+nl_before_access_spec = 0
+nl_after_access_spec = 0
+eat_blanks_after_open_brace = false
+eat_blanks_before_close_brace = false
+mod_full_brace_do = ignore
+mod_full_brace_for = ignore
+mod_full_brace_function = ignore
+mod_full_brace_if = ignore
+mod_full_brace_nl = 0
+mod_full_brace_while = ignore
+mod_paren_on_return = ignore
+mod_pawn_semicolon = false
+mod_full_paren_if_bool = false
+mod_remove_extra_semicolon = false
+cmt_width = 0
+cmt_c_group = false
+cmt_c_nl_start = false
+cmt_c_nl_end = false
+cmt_cpp_group = false
+cmt_cpp_nl_start = false
+cmt_cpp_nl_end = false
+cmt_cpp_to_c = false
+cmt_star_cont = false
+cmt_sp_before_star_cont = 0
+cmt_sp_after_star_cont = 0
+pp_indent = ignore
+pp_indent_at_level = false
+pp_space = ignore
+pp_indent_region = 0
+pp_region_indent_code = false
+pp_indent_if = 0
+pp_if_indent_code = false
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/label_colon_nl_1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/label_colon_nl_1.cfg
index 5c394f28..5c394f28 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/label_colon_nl_1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/label_colon_nl_1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/label_colon_nl_2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/label_colon_nl_2.cfg
index b1fafca7..b1fafca7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/label_colon_nl_2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/label_colon_nl_2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/leave_one_liners.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/leave_one_liners.cfg
index 931e9465..931e9465 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/leave_one_liners.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/leave_one_liners.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/mod-paren.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/mod-paren.cfg
index 2c0049ab..2c0049ab 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/mod-paren.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/mod-paren.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/mod-paren2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/mod-paren2.cfg
index 113ee868..113ee868 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/mod-paren2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/mod-paren2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/mod_case_brace_add.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/mod_case_brace_add.cfg
index bfcca51a..bfcca51a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/mod_case_brace_add.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/mod_case_brace_add.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/mod_move_case_brace.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/mod_move_case_brace.cfg
index acb25734..acb25734 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/mod_move_case_brace.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/mod_move_case_brace.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/mod_move_case_return.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/mod_move_case_return.cfg
new file mode 100644
index 00000000..0e698ea9
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/mod_move_case_return.cfg
@@ -0,0 +1 @@
+mod_move_case_return = true
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/my_conf.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/my_conf.cfg
index 6bfddbb5..6bfddbb5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/my_conf.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/my_conf.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nepenthes.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/nepenthes.cfg
index 150294da..150294da 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nepenthes.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/nepenthes.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/newline_after_endif.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/newline_after_endif.cfg
index afd7693d..afd7693d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/newline_after_endif.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/newline_after_endif.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl-comment.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/nl-comment.cfg
index c6ef78f9..c6ef78f9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl-comment.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/nl-comment.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_assign1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/nl_assign1.cfg
index 1f4da850..1f4da850 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_assign1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/nl_assign1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_assign2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/nl_assign2.cfg
index b4cfb4d1..b4cfb4d1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_assign2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/nl_assign2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_before_return_false.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/nl_before_return_false.cfg
index 7636745b..7636745b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_before_return_false.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/nl_before_return_false.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_before_return_true.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/nl_before_return_true.cfg
index 1e6976fc..1e6976fc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_before_return_true.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/nl_before_return_true.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_brace_test.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/nl_brace_test.cfg
index c9faeb04..c9faeb04 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_brace_test.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/nl_brace_test.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_create_one_liner.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/nl_create_one_liner.cfg
index ec8b120c..ec8b120c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_create_one_liner.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/nl_create_one_liner.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_ds_struct_enum-2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/nl_ds_struct_enum-2.cfg
index 01c60de4..01c60de4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_ds_struct_enum-2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/nl_ds_struct_enum-2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_ds_struct_enum_cmt-t.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/nl_ds_struct_enum_cmt-t.cfg
index 1864b51d..1864b51d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_ds_struct_enum_cmt-t.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/nl_ds_struct_enum_cmt-t.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_endif.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/nl_endif.cfg
index b056153e..b056153e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_endif.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/nl_endif.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_enum_own_lines-3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/nl_enum_own_lines-3.cfg
index b6a28869..b6a28869 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_enum_own_lines-3.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/nl_enum_own_lines-3.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_enum_own_lines-3.rerun.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/nl_enum_own_lines-3.rerun.cfg
index f0d3f7b2..f0d3f7b2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_enum_own_lines-3.rerun.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/nl_enum_own_lines-3.rerun.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_enum_own_lines-4.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/nl_enum_own_lines-4.cfg
index 70973ec8..70973ec8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_enum_own_lines-4.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/nl_enum_own_lines-4.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_enum_own_lines-a.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/nl_enum_own_lines-a.cfg
index 66e7dbfa..66e7dbfa 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_enum_own_lines-a.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/nl_enum_own_lines-a.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_semicolon.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/nl_semicolon.cfg
index d099e0c7..d099e0c7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_semicolon.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/nl_semicolon.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_whole_file_ifdef.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/nl_whole_file_ifdef.cfg
index 1d6a585a..1d6a585a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_whole_file_ifdef.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/nl_whole_file_ifdef.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pascal_ptr.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/pascal_ptr.cfg
index 1760abca..1760abca 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pascal_ptr.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/pascal_ptr.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pos_compare-eol.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/pos_compare-eol.cfg
index 90267209..90267209 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pos_compare-eol.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/pos_compare-eol.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pos_compare-sol.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/pos_compare-sol.cfg
index a4235d7d..a4235d7d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pos_compare-sol.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/pos_compare-sol.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pos_conditional-l.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/pos_conditional-l.cfg
index 11eb46fd..11eb46fd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pos_conditional-l.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/pos_conditional-l.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pos_conditional-t.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/pos_conditional-t.cfg
index 79bb52d0..79bb52d0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pos_conditional-t.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/pos_conditional-t.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp-indent-2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/pp-indent-2.cfg
index 64f53643..64f53643 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp-indent-2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/pp-indent-2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp-space.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/pp-space.cfg
index e91685ab..e91685ab 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp-space.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/pp-space.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp_if_indent-0.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/pp_if_indent-0.cfg
index 82f11f27..82f11f27 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp_if_indent-0.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/pp_if_indent-0.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp_if_indent-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/pp_if_indent-1.cfg
index 7c01e819..7c01e819 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp_if_indent-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/pp_if_indent-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp_if_indent-2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/pp_if_indent-2.cfg
index 6f912806..6f912806 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp_if_indent-2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/pp_if_indent-2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp_if_indent-3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/pp_if_indent-3.cfg
index 4b876498..4b876498 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp_if_indent-3.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/pp_if_indent-3.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp_if_indent-4.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/pp_if_indent-4.cfg
index fe29f734..fe29f734 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp_if_indent-4.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/pp_if_indent-4.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/pp_if_indent_code-true.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/pp_if_indent_code-true.cfg
new file mode 100644
index 00000000..cb00f671
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/pp_if_indent_code-true.cfg
@@ -0,0 +1 @@
+pp_if_indent_code = true
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp_include_at_level-false.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/pp_include_at_level-false.cfg
index 6f780147..6f780147 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp_include_at_level-false.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/pp_include_at_level-false.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp_include_at_level-true.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/pp_include_at_level-true.cfg
index bc062b9f..bc062b9f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp_include_at_level-true.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/pp_include_at_level-true.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp_indent-a.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/pp_indent-a.cfg
index f9f9b3b3..f9f9b3b3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp_indent-a.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/pp_indent-a.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/pp_indent_brace--1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/pp_indent_brace--1.cfg
new file mode 100644
index 00000000..ecd054cb
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/pp_indent_brace--1.cfg
@@ -0,0 +1,2 @@
+pp_if_indent_code = true
+pp_indent_brace = -1
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp_indent_in_guard.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/pp_indent_in_guard.cfg
index 2c4e2545..2c4e2545 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp_indent_in_guard.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/pp_indent_in_guard.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp_ret.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/pp_ret.cfg
index b1fb2000..b1fb2000 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp_ret.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/pp_ret.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/preproc-cleanup.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/preproc-cleanup.cfg
index 73fc557c..73fc557c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/preproc-cleanup.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/preproc-cleanup.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ptr-arith.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ptr-arith.cfg
index ff1949d3..ff1949d3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ptr-arith.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/ptr-arith.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/rdan.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/rdan.cfg
new file mode 100644
index 00000000..4eb5f019
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/rdan.cfg
@@ -0,0 +1,33 @@
+sp_arith = force
+sp_assign = force
+sp_enum_assign = force
+sp_bool = force
+sp_compare = force
+sp_inside_paren = remove
+sp_before_sparen = force
+indent_columns = 3
+indent_with_tabs = 0
+indent_func_def_force_col1 = true
+indent_col1_comment = true
+indent_bool_paren = 1
+indent_first_bool_expr = true
+nl_func_var_def_blk = 2
+nl_if_brace = force
+nl_while_brace = force
+nl_after_semicolon = true
+nl_max = 3
+nl_after_func_proto_group = 2
+nl_after_func_body = 2
+pos_bool = lead_force
+pos_compare = lead
+code_width = 80
+ls_for_split_full = true
+align_assign_span = 1
+align_enum_equ_span = 1
+cmt_width = 80
+cmt_star_cont = true
+mod_full_paren_if_bool = true
+pp_indent = add
+pp_indent_at_level = true
+pp_indent_count = 3
+pp_if_indent_code = true
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/return-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/return-1.cfg
index 996ca632..996ca632 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/return-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/return-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/return-2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/return-2.cfg
index 87b361d8..87b361d8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/return-2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/return-2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/return-3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/return-3.cfg
index 9caf1a7e..9caf1a7e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/return-3.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/return-3.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/return-4.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/return-4.cfg
index 9a885287..9a885287 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/return-4.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/return-4.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sf537.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sf537.cfg
index 400c7e0b..400c7e0b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sf537.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sf537.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sf538.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sf538.cfg
index 8c6d149b..8c6d149b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sf538.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sf538.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_after_pointer_star-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sp_after_pointer_star-r.cfg
index 92a637a1..92a637a1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_after_pointer_star-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sp_after_pointer_star-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_after_sparen.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sp_after_sparen.cfg
index c9b9afbf..c9b9afbf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_after_sparen.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sp_after_sparen.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_between_semi_for_empty-i.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sp_between_semi_for_empty-i.cfg
index 146f6d61..146f6d61 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_between_semi_for_empty-i.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sp_between_semi_for_empty-i.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_between_semi_for_empty-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sp_between_semi_for_empty-r.cfg
index 26dcc001..26dcc001 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_between_semi_for_empty-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sp_between_semi_for_empty-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_cmt_cpp_start-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sp_cmt_cpp_start-r.cfg
index 13ceebfc..13ceebfc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_cmt_cpp_start-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sp_cmt_cpp_start-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_cond_colon.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sp_cond_colon.cfg
index d39afa14..d39afa14 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_cond_colon.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sp_cond_colon.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_emb_cmt-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sp_emb_cmt-f.cfg
index 68a83e91..68a83e91 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_emb_cmt-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sp_emb_cmt-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_emb_cmt-i.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sp_emb_cmt-i.cfg
index 04f49ee7..04f49ee7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_emb_cmt-i.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sp_emb_cmt-i.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_emb_cmt-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sp_emb_cmt-r.cfg
index f45d357b..f45d357b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_emb_cmt-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sp_emb_cmt-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sp_enum_brace-a.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sp_enum_brace-a.cfg
new file mode 100644
index 00000000..ada72096
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sp_enum_brace-a.cfg
@@ -0,0 +1 @@
+sp_enum_brace = add
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sp_enum_brace-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sp_enum_brace-f.cfg
new file mode 100644
index 00000000..0e358549
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sp_enum_brace-f.cfg
@@ -0,0 +1 @@
+sp_enum_brace = force
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sp_enum_brace-i.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sp_enum_brace-i.cfg
new file mode 100644
index 00000000..f18a88b3
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sp_enum_brace-i.cfg
@@ -0,0 +1 @@
+sp_enum_brace = ignore
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sp_enum_brace-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sp_enum_brace-r.cfg
new file mode 100644
index 00000000..22785029
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sp_enum_brace-r.cfg
@@ -0,0 +1 @@
+sp_enum_brace = remove
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_func_call_user_inside_fparen.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sp_func_call_user_inside_fparen.cfg
index e5650760..e5650760 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_func_call_user_inside_fparen.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sp_func_call_user_inside_fparen.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_ptr_star_func_var-a.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sp_ptr_star_func_var-a.cfg
index a21ed3da..a21ed3da 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_ptr_star_func_var-a.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sp_ptr_star_func_var-a.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_ptr_star_func_var-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sp_ptr_star_func_var-f.cfg
index 9562f157..9562f157 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_ptr_star_func_var-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sp_ptr_star_func_var-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_ptr_star_func_var-i.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sp_ptr_star_func_var-i.cfg
index e18cc959..e18cc959 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_ptr_star_func_var-i.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sp_ptr_star_func_var-i.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_ptr_star_func_var-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sp_ptr_star_func_var-r.cfg
index ec9bf9c0..ec9bf9c0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_ptr_star_func_var-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sp_ptr_star_func_var-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_sparen_paren-a.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sp_sparen_paren-a.cfg
index 0d477f4d..0d477f4d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_sparen_paren-a.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sp_sparen_paren-a.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_sparen_paren-i.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sp_sparen_paren-i.cfg
index 750b77ff..750b77ff 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_sparen_paren-i.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/sp_sparen_paren-i.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/space_indent_columns-3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/space_indent_columns-3.cfg
index ec130371..ec130371 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/space_indent_columns-3.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/space_indent_columns-3.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/type_wrap.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/type_wrap.cfg
index eeea5786..eeea5786 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/type_wrap.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/type_wrap.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/width-3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/width-3.cfg
index 843f6669..843f6669 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/width-3.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/width-3.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/width.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/width.cfg
index 10cb731c..10cb731c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/width.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/width.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/xml-str.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/xml-str.cfg
index bd667ab4..bd667ab4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/xml-str.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/c/xml-str.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/UNI-18777.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/UNI-18777.cfg
index 7d4c013e..7d4c013e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/UNI-18777.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/UNI-18777.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/aet-func_call_user.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/aet-func_call_user.cfg
index 3219bc4b..3219bc4b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/aet-func_call_user.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/aet-func_call_user.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/aet-func_def.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/aet-func_def.cfg
index c4575b88..c4575b88 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/aet-func_def.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/aet-func_def.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/aet-sp_after_oc_msg_receiver.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/aet-sp_after_oc_msg_receiver.cfg
index 8e25aaed..8e25aaed 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/aet-sp_after_oc_msg_receiver.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/aet-sp_after_oc_msg_receiver.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/aet-sp_inside_braces_oc_dict.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/aet-sp_inside_braces_oc_dict.cfg
index 57e2463e..57e2463e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/aet-sp_inside_braces_oc_dict.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/aet-sp_inside_braces_oc_dict.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/aet.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/aet.cfg
new file mode 100644
index 00000000..f1a4b429
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/aet.cfg
@@ -0,0 +1,509 @@
+# Uncrustify 0.61
+newlines = auto
+input_tab_size = 4
+output_tab_size = 8
+string_escape_char = 92
+string_escape_char2 = 0
+string_replace_tab_chars = true
+tok_split_gte = false
+disable_processing_cmt = "*begin-nonstandard-formatting*"
+enable_processing_cmt = "*end-nonstandard-formatting*"
+utf8_bom = remove
+utf8_byte = false
+utf8_force = false
+indent_columns = 4
+indent_continue = 4
+indent_with_tabs = 0
+indent_cmt_with_tabs = false
+indent_align_string = false
+indent_xml_string = 0
+indent_brace = 0
+indent_braces = false
+indent_braces_no_func = false
+indent_braces_no_class = false
+indent_braces_no_struct = false
+indent_brace_parent = false
+indent_paren_open_brace = false
+indent_namespace = false
+indent_namespace_single_indent = true
+indent_namespace_level = 0
+indent_namespace_limit = 0
+indent_extern = false
+indent_class = true
+indent_class_colon = false
+indent_class_on_colon = false
+indent_constr_colon = false
+indent_ctor_init_leading = 2
+indent_ctor_init = 0
+indent_else_if = false
+indent_var_def_blk = 0
+indent_var_def_cont = false
+indent_shift = 0
+indent_func_def_force_col1 = false
+indent_func_call_param = true
+indent_func_def_param = true
+indent_func_proto_param = true
+indent_func_class_param = false
+indent_func_ctor_var_param = false
+indent_template_param = false
+indent_func_param_double = false
+indent_func_const = 0
+indent_func_throw = 0
+indent_member = 0
+indent_single_line_comments_before = 0
+indent_relative_single_line_comments = true
+indent_switch_case = 0
+indent_case_shift = 0
+indent_case_brace = 0
+indent_col1_comment = false
+indent_label = -4
+indent_access_spec = -4
+indent_access_spec_body = false
+indent_paren_nl = false
+indent_paren_close = 0
+indent_comma_paren = 0
+indent_bool_paren = 0
+indent_first_bool_expr = false
+indent_square_nl = false
+indent_preserve_sql = false
+indent_align_assign = false
+indent_oc_block = false
+indent_oc_block_msg = 0
+indent_oc_msg_colon = 0
+indent_oc_msg_prioritize_first_colon = true
+indent_oc_block_msg_xcode_style = true
+indent_oc_block_msg_from_keyword = false
+indent_oc_block_msg_from_colon = false
+indent_oc_block_msg_from_caret = false
+indent_oc_block_msg_from_brace = false
+indent_min_vbrace_open = 0
+indent_vbrace_open_on_tabstop = false
+sp_arith = force
+sp_assign = add
+sp_cpp_lambda_assign = ignore
+sp_cpp_lambda_square_paren = ignore
+sp_assign_default = add
+sp_before_assign = force
+sp_after_assign = force
+sp_enum_paren = ignore
+sp_enum_assign = add
+sp_enum_before_assign = ignore
+sp_enum_after_assign = ignore
+sp_pp_concat = remove
+sp_pp_stringify = remove
+sp_before_pp_stringify = ignore
+sp_bool = add
+sp_compare = add
+sp_inside_paren = remove
+sp_paren_paren = remove
+sp_cparen_oparen = ignore
+sp_balance_nested_parens = false
+sp_paren_brace = force
+sp_before_ptr_star = force
+sp_before_unnamed_ptr_star = ignore
+sp_between_ptr_star = remove
+sp_after_ptr_star = remove
+sp_after_ptr_star_qualifier = remove
+sp_after_ptr_star_func = remove
+sp_ptr_star_func_type = remove
+sp_ptr_star_paren = remove
+sp_before_ptr_star_func = force
+sp_before_byref = remove
+sp_before_unnamed_byref = remove
+sp_after_byref = force
+sp_after_byref_func = force
+sp_before_byref_func = remove
+sp_after_type = force
+sp_after_decltype = force
+sp_before_template_paren = ignore
+sp_template_angle = remove
+sp_before_angle = remove
+sp_inside_angle = remove
+sp_after_angle = remove
+sp_angle_paren = remove
+sp_angle_paren_empty = remove
+sp_angle_word = force
+sp_angle_shift = remove
+sp_permit_cpp11_shift = false
+sp_before_sparen = force
+sp_inside_sparen = remove
+sp_inside_sparen_close = ignore
+sp_inside_sparen_open = ignore
+sp_after_sparen = add
+sp_sparen_brace = force
+sp_invariant_paren = ignore
+sp_after_invariant_paren = ignore
+sp_special_semi = force
+sp_before_semi = remove
+sp_before_semi_for = remove
+sp_before_semi_for_empty = remove
+sp_between_semi_for_empty = remove
+sp_after_semi = force
+sp_after_semi_for = force
+sp_after_semi_for_empty = remove
+sp_before_square = remove
+sp_before_squares = remove
+sp_inside_square = remove
+sp_after_comma = add
+sp_before_comma = remove
+sp_after_mdatype_commas = remove
+sp_before_mdatype_commas = remove
+sp_between_mdatype_commas = remove
+sp_paren_comma = remove
+sp_before_ellipsis = ignore
+sp_after_class_colon = force
+sp_before_class_colon = force
+sp_after_constr_colon = ignore
+sp_before_constr_colon = ignore
+sp_before_case_colon = remove
+sp_after_operator = ignore
+sp_after_operator_sym = ignore
+sp_after_cast = force
+sp_inside_paren_cast = remove
+sp_cpp_cast_paren = remove
+sp_sizeof_paren = remove
+sp_decltype_paren = remove
+sp_after_tag = ignore
+sp_inside_braces_enum = add
+sp_inside_braces_struct = ignore
+sp_inside_braces = ignore
+sp_inside_braces_empty = remove
+sp_type_func = force
+sp_func_proto_paren = remove
+sp_func_def_paren = remove
+sp_inside_fparens = remove
+sp_inside_fparen = remove
+sp_inside_tparen = remove
+sp_after_tparen_close = remove
+sp_square_fparen = ignore
+sp_fparen_brace = force
+sp_fparen_dbrace = ignore
+sp_func_call_paren = remove
+sp_func_call_paren_empty = remove
+sp_func_call_user_paren = remove
+sp_func_class_paren = remove
+sp_return_paren = add
+sp_attribute_paren = ignore
+sp_defined_paren = remove
+sp_throw_paren = add
+sp_after_throw = ignore
+sp_catch_paren = add
+sp_version_paren = ignore
+sp_scope_paren = ignore
+sp_macro = ignore
+sp_macro_func = ignore
+sp_else_brace = force
+sp_brace_else = force
+sp_brace_typedef = add
+sp_catch_brace = force
+sp_brace_catch = force
+sp_finally_brace = force
+sp_brace_finally = force
+sp_try_brace = force
+sp_getset_brace = add
+sp_word_brace_init_lst = add
+sp_word_brace_ns = add
+sp_before_dc = remove
+sp_after_dc = remove
+sp_d_array_colon = ignore
+sp_not = remove
+sp_inv = remove
+sp_addr = remove
+sp_member = remove
+sp_deref = remove
+sp_sign = remove
+sp_incdec = remove
+sp_before_nl_cont = add
+sp_after_oc_scope = force
+sp_after_oc_colon = remove
+sp_before_oc_colon = remove
+sp_after_oc_dict_colon = force
+sp_before_oc_dict_colon = remove
+sp_after_send_oc_colon = remove
+sp_before_send_oc_colon = remove
+sp_after_oc_type = remove
+sp_after_oc_return_type = remove
+sp_after_oc_at_sel = remove
+sp_after_oc_at_sel_parens = force
+sp_inside_oc_at_sel_parens = remove
+sp_before_oc_block_caret = remove
+sp_after_oc_block_caret = remove
+sp_after_oc_msg_receiver = force
+sp_after_oc_property = force
+sp_cond_colon = add
+sp_cond_colon_before = ignore
+sp_cond_colon_after = ignore
+sp_cond_question = add
+sp_cond_question_before = ignore
+sp_cond_question_after = ignore
+sp_cond_ternary_short = ignore
+sp_case_label = force
+sp_range = ignore
+sp_after_for_colon = force
+sp_before_for_colon = force
+sp_extern_paren = ignore
+sp_cmt_cpp_start = ignore
+sp_cmt_cpp_doxygen = false
+sp_endif_cmt = ignore
+sp_after_new = force
+sp_between_new_paren = remove
+sp_before_tr_cmt = ignore
+sp_num_before_tr_cmt = 0
+sp_annotation_paren = remove
+align_keep_tabs = false
+align_with_tabs = false
+align_on_tabstop = false
+align_number_right = false
+align_keep_extra_space = false
+align_func_params = false
+align_same_func_call_params = false
+align_var_def_span = 0
+align_var_def_star_style = 0
+align_var_def_amp_style = 0
+align_var_def_thresh = 0
+align_var_def_gap = 0
+align_var_def_colon = false
+align_var_def_attribute = false
+align_var_def_inline = false
+align_assign_span = 0
+align_assign_thresh = 0
+align_enum_equ_span = 0
+align_enum_equ_thresh = 0
+align_var_struct_span = 0
+align_var_struct_thresh = 0
+align_var_struct_gap = 0
+align_struct_init_span = 0
+align_typedef_gap = 0
+align_typedef_span = 0
+align_typedef_func = 0
+align_typedef_star_style = 0
+align_typedef_amp_style = 0
+align_right_cmt_span = 0
+align_right_cmt_mix = false
+align_right_cmt_gap = 0
+align_right_cmt_at_col = 0
+align_func_proto_span = 0
+align_func_proto_gap = 0
+align_on_operator = false
+align_mix_var_proto = false
+align_single_line_func = false
+align_single_line_brace = false
+align_single_line_brace_gap = 0
+align_oc_msg_spec_span = 0
+align_nl_cont = false
+align_pp_define_together = false
+align_pp_define_gap = 0
+align_pp_define_span = 0
+align_left_shift = false
+align_oc_msg_colon_span = 20
+align_oc_msg_colon_first = true
+align_oc_decl_colon = true
+nl_collapse_empty_body = false
+nl_assign_leave_one_liners = true
+nl_class_leave_one_liners = true
+nl_enum_leave_one_liners = true
+nl_getset_leave_one_liners = true
+nl_func_leave_one_liners = true
+nl_cpp_lambda_leave_one_liners = true
+nl_if_leave_one_liners = true
+nl_oc_msg_leave_one_liner = true
+nl_start_of_file = remove
+nl_start_of_file_min = 0
+nl_end_of_file = force
+nl_end_of_file_min = 1
+nl_assign_brace = remove
+nl_assign_square = ignore
+nl_after_square_assign = ignore
+nl_func_var_def_blk = 0
+nl_typedef_blk_start = 0
+nl_typedef_blk_end = 0
+nl_typedef_blk_in = 0
+nl_var_def_blk_start = 0
+nl_var_def_blk_end = 0
+nl_var_def_blk_in = 0
+nl_fcall_brace = ignore
+nl_enum_brace = remove
+nl_struct_brace = remove
+nl_union_brace = remove
+nl_if_brace = remove
+nl_brace_else = remove
+nl_elseif_brace = ignore
+nl_else_brace = remove
+nl_else_if = remove
+nl_brace_finally = remove
+nl_finally_brace = remove
+nl_try_brace = remove
+nl_getset_brace = remove
+nl_for_brace = remove
+nl_catch_brace = remove
+nl_brace_catch = remove
+nl_brace_square = ignore
+nl_brace_fparen = ignore
+nl_while_brace = remove
+nl_scope_brace = ignore
+nl_unittest_brace = ignore
+nl_version_brace = ignore
+nl_using_brace = remove
+nl_brace_brace = ignore
+nl_do_brace = remove
+nl_brace_while = remove
+nl_switch_brace = remove
+nl_multi_line_cond = false
+nl_multi_line_define = false
+nl_before_case = false
+nl_before_throw = ignore
+nl_after_case = false
+nl_case_colon_brace = remove
+nl_namespace_brace = remove
+nl_template_class = ignore
+nl_class_brace = remove
+nl_class_init_args = ignore
+nl_constr_init_args = ignore
+nl_func_type_name = ignore
+nl_func_type_name_class = ignore
+nl_func_scope_name = ignore
+nl_func_proto_type_name = ignore
+nl_func_paren = ignore
+nl_func_def_paren = ignore
+nl_func_decl_start = ignore
+nl_func_def_start = ignore
+nl_func_decl_start_single = ignore
+nl_func_def_start_single = ignore
+nl_func_decl_args = ignore
+nl_func_def_args = ignore
+nl_func_decl_end = ignore
+nl_func_def_end = ignore
+nl_func_decl_end_single = ignore
+nl_func_def_end_single = ignore
+nl_func_decl_empty = ignore
+nl_func_def_empty = ignore
+nl_oc_msg_args = false
+nl_fdef_brace = remove
+nl_cpp_ldef_brace = ignore
+nl_return_expr = ignore
+nl_after_semicolon = false
+nl_paren_dbrace_open = ignore
+nl_after_brace_open = false
+nl_after_brace_open_cmt = false
+nl_after_vbrace_open = false
+nl_after_vbrace_open_empty = false
+nl_after_brace_close = false
+nl_after_vbrace_close = false
+nl_brace_struct_var = ignore
+nl_define_macro = false
+nl_squeeze_ifdef = false
+nl_before_if = ignore
+nl_after_if = ignore
+nl_before_for = ignore
+nl_after_for = ignore
+nl_before_while = ignore
+nl_after_while = ignore
+nl_before_switch = ignore
+nl_after_switch = ignore
+nl_before_do = ignore
+nl_after_do = ignore
+nl_ds_struct_enum_cmt = false
+nl_ds_struct_enum_close_brace = false
+nl_class_colon = ignore
+nl_constr_colon = ignore
+nl_create_if_one_liner = false
+nl_create_for_one_liner = false
+nl_create_while_one_liner = false
+pos_arith = ignore
+pos_assign = ignore
+pos_bool = ignore
+pos_compare = ignore
+pos_conditional = ignore
+pos_comma = ignore
+pos_class_comma = ignore
+pos_constr_comma = ignore
+pos_class_colon = ignore
+pos_constr_colon = ignore
+code_width = 0
+ls_for_split_full = false
+ls_func_split_full = false
+ls_code_width = false
+nl_max = 3
+nl_after_func_proto = 0
+nl_after_func_proto_group = 0
+nl_after_func_body = 2
+nl_after_func_body_class = 0
+nl_after_func_body_one_liner = 0
+nl_before_block_comment = 0
+nl_before_c_comment = 0
+nl_before_cpp_comment = 0
+nl_after_multiline_comment = false
+nl_after_label_colon = false
+nl_after_struct = 0
+nl_after_class = 0
+nl_before_access_spec = 0
+nl_after_access_spec = 0
+nl_comment_func_def = 0
+nl_after_try_catch_finally = 0
+nl_around_cs_property = 0
+nl_between_get_set = 0
+nl_property_brace = force
+eat_blanks_after_open_brace = true
+eat_blanks_before_close_brace = true
+nl_remove_extra_newlines = 0
+nl_before_return = false
+nl_after_return = false
+nl_after_annotation = ignore
+nl_between_annotation = ignore
+mod_full_brace_do = ignore
+mod_full_brace_for = ignore
+mod_full_brace_function = ignore
+mod_full_brace_if = ignore
+mod_full_brace_if_chain = 0
+mod_full_brace_nl = 0
+mod_full_brace_while = ignore
+mod_full_brace_using = ignore
+mod_paren_on_return = ignore
+mod_pawn_semicolon = false
+mod_full_paren_if_bool = false
+mod_remove_extra_semicolon = true
+mod_add_long_function_closebrace_comment = 0
+mod_add_long_namespace_closebrace_comment = 0
+mod_add_long_switch_closebrace_comment = 0
+mod_add_long_ifdef_endif_comment = 0
+mod_add_long_ifdef_else_comment = 0
+mod_sort_import = false
+mod_sort_using = false
+mod_sort_include = false
+mod_move_case_break = false
+mod_case_brace = ignore
+mod_remove_empty_return = true
+cmt_width = 0
+cmt_reflow_mode = 0
+cmt_convert_tab_to_spaces = false
+cmt_indent_multi = false
+cmt_c_group = false
+cmt_c_nl_start = false
+cmt_c_nl_end = false
+cmt_cpp_group = false
+cmt_cpp_nl_start = false
+cmt_cpp_nl_end = false
+cmt_cpp_to_c = false
+cmt_star_cont = false
+cmt_sp_before_star_cont = 0
+cmt_sp_after_star_cont = 0
+cmt_multi_check_last = false
+cmt_insert_file_header = ""
+cmt_insert_file_footer = ""
+cmt_insert_func_header = ""
+cmt_insert_class_header = ""
+cmt_insert_oc_msg_header = ""
+cmt_insert_before_preproc = false
+pp_indent = ignore
+pp_indent_at_level = false
+pp_indent_count = 1
+pp_space = ignore
+pp_space_count = 0
+pp_indent_region = 0
+pp_region_indent_code = false
+pp_indent_if = 0
+pp_if_indent_code = false
+pp_define_at_level = false
+
+# Add or remove newline between method declaration and '{'
+nl_oc_mdef_brace = remove
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/align-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/align-1.cfg
index 720f003e..720f003e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/align-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/align-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/align_same_func_call_params-t.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/align_same_func_call_params-t.cfg
index d1496108..d1496108 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/align_same_func_call_params-t.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/align_same_func_call_params-t.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/attribute_specifier_seqs.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/attribute_specifier_seqs.cfg
new file mode 100644
index 00000000..3a7f6096
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/attribute_specifier_seqs.cfg
@@ -0,0 +1,3 @@
+sp_before_vardef_square = ignore
+sp_type_brace_init_lst = remove
+indent_continue_class_head = 8
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/ben2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/ben2.cfg
index 8398a6b9..8398a6b9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/ben2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/ben2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/ben_011.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/ben_011.cfg
index 6ade29ad..6ade29ad 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/ben_011.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/ben_011.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/ben_042.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/ben_042.cfg
index c98cdf54..c98cdf54 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/ben_042.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/ben_042.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/bool-pos-eol-force.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/bool-pos-eol-force.cfg
index 51044559..51044559 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/bool-pos-eol-force.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/bool-pos-eol-force.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/brace-allman.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/brace-allman.cfg
index 0e903302..0e903302 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/brace-allman.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/brace-allman.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/bug_671.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/bug_671.cfg
index 00c0cf36..00c0cf36 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/bug_671.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/bug_671.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/clark.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/clark.cfg
index 0ca4890e..0ca4890e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/clark.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/clark.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/clark.rerun.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/clark.rerun.cfg
index 3b33c7d6..3b33c7d6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/clark.rerun.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/clark.rerun.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/class-header.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/class-header.h
index 32e68a34..32e68a34 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/class-header.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/class-header.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/cmt_insert-0.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/cmt_insert-0.cfg
index 86d05f95..86d05f95 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/cmt_insert-0.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/cmt_insert-0.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/cmt_insert-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/cmt_insert-1.cfg
index 91dbf03a..91dbf03a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/cmt_insert-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/cmt_insert-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/d.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/d.cfg
new file mode 100644
index 00000000..e9be1e99
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/d.cfg
@@ -0,0 +1,50 @@
+sp_before_semi_for = remove
+sp_arith = force
+sp_assign = force
+sp_compare = force
+sp_inside_paren = remove
+sp_paren_paren = remove
+sp_before_ptr_star = force
+sp_between_ptr_star = remove
+sp_after_ptr_star = remove
+sp_after_ptr_star_func = remove
+sp_before_sparen = force
+sp_inside_sparen = remove
+sp_inside_for = remove
+sp_before_square = remove
+sp_before_squares = remove
+sp_after_comma = force
+sp_after_cast = remove
+sp_func_proto_paren = remove
+sp_func_def_paren = remove
+sp_inside_fparen = remove
+sp_func_call_paren = remove
+sp_range = force
+sp_while_paren_open = force
+indent_columns = 4
+indent_with_tabs = 0
+indent_class = true
+indent_case_brace = 4
+indent_label = 2
+nl_func_var_def_blk = 1
+nl_var_def_blk_end = 1
+nl_enum_brace = add
+nl_if_brace = add
+nl_else_brace = add
+nl_else_if = remove
+nl_for_brace = add
+nl_before_case = true
+nl_fdef_brace = add
+nl_after_brace_open = true
+eat_blanks_after_open_brace = true
+eat_blanks_before_close_brace = true
+nl_after_return = true
+align_var_def_span = 2
+align_var_def_star_style = 1
+align_assign_span = 1
+align_enum_equ_span = 4
+align_var_class_span = 2
+align_typedef_gap = 3
+align_typedef_span = 5
+align_typedef_star_style = 1
+align_right_cmt_span = 3
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/del_semicolon.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/del_semicolon.cfg
index 13434168..13434168 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/del_semicolon.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/del_semicolon.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/empty.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/empty.cfg
index e69de29b..e69de29b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/empty.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/empty.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/file-header.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/file-header.h
index 63fb5185..63fb5185 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/file-header.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/file-header.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/file_footer.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/file_footer.txt
index 7ce80bad..7ce80bad 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/file_footer.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/file_footer.txt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/file_header.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/file_header.txt
index 5431d0ff..5431d0ff 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/file_header.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/file_header.txt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/func-def-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/func-def-1.cfg
index 14879a94..14879a94 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/func-def-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/func-def-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/func-def-2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/func-def-2.cfg
index f9cf836c..f9cf836c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/func-def-2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/func-def-2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/func-def-3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/func-def-3.cfg
index c868ae02..c868ae02 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/func-def-3.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/func-def-3.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/func-header.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/func-header.h
index e6f83943..e6f83943 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/func-header.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/func-header.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/func-header2.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/func-header2.h
index 52bdf970..52bdf970 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/func-header2.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/func-header2.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/function_header.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/function_header.txt
index c6508a02..c6508a02 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/function_header.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/function_header.txt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/indent_columns-3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/indent_columns-3.cfg
new file mode 100644
index 00000000..d49cfc22
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/indent_columns-3.cfg
@@ -0,0 +1,7 @@
+indent_columns = 3
+
+# Add or remove space around the ':' in 'b ? t : f'.
+# Добавить или удалить пробел вокруг ':' в операторе 'b ? t : f'.
+sp_cond_colon = add # 只是一组象形文字
+
+sp_cond_question = add
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/indent_continue-8.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/indent_continue-8.cfg
index 9bc69559..9bc69559 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/indent_continue-8.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/indent_continue-8.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/indent_inside_ternary_operator.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/indent_inside_ternary_operator.cfg
index ad5f98ed..ad5f98ed 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/indent_inside_ternary_operator.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/indent_inside_ternary_operator.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/indent_var_def.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/indent_var_def.cfg
index 2faffc24..2faffc24 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/indent_var_def.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/indent_var_def.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/issue_672.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/issue_672.cfg
index fb436753..fb436753 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/issue_672.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/issue_672.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/kw_subst.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/kw_subst.cfg
index 163d6f64..163d6f64 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/kw_subst.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/kw_subst.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/kw_subst2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/kw_subst2.cfg
index 7f531264..7f531264 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/kw_subst2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/kw_subst2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/kw_subst3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/kw_subst3.cfg
index b96dc493..b96dc493 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/kw_subst3.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/kw_subst3.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/kw_subst4.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/kw_subst4.cfg
index a269bdf8..a269bdf8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/kw_subst4.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/kw_subst4.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/mod_case_brace_rm.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/mod_case_brace_rm.cfg
index 51252b69..51252b69 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/mod_case_brace_rm.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/mod_case_brace_rm.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/mod_full_brace_if_chain_only-t.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/mod_full_brace_if_chain_only-t.cfg
index ec61c84b..ec61c84b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/mod_full_brace_if_chain_only-t.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/mod_full_brace_if_chain_only-t.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/mod_paren_on_return-a.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/mod_paren_on_return-a.cfg
index 6e5a38ec..6e5a38ec 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/mod_paren_on_return-a.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/mod_paren_on_return-a.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/mod_paren_on_return-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/mod_paren_on_return-r.cfg
index fb547f72..fb547f72 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/mod_paren_on_return-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/mod_paren_on_return-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/msg-header.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/msg-header.h
index 79a0919f..79a0919f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/msg-header.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/msg-header.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/nl_before_after.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/nl_before_after.cfg
index b80dafa0..b80dafa0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/nl_before_after.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/nl_before_after.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/nl_before_ignore_after_case.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/nl_before_ignore_after_case.cfg
index 6d1bbb7d..6d1bbb7d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/nl_before_ignore_after_case.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/nl_before_ignore_after_case.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/region-0.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/region-0.cfg
index a837d86f..a837d86f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/region-0.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/region-0.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/region-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/region-1.cfg
index 48ae77f3..48ae77f3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/region-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/region-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/region-2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/region-2.cfg
index 5beed445..5beed445 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/region-2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/region-2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/region-3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/region-3.cfg
index 30a01c96..30a01c96 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/region-3.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/region-3.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/sort_imports.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/sort_imports.cfg
index 655a684f..655a684f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/sort_imports.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/sort_imports.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/sp_after_cast.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/sp_after_cast.cfg
index c16cc978..c16cc978 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/sp_after_cast.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/sp_after_cast.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/sp_after_type-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/sp_after_type-f.cfg
index b7fa74f4..b7fa74f4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/sp_after_type-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/sp_after_type-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/sp_after_type-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/sp_after_type-r.cfg
index 78a64119..78a64119 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/sp_after_type-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/sp_after_type-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/sp_arith-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/sp_arith-f.cfg
index 6cd2b6b0..6cd2b6b0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/sp_arith-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/sp_arith-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/sp_before_byref-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/sp_before_byref-r.cfg
index 2f5d1eff..2f5d1eff 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/sp_before_byref-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/sp_before_byref-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/sp_cmt_cpp_start-a.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/sp_cmt_cpp_start-a.cfg
index d7e6adf1..d7e6adf1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/sp_cmt_cpp_start-a.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/sp_cmt_cpp_start-a.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/sp_cmt_cpp_start_force.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/sp_cmt_cpp_start_force.cfg
index e87c9b0d..e87c9b0d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/sp_cmt_cpp_start_force.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/sp_cmt_cpp_start_force.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/sp_cparen_oparen-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/sp_cparen_oparen-f.cfg
index c2af4d15..c2af4d15 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/sp_cparen_oparen-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/sp_cparen_oparen-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/sp_inside_fparen-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/sp_inside_fparen-f.cfg
index 2b159a36..2b159a36 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/sp_inside_fparen-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/sp_inside_fparen-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/space_indent_columns-4.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/space_indent_columns-4.cfg
index f05c685f..f05c685f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/space_indent_columns-4.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/space_indent_columns-4.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/star_pos-0.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/star_pos-0.cfg
new file mode 100644
index 00000000..3648d94a
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/star_pos-0.cfg
@@ -0,0 +1,12 @@
+# Places the byref as follows: "int &foo"
+sp_before_ptr_star = remove
+sp_after_ptr_star = force
+sp_ptr_star_func_type = force
+sp_before_byref = remove
+indent_columns = 3
+align_var_def_span = 2
+align_var_struct_span = 2
+align_typedef_gap = 3
+align_typedef_span = 5
+align_typedef_func = 1
+align_func_proto_span = 2
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/width-2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/width-2.cfg
index 6c18a158..6c18a158 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/width-2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/width-2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/width-2.rerun.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/width-2.rerun.cfg
index c74e4020..c74e4020 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/width-2.rerun.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/common/width-2.rerun.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/2185.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/2185.cfg
index fda2290c..fda2290c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/2185.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/2185.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/2203.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/2203.cfg
index e9c359cf..e9c359cf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/2203.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/2203.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/623_caret-spacing.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/623_caret-spacing.cfg
index 4d60daa9..4d60daa9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/623_caret-spacing.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/623_caret-spacing.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/633_decl-in-func-typedef.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/633_decl-in-func-typedef.cfg
new file mode 100644
index 00000000..0edd4124
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/633_decl-in-func-typedef.cfg
@@ -0,0 +1,5 @@
+sp_arith = add
+sp_before_ptr_star = force
+sp_after_ptr_star = remove
+sp_ptr_star_func_type = remove
+sp_ptr_star_paren = remove
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/DefaultAndDelete-0.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/DefaultAndDelete-0.cfg
index 8aef4713..8aef4713 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/DefaultAndDelete-0.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/DefaultAndDelete-0.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/DefaultAndDelete-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/DefaultAndDelete-1.cfg
index f97e0abe..f97e0abe 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/DefaultAndDelete-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/DefaultAndDelete-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/DefaultAndDelete-2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/DefaultAndDelete-2.cfg
index 6c39bace..6c39bace 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/DefaultAndDelete-2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/DefaultAndDelete-2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/I1112-2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/I1112-2.cfg
index 6b1bba41..6b1bba41 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/I1112-2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/I1112-2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/I2103.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/I2103.cfg
index 5c34ca18..5c34ca18 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/I2103.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/I2103.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1052.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_1052.cfg
index 91fe8899..91fe8899 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1052.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_1052.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1167.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_1167.cfg
index feb56c83..feb56c83 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1167.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_1167.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1184.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_1184.cfg
index 0fdd95de..0fdd95de 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1184.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_1184.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1460.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_1460.cfg
index 7adee60a..7adee60a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1460.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_1460.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1511.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_1511.cfg
index 71c01f4d..71c01f4d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1511.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_1511.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1692.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_1692.cfg
index db3cbdbe..db3cbdbe 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1692.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_1692.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1703.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_1703.cfg
index f8c889ab..f8c889ab 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1703.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_1703.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1734.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_1734.cfg
index 37a4c192..37a4c192 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1734.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_1734.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1753.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_1753.cfg
index e0e5ab0b..e0e5ab0b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1753.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_1753.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1813.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_1813.cfg
index ff1ce9d3..ff1ce9d3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1813.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_1813.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1923.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_1923.cfg
index f242e902..f242e902 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1923.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_1923.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1966.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_1966.cfg
index be3a873d..be3a873d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1966.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_1966.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2020.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2020.cfg
index 2104e036..2104e036 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2020.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2020.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2045.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2045.cfg
index 3fb7cfe9..3fb7cfe9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2045.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2045.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2085.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2085.cfg
index 2df8ebd8..2df8ebd8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2085.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2085.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2091.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2091.cfg
index 898b035b..898b035b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2091.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2091.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2101.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2101.cfg
index 44e5a0e6..44e5a0e6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2101.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2101.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2149.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2149.cfg
new file mode 100644
index 00000000..721daf0b
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2149.cfg
@@ -0,0 +1,3 @@
+indent_namespace = true
+indent_continue = 8
+indent_shift = 1
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2150.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2150.cfg
index 5f518291..5f518291 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2150.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2150.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2151.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2151.cfg
index 0660e498..0660e498 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2151.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2151.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2163.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2163.cfg
index b7c31fe2..b7c31fe2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2163.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2163.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2166.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2166.cfg
index 2b473436..2b473436 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2166.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2166.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2170.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2170.cfg
index f66f0022..f66f0022 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2170.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2170.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2186.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2186.cfg
index d694b699..d694b699 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2186.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2186.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2195.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2195.cfg
index 0c70840d..0c70840d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2195.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2195.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2219.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2219.cfg
index 865142a1..865142a1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2219.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2219.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2224.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2224.cfg
index 8973a14f..8973a14f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2224.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2224.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2229.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2229.cfg
new file mode 100644
index 00000000..38cb5554
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2229.cfg
@@ -0,0 +1,16 @@
+# Add or remove braces on a single-line 'if' statement. Braces will not be
+# removed if the braced statement contains an 'else'.
+mod_full_brace_if = remove
+
+# Whether to enforce that all blocks of an 'if'/'else if'/'else' chain either
+# have, or do not have, braces. Overrides mod_full_brace_if.
+#
+# 0: Don't override mod_full_brace_if
+# 1: Add braces to all blocks if any block needs braces and remove braces if
+# they can be removed from all blocks
+# 2: Add braces to all blocks if any block already has braces, regardless of
+# whether it needs them
+# 3: Add braces to all blocks if any block needs braces and remove braces if
+# they can be removed from all blocks, except if all blocks have braces
+# despite none needing them
+mod_full_brace_if_chain = 1
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2232.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2232.cfg
index 06730341..06730341 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2232.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2232.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2236.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2236.cfg
index 6d30f256..6d30f256 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2236.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2236.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2250.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2250.cfg
new file mode 100644
index 00000000..705176b2
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2250.cfg
@@ -0,0 +1,5 @@
+indent_columns = 3
+indent_func_class_param = true
+indent_func_param_double = true
+nl_cpp_lambda_leave_one_liners = true
+pos_bool = trail
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2281.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2281.cfg
index 1d8b164e..1d8b164e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2281.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2281.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2302.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2302.cfg
index e69de29b..e69de29b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2302.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2302.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2305.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2305.cfg
index 7200d9ac..7200d9ac 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2305.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2305.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2319.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2319.cfg
index aeb132b5..aeb132b5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2319.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2319.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2343.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2343.cfg
index 955a1f9a..955a1f9a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2343.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2343.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2345.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2345.cfg
index 27213b45..27213b45 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2345.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2345.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2368.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2368.cfg
index d1496108..d1496108 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2368.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2368.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2383.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2383.cfg
index 313d9efb..313d9efb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2383.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2383.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2386.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2386.cfg
index 3a121c2e..3a121c2e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2386.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2386.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2428.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2428.cfg
index 8af28414..8af28414 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2428.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2428.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2437.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2437.cfg
index b21679ce..b21679ce 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2437.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2437.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2440.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2440.cfg
index 3da56066..3da56066 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2440.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2440.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2440_nl.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2440_nl.cfg
index 3da56066..3da56066 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2440_nl.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2440_nl.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2478.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2478.cfg
index bb4425d9..bb4425d9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2478.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2478.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2561.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2561.cfg
index 03a40504..03a40504 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2561.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2561.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2570.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2570.cfg
index 6a9f2d25..6a9f2d25 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2570.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2570.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2574.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2574.cfg
index d96f0980..d96f0980 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2574.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2574.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2582.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2582.cfg
index f634b12e..f634b12e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2582.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2582.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2591.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2591.cfg
index 6ca8934c..6ca8934c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2591.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2591.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2594.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2594.cfg
new file mode 100644
index 00000000..1d7941be
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2594.cfg
@@ -0,0 +1,11 @@
+output_tab_size = 4
+sp_before_ellipsis = remove
+sp_inside_braces = remove
+sp_brace_else = force
+indent_columns = 4
+nl_func_leave_one_liners = true
+nl_if_brace = add
+nl_brace_else = remove
+nl_create_if_one_liner = true
+mod_full_brace_if_chain = 1
+mod_full_brace_nl = 2
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2596.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2596.cfg
index b6338859..b6338859 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2596.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2596.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2604.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2604.cfg
index daeb9bc6..daeb9bc6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2604.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2604.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2668.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2668.cfg
new file mode 100644
index 00000000..40a69dcf
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2668.cfg
@@ -0,0 +1 @@
+nl_var_def_blk_end = 1
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2688.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2688.cfg
index 4baf4b3f..4baf4b3f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2688.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2688.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2689.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2689.cfg
index e498e830..e498e830 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2689.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2689.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2692.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2692.cfg
index bce2060e..bce2060e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2692.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2692.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2703.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2703.cfg
index 80c42da9..80c42da9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2703.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2703.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2734.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2734.cfg
index 83fdd868..83fdd868 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2734.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2734.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2735.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2735.cfg
index 32a72aa2..32a72aa2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2735.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2735.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2742.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2742.cfg
index eba0468c..eba0468c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2742.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2742.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2752.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2752.cfg
index e15e7702..e15e7702 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2752.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2752.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2757.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2757.cfg
index e2118df5..e2118df5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2757.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2757.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2758.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2758.cfg
index dd2d0f6b..dd2d0f6b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2758.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2758.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2759.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2759.cfg
index abdc53f4..abdc53f4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2759.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2759.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2771.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2771.cfg
index b34e82a7..b34e82a7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2771.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2771.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2794.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2794.cfg
index c193054f..c193054f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2794.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2794.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2795.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2795.cfg
index 353cafa8..353cafa8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2795.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2795.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2823.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2823.cfg
index de58e056..de58e056 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2823.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2823.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2831.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2831.cfg
index e7271af0..e7271af0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2831.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2831.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2836.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2836.cfg
index 41151a57..41151a57 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2836.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2836.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2873.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2873.cfg
index be881c98..be881c98 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2873.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2873.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2879.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2879.cfg
index ba98f974..ba98f974 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2879.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2879.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2886.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2886.cfg
index eb4b5ca2..eb4b5ca2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2886.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2886.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2890.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2890.cfg
index 81ba72ca..81ba72ca 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2890.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2890.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2902.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2902.cfg
index 5806b371..5806b371 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2902.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2902.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2907.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2907.cfg
index fa5b3018..fa5b3018 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2907.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2907.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2914.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2914.cfg
index 98d4511c..98d4511c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2914.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2914.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2921.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2921.cfg
index 142dc8dc..142dc8dc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2921.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2921.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2930.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2930.cfg
index bd8cb9b0..bd8cb9b0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2930.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2930.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2942.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2942.cfg
index e72ddc77..e72ddc77 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2942.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2942.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2949.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2949.cfg
index b5ea1ffb..b5ea1ffb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2949.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2949.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2957.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2957.cfg
new file mode 100644
index 00000000..aaf2b1a1
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2957.cfg
@@ -0,0 +1,4 @@
+# Whether to add a newline after the type in an unnamed temporary
+# direct-list-initialization, better:
+# before a direct-list-initialization.
+nl_type_brace_init_lst = force
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2971.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2971.cfg
new file mode 100644
index 00000000..1255b541
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_2971.cfg
@@ -0,0 +1,4 @@
+indent_columns = 3
+indent_with_tabs = 0
+align_var_def_span = 1
+indent_class = true
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3010.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3010.cfg
index 5f518291..5f518291 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3010.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3010.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3025.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3025.cfg
index 5e545c50..5e545c50 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3025.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3025.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3034.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3034.cfg
index 77557ac3..77557ac3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3034.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3034.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3040.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3040.cfg
index 12c8ebaf..12c8ebaf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3040.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3040.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3044.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3044.cfg
index c2f9ade5..c2f9ade5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3044.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3044.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3048.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3048.cfg
index fb4171d7..fb4171d7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3048.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3048.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3052.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3052.cfg
index f7c29b8e..f7c29b8e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3052.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3052.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3054-2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3054-2.cfg
index a41640f0..a41640f0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3054-2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3054-2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3054.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3054.cfg
index a88303ba..a88303ba 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3054.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3054.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3055.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3055.cfg
index 307e5d93..307e5d93 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3055.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3055.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3058.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3058.cfg
index 1619b851..1619b851 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3058.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3058.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3061_0nl.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3061_0nl.cfg
index 53a71184..53a71184 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3061_0nl.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3061_0nl.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3061_1nl.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3061_1nl.cfg
index ad1c0bbc..ad1c0bbc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3061_1nl.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3061_1nl.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3061_2nl.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3061_2nl.cfg
index 27325b31..27325b31 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3061_2nl.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3061_2nl.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3061_3nl.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3061_3nl.cfg
index 276c7d72..276c7d72 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3061_3nl.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3061_3nl.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3080.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3080.cfg
index 748a6dad..748a6dad 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3080.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3080.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3097.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3097.cfg
new file mode 100644
index 00000000..ed31649e
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3097.cfg
@@ -0,0 +1 @@
+nl_var_def_blk_start = 1
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3164.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3164.cfg
index 10cf639b..10cf639b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3164.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3164.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3197.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3197.cfg
index 2177bfff..2177bfff 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3197.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3197.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3198.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3198.cfg
index 28852f24..28852f24 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3198.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3198.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3203.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3203.cfg
index 69cd5054..69cd5054 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3203.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3203.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3220-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3220-f.cfg
index fffa496d..fffa496d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3220-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3220-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3220-i.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3220-i.cfg
index 52060d80..52060d80 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3220-i.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3220-i.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3220-ir.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3220-ir.cfg
index 17d298b2..17d298b2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3220-ir.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3220-ir.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3220-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3220-r.cfg
index c62cb16e..c62cb16e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3220-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3220-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3237.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3237.cfg
index 5c47913d..5c47913d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3237.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3237.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3252.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3252.cfg
index db7fe8f2..db7fe8f2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3252.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3252.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3284.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3284.cfg
new file mode 100644
index 00000000..51de787c
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3284.cfg
@@ -0,0 +1,5 @@
+align_assign_span = 1
+# 0: Align with other assignments (default)
+# 1: Align with each other, ignoring regular assignments
+# 2: Don't align
+align_assign_decl_func = 2 # (don't align) didn't work if function contains noexcept keyword.
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3294.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3294.cfg
new file mode 100644
index 00000000..994a3fe7
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3294.cfg
@@ -0,0 +1,4 @@
+indent_with_tabs = 0
+indent_member_single = true
+
+indent_inside_ternary_operator = true
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3309-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3309-f.cfg
index e74d7570..e74d7570 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3309-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3309-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3309-i.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3309-i.cfg
index dd286b9d..dd286b9d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3309-i.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3309-i.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3309-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3309-r.cfg
index 771903f1..771903f1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3309-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3309-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3316.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3316.cfg
new file mode 100644
index 00000000..901ad6e4
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3316.cfg
@@ -0,0 +1,3 @@
+mod_full_paren_if_bool = true
+mod_full_paren_assign_bool = true
+mod_full_paren_return_bool = true
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3357.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3357.cfg
new file mode 100644
index 00000000..3f3c5075
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3357.cfg
@@ -0,0 +1 @@
+cmt_align_doxygen_javadoc_tags = true
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3409.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3409.cfg
new file mode 100644
index 00000000..f82a74fc
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3409.cfg
@@ -0,0 +1,6 @@
+indent_cpp_lambda_body = true
+indent_cpp_lambda_only_once = true
+indent_columns = 4
+indent_with_tabs = 0
+indent_continue = 4
+indent_paren_close = 2
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3413.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3413.cfg
new file mode 100644
index 00000000..99a9f4a9
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3413.cfg
@@ -0,0 +1,4 @@
+align_func_proto_span = 1
+align_single_line_func = true
+align_single_line_brace = true
+nl_func_leave_one_liners = true
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3422-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3422-1.cfg
new file mode 100644
index 00000000..6c86f2db
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3422-1.cfg
@@ -0,0 +1,3 @@
+align_assign_span = 1
+align_assign_thresh = 40
+align_assign_on_multi_var_defs = false
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3422-2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3422-2.cfg
new file mode 100644
index 00000000..beb76fde
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3422-2.cfg
@@ -0,0 +1,3 @@
+align_assign_span = 1
+align_assign_thresh = 40
+align_assign_on_multi_var_defs = true
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3428.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3428.cfg
new file mode 100644
index 00000000..d8796682
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3428.cfg
@@ -0,0 +1,7 @@
+indent_cpp_lambda_body = true
+indent_cpp_lambda_only_once = true
+
+indent_columns = 4
+indent_with_tabs = 0
+indent_continue = 4
+indent_paren_close = 2
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3428_2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3428_2.cfg
new file mode 100644
index 00000000..26e8a8ed
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3428_2.cfg
@@ -0,0 +1,8 @@
+indent_cpp_lambda_body = true
+indent_cpp_lambda_only_once = true
+indent_namespace = true
+
+indent_columns = 4
+indent_with_tabs = 0
+indent_continue = 4
+indent_paren_close = 2
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3428_3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3428_3.cfg
new file mode 100644
index 00000000..b61cf6b5
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3428_3.cfg
@@ -0,0 +1,9 @@
+indent_cpp_lambda_body = true
+indent_cpp_lambda_only_once = true
+indent_namespace = true
+indent_namespace_single_indent = true
+
+indent_columns = 4
+indent_with_tabs = 0
+indent_continue = 4
+indent_paren_close = 2
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3428_4.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3428_4.cfg
new file mode 100644
index 00000000..e0f3a865
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3428_4.cfg
@@ -0,0 +1,7 @@
+indent_cpp_lambda_body = true
+indent_cpp_lambda_only_once = false
+
+indent_columns = 4
+indent_with_tabs = 0
+indent_continue = 4
+indent_paren_close = 2
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3428_5.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3428_5.cfg
new file mode 100644
index 00000000..1d4c1f30
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3428_5.cfg
@@ -0,0 +1,8 @@
+indent_cpp_lambda_body = true
+indent_cpp_lambda_only_once = false
+indent_namespace = true
+
+indent_columns = 4
+indent_with_tabs = 0
+indent_continue = 4
+indent_paren_close = 2
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3428_6.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3428_6.cfg
new file mode 100644
index 00000000..6b139435
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3428_6.cfg
@@ -0,0 +1,9 @@
+indent_cpp_lambda_body = true
+indent_cpp_lambda_only_once = false
+indent_namespace = true
+indent_namespace_single_indent = true
+
+indent_columns = 4
+indent_with_tabs = 0
+indent_continue = 4
+indent_paren_close = 2
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3446.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3446.cfg
new file mode 100644
index 00000000..a66901cc
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3446.cfg
@@ -0,0 +1 @@
+nl_func_scope_name = add
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3448.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3448.cfg
new file mode 100644
index 00000000..77619e74
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3448.cfg
@@ -0,0 +1,22 @@
+indent_with_tabs = 0
+indent_columns = 4
+indent_continue = 4
+indent_class = true
+indent_class_colon = true
+indent_class_on_colon = true
+indent_constr_colon = true
+indent_ctor_init_leading = 0
+indent_ctor_init_following = 0
+indent_ctor_init = -4
+indent_access_spec = -4
+indent_before_class_colon = -4
+nl_class_brace = true
+nl_class_init_args = force
+nl_class_colon = force
+nl_constr_init_args = force
+nl_constr_colon = force
+pos_class_colon = lead_force
+pos_class_comma = lead_force
+pos_constr_colon = lead_force
+pos_constr_comma = lead_force
+nl_collapse_empty_body = true
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3513.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3513.cfg
new file mode 100644
index 00000000..34f93540
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3513.cfg
@@ -0,0 +1,4 @@
+nl_fcall_brace = force
+nl_struct_brace = force
+nl_fdef_brace = force
+nl_ds_struct_enum_close_brace = true
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3546.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3546.cfg
new file mode 100644
index 00000000..56965ae8
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3546.cfg
@@ -0,0 +1,3 @@
+indent_with_tabs = 0
+indent_columns = 4
+indent_ignore_first_continue = true
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3552.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3552.cfg
new file mode 100644
index 00000000..f9a0eca8
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3552.cfg
@@ -0,0 +1,6 @@
+indent_with_tabs = 0
+indent_columns = 4
+indent_namespace = true
+indent_class = true
+indent_access_spec = -4
+indent_continue_class_head = 2
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3570.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3570.cfg
new file mode 100644
index 00000000..f291c20d
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3570.cfg
@@ -0,0 +1,3 @@
+indent_class = true
+indent_paren_after_func_def = true
+indent_paren_after_func_decl = true
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3576-a.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3576-a.cfg
new file mode 100644
index 00000000..052cf16f
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3576-a.cfg
@@ -0,0 +1,2 @@
+indent_paren_after_func_def = true
+use_indent_continue_only_once = true
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3576-b.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3576-b.cfg
new file mode 100644
index 00000000..2b187f20
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3576-b.cfg
@@ -0,0 +1,2 @@
+indent_paren_after_func_def = true
+indent_ignore_first_continue = true
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3604.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3604.cfg
new file mode 100644
index 00000000..5806b371
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_3604.cfg
@@ -0,0 +1 @@
+mod_enum_last_comma = add
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_750.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_750.cfg
new file mode 100644
index 00000000..b22aff36
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_750.cfg
@@ -0,0 +1,9 @@
+indent_class = true
+
+align_var_def_span = 1
+align_var_def_thresh = 0
+align_var_def_gap = 0
+
+align_assign_span = 1
+align_braced_init_list_span = 1
+align_var_class_span = 1
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_931.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_931.cfg
index 45879950..45879950 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_931.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_931.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_995-do.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_995-do.cfg
index ba4e6387..ba4e6387 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_995-do.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Issue_995-do.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/NewLine-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/NewLine-f.cfg
index 8da1e530..8da1e530 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/NewLine-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/NewLine-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/NewLine-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/NewLine-r.cfg
index 329f5112..329f5112 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/NewLine-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/NewLine-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/STUCK_macro-difficulties.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/STUCK_macro-difficulties.cfg
index c7ce0fd8..c7ce0fd8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/STUCK_macro-difficulties.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/STUCK_macro-difficulties.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U02-Cpp.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/U02-Cpp.cfg
index e8b4846a..e8b4846a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U02-Cpp.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/U02-Cpp.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U03-Cpp.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/U03-Cpp.cfg
index d0f33089..d0f33089 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U03-Cpp.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/U03-Cpp.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U04-Cpp.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/U04-Cpp.cfg
index 75f78b42..75f78b42 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U04-Cpp.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/U04-Cpp.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U05-Cpp.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/U05-Cpp.cfg
index ac01c51c..ac01c51c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U05-Cpp.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/U05-Cpp.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U06-Cpp.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/U06-Cpp.cfg
index 55fcc716..55fcc716 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U06-Cpp.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/U06-Cpp.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U07-Cpp.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/U07-Cpp.cfg
index 9cee7fef..9cee7fef 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U07-Cpp.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/U07-Cpp.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U16-Cpp.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/U16-Cpp.cfg
index 425ee375..425ee375 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U16-Cpp.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/U16-Cpp.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U18-Cpp.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/U18-Cpp.cfg
index 75f78b42..75f78b42 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U18-Cpp.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/U18-Cpp.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U21-Cpp.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/U21-Cpp.cfg
index fd27114f..fd27114f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U21-Cpp.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/U21-Cpp.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U23-Cpp.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/U23-Cpp.cfg
index 04863187..04863187 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U23-Cpp.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/U23-Cpp.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U25-Cpp.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/U25-Cpp.cfg
index 75f78b42..75f78b42 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U25-Cpp.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/U25-Cpp.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U26-Cpp.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/U26-Cpp.cfg
index 39c58934..39c58934 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U26-Cpp.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/U26-Cpp.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U27-Cpp.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/U27-Cpp.cfg
index e8b4846a..e8b4846a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U27-Cpp.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/U27-Cpp.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U28-Cpp.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/U28-Cpp.cfg
index ac01c51c..ac01c51c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U28-Cpp.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/U28-Cpp.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U29-Cpp.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/U29-Cpp.cfg
index d65f6b27..d65f6b27 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U29-Cpp.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/U29-Cpp.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U30-Cpp.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/U30-Cpp.cfg
index 75f78b42..75f78b42 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U30-Cpp.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/U30-Cpp.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U31-Cpp.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/U31-Cpp.cfg
index bd45658a..bd45658a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U31-Cpp.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/U31-Cpp.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U33-Cpp.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/U33-Cpp.cfg
index 0d78de45..0d78de45 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U33-Cpp.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/U33-Cpp.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U36-Cpp.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/U36-Cpp.cfg
index b655be2c..b655be2c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U36-Cpp.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/U36-Cpp.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-10496.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/UNI-10496.cfg
index 42f6ee64..42f6ee64 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-10496.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/UNI-10496.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-12046.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/UNI-12046.cfg
index 4dcd62eb..4dcd62eb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-12046.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/UNI-12046.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-1340.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/UNI-1340.cfg
index 8a43dca1..8a43dca1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-1340.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/UNI-1340.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-1344.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/UNI-1344.cfg
index 9e9937d2..9e9937d2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-1344.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/UNI-1344.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-1346.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/UNI-1346.cfg
index 4074ff52..4074ff52 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-1346.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/UNI-1346.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-1347.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/UNI-1347.cfg
index ee4173ec..ee4173ec 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-1347.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/UNI-1347.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-1350.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/UNI-1350.cfg
index 082a647f..082a647f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-1350.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/UNI-1350.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-1356.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/UNI-1356.cfg
index 948f20b6..948f20b6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-1356.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/UNI-1356.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-1358.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/UNI-1358.cfg
index 0d78de45..0d78de45 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-1358.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/UNI-1358.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-2049.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/UNI-2049.cfg
index f075ea03..f075ea03 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-2049.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/UNI-2049.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-2650.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/UNI-2650.cfg
index 46279443..46279443 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-2650.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/UNI-2650.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-2680.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/UNI-2680.cfg
index 99790699..99790699 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-2680.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/UNI-2680.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-29935.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/UNI-29935.cfg
index 28d338ee..28d338ee 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-29935.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/UNI-29935.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-30088.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/UNI-30088.cfg
index 4abe03e1..4abe03e1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-30088.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/UNI-30088.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/UNI-32657.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/UNI-32657.cfg
new file mode 100644
index 00000000..91e21a06
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/UNI-32657.cfg
@@ -0,0 +1,316 @@
+input_tab_size=4
+string_replace_tab_chars=true
+tok_split_gte=false
+disable_processing_cmt=*begin-nonstandard-formatting*
+enable_processing_cmt=*end-nonstandard-formatting*
+utf8_bom=remove
+utf8_byte=false
+utf8_force=false
+indent_columns=4
+indent_with_tabs=0
+indent_cmt_with_tabs=false
+indent_align_string=false
+indent_braces=false
+indent_braces_no_func=false
+indent_braces_no_class=false
+indent_braces_no_struct=false
+indent_brace_parent=false
+indent_cs_delegate_brace=true
+indent_namespace=true
+indent_extern=false
+indent_class=true
+indent_class_colon=false
+indent_else_if=false
+indent_var_def_cont=false
+indent_func_call_param=true
+indent_func_def_param=true
+indent_func_proto_param=true
+indent_func_class_param=false
+indent_func_ctor_var_param=false
+indent_template_param=false
+indent_func_param_double=false
+indent_member_single=false
+indent_relative_single_line_comments=false
+indent_switch_case=4
+indent_case_shift=0
+indent_case_brace=0
+indent_col1_comment=false
+indent_label=-4
+indent_access_spec=-4
+indent_paren_nl=false
+indent_comma_paren=0
+indent_bool_paren=0
+indent_first_bool_expr=false
+indent_square_nl=false
+indent_preserve_sql=false
+indent_align_paren=false
+indent_oc_block_msg_xcode_style=true
+indent_off_after_return_new=true
+indent_single_after_return=true
+sp_arith=add
+sp_assign=add
+sp_assign_default=add
+sp_enum_assign=add
+sp_pp_concat=remove
+sp_pp_stringify=remove
+sp_bool=add
+sp_compare=add
+sp_inside_paren=remove
+sp_paren_paren=remove
+sp_balance_nested_parens=false
+sp_paren_brace=force
+sp_after_type=ignore
+sp_template_angle=remove
+sp_before_angle=remove
+sp_inside_angle=remove
+sp_angle_paren=remove
+sp_angle_paren_empty=remove
+sp_angle_word=add
+sp_angle_shift=remove
+sp_before_sparen=force
+sp_inside_sparen=remove
+sp_after_sparen=add
+sp_sparen_brace=force
+sp_special_semi=force
+sp_before_semi=remove
+sp_before_semi_for=remove
+sp_before_semi_for_empty=remove
+sp_between_semi_for_empty=remove
+sp_after_semi=add
+sp_after_semi_for=force
+sp_after_semi_for_empty=remove
+sp_before_square=remove
+sp_before_squares=remove
+sp_inside_square=remove
+sp_after_comma=add
+sp_before_comma=ignore
+sp_after_mdatype_commas=remove
+sp_before_mdatype_commas=remove
+sp_between_mdatype_commas=remove
+sp_paren_comma=remove
+sp_after_class_colon=force
+sp_before_class_colon=force
+sp_before_case_colon=remove
+sp_after_operator=remove
+sp_after_operator_sym=remove
+sp_after_operator_sym_empty=remove
+sp_after_cast=remove
+sp_inside_paren_cast=remove
+sp_cpp_cast_paren=remove
+sp_sizeof_paren=remove
+sp_inside_braces_enum=add
+sp_inside_braces_empty=remove
+sp_type_func=ignore
+sp_func_proto_paren=remove
+sp_func_def_paren=remove
+sp_inside_fparens=remove
+sp_inside_fparen=remove
+sp_fparen_brace=add
+sp_func_call_paren=remove
+sp_func_call_paren_empty=remove
+sp_func_call_user_paren=remove
+sp_func_class_paren=remove
+sp_return_paren=add
+sp_defined_paren=remove
+sp_throw_paren=add
+sp_catch_paren=add
+sp_brace_typedef=add
+sp_getset_brace=add
+sp_after_dc=remove
+sp_not=remove
+sp_inv=remove
+sp_addr=remove
+sp_member=remove
+sp_deref=remove
+sp_sign=remove
+sp_incdec=remove
+sp_before_nl_cont=add
+sp_after_oc_scope=force
+sp_after_oc_colon=remove
+sp_before_oc_colon=remove
+sp_after_oc_dict_colon=force
+sp_before_oc_dict_colon=remove
+sp_after_send_oc_colon=force
+sp_before_send_oc_colon=remove
+sp_after_oc_type=remove
+sp_after_oc_return_type=remove
+sp_after_oc_at_sel=remove
+sp_inside_oc_at_sel_parens=remove
+sp_cond_colon=add
+sp_cond_question=add
+sp_case_label=ignore
+sp_after_new=force
+sp_between_new_paren=remove
+sp_skip_vbrace_tokens=true
+align_keep_tabs=false
+align_with_tabs=false
+align_on_tabstop=false
+align_number_right=false
+align_func_params=false
+align_same_func_call_params=false
+align_var_def_colon=false
+align_var_def_attribute=false
+align_var_def_inline=false
+align_right_cmt_mix=false
+align_on_operator=false
+align_mix_var_proto=false
+align_single_line_func=false
+align_single_line_brace=false
+align_nl_cont=false
+align_left_shift=false
+nl_collapse_empty_body=false
+nl_assign_leave_one_liners=true
+nl_class_leave_one_liners=true
+nl_enum_leave_one_liners=true
+nl_getset_leave_one_liners=true
+nl_func_leave_one_liners=true
+nl_cpp_lambda_leave_one_liners=true
+nl_if_leave_one_liners=false
+nl_oc_msg_leave_one_liner=true
+nl_start_of_file=remove
+nl_end_of_file=force
+nl_end_of_file_min=1
+nl_assign_brace=force
+nl_enum_brace=force
+nl_struct_brace=force
+nl_union_brace=force
+nl_if_brace=force
+nl_brace_else=force
+nl_else_brace=force
+nl_else_if=remove
+nl_brace_finally=force
+nl_finally_brace=force
+nl_try_brace=force
+nl_getset_brace=force
+nl_for_brace=force
+nl_catch_brace=force
+nl_brace_catch=force
+nl_while_brace=force
+nl_using_brace=force
+nl_brace_brace=ignore
+nl_do_brace=force
+nl_brace_while=force
+nl_switch_brace=force
+nl_multi_line_cond=false
+nl_before_case=false
+nl_after_case=false
+nl_case_colon_brace=force
+nl_namespace_brace=force
+nl_template_class=ignore
+nl_class_brace=force
+nl_fdef_brace=force
+nl_after_semicolon=false
+nl_after_brace_open=false
+nl_after_brace_open_cmt=false
+nl_after_vbrace_open=false
+nl_after_vbrace_open_empty=false
+nl_after_brace_close=false
+nl_after_vbrace_close=false
+nl_squeeze_ifdef=false
+nl_ds_struct_enum_cmt=false
+nl_ds_struct_enum_close_brace=false
+nl_namespace_two_to_one_liner=false
+nl_create_if_one_liner=false
+nl_create_for_one_liner=false
+nl_create_while_one_liner=false
+nl_create_func_def_one_liner=false
+ls_for_split_full=false
+ls_func_split_full=false
+nl_max=3
+nl_after_func_body=2
+nl_after_multiline_comment=false
+nl_property_brace=force
+eat_blanks_after_open_brace=true
+eat_blanks_before_close_brace=true
+nl_after_return=false
+mod_full_brace_if_chain=0
+mod_paren_on_return=ignore
+mod_pawn_semicolon=false
+mod_full_paren_if_bool=false
+mod_remove_extra_semicolon=true
+mod_move_case_break=false
+mod_remove_empty_return=true
+cmt_convert_tab_to_spaces=True
+cmt_indent_multi=false
+cmt_c_group=false
+cmt_c_nl_start=false
+cmt_c_nl_end=false
+cmt_cpp_group=false
+cmt_cpp_nl_start=false
+cmt_cpp_nl_end=false
+cmt_cpp_to_c=false
+cmt_star_cont=false
+cmt_multi_check_last=false
+cmt_insert_before_preproc=false
+pp_space=ignore
+use_options_overriding_for_qt_macros=false
+warn_level_tabs_found_in_verbatim_string_literals=1
+# blocked by https://sourceforge.net/p/uncrustify/bugs/619/
+# can be turned back on at any time
+mod_add_long_ifdef_else_comment=0
+mod_add_long_ifdef_endif_comment=0
+
+# Setting this 'false' will cause an extra tab to be added to function call args from an assignment:
+#
+# x = o.Func2(a, b,
+# y);
+# o.Func2(a, b,
+# y);
+#
+# ...but setting it 'true' is often worse:
+#
+# ExtraReallyLongType reallyLongVariableName = someTest
+# ? someTrueExpr
+# : someFalseExpr
+#
+# ...except sometimes we really do want that. What we need is an indent_align_assign_threshold, or,
+# better but maybe more complicated, indent_align_assign=ignore to leave alone what the engineer did.
+# (currently unreported)
+indent_align_assign=false
+
+# this is causing a few problems, but usually with block comments and autodoc markup. perhaps only add a space
+# if first letter is not a symbol and this is a standalone comment: not preceded or followed by another c++
+# comment line at the same level of indentation.
+# REVISIT: work was done to have it eliminate space for doxygen markup in c6aca7b, maybe can improve on it for us
+# (test using Runtime/Allocator/BucketAllocator.h)
+# IMPORTANT: see task at https://trello.com/c/wUgiuvbX before going further
+#sp_cmt_cpp_start=add
+sp_cmt_cpp_start=ignore
+
+# https://sourceforge.net/p/uncrustify/bugs/619/
+#sp_endif_cmt=force
+sp_endif_cmt=ignore
+
+# want to turn this on, but can't do it without also getting alignment right. try running it on this file as an example:
+# Tools\BugReporterV2\qt_face\lib\src\MainWindow.cpp
+#nl_cpp_ldef_brace=force
+
+# workaround for some nasty macroing we're doing
+set COMMENT PLATFORM_EXCEPTION_SAFEGUARD_PROLOG
+
+# without this, uncrustify will parse and process the contents of #defines, which is super unstable. very easy to get into edge cases it does not support,
+# so just have it treat #defines as black boxes. this will keep all of the contents of the #define as unprocessed.
+pp_ignore_define_body=true
+
+# macros in #includes aren't known to Uncrustify, so have to inform it here for macros that will confuse it
+set MACRO_FUNC ATTRIBUTE_ALIGN
+
+# we have some truly insane deep namespace nesting in il2cpp. :/
+indent_namespace_single_indent=true
+
+# needed for fmod apparently (via HEVAGTool.h - the *'s near F_STDCALL will be interpreted as ARITH without this)
+set COMMENT F_STDCALL
+
+# https://github.com/uncrustify/uncrustify/pull/602
+# https://sourceforge.net/p/uncrustify/bugs/633/
+set COMMENT __cdecl
+set COMMENT __clrcall
+set COMMENT __fastcall
+set COMMENT __stdcall
+set COMMENT __thiscall
+set COMMENT __vectorcall
+set COMMENT WINAPI
+
+# We need to make FAKE_FUNCTION a PROTO_WRAP macro function to help properly tokenize it's parameters.
+# Previously parameters with CT_AMP and CT_STAR were tokenized as CT_ARITH. Support for optional parenthesis added in github PR #629.
+set PROTO_WRAP FAKE_FUNCTION
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Uncrustify.Cpp.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Uncrustify.Cpp.cfg
index 89855c3c..89855c3c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Uncrustify.Cpp.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/Uncrustify.Cpp.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/al.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/al.cfg
index 669cef45..669cef45 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/al.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/al.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align-330.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align-330.cfg
index 7a2ce116..7a2ce116 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align-330.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align-330.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_assign_decl_func-0.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_assign_decl_func-0.cfg
index fee6fea1..fee6fea1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_assign_decl_func-0.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_assign_decl_func-0.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_assign_decl_func-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_assign_decl_func-1.cfg
index 2175c1e2..2175c1e2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_assign_decl_func-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_assign_decl_func-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_assign_decl_func-2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_assign_decl_func-2.cfg
index 9e3a2779..9e3a2779 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_assign_decl_func-2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_assign_decl_func-2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_assign_func_proto_1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_assign_func_proto_1.cfg
index 378039a7..378039a7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_assign_func_proto_1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_assign_func_proto_1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_assign_span-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_assign_span-1.cfg
index fda177f9..fda177f9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_assign_span-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_assign_span-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_asterisk_after_type_cast.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_asterisk_after_type_cast.cfg
index 4a781152..4a781152 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_asterisk_after_type_cast.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_asterisk_after_type_cast.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_class-constr.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_class-constr.cfg
index 8824d97a..8824d97a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_class-constr.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_class-constr.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_continuation_left_shift.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_continuation_left_shift.cfg
index 767f2adc..767f2adc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_continuation_left_shift.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_continuation_left_shift.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_default_after_override.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_default_after_override.cfg
index 7373e8d1..7373e8d1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_default_after_override.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_default_after_override.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_eigen_comma_init.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_eigen_comma_init.cfg
index a798cc5f..a798cc5f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_eigen_comma_init.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_eigen_comma_init.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_fcall-2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_fcall-2.cfg
index 795a16e9..795a16e9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_fcall-2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_fcall-2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_fcall.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_fcall.cfg
index 2df9b2e0..2df9b2e0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_fcall.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_fcall.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_params-t.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_func_params-t.cfg
index 6072ca53..6072ca53 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_params-t.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_func_params-t.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_params_gap.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_func_params_gap.cfg
index 314c2e1b..314c2e1b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_params_gap.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_func_params_gap.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_params_span-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_func_params_span-1.cfg
index 5695e5a4..5695e5a4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_params_span-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_func_params_span-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_params_thresh_1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_func_params_thresh_1.cfg
index acae1cc7..acae1cc7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_params_thresh_1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_func_params_thresh_1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_params_thresh_2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_func_params_thresh_2.cfg
index 355705f1..355705f1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_params_thresh_2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_func_params_thresh_2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_params_thresh_3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_func_params_thresh_3.cfg
index 48912fce..48912fce 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_params_thresh_3.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_func_params_thresh_3.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_params_thresh_4.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_func_params_thresh_4.cfg
index 284a5ee8..284a5ee8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_params_thresh_4.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_func_params_thresh_4.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_proto_thresh_1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_func_proto_thresh_1.cfg
index b6a93b5b..b6a93b5b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_proto_thresh_1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_func_proto_thresh_1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_proto_thresh_2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_func_proto_thresh_2.cfg
index 363ea06c..363ea06c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_proto_thresh_2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_func_proto_thresh_2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_proto_thresh_3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_func_proto_thresh_3.cfg
index 3a5ac106..3a5ac106 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_proto_thresh_3.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_func_proto_thresh_3.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_proto_thresh_4.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_func_proto_thresh_4.cfg
index 6b084d86..6b084d86 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_proto_thresh_4.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_func_proto_thresh_4.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_proto_thresh_5.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_func_proto_thresh_5.cfg
index 8a8dff6b..8a8dff6b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_proto_thresh_5.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_func_proto_thresh_5.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_right_comment.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_right_comment.cfg
index 1551b394..1551b394 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_right_comment.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_right_comment.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_var_class_span-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_var_class_span-1.cfg
index a1b4122c..a1b4122c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_var_class_span-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_var_class_span-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_var_def_thresh_1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_var_def_thresh_1.cfg
index 5cadc402..5cadc402 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_var_def_thresh_1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_var_def_thresh_1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_var_def_thresh_2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_var_def_thresh_2.cfg
index bb9be8ad..bb9be8ad 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_var_def_thresh_2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_var_def_thresh_2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_var_def_thresh_3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_var_def_thresh_3.cfg
index edb77f43..edb77f43 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_var_def_thresh_3.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/align_var_def_thresh_3.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/anonymous_enum.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/anonymous_enum.cfg
index 503a2cb5..503a2cb5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/anonymous_enum.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/anonymous_enum.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/arith-vs-byref.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/arith-vs-byref.cfg
new file mode 100644
index 00000000..006060ca
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/arith-vs-byref.cfg
@@ -0,0 +1,6 @@
+sp_arith = force
+sp_before_byref = remove
+sp_after_byref = remove
+
+# Similar to the issues tested by arith-vs-ptr this test is checks
+# if the '&' opertor is properly recognized as 'arith' and not 'byref' in some contexts
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/arith-vs-ptr.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/arith-vs-ptr.cfg
index 60c8d23c..60c8d23c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/arith-vs-ptr.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/arith-vs-ptr.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/avalon.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/avalon.cfg
index aef9ed44..aef9ed44 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/avalon.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/avalon.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/avalon2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/avalon2.cfg
index 97783b66..97783b66 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/avalon2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/avalon2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/avalon3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/avalon3.cfg
index 30f50cb7..30f50cb7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/avalon3.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/avalon3.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/avalon4.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/avalon4.cfg
index 1577d2b3..1577d2b3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/avalon4.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/avalon4.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_001.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_001.cfg
index e1bce1fa..e1bce1fa 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_001.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_001.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_003.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_003.cfg
index b6dffc7c..b6dffc7c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_003.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_003.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_004.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_004.cfg
index fa3c13c3..fa3c13c3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_004.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_004.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_005.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_005.cfg
index 6784d5f8..6784d5f8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_005.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_005.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_006.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_006.cfg
index 2767d063..2767d063 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_006.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_006.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_008.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_008.cfg
index 432f7093..432f7093 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_008.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_008.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_009.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_009.cfg
index 314bb848..314bb848 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_009.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_009.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_010.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_010.cfg
index c4536db3..c4536db3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_010.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_010.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_012.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_012.cfg
index 805f96ed..805f96ed 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_012.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_012.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_013.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_013.cfg
index be76962d..be76962d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_013.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_013.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_014.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_014.cfg
index 33c1e6e4..33c1e6e4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_014.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_014.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_015.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_015.cfg
index 0e139678..0e139678 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_015.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_015.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_016.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_016.cfg
index 9b863f1d..9b863f1d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_016.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_016.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_017.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_017.cfg
index a4acecc3..a4acecc3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_017.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_017.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_018.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_018.cfg
index c8dd1ab6..c8dd1ab6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_018.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_018.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_020.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_020.cfg
index 8cd270ef..8cd270ef 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_020.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_020.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_021.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_021.cfg
index e8024afb..e8024afb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_021.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_021.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_022.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_022.cfg
index e258b9a3..e258b9a3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_022.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_022.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_023.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_023.cfg
index acb9b682..acb9b682 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_023.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_023.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_024.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_024.cfg
index 37954be0..37954be0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_024.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_024.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_026.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_026.cfg
index f7008ee3..f7008ee3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_026.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_026.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_027.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_027.cfg
index fbbdb06a..fbbdb06a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_027.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_027.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_028.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_028.cfg
index 62848095..62848095 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_028.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_028.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_029.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_029.cfg
index a0c2e18c..a0c2e18c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_029.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_029.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_030.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_030.cfg
index 8663afd4..8663afd4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_030.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_030.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_031.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_031.cfg
index fe2182c9..fe2182c9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_031.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ben_031.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1001.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1001.cfg
index d8255ca7..d8255ca7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1001.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1001.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1003.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1003.cfg
index 242b3a13..242b3a13 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1003.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1003.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1004.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1004.cfg
index f479bada..f479bada 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1004.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1004.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1020.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1020.cfg
index 51643e87..51643e87 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1020.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1020.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1108.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1108.cfg
index 741ba79d..741ba79d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1108.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1108.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1160.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1160.cfg
index afc7030d..afc7030d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1160.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1160.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1161.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1161.cfg
index c7977cf0..c7977cf0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1161.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1161.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1169.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1169.cfg
index 0615b330..0615b330 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1169.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1169.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1170.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1170.cfg
index 9171180b..9171180b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1170.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1170.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1236.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1236.cfg
index 0c60d5be..0c60d5be 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1236.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1236.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1296-F.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1296-F.cfg
new file mode 100644
index 00000000..613f85d5
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1296-F.cfg
@@ -0,0 +1,2 @@
+indent_with_tabs = 0
+indent_cpp_lambda_only_once = false
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1296.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1296-T.cfg
index 82a970ff..82a970ff 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1296.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1296-T.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1315.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1315.cfg
index 49a716d0..49a716d0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1315.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1315.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1324.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1324.cfg
index 289ca9d5..289ca9d5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1324.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1324.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1340.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1340.cfg
index 6ec6568e..6ec6568e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1340.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1340.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1349.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1349.cfg
index abe4253c..abe4253c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1349.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1349.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1395.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1395.cfg
index c2bed595..c2bed595 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1395.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1395.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1402.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1402.cfg
index e69de29b..e69de29b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1402.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1402.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1403.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1403.cfg
index 8e10acd4..8e10acd4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1403.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1403.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1432.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1432.cfg
index 4ae27492..4ae27492 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1432.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1432.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1439.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1439.cfg
index f625249d..f625249d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1439.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1439.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1452.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1452.cfg
index dbd0e9b4..dbd0e9b4 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1452.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1452.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1649.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1649.cfg
index 472975ab..472975ab 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1649.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1649.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1689.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1689.cfg
index 7c1462f1..7c1462f1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1689.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1689.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1691.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1691.cfg
index 03600f80..03600f80 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1691.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1691.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1717.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1717.cfg
index a6c7322f..a6c7322f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1717.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1717.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1758-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1758-f.cfg
index 90d17ebd..90d17ebd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1758-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1758-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1854.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1854.cfg
index ebc5c5e3..ebc5c5e3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1854.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1854.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1862.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1862.cfg
index c23b9027..c23b9027 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1862.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_1862.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_2285.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_2285.cfg
index fa3b437b..fa3b437b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_2285.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_2285.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_2322.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_2322.cfg
new file mode 100644
index 00000000..a16bec3d
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_2322.cfg
@@ -0,0 +1,11 @@
+indent_columns = 4
+output_tab_size = 4
+indent_with_tabs = 0
+sp_while_paren_open = force
+mod_full_brace_if_chain = 1
+
+mod_full_brace_for = remove
+mod_full_brace_if = remove
+mod_full_brace_do = remove
+mod_full_brace_while = remove
+mod_full_brace_using = remove
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_2371.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_2371.cfg
index 1f207beb..1f207beb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_2371.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_2371.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_2402.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_2402.cfg
index 85c3a458..85c3a458 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_2402.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_2402.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_2433_1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_2433_1.cfg
index 17fd04a4..17fd04a4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_2433_1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_2433_1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_2433_2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_2433_2.cfg
index 89f0b916..89f0b916 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_2433_2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_2433_2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_472.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_472.cfg
index 68d6f99b..68d6f99b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_472.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_472.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_488.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_488.cfg
index 0319ef54..0319ef54 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_488.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_488.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_633.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_633.cfg
index 61833884..61833884 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_633.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_633.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_657.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_657.cfg
index 109e3750..109e3750 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_657.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_657.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_664.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_664.cfg
index 3799bd89..3799bd89 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_664.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_664.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_670.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_670.cfg
index fe57c0af..fe57c0af 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_670.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_670.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_858-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_858-f.cfg
index 1f03334a..1f03334a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_858-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_858-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_858-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_858-r.cfg
index 82e3cb22..82e3cb22 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_858-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_858-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_i_322.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_i_322.cfg
index e49770be..e49770be 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_i_322.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_i_322.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_i_359.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_i_359.cfg
index ab9c63fb..ab9c63fb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_i_359.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_i_359.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_i_405.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_i_405.cfg
index 0bdfce99..0bdfce99 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_i_405.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_i_405.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_i_409-create.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_i_409-create.cfg
index ec0f6ca4..ec0f6ca4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_i_409-create.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_i_409-create.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_i_409-split.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_i_409-split.cfg
index 9e272905..9e272905 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_i_409-split.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_i_409-split.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_i_478.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_i_478.cfg
index 18db9a6d..18db9a6d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_i_478.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_i_478.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_i_663.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_i_663.cfg
index 9d780855..9d780855 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_i_663.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_i_663.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_i_666.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_i_666.cfg
index 6acabd49..6acabd49 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_i_666.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_i_666.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_i_752.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_i_752.cfg
index 93191dc0..93191dc0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_i_752.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/bug_i_752.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/byref-center.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/byref-center.cfg
index 5d370736..5d370736 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/byref-center.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/byref-center.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/byref-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/byref-f.cfg
index a50d0c1a..a50d0c1a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/byref-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/byref-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/byref-i.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/byref-i.cfg
index 9d15782c..9d15782c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/byref-i.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/byref-i.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/byref-ir.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/byref-ir.cfg
index df89f6e3..df89f6e3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/byref-ir.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/byref-ir.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/byref-left.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/byref-left.cfg
index d28c4e5e..d28c4e5e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/byref-left.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/byref-left.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/byref-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/byref-r.cfg
index 505f9dc0..505f9dc0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/byref-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/byref-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/byref-right.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/byref-right.cfg
index 82fb7287..82fb7287 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/byref-right.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/byref-right.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/cast.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/cast.cfg
index feac5350..feac5350 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/cast.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/cast.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/class-colon-pos-eol-add.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/class-colon-pos-eol-add.cfg
index fb14545e..fb14545e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/class-colon-pos-eol-add.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/class-colon-pos-eol-add.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/class-colon-pos-eol.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/class-colon-pos-eol.cfg
index ddb0e11b..ddb0e11b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/class-colon-pos-eol.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/class-colon-pos-eol.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/class-colon-pos-sol-add.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/class-colon-pos-sol-add.cfg
index 960dade0..960dade0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/class-colon-pos-sol-add.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/class-colon-pos-sol-add.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/class-colon-pos-sol.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/class-colon-pos-sol.cfg
index a57e30d3..a57e30d3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/class-colon-pos-sol.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/class-colon-pos-sol.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/class-nl_func-add.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/class-nl_func-add.cfg
index d60ffa9b..d60ffa9b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/class-nl_func-add.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/class-nl_func-add.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/class-nl_func-add2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/class-nl_func-add2.cfg
index f8a35e0d..f8a35e0d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/class-nl_func-add2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/class-nl_func-add2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/class-nl_func-del.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/class-nl_func-del.cfg
index b90f2f75..b90f2f75 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/class-nl_func-del.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/class-nl_func-del.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/class-on-colon-indent.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/class-on-colon-indent.cfg
index 86fec34f..86fec34f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/class-on-colon-indent.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/class-on-colon-indent.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/cmt_convert_tab_to_spaces-t.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/cmt_convert_tab_to_spaces-t.cfg
index 98b3bcf3..98b3bcf3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/cmt_convert_tab_to_spaces-t.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/cmt_convert_tab_to_spaces-t.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/cmt_cpp_to_c-t.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/cmt_cpp_to_c-t.cfg
index 85c3fec8..85c3fec8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/cmt_cpp_to_c-t.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/cmt_cpp_to_c-t.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/cmt_indent-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/cmt_indent-1.cfg
index 8d0a8a16..8d0a8a16 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/cmt_indent-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/cmt_indent-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/cmt_indent-2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/cmt_indent-2.cfg
index fd9b9d25..fd9b9d25 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/cmt_indent-2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/cmt_indent-2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/cmt_indent-3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/cmt_indent-3.cfg
index c8e6ce41..c8e6ce41 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/cmt_indent-3.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/cmt_indent-3.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/cmt_multi_first_len_minimum-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/cmt_multi_first_len_minimum-1.cfg
index e7d99a98..e7d99a98 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/cmt_multi_first_len_minimum-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/cmt_multi_first_len_minimum-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/cmt_trailing_single_line_c_to_cpp.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/cmt_trailing_single_line_c_to_cpp.cfg
index 0754b419..0754b419 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/cmt_trailing_single_line_c_to_cpp.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/cmt_trailing_single_line_c_to_cpp.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/code_width-70.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/code_width-70.cfg
index 07c25e5c..07c25e5c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/code_width-70.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/code_width-70.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/comma-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/comma-f.cfg
index 29eb50b5..29eb50b5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/comma-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/comma-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/comma-i.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/comma-i.cfg
index 2dad1026..2dad1026 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/comma-i.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/comma-i.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/comma-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/comma-r.cfg
index 5194e6da..5194e6da 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/comma-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/comma-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/const_throw.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/const_throw.cfg
index 41b3ecef..41b3ecef 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/const_throw.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/const_throw.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/constr_colon.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/constr_colon.cfg
index 3397573a..3397573a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/constr_colon.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/constr_colon.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/cpp17.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/cpp17.cfg
index 1865e0c8..1865e0c8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/cpp17.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/cpp17.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/cu.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/cu.cfg
index 40dff3e5..40dff3e5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/cu.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/cu.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/custom-open.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/custom-open.cfg
index 5b4539e2..5b4539e2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/custom-open.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/custom-open.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/custom-open2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/custom-open2.cfg
index 38e507b5..38e507b5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/custom-open2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/custom-open2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/disable_nl_cont.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/disable_nl_cont.cfg
index 9ea9350f..9ea9350f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/disable_nl_cont.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/disable_nl_cont.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/dont-detab-strings.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/dont-detab-strings.cfg
index 9e36729d..9e36729d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/dont-detab-strings.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/dont-detab-strings.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/dont-process-defines.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/dont-process-defines.cfg
index bfb66ec8..bfb66ec8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/dont-process-defines.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/dont-process-defines.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/eat_blanks_after_codewidth.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/eat_blanks_after_codewidth.cfg
index 1b24a7ac..1b24a7ac 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/eat_blanks_after_codewidth.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/eat_blanks_after_codewidth.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ellipsis-i.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ellipsis-i.cfg
index 3b4d8ec6..3b4d8ec6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ellipsis-i.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ellipsis-i.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/enum.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/enum.cfg
index b39c0840..b39c0840 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/enum.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/enum.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/enum_comma-3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/enum_comma-3.cfg
index 7fe548e2..7fe548e2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/enum_comma-3.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/enum_comma-3.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/enum_comma-4.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/enum_comma-4.cfg
index d42e6b1e..d42e6b1e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/enum_comma-4.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/enum_comma-4.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/enum_comma-6.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/enum_comma-6.cfg
index 6d4279ec..6d4279ec 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/enum_comma-6.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/enum_comma-6.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/enum_comment_wrap.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/enum_comment_wrap.cfg
index e42e00a1..e42e00a1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/enum_comment_wrap.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/enum_comment_wrap.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/extern_func.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/extern_func.cfg
index a6135e8a..a6135e8a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/extern_func.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/extern_func.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/footer.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/footer.txt
index 1d2f941f..1d2f941f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/footer.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/footer.txt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/func_class.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/func_class.cfg
index 7f01b7be..7f01b7be 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/func_class.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/func_class.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/func_param.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/func_param.cfg
new file mode 100644
index 00000000..9162fd6d
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/func_param.cfg
@@ -0,0 +1,7 @@
+sp_paren_paren = remove
+sp_after_ptr_star = remove
+sp_ptr_star_func_var = remove
+sp_ptr_star_func_type = remove
+sp_func_proto_paren = remove
+sp_inside_fparen = remove
+sp_after_tparen_close = remove
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/functype_param-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/functype_param-f.cfg
new file mode 100644
index 00000000..a870e0c5
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/functype_param-f.cfg
@@ -0,0 +1,3 @@
+sp_after_byref = force
+sp_after_ptr_star = force
+sp_byref_paren = force
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/functype_param-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/functype_param-r.cfg
new file mode 100644
index 00000000..9b70479a
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/functype_param-r.cfg
@@ -0,0 +1,3 @@
+sp_after_byref = remove
+sp_after_ptr_star = remove
+sp_byref_paren = remove
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/i1516.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/i1516.cfg
new file mode 100644
index 00000000..e6c98a53
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/i1516.cfg
@@ -0,0 +1,4 @@
+nl_func_var_def_blk = 2
+nl_var_def_blk_start = 1
+nl_var_def_blk_end = 2
+nl_var_def_blk_in = 1
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/i1536.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/i1536.cfg
index 5506f68c..5506f68c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/i1536.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/i1536.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/i1536.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/i1536.txt
index d34c497d..d34c497d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/i1536.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/i1536.txt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/i1768.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/i1768.cfg
index 9174483a..9174483a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/i1768.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/i1768.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/i683.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/i683.cfg
index 2b6edefe..2b6edefe 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/i683.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/i683.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/if_chain_braces_2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/if_chain_braces_2.cfg
new file mode 100644
index 00000000..6547c095
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/if_chain_braces_2.cfg
@@ -0,0 +1,2 @@
+mod_full_brace_if_chain = 1
+mod_full_brace_if_chain_only = true
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_braces_no.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_braces_no.cfg
index 24ca060b..24ca060b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_braces_no.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_braces_no.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_class-t.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_class-t.cfg
index 78320e8a..78320e8a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_class-t.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_class-t.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_class-t_columns-4.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_class-t_columns-4.cfg
index 5184fc9a..5184fc9a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_class-t_columns-4.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_class-t_columns-4.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_columns-11.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_columns-11.cfg
index 15cef67e..15cef67e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_columns-11.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_columns-11.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_columns-2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_columns-2.cfg
index f33cb665..f33cb665 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_columns-2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_columns-2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_columns-4.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_columns-4.cfg
index f4f5183a..f4f5183a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_columns-4.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_columns-4.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_comma_brace.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_comma_brace.cfg
new file mode 100644
index 00000000..19c3b161
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_comma_brace.cfg
@@ -0,0 +1,4 @@
+code_width = 60
+indent_columns = 4
+indent_comma_brace = 1
+indent_with_tabs = 0
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_comment_align_thresh_2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_comment_align_thresh_2.cfg
index 2f5d5cab..2f5d5cab 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_comment_align_thresh_2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_comment_align_thresh_2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_ctor_init.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_ctor_init.cfg
index cb1cef12..cb1cef12 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_ctor_init.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_ctor_init.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_ctor_init_following.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_ctor_init_following.cfg
index 140e8f17..140e8f17 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_ctor_init_following.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_ctor_init_following.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_ctor_init_leading.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_ctor_init_leading.cfg
index ce8fb22f..ce8fb22f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_ctor_init_leading.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_ctor_init_leading.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_ctor_members_twice.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_ctor_members_twice.cfg
index 82c708d4..82c708d4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_ctor_members_twice.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_ctor_members_twice.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_else_if-t.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_else_if-t.cfg
index 2dcd9a57..2dcd9a57 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_else_if-t.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_else_if-t.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_first_for_expr-t.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_first_for_expr-t.cfg
index ff68e85c..ff68e85c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_first_for_expr-t.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_first_for_expr-t.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_func_proto_param-t.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_func_proto_param-t.cfg
new file mode 100644
index 00000000..04301ff7
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_func_proto_param-t.cfg
@@ -0,0 +1 @@
+indent_func_proto_param = true
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_ignore_before_class_colon-t.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_ignore_before_class_colon-t.cfg
new file mode 100644
index 00000000..6564f4d0
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_ignore_before_class_colon-t.cfg
@@ -0,0 +1 @@
+indent_ignore_before_class_colon = true
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_ignore_before_constr_colon-t.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_ignore_before_constr_colon-t.cfg
new file mode 100644
index 00000000..6e9fa193
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_ignore_before_constr_colon-t.cfg
@@ -0,0 +1 @@
+indent_ignore_before_constr_colon = true
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_namespace-t.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_namespace-t.cfg
index 90bbdaec..90bbdaec 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_namespace-t.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_namespace-t.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_namespace_inner_only.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_namespace_inner_only.cfg
new file mode 100644
index 00000000..bb715758
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_namespace_inner_only.cfg
@@ -0,0 +1,2 @@
+indent_namespace = true
+indent_namespace_inner_only = true
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_namespace_single_indent.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_namespace_single_indent.cfg
index 9f66fea4..9f66fea4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_namespace_single_indent.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_namespace_single_indent.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_off_after_return.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_off_after_return.cfg
index 077c5f94..077c5f94 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_off_after_return.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_off_after_return.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_once.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_once.cfg
index 013985b9..013985b9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_once.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_once.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_param.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_param.cfg
index 07d98897..07d98897 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_param.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_param.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_paren_after_func_call-t.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_paren_after_func_call-t.cfg
index eafffebc..eafffebc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_paren_after_func_call-t.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_paren_after_func_call-t.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_paren_after_func_decl-t.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_paren_after_func_decl-t.cfg
index c4db2ffe..c4db2ffe 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_paren_after_func_decl-t.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_paren_after_func_decl-t.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_paren_after_func_def-t.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_paren_after_func_def-t.cfg
index 5d2895e9..5d2895e9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_paren_after_func_def-t.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_paren_after_func_def-t.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_paren_close_0.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_paren_close_0.cfg
new file mode 100644
index 00000000..b14f0bc5
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_paren_close_0.cfg
@@ -0,0 +1 @@
+indent_paren_close = 0
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_paren_close_1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_paren_close_1.cfg
new file mode 100644
index 00000000..06795707
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_paren_close_1.cfg
@@ -0,0 +1 @@
+indent_paren_close = 1
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_paren_close_2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_paren_close_2.cfg
new file mode 100644
index 00000000..b78b2995
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_paren_close_2.cfg
@@ -0,0 +1 @@
+indent_paren_close = 2
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_semicolon_for_paren-t.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_semicolon_for_paren-t.cfg
index 6b49dbd6..6b49dbd6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_semicolon_for_paren-t.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_semicolon_for_paren-t.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_shift.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_shift.cfg
new file mode 100644
index 00000000..481d7d07
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_shift.cfg
@@ -0,0 +1,4 @@
+indent_columns = 4
+indent_continue = 4
+indent_shift = 1
+align_left_shift = false
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_var_def_cont-t.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_var_def_cont-t.cfg
index f439a00b..f439a00b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_var_def_cont-t.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_var_def_cont-t.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_with_tabs-0.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_with_tabs-0.cfg
index bd2c3a08..bd2c3a08 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_with_tabs-0.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/indent_with_tabs-0.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/initlist_leading_commas.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/initlist_leading_commas.cfg
index ebd35547..ebd35547 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/initlist_leading_commas.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/initlist_leading_commas.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/interface-keyword-in-cpp.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/interface-keyword-in-cpp.cfg
index cbbf215b..cbbf215b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/interface-keyword-in-cpp.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/interface-keyword-in-cpp.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_1778.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/issue_1778.cfg
index 2f4bd642..2f4bd642 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_1778.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/issue_1778.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_1782.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/issue_1782.cfg
index 6d50bfeb..6d50bfeb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_1782.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/issue_1782.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_1804.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/issue_1804.cfg
index 4c424b89..4c424b89 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_1804.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/issue_1804.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_1887.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/issue_1887.cfg
index 956ea6a9..956ea6a9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_1887.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/issue_1887.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_1916.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/issue_1916.cfg
index 414a4a96..414a4a96 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_1916.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/issue_1916.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_1985.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/issue_1985.cfg
index 3be58c29..3be58c29 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_1985.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/issue_1985.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_1997.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/issue_1997.cfg
index 1f79d36e..1f79d36e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_1997.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/issue_1997.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_2124-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/issue_2124-1.cfg
index e69de29b..e69de29b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_2124-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/issue_2124-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/issue_2124-2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/issue_2124-2.cfg
new file mode 100644
index 00000000..37eeb5f2
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/issue_2124-2.cfg
@@ -0,0 +1,2 @@
+mod_full_brace_if_chain = 1
+mod_full_brace_nl = 1
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_2209.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/issue_2209.cfg
index 414a7273..414a7273 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_2209.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/issue_2209.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_2623_1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/issue_2623_1.cfg
index 56ab3a56..56ab3a56 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_2623_1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/issue_2623_1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_2623_2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/issue_2623_2.cfg
index 2848fb59..2848fb59 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_2623_2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/issue_2623_2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_2623_3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/issue_2623_3.cfg
index 52d17555..52d17555 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_2623_3.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/issue_2623_3.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_3116-2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/issue_3116-2.cfg
index f26ef61e..f26ef61e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_3116-2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/issue_3116-2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_3116.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/issue_3116.cfg
index 034f2697..034f2697 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_3116.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/issue_3116.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_3378.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/issue_3378.cfg
index 8ecc9f2f..8ecc9f2f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_3378.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/issue_3378.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_564.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/issue_564.cfg
index d1496108..d1496108 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_564.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/issue_564.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_574-i-a.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/issue_574-i-a.cfg
index 24a1a182..24a1a182 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_574-i-a.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/issue_574-i-a.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_574-i-b.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/issue_574-i-b.cfg
index b61ac3e2..b61ac3e2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_574-i-b.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/issue_574-i-b.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_574-i-i.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/issue_574-i-i.cfg
index c0177cb1..c0177cb1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_574-i-i.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/issue_574-i-i.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_574.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/issue_574.cfg
index 925ee5fe..925ee5fe 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_574.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/issue_574.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/kdepim2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/kdepim2.cfg
index 18b12bbe..18b12bbe 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/kdepim2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/kdepim2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/kdepim3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/kdepim3.cfg
index 0fe42133..0fe42133 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/kdepim3.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/kdepim3.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/kdepim5.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/kdepim5.cfg
index 56a1b3da..56a1b3da 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/kdepim5.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/kdepim5.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/lambda1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/lambda1.cfg
index c0fbc795..c0fbc795 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/lambda1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/lambda1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/lambda2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/lambda2.cfg
index 9f698209..9f698209 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/lambda2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/lambda2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/lambda3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/lambda3.cfg
index ffed35eb..ffed35eb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/lambda3.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/lambda3.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/lambda4.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/lambda4.cfg
new file mode 100644
index 00000000..63a99010
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/lambda4.cfg
@@ -0,0 +1,20 @@
+sp_arith = force
+sp_assign = force
+sp_cpp_lambda_assign = remove
+sp_cpp_lambda_square_paren = force
+sp_inside_paren = remove
+sp_before_ptr_star = force
+sp_after_ptr_star = remove
+sp_before_byref = remove
+sp_inside_braces = force
+sp_fparen_brace = force
+indent_columns = 3
+indent_with_tabs = 0
+nl_cpp_lambda_leave_one_liners = true
+nl_cpp_ldef_brace = remove
+eat_blanks_before_close_brace = true
+mod_paren_on_return = add
+
+# Specific testing of the following two settings
+indent_cpp_lambda_body = true
+indent_continue = 4 # number
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/lambda_in_one_liner.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/lambda_in_one_liner.cfg
index 7b61e767..7b61e767 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/lambda_in_one_liner.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/lambda_in_one_liner.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/lineEndings-to-Mac.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/lineEndings-to-Mac.cfg
index d8b41944..d8b41944 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/lineEndings-to-Mac.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/lineEndings-to-Mac.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/lineEndings-to-Unix.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/lineEndings-to-Unix.cfg
index e6cf9411..e6cf9411 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/lineEndings-to-Unix.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/lineEndings-to-Unix.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/lineEndings-to-Win.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/lineEndings-to-Win.cfg
index cb40d365..cb40d365 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/lineEndings-to-Win.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/lineEndings-to-Win.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/long_br_cmt.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/long_br_cmt.cfg
index f66ee7c7..f66ee7c7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/long_br_cmt.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/long_br_cmt.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/long_namespace.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/long_namespace.cfg
index 74f99a18..74f99a18 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/long_namespace.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/long_namespace.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/mod_add_long_namespace_closebrace_comment-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/mod_add_long_namespace_closebrace_comment-1.cfg
index a94f5a62..a94f5a62 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/mod_add_long_namespace_closebrace_comment-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/mod_add_long_namespace_closebrace_comment-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/mod_full_brace_if_chain-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/mod_full_brace_if_chain-1.cfg
new file mode 100644
index 00000000..a0b0f5d3
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/mod_full_brace_if_chain-1.cfg
@@ -0,0 +1 @@
+mod_full_brace_if_chain = 1
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/mod_full_brace_if_chain-2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/mod_full_brace_if_chain-2.cfg
new file mode 100644
index 00000000..c78f179b
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/mod_full_brace_if_chain-2.cfg
@@ -0,0 +1 @@
+mod_full_brace_if_chain = 2
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/mod_full_brace_if_chain-3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/mod_full_brace_if_chain-3.cfg
new file mode 100644
index 00000000..dd552dd0
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/mod_full_brace_if_chain-3.cfg
@@ -0,0 +1 @@
+mod_full_brace_if_chain = 3
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/mod_remove_empty_return-t.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/mod_remove_empty_return-t.cfg
index 3e1bcd1f..3e1bcd1f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/mod_remove_empty_return-t.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/mod_remove_empty_return-t.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/mod_remove_extra_semicolon-t.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/mod_remove_extra_semicolon-t.cfg
index 0f2d5246..0f2d5246 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/mod_remove_extra_semicolon-t.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/mod_remove_extra_semicolon-t.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/multi_line_1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/multi_line_1.cfg
index fe15ff0a..fe15ff0a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/multi_line_1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/multi_line_1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/multi_line_10.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/multi_line_10.cfg
index e5b917e8..e5b917e8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/multi_line_10.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/multi_line_10.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/multi_line_2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/multi_line_2.cfg
index b4063fd3..b4063fd3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/multi_line_2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/multi_line_2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/multi_line_3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/multi_line_3.cfg
index d1c40d07..d1c40d07 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/multi_line_3.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/multi_line_3.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/multi_line_4.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/multi_line_4.cfg
index 651b4823..651b4823 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/multi_line_4.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/multi_line_4.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/multi_line_5.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/multi_line_5.cfg
index 94140b21..94140b21 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/multi_line_5.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/multi_line_5.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/multi_line_6.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/multi_line_6.cfg
index 4fd7a077..4fd7a077 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/multi_line_6.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/multi_line_6.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/multi_line_7.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/multi_line_7.cfg
index 4ee5733c..4ee5733c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/multi_line_7.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/multi_line_7.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/multi_line_8.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/multi_line_8.cfg
index 5d6d9c63..5d6d9c63 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/multi_line_8.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/multi_line_8.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/multi_line_9.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/multi_line_9.cfg
index be9a43e3..be9a43e3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/multi_line_9.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/multi_line_9.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nSolve.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nSolve.cfg
index 6cc6fc27..6cc6fc27 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nSolve.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nSolve.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/negative_indent.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/negative_indent.cfg
index 39b1b007..39b1b007 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/negative_indent.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/negative_indent.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/new_op_a.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/new_op_a.cfg
index d7501092..d7501092 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/new_op_a.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/new_op_a.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/new_op_f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/new_op_f.cfg
index 16784899..16784899 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/new_op_f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/new_op_f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/new_op_paren_open_close.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/new_op_paren_open_close.cfg
index 789c7abe..789c7abe 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/new_op_paren_open_close.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/new_op_paren_open_close.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/new_op_r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/new_op_r.cfg
index b72cd2ae..b72cd2ae 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/new_op_r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/new_op_r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl-brAfter-fcallParen.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl-brAfter-fcallParen.cfg
index 6a83f800..6a83f800 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl-brAfter-fcallParen.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl-brAfter-fcallParen.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_access_spec.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_access_spec.cfg
index a5d98c44..a5d98c44 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_access_spec.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_access_spec.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_after_func_body-2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_after_func_body-2.cfg
index 9c9e7d57..9c9e7d57 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_after_func_body-2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_after_func_body-2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_after_func_body.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_after_func_body.cfg
index 68633b6d..68633b6d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_after_func_body.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_after_func_body.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_after_func_class_proto-3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_after_func_class_proto-3.cfg
index 87b84e91..87b84e91 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_after_func_class_proto-3.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_after_func_class_proto-3.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_after_func_proto-3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_after_func_proto-3.cfg
index c9bc1f45..c9bc1f45 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_after_func_proto-3.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_after_func_proto-3.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_after_func_proto_group-3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_after_func_proto_group-3.cfg
index 63fa256a..63fa256a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_after_func_proto_group-3.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_after_func_proto_group-3.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_assign_leave_one_liners.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_assign_leave_one_liners.cfg
index 6914813b..6914813b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_assign_leave_one_liners.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_assign_leave_one_liners.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_before_brace_open_1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_before_brace_open_1.cfg
index 4146c6fb..4146c6fb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_before_brace_open_1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_before_brace_open_1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_before_brace_open_2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_before_brace_open_2.cfg
index bc1aaf83..bc1aaf83 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_before_brace_open_2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_before_brace_open_2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_before_brace_open_3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_before_brace_open_3.cfg
index 02daa843..02daa843 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_before_brace_open_3.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_before_brace_open_3.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_before_func_body_def-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_before_func_body_def-1.cfg
index 03ee374a..03ee374a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_before_func_body_def-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_before_func_body_def-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_before_func_body_def-2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_before_func_body_def-2.cfg
index 2f3ba945..2f3ba945 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_before_func_body_def-2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_before_func_body_def-2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_before_if_closing_paren-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_before_if_closing_paren-f.cfg
index 39539a4e..39539a4e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_before_if_closing_paren-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_before_if_closing_paren-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_before_if_closing_paren-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_before_if_closing_paren-r.cfg
index d3ab2d68..d3ab2d68 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_before_if_closing_paren-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_before_if_closing_paren-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_before_struct.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_before_struct.cfg
index ab325b19..ab325b19 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_before_struct.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_before_struct.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_brace_brace-a.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_brace_brace-a.cfg
index 25d3c271..25d3c271 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_brace_brace-a.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_brace_brace-a.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_brace_fparen-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_brace_fparen-f.cfg
index 0a731344..0a731344 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_brace_fparen-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_brace_fparen-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_brace_fparen-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_brace_fparen-r.cfg
index 5a749682..5a749682 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_brace_fparen-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_brace_fparen-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_class-a.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_class-a.cfg
index 8c1eb70e..8c1eb70e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_class-a.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_class-a.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_class-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_class-r.cfg
index 29cc4dc6..29cc4dc6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_class-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_class-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_fdef_brace-r__nl_collapse_empty_body-t.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_fdef_brace-r__nl_collapse_empty_body-t.cfg
index 7aac9635..7aac9635 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_fdef_brace-r__nl_collapse_empty_body-t.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_fdef_brace-r__nl_collapse_empty_body-t.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_fdef_brace_cond-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_fdef_brace_cond-f.cfg
index 7f08f9e3..7f08f9e3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_fdef_brace_cond-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_fdef_brace_cond-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_fdef_brace_cond-fr.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_fdef_brace_cond-fr.cfg
index affe7156..affe7156 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_fdef_brace_cond-fr.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_fdef_brace_cond-fr.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_fdef_brace_cond-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_fdef_brace_cond-r.cfg
index e64f7f0c..e64f7f0c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_fdef_brace_cond-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_fdef_brace_cond-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_fdef_brace_cond-rf.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_fdef_brace_cond-rf.cfg
index 9b12913e..9b12913e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_fdef_brace_cond-rf.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_fdef_brace_cond-rf.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_for_leave_one_liners-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_for_leave_one_liners-f.cfg
index bdcceefd..bdcceefd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_for_leave_one_liners-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_for_leave_one_liners-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_for_leave_one_liners-t.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_for_leave_one_liners-t.cfg
index 4d11891e..4d11891e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_for_leave_one_liners-t.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_for_leave_one_liners-t.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_call_empty-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_func_call_empty-r.cfg
index da04d6fa..da04d6fa 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_call_empty-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_func_call_empty-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_call_paren-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_func_call_paren-f.cfg
index 480ce89f..480ce89f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_call_paren-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_func_call_paren-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_call_paren_empty-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_func_call_paren_empty-r.cfg
index 48612eb5..48612eb5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_call_paren_empty-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_func_call_paren_empty-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_class_scope-a.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_func_class_scope-a.cfg
index dc9b2ec5..dc9b2ec5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_class_scope-a.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_func_class_scope-a.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_decl_1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_func_decl_1.cfg
index 438afe8f..438afe8f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_decl_1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_func_decl_1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_decl_2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_func_decl_2.cfg
index c0495a4b..c0495a4b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_decl_2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_func_decl_2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_def_paren_empty-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_func_def_paren_empty-r.cfg
index ddc5e5d2..ddc5e5d2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_def_paren_empty-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_func_def_paren_empty-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_paren_empty.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_func_paren_empty.cfg
index 63f0b8ad..63f0b8ad 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_paren_empty.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_func_paren_empty.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_scope_name-a.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_func_scope_name-a.cfg
index c814477d..c814477d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_scope_name-a.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_func_scope_name-a.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_type_name-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_func_type_name-r.cfg
index 9cc10873..9cc10873 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_type_name-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_func_type_name-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_type_name_class.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_func_type_name_class.cfg
index fcb08501..fcb08501 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_type_name_class.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_func_type_name_class.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_type_name_force.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_func_type_name_force.cfg
index ef8b317e..ef8b317e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_type_name_force.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_func_type_name_force.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_type_name_mixed.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_func_type_name_mixed.cfg
index 515400f2..515400f2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_type_name_mixed.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_func_type_name_mixed.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_type_name_remove.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_func_type_name_remove.cfg
index ee38dd7e..ee38dd7e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_type_name_remove.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_func_type_name_remove.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_var_def_blk-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_func_var_def_blk-1.cfg
index 2fc79eb3..2fc79eb3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_var_def_blk-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_func_var_def_blk-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_inside_namespace_1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_inside_namespace_1.cfg
index c84309ca..c84309ca 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_inside_namespace_1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_inside_namespace_1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_inside_namespace_2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_inside_namespace_2.cfg
index 9edefd02..9edefd02 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_inside_namespace_2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_inside_namespace_2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_max_blank_in_func-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_max_blank_in_func-1.cfg
index 9aa3416c..9aa3416c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_max_blank_in_func-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_max_blank_in_func-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_max_blank_in_func-4.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_max_blank_in_func-4.cfg
index 8d0bdf67..8d0bdf67 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_max_blank_in_func-4.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_max_blank_in_func-4.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_namespace-a.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_namespace-a.cfg
index bc5d6469..bc5d6469 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_namespace-a.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_namespace-a.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_namespace-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_namespace-r.cfg
index ca9c198d..ca9c198d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_namespace-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_namespace-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_remove_extra_newlines-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_remove_extra_newlines-1.cfg
index 2d0c48b2..2d0c48b2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_remove_extra_newlines-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_remove_extra_newlines-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_template-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_template-f.cfg
index a90d1500..a90d1500 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_template-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_template-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_template-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_template-r.cfg
index 443693e5..443693e5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_template-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_template-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_try-a.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_try-a.cfg
index b85fcb08..b85fcb08 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_try-a.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_try-a.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_type_brace_init_lst-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_type_brace_init_lst-f.cfg
index 1b29c5cd..1b29c5cd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_type_brace_init_lst-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_type_brace_init_lst-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_type_brace_init_lst-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_type_brace_init_lst-r.cfg
index ef8d1de1..ef8d1de1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_type_brace_init_lst-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_type_brace_init_lst-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_type_brace_init_lst_close-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_type_brace_init_lst_close-f.cfg
index 4e070657..4e070657 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_type_brace_init_lst_close-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_type_brace_init_lst_close-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_type_brace_init_lst_close-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_type_brace_init_lst_close-r.cfg
index d4834efd..d4834efd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_type_brace_init_lst_close-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_type_brace_init_lst_close-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_type_brace_init_lst_open-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_type_brace_init_lst_open-f.cfg
index 1e9289e4..1e9289e4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_type_brace_init_lst_open-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_type_brace_init_lst_open-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_type_brace_init_lst_open-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_type_brace_init_lst_open-r.cfg
index 7d493c8b..7d493c8b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_type_brace_init_lst_open-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/nl_type_brace_init_lst_open-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/no_squeeze_ifdef.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/no_squeeze_ifdef.cfg
index af4a3020..af4a3020 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/no_squeeze_ifdef.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/no_squeeze_ifdef.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/op-space-force.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/op-space-force.cfg
index 4feac69a..4feac69a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/op-space-force.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/op-space-force.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/op-space-remove-align-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/op-space-remove-align-1.cfg
index 5be45718..5be45718 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/op-space-remove-align-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/op-space-remove-align-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/op-space-remove-align-2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/op-space-remove-align-2.cfg
index 32b7687a..32b7687a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/op-space-remove-align-2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/op-space-remove-align-2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/op-space-remove.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/op-space-remove.cfg
index 5424ede9..5424ede9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/op-space-remove.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/op-space-remove.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/op_sym_empty.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/op_sym_empty.cfg
index d9a57ce1..d9a57ce1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/op_sym_empty.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/op_sym_empty.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/out-668-F.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/out-668-F.cfg
index 77d9e08c..77d9e08c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/out-668-F.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/out-668-F.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/out-668-T.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/out-668-T.cfg
index a48c3ebb..a48c3ebb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/out-668-T.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/out-668-T.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/pos_assign.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/pos_assign.cfg
index 3b9c3700..3b9c3700 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/pos_assign.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/pos_assign.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/pos_comma-lf.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/pos_comma-lf.cfg
index 9f2daab6..9f2daab6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/pos_comma-lf.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/pos_comma-lf.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/pos_comma-tb.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/pos_comma-tb.cfg
index 3530982a..3530982a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/pos_comma-tb.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/pos_comma-tb.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/pos_enum_comma-tf.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/pos_enum_comma-tf.cfg
index 26cf3dff..26cf3dff 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/pos_enum_comma-tf.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/pos_enum_comma-tf.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/pos_shift-join.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/pos_shift-join.cfg
index 69ce2c94..69ce2c94 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/pos_shift-join.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/pos_shift-join.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/pos_shift-lead.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/pos_shift-lead.cfg
index 08e7d5de..08e7d5de 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/pos_shift-lead.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/pos_shift-lead.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/pos_shift-trail.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/pos_shift-trail.cfg
index a6b45298..a6b45298 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/pos_shift-trail.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/pos_shift-trail.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/pp-pragma.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/pp-pragma.cfg
index e143a69c..e143a69c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/pp-pragma.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/pp-pragma.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/pp_define_at_level-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/pp_define_at_level-1.cfg
index 12d12161..12d12161 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/pp_define_at_level-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/pp_define_at_level-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/pp_multi_comment.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/pp_multi_comment.cfg
index 0c23b380..0c23b380 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/pp_multi_comment.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/pp_multi_comment.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ptr_star-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ptr_star-1.cfg
index 34a504be..34a504be 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ptr_star-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ptr_star-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ptr_star-2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ptr_star-2.cfg
index 6af95864..6af95864 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ptr_star-2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ptr_star-2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ptr_star-3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ptr_star-3.cfg
index 3a5ed163..3a5ed163 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ptr_star-3.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/ptr_star-3.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/qt-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/qt-1.cfg
index b15663f7..b15663f7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/qt-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/qt-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sef.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sef.cfg
index ee467d79..ee467d79 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sef.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sef.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/semi-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/semi-f.cfg
index 0ffadc4a..0ffadc4a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/semi-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/semi-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/semi-i.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/semi-i.cfg
index b4260607..b4260607 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/semi-i.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/semi-i.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/semi-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/semi-r.cfg
index a8465b8c..a8465b8c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/semi-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/semi-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sf.2886991-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sf.2886991-f.cfg
index 46a15bac..46a15bac 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sf.2886991-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sf.2886991-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sf.2886991-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sf.2886991-r.cfg
index 8f6c0f6d..8f6c0f6d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sf.2886991-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sf.2886991-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sf.3315874.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sf.3315874.cfg
index 99da8446..99da8446 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sf.3315874.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sf.3315874.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sf574.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sf574.cfg
index 8fc266f7..8fc266f7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sf574.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sf574.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sim.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sim.cfg
index a772734b..a772734b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sim.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sim.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_angle-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_after_angle-1.cfg
index cae5bbb7..cae5bbb7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_angle-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_after_angle-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_angle-2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_after_angle-2.cfg
index c14d7901..c14d7901 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_angle-2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_after_angle-2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_angle-3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_after_angle-3.cfg
index d0428a10..d0428a10 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_angle-3.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_after_angle-3.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_cast-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_after_cast-f.cfg
index d92ffb0d..d92ffb0d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_cast-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_after_cast-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_cast-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_after_cast-r.cfg
index 130602eb..130602eb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_cast-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_after_cast-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_constr_colon.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_after_constr_colon.cfg
index aa1189dd..aa1189dd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_constr_colon.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_after_constr_colon.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_decltype-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_after_decltype-f.cfg
index 077c5f94..077c5f94 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_decltype-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_after_decltype-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_decltype-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_after_decltype-r.cfg
index 64a318a0..64a318a0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_decltype-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_after_decltype-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_ellipsis-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_after_ellipsis-f.cfg
index e30e169a..e30e169a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_ellipsis-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_after_ellipsis-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_ptr_star_qualifier-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_after_ptr_star_qualifier-f.cfg
index 7e26046f..7e26046f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_ptr_star_qualifier-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_after_ptr_star_qualifier-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_type-i.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_after_type-i.cfg
index bd45658a..bd45658a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_type-i.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_after_type-i.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_type_brace_init_lst_open-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_after_type_brace_init_lst_open-f.cfg
index d3b744b4..d3b744b4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_type_brace_init_lst_open-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_after_type_brace_init_lst_open-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_type_brace_init_lst_open-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_after_type_brace_init_lst_open-r.cfg
index f370b82e..f370b82e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_type_brace_init_lst_open-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_after_type_brace_init_lst_open-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_angle_colon.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_angle_colon.cfg
index e247bbbe..e247bbbe 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_angle_colon.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_angle_colon.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_angle_paren-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_angle_paren-f.cfg
index 0b3d2f92..0b3d2f92 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_angle_paren-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_angle_paren-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_angle_paren_empty.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_angle_paren_empty.cfg
index 1e3c592b..1e3c592b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_angle_paren_empty.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_angle_paren_empty.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_arith-a.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_arith-a.cfg
index 4d60daa9..4d60daa9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_arith-a.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_arith-a.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_arith_additive-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_arith_additive-f.cfg
index 8e6f0585..8e6f0585 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_arith_additive-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_arith_additive-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_arith_additive-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_arith_additive-r.cfg
index e01e86f7..e01e86f7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_arith_additive-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_arith_additive-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_assign_default.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_assign_default.cfg
index 29411834..29411834 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_assign_default.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_assign_default.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_balance_nested_parens.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_balance_nested_parens.cfg
index 8e9dbb6f..8e9dbb6f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_balance_nested_parens.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_balance_nested_parens.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_before_byref_func.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_before_byref_func.cfg
index 6f5e2783..6f5e2783 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_before_byref_func.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_before_byref_func.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_before_case_colon.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_before_case_colon.cfg
index d0bef793..d0bef793 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_before_case_colon.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_before_case_colon.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_before_comma-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_before_comma-f.cfg
index dc25e313..dc25e313 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_before_comma-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_before_comma-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_before_constr_colon.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_before_constr_colon.cfg
index 9d0ec317..9d0ec317 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_before_constr_colon.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_before_constr_colon.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_before_ellipsis-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_before_ellipsis-f.cfg
index ed701425..ed701425 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_before_ellipsis-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_before_ellipsis-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_before_ellipsis-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_before_ellipsis-r.cfg
index e2163788..e2163788 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_before_ellipsis-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_before_ellipsis-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_before_ptr_star-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_before_ptr_star-f.cfg
index 7653ec0b..7653ec0b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_before_ptr_star-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_before_ptr_star-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_before_ptr_star-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_before_ptr_star-r.cfg
index 55f99c73..55f99c73 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_before_ptr_star-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_before_ptr_star-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_before_tr_emb_cmt-a.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_before_tr_emb_cmt-a.cfg
index 834fd302..834fd302 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_before_tr_emb_cmt-a.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_before_tr_emb_cmt-a.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_before_tr_emb_cmt-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_before_tr_emb_cmt-f.cfg
index 54720c71..54720c71 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_before_tr_emb_cmt-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_before_tr_emb_cmt-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_before_type_brace_init_lst_close-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_before_type_brace_init_lst_close-f.cfg
index 3dda0281..3dda0281 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_before_type_brace_init_lst_close-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_before_type_brace_init_lst_close-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_before_type_brace_init_lst_close-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_before_type_brace_init_lst_close-r.cfg
index 5fb0bf36..5fb0bf36 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_before_type_brace_init_lst_close-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_before_type_brace_init_lst_close-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_bool-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_bool-f.cfg
index b5a9e09f..b5a9e09f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_bool-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_bool-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_bool-i.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_bool-i.cfg
index ae79b0a8..ae79b0a8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_bool-i.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_bool-i.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_bool-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_bool-r.cfg
index 3baee576..3baee576 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_bool-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_bool-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_brace_brace-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_brace_brace-f.cfg
index 090c2858..090c2858 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_brace_brace-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_brace_brace-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_brace_brace-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_brace_brace-r.cfg
index c652b3cd..c652b3cd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_brace_brace-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_brace_brace-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_brace_catch.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_brace_catch.cfg
index 7ee0209d..7ee0209d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_brace_catch.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_brace_catch.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_byref_paren-a.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_byref_paren-a.cfg
new file mode 100644
index 00000000..f2c79e1a
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_byref_paren-a.cfg
@@ -0,0 +1 @@
+sp_byref_paren = add
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_byref_paren-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_byref_paren-f.cfg
new file mode 100644
index 00000000..8e7a167c
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_byref_paren-f.cfg
@@ -0,0 +1 @@
+sp_byref_paren = force
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_byref_paren-i.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_byref_paren-i.cfg
new file mode 100644
index 00000000..1ba244a9
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_byref_paren-i.cfg
@@ -0,0 +1 @@
+sp_byref_paren = ignore
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_byref_paren-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_byref_paren-r.cfg
new file mode 100644
index 00000000..fe59915e
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_byref_paren-r.cfg
@@ -0,0 +1 @@
+sp_byref_paren = remove
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_catch_brace.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_catch_brace.cfg
index d2da6d91..d2da6d91 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_catch_brace.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_catch_brace.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cmt.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_cmt.cfg
index fb7f6ef1..fb7f6ef1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cmt.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_cmt.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cmt_cpp_region-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_cmt_cpp_region-f.cfg
index 1c626401..1c626401 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cmt_cpp_region-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_cmt_cpp_region-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cmt_cpp_region-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_cmt_cpp_region-r.cfg
index 67a0ff11..67a0ff11 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cmt_cpp_region-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_cmt_cpp_region-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cond_question-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_cond_question-f.cfg
index dd6f0faf..dd6f0faf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cond_question-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_cond_question-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cond_question-i.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_cond_question-i.cfg
index d671d519..d671d519 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cond_question-i.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_cond_question-i.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cond_question-ir.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_cond_question-ir.cfg
index 4a557554..4a557554 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cond_question-ir.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_cond_question-ir.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cond_question-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_cond_question-r.cfg
index 0d013cf7..0d013cf7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cond_question-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_cond_question-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_constr_colon-i.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_constr_colon-i.cfg
index c5cd823a..c5cd823a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_constr_colon-i.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_constr_colon-i.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cparen_oparen-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_cparen_oparen-r.cfg
index f584c02d..f584c02d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cparen_oparen-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_cparen_oparen-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cpp_lambda_fparen-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_cpp_lambda_fparen-f.cfg
index f45270e7..f45270e7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cpp_lambda_fparen-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_cpp_lambda_fparen-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cpp_lambda_fparen-i.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_cpp_lambda_fparen-i.cfg
index cda81b02..cda81b02 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cpp_lambda_fparen-i.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_cpp_lambda_fparen-i.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cpp_lambda_fparen-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_cpp_lambda_fparen-r.cfg
index c64da54c..c64da54c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cpp_lambda_fparen-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_cpp_lambda_fparen-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cpp_lambda_paren_brace-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_cpp_lambda_paren_brace-f.cfg
index f632d9d6..f632d9d6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cpp_lambda_paren_brace-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_cpp_lambda_paren_brace-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cpp_lambda_paren_brace-i.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_cpp_lambda_paren_brace-i.cfg
index 9c8e2748..9c8e2748 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cpp_lambda_paren_brace-i.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_cpp_lambda_paren_brace-i.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cpp_lambda_paren_brace-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_cpp_lambda_paren_brace-r.cfg
index 492af499..492af499 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cpp_lambda_paren_brace-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_cpp_lambda_paren_brace-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cpp_lambda_square_brace-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_cpp_lambda_square_brace-f.cfg
index cc067763..cc067763 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cpp_lambda_square_brace-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_cpp_lambda_square_brace-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cpp_lambda_square_brace-i.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_cpp_lambda_square_brace-i.cfg
index a035f41e..a035f41e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cpp_lambda_square_brace-i.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_cpp_lambda_square_brace-i.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cpp_lambda_square_brace-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_cpp_lambda_square_brace-r.cfg
index cf703b2f..cf703b2f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cpp_lambda_square_brace-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_cpp_lambda_square_brace-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cpp_lambda_square_paren-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_cpp_lambda_square_paren-f.cfg
index 55ac955d..55ac955d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cpp_lambda_square_paren-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_cpp_lambda_square_paren-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cpp_lambda_square_paren-i.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_cpp_lambda_square_paren-i.cfg
index e8525fe5..e8525fe5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cpp_lambda_square_paren-i.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_cpp_lambda_square_paren-i.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cpp_lambda_square_paren-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_cpp_lambda_square_paren-r.cfg
index bcb937c3..bcb937c3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cpp_lambda_square_paren-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_cpp_lambda_square_paren-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_dc.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_dc.cfg
index c9b14cc2..c9b14cc2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_dc.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_dc.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_decltype_paren-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_decltype_paren-f.cfg
index 3636cd02..3636cd02 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_decltype_paren-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_decltype_paren-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_decltype_paren-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_decltype_paren-r.cfg
index b11add96..b11add96 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_decltype_paren-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_decltype_paren-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_endif_cmt.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_endif_cmt.cfg
index 13ddf4fe..13ddf4fe 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_endif_cmt.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_endif_cmt.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_enum_assign-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_enum_assign-f.cfg
index 37928822..37928822 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_enum_assign-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_enum_assign-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_enum_assign-i.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_enum_assign-i.cfg
index c30b6525..c30b6525 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_enum_assign-i.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_enum_assign-i.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_enum_colon-i.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_enum_colon-i.cfg
index d154830c..d154830c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_enum_colon-i.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_enum_colon-i.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_enum_colon-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_enum_colon-r.cfg
index 87f44474..87f44474 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_enum_colon-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_enum_colon-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_enum_colon.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_enum_colon.cfg
index 27716eca..27716eca 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_enum_colon.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_enum_colon.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_func_call_empty.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_func_call_empty.cfg
index e6d960bb..e6d960bb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_func_call_empty.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_func_call_empty.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_func_call_paren.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_func_call_paren.cfg
index c5f8927b..c5f8927b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_func_call_paren.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_func_call_paren.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_func_class_empty.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_func_class_empty.cfg
index eb4aa154..eb4aa154 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_func_class_empty.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_func_class_empty.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_func_def_empty.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_func_def_empty.cfg
index bb1260ab..bb1260ab 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_func_def_empty.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_func_def_empty.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_func_proto_empty.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_func_proto_empty.cfg
index e6da9e5f..e6da9e5f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_func_proto_empty.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_func_proto_empty.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_inside_braces_empty-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_inside_braces_empty-r.cfg
index f7b1b239..f7b1b239 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_inside_braces_empty-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_inside_braces_empty-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_inside_braces_enum-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_inside_braces_enum-f.cfg
index bd854828..bd854828 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_inside_braces_enum-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_inside_braces_enum-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_inside_braces_enum-i.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_inside_braces_enum-i.cfg
index a56a9ecb..a56a9ecb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_inside_braces_enum-i.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_inside_braces_enum-i.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_inside_braces_enum-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_inside_braces_enum-r.cfg
index ca8a03a0..ca8a03a0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_inside_braces_enum-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_inside_braces_enum-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_inside_fparen-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_inside_fparen-r.cfg
index 98f867f4..98f867f4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_inside_fparen-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_inside_fparen-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_inside_fparens-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_inside_fparens-f.cfg
index b56756d1..b56756d1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_inside_fparens-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_inside_fparens-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_inside_type_brace_init_lst-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_inside_type_brace_init_lst-f.cfg
index 72db534b..72db534b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_inside_type_brace_init_lst-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_inside_type_brace_init_lst-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_inside_type_brace_init_lst-iif.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_inside_type_brace_init_lst-iif.cfg
index c42436bf..c42436bf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_inside_type_brace_init_lst-iif.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_inside_type_brace_init_lst-iif.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_inside_type_brace_init_lst-iii.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_inside_type_brace_init_lst-iii.cfg
index e352ee6c..e352ee6c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_inside_type_brace_init_lst-iii.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_inside_type_brace_init_lst-iii.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_inside_type_brace_init_lst-irf.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_inside_type_brace_init_lst-irf.cfg
index ed72df5e..ed72df5e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_inside_type_brace_init_lst-irf.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_inside_type_brace_init_lst-irf.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_inside_type_brace_init_lst-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_inside_type_brace_init_lst-r.cfg
index b0881eaf..b0881eaf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_inside_type_brace_init_lst-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_inside_type_brace_init_lst-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_inside_type_brace_init_lst-rf.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_inside_type_brace_init_lst-rf.cfg
index cafaab52..cafaab52 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_inside_type_brace_init_lst-rf.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_inside_type_brace_init_lst-rf.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_not_not.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_not_not.cfg
new file mode 100644
index 00000000..1c0335a4
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_not_not.cfg
@@ -0,0 +1,2 @@
+sp_not = add
+sp_not_not = remove
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_paren_brace-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_paren_brace-f.cfg
index 8f9206ab..8f9206ab 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_paren_brace-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_paren_brace-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_paren_brace-i.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_paren_brace-i.cfg
index f3d0f22d..f3d0f22d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_paren_brace-i.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_paren_brace-i.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_paren_brace-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_paren_brace-r.cfg
index 7e2fce85..7e2fce85 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_paren_brace-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_paren_brace-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_paren_ellipsis-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_paren_ellipsis-f.cfg
index 3cc88128..3cc88128 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_paren_ellipsis-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_paren_ellipsis-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_paren_ellipsis-i.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_paren_ellipsis-i.cfg
index 093de258..093de258 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_paren_ellipsis-i.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_paren_ellipsis-i.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_paren_ellipsis-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_paren_ellipsis-r.cfg
index 5971dfa8..5971dfa8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_paren_ellipsis-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_paren_ellipsis-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_paren_noexcept-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_paren_noexcept-f.cfg
index 35e76a33..35e76a33 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_paren_noexcept-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_paren_noexcept-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_paren_qualifier-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_paren_qualifier-f.cfg
index f91f2aee..f91f2aee 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_paren_qualifier-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_paren_qualifier-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_return-a.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_return-a.cfg
index 16e78850..16e78850 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_return-a.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_return-a.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_return-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_return-f.cfg
index b37d9b03..b37d9b03 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_return-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_return-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_return-i.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_return-i.cfg
index 80d2d26d..80d2d26d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_return-i.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_return-i.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_return-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_return-r.cfg
index b3d64b3f..b3d64b3f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_return-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_return-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_return_brace-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_return_brace-f.cfg
index bdea1673..bdea1673 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_return_brace-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_return_brace-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_return_brace-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_return_brace-r.cfg
index a2541527..a2541527 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_return_brace-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_return_brace-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_return_paren-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_return_paren-f.cfg
index 11637ca1..11637ca1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_return_paren-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_return_paren-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_return_paren-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_return_paren-r.cfg
index 8fbef0b8..8fbef0b8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_return_paren-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_return_paren-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_sizeof_ellipsis-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_sizeof_ellipsis-f.cfg
index 853db73a..853db73a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_sizeof_ellipsis-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_sizeof_ellipsis-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_sizeof_ellipsis-i.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_sizeof_ellipsis-i.cfg
index 48871cc9..48871cc9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_sizeof_ellipsis-i.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_sizeof_ellipsis-i.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_sizeof_ellipsis-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_sizeof_ellipsis-r.cfg
index 7d1c2068..7d1c2068 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_sizeof_ellipsis-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_sizeof_ellipsis-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_sizeof_ellipsis_paren-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_sizeof_ellipsis_paren-f.cfg
index 46dfb49d..46dfb49d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_sizeof_ellipsis_paren-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_sizeof_ellipsis_paren-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_sizeof_ellipsis_paren-i.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_sizeof_ellipsis_paren-i.cfg
index 2b7d0b44..2b7d0b44 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_sizeof_ellipsis_paren-i.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_sizeof_ellipsis_paren-i.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_sizeof_ellipsis_paren-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_sizeof_ellipsis_paren-r.cfg
index 27953868..27953868 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_sizeof_ellipsis_paren-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_sizeof_ellipsis_paren-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_skip_vbrace_tokens.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_skip_vbrace_tokens.cfg
index d5ce739d..d5ce739d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_skip_vbrace_tokens.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_skip_vbrace_tokens.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_throw_paren-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_throw_paren-f.cfg
index 611cd750..611cd750 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_throw_paren-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_throw_paren-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_throw_paren-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_throw_paren-r.cfg
index 893c8782..893c8782 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_throw_paren-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_throw_paren-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_trailing_return-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_trailing_return-f.cfg
index 9e1fe074..9e1fe074 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_trailing_return-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_trailing_return-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_trailing_return-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_trailing_return-r.cfg
index b26929ba..b26929ba 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_trailing_return-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_trailing_return-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_trailing_return_byref_ptr-left.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_trailing_return_byref_ptr-left.cfg
new file mode 100644
index 00000000..071f30d0
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_trailing_return_byref_ptr-left.cfg
@@ -0,0 +1,7 @@
+sp_assign_default = force
+sp_trailing_return = force
+
+sp_before_byref = remove
+sp_after_byref = force
+
+sp_before_ptr_star_trailing = remove
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_trailing_return_byref_ptr-right.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_trailing_return_byref_ptr-right.cfg
new file mode 100644
index 00000000..f5078788
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_trailing_return_byref_ptr-right.cfg
@@ -0,0 +1,7 @@
+sp_assign_default = force
+sp_trailing_return = force
+
+sp_before_byref = force
+sp_after_byref = remove
+
+sp_before_ptr_star_trailing = force
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_type_brace_init_lst-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_type_brace_init_lst-f.cfg
index 2f0d5258..2f0d5258 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_type_brace_init_lst-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_type_brace_init_lst-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_type_brace_init_lst-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_type_brace_init_lst-r.cfg
index 199dc1eb..199dc1eb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_type_brace_init_lst-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_type_brace_init_lst-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_type_ellipsis-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_type_ellipsis-f.cfg
index 888a68b0..888a68b0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_type_ellipsis-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_type_ellipsis-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_type_ellipsis-i.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_type_ellipsis-i.cfg
index f6cb6d0c..f6cb6d0c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_type_ellipsis-i.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_type_ellipsis-i.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_type_ellipsis-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_type_ellipsis-r.cfg
index bf831e30..bf831e30 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_type_ellipsis-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_type_ellipsis-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_type_func-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_type_func-1.cfg
index 010876e0..010876e0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_type_func-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_type_func-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_type_func-2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_type_func-2.cfg
index de86218b..de86218b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_type_func-2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_type_func-2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_type_func-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_type_func-f.cfg
index e8e5f08a..e8e5f08a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_type_func-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_type_func-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_type_func-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_type_func-r.cfg
index 62324f98..62324f98 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_type_func-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_type_func-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_word_brace_force.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_word_brace_force.cfg
index d9c53345..d9c53345 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_word_brace_force.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_word_brace_force.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_word_brace_remove.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_word_brace_remove.cfg
index 3fd1fa26..3fd1fa26 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_word_brace_remove.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/sp_word_brace_remove.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/space_indent_class-t_columns-4.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/space_indent_class-t_columns-4.cfg
index a454237c..a454237c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/space_indent_class-t_columns-4.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/space_indent_class-t_columns-4.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/squeeze_ifdef.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/squeeze_ifdef.cfg
index fa3f980c..fa3f980c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/squeeze_ifdef.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/squeeze_ifdef.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/squeeze_ifdef_top.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/squeeze_ifdef_top.cfg
index 6b45f49a..6b45f49a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/squeeze_ifdef_top.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/squeeze_ifdef_top.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/star_pos-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/star_pos-1.cfg
index 6c9f5806..6c9f5806 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/star_pos-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/star_pos-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/star_pos-2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/star_pos-2.cfg
index dc1f45fc..dc1f45fc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/star_pos-2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/star_pos-2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/string_replace_tab_chars-t.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/string_replace_tab_chars-t.cfg
index 9e36729d..9e36729d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/string_replace_tab_chars-t.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/string_replace_tab_chars-t.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/tab-0-11.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/tab-0-11.cfg
index 96f745a3..96f745a3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/tab-0-11.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/tab-0-11.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/template_sp-force.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/template_sp-force.cfg
index 852277ca..852277ca 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/template_sp-force.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/template_sp-force.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/template_sp-ignore.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/template_sp-ignore.cfg
index b5bbb248..b5bbb248 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/template_sp-ignore.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/template_sp-ignore.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/template_sp-remove.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/template_sp-remove.cfg
index 5e20f3b5..5e20f3b5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/template_sp-remove.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/template_sp-remove.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/templates-i.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/templates-i.cfg
index 25622a57..25622a57 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/templates-i.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/templates-i.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/templates-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/templates-r.cfg
index 7efd2a7d..7efd2a7d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/templates-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/templates-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/toggle_processing_cmt.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/toggle_processing_cmt.cfg
index 08ef987e..08ef987e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/toggle_processing_cmt.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/toggle_processing_cmt.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/toggle_processing_cmt2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/toggle_processing_cmt2.cfg
index 0b9be532..0b9be532 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/toggle_processing_cmt2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/toggle_processing_cmt2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/toggle_processing_cmt3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/toggle_processing_cmt3.cfg
index d7f1f675..d7f1f675 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/toggle_processing_cmt3.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/toggle_processing_cmt3.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/toggle_processing_cmt4.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/toggle_processing_cmt4.cfg
index ccd7bb03..ccd7bb03 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/toggle_processing_cmt4.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/toggle_processing_cmt4.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/var_def_gap.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/var_def_gap.cfg
index 3d77d117..3d77d117 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/var_def_gap.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/var_def_gap.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/wessex.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/wessex.cfg
index 77fc3303..77fc3303 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/wessex.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cpp/wessex.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/615_nested_usings.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/615_nested_usings.cfg
index ae152fd4..ae152fd4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/615_nested_usings.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/615_nested_usings.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/620_getset-brace.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/620_getset-brace.cfg
index 8e5510d0..8e5510d0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/620_getset-brace.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/620_getset-brace.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/625_where-constraints.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/625_where-constraints.cfg
index a6fa8175..a6fa8175 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/625_where-constraints.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/625_where-constraints.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/Issue_2705.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/Issue_2705.cfg
index 0a3ecb71..0a3ecb71 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/Issue_2705.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/Issue_2705.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U-J.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/U-J.cfg
index 21e55d74..21e55d74 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U-J.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/U-J.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/U01-Cs.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/U01-Cs.cfg
new file mode 100644
index 00000000..db379631
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/U01-Cs.cfg
@@ -0,0 +1,282 @@
+input_tab_size=4
+string_replace_tab_chars=true
+tok_split_gte=false
+disable_processing_cmt=*begin-nonstandard-formatting*
+enable_processing_cmt=*end-nonstandard-formatting*
+utf8_bom=remove
+utf8_byte=false
+utf8_force=false
+indent_columns=4
+indent_with_tabs=0
+indent_cmt_with_tabs=false
+indent_align_string=false
+indent_braces=false
+indent_braces_no_func=false
+indent_braces_no_class=false
+indent_braces_no_struct=false
+indent_brace_parent=false
+indent_cs_delegate_brace=true
+indent_namespace=true
+indent_extern=false
+indent_class=true
+indent_class_colon=false
+indent_else_if=false
+indent_var_def_cont=false
+indent_func_call_param=true
+indent_func_def_param=true
+indent_func_proto_param=true
+indent_func_class_param=false
+indent_func_ctor_var_param=false
+indent_template_param=false
+indent_func_param_double=false
+indent_relative_single_line_comments=false
+indent_switch_case=4
+indent_case_shift=0
+indent_case_brace=0
+indent_col1_comment=false
+indent_label=-4
+indent_access_spec=-4
+indent_paren_nl=false
+indent_comma_paren=0
+indent_bool_paren=0
+indent_first_bool_expr=false
+indent_square_nl=false
+indent_preserve_sql=false
+indent_oc_block_msg_xcode_style=true
+indent_off_after_return_new=true
+indent_single_after_return=true
+sp_arith=add
+sp_assign=add
+sp_assign_default=add
+sp_enum_assign=add
+sp_pp_concat=remove
+sp_pp_stringify=remove
+sp_bool=add
+sp_compare=add
+sp_inside_paren=remove
+sp_paren_paren=remove
+sp_balance_nested_parens=false
+sp_paren_brace=force
+sp_after_type=ignore
+sp_template_angle=remove
+sp_before_angle=remove
+sp_inside_angle=remove
+sp_angle_paren=remove
+sp_angle_paren_empty=remove
+sp_angle_word=add
+sp_angle_shift=remove
+sp_before_sparen=force
+sp_inside_sparen=remove
+sp_after_sparen=add
+sp_sparen_brace=force
+sp_special_semi=force
+sp_before_semi=remove
+sp_before_semi_for=remove
+sp_before_semi_for_empty=remove
+sp_between_semi_for_empty=remove
+sp_after_semi=add
+sp_after_semi_for=force
+sp_after_semi_for_empty=remove
+sp_before_square=remove
+sp_before_squares=remove
+sp_inside_square=remove
+sp_after_comma=add
+sp_before_comma=ignore
+sp_after_mdatype_commas=remove
+sp_before_mdatype_commas=remove
+sp_between_mdatype_commas=remove
+sp_paren_comma=remove
+sp_after_class_colon=force
+sp_before_class_colon=force
+sp_before_case_colon=remove
+sp_after_operator=remove
+sp_after_operator_sym=remove
+sp_after_operator_sym_empty=remove
+sp_after_cast=remove
+sp_inside_paren_cast=remove
+sp_cpp_cast_paren=remove
+sp_sizeof_paren=remove
+sp_inside_braces_enum=add
+sp_inside_braces_empty=remove
+sp_type_func=ignore
+sp_func_proto_paren=remove
+sp_func_def_paren=remove
+sp_inside_fparens=remove
+sp_inside_fparen=remove
+sp_fparen_brace=add
+sp_func_call_paren=remove
+sp_func_call_paren_empty=remove
+sp_func_call_user_paren=remove
+sp_func_class_paren=remove
+sp_return_paren=add
+sp_defined_paren=remove
+sp_throw_paren=add
+sp_catch_paren=add
+sp_brace_typedef=add
+sp_getset_brace=add
+sp_after_dc=remove
+sp_not=remove
+sp_inv=remove
+sp_addr=remove
+sp_member=remove
+sp_deref=remove
+sp_sign=remove
+sp_incdec=remove
+sp_before_nl_cont=add
+sp_after_oc_scope=force
+sp_after_oc_colon=remove
+sp_before_oc_colon=remove
+sp_after_oc_dict_colon=force
+sp_before_oc_dict_colon=remove
+sp_after_send_oc_colon=force
+sp_before_send_oc_colon=remove
+sp_after_oc_type=remove
+sp_after_oc_return_type=remove
+sp_after_oc_at_sel=remove
+sp_inside_oc_at_sel_parens=remove
+sp_cond_colon=add
+sp_cond_question=add
+sp_case_label=ignore
+sp_after_new=force
+sp_between_new_paren=remove
+sp_skip_vbrace_tokens=true
+align_keep_tabs=false
+align_with_tabs=false
+align_on_tabstop=false
+align_number_right=false
+align_func_params=false
+align_same_func_call_params=false
+align_var_def_colon=false
+align_var_def_attribute=false
+align_var_def_inline=false
+align_right_cmt_mix=false
+align_on_operator=false
+align_mix_var_proto=false
+align_single_line_func=false
+align_single_line_brace=false
+align_nl_cont=false
+align_left_shift=false
+nl_collapse_empty_body=false
+nl_assign_leave_one_liners=true
+nl_class_leave_one_liners=true
+nl_enum_leave_one_liners=true
+nl_getset_leave_one_liners=true
+nl_func_leave_one_liners=true
+nl_cpp_lambda_leave_one_liners=true
+nl_if_leave_one_liners=false
+nl_oc_msg_leave_one_liner=true
+nl_start_of_file=remove
+nl_end_of_file=force
+nl_end_of_file_min=1
+nl_assign_brace=force
+nl_enum_brace=force
+nl_struct_brace=force
+nl_union_brace=force
+nl_if_brace=force
+nl_brace_else=force
+nl_else_brace=force
+nl_else_if=remove
+nl_brace_finally=force
+nl_finally_brace=force
+nl_try_brace=force
+nl_getset_brace=force
+nl_for_brace=force
+nl_catch_brace=force
+nl_brace_catch=force
+nl_while_brace=force
+nl_using_brace=force
+nl_brace_brace=ignore
+nl_do_brace=force
+nl_brace_while=force
+nl_switch_brace=force
+nl_multi_line_cond=false
+nl_before_case=false
+nl_after_case=false
+nl_case_colon_brace=force
+nl_namespace_brace=force
+nl_template_class=ignore
+nl_fdef_brace=force
+nl_after_semicolon=false
+nl_after_brace_open=false
+nl_after_brace_open_cmt=false
+nl_after_vbrace_open=false
+nl_after_vbrace_open_empty=false
+nl_after_brace_close=false
+nl_after_vbrace_close=false
+nl_squeeze_ifdef=false
+nl_ds_struct_enum_cmt=false
+nl_ds_struct_enum_close_brace=false
+nl_create_if_one_liner=false
+nl_create_for_one_liner=false
+nl_create_while_one_liner=false
+ls_for_split_full=false
+ls_func_split_full=false
+nl_max=3
+nl_after_func_body=2
+nl_after_multiline_comment=false
+nl_property_brace=force
+eat_blanks_after_open_brace=true
+eat_blanks_before_close_brace=true
+nl_after_return=false
+mod_full_brace_if_chain=0
+mod_paren_on_return=ignore
+mod_pawn_semicolon=false
+mod_full_paren_if_bool=false
+mod_remove_extra_semicolon=true
+mod_move_case_break=false
+mod_remove_empty_return=true
+cmt_indent_multi=false
+cmt_c_group=false
+cmt_c_nl_start=false
+cmt_c_nl_end=false
+cmt_cpp_group=false
+cmt_cpp_nl_start=false
+cmt_cpp_nl_end=false
+cmt_cpp_to_c=false
+cmt_star_cont=false
+cmt_multi_check_last=false
+cmt_insert_before_preproc=false
+pp_space=ignore
+use_options_overriding_for_qt_macros=false
+warn_level_tabs_found_in_verbatim_string_literals=1
+# blocked by https://sourceforge.net/p/uncrustify/bugs/619/
+# can be turned back on at any time
+#mod_add_long_ifdef_else_comment=8
+#mod_add_long_ifdef_endif_comment=8
+mod_add_long_ifdef_else_comment=0
+mod_add_long_ifdef_endif_comment=0
+
+
+
+# Setting this 'false' will cause an extra tab to be added to function call args from an assignment:
+#
+# x = o.Func2(a, b,
+# y);
+# o.Func2(a, b,
+# y);
+#
+# ...but setting it 'true' is often worse:
+#
+# ExtraReallyLongType reallyLongVariableName = someTest
+# ? someTrueExpr
+# : someFalseExpr
+#
+# ...except sometimes we really do want that. What we need is an indent_align_assign_threshold, or,
+# better but maybe more complicated, indent_align_assign=ignore to leave alone what the engineer did.
+# (currently unreported)
+indent_align_assign=false
+
+# this is causing a few problems, but usually with block comments and autodoc markup. perhaps only add a space
+# if first letter is not a symbol and this is a standalone comment: not preceded or followed by another c++
+# comment line at the same level of indentation.
+# REVISIT: work was done to have it eliminate space for doxygen markup in c6aca7b, maybe can improve on it for us
+# (test using Runtime/Allocator/BucketAllocator.h)
+# IMPORTANT: see task at https://trello.com/c/wUgiuvbX before going further
+sp_cmt_cpp_start=ignore
+
+# https://sourceforge.net/p/uncrustify/bugs/619/
+sp_endif_cmt=ignore
+
+# want to turn this on, but can't do it without also getting alignment right. try running it on this file as an example:
+# Tools\BugReporterV2\qt_face\lib\src\MainWindow.cpp
+#nl_cpp_ldef_brace=force
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U02-Cs.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/U02-Cs.cfg
index c7d6aeda..c7d6aeda 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U02-Cs.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/U02-Cs.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U03-Cs.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/U03-Cs.cfg
index 24961370..24961370 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U03-Cs.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/U03-Cs.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U04-Cs.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/U04-Cs.cfg
index b331f6f8..b331f6f8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U04-Cs.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/U04-Cs.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U06-Cs.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/U06-Cs.cfg
index 03c2c765..03c2c765 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U06-Cs.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/U06-Cs.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/U07-Cs.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/U07-Cs.cfg
new file mode 100644
index 00000000..81f320b8
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/U07-Cs.cfg
@@ -0,0 +1,283 @@
+input_tab_size=4
+string_replace_tab_chars=true
+tok_split_gte=false
+disable_processing_cmt=*begin-nonstandard-formatting*
+enable_processing_cmt=*end-nonstandard-formatting*
+utf8_bom=remove
+utf8_byte=false
+utf8_force=false
+indent_columns=4
+indent_with_tabs=0
+indent_cmt_with_tabs=false
+indent_align_string=false
+indent_braces=false
+indent_braces_no_func=false
+indent_braces_no_class=false
+indent_braces_no_struct=false
+indent_brace_parent=false
+indent_cs_delegate_brace=true
+indent_namespace=true
+indent_extern=false
+indent_class=true
+indent_class_colon=false
+indent_else_if=false
+indent_var_def_cont=false
+indent_func_call_param=true
+indent_func_def_param=true
+indent_func_proto_param=true
+indent_func_class_param=false
+indent_func_ctor_var_param=false
+indent_template_param=false
+indent_func_param_double=false
+indent_relative_single_line_comments=false
+indent_switch_case=4
+indent_case_shift=0
+indent_case_brace=0
+indent_col1_comment=false
+indent_label=-4
+indent_access_spec=-4
+indent_paren_nl=false
+indent_comma_paren=0
+indent_bool_paren=0
+indent_first_bool_expr=false
+indent_square_nl=false
+indent_preserve_sql=false
+indent_oc_block_msg_xcode_style=true
+indent_off_after_return_new=true
+indent_single_after_return=true
+sp_arith=add
+sp_assign=add
+sp_assign_default=add
+sp_enum_assign=add
+sp_pp_concat=remove
+sp_pp_stringify=remove
+sp_bool=add
+sp_compare=add
+sp_inside_paren=remove
+sp_paren_paren=remove
+sp_balance_nested_parens=false
+sp_paren_brace=force
+sp_after_type=ignore
+sp_template_angle=remove
+sp_before_angle=remove
+sp_inside_angle=remove
+sp_angle_paren=remove
+sp_angle_paren_empty=remove
+sp_angle_word=add
+sp_angle_shift=remove
+sp_before_sparen=force
+sp_inside_sparen=remove
+sp_after_sparen=add
+sp_sparen_brace=force
+sp_special_semi=force
+sp_before_semi=remove
+sp_before_semi_for=remove
+sp_before_semi_for_empty=remove
+sp_between_semi_for_empty=remove
+sp_after_semi=add
+sp_after_semi_for=force
+sp_after_semi_for_empty=remove
+sp_before_square=remove
+sp_before_squares=remove
+sp_inside_square=remove
+sp_after_comma=add
+sp_before_comma=ignore
+sp_after_mdatype_commas=remove
+sp_before_mdatype_commas=remove
+sp_between_mdatype_commas=remove
+sp_paren_comma=remove
+sp_after_class_colon=force
+sp_before_class_colon=force
+sp_before_case_colon=remove
+sp_after_operator=remove
+sp_after_operator_sym=remove
+sp_after_operator_sym_empty=remove
+sp_after_cast=remove
+sp_inside_paren_cast=remove
+sp_cpp_cast_paren=remove
+sp_sizeof_paren=remove
+sp_inside_braces_enum=add
+sp_inside_braces_empty=remove
+sp_type_func=ignore
+sp_func_proto_paren=remove
+sp_func_def_paren=remove
+sp_inside_fparens=remove
+sp_inside_fparen=remove
+sp_fparen_brace=add
+sp_func_call_paren=remove
+sp_func_call_paren_empty=remove
+sp_func_call_user_paren=remove
+sp_func_class_paren=remove
+sp_return_paren=add
+sp_defined_paren=remove
+sp_throw_paren=add
+sp_catch_paren=add
+sp_brace_typedef=add
+sp_getset_brace=add
+sp_after_dc=remove
+sp_not=remove
+sp_inv=remove
+sp_addr=remove
+sp_member=remove
+sp_deref=remove
+sp_sign=remove
+sp_incdec=remove
+sp_before_nl_cont=add
+sp_after_oc_scope=force
+sp_after_oc_colon=remove
+sp_before_oc_colon=remove
+sp_after_oc_dict_colon=force
+sp_before_oc_dict_colon=remove
+sp_after_send_oc_colon=force
+sp_before_send_oc_colon=remove
+sp_after_oc_type=remove
+sp_after_oc_return_type=remove
+sp_after_oc_at_sel=remove
+sp_inside_oc_at_sel_parens=remove
+sp_cond_colon=add
+sp_cond_question=add
+sp_case_label=ignore
+sp_after_new=force
+sp_between_new_paren=remove
+sp_skip_vbrace_tokens=true
+align_keep_tabs=false
+align_with_tabs=false
+align_on_tabstop=false
+align_number_right=false
+align_func_params=false
+align_same_func_call_params=false
+align_var_def_colon=false
+align_var_def_attribute=false
+align_var_def_inline=false
+align_right_cmt_mix=false
+align_on_operator=false
+align_mix_var_proto=false
+align_single_line_func=false
+align_single_line_brace=false
+align_nl_cont=false
+align_left_shift=false
+nl_collapse_empty_body=false
+nl_assign_leave_one_liners=true
+nl_class_leave_one_liners=true
+nl_enum_leave_one_liners=true
+nl_getset_leave_one_liners=true
+nl_func_leave_one_liners=true
+nl_cpp_lambda_leave_one_liners=true
+nl_if_leave_one_liners=false
+nl_oc_msg_leave_one_liner=true
+nl_start_of_file=remove
+nl_end_of_file=force
+nl_end_of_file_min=1
+nl_assign_brace=force
+nl_enum_brace=force
+nl_struct_brace=force
+nl_union_brace=force
+nl_if_brace=force
+nl_brace_else=force
+nl_else_brace=force
+nl_else_if=remove
+nl_brace_finally=force
+nl_finally_brace=force
+nl_try_brace=force
+nl_getset_brace=force
+nl_for_brace=force
+nl_catch_brace=force
+nl_brace_catch=force
+nl_while_brace=force
+nl_using_brace=force
+nl_brace_brace=ignore
+nl_do_brace=force
+nl_brace_while=force
+nl_switch_brace=force
+nl_multi_line_cond=false
+nl_before_case=false
+nl_after_case=false
+nl_case_colon_brace=force
+nl_namespace_brace=force
+nl_template_class=ignore
+nl_class_brace=force
+nl_fdef_brace=force
+nl_after_semicolon=false
+nl_after_brace_open=false
+nl_after_brace_open_cmt=false
+nl_after_vbrace_open=false
+nl_after_vbrace_open_empty=false
+nl_after_brace_close=false
+nl_after_vbrace_close=false
+nl_squeeze_ifdef=false
+nl_ds_struct_enum_cmt=false
+nl_ds_struct_enum_close_brace=false
+nl_create_if_one_liner=false
+nl_create_for_one_liner=false
+nl_create_while_one_liner=false
+ls_for_split_full=false
+ls_func_split_full=false
+nl_max=3
+nl_after_multiline_comment=false
+nl_property_brace=force
+eat_blanks_after_open_brace=true
+eat_blanks_before_close_brace=true
+nl_after_return=false
+mod_full_brace_if_chain=0
+mod_paren_on_return=ignore
+mod_pawn_semicolon=false
+mod_full_paren_if_bool=false
+mod_remove_extra_semicolon=true
+mod_move_case_break=false
+mod_remove_empty_return=true
+cmt_indent_multi=false
+cmt_c_group=false
+cmt_c_nl_start=false
+cmt_c_nl_end=false
+cmt_cpp_group=false
+cmt_cpp_nl_start=false
+cmt_cpp_nl_end=false
+cmt_cpp_to_c=false
+cmt_star_cont=false
+cmt_multi_check_last=false
+cmt_insert_before_preproc=false
+pp_space=ignore
+use_options_overriding_for_qt_macros=false
+warn_level_tabs_found_in_verbatim_string_literals=1
+
+# blocked by https://sourceforge.net/p/uncrustify/bugs/619/
+# can be turned back on at any time
+mod_add_long_ifdef_else_comment=0
+mod_add_long_ifdef_endif_comment=0
+
+
+
+# Setting this 'false' will cause an extra tab to be added to function call args from an assignment:
+#
+# x = o.Func2(a, b,
+# y);
+# o.Func2(a, b,
+# y);
+#
+# ...but setting it 'true' is often worse:
+#
+# ExtraReallyLongType reallyLongVariableName = someTest
+# ? someTrueExpr
+# : someFalseExpr
+#
+# ...except sometimes we really do want that. What we need is an indent_align_assign_threshold, or,
+# better but maybe more complicated, indent_align_assign=ignore to leave alone what the engineer did.
+# (currently unreported)
+indent_align_assign=false
+
+# this is causing a few problems, but usually with block comments and autodoc markup. perhaps only add a space
+# if first letter is not a symbol and this is a standalone comment: not preceded or followed by another c++
+# comment line at the same level of indentation.
+# REVISIT: work was done to have it eliminate space for doxygen markup in c6aca7b, maybe can improve on it for us
+# (test using Runtime/Allocator/BucketAllocator.h)
+# IMPORTANT: see task at https://trello.com/c/wUgiuvbX before going further
+#sp_cmt_cpp_start=add
+sp_cmt_cpp_start=ignore
+
+# https://sourceforge.net/p/uncrustify/bugs/619/
+#sp_endif_cmt=force
+sp_endif_cmt=ignore
+
+# want to turn this on, but can't do it without also getting alignment right. try running it on this file as an example:
+# Tools\BugReporterV2\qt_face\lib\src\MainWindow.cpp
+#nl_cpp_ldef_brace=force
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/U08-Cs.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/U08-Cs.cfg
new file mode 100644
index 00000000..aeff4b58
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/U08-Cs.cfg
@@ -0,0 +1,282 @@
+input_tab_size=4
+string_replace_tab_chars=true
+tok_split_gte=false
+disable_processing_cmt=*begin-nonstandard-formatting*
+enable_processing_cmt=*end-nonstandard-formatting*
+utf8_bom=remove
+utf8_byte=false
+utf8_force=false
+indent_columns=4
+indent_with_tabs=0
+indent_cmt_with_tabs=false
+indent_align_string=false
+indent_braces=false
+indent_braces_no_func=false
+indent_braces_no_class=false
+indent_braces_no_struct=false
+indent_brace_parent=false
+indent_cs_delegate_brace=true
+indent_namespace=true
+indent_extern=false
+indent_class=true
+indent_class_colon=false
+indent_else_if=false
+indent_var_def_cont=false
+indent_func_call_param=true
+indent_func_def_param=true
+indent_func_proto_param=true
+indent_func_class_param=false
+indent_func_ctor_var_param=false
+indent_template_param=false
+indent_func_param_double=false
+indent_relative_single_line_comments=false
+indent_switch_case=4
+indent_case_shift=0
+indent_case_brace=0
+indent_col1_comment=false
+indent_label=-4
+indent_access_spec=-4
+indent_paren_nl=false
+indent_comma_paren=0
+indent_bool_paren=0
+indent_first_bool_expr=false
+indent_square_nl=false
+indent_preserve_sql=false
+indent_oc_block_msg_xcode_style=true
+indent_off_after_return_new=true
+indent_single_after_return=true
+sp_arith=add
+sp_assign=add
+sp_assign_default=add
+sp_enum_assign=add
+sp_pp_concat=remove
+sp_pp_stringify=remove
+sp_bool=add
+sp_compare=add
+sp_inside_paren=remove
+sp_paren_paren=remove
+sp_balance_nested_parens=false
+sp_paren_brace=force
+sp_after_type=remove
+sp_template_angle=remove
+sp_before_angle=remove
+sp_inside_angle=remove
+sp_angle_paren=remove
+sp_angle_paren_empty=remove
+sp_angle_word=add
+sp_angle_shift=remove
+sp_before_sparen=force
+sp_inside_sparen=remove
+sp_after_sparen=add
+sp_sparen_brace=force
+sp_special_semi=force
+sp_before_semi=remove
+sp_before_semi_for=remove
+sp_before_semi_for_empty=remove
+sp_between_semi_for_empty=remove
+sp_after_semi=add
+sp_after_semi_for=force
+sp_after_semi_for_empty=remove
+sp_before_square=remove
+sp_before_squares=remove
+sp_inside_square=remove
+sp_after_comma=add
+sp_before_comma=ignore
+sp_after_mdatype_commas=remove
+sp_before_mdatype_commas=remove
+sp_between_mdatype_commas=remove
+sp_paren_comma=remove
+sp_after_class_colon=force
+sp_before_class_colon=force
+sp_before_case_colon=remove
+sp_after_operator=remove
+sp_after_operator_sym=remove
+sp_after_operator_sym_empty=remove
+sp_after_cast=remove
+sp_inside_paren_cast=remove
+sp_cpp_cast_paren=remove
+sp_sizeof_paren=remove
+sp_inside_braces_enum=add
+sp_inside_braces_empty=remove
+sp_type_func=ignore
+sp_func_proto_paren=remove
+sp_func_def_paren=remove
+sp_inside_fparens=remove
+sp_inside_fparen=remove
+sp_fparen_brace=add
+sp_func_call_paren=remove
+sp_func_call_paren_empty=remove
+sp_func_call_user_paren=remove
+sp_func_class_paren=remove
+sp_return_paren=add
+sp_defined_paren=remove
+sp_throw_paren=add
+sp_catch_paren=add
+sp_brace_typedef=add
+sp_getset_brace=add
+sp_after_dc=remove
+sp_not=remove
+sp_inv=remove
+sp_addr=remove
+sp_member=remove
+sp_deref=remove
+sp_sign=remove
+sp_incdec=remove
+sp_before_nl_cont=add
+sp_after_oc_scope=force
+sp_after_oc_colon=remove
+sp_before_oc_colon=remove
+sp_after_oc_dict_colon=force
+sp_before_oc_dict_colon=remove
+sp_after_send_oc_colon=force
+sp_before_send_oc_colon=remove
+sp_after_oc_type=remove
+sp_after_oc_return_type=remove
+sp_after_oc_at_sel=remove
+sp_inside_oc_at_sel_parens=remove
+sp_cond_colon=add
+sp_cond_question=add
+sp_case_label=ignore
+sp_after_new=force
+sp_between_new_paren=remove
+sp_skip_vbrace_tokens=true
+align_keep_tabs=false
+align_with_tabs=false
+align_on_tabstop=false
+align_number_right=false
+align_func_params=false
+align_same_func_call_params=false
+align_var_def_colon=false
+align_var_def_attribute=false
+align_var_def_inline=false
+align_right_cmt_mix=false
+align_on_operator=false
+align_mix_var_proto=false
+align_single_line_func=false
+align_single_line_brace=false
+align_nl_cont=false
+align_left_shift=false
+nl_collapse_empty_body=false
+nl_assign_leave_one_liners=true
+nl_class_leave_one_liners=true
+nl_enum_leave_one_liners=true
+nl_getset_leave_one_liners=true
+nl_func_leave_one_liners=true
+nl_cpp_lambda_leave_one_liners=true
+nl_if_leave_one_liners=false
+nl_oc_msg_leave_one_liner=true
+nl_start_of_file=remove
+nl_end_of_file=force
+nl_end_of_file_min=1
+nl_assign_brace=force
+nl_enum_brace=force
+nl_struct_brace=force
+nl_union_brace=force
+nl_if_brace=force
+nl_brace_else=force
+nl_else_brace=force
+nl_else_if=remove
+nl_brace_finally=force
+nl_finally_brace=force
+nl_try_brace=force
+nl_getset_brace=force
+nl_for_brace=force
+nl_catch_brace=force
+nl_brace_catch=force
+nl_while_brace=force
+nl_using_brace=force
+nl_brace_brace=ignore
+nl_do_brace=force
+nl_brace_while=force
+nl_switch_brace=force
+nl_multi_line_cond=false
+nl_before_case=false
+nl_after_case=false
+nl_case_colon_brace=force
+nl_namespace_brace=force
+nl_template_class=ignore
+nl_class_brace=force
+nl_fdef_brace=force
+nl_after_semicolon=false
+nl_after_brace_open=false
+nl_after_brace_open_cmt=false
+nl_after_vbrace_open=false
+nl_after_vbrace_open_empty=false
+nl_after_brace_close=false
+nl_after_vbrace_close=false
+nl_squeeze_ifdef=false
+nl_ds_struct_enum_cmt=false
+nl_ds_struct_enum_close_brace=false
+nl_create_if_one_liner=false
+nl_create_for_one_liner=false
+nl_create_while_one_liner=false
+ls_for_split_full=false
+ls_func_split_full=false
+nl_max=3
+nl_after_func_body=2
+nl_after_multiline_comment=false
+nl_property_brace=force
+eat_blanks_after_open_brace=true
+eat_blanks_before_close_brace=true
+nl_after_return=false
+mod_paren_on_return=ignore
+mod_pawn_semicolon=false
+mod_full_paren_if_bool=false
+mod_remove_extra_semicolon=true
+mod_move_case_break=false
+mod_remove_empty_return=true
+cmt_indent_multi=false
+cmt_c_group=false
+cmt_c_nl_start=false
+cmt_c_nl_end=false
+cmt_cpp_group=false
+cmt_cpp_nl_start=false
+cmt_cpp_nl_end=false
+cmt_cpp_to_c=false
+cmt_star_cont=false
+cmt_multi_check_last=false
+cmt_insert_before_preproc=false
+pp_space=ignore
+use_options_overriding_for_qt_macros=false
+warn_level_tabs_found_in_verbatim_string_literals=1
+# blocked by https://sourceforge.net/p/uncrustify/bugs/619/
+# can be turned back on at any time
+mod_add_long_ifdef_else_comment=0
+mod_add_long_ifdef_endif_comment=0
+
+
+
+# Setting this 'false' will cause an extra tab to be added to function call args from an assignment:
+#
+# x = o.Func2(a, b,
+# y);
+# o.Func2(a, b,
+# y);
+#
+# ...but setting it 'true' is often worse:
+#
+# ExtraReallyLongType reallyLongVariableName = someTest
+# ? someTrueExpr
+# : someFalseExpr
+#
+# ...except sometimes we really do want that. What we need is an indent_align_assign_threshold, or,
+# better but maybe more complicated, indent_align_assign=ignore to leave alone what the engineer did.
+# (currently unreported)
+indent_align_assign=false
+
+# this is causing a few problems, but usually with block comments and autodoc markup. perhaps only add a space
+# if first letter is not a symbol and this is a standalone comment: not preceded or followed by another c++
+# comment line at the same level of indentation.
+# REVISIT: work was done to have it eliminate space for doxygen markup in c6aca7b, maybe can improve on it for us
+# (test using Runtime/Allocator/BucketAllocator.h)
+# IMPORTANT: see task at https://trello.com/c/wUgiuvbX before going further
+#sp_cmt_cpp_start=add
+sp_cmt_cpp_start=ignore
+
+# https://sourceforge.net/p/uncrustify/bugs/619/
+#sp_endif_cmt=force
+sp_endif_cmt=ignore
+
+# want to turn this on, but can't do it without also getting alignment right. try running it on this file as an example:
+# Tools\BugReporterV2\qt_face\lib\src\MainWindow.cpp
+#nl_cpp_ldef_brace=force
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U09-Cs.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/U09-Cs.cfg
index d74080d2..d74080d2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U09-Cs.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/U09-Cs.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U10-Cs.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/U10-Cs.cfg
index 42254ddb..42254ddb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U10-Cs.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/U10-Cs.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U11-Cs.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/U11-Cs.cfg
index 70557c46..70557c46 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U11-Cs.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/U11-Cs.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U13-Cs.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/U13-Cs.cfg
index 75f78b42..75f78b42 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U13-Cs.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/U13-Cs.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U15-Cs.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/U15-Cs.cfg
index 5a700342..5a700342 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U15-Cs.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/U15-Cs.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-11662.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-11662.cfg
index 24cf86a8..24cf86a8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-11662.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-11662.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-11993.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-11993.cfg
new file mode 100644
index 00000000..34cf0529
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-11993.cfg
@@ -0,0 +1,287 @@
+input_tab_size=4
+string_replace_tab_chars=true
+tok_split_gte=false
+disable_processing_cmt=*begin-nonstandard-formatting
+enable_processing_cmt=*end-nonstandard-formatting*
+utf8_bom=remove
+utf8_byte=false
+utf8_force=false
+indent_columns=4
+indent_with_tabs=0
+indent_cmt_with_tabs=false
+indent_align_string=false
+indent_braces=false
+indent_braces_no_func=false
+indent_braces_no_class=false
+indent_braces_no_struct=false
+indent_brace_parent=false
+indent_cs_delegate_brace=true
+indent_namespace=true
+indent_extern=false
+indent_class=true
+indent_class_colon=false
+indent_else_if=false
+indent_var_def_cont=false
+indent_func_call_param=true
+indent_func_def_param=true
+indent_func_proto_param=true
+indent_func_class_param=false
+indent_func_ctor_var_param=false
+indent_template_param=false
+indent_func_param_double=false
+indent_member_single=false
+indent_relative_single_line_comments=false
+indent_switch_case=4
+indent_case_shift=0
+indent_case_brace=0
+indent_col1_comment=false
+indent_label=-4
+indent_access_spec=-4
+indent_paren_nl=false
+indent_comma_paren=0
+indent_bool_paren=0
+indent_first_bool_expr=false
+indent_square_nl=false
+indent_preserve_sql=false
+indent_align_paren=false
+indent_oc_block_msg_xcode_style=true
+indent_off_after_return_new=true
+indent_single_after_return=true
+sp_arith=add
+sp_assign=add
+sp_assign_default=add
+sp_enum_assign=add
+sp_pp_concat=remove
+sp_pp_stringify=remove
+sp_bool=add
+sp_compare=add
+sp_inside_paren=remove
+sp_paren_paren=remove
+sp_balance_nested_parens=false
+sp_paren_brace=force
+sp_after_type=ignore
+sp_template_angle=remove
+sp_before_angle=remove
+sp_inside_angle=remove
+sp_angle_paren=remove
+sp_angle_paren_empty=remove
+sp_angle_word=add
+sp_angle_shift=remove
+sp_before_sparen=force
+sp_inside_sparen=remove
+sp_after_sparen=add
+sp_sparen_brace=force
+sp_special_semi=force
+sp_before_semi=remove
+sp_before_semi_for=remove
+sp_before_semi_for_empty=remove
+sp_between_semi_for_empty=remove
+sp_after_semi=add
+sp_after_semi_for=force
+sp_after_semi_for_empty=remove
+sp_before_square=remove
+sp_before_squares=remove
+sp_inside_square=remove
+sp_after_comma=add
+sp_before_comma=ignore
+sp_after_mdatype_commas=remove
+sp_before_mdatype_commas=remove
+sp_between_mdatype_commas=remove
+sp_paren_comma=remove
+sp_after_class_colon=force
+sp_before_class_colon=force
+sp_before_case_colon=remove
+sp_after_operator=remove
+sp_after_operator_sym=remove
+sp_after_operator_sym_empty=remove
+sp_after_cast=remove
+sp_inside_paren_cast=remove
+sp_cpp_cast_paren=remove
+sp_sizeof_paren=remove
+sp_inside_braces_enum=add
+sp_inside_braces_empty=remove
+sp_type_func=ignore
+sp_func_proto_paren=remove
+sp_func_def_paren=remove
+sp_inside_fparens=remove
+sp_inside_fparen=remove
+sp_fparen_brace=add
+sp_func_call_paren=remove
+sp_func_call_paren_empty=remove
+sp_func_call_user_paren=remove
+sp_func_class_paren=remove
+sp_return_paren=add
+sp_defined_paren=remove
+sp_throw_paren=add
+sp_catch_paren=add
+sp_brace_typedef=add
+sp_getset_brace=add
+sp_after_dc=remove
+sp_not=remove
+sp_inv=remove
+sp_addr=remove
+sp_member=remove
+sp_deref=remove
+sp_sign=remove
+sp_incdec=remove
+sp_before_nl_cont=add
+sp_after_oc_scope=force
+sp_after_oc_colon=remove
+sp_before_oc_colon=remove
+sp_after_oc_dict_colon=force
+sp_before_oc_dict_colon=remove
+sp_after_send_oc_colon=force
+sp_before_send_oc_colon=remove
+sp_after_oc_type=remove
+sp_after_oc_return_type=remove
+sp_after_oc_at_sel=remove
+sp_inside_oc_at_sel_parens=remove
+sp_cond_colon=add
+sp_cond_question=add
+sp_case_label=ignore
+sp_after_new=force
+sp_between_new_paren=remove
+sp_skip_vbrace_tokens=true
+align_keep_tabs=false
+align_with_tabs=false
+align_on_tabstop=false
+align_number_right=false
+align_func_params=false
+align_same_func_call_params=false
+align_var_def_colon=false
+align_var_def_attribute=false
+align_var_def_inline=false
+align_right_cmt_mix=false
+align_on_operator=false
+align_mix_var_proto=false
+align_single_line_func=false
+align_single_line_brace=false
+align_nl_cont=false
+align_left_shift=false
+nl_collapse_empty_body=false
+nl_assign_leave_one_liners=true
+nl_class_leave_one_liners=true
+nl_enum_leave_one_liners=true
+nl_getset_leave_one_liners=true
+nl_func_leave_one_liners=true
+nl_cpp_lambda_leave_one_liners=true
+nl_if_leave_one_liners=false
+nl_oc_msg_leave_one_liner=true
+nl_start_of_file=remove
+nl_end_of_file=force
+nl_end_of_file_min=1
+nl_assign_brace=force
+nl_enum_brace=force
+nl_struct_brace=force
+nl_union_brace=force
+nl_if_brace=force
+nl_brace_else=force
+nl_else_brace=force
+nl_else_if=remove
+nl_brace_finally=force
+nl_finally_brace=force
+nl_try_brace=force
+nl_getset_brace=force
+nl_for_brace=force
+nl_catch_brace=force
+nl_brace_catch=force
+nl_while_brace=force
+nl_using_brace=force
+nl_brace_brace=ignore
+nl_do_brace=force
+nl_brace_while=force
+nl_switch_brace=force
+nl_multi_line_cond=false
+nl_before_case=false
+nl_after_case=false
+nl_case_colon_brace=force
+nl_namespace_brace=force
+nl_template_class=ignore
+nl_class_brace=force
+nl_fdef_brace=force
+nl_after_semicolon=false
+nl_after_brace_open=false
+nl_after_brace_open_cmt=false
+nl_after_vbrace_open=false
+nl_after_vbrace_open_empty=false
+nl_after_brace_close=false
+nl_after_vbrace_close=false
+nl_squeeze_ifdef=false
+nl_ds_struct_enum_cmt=false
+nl_ds_struct_enum_close_brace=false
+nl_namespace_two_to_one_liner=false
+nl_create_if_one_liner=false
+nl_create_for_one_liner=false
+nl_create_while_one_liner=false
+nl_create_func_def_one_liner=false
+ls_for_split_full=false
+ls_func_split_full=false
+nl_max=3
+nl_after_func_body=2
+nl_after_multiline_comment=false
+nl_property_brace=force
+eat_blanks_after_open_brace=true
+eat_blanks_before_close_brace=true
+nl_after_return=false
+mod_full_brace_if_chain=0
+mod_paren_on_return=ignore
+mod_pawn_semicolon=false
+mod_full_paren_if_bool=false
+mod_remove_extra_semicolon=true
+mod_move_case_break=false
+mod_remove_empty_return=true
+cmt_convert_tab_to_spaces=True
+cmt_indent_multi=false
+cmt_c_group=false
+cmt_c_nl_start=false
+cmt_c_nl_end=false
+cmt_cpp_group=false
+cmt_cpp_nl_start=false
+cmt_cpp_nl_end=false
+cmt_cpp_to_c=false
+cmt_star_cont=false
+cmt_multi_check_last=false
+cmt_insert_before_preproc=false
+pp_space=ignore
+use_options_overriding_for_qt_macros=false
+warn_level_tabs_found_in_verbatim_string_literals=1
+# blocked by https://sourceforge.net/p/uncrustify/bugs/619/
+# can be turned back on at any time
+mod_add_long_ifdef_else_comment=0
+mod_add_long_ifdef_endif_comment=0
+
+
+# Setting this 'false' will cause an extra tab to be added to function call args from an assignment:
+#
+# x = o.Func2(a, b,
+# y);
+# o.Func2(a, b,
+# y);
+#
+# ...but setting it 'true' is often worse:
+#
+# ExtraReallyLongType reallyLongVariableName = someTest
+# ? someTrueExpr
+# : someFalseExpr
+#
+# ...except sometimes we really do want that. What we need is an indent_align_assign_threshold, or,
+# better but maybe more complicated, indent_align_assign=ignore to leave alone what the engineer did.
+# (currently unreported)
+indent_align_assign=false
+
+# this is causing a few problems, but usually with block comments and autodoc markup. perhaps only add a space
+# if first letter is not a symbol and this is a standalone comment: not preceded or followed by another c++
+# comment line at the same level of indentation.
+# REVISIT: work was done to have it eliminate space for doxygen markup in c6aca7b, maybe can improve on it for us
+# (test using Runtime/Allocator/BucketAllocator.h)
+# IMPORTANT: see task at https://trello.com/c/wUgiuvbX before going further
+#sp_cmt_cpp_start=add
+sp_cmt_cpp_start=ignore
+
+# https://sourceforge.net/p/uncrustify/bugs/619/
+#sp_endif_cmt=force
+sp_endif_cmt=ignore
+
+# want to turn this on, but can't do it without also getting alignment right. try running it on this file as an example:
+# Tools\BugReporterV2\qt_face\lib\src\MainWindow.cpp
+#nl_cpp_ldef_brace=force
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-1288.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-1288.cfg
index 3b6cf1b4..3b6cf1b4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-1288.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-1288.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-1338.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-1338.cfg
index 0eef21b4..0eef21b4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-1338.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-1338.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-1343.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-1343.cfg
index f5276e1f..f5276e1f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-1343.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-1343.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-13955.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-13955.cfg
index d1c7c955..d1c7c955 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-13955.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-13955.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-14131.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-14131.cfg
index 7c5535ea..7c5535ea 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-14131.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-14131.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-18437.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-18437.cfg
new file mode 100644
index 00000000..340e06dd
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-18437.cfg
@@ -0,0 +1,287 @@
+input_tab_size=4
+string_replace_tab_chars=true
+tok_split_gte=false
+disable_processing_cmt=*begin-nonstandard-formatting*
+enable_processing_cmt=*end-nonstandard-formatting*
+utf8_bom=remove
+utf8_byte=false
+utf8_force=false
+indent_columns=4
+indent_with_tabs=0
+indent_cmt_with_tabs=false
+indent_align_string=false
+indent_braces=false
+indent_braces_no_func=false
+indent_braces_no_class=false
+indent_braces_no_struct=false
+indent_brace_parent=false
+indent_cs_delegate_brace=true
+indent_namespace=true
+indent_extern=false
+indent_class=true
+indent_class_colon=false
+indent_else_if=false
+indent_var_def_cont=false
+indent_func_call_param=true
+indent_func_def_param=true
+indent_func_proto_param=true
+indent_func_class_param=false
+indent_func_ctor_var_param=false
+indent_template_param=false
+indent_func_param_double=false
+indent_relative_single_line_comments=false
+indent_switch_case=4
+indent_case_shift=0
+indent_case_brace=0
+indent_col1_comment=false
+indent_label=-4
+indent_access_spec=-4
+indent_paren_nl=false
+indent_comma_paren=0
+indent_bool_paren=0
+indent_first_bool_expr=false
+indent_square_nl=false
+indent_preserve_sql=false
+indent_align_paren=false
+indent_oc_block_msg_xcode_style=true
+indent_off_after_return_new=true
+indent_single_after_return=true
+sp_arith=add
+sp_assign=add
+sp_assign_default=add
+sp_enum_assign=add
+sp_pp_concat=remove
+sp_pp_stringify=remove
+sp_bool=add
+sp_compare=add
+sp_inside_paren=remove
+sp_paren_paren=remove
+sp_balance_nested_parens=false
+sp_paren_brace=force
+sp_after_type=ignore
+sp_template_angle=remove
+sp_before_angle=remove
+sp_inside_angle=remove
+sp_angle_paren=remove
+sp_angle_paren_empty=remove
+sp_angle_word=add
+sp_angle_shift=remove
+sp_before_sparen=force
+sp_inside_sparen=remove
+sp_after_sparen=add
+sp_sparen_brace=force
+sp_special_semi=force
+sp_before_semi=remove
+sp_before_semi_for=remove
+sp_before_semi_for_empty=remove
+sp_between_semi_for_empty=remove
+sp_after_semi=add
+sp_after_semi_for=force
+sp_after_semi_for_empty=remove
+sp_before_square=remove
+sp_before_squares=remove
+sp_inside_square=remove
+sp_after_comma=add
+sp_before_comma=ignore
+sp_after_mdatype_commas=remove
+sp_before_mdatype_commas=remove
+sp_between_mdatype_commas=remove
+sp_paren_comma=remove
+sp_after_class_colon=force
+sp_before_class_colon=force
+sp_before_case_colon=remove
+sp_after_operator=remove
+sp_after_operator_sym=remove
+sp_after_operator_sym_empty=remove
+sp_after_cast=remove
+sp_inside_paren_cast=remove
+sp_cpp_cast_paren=remove
+sp_sizeof_paren=remove
+sp_inside_braces_enum=add
+sp_inside_braces_empty=remove
+sp_type_func=ignore
+sp_func_proto_paren=remove
+sp_func_def_paren=remove
+sp_inside_fparens=remove
+sp_inside_fparen=remove
+sp_fparen_brace=add
+sp_func_call_paren=remove
+sp_func_call_paren_empty=remove
+sp_func_call_user_paren=remove
+sp_func_class_paren=remove
+sp_return_paren=add
+sp_defined_paren=remove
+sp_throw_paren=add
+sp_catch_paren=add
+sp_brace_typedef=add
+sp_getset_brace=add
+sp_after_dc=remove
+sp_not=remove
+sp_inv=remove
+sp_addr=remove
+sp_member=remove
+sp_deref=remove
+sp_sign=remove
+sp_incdec=remove
+sp_before_nl_cont=add
+sp_after_oc_scope=force
+sp_after_oc_colon=remove
+sp_before_oc_colon=remove
+sp_after_oc_dict_colon=force
+sp_before_oc_dict_colon=remove
+sp_after_send_oc_colon=force
+sp_before_send_oc_colon=remove
+sp_after_oc_type=remove
+sp_after_oc_return_type=remove
+sp_after_oc_at_sel=remove
+sp_inside_oc_at_sel_parens=remove
+sp_cond_colon=add
+sp_cond_question=add
+sp_case_label=ignore
+sp_after_new=force
+sp_between_new_paren=remove
+sp_skip_vbrace_tokens=true
+align_keep_tabs=false
+align_with_tabs=false
+align_on_tabstop=false
+align_number_right=false
+align_func_params=false
+align_same_func_call_params=false
+align_var_def_colon=false
+align_var_def_attribute=false
+align_var_def_inline=false
+align_right_cmt_mix=false
+align_on_operator=false
+align_mix_var_proto=false
+align_single_line_func=false
+align_single_line_brace=false
+align_nl_cont=false
+align_left_shift=false
+nl_collapse_empty_body=false
+nl_assign_leave_one_liners=true
+nl_class_leave_one_liners=true
+nl_enum_leave_one_liners=true
+nl_getset_leave_one_liners=true
+nl_func_leave_one_liners=true
+nl_cpp_lambda_leave_one_liners=true
+nl_if_leave_one_liners=false
+nl_oc_msg_leave_one_liner=true
+nl_start_of_file=remove
+nl_end_of_file=force
+nl_end_of_file_min=1
+nl_assign_brace=force
+nl_enum_brace=force
+nl_struct_brace=force
+nl_union_brace=force
+nl_if_brace=force
+nl_brace_else=force
+nl_else_brace=force
+nl_else_if=remove
+nl_brace_finally=force
+nl_finally_brace=force
+nl_try_brace=force
+nl_getset_brace=force
+nl_for_brace=force
+nl_catch_brace=force
+nl_brace_catch=force
+nl_while_brace=force
+nl_using_brace=force
+nl_brace_brace=ignore
+nl_do_brace=force
+nl_brace_while=force
+nl_switch_brace=force
+nl_multi_line_cond=false
+nl_before_case=false
+nl_after_case=false
+nl_case_colon_brace=force
+nl_namespace_brace=force
+nl_template_class=ignore
+nl_class_brace=force
+nl_fdef_brace=force
+nl_after_semicolon=false
+nl_after_brace_open=false
+nl_after_brace_open_cmt=false
+nl_after_vbrace_open=false
+nl_after_vbrace_open_empty=false
+nl_after_brace_close=false
+nl_after_vbrace_close=false
+nl_squeeze_ifdef=false
+nl_ds_struct_enum_cmt=false
+nl_ds_struct_enum_close_brace=false
+nl_namespace_two_to_one_liner=false
+nl_create_if_one_liner=false
+nl_create_for_one_liner=false
+nl_create_while_one_liner=false
+nl_create_func_def_one_liner=false
+ls_for_split_full=false
+ls_func_split_full=false
+nl_max=3
+nl_after_func_body=2
+nl_after_multiline_comment=false
+nl_property_brace=force
+eat_blanks_after_open_brace=true
+eat_blanks_before_close_brace=true
+nl_after_return=false
+mod_full_brace_if_chain=0
+mod_paren_on_return=ignore
+mod_pawn_semicolon=false
+mod_full_paren_if_bool=false
+mod_remove_extra_semicolon=true
+mod_move_case_break=false
+mod_remove_empty_return=true
+cmt_convert_tab_to_spaces=True
+cmt_indent_multi=false
+cmt_c_group=false
+cmt_c_nl_start=false
+cmt_c_nl_end=false
+cmt_cpp_group=false
+cmt_cpp_nl_start=false
+cmt_cpp_nl_end=false
+cmt_cpp_to_c=false
+cmt_star_cont=false
+cmt_multi_check_last=false
+cmt_insert_before_preproc=false
+pp_space=ignore
+use_options_overriding_for_qt_macros=false
+warn_level_tabs_found_in_verbatim_string_literals=1
+# blocked by https://sourceforge.net/p/uncrustify/bugs/619/
+# can be turned back on at any time
+mod_add_long_ifdef_else_comment=0
+mod_add_long_ifdef_endif_comment=0
+
+
+# Setting this 'false' will cause an extra tab to be added to function call args from an assignment:
+#
+# x = o.Func2(a, b,
+# y);
+# o.Func2(a, b,
+# y);
+#
+# ...but setting it 'true' is often worse:
+#
+# ExtraReallyLongType reallyLongVariableName = someTest
+# ? someTrueExpr
+# : someFalseExpr
+#
+# ...except sometimes we really do want that. What we need is an indent_align_assign_threshold, or,
+# better but maybe more complicated, indent_align_assign=ignore to leave alone what the engineer did.
+# (currently unreported)
+indent_align_assign=false
+
+# this is causing a few problems, but usually with block comments and autodoc markup. perhaps only add a space
+# if first letter is not a symbol and this is a standalone comment: not preceded or followed by another c++
+# comment line at the same level of indentation.
+# REVISIT: work was done to have it eliminate space for doxygen markup in c6aca7b, maybe can improve on it for us
+# (test using Runtime/Allocator/BucketAllocator.h)
+# IMPORTANT: see task at https://trello.com/c/wUgiuvbX before going further
+#sp_cmt_cpp_start=add
+sp_cmt_cpp_start=ignore
+
+# https://sourceforge.net/p/uncrustify/bugs/619/
+#sp_endif_cmt=force
+sp_endif_cmt=ignore
+
+# want to turn this on, but can't do it without also getting alignment right. try running it on this file as an example:
+# Tools\BugReporterV2\qt_face\lib\src\MainWindow.cpp
+#nl_cpp_ldef_brace=force
+indent_member_single=true
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-18829.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-18829.cfg
index d65f6b27..d65f6b27 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-18829.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-18829.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-1975.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-1975.cfg
index 80528dc6..80528dc6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-1975.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-1975.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-1977.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-1977.cfg
index 4563bfde..4563bfde 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-1977.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-1977.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-1978.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-1978.cfg
index 2cf794e3..2cf794e3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-1978.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-1978.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-19895.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-19895.cfg
index ac4012d1..ac4012d1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-19895.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-19895.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-2020.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-2020.cfg
index 0d78de45..0d78de45 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-2020.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-2020.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-2021.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-2021.cfg
index 827d33e0..827d33e0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-2021.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-2021.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-21730.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-21730.cfg
index 5443f32f..5443f32f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-21730.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-21730.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-2684.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-2684.cfg
index c048c827..c048c827 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-2684.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-2684.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-2685.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-2685.cfg
index 3f25a1fa..3f25a1fa 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-2685.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-2685.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-29933.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-29933.cfg
index 2f136516..2f136516 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-29933.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-29933.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-30498_2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-30498_2.cfg
index 8f635e72..8f635e72 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-30498_2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-30498_2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-3083.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-3083.cfg
index 80528dc6..80528dc6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-3083.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-3083.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-32658.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-32658.cfg
new file mode 100644
index 00000000..45ff959d
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-32658.cfg
@@ -0,0 +1,286 @@
+input_tab_size=4
+string_replace_tab_chars=true
+tok_split_gte=false
+disable_processing_cmt=*begin-nonstandard-formatting*
+enable_processing_cmt=*end-nonstandard-formatting*
+utf8_bom=remove
+utf8_byte=false
+utf8_force=false
+indent_columns=4
+indent_with_tabs=0
+indent_cmt_with_tabs=false
+indent_align_string=false
+indent_braces=false
+indent_braces_no_func=false
+indent_braces_no_class=false
+indent_braces_no_struct=false
+indent_brace_parent=false
+indent_cs_delegate_brace=true
+indent_namespace=true
+indent_extern=false
+indent_class=true
+indent_class_colon=false
+indent_else_if=false
+indent_var_def_cont=false
+indent_func_call_param=true
+indent_func_def_param=true
+indent_func_proto_param=true
+indent_func_class_param=false
+indent_func_ctor_var_param=false
+indent_template_param=false
+indent_func_param_double=false
+indent_member_single=false
+indent_relative_single_line_comments=false
+indent_switch_case=4
+indent_case_shift=0
+indent_case_brace=0
+indent_col1_comment=false
+indent_label=-4
+indent_access_spec=-4
+indent_paren_nl=false
+indent_comma_paren=0
+indent_bool_paren=0
+indent_first_bool_expr=false
+indent_square_nl=false
+indent_preserve_sql=false
+indent_align_paren=false
+indent_oc_block_msg_xcode_style=true
+indent_off_after_return_new=true
+indent_single_after_return=true
+sp_arith=add
+sp_assign=add
+sp_assign_default=add
+sp_enum_assign=add
+sp_pp_concat=remove
+sp_pp_stringify=remove
+sp_bool=add
+sp_compare=add
+sp_inside_paren=remove
+sp_paren_paren=remove
+sp_balance_nested_parens=false
+sp_paren_brace=force
+sp_after_type=ignore
+sp_template_angle=remove
+sp_before_angle=remove
+sp_inside_angle=remove
+sp_angle_paren=remove
+sp_angle_paren_empty=remove
+sp_angle_word=add
+sp_angle_shift=remove
+sp_before_sparen=force
+sp_inside_sparen=remove
+sp_after_sparen=add
+sp_sparen_brace=force
+sp_special_semi=force
+sp_before_semi=remove
+sp_before_semi_for=remove
+sp_before_semi_for_empty=remove
+sp_between_semi_for_empty=remove
+sp_after_semi=add
+sp_after_semi_for=force
+sp_after_semi_for_empty=remove
+sp_before_square=remove
+sp_before_squares=remove
+sp_inside_square=remove
+sp_after_comma=add
+sp_before_comma=ignore
+sp_after_mdatype_commas=remove
+sp_before_mdatype_commas=remove
+sp_between_mdatype_commas=remove
+sp_paren_comma=remove
+sp_after_class_colon=force
+sp_before_class_colon=force
+sp_before_case_colon=remove
+sp_after_operator=remove
+sp_after_operator_sym=remove
+sp_after_operator_sym_empty=remove
+sp_after_cast=remove
+sp_inside_paren_cast=remove
+sp_cpp_cast_paren=remove
+sp_sizeof_paren=remove
+sp_inside_braces_enum=add
+sp_inside_braces_empty=remove
+sp_type_func=ignore
+sp_func_proto_paren=remove
+sp_func_def_paren=remove
+sp_inside_fparens=remove
+sp_inside_fparen=remove
+sp_fparen_brace=add
+sp_func_call_paren=remove
+sp_func_call_paren_empty=remove
+sp_func_call_user_paren=remove
+sp_func_class_paren=remove
+sp_return_paren=add
+sp_defined_paren=remove
+sp_throw_paren=add
+sp_catch_paren=add
+sp_brace_typedef=add
+sp_getset_brace=add
+sp_after_dc=remove
+sp_not=remove
+sp_inv=remove
+sp_addr=remove
+sp_member=remove
+sp_deref=remove
+sp_sign=remove
+sp_incdec=remove
+sp_before_nl_cont=add
+sp_after_oc_scope=force
+sp_after_oc_colon=remove
+sp_before_oc_colon=remove
+sp_after_oc_dict_colon=force
+sp_before_oc_dict_colon=remove
+sp_after_send_oc_colon=force
+sp_before_send_oc_colon=remove
+sp_after_oc_type=remove
+sp_after_oc_return_type=remove
+sp_after_oc_at_sel=remove
+sp_inside_oc_at_sel_parens=remove
+sp_cond_colon=add
+sp_cond_question=add
+sp_case_label=ignore
+sp_after_new=force
+sp_between_new_paren=remove
+sp_skip_vbrace_tokens=true
+align_keep_tabs=false
+align_with_tabs=false
+align_on_tabstop=false
+align_number_right=false
+align_func_params=false
+align_same_func_call_params=false
+align_var_def_colon=false
+align_var_def_attribute=false
+align_var_def_inline=false
+align_right_cmt_mix=false
+align_on_operator=false
+align_mix_var_proto=false
+align_single_line_func=false
+align_single_line_brace=false
+align_nl_cont=false
+align_left_shift=false
+nl_collapse_empty_body=false
+nl_assign_leave_one_liners=true
+nl_class_leave_one_liners=true
+nl_enum_leave_one_liners=true
+nl_getset_leave_one_liners=true
+nl_func_leave_one_liners=true
+nl_cpp_lambda_leave_one_liners=true
+nl_if_leave_one_liners=false
+nl_oc_msg_leave_one_liner=true
+nl_start_of_file=remove
+nl_end_of_file=force
+nl_end_of_file_min=1
+nl_assign_brace=force
+nl_enum_brace=force
+nl_struct_brace=force
+nl_union_brace=force
+nl_if_brace=force
+nl_brace_else=force
+nl_else_brace=force
+nl_else_if=remove
+nl_brace_finally=force
+nl_finally_brace=force
+nl_try_brace=force
+nl_getset_brace=force
+nl_for_brace=force
+nl_catch_brace=force
+nl_brace_catch=force
+nl_while_brace=force
+nl_using_brace=force
+nl_brace_brace=ignore
+nl_do_brace=force
+nl_brace_while=force
+nl_switch_brace=force
+nl_multi_line_cond=false
+nl_before_case=false
+nl_after_case=false
+nl_case_colon_brace=force
+nl_namespace_brace=force
+nl_template_class=ignore
+nl_class_brace=force
+nl_fdef_brace=force
+nl_after_semicolon=false
+nl_after_brace_open=false
+nl_after_brace_open_cmt=false
+nl_after_vbrace_open=false
+nl_after_vbrace_open_empty=false
+nl_after_brace_close=false
+nl_after_vbrace_close=false
+nl_squeeze_ifdef=false
+nl_ds_struct_enum_cmt=false
+nl_ds_struct_enum_close_brace=false
+nl_namespace_two_to_one_liner=false
+nl_create_if_one_liner=false
+nl_create_for_one_liner=false
+nl_create_while_one_liner=false
+nl_create_func_def_one_liner=false
+ls_for_split_full=false
+ls_func_split_full=false
+nl_max=3
+nl_after_func_body=2
+nl_after_multiline_comment=false
+nl_property_brace=force
+eat_blanks_after_open_brace=true
+eat_blanks_before_close_brace=true
+nl_after_return=false
+mod_full_brace_if_chain=0
+mod_paren_on_return=ignore
+mod_pawn_semicolon=false
+mod_full_paren_if_bool=false
+mod_remove_extra_semicolon=true
+mod_move_case_break=false
+mod_remove_empty_return=true
+cmt_convert_tab_to_spaces=True
+cmt_indent_multi=false
+cmt_c_group=false
+cmt_c_nl_start=false
+cmt_c_nl_end=false
+cmt_cpp_group=false
+cmt_cpp_nl_start=false
+cmt_cpp_nl_end=false
+cmt_cpp_to_c=false
+cmt_star_cont=false
+cmt_multi_check_last=false
+cmt_insert_before_preproc=false
+pp_space=ignore
+use_options_overriding_for_qt_macros=false
+warn_level_tabs_found_in_verbatim_string_literals=1
+# blocked by https://sourceforge.net/p/uncrustify/bugs/619/
+# can be turned back on at any time
+mod_add_long_ifdef_else_comment=0
+mod_add_long_ifdef_endif_comment=0
+
+# Setting this 'false' will cause an extra tab to be added to function call args from an assignment:
+#
+# x = o.Func2(a, b,
+# y);
+# o.Func2(a, b,
+# y);
+#
+# ...but setting it 'true' is often worse:
+#
+# ExtraReallyLongType reallyLongVariableName = someTest
+# ? someTrueExpr
+# : someFalseExpr
+#
+# ...except sometimes we really do want that. What we need is an indent_align_assign_threshold, or,
+# better but maybe more complicated, indent_align_assign=ignore to leave alone what the engineer did.
+# (currently unreported)
+indent_align_assign=false
+
+# this is causing a few problems, but usually with block comments and autodoc markup. perhaps only add a space
+# if first letter is not a symbol and this is a standalone comment: not preceded or followed by another c++
+# comment line at the same level of indentation.
+# REVISIT: work was done to have it eliminate space for doxygen markup in c6aca7b, maybe can improve on it for us
+# (test using Runtime/Allocator/BucketAllocator.h)
+# IMPORTANT: see task at https://trello.com/c/wUgiuvbX before going further
+#sp_cmt_cpp_start=add
+sp_cmt_cpp_start=ignore
+
+# https://sourceforge.net/p/uncrustify/bugs/619/
+#sp_endif_cmt=force
+sp_endif_cmt=ignore
+
+# want to turn this on, but can't do it without also getting alignment right. try running it on this file as an example:
+# Tools\BugReporterV2\qt_face\lib\src\MainWindow.cpp
+#nl_cpp_ldef_brace=force
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-37241.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-37241.cfg
new file mode 100644
index 00000000..693b9a86
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-37241.cfg
@@ -0,0 +1,287 @@
+input_tab_size=4 # Number
+string_replace_tab_chars=true # { False, True }
+tok_split_gte=false # { False, True }
+disable_processing_cmt=*begin-nonstandard-formatting*
+enable_processing_cmt=*end-nonstandard-formatting*
+utf8_bom=remove # { Ignore, Add, Remove, Force }
+utf8_byte=false # { False, True }
+utf8_force=false # { False, True }
+indent_columns=4 # Number
+indent_with_tabs=0 # Number
+indent_cmt_with_tabs=false # { False, True }
+indent_align_string=false # { False, True }
+indent_braces=false # { False, True }
+indent_braces_no_func=false # { False, True }
+indent_braces_no_class=false # { False, True }
+indent_braces_no_struct=false # { False, True }
+indent_brace_parent=false # { False, True }
+indent_cs_delegate_brace=true # { False, True }
+indent_namespace=true # { False, True }
+indent_extern=false # { False, True }
+indent_class=true # { False, True }
+indent_class_colon=false # { False, True }
+indent_else_if=false # { False, True }
+indent_var_def_cont=false # { False, True }
+indent_func_call_param=true # { False, True }
+indent_func_def_param=true # { False, True }
+indent_func_proto_param=true # { False, True }
+indent_func_class_param=false # { False, True }
+indent_func_ctor_var_param=false # { False, True }
+indent_template_param=false # { False, True }
+indent_func_param_double=false # { False, True }
+indent_member_single=false # false/true
+indent_relative_single_line_comments=false # { False, True }
+indent_switch_case=4 # Number
+indent_case_shift=0 # Number
+indent_case_brace=0 # Number
+indent_col1_comment=false # { False, True }
+indent_label=-4 # Number
+indent_access_spec=-4 # Number
+indent_paren_nl=false # { False, True }
+indent_comma_paren=0 # Number
+indent_bool_paren=0 # Number
+indent_first_bool_expr=false # { False, True }
+indent_square_nl=false # { False, True }
+indent_preserve_sql=false # { False, True }
+indent_align_paren=false # { False, True }
+indent_oc_block_msg_xcode_style=true # { False, True }
+indent_off_after_return_new=true # { False, True }
+indent_single_after_return=true # { False, True }
+sp_arith=add # { Ignore, Add, Remove, Force }
+sp_assign=add # { Ignore, Add, Remove, Force }
+sp_assign_default=add # { Ignore, Add, Remove, Force }
+sp_enum_assign=add # { Ignore, Add, Remove, Force }
+sp_pp_concat=remove # { Ignore, Add, Remove, Force }
+sp_pp_stringify=remove # { Ignore, Add, Remove, Force }
+sp_bool=add # { Ignore, Add, Remove, Force }
+sp_compare=add # { Ignore, Add, Remove, Force }
+sp_inside_paren=remove # { Ignore, Add, Remove, Force }
+sp_paren_paren=remove # { Ignore, Add, Remove, Force }
+sp_balance_nested_parens=false # { False, True }
+sp_paren_brace=force # { Ignore, Add, Remove, Force }
+sp_after_type=ignore # { Ignore, Add, Remove, Force }
+sp_template_angle=remove # { Ignore, Add, Remove, Force }
+sp_before_angle=remove # { Ignore, Add, Remove, Force }
+sp_inside_angle=remove # { Ignore, Add, Remove, Force }
+sp_angle_paren=remove # { Ignore, Add, Remove, Force }
+sp_angle_paren_empty=remove # { Ignore, Add, Remove, Force }
+sp_angle_word=add # { Ignore, Add, Remove, Force }
+sp_angle_shift=remove # { Ignore, Add, Remove, Force }
+sp_before_sparen=force # { Ignore, Add, Remove, Force }
+sp_inside_sparen=remove # { Ignore, Add, Remove, Force }
+sp_after_sparen=add # { Ignore, Add, Remove, Force }
+sp_sparen_brace=force # { Ignore, Add, Remove, Force }
+sp_special_semi=force # { Ignore, Add, Remove, Force }
+sp_before_semi=remove # { Ignore, Add, Remove, Force }
+sp_before_semi_for=remove # { Ignore, Add, Remove, Force }
+sp_before_semi_for_empty=remove # { Ignore, Add, Remove, Force }
+sp_between_semi_for_empty=remove # { Ignore, Add, Remove, Force }
+sp_after_semi=add # { Ignore, Add, Remove, Force }
+sp_after_semi_for=force # { Ignore, Add, Remove, Force }
+sp_after_semi_for_empty=remove # { Ignore, Add, Remove, Force }
+sp_before_square=remove # { Ignore, Add, Remove, Force }
+sp_before_squares=remove # { Ignore, Add, Remove, Force }
+sp_inside_square=remove # { Ignore, Add, Remove, Force }
+sp_after_comma=add # { Ignore, Add, Remove, Force }
+sp_before_comma=ignore # { Ignore, Add, Remove, Force }
+sp_after_mdatype_commas=remove # { Ignore, Add, Remove, Force }
+sp_before_mdatype_commas=remove # { Ignore, Add, Remove, Force }
+sp_between_mdatype_commas=remove # { Ignore, Add, Remove, Force }
+sp_paren_comma=remove # { Ignore, Add, Remove, Force }
+sp_after_class_colon=force # { Ignore, Add, Remove, Force }
+sp_before_class_colon=force # { Ignore, Add, Remove, Force }
+sp_before_case_colon=remove # { Ignore, Add, Remove, Force }
+sp_after_operator=remove # { Ignore, Add, Remove, Force }
+sp_after_operator_sym=remove # { Ignore, Add, Remove, Force }
+sp_after_operator_sym_empty=remove # { Ignore, Add, Remove, Force }
+sp_after_cast=remove # { Ignore, Add, Remove, Force }
+sp_inside_paren_cast=remove # { Ignore, Add, Remove, Force }
+sp_cpp_cast_paren=remove # { Ignore, Add, Remove, Force }
+sp_sizeof_paren=remove # { Ignore, Add, Remove, Force }
+sp_inside_braces_enum=add # { Ignore, Add, Remove, Force }
+sp_inside_braces_empty=remove # { Ignore, Add, Remove, Force }
+sp_type_func=ignore # { Ignore, Add, Remove, Force }
+sp_func_proto_paren=remove # { Ignore, Add, Remove, Force }
+sp_func_def_paren=remove # { Ignore, Add, Remove, Force }
+sp_inside_fparens=remove # { Ignore, Add, Remove, Force }
+sp_inside_fparen=remove # { Ignore, Add, Remove, Force }
+sp_fparen_brace=add # { Ignore, Add, Remove, Force }
+sp_func_call_paren=remove # { Ignore, Add, Remove, Force }
+sp_func_call_paren_empty=remove # { Ignore, Add, Remove, Force }
+sp_func_call_user_paren=remove # { Ignore, Add, Remove, Force }
+sp_func_class_paren=remove # { Ignore, Add, Remove, Force }
+sp_return_paren=add # { Ignore, Add, Remove, Force }
+sp_defined_paren=remove # { Ignore, Add, Remove, Force }
+sp_throw_paren=add # { Ignore, Add, Remove, Force }
+sp_catch_paren=add # { Ignore, Add, Remove, Force }
+sp_brace_typedef=add # { Ignore, Add, Remove, Force }
+sp_getset_brace=add # { Ignore, Add, Remove, Force }
+sp_after_dc=remove # { Ignore, Add, Remove, Force }
+sp_not=remove # { Ignore, Add, Remove, Force }
+sp_inv=remove # { Ignore, Add, Remove, Force }
+sp_addr=remove # { Ignore, Add, Remove, Force }
+sp_member=remove # { Ignore, Add, Remove, Force }
+sp_deref=remove # { Ignore, Add, Remove, Force }
+sp_sign=remove # { Ignore, Add, Remove, Force }
+sp_incdec=remove # { Ignore, Add, Remove, Force }
+sp_before_nl_cont=add # { Ignore, Add, Remove, Force }
+sp_after_oc_scope=force # { Ignore, Add, Remove, Force }
+sp_after_oc_colon=remove # { Ignore, Add, Remove, Force }
+sp_before_oc_colon=remove # { Ignore, Add, Remove, Force }
+sp_after_oc_dict_colon=force # { Ignore, Add, Remove, Force }
+sp_before_oc_dict_colon=remove # { Ignore, Add, Remove, Force }
+sp_after_send_oc_colon=force # { Ignore, Add, Remove, Force }
+sp_before_send_oc_colon=remove # { Ignore, Add, Remove, Force }
+sp_after_oc_type=remove # { Ignore, Add, Remove, Force }
+sp_after_oc_return_type=remove # { Ignore, Add, Remove, Force }
+sp_after_oc_at_sel=remove # { Ignore, Add, Remove, Force }
+sp_inside_oc_at_sel_parens=remove # { Ignore, Add, Remove, Force }
+sp_cond_colon=add # { Ignore, Add, Remove, Force }
+sp_cond_question=add # { Ignore, Add, Remove, Force }
+sp_case_label=ignore # { Ignore, Add, Remove, Force }
+sp_after_new=force # { Ignore, Add, Remove, Force }
+sp_between_new_paren=remove # { Ignore, Add, Remove, Force }
+sp_skip_vbrace_tokens=true # { False, True }
+align_keep_tabs=false # { False, True }
+align_with_tabs=false # { False, True }
+align_on_tabstop=false # { False, True }
+align_number_right=false # { False, True }
+align_func_params=false # { False, True }
+align_same_func_call_params=false # { False, True }
+align_var_def_colon=false # { False, True }
+align_var_def_attribute=false # { False, True }
+align_var_def_inline=false # { False, True }
+align_right_cmt_mix=false # { False, True }
+align_on_operator=false # { False, True }
+align_mix_var_proto=false # { False, True }
+align_single_line_func=false # { False, True }
+align_single_line_brace=false # { False, True }
+align_nl_cont=false # { False, True }
+align_left_shift=false # { False, True }
+nl_collapse_empty_body=false # { False, True }
+nl_assign_leave_one_liners=true # { False, True }
+nl_class_leave_one_liners=true # { False, True }
+nl_enum_leave_one_liners=true # { False, True }
+nl_getset_leave_one_liners=true # { False, True }
+nl_func_leave_one_liners=true # { False, True }
+nl_cpp_lambda_leave_one_liners=true # { False, True }
+nl_if_leave_one_liners=false # { False, True }
+nl_oc_msg_leave_one_liner=true # { False, True }
+nl_start_of_file=remove # { Ignore, Add, Remove, Force }
+nl_end_of_file=force # { Ignore, Add, Remove, Force }
+nl_end_of_file_min=1 # Number
+nl_assign_brace=force # { Ignore, Add, Remove, Force }
+nl_enum_brace=force # { Ignore, Add, Remove, Force }
+nl_struct_brace=force # { Ignore, Add, Remove, Force }
+nl_union_brace=force # { Ignore, Add, Remove, Force }
+nl_if_brace=force # { Ignore, Add, Remove, Force }
+nl_brace_else=force # { Ignore, Add, Remove, Force }
+nl_else_brace=force # { Ignore, Add, Remove, Force }
+nl_else_if=remove # { Ignore, Add, Remove, Force }
+nl_brace_finally=force # { Ignore, Add, Remove, Force }
+nl_finally_brace=force # { Ignore, Add, Remove, Force }
+nl_try_brace=force # { Ignore, Add, Remove, Force }
+nl_getset_brace=force # { Ignore, Add, Remove, Force }
+nl_for_brace=force # { Ignore, Add, Remove, Force }
+nl_catch_brace=force # { Ignore, Add, Remove, Force }
+nl_brace_catch=force # { Ignore, Add, Remove, Force }
+nl_while_brace=force # { Ignore, Add, Remove, Force }
+nl_using_brace=force # { Ignore, Add, Remove, Force }
+nl_brace_brace=ignore # { Ignore, Add, Remove, Force }
+nl_do_brace=force # { Ignore, Add, Remove, Force }
+nl_brace_while=force # { Ignore, Add, Remove, Force }
+nl_switch_brace=force # { Ignore, Add, Remove, Force }
+nl_multi_line_cond=false # { False, True }
+nl_before_case=false # { False, True }
+nl_after_case=false # { False, True }
+nl_case_colon_brace=force # { Ignore, Add, Remove, Force }
+nl_namespace_brace=force # { Ignore, Add, Remove, Force }
+nl_template_class=ignore # { Ignore, Add, Remove, Force }
+nl_class_brace=force # { Ignore, Add, Remove, Force }
+nl_fdef_brace=force # { Ignore, Add, Remove, Force }
+nl_after_semicolon=false # { False, True }
+nl_after_brace_open=false # { False, True }
+nl_after_brace_open_cmt=false # { False, True }
+nl_after_vbrace_open=false # { False, True }
+nl_after_vbrace_open_empty=false # { False, True }
+nl_after_brace_close=false # { False, True }
+nl_after_vbrace_close=false # { False, True }
+nl_squeeze_ifdef=false # { False, True }
+nl_ds_struct_enum_cmt=false # { False, True }
+nl_ds_struct_enum_close_brace=false # { False, True }
+nl_namespace_two_to_one_liner=false # { False, True }
+nl_create_if_one_liner=false # { False, True }
+nl_create_for_one_liner=false # { False, True }
+nl_create_while_one_liner=false # { False, True }
+nl_create_func_def_one_liner=false # { False, True }
+ls_for_split_full=false # { False, True }
+ls_func_split_full=false # { False, True }
+nl_max=3 # Number
+nl_after_func_body=2 # Number
+nl_after_multiline_comment=false # { False, True }
+nl_property_brace=force # { Ignore, Add, Remove, Force }
+eat_blanks_after_open_brace=true # { False, True }
+eat_blanks_before_close_brace=true # { False, True }
+nl_after_return=false # { False, True }
+mod_full_brace_if_chain=0 # Number
+mod_paren_on_return=ignore # { Ignore, Add, Remove, Force }
+mod_pawn_semicolon=false # { False, True }
+mod_full_paren_if_bool=false # { False, True }
+mod_remove_extra_semicolon=true # { False, True }
+mod_move_case_break=false # { False, True }
+mod_remove_empty_return=true # { False, True }
+cmt_convert_tab_to_spaces=True # { False, True }
+cmt_indent_multi=false # { False, True }
+cmt_c_group=false # { False, True }
+cmt_c_nl_start=false # { False, True }
+cmt_c_nl_end=false # { False, True }
+cmt_cpp_group=false # { False, True }
+cmt_cpp_nl_start=false # { False, True }
+cmt_cpp_nl_end=false # { False, True }
+cmt_cpp_to_c=false # { False, True }
+cmt_star_cont=false # { False, True }
+cmt_multi_check_last=false # { False, True }
+cmt_insert_before_preproc=false # { False, True }
+pp_space=ignore # { Ignore, Add, Remove, Force }
+use_options_overriding_for_qt_macros=false # { False, True }
+warn_level_tabs_found_in_verbatim_string_literals=1 # { 1, 2, 3 }
+# blocked by https://sourceforge.net/p/uncrustify/bugs/619/
+# can be turned back on at any time
+mod_add_long_ifdef_else_comment=0
+mod_add_long_ifdef_endif_comment=0
+
+# Setting this 'false' will cause an extra tab to be added to function call args from an assignment:
+#
+# x = o.Func2(a, b,
+# y);
+# o.Func2(a, b,
+# y);
+#
+# ...but setting it 'true' is often worse:
+#
+# ExtraReallyLongType reallyLongVariableName = someTest
+# ? someTrueExpr
+# : someFalseExpr
+#
+# ...except sometimes we really do want that. What we need is an indent_align_assign_threshold, or,
+# better but maybe more complicated, indent_align_assign=ignore to leave alone what the engineer did.
+# (currently unreported)
+indent_align_assign=false
+
+# this is causing a few problems, but usually with block comments and autodoc markup. perhaps only add a space
+# if first letter is not a symbol and this is a standalone comment: not preceded or followed by another c++
+# comment line at the same level of indentation.
+# REVISIT: work was done to have it eliminate space for doxygen markup in c6aca7b, maybe can improve on it for us
+# (test using Runtime/Allocator/BucketAllocator.h)
+# IMPORTANT: see task at https://trello.com/c/wUgiuvbX before going further
+#sp_cmt_cpp_start=add
+sp_cmt_cpp_start=ignore
+
+# https://sourceforge.net/p/uncrustify/bugs/619/
+#sp_endif_cmt=force
+sp_endif_cmt=ignore
+
+# want to turn this on, but can't do it without also getting alignment right. try running it on this file as an example:
+# Tools\BugReporterV2\qt_face\lib\src\MainWindow.cpp
+#nl_cpp_ldef_brace=force
+nl_cs_property_leave_one_liners=true
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-9917.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-9917.cfg
index f1fd0af3..f1fd0af3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-9917.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/UNI-9917.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/ben_032.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/ben_032.cfg
index e99f12ab..e99f12ab 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/ben_032.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/ben_032.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/ben_033.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/ben_033.cfg
index 3f1ffc6c..3f1ffc6c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/ben_033.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/ben_033.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/ben_034.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/ben_034.cfg
index 0681b1b8..0681b1b8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/ben_034.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/ben_034.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/ben_036.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/ben_036.cfg
index 5a5f216b..5a5f216b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/ben_036.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/ben_036.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/ben_037.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/ben_037.cfg
index 97daab41..97daab41 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/ben_037.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/ben_037.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/ben_038.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/ben_038.cfg
index 4384cfbd..4384cfbd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/ben_038.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/ben_038.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/ben_043.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/ben_043.cfg
index fcbc9ddc..fcbc9ddc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/ben_043.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/ben_043.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/ben_044.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/ben_044.cfg
index 6815087d..6815087d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/ben_044.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/ben_044.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/ben_045.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/ben_045.cfg
index 3ff68ef5..3ff68ef5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/ben_045.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/ben_045.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/bug_1620.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/bug_1620.cfg
new file mode 100644
index 00000000..278e249b
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/bug_1620.cfg
@@ -0,0 +1,289 @@
+input_tab_size=4
+string_replace_tab_chars=true
+tok_split_gte=false
+disable_processing_cmt=*begin-nonstandard-formatting*
+enable_processing_cmt=*end-nonstandard-formatting*
+utf8_bom=remove
+utf8_byte=false
+utf8_force=false
+indent_columns=4
+indent_with_tabs=0
+indent_cmt_with_tabs=false
+indent_align_string=false
+indent_braces=false
+indent_braces_no_func=false
+indent_braces_no_class=false
+indent_braces_no_struct=false
+indent_brace_parent=false
+indent_cs_delegate_brace=true
+indent_namespace=true
+indent_extern=false
+indent_class=true
+indent_class_colon=false
+indent_else_if=false
+indent_var_def_cont=false
+indent_func_call_param=true
+indent_func_def_param=true
+indent_func_proto_param=true
+indent_func_class_param=false
+indent_func_ctor_var_param=false
+indent_template_param=false
+indent_func_param_double=false
+indent_member_single=false
+indent_relative_single_line_comments=false
+indent_switch_case=4
+indent_case_shift=0
+indent_case_brace=0
+indent_col1_comment=false
+indent_label=-4
+indent_access_spec=-4
+indent_paren_nl=false
+indent_comma_paren=0
+indent_bool_paren=0
+indent_first_bool_expr=false
+indent_square_nl=false
+indent_preserve_sql=false
+indent_align_paren=false
+indent_oc_block_msg_xcode_style=true
+indent_off_after_return_new=true
+indent_single_after_return=true
+sp_arith=add
+sp_assign=add
+sp_assign_default=add
+sp_enum_assign=add
+sp_pp_concat=remove
+sp_pp_stringify=remove
+sp_bool=add
+sp_compare=add
+sp_inside_paren=remove
+sp_paren_paren=remove
+sp_balance_nested_parens=false
+sp_paren_brace=force
+sp_after_type=ignore
+sp_template_angle=remove
+sp_before_angle=remove
+sp_inside_angle=remove
+sp_angle_paren=remove
+sp_angle_paren_empty=remove
+sp_angle_word=add
+sp_angle_shift=remove
+sp_before_sparen=force
+sp_inside_sparen=remove
+sp_after_sparen=add
+sp_sparen_brace=force
+sp_special_semi=force
+sp_before_semi=remove
+sp_before_semi_for=remove
+sp_before_semi_for_empty=remove
+sp_between_semi_for_empty=remove
+sp_after_semi=add
+sp_after_semi_for=force
+sp_after_semi_for_empty=remove
+sp_before_square=remove
+sp_before_squares=remove
+sp_inside_square=remove
+sp_after_comma=add
+sp_before_comma=ignore
+sp_after_mdatype_commas=remove
+sp_before_mdatype_commas=remove
+sp_between_mdatype_commas=remove
+sp_paren_comma=remove
+sp_after_class_colon=force
+sp_before_class_colon=force
+sp_before_case_colon=remove
+sp_after_operator=remove
+sp_after_operator_sym=remove
+sp_after_operator_sym_empty=remove
+sp_after_cast=remove
+sp_inside_paren_cast=remove
+sp_cpp_cast_paren=remove
+sp_sizeof_paren=remove
+sp_inside_braces_enum=add
+sp_inside_braces_empty=remove
+sp_type_func=ignore
+sp_func_proto_paren=remove
+sp_func_def_paren=remove
+sp_inside_fparens=remove
+sp_inside_fparen=remove
+sp_fparen_brace=add
+sp_func_call_paren=remove
+sp_func_call_paren_empty=remove
+sp_func_call_user_paren=remove
+sp_func_class_paren=remove
+sp_return_paren=add
+sp_defined_paren=remove
+sp_throw_paren=add
+sp_catch_paren=add
+sp_brace_typedef=add
+sp_getset_brace=add
+sp_after_dc=remove
+sp_not=remove
+sp_inv=remove
+sp_addr=remove
+sp_member=remove
+sp_deref=remove
+sp_sign=remove
+sp_incdec=remove
+sp_before_nl_cont=add
+sp_after_oc_scope=force
+sp_after_oc_colon=remove
+sp_before_oc_colon=remove
+sp_after_oc_dict_colon=force
+sp_before_oc_dict_colon=remove
+sp_after_send_oc_colon=force
+sp_before_send_oc_colon=remove
+sp_after_oc_type=remove
+sp_after_oc_return_type=remove
+sp_after_oc_at_sel=remove
+sp_inside_oc_at_sel_parens=remove
+sp_cond_colon=add
+sp_cond_question=add
+sp_case_label=ignore
+sp_after_new=force
+sp_between_new_paren=remove
+sp_skip_vbrace_tokens=true
+align_keep_tabs=false
+align_with_tabs=false
+align_on_tabstop=false
+align_number_right=false
+align_func_params=false
+align_same_func_call_params=false
+align_var_def_colon=false
+align_var_def_attribute=false
+align_var_def_inline=false
+align_right_cmt_mix=false
+align_on_operator=false
+align_mix_var_proto=false
+align_single_line_func=false
+align_single_line_brace=false
+align_nl_cont=false
+align_left_shift=false
+nl_collapse_empty_body=false
+nl_assign_leave_one_liners=true
+nl_class_leave_one_liners=true
+nl_enum_leave_one_liners=true
+nl_getset_leave_one_liners=true
+nl_func_leave_one_liners=true
+nl_cpp_lambda_leave_one_liners=true
+nl_if_leave_one_liners=false
+nl_oc_msg_leave_one_liner=true
+nl_start_of_file=remove
+nl_end_of_file=force
+nl_end_of_file_min=1
+nl_assign_brace=force
+nl_enum_brace=force
+nl_struct_brace=force
+nl_union_brace=force
+nl_if_brace=force
+nl_brace_else=force
+nl_else_brace=force
+nl_else_if=remove
+nl_brace_finally=force
+nl_finally_brace=force
+nl_try_brace=force
+nl_getset_brace=force
+nl_for_brace=force
+nl_catch_brace=force
+nl_brace_catch=force
+nl_while_brace=force
+nl_using_brace=force
+nl_brace_brace=ignore
+nl_do_brace=force
+nl_brace_while=force
+nl_switch_brace=force
+nl_multi_line_cond=false
+nl_before_case=false
+nl_after_case=false
+nl_case_colon_brace=force
+nl_namespace_brace=force
+nl_template_class=ignore
+nl_class_brace=force
+nl_fdef_brace=force
+nl_after_semicolon=false
+nl_after_brace_open=false
+nl_after_brace_open_cmt=false
+nl_after_vbrace_open=false
+nl_after_vbrace_open_empty=false
+nl_after_brace_close=false
+nl_after_vbrace_close=false
+nl_squeeze_ifdef=false
+nl_ds_struct_enum_cmt=false
+nl_ds_struct_enum_close_brace=false
+nl_namespace_two_to_one_liner=false
+nl_create_if_one_liner=false
+nl_create_for_one_liner=false
+nl_create_while_one_liner=false
+nl_create_func_def_one_liner=false
+ls_for_split_full=false
+ls_func_split_full=false
+nl_max=3
+nl_after_func_body=2
+nl_after_multiline_comment=false
+nl_property_brace=force
+eat_blanks_after_open_brace=true
+eat_blanks_before_close_brace=true
+nl_after_return=false
+mod_full_brace_if_chain=0
+mod_paren_on_return=ignore
+mod_pawn_semicolon=false
+mod_full_paren_if_bool=false
+mod_remove_extra_semicolon=true
+mod_move_case_break=false
+mod_remove_empty_return=true
+cmt_convert_tab_to_spaces=True
+cmt_indent_multi=false
+cmt_c_group=false
+cmt_c_nl_start=false
+cmt_c_nl_end=false
+cmt_cpp_group=false
+cmt_cpp_nl_start=false
+cmt_cpp_nl_end=false
+cmt_cpp_to_c=false
+cmt_star_cont=false
+cmt_multi_check_last=false
+cmt_insert_before_preproc=false
+pp_space=ignore
+use_options_overriding_for_qt_macros=false
+warn_level_tabs_found_in_verbatim_string_literals=1
+mod_add_long_ifdef_else_comment=0
+mod_add_long_ifdef_endif_comment=0
+
+
+
+# Setting this 'false' will cause an extra tab to be added to function call args from an assignment:
+#
+# x = o.Func2(a, b,
+# y);
+# o.Func2(a, b,
+# y);
+#
+# ...but setting it 'true' is often worse:
+#
+# ExtraReallyLongType reallyLongVariableName = someTest
+# ? someTrueExpr
+# : someFalseExpr
+#
+# ...except sometimes we really do want that. What we need is an indent_align_assign_threshold, or,
+# better but maybe more complicated, indent_align_assign=ignore to leave alone what the engineer did.
+# (currently unreported)
+indent_align_assign=false
+
+# this is causing a few problems, but usually with block comments and autodoc markup. perhaps only add a space
+# if first letter is not a symbol and this is a standalone comment: not preceded or followed by another c++
+# comment line at the same level of indentation.
+# REVISIT: work was done to have it eliminate space for doxygen markup in c6aca7b, maybe can improve on it for us
+# (test using Runtime/Allocator/BucketAllocator.h)
+# IMPORTANT: see task at https://trello.com/c/wUgiuvbX before going further
+#sp_cmt_cpp_start=add
+sp_cmt_cpp_start=ignore
+
+# https://sourceforge.net/p/uncrustify/bugs/619/
+#sp_endif_cmt=force
+sp_endif_cmt=ignore
+
+# want to turn this on, but can't do it without also getting alignment right. try running it on this file as an example:
+# Tools\BugReporterV2\qt_face\lib\src\MainWindow.cpp
+#nl_cpp_ldef_brace=force
+indent_paren_open_brace=true
+indent_cs_delegate_brace=false
+indent_paren_close=2
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/bug_1637.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/bug_1637.cfg
new file mode 100644
index 00000000..cf23e802
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/bug_1637.cfg
@@ -0,0 +1,287 @@
+input_tab_size=4
+string_replace_tab_chars=true
+tok_split_gte=false
+disable_processing_cmt=*begin-nonstandard-formatting*
+enable_processing_cmt=*end-nonstandard-formatting*
+utf8_bom=remove
+utf8_byte=false
+utf8_force=false
+indent_columns=4
+indent_with_tabs=0
+indent_cmt_with_tabs=false
+indent_align_string=false
+indent_braces=false
+indent_braces_no_func=false
+indent_braces_no_class=false
+indent_braces_no_struct=false
+indent_brace_parent=false
+indent_cs_delegate_brace=true
+indent_namespace=true
+indent_extern=false
+indent_class=true
+indent_class_colon=false
+indent_else_if=false
+indent_var_def_cont=false
+indent_func_call_param=true
+indent_func_def_param=true
+indent_func_proto_param=true
+indent_func_class_param=false
+indent_func_ctor_var_param=false
+indent_template_param=false
+indent_func_param_double=false
+indent_member_single=false
+indent_relative_single_line_comments=false
+indent_switch_case=4
+indent_case_shift=0
+indent_case_brace=0
+indent_col1_comment=false
+indent_label=-4
+indent_access_spec=-4
+indent_paren_nl=false
+indent_comma_paren=0
+indent_bool_paren=0
+indent_first_bool_expr=false
+indent_square_nl=false
+indent_preserve_sql=false
+indent_align_paren=false
+indent_oc_block_msg_xcode_style=true
+indent_off_after_return_new=true
+indent_single_after_return=true
+sp_arith=add
+sp_assign=add
+sp_assign_default=add
+sp_enum_assign=add
+sp_pp_concat=remove
+sp_pp_stringify=remove
+sp_bool=add
+sp_compare=add
+sp_inside_paren=remove
+sp_paren_paren=remove
+sp_balance_nested_parens=false
+sp_paren_brace=force
+sp_after_type=ignore
+sp_template_angle=remove
+sp_before_angle=remove
+sp_inside_angle=remove
+sp_angle_paren=remove
+sp_angle_paren_empty=remove
+sp_angle_word=add
+sp_angle_shift=remove
+sp_before_sparen=force
+sp_inside_sparen=remove
+sp_after_sparen=add
+sp_sparen_brace=force
+sp_special_semi=force
+sp_before_semi=remove
+sp_before_semi_for=remove
+sp_before_semi_for_empty=remove
+sp_between_semi_for_empty=remove
+sp_after_semi=add
+sp_after_semi_for=force
+sp_after_semi_for_empty=remove
+sp_before_square=remove
+sp_before_squares=remove
+sp_inside_square=remove
+sp_after_comma=add
+sp_before_comma=ignore
+sp_after_mdatype_commas=remove
+sp_before_mdatype_commas=remove
+sp_between_mdatype_commas=remove
+sp_paren_comma=remove
+sp_after_class_colon=force
+sp_before_class_colon=force
+sp_before_case_colon=remove
+sp_after_operator=remove
+sp_after_operator_sym=remove
+sp_after_operator_sym_empty=remove
+sp_after_cast=remove
+sp_inside_paren_cast=remove
+sp_cpp_cast_paren=remove
+sp_sizeof_paren=remove
+sp_inside_braces_enum=add
+sp_inside_braces_empty=remove
+sp_type_func=ignore
+sp_func_proto_paren=remove
+sp_func_def_paren=remove
+sp_inside_fparens=remove
+sp_inside_fparen=remove
+sp_fparen_brace=add
+sp_func_call_paren=remove
+sp_func_call_paren_empty=remove
+sp_func_call_user_paren=remove
+sp_func_class_paren=remove
+sp_return_paren=add
+sp_defined_paren=remove
+sp_throw_paren=add
+sp_catch_paren=add
+sp_brace_typedef=add
+sp_getset_brace=add
+sp_after_dc=remove
+sp_not=remove
+sp_inv=remove
+sp_addr=remove
+sp_member=remove
+sp_deref=remove
+sp_sign=remove
+sp_incdec=remove
+sp_before_nl_cont=add
+sp_after_oc_scope=force
+sp_after_oc_colon=remove
+sp_before_oc_colon=remove
+sp_after_oc_dict_colon=force
+sp_before_oc_dict_colon=remove
+sp_after_send_oc_colon=force
+sp_before_send_oc_colon=remove
+sp_after_oc_type=remove
+sp_after_oc_return_type=remove
+sp_after_oc_at_sel=remove
+sp_inside_oc_at_sel_parens=remove
+sp_cond_colon=add
+sp_cond_question=add
+sp_case_label=ignore
+sp_after_new=force
+sp_between_new_paren=remove
+sp_skip_vbrace_tokens=true
+align_keep_tabs=false
+align_with_tabs=false
+align_on_tabstop=false
+align_number_right=false
+align_func_params=false
+align_same_func_call_params=false
+align_var_def_colon=false
+align_var_def_attribute=false
+align_var_def_inline=false
+align_right_cmt_mix=false
+align_on_operator=false
+align_mix_var_proto=false
+align_single_line_func=false
+align_single_line_brace=false
+align_nl_cont=false
+align_left_shift=false
+nl_collapse_empty_body=false
+nl_assign_leave_one_liners=true
+nl_class_leave_one_liners=true
+nl_enum_leave_one_liners=true
+nl_getset_leave_one_liners=true
+nl_func_leave_one_liners=true
+nl_cpp_lambda_leave_one_liners=true
+nl_if_leave_one_liners=false
+nl_oc_msg_leave_one_liner=true
+nl_start_of_file=remove
+nl_end_of_file=force
+nl_end_of_file_min=1
+nl_assign_brace=force
+nl_enum_brace=force
+nl_struct_brace=force
+nl_union_brace=force
+nl_if_brace=force
+nl_brace_else=force
+nl_else_brace=force
+nl_else_if=remove
+nl_brace_finally=force
+nl_finally_brace=force
+nl_try_brace=force
+nl_getset_brace=force
+nl_for_brace=force
+nl_catch_brace=force
+nl_brace_catch=force
+nl_while_brace=force
+nl_using_brace=force
+nl_brace_brace=ignore
+nl_do_brace=force
+nl_brace_while=force
+nl_switch_brace=force
+nl_multi_line_cond=false
+nl_before_case=false
+nl_after_case=false
+nl_case_colon_brace=force
+nl_namespace_brace=force
+nl_template_class=ignore
+nl_class_brace=force
+nl_fdef_brace=force
+nl_after_semicolon=false
+nl_after_brace_open=false
+nl_after_brace_open_cmt=false
+nl_after_vbrace_open=false
+nl_after_vbrace_open_empty=false
+nl_after_brace_close=false
+nl_after_vbrace_close=false
+nl_squeeze_ifdef=false
+nl_ds_struct_enum_cmt=false
+nl_ds_struct_enum_close_brace=false
+nl_namespace_two_to_one_liner=false
+nl_create_if_one_liner=false
+nl_create_for_one_liner=false
+nl_create_while_one_liner=false
+nl_create_func_def_one_liner=false
+ls_for_split_full=false
+ls_func_split_full=false
+nl_max=3
+nl_after_func_body=2
+nl_after_multiline_comment=false
+nl_property_brace=force
+eat_blanks_after_open_brace=true
+eat_blanks_before_close_brace=true
+nl_after_return=false
+mod_full_brace_if_chain=0
+mod_pawn_semicolon=false
+mod_full_paren_if_bool=false
+mod_remove_extra_semicolon=true
+mod_move_case_break=false
+mod_remove_empty_return=true
+cmt_convert_tab_to_spaces=True
+cmt_indent_multi=false
+cmt_c_group=false
+cmt_c_nl_start=false
+cmt_c_nl_end=false
+cmt_cpp_group=false
+cmt_cpp_nl_start=false
+cmt_cpp_nl_end=false
+cmt_cpp_to_c=false
+cmt_star_cont=false
+cmt_multi_check_last=false
+cmt_insert_before_preproc=false
+pp_space=ignore
+use_options_overriding_for_qt_macros=false
+warn_level_tabs_found_in_verbatim_string_literals=1
+mod_add_long_ifdef_else_comment=0
+mod_add_long_ifdef_endif_comment=0
+
+
+
+# Setting this 'false' will cause an extra tab to be added to function call args from an assignment:
+#
+# x = o.Func2(a, b,
+# y);
+# o.Func2(a, b,
+# y);
+#
+# ...but setting it 'true' is often worse:
+#
+# ExtraReallyLongType reallyLongVariableName = someTest
+# ? someTrueExpr
+# : someFalseExpr
+#
+# ...except sometimes we really do want that. What we need is an indent_align_assign_threshold, or,
+# better but maybe more complicated, indent_align_assign=ignore to leave alone what the engineer did.
+# (currently unreported)
+indent_align_assign=false
+
+# this is causing a few problems, but usually with block comments and autodoc markup. perhaps only add a space
+# if first letter is not a symbol and this is a standalone comment: not preceded or followed by another c++
+# comment line at the same level of indentation.
+# REVISIT: work was done to have it eliminate space for doxygen markup in c6aca7b, maybe can improve on it for us
+# (test using Runtime/Allocator/BucketAllocator.h)
+# IMPORTANT: see task at https://trello.com/c/wUgiuvbX before going further
+#sp_cmt_cpp_start=add
+sp_cmt_cpp_start=ignore
+
+# https://sourceforge.net/p/uncrustify/bugs/619/
+#sp_endif_cmt=force
+sp_endif_cmt=ignore
+
+# want to turn this on, but can't do it without also getting alignment right. try running it on this file as an example:
+# Tools\BugReporterV2\qt_face\lib\src\MainWindow.cpp
+#nl_cpp_ldef_brace=force
+
+mod_paren_on_return=remove
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/bug_1650.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/bug_1650.cfg
new file mode 100644
index 00000000..a3321b6b
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/bug_1650.cfg
@@ -0,0 +1,288 @@
+input_tab_size=4
+string_replace_tab_chars=true
+tok_split_gte=false
+disable_processing_cmt=*begin-nonstandard-formatting*
+enable_processing_cmt=*end-nonstandard-formatting*
+utf8_bom=remove
+utf8_byte=false
+utf8_force=false
+indent_columns=4
+indent_with_tabs=0
+indent_cmt_with_tabs=false
+indent_align_string=false
+indent_braces=false
+indent_braces_no_func=false
+indent_braces_no_class=false
+indent_braces_no_struct=false
+indent_brace_parent=false
+indent_cs_delegate_brace=true
+indent_namespace=true
+indent_extern=false
+indent_class=true
+indent_class_colon=false
+indent_else_if=false
+indent_var_def_cont=false
+indent_func_call_param=true
+indent_func_def_param=true
+indent_func_proto_param=true
+indent_func_class_param=false
+indent_func_ctor_var_param=false
+indent_template_param=false
+indent_func_param_double=false
+indent_relative_single_line_comments=false
+indent_switch_case=4
+indent_case_shift=0
+indent_case_brace=0
+indent_col1_comment=false
+indent_label=-4
+indent_access_spec=-4
+indent_paren_nl=false
+indent_comma_paren=0
+indent_bool_paren=0
+indent_first_bool_expr=false
+indent_square_nl=false
+indent_preserve_sql=false
+indent_align_paren=false
+indent_oc_block_msg_xcode_style=true
+indent_off_after_return_new=true
+indent_single_after_return=true
+sp_arith=add
+sp_assign=add
+sp_assign_default=add
+sp_enum_assign=add
+sp_pp_concat=remove
+sp_pp_stringify=remove
+sp_bool=add
+sp_compare=add
+sp_inside_paren=remove
+sp_paren_paren=remove
+sp_balance_nested_parens=false
+sp_paren_brace=force
+sp_after_type=ignore
+sp_template_angle=remove
+sp_before_angle=remove
+sp_inside_angle=remove
+sp_angle_paren=remove
+sp_angle_paren_empty=remove
+sp_angle_word=add
+sp_angle_shift=remove
+sp_before_sparen=force
+sp_inside_sparen=remove
+sp_after_sparen=add
+sp_sparen_brace=force
+sp_special_semi=force
+sp_before_semi=remove
+sp_before_semi_for=remove
+sp_before_semi_for_empty=remove
+sp_between_semi_for_empty=remove
+sp_after_semi=add
+sp_after_semi_for=force
+sp_after_semi_for_empty=remove
+sp_before_square=remove
+sp_before_squares=remove
+sp_inside_square=remove
+sp_after_comma=add
+sp_before_comma=ignore
+sp_after_mdatype_commas=remove
+sp_before_mdatype_commas=remove
+sp_between_mdatype_commas=remove
+sp_paren_comma=remove
+sp_after_class_colon=force
+sp_before_class_colon=force
+sp_before_case_colon=remove
+sp_after_operator=remove
+sp_after_operator_sym=remove
+sp_after_operator_sym_empty=remove
+sp_after_cast=remove
+sp_inside_paren_cast=remove
+sp_cpp_cast_paren=remove
+sp_sizeof_paren=remove
+sp_inside_braces_enum=add
+sp_inside_braces_empty=remove
+sp_type_func=ignore
+sp_func_proto_paren=remove
+sp_func_def_paren=remove
+sp_inside_fparens=remove
+sp_inside_fparen=remove
+sp_fparen_brace=add
+sp_func_call_paren=remove
+sp_func_call_paren_empty=remove
+sp_func_call_user_paren=remove
+sp_func_class_paren=remove
+sp_return_paren=add
+sp_defined_paren=remove
+sp_throw_paren=add
+sp_catch_paren=add
+sp_getset_brace=add
+sp_after_dc=remove
+sp_not=remove
+sp_inv=remove
+sp_addr=remove
+sp_member=remove
+sp_deref=remove
+sp_sign=remove
+sp_incdec=remove
+sp_before_nl_cont=add
+sp_after_oc_scope=force
+sp_after_oc_colon=remove
+sp_before_oc_colon=remove
+sp_after_oc_dict_colon=force
+sp_before_oc_dict_colon=remove
+sp_after_send_oc_colon=force
+sp_before_send_oc_colon=remove
+sp_after_oc_type=remove
+sp_after_oc_return_type=remove
+sp_after_oc_at_sel=remove
+sp_inside_oc_at_sel_parens=remove
+sp_cond_colon=add
+sp_cond_question=add
+sp_case_label=ignore
+sp_after_new=force
+sp_between_new_paren=remove
+sp_skip_vbrace_tokens=true
+align_keep_tabs=false
+align_with_tabs=false
+align_on_tabstop=false
+align_number_right=false
+align_func_params=false
+align_same_func_call_params=false
+align_var_def_colon=false
+align_var_def_attribute=false
+align_var_def_inline=false
+align_right_cmt_mix=false
+align_on_operator=false
+align_mix_var_proto=false
+align_single_line_func=false
+align_single_line_brace=false
+align_nl_cont=false
+align_left_shift=false
+nl_collapse_empty_body=false
+nl_assign_leave_one_liners=true
+nl_class_leave_one_liners=true
+nl_enum_leave_one_liners=true
+nl_getset_leave_one_liners=true
+nl_func_leave_one_liners=true
+nl_cpp_lambda_leave_one_liners=true
+nl_if_leave_one_liners=false
+nl_oc_msg_leave_one_liner=true
+nl_start_of_file=remove
+nl_end_of_file=force
+nl_end_of_file_min=1
+nl_assign_brace=force
+nl_enum_brace=force
+nl_struct_brace=force
+nl_union_brace=force
+nl_if_brace=force
+nl_brace_else=force
+nl_else_brace=force
+nl_else_if=remove
+nl_brace_finally=force
+nl_finally_brace=force
+nl_try_brace=force
+nl_getset_brace=force
+nl_for_brace=force
+nl_catch_brace=force
+nl_brace_catch=force
+nl_while_brace=force
+nl_using_brace=force
+nl_brace_brace=ignore
+nl_do_brace=force
+nl_brace_while=force
+nl_switch_brace=force
+nl_multi_line_cond=false
+nl_before_case=false
+nl_after_case=false
+nl_case_colon_brace=force
+nl_namespace_brace=force
+nl_template_class=ignore
+nl_class_brace=force
+nl_fdef_brace=force
+nl_after_semicolon=false
+nl_after_brace_open=false
+nl_after_brace_open_cmt=false
+nl_after_vbrace_open=false
+nl_after_vbrace_open_empty=false
+nl_after_brace_close=false
+nl_after_vbrace_close=false
+nl_squeeze_ifdef=false
+nl_ds_struct_enum_cmt=false
+nl_ds_struct_enum_close_brace=false
+nl_namespace_two_to_one_liner=false
+nl_create_if_one_liner=false
+nl_create_for_one_liner=false
+nl_create_while_one_liner=false
+nl_create_func_def_one_liner=false
+ls_for_split_full=false
+ls_func_split_full=false
+nl_max=3
+nl_after_func_body=2
+nl_after_multiline_comment=false
+nl_property_brace=force
+eat_blanks_after_open_brace=true
+eat_blanks_before_close_brace=true
+nl_after_return=false
+mod_full_brace_if_chain=0
+mod_paren_on_return=ignore
+mod_pawn_semicolon=false
+mod_full_paren_if_bool=false
+mod_remove_extra_semicolon=true
+mod_move_case_break=false
+mod_remove_empty_return=true
+cmt_convert_tab_to_spaces=True
+cmt_indent_multi=false
+cmt_c_group=false
+cmt_c_nl_start=false
+cmt_c_nl_end=false
+cmt_cpp_group=false
+cmt_cpp_nl_start=false
+cmt_cpp_nl_end=false
+cmt_cpp_to_c=false
+cmt_star_cont=false
+cmt_multi_check_last=false
+cmt_insert_before_preproc=false
+pp_space=ignore
+use_options_overriding_for_qt_macros=false
+warn_level_tabs_found_in_verbatim_string_literals=1
+mod_add_long_ifdef_else_comment=0
+mod_add_long_ifdef_endif_comment=0
+
+
+
+# Setting this 'false' will cause an extra tab to be added to function call args from an assignment:
+#
+# x = o.Func2(a, b,
+# y);
+# o.Func2(a, b,
+# y);
+#
+# ...but setting it 'true' is often worse:
+#
+# ExtraReallyLongType reallyLongVariableName = someTest
+# ? someTrueExpr
+# : someFalseExpr
+#
+# ...except sometimes we really do want that. What we need is an indent_align_assign_threshold, or,
+# better but maybe more complicated, indent_align_assign=ignore to leave alone what the engineer did.
+# (currently unreported)
+indent_align_assign=false
+
+# this is causing a few problems, but usually with block comments and autodoc markup. perhaps only add a space
+# if first letter is not a symbol and this is a standalone comment: not preceded or followed by another c++
+# comment line at the same level of indentation.
+# REVISIT: work was done to have it eliminate space for doxygen markup in c6aca7b, maybe can improve on it for us
+# (test using Runtime/Allocator/BucketAllocator.h)
+# IMPORTANT: see task at https://trello.com/c/wUgiuvbX before going further
+#sp_cmt_cpp_start=add
+sp_cmt_cpp_start=ignore
+
+# https://sourceforge.net/p/uncrustify/bugs/619/
+#sp_endif_cmt=force
+sp_endif_cmt=ignore
+
+# want to turn this on, but can't do it without also getting alignment right. try running it on this file as an example:
+# Tools\BugReporterV2\qt_face\lib\src\MainWindow.cpp
+#nl_cpp_ldef_brace=force
+indent_cs_delegate_body=true
+indent_paren_open_brace=true
+indent_member_single=true
+indent_paren_close=2
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/bug_600.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/bug_600.cfg
new file mode 100644
index 00000000..5c47913d
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/bug_600.cfg
@@ -0,0 +1 @@
+sp_before_ptr_star = remove
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/bug_620.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/bug_620.cfg
index 4486cd45..4486cd45 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/bug_620.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/bug_620.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/comma-cs-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/comma-cs-f.cfg
index 6ea5a2af..6ea5a2af 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/comma-cs-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/comma-cs-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/comma-cs-i.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/comma-cs-i.cfg
index f78c61b3..f78c61b3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/comma-cs-i.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/comma-cs-i.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/comma-cs-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/comma-cs-r.cfg
index 626b6ff1..626b6ff1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/comma-cs-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/comma-cs-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/cs_generics.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/cs_generics.cfg
index e4320a80..e4320a80 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/cs_generics.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/cs_generics.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/getset.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/getset.cfg
index 1e1ab8e9..1e1ab8e9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/getset.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/getset.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/indent-multistring-coulmn1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/indent-multistring-coulmn1.cfg
index 8ce9a4ff..8ce9a4ff 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/indent-multistring-coulmn1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/indent-multistring-coulmn1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/indent_cs_delegate_brace-t.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/indent_cs_delegate_brace-t.cfg
index 9a4e6382..9a4e6382 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/indent_cs_delegate_brace-t.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/indent_cs_delegate_brace-t.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/indent_using_block-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/indent_using_block-f.cfg
index 2bfca802..2bfca802 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/indent_using_block-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/indent_using_block-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/mda_space_a.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/mda_space_a.cfg
index b05558b7..b05558b7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/mda_space_a.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/mda_space_a.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/mda_space_c.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/mda_space_c.cfg
index 9bfcef37..9bfcef37 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/mda_space_c.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/mda_space_c.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/misc-failures.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/misc-failures.cfg
index 36b9e694..36b9e694 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/misc-failures.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/misc-failures.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/mod_full_brace_nl_block_rem_mlcond-0.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/mod_full_brace_nl_block_rem_mlcond-0.cfg
index c187d46a..c187d46a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/mod_full_brace_nl_block_rem_mlcond-0.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/mod_full_brace_nl_block_rem_mlcond-0.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/mod_full_brace_nl_block_rem_mlcond-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/mod_full_brace_nl_block_rem_mlcond-1.cfg
new file mode 100644
index 00000000..13ebbd4a
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/mod_full_brace_nl_block_rem_mlcond-1.cfg
@@ -0,0 +1,2 @@
+mod_full_brace_if_chain = 1
+mod_full_brace_nl_block_rem_mlcond = true
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/mod_full_paren_if_bool.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/mod_full_paren_if_bool.cfg
index f75f8801..f75f8801 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/mod_full_paren_if_bool.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/mod_full_paren_if_bool.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/mod_sort_using-t.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/mod_sort_using-t.cfg
index 805fc734..805fc734 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/mod_sort_using-t.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/mod_sort_using-t.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/mono.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/mono.cfg
index 726b1eda..726b1eda 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/mono.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/mono.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/new-constraint-paren-space.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/new-constraint-paren-space.cfg
index f96e03b6..f96e03b6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/new-constraint-paren-space.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/new-constraint-paren-space.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/sf607.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/sf607.cfg
index ac5c0069..ac5c0069 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/sf607.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/sf607.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/sort_using_categ.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/sort_using_categ.cfg
index bf7f26e6..bf7f26e6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/sort_using_categ.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/sort_using_categ.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/sp_after_comma-a.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/sp_after_comma-a.cfg
index 3f67ae0e..3f67ae0e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/sp_after_comma-a.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/sp_after_comma-a.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/sp_assign-a.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/sp_assign-a.cfg
index 78ee09f5..78ee09f5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/sp_assign-a.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/sp_assign-a.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/sp_between_new_paren.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/sp_between_new_paren.cfg
index 0a338bd2..0a338bd2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/sp_between_new_paren.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/sp_between_new_paren.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/squeeze-paren-close-Option.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/squeeze-paren-close-Option.cfg
index 9d4a4f70..9d4a4f70 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/squeeze-paren-close-Option.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/squeeze-paren-close-Option.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/tcf.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/tcf.cfg
index dd7fa193..dd7fa193 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/tcf.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/tcf.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/verbatim_strings.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/verbatim_strings.cfg
index 65e1756d..65e1756d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/verbatim_strings.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/cs/verbatim_strings.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/d/1438.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/d/1438.cfg
index 6973c22f..6973c22f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/d/1438.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/d/1438.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/d/d-tst2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/d/d-tst2.cfg
index db15aa59..db15aa59 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/d/d-tst2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/d/d-tst2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/d/d2-i.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/d/d2-i.cfg
index b2f0f87a..b2f0f87a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/d/d2-i.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/d/d2-i.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/d/d2-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/d/d2-r.cfg
index 888247f8..888247f8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/d/d2-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/d/d2-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/d/d2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/d/d2.cfg
index e7a7bca1..e7a7bca1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/d/d2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/d/d2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/d/d3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/d/d3.cfg
index 53a311b0..53a311b0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/d/d3.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/d/d3.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/d/d3a.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/d/d3a.cfg
index f3cf7bb8..f3cf7bb8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/d/d3a.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/d/d3a.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/d/d_sp_paren.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/d/d_sp_paren.cfg
index 5b3443e6..5b3443e6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/d/d_sp_paren.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/d/d_sp_paren.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/d/invariant.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/d/invariant.cfg
index a462b4d0..a462b4d0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/d/invariant.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/d/invariant.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/d/libd.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/d/libd.cfg
index a29c77a4..a29c77a4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/d/libd.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/d/libd.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/d/sp_after_type-a.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/d/sp_after_type-a.cfg
index da7a3edb..da7a3edb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/d/sp_after_type-a.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/d/sp_after_type-a.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/ecma/ben_098.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/ecma/ben_098.cfg
index 9dddd073..9dddd073 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/ecma/ben_098.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/ecma/ben_098.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/Issue_1122.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/java/Issue_1122.cfg
index 8a152eda..8a152eda 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/Issue_1122.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/java/Issue_1122.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/Issue_1124-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/java/Issue_1124-f.cfg
index bec692b6..bec692b6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/Issue_1124-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/java/Issue_1124-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/Issue_1124-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/java/Issue_1124-r.cfg
index 1c610373..1c610373 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/Issue_1124-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/java/Issue_1124-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/Issue_1845.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/java/Issue_1845.cfg
index 5d339f68..5d339f68 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/Issue_1845.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/java/Issue_1845.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/Issue_670.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/java/Issue_670.cfg
index 504b1d7d..504b1d7d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/Issue_670.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/java/Issue_670.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/annotation.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/java/annotation.cfg
index 0d800a82..0d800a82 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/annotation.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/java/annotation.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/ben_099.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/java/ben_099.cfg
index 6cd10860..6cd10860 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/ben_099.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/java/ben_099.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/doxy-javadoc-alignment.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/java/doxy-javadoc-alignment.cfg
index 786a9ac7..786a9ac7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/doxy-javadoc-alignment.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/java/doxy-javadoc-alignment.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/java_foreach.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/java/java_foreach.cfg
index 56ec94cd..56ec94cd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/java_foreach.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/java/java_foreach.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/java_synchronized_1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/java/java_synchronized_1.cfg
index e57bba91..e57bba91 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/java_synchronized_1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/java/java_synchronized_1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/java_synchronized_2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/java/java_synchronized_2.cfg
index 3512cdc8..3512cdc8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/java_synchronized_2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/java/java_synchronized_2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/jdbi-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/java/jdbi-f.cfg
index fde00f38..fde00f38 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/jdbi-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/java/jdbi-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/jdbi-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/java/jdbi-r.cfg
index ed2a6942..ed2a6942 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/jdbi-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/java/jdbi-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/leading-tabs-for-java-lambda.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/java/leading-tabs-for-java-lambda.cfg
index ba1f063e..ba1f063e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/leading-tabs-for-java-lambda.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/java/leading-tabs-for-java-lambda.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/mod_add_long_class_closebrace_comment-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/java/mod_add_long_class_closebrace_comment-1.cfg
index c1e8e0ac..c1e8e0ac 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/mod_add_long_class_closebrace_comment-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/java/mod_add_long_class_closebrace_comment-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/nl_after_annotation-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/java/nl_after_annotation-f.cfg
index 405f8ef4..405f8ef4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/nl_after_annotation-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/java/nl_after_annotation-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/nl_between_annotation-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/java/nl_between_annotation-f.cfg
index 6a67c354..6a67c354 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/nl_between_annotation-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/java/nl_between_annotation-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/reflow_fold_regex.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/java/reflow_fold_regex.txt
index 9a24626f..9a24626f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/reflow_fold_regex.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/java/reflow_fold_regex.txt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/sp_after_for_colon.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/java/sp_after_for_colon.cfg
index 70b19e50..70b19e50 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/sp_after_for_colon.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/java/sp_after_for_colon.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/sp_this_paren.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/java/sp_this_paren.cfg
index fc80bb28..fc80bb28 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/sp_this_paren.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/java/sp_this_paren.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/template_angles.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/java/template_angles.cfg
index 14680e53..14680e53 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/template_angles.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/java/template_angles.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/1927.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/1927.cfg
index 3734f63d..3734f63d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/1927.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/1927.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/Issue_2172.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/Issue_2172.cfg
index a4da88d2..a4da88d2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/Issue_2172.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/Issue_2172.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/Issue_681.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/Issue_681.cfg
index 901b0c8e..901b0c8e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/Issue_681.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/Issue_681.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U08-Cpp.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/U08-Cpp.cfg
index 1a8d9ead..1a8d9ead 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U08-Cpp.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/U08-Cpp.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U09-Cpp.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/U09-Cpp.cfg
index e8b4846a..e8b4846a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U09-Cpp.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/U09-Cpp.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U10-Cpp.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/U10-Cpp.cfg
index 76c1c8c3..76c1c8c3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U10-Cpp.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/U10-Cpp.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U11-Cpp.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/U11-Cpp.cfg
index 07ba9e26..07ba9e26 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U11-Cpp.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/U11-Cpp.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U12-Cpp.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/U12-Cpp.cfg
index 581594ac..581594ac 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U12-Cpp.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/U12-Cpp.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U13-Cpp.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/U13-Cpp.cfg
index 162b13d4..162b13d4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U13-Cpp.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/U13-Cpp.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U14-Cpp.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/U14-Cpp.cfg
index 967ea74d..967ea74d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U14-Cpp.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/U14-Cpp.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U15-Cpp.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/U15-Cpp.cfg
index 0d78de45..0d78de45 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U15-Cpp.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/U15-Cpp.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U24-Cpp.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/U24-Cpp.cfg
index bc46ae54..bc46ae54 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U24-Cpp.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/U24-Cpp.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/UNI-11095.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/UNI-11095.cfg
new file mode 100644
index 00000000..805f779e
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/UNI-11095.cfg
@@ -0,0 +1,319 @@
+input_tab_size=4
+string_replace_tab_chars=true
+tok_split_gte=false
+disable_processing_cmt=*begin-nonstandard-formatting*
+enable_processing_cmt=*end-nonstandard-formatting*
+utf8_bom=remove
+utf8_byte=false
+utf8_force=false
+indent_columns=4
+indent_with_tabs=0
+indent_cmt_with_tabs=false
+indent_align_string=false
+indent_braces=false
+indent_braces_no_func=false
+indent_braces_no_class=false
+indent_braces_no_struct=false
+indent_brace_parent=false
+indent_cs_delegate_brace=true
+indent_namespace=true
+indent_extern=false
+indent_class=true
+indent_class_colon=false
+indent_else_if=false
+indent_var_def_cont=false
+indent_func_call_param=true
+indent_func_def_param=true
+indent_func_proto_param=true
+indent_func_class_param=false
+indent_func_ctor_var_param=false
+indent_template_param=false
+indent_func_param_double=false
+indent_relative_single_line_comments=false
+indent_switch_case=4
+indent_case_shift=0
+indent_case_brace=0
+indent_col1_comment=false
+indent_label=-4
+indent_access_spec=-4
+indent_paren_nl=false
+indent_comma_paren=0
+indent_bool_paren=0
+indent_first_bool_expr=false
+indent_square_nl=false
+indent_preserve_sql=false
+indent_align_paren=false
+indent_oc_block_msg_xcode_style=true
+indent_off_after_return_new=true
+indent_single_after_return=true
+sp_arith=add
+sp_assign=add
+sp_assign_default=add
+sp_enum_assign=add
+sp_pp_concat=remove
+sp_pp_stringify=remove
+sp_bool=add
+sp_compare=add
+sp_inside_paren=remove
+sp_paren_paren=remove
+sp_balance_nested_parens=false
+sp_paren_brace=force
+sp_after_type=ignore
+sp_template_angle=remove
+sp_before_angle=remove
+sp_inside_angle=remove
+sp_angle_paren=remove
+sp_angle_paren_empty=remove
+sp_angle_word=add
+sp_angle_shift=remove
+sp_before_sparen=force
+sp_inside_sparen=remove
+sp_after_sparen=add
+sp_sparen_brace=force
+sp_special_semi=force
+sp_before_semi=remove
+sp_before_semi_for=remove
+sp_before_semi_for_empty=remove
+sp_between_semi_for_empty=remove
+sp_after_semi=add
+sp_after_semi_for=force
+sp_after_semi_for_empty=remove
+sp_before_square=remove
+sp_before_squares=remove
+sp_inside_square=remove
+sp_after_comma=add
+sp_before_comma=ignore
+sp_after_mdatype_commas=remove
+sp_before_mdatype_commas=remove
+sp_between_mdatype_commas=remove
+sp_paren_comma=remove
+sp_after_class_colon=force
+sp_before_class_colon=force
+sp_before_case_colon=remove
+sp_after_operator=remove
+sp_after_operator_sym=remove
+sp_after_operator_sym_empty=remove
+sp_after_cast=remove
+sp_inside_paren_cast=remove
+sp_cpp_cast_paren=remove
+sp_sizeof_paren=remove
+sp_inside_braces_enum=add
+sp_inside_braces_empty=remove
+sp_type_func=ignore
+sp_func_proto_paren=remove
+sp_func_def_paren=remove
+sp_inside_fparens=remove
+sp_inside_fparen=remove
+sp_fparen_brace=add
+sp_func_call_paren=remove
+sp_func_call_paren_empty=remove
+sp_func_call_user_paren=remove
+sp_func_class_paren=remove
+sp_return_paren=add
+sp_defined_paren=remove
+sp_throw_paren=add
+sp_catch_paren=add
+sp_brace_typedef=add
+sp_getset_brace=add
+sp_after_dc=remove
+sp_not=remove
+sp_inv=remove
+sp_addr=remove
+sp_member=remove
+sp_deref=remove
+sp_sign=remove
+sp_incdec=remove
+sp_before_nl_cont=add
+sp_after_oc_scope=force
+sp_after_oc_colon=remove
+sp_before_oc_colon=remove
+sp_after_oc_dict_colon=force
+sp_before_oc_dict_colon=remove
+sp_after_send_oc_colon=force
+sp_before_send_oc_colon=remove
+sp_after_oc_type=remove
+sp_after_oc_return_type=remove
+sp_after_oc_at_sel=remove
+sp_inside_oc_at_sel_parens=remove
+sp_cond_colon=add
+sp_cond_question=add
+sp_case_label=ignore
+sp_after_new=force
+sp_between_new_paren=remove
+sp_skip_vbrace_tokens=true
+align_keep_tabs=false
+align_with_tabs=false
+align_on_tabstop=false
+align_number_right=false
+align_func_params=false
+align_same_func_call_params=false
+align_var_def_colon=false
+align_var_def_attribute=false
+align_var_def_inline=false
+align_right_cmt_mix=false
+align_on_operator=false
+align_mix_var_proto=false
+align_single_line_func=false
+align_single_line_brace=false
+align_nl_cont=false
+align_left_shift=false
+nl_collapse_empty_body=false
+nl_assign_leave_one_liners=true
+nl_class_leave_one_liners=true
+nl_enum_leave_one_liners=true
+nl_getset_leave_one_liners=true
+nl_func_leave_one_liners=true
+nl_cpp_lambda_leave_one_liners=true
+nl_if_leave_one_liners=false
+nl_oc_msg_leave_one_liner=true
+nl_start_of_file=remove
+nl_end_of_file=force
+nl_end_of_file_min=1
+nl_assign_brace=force
+nl_enum_brace=force
+nl_struct_brace=force
+nl_union_brace=force
+nl_if_brace=force
+nl_brace_else=force
+nl_else_brace=force
+nl_else_if=remove
+nl_brace_finally=force
+nl_finally_brace=force
+nl_try_brace=force
+nl_getset_brace=force
+nl_for_brace=force
+nl_catch_brace=force
+nl_brace_catch=force
+nl_while_brace=force
+nl_using_brace=force
+nl_brace_brace=ignore
+nl_do_brace=force
+nl_brace_while=force
+nl_switch_brace=force
+nl_multi_line_cond=false
+nl_before_case=false
+nl_after_case=false
+nl_case_colon_brace=force
+nl_namespace_brace=force
+nl_template_class=ignore
+nl_class_brace=force
+nl_fdef_brace=force
+nl_after_semicolon=false
+nl_after_brace_open=false
+nl_after_brace_open_cmt=false
+nl_after_vbrace_open=false
+nl_after_vbrace_open_empty=false
+nl_after_brace_close=false
+nl_after_vbrace_close=false
+nl_squeeze_ifdef=false
+nl_ds_struct_enum_cmt=false
+nl_ds_struct_enum_close_brace=false
+nl_namespace_two_to_one_liner=false
+nl_create_if_one_liner=false
+nl_create_for_one_liner=false
+nl_create_while_one_liner=false
+nl_create_func_def_one_liner=false
+ls_for_split_full=false
+ls_func_split_full=false
+nl_max=3
+nl_after_func_body=2
+nl_after_multiline_comment=false
+nl_property_brace=force
+eat_blanks_after_open_brace=true
+eat_blanks_before_close_brace=true
+nl_after_return=false
+mod_full_brace_if_chain=0
+mod_paren_on_return=ignore
+mod_pawn_semicolon=false
+mod_full_paren_if_bool=false
+mod_remove_extra_semicolon=true
+mod_move_case_break=false
+mod_remove_empty_return=true
+cmt_convert_tab_to_spaces=True
+cmt_indent_multi=false
+cmt_c_group=false
+cmt_c_nl_start=false
+cmt_c_nl_end=false
+cmt_cpp_group=false
+cmt_cpp_nl_start=false
+cmt_cpp_nl_end=false
+cmt_cpp_to_c=false
+cmt_star_cont=false
+cmt_multi_check_last=false
+cmt_insert_before_preproc=false
+pp_space=ignore
+use_options_overriding_for_qt_macros=false
+warn_level_tabs_found_in_verbatim_string_literals=1
+# blocked by https://sourceforge.net/p/uncrustify/bugs/619/
+# can be turned back on at any time
+mod_add_long_ifdef_else_comment=0
+mod_add_long_ifdef_endif_comment=0
+
+
+
+# Setting this 'false' will cause an extra tab to be added to function call args from an assignment:
+#
+# x = o.Func2(a, b,
+# y);
+# o.Func2(a, b,
+# y);
+#
+# ...but setting it 'true' is often worse:
+#
+# ExtraReallyLongType reallyLongVariableName = someTest
+# ? someTrueExpr
+# : someFalseExpr
+#
+# ...except sometimes we really do want that. What we need is an indent_align_assign_threshold, or,
+# better but maybe more complicated, indent_align_assign=ignore to leave alone what the engineer did.
+# (currently unreported)
+indent_align_assign=false
+
+# this is causing a few problems, but usually with block comments and autodoc markup. perhaps only add a space
+# if first letter is not a symbol and this is a standalone comment: not preceded or followed by another c++
+# comment line at the same level of indentation.
+# REVISIT: work was done to have it eliminate space for doxygen markup in c6aca7b, maybe can improve on it for us
+# (test using Runtime/Allocator/BucketAllocator.h)
+# IMPORTANT: see task at https://trello.com/c/wUgiuvbX before going further
+#sp_cmt_cpp_start=add
+sp_cmt_cpp_start=ignore
+
+# https://sourceforge.net/p/uncrustify/bugs/619/
+#sp_endif_cmt=force
+sp_endif_cmt=ignore
+
+# want to turn this on, but can't do it without also getting alignment right. try running it on this file as an example:
+# Tools\BugReporterV2\qt_face\lib\src\MainWindow.cpp
+#nl_cpp_ldef_brace=force
+
+# workaround for some nasty macroing we're doing
+set COMMENT PLATFORM_EXCEPTION_SAFEGUARD_PROLOG
+
+# without this, uncrustify will parse and process the contents of #defines, which is super unstable. very easy to get into edge cases it does not support,
+# so just have it treat #defines as black boxes. this will keep all of the contents of the #define as unprocessed.
+pp_ignore_define_body=true
+
+# macros in #includes aren't known to Uncrustify, so have to inform it here for macros that will confuse it
+set MACRO_FUNC ATTRIBUTE_ALIGN
+
+# we have some truly insane deep namespace nesting in il2cpp. :/
+indent_namespace_single_indent=true
+
+# needed for fmod apparently (via HEVAGTool.h - the *'s near F_STDCALL will be interpreted as ARITH without this)
+set COMMENT F_STDCALL
+
+# https://github.com/uncrustify/uncrustify/pull/602
+# https://sourceforge.net/p/uncrustify/bugs/633/
+set COMMENT __cdecl
+set COMMENT __clrcall
+set COMMENT __fastcall
+set COMMENT __stdcall
+set COMMENT __thiscall
+set COMMENT __vectorcall
+set COMMENT WINAPI
+
+# We need to make FAKE_FUNCTION a PROTO_WRAP macro function to help properly tokenize it's parameters.
+# Previously parameters with CT_AMP and CT_STAR were tokenized as CT_ARITH. Support for optional parenthesis added in github PR #629.
+set PROTO_WRAP FAKE_FUNCTION
+nl_create_func_def_one_liner=true
+sp_inside_braces=Add
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/align-objc-like-xcode.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/align-objc-like-xcode.cfg
index 3b321b11..3b321b11 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/align-objc-like-xcode.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/align-objc-like-xcode.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/align_oc_msg_colon_span-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/align_oc_msg_colon_span-1.cfg
index 9681d152..9681d152 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/align_oc_msg_colon_span-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/align_oc_msg_colon_span-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/block_pointer.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/block_pointer.cfg
index 70c21bbd..70c21bbd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/block_pointer.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/block_pointer.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/blocks.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/blocks.cfg
index 74ed7e4f..74ed7e4f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/blocks.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/blocks.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/bug_167.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/bug_167.cfg
index 6ed02f2e..6ed02f2e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/bug_167.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/bug_167.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/bug_340.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/bug_340.cfg
index f56e7a43..f56e7a43 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/bug_340.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/bug_340.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/bug_841.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/bug_841.cfg
index 2ab54cc1..2ab54cc1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/bug_841.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/bug_841.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/bug_i_125-412.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/bug_i_125-412.cfg
index 2498ac1b..2498ac1b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/bug_i_125-412.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/bug_i_125-412.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/delete-space-oc.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/delete-space-oc.cfg
index 4d8a15cb..4d8a15cb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/delete-space-oc.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/delete-space-oc.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/double-indent-objc-dict.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/double-indent-objc-dict.cfg
index d4e9a1ae..d4e9a1ae 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/double-indent-objc-dict.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/double-indent-objc-dict.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/double_angle_space_1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/double_angle_space_1.cfg
index 73319da9..73319da9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/double_angle_space_1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/double_angle_space_1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/double_angle_space_2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/double_angle_space_2.cfg
index 8d12b193..8d12b193 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/double_angle_space_2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/double_angle_space_2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/double_angle_space_3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/double_angle_space_3.cfg
index da6a41c2..da6a41c2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/double_angle_space_3.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/double_angle_space_3.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/gh137.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/gh137.cfg
index 83da02ee..83da02ee 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/gh137.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/gh137.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/gh293.a.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/gh293.a.cfg
index e875a54b..e875a54b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/gh293.a.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/gh293.a.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/gh293.b.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/gh293.b.cfg
index 1dc357ae..1dc357ae 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/gh293.b.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/gh293.b.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/indent-objc-block.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/indent-objc-block.cfg
index aee5aace..aee5aace 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/indent-objc-block.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/indent-objc-block.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/indent_boxed.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/indent_boxed.cfg
index e20f0820..e20f0820 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/indent_boxed.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/indent_boxed.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/indent_oc_inside_msg_sel.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/indent_oc_inside_msg_sel.cfg
index b140f071..b140f071 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/indent_oc_inside_msg_sel.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/indent_oc_inside_msg_sel.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/indent_single_newline.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/indent_single_newline.cfg
index 1496b522..1496b522 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/indent_single_newline.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/indent_single_newline.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/issue_2643.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/issue_2643.cfg
index 7f188f21..7f188f21 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/issue_2643.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/issue_2643.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/issue_2656.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/issue_2656.cfg
index 3b020c33..3b020c33 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/issue_2656.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/issue_2656.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/issue_2675.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/issue_2675.cfg
index 0eab0244..0eab0244 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/issue_2675.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/issue_2675.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/issue_3031.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/issue_3031.cfg
index 8234c643..8234c643 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/issue_3031.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/issue_3031.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/mod_sort_incl_import_grouping_enabled.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/mod_sort_incl_import_grouping_enabled.cfg
index d88bf262..d88bf262 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/mod_sort_incl_import_grouping_enabled.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/mod_sort_incl_import_grouping_enabled.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/mod_sort_incl_import_ignore_extension.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/mod_sort_incl_import_ignore_extension.cfg
index d49491cb..d49491cb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/mod_sort_incl_import_ignore_extension.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/mod_sort_incl_import_ignore_extension.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/mod_sort_incl_import_prioritize_angle_over_quotes.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/mod_sort_incl_import_prioritize_angle_over_quotes.cfg
index 475ab734..475ab734 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/mod_sort_incl_import_prioritize_angle_over_quotes.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/mod_sort_incl_import_prioritize_angle_over_quotes.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/mod_sort_incl_import_prioritize_extensionless.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/mod_sort_incl_import_prioritize_extensionless.cfg
index aa9eb1db..aa9eb1db 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/mod_sort_incl_import_prioritize_extensionless.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/mod_sort_incl_import_prioritize_extensionless.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/mod_sort_incl_import_prioritize_filename.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/mod_sort_incl_import_prioritize_filename.cfg
index 2661a68a..2661a68a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/mod_sort_incl_import_prioritize_filename.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/mod_sort_incl_import_prioritize_filename.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/nl_after_func_body-3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/nl_after_func_body-3.cfg
index 65f1fa5a..65f1fa5a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/nl_after_func_body-3.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/nl_after_func_body-3.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/nl_brace_square.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/nl_brace_square.cfg
index e0f11f90..e0f11f90 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/nl_brace_square.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/nl_brace_square.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/nl_func_call_args_multi_line_ignore_closures.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/nl_func_call_args_multi_line_ignore_closures.cfg
index e480140e..e480140e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/nl_func_call_args_multi_line_ignore_closures.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/nl_func_call_args_multi_line_ignore_closures.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/nl_oc_block_brace-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/nl_oc_block_brace-f.cfg
index 824fc747..824fc747 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/nl_oc_block_brace-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/nl_oc_block_brace-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/obj-c-available.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/obj-c-available.cfg
index f77790fc..f77790fc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/obj-c-available.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/obj-c-available.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/obj-c-properties.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/obj-c-properties.cfg
index 98241779..98241779 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/obj-c-properties.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/obj-c-properties.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/objc_bug_497.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/objc_bug_497.cfg
index 0015f97d..0015f97d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/objc_bug_497.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/objc_bug_497.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/objc_complex_method.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/objc_complex_method.cfg
index 3e713117..3e713117 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/objc_complex_method.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/objc_complex_method.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/oc1.cfg
index 659131cf..659131cf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/oc1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc10.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/oc10.cfg
index d50a20d8..d50a20d8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc10.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/oc10.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc11.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/oc11.cfg
index e355d765..e355d765 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc11.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/oc11.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc12.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/oc12.cfg
index 4f069fed..4f069fed 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc12.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/oc12.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc13.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/oc13.cfg
index 925a2739..925a2739 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc13.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/oc13.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc14.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/oc14.cfg
index a44950db..a44950db 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc14.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/oc14.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc16.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/oc16.cfg
index 5eec46e9..5eec46e9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc16.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/oc16.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc17.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/oc17.cfg
index 18b27823..18b27823 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc17.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/oc17.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc18.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/oc18.cfg
index 96003cf5..96003cf5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc18.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/oc18.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc19.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/oc19.cfg
index d68c95f0..d68c95f0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc19.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/oc19.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/oc2.cfg
index 43d02a66..43d02a66 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/oc2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc4.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/oc4.cfg
index f2de050e..f2de050e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc4.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/oc4.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc5.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/oc5.cfg
index 77a7a7af..77a7a7af 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc5.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/oc5.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc6.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/oc6.cfg
index c1bcd8d4..c1bcd8d4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc6.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/oc6.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc7.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/oc7.cfg
index 972ab19a..972ab19a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc7.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/oc7.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc8.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/oc8.cfg
index 3f577ab8..3f577ab8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc8.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/oc8.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc9.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/oc9.cfg
index 92ed39d4..92ed39d4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc9.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/oc9.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc_bug_1674.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/oc_bug_1674.cfg
index 31e4537c..31e4537c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc_bug_1674.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/oc_bug_1674.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc_bug_1683.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/oc_bug_1683.cfg
index b5d4249d..b5d4249d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc_bug_1683.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/oc_bug_1683.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc_cond_colon.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/oc_cond_colon.cfg
index b86516e0..b86516e0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc_cond_colon.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/oc_cond_colon.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_after_oc_at_sel_add.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_after_oc_at_sel_add.cfg
index 817ec7c5..817ec7c5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_after_oc_at_sel_add.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_after_oc_at_sel_add.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_after_oc_at_sel_force.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_after_oc_at_sel_force.cfg
index b2a79b8f..b2a79b8f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_after_oc_at_sel_force.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_after_oc_at_sel_force.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_after_oc_at_sel_remove.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_after_oc_at_sel_remove.cfg
index 98b6de42..98b6de42 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_after_oc_at_sel_remove.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_after_oc_at_sel_remove.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_after_oc_block_caret_add.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_after_oc_block_caret_add.cfg
index 56e22330..56e22330 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_after_oc_block_caret_add.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_after_oc_block_caret_add.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_after_oc_block_caret_force.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_after_oc_block_caret_force.cfg
index 516271f1..516271f1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_after_oc_block_caret_force.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_after_oc_block_caret_force.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_after_oc_return_type_add.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_after_oc_return_type_add.cfg
index b321b9aa..b321b9aa 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_after_oc_return_type_add.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_after_oc_return_type_add.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_after_oc_return_type_force.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_after_oc_return_type_force.cfg
index fb8b9a1b..fb8b9a1b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_after_oc_return_type_force.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_after_oc_return_type_force.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_after_oc_return_type_remove.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_after_oc_return_type_remove.cfg
index 1110a1eb..1110a1eb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_after_oc_return_type_remove.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_after_oc_return_type_remove.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_after_send_oc_colon-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_after_send_oc_colon-f.cfg
index 2a54dd6f..2a54dd6f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_after_send_oc_colon-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_after_send_oc_colon-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_after_throw_remove.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_after_throw_remove.cfg
index 6b6bc0ac..6b6bc0ac 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_after_throw_remove.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_after_throw_remove.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_before_oc_block_caret_force.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_before_oc_block_caret_force.cfg
index 727fcf06..727fcf06 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_before_oc_block_caret_force.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_before_oc_block_caret_force.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_before_oc_block_caret_remove.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_before_oc_block_caret_remove.cfg
index 37c6104a..37c6104a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_before_oc_block_caret_remove.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_before_oc_block_caret_remove.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_before_oc_proto_list_add.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_before_oc_proto_list_add.cfg
index 3374e228..3374e228 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_before_oc_proto_list_add.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_before_oc_proto_list_add.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_before_oc_proto_list_force.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_before_oc_proto_list_force.cfg
index 5be78fac..5be78fac 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_before_oc_proto_list_force.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_before_oc_proto_list_force.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_before_oc_proto_list_remove.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_before_oc_proto_list_remove.cfg
index 9f93f4a5..9f93f4a5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_before_oc_proto_list_remove.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_before_oc_proto_list_remove.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_block_as_argument.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_block_as_argument.cfg
index 60c651fb..60c651fb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_block_as_argument.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_block_as_argument.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_block_as_argument2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_block_as_argument2.cfg
index 8f297d7d..8f297d7d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_block_as_argument2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_block_as_argument2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_block_as_argument3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_block_as_argument3.cfg
index 17059e47..17059e47 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_block_as_argument3.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_block_as_argument3.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_block_as_argument4.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_block_as_argument4.cfg
index 8caf60bc..8caf60bc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_block_as_argument4.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_block_as_argument4.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_block_as_argument5.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_block_as_argument5.cfg
index 42e8c380..42e8c380 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_block_as_argument5.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_block_as_argument5.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_cond_ternary_short.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_cond_ternary_short.cfg
index 564b2dcf..564b2dcf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_cond_ternary_short.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_cond_ternary_short.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_enum_paren-i.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_enum_paren-i.cfg
index 5bb98ec2..5bb98ec2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_enum_paren-i.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_enum_paren-i.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_enum_paren-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_enum_paren-r.cfg
index f155e201..f155e201 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_enum_paren-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_enum_paren-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_oc_boxed.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_oc_boxed.cfg
index 73939de1..73939de1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_oc_boxed.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_oc_boxed.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_oc_catch-i.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_oc_catch-i.cfg
index 98e8f829..98e8f829 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_oc_catch-i.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_oc_catch-i.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_oc_catch-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_oc_catch-r.cfg
index 789e2872..789e2872 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_oc_catch-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_oc_catch-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_oc_catch.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_oc_catch.cfg
index 7367541a..7367541a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_oc_catch.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_oc_catch.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_oc_classname_paren-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_oc_classname_paren-r.cfg
index ba92279e..ba92279e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_oc_classname_paren-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_oc_classname_paren-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_oc_synchronized.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_oc_synchronized.cfg
index 5056f70f..5056f70f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_oc_synchronized.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/sp_oc_synchronized.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/ternary_short.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/ternary_short.cfg
index 55e708cf..55e708cf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/ternary_short.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/oc/ternary_short.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/pawn/Issue_2586.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/pawn/Issue_2586.cfg
index ff46f80d..ff46f80d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/pawn/Issue_2586.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/pawn/Issue_2586.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/pawn/Issue_2665.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/pawn/Issue_2665.cfg
index 763864c0..763864c0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/pawn/Issue_2665.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/pawn/Issue_2665.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/pawn/amxmodx.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/pawn/amxmodx.cfg
index 2c87c362..2c87c362 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/pawn/amxmodx.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/pawn/amxmodx.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/pawn/mod_full_brace_function-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/pawn/mod_full_brace_function-f.cfg
index 8d44cc3b..8d44cc3b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/pawn/mod_full_brace_function-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/pawn/mod_full_brace_function-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/pawn/pawn-escape.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/pawn/pawn-escape.cfg
index 8d10ec23..8d10ec23 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/pawn/pawn-escape.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/pawn/pawn-escape.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/pawn/pawn.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/pawn/pawn.cfg
index 7859328a..7859328a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/pawn/pawn.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/pawn/pawn.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/staging/UNI-58354.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/staging/UNI-58354.cfg
index fb9ca61b..fb9ca61b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/staging/UNI-58354.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/staging/UNI-58354.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/staging/UNI-64325.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/staging/UNI-64325.cfg
index 44ee8b48..44ee8b48 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/staging/UNI-64325.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/staging/UNI-64325.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/vala/Issue_2090.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/vala/Issue_2090.cfg
new file mode 100644
index 00000000..154cff70
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/vala/Issue_2090.cfg
@@ -0,0 +1,2 @@
+sp_before_ptr_star = force
+sp_cond_question = add
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/vala/Issue_2270.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/vala/Issue_2270.cfg
index 43cc3757..43cc3757 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/vala/Issue_2270.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/vala/Issue_2270.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/vala/ben_100.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/vala/ben_100.cfg
index 81cd4430..81cd4430 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/vala/ben_100.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/vala/ben_100.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/vala/ben_101.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/vala/ben_101.cfg
index 50078f96..50078f96 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/vala/ben_101.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/vala/ben_101.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/vala/ben_102.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/vala/ben_102.cfg
index 82fa033c..82fa033c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/vala/ben_102.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/vala/ben_102.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/vala/ben_103.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/vala/ben_103.cfg
index 3d212ad4..3d212ad4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/vala/ben_103.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/vala/ben_103.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/vala/ben_104.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/vala/ben_104.cfg
index 80870cfe..80870cfe 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/vala/ben_104.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/vala/ben_104.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/vala/ben_105.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/vala/ben_105.cfg
index 23452bfd..23452bfd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/vala/ben_105.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/vala/ben_105.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/vala/nullable.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/vala/nullable.cfg
new file mode 100644
index 00000000..5c47913d
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/config/vala/nullable.cfg
@@ -0,0 +1 @@
+sp_before_ptr_star = remove
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cpp.test b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cpp.test
new file mode 100644
index 00000000..e096efed
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/cpp.test
@@ -0,0 +1,1102 @@
+#
+# Test cases specifically for the C++ language.
+#
+# Range: 30000 - 39999
+# test.name config.file input.file
+
+# there are additional tests inside imported.test.
+
+02102 common/clark.cfg cpp/indent-c.cpp
+02103 common/clark.cfg cpp/output.cpp
+
+30000 cpp/ben_001.cfg cpp/cout.cpp
+30001 cpp/sp_angle_colon.cfg cpp/alt_tokens.cpp
+30002 cpp/ben_003.cfg cpp/constructor.cpp
+30003 cpp/ben_004.cfg cpp/strings.cpp
+
+30010 cpp/ben_005.cfg cpp/class.h
+30011 cpp/ben_006.cfg cpp/misc.cpp
+30012 cpp/avalon2.cfg cpp/misc2.cpp
+30013 cpp/sim.cfg cpp/sim.h
+30014 common/indent_columns-3.cfg cpp/ctor-var.cpp
+30015 cpp/ben_008.cfg cpp/exception.cpp
+30016 cpp/custom-open.cfg cpp/custom-open.cpp
+30017 cpp/custom-open2.cfg cpp/custom-open.cpp
+30018 cpp/ben_009.cfg cpp/class-addr.h
+30019 cpp/ben_010.cfg cpp/wacky-template.cpp
+
+30020 common/ben_011.cfg cpp/bool.cpp
+30021 cpp/ben_012.cfg cpp/byref.cpp
+30022 cpp/ben_013.cfg cpp/extern_c.h
+30023 cpp/ben_014.cfg cpp/templates.cpp
+30024 cpp/class-nl_func-add.cfg cpp/class-init.cpp
+30025 cpp/class-nl_func-del.cfg cpp/class-init.cpp
+30026 cpp/byref-left.cfg cpp/byref.cpp
+30027 cpp/byref-right.cfg cpp/byref.cpp
+30028 cpp/byref-center.cfg cpp/byref.cpp
+30029 cpp/ben_015.cfg cpp/init_align.h
+
+30030 cpp/avalon.cfg cpp/Timestamp.h
+30031 cpp/avalon.cfg cpp/operator.cpp
+30032 cpp/op-space-force.cfg cpp/operator.cpp
+30033 cpp/op-space-remove.cfg cpp/operator.cpp
+30034 cpp/op-space-force.cfg cpp/operator_proto.cpp
+30035 cpp/op-space-remove.cfg cpp/operator_proto.cpp
+30036 cpp/op-space-remove-align-1.cfg cpp/operator.cpp
+30037 cpp/op-space-remove-align-1.cfg cpp/operator_proto.cpp
+30038 cpp/op-space-remove-align-2.cfg cpp/operator.cpp
+30039 cpp/op-space-remove-align-2.cfg cpp/operator_proto.cpp
+
+30040 cpp/nl_class-r.cfg cpp/nl-class.h
+30041 cpp/nl_class-a.cfg cpp/nl-class.h
+30042 cpp/Issue_2020.cfg cpp/Issue_2020.cpp
+30043 cpp/nl_func_call_empty-r.cfg cpp/nl_func_call_empty.cpp
+30044 cpp/nl_func_call_paren_empty-r.cfg cpp/nl_func_call_paren_empty.cpp
+30045 cpp/nl_func_decl_1.cfg cpp/nl_func_decl.cpp
+30046 cpp/nl_func_decl_2.cfg cpp/nl_func_decl.cpp
+30047 cpp/nl_func_paren_empty.cfg cpp/nl_func_paren_empty.cpp
+30048 cpp/nl_func_def_paren_empty-r.cfg cpp/nl_func_def_paren_empty.cpp
+30049 cpp/nl_func_call_paren-f.cfg cpp/nl_func_call_paren.cpp
+
+30050 cpp/nl_namespace-r.cfg cpp/nl-namespace.h
+30051 cpp/nl_namespace-a.cfg cpp/nl-namespace.h
+30052 cpp/nl_try-a.cfg cpp/try-catch-nl.cpp
+30053 cpp/sp_catch_brace.cfg cpp/exception.cpp
+30054 cpp/Issue_2091.cfg cpp/Issue_2091.cpp
+30055 cpp/nl_after_func_body.cfg cpp/nl_func.cpp
+30056 cpp/nl_after_func_body-2.cfg cpp/nl_func.cpp
+30057 cpp/nl_inside_namespace_1.cfg cpp/nl_inside_namespace.cpp
+30058 cpp/nl_inside_namespace_2.cfg cpp/nl_inside_namespace.cpp
+30059 cpp/Issue_2186.cfg cpp/Issue_2186.cpp
+
+30060 cpp/Issue_1734.cfg cpp/Issue_1734.cpp
+
+# Class colon positioning
+30061 cpp/class-colon-pos-eol.cfg cpp/class-init.cpp
+30062 cpp/class-colon-pos-sol.cfg cpp/class-init.cpp
+30063 cpp/class-colon-pos-eol-add.cfg cpp/class-init.cpp
+30064 cpp/class-colon-pos-sol-add.cfg cpp/class-init.cpp
+30065 cpp/class-colon-pos-sol.cfg cpp/Example.h
+30066 cpp/class-on-colon-indent.cfg cpp/class-init.cpp
+30067 cpp/nl_func_class_scope-a.cfg cpp/nl_func_type_name.cpp
+30068 cpp/nl_func_class_scope-a.cfg cpp/nl_func_scope_name.cpp
+30069 cpp/nl_func_class_scope-a.cfg cpp/class-implementation.cpp
+
+30070 cpp/nl_func_scope_name-a.cfg cpp/nl_func_scope_name.cpp
+30071 cpp/lineEndings-to-Win.cfg cpp/lineEndings-Mac.cpp
+30072 cpp/lineEndings-to-Unix.cfg cpp/lineEndings-Win.cpp
+30073 cpp/lineEndings-to-Mac.cfg cpp/lineEndings-Unix.cpp
+30074 common/empty.cfg cpp/bom.cpp
+30075 common/empty.cfg cpp/goto.cpp
+30076 cpp/Issue_2594.cfg cpp/Issue_2594.cpp
+30077 cpp/Issue_2596.cfg cpp/Issue_2596.cpp
+30078 common/empty.cfg cpp/Issue_2672-a.cpp
+30079 common/empty.cfg cpp/Issue_2672-b.cpp
+
+30080 cpp/nl_brace_brace-a.cfg cpp/nl_brace_brace.cpp
+30081 cpp/Issue_2383.cfg cpp/Issue_2383.cpp
+30082 cpp/Issue_931.cfg cpp/Issue_931.cpp
+30083 cpp/Issue_995-do.cfg cpp/Issue_995-do.cpp
+30084 cpp/Issue_1184.cfg cpp/Issue_1184.cpp
+30085 cpp/nSolve.cfg cpp/align_class.cpp
+30086 cpp/align_class-constr.cfg cpp/align_class-constr.cpp
+30087 cpp/Issue_1511.cfg cpp/Issue_1511.cpp
+30088 cpp/Issue_2561.cfg cpp/Issue_2561.cpp
+30089 cpp/Issue_2281.cfg cpp/Issue_2281.cpp
+
+30090 cpp/bug_488.cfg cpp/bug_488.cpp
+30091 cpp/bug_472.cfg cpp/bug_472.cpp
+30092 cpp/ben_016.cfg cpp/bug_481.cpp
+30093 common/sp_after_cast.cfg cpp/bug_484.cpp
+30094 common/align-1.cfg cpp/bug_495.cpp
+30095 cpp/ben_017.cfg cpp/bug_485.cpp
+30096 cpp/bug_1854.cfg cpp/bug_1854.cpp
+30097 common/align-1.cfg cpp/issue_1946.cpp
+30098 cpp/Issue_2692.cfg cpp/Issue_2692.cpp
+30099 common/sp_arith-f.cfg cpp/bug_1127.cpp
+
+30100 cpp/nl_template-f.cfg cpp/templates.cpp
+30101 cpp/nl_template-r.cfg cpp/templates.cpp
+30102 cpp/template_sp-force.cfg cpp/templates.cpp
+30103 cpp/template_sp-remove.cfg cpp/templates.cpp
+30104 cpp/avalon3.cfg cpp/templ_class.h
+30105 cpp/avalon4.cfg cpp/av.h
+30106 cpp/nl_template-f.cfg cpp/templates2.cpp
+30107 cpp/nl_template-r.cfg cpp/templates2.cpp
+30108 cpp/nl_template-r.cfg cpp/templates3.cpp
+30109 common/empty.cfg cpp/templates4.cpp
+
+30110 cpp/class-nl_func-add2.cfg cpp/class-init.cpp
+30111 cpp/indent_columns-4.cfg cpp/bug_1346.h
+30112 cpp/bug_1432.cfg cpp/bug_1432.cpp
+30113 cpp/bug_1452.cfg cpp/bug_1452.cpp
+30114 cpp/template_sp-remove.cfg cpp/bug_1462.cpp
+30115 common/empty.cfg cpp/Issue_1704.cpp
+30116 cpp/Issue_1052.cfg cpp/Issue_1052.cpp
+30117 cpp/Issue_2343.cfg cpp/Issue_2343.cpp
+30118 cpp/Issue_2758.cfg cpp/Issue_2758.cpp
+30119 cpp/Issue_2879.cfg cpp/Issue_2879.cpp
+
+30120 cpp/template_sp-force.cfg cpp/sp_after_angle.cpp
+30121 cpp/template_sp-remove.cfg cpp/sp_after_angle.cpp
+30122 common/sp_inside_fparen-f.cfg cpp/sp_after_angle.cpp
+30123 cpp/sp_inside_fparen-r.cfg cpp/sp_after_angle.cpp
+30124 cpp/sp_after_angle-1.cfg cpp/sp_after_angle.cpp
+30125 cpp/sp_after_angle-2.cfg cpp/sp_after_angle.cpp
+30126 cpp/sp_after_angle-3.cfg cpp/sp_after_angle.cpp
+30127 common/empty.cfg cpp/Issue_2565.cpp
+30128 cpp/Issue_2873.cfg cpp/Issue_2873.cpp
+30129 cpp/Issue_2890.cfg cpp/Issue_2890.cpp
+
+30130 common/brace-allman.cfg cpp/if-constexpr.cpp
+30131 cpp/Issue_3010.cfg cpp/Issue_3010.cpp
+30132 cpp/sp_brace_catch.cfg cpp/sp_brace_catch.cpp
+30133 cpp/Issue_3252.cfg cpp/Issue_3252.cpp
+30134 cpp/Issue_3357.cfg cpp/Issue_3357.cpp
+30135 cpp/Issue_3448.cfg cpp/Issue_3448.cpp
+30136 cpp/Issue_3413.cfg cpp/Issue_3413.cpp
+30137 cpp/Issue_3513.cfg cpp/Issue_3513-0.cpp
+30138 cpp/Issue_3513.cfg cpp/Issue_3513-1.cpp
+30139 cpp/Issue_3604.cfg cpp/Issue_3604.cpp
+
+30200 cpp/bug_1862.cfg cpp/bug_1862.cpp
+30201 cpp/cmt_indent-1.cfg cpp/cmt_indent.cpp
+30202 cpp/cmt_indent-2.cfg cpp/cmt_indent.cpp
+30203 cpp/cmt_indent-3.cfg cpp/cmt_indent.cpp
+30204 cpp/indent_columns-4.cfg cpp/comment-align.cpp
+30205 cpp/indent_columns-4.cfg cpp/cmt_right.cpp
+30206 common/empty.cfg cpp/cmt_backslash_eol.cpp
+30207 cpp/indent_class-t_columns-4.cfg cpp/cmt_indent_pp.h
+30208 cpp/bug_1108.cfg cpp/bug_1108.cpp
+30209 common/empty.cfg cpp/bug_1134.cpp
+
+30210 common/empty.cfg cpp/bug_1338.cpp
+30211 cpp/space_indent_class-t_columns-4.cfg cpp/indent_comment_align_thresh.cpp
+30212 cpp/indent_comment_align_thresh_2.cfg cpp/indent_comment_align_thresh.cpp
+30213 cpp/align_right_comment.cfg cpp/align_right_comment.cpp
+30214 cpp/issue_1887.cfg cpp/align_across_braces.cpp
+30215 common/empty.cfg cpp/Issue_2099.cpp
+30216 cpp/Issue_2302.cfg cpp/Issue_2302.cpp
+30217 common/empty.cfg cpp/2138.cpp
+
+30220 cpp/bug_1340.cfg cpp/bug_1340.cpp
+30221 cpp/Issue_2914.cfg cpp/Issue_2914.cpp
+30223 cpp/sp_enum_colon.cfg cpp/sp_enum_colon.cpp
+30224 cpp/sp_enum_colon-r.cfg cpp/sp_enum_colon.cpp
+30225 common/empty.cfg cpp/Issue_3176.cpp
+30226 cpp/sp_enum_colon-i.cfg cpp/sp_enum_colon.cpp
+30227 cpp/sp_inside_braces_enum-i.cfg cpp/sp_inside_braces_enum.cpp
+30228 cpp/sp_inside_braces_enum-f.cfg cpp/sp_inside_braces_enum.cpp
+30229 cpp/sp_inside_braces_enum-r.cfg cpp/sp_inside_braces_enum.cpp
+
+30230 cpp/sp_type_func-r.cfg cpp/sp_type_func.cpp
+30231 cpp/sp_type_func-f.cfg cpp/sp_type_func.cpp
+30232 cpp/sp_type_func-1.cfg cpp/sp_type_func.cpp
+30233 cpp/sp_type_func-2.cfg cpp/sp_type_func.cpp
+30234 cpp/functype_param-r.cfg cpp/functype_param.cpp
+30235 cpp/functype_param-f.cfg cpp/functype_param.cpp
+30236 cpp/Issue_750.cfg cpp/Issue_750.cpp
+
+30240 cpp/align_func_params-t.cfg cpp/align_func_params.cpp
+30241 cpp/align_func_params_span-1.cfg cpp/align_func_params.cpp
+30242 cpp/align_func_params_gap.cfg cpp/align_func_params.cpp
+30243 cpp/align_func_params_thresh_1.cfg cpp/align_func_params.cpp
+30244 cpp/align_func_params_thresh_2.cfg cpp/align_func_params.cpp
+30245 cpp/align_func_params_thresh_3.cfg cpp/align_func_params.cpp
+30246 cpp/align_func_params_thresh_4.cfg cpp/align_func_params.cpp
+30247 common/empty.cfg cpp/Issue_2332.cpp
+30248 cpp/Issue_2831.cfg cpp/Issue_2831.cpp
+30249 cpp/align-330.cfg cpp/align-330.cpp
+
+30250 cpp/align_fcall.cfg cpp/align_fcall.cpp
+30251 cpp/align_fcall-2.cfg cpp/align_fcall.cpp
+30253 common/empty.cfg cpp/align_left_shift.cpp
+30254 common/empty.cfg cpp/align_left_shift2.cpp
+30255 cpp/ben_018.cfg cpp/align_constr.cpp
+30256 common/empty.cfg cpp/func_call.cpp
+30257 cpp/indent_columns-4.cfg cpp/func_call_chain.cpp
+30258 common/indent_columns-3.cfg cpp/casts.cpp
+30259 cpp/sp_after_constr_colon.cfg cpp/sp_after_constr_colon.cpp
+
+30260 cpp/var_def_gap.cfg cpp/var_def_gap.cpp
+30261 cpp/align_var_def_thresh_1.cfg cpp/align_var_def_thresh.cpp
+30262 cpp/align_var_def_thresh_2.cfg cpp/align_var_def_thresh.cpp
+30263 cpp/align_var_def_thresh_3.cfg cpp/align_var_def_thresh.cpp
+30264 cpp/Issue_2668.cfg cpp/Issue_2668.cpp
+30265 cpp/long_br_cmt.cfg cpp/long_br_cmt.cpp
+30266 cpp/Issue_2921.cfg cpp/Issue_2921.cpp
+30267 cpp/Issue_2930.cfg cpp/Issue_2930.cpp
+30268 cpp/Issue_2692.cfg cpp/Issue_3018.cpp
+
+30270 cpp/const_throw.cfg cpp/const_throw.cpp
+30271 cpp/sp_throw_paren-r.cfg cpp/sp_throw_paren.cpp
+30272 cpp/sp_throw_paren-f.cfg cpp/sp_throw_paren.cpp
+30273 common/sp_cparen_oparen-f.cfg cpp/sp_cparen_oparen.cpp
+30274 cpp/sp_cparen_oparen-r.cfg cpp/sp_cparen_oparen.cpp
+30275 common/empty.cfg cpp/bug_1321.cpp
+30278 cpp/bug_1439.cfg cpp/bug_1439.cpp
+30279 common/indent_inside_ternary_operator.cfg cpp/indent-inside-ternary-operator.cpp
+
+30280 cpp/sp_dc.cfg cpp/sf557.cpp
+30281 cpp/Issue_2478.cfg cpp/Issue_2478.cpp
+30282 cpp/Issue_2703.cfg cpp/Issue_2703.cpp
+30283 common/empty.cfg cpp/Issue_3321.h
+30284 cpp/Issue_2957.cfg cpp/Issue_2957.cpp
+30285 cpp/Issue_2971.cfg cpp/Issue_2971.cpp
+
+30290 cpp/indent_shift.cfg cpp/align_left_shift.cpp
+30291 cpp/indent_shift.cfg cpp/indent_shift.cpp
+30292 cpp/align_eigen_comma_init.cfg cpp/eigen.cpp
+30293 cpp/pos_shift-lead.cfg cpp/pos_shift.cpp
+30294 cpp/pos_shift-trail.cfg cpp/pos_shift.cpp
+30295 cpp/pos_shift-join.cfg cpp/pos_shift.cpp
+
+30300 cpp/ben_020.cfg cpp/enum_shr.cpp
+30301 cpp/al.cfg cpp/enum_class.h
+30302 cpp/bug_1315.cfg cpp/bug_1315.cpp
+30303 cpp/Issue_2902.cfg cpp/Issue_2902.cpp
+
+# TODO: Make a tests for a braced_init_list. See also 34153-34166.
+30310 cpp/sp_word_brace_force.cfg cpp/braced_init_list.cpp
+30311 cpp/sp_word_brace_remove.cfg cpp/uniform_initialization.cpp
+30312 cpp/sp_inside_type_brace_init_lst-f.cfg cpp/return_init_list.cpp
+30313 cpp/sp_brace_brace-r.cfg cpp/sp_brace_brace.cpp
+30314 cpp/sp_brace_brace-f.cfg cpp/sp_brace_brace.cpp
+30315 cpp/issue_1997.cfg cpp/return_braced_init.cpp
+30316 cpp/Issue_2428.cfg cpp/Issue_2428.cpp
+30317 cpp/pos_comma-tb.cfg cpp/braced_init_template_decltype.cpp
+30318 cpp/Issue_2949.cfg cpp/Issue_2949.cpp
+30319 cpp/Issue_2886.cfg cpp/Issue_2886.cpp
+
+30320 cpp/sp_return_paren-r.cfg cpp/returns.cpp
+30321 cpp/sp_return_paren-f.cfg cpp/returns.cpp
+30322 cpp/sp_return_brace-r.cfg cpp/returns.cpp
+30323 cpp/sp_return_brace-f.cfg cpp/returns.cpp
+30324 common/mod_paren_on_return-a.cfg cpp/returns.cpp
+30325 common/mod_paren_on_return-r.cfg cpp/returns.cpp
+30326 cpp/indent_off_after_return.cfg cpp/indent_off_after_return.cpp
+30327 cpp/indent_off_after_return.cfg cpp/indent_off_after_return.cpp
+30328 cpp/nl_type_brace_init_lst-f.cfg cpp/call_brace_init_lst.cpp
+30329 cpp/nl_type_brace_init_lst-r.cfg cpp/call_brace_init_lst.cpp
+
+30330 cpp/Issue_3080.cfg cpp/Issue_3080.cpp
+
+30400 common/attribute_specifier_seqs.cfg cpp/attribute_specifier_seqs.cpp
+30401 cpp/Issue_2570.cfg cpp/Issue_2570.cpp
+
+# function def newlines
+30701 common/func-def-1.cfg cpp/function-def.cpp
+30702 common/func-def-2.cfg cpp/function-def.cpp
+30703 common/func-def-3.cfg cpp/function-def.cpp
+
+30705 cpp/func_param.cfg cpp/func_param.cpp
+30706 cpp/bug_1020.cfg cpp/bug_1020.cpp
+
+30711 common/del_semicolon.cfg cpp/semicolons.cpp
+30712 common/empty.cfg cpp/bug_1158.cpp
+30713 common/empty.cfg cpp/fix_for_relational_operators.cpp
+30714 common/empty.cfg cpp/Issue_1733.cpp
+30715 cpp/Issue_2942.cfg cpp/Issue_2942.cpp
+
+30720 cpp/wessex.cfg cpp/custom-open-2.cpp
+30721 cpp/Issue_2386.cfg cpp/Issue_2386.cpp
+
+30730 cpp/qt-1.cfg cpp/qt-1.cpp
+30731 cpp/nl_access_spec.cfg cpp/qt-1.cpp
+30732 cpp/Issue_2734.cfg cpp/Issue_2734.cpp
+
+30740 cpp/sef.cfg cpp/sef.cpp
+30741 cpp/al.cfg cpp/al.cpp
+30742 cpp/indent_columns-2.cfg cpp/delete.cpp
+
+30745 cpp/Issue_2170.cfg cpp/Issue_2170.cpp
+30746 cpp/DefaultAndDelete-0.cfg cpp/DefaultAndDelete.cpp
+30747 cpp/DefaultAndDelete-1.cfg cpp/DefaultAndDelete.cpp
+30748 cpp/DefaultAndDelete-2.cfg cpp/DefaultAndDelete.cpp
+
+# TODO: Reduce the number of options, leave only those that affect lambda.
+# TODO: Add tests for nested lambdas.
+
+30750 cpp/ben_021.cfg cpp/lambda.cpp
+30751 cpp/lambda1.cfg cpp/lambda.cpp
+30752 cpp/lambda2.cfg cpp/lambda.cpp
+30753 cpp/lambda3.cfg cpp/lambda2.cpp
+30754 cpp/indent_with_tabs-0.cfg cpp/bug_i_682.h
+30755 common/empty.cfg cpp/bug_i_938.h
+30756 cpp/bug_1296-T.cfg cpp/bug_1296.cpp
+30757 cpp/Issue_3054.cfg cpp/Issue_3054.cpp
+30758 cpp/Issue_3054-2.cfg cpp/Issue_3054-2.cpp
+30759 cpp/lambda4.cfg cpp/lambda2.cpp
+
+30760 cpp/bug_1296-F.cfg cpp/bug_1296.cpp
+30761 cpp/out-668-F.cfg cpp/out-668.cpp
+30762 cpp/out-668-T.cfg cpp/out-668.cpp
+30763 cpp/Issue_2166.cfg cpp/Issue_2166.cpp
+30764 cpp/Issue_2591.cfg cpp/Issue_2591.cpp
+30765 cpp/sp_cpp_lambda_square_paren-i.cfg cpp/lambda.cpp
+30766 cpp/sp_cpp_lambda_square_brace-i.cfg cpp/lambda.cpp
+30767 cpp/sp_cpp_lambda_paren_brace-i.cfg cpp/lambda.cpp
+30768 cpp/sp_cpp_lambda_fparen-i.cfg cpp/sp_cpp_lambda_fparen.cpp
+
+30770 cpp/sp_cpp_lambda_square_paren-r.cfg cpp/lambda.cpp
+30771 cpp/sp_cpp_lambda_square_paren-f.cfg cpp/lambda.cpp
+30772 cpp/sp_cpp_lambda_square_brace-r.cfg cpp/lambda.cpp
+30773 cpp/sp_cpp_lambda_square_brace-f.cfg cpp/lambda.cpp
+30774 cpp/sp_cpp_lambda_paren_brace-r.cfg cpp/lambda.cpp
+30775 cpp/sp_cpp_lambda_paren_brace-f.cfg cpp/lambda.cpp
+30776 cpp/sp_cpp_lambda_fparen-r.cfg cpp/sp_cpp_lambda_fparen.cpp
+30777 cpp/sp_cpp_lambda_fparen-f.cfg cpp/sp_cpp_lambda_fparen.cpp
+
+30780 cpp/lambda_in_one_liner.cfg cpp/lambda_in_one_liner.cpp
+30781 cpp/lambda_in_one_liner.cfg cpp/lambda_brace_list.cpp
+
+30790 cpp/Issue_2795.cfg cpp/Issue_2795.cpp
+30791 cpp/Issue_3203.cfg cpp/Issue_3203.cpp
+
+30800 common/star_pos-0.cfg cpp/align-star-amp-pos.cpp
+30801 cpp/star_pos-1.cfg cpp/align-star-amp-pos.cpp
+30802 cpp/star_pos-2.cfg cpp/align-star-amp-pos.cpp
+30803 cpp/bug_1403.cfg cpp/bug_1403.cpp
+30805 cpp/ptr_star-1.cfg cpp/ptr-star.cpp
+30806 cpp/ptr_star-2.cfg cpp/ptr-star.cpp
+30807 cpp/ptr_star-3.cfg cpp/ptr-star.cpp
+30808 cpp/sp_after_ptr_star_qualifier-f.cfg cpp/ptr-star.cpp
+30809 common/empty.cfg cpp/bug_1289.cpp
+
+30810 cpp/ben_022.cfg cpp/ptr-star.cpp
+30811 cpp/avalon4.cfg cpp/misc3.cpp
+30812 cpp/ben_023.cfg cpp/misc4.cpp
+30813 cpp/ben_024.cfg cpp/misc5.cpp
+30814 common/empty.cfg cpp/misc6.cpp
+30815 common/width-2.cfg cpp/cmt-reflow.cpp
+30816 cpp/cu.cfg cpp/for_long.cpp
+30817 common/indent_columns-3.cfg cpp/cmt-cpp-cont.cpp
+30818 cpp/bug_1169.cfg cpp/bug_1169.cpp
+30819 cpp/bug_1170.cfg cpp/bug_1170.cpp
+
+30820 cpp/pp_define_at_level-1.cfg cpp/pp-define-indent.cpp
+30821 common/empty.cfg cpp/pp_indent_case.cpp
+30822 common/empty.cfg cpp/pp_indent_brace.cpp
+30823 common/empty.cfg cpp/pp_indent_func_def.cpp
+30824 common/empty.cfg cpp/pp_indent_extern.cpp
+30825 cpp/Issue_1966.cfg cpp/Issue_1966.cpp
+30826 cpp/Issue_2319.cfg cpp/Issue_2319.cpp
+30827 cpp/Issue_1167.cfg cpp/Issue_1167.cpp
+30828 cpp/bug_1691.cfg cpp/bug_1691.cpp
+30829 cpp/ptr_star-2.cfg cpp/Issue_2726.cpp
+
+30830 common/kw_subst2.cfg cpp/kw_subst.cpp
+30831 common/kw_subst.cfg cpp/kw_subst2.cpp
+30832 common/kw_subst4.cfg cpp/kw_subst.cpp
+
+30840 cpp/nl_func_type_name_remove.cfg cpp/nl_func_type_name.cpp
+30841 cpp/nl_func_type_name_force.cfg cpp/nl_func_type_name.cpp
+30842 cpp/nl_func_type_name_class.cfg cpp/nl_func_type_name.cpp
+30843 cpp/nl_func_type_name_mixed.cfg cpp/nl_func_type_name.cpp
+30844 cpp/Issue_2771.cfg cpp/Issue_2771.cpp
+30845 cpp/ben_026.cfg cpp/deref.cpp
+30846 cpp/Issue_3197.cfg cpp/Issue_3197.h
+
+30850 common/sp_cmt_cpp_start_force.cfg cpp/sp_cmt_cpp_start.cc
+30852 cpp/sp_paren_qualifier-f.cfg cpp/Issue_2138.cpp
+30853 cpp/sp_paren_noexcept-f.cfg cpp/noexcept.cpp
+30854 cpp/Issue_1703.cfg cpp/Issue_1703.cpp
+30855 common/empty.cfg cpp/cpp_move.cpp
+30856 cpp/sp_cmt_cpp_region-f.cfg cpp/sp_cmt_cpp_region.cpp
+30857 cpp/sp_cmt_cpp_region-r.cfg cpp/sp_cmt_cpp_region.cpp
+
+30860 cpp/sf574.cfg cpp/sf574.cpp
+
+30870 common/cmt_insert-0.cfg cpp/cmt_insert.cpp
+30871 common/cmt_insert-1.cfg cpp/cmt_insert.cpp
+30872 cpp/Issue_2752.cfg cpp/Issue_2752.cpp
+# will also use the file footer.txt
+
+30880 common/empty.cfg cpp/bug_1758.cpp
+30881 cpp/bug_1758-f.cfg cpp/bug_1758-f.cpp
+
+30900 common/region-0.cfg cpp/region.cpp
+30901 common/region-1.cfg cpp/region.cpp
+30902 common/region-2.cfg cpp/region.cpp
+30903 common/region-3.cfg cpp/region.cpp
+30907 cpp/Issue_1813.cfg cpp/Issue_1813.cpp
+30908 cpp/Issue_1813.cfg cpp/Issue_1813-2.cpp
+30909 cpp/Issue_1813.cfg cpp/Issue_1813-3.cpp
+
+30910 cpp/indent_namespace-t.cfg cpp/indent_namespace.h
+30911 cpp/indent_class-t.cfg cpp/indent_namespace.h
+30912 cpp/long_namespace.cfg cpp/long_namespace.cpp
+30913 cpp/indent_namespace-t.cfg cpp/indent_namespace2.h
+30914 cpp/indent_namespace_single_indent.cfg cpp/indent_namespace_single_indent.h
+30915 common/empty.cfg cpp/bug_1235.cpp
+30916 common/empty.cfg cpp/Issue_1737.cpp
+30917 cpp/Issue_2345.cfg cpp/Issue_2345-3.cpp
+30918 cpp/Issue_2345.cfg cpp/Issue_2345-4.cpp
+30919 common/empty.cfg cpp/Issue_2387.cpp
+
+30920 cpp/ben_027.cfg cpp/indent-off.cpp
+30921 cpp/ben_028.cfg cpp/variadic-template.h
+30922 cpp/sp_before_ellipsis-f.cfg cpp/variadic-template.h
+30923 cpp/sf.2886991-f.cfg cpp/sf.2886991.cpp
+30924 cpp/sf.2886991-r.cfg cpp/sf.2886991.cpp
+30925 cpp/sp_func_call_empty.cfg cpp/function-def.cpp
+30926 cpp/sp_func_class_empty.cfg cpp/function-def.cpp
+30927 cpp/sp_func_def_empty.cfg cpp/function-def.cpp
+30928 cpp/sp_func_proto_empty.cfg cpp/function-def.cpp
+30929 cpp/bug_1324.cfg cpp/bug_1324.cpp
+
+30930 common/indent_var_def.cfg cpp/indent_var_def.cpp
+30931 cpp/indent_var_def_cont-t.cfg cpp/indent_var_def_cont.cpp
+30932 common/empty.cfg cpp/indent_var_def_cont.cpp
+30933 cpp/indent_paren_after_func_def-t.cfg cpp/indent_paren_after_func_def.cpp
+30934 cpp/indent_paren_after_func_decl-t.cfg cpp/indent_paren_after_func_decl.cpp
+30935 cpp/ben_029.cfg cpp/indent-misc.cpp
+30936 cpp/indent_braces_no.cfg cpp/indent_braces_no.h
+30937 cpp/indent_param.cfg cpp/indent_param.cpp
+30938 common/empty.cfg cpp/indent_switch_pp.cpp
+30939 cpp/indent_paren_after_func_call-t.cfg cpp/indent_paren_after_func_call.cpp
+
+30940 common/mod_case_brace_rm.cfg cpp/case-brace-remove.cpp
+30941 cpp/Issue_2150.cfg cpp/Issue_2150.cpp
+30942 cpp/Issue_1692.cfg cpp/Issue_1692.cpp
+30943 cpp/Issue_2735.cfg cpp/Issue_2735.cpp
+#30944
+30945 common/sp_before_byref-r.cfg cpp/sf.3266678.cpp
+30946 cpp/sf.3315874.cfg cpp/sf.3315874.h
+30947 cpp/bug_1689.cfg cpp/bug_1689.cpp
+30948 cpp/sp_before_byref_func.cfg cpp/sp_before_byref_func.cpp
+30949 cpp/Issue_2757.cfg cpp/Issue_2757.cpp
+
+30950 cpp/sp_before_tr_emb_cmt-f.cfg cpp/sp_before_tr_emb_cmt_input.cpp
+30951 cpp/sp_before_tr_emb_cmt-a.cfg cpp/sp_before_tr_emb_cmt_input.cpp
+30952 cpp/sp_before_constr_colon.cfg cpp/sp_before_constr_colon.cpp
+30953 cpp/constr_colon.cfg cpp/constr_colon.cpp
+30954 cpp/Issue_2305.cfg cpp/Issue_2305.cpp
+30955 cpp/indent_ctor_init.cfg cpp/indent_ctor_init.cpp
+30956 cpp/indent_ctor_init_following.cfg cpp/indent_ctor_init.cpp
+30957 cpp/negative_indent.cfg cpp/class-init.cpp
+30958 cpp/nl_for_leave_one_liners-f.cfg cpp/nl_for_leave_one_liners.cpp
+30959 cpp/nl_for_leave_one_liners-t.cfg cpp/nl_for_leave_one_liners.cpp
+
+30960 cpp/Issue_2151.cfg cpp/Issue_2151.cpp
+30961 cpp/Issue_2232.cfg cpp/Issue_2232.cpp
+30962 cpp/nl_assign_leave_one_liners.cfg cpp/nl_assign_leave_one_liners.cpp
+30963 cpp/Issue_2907.cfg cpp/Issue_2907.cpp
+30964 cpp/Issue_2823.cfg cpp/Issue_2823.cpp
+
+30970 cpp/Issue_2219.cfg cpp/Issue_2219.cpp
+30971 cpp/Issue_2224.cfg cpp/Issue_2224.cpp
+30972 cpp/Issue_2229.cfg cpp/Issue_2229.cpp
+30973 cpp/Issue_2236.cfg cpp/Issue_2236.cpp
+30974 common/empty.cfg cpp/using-alias-in-define.cpp
+
+31000 common/empty.cfg cpp/digraph.cpp
+31001 cpp/ben_030.cfg cpp/digraph.cpp
+
+31050 common/empty.cfg cpp/pos_assign.cpp
+31051 cpp/pos_assign.cfg cpp/pos_assign.cpp
+
+31101 common/empty.cfg cpp/nl_before_brace_open_test.cpp
+31102 cpp/nl_before_brace_open_1.cfg cpp/nl_before_brace_open_test.cpp
+31103 cpp/nl_before_brace_open_2.cfg cpp/nl_before_brace_open_test.cpp
+31104 cpp/nl_before_brace_open_3.cfg cpp/nl_before_brace_open_test.cpp
+
+31400 cpp/sp_trailing_return-f.cfg cpp/trailing_return.cpp
+31401 cpp/sp_trailing_return-r.cfg cpp/trailing_return.cpp
+31402 cpp/sp_assign_default.cfg cpp/trailing_return.cpp
+31403 cpp/sp_trailing_return_byref_ptr-left.cfg cpp/trailing_return_byref_ptr.cpp
+31404 cpp/sp_trailing_return_byref_ptr-right.cfg cpp/trailing_return_byref_ptr.cpp
+
+31450 cpp/indent_paren_close_0.cfg cpp/indent_func_alias_prototype.cpp
+31451 cpp/indent_paren_close_1.cfg cpp/indent_func_alias_prototype.cpp
+31452 cpp/indent_paren_close_2.cfg cpp/indent_func_alias_prototype.cpp
+
+31562 cpp/space_indent_class-t_columns-4.cfg cpp/sf562.cpp
+31567 common/align_same_func_call_params-t.cfg cpp/sf567.cpp
+31568 cpp/Issue_2368.cfg cpp/Issue_2368.cpp
+
+31583 common/empty.cfg cpp/sf583.cpp
+31593 common/indent_continue-8.cfg cpp/sf593.cpp
+31594 common/issue_672.cfg cpp/issue_672.cpp
+31595 cpp/issue_1778.cfg cpp/issue_1778.cpp
+31596 cpp/issue_1782.cfg cpp/issue_1782.cpp
+31597 cpp/issue_1804.cfg cpp/issue_1804.cpp
+31598 cpp/Issue_1753.cfg cpp/Issue_1753.cpp
+31599 cpp/sp_paren_ellipsis-i.cfg cpp/parameter-packs.cpp
+
+31600 cpp/sp_paren_ellipsis-f.cfg cpp/parameter-packs.cpp
+31601 cpp/sp_paren_ellipsis-r.cfg cpp/parameter-packs.cpp
+31602 cpp/sp_sizeof_ellipsis-f.cfg cpp/parameter-packs.cpp
+31603 cpp/sp_sizeof_ellipsis-r.cfg cpp/parameter-packs.cpp
+31604 cpp/sp_before_ellipsis-f.cfg cpp/parameter-packs.cpp
+31605 cpp/sp_before_ellipsis-r.cfg cpp/parameter-packs.cpp
+31606 cpp/sp_type_ellipsis-f.cfg cpp/parameter-packs.cpp
+31607 cpp/sp_type_ellipsis-r.cfg cpp/parameter-packs.cpp
+31608 cpp/sp_sizeof_ellipsis_paren-f.cfg cpp/parameter-packs.cpp
+31609 cpp/sp_sizeof_ellipsis_paren-r.cfg cpp/parameter-packs.cpp
+
+31610 cpp/Issue_2085.cfg cpp/Issue_2085.cpp
+31611 cpp/sp_sizeof_ellipsis-i.cfg cpp/parameter-packs.cpp
+31612 cpp/sp_sizeof_ellipsis_paren-i.cfg cpp/parameter-packs.cpp
+31613 cpp/sp_type_ellipsis-i.cfg cpp/parameter-packs.cpp
+31614 cpp/Issue_3309-i.cfg cpp/Issue_3309.cpp
+31615 cpp/Issue_3309-f.cfg cpp/Issue_3309.cpp
+31616 cpp/Issue_3309-r.cfg cpp/Issue_3309.cpp
+
+31620 common/sp_after_type-f.cfg cpp/sp_after_type.cpp
+31621 cpp/sp_after_type-i.cfg cpp/sp_after_type.cpp
+31622 cpp/sp_after_cast-f.cfg cpp/sp_after_type.cpp
+31623 cpp/sp_after_cast-r.cfg cpp/sp_after_type.cpp
+31624 cpp/sp_before_ptr_star-f.cfg cpp/sp_after_type.cpp
+31625 cpp/sp_before_ptr_star-r.cfg cpp/sp_after_type.cpp
+31626 cpp/sp_decltype_paren-f.cfg cpp/issue_1916.cpp
+31627 cpp/sp_decltype_paren-r.cfg cpp/issue_1916.cpp
+31628 cpp/sp_after_decltype-f.cfg cpp/issue_1916.cpp
+31629 cpp/sp_after_decltype-r.cfg cpp/issue_1916.cpp
+
+31630 common/sp_after_type-f.cfg cpp/issue_1916.cpp
+31631 common/sp_after_type-r.cfg cpp/issue_1916.cpp
+31632 cpp/issue_1916.cfg cpp/issue_1916.cpp
+31633 cpp/sp_after_decltype-f.cfg cpp/sp_after_decltype.cpp
+31634 cpp/sp_after_decltype-r.cfg cpp/sp_after_decltype.cpp
+31635 common/empty.cfg cpp/sp_decltype.cpp
+31636 cpp/Issue_1923.cfg cpp/Issue_1923.cpp
+31637 cpp/Issue_3446.cfg cpp/Issue_3446.cpp
+
+31660 cpp/nl_func_var_def_blk-1.cfg cpp/issue_1919.cpp
+31661 cpp/Issue_3097.cfg cpp/Issue_3097.cpp
+
+31700 cpp/toggle_processing_cmt.cfg cpp/toggle_processing_cmt.cpp
+31701 cpp/toggle_processing_cmt2.cfg cpp/toggle_processing_cmt2.cpp
+31702 cpp/toggle_processing_cmt3.cfg cpp/toggle_processing_cmt.cpp
+31703 cpp/toggle_processing_cmt4.cfg cpp/toggle_processing_cmt.cpp
+
+31710 common/empty.cfg cpp/string_replace_tab_chars.cpp
+31711 cpp/string_replace_tab_chars-t.cfg cpp/string_replace_tab_chars.cpp
+
+31720 cpp/ben_031.cfg cpp/bit-colon.cpp
+31721 cpp/Issue_2689.cfg cpp/Issue_2689.cpp
+
+31730 cpp/sp_arith-a.cfg cpp/ms-style-ref.cpp
+
+31740 common/empty.cfg cpp/I2102.cpp
+
+32000 cpp/sp_skip_vbrace_tokens.cfg cpp/sp_skip_vbrace_tokens.cpp
+32001 common/empty.cfg cpp/issue_547_for_each.cpp
+32002 common/empty.cfg cpp/proto-wrap.cpp
+32003 cpp/align_var_class_span-1.cfg cpp/issue_633_typename.cpp
+32004 common/empty.cfg cpp/issue_624_angle.cpp
+32005 cpp/align_var_class_span-1.cfg cpp/issue_633_typename.cpp
+32006 common/space_indent_columns-4.cfg cpp/bug_i_687.cpp
+32007 cpp/Issue_3052.cfg cpp/Issue_3052.cpp
+32008 cpp/Issue_3034.cfg cpp/Issue_3034.cpp
+32009 cpp/Issue_3422-1.cfg cpp/Issue_3422.cpp
+32010 cpp/Issue_3422-2.cfg cpp/Issue_3422.cpp
+
+32100 cpp/cpp17.cfg cpp/cpp17.cpp
+32105 cpp/I2103.cfg cpp/I2103.cpp
+
+32115 cpp/2185.cfg cpp/2185.cpp
+
+33000 cpp/tab-0-11.cfg cpp/tab-0.cpp
+33001 cpp/indent_columns-11.cfg cpp/tab-1.cpp
+33002 common/empty.cfg cpp/cmt_convert_tab_to_spaces.cpp
+33003 cpp/cmt_convert_tab_to_spaces-t.cfg cpp/cmt_convert_tab_to_spaces.cpp
+33004 common/sp_cmt_cpp_start-a.cfg cpp/DoxygenComments.cpp
+33005 cpp/sp_cmt.cfg cpp/DoxygenComments.cpp
+33006 common/empty.cfg cpp/string_replace_tab_chars.cpp
+33007 common/empty.cfg cpp/NewLine.cpp
+33008 cpp/NewLine-r.cfg cpp/NewLine.cpp
+33009 cpp/NewLine-f.cfg cpp/NewLine0.cpp
+
+33010 cpp/indent_columns-4.cfg cpp/Q_EMIT.cpp
+33011 cpp/indent_class-t_columns-4.cfg cpp/static.h
+33012 cpp/kdepim2.cfg cpp/Q_SIGNAL_SLOT.cpp
+33013 cpp/kdepim3.cfg cpp/Q_2.cpp
+33014 cpp/indent_columns-4.cfg cpp/DB.cpp
+33015 cpp/kdepim5.cfg cpp/Q_FOREACH.cpp
+33016 cpp/indent_once.cfg cpp/indent.cpp
+33017 cpp/bug_1160.cfg cpp/bug_1160.cpp
+#33018
+33019 cpp/bug_657.cfg cpp/bug_657.cpp
+
+33020 cpp/sp_cmt.cfg cpp/bug_662.cpp
+33021 cpp/bug_633.cfg cpp/bug_633.cpp
+33022 common/empty.cfg cpp/bug_634.cpp
+33023 cpp/indent_once.cfg cpp/bug_651.cpp
+33024 common/empty.cfg cpp/bug_653.cpp
+33025 common/empty.cfg cpp/bug_654.cpp
+33026 common/empty.cfg cpp/bug_631.cpp
+33027 cpp/bug_664.cfg cpp/bug_664.cpp
+33028 cpp/sp_inside_braces_empty-r.cfg cpp/braces_empty.cpp
+33029 cpp/cast.cfg cpp/cast.cpp
+
+33030 common/space_indent_columns-4.cfg cpp/Q_FOREVER.cpp
+33031 cpp/align_assign_span-1.cfg cpp/bug_612.cpp
+33032 cpp/bug_670.cfg cpp/bug_670.cpp
+33033 cpp/bug_670.cfg cpp/bug_670.h
+33034 common/bug_671.cfg cpp/bug_671.h
+33035 cpp/cmt_cpp_to_c-t.cfg cpp/patch_32.cpp
+33036 common/empty.cfg cpp/bug_663.cpp
+33037 cpp/func_class.cfg cpp/func_class.cpp
+33038 cpp/func_class.cfg cpp/func_class.h
+33039 cpp/mod_remove_empty_return-t.cfg cpp/mod_remove_empty_return.cpp
+
+33040 cpp/nl_after_func_proto_group-3.cfg cpp/bug_i_411.cpp
+33041 cpp/nl_after_func_proto-3.cfg cpp/bug_i_411.cpp
+33042 cpp/nl_after_func_class_proto-3.cfg cpp/bug_i_411.cpp
+33043 cpp/bug_i_478.cfg cpp/bug_i_478.cpp
+33044 cpp/sp_before_comma-f.cfg cpp/bug_i_481.cpp
+33045 cpp/indent_columns-4.cfg cpp/bug_i_width.cpp
+33046 cpp/bug_i_409-split.cfg cpp/bug_i_409.cpp
+33047 cpp/bug_i_409-create.cfg cpp/bug_i_409.cpp
+33048 cpp/bug_i_405.cfg cpp/bug_i_405.cpp
+33049 cpp/pp-pragma.cfg cpp/pp-pragma.cpp
+
+33050 common/empty.cfg cpp/issue_523.cpp
+33051 common/empty.cfg cpp/bug_i_503.cpp
+33052 common/empty.cfg cpp/bug_i_512.cpp
+33053 common/space_indent_columns-4.cfg cpp/for_auto.cpp
+33054 common/indent_columns-3.cfg cpp/bug_i_825.cpp
+33056 common/empty.cfg cpp/bug_33056.cpp
+33057 cpp/bug_1349.cfg cpp/bug_1349.cpp
+33058 cpp/Issue_3164.cfg cpp/Issue_3164.cpp
+33039 cpp/mod_remove_empty_return-t.cfg cpp/mod_remove_empty_return.cpp
+33059 cpp/mod_remove_empty_return-t.cfg cpp/mod_remove_empty_return-2.cpp
+
+33060 common/empty.cfg cpp/if_constexpr.cpp
+33061 common/empty.cfg cpp/if_chain_braces.cpp
+33062 cpp/mod_full_brace_if_chain-1.cfg cpp/if_chain_braces.cpp
+33063 common/mod_full_brace_if_chain_only-t.cfg cpp/if_chain_braces.cpp
+33064 cpp/if_chain_braces_2.cfg cpp/if_chain_braces.cpp
+33065 cpp/Issue_3316.cfg cpp/Issue_3316.cpp
+33066 cpp/mod_full_brace_if_chain-2.cfg cpp/if_chain_braces.cpp
+33067 cpp/mod_full_brace_if_chain-3.cfg cpp/if_chain_braces.cpp
+
+33069 cpp/Issue_2195.cfg cpp/Issue_2195.cpp
+
+33070 cpp/code_width-70.cfg cpp/multi_line.cpp
+33071 cpp/multi_line_1.cfg cpp/multi_line.cpp
+33072 cpp/multi_line_2.cfg cpp/multi_line.cpp
+33073 cpp/multi_line_3.cfg cpp/multi_line.cpp
+33074 cpp/multi_line_4.cfg cpp/multi_line.cpp
+33075 cpp/multi_line_5.cfg cpp/multi_line.cpp
+33076 cpp/multi_line_6.cfg cpp/multi_line.cpp
+33077 cpp/multi_line_7.cfg cpp/multi_line.cpp
+33078 cpp/multi_line_8.cfg cpp/multi_line.cpp
+33079 cpp/multi_line_9.cfg cpp/multi_line.cpp
+
+33080 cpp/multi_line_10.cfg cpp/multi_line.cpp
+33081 common/space_indent_columns-4.cfg cpp/bug_i_552.cpp
+33082 common/empty.cfg cpp/namespace_namespace.cpp
+33083 cpp/bug_i_359.cfg cpp/bug_i_359.cpp
+33084 cpp/op_sym_empty.cfg cpp/op_sym_empty.cpp
+33085 cpp/indent_with_tabs-0.cfg cpp/bug_i_323.cpp
+33086 cpp/indent_class-t.cfg cpp/bug_i_568.cpp
+33087 common/space_indent_columns-4.cfg cpp/bug_i_596.cpp
+33088 common/empty.cfg cpp/bug_i_197.cpp
+33089 cpp/indent_class-t_columns-4.cfg cpp/bug_643.cpp
+
+33090 common/empty.cfg cpp/gh555.cpp
+33091 cpp/no_squeeze_ifdef.cfg cpp/squeeze_ifdef.cpp
+33092 cpp/squeeze_ifdef.cfg cpp/squeeze_ifdef.cpp
+33093 cpp/sp_angle_paren-f.cfg cpp/sp_angle_paren.cpp
+33094 cpp/sp_angle_paren_empty.cfg cpp/sp_angle_paren.cpp
+33095 cpp/bug_i_322.cfg cpp/bug_i_322.cpp
+33096 cpp/squeeze_ifdef_top.cfg cpp/squeeze_ifdef.cpp
+33097 cpp/pos_enum_comma-tf.cfg cpp/enum_comma.h
+33098 cpp/pos_comma-lf.cfg cpp/enum_comma.h
+33099 cpp/enum_comma-3.cfg cpp/enum_comma.h
+
+33100 cpp/enum_comma-4.cfg cpp/enum_comma.h
+33101 cpp/pos_comma-tb.cfg cpp/enum_comma.h
+33102 cpp/enum_comma-6.cfg cpp/enum_comma.h
+33103 cpp/bug_858-f.cfg cpp/bug_858.cpp
+33104 cpp/bug_858-r.cfg cpp/bug_858.cpp
+33105 cpp/bug_1001.cfg cpp/bug_1001.cpp
+33106 common/bool-pos-eol-force.cfg cpp/pos_bool_in_template.h
+33107 cpp/Issue_2688.cfg cpp/Issue_2688.cpp
+33108 cpp/Issue_2045.cfg cpp/Issue_2045.cpp
+33109 common/empty.cfg cpp/Issue_3205.cpp
+
+33110 cpp/enum.cfg cpp/enum.cpp
+33120 cpp/Issue_2149.cfg cpp/Issue_2149.cpp
+
+33150 cpp/indent_columns-4.cfg cpp/bug_i_753.cpp
+33151 cpp/bug_i_752.cfg cpp/bug_i_752.cpp
+33152 cpp/bug_1004.cfg cpp/bug_1004.cpp
+
+33160 common/sp_before_byref-r.cfg cpp/bug_1112.cpp
+33161 common/sp_before_byref-r.cfg cpp/byref-3.cpp
+33162 cpp/sp_not_not.cfg cpp/sp_not_not.cpp
+
+33180 cpp/pp_multi_comment.cfg cpp/pp_multi_comment.cpp
+33181 cpp/Issue_2759.cfg cpp/Issue_2759.cpp
+33182 cpp/Issue_2794.cfg cpp/Issue_2794.cpp
+
+33200 cpp/cmt_multi_first_len_minimum-1.cfg cpp/first_len_minimum.cpp
+
+33201 cpp/indent_ctor_members_twice.cfg cpp/indent_ctor_members_twice.cpp
+33202 cpp/initlist_leading_commas.cfg cpp/initlist_leading_commas.cpp
+33203 cpp/Issue_2574.cfg cpp/Issue_2574.cpp
+33204 cpp/Issue_2582.cfg cpp/Issue_2582.cpp
+33205 cpp/Issue_3198.cfg cpp/Issue_3198.cpp
+
+33210 cpp/disable_nl_cont.cfg cpp/templates4.cpp
+33211 cpp/disable_nl_cont.cfg cpp/pp_multi_comment.cpp
+33212 cpp/disable_nl_cont.cfg cpp/pp-define-indent.cpp
+33213 cpp/disable_nl_cont.cfg cpp/disable_macro.cpp
+33214 cpp/Issue_2742.cfg cpp/Issue_2742.cpp
+33215 cpp/Issue_3055.cfg cpp/Issue_3055.cpp
+33216 cpp/Issue_3055.cfg cpp/Issue_3055-a.cpp
+33217 common/empty.cfg cpp/Issue_3113.cpp
+
+34001 common/nl_before_after.cfg cpp/nl_before_after.h
+34002 common/indent_columns-3.cfg cpp/bug_i_793.cpp
+34003 cpp/nl_max_blank_in_func-1.cfg cpp/nl_max_blank_in_func.cpp
+34004 cpp/nl_max_blank_in_func-4.cfg cpp/nl_max_blank_in_func.cpp
+34005 common/empty.cfg cpp/nl_max_blank_in_func.cpp
+34006 common/empty.cfg cpp/bug_i_575.cpp
+34007 cpp/indent_with_tabs-0.cfg cpp/bug_i_928.cpp
+
+34100 common/empty.cfg cpp/bug_i_525.cpp
+34101 common/empty.cfg cpp/bug_i_646.cpp
+34105 cpp/bug_i_663.cfg cpp/bug_i_663.cpp
+34108 cpp/bug_i_666.cfg cpp/bug_i_666.cpp
+
+34112 cpp/sp_after_cast-r.cfg cpp/bug_i_889.cpp
+34113 cpp/nl_before_func_body_def-1.cfg cpp/bug_902.cpp
+34114 cpp/nl_before_func_body_def-2.cfg cpp/bug_902.cpp
+34115 cpp/nl_before_func_body_def-2.cfg cpp/nl_before_func_body_def.cpp
+34116 cpp/nl_before_func_body_def-2.cfg cpp/issue_2000.cpp
+34117 cpp/extern_func.cfg cpp/extern_func.cpp
+34118 cpp/Issue_2163.cfg cpp/Issue_2163.cpp
+
+34120 cpp/align_assign_span-1.cfg cpp/bug_i_999.cpp
+34121 cpp/bug_1717.cfg cpp/bug_1717.cpp
+34122 cpp/Issue_2440.cfg cpp/Issue_2440.cpp
+34123 cpp/Issue_2440_nl.cfg cpp/Issue_2440_nl.cpp
+
+34130 cpp/nl_brace_fparen-f.cfg cpp/bug_i_1000.cpp
+34131 cpp/nl_brace_fparen-r.cfg cpp/bug_i_1000.cpp
+34132 cpp/new_op_a.cfg cpp/new_op.cpp
+34133 cpp/new_op_f.cfg cpp/new_op.cpp
+34134 cpp/new_op_r.cfg cpp/new_op.cpp
+34135 cpp/new_op_paren_open_close.cfg cpp/new_op.cpp
+34136 cpp/sp_balance_nested_parens.cfg cpp/sp_balance_nested_parens.cpp
+
+34140 common/empty.cfg cpp/bug_1027.cpp
+34141 common/empty.cfg cpp/bug_1005.cpp
+34142 common/sp_before_byref-r.cfg cpp/I1112-1.cpp
+34143 cpp/I1112-2.cfg cpp/I1112-2.cpp
+34144 cpp/sp_before_ptr_star-r.cfg cpp/I1112-3.cpp
+34145 cpp/i683.cfg cpp/i683.cpp
+34146 cpp/sp_bool-f.cfg cpp/bug_1002.cpp
+34147 cpp/sp_bool-r.cfg cpp/bug_1002.cpp
+34148 cpp/nl_before_if_closing_paren-f.cfg cpp/bug_1139.cpp
+34149 cpp/nl_before_if_closing_paren-r.cfg cpp/bug_1139.cpp
+
+34150 common/empty.cfg cpp/bug_1032.cpp
+34151 cpp/indent_else_if-t.cfg cpp/bug_666.cpp
+34152 common/empty.cfg cpp/bug_1068.cpp
+34153 cpp/nl_type_brace_init_lst-f.cfg cpp/type_brace_init_lst.cpp
+34154 cpp/nl_type_brace_init_lst-r.cfg cpp/type_brace_init_lst.cpp
+34155 cpp/nl_type_brace_init_lst_open-f.cfg cpp/type_brace_init_lst.cpp
+34156 cpp/nl_type_brace_init_lst_open-r.cfg cpp/type_brace_init_lst.cpp
+34157 cpp/nl_type_brace_init_lst_close-f.cfg cpp/type_brace_init_lst.cpp
+34158 cpp/nl_type_brace_init_lst_close-r.cfg cpp/type_brace_init_lst.cpp
+34159 cpp/sp_type_brace_init_lst-f.cfg cpp/type_brace_init_lst.cpp
+
+34160 cpp/sp_type_brace_init_lst-r.cfg cpp/type_brace_init_lst.cpp
+34161 cpp/sp_inside_type_brace_init_lst-f.cfg cpp/type_brace_init_lst.cpp
+34162 cpp/sp_inside_type_brace_init_lst-r.cfg cpp/type_brace_init_lst.cpp
+34163 cpp/sp_after_type_brace_init_lst_open-f.cfg cpp/type_brace_init_lst.cpp
+34164 cpp/sp_after_type_brace_init_lst_open-r.cfg cpp/type_brace_init_lst.cpp
+34165 cpp/sp_before_type_brace_init_lst_close-f.cfg cpp/type_brace_init_lst.cpp
+34166 cpp/sp_before_type_brace_init_lst_close-r.cfg cpp/type_brace_init_lst.cpp
+34168 cpp/nl_type_brace_init_lst-r.cfg cpp/Issue_2910.cpp
+34169 cpp/sp_inside_fparens-f.cfg cpp/init-list-call.cpp
+
+34170 common/empty.cfg cpp/i1082.cpp
+34171 common/empty.cfg cpp/i1181.cpp
+34172 common/space_indent_columns-4.cfg cpp/i1165.cpp
+34173 cpp/arith-vs-ptr.cfg cpp/i1464.cpp
+34174 cpp/arith-vs-ptr.cfg cpp/i1466.cpp
+34175 cpp/align_assign_span-1.cfg cpp/i1509.cpp
+34176 cpp/align_assign_span-1.cfg cpp/i1509_bug_1112_correction.cpp
+34177 cpp/sp_func_call_paren.cfg cpp/sp_func_call_paren.cpp
+34178 cpp/Issue_3237.cfg cpp/Issue_3237.cpp
+34179 cpp/arith-vs-byref.cfg cpp/arith_vs_byref.cpp
+
+34180 cpp/bug_1402.cfg cpp/bug_1402.cpp
+
+34190 cpp/bug_1003.cfg cpp/bug_1003.cpp
+34191 common/empty.cfg cpp/comment-align-multiline.cpp
+34192 cpp/mod_remove_extra_semicolon-t.cfg cpp/i1207.cpp
+34193 common/empty.cfg cpp/i1218.cpp
+34194 cpp/sp_arith_additive-f.cfg cpp/sp_arith_additive.cpp
+34195 cpp/sp_arith_additive-r.cfg cpp/sp_arith_additive.cpp
+34196 cpp/Issue_1460.cfg cpp/Issue_1460.h
+34197 cpp/bug_1161.cfg cpp/bug_1161.cpp
+34198 cpp/sp_dc.cfg cpp/bug_1249.cpp
+34199 common/empty.cfg cpp/not_lambda.cpp
+
+34200 cpp/i1536.cfg cpp/i1536.cpp
+34201 cpp/mod_add_long_namespace_closebrace_comment-1.cfg cpp/i1565.cpp
+34202 cpp/mod_add_long_namespace_closebrace_comment-1.cfg cpp/i1617.cpp
+34203 cpp/i1516.cfg cpp/i1516.cpp
+34204 cpp/align_func_params_span-1.cfg cpp/func_param_indent_leading_comma.cpp
+34205 cpp/bug_1395.cfg cpp/bug_1395.cpp
+34206 cpp/indent_semicolon_for_paren-t.cfg cpp/for_loop_head.cpp
+34207 cpp/indent_first_for_expr-t.cfg cpp/for_loop_head.cpp
+34208 cpp/nl_func_type_name-r.cfg cpp/conversion_operator.cpp
+34209 cpp/nl-brAfter-fcallParen.cfg cpp/lambda_selfcalling.cpp
+
+# TODO: Find relevant test cases for 'override'.
+34210 common/empty.cfg cpp/override_virtual.cpp
+34211 cpp/anonymous_enum.cfg cpp/anonymous_enum.cpp
+
+34250 common/empty.cfg cpp/bug_1607.cpp
+34251 cpp/bug_1649.cfg cpp/bug_1649.cpp
+34252 cpp/nl_after_func_proto_group-3.cfg cpp/issue_2001.cpp
+34253 cpp/nl_after_func_proto_group-3.cfg cpp/friends.cpp
+34254 cpp/issue_1985.cfg cpp/issue_1985.cpp
+34255 cpp/eat_blanks_after_codewidth.cfg cpp/eat_blanks_after_codewidth.cpp
+34256 cpp/Issue_2836.cfg cpp/Issue_2836.cpp
+
+34280 cpp/UNI-29935.cfg cpp/UNI-29935.cpp
+
+34290 cpp/sp_type_brace_init_lst-f.cfg cpp/brace_brace_init_lst.cpp
+34291 cpp/sp_type_brace_init_lst-r.cfg cpp/brace_brace_init_lst.cpp
+34292 cpp/sp_inside_type_brace_init_lst-f.cfg cpp/brace_brace_init_lst.cpp
+34293 cpp/sp_inside_type_brace_init_lst-r.cfg cpp/brace_brace_init_lst.cpp
+34294 cpp/sp_after_type_brace_init_lst_open-f.cfg cpp/brace_brace_init_lst.cpp
+34295 cpp/sp_after_type_brace_init_lst_open-r.cfg cpp/brace_brace_init_lst.cpp
+34296 cpp/i1768.cfg cpp/i1768.cpp
+34297 cpp/align_assign_decl_func-0.cfg cpp/align-assign-mixed.cpp
+34298 cpp/align_assign_decl_func-1.cfg cpp/align-assign-mixed.cpp
+34299 cpp/align_assign_decl_func-2.cfg cpp/align-assign-mixed.cpp
+
+# __asm__
+34300 cpp/bug_1236.cfg cpp/bug_1236.cpp
+34301 cpp/nl_fdef_brace_cond-f.cfg cpp/nl_fdef_brace_cond-f.cpp
+34302 cpp/nl_fdef_brace_cond-r.cfg cpp/nl_fdef_brace_cond-r.cpp
+34303 cpp/nl_fdef_brace_cond-fr.cfg cpp/nl_fdef_brace_cond-fr.cpp
+34304 cpp/nl_fdef_brace_cond-rf.cfg cpp/nl_fdef_brace_cond-rf.cpp
+34305 cpp/issue_2124-1.cfg cpp/issue_2124-1.cpp
+34306 cpp/issue_2124-2.cfg cpp/issue_2124-2.cpp
+34307 cpp/2203.cfg cpp/2203.cpp
+34308 cpp/enum_comment_wrap.cfg cpp/enum_comment_wrap.cpp
+34309 cpp/issue_2209.cfg cpp/issue_2209-1.cpp
+
+34310 cpp/issue_2209.cfg cpp/issue_2209-2.cpp
+34311 cpp/Issue_2250.cfg cpp/Issue_2250.cpp
+34312 cpp/Issue_2101.cfg cpp/Issue_2101.cpp
+34313 cpp/Issue_2437.cfg cpp/Issue_2437.cpp
+34314 cpp/Issue_2604.cfg cpp/Issue_2604.cpp
+34315 cpp/align_func_proto_thresh_1.cfg cpp/align_func_proto_thresh.cpp
+34316 cpp/align_func_proto_thresh_2.cfg cpp/align_func_proto_thresh.cpp
+34317 cpp/align_func_proto_thresh_3.cfg cpp/align_func_proto_thresh.cpp
+34318 cpp/align_assign_func_proto_1.cfg cpp/align_assign_func_proto.cpp
+34319 cpp/align_func_proto_thresh_4.cfg cpp/align_func_proto_thresh2.cpp
+
+34320 cpp/align_func_proto_thresh_5.cfg cpp/align_func_proto_thresh2.cpp
+34321 cpp/bug_2285.cfg cpp/bug_2285.cpp
+34322 cpp/issue_2623_1.cfg cpp/issue_2623.cpp
+34323 cpp/issue_2623_2.cfg cpp/issue_2623.cpp
+34324 cpp/issue_2623_3.cfg cpp/issue_2623.cpp
+34325 cpp/Issue_3025.cfg cpp/Issue_3025.cpp
+34326 cpp/Issue_3040.cfg cpp/Issue_3040.cpp
+34327 cpp/Issue_3044.cfg cpp/Issue_3044.cpp
+34328 cpp/Issue_3048.cfg cpp/Issue_3048.cpp
+
+34330 cpp/Issue_3061_0nl.cfg cpp/Issue_3061_0nl.cpp
+34331 cpp/Issue_3061_0nl.cfg cpp/Issue_3061_1nl.cpp
+34332 cpp/Issue_3061_0nl.cfg cpp/Issue_3061_2nl.cpp
+34333 cpp/Issue_3061_1nl.cfg cpp/Issue_3061_0nl.cpp
+34334 cpp/Issue_3061_1nl.cfg cpp/Issue_3061_1nl.cpp
+34335 cpp/Issue_3061_1nl.cfg cpp/Issue_3061_2nl.cpp
+34336 cpp/Issue_3061_2nl.cfg cpp/Issue_3061_0nl.cpp
+34337 cpp/Issue_3061_2nl.cfg cpp/Issue_3061_1nl.cpp
+34338 cpp/Issue_3061_2nl.cfg cpp/Issue_3061_2nl.cpp
+34339 cpp/Issue_3061_3nl.cfg cpp/Issue_3061_0nl.cpp
+34340 cpp/Issue_3061_3nl.cfg cpp/Issue_3061_1nl.cpp
+34341 cpp/Issue_3061_3nl.cfg cpp/Issue_3061_2nl.cpp
+
+34350 cpp/indent_comma_brace.cfg cpp/indent_comma_brace_glob.cpp
+34351 cpp/indent_comma_brace.cfg cpp/indent_comma_brace_func.cpp
+
+34360 cpp/nl_before_struct.cfg cpp/nl_before_struct_struct.cpp
+34361 cpp/nl_before_struct.cfg cpp/nl_before_struct_scoped_enum.cpp
+
+# test the options sp_ with the value "ignore"
+34500 cpp/sp_before_case_colon.cfg cpp/sp_before_case_colon.cpp
+34501 cpp/sp_endif_cmt.cfg cpp/sp_endif_cmt.cpp
+34502 cpp/sp_enum_assign-f.cfg cpp/sp_enum_assign.cpp
+34503 cpp/sp_enum_assign-i.cfg cpp/sp_enum_assign.cpp
+34504 cpp/issue_574-i-i.cfg cpp/issue_574-i.cpp
+34505 cpp/Issue_3220-f.cfg cpp/Issue_3220.cpp
+34506 cpp/Issue_3220-i.cfg cpp/Issue_3220.cpp
+34507 cpp/Issue_3220-r.cfg cpp/Issue_3220.cpp
+34508 cpp/Issue_3220-ir.cfg cpp/Issue_3220.cpp
+34509 cpp/byref-ir.cfg cpp/byref-2.cpp
+
+34510 cpp/byref-i.cfg cpp/byref-2.cpp
+34511 cpp/byref-f.cfg cpp/byref-2.cpp
+34512 cpp/byref-r.cfg cpp/byref-2.cpp
+34513 cpp/sp_cond_question-ir.cfg cpp/sp_cond_question.cpp
+34514 cpp/sp_cond_question-i.cfg cpp/sp_cond_question.cpp
+34515 cpp/sp_cond_question-f.cfg cpp/sp_cond_question.cpp
+34516 cpp/sp_cond_question-r.cfg cpp/sp_cond_question.cpp
+34517 cpp/semi-f.cfg cpp/semi.cpp
+34518 cpp/semi-i.cfg cpp/semi.cpp
+34519 cpp/semi-r.cfg cpp/semi.cpp
+
+34520 cpp/comma-f.cfg cpp/comma.cpp
+34521 cpp/comma-i.cfg cpp/comma.cpp
+34522 cpp/comma-r.cfg cpp/comma.cpp
+34523 cpp/ellipsis-i.cfg cpp/gcc_case_ellipsis.cpp
+34524 cpp/sp_bool-i.cfg cpp/bug_1002.cpp
+34525 cpp/sp_paren_brace-f.cfg cpp/sp_paren_brace.cpp
+34526 cpp/sp_paren_brace-i.cfg cpp/sp_paren_brace.cpp
+34527 cpp/sp_paren_brace-r.cfg cpp/sp_paren_brace.cpp
+34528 cpp/cmt_trailing_single_line_c_to_cpp.cfg cpp/cmt_trailing_single_line_c_to_cpp.cpp
+34529 cpp/sp_inside_type_brace_init_lst-iif.cfg cpp/type_brace_init_lst.cpp
+
+34530 cpp/sp_inside_type_brace_init_lst-irf.cfg cpp/type_brace_init_lst.cpp
+34531 cpp/sp_inside_type_brace_init_lst-rf.cfg cpp/type_brace_init_lst.cpp
+34532 cpp/sp_inside_type_brace_init_lst-iii.cfg cpp/type_brace_init_lst.cpp
+34533 cpp/templates-i.cfg cpp/templates.cpp
+34534 cpp/templates-r.cfg cpp/templates.cpp
+34535 cpp/template_sp-ignore.cfg cpp/sp_after_angle.cpp
+34536 cpp/template_sp-remove.cfg cpp/sp_after_angle.cpp
+
+34540 cpp/sp_byref_paren-i.cfg cpp/byref-4.cpp
+34541 cpp/sp_byref_paren-a.cfg cpp/byref-4.cpp
+34542 cpp/sp_byref_paren-r.cfg cpp/byref-4.cpp
+34543 cpp/sp_byref_paren-f.cfg cpp/byref-4.cpp
+
+# Adopt some UT tests
+10000 common/empty.cfg cpp/621_this-spacing.cpp
+10001 common/empty.cfg cpp/622_ifdef-indentation.cpp
+10002 cpp/623_caret-spacing.cfg cpp/623_caret-spacing.cpp
+10003 cpp/633_decl-in-func-typedef.cfg cpp/633_decl-in-func-typedef.cpp
+10004 common/empty.cfg cpp/634_extern-c-no-block.cpp
+10005 cpp/Uncrustify.Cpp.cfg cpp/define-indentation.cpp
+10006 cpp/dont-detab-strings.cfg cpp/dont-detab-strings.cpp
+10007 cpp/dont-process-defines.cfg cpp/dont-process-defines.cpp
+10008 common/empty.cfg cpp/PR326_invalid-backslash-eol-csharp.cpp
+10009 cpp/STUCK_macro-difficulties.cfg cpp/STUCK_macro-difficulties.cpp
+
+10020 cpp/U02-Cpp.cfg cpp/macro_spaces.cpp
+10021 cpp/U03-Cpp.cfg cpp/braces_align.cpp
+10022 cpp/U04-Cpp.cfg cpp/foreach.cpp
+10023 cpp/U05-Cpp.cfg cpp/for_auto.cpp
+10024 cpp/U06-Cpp.cfg cpp/ifcomment.cpp
+10025 cpp/U07-Cpp.cfg cpp/qtargs.cpp
+10026 cpp/sp_before_ellipsis-r.cfg cpp/gcc_case_ellipsis.cpp
+10027 cpp/Issue_3058.cfg cpp/Issue_3058.cpp
+10028 cpp/sp_before_ellipsis-f.cfg cpp/gcc_case_ellipsis.cpp
+10029 cpp/sp_after_ellipsis-f.cfg cpp/gcc_case_ellipsis.cpp
+
+10047 cpp/U16-Cpp.cfg cpp/UNI-1334.cpp
+10048 common/empty.cfg cpp/UNI-1335.cpp
+
+10050 cpp/U18-Cpp.cfg cpp/UNI-1337.cpp
+10052 common/empty.cfg cpp/UNI-1339.cpp
+10053 cpp/UNI-1340.cfg cpp/UNI-1340.cpp
+10054 cpp/UNI-1344.cfg cpp/UNI-1344.cpp
+10056 cpp/UNI-1346.cfg cpp/UNI-1346.cpp
+10057 cpp/UNI-1347.cfg cpp/UNI-1347.cpp
+
+10060 cpp/UNI-1350.cfg cpp/UNI-1350.cpp
+10062 cpp/UNI-1356.cfg cpp/UNI-1356.cpp
+10063 cpp/UNI-1358.cfg cpp/UNI-1358.cpp
+10069 common/empty.cfg cpp/UNI-1980.cpp
+
+10070 cpp/U21-Cpp.cfg cpp/UNI-1981.cpp
+10071 common/empty.cfg cpp/UNI-1983.cpp
+10079 cpp/U23-Cpp.cfg cpp/UNI-9650.cpp
+
+10080 cpp/UNI-10496.cfg cpp/UNI-10496.cpp
+
+10100 cpp/issue_564.cfg cpp/issue_564.cpp
+10101 cpp/issue_574.cfg cpp/issue_574.cpp
+10102 cpp/issue_574-i-a.cfg cpp/issue_574.cpp
+10103 cpp/issue_574-i-b.cfg cpp/issue_574.cpp
+
+10566 common/empty.cfg cpp/issue_1752.cpp
+
+11000 cpp/UNI-12046.cfg cpp/UNI-12046.cpp
+
+20002 cpp/UNI-32657.cfg cpp/UNI-32657.cpp
+
+20011 common/empty.cfg cpp/UNI-38381.cpp
+
+60001 cpp/UNI-2650.cfg cpp/UNI-2650.cpp
+60002 cpp/U25-Cpp.cfg cpp/UNI-16283.cpp
+60003 cpp/U26-Cpp.cfg cpp/UNI-1288.cpp
+60006 cpp/UNI-2049.cfg cpp/UNI-2049.cpp
+60017 cpp/U27-Cpp.cfg cpp/UNI-2683.cpp
+
+60022 cpp/U28-Cpp.cfg cpp/UNI-18439.cpp
+60025 cpp/U29-Cpp.cfg cpp/UNI-19894.cpp
+60027 cpp/U30-Cpp.cfg cpp/UNI-21506.cpp
+60028 cpp/U31-Cpp.cfg cpp/UNI-21509.cpp
+60029 common/empty.cfg cpp/UNI-21510.cpp
+
+60030 cpp/U33-Cpp.cfg cpp/UNI-21727.cpp
+60031 common/empty.cfg cpp/UNI-21728.cpp
+60032 common/empty.cfg cpp/UNI-21729.cpp
+60036 cpp/UNI-2680.cfg cpp/UNI-2680.cpp
+60038 cpp/UNI-30088.cfg cpp/UNI-30088.cpp
+60039 cpp/U36-Cpp.cfg cpp/UNI-30628.cpp
+
+60042 common/UNI-18777.cfg cpp/UNI-18777.cpp
+60043 cpp/nl_remove_extra_newlines-1.cfg cpp/i2033.cpp
+60044 cpp/nl_fdef_brace-r__nl_collapse_empty_body-t.cfg cpp/i2116.cpp
+60045 cpp/align_asterisk_after_type_cast.cfg cpp/align_asterisk_after_type_cast.cpp
+60046 cpp/align_continuation_left_shift.cfg cpp/align_continuation_left_shift.cpp
+60047 cpp/align_default_after_override.cfg cpp/align_default_after_override.cpp
+60048 cpp/bug_2322.cfg cpp/bug_2322.cpp
+60049 cpp/bug_2402.cfg cpp/bug_2402.cpp
+
+60051 cpp/bug_2371.cfg cpp/bug_2371.cpp
+60052 cpp/bug_2433_1.cfg cpp/bug_2433_1.cpp
+60053 cpp/bug_2433_2.cfg cpp/bug_2433_2.cpp
+60054 cpp/interface-keyword-in-cpp.cfg cpp/interface-keyword-in-cpp.cpp
+60055 cpp/issue_3116.cfg cpp/issue_3116.cpp
+60056 cpp/issue_3116.cfg cpp/issue_3116-2.cpp
+60057 cpp/issue_3116-2.cfg cpp/issue_3116.cpp
+60058 cpp/sp_constr_colon-i.cfg cpp/issue_3330.cpp
+60059 cpp/indent_ctor_init_leading.cfg cpp/indent_ctor_init.cpp
+
+60060 cpp/sp_return-a.cfg cpp/returns.cpp
+60061 cpp/sp_return-f.cfg cpp/returns.cpp
+60062 cpp/sp_return-i.cfg cpp/returns.cpp
+60063 cpp/sp_return-r.cfg cpp/returns.cpp
+60064 cpp/sp_constr_colon-i.cfg cpp/issue_3368.cpp
+60065 cpp/issue_3378.cfg cpp/issue_3378.cpp
+60066 cpp/Issue_3409.cfg cpp/Issue_3409.cpp
+60067 common/empty.cfg cpp/Issue_3283.cpp
+60068 cpp/Issue_3428.cfg cpp/Issue_3428.cpp
+60069 cpp/Issue_3428_2.cfg cpp/Issue_3428.cpp
+
+60070 cpp/Issue_3428_3.cfg cpp/Issue_3428.cpp
+60071 cpp/Issue_3428_4.cfg cpp/Issue_3428.cpp
+60072 cpp/Issue_3428_5.cfg cpp/Issue_3428.cpp
+60073 cpp/Issue_3428_6.cfg cpp/Issue_3428.cpp
+60074 cpp/Issue_3284.cfg cpp/Issue_3284.cpp
+60075 cpp/Issue_3294.cfg cpp/Issue_3294.cpp
+60076 cpp/indent_ignore_before_class_colon-t.cfg cpp/indent_ctor_init.cpp
+60077 cpp/indent_ignore_before_constr_colon-t.cfg cpp/indent_ctor_init.cpp
+60078 cpp/indent_func_proto_param-t.cfg cpp/Issue_3505.cpp
+60079 common/empty.cfg cpp/Issue_3536.cpp
+
+60080 common/empty.cfg cpp/Issue_3538.cpp
+60081 cpp/Issue_3546.cfg cpp/Issue_3546.cpp
+60082 cpp/Issue_3552.cfg cpp/Issue_3552.cpp
+60083 cpp/Issue_3570.cfg cpp/Issue_3570.h
+60084 cpp/Issue_3576-a.cfg cpp/Issue_3576.h
+60085 cpp/Issue_3576-b.cfg cpp/Issue_3576.h
+60086 cpp/indent_namespace_inner_only.cfg cpp/indent_namespace_inner_only.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/d.test b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/d.test
index 520a8c3a..520a8c3a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/d.test
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/d.test
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/difftest.sh b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/difftest.sh
index 053cae17..053cae17 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/difftest.sh
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/difftest.sh
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/ecma.test b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/ecma.test
index 632f3015..632f3015 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/ecma.test
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/ecma.test
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00000-comment-indent.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00000-comment-indent.c
index b59ab389..b59ab389 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00000-comment-indent.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00000-comment-indent.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00001-comment-indent.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00001-comment-indent.c
index e4ba53de..e4ba53de 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00001-comment-indent.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00001-comment-indent.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00002-comment-indent.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00002-comment-indent.c
index 09ca01ac..09ca01ac 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00002-comment-indent.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00002-comment-indent.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00003-comment-indent.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00003-comment-indent.c
index 0f906f2f..0f906f2f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00003-comment-indent.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00003-comment-indent.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00004-switch.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00004-switch.c
index ffb54327..ffb54327 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00004-switch.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00004-switch.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00005-cmt-align.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00005-cmt-align.c
index 5e773be1..5e773be1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00005-cmt-align.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00005-cmt-align.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00006-comment-convert.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00006-comment-convert.c
index c7a019f7..c7a019f7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00006-comment-convert.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00006-comment-convert.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00007-comment-convert.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00007-comment-convert.c
index 886d7698..886d7698 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00007-comment-convert.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00007-comment-convert.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00008-comment-convert.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00008-comment-convert.c
index c2af0f8b..c2af0f8b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00008-comment-convert.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00008-comment-convert.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00009-comment-convert.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00009-comment-convert.c
index 0d3f218a..0d3f218a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00009-comment-convert.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00009-comment-convert.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00010-braces.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00010-braces.c
index c4dc5faf..c4dc5faf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00010-braces.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00010-braces.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00011-braces.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00011-braces.c
index 893a32f6..893a32f6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00011-braces.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00011-braces.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00012-braces.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00012-braces.c
index 851f4df9..851f4df9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00012-braces.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00012-braces.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00013-braces.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00013-braces.c
index 2adcab76..2adcab76 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00013-braces.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00013-braces.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00014-braces.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00014-braces.c
index 1966a0c7..1966a0c7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00014-braces.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00014-braces.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00015-braces.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00015-braces.c
index c29cdecd..c29cdecd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00015-braces.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00015-braces.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00016-braces.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00016-braces.c
index ce7df756..ce7df756 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00016-braces.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00016-braces.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00020-define-if-indent.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00020-define-if-indent.c
index f7efd78c..f7efd78c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00020-define-if-indent.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00020-define-if-indent.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00050-brace-remove.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00050-brace-remove.c
index 857e4031..857e4031 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00050-brace-remove.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00050-brace-remove.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00051-brace-remove.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00051-brace-remove.c
index bef3e64d..bef3e64d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00051-brace-remove.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00051-brace-remove.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00052-brace-remove2.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00052-brace-remove2.c
index 30f352c6..30f352c6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00052-brace-remove2.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00052-brace-remove2.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00053-brace.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00053-brace.c
index 55c45a57..55c45a57 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00053-brace.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00053-brace.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00054-if_chain.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00054-if_chain.c
index a6e0c561..a6e0c561 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00054-if_chain.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00054-if_chain.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00055-braces-2.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00055-braces-2.c
index 38447f86..38447f86 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00055-braces-2.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00055-braces-2.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00056-brace-remove3.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00056-brace-remove3.c
index 258ca555..258ca555 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00056-brace-remove3.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00056-brace-remove3.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00057-brace-remove3.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00057-brace-remove3.c
index 26b22e2c..26b22e2c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00057-brace-remove3.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00057-brace-remove3.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00058-if_chain.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00058-if_chain.c
index ba15dc8e..ba15dc8e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00058-if_chain.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00058-if_chain.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00060-braces-2.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00060-braces-2.c
index 38447f86..38447f86 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00060-braces-2.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00060-braces-2.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00061-braces-3.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00061-braces-3.c
index 18784b82..18784b82 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00061-braces-3.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00061-braces-3.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00062-braces-4.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00062-braces-4.c
index 05c0d9b5..05c0d9b5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00062-braces-4.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00062-braces-4.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00065-braces-5.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00065-braces-5.c
index 6e1e6cab..6e1e6cab 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00065-braces-5.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00065-braces-5.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00066-vb-while.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00066-vb-while.c
index c189b7b7..c189b7b7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00066-vb-while.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00066-vb-while.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00067-vb-do.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00067-vb-do.c
index 79c6dedf..79c6dedf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00067-vb-do.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00067-vb-do.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00068-bsnl.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00068-bsnl.c
index 310e0eb2..310e0eb2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00068-bsnl.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00068-bsnl.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00069-vb-pp.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00069-vb-pp.c
index 9fb79a06..9fb79a06 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00069-vb-pp.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00069-vb-pp.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00070-return-multi.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00070-return-multi.c
index d351cdb0..d351cdb0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00070-return-multi.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00070-return-multi.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00071-include_define.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00071-include_define.h
index 89f11e5a..89f11e5a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00071-include_define.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00071-include_define.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00072-align-proto.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00072-align-proto.c
index 15746cd9..15746cd9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00072-align-proto.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00072-align-proto.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00073-nl_proto_endif.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00073-nl_proto_endif.c
index f50766b8..f50766b8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00073-nl_proto_endif.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00073-nl_proto_endif.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00074-clang-has_include.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00074-clang-has_include.h
index 976de29d..976de29d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00074-clang-has_include.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00074-clang-has_include.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00076-1225.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00076-1225.c
index 5b51cf3c..5b51cf3c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00076-1225.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00076-1225.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00081-else-if.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00081-else-if.c
index ff5f5b21..ff5f5b21 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00081-else-if.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00081-else-if.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00082-else-if.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00082-else-if.c
index 06cc37f2..06cc37f2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00082-else-if.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00082-else-if.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00083-Issue_3601.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00083-Issue_3601.c
new file mode 100644
index 00000000..a2b92fa0
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00083-Issue_3601.c
@@ -0,0 +1 @@
+struct cage cages[MAX_CAGES * sizeof(struct cage)];
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00091-cond.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00091-cond.c
index 840d4a6c..840d4a6c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00091-cond.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00091-cond.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00092-cond.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00092-cond.c
index a718a48b..a718a48b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00092-cond.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00092-cond.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00093-cond.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00093-cond.c
index 8d55652a..8d55652a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00093-cond.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00093-cond.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00094-Issue_3457.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00094-Issue_3457.c
new file mode 100644
index 00000000..d8baf3c9
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00094-Issue_3457.c
@@ -0,0 +1,12 @@
+#define IS_UNSIGNED(t) \
+ _Generic((t), \
+ uint8_t: true, \
+ uint16_t: true, \
+ uint32_t: true, \
+ uint64_t: true, \
+ unsigned long long: true, \
+ int8_t: false, \
+ int16_t: false, \
+ int32_t: false, \
+ int64_t: false, \
+ signed long long: false)
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00101-bugs-1.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00101-bugs-1.c
index abc2e08e..abc2e08e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00101-bugs-1.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00101-bugs-1.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00102-bugs-2.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00102-bugs-2.c
index 42bed259..42bed259 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00102-bugs-2.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00102-bugs-2.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00103-bugs-3.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00103-bugs-3.c
index 07d410b1..07d410b1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00103-bugs-3.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00103-bugs-3.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00104-bugs-4.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00104-bugs-4.c
index 61885443..61885443 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00104-bugs-4.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00104-bugs-4.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00105-bugs-5.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00105-bugs-5.c
index 72bfbe4d..72bfbe4d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00105-bugs-5.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00105-bugs-5.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00106-bugs-6.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00106-bugs-6.c
index 302c2328..302c2328 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00106-bugs-6.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00106-bugs-6.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00107-bugs-7.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00107-bugs-7.c
index 34fc146e..34fc146e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00107-bugs-7.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00107-bugs-7.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00108-bugs-8.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00108-bugs-8.c
index 0eae4dff..0eae4dff 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00108-bugs-8.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00108-bugs-8.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00110-misc.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00110-misc.c
index fdca271b..fdca271b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00110-misc.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00110-misc.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00111-misc.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00111-misc.c
index ad40a4ea..ad40a4ea 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00111-misc.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00111-misc.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00120-sp_cmt_cpp_start.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00120-sp_cmt_cpp_start.c
index 74a333c5..74a333c5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00120-sp_cmt_cpp_start.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00120-sp_cmt_cpp_start.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00121-sp_cmt_cpp_start.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00121-sp_cmt_cpp_start.c
index 3160a288..3160a288 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00121-sp_cmt_cpp_start.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00121-sp_cmt_cpp_start.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00122-sp_cmt_cpp_start.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00122-sp_cmt_cpp_start.c
index fe237c5a..fe237c5a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00122-sp_cmt_cpp_start.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00122-sp_cmt_cpp_start.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00123-cmt_reflow.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00123-cmt_reflow.c
index 44e0cf34..44e0cf34 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00123-cmt_reflow.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00123-cmt_reflow.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00130-minus-minus.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00130-minus-minus.c
index debe70a8..debe70a8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00130-minus-minus.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00130-minus-minus.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00135-br_cmt.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00135-br_cmt.c
index 9e6c6de9..9e6c6de9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00135-br_cmt.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00135-br_cmt.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00140-global-vars.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00140-global-vars.c
index 0df79336..0df79336 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00140-global-vars.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00140-global-vars.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00141-deref.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00141-deref.c
index a7ad3f5e..a7ad3f5e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00141-deref.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00141-deref.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00142-type-cast.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00142-type-cast.c
index 93076825..93076825 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00142-type-cast.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00142-type-cast.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00143-t3.in.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00143-t3.in.c
index b40fbd17..b40fbd17 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00143-t3.in.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00143-t3.in.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00144-align-proto-vars.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00144-align-proto-vars.c
index c7bf6081..c7bf6081 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00144-align-proto-vars.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00144-align-proto-vars.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00145-vardefcol.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00145-vardefcol.c
index 1238be0d..1238be0d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00145-vardefcol.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00145-vardefcol.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00146-Issue_3516.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00146-Issue_3516.c
new file mode 100644
index 00000000..828d2611
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00146-Issue_3516.c
@@ -0,0 +1,12 @@
+void g () {
+ h();
+ int x;
+
+ return;
+ {
+ h();
+ int x;
+
+ return;
+ }
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00147-Issue_3516.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00147-Issue_3516.c
new file mode 100644
index 00000000..63b9a440
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00147-Issue_3516.c
@@ -0,0 +1,12 @@
+void g () {
+ h();
+
+ int x;
+ return;
+ {
+ h();
+
+ int x;
+ return;
+ }
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00148-Issue_3518.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00148-Issue_3518.c
new file mode 100644
index 00000000..cf8d0c95
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00148-Issue_3518.c
@@ -0,0 +1,10 @@
+void g () {
+ h();
+ int x;
+ return;
+ {
+ h();
+ int x;
+ return;
+ }
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00150-casts.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00150-casts.c
index d89ad598..d89ad598 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00150-casts.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00150-casts.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00151-casts.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00151-casts.c
index 9f2a13de..9f2a13de 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00151-casts.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00151-casts.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00152-casts.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00152-casts.c
index acc2ebe4..acc2ebe4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00152-casts.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00152-casts.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00153-casts.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00153-casts.c
index 8bf710b6..8bf710b6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00153-casts.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00153-casts.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00154-casts.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00154-casts.c
index fca4010b..fca4010b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00154-casts.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00154-casts.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00155-cast_brace.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00155-cast_brace.c
index 6e8f12b2..6e8f12b2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00155-cast_brace.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00155-cast_brace.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00160-fcn_indent.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00160-fcn_indent.c
index 23c173c2..23c173c2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00160-fcn_indent.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00160-fcn_indent.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00161-fcn_indent.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00161-fcn_indent.c
index 90342554..90342554 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00161-fcn_indent.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00161-fcn_indent.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00162-fcn_indent.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00162-fcn_indent.c
index c8f152d3..c8f152d3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00162-fcn_indent.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00162-fcn_indent.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00163-fcn_indent.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00163-fcn_indent.c
index bbf36763..bbf36763 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00163-fcn_indent.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00163-fcn_indent.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00164-fcn_indent_func_def_col1.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00164-fcn_indent_func_def_col1.c
index c029669a..c029669a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00164-fcn_indent_func_def_col1.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00164-fcn_indent_func_def_col1.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00165-sp_func_call_user_inside_fparen.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00165-sp_func_call_user_inside_fparen.c
index af30d708..af30d708 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00165-sp_func_call_user_inside_fparen.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00165-sp_func_call_user_inside_fparen.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00170-beautifier-off.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00170-beautifier-off.c
index 351d76ff..351d76ff 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00170-beautifier-off.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00170-beautifier-off.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00180-lvalue.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00180-lvalue.c
index a8121da4..a8121da4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00180-lvalue.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00180-lvalue.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00201-case.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00201-case.c
index 0d004c19..0d004c19 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00201-case.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00201-case.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00202-case.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00202-case.c
index d5175084..d5175084 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00202-case.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00202-case.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00203-case.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00203-case.c
index 548a2a64..548a2a64 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00203-case.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00203-case.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00204-bug_1718.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00204-bug_1718.c
index eaddc974..eaddc974 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00204-bug_1718.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00204-bug_1718.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00205-case-nl_before_return.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00205-case-nl_before_return.c
index b650d7ab..b650d7ab 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00205-case-nl_before_return.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00205-case-nl_before_return.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00206-case-nl_before_return.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00206-case-nl_before_return.c
index d0b6bbbb..d0b6bbbb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00206-case-nl_before_return.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00206-case-nl_before_return.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00207-nl_before_ignore_after_case.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00207-nl_before_ignore_after_case.c
index 4c361605..4c361605 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00207-nl_before_ignore_after_case.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00207-nl_before_ignore_after_case.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00301-align-struct-init.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00301-align-struct-init.c
index cfa44035..cfa44035 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00301-align-struct-init.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00301-align-struct-init.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00302-one-liner-init.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00302-one-liner-init.c
index 63c86afe..63c86afe 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00302-one-liner-init.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00302-one-liner-init.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00303-one-liner-init.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00303-one-liner-init.c
index 503eedfb..503eedfb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00303-one-liner-init.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00303-one-liner-init.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00304-one-liner-init.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00304-one-liner-init.c
index 471aaa2d..471aaa2d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00304-one-liner-init.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00304-one-liner-init.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00305-one-liner-define.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00305-one-liner-define.c
index 99f24f5a..99f24f5a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00305-one-liner-define.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00305-one-liner-define.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00310-sp_embed_comment.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00310-sp_embed_comment.c
index 3dc105aa..3dc105aa 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00310-sp_embed_comment.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00310-sp_embed_comment.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00320-indent_first_bool_expr.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00320-indent_first_bool_expr.c
index 0dcaa413..0dcaa413 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00320-indent_first_bool_expr.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00320-indent_first_bool_expr.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00401-align-equ.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00401-align-equ.c
index 9b213f96..9b213f96 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00401-align-equ.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00401-align-equ.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00402-align-var.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00402-align-var.c
index d7396d46..d7396d46 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00402-align-var.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00402-align-var.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00403-align-var.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00403-align-var.c
index cb62295e..cb62295e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00403-align-var.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00403-align-var.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00404-align-var.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00404-align-var.c
index 48af3d3c..48af3d3c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00404-align-var.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00404-align-var.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00405-bits.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00405-bits.c
index 9a5a6ceb..9a5a6ceb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00405-bits.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00405-bits.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00406-bug_i_771.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00406-bug_i_771.c
index 9c2b1cc2..9c2b1cc2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00406-bug_i_771.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00406-bug_i_771.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00411-align-typedef.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00411-align-typedef.c
index 001e4a52..001e4a52 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00411-align-typedef.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00411-align-typedef.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00412-align-typedef.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00412-align-typedef.c
index 001e4a52..001e4a52 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00412-align-typedef.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00412-align-typedef.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00413-align-typedef.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00413-align-typedef.c
index d5f826e5..d5f826e5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00413-align-typedef.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00413-align-typedef.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00414-align-typedef.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00414-align-typedef.c
index 8e63e499..8e63e499 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00414-align-typedef.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00414-align-typedef.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00415-align_stack.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00415-align_stack.c
index 507d6da2..507d6da2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00415-align_stack.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00415-align_stack.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00416-align_sf_call_thresh_416.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00416-align_sf_call_thresh_416.c
index 36fbca84..36fbca84 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00416-align_sf_call_thresh_416.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00416-align_sf_call_thresh_416.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00417-align_sf_call_thresh_417.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00417-align_sf_call_thresh_417.c
index 3047b932..3047b932 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00417-align_sf_call_thresh_417.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00417-align_sf_call_thresh_417.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00418-align_sf_call_span_418.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00418-align_sf_call_span_418.c
index 82444a2b..82444a2b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00418-align_sf_call_span_418.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00418-align_sf_call_span_418.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00419-align_sf_call_span_419.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00419-align_sf_call_span_419.c
index 20b9705a..20b9705a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00419-align_sf_call_span_419.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00419-align_sf_call_span_419.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00420-Issue-2278.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00420-Issue-2278.c
index 2bab88ab..2bab88ab 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00420-Issue-2278.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00420-Issue-2278.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00421-nl_ds_struct_enum.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00421-nl_ds_struct_enum.c
index ec5bcc31..ec5bcc31 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00421-nl_ds_struct_enum.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00421-nl_ds_struct_enum.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00422-nl_ds_struct_enum.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00422-nl_ds_struct_enum.c
index d45b2add..d45b2add 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00422-nl_ds_struct_enum.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00422-nl_ds_struct_enum.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00423-bug_1702.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00423-bug_1702.c
index bf74c8bd..bf74c8bd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00423-bug_1702.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00423-bug_1702.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00430-paren-indent.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00430-paren-indent.c
index f6b148ce..f6b148ce 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00430-paren-indent.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00430-paren-indent.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00431-paren-indent.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00431-paren-indent.c
index 51a80854..51a80854 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00431-paren-indent.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00431-paren-indent.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00432-paren-indent.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00432-paren-indent.c
index 9ab77831..9ab77831 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00432-paren-indent.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00432-paren-indent.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00440-bug_489.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00440-bug_489.c
index 47a5da06..47a5da06 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00440-bug_489.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00440-bug_489.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00451-enum_gallery.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00451-enum_gallery.c
index 3cb8db3c..3cb8db3c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00451-enum_gallery.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00451-enum_gallery.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00452-enum_gallery.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00452-enum_gallery.c
index cb235c3d..cb235c3d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00452-enum_gallery.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00452-enum_gallery.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00453-enum_gallery.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00453-enum_gallery.c
index af537d1d..af537d1d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00453-enum_gallery.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00453-enum_gallery.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00453-enum_gallery.rerun.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00453-enum_gallery.rerun.c
index 148f1970..148f1970 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00453-enum_gallery.rerun.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00453-enum_gallery.rerun.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00454-enum_gallery.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00454-enum_gallery.c
index 8d00cbce..8d00cbce 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00454-enum_gallery.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00454-enum_gallery.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00461-align_func_proto_star_amp.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00461-align_func_proto_star_amp.h
index 5b0490c8..5b0490c8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00461-align_func_proto_star_amp.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00461-align_func_proto_star_amp.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00462-align_func_proto_star_amp.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00462-align_func_proto_star_amp.h
index c05fc454..c05fc454 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00462-align_func_proto_star_amp.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00462-align_func_proto_star_amp.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00463-align_func_proto_star_amp.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00463-align_func_proto_star_amp.h
index 702b9396..702b9396 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00463-align_func_proto_star_amp.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00463-align_func_proto_star_amp.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00464-align_func_proto_star_amp.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00464-align_func_proto_star_amp.h
index f1f927dc..f1f927dc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00464-align_func_proto_star_amp.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00464-align_func_proto_star_amp.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00465-align_func_proto_star_amp.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00465-align_func_proto_star_amp.h
index 9bd55a23..9bd55a23 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00465-align_func_proto_star_amp.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00465-align_func_proto_star_amp.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00466-align_func_proto_star_amp.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00466-align_func_proto_star_amp.h
index b91044f7..b91044f7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00466-align_func_proto_star_amp.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00466-align_func_proto_star_amp.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00467-align_func_proto_star_amp.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00467-align_func_proto_star_amp.h
index e87c4cd8..e87c4cd8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00467-align_func_proto_star_amp.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00467-align_func_proto_star_amp.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00468-align_func_proto_star_amp.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00468-align_func_proto_star_amp.h
index 0fb8eacb..0fb8eacb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00468-align_func_proto_star_amp.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00468-align_func_proto_star_amp.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00469-align_func_proto_star_amp.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00469-align_func_proto_star_amp.h
index 5f776985..5f776985 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00469-align_func_proto_star_amp.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00469-align_func_proto_star_amp.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00501-bool-pos.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00501-bool-pos.c
index b9d537a1..b9d537a1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00501-bool-pos.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00501-bool-pos.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00502-bool-pos.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00502-bool-pos.c
index 7890fcd7..7890fcd7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00502-bool-pos.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00502-bool-pos.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00503-pos_compare.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00503-pos_compare.c
index cc809a09..cc809a09 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00503-pos_compare.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00503-pos_compare.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00504-pos_compare.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00504-pos_compare.c
index fe16e10e..fe16e10e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00504-pos_compare.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00504-pos_compare.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00505-pos_conditional.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00505-pos_conditional.c
index 91f17d57..91f17d57 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00505-pos_conditional.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00505-pos_conditional.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00506-pos_conditional.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00506-pos_conditional.c
index 23945656..23945656 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00506-pos_conditional.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00506-pos_conditional.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00510-bool-pos.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00510-bool-pos.c
index 5958e3c5..5958e3c5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00510-bool-pos.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00510-bool-pos.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00511-bool-pos.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00511-bool-pos.c
index 8f6effd8..8f6effd8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00511-bool-pos.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00511-bool-pos.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00512-bool-pos.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00512-bool-pos.c
index 2e82b7ef..2e82b7ef 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00512-bool-pos.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00512-bool-pos.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00513-bool-pos.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00513-bool-pos.c
index cad844c5..cad844c5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00513-bool-pos.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00513-bool-pos.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00514-my_infile.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00514-my_infile.c
index 3f4c76fb..3f4c76fb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00514-my_infile.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00514-my_infile.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00600-dos.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00600-dos.c
index a0482ba3..a0482ba3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00600-dos.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00600-dos.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00601-mac.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00601-mac.c
index 2be04c61..2be04c61 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00601-mac.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00601-mac.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00611-pp-space.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00611-pp-space.c
index 217fc89a..217fc89a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00611-pp-space.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00611-pp-space.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00612-pp-space.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00612-pp-space.c
index 7c19bf1e..7c19bf1e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00612-pp-space.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00612-pp-space.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00613-pp-space.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00613-pp-space.c
index 7092a193..7092a193 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00613-pp-space.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00613-pp-space.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00614-pp-space.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00614-pp-space.c
index 103c2ca4..103c2ca4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00614-pp-space.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00614-pp-space.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00615-pp-nest.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00615-pp-nest.c
index 5e99a1d0..5e99a1d0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00615-pp-nest.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00615-pp-nest.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00616-pp-if-indent.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00616-pp-if-indent.c
index dc2dea10..dc2dea10 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00616-pp-if-indent.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00616-pp-if-indent.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00617-pp-if-indent.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00617-pp-if-indent.c
index 2caf73d2..2caf73d2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00617-pp-if-indent.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00617-pp-if-indent.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00618-pp-if-indent.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00618-pp-if-indent.c
index f7b3d270..f7b3d270 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00618-pp-if-indent.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00618-pp-if-indent.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00619-Issue_3169.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00619-Issue_3169.c
index 848e451e..848e451e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00619-Issue_3169.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00619-Issue_3169.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00620-indent-assign.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00620-indent-assign.c
index c01e146a..c01e146a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00620-indent-assign.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00620-indent-assign.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00621-nl_endif.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00621-nl_endif.c
index bae6272c..bae6272c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00621-nl_endif.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00621-nl_endif.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00622-indent-off-after-assign.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00622-indent-off-after-assign.c
index eb083f7b..eb083f7b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00622-indent-off-after-assign.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00622-indent-off-after-assign.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00631-nl_assign.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00631-nl_assign.c
index 7319d498..7319d498 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00631-nl_assign.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00631-nl_assign.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00632-nl_assign.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00632-nl_assign.c
index 2452e773..2452e773 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00632-nl_assign.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00632-nl_assign.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00633-bug_3156.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00633-bug_3156.c
index 508a0098..508a0098 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00633-bug_3156.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00633-bug_3156.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00701-function-def.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00701-function-def.c
index 6f0133e8..6f0133e8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00701-function-def.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00701-function-def.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00702-function-def.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00702-function-def.c
index eaa568da..eaa568da 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00702-function-def.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00702-function-def.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00703-function-def.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00703-function-def.c
index 76cf664f..76cf664f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00703-function-def.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00703-function-def.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00710-add_long_comment.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00710-add_long_comment.c
index 82bf680e..82bf680e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00710-add_long_comment.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00710-add_long_comment.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00721-nl-semicolon.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00721-nl-semicolon.c
index 441091b5..441091b5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00721-nl-semicolon.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00721-nl-semicolon.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00801-fcn_type.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00801-fcn_type.c
index 72af3fa3..72af3fa3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00801-fcn_type.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00801-fcn_type.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00802-funcfunc.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00802-funcfunc.c
index 4d0f0432..4d0f0432 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00802-funcfunc.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00802-funcfunc.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00803-fcn_type.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00803-fcn_type.c
index 9e1e5c55..9e1e5c55 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00803-fcn_type.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00803-fcn_type.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00901-code_width.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00901-code_width.c
new file mode 100644
index 00000000..6c2a99c7
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00901-code_width.c
@@ -0,0 +1,87 @@
+
+static int short_function_name(struct device *dev,
+ struct device_driver *drv);
+
+/* Assuming a 60-column limit */
+static int short_function_name(struct device *dev,
+ struct device_driver *drv)
+{
+ this->translateLabels(labelID,
+ completedLabelID,
+ selectedLabelID,
+ text,
+ selectedText,
+ completedText,
+ fontId,
+ selectedFontId,
+ completedFontId);
+ call_some_really_long_function.of_some_sort(
+ some_long_parameter1,
+ some_long_parameter2);
+
+ abc = call_some_other_really_long_function.of_some_sort(
+ some_long_parameter1,
+ some_long_parameter2);
+
+ abc.def.ghi =
+ call_some_other_really_long_function.of_some_sort(
+ some_long_parameter1,
+ some_long_parameter2);
+
+ abcdefghijklmnopqrstuvwxyz = abc + def + ghi + jkl +
+ mno + prq + stu + vwx + yz;
+
+ return 1;
+}
+
+typedef
+ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+ yyyyyyyyyyyyyyyyyyyyyy;
+
+typedef some_return_value (*some_function_type)(another_type
+ parameter1,
+ another_type
+ parameter2);
+
+typedef struct
+ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+{
+ int yyyyyyyyyyyyyyyyyyyyyy;
+} x_t;
+
+static void some_really_long_function_name(
+ struct device *dev,
+ struct device_driver *drv)
+{
+ if ((some_variable_name &&
+ somefunction(param1, param2, param3))) {
+ asdfghjk = asdfasdfasd.aasdfasd +
+ (asdfasd.asdas * 1234.65);
+ }
+
+ for (struct something_really_really_excessive *
+ a_long_ptr_name = get_first_item();
+ a_long_ptr_name != NULL;
+ a_long_ptr_name = get_next_item(a_long_ptr_name))
+ {
+ }
+
+ for (a = get_first(); a != NULL; a = GetNext(a))
+ {
+ }
+
+ for (a_ptr = get_first(); a_ptr != NULL;
+ a_ptr = GetNext(a))
+ {
+ }
+
+ register_clcmd( "examine",
+ "do_examine",
+ -1,
+ "-Allows a player to examine the health and armor of a teammate" );
+ register_clcmd( "/examine",
+ "do_examine",
+ -1,
+ "-Allows a player to examine the health and armor of a teammate" );
+}
+
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00902-code_width.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00902-code_width.c
new file mode 100644
index 00000000..be2e42f4
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00902-code_width.c
@@ -0,0 +1,76 @@
+
+static int short_function_name(struct device *dev,
+ struct device_driver *drv);
+
+/* Assuming a 60-column limit */
+static int short_function_name(struct device *dev,
+ struct device_driver *drv)
+{
+ this->translateLabels(labelID, completedLabelID,
+ selectedLabelID, text,
+ selectedText, completedText,
+ fontId, selectedFontId,
+ completedFontId);
+ call_some_really_long_function.of_some_sort(
+ some_long_parameter1, some_long_parameter2);
+
+ abc = call_some_other_really_long_function.of_some_sort(
+ some_long_parameter1, some_long_parameter2);
+
+ abc.def.ghi =
+ call_some_other_really_long_function.of_some_sort(
+ some_long_parameter1, some_long_parameter2);
+
+ abcdefghijklmnopqrstuvwxyz = abc + def + ghi + jkl +
+ mno + prq + stu + vwx + yz;
+
+ return 1;
+}
+
+typedef
+ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+ yyyyyyyyyyyyyyyyyyyyyy;
+
+typedef some_return_value (*some_function_type)(another_type
+ parameter1,
+ another_type
+ parameter2);
+
+typedef struct
+ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+{
+ int yyyyyyyyyyyyyyyyyyyyyy;
+} x_t;
+
+static void some_really_long_function_name(
+ struct device *dev, struct device_driver *drv)
+{
+ if ((some_variable_name &&
+ somefunction(param1, param2, param3))) {
+ asdfghjk = asdfasdfasd.aasdfasd +
+ (asdfasd.asdas * 1234.65);
+ }
+
+ for (struct something_really_really_excessive *
+ a_long_ptr_name = get_first_item();
+ a_long_ptr_name != NULL;
+ a_long_ptr_name = get_next_item(a_long_ptr_name))
+ {
+ }
+
+ for (a = get_first(); a != NULL; a = GetNext(a))
+ {
+ }
+
+ for (a_ptr = get_first();
+ a_ptr != NULL;
+ a_ptr = GetNext(a))
+ {
+ }
+
+ register_clcmd( "examine", "do_examine", -1,
+ "-Allows a player to examine the health and armor of a teammate" );
+ register_clcmd( "/examine", "do_examine", -1,
+ "-Allows a player to examine the health and armor of a teammate" );
+}
+
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00903-code_width.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00903-code_width.c
new file mode 100644
index 00000000..70b3a113
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00903-code_width.c
@@ -0,0 +1,75 @@
+
+static int short_function_name(struct device *dev, struct device_driver *drv);
+
+/* Assuming a 60-column limit */
+static int short_function_name(struct device *dev, struct device_driver *drv)
+{
+ this->translateLabels(labelID,
+ completedLabelID,
+ selectedLabelID,
+ text,
+ selectedText,
+ completedText,
+ fontId,
+ selectedFontId,
+ completedFontId);
+ call_some_really_long_function.of_some_sort(some_long_parameter1,
+ some_long_parameter2);
+
+ abc = call_some_other_really_long_function.of_some_sort(
+ some_long_parameter1,
+ some_long_parameter2);
+
+ abc.def.ghi = call_some_other_really_long_function.of_some_sort(
+ some_long_parameter1,
+ some_long_parameter2);
+
+ abcdefghijklmnopqrstuvwxyz = abc + def + ghi + jkl + mno + prq + stu + vwx +
+ yz;
+
+ return 1;
+}
+
+typedef xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+ yyyyyyyyyyyyyyyyyyyyyy;
+
+typedef some_return_value (*some_function_type)(another_type parameter1,
+ another_type parameter2);
+
+typedef struct xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+{
+ int yyyyyyyyyyyyyyyyyyyyyy;
+} x_t;
+
+static void some_really_long_function_name(struct device *dev,
+ struct device_driver *drv)
+{
+ if ((some_variable_name && somefunction(param1, param2, param3))) {
+ asdfghjk = asdfasdfasd.aasdfasd + (asdfasd.asdas * 1234.65);
+ }
+
+ for (struct something_really_really_excessive *a_long_ptr_name =
+ get_first_item();
+ a_long_ptr_name != NULL;
+ a_long_ptr_name = get_next_item(a_long_ptr_name))
+ {
+ }
+
+ for (a = get_first(); a != NULL; a = GetNext(a))
+ {
+ }
+
+ for (a_ptr = get_first(); a_ptr != NULL; a_ptr = GetNext(a))
+ {
+ }
+
+ register_clcmd( "examine",
+ "do_examine",
+ -1,
+ "-Allows a player to examine the health and armor of a teammate" );
+ register_clcmd( "/examine",
+ "do_examine",
+ -1,
+ "-Allows a player to examine the health and armor of a teammate" );
+}
+
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00910-pascal_ptr.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00910-pascal_ptr.c
index 27a9cdef..27a9cdef 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00910-pascal_ptr.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00910-pascal_ptr.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00911-pascal_ptr.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00911-pascal_ptr.c
index 4c0d0dde..4c0d0dde 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00911-pascal_ptr.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/00911-pascal_ptr.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01000-mod-paren.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01000-mod-paren.c
index ca919f77..ca919f77 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01000-mod-paren.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01000-mod-paren.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01001-nl-comment.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01001-nl-comment.c
index ecac3e2a..ecac3e2a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01001-nl-comment.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01001-nl-comment.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01002-mod-paren.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01002-mod-paren.c
index 2537330f..2537330f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01002-mod-paren.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01002-mod-paren.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01005-mod_case_brace.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01005-mod_case_brace.c
index caeae178..caeae178 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01005-mod_case_brace.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01005-mod_case_brace.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01006-mod_case_brace.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01006-mod_case_brace.c
index 371bd5cb..371bd5cb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01006-mod_case_brace.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01006-mod_case_brace.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01007-mod_case_brace.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01007-mod_case_brace.c
index 2ea3dea5..2ea3dea5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01007-mod_case_brace.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01007-mod_case_brace.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01008-Issue_3366.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01008-Issue_3366.c
index 75a95e36..75a95e36 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01008-Issue_3366.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01008-Issue_3366.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01009-mod_move_case_return.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01009-mod_move_case_return.c
new file mode 100644
index 00000000..484b4c33
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01009-mod_move_case_return.c
@@ -0,0 +1,41 @@
+static int ConvertEndian(void *ptr, int bytes)
+{
+ switch(bytes)
+ {
+ case 2:
+ {
+ uint16_t *value = (uint16_t *) ptr;
+
+ *value = bswap_16(*value);
+ return 1;
+ }
+ case 4:
+ {
+ uint32_t *value = (uint32_t *) ptr;
+
+ *value = bswap_32(*value);
+ return 1+
+ 2+3;
+ }
+
+ case 8:
+ {
+ uint64_t *value = (uint64_t *) ptr;
+
+ *value = bswap_64(*value);
+ return 1+
+
+ 2
+
+ +fn(
+
+ x
+
+ );
+ }
+ // comment
+ default:
+ break;
+ }
+ return 0;
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01010-mod_move_case_return_bad.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01010-mod_move_case_return_bad.c
new file mode 100644
index 00000000..c6fa63e8
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01010-mod_move_case_return_bad.c
@@ -0,0 +1,52 @@
+static int ConvertEndian(void *ptr, int bytes)
+{
+ switch(bytes)
+ {
+ case 2:
+ {
+ uint16_t *value = (uint16_t *) ptr;
+
+ *value = bswap_16(*value);
+ return 1;
+ }
+ case 4:
+ {
+ uint32_t *value = (uint32_t *) ptr;
+
+ *value = bswap_32(*value);
+ }
+ return 1+
+ 2+3
+
+ case 8:
+ {
+ uint64_t *value = (uint64_t *) ptr;
+
+ *value = bswap_64(*value);
+ }
+
+ return 1+
+
+ 2
+
+ +fn(
+
+ x
+ )
+ // comment
+ default:
+ break;
+
+ case 16:
+ {
+ {
+ uint32_t *value = (uint32_t *) ptr;
+
+ *value = bswap_32(*value);
+ }
+ return 1+
+ 2+3
+ };
+ }
+ return 0;
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01011-semicolons.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01011-semicolons.c
index 962ec588..962ec588 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01011-semicolons.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01011-semicolons.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01012-semicolons.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01012-semicolons.c
index 54d895e7..54d895e7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01012-semicolons.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01012-semicolons.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01015-paren_indent.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01015-paren_indent.c
index d993315c..d993315c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01015-paren_indent.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01015-paren_indent.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01016-align_attr.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01016-align_attr.c
index 012217e4..012217e4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01016-align_attr.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01016-align_attr.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01020-kw_subst.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01020-kw_subst.c
index 61b43c3f..61b43c3f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01020-kw_subst.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01020-kw_subst.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01021-hello.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01021-hello.c
index 6ba46ef7..6ba46ef7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01021-hello.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01021-hello.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01022-kw_subst.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01022-kw_subst.c
index 6cba8370..6cba8370 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01022-kw_subst.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01022-kw_subst.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01030-multi.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01030-multi.h
index 14a599c7..14a599c7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01030-multi.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01030-multi.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01035-func_wrap.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01035-func_wrap.c
index b2f86805..b2f86805 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01035-func_wrap.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01035-func_wrap.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01036-func_wrap.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01036-func_wrap.c
index 24e932ed..24e932ed 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01036-func_wrap.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01036-func_wrap.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01037-type_wrap.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01037-type_wrap.c
index c3c23569..c3c23569 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01037-type_wrap.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01037-type_wrap.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01040-newline_after_endif.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01040-newline_after_endif.c
index 2a0cbe62..2a0cbe62 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01040-newline_after_endif.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01040-newline_after_endif.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01050-func_call_user.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01050-func_call_user.c
index 82eba7cb..82eba7cb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01050-func_call_user.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01050-func_call_user.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01060-backslash-newline-lex.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01060-backslash-newline-lex.c
index f5000b82..f5000b82 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01060-backslash-newline-lex.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01060-backslash-newline-lex.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01070-various_colons.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01070-various_colons.c
index 0850b17e..0850b17e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01070-various_colons.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01070-various_colons.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01071-various_colons.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01071-various_colons.c
index e25134ab..e25134ab 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01071-various_colons.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01071-various_colons.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01080-bug_1196.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01080-bug_1196.c
index 9fdabca6..9fdabca6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01080-bug_1196.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/01080-bug_1196.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02000-i2c-core.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02000-i2c-core.c
index 528a6161..528a6161 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02000-i2c-core.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02000-i2c-core.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02001-directfb.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02001-directfb.h
index 3c7ffc18..3c7ffc18 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02001-directfb.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02001-directfb.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02002-i2c-core.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02002-i2c-core.c
index 698df2a6..698df2a6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02002-i2c-core.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02002-i2c-core.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02003-Issue_3353.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02003-Issue_3353.h
new file mode 100644
index 00000000..f189ebfa
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02003-Issue_3353.h
@@ -0,0 +1,6 @@
+struct A {
+ void (*in)(
+ void);
+ void (*out)(
+ void);
+};
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02100-i2c-core.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02100-i2c-core.c
index df01ad5b..df01ad5b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02100-i2c-core.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02100-i2c-core.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02101-comment-indent.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02101-comment-indent.c
index 7c5f0f0c..7c5f0f0c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02101-comment-indent.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02101-comment-indent.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02200-xml.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02200-xml.c
index 62bd81d0..62bd81d0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02200-xml.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02200-xml.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02201-align-string.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02201-align-string.c
index 0b2cf25a..0b2cf25a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02201-align-string.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02201-align-string.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02300-preproc-if.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02300-preproc-if.c
index 8e20a744..8e20a744 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02300-preproc-if.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02300-preproc-if.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02301-preproc-if.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02301-preproc-if.c
index 0130e1f5..0130e1f5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02301-preproc-if.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02301-preproc-if.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02302-nl-cont.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02302-nl-cont.c
index dfbb0c2d..dfbb0c2d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02302-nl-cont.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02302-nl-cont.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02303-nl-cont2.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02303-nl-cont2.c
index a0129423..a0129423 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02303-nl-cont2.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02303-nl-cont2.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02310-empty-for.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02310-empty-for.c
index 4bd43b09..4bd43b09 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02310-empty-for.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02310-empty-for.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02311-pragma.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02311-pragma.c
index ec944697..ec944697 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02311-pragma.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02311-pragma.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02315-pp_ret.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02315-pp_ret.c
index 18a3d5cb..18a3d5cb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02315-pp_ret.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02315-pp_ret.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02320-nl_create_one_liner.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02320-nl_create_one_liner.c
index 55974c3c..55974c3c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02320-nl_create_one_liner.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02320-nl_create_one_liner.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02325-sort_include.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02325-sort_include.c
index 4f2b20bf..4f2b20bf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02325-sort_include.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02325-sort_include.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02330-one_liners.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02330-one_liners.c
index 57d8ba44..57d8ba44 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02330-one_liners.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02330-one_liners.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02410-ifdef-indent.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02410-ifdef-indent.c
index e71d8cf3..e71d8cf3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02410-ifdef-indent.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02410-ifdef-indent.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02411-ifdef-indent.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02411-ifdef-indent.c
index bf39a98c..bf39a98c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02411-ifdef-indent.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02411-ifdef-indent.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02412-ifdef-indent.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02412-ifdef-indent.c
index 23b4dd37..23b4dd37 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02412-ifdef-indent.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02412-ifdef-indent.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02413-ifdef-indent.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02413-ifdef-indent.c
index 8738bbf7..8738bbf7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02413-ifdef-indent.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02413-ifdef-indent.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02414-whole_file_ifdef.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02414-whole_file_ifdef.c
index c767bbf7..c767bbf7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02414-whole_file_ifdef.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02414-whole_file_ifdef.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02415-endif.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02415-endif.c
index c8b99a6a..c8b99a6a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02415-endif.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02415-endif.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02416-cmt_nl_end.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02416-cmt_nl_end.c
index 56de21ec..56de21ec 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02416-cmt_nl_end.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02416-cmt_nl_end.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02421-cmt_multi.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02421-cmt_multi.c
index 61faac36..61faac36 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02421-cmt_multi.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02421-cmt_multi.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02422-cmt_multi.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02422-cmt_multi.c
index bbdd79cd..bbdd79cd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02422-cmt_multi.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02422-cmt_multi.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02423-cmt_multi_utf8.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02423-cmt_multi_utf8.c
index 05b01f84..05b01f84 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02423-cmt_multi_utf8.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02423-cmt_multi_utf8.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02431-cmt_right_align.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02431-cmt_right_align.c
index 315e5010..315e5010 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02431-cmt_right_align.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02431-cmt_right_align.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02432-cmt_right_align.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02432-cmt_right_align.c
index eef43777..eef43777 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02432-cmt_right_align.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02432-cmt_right_align.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02440-string_utf8.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02440-string_utf8.c
index a473e1bf..a473e1bf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02440-string_utf8.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02440-string_utf8.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02441-utf8-identifiers.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02441-utf8-identifiers.c
index 1dc39e9c..1dc39e9c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02441-utf8-identifiers.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02441-utf8-identifiers.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02451-nl_return_expr.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02451-nl_return_expr.c
index bf8621d5..bf8621d5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02451-nl_return_expr.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02451-nl_return_expr.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02452-nl_return_expr.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02452-nl_return_expr.c
index 4dc23adf..4dc23adf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02452-nl_return_expr.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02452-nl_return_expr.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02453-nl_return_expr.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02453-nl_return_expr.c
index c917fb17..c917fb17 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02453-nl_return_expr.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02453-nl_return_expr.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02454-nl_return_expr.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02454-nl_return_expr.c
index 2e33d2b0..2e33d2b0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02454-nl_return_expr.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02454-nl_return_expr.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02455-macro-returns.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02455-macro-returns.c
index dba84c56..dba84c56 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02455-macro-returns.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02455-macro-returns.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02456-macro-returns.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02456-macro-returns.c
index 7cd29044..7cd29044 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02456-macro-returns.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02456-macro-returns.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02457-nl_before_return.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02457-nl_before_return.c
index a396202f..a396202f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02457-nl_before_return.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02457-nl_before_return.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02460-freebsd.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02460-freebsd.c
index 804c5ec7..804c5ec7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02460-freebsd.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02460-freebsd.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02486-doxy-comment.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02486-doxy-comment.c
index e2a6c2c4..e2a6c2c4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02486-doxy-comment.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02486-doxy-comment.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02487-doxy-comment.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02487-doxy-comment.c
new file mode 100644
index 00000000..5049dada
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02487-doxy-comment.c
@@ -0,0 +1,11 @@
+
+
+
+
+
+int a; /* a */
+int a; /* /a */
+int a; /* /<a */
+int a; /* !a */
+int a; /* !<a */
+
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02501-custom_types_ssl.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02501-custom_types_ssl.c
index 3e28d2e3..3e28d2e3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02501-custom_types_ssl.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02501-custom_types_ssl.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02502-custom_types_ssl.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02502-custom_types_ssl.c
index 0df5ddad..0df5ddad 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02502-custom_types_ssl.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02502-custom_types_ssl.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02504-align_keep_extra.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02504-align_keep_extra.c
index 985f428c..985f428c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02504-align_keep_extra.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02504-align_keep_extra.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02510-asm.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02510-asm.c
index 6609bf9b..6609bf9b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02510-asm.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/02510-asm.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/07630-indent-vbrace.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/07630-indent-vbrace.c
index a1344348..a1344348 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/07630-indent-vbrace.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/07630-indent-vbrace.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/08399-gh399.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/08399-gh399.c
index 780234ab..780234ab 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/08399-gh399.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/08399-gh399.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09588-sf588.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09588-sf588.c
index d1c5f1cc..d1c5f1cc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09588-sf588.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09588-sf588.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09594-sf594.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09594-sf594.c
index 94a1973c..94a1973c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09594-sf594.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09594-sf594.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09601-sp_after_sparen.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09601-sp_after_sparen.c
index 93cbfea2..93cbfea2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09601-sp_after_sparen.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09601-sp_after_sparen.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09602-bug_671.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09602-bug_671.c
index a9d54ee8..a9d54ee8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09602-bug_671.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09602-bug_671.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09603-indent_ternary-1.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09603-indent_ternary-1.c
index f9200886..f9200886 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09603-indent_ternary-1.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09603-indent_ternary-1.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09604-indent_ternary-2.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09604-indent_ternary-2.c
index e6d3576c..e6d3576c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09604-indent_ternary-2.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09604-indent_ternary-2.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09605-negative_value.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09605-negative_value.c
index 6399fbef..6399fbef 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09605-negative_value.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09605-negative_value.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09606-extern.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09606-extern.c
index d43131fe..d43131fe 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09606-extern.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09606-extern.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09607-attribute.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09607-attribute.c
index 19e3a057..19e3a057 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09607-attribute.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09607-attribute.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09608-func_call_user2.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09608-func_call_user2.c
index ee4e24d4..ee4e24d4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09608-func_call_user2.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09608-func_call_user2.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09609-Issue_2279.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09609-Issue_2279.c
index 88c0ae84..88c0ae84 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09609-Issue_2279.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09609-Issue_2279.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09610-bug_i_876.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09610-bug_i_876.c
index e1afece6..e1afece6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09610-bug_i_876.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09610-bug_i_876.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09611-bug_i_222.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09611-bug_i_222.c
index 4f0ded31..4f0ded31 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09611-bug_i_222.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09611-bug_i_222.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09612-bug_1041.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09612-bug_1041.c
index 7c07615b..7c07615b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09612-bug_1041.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09612-bug_1041.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09613-i1413.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09613-i1413.c
index 4287ca86..4287ca86 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09613-i1413.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09613-i1413.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09614-string_prefixes.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09614-string_prefixes.c
index e901c9ac..e901c9ac 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09614-string_prefixes.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09614-string_prefixes.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09615-i1564.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09615-i1564.c
index 2b37b25c..2b37b25c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09615-i1564.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09615-i1564.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09616-enum_comma_ifdef.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09616-enum_comma_ifdef.c
index 95637aae..95637aae 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09616-enum_comma_ifdef.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09616-enum_comma_ifdef.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09617-Issue_2360.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09617-Issue_2360.c
index 0489b0f9..0489b0f9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09617-Issue_2360.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09617-Issue_2360.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09618-Issue_2360.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09618-Issue_2360.c
index 898c64e6..898c64e6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09618-Issue_2360.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09618-Issue_2360.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09619-Issue_2411.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09619-Issue_2411.c
index 40244488..40244488 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09619-Issue_2411.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09619-Issue_2411.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09620-Issue_2640.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09620-Issue_2640.c
index ba25bcbe..ba25bcbe 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09620-Issue_2640.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09620-Issue_2640.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09621-pp-before-func-def.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09621-pp-before-func-def.c
index 948ce135..948ce135 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09621-pp-before-func-def.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09621-pp-before-func-def.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09622-Issue_3356.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09622-Issue_3356.c
index 7f1e0282..7f1e0282 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09622-Issue_3356.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/09622-Issue_3356.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10004-pragma_asm.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10004-pragma_asm.c
index 0e6b48d6..0e6b48d6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10004-pragma_asm.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10004-pragma_asm.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10005-i1270.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10005-i1270.c
index 4831a47a..4831a47a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10005-i1270.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10005-i1270.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10006-bug_2331.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10006-bug_2331.c
index 67088d94..67088d94 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10006-bug_2331.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10006-bug_2331.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10007-indent-macro-brace.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10007-indent-macro-brace.c
index 192a399f..192a399f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10007-indent-macro-brace.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10007-indent-macro-brace.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10008-indent-macro-brace.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10008-indent-macro-brace.c
index a54cd504..a54cd504 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10008-indent-macro-brace.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10008-indent-macro-brace.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10009-return-compound-literal.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10009-return-compound-literal.c
index fad9a3f2..fad9a3f2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10009-return-compound-literal.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10009-return-compound-literal.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10010-return-compound-literal.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10010-return-compound-literal.c
index da33e2fd..da33e2fd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10010-return-compound-literal.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10010-return-compound-literal.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10011-return-compound-literal.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10011-return-compound-literal.c
index fad9a3f2..fad9a3f2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10011-return-compound-literal.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10011-return-compound-literal.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10012-sparen-indent.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10012-sparen-indent.c
index d9ddbe06..d9ddbe06 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10012-sparen-indent.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10012-sparen-indent.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10013-sparen-indent.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10013-sparen-indent.c
index b09a3102..b09a3102 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10013-sparen-indent.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10013-sparen-indent.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10014-sparen-indent.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10014-sparen-indent.c
index bf0ba8cf..bf0ba8cf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10014-sparen-indent.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10014-sparen-indent.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10015-Issue_2845.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10015-Issue_2845.h
index 9f34b1dc..9f34b1dc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10015-Issue_2845.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10015-Issue_2845.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10016-Issue_3233.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10016-Issue_3233.c
index ccb53151..ccb53151 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10016-Issue_3233.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10016-Issue_3233.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10017-double-sparen.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10017-double-sparen.c
index 6633006e..6633006e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10017-double-sparen.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10017-double-sparen.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10018-double-sparen.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10018-double-sparen.c
index f77262fe..f77262fe 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10018-double-sparen.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10018-double-sparen.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10019-include-guard.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10019-include-guard.h
index e742dd4c..e742dd4c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10019-include-guard.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10019-include-guard.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10020-single_line_comment_after.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10020-single_line_comment_after.c
index 527b3e80..527b3e80 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10020-single_line_comment_after.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10020-single_line_comment_after.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10021-parenthesized_indirect_call.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10021-parenthesized_indirect_call.c
index 7fd4d573..7fd4d573 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10021-parenthesized_indirect_call.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10021-parenthesized_indirect_call.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10022-Issue_3269.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10022-Issue_3269.c
index 6baef61c..6baef61c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10022-Issue_3269.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10022-Issue_3269.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10023-Issue_3272.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10023-Issue_3272.h
index 673c5a91..673c5a91 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10023-Issue_3272.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10023-Issue_3272.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10024-Issue_3274.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10024-Issue_3274.c
index f8b9f789..f8b9f789 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10024-Issue_3274.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10024-Issue_3274.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10025-forever.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10025-forever.c
index fc14ccf1..fc14ccf1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10025-forever.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10025-forever.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10026-forever.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10026-forever.c
index 94dc8ce1..94dc8ce1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10026-forever.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10026-forever.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10027-Issue_3327.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10027-Issue_3327.c
index 92ec0779..92ec0779 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10027-Issue_3327.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10027-Issue_3327.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10028-Issue_3339.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10028-Issue_3339.c
index fa6872e4..fa6872e4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10028-Issue_3339.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10028-Issue_3339.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10029-Issue_3339.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10029-Issue_3339.c
index 0b9b50e1..0b9b50e1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10029-Issue_3339.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10029-Issue_3339.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10030-Issue_3339.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10030-Issue_3339.c
index fb71b266..fb71b266 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10030-Issue_3339.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10030-Issue_3339.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10031-Issue_3342.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10031-Issue_3342.c
index 986aab70..986aab70 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10031-Issue_3342.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10031-Issue_3342.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10032-Issue_3345.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10032-Issue_3345.c
index eec63b28..eec63b28 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10032-Issue_3345.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10032-Issue_3345.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10033-Issue_3343.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10033-Issue_3343.c
index 6acdb70e..6acdb70e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10033-Issue_3343.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10033-Issue_3343.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10034-Issue_3343.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10034-Issue_3343.c
index 31eddc22..31eddc22 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10034-Issue_3343.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10034-Issue_3343.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10035-comment-indent.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10035-comment-indent.c
index 4486816e..4486816e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10035-comment-indent.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10035-comment-indent.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10036-comment-indent.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10036-comment-indent.c
index 9ac0677f..9ac0677f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10036-comment-indent.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10036-comment-indent.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10037-Issue_3362.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10037-Issue_3362.c
index abff8de4..abff8de4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10037-Issue_3362.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10037-Issue_3362.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10038-Issue_3362.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10038-Issue_3362.c
index 7a8c08f3..7a8c08f3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10038-Issue_3362.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10038-Issue_3362.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10039-Issue_3370.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10039-Issue_3370.c
index 2586a3b4..2586a3b4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10039-Issue_3370.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10039-Issue_3370.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10040-Issue_3377.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10040-Issue_3377.c
index fc4aa694..fc4aa694 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10040-Issue_3377.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10040-Issue_3377.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10041-Issue_3351.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10041-Issue_3351.c
index 592fc511..592fc511 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10041-Issue_3351.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10041-Issue_3351.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10042-Issue_3376.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10042-Issue_3376.c
index 084e9c7d..084e9c7d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10042-Issue_3376.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10042-Issue_3376.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10043-Issue_3376.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10043-Issue_3376.c
index 6874a984..6874a984 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10043-Issue_3376.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10043-Issue_3376.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10044-Issue_3376.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10044-Issue_3376.c
index b6ea490d..b6ea490d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10044-Issue_3376.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10044-Issue_3376.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10045-Issue_3376.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10045-Issue_3376.c
index fa3776db..fa3776db 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10045-Issue_3376.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10045-Issue_3376.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10046-Issue_3402.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10046-Issue_3402.c
new file mode 100644
index 00000000..03f5b5bb
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10046-Issue_3402.c
@@ -0,0 +1,3 @@
+int * variable;
+int (* function)(void);
+typedef int (*function_type)(void);
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10047-Issue_3421.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10047-Issue_3421.h
new file mode 100644
index 00000000..cdc3b4f0
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10047-Issue_3421.h
@@ -0,0 +1,9 @@
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
+int foobar(void);
+
+#ifdef __cplusplus
+ }
+#endif
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10048-Issue_3431.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10048-Issue_3431.c
new file mode 100644
index 00000000..1af6603e
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10048-Issue_3431.c
@@ -0,0 +1,15 @@
+int add(
+ int a,
+ int b
+#define HAVE_C
+ #ifdef HAVE_C
+ , int c
+ #endif
+ )
+{
+ int sum = a + b;
+ #ifdef HAVE_C
+ sum += c;
+ #endif
+ return sum;
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10049-Issue_3436.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10049-Issue_3436.c
new file mode 100644
index 00000000..d921d9ed
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10049-Issue_3436.c
@@ -0,0 +1,15 @@
+#include <stdio.h>
+
+int main(void)
+{
+ puts("");
+ puts(""
+ );
+ puts(""
+ );
+ puts(""
+ );
+ puts(""
+ );
+ return 0;
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10050-Issue_3192.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10050-Issue_3192.c
new file mode 100644
index 00000000..a6ff66a2
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10050-Issue_3192.c
@@ -0,0 +1,4 @@
+struct a *
+myfunc()
+{
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10051-Issue_3454.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10051-Issue_3454.c
new file mode 100644
index 00000000..8be230dd
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10051-Issue_3454.c
@@ -0,0 +1,99 @@
+int array1[] = { 1
+ , 2
+ , 3 };
+
+int array2[] = {1
+ , 2
+ , 3};
+
+int array3[] = { 1
+ , 2
+ , 3 };
+
+int array4[] = { 1
+ , 2
+ , 3 };
+
+int array5[] = { 1
+ , 2
+ , 3 };
+
+int function1( int a
+ , int b
+ , int c );
+
+int function2(int a
+ , int b
+ , int c);
+
+int function3( int a
+ , int b
+ , int c );
+
+int function4( int a
+ , int b
+ , int c );
+
+int function5( int a
+ , int b
+ , int c );
+
+int function1( int a
+ , int b
+ , int c )
+{
+ return a + b + c;
+}
+
+int function2(int a
+ , int b
+ , int c)
+{
+ return a + b + c;
+}
+
+int function3( int a
+ , int b
+ , int c )
+{
+ return a + b + c;
+}
+
+int function4( int a
+ , int b
+ , int c )
+{
+ return a + b + c;
+}
+
+int function5( int a
+ , int b
+ , int c )
+{
+ return a + b + c;
+}
+
+int main(void)
+{
+ function1( 1
+ , 2
+ , 3 );
+
+ function2(1
+ , 2
+ , 3);
+
+ function3( 1
+ , 2
+ , 3 );
+
+ function4( 1
+ , 2
+ , 3 );
+
+ function5( 1
+ , 2
+ , 3 );
+
+ return 0;
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10052-Issue_3472.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10052-Issue_3472.c
new file mode 100644
index 00000000..d180a700
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10052-Issue_3472.c
@@ -0,0 +1,30 @@
+int a, b;
+
+int main()
+{
+ if (a
+ && b)
+ {
+ return 1;
+ }
+
+ if ( a
+ && b)
+ {
+ return 2;
+ }
+
+ if ( a
+ && b)
+ {
+ return 3;
+ }
+
+ if ( a
+ && b)
+ {
+ return 4;
+ }
+
+ return 0;
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10053-Issue_3476.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10053-Issue_3476.c
new file mode 100644
index 00000000..92a7b0c0
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10053-Issue_3476.c
@@ -0,0 +1,38 @@
+int a;
+int b;
+int c;
+
+int main()
+{
+ if (a
+ & b)
+ {
+ return 1;
+ }
+
+ if ( a
+ | b )
+ {
+ return 2;
+ }
+
+ if ( a
+ ^ b)
+ {
+ return 3;
+ }
+
+ c = a
+ + b;
+
+ c = a
+ - b;
+
+ c = a
+ * b;
+
+ c = a
+ / b;
+
+ return 0;
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10054-Issue_3480.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10054-Issue_3480.c
new file mode 100644
index 00000000..6a25879a
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10054-Issue_3480.c
@@ -0,0 +1,26 @@
+int a;
+int b;
+int c;
+
+int main()
+{
+ if (a
+ << b)
+ {
+ return 1;
+ }
+
+ if ( a
+ >> b )
+ {
+ return 2;
+ }
+
+ c = a
+ << b;
+
+ c = a
+ >> b;
+
+ return 0;
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10055-Issue_3493.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10055-Issue_3493.c
new file mode 100644
index 00000000..66554d57
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10055-Issue_3493.c
@@ -0,0 +1,20 @@
+int main(void)
+{
+ int a = 1 +
+ 2
+ ;
+
+ int b = 3 +
+ 4
+ ;
+
+ int c = 5 +
+ 6
+ ;
+
+ int d = 7 +
+ 8
+ ;
+
+ return 0;
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10056-Issue_3496.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10056-Issue_3496.h
new file mode 100644
index 00000000..b0509bd5
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10056-Issue_3496.h
@@ -0,0 +1,3 @@
+enum{ A = 0 };
+
+enum { B = 1 };
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10057-Issue_3496.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10057-Issue_3496.h
new file mode 100644
index 00000000..23fbf3b8
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10057-Issue_3496.h
@@ -0,0 +1,3 @@
+enum { A = 0 };
+
+enum { B = 1 };
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10058-Issue_3496.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10058-Issue_3496.h
new file mode 100644
index 00000000..3f056c45
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10058-Issue_3496.h
@@ -0,0 +1,3 @@
+enum{ A = 0 };
+
+enum{ B = 1 };
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10059-Issue_3496.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10059-Issue_3496.h
new file mode 100644
index 00000000..f914f255
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10059-Issue_3496.h
@@ -0,0 +1,3 @@
+enum { A = 0 };
+
+enum { B = 1 };
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10060-Issue_3548.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10060-Issue_3548.c
new file mode 100644
index 00000000..71824adc
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10060-Issue_3548.c
@@ -0,0 +1,21 @@
+bool is_inside(int num)
+{
+ bool inside;
+
+ inside = num >= 3
+ && num <= 10;
+
+ return num <= 3
+ && num >= 10;
+}
+
+bool is_outside(int num)
+{
+ bool outside;
+
+ outside = num < 3
+ || num > 10;
+
+ return num < 3
+ || num > 10;
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10061-Issue_3556.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10061-Issue_3556.c
new file mode 100644
index 00000000..423e07f0
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10061-Issue_3556.c
@@ -0,0 +1,33 @@
+int main(void)
+{
+ int a
+ = -1;
+ int b
+ = 0;
+ int c
+ = 1;
+ a
+ = -1;
+ b
+ = 0;
+ c
+ = 1;
+ if (a
+ = -1)
+ {
+ return a
+ = -1;
+ }
+ if (b
+ = 0)
+ {
+ return b
+ = 0;
+ }
+ if (c
+ = 1)
+ {
+ return c
+ = 1;
+ }
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10062-Issue_3561.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10062-Issue_3561.c
new file mode 100644
index 00000000..db5c5afc
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10062-Issue_3561.c
@@ -0,0 +1,8 @@
+#include <math.h>
+
+int main(void)
+{
+ int x = abs
+ (-1);
+ return 0;
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10063-Issue_3565.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10063-Issue_3565.c
new file mode 100644
index 00000000..267e25bd
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10063-Issue_3565.c
@@ -0,0 +1,3 @@
+#define RETURN_ON_ERROR(error) \
+ if (error /* zero means no error */) \
+ return;
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10064-Issue_3567.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10064-Issue_3567.c
new file mode 100644
index 00000000..a56a513c
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10064-Issue_3567.c
@@ -0,0 +1,10 @@
+int main
+ (void);
+int main
+ (void)
+{
+ int x = main
+ ();
+ main
+ ();
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10065-Issue_3567.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10065-Issue_3567.c
new file mode 100644
index 00000000..3538b0f6
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10065-Issue_3567.c
@@ -0,0 +1,10 @@
+int main
+ (void);
+int main
+ (void)
+{
+ int x = main
+ ();
+ main
+ ();
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10066-Issue_3580.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10066-Issue_3580.c
new file mode 100644
index 00000000..c2baeb12
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10066-Issue_3580.c
@@ -0,0 +1,35 @@
+#include <stdio.h>
+
+int main(int argc, char **argv)
+{
+ switch (argc)
+ {
+ case -1:
+ {
+ printf("Negative args shouldn't be possible\n");
+ break;
+ }
+ case 0:
+ {
+ printf("Zero args can happen but shouldn't\n");
+ break;
+ }
+ case 1:
+ {
+ printf("One arg\n");
+ break;
+ }
+ case 2:
+ {
+ printf("Two args\n");
+ break;
+ }
+ default:
+ {
+ printf("%i args\n", argc);
+ break;
+ }
+ }
+
+ return 0;
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10077-Issue_3582.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10077-Issue_3582.c
new file mode 100644
index 00000000..65cd5354
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10077-Issue_3582.c
@@ -0,0 +1,48 @@
+#include <stdio.h>
+
+int main(void)
+{
+ #if A
+ {
+ printf("A enabled\n");
+ }
+ #endif
+ #if B
+ {
+ printf("B enabled\n");
+ }
+ #endif
+ #if C
+ {
+ printf("C enabled\n");
+ }
+ #endif
+ #if D
+ {
+ printf("D enabled\n");
+ }
+ #endif
+ #if E
+ {
+ printf("E enabled\n");
+ }
+ #endif
+
+ #if A
+ printf("A enabled\n");
+ #endif
+ #if B
+ printf("B enabled\n");
+ #endif
+ #if C
+ printf("C enabled\n");
+ #endif
+ #if D
+ printf("D enabled\n");
+ #endif
+ #if E
+ printf("E enabled\n");
+ #endif
+
+ return 0;
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10078-Issue_3587.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10078-Issue_3587.h
new file mode 100644
index 00000000..3744884f
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/c/10078-Issue_3587.h
@@ -0,0 +1,9 @@
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
+int foo(void);
+
+#ifdef __cplusplus
+ }
+#endif
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/02102-indent-c.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/02102-indent-c.cpp
new file mode 100644
index 00000000..6828d1c5
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/02102-indent-c.cpp
@@ -0,0 +1,1024 @@
+/**
+ * @file indent.cpp
+ * Does all the indenting stuff.
+ *
+ * $Id: indent.cpp 548 2006-10-21 02:31:55Z bengardner $
+ */
+#include "uncrustify_types.h"
+#include "chunk.h"
+#include "prototypes.h"
+#include <cstdio>
+#include <cstdlib>
+#include <cstring>
+#include <cerrno>
+#include <cctype>
+
+
+/**
+ * General indenting approach:
+ * Indenting levels are put into a stack.
+ *
+ * The stack entries contain:
+ * - opening type
+ * - brace column
+ * - continuation column
+ *
+ * Items that start a new stack item:
+ * - preprocessor (new parse frame)
+ * - Brace Open (Virtual brace also)
+ * - Paren, Square, Angle open
+ * - Assignments
+ * - C++ '<<' operator (ie, cout << "blah")
+ * - case
+ * - class colon
+ * - return
+ * - types
+ * - any other continued statement
+ *
+ * Note that the column of items marked 'PCF_WAS_ALIGNED' is not changed.
+ *
+ * For an open brace:
+ * - indent increases by indent_columns
+ * - if part of if/else/do/while/switch/etc, an extra indent may be applied
+ * - if in a paren, then cont-col is set to column + 1, ie "({ some code })"
+ *
+ * Open paren/square/angle:
+ * cont-col is set to the column of the item after the open paren, unless
+ * followed by a newline, then it is set to (brace-col + indent_columns).
+ * Examples:
+ * a_really_long_funcion_name(
+ * param1, param2);
+ * a_really_long_funcion_name(param1,
+ * param2);
+ *
+ * Assignments:
+ * Assignments are continued aligned with the first item after the assignment,
+ * unless the assign is followed by a newline.
+ * Examples:
+ * some.variable = asdf + asdf +
+ * asdf;
+ * some.variable =
+ * asdf + asdf + asdf;
+ *
+ * C++ << operator:
+ * Handled the same as assignment.
+ * Examples:
+ * cout << "this is test number: "
+ * << test_number;
+ *
+ * case:
+ * Started with case or default.
+ * Terminated with close brace at level or another case or default.
+ * Special indenting according to various rules.
+ * - indent of case label
+ * - indent of case body
+ * - how to handle optional braces
+ * Examples:
+ * {
+ * case x: {
+ * a++;
+ * break;
+ * }
+ * case y:
+ * b--;
+ * break;
+ * default:
+ * c++;
+ * break;
+ * }
+ *
+ * Class colon:
+ * Indent continuation by indent_columns:
+ * class my_class :
+ * baseclass1,
+ * baseclass2
+ * {
+ *
+ * Return: same as assignemts
+ * If the return statement is not fully paren'd, then the indent continues at
+ * the column of the item after the return. If it is paren'd, then the paren
+ * rules apply.
+ * return somevalue +
+ * othervalue;
+ *
+ * Type: pretty much the same as assignments
+ * Examples:
+ * int foo,
+ * bar,
+ * baz;
+ *
+ * Any other continued item:
+ * There shouldn't be anything not covered by the above cases, but any other
+ * continued item is indented by indent_columns:
+ * Example:
+ * somereallycrazylongname.with[lotsoflongstuff].
+ * thatreallyannoysme.whenIhavetomaintain[thecode] = 3;
+ */
+
+static void indent_comment(Chunk *pc, int col);
+
+
+void indent_to_column(Chunk *pc, int column)
+ {
+ if (column < pc->column)
+ column = pc->column;
+
+ reindent_line(pc, column);
+ }
+
+/**
+ * Changes the initial indent for a line to the given column
+ *
+ * @param pc The chunk at the start of the line
+ * @param column The desired column
+ */
+void reindent_line(Chunk *pc, int column)
+ {
+ int col_delta;
+ int min_col;
+
+ LOG_FMT(LINDLINE, "%s: %d] col %d on %.*s [%s] => %d\n",
+ __func__, pc->orig_line, pc->column, pc->len, pc->str,
+ get_token_name(pc->type), column);
+
+ if (column == pc->column)
+ return;
+
+ col_delta = column - pc->column;
+ pc->column = column;
+ min_col = pc->column;
+
+ do
+ {
+ min_col += pc->len;
+ pc = pc->GetNext();
+
+ if (pc != NULL)
+ {
+ if (chunk_is_comment(pc))
+ {
+ pc->column = pc->orig_col;
+
+ if (pc->column < min_col)
+ pc->column = min_col + 1;
+
+ LOG_FMT(LINDLINE, "%s: set comment on line %d to col %d (orig %d)\n",
+ __func__, pc->orig_line, pc->column, pc->orig_col);
+ }
+ else
+ {
+ pc->column += col_delta;
+
+ if (pc->column < min_col)
+ pc->column = min_col;
+ }
+ }
+ }
+ while ((pc != NULL) && (pc->nl_count == 0));
+ }
+
+/**
+ * Starts a new entry
+ *
+ * @param frm The parse frame
+ * @param pc The chunk causing the push
+ */
+static void indent_pse_push(struct parse_frame& frm, Chunk *pc)
+ {
+ static int ref = 0;
+
+ /* check the stack depth */
+ if (frm.pse_tos < (int)ARRAY_SIZE(frm.pse))
+ {
+ /* Bump up the index and initialize it */
+ frm.pse_tos++;
+ memset(&frm.pse[frm.pse_tos], 0, sizeof(frm.pse[frm.pse_tos]));
+
+ LOG_FMT(LINDPSE, "%4d] OPEN [%d,%s] level=%d\n",
+ pc->orig_line, frm.pse_tos, get_token_name(pc->type), pc->level);
+
+ frm.pse[frm.pse_tos].type = pc->type;
+ frm.pse[frm.pse_tos].level = pc->level;
+ frm.pse[frm.pse_tos].open_line = pc->orig_line;
+ frm.pse[frm.pse_tos].ref = ++ref;
+ frm.pse[frm.pse_tos].in_preproc = (pc->flags & PCF_IN_PREPROC) != 0;
+ }
+ }
+
+/**
+ * Removes the top entry
+ *
+ * @param frm The parse frame
+ * @param pc The chunk causing the push
+ */
+static void indent_pse_pop(struct parse_frame& frm, Chunk *pc)
+ {
+ /* Bump up the index and initialize it */
+ if (frm.pse_tos > 0)
+ {
+ if (pc != NULL)
+ {
+ LOG_FMT(LINDPSE, "%4d] CLOSE [%d,%s] on %s, started on line %d, level=%d/%d\n",
+ pc->orig_line, frm.pse_tos,
+ get_token_name(frm.pse[frm.pse_tos].type),
+ get_token_name(pc->type),
+ frm.pse[frm.pse_tos].open_line,
+ frm.pse[frm.pse_tos].level,
+ pc->level);
+ }
+ else
+ {
+ LOG_FMT(LINDPSE, " EOF] CLOSE [%d,%s], started on line %d\n",
+ frm.pse_tos, get_token_name(frm.pse[frm.pse_tos].type),
+ frm.pse[frm.pse_tos].open_line);
+ }
+
+ frm.pse_tos--;
+ }
+ }
+
+static int token_indent(E_Token type)
+ {
+ switch (type)
+ {
+ case CT_IF:
+ case CT_DO:
+ return 3;
+
+ case CT_FOR:
+ case CT_ELSE: // wacky, but that's what is wanted
+ return 4;
+
+ case CT_WHILE:
+ return 6;
+
+ case CT_SWITCH:
+ return 7;
+
+ case CT_ELSEIF:
+ return 8;
+
+ default:
+ return 0; //cpd.settings[UO_indent_braces].n;
+ }
+ }
+
+/**
+ * Change the top-level indentation only by changing the column member in
+ * the chunk structures.
+ * The level indicator must already be set.
+ */
+void indent_text(void)
+ {
+ Chunk *pc;
+ Chunk *next;
+ Chunk *prev = NULL;
+ bool did_newline = true;
+ int idx;
+ int vardefcol = 0;
+ int indent_size = cpd.settings[UO_indent_columns].n;
+ int tmp;
+ struct parse_frame frm;
+ bool in_preproc = false, was_preproc = false;
+ int indent_column;
+ int cout_col = 0; // for aligning << stuff
+ int cout_level = 0; // for aligning << stuff
+ int parent_token_indent = 0;
+
+ memset(&frm, 0, sizeof(frm));
+
+ /* dummy top-level entry */
+ frm.pse[0].indent = 1;
+ frm.pse[0].indent_tmp = 1;
+ frm.pse[0].type = CT_EOF;
+
+ pc = Chunk::GetHead();
+
+ while (pc != NULL)
+ {
+ /* Handle proprocessor transitions */
+ was_preproc = in_preproc;
+ in_preproc = (pc->flags & PCF_IN_PREPROC) != 0;
+
+ if (cpd.settings[UO_indent_brace_parent].b)
+ parent_token_indent = token_indent(pc->parent_type);
+
+ /* Clean up after a #define */
+ if (!in_preproc)
+ while ((frm.pse_tos > 0) && frm.pse[frm.pse_tos].in_preproc)
+ indent_pse_pop(frm, pc);
+
+ else
+ {
+ pf_check(&frm, pc);
+
+ if (!was_preproc)
+ {
+ /* Transition into a preproc by creating a dummy indent */
+ frm.level++;
+ indent_pse_push(frm, pc);
+
+ frm.pse[frm.pse_tos].indent = 1 + indent_size;
+ frm.pse[frm.pse_tos].indent_tmp = frm.pse[frm.pse_tos].indent;
+ }
+ }
+
+ if ((cout_col > 0) &&
+ (chunk_is_semicolon(pc) ||
+ (pc->level < cout_level)))
+ {
+ cout_col = 0;
+ cout_level = 0;
+ }
+
+ /**
+ * Handle non-brace closures
+ */
+
+ int old_pse_tos;
+
+ do
+ {
+ old_pse_tos = frm.pse_tos;
+
+ /* End anything that drops a level
+ * REVISIT: not sure about the preproc check
+ */
+ if (!chunk_is_newline(pc) &&
+ !chunk_is_comment(pc) &&
+ ((pc->flags & PCF_IN_PREPROC) == 0) &&
+ (frm.pse[frm.pse_tos].level > pc->level))
+ indent_pse_pop(frm, pc);
+
+ if (frm.pse[frm.pse_tos].level == pc->level)
+ {
+ /* process virtual braces closes (no text output) */
+ if ((pc->type == CT_VBRACE_CLOSE) &&
+ (frm.pse[frm.pse_tos].type == CT_VBRACE_OPEN))
+ {
+ indent_pse_pop(frm, pc);
+ frm.level--;
+ pc = pc->GetNext();
+ }
+
+ /* End any assign operations with a semicolon on the same level */
+ if ((frm.pse[frm.pse_tos].type == CT_ASSIGN) &&
+ (chunk_is_semicolon(pc) ||
+ (pc->type == CT_COMMA) ||
+ (pc->type == CT_BRACE_OPEN)))
+ indent_pse_pop(frm, pc);
+
+ /* End any CPP class colon crap */
+ if ((frm.pse[frm.pse_tos].type == CT_CLASS_COLON) &&
+ ((pc->type == CT_BRACE_OPEN) ||
+ chunk_is_semicolon(pc)))
+ indent_pse_pop(frm, pc);
+
+ /* a case is ended with another case or a close brace */
+ if ((frm.pse[frm.pse_tos].type == CT_CASE) &&
+ ((pc->type == CT_BRACE_CLOSE) ||
+ (pc->type == CT_CASE)))
+ indent_pse_pop(frm, pc);
+
+ /* a return is ended with a semicolon */
+ if ((frm.pse[frm.pse_tos].type == CT_RETURN) &&
+ chunk_is_semicolon(pc))
+ indent_pse_pop(frm, pc);
+
+ /* Close out parens and squares */
+ if ((frm.pse[frm.pse_tos].type == (pc->type - 1)) &&
+ ((pc->type == CT_PAREN_CLOSE) ||
+ (pc->type == CT_SPAREN_CLOSE) ||
+ (pc->type == CT_FPAREN_CLOSE) ||
+ (pc->type == CT_SQUARE_CLOSE) ||
+ (pc->type == CT_ANGLE_CLOSE)))
+ {
+ indent_pse_pop(frm, pc);
+ frm.paren_count--;
+ }
+ }
+ }
+ while (old_pse_tos > frm.pse_tos);
+
+ /* Grab a copy of the current indent */
+ indent_column = frm.pse[frm.pse_tos].indent_tmp;
+
+ if (!chunk_is_newline(pc) && !chunk_is_comment(pc))
+ {
+ LOG_FMT(LINDPC, " -=[ %.*s ]=- top=%d %s %d/%d\n",
+ pc->len, pc->str,
+ frm.pse_tos,
+ get_token_name(frm.pse[frm.pse_tos].type),
+ frm.pse[frm.pse_tos].indent_tmp,
+ frm.pse[frm.pse_tos].indent);
+ }
+
+ /**
+ * Handle stuff that can affect the current indent:
+ * - brace close
+ * - vbrace open
+ * - brace open
+ * - case (immediate)
+ * - labels (immediate)
+ * - class colons (immediate)
+ *
+ * And some stuff that can't
+ * - open paren
+ * - open square
+ * - assignment
+ * - return
+ */
+
+ if (pc->type == CT_BRACE_CLOSE)
+ {
+ if (frm.pse[frm.pse_tos].type == CT_BRACE_OPEN)
+ {
+ indent_pse_pop(frm, pc);
+ frm.level--;
+
+ /* Update the indent_column if needed */
+ if (!cpd.settings[UO_indent_braces].b &&
+ (parent_token_indent == 0))
+ indent_column = frm.pse[frm.pse_tos].indent_tmp;
+
+ if ((pc->parent_type == CT_IF) ||
+ (pc->parent_type == CT_ELSE) ||
+ (pc->parent_type == CT_ELSEIF) ||
+ (pc->parent_type == CT_DO) ||
+ (pc->parent_type == CT_WHILE) ||
+ (pc->parent_type == CT_SWITCH) ||
+ (pc->parent_type == CT_FOR))
+ indent_column += cpd.settings[UO_indent_brace].n;
+ }
+ }
+ else if (pc->type == CT_VBRACE_OPEN)
+ {
+ frm.level++;
+ indent_pse_push(frm, pc);
+
+ frm.pse[frm.pse_tos].indent = frm.pse[frm.pse_tos - 1].indent + indent_size;
+ frm.pse[frm.pse_tos].indent_tmp = frm.pse[frm.pse_tos].indent;
+
+ /* Always indent on virtual braces */
+ indent_column = frm.pse[frm.pse_tos].indent_tmp;
+ }
+ else if (pc->type == CT_BRACE_OPEN)
+ {
+ frm.level++;
+ indent_pse_push(frm, pc);
+
+ if (frm.paren_count != 0)
+ /* We are inside ({ ... }) -- indent one tab from the paren */
+ frm.pse[frm.pse_tos].indent = frm.pse[frm.pse_tos - 1].indent_tmp + indent_size;
+ else
+ {
+ /* Use the prev indent level + indent_size. */
+ frm.pse[frm.pse_tos].indent = frm.pse[frm.pse_tos - 1].indent + indent_size;
+
+ /* If this brace is part of a statement, bump it out by indent_brace */
+ if ((pc->parent_type == CT_IF) ||
+ (pc->parent_type == CT_ELSE) ||
+ (pc->parent_type == CT_ELSEIF) ||
+ (pc->parent_type == CT_DO) ||
+ (pc->parent_type == CT_WHILE) ||
+ (pc->parent_type == CT_SWITCH) ||
+ (pc->parent_type == CT_FOR))
+ {
+ if (parent_token_indent != 0)
+ frm.pse[frm.pse_tos].indent += parent_token_indent - indent_size;
+ else
+ {
+ frm.pse[frm.pse_tos].indent += cpd.settings[UO_indent_brace].n;
+ indent_column += cpd.settings[UO_indent_brace].n;
+ }
+ }
+ else if (pc->parent_type == CT_CASE)
+ {
+ /* The indent_case_brace setting affects the parent CT_CASE */
+ frm.pse[frm.pse_tos].indent_tmp += cpd.settings[UO_indent_case_brace].n;
+ frm.pse[frm.pse_tos].indent += cpd.settings[UO_indent_case_brace].n;
+ }
+ else if ((pc->parent_type == CT_CLASS) && !cpd.settings[UO_indent_class].b)
+ frm.pse[frm.pse_tos].indent -= indent_size;
+ else if ((pc->parent_type == CT_NAMESPACE) && !cpd.settings[UO_indent_namespace].b)
+ frm.pse[frm.pse_tos].indent -= indent_size;
+ }
+
+ if ((pc->flags & PCF_DONT_INDENT) != 0)
+ {
+ frm.pse[frm.pse_tos].indent = pc->column;
+ indent_column = pc->column;
+ }
+ else
+ {
+ /**
+ * If there isn't a newline between the open brace and the next
+ * item, just indent to wherever the next token is.
+ * This covers this sort of stuff:
+ * { a++;
+ * b--; };
+ */
+ next = pc->GetNextNcNnl();
+
+ if (!chunk_is_newline_between(pc, next))
+ frm.pse[frm.pse_tos].indent = next->column;
+
+ frm.pse[frm.pse_tos].indent_tmp = frm.pse[frm.pse_tos].indent;
+ frm.pse[frm.pse_tos].open_line = pc->orig_line;
+
+ /* Update the indent_column if needed */
+ if (cpd.settings[UO_indent_braces].n ||
+ (parent_token_indent != 0))
+ indent_column = frm.pse[frm.pse_tos].indent_tmp;
+ }
+ }
+ else if (pc->type == CT_CASE)
+ {
+ /* Start a case - indent UO_indent_switch_case from the switch level */
+ tmp = frm.pse[frm.pse_tos].indent + cpd.settings[UO_indent_switch_case].n;
+
+ indent_pse_push(frm, pc);
+
+ frm.pse[frm.pse_tos].indent = tmp;
+ frm.pse[frm.pse_tos].indent_tmp = tmp - indent_size;
+
+ /* Always set on case statements */
+ indent_column = frm.pse[frm.pse_tos].indent_tmp;
+ }
+ else if (pc->type == CT_LABEL)
+ {
+ /* Labels get sent to the left or backed up */
+ if (cpd.settings[UO_indent_label].n > 0)
+ indent_column = cpd.settings[UO_indent_label].n;
+ else
+ indent_column = frm.pse[frm.pse_tos].indent +
+ cpd.settings[UO_indent_label].n;
+ }
+ else if (pc->type == CT_CLASS_COLON)
+ {
+ /* just indent one level */
+ indent_pse_push(frm, pc);
+ frm.pse[frm.pse_tos].indent = frm.pse[frm.pse_tos - 1].indent_tmp + indent_size;
+ frm.pse[frm.pse_tos].indent_tmp = frm.pse[frm.pse_tos].indent;
+
+ indent_column = frm.pse[frm.pse_tos].indent_tmp;
+
+ if (cpd.settings[UO_indent_class_colon].b)
+ {
+ prev = pc->GetPrev();
+
+ if (chunk_is_newline(prev))
+ {
+ frm.pse[frm.pse_tos].indent += 2;
+ /* don't change indent of current line */
+ }
+ }
+ }
+ else if ((pc->type == CT_PAREN_OPEN) ||
+ (pc->type == CT_SPAREN_OPEN) ||
+ (pc->type == CT_FPAREN_OPEN) ||
+ (pc->type == CT_SQUARE_OPEN) ||
+ (pc->type == CT_ANGLE_OPEN))
+ {
+ /* Open parens and squares - never update indent_column */
+ indent_pse_push(frm, pc);
+ frm.pse[frm.pse_tos].indent = pc->column + pc->len;
+
+ if (cpd.settings[UO_indent_func_call_param].b &&
+ (pc->type == CT_FPAREN_OPEN) &&
+ (pc->parent_type == CT_FUNC_CALL))
+ frm.pse[frm.pse_tos].indent = frm.pse[frm.pse_tos - 1].indent + indent_size;
+
+ if ((chunk_is_str(pc, "(", 1) && !cpd.settings[UO_indent_paren_nl].b) ||
+ (chunk_is_str(pc, "[", 1) && !cpd.settings[UO_indent_square_nl].b))
+ {
+ next = pc->GetNextNc();
+
+ if (chunk_is_newline(next))
+ {
+ int sub = 1;
+
+ if (frm.pse[frm.pse_tos - 1].type == CT_ASSIGN)
+ sub = 2;
+
+ frm.pse[frm.pse_tos].indent = frm.pse[frm.pse_tos - sub].indent + indent_size;
+ }
+ }
+
+ frm.pse[frm.pse_tos].indent_tmp = frm.pse[frm.pse_tos].indent;
+ frm.paren_count++;
+ }
+ else if (pc->type == CT_ASSIGN)
+ {
+ /**
+ * if there is a newline after the '=', just indent one level,
+ * otherwise align on the '='.
+ * Never update indent_column.
+ */
+ next = pc->GetNext();
+
+ if (next != NULL)
+ {
+ indent_pse_push(frm, pc);
+
+ if (chunk_is_newline(next))
+ frm.pse[frm.pse_tos].indent = frm.pse[frm.pse_tos - 1].indent_tmp + indent_size;
+ else
+ frm.pse[frm.pse_tos].indent = pc->column + pc->len + 1;
+
+ frm.pse[frm.pse_tos].indent_tmp = frm.pse[frm.pse_tos].indent;
+ }
+ }
+ else if (pc->type == CT_RETURN)
+ {
+ /* don't count returns inside a () or [] */
+ if (pc->level == pc->brace_level)
+ {
+ indent_pse_push(frm, pc);
+ frm.pse[frm.pse_tos].indent = frm.pse[frm.pse_tos - 1].indent + pc->len + 1;
+ frm.pse[frm.pse_tos].indent_tmp = frm.pse[frm.pse_tos - 1].indent;
+ }
+ }
+ else if (chunk_is_str(pc, "<<", 2))
+ {
+ if (cout_col == 0)
+ {
+ cout_col = pc->column;
+ cout_level = pc->level;
+ }
+ }
+ else
+ {
+ /* anything else? */
+ }
+
+ /**
+ * Indent the line if needed
+ */
+ if (did_newline && !chunk_is_newline(pc) && (pc->len != 0))
+ {
+ /**
+ * Check for special continuations.
+ * Note that some of these could be done as a stack item like
+ * everything else
+ */
+
+ prev = pc->GetPrevNcNnl();
+
+ if ((pc->type == CT_MEMBER) ||
+ (pc->type == CT_DC_MEMBER) ||
+ ((prev != NULL) &&
+ ((prev->type == CT_MEMBER) ||
+ (prev->type == CT_DC_MEMBER))))
+ {
+ tmp = cpd.settings[UO_indent_member].n + indent_column;
+ LOG_FMT(LINDENT, "%s: %d] member => %d\n",
+ __func__, pc->orig_line, tmp);
+ reindent_line(pc, tmp);
+ }
+ else if (chunk_is_str(pc, "<<", 2) && (cout_col > 0))
+ {
+ LOG_FMT(LINDENT, "%s: %d] cout_col => %d\n",
+ __func__, pc->orig_line, cout_col);
+ reindent_line(pc, cout_col);
+ }
+ else if ((vardefcol > 0) &&
+ (pc->type == CT_WORD) &&
+ ((pc->flags & PCF_VAR_DEF) != 0) &&
+ (prev != NULL) && (prev->type == CT_COMMA))
+ {
+ LOG_FMT(LINDENT, "%s: %d] Vardefcol => %d\n",
+ __func__, pc->orig_line, vardefcol);
+ reindent_line(pc, vardefcol);
+ }
+ else if ((pc->type == CT_STRING) && (prev->type == CT_STRING) &&
+ cpd.settings[UO_indent_align_string].b)
+ {
+ LOG_FMT(LINDENT, "%s: %d] String => %d\n",
+ __func__, pc->orig_line, prev->column);
+ reindent_line(pc, prev->column);
+ }
+ else if (chunk_is_comment(pc))
+ {
+ LOG_FMT(LINDENT, "%s: %d] comment => %d\n",
+ __func__, pc->orig_line, frm.pse[frm.pse_tos].indent_tmp);
+ indent_comment(pc, frm.pse[frm.pse_tos].indent_tmp);
+ }
+ else if (pc->type == CT_PREPROC)
+ {
+ /* Preprocs are always in column 1. See indent_preproc() */
+ if (pc->column != 1)
+ reindent_line(pc, 1);
+ }
+ else
+ {
+ if (pc->column != indent_column)
+ {
+ LOG_FMT(LINDENT, "%s: %d] indent => %d [%.*s]\n",
+ __func__, pc->orig_line, indent_column, pc->len, pc->str);
+ reindent_line(pc, indent_column);
+ }
+ }
+
+ did_newline = false;
+ }
+
+ /**
+ * Handle variable definition continuation indenting
+ */
+ if ((pc->type == CT_WORD) &&
+ ((pc->flags & PCF_IN_FCN_DEF) == 0) &&
+ ((pc->flags & PCF_VAR_1ST_DEF) == PCF_VAR_1ST_DEF))
+ vardefcol = pc->column;
+
+ if (chunk_is_semicolon(pc) ||
+ ((pc->type == CT_BRACE_OPEN) && (pc->parent_type == CT_FUNCTION)))
+ vardefcol = 0;
+
+ /* if we hit a newline, reset indent_tmp */
+ if (chunk_is_newline(pc) ||
+ (pc->type == CT_COMMENT_MULTI) ||
+ (pc->type == CT_COMMENT_CPP))
+ {
+ frm.pse[frm.pse_tos].indent_tmp = frm.pse[frm.pse_tos].indent;
+
+ /**
+ * Handle the case of a multi-line #define w/o anything on the
+ * first line (indent_tmp will be 1 or 0)
+ */
+ if ((pc->type == CT_NL_CONT) &&
+ (frm.pse[frm.pse_tos].indent_tmp <= indent_size))
+ frm.pse[frm.pse_tos].indent_tmp = indent_size + 1;
+
+ /* Get ready to indent the next item */
+ did_newline = true;
+ }
+
+ if (!chunk_is_comment(pc) && !chunk_is_newline(pc))
+ prev = pc;
+
+ pc = pc->GetNext();
+ }
+
+ /* Throw out any stuff inside a preprocessor - no need to warn */
+ while ((frm.pse_tos > 0) && frm.pse[frm.pse_tos].in_preproc)
+ indent_pse_pop(frm, pc);
+
+ for (idx = 1; idx <= frm.pse_tos; idx++)
+ {
+ LOG_FMT(LWARN, "%s:%d Unmatched %s\n",
+ cpd.filename, frm.pse[idx].open_line,
+ get_token_name(frm.pse[idx].type));
+ cpd.error_count++;
+ }
+ }
+
+/**
+ * returns true if forward scan reveals only single newlines or comments
+ * stops when hits code
+ * false if next thing hit is a closing brace, also if 2 newlines in a row
+ */
+
+
+static bool single_line_comment_indent_rule_applies(Chunk *start)
+ {
+ Chunk *pc = start;
+ int nl_count = 0;
+
+ if (!chunk_is_single_line_comment(pc))
+ return false;
+
+ /* scan forward, if only single newlines and comments before next line of code, we want to apply */
+ while ((pc = pc->GetNext()) != NULL)
+ {
+ if (chunk_is_newline(pc))
+ {
+ if (nl_count > 0 || pc->nl_count > 1)
+ return false;
+
+ nl_count++;
+ }
+ else
+ {
+ nl_count = 0;
+
+ if (!chunk_is_single_line_comment(pc))
+ {
+ /* here we check for things to run into that we wouldn't want to indent the comment for */
+ /* for example, non-single line comment, closing brace */
+ if (chunk_is_comment(pc) || chunk_is_closing_brace(pc))
+ return false;
+
+ return true;
+ }
+ }
+ }
+
+ return false;
+ }
+
+/**
+ * REVISIT: This needs to be re-checked, maybe cleaned up
+ *
+ * Indents comments in a (hopefully) smart manner.
+ *
+ * There are two type of comments that get indented:
+ * - stand alone (ie, no tokens on the line before the comment)
+ * - trailing comments (last token on the line apart from a linefeed)
+ * + note that a stand-alone comment is a special case of a trailing
+ *
+ * The stand alone comments will get indented in one of three ways:
+ * - column 1:
+ * + There is an empty line before the comment AND the indent level is 0
+ * + The comment was originally in column 1
+ *
+ * - Same column as trailing comment on previous line (ie, aligned)
+ * + if originally within TBD (3) columns of the previous comment
+ *
+ * - syntax indent level
+ * + doesn't fit in the previous categories
+ *
+ * Options modify this behavior:
+ * - keep original column (don't move the comment, if possible)
+ * - keep relative column (move out the same amount as first item on line)
+ * - fix trailing comment in column TBD
+ *
+ * @param pc The comment, which is the first item on a line
+ * @param col The column if this is to be put at indent level
+ */
+static void indent_comment(Chunk *pc, int col)
+ {
+ Chunk *nl;
+ Chunk *prev;
+
+ LOG_FMT(LCMTIND, "%s: line %d, col %d, level %d: ", __func__,
+ pc->orig_line, pc->orig_col, pc->level);
+
+ /* force column 1 comment to column 1 if not changing them */
+ if ((pc->orig_col == 1) && !cpd.settings[UO_indent_col1_comment].b)
+ {
+ LOG_FMT(LCMTIND, "rule 1 - keep in col 1\n");
+ pc->column = 1;
+ return;
+ }
+
+ nl = pc->GetPrev();
+
+ /* outside of any expression or statement? */
+ if (pc->level == 0)
+ {
+ if ((nl != NULL) && (nl->nl_count > 1))
+ {
+ LOG_FMT(LCMTIND, "rule 2 - level 0, nl before\n");
+ pc->column = 1;
+ return;
+ }
+ }
+
+ prev = nl->GetPrev();
+
+ if (chunk_is_comment(prev) && (nl->nl_count == 1))
+ {
+ int coldiff = prev->orig_col - pc->orig_col;
+
+ if ((coldiff <= 3) && (coldiff >= -3))
+ {
+ pc->column = prev->column;
+ LOG_FMT(LCMTIND, "rule 3 - prev comment, coldiff = %d, now in %d\n",
+ coldiff, pc->column);
+ return;
+ }
+ }
+
+ /* check if special single line comment rule applies */
+ if (cpd.settings[UO_indent_sing_line_comments].n > 0 && single_line_comment_indent_rule_applies(pc))
+ {
+ pc->column = col + cpd.settings[UO_indent_sing_line_comments].n;
+ LOG_FMT(LCMTIND, "rule 4 - single line comment indent, now in %d\n", pc->column);
+ return;
+ }
+
+ LOG_FMT(LCMTIND, "rule 5 - fall-through, stay in %d\n", col);
+
+ pc->column = col;
+ }
+
+/**
+ * Put spaces on either side of the preproc (#) symbol.
+ * This is done by pointing pc->str into pp_str and adjusting the
+ * length.
+ */
+void indent_preproc(void)
+ {
+ Chunk *pc;
+ Chunk *next;
+ int pp_level;
+ int pp_level_sub = 0;
+ int tmp;
+
+ /* Define a string of 16 spaces + # + 16 spaces */
+ static const char *pp_str = " # ";
+ static const char *alt_str = " %: ";
+
+ /* Scan to see if the whole file is covered by one #ifdef */
+ int stage = 0;
+
+ for (pc = Chunk::GetHead(); pc != NULL; pc = pc->GetNext())
+ {
+ if (chunk_is_comment(pc) || chunk_is_newline(pc))
+ continue;
+
+ if (stage == 0)
+ {
+ /* Check the first PP, make sure it is an #if type */
+ if (pc->type != CT_PREPROC)
+ break;
+
+ next = pc->GetNext();
+
+ if ((next == NULL) || (next->type != CT_PP_IF))
+ break;
+
+ stage = 1;
+ }
+ else if (stage == 1)
+ {
+ /* Scan until a PP at level 0 is found - the close to the #if */
+ if ((pc->type == CT_PREPROC) &&
+ (pc->pp_level == 0))
+ stage = 2;
+
+ continue;
+ }
+ else if (stage == 2)
+ {
+ /* We should only see the rest of the preprocessor */
+ if ((pc->type == CT_PREPROC) ||
+ ((pc->flags & PCF_IN_PREPROC) == 0))
+ {
+ stage = 0;
+ break;
+ }
+ }
+ }
+
+ if (stage == 2)
+ {
+ LOG_FMT(LINFO, "The whole file is covered by a #IF\n");
+ pp_level_sub = 1;
+ }
+
+ for (pc = Chunk::GetHead(); pc != NULL; pc = pc->GetNext())
+ {
+ if (pc->type != CT_PREPROC)
+ continue;
+
+ if (pc->column != 1)
+ {
+ /* Don't handle preprocessors that aren't in column 1 */
+ LOG_FMT(LINFO, "%s: Line %d doesn't start in column 1 (%d)\n",
+ __func__, pc->orig_line, pc->column);
+ continue;
+ }
+
+ /* point into pp_str */
+ if (pc->len == 2)
+ /* alternate token crap */
+ pc->str = &alt_str[16];
+ else
+ pc->str = &pp_str[16];
+
+ pp_level = pc->pp_level - pp_level_sub;
+
+ if (pp_level < 0)
+ pp_level = 0;
+ else if (pp_level > 16)
+ pp_level = 16;
+
+ /* Note that the indent is removed by default */
+ if ((cpd.settings[UO_pp_indent].a & AV_ADD) != 0)
+ {
+ /* Need to add some spaces */
+ pc->str -= pp_level;
+ pc->len += pp_level;
+ }
+ else if (cpd.settings[UO_pp_indent].a == AV_IGNORE)
+ {
+ tmp = (pc->orig_col <= 16) ? pc->orig_col - 1 : 16;
+ pc->str -= tmp;
+ pc->len += tmp;
+ }
+
+ /* Add spacing by adjusting the length */
+ if ((cpd.settings[UO_pp_space].a & AV_ADD) != 0)
+ pc->len += pp_level;
+
+ next = pc->GetNext();
+
+ if (next != NULL)
+ reindent_line(next, pc->len + 1);
+
+ LOG_FMT(LPPIS, "%s: Indent line %d to %d (len %d, next->col %d)\n",
+ __func__, pc->orig_line, pp_level, pc->len, next->column);
+ }
+ }
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/02103-output.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/02103-output.cpp
new file mode 100644
index 00000000..3df1cd07
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/02103-output.cpp
@@ -0,0 +1,624 @@
+/**
+ * @file output.cpp
+ * Does all the output & comment formatting.
+ *
+ * $Id: output.cpp 510 2006-09-20 01:14:56Z bengardner $
+ */
+
+#include "uncrustify_types.h"
+#include "prototypes.h"
+#include "chunk.h"
+#include <cstring>
+#include <cstdlib>
+
+
+
+void add_char(char ch)
+ {
+ /* convert a newline into the LF/CRLF/CR sequence */
+ if (ch == '\n')
+ {
+ fputs(cpd.newline, cpd.fout);
+ cpd.column = 1;
+ cpd.did_newline = 1;
+ }
+ else
+ {
+ fputc(ch, cpd.fout);
+
+ if (ch == '\t')
+ cpd.column = next_tab_column(cpd.column);
+ else
+ cpd.column++;
+ }
+ }
+
+void add_text(const char *text)
+ {
+ char ch;
+
+ while ((ch = *text) != 0)
+ {
+ text++;
+ add_char(ch);
+ }
+ }
+
+void add_text_len(const char *text, int len)
+ {
+ while (len-- > 0)
+ {
+ add_char(*text);
+ text++;
+ }
+ }
+
+/**
+ * Advance to a specific column
+ * cpd.column is the current column
+ *
+ * @param column The column to advance to
+ */
+void output_to_column(int column, bool allow_tabs)
+ {
+ int nc;
+
+ cpd.did_newline = 0;
+
+ if (allow_tabs)
+ {
+ /* tab out as far as possible and then use spaces */
+ while ((nc = next_tab_column(cpd.column)) <= column)
+ add_text("\t");
+ }
+
+ /* space out the final bit */
+ while (cpd.column < column)
+ add_text(" ");
+ }
+
+void output_indent(int column, int brace_col)
+ {
+ if ((cpd.column == 1) && (cpd.settings[UO_indent_with_tabs].n != 0))
+ {
+ if (cpd.settings[UO_indent_with_tabs].n == 2)
+ brace_col = column;
+
+ /* tab out as far as possible and then use spaces */
+ int nc;
+
+ while ((nc = next_tab_column(cpd.column)) <= brace_col)
+ add_text("\t");
+ }
+
+ /* space out the rest */
+ while (cpd.column < column)
+ add_text(" ");
+ }
+
+void output_parsed(FILE *pfile)
+ {
+ Chunk *pc;
+ int cnt;
+
+ output_options(pfile);
+ output_defines(pfile);
+ output_types(pfile);
+
+ fprintf(pfile, "-=====-\n");
+ fprintf(pfile, "Line Tag Parent Columns Br/Lvl/pp Flg Nl Text");
+
+ for (pc = Chunk::GetHead(); pc != NULL; pc = pc->GetNext())
+ {
+ fprintf(pfile, "\n%3d> %13.13s[%13.13s][%2d/%2d/%2d][%d/%d/%d][%6x][%d-%d]",
+ pc->orig_line, get_token_name(pc->type),
+ get_token_name(pc->parent_type),
+ pc->column, pc->orig_col, pc->orig_col_end,
+ pc->brace_level, pc->level, pc->pp_level,
+ pc->flags, pc->nl_count, pc->after_tab);
+
+ if ((pc->type != CT_NEWLINE) && (pc->len != 0))
+ {
+ for (cnt = 0; cnt < pc->column; cnt++)
+ fprintf(pfile, " ");
+
+ fprintf(pfile, "%.*s", pc->len, pc->str);
+ }
+ }
+
+ fprintf(pfile, "\n-=====-\n");
+ fflush(pfile);
+ }
+
+void output_options(FILE *pfile)
+ {
+ int idx;
+ const option_map_value *ptr;
+
+ fprintf(pfile, "-== Options ==-\n");
+
+ for (idx = 0; idx < UO_option_count; idx++)
+ {
+ ptr = get_option_name(idx);
+
+ if (ptr != NULL)
+ {
+ if (ptr->type == AT_BOOL)
+ {
+ fprintf(pfile, "%3d) %32s = %s\n",
+ ptr->id, ptr->name,
+ cpd.settings[ptr->id].b ? "True" : "False");
+ }
+ else if (ptr->type == AT_IARF)
+ {
+ fprintf(pfile, "%3d) %32s = %s\n",
+ ptr->id, ptr->name,
+ (cpd.settings[ptr->id].a == AV_ADD) ? "Add" :
+ (cpd.settings[ptr->id].a == AV_REMOVE) ? "Remove" :
+ (cpd.settings[ptr->id].a == AV_FORCE) ? "Force" : "Ignore");
+ }
+ else if (ptr->type == AT_LINE)
+ {
+ fprintf(pfile, "%3d) %32s = %s\n",
+ ptr->id, ptr->name,
+ (cpd.settings[ptr->id].le == LE_AUTO) ? "Auto" :
+ (cpd.settings[ptr->id].le == LE_LF) ? "LF" :
+ (cpd.settings[ptr->id].le == LE_CRLF) ? "CRLF" :
+ (cpd.settings[ptr->id].le == LE_CR) ? "CR" : "???");
+ }
+ else /* AT_NUM */
+ fprintf(pfile, "%3d) %32s = %d\n",
+ ptr->id, ptr->name, cpd.settings[ptr->id].n);
+ }
+ }
+ }
+
+/**
+ * This renders the chunk list to a file.
+ */
+void output_text(FILE *pfile)
+ {
+ Chunk *pc;
+ Chunk *prev;
+ int cnt;
+ int lvlcol;
+ bool allow_tabs;
+
+ cpd.fout = pfile;
+
+ for (pc = Chunk::GetHead(); pc != NULL; pc = pc->GetNext())
+ {
+ if (pc->type == CT_NEWLINE)
+ {
+ for (cnt = 0; cnt < pc->nl_count; cnt++)
+ add_char('\n');
+
+ cpd.did_newline = 1;
+ cpd.column = 1;
+ LOG_FMT(LOUTIND, " xx\n");
+ }
+ else if (pc->type == CT_COMMENT_MULTI)
+ output_comment_multi(pc);
+ else if (pc->type == CT_COMMENT_CPP)
+ pc = output_comment_cpp(pc);
+ else if (pc->len == 0)
+ /* don't do anything for non-visible stuff */
+ LOG_FMT(LOUTIND, " <%d> -", pc->column);
+ else
+ {
+ /* indent to the 'level' first */
+ if (cpd.did_newline)
+ {
+ if (cpd.settings[UO_indent_with_tabs].n == 1)
+ {
+ lvlcol = 1 + (pc->brace_level * cpd.settings[UO_indent_columns].n);
+
+ if ((pc->column >= lvlcol) && (lvlcol > 1))
+ output_to_column(lvlcol, true);
+ }
+
+ allow_tabs = (cpd.settings[UO_indent_with_tabs].n == 2) ||
+ (chunk_is_comment(pc) &&
+ (cpd.settings[UO_indent_with_tabs].n != 0));
+
+ LOG_FMT(LOUTIND, " %d> col %d/%d - ", pc->orig_line, pc->column, cpd.column);
+ }
+ else
+ {
+ /* not the first item on a line */
+ if (cpd.settings[UO_align_keep_tabs].b)
+ allow_tabs = pc->after_tab;
+ else
+ {
+ prev = pc->GetPrev();
+ allow_tabs = (cpd.settings[UO_align_with_tabs].b &&
+ ((pc->flags & PCF_WAS_ALIGNED) != 0) &&
+ (((pc->column - 1) % cpd.settings[UO_output_tab_size].n) == 0) &&
+ ((prev->column + prev->len + 1) != pc->column));
+ }
+
+ LOG_FMT(LOUTIND, " %d -", pc->column);
+ }
+
+ output_to_column(pc->column, allow_tabs);
+ add_text_len(pc->str, pc->len);
+ cpd.did_newline = chunk_is_newline(pc);
+ }
+ }
+ }
+
+/**
+ * Given a multi-line comemnt block that starts in column X, figure out how
+ * much subsequent lines should be indented.
+ *
+ * The answer is either 0 or 1.
+ *
+ * The decision is based on:
+ * - the first line length
+ * - the second line leader length
+ * - the last line length
+ *
+ * If the first and last line are the same length and don't contain any alnum
+ * chars and (the first line len > 2 or the second leader is the same as the
+ * first line length), then the indent is 0.
+ *
+ * If the leader on the second line is 1 wide or missing, then the indent is 1.
+ *
+ * Otherwise, the indent is 0.
+ *
+ * @param str The comment string
+ * @param len Length of the comment
+ * @param start_col Starting column
+ * @return 0 or 1
+ */
+static int calculate_comment_body_indent(const char *str, int len, int start_col)
+ {
+ int idx = 0;
+ int first_len = 0;
+ int last_len = 0;
+ int width = 0;
+
+ /* find the last line length */
+ for (idx = len - 1; idx > 0; idx--)
+ {
+ if ((str[idx] == '\n') || (str[idx] == '\r'))
+ {
+ idx++;
+
+ while ((idx < len) && ((str[idx] == ' ') || (str[idx] == '\t')))
+ idx++;
+
+ last_len = len - idx;
+ break;
+ }
+ }
+
+ /* find the first line length */
+ for (idx = 0; idx < len; idx++)
+ {
+ if ((str[idx] == '\n') || (str[idx] == '\r'))
+ {
+ first_len = idx;
+
+ while ((str[first_len - 1] == ' ') || (str[first_len - 1] == '\t'))
+ first_len--;
+
+ /* handle DOS endings */
+ if ((str[idx] == '\r') && (str[idx + 1] == '\n'))
+ idx++;
+
+ idx++;
+ break;
+ }
+ }
+
+ /* Scan the second line */
+ width = 0;
+
+ for (/* nada */; idx < len; idx++)
+ {
+ if ((str[idx] == ' ') || (str[idx] == '\t'))
+ {
+ if (width > 0)
+ break;
+
+ continue;
+ }
+
+ if ((str[idx] == '\n') || (str[idx] == '\r'))
+ /* Done with second line */
+ break;
+
+ /* Count the leading chars */
+ if ((str[idx] == '*') ||
+ (str[idx] == '|') ||
+ (str[idx] == '\\') ||
+ (str[idx] == '#') ||
+ (str[idx] == '+'))
+ width++;
+ else
+ break;
+ }
+
+ //LOG_FMT(LSYS, "%s: first=%d last=%d width=%d\n", __func__, first_len, last_len, width);
+
+ /*TODO: make the first_len minimum (4) configurable? */
+ if ((first_len == last_len) && ((first_len > 4) || first_len == width))
+ return 0;
+
+ return (width == 2) ? 0 : 1;
+ }
+
+/**
+ * Outputs the CPP comment at pc.
+ * CPP comment combining is done here
+ *
+ * @return the last chunk output'd
+ */
+Chunk *output_comment_cpp(Chunk *first)
+ {
+ int col = first->column;
+ int col_br = 1 + (first->brace_level * cpd.settings[UO_indent_columns].n);
+
+ /* Make sure we have at least one space past the last token */
+ if (first->parent_type == CT_COMMENT_END)
+ {
+ Chunk *prev = first->GetPrev();
+
+ if (prev != NULL)
+ {
+ int col_min = prev->column + prev->len + 1;
+
+ if (col < col_min)
+ col = col_min;
+ }
+ }
+
+ /* Bump out to the column */
+ output_indent(col, col_br);
+
+ if (!cpd.settings[UO_cmt_cpp_to_c].b)
+ {
+ add_text_len(first->str, first->len);
+ return first;
+ }
+
+ /* If we are grouping, see if there is something to group */
+ bool combined = false;
+
+ if (cpd.settings[UO_cmt_cpp_group].b)
+ {
+ /* next is a newline by definition */
+ Chunk *next = first->GetNext();
+
+ if ((next != NULL) && (next->nl_count == 1))
+ {
+ next = next->GetNext();
+
+ /**
+ * Only combine the next comment if they are both at indent level or
+ * the second one is NOT at indent or less
+ *
+ * A trailing comment cannot be combined with a comment at indent
+ * level or less
+ */
+ if ((next != NULL) &&
+ (next->type == CT_COMMENT_CPP) &&
+ (((next->column == 1) && (first->column == 1)) ||
+ ((next->column == col_br) && (first->column == col_br)) ||
+ ((next->column > col_br) && (first->parent_type == CT_COMMENT_END))))
+ combined = true;
+ }
+ }
+
+ if (!combined)
+ {
+ /* nothing to group: just output a single line */
+ add_text_len("/*", 2);
+
+ if ((first->str[2] != ' ') && (first->str[2] != '\t'))
+ add_char(' ');
+
+ add_text_len(&first->str[2], first->len - 2);
+ add_text_len(" */", 3);
+ return first;
+ }
+
+ Chunk *pc = first;
+ Chunk *last = first;
+
+ /* Output the first line */
+ add_text_len("/*", 2);
+
+ if (combined && cpd.settings[UO_cmt_cpp_nl_start].b)
+ /* I suppose someone more clever could do this without a goto or
+ * repeating too much code...
+ */
+ goto cpp_newline;
+
+ goto cpp_addline;
+
+ /* Output combined lines */
+ while ((pc = pc->GetNext()) != NULL)
+ {
+ if ((pc->type == CT_NEWLINE) && (pc->nl_count == 1))
+ continue;
+
+ if (pc->type != CT_COMMENT_CPP)
+ break;
+
+ if (((pc->column == 1) && (first->column == 1)) ||
+ ((pc->column == col_br) && (first->column == col_br)) ||
+ ((pc->column > col_br) && (first->parent_type == CT_COMMENT_END)))
+ {
+ last = pc;
+cpp_newline:
+ add_char('\n');
+ output_indent(col, col_br);
+ add_char(' ');
+ add_char(cpd.settings[UO_cmt_star_cont].b ? '*' : ' ');
+cpp_addline:
+
+ if ((pc->str[2] != ' ') && (pc->str[2] != '\t'))
+ add_char(' ');
+
+ add_text_len(&pc->str[2], pc->len - 2);
+ }
+ }
+
+ if (cpd.settings[UO_cmt_cpp_nl_end].b)
+ {
+ add_char('\n');
+ output_indent(col, col_br);
+ }
+
+ add_text_len(" */", 3);
+ return last;
+ }
+
+void output_comment_multi(Chunk *pc)
+ {
+ int cmt_col = pc->column;
+ const char *cmt_str;
+ int remaining;
+ char ch;
+ Chunk *prev;
+ char line[1024];
+ int line_len;
+ int line_count = 0;
+ int ccol;
+ int col_diff = 0;
+ int xtra = 1;
+
+ prev = pc->GetPrev();
+
+ if ((prev != NULL) && (prev->type != CT_NEWLINE))
+ cmt_col = pc->orig_col;
+ else
+ col_diff = pc->orig_col - pc->column;
+
+ // fprintf(stderr, "Indenting1 line %d to col %d (orig=%d) col_diff=%d\n",
+ // pc->orig_line, cmt_col, pc->orig_col, col_diff);
+
+ xtra = calculate_comment_body_indent(pc->str, pc->len, pc->column);
+
+ ccol = 1;
+ remaining = pc->len;
+ cmt_str = pc->str;
+ line_len = 0;
+
+ while (remaining > 0)
+ {
+ ch = *cmt_str;
+ cmt_str++;
+ remaining--;
+
+ /* handle the CRLF and CR endings. convert both to LF */
+ if (ch == '\r')
+ {
+ ch = '\n';
+
+ if (*cmt_str == '\n')
+ {
+ cmt_str++;
+ remaining--;
+ }
+ }
+
+ /* Find the start column */
+ if (line_len == 0)
+ {
+ if (ch == ' ')
+ {
+ ccol++;
+ continue;
+ }
+ else if (ch == '\t')
+ {
+ ccol = calc_next_tab_column(ccol, cpd.settings[UO_input_tab_size].n);
+ continue;
+ }
+ else
+ {
+ //fprintf(stderr, "%d] Text starts in col %d\n", line_count, ccol);
+ }
+ }
+
+ line[line_len++] = ch;
+
+ /* If we just hit an end of line OR we just hit end-of-comment... */
+ if ((ch == '\n') || (remaining == 0))
+ {
+ line_count++;
+
+ /* strip trailing tabs and spaces before the newline */
+ if (ch == '\n')
+ {
+ line_len--;
+
+ while ((line_len > 0) &&
+ ((line[line_len - 1] == ' ') ||
+ (line[line_len - 1] == '\t')))
+ line_len--;
+
+ line[line_len++] = ch;
+ }
+
+ line[line_len] = 0;
+
+ if (line_count == 1)
+ {
+ /* this is the first line - add unchanged */
+
+ /*TODO: need to support indent_with_tabs mode 1 */
+ output_to_column(cmt_col, cpd.settings[UO_indent_with_tabs].b);
+ add_text_len(line, line_len);
+ }
+ else
+ {
+ /* This is not the first line, so we need to indent to the
+ * correct column.
+ */
+ ccol -= col_diff;
+
+ if (ccol < cmt_col)
+ ccol = cmt_col;
+
+ if (line[0] == '\n')
+ {
+ /* Emtpy line - just a '\n' */
+ if (cpd.settings[UO_cmt_star_cont].b)
+ {
+ output_to_column(cmt_col, cpd.settings[UO_indent_with_tabs].b);
+ add_text((xtra == 1) ? " *" : "*");
+ }
+
+ add_char('\n');
+ }
+ else
+ {
+ /* If this doesn't start with a '*' or '|' */
+ if ((line[0] != '*') && (line[0] != '|') && (line[0] != '#') &&
+ (line[0] != '\\') && (line[0] != '+'))
+ {
+ output_to_column(cmt_col, cpd.settings[UO_indent_with_tabs].b);
+
+ if (cpd.settings[UO_cmt_star_cont].b)
+ add_text((xtra == 1) ? " * " : "* ");
+ else
+ add_text(" ");
+
+ output_to_column(ccol, cpd.settings[UO_indent_with_tabs].b);
+ }
+ else
+ output_to_column(cmt_col + xtra, cpd.settings[UO_indent_with_tabs].b);
+
+ add_text_len(line, line_len);
+ }
+ }
+
+ line_len = 0;
+ ccol = 1;
+ }
+ }
+ }
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10000-621_this-spacing.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10000-621_this-spacing.cpp
index bd28a5e8..bd28a5e8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10000-621_this-spacing.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10000-621_this-spacing.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10001-622_ifdef-indentation.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10001-622_ifdef-indentation.cpp
index c466b45c..c466b45c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10001-622_ifdef-indentation.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10001-622_ifdef-indentation.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10002-623_caret-spacing.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10002-623_caret-spacing.cpp
index 5058ea4b..5058ea4b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10002-623_caret-spacing.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10002-623_caret-spacing.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10003-633_decl-in-func-typedef.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10003-633_decl-in-func-typedef.cpp
index 4160ecca..4160ecca 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10003-633_decl-in-func-typedef.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10003-633_decl-in-func-typedef.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10004-634_extern-c-no-block.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10004-634_extern-c-no-block.cpp
index bb6b14fb..bb6b14fb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10004-634_extern-c-no-block.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10004-634_extern-c-no-block.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10005-define-indentation.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10005-define-indentation.cpp
index 24370df9..24370df9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10005-define-indentation.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10005-define-indentation.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10006-dont-detab-strings.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10006-dont-detab-strings.cpp
index 11352d82..11352d82 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10006-dont-detab-strings.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10006-dont-detab-strings.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10007-dont-process-defines.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10007-dont-process-defines.cpp
new file mode 100644
index 00000000..10ac8d5b
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10007-dont-process-defines.cpp
@@ -0,0 +1,6 @@
+#define inline_2 __forceinline
+#define inline(i) inline_##i
+#define foo(x) inline(2) x()
+#define PLD(reg,offset) pld [reg, offset] \
+ pld [reg, offset] \
+ pld [reg, offset]
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10008-PR326_invalid-backslash-eol-csharp.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10008-PR326_invalid-backslash-eol-csharp.cpp
index dfd33ac7..dfd33ac7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10008-PR326_invalid-backslash-eol-csharp.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10008-PR326_invalid-backslash-eol-csharp.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10009-STUCK_macro-difficulties.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10009-STUCK_macro-difficulties.cpp
index ea1c724e..ea1c724e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10009-STUCK_macro-difficulties.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10009-STUCK_macro-difficulties.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10020-macro_spaces.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10020-macro_spaces.cpp
index 55a50766..55a50766 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10020-macro_spaces.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10020-macro_spaces.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10021-braces_align.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10021-braces_align.cpp
index 40d966f5..40d966f5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10021-braces_align.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10021-braces_align.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10022-foreach.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10022-foreach.cpp
index 2862e6ef..2862e6ef 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10022-foreach.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10022-foreach.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10023-for_auto.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10023-for_auto.cpp
index 775031a5..775031a5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10023-for_auto.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10023-for_auto.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10024-ifcomment.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10024-ifcomment.cpp
index b41c5c6f..b41c5c6f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10024-ifcomment.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10024-ifcomment.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10025-qtargs.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10025-qtargs.cpp
index 01d94543..01d94543 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10025-qtargs.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10025-qtargs.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10026-gcc_case_ellipsis.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10026-gcc_case_ellipsis.cpp
index 852360a4..852360a4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10026-gcc_case_ellipsis.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10026-gcc_case_ellipsis.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10027-Issue_3058.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10027-Issue_3058.cpp
index 09e1dc92..09e1dc92 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10027-Issue_3058.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10027-Issue_3058.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10028-gcc_case_ellipsis.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10028-gcc_case_ellipsis.cpp
index 852360a4..852360a4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10028-gcc_case_ellipsis.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10028-gcc_case_ellipsis.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10029-gcc_case_ellipsis.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10029-gcc_case_ellipsis.cpp
index e2d8ef8a..e2d8ef8a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10029-gcc_case_ellipsis.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10029-gcc_case_ellipsis.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10047-UNI-1334.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10047-UNI-1334.cpp
index 9a856f91..9a856f91 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10047-UNI-1334.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10047-UNI-1334.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10048-UNI-1335.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10048-UNI-1335.cpp
index 891b945a..891b945a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10048-UNI-1335.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10048-UNI-1335.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10050-UNI-1337.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10050-UNI-1337.cpp
index 59635c19..59635c19 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10050-UNI-1337.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10050-UNI-1337.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10052-UNI-1339.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10052-UNI-1339.cpp
index 255db223..255db223 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10052-UNI-1339.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10052-UNI-1339.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10053-UNI-1340.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10053-UNI-1340.cpp
index 2a96aa31..2a96aa31 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10053-UNI-1340.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10053-UNI-1340.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10054-UNI-1344.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10054-UNI-1344.cpp
index 43c4429e..43c4429e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10054-UNI-1344.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10054-UNI-1344.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10056-UNI-1346.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10056-UNI-1346.cpp
index af875c3e..af875c3e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10056-UNI-1346.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10056-UNI-1346.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10057-UNI-1347.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10057-UNI-1347.cpp
index ec8f350b..ec8f350b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10057-UNI-1347.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10057-UNI-1347.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10060-UNI-1350.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10060-UNI-1350.cpp
index 7353e915..7353e915 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10060-UNI-1350.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10060-UNI-1350.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10062-UNI-1356.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10062-UNI-1356.cpp
index c70ca61d..c70ca61d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10062-UNI-1356.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10062-UNI-1356.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10063-UNI-1358.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10063-UNI-1358.cpp
index 120aa9c4..120aa9c4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10063-UNI-1358.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10063-UNI-1358.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10069-UNI-1980.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10069-UNI-1980.cpp
index 97940716..97940716 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10069-UNI-1980.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10069-UNI-1980.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10070-UNI-1981.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10070-UNI-1981.cpp
index d4f74dc3..d4f74dc3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10070-UNI-1981.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10070-UNI-1981.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10071-UNI-1983.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10071-UNI-1983.cpp
index e7d9de6d..e7d9de6d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10071-UNI-1983.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10071-UNI-1983.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10079-UNI-9650.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10079-UNI-9650.cpp
index 0d6cdb46..0d6cdb46 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10079-UNI-9650.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10079-UNI-9650.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10080-UNI-10496.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10080-UNI-10496.cpp
index 81122be8..81122be8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10080-UNI-10496.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10080-UNI-10496.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10100-issue_564.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10100-issue_564.cpp
index ac5fbef3..ac5fbef3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10100-issue_564.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10100-issue_564.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10101-issue_574.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10101-issue_574.cpp
index 6621d455..6621d455 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10101-issue_574.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10101-issue_574.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10102-issue_574.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10102-issue_574.cpp
index 0f3b7da3..0f3b7da3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10102-issue_574.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10102-issue_574.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10103-issue_574.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10103-issue_574.cpp
index b87e76fe..b87e76fe 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10103-issue_574.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10103-issue_574.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10566-issue_1752.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10566-issue_1752.cpp
index 8e16cfa3..8e16cfa3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10566-issue_1752.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/10566-issue_1752.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/11000-UNI-12046.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/11000-UNI-12046.cpp
index 5ffc0da9..5ffc0da9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/11000-UNI-12046.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/11000-UNI-12046.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/20002-UNI-32657.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/20002-UNI-32657.cpp
index eb7655da..eb7655da 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/20002-UNI-32657.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/20002-UNI-32657.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/20011-UNI-38381.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/20011-UNI-38381.cpp
index 701b55b2..701b55b2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/20011-UNI-38381.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/20011-UNI-38381.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30000-cout.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30000-cout.cpp
index f099751f..f099751f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30000-cout.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30000-cout.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30001-alt_tokens.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30001-alt_tokens.cpp
index 02083b88..02083b88 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30001-alt_tokens.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30001-alt_tokens.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30002-constructor.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30002-constructor.cpp
index f7cbb30d..f7cbb30d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30002-constructor.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30002-constructor.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30003-strings.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30003-strings.cpp
index acef8744..acef8744 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30003-strings.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30003-strings.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30010-class.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30010-class.h
index 2293d9c8..2293d9c8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30010-class.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30010-class.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30011-misc.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30011-misc.cpp
index 9e3b8c5b..9e3b8c5b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30011-misc.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30011-misc.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30012-misc2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30012-misc2.cpp
new file mode 100644
index 00000000..62a51621
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30012-misc2.cpp
@@ -0,0 +1,58 @@
+/*
+ I tried to modify the spaces when using casts like static_cast etc. by
+ using sp_before_angle, sp_after_angle and sp_inside_angle. Even setting
+ all of those options to remove results in the following:
+ */
+
+myvar = dynamic_cast<MyClass<T>*>(other);
+// expected:
+//myvar = dynamic_cast<MyClass<T>*>(other);
+
+/*
+ Sometime pointers and references are still not detected correctly in
+ special cases - i guess.
+ */
+//When using "sp_before_ptr_star = remove" the result is:
+typedef std::list<StreamedData*>::iterator iterator;
+//typedef std::list<StreamedData *>::iterator iterator;
+//------------------------------^ This space show not be there
+
+typedef void (T::*Routine)(void);
+
+//Similar with "sp_before_byref = remove":
+unsigned long allocate(unsigned long size, void*& p);
+
+//unsigned long allocate(unsigned long size, void* & p);
+//------------------------------------------------^ The same here
+
+void foo(void)
+{
+ List<byte> bob = new List<byte>();
+
+ /* Align assignments */
+ align_assign(Chunk::GetHead(),
+ cpd.settings [UO_align_assign_span].n,
+ cpd.settings [UO_align_assign_thresh].n);
+}
+
+Args::Args(int argc, char**argv)
+{
+ m_count = argc;
+ m_values = argv;
+ int len = (argc >> 3) + 1;
+ m_used = new UINT8 [len];
+ if (m_used != NULL) {
+ memset(m_used, 0, len);
+ }
+}
+
+void Args(int argc, char**argv)
+{
+ m_count = argc;
+ m_values = argv;
+ int len = (argc >> 3) + 1;
+ m_used = new UINT8 [len];
+ if (m_used != NULL) {
+ memset(m_used, 0, len);
+ }
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30013-sim.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30013-sim.h
index 835ae666..835ae666 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30013-sim.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30013-sim.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30014-ctor-var.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30014-ctor-var.cpp
index 2551d8bd..2551d8bd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30014-ctor-var.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30014-ctor-var.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30015-exception.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30015-exception.cpp
index 75a4f97e..75a4f97e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30015-exception.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30015-exception.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30016-custom-open.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30016-custom-open.cpp
index 234f5591..234f5591 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30016-custom-open.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30016-custom-open.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30017-custom-open.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30017-custom-open.cpp
index 6acd92e5..6acd92e5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30017-custom-open.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30017-custom-open.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30018-class-addr.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30018-class-addr.h
index 042579dc..042579dc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30018-class-addr.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30018-class-addr.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30019-wacky-template.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30019-wacky-template.cpp
index cf6e5c87..cf6e5c87 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30019-wacky-template.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30019-wacky-template.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30020-bool.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30020-bool.cpp
index 9f9e55b2..9f9e55b2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30020-bool.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30020-bool.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30021-byref.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30021-byref.cpp
index 87f6c44a..87f6c44a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30021-byref.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30021-byref.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30022-extern_c.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30022-extern_c.h
index a97d93b8..a97d93b8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30022-extern_c.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30022-extern_c.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30023-templates.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30023-templates.cpp
index 960e0b82..960e0b82 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30023-templates.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30023-templates.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30024-class-init.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30024-class-init.cpp
index 884d5c71..884d5c71 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30024-class-init.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30024-class-init.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30025-class-init.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30025-class-init.cpp
index 703686ac..703686ac 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30025-class-init.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30025-class-init.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30026-byref.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30026-byref.cpp
index 2534aa05..2534aa05 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30026-byref.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30026-byref.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30027-byref.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30027-byref.cpp
index d0598697..d0598697 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30027-byref.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30027-byref.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30028-byref.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30028-byref.cpp
index 7a97856d..7a97856d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30028-byref.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30028-byref.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30029-init_align.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30029-init_align.h
index 085f838b..085f838b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30029-init_align.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30029-init_align.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30030-Timestamp.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30030-Timestamp.h
index 998b7d6f..998b7d6f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30030-Timestamp.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30030-Timestamp.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30031-operator.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30031-operator.cpp
index f17b865d..f17b865d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30031-operator.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30031-operator.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30032-operator.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30032-operator.cpp
index cfa98ca1..cfa98ca1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30032-operator.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30032-operator.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30033-operator.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30033-operator.cpp
index 976d919f..976d919f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30033-operator.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30033-operator.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30034-operator_proto.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30034-operator_proto.cpp
index 3e5af195..3e5af195 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30034-operator_proto.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30034-operator_proto.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30035-operator_proto.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30035-operator_proto.cpp
index 3824798c..3824798c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30035-operator_proto.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30035-operator_proto.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30036-operator.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30036-operator.cpp
index b1468795..b1468795 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30036-operator.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30036-operator.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30037-operator_proto.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30037-operator_proto.cpp
index d5c7e8fc..d5c7e8fc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30037-operator_proto.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30037-operator_proto.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30038-operator.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30038-operator.cpp
index a1bfafe3..a1bfafe3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30038-operator.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30038-operator.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30039-operator_proto.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30039-operator_proto.cpp
index 4ec0acf1..4ec0acf1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30039-operator_proto.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30039-operator_proto.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30040-nl-class.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30040-nl-class.h
index 9ccbcf75..9ccbcf75 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30040-nl-class.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30040-nl-class.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30041-nl-class.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30041-nl-class.h
index 57e47625..57e47625 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30041-nl-class.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30041-nl-class.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30042-Issue_2020.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30042-Issue_2020.cpp
index d618f922..d618f922 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30042-Issue_2020.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30042-Issue_2020.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30043-nl_func_call_empty.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30043-nl_func_call_empty.cpp
index fbf89d16..fbf89d16 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30043-nl_func_call_empty.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30043-nl_func_call_empty.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30044-nl_func_call_paren_empty.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30044-nl_func_call_paren_empty.cpp
index 4495d667..4495d667 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30044-nl_func_call_paren_empty.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30044-nl_func_call_paren_empty.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30045-nl_func_decl.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30045-nl_func_decl.cpp
index 81d0a00e..81d0a00e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30045-nl_func_decl.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30045-nl_func_decl.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30046-nl_func_decl.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30046-nl_func_decl.cpp
index 17aa59f0..17aa59f0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30046-nl_func_decl.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30046-nl_func_decl.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30047-nl_func_paren_empty.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30047-nl_func_paren_empty.cpp
index e8a947c9..e8a947c9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30047-nl_func_paren_empty.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30047-nl_func_paren_empty.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30048-nl_func_def_paren_empty.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30048-nl_func_def_paren_empty.cpp
index 22f3c700..22f3c700 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30048-nl_func_def_paren_empty.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30048-nl_func_def_paren_empty.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30049-nl_func_call_paren.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30049-nl_func_call_paren.cpp
index 847b7037..847b7037 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30049-nl_func_call_paren.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30049-nl_func_call_paren.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30050-nl-namespace.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30050-nl-namespace.h
index e515b479..e515b479 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30050-nl-namespace.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30050-nl-namespace.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30051-nl-namespace.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30051-nl-namespace.h
index c51d75be..c51d75be 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30051-nl-namespace.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30051-nl-namespace.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30052-try-catch-nl.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30052-try-catch-nl.cpp
index 410a735e..410a735e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30052-try-catch-nl.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30052-try-catch-nl.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30053-exception.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30053-exception.cpp
index 2c41efbf..2c41efbf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30053-exception.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30053-exception.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30054-Issue_2091.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30054-Issue_2091.cpp
index 6e32d683..6e32d683 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30054-Issue_2091.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30054-Issue_2091.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30055-nl_func.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30055-nl_func.cpp
index 142e6895..142e6895 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30055-nl_func.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30055-nl_func.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30056-nl_func.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30056-nl_func.cpp
index f930b703..f930b703 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30056-nl_func.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30056-nl_func.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30057-nl_inside_namespace.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30057-nl_inside_namespace.cpp
index 01486ebe..01486ebe 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30057-nl_inside_namespace.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30057-nl_inside_namespace.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30058-nl_inside_namespace.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30058-nl_inside_namespace.cpp
index 01486ebe..01486ebe 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30058-nl_inside_namespace.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30058-nl_inside_namespace.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30059-Issue_2186.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30059-Issue_2186.cpp
index 2c3081ea..2c3081ea 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30059-Issue_2186.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30059-Issue_2186.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30060-Issue_1734.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30060-Issue_1734.cpp
index 31d08c29..31d08c29 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30060-Issue_1734.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30060-Issue_1734.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30061-class-init.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30061-class-init.cpp
index 7ce41d09..7ce41d09 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30061-class-init.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30061-class-init.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30062-class-init.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30062-class-init.cpp
index 53ce4a31..53ce4a31 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30062-class-init.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30062-class-init.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30063-class-init.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30063-class-init.cpp
index ad278c90..ad278c90 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30063-class-init.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30063-class-init.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30064-class-init.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30064-class-init.cpp
index c44bdfd3..c44bdfd3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30064-class-init.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30064-class-init.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30065-Example.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30065-Example.h
index 1a868d10..1a868d10 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30065-Example.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30065-Example.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30066-class-init.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30066-class-init.cpp
index 1fc8bb57..1fc8bb57 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30066-class-init.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30066-class-init.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30067-nl_func_type_name.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30067-nl_func_type_name.cpp
index a30a08e9..a30a08e9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30067-nl_func_type_name.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30067-nl_func_type_name.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30068-nl_func_scope_name.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30068-nl_func_scope_name.cpp
index 1e4caa86..1e4caa86 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30068-nl_func_scope_name.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30068-nl_func_scope_name.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30069-class-implementation.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30069-class-implementation.cpp
index 18481338..18481338 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30069-class-implementation.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30069-class-implementation.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30070-nl_func_scope_name.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30070-nl_func_scope_name.cpp
index c14a06ed..c14a06ed 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30070-nl_func_scope_name.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30070-nl_func_scope_name.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30071-lineEndings-Mac.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30071-lineEndings-Mac.cpp
index 20fa083a..20fa083a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30071-lineEndings-Mac.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30071-lineEndings-Mac.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30072-lineEndings-Win.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30072-lineEndings-Win.cpp
index cdbf7653..cdbf7653 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30072-lineEndings-Win.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30072-lineEndings-Win.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30073-lineEndings-Unix.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30073-lineEndings-Unix.cpp
index 608952c0..608952c0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30073-lineEndings-Unix.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30073-lineEndings-Unix.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30074-bom.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30074-bom.cpp
index 7ee7e7e6..7ee7e7e6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30074-bom.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30074-bom.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30075-goto.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30075-goto.cpp
index 4cccfe2c..4cccfe2c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30075-goto.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30075-goto.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30076-Issue_2594.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30076-Issue_2594.cpp
index 240e19db..240e19db 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30076-Issue_2594.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30076-Issue_2594.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30077-Issue_2596.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30077-Issue_2596.cpp
index d2517e8b..d2517e8b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30077-Issue_2596.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30077-Issue_2596.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30078-Issue_2672-a.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30078-Issue_2672-a.cpp
index d29d2c47..d29d2c47 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30078-Issue_2672-a.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30078-Issue_2672-a.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30079-Issue_2672-b.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30079-Issue_2672-b.cpp
index f484d4ff..f484d4ff 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30079-Issue_2672-b.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30079-Issue_2672-b.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30080-nl_brace_brace.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30080-nl_brace_brace.cpp
index a9783697..a9783697 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30080-nl_brace_brace.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30080-nl_brace_brace.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30081-Issue_2383.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30081-Issue_2383.cpp
index 356fd9af..356fd9af 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30081-Issue_2383.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30081-Issue_2383.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30082-Issue_931.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30082-Issue_931.cpp
index 76a6b856..76a6b856 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30082-Issue_931.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30082-Issue_931.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30083-Issue_995-do.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30083-Issue_995-do.cpp
index 2e84d7ce..2e84d7ce 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30083-Issue_995-do.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30083-Issue_995-do.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30084-Issue_1184.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30084-Issue_1184.cpp
index 848b1e03..848b1e03 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30084-Issue_1184.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30084-Issue_1184.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30085-align_class.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30085-align_class.cpp
index 552d6947..552d6947 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30085-align_class.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30085-align_class.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30086-align_class-constr.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30086-align_class-constr.cpp
index f6082028..f6082028 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30086-align_class-constr.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30086-align_class-constr.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30087-Issue_1511.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30087-Issue_1511.cpp
index 2583c0e3..2583c0e3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30087-Issue_1511.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30087-Issue_1511.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30088-Issue_2561.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30088-Issue_2561.cpp
index aa566966..aa566966 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30088-Issue_2561.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30088-Issue_2561.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30089-Issue_2281.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30089-Issue_2281.cpp
index e0d8727d..e0d8727d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30089-Issue_2281.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30089-Issue_2281.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30090-bug_488.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30090-bug_488.cpp
index 268d5ba4..268d5ba4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30090-bug_488.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30090-bug_488.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30091-bug_472.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30091-bug_472.cpp
index e48251fe..e48251fe 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30091-bug_472.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30091-bug_472.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30092-bug_481.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30092-bug_481.cpp
index 99d8c390..99d8c390 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30092-bug_481.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30092-bug_481.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30093-bug_484.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30093-bug_484.cpp
index 875ff3d2..875ff3d2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30093-bug_484.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30093-bug_484.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30094-bug_495.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30094-bug_495.cpp
index d7db1238..d7db1238 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30094-bug_495.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30094-bug_495.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30095-bug_485.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30095-bug_485.cpp
index b5e7842c..b5e7842c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30095-bug_485.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30095-bug_485.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30096-bug_1854.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30096-bug_1854.cpp
index 29cc2774..29cc2774 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30096-bug_1854.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30096-bug_1854.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30097-issue_1946.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30097-issue_1946.cpp
index 9682da68..9682da68 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30097-issue_1946.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30097-issue_1946.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30098-Issue_2692.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30098-Issue_2692.cpp
index 4173ad5d..4173ad5d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30098-Issue_2692.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30098-Issue_2692.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30099-bug_1127.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30099-bug_1127.cpp
index 0109baaf..0109baaf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30099-bug_1127.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30099-bug_1127.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30100-templates.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30100-templates.cpp
index e4dd89e5..e4dd89e5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30100-templates.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30100-templates.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30101-templates.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30101-templates.cpp
index 78a60ebd..78a60ebd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30101-templates.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30101-templates.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30102-templates.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30102-templates.cpp
index 86bbfaf7..86bbfaf7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30102-templates.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30102-templates.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30103-templates.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30103-templates.cpp
index adadb882..adadb882 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30103-templates.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30103-templates.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30104-templ_class.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30104-templ_class.h
index 802f7e27..802f7e27 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30104-templ_class.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30104-templ_class.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30105-av.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30105-av.h
index 6efe8e9b..6efe8e9b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30105-av.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30105-av.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30106-templates2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30106-templates2.cpp
index 48f56d99..48f56d99 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30106-templates2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30106-templates2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30107-templates2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30107-templates2.cpp
index a49d4381..a49d4381 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30107-templates2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30107-templates2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30108-templates3.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30108-templates3.cpp
index a0e20d19..a0e20d19 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30108-templates3.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30108-templates3.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30109-templates4.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30109-templates4.cpp
index 781822e8..781822e8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30109-templates4.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30109-templates4.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30110-class-init.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30110-class-init.cpp
index e1b1949c..e1b1949c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30110-class-init.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30110-class-init.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30111-bug_1346.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30111-bug_1346.h
index 2ca31e50..2ca31e50 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30111-bug_1346.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30111-bug_1346.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30112-bug_1432.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30112-bug_1432.cpp
index 575a21c8..575a21c8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30112-bug_1432.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30112-bug_1432.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30113-bug_1452.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30113-bug_1452.cpp
index 59a3babd..59a3babd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30113-bug_1452.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30113-bug_1452.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30114-bug_1462.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30114-bug_1462.cpp
index b6a33ceb..b6a33ceb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30114-bug_1462.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30114-bug_1462.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30115-Issue_1704.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30115-Issue_1704.cpp
index 90cb2049..90cb2049 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30115-Issue_1704.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30115-Issue_1704.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30116-Issue_1052.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30116-Issue_1052.cpp
index 0e21f136..0e21f136 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30116-Issue_1052.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30116-Issue_1052.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30117-Issue_2343.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30117-Issue_2343.cpp
index a82e1172..a82e1172 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30117-Issue_2343.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30117-Issue_2343.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30118-Issue_2758.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30118-Issue_2758.cpp
index 576b1bef..576b1bef 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30118-Issue_2758.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30118-Issue_2758.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30119-Issue_2879.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30119-Issue_2879.cpp
index fbc323ae..fbc323ae 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30119-Issue_2879.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30119-Issue_2879.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30120-sp_after_angle.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30120-sp_after_angle.cpp
index 04af5289..04af5289 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30120-sp_after_angle.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30120-sp_after_angle.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30121-sp_after_angle.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30121-sp_after_angle.cpp
index 8764578e..8764578e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30121-sp_after_angle.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30121-sp_after_angle.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30122-sp_after_angle.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30122-sp_after_angle.cpp
index ee7acae0..ee7acae0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30122-sp_after_angle.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30122-sp_after_angle.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30123-sp_after_angle.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30123-sp_after_angle.cpp
index a791a8ef..a791a8ef 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30123-sp_after_angle.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30123-sp_after_angle.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30124-sp_after_angle.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30124-sp_after_angle.cpp
index c29f3552..c29f3552 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30124-sp_after_angle.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30124-sp_after_angle.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30125-sp_after_angle.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30125-sp_after_angle.cpp
index a791a8ef..a791a8ef 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30125-sp_after_angle.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30125-sp_after_angle.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30126-sp_after_angle.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30126-sp_after_angle.cpp
index 18788919..18788919 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30126-sp_after_angle.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30126-sp_after_angle.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30127-Issue_2565.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30127-Issue_2565.cpp
index 721d4d78..721d4d78 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30127-Issue_2565.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30127-Issue_2565.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30128-Issue_2873.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30128-Issue_2873.cpp
index 6803fd9a..6803fd9a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30128-Issue_2873.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30128-Issue_2873.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30129-Issue_2890.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30129-Issue_2890.cpp
index d03e4f62..d03e4f62 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30129-Issue_2890.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30129-Issue_2890.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30130-if-constexpr.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30130-if-constexpr.cpp
index 483317be..483317be 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30130-if-constexpr.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30130-if-constexpr.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30131-Issue_3010.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30131-Issue_3010.cpp
index 93fd70db..93fd70db 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30131-Issue_3010.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30131-Issue_3010.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30132-sp_brace_catch.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30132-sp_brace_catch.cpp
index 04c1b9c1..04c1b9c1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30132-sp_brace_catch.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30132-sp_brace_catch.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30133-Issue_3252.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30133-Issue_3252.cpp
index 5dc0e67e..5dc0e67e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30133-Issue_3252.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30133-Issue_3252.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30134-Issue_3357.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30134-Issue_3357.cpp
new file mode 100644
index 00000000..83dcc29a
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30134-Issue_3357.cpp
@@ -0,0 +1,7 @@
+/**
+ * @param[out] dest The memory area to copy to.
+ * @param[in] src The memory area to copy from.
+ * @param[in] n The number of bytes to copy
+ * @param[in,out] t The Test
+ */
+void memcpy(void *dest, const void *src, size_t n);
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30135-Issue_3448.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30135-Issue_3448.cpp
new file mode 100644
index 00000000..19160cf9
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30135-Issue_3448.cpp
@@ -0,0 +1,11 @@
+class Foo
+: public Bar
+, private Blarg
+, private Baz
+{
+ Foo()
+ : first()
+ , second()
+ , third()
+ { }
+};
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30136-Issue_3413.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30136-Issue_3413.cpp
new file mode 100644
index 00000000..d465f531
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30136-Issue_3413.cpp
@@ -0,0 +1,10 @@
+namespace
+{
+struct S { void f() {} };
+}
+
+void FuncCrash(int a = {}) { }
+void FuncCrash(int b = int {}) { }
+void FuncCrash(int b = int(0)) { }
+void FuncCrash(int b = double{0}) { }
+void FuncCrash(int b = 0) { }
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30137-Issue_3513-0.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30137-Issue_3513-0.cpp
new file mode 100644
index 00000000..c55df54a
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30137-Issue_3513-0.cpp
@@ -0,0 +1,8 @@
+struct S
+{
+ operator int() const
+ {
+ return get();
+ }
+
+};
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30138-Issue_3513-1.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30138-Issue_3513-1.cpp
new file mode 100644
index 00000000..560e6d51
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30138-Issue_3513-1.cpp
@@ -0,0 +1,8 @@
+struct S
+{
+ operator int()
+ {
+ return get();
+ }
+
+};
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30139-Issue_3604.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30139-Issue_3604.cpp
new file mode 100644
index 00000000..a96b3437
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30139-Issue_3604.cpp
@@ -0,0 +1,4 @@
+#define MY_DEF(Type, ...) \
+ enum Type { \
+ __VA_ARGS__, \
+ };
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30200-bug_1862.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30200-bug_1862.cpp
index c5357c86..c5357c86 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30200-bug_1862.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30200-bug_1862.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30201-cmt_indent.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30201-cmt_indent.cpp
index ed27ffca..ed27ffca 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30201-cmt_indent.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30201-cmt_indent.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30202-cmt_indent.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30202-cmt_indent.cpp
index 95c47d6e..95c47d6e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30202-cmt_indent.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30202-cmt_indent.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30203-cmt_indent.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30203-cmt_indent.cpp
index 05cc2df3..05cc2df3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30203-cmt_indent.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30203-cmt_indent.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30204-comment-align.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30204-comment-align.cpp
index afaaafef..afaaafef 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30204-comment-align.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30204-comment-align.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30205-cmt_right.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30205-cmt_right.cpp
index bcca4e2e..bcca4e2e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30205-cmt_right.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30205-cmt_right.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30206-cmt_backslash_eol.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30206-cmt_backslash_eol.cpp
index d020e171..d020e171 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30206-cmt_backslash_eol.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30206-cmt_backslash_eol.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30207-cmt_indent_pp.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30207-cmt_indent_pp.h
index 50e35c8d..50e35c8d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30207-cmt_indent_pp.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30207-cmt_indent_pp.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30208-bug_1108.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30208-bug_1108.cpp
index 573a9810..573a9810 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30208-bug_1108.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30208-bug_1108.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30209-bug_1134.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30209-bug_1134.cpp
index 369b70f1..369b70f1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30209-bug_1134.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30209-bug_1134.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30210-bug_1338.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30210-bug_1338.cpp
index 04b4cd8a..04b4cd8a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30210-bug_1338.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30210-bug_1338.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30211-indent_comment_align_thresh.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30211-indent_comment_align_thresh.cpp
index 34c09203..34c09203 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30211-indent_comment_align_thresh.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30211-indent_comment_align_thresh.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30212-indent_comment_align_thresh.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30212-indent_comment_align_thresh.cpp
index f9316598..f9316598 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30212-indent_comment_align_thresh.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30212-indent_comment_align_thresh.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30213-align_right_comment.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30213-align_right_comment.cpp
index 43a2a70f..43a2a70f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30213-align_right_comment.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30213-align_right_comment.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30214-align_across_braces.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30214-align_across_braces.cpp
index 199ede8d..199ede8d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30214-align_across_braces.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30214-align_across_braces.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30215-Issue_2099.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30215-Issue_2099.cpp
index 4726f44b..4726f44b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30215-Issue_2099.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30215-Issue_2099.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30216-Issue_2302.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30216-Issue_2302.cpp
index e2684ae6..e2684ae6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30216-Issue_2302.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30216-Issue_2302.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30217-2138.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30217-2138.cpp
index 8d1d7462..8d1d7462 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30217-2138.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30217-2138.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30220-bug_1340.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30220-bug_1340.cpp
index f64bc6a0..f64bc6a0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30220-bug_1340.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30220-bug_1340.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30221-Issue_2914.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30221-Issue_2914.cpp
index c2cd8b59..c2cd8b59 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30221-Issue_2914.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30221-Issue_2914.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30223-sp_enum_colon.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30223-sp_enum_colon.cpp
index 11d7320b..11d7320b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30223-sp_enum_colon.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30223-sp_enum_colon.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30224-sp_enum_colon.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30224-sp_enum_colon.cpp
index 804fe1ae..804fe1ae 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30224-sp_enum_colon.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30224-sp_enum_colon.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30225-Issue_3176.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30225-Issue_3176.cpp
index 2384027d..2384027d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30225-Issue_3176.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30225-Issue_3176.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30226-sp_enum_colon.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30226-sp_enum_colon.cpp
index be23e687..be23e687 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30226-sp_enum_colon.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30226-sp_enum_colon.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30227-sp_inside_braces_enum.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30227-sp_inside_braces_enum.cpp
index 8386e215..8386e215 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30227-sp_inside_braces_enum.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30227-sp_inside_braces_enum.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30228-sp_inside_braces_enum.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30228-sp_inside_braces_enum.cpp
index 666f834c..666f834c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30228-sp_inside_braces_enum.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30228-sp_inside_braces_enum.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30229-sp_inside_braces_enum.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30229-sp_inside_braces_enum.cpp
index 98640667..98640667 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30229-sp_inside_braces_enum.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30229-sp_inside_braces_enum.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30230-sp_type_func.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30230-sp_type_func.cpp
index 0d17364f..0d17364f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30230-sp_type_func.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30230-sp_type_func.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30231-sp_type_func.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30231-sp_type_func.cpp
index d7d69cc8..d7d69cc8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30231-sp_type_func.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30231-sp_type_func.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30232-sp_type_func.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30232-sp_type_func.cpp
index fe2a3348..fe2a3348 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30232-sp_type_func.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30232-sp_type_func.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30233-sp_type_func.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30233-sp_type_func.cpp
index fe2a3348..fe2a3348 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30233-sp_type_func.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30233-sp_type_func.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30234-functype_param.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30234-functype_param.cpp
index 32419616..32419616 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30234-functype_param.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30234-functype_param.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30235-functype_param.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30235-functype_param.cpp
index 9e9f5ecc..9e9f5ecc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30235-functype_param.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30235-functype_param.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30236-Issue_750.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30236-Issue_750.cpp
new file mode 100644
index 00000000..bf7d1100
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30236-Issue_750.cpp
@@ -0,0 +1,15 @@
+class Greeks
+{
+ double _dRho = 111.0;
+ int _dTheoretical = 22222.0;
+ double _dTheta = 3333333.0;
+ double _dTimeValue = 0.0;
+ double _dVega { 0.0 };
+ double _dVolatility { 0.0 };
+ double _dPvDiv = 0.0;
+}
+
+double sdf[6] = { 5.0, 6, 6, 34, 324, 5 };
+int fsaf[6] = { 5, 6, 6, 34, 324, 5 };
+char msa[3] { 6, 5, 3 };
+int y[3] { 6, 5, 3 };
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30240-align_func_params.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30240-align_func_params.cpp
index 923d274b..923d274b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30240-align_func_params.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30240-align_func_params.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30241-align_func_params.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30241-align_func_params.cpp
index 923d274b..923d274b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30241-align_func_params.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30241-align_func_params.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30242-align_func_params.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30242-align_func_params.cpp
index 512233cd..512233cd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30242-align_func_params.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30242-align_func_params.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30243-align_func_params.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30243-align_func_params.cpp
index 82434066..82434066 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30243-align_func_params.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30243-align_func_params.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30244-align_func_params.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30244-align_func_params.cpp
index 5efed666..5efed666 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30244-align_func_params.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30244-align_func_params.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30245-align_func_params.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30245-align_func_params.cpp
index a44170a9..a44170a9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30245-align_func_params.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30245-align_func_params.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30246-align_func_params.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30246-align_func_params.cpp
index 9def11e6..9def11e6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30246-align_func_params.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30246-align_func_params.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30247-Issue_2332.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30247-Issue_2332.cpp
index 0bc9cf8f..0bc9cf8f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30247-Issue_2332.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30247-Issue_2332.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30248-Issue_2831.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30248-Issue_2831.cpp
index c099567a..c099567a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30248-Issue_2831.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30248-Issue_2831.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30249-align-330.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30249-align-330.cpp
index a92e1545..a92e1545 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30249-align-330.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30249-align-330.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30250-align_fcall.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30250-align_fcall.cpp
index 055f0029..055f0029 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30250-align_fcall.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30250-align_fcall.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30251-align_fcall.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30251-align_fcall.cpp
index 055f0029..055f0029 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30251-align_fcall.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30251-align_fcall.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30253-align_left_shift.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30253-align_left_shift.cpp
index 7c98226d..7c98226d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30253-align_left_shift.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30253-align_left_shift.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30254-align_left_shift2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30254-align_left_shift2.cpp
index bfea744c..bfea744c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30254-align_left_shift2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30254-align_left_shift2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30255-align_constr.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30255-align_constr.cpp
index 380f0c8b..380f0c8b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30255-align_constr.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30255-align_constr.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30256-func_call.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30256-func_call.cpp
index e3eff88c..e3eff88c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30256-func_call.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30256-func_call.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30257-func_call_chain.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30257-func_call_chain.cpp
index 7e2f3931..7e2f3931 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30257-func_call_chain.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30257-func_call_chain.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30258-casts.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30258-casts.cpp
index d8a496fb..d8a496fb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30258-casts.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30258-casts.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30259-sp_after_constr_colon.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30259-sp_after_constr_colon.cpp
index 7b63b639..7b63b639 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30259-sp_after_constr_colon.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30259-sp_after_constr_colon.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30260-var_def_gap.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30260-var_def_gap.cpp
index 7333d292..7333d292 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30260-var_def_gap.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30260-var_def_gap.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30261-align_var_def_thresh.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30261-align_var_def_thresh.cpp
index 8512377e..8512377e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30261-align_var_def_thresh.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30261-align_var_def_thresh.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30262-align_var_def_thresh.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30262-align_var_def_thresh.cpp
index 4996a3d3..4996a3d3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30262-align_var_def_thresh.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30262-align_var_def_thresh.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30263-align_var_def_thresh.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30263-align_var_def_thresh.cpp
index 1e10f370..1e10f370 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30263-align_var_def_thresh.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30263-align_var_def_thresh.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30264-Issue_2668.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30264-Issue_2668.cpp
index da8e118f..da8e118f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30264-Issue_2668.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30264-Issue_2668.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30265-long_br_cmt.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30265-long_br_cmt.cpp
index 8ebdcec9..8ebdcec9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30265-long_br_cmt.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30265-long_br_cmt.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30266-Issue_2921.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30266-Issue_2921.cpp
index 53e3c495..53e3c495 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30266-Issue_2921.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30266-Issue_2921.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30267-Issue_2930.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30267-Issue_2930.cpp
index 00cff53b..00cff53b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30267-Issue_2930.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30267-Issue_2930.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30268-Issue_3018.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30268-Issue_3018.cpp
index ddbb473e..ddbb473e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30268-Issue_3018.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30268-Issue_3018.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30270-const_throw.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30270-const_throw.cpp
index 44f0ca68..44f0ca68 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30270-const_throw.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30270-const_throw.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30271-sp_throw_paren.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30271-sp_throw_paren.cpp
index 21ce9291..21ce9291 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30271-sp_throw_paren.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30271-sp_throw_paren.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30272-sp_throw_paren.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30272-sp_throw_paren.cpp
index ea851aff..ea851aff 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30272-sp_throw_paren.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30272-sp_throw_paren.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30273-sp_cparen_oparen.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30273-sp_cparen_oparen.cpp
index ee0d705b..ee0d705b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30273-sp_cparen_oparen.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30273-sp_cparen_oparen.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30274-sp_cparen_oparen.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30274-sp_cparen_oparen.cpp
index 93cc7f86..93cc7f86 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30274-sp_cparen_oparen.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30274-sp_cparen_oparen.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30275-bug_1321.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30275-bug_1321.cpp
index 5e708c11..5e708c11 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30275-bug_1321.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30275-bug_1321.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30278-bug_1439.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30278-bug_1439.cpp
index d560522b..d560522b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30278-bug_1439.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30278-bug_1439.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30279-indent-inside-ternary-operator.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30279-indent-inside-ternary-operator.cpp
index c8b92481..c8b92481 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30279-indent-inside-ternary-operator.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30279-indent-inside-ternary-operator.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30280-sf557.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30280-sf557.cpp
index 287bc9c1..287bc9c1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30280-sf557.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30280-sf557.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30281-Issue_2478.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30281-Issue_2478.cpp
index 40674590..40674590 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30281-Issue_2478.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30281-Issue_2478.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30282-Issue_2703.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30282-Issue_2703.cpp
index ec4554e9..ec4554e9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30282-Issue_2703.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30282-Issue_2703.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30283-Issue_3321.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30283-Issue_3321.h
index 9444d24c..9444d24c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30283-Issue_3321.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30283-Issue_3321.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30284-Issue_2957.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30284-Issue_2957.cpp
new file mode 100644
index 00000000..bd52cb8c
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30284-Issue_2957.cpp
@@ -0,0 +1,7 @@
+bus_type i2c_bus_type =
+{
+ .name = "i2c",
+ .match = i2c_device_match,
+ .suspend = i2c_bus_suspend,
+ .resume = i2c_bus_resume,
+};
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30285-Issue_2971.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30285-Issue_2971.cpp
new file mode 100644
index 00000000..52e7a253
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30285-Issue_2971.cpp
@@ -0,0 +1,11 @@
+#include <iostream>
+class X33
+{
+ int
+ f1(std::istream* c1)
+ {
+ int i;
+ *c1 >> i;
+ return i;
+ }
+};
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30290-align_left_shift.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30290-align_left_shift.cpp
index 8591a642..8591a642 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30290-align_left_shift.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30290-align_left_shift.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30291-indent_shift.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30291-indent_shift.cpp
index bc1ae2e5..bc1ae2e5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30291-indent_shift.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30291-indent_shift.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30292-eigen.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30292-eigen.cpp
index aa43434a..aa43434a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30292-eigen.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30292-eigen.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30293-pos_shift.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30293-pos_shift.cpp
index d4a8f1ed..d4a8f1ed 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30293-pos_shift.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30293-pos_shift.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30294-pos_shift.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30294-pos_shift.cpp
index badc9798..badc9798 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30294-pos_shift.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30294-pos_shift.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30295-pos_shift.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30295-pos_shift.cpp
index efb19263..efb19263 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30295-pos_shift.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30295-pos_shift.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30300-enum_shr.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30300-enum_shr.cpp
index 26e0d08e..26e0d08e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30300-enum_shr.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30300-enum_shr.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30301-enum_class.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30301-enum_class.h
index 7ad5e9ea..7ad5e9ea 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30301-enum_class.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30301-enum_class.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30302-bug_1315.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30302-bug_1315.cpp
index 584f9a00..584f9a00 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30302-bug_1315.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30302-bug_1315.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30303-Issue_2902.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30303-Issue_2902.cpp
index ae10d5a9..ae10d5a9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30303-Issue_2902.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30303-Issue_2902.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30310-braced_init_list.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30310-braced_init_list.cpp
index 116462c2..116462c2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30310-braced_init_list.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30310-braced_init_list.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30311-uniform_initialization.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30311-uniform_initialization.cpp
index 64da585d..64da585d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30311-uniform_initialization.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30311-uniform_initialization.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30312-return_init_list.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30312-return_init_list.cpp
index ef91c528..ef91c528 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30312-return_init_list.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30312-return_init_list.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30313-sp_brace_brace.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30313-sp_brace_brace.cpp
index 2ae91737..2ae91737 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30313-sp_brace_brace.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30313-sp_brace_brace.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30314-sp_brace_brace.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30314-sp_brace_brace.cpp
index b7ca9839..b7ca9839 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30314-sp_brace_brace.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30314-sp_brace_brace.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30315-return_braced_init.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30315-return_braced_init.cpp
index cf86baeb..cf86baeb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30315-return_braced_init.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30315-return_braced_init.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30316-Issue_2428.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30316-Issue_2428.cpp
index b2a0a139..b2a0a139 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30316-Issue_2428.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30316-Issue_2428.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30317-braced_init_template_decltype.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30317-braced_init_template_decltype.cpp
index 3c22d790..3c22d790 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30317-braced_init_template_decltype.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30317-braced_init_template_decltype.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30318-Issue_2949.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30318-Issue_2949.cpp
index d37d7ac3..d37d7ac3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30318-Issue_2949.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30318-Issue_2949.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30319-Issue_2886.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30319-Issue_2886.cpp
index 0474c710..0474c710 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30319-Issue_2886.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30319-Issue_2886.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30320-returns.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30320-returns.cpp
index d1ac08c0..d1ac08c0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30320-returns.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30320-returns.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30321-returns.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30321-returns.cpp
index 1abe1e54..1abe1e54 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30321-returns.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30321-returns.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30322-returns.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30322-returns.cpp
index a61b0fcf..a61b0fcf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30322-returns.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30322-returns.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30323-returns.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30323-returns.cpp
index b12cd7eb..b12cd7eb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30323-returns.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30323-returns.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30324-returns.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30324-returns.cpp
index fede22db..fede22db 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30324-returns.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30324-returns.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30325-returns.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30325-returns.cpp
index d797f9c7..d797f9c7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30325-returns.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30325-returns.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30326-indent_off_after_return.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30326-indent_off_after_return.cpp
index 6cd6d8e4..6cd6d8e4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30326-indent_off_after_return.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30326-indent_off_after_return.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30327-indent_off_after_return.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30327-indent_off_after_return.cpp
index 6cd6d8e4..6cd6d8e4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30327-indent_off_after_return.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30327-indent_off_after_return.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30328-call_brace_init_lst.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30328-call_brace_init_lst.cpp
index b75c35b1..b75c35b1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30328-call_brace_init_lst.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30328-call_brace_init_lst.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30329-call_brace_init_lst.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30329-call_brace_init_lst.cpp
index 83837910..83837910 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30329-call_brace_init_lst.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30329-call_brace_init_lst.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30330-Issue_3080.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30330-Issue_3080.cpp
index 75c6072b..75c6072b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30330-Issue_3080.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30330-Issue_3080.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30400-attribute_specifier_seqs.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30400-attribute_specifier_seqs.cpp
index 15cc6e3a..15cc6e3a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30400-attribute_specifier_seqs.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30400-attribute_specifier_seqs.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30401-Issue_2570.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30401-Issue_2570.cpp
index 44373e77..44373e77 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30401-Issue_2570.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30401-Issue_2570.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30701-function-def.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30701-function-def.cpp
index 89261c8e..89261c8e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30701-function-def.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30701-function-def.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30702-function-def.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30702-function-def.cpp
index c1fb4ed4..c1fb4ed4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30702-function-def.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30702-function-def.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30703-function-def.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30703-function-def.cpp
index c604152d..c604152d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30703-function-def.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30703-function-def.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30705-func_param.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30705-func_param.cpp
index 8bdb0ce8..8bdb0ce8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30705-func_param.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30705-func_param.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30706-bug_1020.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30706-bug_1020.cpp
index f0e9e60d..f0e9e60d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30706-bug_1020.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30706-bug_1020.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30711-semicolons.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30711-semicolons.cpp
index de28deef..de28deef 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30711-semicolons.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30711-semicolons.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30712-bug_1158.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30712-bug_1158.cpp
index 2a9ba76d..2a9ba76d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30712-bug_1158.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30712-bug_1158.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30713-fix_for_relational_operators.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30713-fix_for_relational_operators.cpp
index 890f2eba..890f2eba 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30713-fix_for_relational_operators.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30713-fix_for_relational_operators.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30714-Issue_1733.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30714-Issue_1733.cpp
index 10be5586..10be5586 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30714-Issue_1733.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30714-Issue_1733.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30715-Issue_2942.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30715-Issue_2942.cpp
index dbecc7f4..dbecc7f4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30715-Issue_2942.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30715-Issue_2942.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30720-custom-open-2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30720-custom-open-2.cpp
index 4d05944a..4d05944a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30720-custom-open-2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30720-custom-open-2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30721-Issue_2386.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30721-Issue_2386.cpp
index ac0b1dd4..ac0b1dd4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30721-Issue_2386.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30721-Issue_2386.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30730-qt-1.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30730-qt-1.cpp
index 5d0273e2..5d0273e2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30730-qt-1.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30730-qt-1.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30731-qt-1.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30731-qt-1.cpp
index 55b2459b..55b2459b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30731-qt-1.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30731-qt-1.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30732-Issue_2734.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30732-Issue_2734.cpp
index 27dfdc70..27dfdc70 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30732-Issue_2734.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30732-Issue_2734.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30740-sef.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30740-sef.cpp
index 8730ba15..8730ba15 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30740-sef.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30740-sef.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30741-al.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30741-al.cpp
index 1c911bf2..1c911bf2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30741-al.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30741-al.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30742-delete.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30742-delete.cpp
index c33aa682..c33aa682 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30742-delete.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30742-delete.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30745-Issue_2170.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30745-Issue_2170.cpp
index f1edafd8..f1edafd8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30745-Issue_2170.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30745-Issue_2170.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30746-DefaultAndDelete.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30746-DefaultAndDelete.cpp
index 7dff7dd5..7dff7dd5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30746-DefaultAndDelete.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30746-DefaultAndDelete.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30747-DefaultAndDelete.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30747-DefaultAndDelete.cpp
index 30d315a7..30d315a7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30747-DefaultAndDelete.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30747-DefaultAndDelete.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30748-DefaultAndDelete.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30748-DefaultAndDelete.cpp
index 9b55a964..9b55a964 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30748-DefaultAndDelete.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30748-DefaultAndDelete.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30750-lambda.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30750-lambda.cpp
new file mode 100644
index 00000000..daa4bac4
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30750-lambda.cpp
@@ -0,0 +1,115 @@
+void f1()
+{
+ auto a =
+ [ = ](int *a, Something& b)
+ {
+ std::cout << "blah: " << *a;
+ };
+}
+
+void f1a()
+{
+ std::for_each(a, b,
+ [](Something& b)
+ {
+ std::cout << "blah: " << *a;
+ });
+}
+
+void f1b()
+{
+ std::for_each(a, b,
+ [](int& b) -> foo
+ {
+ b += 3;
+ return(b);
+ });
+}
+
+void f2()
+{
+ Invoke(a, b,
+ [&one, two](int *a, Something& b)
+ {
+ std::cout << "blah: " << *a;
+ });
+}
+
+void f3a()
+{
+ auto a = [] {
+ };
+ auto b = [] {
+ return(true);
+ };
+}
+
+void f3b()
+{
+ Invoke(a, b,
+ [&one, two]
+ {
+ std::cout << "blah: " << one << two;
+ });
+}
+
+void f3c()
+{
+ int a[]{};
+}
+
+void g1()
+{
+ auto a = [ = ](int *a, Something&b) {
+ std::cout << "blah: " << *a;
+ };
+}
+
+void g1a()
+{
+ std::for_each(a, b, [](Something& b) {
+ std::cout << "blah: " << *a;
+ });
+}
+
+void g1b()
+{
+ std::for_each(a, b, [](int& b)->foo {
+ b += 3;
+ return(b);
+ });
+}
+
+void g2()
+{
+ Invoke(a, b,
+ [&one, two](int *a, Something&b) {
+ std::cout << "blah: " << *a;
+ });
+}
+
+void h1()
+{
+ []() -> int
+ {
+ return(33);
+ }();
+
+ []() noexcept ->int
+ {
+ return(33);
+ }();
+}
+
+void h2()
+{
+ [](int a) -> int
+ {
+ return(a + 33);
+ }(21);
+
+ [](int a) noexcept ->int
+ {
+ return(a + 33);
+ }(21);
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30751-lambda.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30751-lambda.cpp
new file mode 100644
index 00000000..291610c5
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30751-lambda.cpp
@@ -0,0 +1,94 @@
+void f1()
+{
+ auto a =
+ [=] (int *a, Something& b) {
+ std::cout << "blah: " << *a;
+ };
+}
+
+void f1a()
+{
+ std::for_each(a, b,
+ [] (Something& b) {
+ std::cout << "blah: " << *a;
+ });
+}
+
+void f1b()
+{
+ std::for_each(a, b,
+ [] (int& b) -> foo {
+ b += 3;
+ return(b);
+ });
+}
+
+void f2()
+{
+ Invoke(a, b,
+ [&one, two] (int *a, Something& b) {
+ std::cout << "blah: " << *a;
+ });
+}
+
+void f3a()
+{
+ auto a = [] {};
+ auto b = [] { return(true); };
+}
+
+void f3b()
+{
+ Invoke(a, b,
+ [&one, two] {
+ std::cout << "blah: " << one << two;
+ });
+}
+
+void f3c()
+{
+ int a[]{};
+}
+
+void g1()
+{
+ auto a = [=] (int *a, Something&b) { std::cout << "blah: " << *a; };
+}
+
+void g1a()
+{
+ std::for_each(a, b, [] (Something& b) { std::cout << "blah: " << *a; });
+}
+
+void g1b()
+{
+ std::for_each(a, b, [] (int& b)->foo { b += 3; return(b); });
+}
+
+void g2()
+{
+ Invoke(a, b,
+ [&one, two] (int *a, Something&b) { std::cout << "blah: " << *a; });
+}
+
+void h1()
+{
+ [] () -> int {
+ return(33);
+ }();
+
+ [] () noexcept ->int {
+ return(33);
+ }();
+}
+
+void h2()
+{
+ [] (int a) -> int {
+ return(a + 33);
+ }(21);
+
+ [] (int a) noexcept ->int {
+ return(a + 33);
+ }(21);
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30752-lambda.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30752-lambda.cpp
new file mode 100644
index 00000000..5c0f72b0
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30752-lambda.cpp
@@ -0,0 +1,128 @@
+void f1()
+{
+ auto a =
+ [=] (int *a, Something& b)
+ {
+ std::cout << "blah: " << *a;
+ };
+}
+
+void f1a()
+{
+ std::for_each(a, b,
+ [] (Something& b)
+ {
+ std::cout << "blah: " << *a;
+ }
+ );
+}
+
+void f1b()
+{
+ std::for_each(a, b,
+ [] (int& b) -> foo
+ {
+ b += 3;
+ return(b);
+ }
+ );
+}
+
+void f2()
+{
+ Invoke(a, b,
+ [&one, two] (int *a, Something& b)
+ {
+ std::cout << "blah: " << *a;
+ }
+ );
+}
+
+void f3a()
+{
+ auto a = []
+ {
+ };
+ auto b = []
+ {
+ return(true);
+ };
+}
+
+void f3b()
+{
+ Invoke(a, b,
+ [&one, two]
+ {
+ std::cout << "blah: " << one << two;
+ }
+ );
+}
+
+void f3c()
+{
+ int a[]{};
+}
+
+void g1()
+{
+ auto a = [=] (int *a, Something&b)
+ {
+ std::cout << "blah: " << *a;
+ };
+}
+
+void g1a()
+{
+ std::for_each(a, b, [] (Something& b)
+ {
+ std::cout << "blah: " << *a;
+ }
+ );
+}
+
+void g1b()
+{
+ std::for_each(a, b, [] (int& b)->foo
+ {
+ b += 3;
+ return(b);
+ }
+ );
+}
+
+void g2()
+{
+ Invoke(a, b,
+ [&one, two] (int *a, Something&b)
+ {
+ std::cout << "blah: " << *a;
+ }
+ );
+}
+
+void h1()
+{
+ [] () -> int
+ {
+ return(33);
+ }();
+
+ [] () noexcept ->int
+ {
+ return(33);
+ }();
+}
+
+void h2()
+{
+ [] (int a) -> int
+ {
+ return(a + 33);
+ }(21);
+
+ [] (int a) noexcept ->int
+ {
+ return(a + 33);
+ }(21);
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30753-lambda2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30753-lambda2.cpp
new file mode 100644
index 00000000..d91798a6
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30753-lambda2.cpp
@@ -0,0 +1,98 @@
+void f1()
+{
+ auto a =
+ [=] (int *a, Something& b){
+ std::cout << "blah: " << *a;
+ };
+}
+
+void f1a()
+{
+ std::for_each(a, b,
+ [] (Something& b){
+ std::cout << "blah: " << *a;
+ }
+ );
+}
+
+void f1b()
+{
+ std::for_each(a, b,
+ [] (int& b) -> foo {
+ b += 3;
+ return(b);
+ }
+ );
+}
+
+void f2()
+{
+ Invoke(a, b,
+ [&one, two] (int *a, Something& b){
+ std::cout << "blah: " << *a;
+ }
+ );
+}
+
+void f3a()
+{
+ auto a = [] {};
+ auto b = []{ return(true); };
+}
+
+void f3b()
+{
+ Invoke(a, b,
+ [&one, two]{
+ std::cout << "blah: " << one << two;
+ }
+ );
+}
+
+void f3c()
+{
+ int a[]{};
+}
+
+void g1()
+{
+ auto a = [=] (int *a, Something&b) { std::cout << "blah: " << *a; };
+}
+
+void g1a()
+{
+ std::for_each(a, b, [] (Something& b){ std::cout << "blah: " << *a; });
+}
+
+void g1b()
+{
+ std::for_each(a, b, [] (int& b)->foo { b += 3; return(b); });
+}
+
+void g2()
+{
+ Invoke(a, b,
+ [&one, two] (int *a, Something&b){ std::cout << "blah: " << *a; });
+}
+
+void h1()
+{
+ [] () -> int {
+ return(33);
+ }();
+
+ [] () noexcept ->int {
+ return(33);
+ }();
+}
+
+void h2()
+{
+ [] (int a) -> int {
+ return(a + 33);
+ }(21);
+
+ [] (int a) noexcept ->int {
+ return(a + 33);
+ }(21);
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30754-bug_i_682.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30754-bug_i_682.h
index 51c58e23..51c58e23 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30754-bug_i_682.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30754-bug_i_682.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30755-bug_i_938.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30755-bug_i_938.h
index b13997a6..b13997a6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30755-bug_i_938.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30755-bug_i_938.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30756-bug_1296.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30756-bug_1296.cpp
new file mode 100644
index 00000000..7f7757c4
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30756-bug_1296.cpp
@@ -0,0 +1,7 @@
+int main()
+{
+ auto lambda2222222222222222222 = [&]()
+ {
+ code();
+ };
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30757-Issue_3054.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30757-Issue_3054.cpp
index 53edc388..53edc388 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30757-Issue_3054.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30757-Issue_3054.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30758-Issue_3054-2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30758-Issue_3054-2.cpp
index e4c1c8da..e4c1c8da 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30758-Issue_3054-2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30758-Issue_3054-2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30759-lambda2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30759-lambda2.cpp
new file mode 100644
index 00000000..09c779b5
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30759-lambda2.cpp
@@ -0,0 +1,98 @@
+void f1()
+{
+ auto a =
+ [=] (int *a, Something& b){
+ std::cout << "blah: " << *a;
+ };
+}
+
+void f1a()
+{
+ std::for_each(a, b,
+ [] (Something& b){
+ std::cout << "blah: " << *a;
+ }
+ );
+}
+
+void f1b()
+{
+ std::for_each(a, b,
+ [] (int& b) -> foo {
+ b += 3;
+ return(b);
+ }
+ );
+}
+
+void f2()
+{
+ Invoke(a, b,
+ [&one, two] (int *a, Something& b){
+ std::cout << "blah: " << *a;
+ }
+ );
+}
+
+void f3a()
+{
+ auto a = [] {};
+ auto b = []{ return(true); };
+}
+
+void f3b()
+{
+ Invoke(a, b,
+ [&one, two]{
+ std::cout << "blah: " << one << two;
+ }
+ );
+}
+
+void f3c()
+{
+ int a[]{};
+}
+
+void g1()
+{
+ auto a = [=] (int *a, Something&b) { std::cout << "blah: " << *a; };
+}
+
+void g1a()
+{
+ std::for_each(a, b, [] (Something& b){ std::cout << "blah: " << *a; });
+}
+
+void g1b()
+{
+ std::for_each(a, b, [] (int& b)->foo { b += 3; return(b); });
+}
+
+void g2()
+{
+ Invoke(a, b,
+ [&one, two] (int *a, Something&b){ std::cout << "blah: " << *a; });
+}
+
+void h1()
+{
+ [] () -> int {
+ return(33);
+ }();
+
+ [] () noexcept ->int {
+ return(33);
+ }();
+}
+
+void h2()
+{
+ [] (int a) -> int {
+ return(a + 33);
+ }(21);
+
+ [] (int a) noexcept ->int {
+ return(a + 33);
+ }(21);
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30760-bug_1296.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30760-bug_1296.cpp
new file mode 100644
index 00000000..a5535041
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30760-bug_1296.cpp
@@ -0,0 +1,7 @@
+int main()
+{
+ auto lambda2222222222222222222 = [&]()
+ {
+ code();
+ };
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30761-out-668.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30761-out-668.cpp
index 8829c0ce..8829c0ce 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30761-out-668.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30761-out-668.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30762-out-668.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30762-out-668.cpp
index 0dac74c3..0dac74c3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30762-out-668.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30762-out-668.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30763-Issue_2166.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30763-Issue_2166.cpp
index d9ac55c7..d9ac55c7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30763-Issue_2166.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30763-Issue_2166.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30764-Issue_2591.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30764-Issue_2591.cpp
index 01ed232e..01ed232e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30764-Issue_2591.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30764-Issue_2591.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30765-lambda.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30765-lambda.cpp
new file mode 100644
index 00000000..05e372e3
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30765-lambda.cpp
@@ -0,0 +1,114 @@
+void f1()
+{
+ auto a =
+ [=] (int *a, Something & b)
+ {
+ std::cout << "blah: " << *a;
+ };
+}
+
+void f1a()
+{
+ std::for_each(a, b,
+ [](Something & b)
+ {
+ std::cout << "blah: " << *a;
+ });
+}
+
+void f1b()
+{
+ std::for_each(a, b,
+ [](int & b) -> foo
+ {
+ b += 3;
+ return b;
+ });
+}
+
+void f2()
+{
+ Invoke(a, b,
+ [&one, two](int *a, Something & b)
+ {
+ std::cout << "blah: " << *a;
+ });
+}
+
+void f3a()
+{
+ auto a = [] {
+ };
+ auto b = []{
+ return true;
+ };
+}
+
+void f3b()
+{
+ Invoke(a, b,
+ [&one, two]
+ {
+ std::cout << "blah: " << one << two;
+ });
+}
+
+void f3c()
+{
+ int a[]{};
+}
+
+void g1()
+{
+ auto a = [ = ](int* a, Something &b) {
+ std::cout << "blah: " << *a;
+ };
+}
+
+void g1a()
+{
+ std::for_each(a, b, [](Something& b){
+ std::cout<<"blah: "<<*a;
+ });
+}
+
+void g1b()
+{
+ std::for_each(a, b, [] (int& b)->foo {
+ b+=3; return(b);
+ });
+}
+
+void g2()
+{
+ Invoke(a, b,
+ [&one, two] (int *a, Something&b){
+ std::cout << "blah: " << *a;
+ });
+}
+
+void h1()
+{
+ []() -> int
+ {
+ return 33;
+ }();
+
+ []() noexcept ->int
+ {
+ return 33;
+ }();
+}
+
+void h2()
+{
+ [](int a) -> int
+ {
+ return a + 33;
+ }(21);
+
+ [](int a) noexcept ->int
+ {
+ return a + 33;
+ }(21);
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30766-lambda.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30766-lambda.cpp
new file mode 100644
index 00000000..05e372e3
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30766-lambda.cpp
@@ -0,0 +1,114 @@
+void f1()
+{
+ auto a =
+ [=] (int *a, Something & b)
+ {
+ std::cout << "blah: " << *a;
+ };
+}
+
+void f1a()
+{
+ std::for_each(a, b,
+ [](Something & b)
+ {
+ std::cout << "blah: " << *a;
+ });
+}
+
+void f1b()
+{
+ std::for_each(a, b,
+ [](int & b) -> foo
+ {
+ b += 3;
+ return b;
+ });
+}
+
+void f2()
+{
+ Invoke(a, b,
+ [&one, two](int *a, Something & b)
+ {
+ std::cout << "blah: " << *a;
+ });
+}
+
+void f3a()
+{
+ auto a = [] {
+ };
+ auto b = []{
+ return true;
+ };
+}
+
+void f3b()
+{
+ Invoke(a, b,
+ [&one, two]
+ {
+ std::cout << "blah: " << one << two;
+ });
+}
+
+void f3c()
+{
+ int a[]{};
+}
+
+void g1()
+{
+ auto a = [ = ](int* a, Something &b) {
+ std::cout << "blah: " << *a;
+ };
+}
+
+void g1a()
+{
+ std::for_each(a, b, [](Something& b){
+ std::cout<<"blah: "<<*a;
+ });
+}
+
+void g1b()
+{
+ std::for_each(a, b, [] (int& b)->foo {
+ b+=3; return(b);
+ });
+}
+
+void g2()
+{
+ Invoke(a, b,
+ [&one, two] (int *a, Something&b){
+ std::cout << "blah: " << *a;
+ });
+}
+
+void h1()
+{
+ []() -> int
+ {
+ return 33;
+ }();
+
+ []() noexcept ->int
+ {
+ return 33;
+ }();
+}
+
+void h2()
+{
+ [](int a) -> int
+ {
+ return a + 33;
+ }(21);
+
+ [](int a) noexcept ->int
+ {
+ return a + 33;
+ }(21);
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30767-lambda.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30767-lambda.cpp
new file mode 100644
index 00000000..05e372e3
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30767-lambda.cpp
@@ -0,0 +1,114 @@
+void f1()
+{
+ auto a =
+ [=] (int *a, Something & b)
+ {
+ std::cout << "blah: " << *a;
+ };
+}
+
+void f1a()
+{
+ std::for_each(a, b,
+ [](Something & b)
+ {
+ std::cout << "blah: " << *a;
+ });
+}
+
+void f1b()
+{
+ std::for_each(a, b,
+ [](int & b) -> foo
+ {
+ b += 3;
+ return b;
+ });
+}
+
+void f2()
+{
+ Invoke(a, b,
+ [&one, two](int *a, Something & b)
+ {
+ std::cout << "blah: " << *a;
+ });
+}
+
+void f3a()
+{
+ auto a = [] {
+ };
+ auto b = []{
+ return true;
+ };
+}
+
+void f3b()
+{
+ Invoke(a, b,
+ [&one, two]
+ {
+ std::cout << "blah: " << one << two;
+ });
+}
+
+void f3c()
+{
+ int a[]{};
+}
+
+void g1()
+{
+ auto a = [ = ](int* a, Something &b) {
+ std::cout << "blah: " << *a;
+ };
+}
+
+void g1a()
+{
+ std::for_each(a, b, [](Something& b){
+ std::cout<<"blah: "<<*a;
+ });
+}
+
+void g1b()
+{
+ std::for_each(a, b, [] (int& b)->foo {
+ b+=3; return(b);
+ });
+}
+
+void g2()
+{
+ Invoke(a, b,
+ [&one, two] (int *a, Something&b){
+ std::cout << "blah: " << *a;
+ });
+}
+
+void h1()
+{
+ []() -> int
+ {
+ return 33;
+ }();
+
+ []() noexcept ->int
+ {
+ return 33;
+ }();
+}
+
+void h2()
+{
+ [](int a) -> int
+ {
+ return a + 33;
+ }(21);
+
+ [](int a) noexcept ->int
+ {
+ return a + 33;
+ }(21);
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30768-sp_cpp_lambda_fparen.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30768-sp_cpp_lambda_fparen.cpp
index e25d0496..e25d0496 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30768-sp_cpp_lambda_fparen.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30768-sp_cpp_lambda_fparen.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30770-lambda.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30770-lambda.cpp
new file mode 100644
index 00000000..5bce0d31
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30770-lambda.cpp
@@ -0,0 +1,114 @@
+void f1()
+{
+ auto a =
+ [ = ](int *a, Something & b)
+ {
+ std::cout << "blah: " << *a;
+ };
+}
+
+void f1a()
+{
+ std::for_each(a, b,
+ [](Something & b)
+ {
+ std::cout << "blah: " << *a;
+ });
+}
+
+void f1b()
+{
+ std::for_each(a, b,
+ [](int & b) -> foo
+ {
+ b += 3;
+ return b;
+ });
+}
+
+void f2()
+{
+ Invoke(a, b,
+ [&one, two](int *a, Something & b)
+ {
+ std::cout << "blah: " << *a;
+ });
+}
+
+void f3a()
+{
+ auto a = [] {
+ };
+ auto b = [] {
+ return true;
+ };
+}
+
+void f3b()
+{
+ Invoke(a, b,
+ [&one, two]
+ {
+ std::cout << "blah: " << one << two;
+ });
+}
+
+void f3c()
+{
+ int a[]{};
+}
+
+void g1()
+{
+ auto a = [ = ](int* a, Something &b) {
+ std::cout << "blah: " << *a;
+ };
+}
+
+void g1a()
+{
+ std::for_each(a, b, [](Something& b) {
+ std::cout<<"blah: "<<*a;
+ });
+}
+
+void g1b()
+{
+ std::for_each(a, b, [](int& b)->foo {
+ b+=3; return(b);
+ });
+}
+
+void g2()
+{
+ Invoke(a, b,
+ [&one, two](int *a, Something&b) {
+ std::cout << "blah: " << *a;
+ });
+}
+
+void h1()
+{
+ []() -> int
+ {
+ return 33;
+ }();
+
+ []() noexcept ->int
+ {
+ return 33;
+ }();
+}
+
+void h2()
+{
+ [](int a) -> int
+ {
+ return a + 33;
+ }(21);
+
+ [](int a) noexcept ->int
+ {
+ return a + 33;
+ }(21);
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30771-lambda.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30771-lambda.cpp
new file mode 100644
index 00000000..acc5b530
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30771-lambda.cpp
@@ -0,0 +1,114 @@
+void f1()
+{
+ auto a =
+ [=] (int *a, Something & b)
+ {
+ std::cout << "blah: " << *a;
+ };
+}
+
+void f1a()
+{
+ std::for_each(a, b,
+ [] (Something & b)
+ {
+ std::cout << "blah: " << *a;
+ });
+}
+
+void f1b()
+{
+ std::for_each(a, b,
+ [] (int & b) -> foo
+ {
+ b += 3;
+ return b;
+ });
+}
+
+void f2()
+{
+ Invoke(a, b,
+ [&one, two] (int *a, Something & b)
+ {
+ std::cout << "blah: " << *a;
+ });
+}
+
+void f3a()
+{
+ auto a = [] {
+ };
+ auto b = [] {
+ return true;
+ };
+}
+
+void f3b()
+{
+ Invoke(a, b,
+ [&one, two]
+ {
+ std::cout << "blah: " << one << two;
+ });
+}
+
+void f3c()
+{
+ int a[]{};
+}
+
+void g1()
+{
+ auto a = [=] (int* a, Something &b) {
+ std::cout << "blah: " << *a;
+ };
+}
+
+void g1a()
+{
+ std::for_each(a, b, [] (Something& b) {
+ std::cout<<"blah: "<<*a;
+ });
+}
+
+void g1b()
+{
+ std::for_each(a, b, [] (int& b)->foo {
+ b+=3; return(b);
+ });
+}
+
+void g2()
+{
+ Invoke(a, b,
+ [&one, two] (int *a, Something&b) {
+ std::cout << "blah: " << *a;
+ });
+}
+
+void h1()
+{
+ [] () -> int
+ {
+ return 33;
+ }();
+
+ [] () noexcept ->int
+ {
+ return 33;
+ }();
+}
+
+void h2()
+{
+ [] (int a) -> int
+ {
+ return a + 33;
+ }(21);
+
+ [] (int a) noexcept ->int
+ {
+ return a + 33;
+ }(21);
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30772-lambda.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30772-lambda.cpp
new file mode 100644
index 00000000..304e4d10
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30772-lambda.cpp
@@ -0,0 +1,114 @@
+void f1()
+{
+ auto a =
+ [=](int *a, Something & b)
+ {
+ std::cout << "blah: " << *a;
+ };
+}
+
+void f1a()
+{
+ std::for_each(a, b,
+ [](Something & b)
+ {
+ std::cout << "blah: " << *a;
+ });
+}
+
+void f1b()
+{
+ std::for_each(a, b,
+ [](int & b) -> foo
+ {
+ b += 3;
+ return b;
+ });
+}
+
+void f2()
+{
+ Invoke(a, b,
+ [&one, two](int *a, Something & b)
+ {
+ std::cout << "blah: " << *a;
+ });
+}
+
+void f3a()
+{
+ auto a = []{
+ };
+ auto b = []{
+ return true;
+ };
+}
+
+void f3b()
+{
+ Invoke(a, b,
+ [&one, two]
+ {
+ std::cout << "blah: " << one << two;
+ });
+}
+
+void f3c()
+{
+ int a[]{};
+}
+
+void g1()
+{
+ auto a = [=](int* a, Something &b){
+ std::cout << "blah: " << *a;
+ };
+}
+
+void g1a()
+{
+ std::for_each(a, b, [](Something& b){
+ std::cout<<"blah: "<<*a;
+ });
+}
+
+void g1b()
+{
+ std::for_each(a, b, [](int& b)->foo {
+ b+=3; return(b);
+ });
+}
+
+void g2()
+{
+ Invoke(a, b,
+ [&one, two](int *a, Something&b){
+ std::cout << "blah: " << *a;
+ });
+}
+
+void h1()
+{
+ []() -> int
+ {
+ return 33;
+ }();
+
+ []() noexcept ->int
+ {
+ return 33;
+ }();
+}
+
+void h2()
+{
+ [](int a) -> int
+ {
+ return a + 33;
+ }(21);
+
+ [](int a) noexcept ->int
+ {
+ return a + 33;
+ }(21);
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30773-lambda.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30773-lambda.cpp
new file mode 100644
index 00000000..f494244a
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30773-lambda.cpp
@@ -0,0 +1,114 @@
+void f1()
+{
+ auto a =
+ [=](int *a, Something & b)
+ {
+ std::cout << "blah: " << *a;
+ };
+}
+
+void f1a()
+{
+ std::for_each(a, b,
+ [](Something & b)
+ {
+ std::cout << "blah: " << *a;
+ });
+}
+
+void f1b()
+{
+ std::for_each(a, b,
+ [](int & b) -> foo
+ {
+ b += 3;
+ return b;
+ });
+}
+
+void f2()
+{
+ Invoke(a, b,
+ [&one, two](int *a, Something & b)
+ {
+ std::cout << "blah: " << *a;
+ });
+}
+
+void f3a()
+{
+ auto a = [] {
+ };
+ auto b = [] {
+ return true;
+ };
+}
+
+void f3b()
+{
+ Invoke(a, b,
+ [&one, two]
+ {
+ std::cout << "blah: " << one << two;
+ });
+}
+
+void f3c()
+{
+ int a[]{};
+}
+
+void g1()
+{
+ auto a = [=](int* a, Something &b){
+ std::cout << "blah: " << *a;
+ };
+}
+
+void g1a()
+{
+ std::for_each(a, b, [](Something& b){
+ std::cout<<"blah: "<<*a;
+ });
+}
+
+void g1b()
+{
+ std::for_each(a, b, [](int& b)->foo {
+ b+=3; return(b);
+ });
+}
+
+void g2()
+{
+ Invoke(a, b,
+ [&one, two](int *a, Something&b){
+ std::cout << "blah: " << *a;
+ });
+}
+
+void h1()
+{
+ []() -> int
+ {
+ return 33;
+ }();
+
+ []() noexcept ->int
+ {
+ return 33;
+ }();
+}
+
+void h2()
+{
+ [](int a) -> int
+ {
+ return a + 33;
+ }(21);
+
+ [](int a) noexcept ->int
+ {
+ return a + 33;
+ }(21);
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30774-lambda.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30774-lambda.cpp
new file mode 100644
index 00000000..f494244a
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30774-lambda.cpp
@@ -0,0 +1,114 @@
+void f1()
+{
+ auto a =
+ [=](int *a, Something & b)
+ {
+ std::cout << "blah: " << *a;
+ };
+}
+
+void f1a()
+{
+ std::for_each(a, b,
+ [](Something & b)
+ {
+ std::cout << "blah: " << *a;
+ });
+}
+
+void f1b()
+{
+ std::for_each(a, b,
+ [](int & b) -> foo
+ {
+ b += 3;
+ return b;
+ });
+}
+
+void f2()
+{
+ Invoke(a, b,
+ [&one, two](int *a, Something & b)
+ {
+ std::cout << "blah: " << *a;
+ });
+}
+
+void f3a()
+{
+ auto a = [] {
+ };
+ auto b = [] {
+ return true;
+ };
+}
+
+void f3b()
+{
+ Invoke(a, b,
+ [&one, two]
+ {
+ std::cout << "blah: " << one << two;
+ });
+}
+
+void f3c()
+{
+ int a[]{};
+}
+
+void g1()
+{
+ auto a = [=](int* a, Something &b){
+ std::cout << "blah: " << *a;
+ };
+}
+
+void g1a()
+{
+ std::for_each(a, b, [](Something& b){
+ std::cout<<"blah: "<<*a;
+ });
+}
+
+void g1b()
+{
+ std::for_each(a, b, [](int& b)->foo {
+ b+=3; return(b);
+ });
+}
+
+void g2()
+{
+ Invoke(a, b,
+ [&one, two](int *a, Something&b){
+ std::cout << "blah: " << *a;
+ });
+}
+
+void h1()
+{
+ []() -> int
+ {
+ return 33;
+ }();
+
+ []() noexcept ->int
+ {
+ return 33;
+ }();
+}
+
+void h2()
+{
+ [](int a) -> int
+ {
+ return a + 33;
+ }(21);
+
+ [](int a) noexcept ->int
+ {
+ return a + 33;
+ }(21);
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30775-lambda.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30775-lambda.cpp
new file mode 100644
index 00000000..80e9c8f9
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30775-lambda.cpp
@@ -0,0 +1,114 @@
+void f1()
+{
+ auto a =
+ [=](int *a, Something & b)
+ {
+ std::cout << "blah: " << *a;
+ };
+}
+
+void f1a()
+{
+ std::for_each(a, b,
+ [](Something & b)
+ {
+ std::cout << "blah: " << *a;
+ });
+}
+
+void f1b()
+{
+ std::for_each(a, b,
+ [](int & b) -> foo
+ {
+ b += 3;
+ return b;
+ });
+}
+
+void f2()
+{
+ Invoke(a, b,
+ [&one, two](int *a, Something & b)
+ {
+ std::cout << "blah: " << *a;
+ });
+}
+
+void f3a()
+{
+ auto a = [] {
+ };
+ auto b = [] {
+ return true;
+ };
+}
+
+void f3b()
+{
+ Invoke(a, b,
+ [&one, two]
+ {
+ std::cout << "blah: " << one << two;
+ });
+}
+
+void f3c()
+{
+ int a[]{};
+}
+
+void g1()
+{
+ auto a = [=](int* a, Something &b) {
+ std::cout << "blah: " << *a;
+ };
+}
+
+void g1a()
+{
+ std::for_each(a, b, [](Something& b) {
+ std::cout<<"blah: "<<*a;
+ });
+}
+
+void g1b()
+{
+ std::for_each(a, b, [](int& b)->foo {
+ b+=3; return(b);
+ });
+}
+
+void g2()
+{
+ Invoke(a, b,
+ [&one, two](int *a, Something&b) {
+ std::cout << "blah: " << *a;
+ });
+}
+
+void h1()
+{
+ []() -> int
+ {
+ return 33;
+ }();
+
+ []() noexcept ->int
+ {
+ return 33;
+ }();
+}
+
+void h2()
+{
+ [](int a) -> int
+ {
+ return a + 33;
+ }(21);
+
+ [](int a) noexcept ->int
+ {
+ return a + 33;
+ }(21);
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30776-sp_cpp_lambda_fparen.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30776-sp_cpp_lambda_fparen.cpp
index e0c1985d..e0c1985d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30776-sp_cpp_lambda_fparen.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30776-sp_cpp_lambda_fparen.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30777-sp_cpp_lambda_fparen.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30777-sp_cpp_lambda_fparen.cpp
index f882a211..f882a211 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30777-sp_cpp_lambda_fparen.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30777-sp_cpp_lambda_fparen.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30780-lambda_in_one_liner.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30780-lambda_in_one_liner.cpp
index c740c4bd..c740c4bd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30780-lambda_in_one_liner.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30780-lambda_in_one_liner.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30781-lambda_brace_list.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30781-lambda_brace_list.cpp
index 8626f5af..8626f5af 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30781-lambda_brace_list.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30781-lambda_brace_list.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30790-Issue_2795.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30790-Issue_2795.cpp
index 6cb7e112..6cb7e112 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30790-Issue_2795.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30790-Issue_2795.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30791-Issue_3203.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30791-Issue_3203.cpp
index 519d29dd..519d29dd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30791-Issue_3203.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30791-Issue_3203.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30800-align-star-amp-pos.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30800-align-star-amp-pos.cpp
index dc988ce1..dc988ce1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30800-align-star-amp-pos.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30800-align-star-amp-pos.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30801-align-star-amp-pos.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30801-align-star-amp-pos.cpp
index c23b0d4a..c23b0d4a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30801-align-star-amp-pos.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30801-align-star-amp-pos.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30802-align-star-amp-pos.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30802-align-star-amp-pos.cpp
index cf2bff2d..cf2bff2d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30802-align-star-amp-pos.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30802-align-star-amp-pos.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30803-bug_1403.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30803-bug_1403.cpp
index 209c0173..209c0173 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30803-bug_1403.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30803-bug_1403.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30805-ptr-star.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30805-ptr-star.cpp
index fcefa84f..fcefa84f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30805-ptr-star.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30805-ptr-star.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30806-ptr-star.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30806-ptr-star.cpp
index 76659df9..76659df9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30806-ptr-star.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30806-ptr-star.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30807-ptr-star.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30807-ptr-star.cpp
index 55478e3f..55478e3f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30807-ptr-star.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30807-ptr-star.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30808-ptr-star.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30808-ptr-star.cpp
index 68cb8151..68cb8151 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30808-ptr-star.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30808-ptr-star.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30809-bug_1289.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30809-bug_1289.cpp
index 42663477..42663477 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30809-bug_1289.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30809-bug_1289.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30810-ptr-star.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30810-ptr-star.cpp
index fa88b0bc..fa88b0bc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30810-ptr-star.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30810-ptr-star.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30811-misc3.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30811-misc3.cpp
index 9ca06c3c..9ca06c3c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30811-misc3.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30811-misc3.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30812-misc4.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30812-misc4.cpp
index 5ddaffb0..5ddaffb0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30812-misc4.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30812-misc4.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30813-misc5.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30813-misc5.cpp
index e8ffaf27..e8ffaf27 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30813-misc5.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30813-misc5.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30814-misc6.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30814-misc6.cpp
index 95cc0383..95cc0383 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30814-misc6.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30814-misc6.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30815-cmt-reflow.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30815-cmt-reflow.cpp
index 8bd50283..8bd50283 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30815-cmt-reflow.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30815-cmt-reflow.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30816-for_long.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30816-for_long.cpp
index 5483d4c8..5483d4c8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30816-for_long.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30816-for_long.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30817-cmt-cpp-cont.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30817-cmt-cpp-cont.cpp
index 9acbac58..9acbac58 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30817-cmt-cpp-cont.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30817-cmt-cpp-cont.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30818-bug_1169.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30818-bug_1169.cpp
index b1138a57..b1138a57 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30818-bug_1169.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30818-bug_1169.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30819-bug_1170.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30819-bug_1170.cpp
index 18e029cb..18e029cb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30819-bug_1170.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30819-bug_1170.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30820-pp-define-indent.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30820-pp-define-indent.cpp
index 0d7892a2..0d7892a2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30820-pp-define-indent.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30820-pp-define-indent.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30821-pp_indent_case.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30821-pp_indent_case.cpp
index 70b1b9c7..70b1b9c7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30821-pp_indent_case.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30821-pp_indent_case.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30822-pp_indent_brace.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30822-pp_indent_brace.cpp
new file mode 100644
index 00000000..d1decdf6
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30822-pp_indent_brace.cpp
@@ -0,0 +1,24 @@
+// Example for preprocessor statement in a function definition
+// Config uses more than tested option, uses:
+// pp_if_indent_code = 1 to enable preprocesser indent
+// pp_indent_brace = 0 to override preprocessor indent for braces
+MyClass::MyClass()
+{
+ if(isSomething)
+ {
+ DoSomething();
+ }
+
+#if (USE_FIVE)
+ {
+ DoSomethingAlso();
+ }
+#endif
+
+#if (USE_SIX)
+ {
+ Six mySix;
+ DoSomethingWithSix(mySix);
+ }
+#endif
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30823-pp_indent_func_def.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30823-pp_indent_func_def.cpp
index b01c6bbe..b01c6bbe 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30823-pp_indent_func_def.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30823-pp_indent_func_def.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30824-pp_indent_extern.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30824-pp_indent_extern.cpp
index 995db611..995db611 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30824-pp_indent_extern.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30824-pp_indent_extern.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30825-Issue_1966.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30825-Issue_1966.cpp
index 12a8084b..12a8084b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30825-Issue_1966.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30825-Issue_1966.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30826-Issue_2319.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30826-Issue_2319.cpp
index 8c0ae3e9..8c0ae3e9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30826-Issue_2319.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30826-Issue_2319.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30827-Issue_1167.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30827-Issue_1167.cpp
index 6410326c..6410326c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30827-Issue_1167.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30827-Issue_1167.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30828-bug_1691.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30828-bug_1691.cpp
index e93f7f74..e93f7f74 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30828-bug_1691.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30828-bug_1691.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30829-Issue_2726.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30829-Issue_2726.cpp
index bb7f1d4b..bb7f1d4b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30829-Issue_2726.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30829-Issue_2726.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30830-kw_subst.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30830-kw_subst.cpp
index 47084a7e..47084a7e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30830-kw_subst.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30830-kw_subst.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30831-kw_subst2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30831-kw_subst2.cpp
index b5e58eac..b5e58eac 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30831-kw_subst2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30831-kw_subst2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30832-kw_subst.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30832-kw_subst.cpp
index 47084a7e..47084a7e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30832-kw_subst.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30832-kw_subst.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30840-nl_func_type_name.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30840-nl_func_type_name.cpp
index a4302001..a4302001 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30840-nl_func_type_name.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30840-nl_func_type_name.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30841-nl_func_type_name.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30841-nl_func_type_name.cpp
index 5997a5c3..5997a5c3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30841-nl_func_type_name.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30841-nl_func_type_name.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30842-nl_func_type_name.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30842-nl_func_type_name.cpp
index a826af48..a826af48 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30842-nl_func_type_name.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30842-nl_func_type_name.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30843-nl_func_type_name.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30843-nl_func_type_name.cpp
index b1ead857..b1ead857 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30843-nl_func_type_name.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30843-nl_func_type_name.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30844-Issue_2771.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30844-Issue_2771.cpp
index ab7c285f..ab7c285f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30844-Issue_2771.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30844-Issue_2771.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30845-deref.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30845-deref.cpp
index 9705b51f..9705b51f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30845-deref.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30845-deref.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30846-Issue_3197.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30846-Issue_3197.h
index 76331aa3..76331aa3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30846-Issue_3197.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30846-Issue_3197.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30850-sp_cmt_cpp_start.cc b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30850-sp_cmt_cpp_start.cc
index 9cc04a18..9cc04a18 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30850-sp_cmt_cpp_start.cc
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30850-sp_cmt_cpp_start.cc
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30852-Issue_2138.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30852-Issue_2138.cpp
index 3a8fa83c..3a8fa83c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30852-Issue_2138.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30852-Issue_2138.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30853-noexcept.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30853-noexcept.cpp
index 60f2edd4..60f2edd4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30853-noexcept.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30853-noexcept.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30854-Issue_1703.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30854-Issue_1703.cpp
index af32d661..af32d661 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30854-Issue_1703.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30854-Issue_1703.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30855-cpp_move.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30855-cpp_move.cpp
index cec9beb8..cec9beb8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30855-cpp_move.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30855-cpp_move.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30856-sp_cmt_cpp_region.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30856-sp_cmt_cpp_region.cpp
index dc9e4160..dc9e4160 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30856-sp_cmt_cpp_region.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30856-sp_cmt_cpp_region.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30857-sp_cmt_cpp_region.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30857-sp_cmt_cpp_region.cpp
index 29f75936..29f75936 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30857-sp_cmt_cpp_region.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30857-sp_cmt_cpp_region.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30860-sf574.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30860-sf574.cpp
index 58810404..58810404 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30860-sf574.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30860-sf574.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30870-cmt_insert.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30870-cmt_insert.cpp
index cf5ac204..cf5ac204 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30870-cmt_insert.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30870-cmt_insert.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30871-cmt_insert.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30871-cmt_insert.cpp
index a169795a..a169795a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30871-cmt_insert.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30871-cmt_insert.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30872-Issue_2752.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30872-Issue_2752.cpp
index b305b50f..b305b50f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30872-Issue_2752.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30872-Issue_2752.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30880-bug_1758.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30880-bug_1758.cpp
index b0f35107..b0f35107 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30880-bug_1758.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30880-bug_1758.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30881-bug_1758-f.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30881-bug_1758-f.cpp
index 24bb563b..24bb563b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30881-bug_1758-f.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30881-bug_1758-f.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30900-region.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30900-region.cpp
index 27823ca6..27823ca6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30900-region.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30900-region.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30901-region.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30901-region.cpp
index b7bebae8..b7bebae8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30901-region.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30901-region.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30902-region.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30902-region.cpp
index 39b20ea6..39b20ea6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30902-region.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30902-region.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30903-region.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30903-region.cpp
index d6e3403a..d6e3403a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30903-region.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30903-region.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30907-Issue_1813.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30907-Issue_1813.cpp
index d5a3cc71..d5a3cc71 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30907-Issue_1813.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30907-Issue_1813.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30908-Issue_1813-2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30908-Issue_1813-2.cpp
index 310de82f..310de82f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30908-Issue_1813-2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30908-Issue_1813-2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30909-Issue_1813-3.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30909-Issue_1813-3.cpp
index 08c8405d..08c8405d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30909-Issue_1813-3.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30909-Issue_1813-3.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30910-indent_namespace.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30910-indent_namespace.h
index d569a3ca..d569a3ca 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30910-indent_namespace.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30910-indent_namespace.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30911-indent_namespace.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30911-indent_namespace.h
index 6f80dc3b..6f80dc3b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30911-indent_namespace.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30911-indent_namespace.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30912-long_namespace.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30912-long_namespace.cpp
index 80af6e83..80af6e83 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30912-long_namespace.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30912-long_namespace.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30913-indent_namespace2.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30913-indent_namespace2.h
index 196b2322..196b2322 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30913-indent_namespace2.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30913-indent_namespace2.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30914-indent_namespace_single_indent.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30914-indent_namespace_single_indent.h
index 24a9b935..24a9b935 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30914-indent_namespace_single_indent.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30914-indent_namespace_single_indent.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30915-bug_1235.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30915-bug_1235.cpp
index b9ff78a1..b9ff78a1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30915-bug_1235.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30915-bug_1235.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30916-Issue_1737.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30916-Issue_1737.cpp
index 06b0866b..06b0866b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30916-Issue_1737.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30916-Issue_1737.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30917-Issue_2345-3.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30917-Issue_2345-3.cpp
index 787ce29b..787ce29b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30917-Issue_2345-3.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30917-Issue_2345-3.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30918-Issue_2345-4.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30918-Issue_2345-4.cpp
index f82d757d..f82d757d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30918-Issue_2345-4.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30918-Issue_2345-4.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30919-Issue_2387.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30919-Issue_2387.cpp
index 526278d6..526278d6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30919-Issue_2387.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30919-Issue_2387.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30920-indent-off.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30920-indent-off.cpp
index f9eccdb8..f9eccdb8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30920-indent-off.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30920-indent-off.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30921-variadic-template.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30921-variadic-template.h
index f159e700..f159e700 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30921-variadic-template.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30921-variadic-template.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30922-variadic-template.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30922-variadic-template.h
index 0a1bd443..0a1bd443 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30922-variadic-template.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30922-variadic-template.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30923-sf.2886991.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30923-sf.2886991.cpp
index 61dc7c21..61dc7c21 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30923-sf.2886991.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30923-sf.2886991.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30924-sf.2886991.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30924-sf.2886991.cpp
index ce5e0b93..ce5e0b93 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30924-sf.2886991.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30924-sf.2886991.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30925-function-def.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30925-function-def.cpp
index 2d6df544..2d6df544 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30925-function-def.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30925-function-def.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30926-function-def.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30926-function-def.cpp
index 78b23a14..78b23a14 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30926-function-def.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30926-function-def.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30927-function-def.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30927-function-def.cpp
index bceb00f6..bceb00f6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30927-function-def.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30927-function-def.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30928-function-def.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30928-function-def.cpp
index b14ecb11..b14ecb11 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30928-function-def.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30928-function-def.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30929-bug_1324.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30929-bug_1324.cpp
index 1aca5762..1aca5762 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30929-bug_1324.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30929-bug_1324.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30930-indent_var_def.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30930-indent_var_def.cpp
index 5b3ee4e2..5b3ee4e2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30930-indent_var_def.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30930-indent_var_def.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30931-indent_var_def_cont.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30931-indent_var_def_cont.cpp
index c505389f..c505389f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30931-indent_var_def_cont.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30931-indent_var_def_cont.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30932-indent_var_def_cont.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30932-indent_var_def_cont.cpp
index 70b7304e..70b7304e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30932-indent_var_def_cont.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30932-indent_var_def_cont.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30933-indent_paren_after_func_def.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30933-indent_paren_after_func_def.cpp
index 8a775135..8a775135 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30933-indent_paren_after_func_def.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30933-indent_paren_after_func_def.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30934-indent_paren_after_func_decl.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30934-indent_paren_after_func_decl.cpp
index 6af21978..6af21978 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30934-indent_paren_after_func_decl.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30934-indent_paren_after_func_decl.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30935-indent-misc.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30935-indent-misc.cpp
index ad8de7b0..ad8de7b0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30935-indent-misc.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30935-indent-misc.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30936-indent_braces_no.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30936-indent_braces_no.h
index 725b0402..725b0402 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30936-indent_braces_no.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30936-indent_braces_no.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30937-indent_param.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30937-indent_param.cpp
index 31569ec1..31569ec1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30937-indent_param.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30937-indent_param.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30938-indent_switch_pp.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30938-indent_switch_pp.cpp
index dd910c56..dd910c56 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30938-indent_switch_pp.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30938-indent_switch_pp.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30939-indent_paren_after_func_call.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30939-indent_paren_after_func_call.cpp
index a1453862..a1453862 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30939-indent_paren_after_func_call.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30939-indent_paren_after_func_call.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30940-case-brace-remove.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30940-case-brace-remove.cpp
index cd163570..cd163570 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30940-case-brace-remove.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30940-case-brace-remove.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30941-Issue_2150.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30941-Issue_2150.cpp
index 1e4d6bf5..1e4d6bf5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30941-Issue_2150.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30941-Issue_2150.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30942-Issue_1692.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30942-Issue_1692.cpp
index 89de1d6a..89de1d6a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30942-Issue_1692.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30942-Issue_1692.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30943-Issue_2735.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30943-Issue_2735.cpp
index 3e292425..3e292425 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30943-Issue_2735.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30943-Issue_2735.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30945-sf.3266678.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30945-sf.3266678.cpp
index 810b5105..810b5105 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30945-sf.3266678.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30945-sf.3266678.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30946-sf.3315874.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30946-sf.3315874.h
index 05161496..05161496 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30946-sf.3315874.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30946-sf.3315874.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30947-bug_1689.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30947-bug_1689.cpp
index 40d34d61..40d34d61 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30947-bug_1689.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30947-bug_1689.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30948-sp_before_byref_func.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30948-sp_before_byref_func.cpp
index 4abfe954..4abfe954 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30948-sp_before_byref_func.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30948-sp_before_byref_func.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30949-Issue_2757.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30949-Issue_2757.cpp
index ba83c29e..ba83c29e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30949-Issue_2757.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30949-Issue_2757.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30950-sp_before_tr_emb_cmt_input.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30950-sp_before_tr_emb_cmt_input.cpp
index 943d303b..943d303b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30950-sp_before_tr_emb_cmt_input.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30950-sp_before_tr_emb_cmt_input.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30951-sp_before_tr_emb_cmt_input.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30951-sp_before_tr_emb_cmt_input.cpp
index c7e25f1c..c7e25f1c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30951-sp_before_tr_emb_cmt_input.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30951-sp_before_tr_emb_cmt_input.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30952-sp_before_constr_colon.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30952-sp_before_constr_colon.cpp
index ad0e38d5..ad0e38d5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30952-sp_before_constr_colon.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30952-sp_before_constr_colon.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30953-constr_colon.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30953-constr_colon.cpp
index 6c0706e5..6c0706e5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30953-constr_colon.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30953-constr_colon.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30954-Issue_2305.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30954-Issue_2305.cpp
index 7458b913..7458b913 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30954-Issue_2305.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30954-Issue_2305.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30955-indent_ctor_init.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30955-indent_ctor_init.cpp
index 55982328..55982328 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30955-indent_ctor_init.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30955-indent_ctor_init.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30956-indent_ctor_init.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30956-indent_ctor_init.cpp
index 29a146a9..29a146a9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30956-indent_ctor_init.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30956-indent_ctor_init.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30957-class-init.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30957-class-init.cpp
index faa28873..faa28873 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30957-class-init.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30957-class-init.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30958-nl_for_leave_one_liners.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30958-nl_for_leave_one_liners.cpp
index 8ff2405f..8ff2405f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30958-nl_for_leave_one_liners.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30958-nl_for_leave_one_liners.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30959-nl_for_leave_one_liners.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30959-nl_for_leave_one_liners.cpp
index 382d2815..382d2815 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30959-nl_for_leave_one_liners.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30959-nl_for_leave_one_liners.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30960-Issue_2151.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30960-Issue_2151.cpp
index d0ee05d2..d0ee05d2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30960-Issue_2151.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30960-Issue_2151.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30961-Issue_2232.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30961-Issue_2232.cpp
index 7867820b..7867820b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30961-Issue_2232.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30961-Issue_2232.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30962-nl_assign_leave_one_liners.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30962-nl_assign_leave_one_liners.cpp
index cf3325f0..cf3325f0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30962-nl_assign_leave_one_liners.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30962-nl_assign_leave_one_liners.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30963-Issue_2907.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30963-Issue_2907.cpp
index c0192c4d..c0192c4d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30963-Issue_2907.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30963-Issue_2907.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30964-Issue_2823.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30964-Issue_2823.cpp
index c633398f..c633398f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30964-Issue_2823.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30964-Issue_2823.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30970-Issue_2219.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30970-Issue_2219.cpp
index e08cb889..e08cb889 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30970-Issue_2219.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30970-Issue_2219.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30971-Issue_2224.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30971-Issue_2224.cpp
index 0c454905..0c454905 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30971-Issue_2224.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30971-Issue_2224.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30972-Issue_2229.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30972-Issue_2229.cpp
index 0c44ed6a..0c44ed6a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30972-Issue_2229.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30972-Issue_2229.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30973-Issue_2236.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30973-Issue_2236.cpp
index 7f7f01f5..7f7f01f5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30973-Issue_2236.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30973-Issue_2236.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30974-using-alias-in-define.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30974-using-alias-in-define.cpp
index 1b4153d8..1b4153d8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30974-using-alias-in-define.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/30974-using-alias-in-define.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31000-digraph.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31000-digraph.cpp
index e985dae6..e985dae6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31000-digraph.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31000-digraph.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31001-digraph.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31001-digraph.cpp
index 641390a6..641390a6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31001-digraph.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31001-digraph.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31050-pos_assign.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31050-pos_assign.cpp
index af55296b..af55296b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31050-pos_assign.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31050-pos_assign.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31051-pos_assign.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31051-pos_assign.cpp
index af55296b..af55296b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31051-pos_assign.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31051-pos_assign.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31101-nl_before_brace_open_test.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31101-nl_before_brace_open_test.cpp
index fdf9067a..fdf9067a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31101-nl_before_brace_open_test.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31101-nl_before_brace_open_test.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31102-nl_before_brace_open_test.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31102-nl_before_brace_open_test.cpp
index 59342e57..59342e57 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31102-nl_before_brace_open_test.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31102-nl_before_brace_open_test.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31103-nl_before_brace_open_test.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31103-nl_before_brace_open_test.cpp
index 5efbf20e..5efbf20e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31103-nl_before_brace_open_test.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31103-nl_before_brace_open_test.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31104-nl_before_brace_open_test.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31104-nl_before_brace_open_test.cpp
index a1b93406..a1b93406 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31104-nl_before_brace_open_test.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31104-nl_before_brace_open_test.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31400-trailing_return.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31400-trailing_return.cpp
new file mode 100644
index 00000000..ef642eec
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31400-trailing_return.cpp
@@ -0,0 +1,99 @@
+auto f0(int a, int b) -> int;
+
+struct Foo
+{
+ auto f01() -> bool;
+ auto f02() noexcept -> bool;
+ auto f03() noexcept(true) -> bool;
+ auto f04() noexcept(false) -> bool;
+ auto f05() noexcept -> bool = delete;
+ auto f06() noexcept(true) -> bool = delete;
+ auto f07() noexcept(false) -> bool = delete;
+
+ auto f11() const -> bool;
+ auto f12() const noexcept -> bool;
+ auto f13() const noexcept(true) -> bool;
+ auto f14() const noexcept(false) -> bool;
+ auto f15() const noexcept -> bool = delete;
+ auto f16() const noexcept(true) -> bool = delete;
+ auto f17() const noexcept(false) -> bool = delete;
+
+ auto f21() throw() -> bool;
+ auto f22() throw() -> bool = delete;
+ auto f23() const throw() -> bool;
+ auto f24() const throw() -> bool = delete;
+
+ auto f25() const -> bool*;
+ auto f26() const -> bool* = delete;
+ auto f27() const -> bool&;
+ auto f28() const -> bool& = delete;
+
+ auto f29() -> bool*;
+ auto f30() -> bool* = delete;
+ auto f31() noexcept -> bool*;
+ auto f32() noexcept(true) -> bool*;
+ auto f33() noexcept(false) -> bool*;
+ auto f34() noexcept -> bool* = delete;
+ auto f35() noexcept(true) -> bool* = delete;
+ auto f36() noexcept(false) -> bool* = delete;
+ auto f37() throw() -> bool*;
+ auto f38() throw() -> bool* = delete;
+
+ auto f39() -> bool&;
+ auto f40() -> bool& = delete;
+ auto f41() noexcept -> bool&;
+ auto f42() noexcept(true) -> bool&;
+ auto f43() noexcept(false) -> bool&;
+ auto f44() noexcept -> bool& = delete;
+ auto f45() noexcept(true) -> bool& = delete;
+ auto f46() noexcept(false) -> bool& = delete;
+ auto f47() throw() -> bool&;
+ auto f48() throw() -> bool& = delete;
+
+ auto f49() const -> bool*;
+ auto f50() const -> bool* = delete;
+ auto f51() const noexcept -> bool*;
+ auto f52() const noexcept(true) -> bool*;
+ auto f53() const noexcept(false) -> bool*;
+ auto f54() const noexcept -> bool* = delete;
+ auto f55() const noexcept(true) -> bool* = delete;
+ auto f56() const noexcept(false) -> bool* = delete;
+ auto f57() const throw() -> bool*;
+ auto f58() const throw() -> bool* = delete;
+
+ auto f59() const -> bool&;
+ auto f60() const -> bool& = delete;
+ auto f61() const noexcept -> bool&;
+ auto f62() const noexcept(true) -> bool&;
+ auto f63() const noexcept(false) -> bool&;
+ auto f64() const noexcept -> bool& = delete;
+ auto f65() const noexcept(true) -> bool& = delete;
+ auto f66() const noexcept(false) -> bool& = delete;
+ auto f67() const throw() -> bool&;
+ auto f68() const throw() -> bool& = delete;
+};
+
+struct Bar
+{
+ Bar() : m_func([](void*) -> result_t {
+ return magic;
+ }) {}
+};
+
+void foo()
+{
+ auto l = [](int n) -> x_t {
+ return n + 5;
+ };
+ x([](int n) -> x_t {
+ return n + 5;
+ });
+}
+
+static auto f25() -> bool {
+ return true;
+}
+
+static auto f26() const noexcept(true) -> bool {
+ return true;
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31401-trailing_return.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31401-trailing_return.cpp
new file mode 100644
index 00000000..bfc09585
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31401-trailing_return.cpp
@@ -0,0 +1,99 @@
+auto f0(int a, int b)->int;
+
+struct Foo
+{
+ auto f01()->bool;
+ auto f02() noexcept->bool;
+ auto f03() noexcept(true)->bool;
+ auto f04() noexcept(false)->bool;
+ auto f05() noexcept->bool = delete;
+ auto f06() noexcept(true)->bool = delete;
+ auto f07() noexcept(false)->bool = delete;
+
+ auto f11() const->bool;
+ auto f12() const noexcept->bool;
+ auto f13() const noexcept(true)->bool;
+ auto f14() const noexcept(false)->bool;
+ auto f15() const noexcept->bool = delete;
+ auto f16() const noexcept(true)->bool = delete;
+ auto f17() const noexcept(false)->bool = delete;
+
+ auto f21() throw()->bool;
+ auto f22() throw()->bool = delete;
+ auto f23() const throw()->bool;
+ auto f24() const throw()->bool = delete;
+
+ auto f25() const->bool*;
+ auto f26() const->bool* = delete;
+ auto f27() const->bool&;
+ auto f28() const->bool& = delete;
+
+ auto f29()->bool*;
+ auto f30()->bool* = delete;
+ auto f31() noexcept->bool*;
+ auto f32() noexcept(true)->bool*;
+ auto f33() noexcept(false)->bool*;
+ auto f34() noexcept->bool* = delete;
+ auto f35() noexcept(true)->bool* = delete;
+ auto f36() noexcept(false)->bool* = delete;
+ auto f37() throw()->bool*;
+ auto f38() throw()->bool* = delete;
+
+ auto f39()->bool&;
+ auto f40()->bool& = delete;
+ auto f41() noexcept->bool&;
+ auto f42() noexcept(true)->bool&;
+ auto f43() noexcept(false)->bool&;
+ auto f44() noexcept->bool& = delete;
+ auto f45() noexcept(true)->bool& = delete;
+ auto f46() noexcept(false)->bool& = delete;
+ auto f47() throw()->bool&;
+ auto f48() throw()->bool& = delete;
+
+ auto f49() const->bool*;
+ auto f50() const->bool* = delete;
+ auto f51() const noexcept->bool*;
+ auto f52() const noexcept(true)->bool*;
+ auto f53() const noexcept(false)->bool*;
+ auto f54() const noexcept->bool* = delete;
+ auto f55() const noexcept(true)->bool* = delete;
+ auto f56() const noexcept(false)->bool* = delete;
+ auto f57() const throw()->bool*;
+ auto f58() const throw()->bool* = delete;
+
+ auto f59() const->bool&;
+ auto f60() const->bool& = delete;
+ auto f61() const noexcept->bool&;
+ auto f62() const noexcept(true)->bool&;
+ auto f63() const noexcept(false)->bool&;
+ auto f64() const noexcept->bool& = delete;
+ auto f65() const noexcept(true)->bool& = delete;
+ auto f66() const noexcept(false)->bool& = delete;
+ auto f67() const throw()->bool&;
+ auto f68() const throw()->bool& = delete;
+};
+
+struct Bar
+{
+ Bar() : m_func([](void*)->result_t {
+ return magic;
+ }) {}
+};
+
+void foo()
+{
+ auto l = [](int n)->x_t {
+ return n + 5;
+ };
+ x([](int n)->x_t {
+ return n + 5;
+ });
+}
+
+static auto f25()->bool {
+ return true;
+}
+
+static auto f26() const noexcept(true)->bool {
+ return true;
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31402-trailing_return.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31402-trailing_return.cpp
new file mode 100644
index 00000000..01adfc69
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31402-trailing_return.cpp
@@ -0,0 +1,99 @@
+auto f0(int a, int b) -> int;
+
+struct Foo
+{
+ auto f01() -> bool;
+ auto f02() noexcept -> bool;
+ auto f03() noexcept(true) -> bool;
+ auto f04() noexcept(false) -> bool;
+ auto f05() noexcept -> bool=delete;
+ auto f06() noexcept(true) -> bool=delete;
+ auto f07() noexcept(false) -> bool=delete;
+
+ auto f11() const -> bool;
+ auto f12() const noexcept -> bool;
+ auto f13() const noexcept(true) -> bool;
+ auto f14() const noexcept(false) -> bool;
+ auto f15() const noexcept -> bool=delete;
+ auto f16() const noexcept(true) -> bool=delete;
+ auto f17() const noexcept(false) -> bool=delete;
+
+ auto f21() throw() -> bool;
+ auto f22() throw() -> bool=delete;
+ auto f23() const throw() -> bool;
+ auto f24() const throw() -> bool=delete;
+
+ auto f25() const -> bool*;
+ auto f26() const -> bool* =delete;
+ auto f27() const -> bool&;
+ auto f28() const -> bool& =delete;
+
+ auto f29() -> bool*;
+ auto f30() -> bool* =delete;
+ auto f31() noexcept -> bool*;
+ auto f32() noexcept(true) -> bool*;
+ auto f33() noexcept(false) -> bool*;
+ auto f34() noexcept -> bool* =delete;
+ auto f35() noexcept(true) -> bool* =delete;
+ auto f36() noexcept(false) -> bool* =delete;
+ auto f37() throw() -> bool*;
+ auto f38() throw() -> bool* =delete;
+
+ auto f39() -> bool&;
+ auto f40() -> bool& =delete;
+ auto f41() noexcept -> bool&;
+ auto f42() noexcept(true) -> bool&;
+ auto f43() noexcept(false) -> bool&;
+ auto f44() noexcept -> bool& =delete;
+ auto f45() noexcept(true) -> bool& =delete;
+ auto f46() noexcept(false) -> bool& =delete;
+ auto f47() throw() -> bool&;
+ auto f48() throw() -> bool& =delete;
+
+ auto f49() const -> bool*;
+ auto f50() const -> bool* =delete;
+ auto f51() const noexcept -> bool*;
+ auto f52() const noexcept(true) -> bool*;
+ auto f53() const noexcept(false) -> bool*;
+ auto f54() const noexcept -> bool* =delete;
+ auto f55() const noexcept(true) -> bool* =delete;
+ auto f56() const noexcept(false) -> bool* =delete;
+ auto f57() const throw() -> bool*;
+ auto f58() const throw() -> bool* =delete;
+
+ auto f59() const -> bool&;
+ auto f60() const -> bool& =delete;
+ auto f61() const noexcept -> bool&;
+ auto f62() const noexcept(true) -> bool&;
+ auto f63() const noexcept(false) -> bool&;
+ auto f64() const noexcept -> bool& =delete;
+ auto f65() const noexcept(true) -> bool& =delete;
+ auto f66() const noexcept(false) -> bool& =delete;
+ auto f67() const throw() -> bool&;
+ auto f68() const throw() -> bool& =delete;
+};
+
+struct Bar
+{
+ Bar() : m_func([](void*) -> result_t {
+ return magic;
+ }) {}
+};
+
+void foo()
+{
+ auto l = [](int n) -> x_t {
+ return n + 5;
+ };
+ x([](int n) -> x_t {
+ return n + 5;
+ });
+}
+
+static auto f25() -> bool {
+ return true;
+}
+
+static auto f26() const noexcept(true) -> bool {
+ return true;
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31403-trailing_return_byref_ptr.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31403-trailing_return_byref_ptr.cpp
new file mode 100644
index 00000000..9b7da565
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31403-trailing_return_byref_ptr.cpp
@@ -0,0 +1,84 @@
+struct Foo
+{
+ auto f01() -> bool;
+ auto f02() noexcept -> bool;
+ auto f03() noexcept(true) -> bool;
+ auto f04() noexcept(false) -> bool;
+ auto f05() noexcept -> bool = delete;
+ auto f06() noexcept(true) -> bool = delete;
+ auto f07() noexcept(false) -> bool = delete;
+
+ auto f11() const -> bool;
+ auto f12() const noexcept -> bool;
+ auto f13() const noexcept(true) -> bool;
+ auto f14() const noexcept(false) -> bool;
+ auto f15() const noexcept -> bool = delete;
+ auto f16() const noexcept(true) -> bool = delete;
+ auto f17() const noexcept(false) -> bool = delete;
+
+ auto f21() throw() -> bool;
+ auto f22() throw() -> bool = delete;
+ auto f23() const throw() -> bool;
+ auto f24() const throw() -> bool = delete;
+
+ auto f25() const -> bool*;
+ auto f26() const -> bool* = delete;
+ auto f27() const -> bool&;
+ auto f28() const -> bool& = delete;
+
+ auto f29() -> bool*;
+ auto f30() -> bool* = delete;
+ auto f31() noexcept -> bool*;
+ auto f32() noexcept(true) -> bool*;
+ auto f33() noexcept(false) -> bool*;
+ auto f34() noexcept -> bool* = delete;
+ auto f35() noexcept(true) -> bool* = delete;
+ auto f36() noexcept(false) -> bool* = delete;
+ auto f37() throw() -> bool*;
+ auto f38() throw() -> bool* = delete;
+
+ auto f39() -> bool&;
+ auto f40() -> bool& = delete;
+ auto f41() noexcept -> bool&;
+ auto f42() noexcept(true) -> bool&;
+ auto f43() noexcept(false) -> bool&;
+ auto f44() noexcept -> bool& = delete;
+ auto f45() noexcept(true) -> bool& = delete;
+ auto f46() noexcept(false) -> bool& = delete;
+ auto f47() throw() -> bool&;
+ auto f48() throw() -> bool& = delete;
+
+ auto f49() const -> bool*;
+ auto f50() const -> bool* = delete;
+ auto f51() const noexcept -> bool*;
+ auto f52() const noexcept(true) -> bool*;
+ auto f53() const noexcept(false) -> bool*;
+ auto f54() const noexcept -> bool* = delete;
+ auto f55() const noexcept(true) -> bool* = delete;
+ auto f56() const noexcept(false) -> bool* = delete;
+ auto f57() const throw() -> bool*;
+ auto f58() const throw() -> bool* = delete;
+
+ auto f59() const -> bool&;
+ auto f60() const -> bool& = delete;
+ auto f61() const noexcept -> bool&;
+ auto f62() const noexcept(true) -> bool&;
+ auto f63() const noexcept(false) -> bool&;
+ auto f64() const noexcept -> bool& = delete;
+ auto f65() const noexcept(true) -> bool& = delete;
+ auto f66() const noexcept(false) -> bool& = delete;
+ auto f67() const throw() -> bool&;
+ auto f68() const throw() -> bool& = delete;
+
+ class Foo
+ {
+ auto operator=(const Foo&) -> Foo&;
+ auto operator=(const Foo&) noexcept -> Foo&;
+
+ auto operator=(Foo const&) -> Foo&;
+ auto operator=(Foo const&) noexcept -> Foo&;
+
+ auto operator=(Foo&&) -> Foo&;
+ auto operator=(Foo&&) noexcept -> Foo&;
+ }
+};
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31404-trailing_return_byref_ptr.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31404-trailing_return_byref_ptr.cpp
new file mode 100644
index 00000000..7ecf920d
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31404-trailing_return_byref_ptr.cpp
@@ -0,0 +1,84 @@
+struct Foo
+{
+ auto f01() -> bool;
+ auto f02() noexcept -> bool;
+ auto f03() noexcept(true) -> bool;
+ auto f04() noexcept(false) -> bool;
+ auto f05() noexcept -> bool = delete;
+ auto f06() noexcept(true) -> bool = delete;
+ auto f07() noexcept(false) -> bool = delete;
+
+ auto f11() const -> bool;
+ auto f12() const noexcept -> bool;
+ auto f13() const noexcept(true) -> bool;
+ auto f14() const noexcept(false) -> bool;
+ auto f15() const noexcept -> bool = delete;
+ auto f16() const noexcept(true) -> bool = delete;
+ auto f17() const noexcept(false) -> bool = delete;
+
+ auto f21() throw() -> bool;
+ auto f22() throw() -> bool = delete;
+ auto f23() const throw() -> bool;
+ auto f24() const throw() -> bool = delete;
+
+ auto f25() const -> bool *;
+ auto f26() const -> bool * = delete;
+ auto f27() const -> bool &;
+ auto f28() const -> bool & = delete;
+
+ auto f29() -> bool *;
+ auto f30() -> bool * = delete;
+ auto f31() noexcept -> bool *;
+ auto f32() noexcept(true) -> bool *;
+ auto f33() noexcept(false) -> bool *;
+ auto f34() noexcept -> bool * = delete;
+ auto f35() noexcept(true) -> bool * = delete;
+ auto f36() noexcept(false) -> bool * = delete;
+ auto f37() throw() -> bool *;
+ auto f38() throw() -> bool * = delete;
+
+ auto f39() -> bool &;
+ auto f40() -> bool & = delete;
+ auto f41() noexcept -> bool &;
+ auto f42() noexcept(true) -> bool &;
+ auto f43() noexcept(false) -> bool &;
+ auto f44() noexcept -> bool & = delete;
+ auto f45() noexcept(true) -> bool & = delete;
+ auto f46() noexcept(false) -> bool & = delete;
+ auto f47() throw() -> bool &;
+ auto f48() throw() -> bool & = delete;
+
+ auto f49() const -> bool *;
+ auto f50() const -> bool * = delete;
+ auto f51() const noexcept -> bool *;
+ auto f52() const noexcept(true) -> bool *;
+ auto f53() const noexcept(false) -> bool *;
+ auto f54() const noexcept -> bool * = delete;
+ auto f55() const noexcept(true) -> bool * = delete;
+ auto f56() const noexcept(false) -> bool * = delete;
+ auto f57() const throw() -> bool *;
+ auto f58() const throw() -> bool * = delete;
+
+ auto f59() const -> bool &;
+ auto f60() const -> bool & = delete;
+ auto f61() const noexcept -> bool &;
+ auto f62() const noexcept(true) -> bool &;
+ auto f63() const noexcept(false) -> bool &;
+ auto f64() const noexcept -> bool & = delete;
+ auto f65() const noexcept(true) -> bool & = delete;
+ auto f66() const noexcept(false) -> bool & = delete;
+ auto f67() const throw() -> bool &;
+ auto f68() const throw() -> bool & = delete;
+
+ class Foo
+ {
+ auto operator=(const Foo &) -> Foo &;
+ auto operator=(const Foo &) noexcept -> Foo &;
+
+ auto operator=(Foo const &) -> Foo &;
+ auto operator=(Foo const &) noexcept -> Foo &;
+
+ auto operator=(Foo &&) -> Foo &;
+ auto operator=(Foo &&) noexcept -> Foo &;
+ }
+};
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31450-indent_func_alias_prototype.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31450-indent_func_alias_prototype.cpp
new file mode 100644
index 00000000..472f66b3
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31450-indent_func_alias_prototype.cpp
@@ -0,0 +1,55 @@
+
+using Fun1 = void ( );
+using Fun2 = void ( ) noexcept;
+
+using Fun1a = void (
+ );
+
+using Fun2a = void (
+ ) noexcept;
+
+using Fun3a = void (
+ int a,
+ const char*
+ );
+
+using Fun4a = void (
+ int a,
+ const char*
+ ) noexcept;
+
+using Fun5a = void (
+ int a,
+ const char*
+ );
+
+using Fun6a = void (
+ int a,
+ const char*
+ ) noexcept;
+
+using Fun1b = auto (
+ )->int;
+
+using Fun2b = auto (
+ ) noexcept->int;
+
+using Fun3b = auto (
+ int a,
+ const char*
+ )->int;
+
+using Fun4b = auto (
+ int a,
+ const char*
+ ) noexcept->int;
+
+using Fun5b = auto (
+ int a,
+ const char*
+ )->int;
+
+using Fun6b = auto (
+ int a,
+ const char*
+ ) noexcept->int;
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31451-indent_func_alias_prototype.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31451-indent_func_alias_prototype.cpp
new file mode 100644
index 00000000..2288f111
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31451-indent_func_alias_prototype.cpp
@@ -0,0 +1,55 @@
+
+using Fun1 = void ( );
+using Fun2 = void ( ) noexcept;
+
+using Fun1a = void (
+ );
+
+using Fun2a = void (
+ ) noexcept;
+
+using Fun3a = void (
+ int a,
+ const char*
+ );
+
+using Fun4a = void (
+ int a,
+ const char*
+ ) noexcept;
+
+using Fun5a = void (
+ int a,
+ const char*
+ );
+
+using Fun6a = void (
+ int a,
+ const char*
+ ) noexcept;
+
+using Fun1b = auto (
+ )->int;
+
+using Fun2b = auto (
+ ) noexcept->int;
+
+using Fun3b = auto (
+ int a,
+ const char*
+ )->int;
+
+using Fun4b = auto (
+ int a,
+ const char*
+ ) noexcept->int;
+
+using Fun5b = auto (
+ int a,
+ const char*
+ )->int;
+
+using Fun6b = auto (
+ int a,
+ const char*
+ ) noexcept->int;
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31452-indent_func_alias_prototype.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31452-indent_func_alias_prototype.cpp
new file mode 100644
index 00000000..018b3dd6
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31452-indent_func_alias_prototype.cpp
@@ -0,0 +1,55 @@
+
+using Fun1 = void ( );
+using Fun2 = void ( ) noexcept;
+
+using Fun1a = void (
+);
+
+using Fun2a = void (
+) noexcept;
+
+using Fun3a = void (
+ int a,
+ const char*
+);
+
+using Fun4a = void (
+ int a,
+ const char*
+) noexcept;
+
+using Fun5a = void (
+ int a,
+ const char*
+);
+
+using Fun6a = void (
+ int a,
+ const char*
+) noexcept;
+
+using Fun1b = auto (
+)->int;
+
+using Fun2b = auto (
+) noexcept->int;
+
+using Fun3b = auto (
+ int a,
+ const char*
+)->int;
+
+using Fun4b = auto (
+ int a,
+ const char*
+) noexcept->int;
+
+using Fun5b = auto (
+ int a,
+ const char*
+)->int;
+
+using Fun6b = auto (
+ int a,
+ const char*
+) noexcept->int;
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31562-sf562.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31562-sf562.cpp
index 15ee8e79..15ee8e79 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31562-sf562.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31562-sf562.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31567-sf567.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31567-sf567.cpp
index 6d96731d..6d96731d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31567-sf567.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31567-sf567.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31568-Issue_2368.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31568-Issue_2368.cpp
index 82b8c59c..82b8c59c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31568-Issue_2368.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31568-Issue_2368.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31583-sf583.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31583-sf583.cpp
index 34fc0c21..34fc0c21 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31583-sf583.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31583-sf583.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31593-sf593.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31593-sf593.cpp
index 2d4499e6..2d4499e6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31593-sf593.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31593-sf593.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31594-issue_672.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31594-issue_672.cpp
index 499f3168..499f3168 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31594-issue_672.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31594-issue_672.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31595-issue_1778.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31595-issue_1778.cpp
index 4eea46e0..4eea46e0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31595-issue_1778.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31595-issue_1778.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31596-issue_1782.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31596-issue_1782.cpp
index 664ead7f..664ead7f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31596-issue_1782.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31596-issue_1782.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31597-issue_1804.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31597-issue_1804.cpp
index c98ecdef..c98ecdef 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31597-issue_1804.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31597-issue_1804.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31598-Issue_1753.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31598-Issue_1753.cpp
index 9f7da399..9f7da399 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31598-Issue_1753.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31598-Issue_1753.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31599-parameter-packs.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31599-parameter-packs.cpp
index 4961aa2b..4961aa2b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31599-parameter-packs.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31599-parameter-packs.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31600-parameter-packs.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31600-parameter-packs.cpp
index 5d1cd8e8..5d1cd8e8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31600-parameter-packs.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31600-parameter-packs.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31601-parameter-packs.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31601-parameter-packs.cpp
index 0394fe8b..0394fe8b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31601-parameter-packs.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31601-parameter-packs.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31602-parameter-packs.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31602-parameter-packs.cpp
index 15d0a382..15d0a382 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31602-parameter-packs.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31602-parameter-packs.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31603-parameter-packs.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31603-parameter-packs.cpp
index 3a810b8a..3a810b8a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31603-parameter-packs.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31603-parameter-packs.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31604-parameter-packs.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31604-parameter-packs.cpp
index 2a180b34..2a180b34 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31604-parameter-packs.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31604-parameter-packs.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31605-parameter-packs.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31605-parameter-packs.cpp
index a08af3cf..a08af3cf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31605-parameter-packs.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31605-parameter-packs.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31606-parameter-packs.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31606-parameter-packs.cpp
index a73e2c43..a73e2c43 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31606-parameter-packs.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31606-parameter-packs.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31607-parameter-packs.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31607-parameter-packs.cpp
index 153fc615..153fc615 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31607-parameter-packs.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31607-parameter-packs.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31608-parameter-packs.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31608-parameter-packs.cpp
index 13ba49db..13ba49db 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31608-parameter-packs.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31608-parameter-packs.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31609-parameter-packs.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31609-parameter-packs.cpp
index e00841b4..e00841b4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31609-parameter-packs.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31609-parameter-packs.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31610-Issue_2085.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31610-Issue_2085.cpp
index 581f4db4..581f4db4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31610-Issue_2085.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31610-Issue_2085.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31611-parameter-packs.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31611-parameter-packs.cpp
index 4e89022d..4e89022d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31611-parameter-packs.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31611-parameter-packs.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31612-parameter-packs.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31612-parameter-packs.cpp
index 4e89022d..4e89022d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31612-parameter-packs.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31612-parameter-packs.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31613-parameter-packs.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31613-parameter-packs.cpp
index 4e89022d..4e89022d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31613-parameter-packs.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31613-parameter-packs.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31614-Issue_3309.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31614-Issue_3309.cpp
index d6dd1dac..d6dd1dac 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31614-Issue_3309.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31614-Issue_3309.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31615-Issue_3309.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31615-Issue_3309.cpp
index 84ee58aa..84ee58aa 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31615-Issue_3309.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31615-Issue_3309.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31616-Issue_3309.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31616-Issue_3309.cpp
index c269ddb0..c269ddb0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31616-Issue_3309.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31616-Issue_3309.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31620-sp_after_type.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31620-sp_after_type.cpp
index 460c0dc2..460c0dc2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31620-sp_after_type.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31620-sp_after_type.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31621-sp_after_type.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31621-sp_after_type.cpp
index b1ffd02b..b1ffd02b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31621-sp_after_type.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31621-sp_after_type.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31622-sp_after_type.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31622-sp_after_type.cpp
index a924423a..a924423a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31622-sp_after_type.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31622-sp_after_type.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31623-sp_after_type.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31623-sp_after_type.cpp
index 5d923c27..5d923c27 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31623-sp_after_type.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31623-sp_after_type.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31624-sp_after_type.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31624-sp_after_type.cpp
index b66aba0c..b66aba0c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31624-sp_after_type.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31624-sp_after_type.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31625-sp_after_type.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31625-sp_after_type.cpp
index add7b57e..add7b57e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31625-sp_after_type.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31625-sp_after_type.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31626-issue_1916.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31626-issue_1916.cpp
index 56ce6f4c..56ce6f4c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31626-issue_1916.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31626-issue_1916.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31627-issue_1916.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31627-issue_1916.cpp
index f84334a4..f84334a4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31627-issue_1916.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31627-issue_1916.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31628-issue_1916.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31628-issue_1916.cpp
index df2af994..df2af994 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31628-issue_1916.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31628-issue_1916.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31629-issue_1916.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31629-issue_1916.cpp
index 913f1e28..913f1e28 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31629-issue_1916.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31629-issue_1916.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31630-issue_1916.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31630-issue_1916.cpp
index df2af994..df2af994 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31630-issue_1916.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31630-issue_1916.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31631-issue_1916.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31631-issue_1916.cpp
index 913f1e28..913f1e28 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31631-issue_1916.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31631-issue_1916.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31632-issue_1916.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31632-issue_1916.cpp
index 292b6837..292b6837 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31632-issue_1916.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31632-issue_1916.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31633-sp_after_decltype.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31633-sp_after_decltype.cpp
index 6a62e6f2..6a62e6f2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31633-sp_after_decltype.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31633-sp_after_decltype.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31634-sp_after_decltype.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31634-sp_after_decltype.cpp
index c48543be..c48543be 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31634-sp_after_decltype.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31634-sp_after_decltype.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31635-sp_decltype.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31635-sp_decltype.cpp
index 84b157f1..84b157f1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31635-sp_decltype.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31635-sp_decltype.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31636-Issue_1923.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31636-Issue_1923.cpp
index 8c3ebe66..8c3ebe66 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31636-Issue_1923.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31636-Issue_1923.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31637-Issue_3446.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31637-Issue_3446.cpp
new file mode 100644
index 00000000..9577cfa8
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31637-Issue_3446.cpp
@@ -0,0 +1,18 @@
+Foo::
+Foo() {
+}
+
+std::true_type blarg();
+template <typename T>
+decltype(std::declval<T &>().put(foo, bar), std::true_type())
+has_module_api_(T && t);
+
+void
+foo()
+{
+ using V = decltype(STD::declval<T &>().put(foo, bar), std::true_type());
+}
+
+template <typename T>
+decltype(std::declval<T &>()./* ((( */ put(foo, bar), std::true_type())
+has_module_api_(T && t);
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31660-issue_1919.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31660-issue_1919.cpp
index 187065d6..187065d6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31660-issue_1919.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31660-issue_1919.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31661-Issue_3097.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31661-Issue_3097.cpp
index ede644ad..ede644ad 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31661-Issue_3097.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31661-Issue_3097.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31700-toggle_processing_cmt.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31700-toggle_processing_cmt.cpp
index 03615082..03615082 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31700-toggle_processing_cmt.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31700-toggle_processing_cmt.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31701-toggle_processing_cmt2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31701-toggle_processing_cmt2.cpp
index f67cb76b..f67cb76b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31701-toggle_processing_cmt2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31701-toggle_processing_cmt2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31702-toggle_processing_cmt.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31702-toggle_processing_cmt.cpp
index adf1b8be..adf1b8be 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31702-toggle_processing_cmt.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31702-toggle_processing_cmt.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31703-toggle_processing_cmt.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31703-toggle_processing_cmt.cpp
index e806e89e..e806e89e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31703-toggle_processing_cmt.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31703-toggle_processing_cmt.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31710-string_replace_tab_chars.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31710-string_replace_tab_chars.cpp
index 8350740b..8350740b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31710-string_replace_tab_chars.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31710-string_replace_tab_chars.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31711-string_replace_tab_chars.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31711-string_replace_tab_chars.cpp
index 56f16799..56f16799 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31711-string_replace_tab_chars.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31711-string_replace_tab_chars.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31720-bit-colon.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31720-bit-colon.cpp
index b8e7c4db..b8e7c4db 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31720-bit-colon.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31720-bit-colon.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31721-Issue_2689.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31721-Issue_2689.cpp
index e2b43674..e2b43674 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31721-Issue_2689.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31721-Issue_2689.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31730-ms-style-ref.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31730-ms-style-ref.cpp
index 826d4e90..826d4e90 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31730-ms-style-ref.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31730-ms-style-ref.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31740-I2102.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31740-I2102.cpp
index d8cf883a..d8cf883a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31740-I2102.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/31740-I2102.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32000-sp_skip_vbrace_tokens.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/32000-sp_skip_vbrace_tokens.cpp
index 99d403ef..99d403ef 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32000-sp_skip_vbrace_tokens.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/32000-sp_skip_vbrace_tokens.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32001-issue_547_for_each.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/32001-issue_547_for_each.cpp
index cfbe7963..cfbe7963 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32001-issue_547_for_each.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/32001-issue_547_for_each.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32002-proto-wrap.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/32002-proto-wrap.cpp
index 35e8bea3..35e8bea3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32002-proto-wrap.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/32002-proto-wrap.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32003-issue_633_typename.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/32003-issue_633_typename.cpp
index 33b947f1..33b947f1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32003-issue_633_typename.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/32003-issue_633_typename.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32004-issue_624_angle.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/32004-issue_624_angle.cpp
index 255db223..255db223 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32004-issue_624_angle.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/32004-issue_624_angle.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32005-issue_633_typename.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/32005-issue_633_typename.cpp
index 33b947f1..33b947f1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32005-issue_633_typename.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/32005-issue_633_typename.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32006-bug_i_687.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/32006-bug_i_687.cpp
index 387eaa06..387eaa06 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32006-bug_i_687.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/32006-bug_i_687.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32007-Issue_3052.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/32007-Issue_3052.cpp
index cb468be3..cb468be3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32007-Issue_3052.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/32007-Issue_3052.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32008-Issue_3034.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/32008-Issue_3034.cpp
index 1a110ee8..1a110ee8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32008-Issue_3034.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/32008-Issue_3034.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/32009-Issue_3422.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/32009-Issue_3422.cpp
new file mode 100644
index 00000000..66e5ddad
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/32009-Issue_3422.cpp
@@ -0,0 +1,14 @@
+voind main()
+{
+ unsigned long uncompressed_size = 0;
+ char *data_buffer = NULL;
+
+ unsigned long uncompressed_size = 0, compressed_size = 0;
+ char *data_buffer = NULL;
+
+ unsigned long uncompressed_size, compressed_size = 0;
+ char *data_buffer = NULL;
+
+ unsigned long uncompressed_size, compressed_size;
+ char *data_buffer = NULL;
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/32010-Issue_3422.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/32010-Issue_3422.cpp
new file mode 100644
index 00000000..7077eb71
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/32010-Issue_3422.cpp
@@ -0,0 +1,14 @@
+voind main()
+{
+ unsigned long uncompressed_size = 0;
+ char *data_buffer = NULL;
+
+ unsigned long uncompressed_size = 0, compressed_size = 0;
+ char *data_buffer = NULL;
+
+ unsigned long uncompressed_size, compressed_size = 0;
+ char *data_buffer = NULL;
+
+ unsigned long uncompressed_size, compressed_size;
+ char *data_buffer = NULL;
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32100-cpp17.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/32100-cpp17.cpp
index cfccba03..cfccba03 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32100-cpp17.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/32100-cpp17.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/32105-I2103.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/32105-I2103.cpp
new file mode 100644
index 00000000..c35fbe56
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/32105-I2103.cpp
@@ -0,0 +1,3 @@
+int i1 = EEnumType::a & EEnumType::b;
+int i2 = a & b;
+int i3 = EEnumType::Enum1 & b;
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32115-2185.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/32115-2185.cpp
index 6f874926..6f874926 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32115-2185.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/32115-2185.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33000-tab-0.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33000-tab-0.cpp
index d9ff0418..d9ff0418 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33000-tab-0.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33000-tab-0.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33001-tab-1.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33001-tab-1.cpp
index 85d8abe2..85d8abe2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33001-tab-1.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33001-tab-1.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33002-cmt_convert_tab_to_spaces.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33002-cmt_convert_tab_to_spaces.cpp
index 32ff32d3..32ff32d3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33002-cmt_convert_tab_to_spaces.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33002-cmt_convert_tab_to_spaces.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33003-cmt_convert_tab_to_spaces.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33003-cmt_convert_tab_to_spaces.cpp
index db09e6fc..db09e6fc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33003-cmt_convert_tab_to_spaces.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33003-cmt_convert_tab_to_spaces.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33004-DoxygenComments.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33004-DoxygenComments.cpp
index df0b9680..df0b9680 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33004-DoxygenComments.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33004-DoxygenComments.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33005-DoxygenComments.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33005-DoxygenComments.cpp
index 533214f2..533214f2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33005-DoxygenComments.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33005-DoxygenComments.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33006-string_replace_tab_chars.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33006-string_replace_tab_chars.cpp
index 8350740b..8350740b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33006-string_replace_tab_chars.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33006-string_replace_tab_chars.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33007-NewLine.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33007-NewLine.cpp
index 9c7f1ee9..9c7f1ee9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33007-NewLine.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33007-NewLine.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33008-NewLine.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33008-NewLine.cpp
index b3cc1bed..b3cc1bed 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33008-NewLine.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33008-NewLine.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33009-NewLine0.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33009-NewLine0.cpp
index b5a714fa..b5a714fa 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33009-NewLine0.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33009-NewLine0.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33010-Q_EMIT.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33010-Q_EMIT.cpp
index d3ef9396..d3ef9396 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33010-Q_EMIT.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33010-Q_EMIT.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33011-static.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33011-static.h
index 8121fef1..8121fef1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33011-static.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33011-static.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33012-Q_SIGNAL_SLOT.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33012-Q_SIGNAL_SLOT.cpp
index faf00903..faf00903 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33012-Q_SIGNAL_SLOT.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33012-Q_SIGNAL_SLOT.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33013-Q_2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33013-Q_2.cpp
index 7d0bb88a..7d0bb88a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33013-Q_2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33013-Q_2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33014-DB.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33014-DB.cpp
index 1b8f4bc8..1b8f4bc8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33014-DB.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33014-DB.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33015-Q_FOREACH.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33015-Q_FOREACH.cpp
index 02fd849d..02fd849d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33015-Q_FOREACH.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33015-Q_FOREACH.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33016-indent.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33016-indent.cpp
index 22d04a78..22d04a78 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33016-indent.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33016-indent.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33017-bug_1160.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33017-bug_1160.cpp
index 8dc7a9d1..8dc7a9d1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33017-bug_1160.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33017-bug_1160.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33019-bug_657.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33019-bug_657.cpp
index 3b5bb42a..3b5bb42a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33019-bug_657.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33019-bug_657.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33020-bug_662.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33020-bug_662.cpp
index 48b612ae..48b612ae 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33020-bug_662.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33020-bug_662.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33021-bug_633.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33021-bug_633.cpp
index 5b672b47..5b672b47 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33021-bug_633.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33021-bug_633.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33022-bug_634.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33022-bug_634.cpp
index febbf7b3..febbf7b3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33022-bug_634.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33022-bug_634.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33023-bug_651.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33023-bug_651.cpp
index f0236016..f0236016 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33023-bug_651.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33023-bug_651.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33024-bug_653.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33024-bug_653.cpp
index 1bf853d6..1bf853d6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33024-bug_653.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33024-bug_653.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33025-bug_654.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33025-bug_654.cpp
index 497e3372..497e3372 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33025-bug_654.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33025-bug_654.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33026-bug_631.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33026-bug_631.cpp
index e110d383..e110d383 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33026-bug_631.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33026-bug_631.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33027-bug_664.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33027-bug_664.cpp
index 6fa5beea..6fa5beea 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33027-bug_664.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33027-bug_664.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33028-braces_empty.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33028-braces_empty.cpp
index 8e46ab7c..8e46ab7c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33028-braces_empty.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33028-braces_empty.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33029-cast.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33029-cast.cpp
new file mode 100644
index 00000000..67e725ff
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33029-cast.cpp
@@ -0,0 +1,6 @@
+{
+ a = ( int ) 5.6;
+ b = int( 5.6 );
+ c = ( type<int> ) t;
+ d = ( type<int, int> ) t;
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33030-Q_FOREVER.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33030-Q_FOREVER.cpp
index 5dad4fa9..5dad4fa9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33030-Q_FOREVER.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33030-Q_FOREVER.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33031-bug_612.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33031-bug_612.cpp
index 4388ac75..4388ac75 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33031-bug_612.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33031-bug_612.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33032-bug_670.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33032-bug_670.cpp
index 0ede02f2..0ede02f2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33032-bug_670.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33032-bug_670.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33033-bug_670.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33033-bug_670.h
index cc6d46e3..cc6d46e3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33033-bug_670.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33033-bug_670.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33034-bug_671.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33034-bug_671.h
index 5ef3b5d9..5ef3b5d9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33034-bug_671.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33034-bug_671.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33035-patch_32.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33035-patch_32.cpp
index 8b414f00..8b414f00 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33035-patch_32.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33035-patch_32.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33036-bug_663.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33036-bug_663.cpp
index 7583d548..7583d548 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33036-bug_663.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33036-bug_663.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33037-func_class.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33037-func_class.cpp
index ea271c11..ea271c11 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33037-func_class.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33037-func_class.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33038-func_class.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33038-func_class.h
index 8b3ca218..8b3ca218 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33038-func_class.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33038-func_class.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33039-mod_remove_empty_return.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33039-mod_remove_empty_return.cpp
index 707c1c38..707c1c38 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33039-mod_remove_empty_return.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33039-mod_remove_empty_return.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33040-bug_i_411.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33040-bug_i_411.cpp
index 5a3f09aa..5a3f09aa 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33040-bug_i_411.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33040-bug_i_411.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33041-bug_i_411.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33041-bug_i_411.cpp
index 4e89d68d..4e89d68d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33041-bug_i_411.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33041-bug_i_411.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33042-bug_i_411.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33042-bug_i_411.cpp
index 574f12ba..574f12ba 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33042-bug_i_411.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33042-bug_i_411.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33043-bug_i_478.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33043-bug_i_478.cpp
new file mode 100644
index 00000000..868220bb
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33043-bug_i_478.cpp
@@ -0,0 +1,24 @@
+{
+ QString fileName = QFileDialog::getOpenFileName(this,
+ tr("Choose Configuration File"), ui->leStrategyFile->Text(),
+ tr("Configuration Files (*.cfg);; All Files (*.*)"), 0);
+
+ pSettings = new QSettings(QCoreApplication::applicationDirPath() + "/" +
+ QCoreApplication::applicationName() + ".ini",
+ QSettings::IniFormat);
+}
+int a ()
+{
+ double a_very_long_variable = test (foobar1,
+ foobar5);
+
+ double a_other_very_long = asdfasdfasdfasdfasdf + asdfasfafasdfa +
+ asdfasdfasdf - asdfasdf + 56598;
+
+ a_other_very_long = asdfasdfasdfasdfasdf + asdfasfafasdfa +
+ asdfasdfasdf - asdfasdf + 56598;
+
+ testadsfa (dfasdf,
+ aaafsdfa);
+ return 0;
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33044-bug_i_481.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33044-bug_i_481.cpp
index e8470648..e8470648 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33044-bug_i_481.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33044-bug_i_481.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33045-bug_i_width.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33045-bug_i_width.cpp
index 08f7888e..08f7888e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33045-bug_i_width.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33045-bug_i_width.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33046-bug_i_409.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33046-bug_i_409.cpp
index 6946a562..6946a562 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33046-bug_i_409.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33046-bug_i_409.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33047-bug_i_409.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33047-bug_i_409.cpp
index 7bfdfd83..7bfdfd83 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33047-bug_i_409.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33047-bug_i_409.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33048-bug_i_405.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33048-bug_i_405.cpp
index eda9b0dd..eda9b0dd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33048-bug_i_405.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33048-bug_i_405.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33049-pp-pragma.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33049-pp-pragma.cpp
index 2c013b08..2c013b08 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33049-pp-pragma.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33049-pp-pragma.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33050-issue_523.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33050-issue_523.cpp
index d203e398..d203e398 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33050-issue_523.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33050-issue_523.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33051-bug_i_503.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33051-bug_i_503.cpp
index 31ca41a8..31ca41a8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33051-bug_i_503.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33051-bug_i_503.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33052-bug_i_512.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33052-bug_i_512.cpp
index 9b93cdf2..9b93cdf2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33052-bug_i_512.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33052-bug_i_512.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33053-for_auto.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33053-for_auto.cpp
index 073556c9..073556c9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33053-for_auto.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33053-for_auto.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33054-bug_i_825.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33054-bug_i_825.cpp
index 242c4811..242c4811 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33054-bug_i_825.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33054-bug_i_825.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33056-bug_33056.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33056-bug_33056.cpp
index 1339ede1..1339ede1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33056-bug_33056.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33056-bug_33056.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33057-bug_1349.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33057-bug_1349.cpp
index fcc2e567..fcc2e567 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33057-bug_1349.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33057-bug_1349.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33058-Issue_3164.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33058-Issue_3164.cpp
index a1e426b0..a1e426b0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33058-Issue_3164.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33058-Issue_3164.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33059-mod_remove_empty_return-2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33059-mod_remove_empty_return-2.cpp
index eb949c45..eb949c45 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33059-mod_remove_empty_return-2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33059-mod_remove_empty_return-2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33060-if_constexpr.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33060-if_constexpr.cpp
index 032f74ec..032f74ec 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33060-if_constexpr.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33060-if_constexpr.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33061-if_chain_braces.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33061-if_chain_braces.cpp
new file mode 100644
index 00000000..693efc63
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33061-if_chain_braces.cpp
@@ -0,0 +1,47 @@
+
+int foo() {
+ if ( a )
+ return 1;
+ else if ( b )
+ return 2;
+
+ if ( a )
+ return 3;
+ else if ( b )
+ return 4;
+ else {
+ a = 5;
+ return 5;
+ }
+
+ if ( a )
+ return 6;
+ else
+ return 7;
+
+ if ( a )
+ return 8;
+
+ if ( b ) {
+ return 9;
+ }
+
+ if ( b ) {
+ { b = 5; }
+ return 10;
+ }
+
+ if ( a )
+ return 11;
+ else {
+ return 12;
+ }
+
+ if ( a ) {
+ return 13;
+ } else if ( b ) {
+ return 14;
+ } else {
+ return 15;
+ }
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33062-if_chain_braces.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33062-if_chain_braces.cpp
new file mode 100644
index 00000000..af36ed0e
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33062-if_chain_braces.cpp
@@ -0,0 +1,46 @@
+
+int foo() {
+ if ( a )
+ return 1;
+ else if ( b )
+ return 2;
+
+ if ( a ) {
+ return 3;
+ }
+ else if ( b ) {
+ return 4;
+ }
+ else {
+ a = 5;
+ return 5;
+ }
+
+ if ( a )
+ return 6;
+ else
+ return 7;
+
+ if ( a )
+ return 8;
+
+ if ( b )
+ return 9;
+
+ if ( b ) {
+ { b = 5; }
+ return 10;
+ }
+
+ if ( a )
+ return 11;
+ else
+ return 12;
+
+ if ( a )
+ return 13;
+ else if ( b )
+ return 14;
+ else
+ return 15;
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33063-if_chain_braces.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33063-if_chain_braces.cpp
new file mode 100644
index 00000000..00038700
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33063-if_chain_braces.cpp
@@ -0,0 +1,54 @@
+
+int foo() {
+ if ( a ) {
+ return 1;
+ }
+ else if ( b ) {
+ return 2;
+ }
+
+ if ( a ) {
+ return 3;
+ }
+ else if ( b ) {
+ return 4;
+ }
+ else {
+ a = 5;
+ return 5;
+ }
+
+ if ( a ) {
+ return 6;
+ }
+ else{
+ return 7;
+ }
+
+ if ( a )
+ return 8;
+
+ if ( b ) {
+ return 9;
+ }
+
+ if ( b ) {
+ { b = 5; }
+ return 10;
+ }
+
+ if ( a ) {
+ return 11;
+ }
+ else {
+ return 12;
+ }
+
+ if ( a ) {
+ return 13;
+ } else if ( b ) {
+ return 14;
+ } else {
+ return 15;
+ }
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33064-if_chain_braces.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33064-if_chain_braces.cpp
new file mode 100644
index 00000000..c42ef73a
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33064-if_chain_braces.cpp
@@ -0,0 +1,53 @@
+
+int foo() {
+ if ( a ) {
+ return 1;
+ }
+ else if ( b ) {
+ return 2;
+ }
+
+ if ( a ) {
+ return 3;
+ }
+ else if ( b ) {
+ return 4;
+ }
+ else {
+ a = 5;
+ return 5;
+ }
+
+ if ( a ) {
+ return 6;
+ }
+ else{
+ return 7;
+ }
+
+ if ( a )
+ return 8;
+
+ if ( b )
+ return 9;
+
+ if ( b ) {
+ { b = 5; }
+ return 10;
+ }
+
+ if ( a ) {
+ return 11;
+ }
+ else {
+ return 12;
+ }
+
+ if ( a ) {
+ return 13;
+ } else if ( b ) {
+ return 14;
+ } else {
+ return 15;
+ }
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33065-Issue_3316.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33065-Issue_3316.cpp
new file mode 100644
index 00000000..91ec82f0
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33065-Issue_3316.cpp
@@ -0,0 +1,15 @@
+#include <iostream>
+
+bool
+foo()
+{
+ const int i = 3;
+
+ if ( (i == 2) || (i == 3) || (i == 5) ) {
+ std::cerr << "Very small prime!\n";
+ }
+
+ const auto isSmallPrime = (i == 2) || (i == 3) || (i == 5) || (i == 7) || (i == 11);
+
+ return isSmallPrime || (i == 13) || (i == 17) || (i == 19);
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33066-if_chain_braces.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33066-if_chain_braces.cpp
new file mode 100644
index 00000000..0ef6478b
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33066-if_chain_braces.cpp
@@ -0,0 +1,50 @@
+
+int foo() {
+ if ( a )
+ return 1;
+ else if ( b )
+ return 2;
+
+ if ( a ) {
+ return 3;
+ }
+ else if ( b ) {
+ return 4;
+ }
+ else {
+ a = 5;
+ return 5;
+ }
+
+ if ( a )
+ return 6;
+ else
+ return 7;
+
+ if ( a )
+ return 8;
+
+ if ( b ) {
+ return 9;
+ }
+
+ if ( b ) {
+ { b = 5; }
+ return 10;
+ }
+
+ if ( a ) {
+ return 11;
+ }
+ else {
+ return 12;
+ }
+
+ if ( a ) {
+ return 13;
+ } else if ( b ) {
+ return 14;
+ } else {
+ return 15;
+ }
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33067-if_chain_braces.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33067-if_chain_braces.cpp
new file mode 100644
index 00000000..7df1c6e8
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33067-if_chain_braces.cpp
@@ -0,0 +1,48 @@
+
+int foo() {
+ if ( a )
+ return 1;
+ else if ( b )
+ return 2;
+
+ if ( a ) {
+ return 3;
+ }
+ else if ( b ) {
+ return 4;
+ }
+ else {
+ a = 5;
+ return 5;
+ }
+
+ if ( a )
+ return 6;
+ else
+ return 7;
+
+ if ( a )
+ return 8;
+
+ if ( b ) {
+ return 9;
+ }
+
+ if ( b ) {
+ { b = 5; }
+ return 10;
+ }
+
+ if ( a )
+ return 11;
+ else
+ return 12;
+
+ if ( a ) {
+ return 13;
+ } else if ( b ) {
+ return 14;
+ } else {
+ return 15;
+ }
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33069-Issue_2195.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33069-Issue_2195.cpp
index fe3ec459..fe3ec459 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33069-Issue_2195.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33069-Issue_2195.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33070-multi_line.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33070-multi_line.cpp
index dcea4c00..dcea4c00 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33070-multi_line.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33070-multi_line.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33071-multi_line.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33071-multi_line.cpp
index 0f8503fc..0f8503fc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33071-multi_line.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33071-multi_line.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33072-multi_line.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33072-multi_line.cpp
index add93503..add93503 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33072-multi_line.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33072-multi_line.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33073-multi_line.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33073-multi_line.cpp
index c0016ff6..c0016ff6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33073-multi_line.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33073-multi_line.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33074-multi_line.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33074-multi_line.cpp
index c8f32960..c8f32960 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33074-multi_line.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33074-multi_line.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33075-multi_line.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33075-multi_line.cpp
index 66963f4e..66963f4e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33075-multi_line.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33075-multi_line.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33076-multi_line.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33076-multi_line.cpp
index 9d105267..9d105267 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33076-multi_line.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33076-multi_line.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33077-multi_line.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33077-multi_line.cpp
index d7cbafc8..d7cbafc8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33077-multi_line.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33077-multi_line.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33078-multi_line.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33078-multi_line.cpp
index 01fe4d10..01fe4d10 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33078-multi_line.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33078-multi_line.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33079-multi_line.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33079-multi_line.cpp
index 6a6490ab..6a6490ab 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33079-multi_line.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33079-multi_line.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33080-multi_line.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33080-multi_line.cpp
index 8f44ce91..8f44ce91 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33080-multi_line.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33080-multi_line.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33081-bug_i_552.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33081-bug_i_552.cpp
index 5a0704de..5a0704de 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33081-bug_i_552.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33081-bug_i_552.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33082-namespace_namespace.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33082-namespace_namespace.cpp
index cf6f921e..cf6f921e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33082-namespace_namespace.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33082-namespace_namespace.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33083-bug_i_359.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33083-bug_i_359.cpp
index 8081c1f9..8081c1f9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33083-bug_i_359.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33083-bug_i_359.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33084-op_sym_empty.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33084-op_sym_empty.cpp
index 3557e513..3557e513 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33084-op_sym_empty.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33084-op_sym_empty.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33085-bug_i_323.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33085-bug_i_323.cpp
index 6f622f6e..6f622f6e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33085-bug_i_323.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33085-bug_i_323.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33086-bug_i_568.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33086-bug_i_568.cpp
index 2e1a00d7..2e1a00d7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33086-bug_i_568.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33086-bug_i_568.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33087-bug_i_596.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33087-bug_i_596.cpp
index db3644a2..db3644a2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33087-bug_i_596.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33087-bug_i_596.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33088-bug_i_197.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33088-bug_i_197.cpp
index e86698fd..e86698fd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33088-bug_i_197.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33088-bug_i_197.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33089-bug_643.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33089-bug_643.cpp
index 55e3e309..55e3e309 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33089-bug_643.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33089-bug_643.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33090-gh555.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33090-gh555.cpp
index 32147190..32147190 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33090-gh555.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33090-gh555.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33091-squeeze_ifdef.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33091-squeeze_ifdef.cpp
index 7311c71e..7311c71e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33091-squeeze_ifdef.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33091-squeeze_ifdef.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33092-squeeze_ifdef.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33092-squeeze_ifdef.cpp
index 94b20d2e..94b20d2e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33092-squeeze_ifdef.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33092-squeeze_ifdef.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33093-sp_angle_paren.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33093-sp_angle_paren.cpp
index 7ed4f34e..7ed4f34e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33093-sp_angle_paren.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33093-sp_angle_paren.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33094-sp_angle_paren.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33094-sp_angle_paren.cpp
index c20305c3..c20305c3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33094-sp_angle_paren.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33094-sp_angle_paren.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33095-bug_i_322.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33095-bug_i_322.cpp
index 3904ec27..3904ec27 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33095-bug_i_322.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33095-bug_i_322.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33096-squeeze_ifdef.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33096-squeeze_ifdef.cpp
index df3d90ab..df3d90ab 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33096-squeeze_ifdef.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33096-squeeze_ifdef.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33097-enum_comma.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33097-enum_comma.h
index bb93f4a9..bb93f4a9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33097-enum_comma.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33097-enum_comma.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33098-enum_comma.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33098-enum_comma.h
index 3ec29719..3ec29719 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33098-enum_comma.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33098-enum_comma.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33099-enum_comma.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33099-enum_comma.h
index 01a89059..01a89059 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33099-enum_comma.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33099-enum_comma.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33100-enum_comma.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33100-enum_comma.h
index 903a6849..903a6849 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33100-enum_comma.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33100-enum_comma.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33101-enum_comma.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33101-enum_comma.h
index 53c1a99e..53c1a99e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33101-enum_comma.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33101-enum_comma.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33102-enum_comma.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33102-enum_comma.h
index 6c11f2b3..6c11f2b3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33102-enum_comma.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33102-enum_comma.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33103-bug_858.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33103-bug_858.cpp
index 1085f7db..1085f7db 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33103-bug_858.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33103-bug_858.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33104-bug_858.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33104-bug_858.cpp
index c5ac560e..c5ac560e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33104-bug_858.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33104-bug_858.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33105-bug_1001.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33105-bug_1001.cpp
index d6104cd5..d6104cd5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33105-bug_1001.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33105-bug_1001.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33106-pos_bool_in_template.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33106-pos_bool_in_template.h
index f5fdb04e..f5fdb04e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33106-pos_bool_in_template.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33106-pos_bool_in_template.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33107-Issue_2688.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33107-Issue_2688.cpp
index ac97ff3a..ac97ff3a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33107-Issue_2688.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33107-Issue_2688.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33108-Issue_2045.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33108-Issue_2045.cpp
index a1670ffc..a1670ffc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33108-Issue_2045.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33108-Issue_2045.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33109-Issue_3205.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33109-Issue_3205.cpp
index 99767289..99767289 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33109-Issue_3205.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33109-Issue_3205.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33110-enum.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33110-enum.cpp
new file mode 100644
index 00000000..a0ab57c8
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33110-enum.cpp
@@ -0,0 +1,203 @@
+enum class angle_state_e : unsigned int
+{
+ NONE = 0,
+ OPEN = 1, //'<' found
+ CLOSE = 2, //'>' found
+};
+
+// align.cpp
+enum class comment_align_e : unsigned int
+{
+ REGULAR,
+ BRACE,
+ ENDIF,
+};
+
+// chunk.h
+enum class E_Scope : unsigned int
+{
+ ALL, /**< search in all kind of chunks */
+ PREPROC, /**< search only in preprocessor chunks */
+};
+
+// chunk.cpp
+enum class E_Direction : unsigned int
+{
+ FORWARD,
+ BACKWARD
+};
+
+// combine.cpp
+{
+ enum class angle_state_e : unsigned int
+ {
+ NONE = 0,
+ OPEN = 1, // '<' found
+ CLOSE = 2, // '>' found
+ };
+}
+
+// indent.cpp
+enum class align_mode_e : unsigned int
+{
+ SHIFT, /* shift relative to the current column */
+ KEEP_ABS, /* try to keep the original absolute column */
+ KEEP_REL, /* try to keep the original gap */
+};
+
+// align_stack.h
+{
+ enum StarStyle
+ {
+ SS_IGNORE, // don't look for prev stars
+ SS_INCLUDE, // include prev * before add
+ SS_DANGLE // include prev * after add
+ };
+}
+
+// log_levels.h
+enum log_sev_t
+{
+ LSYS = 0,
+ LERR = 1,
+ LWARN = 2,
+ LNOTE = 3,
+ LINFO = 4,
+ LDATA = 5,
+
+ LFILELIST = 8, /* Files in the file list file */
+ LLINEENDS = 9, /* Show which line endings are used */
+ LCASTS = 10, /* align casts */
+ LALBR = 11, /* align braces */
+ LALTD = 12, /* Align Typedef */
+ LALPP = 13, /* align #define */
+ LALPROTO = 14, /* align prototype */
+ LALNLC = 15, /* align backslash-newline */
+ LALTC = 16, /* align trailing comments */
+ LALADD = 17, /* align add */
+ LALASS = 18, /* align assign */
+ LFVD = 19, /* fix_var_def */
+ LFVD2 = 20, /* fix_var_def-2 */
+ LINDENT = 21, /* indent_text */
+ LINDENT2 = 22, /* indent_text tab level */
+ LINDPSE = 23, /* indent_text stack */
+ LINDPC = 24, /* indent play-by-play */
+ LNEWLINE = 25, /* newlines */
+ LPF = 26, /* Parse Frame */
+ LSTMT = 27, /* Marking statements/expressions */
+ LTOK = 28, /* Tokenize */
+ LALRC = 29, /* align right comment */
+ LCMTIND = 30, /* Comment Indent */
+ LINDLINE = 31, /* indent line */
+ LSIB = 32, /* Scan IB */
+ LRETURN = 33, /* add/remove parens for return */
+ LBRDEL = 34, /* brace removal */
+ LFCN = 35, /* function detection */
+ LFCNP = 36, /* function parameters */
+ LPCU = 37, /* parse cleanup */
+ LDYNKW = 38, /* dynamic keywords */
+ LOUTIND = 39, /* output indent */
+ LBCSAFTER = 40, /* Brace cleanup stack - after each token */
+ LBCSPOP = 41, /* Brace cleanup stack - log pops */
+ LBCSPUSH = 42, /* Brace cleanup stack - log push */
+ LBCSSWAP = 43, /* Brace cleanup stack - log swaps */
+ LFTOR = 44, /* Class Ctor or Dtor */
+ LAS = 45, /* align_stack */
+ LPPIS = 46, /* Preprocessor Indent and Space */
+ LTYPEDEF = 47, /* Typedef and function types */
+ LVARDEF = 48, /* Variable def marking */
+ LDEFVAL = 49, /* define values */
+ LPVSEMI = 50, /* Pawn: virtual semicolons */
+ LPFUNC = 51, /* Pawn: function recognition */
+ LSPLIT = 52, /* Line splitting */
+ LFTYPE = 53, /* Function type detection */
+ LTEMPL = 54, /* Template detection */
+ LPARADD = 55, /* adding parens in if/while */
+ LPARADD2 = 56, /* adding parens in if/while - details */
+ LBLANKD = 57, /* blank line details */
+ LTEMPFUNC = 58, /* Template function detection */
+ LSCANSEMI = 59, /* scan semi colon removal */
+ LDELSEMI = 60, /* Removing semicolons */
+ LFPARAM = 61, /* Testing for a full parameter */
+ LNL1LINE = 62, /* NL check for 1 liners */
+ LPFCHK = 63, /* Parse Frame check fcn call */
+ LAVDB = 64, /* align var def braces */
+ LSORT = 65, /* Sorting */
+ LSPACE = 66, /* Space */
+ LALIGN = 67, /* align */
+ LALAGAIN = 68, /* align again */
+ LOPERATOR = 69, /* operator */
+ LASFCP = 70, /* Align Same Function Call Params */
+ LINDLINED = 71, /* indent line details */
+ LBCTRL = 72, /* beautifier control */
+ LRMRETURN = 73, /* remove 'return;' */
+ LPPIF = 74, /* #if/#else/#endif pair processing */
+ LMCB = 75, /* mod_case_brace */
+ LBRCH = 76, /* if brace chain */
+ LFCNR = 77, /* function return type */
+ LOCCLASS = 78, /* OC Class stuff */
+ LOCMSG = 79, /* OC Message stuff */
+ LBLANK = 80, /* Blank Lines */
+ LOBJCWORD = 81, /* Convert keyword to CT_WORD in certain circumstances */
+ LCHANGE = 82, /* something changed */
+ LCONTTEXT = 83, /* comment cont_text set */
+ LANNOT = 84, /* Java annotation */
+ LOCBLK = 85, /* OC Block stuff */
+ LFLPAREN = 86, /* Flag paren */
+ LOCMSGD = 87, /* OC Message declaration */
+ LINDENTAG = 88, /* indent again */
+ LNFD = 89, /* newline-function-def */
+ LJDBI = 90, /* Java Double Brace Init */
+ LSETPAR = 91, /* set_chunk_parent() */
+ LSETTYP = 92, /* set_chunk_type() */
+ LSETFLG = 93, /* set_chunk_flags() */
+ LNLFUNCT = 94, /* newlines before function */
+ LCHUNK = 95, /* Add or del chunk */
+ LGUY98 = 98, /* for guy-test */
+ LGUY = 99, /* for guy-test */
+};
+
+// options.h
+enum argtype_e
+{
+ AT_BOOL, /**< true / false */
+ AT_IARF, /**< Ignore / Add / Remove / Force */
+ AT_NUM, /**< Number */
+ AT_LINE, /**< Line Endings */
+ AT_POS, /**< start/end or Trail/Lead */
+ AT_STRING, /**< string value */
+ AT_UNUM, /**< unsigned Number */
+};
+
+enum argval_t
+{
+ AV_IGNORE = 0,
+ AV_ADD = 1,
+ AV_REMOVE = 2,
+ AV_FORCE = 3, /**< remove + add */
+ AV_NOT_DEFINED = 4 /* to be used with QT, SIGNAL SLOT macros */
+};
+
+enum lineends_e
+{
+ LE_LF, /* "\n" */
+ LE_CRLF, /* "\r\n" */
+ LE_CR, /* "\r" */
+
+ LE_AUTO, /* keep last */
+};
+
+enum tokenpos_e
+{
+ TP_IGNORE = 0, /* don't change it */
+ TP_BREAK = 1, /* add a newline before or after the if not present */
+ TP_FORCE = 2, /* force a newline on one side and not the other */
+ TP_LEAD = 4, /* at the start of a line or leading if wrapped line */
+ TP_LEAD_BREAK = (TP_LEAD | TP_BREAK),
+ TP_LEAD_FORCE = (TP_LEAD | TP_FORCE),
+ TP_TRAIL = 8, /* at the end of a line or trailing if wrapped line */
+ TP_TRAIL_BREAK = (TP_TRAIL | TP_BREAK),
+ TP_TRAIL_FORCE = (TP_TRAIL | TP_FORCE),
+ TP_JOIN = 16, /* remove newlines on both sides */
+};
+
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33120-Issue_2149.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33120-Issue_2149.cpp
index 1266bd7b..1266bd7b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33120-Issue_2149.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33120-Issue_2149.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33150-bug_i_753.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33150-bug_i_753.cpp
index 9aa764a4..9aa764a4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33150-bug_i_753.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33150-bug_i_753.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33151-bug_i_752.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33151-bug_i_752.cpp
index da8fe9f5..da8fe9f5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33151-bug_i_752.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33151-bug_i_752.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33152-bug_1004.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33152-bug_1004.cpp
index f072a583..f072a583 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33152-bug_1004.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33152-bug_1004.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33160-bug_1112.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33160-bug_1112.cpp
index da95fcb6..da95fcb6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33160-bug_1112.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33160-bug_1112.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33161-byref-3.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33161-byref-3.cpp
index 8c51bf46..8c51bf46 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33161-byref-3.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33161-byref-3.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33162-sp_not_not.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33162-sp_not_not.cpp
new file mode 100644
index 00000000..42306dad
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33162-sp_not_not.cpp
@@ -0,0 +1,3 @@
+if (! hello) { }
+if (!! hello) { }
+if (!!! hello) { }
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33180-pp_multi_comment.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33180-pp_multi_comment.cpp
index bfe1e1d1..bfe1e1d1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33180-pp_multi_comment.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33180-pp_multi_comment.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33181-Issue_2759.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33181-Issue_2759.cpp
index cbe9c4a5..cbe9c4a5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33181-Issue_2759.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33181-Issue_2759.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33182-Issue_2794.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33182-Issue_2794.cpp
index 16de515b..16de515b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33182-Issue_2794.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33182-Issue_2794.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33200-first_len_minimum.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33200-first_len_minimum.cpp
index c33d9e03..c33d9e03 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33200-first_len_minimum.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33200-first_len_minimum.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33201-indent_ctor_members_twice.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33201-indent_ctor_members_twice.cpp
index 3b1bea1c..3b1bea1c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33201-indent_ctor_members_twice.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33201-indent_ctor_members_twice.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33202-initlist_leading_commas.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33202-initlist_leading_commas.cpp
index a3bc4a2a..a3bc4a2a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33202-initlist_leading_commas.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33202-initlist_leading_commas.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33203-Issue_2574.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33203-Issue_2574.cpp
index bd88347d..bd88347d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33203-Issue_2574.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33203-Issue_2574.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33204-Issue_2582.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33204-Issue_2582.cpp
index adf9bfe9..adf9bfe9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33204-Issue_2582.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33204-Issue_2582.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33205-Issue_3198.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33205-Issue_3198.cpp
index 8dd234b7..8dd234b7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33205-Issue_3198.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33205-Issue_3198.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33210-templates4.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33210-templates4.cpp
index 10b96e4a..10b96e4a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33210-templates4.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33210-templates4.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33211-pp_multi_comment.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33211-pp_multi_comment.cpp
index 5690e3a6..5690e3a6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33211-pp_multi_comment.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33211-pp_multi_comment.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33212-pp-define-indent.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33212-pp-define-indent.cpp
index 78dc4c98..78dc4c98 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33212-pp-define-indent.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33212-pp-define-indent.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33213-disable_macro.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33213-disable_macro.cpp
index 7e64f416..7e64f416 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33213-disable_macro.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33213-disable_macro.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33214-Issue_2742.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33214-Issue_2742.cpp
index 66d12fec..66d12fec 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33214-Issue_2742.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33214-Issue_2742.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33215-Issue_3055.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33215-Issue_3055.cpp
index d23a0d56..d23a0d56 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33215-Issue_3055.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33215-Issue_3055.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33216-Issue_3055-a.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33216-Issue_3055-a.cpp
index 21a5c35c..21a5c35c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33216-Issue_3055-a.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33216-Issue_3055-a.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33217-Issue_3113.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33217-Issue_3113.cpp
index 63090f4a..63090f4a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33217-Issue_3113.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/33217-Issue_3113.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34001-nl_before_after.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34001-nl_before_after.h
index 8cdc7273..8cdc7273 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34001-nl_before_after.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34001-nl_before_after.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34002-bug_i_793.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34002-bug_i_793.cpp
index b6b6a7ab..b6b6a7ab 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34002-bug_i_793.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34002-bug_i_793.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34003-nl_max_blank_in_func.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34003-nl_max_blank_in_func.cpp
index cd1083ee..cd1083ee 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34003-nl_max_blank_in_func.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34003-nl_max_blank_in_func.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34004-nl_max_blank_in_func.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34004-nl_max_blank_in_func.cpp
index c2f8dc36..c2f8dc36 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34004-nl_max_blank_in_func.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34004-nl_max_blank_in_func.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34005-nl_max_blank_in_func.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34005-nl_max_blank_in_func.cpp
index 738f3bf6..738f3bf6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34005-nl_max_blank_in_func.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34005-nl_max_blank_in_func.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34006-bug_i_575.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34006-bug_i_575.cpp
index 4c25fb75..4c25fb75 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34006-bug_i_575.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34006-bug_i_575.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34007-bug_i_928.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34007-bug_i_928.cpp
index 78b214bd..78b214bd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34007-bug_i_928.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34007-bug_i_928.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34100-bug_i_525.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34100-bug_i_525.cpp
index b810afe0..b810afe0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34100-bug_i_525.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34100-bug_i_525.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34101-bug_i_646.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34101-bug_i_646.cpp
index f89b6416..f89b6416 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34101-bug_i_646.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34101-bug_i_646.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34105-bug_i_663.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34105-bug_i_663.cpp
index 2a473bc7..2a473bc7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34105-bug_i_663.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34105-bug_i_663.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34108-bug_i_666.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34108-bug_i_666.cpp
index 212a8656..212a8656 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34108-bug_i_666.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34108-bug_i_666.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34112-bug_i_889.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34112-bug_i_889.cpp
index 5b803a0e..5b803a0e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34112-bug_i_889.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34112-bug_i_889.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34113-bug_902.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34113-bug_902.cpp
index ada480c0..ada480c0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34113-bug_902.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34113-bug_902.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34114-bug_902.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34114-bug_902.cpp
index af6bdb44..af6bdb44 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34114-bug_902.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34114-bug_902.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34115-nl_before_func_body_def.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34115-nl_before_func_body_def.cpp
index ff76cb2b..ff76cb2b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34115-nl_before_func_body_def.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34115-nl_before_func_body_def.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34116-issue_2000.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34116-issue_2000.cpp
index f4f2c2bf..f4f2c2bf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34116-issue_2000.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34116-issue_2000.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34117-extern_func.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34117-extern_func.cpp
index 4de29e3c..4de29e3c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34117-extern_func.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34117-extern_func.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34118-Issue_2163.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34118-Issue_2163.cpp
index afd04eb0..afd04eb0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34118-Issue_2163.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34118-Issue_2163.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34120-bug_i_999.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34120-bug_i_999.cpp
index 2a5d64a4..2a5d64a4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34120-bug_i_999.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34120-bug_i_999.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34121-bug_1717.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34121-bug_1717.cpp
index 4116871f..4116871f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34121-bug_1717.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34121-bug_1717.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34122-Issue_2440.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34122-Issue_2440.cpp
index c52c30da..c52c30da 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34122-Issue_2440.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34122-Issue_2440.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34123-Issue_2440_nl.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34123-Issue_2440_nl.cpp
index c52c30da..c52c30da 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34123-Issue_2440_nl.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34123-Issue_2440_nl.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34130-bug_i_1000.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34130-bug_i_1000.cpp
index 6e1e7a0e..6e1e7a0e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34130-bug_i_1000.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34130-bug_i_1000.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34131-bug_i_1000.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34131-bug_i_1000.cpp
index 149353e7..149353e7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34131-bug_i_1000.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34131-bug_i_1000.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34132-new_op.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34132-new_op.cpp
index 15386247..15386247 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34132-new_op.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34132-new_op.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34133-new_op.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34133-new_op.cpp
index ce690c94..ce690c94 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34133-new_op.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34133-new_op.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34134-new_op.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34134-new_op.cpp
index 67dfa187..67dfa187 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34134-new_op.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34134-new_op.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34135-new_op.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34135-new_op.cpp
index 044cd859..044cd859 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34135-new_op.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34135-new_op.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34136-sp_balance_nested_parens.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34136-sp_balance_nested_parens.cpp
index 0a6635d0..0a6635d0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34136-sp_balance_nested_parens.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34136-sp_balance_nested_parens.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34140-bug_1027.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34140-bug_1027.cpp
index 5ccafd2b..5ccafd2b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34140-bug_1027.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34140-bug_1027.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34141-bug_1005.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34141-bug_1005.cpp
index 01a457d0..01a457d0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34141-bug_1005.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34141-bug_1005.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34142-I1112-1.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34142-I1112-1.cpp
index df27d1d6..df27d1d6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34142-I1112-1.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34142-I1112-1.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34143-I1112-2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34143-I1112-2.cpp
index 28a4489d..28a4489d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34143-I1112-2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34143-I1112-2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34144-I1112-3.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34144-I1112-3.cpp
index c95a6c40..c95a6c40 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34144-I1112-3.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34144-I1112-3.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34145-i683.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34145-i683.cpp
index 255c6336..255c6336 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34145-i683.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34145-i683.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34146-bug_1002.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34146-bug_1002.cpp
index 0d72c80a..0d72c80a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34146-bug_1002.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34146-bug_1002.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34147-bug_1002.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34147-bug_1002.cpp
index 02b85396..02b85396 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34147-bug_1002.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34147-bug_1002.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34148-bug_1139.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34148-bug_1139.cpp
index d6d8a484..d6d8a484 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34148-bug_1139.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34148-bug_1139.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34149-bug_1139.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34149-bug_1139.cpp
index dd0a10dc..dd0a10dc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34149-bug_1139.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34149-bug_1139.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34150-bug_1032.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34150-bug_1032.cpp
index 80078efe..80078efe 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34150-bug_1032.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34150-bug_1032.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34151-bug_666.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34151-bug_666.cpp
index 212a8656..212a8656 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34151-bug_666.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34151-bug_666.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34152-bug_1068.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34152-bug_1068.cpp
index 74fbc8e7..74fbc8e7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34152-bug_1068.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34152-bug_1068.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34153-type_brace_init_lst.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34153-type_brace_init_lst.cpp
index 356a7713..356a7713 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34153-type_brace_init_lst.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34153-type_brace_init_lst.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34154-type_brace_init_lst.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34154-type_brace_init_lst.cpp
index adc09173..adc09173 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34154-type_brace_init_lst.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34154-type_brace_init_lst.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34155-type_brace_init_lst.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34155-type_brace_init_lst.cpp
index 7d62eafb..7d62eafb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34155-type_brace_init_lst.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34155-type_brace_init_lst.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34156-type_brace_init_lst.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34156-type_brace_init_lst.cpp
index 6519b4b1..6519b4b1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34156-type_brace_init_lst.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34156-type_brace_init_lst.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34157-type_brace_init_lst.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34157-type_brace_init_lst.cpp
index 6751c0fa..6751c0fa 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34157-type_brace_init_lst.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34157-type_brace_init_lst.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34158-type_brace_init_lst.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34158-type_brace_init_lst.cpp
index d5dcfdeb..d5dcfdeb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34158-type_brace_init_lst.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34158-type_brace_init_lst.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34159-type_brace_init_lst.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34159-type_brace_init_lst.cpp
index 0b9bf31c..0b9bf31c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34159-type_brace_init_lst.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34159-type_brace_init_lst.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34160-type_brace_init_lst.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34160-type_brace_init_lst.cpp
index 01c89132..01c89132 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34160-type_brace_init_lst.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34160-type_brace_init_lst.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34161-type_brace_init_lst.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34161-type_brace_init_lst.cpp
index cc79678f..cc79678f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34161-type_brace_init_lst.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34161-type_brace_init_lst.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34162-type_brace_init_lst.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34162-type_brace_init_lst.cpp
index 2d5dc62c..2d5dc62c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34162-type_brace_init_lst.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34162-type_brace_init_lst.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34163-type_brace_init_lst.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34163-type_brace_init_lst.cpp
index 9be7507a..9be7507a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34163-type_brace_init_lst.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34163-type_brace_init_lst.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34164-type_brace_init_lst.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34164-type_brace_init_lst.cpp
index 68565614..68565614 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34164-type_brace_init_lst.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34164-type_brace_init_lst.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34165-type_brace_init_lst.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34165-type_brace_init_lst.cpp
index 92fc0b0b..92fc0b0b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34165-type_brace_init_lst.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34165-type_brace_init_lst.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34166-type_brace_init_lst.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34166-type_brace_init_lst.cpp
index d7dfa908..d7dfa908 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34166-type_brace_init_lst.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34166-type_brace_init_lst.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34168-Issue_2910.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34168-Issue_2910.cpp
index 82c2bec9..82c2bec9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34168-Issue_2910.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34168-Issue_2910.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34169-init-list-call.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34169-init-list-call.cpp
index 95449eb1..95449eb1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34169-init-list-call.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34169-init-list-call.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34170-i1082.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34170-i1082.cpp
index 06680c0e..06680c0e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34170-i1082.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34170-i1082.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34171-i1181.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34171-i1181.cpp
index 1a959d34..1a959d34 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34171-i1181.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34171-i1181.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34172-i1165.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34172-i1165.cpp
index c3123b59..c3123b59 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34172-i1165.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34172-i1165.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34173-i1464.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34173-i1464.cpp
new file mode 100644
index 00000000..179ecd5e
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34173-i1464.cpp
@@ -0,0 +1,3 @@
+auto p = std::make_pair(r * cos(a), r * sin(a));
+
+auto p2 = std::make_pari(r * 0x0000'1111, 0x0000'1111 * r);
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34174-i1466.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34174-i1466.cpp
new file mode 100644
index 00000000..fe704d2a
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34174-i1466.cpp
@@ -0,0 +1,6 @@
+A a = {this->r * cos(b)};
+
+B b1 = {0x0000'1111 * this->r};
+B b3 = {this->r * 0x0000'1111};
+B b2 = {0x0000'1111 * value};
+B b4 = {value * 0x0000'1111};
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34175-i1509.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34175-i1509.cpp
index 419807fd..419807fd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34175-i1509.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34175-i1509.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34176-i1509_bug_1112_correction.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34176-i1509_bug_1112_correction.cpp
index b9a75cf6..b9a75cf6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34176-i1509_bug_1112_correction.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34176-i1509_bug_1112_correction.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34177-sp_func_call_paren.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34177-sp_func_call_paren.cpp
index 580e9bae..580e9bae 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34177-sp_func_call_paren.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34177-sp_func_call_paren.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34178-Issue_3237.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34178-Issue_3237.cpp
index 23b565a9..23b565a9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34178-Issue_3237.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34178-Issue_3237.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34179-arith_vs_byref.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34179-arith_vs_byref.cpp
new file mode 100644
index 00000000..f459fdcc
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34179-arith_vs_byref.cpp
@@ -0,0 +1,10 @@
+A a = {this->r & cos(b)};
+
+B b1 = {0x0000'1111 & this->r};
+B b2 = {this->r & 0x0000'1111};
+B b3 = {0x0000'1111 & value};
+B b4 = {value & 0x0000'1111};
+
+auto p = std::make_pair(r & cos(a), r & sin(a));
+
+auto p2 = std::make_pair(r & 0x0000'1111, 0x0000'1111 & r);
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34180-bug_1402.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34180-bug_1402.cpp
index 09714c41..09714c41 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34180-bug_1402.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34180-bug_1402.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34190-bug_1003.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34190-bug_1003.cpp
index 7495b93d..7495b93d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34190-bug_1003.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34190-bug_1003.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34191-comment-align-multiline.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34191-comment-align-multiline.cpp
index db501481..db501481 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34191-comment-align-multiline.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34191-comment-align-multiline.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34192-i1207.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34192-i1207.cpp
index e02da8c9..e02da8c9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34192-i1207.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34192-i1207.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34193-i1218.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34193-i1218.cpp
index d4d05106..d4d05106 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34193-i1218.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34193-i1218.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34194-sp_arith_additive.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34194-sp_arith_additive.cpp
index 5ecb2ec8..5ecb2ec8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34194-sp_arith_additive.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34194-sp_arith_additive.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34195-sp_arith_additive.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34195-sp_arith_additive.cpp
index f419a3ed..f419a3ed 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34195-sp_arith_additive.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34195-sp_arith_additive.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34196-Issue_1460.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34196-Issue_1460.h
index 63787999..63787999 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34196-Issue_1460.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34196-Issue_1460.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34197-bug_1161.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34197-bug_1161.cpp
index 34740f5a..34740f5a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34197-bug_1161.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34197-bug_1161.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34198-bug_1249.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34198-bug_1249.cpp
index 65637efe..65637efe 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34198-bug_1249.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34198-bug_1249.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34199-not_lambda.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34199-not_lambda.cpp
index a9c65439..a9c65439 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34199-not_lambda.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34199-not_lambda.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34200-i1536.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34200-i1536.cpp
index 0eb7fc69..0eb7fc69 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34200-i1536.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34200-i1536.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34201-i1565.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34201-i1565.cpp
index d0bef508..d0bef508 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34201-i1565.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34201-i1565.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34202-i1617.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34202-i1617.cpp
index 98ede13b..98ede13b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34202-i1617.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34202-i1617.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34203-i1516.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34203-i1516.cpp
index d0612a2b..d0612a2b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34203-i1516.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34203-i1516.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34204-func_param_indent_leading_comma.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34204-func_param_indent_leading_comma.cpp
index e8790dbd..e8790dbd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34204-func_param_indent_leading_comma.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34204-func_param_indent_leading_comma.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34205-bug_1395.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34205-bug_1395.cpp
index 16e2fbba..16e2fbba 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34205-bug_1395.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34205-bug_1395.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34206-for_loop_head.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34206-for_loop_head.cpp
index 6cea550d..6cea550d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34206-for_loop_head.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34206-for_loop_head.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34207-for_loop_head.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34207-for_loop_head.cpp
index 2aa9bdc0..2aa9bdc0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34207-for_loop_head.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34207-for_loop_head.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34208-conversion_operator.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34208-conversion_operator.cpp
index 27b52dac..27b52dac 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34208-conversion_operator.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34208-conversion_operator.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34209-lambda_selfcalling.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34209-lambda_selfcalling.cpp
index 8f0c819e..8f0c819e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34209-lambda_selfcalling.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34209-lambda_selfcalling.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34210-override_virtual.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34210-override_virtual.cpp
index 537454b1..537454b1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34210-override_virtual.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34210-override_virtual.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34211-anonymous_enum.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34211-anonymous_enum.cpp
index ef237a6e..ef237a6e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34211-anonymous_enum.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34211-anonymous_enum.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34250-bug_1607.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34250-bug_1607.cpp
index 9e4e47d3..9e4e47d3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34250-bug_1607.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34250-bug_1607.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34251-bug_1649.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34251-bug_1649.cpp
index 4b352c79..4b352c79 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34251-bug_1649.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34251-bug_1649.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34252-issue_2001.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34252-issue_2001.cpp
index 39b9446d..39b9446d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34252-issue_2001.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34252-issue_2001.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34253-friends.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34253-friends.cpp
index 58fd649a..58fd649a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34253-friends.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34253-friends.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34254-issue_1985.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34254-issue_1985.cpp
index ef9fc90a..ef9fc90a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34254-issue_1985.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34254-issue_1985.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34255-eat_blanks_after_codewidth.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34255-eat_blanks_after_codewidth.cpp
index 7005d86c..7005d86c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34255-eat_blanks_after_codewidth.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34255-eat_blanks_after_codewidth.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34256-Issue_2836.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34256-Issue_2836.cpp
index 4d2a648f..4d2a648f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34256-Issue_2836.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34256-Issue_2836.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34280-UNI-29935.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34280-UNI-29935.cpp
index 28d0b66d..28d0b66d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34280-UNI-29935.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34280-UNI-29935.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34290-brace_brace_init_lst.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34290-brace_brace_init_lst.cpp
index 19c4b962..19c4b962 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34290-brace_brace_init_lst.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34290-brace_brace_init_lst.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34291-brace_brace_init_lst.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34291-brace_brace_init_lst.cpp
index aed91c1b..aed91c1b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34291-brace_brace_init_lst.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34291-brace_brace_init_lst.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34292-brace_brace_init_lst.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34292-brace_brace_init_lst.cpp
index cc0ac847..cc0ac847 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34292-brace_brace_init_lst.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34292-brace_brace_init_lst.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34293-brace_brace_init_lst.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34293-brace_brace_init_lst.cpp
index c47119ab..c47119ab 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34293-brace_brace_init_lst.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34293-brace_brace_init_lst.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34294-brace_brace_init_lst.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34294-brace_brace_init_lst.cpp
index afe3a0ec..afe3a0ec 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34294-brace_brace_init_lst.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34294-brace_brace_init_lst.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34295-brace_brace_init_lst.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34295-brace_brace_init_lst.cpp
index 9b8ea3c5..9b8ea3c5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34295-brace_brace_init_lst.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34295-brace_brace_init_lst.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34296-i1768.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34296-i1768.cpp
index 94327d9c..94327d9c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34296-i1768.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34296-i1768.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34297-align-assign-mixed.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34297-align-assign-mixed.cpp
index d8082600..d8082600 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34297-align-assign-mixed.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34297-align-assign-mixed.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34298-align-assign-mixed.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34298-align-assign-mixed.cpp
index 4f8dadde..4f8dadde 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34298-align-assign-mixed.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34298-align-assign-mixed.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34299-align-assign-mixed.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34299-align-assign-mixed.cpp
index ddae789b..ddae789b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34299-align-assign-mixed.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34299-align-assign-mixed.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34300-bug_1236.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34300-bug_1236.cpp
index 8acaaed2..8acaaed2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34300-bug_1236.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34300-bug_1236.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34301-nl_fdef_brace_cond-f.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34301-nl_fdef_brace_cond-f.cpp
index 05aaf7c8..05aaf7c8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34301-nl_fdef_brace_cond-f.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34301-nl_fdef_brace_cond-f.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34302-nl_fdef_brace_cond-r.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34302-nl_fdef_brace_cond-r.cpp
index 8a35c775..8a35c775 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34302-nl_fdef_brace_cond-r.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34302-nl_fdef_brace_cond-r.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34303-nl_fdef_brace_cond-fr.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34303-nl_fdef_brace_cond-fr.cpp
index e498a669..e498a669 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34303-nl_fdef_brace_cond-fr.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34303-nl_fdef_brace_cond-fr.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34304-nl_fdef_brace_cond-rf.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34304-nl_fdef_brace_cond-rf.cpp
index 078e070a..078e070a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34304-nl_fdef_brace_cond-rf.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34304-nl_fdef_brace_cond-rf.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34305-issue_2124-1.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34305-issue_2124-1.cpp
index bad0ea55..bad0ea55 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34305-issue_2124-1.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34305-issue_2124-1.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34306-issue_2124-2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34306-issue_2124-2.cpp
index bad0ea55..bad0ea55 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34306-issue_2124-2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34306-issue_2124-2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34307-2203.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34307-2203.cpp
index 70a1f31a..70a1f31a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34307-2203.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34307-2203.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34308-enum_comment_wrap.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34308-enum_comment_wrap.cpp
index 736e6718..736e6718 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34308-enum_comment_wrap.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34308-enum_comment_wrap.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34309-issue_2209-1.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34309-issue_2209-1.cpp
index 82ff67c6..82ff67c6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34309-issue_2209-1.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34309-issue_2209-1.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34310-issue_2209-2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34310-issue_2209-2.cpp
index 26c579d3..26c579d3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34310-issue_2209-2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34310-issue_2209-2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34311-Issue_2250.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34311-Issue_2250.cpp
index 9268c2e3..9268c2e3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34311-Issue_2250.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34311-Issue_2250.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34312-Issue_2101.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34312-Issue_2101.cpp
index 3e07c686..3e07c686 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34312-Issue_2101.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34312-Issue_2101.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34313-Issue_2437.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34313-Issue_2437.cpp
index 77a273ef..77a273ef 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34313-Issue_2437.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34313-Issue_2437.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34314-Issue_2604.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34314-Issue_2604.cpp
index eb87fc8a..eb87fc8a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34314-Issue_2604.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34314-Issue_2604.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34315-align_func_proto_thresh.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34315-align_func_proto_thresh.cpp
index c4f1a119..c4f1a119 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34315-align_func_proto_thresh.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34315-align_func_proto_thresh.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34316-align_func_proto_thresh.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34316-align_func_proto_thresh.cpp
index 1bbde49b..1bbde49b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34316-align_func_proto_thresh.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34316-align_func_proto_thresh.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34317-align_func_proto_thresh.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34317-align_func_proto_thresh.cpp
index e0d3488a..e0d3488a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34317-align_func_proto_thresh.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34317-align_func_proto_thresh.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34318-align_assign_func_proto.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34318-align_assign_func_proto.cpp
index 1c003058..1c003058 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34318-align_assign_func_proto.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34318-align_assign_func_proto.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34319-align_func_proto_thresh2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34319-align_func_proto_thresh2.cpp
index 8a9df8b4..8a9df8b4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34319-align_func_proto_thresh2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34319-align_func_proto_thresh2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34320-align_func_proto_thresh2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34320-align_func_proto_thresh2.cpp
index 432a9e3e..432a9e3e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34320-align_func_proto_thresh2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34320-align_func_proto_thresh2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34321-bug_2285.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34321-bug_2285.cpp
index a456e9be..a456e9be 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34321-bug_2285.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34321-bug_2285.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34322-issue_2623.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34322-issue_2623.cpp
index a9566447..a9566447 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34322-issue_2623.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34322-issue_2623.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34323-issue_2623.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34323-issue_2623.cpp
index 72fd90e8..72fd90e8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34323-issue_2623.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34323-issue_2623.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34324-issue_2623.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34324-issue_2623.cpp
index 61961fa1..61961fa1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34324-issue_2623.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34324-issue_2623.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34325-Issue_3025.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34325-Issue_3025.cpp
index 9e64526e..9e64526e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34325-Issue_3025.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34325-Issue_3025.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34326-Issue_3040.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34326-Issue_3040.cpp
index f9e69333..f9e69333 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34326-Issue_3040.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34326-Issue_3040.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34327-Issue_3044.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34327-Issue_3044.cpp
index 799fd0a1..799fd0a1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34327-Issue_3044.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34327-Issue_3044.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34328-Issue_3048.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34328-Issue_3048.cpp
index fb6b0d38..fb6b0d38 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34328-Issue_3048.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34328-Issue_3048.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34330-Issue_3061_0nl.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34330-Issue_3061_0nl.cpp
index d46f2655..d46f2655 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34330-Issue_3061_0nl.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34330-Issue_3061_0nl.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34331-Issue_3061_1nl.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34331-Issue_3061_1nl.cpp
index d46f2655..d46f2655 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34331-Issue_3061_1nl.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34331-Issue_3061_1nl.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34332-Issue_3061_2nl.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34332-Issue_3061_2nl.cpp
index d46f2655..d46f2655 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34332-Issue_3061_2nl.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34332-Issue_3061_2nl.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34333-Issue_3061_0nl.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34333-Issue_3061_0nl.cpp
index ef73253e..ef73253e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34333-Issue_3061_0nl.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34333-Issue_3061_0nl.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34334-Issue_3061_1nl.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34334-Issue_3061_1nl.cpp
index ef73253e..ef73253e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34334-Issue_3061_1nl.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34334-Issue_3061_1nl.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34335-Issue_3061_2nl.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34335-Issue_3061_2nl.cpp
index ef73253e..ef73253e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34335-Issue_3061_2nl.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34335-Issue_3061_2nl.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34336-Issue_3061_0nl.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34336-Issue_3061_0nl.cpp
index c228ce46..c228ce46 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34336-Issue_3061_0nl.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34336-Issue_3061_0nl.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34337-Issue_3061_1nl.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34337-Issue_3061_1nl.cpp
index c228ce46..c228ce46 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34337-Issue_3061_1nl.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34337-Issue_3061_1nl.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34338-Issue_3061_2nl.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34338-Issue_3061_2nl.cpp
index c228ce46..c228ce46 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34338-Issue_3061_2nl.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34338-Issue_3061_2nl.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34339-Issue_3061_0nl.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34339-Issue_3061_0nl.cpp
index 7188f0d0..7188f0d0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34339-Issue_3061_0nl.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34339-Issue_3061_0nl.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34340-Issue_3061_1nl.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34340-Issue_3061_1nl.cpp
index 7188f0d0..7188f0d0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34340-Issue_3061_1nl.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34340-Issue_3061_1nl.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34341-Issue_3061_2nl.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34341-Issue_3061_2nl.cpp
index 7188f0d0..7188f0d0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34341-Issue_3061_2nl.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34341-Issue_3061_2nl.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34350-indent_comma_brace_glob.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34350-indent_comma_brace_glob.cpp
index 0e475aa4..0e475aa4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34350-indent_comma_brace_glob.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34350-indent_comma_brace_glob.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34351-indent_comma_brace_func.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34351-indent_comma_brace_func.cpp
index 59b5b996..59b5b996 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34351-indent_comma_brace_func.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34351-indent_comma_brace_func.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34360-nl_before_struct_struct.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34360-nl_before_struct_struct.cpp
index 032a0dfc..032a0dfc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34360-nl_before_struct_struct.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34360-nl_before_struct_struct.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34361-nl_before_struct_scoped_enum.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34361-nl_before_struct_scoped_enum.cpp
index 02ce38f1..02ce38f1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34361-nl_before_struct_scoped_enum.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34361-nl_before_struct_scoped_enum.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34500-sp_before_case_colon.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34500-sp_before_case_colon.cpp
index 54507d64..54507d64 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34500-sp_before_case_colon.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34500-sp_before_case_colon.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34501-sp_endif_cmt.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34501-sp_endif_cmt.cpp
index 9e5b2db8..9e5b2db8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34501-sp_endif_cmt.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34501-sp_endif_cmt.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34502-sp_enum_assign.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34502-sp_enum_assign.cpp
index 62a271a3..62a271a3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34502-sp_enum_assign.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34502-sp_enum_assign.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34503-sp_enum_assign.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34503-sp_enum_assign.cpp
index 2ebab438..2ebab438 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34503-sp_enum_assign.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34503-sp_enum_assign.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34504-issue_574-i.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34504-issue_574-i.cpp
index 3366cc79..3366cc79 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34504-issue_574-i.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34504-issue_574-i.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34505-Issue_3220.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34505-Issue_3220.cpp
index fae042d7..fae042d7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34505-Issue_3220.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34505-Issue_3220.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34506-Issue_3220.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34506-Issue_3220.cpp
index ba42b013..ba42b013 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34506-Issue_3220.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34506-Issue_3220.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34507-Issue_3220.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34507-Issue_3220.cpp
index f9f684b8..f9f684b8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34507-Issue_3220.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34507-Issue_3220.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34508-Issue_3220.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34508-Issue_3220.cpp
index aba03416..aba03416 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34508-Issue_3220.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34508-Issue_3220.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34509-byref-2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34509-byref-2.cpp
index ab1b3a6e..ab1b3a6e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34509-byref-2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34509-byref-2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34510-byref-2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34510-byref-2.cpp
index 0ef61cde..0ef61cde 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34510-byref-2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34510-byref-2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34511-byref-2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34511-byref-2.cpp
index db510335..db510335 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34511-byref-2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34511-byref-2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34512-byref-2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34512-byref-2.cpp
index 099e3c2b..099e3c2b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34512-byref-2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34512-byref-2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34513-sp_cond_question.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34513-sp_cond_question.cpp
index 5f5a9e14..5f5a9e14 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34513-sp_cond_question.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34513-sp_cond_question.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34514-sp_cond_question.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34514-sp_cond_question.cpp
index cec6c827..cec6c827 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34514-sp_cond_question.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34514-sp_cond_question.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34515-sp_cond_question.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34515-sp_cond_question.cpp
index 39997b4a..39997b4a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34515-sp_cond_question.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34515-sp_cond_question.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34516-sp_cond_question.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34516-sp_cond_question.cpp
index c7d79ab9..c7d79ab9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34516-sp_cond_question.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34516-sp_cond_question.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34517-semi.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34517-semi.cpp
index 6c42948f..6c42948f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34517-semi.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34517-semi.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34518-semi.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34518-semi.cpp
index 7c8a711e..7c8a711e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34518-semi.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34518-semi.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34519-semi.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34519-semi.cpp
index 56af135e..56af135e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34519-semi.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34519-semi.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34520-comma.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34520-comma.cpp
index e9b0c428..e9b0c428 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34520-comma.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34520-comma.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34521-comma.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34521-comma.cpp
index e101145a..e101145a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34521-comma.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34521-comma.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34522-comma.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34522-comma.cpp
index bc8ebd4f..bc8ebd4f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34522-comma.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34522-comma.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34523-gcc_case_ellipsis.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34523-gcc_case_ellipsis.cpp
index 1b0b4088..1b0b4088 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34523-gcc_case_ellipsis.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34523-gcc_case_ellipsis.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34524-bug_1002.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34524-bug_1002.cpp
index 713018e4..713018e4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34524-bug_1002.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34524-bug_1002.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34525-sp_paren_brace.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34525-sp_paren_brace.cpp
index febfb72d..febfb72d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34525-sp_paren_brace.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34525-sp_paren_brace.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34526-sp_paren_brace.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34526-sp_paren_brace.cpp
index 4ac73f87..4ac73f87 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34526-sp_paren_brace.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34526-sp_paren_brace.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34527-sp_paren_brace.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34527-sp_paren_brace.cpp
index aa65f644..aa65f644 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34527-sp_paren_brace.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34527-sp_paren_brace.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34528-cmt_trailing_single_line_c_to_cpp.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34528-cmt_trailing_single_line_c_to_cpp.cpp
index 946409b2..946409b2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34528-cmt_trailing_single_line_c_to_cpp.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34528-cmt_trailing_single_line_c_to_cpp.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34529-type_brace_init_lst.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34529-type_brace_init_lst.cpp
index cc79678f..cc79678f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34529-type_brace_init_lst.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34529-type_brace_init_lst.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34530-type_brace_init_lst.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34530-type_brace_init_lst.cpp
index b99238b8..b99238b8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34530-type_brace_init_lst.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34530-type_brace_init_lst.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34531-type_brace_init_lst.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34531-type_brace_init_lst.cpp
index cc79678f..cc79678f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34531-type_brace_init_lst.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34531-type_brace_init_lst.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34532-type_brace_init_lst.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34532-type_brace_init_lst.cpp
index 53e74de2..53e74de2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34532-type_brace_init_lst.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34532-type_brace_init_lst.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34533-templates.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34533-templates.cpp
index 5f3d6f90..5f3d6f90 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34533-templates.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34533-templates.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34534-templates.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34534-templates.cpp
index 9e3f463d..9e3f463d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34534-templates.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34534-templates.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34535-sp_after_angle.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34535-sp_after_angle.cpp
index 18788919..18788919 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34535-sp_after_angle.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34535-sp_after_angle.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34536-sp_after_angle.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34536-sp_after_angle.cpp
index 8764578e..8764578e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34536-sp_after_angle.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34536-sp_after_angle.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34540-byref-4.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34540-byref-4.cpp
new file mode 100644
index 00000000..0fe49c7b
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34540-byref-4.cpp
@@ -0,0 +1,5 @@
+int&(*fn)(int, struct sockaddr&);
+int& (*fn)(int, struct sockaddr&);
+int &(*fn)(int, struct sockaddr&);
+int & (*fn)(int, struct sockaddr&);
+int & (*fn)(int, struct sockaddr&);
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34541-byref-4.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34541-byref-4.cpp
new file mode 100644
index 00000000..779da86b
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34541-byref-4.cpp
@@ -0,0 +1,5 @@
+int& (*fn)(int, struct sockaddr&);
+int& (*fn)(int, struct sockaddr&);
+int & (*fn)(int, struct sockaddr&);
+int & (*fn)(int, struct sockaddr&);
+int & (*fn)(int, struct sockaddr&);
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34542-byref-4.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34542-byref-4.cpp
new file mode 100644
index 00000000..16a7ba9b
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34542-byref-4.cpp
@@ -0,0 +1,5 @@
+int&(*fn)(int, struct sockaddr&);
+int&(*fn)(int, struct sockaddr&);
+int &(*fn)(int, struct sockaddr&);
+int &(*fn)(int, struct sockaddr&);
+int &(*fn)(int, struct sockaddr&);
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34543-byref-4.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34543-byref-4.cpp
new file mode 100644
index 00000000..6bd2e9be
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/34543-byref-4.cpp
@@ -0,0 +1,5 @@
+int& (*fn)(int, struct sockaddr&);
+int& (*fn)(int, struct sockaddr&);
+int & (*fn)(int, struct sockaddr&);
+int & (*fn)(int, struct sockaddr&);
+int & (*fn)(int, struct sockaddr&);
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/39000-UNI-64325.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/39000-UNI-64325.cpp
index c4005d7c..c4005d7c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/39000-UNI-64325.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/39000-UNI-64325.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60001-UNI-2650.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60001-UNI-2650.cpp
index b9ced773..b9ced773 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60001-UNI-2650.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60001-UNI-2650.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60002-UNI-16283.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60002-UNI-16283.cpp
index 7f042642..7f042642 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60002-UNI-16283.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60002-UNI-16283.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60003-UNI-1288.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60003-UNI-1288.cpp
index aece270a..aece270a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60003-UNI-1288.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60003-UNI-1288.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60006-UNI-2049.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60006-UNI-2049.cpp
index 7e47d927..7e47d927 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60006-UNI-2049.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60006-UNI-2049.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60017-UNI-2683.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60017-UNI-2683.cpp
index 734e3999..734e3999 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60017-UNI-2683.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60017-UNI-2683.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60022-UNI-18439.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60022-UNI-18439.cpp
index 8d467c67..8d467c67 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60022-UNI-18439.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60022-UNI-18439.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60025-UNI-19894.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60025-UNI-19894.cpp
index 2d7e481e..2d7e481e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60025-UNI-19894.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60025-UNI-19894.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60027-UNI-21506.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60027-UNI-21506.cpp
index a8c5f2df..a8c5f2df 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60027-UNI-21506.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60027-UNI-21506.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60028-UNI-21509.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60028-UNI-21509.cpp
index bde48ee7..bde48ee7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60028-UNI-21509.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60028-UNI-21509.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60029-UNI-21510.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60029-UNI-21510.cpp
index ea406fbe..ea406fbe 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60029-UNI-21510.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60029-UNI-21510.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60030-UNI-21727.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60030-UNI-21727.cpp
index 991d2631..991d2631 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60030-UNI-21727.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60030-UNI-21727.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60031-UNI-21728.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60031-UNI-21728.cpp
index 658fba68..658fba68 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60031-UNI-21728.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60031-UNI-21728.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60032-UNI-21729.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60032-UNI-21729.cpp
index 4b8d1d59..4b8d1d59 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60032-UNI-21729.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60032-UNI-21729.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60036-UNI-2680.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60036-UNI-2680.cpp
index b6aa5bd7..b6aa5bd7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60036-UNI-2680.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60036-UNI-2680.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60038-UNI-30088.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60038-UNI-30088.cpp
index 1fd5c1fe..1fd5c1fe 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60038-UNI-30088.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60038-UNI-30088.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60039-UNI-30628.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60039-UNI-30628.cpp
index ffa60026..ffa60026 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60039-UNI-30628.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60039-UNI-30628.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60042-UNI-18777.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60042-UNI-18777.cpp
index 0f177fdc..0f177fdc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60042-UNI-18777.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60042-UNI-18777.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60043-i2033.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60043-i2033.cpp
index fd27cf6d..fd27cf6d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60043-i2033.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60043-i2033.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60044-i2116.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60044-i2116.cpp
index af664cd9..af664cd9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60044-i2116.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60044-i2116.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60045-align_asterisk_after_type_cast.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60045-align_asterisk_after_type_cast.cpp
index 364b2a6b..364b2a6b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60045-align_asterisk_after_type_cast.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60045-align_asterisk_after_type_cast.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60046-align_continuation_left_shift.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60046-align_continuation_left_shift.cpp
index c0c066b8..c0c066b8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60046-align_continuation_left_shift.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60046-align_continuation_left_shift.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60047-align_default_after_override.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60047-align_default_after_override.cpp
index 43db090f..43db090f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60047-align_default_after_override.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60047-align_default_after_override.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60048-bug_2322.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60048-bug_2322.cpp
index 50454903..50454903 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60048-bug_2322.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60048-bug_2322.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60049-bug_2402.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60049-bug_2402.cpp
index e483fdc9..e483fdc9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60049-bug_2402.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60049-bug_2402.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60051-bug_2371.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60051-bug_2371.cpp
index f17cec62..f17cec62 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60051-bug_2371.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60051-bug_2371.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60052-bug_2433_1.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60052-bug_2433_1.cpp
index d011d5a1..d011d5a1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60052-bug_2433_1.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60052-bug_2433_1.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60053-bug_2433_2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60053-bug_2433_2.cpp
index 600efc82..600efc82 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60053-bug_2433_2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60053-bug_2433_2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60054-interface-keyword-in-cpp.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60054-interface-keyword-in-cpp.cpp
index ed92e698..ed92e698 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60054-interface-keyword-in-cpp.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60054-interface-keyword-in-cpp.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60055-issue_3116.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60055-issue_3116.cpp
index 44ec3a5f..44ec3a5f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60055-issue_3116.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60055-issue_3116.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60056-issue_3116-2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60056-issue_3116-2.cpp
index dded453c..dded453c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60056-issue_3116-2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60056-issue_3116-2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60057-issue_3116.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60057-issue_3116.cpp
index 991c46bd..991c46bd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60057-issue_3116.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60057-issue_3116.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60058-issue_3330.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60058-issue_3330.cpp
index 37062480..37062480 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60058-issue_3330.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60058-issue_3330.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60059-indent_ctor_init.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60059-indent_ctor_init.cpp
index f1b32d0e..f1b32d0e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60059-indent_ctor_init.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60059-indent_ctor_init.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60060-returns.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60060-returns.cpp
index 21013963..21013963 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60060-returns.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60060-returns.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60061-returns.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60061-returns.cpp
index bd199ba8..bd199ba8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60061-returns.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60061-returns.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60062-returns.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60062-returns.cpp
index 1085bd72..1085bd72 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60062-returns.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60062-returns.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60063-returns.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60063-returns.cpp
index bd199ba8..bd199ba8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60063-returns.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60063-returns.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60064-issue_3368.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60064-issue_3368.cpp
index 2158086c..2158086c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60064-issue_3368.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60064-issue_3368.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60065-issue_3378.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60065-issue_3378.cpp
index 8da9261d..8da9261d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60065-issue_3378.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60065-issue_3378.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60066-Issue_3409.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60066-Issue_3409.cpp
new file mode 100644
index 00000000..969275dc
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60066-Issue_3409.cpp
@@ -0,0 +1,8 @@
+namespace ns1 {
+namespace ns2 {
+const auto lamb = []() -> int
+{
+ return 42;
+};
+}
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60067-Issue_3283.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60067-Issue_3283.cpp
new file mode 100644
index 00000000..9357b3b3
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60067-Issue_3283.cpp
@@ -0,0 +1,3 @@
+#define MACRO(a) if(!x) x=a;
+#define MACRO(a) {if(!x) {x=a;}}
+#define MACRO(a) {if(!x) x=a;}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60068-Issue_3428.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60068-Issue_3428.cpp
new file mode 100644
index 00000000..bf1dc20b
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60068-Issue_3428.cpp
@@ -0,0 +1,57 @@
+void main()
+{
+ if(aaaa)
+ {
+ it = std::find_if(
+ bbbb.begin(),
+ bbbb.end(),
+ [&cccc](const auto& dddd)
+ {
+ return (eeee.ffff == iiii && !jjjj.kkkk);
+ }
+ );
+ }
+}
+
+namespace ns1 {
+
+void one()
+{
+ if(aaaa)
+ {
+ it = std::find_if(
+ bbbb.begin(),
+ bbbb.end(),
+ [&cccc](const auto& dddd)
+ {
+ return (eeee.ffff == iiii && !jjjj.kkkk);
+ }
+ );
+ }
+}
+
+namespace ns2 {
+namespace ns3 {
+const auto lamb = []() -> int
+{
+ return 42;
+};
+
+void two()
+{
+ if(aaaa)
+ {
+ it = std::find_if(
+ bbbb.begin(),
+ bbbb.end(),
+ [&cccc](const auto& dddd)
+ {
+ return (eeee.ffff == iiii && !jjjj.kkkk);
+ }
+ );
+ }
+}
+
+}
+}
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60069-Issue_3428.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60069-Issue_3428.cpp
new file mode 100644
index 00000000..9b95f451
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60069-Issue_3428.cpp
@@ -0,0 +1,57 @@
+void main()
+{
+ if(aaaa)
+ {
+ it = std::find_if(
+ bbbb.begin(),
+ bbbb.end(),
+ [&cccc](const auto& dddd)
+ {
+ return (eeee.ffff == iiii && !jjjj.kkkk);
+ }
+ );
+ }
+}
+
+namespace ns1 {
+
+ void one()
+ {
+ if(aaaa)
+ {
+ it = std::find_if(
+ bbbb.begin(),
+ bbbb.end(),
+ [&cccc](const auto& dddd)
+ {
+ return (eeee.ffff == iiii && !jjjj.kkkk);
+ }
+ );
+ }
+ }
+
+ namespace ns2 {
+ namespace ns3 {
+ const auto lamb = []() -> int
+ {
+ return 42;
+ };
+
+ void two()
+ {
+ if(aaaa)
+ {
+ it = std::find_if(
+ bbbb.begin(),
+ bbbb.end(),
+ [&cccc](const auto& dddd)
+ {
+ return (eeee.ffff == iiii && !jjjj.kkkk);
+ }
+ );
+ }
+ }
+
+ }
+ }
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60070-Issue_3428.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60070-Issue_3428.cpp
new file mode 100644
index 00000000..fbd35533
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60070-Issue_3428.cpp
@@ -0,0 +1,57 @@
+void main()
+{
+ if(aaaa)
+ {
+ it = std::find_if(
+ bbbb.begin(),
+ bbbb.end(),
+ [&cccc](const auto& dddd)
+ {
+ return (eeee.ffff == iiii && !jjjj.kkkk);
+ }
+ );
+ }
+}
+
+namespace ns1 {
+
+ void one()
+ {
+ if(aaaa)
+ {
+ it = std::find_if(
+ bbbb.begin(),
+ bbbb.end(),
+ [&cccc](const auto& dddd)
+ {
+ return (eeee.ffff == iiii && !jjjj.kkkk);
+ }
+ );
+ }
+ }
+
+namespace ns2 {
+namespace ns3 {
+ const auto lamb = []() -> int
+ {
+ return 42;
+ };
+
+ void two()
+ {
+ if(aaaa)
+ {
+ it = std::find_if(
+ bbbb.begin(),
+ bbbb.end(),
+ [&cccc](const auto& dddd)
+ {
+ return (eeee.ffff == iiii && !jjjj.kkkk);
+ }
+ );
+ }
+ }
+
+}
+}
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60071-Issue_3428.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60071-Issue_3428.cpp
new file mode 100644
index 00000000..bf1dc20b
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60071-Issue_3428.cpp
@@ -0,0 +1,57 @@
+void main()
+{
+ if(aaaa)
+ {
+ it = std::find_if(
+ bbbb.begin(),
+ bbbb.end(),
+ [&cccc](const auto& dddd)
+ {
+ return (eeee.ffff == iiii && !jjjj.kkkk);
+ }
+ );
+ }
+}
+
+namespace ns1 {
+
+void one()
+{
+ if(aaaa)
+ {
+ it = std::find_if(
+ bbbb.begin(),
+ bbbb.end(),
+ [&cccc](const auto& dddd)
+ {
+ return (eeee.ffff == iiii && !jjjj.kkkk);
+ }
+ );
+ }
+}
+
+namespace ns2 {
+namespace ns3 {
+const auto lamb = []() -> int
+{
+ return 42;
+};
+
+void two()
+{
+ if(aaaa)
+ {
+ it = std::find_if(
+ bbbb.begin(),
+ bbbb.end(),
+ [&cccc](const auto& dddd)
+ {
+ return (eeee.ffff == iiii && !jjjj.kkkk);
+ }
+ );
+ }
+}
+
+}
+}
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60072-Issue_3428.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60072-Issue_3428.cpp
new file mode 100644
index 00000000..9b95f451
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60072-Issue_3428.cpp
@@ -0,0 +1,57 @@
+void main()
+{
+ if(aaaa)
+ {
+ it = std::find_if(
+ bbbb.begin(),
+ bbbb.end(),
+ [&cccc](const auto& dddd)
+ {
+ return (eeee.ffff == iiii && !jjjj.kkkk);
+ }
+ );
+ }
+}
+
+namespace ns1 {
+
+ void one()
+ {
+ if(aaaa)
+ {
+ it = std::find_if(
+ bbbb.begin(),
+ bbbb.end(),
+ [&cccc](const auto& dddd)
+ {
+ return (eeee.ffff == iiii && !jjjj.kkkk);
+ }
+ );
+ }
+ }
+
+ namespace ns2 {
+ namespace ns3 {
+ const auto lamb = []() -> int
+ {
+ return 42;
+ };
+
+ void two()
+ {
+ if(aaaa)
+ {
+ it = std::find_if(
+ bbbb.begin(),
+ bbbb.end(),
+ [&cccc](const auto& dddd)
+ {
+ return (eeee.ffff == iiii && !jjjj.kkkk);
+ }
+ );
+ }
+ }
+
+ }
+ }
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60073-Issue_3428.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60073-Issue_3428.cpp
new file mode 100644
index 00000000..fbd35533
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60073-Issue_3428.cpp
@@ -0,0 +1,57 @@
+void main()
+{
+ if(aaaa)
+ {
+ it = std::find_if(
+ bbbb.begin(),
+ bbbb.end(),
+ [&cccc](const auto& dddd)
+ {
+ return (eeee.ffff == iiii && !jjjj.kkkk);
+ }
+ );
+ }
+}
+
+namespace ns1 {
+
+ void one()
+ {
+ if(aaaa)
+ {
+ it = std::find_if(
+ bbbb.begin(),
+ bbbb.end(),
+ [&cccc](const auto& dddd)
+ {
+ return (eeee.ffff == iiii && !jjjj.kkkk);
+ }
+ );
+ }
+ }
+
+namespace ns2 {
+namespace ns3 {
+ const auto lamb = []() -> int
+ {
+ return 42;
+ };
+
+ void two()
+ {
+ if(aaaa)
+ {
+ it = std::find_if(
+ bbbb.begin(),
+ bbbb.end(),
+ [&cccc](const auto& dddd)
+ {
+ return (eeee.ffff == iiii && !jjjj.kkkk);
+ }
+ );
+ }
+ }
+
+}
+}
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60074-Issue_3284.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60074-Issue_3284.cpp
new file mode 100644
index 00000000..cea9091e
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60074-Issue_3284.cpp
@@ -0,0 +1,5 @@
+Node( const Node &rhs ) = delete;
+Node &operator=( const Node &rhs ) = delete;
+
+Node( Node &&rhs ) noexcept = delete;
+Node &operator=( Node &&rhs ) noexcept = delete;
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60075-Issue_3294.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60075-Issue_3294.cpp
new file mode 100644
index 00000000..4f0718cc
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60075-Issue_3294.cpp
@@ -0,0 +1,17 @@
+#include <vector>
+
+std::vector<int> x;
+
+void f1()
+{
+ int v = x.empty()
+ /**/ ? x.size()
+ /**/ : x.size();
+}
+
+void f2()
+{
+ int v = x.empty()
+ ? x.size()
+ : x.size();
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60076-indent_ctor_init.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60076-indent_ctor_init.cpp
new file mode 100644
index 00000000..872961ce
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60076-indent_ctor_init.cpp
@@ -0,0 +1,13 @@
+struct MyClass : public Foo,
+ private Bar {
+ MyClass(int a, int b, int c)
+ : m_a(a), m_b(b),
+ m_c(c) {
+ }
+private:
+ int m_a, m_b, m_c;
+};
+
+struct TheirClass
+: public Foo,
+ private Bar {};
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60077-indent_ctor_init.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60077-indent_ctor_init.cpp
new file mode 100644
index 00000000..acf8c268
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60077-indent_ctor_init.cpp
@@ -0,0 +1,13 @@
+struct MyClass : public Foo,
+ private Bar {
+ MyClass(int a, int b, int c)
+ : m_a(a), m_b(b),
+ m_c(c) {
+ }
+private:
+ int m_a, m_b, m_c;
+};
+
+struct TheirClass
+ : public Foo,
+ private Bar {};
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60078-Issue_3505.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60078-Issue_3505.cpp
new file mode 100644
index 00000000..f3225f96
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60078-Issue_3505.cpp
@@ -0,0 +1,7 @@
+class Spaceship
+{
+Spaceship(int a,
+ int b);
+void init(int a,
+ int b);
+};
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60079-Issue_3536.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60079-Issue_3536.cpp
new file mode 100644
index 00000000..83f3e7d6
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60079-Issue_3536.cpp
@@ -0,0 +1,32 @@
+struct S {};
+class C {};
+
+void processStruct0(
+ struct S s,
+ int i
+ );
+
+void processClass0(
+ class C c,
+ int i
+ );
+
+void processStruct1(
+ struct S s,
+ int i
+ );
+
+void processClass1(
+ class C c,
+ int i
+ );
+
+void processStruct2(
+ struct S s,
+ int i
+ );
+
+void processClass2(
+ class C c,
+ int i
+ );
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60080-Issue_3538.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60080-Issue_3538.cpp
new file mode 100644
index 00000000..bd60ace7
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60080-Issue_3538.cpp
@@ -0,0 +1,13 @@
+class Alpha {};
+
+class Beta
+{
+public:
+Beta(class Alpha alpha) : _alpha(alpha) {
+}
+
+void init();
+
+private:
+class Alpha _alpha;
+};
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60081-Issue_3546.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60081-Issue_3546.cpp
new file mode 100644
index 00000000..40131205
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60081-Issue_3546.cpp
@@ -0,0 +1,28 @@
+#include <stdio.h>
+
+class
+ alignas(32)
+ Foobar;
+
+int main()
+{
+ typedef
+ int
+ int32;
+ int foo,
+ bar,
+ baz;
+ foo = 5
+ + 6
+ + 7;
+ if (printf("%d %d",
+ 5
+ + 6,
+ 7)
+ < 0)
+ {
+ return 1;
+ }
+
+ return 0;
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60082-Issue_3552.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60082-Issue_3552.cpp
new file mode 100644
index 00000000..73c2e77e
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60082-Issue_3552.cpp
@@ -0,0 +1,9 @@
+namespace Salads
+{
+ class
+ Waldorf
+ {
+ public:
+ int size;
+ };
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60083-Issue_3570.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60083-Issue_3570.h
new file mode 100644
index 00000000..a1a2fb26
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60083-Issue_3570.h
@@ -0,0 +1,25 @@
+class Foo
+{
+public:
+ Foo
+ (
+ )
+ {
+ }
+
+ Foo
+ (
+ int x
+ );
+
+ void init
+ (
+ )
+ {
+ }
+
+ void init
+ (
+ int x
+ );
+};
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60084-Issue_3576.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60084-Issue_3576.h
new file mode 100644
index 00000000..9fceffe8
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60084-Issue_3576.h
@@ -0,0 +1,9 @@
+class Foo : public Bar
+{
+public:
+void doIt
+ (
+ )
+{
+}
+};
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60085-Issue_3576.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60085-Issue_3576.h
new file mode 100644
index 00000000..9fceffe8
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60085-Issue_3576.h
@@ -0,0 +1,9 @@
+class Foo : public Bar
+{
+public:
+void doIt
+ (
+ )
+{
+}
+};
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60086-indent_namespace_inner_only.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60086-indent_namespace_inner_only.h
new file mode 100644
index 00000000..32668ed3
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cpp/60086-indent_namespace_inner_only.h
@@ -0,0 +1,8 @@
+namespace out
+{
+int i;
+namespace in
+{
+ int i;
+}
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10000-simple.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10000-simple.cs
index 36cedfa2..36cedfa2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10000-simple.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10000-simple.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10001-getset.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10001-getset.cs
index 756170b6..756170b6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10001-getset.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10001-getset.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10002-simple.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10002-simple.cs
index f8344b26..f8344b26 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10002-simple.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10002-simple.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10003-region.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10003-region.cs
index 2ada63e7..2ada63e7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10003-region.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10003-region.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10010-var-member.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10010-var-member.cs
index 0da0b9f5..0da0b9f5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10010-var-member.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10010-var-member.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10011-strings.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10011-strings.cs
index 6794e762..6794e762 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10011-strings.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10011-strings.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10012-621_this-spacing.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10012-621_this-spacing.cs
index bd28a5e8..bd28a5e8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10012-621_this-spacing.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10012-621_this-spacing.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10013-625_where-constraints.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10013-625_where-constraints.cs
index 123109b0..123109b0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10013-625_where-constraints.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10013-625_where-constraints.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10014-630_bad-new-init-semicolon-removal.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10014-630_bad-new-init-semicolon-removal.cs
index 2e6d5a98..2e6d5a98 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10014-630_bad-new-init-semicolon-removal.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10014-630_bad-new-init-semicolon-removal.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10015-misc-failures.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10015-misc-failures.cs
index e7022083..e7022083 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10015-misc-failures.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10015-misc-failures.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10016-new-constraint-paren-space.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10016-new-constraint-paren-space.cs
index a337a447..a337a447 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10016-new-constraint-paren-space.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10016-new-constraint-paren-space.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10020-region.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10020-region.cs
index b2f57ece..b2f57ece 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10020-region.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10020-region.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10021-region.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10021-region.cs
index 926e467d..926e467d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10021-region.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10021-region.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10022-region.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10022-region.cs
index 9628d4fd..9628d4fd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10022-region.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10022-region.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10023-region.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10023-region.cs
index e21c467c..e21c467c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10023-region.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10023-region.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10027-oneline_property.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10027-oneline_property.cs
index e4470be2..e4470be2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10027-oneline_property.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10027-oneline_property.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10028-ifcolalign.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10028-ifcolalign.cs
index 13df0440..13df0440 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10028-ifcolalign.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10028-ifcolalign.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10029-when.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10029-when.cs
index 4480f618..4480f618 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10029-when.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10029-when.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10030-sort_using.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10030-sort_using.cs
index 99e802c1..99e802c1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10030-sort_using.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10030-sort_using.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10031-bug_i_935.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10031-bug_i_935.cs
index c45eb79d..c45eb79d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10031-bug_i_935.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10031-bug_i_935.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10032-sort_using_categ.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10032-sort_using_categ.cs
index ec997fc9..ec997fc9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10032-sort_using_categ.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10032-sort_using_categ.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10039-615_nested-usings.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10039-615_nested-usings.cs
index d46108bd..d46108bd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10039-615_nested-usings.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10039-615_nested-usings.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10040-tcf.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10040-tcf.cs
index 009f269e..009f269e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10040-tcf.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10040-tcf.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10041-gs.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10041-gs.cs
index ba9f873e..ba9f873e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10041-gs.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10041-gs.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10042-exception-filters.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10042-exception-filters.cs
index d638d9a8..d638d9a8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10042-exception-filters.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10042-exception-filters.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10044-ifcomment.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10044-ifcomment.cs
index 2c3ab0fc..2c3ab0fc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10044-ifcomment.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10044-ifcomment.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10045-UNI-1288.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10045-UNI-1288.cs
index 03d60f5b..03d60f5b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10045-UNI-1288.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10045-UNI-1288.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10050-generics.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10050-generics.cs
index 74e49ecd..74e49ecd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10050-generics.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10050-generics.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10051-UNI-1338.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10051-UNI-1338.cs
index 3f3d9d06..3f3d9d06 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10051-UNI-1338.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10051-UNI-1338.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10055-UNI-1345.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10055-UNI-1345.cs
index 13f61127..13f61127 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10055-UNI-1345.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10055-UNI-1345.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10060-unsafe.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10060-unsafe.cs
index fdfdd67b..fdfdd67b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10060-unsafe.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10060-unsafe.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10065-UNI-1975.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10065-UNI-1975.cs
index 1d2f2659..1d2f2659 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10065-UNI-1975.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10065-UNI-1975.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10066-UNI-1977.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10066-UNI-1977.cs
index 94b929c4..94b929c4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10066-UNI-1977.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10066-UNI-1977.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10067-UNI-1978.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10067-UNI-1978.cs
index 5f55cb2f..5f55cb2f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10067-UNI-1978.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10067-UNI-1978.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10070-utf16le.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10070-utf16le.cs
index c017f6c3..c017f6c3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10070-utf16le.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10070-utf16le.cs
Binary files differ
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10071-utf16be.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10071-utf16be.cs
index d9f54e37..d9f54e37 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10071-utf16be.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10071-utf16be.cs
Binary files differ
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10072-utf16le_no_bom.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10072-utf16le_no_bom.cs
index c017f6c3..c017f6c3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10072-utf16le_no_bom.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10072-utf16le_no_bom.cs
Binary files differ
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10073-utf16be_no_bom.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10073-utf16be_no_bom.cs
index d9f54e37..d9f54e37 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10073-utf16be_no_bom.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10073-utf16be_no_bom.cs
Binary files differ
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10074-UNI-2020.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10074-UNI-2020.cs
index 854a3655..854a3655 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10074-UNI-2020.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10074-UNI-2020.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10075-UNI-2021.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10075-UNI-2021.cs
index b0ec0414..b0ec0414 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10075-UNI-2021.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10075-UNI-2021.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10076-UNI-1343.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10076-UNI-1343.cs
index 076e338d..076e338d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10076-UNI-1343.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10076-UNI-1343.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10077-UNI-1919.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10077-UNI-1919.cs
index cc8e8420..cc8e8420 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10077-UNI-1919.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10077-UNI-1919.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10078-UNI-3484.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10078-UNI-3484.cs
index d7e4f26a..d7e4f26a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10078-UNI-3484.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10078-UNI-3484.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10080-property.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10080-property.cs
index 98d3c21c..98d3c21c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10080-property.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10080-property.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10090-string_multi.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10090-string_multi.cs
index 7d006dce..7d006dce 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10090-string_multi.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10090-string_multi.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10100-bug_600.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10100-bug_600.cs
index 54c24643..54c24643 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10100-bug_600.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10100-bug_600.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10101-sf607.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10101-sf607.cs
index 3207e6c5..3207e6c5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10101-sf607.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10101-sf607.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10103-UNI-2506.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10103-UNI-2506.cs
index 8cd07962..8cd07962 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10103-UNI-2506.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10103-UNI-2506.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10104-UNI-2505.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10104-UNI-2505.cs
index a17e6a5e..a17e6a5e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10104-UNI-2505.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10104-UNI-2505.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10110-mdarray_space.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10110-mdarray_space.cs
index 8c328f5e..8c328f5e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10110-mdarray_space.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10110-mdarray_space.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10111-mdarray_space.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10111-mdarray_space.cs
index 56aa58ce..56aa58ce 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10111-mdarray_space.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10111-mdarray_space.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10112-mdarray_space.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10112-mdarray_space.cs
index ab877b8e..ab877b8e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10112-mdarray_space.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10112-mdarray_space.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10119-preserveTabs.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10119-preserveTabs.cs
index c9583dcd..c9583dcd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10119-preserveTabs.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10119-preserveTabs.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10120-cmt_backslash_eol.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10120-cmt_backslash_eol.cs
index e56aec25..e56aec25 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10120-cmt_backslash_eol.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10120-cmt_backslash_eol.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10130-sp_between_new_paren.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10130-sp_between_new_paren.cs
index fd706ffa..fd706ffa 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10130-sp_between_new_paren.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10130-sp_between_new_paren.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10140-remove_semi.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10140-remove_semi.cs
index 3ee1926e..3ee1926e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10140-remove_semi.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10140-remove_semi.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10150-operator-null-conditional.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10150-operator-null-conditional.cs
index 61ac6d74..61ac6d74 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10150-operator-null-conditional.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10150-operator-null-conditional.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10151-operator_null-coalescing-assignment.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10151-operator_null-coalescing-assignment.cs
index 416e6afc..416e6afc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10151-operator_null-coalescing-assignment.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10151-operator_null-coalescing-assignment.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10160-delegate.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10160-delegate.cs
index 6296ad80..6296ad80 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10160-delegate.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10160-delegate.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10161-delegate.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10161-delegate.cs
index 152fba2b..152fba2b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10161-delegate.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10161-delegate.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10200-logger.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10200-logger.cs
index defede8a..defede8a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10200-logger.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10200-logger.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10300-1822.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10300-1822.cs
index 92b5fd5b..92b5fd5b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10300-1822.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10300-1822.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10628-sf628.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10628-sf628.cs
index 54d3c52c..54d3c52c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10628-sf628.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/10628-sf628.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/11011-620_getset-brace.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/11011-620_getset-brace.cs
index d4652c5f..d4652c5f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/11011-620_getset-brace.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/11011-620_getset-brace.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/11072-UNI-2007.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/11072-UNI-2007.cs
index 29e53f26..29e53f26 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/11072-UNI-2007.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/11072-UNI-2007.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/11073-UNI-2008.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/11073-UNI-2008.cs
index a4de3475..a4de3475 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/11073-UNI-2008.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/11073-UNI-2008.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12001-bug_620.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/12001-bug_620.cs
index 56e9b8bc..56e9b8bc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12001-bug_620.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/12001-bug_620.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12002-nullable_prop.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/12002-nullable_prop.cs
index 21c4f7b0..21c4f7b0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12002-nullable_prop.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/12002-nullable_prop.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12003-fncall_as_ctor_in_attr.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/12003-fncall_as_ctor_in_attr.cs
index 3dab10f6..3dab10f6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12003-fncall_as_ctor_in_attr.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/12003-fncall_as_ctor_in_attr.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12004-verbatim_strings.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/12004-verbatim_strings.cs
index 73fa1bf0..73fa1bf0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12004-verbatim_strings.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/12004-verbatim_strings.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12005-bug_1591.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/12005-bug_1591.cs
index ac62df9e..ac62df9e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12005-bug_1591.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/12005-bug_1591.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12101-bug_i_679.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/12101-bug_i_679.cs
index 199ad7e6..199ad7e6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12101-bug_i_679.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/12101-bug_i_679.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12102-mod_full_brace_nl_block_rem_mlcond.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/12102-mod_full_brace_nl_block_rem_mlcond.cs
index e6e0eede..e6e0eede 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12102-mod_full_brace_nl_block_rem_mlcond.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/12102-mod_full_brace_nl_block_rem_mlcond.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12103-mod_full_brace_nl_block_rem_mlcond.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/12103-mod_full_brace_nl_block_rem_mlcond.cs
index 8ecd4051..8ecd4051 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12103-mod_full_brace_nl_block_rem_mlcond.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/12103-mod_full_brace_nl_block_rem_mlcond.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12104-bug_1637.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/12104-bug_1637.cs
index 9ffe19e7..9ffe19e7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12104-bug_1637.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/12104-bug_1637.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12105-bug_1650.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/12105-bug_1650.cs
index 869a9d0f..869a9d0f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12105-bug_1650.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/12105-bug_1650.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12106-UNI-40685.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/12106-UNI-40685.cs
index 9b70920e..9b70920e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12106-UNI-40685.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/12106-UNI-40685.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12107-mod_full_paren_if_bool.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/12107-mod_full_paren_if_bool.cs
index 6bcd9201..6bcd9201 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12107-mod_full_paren_if_bool.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/12107-mod_full_paren_if_bool.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12108-Issue_2705.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/12108-Issue_2705.cs
index 08619bb1..08619bb1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12108-Issue_2705.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/12108-Issue_2705.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12200-comma.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/12200-comma.cs
index 34ccfdd8..34ccfdd8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12200-comma.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/12200-comma.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12201-comma.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/12201-comma.cs
index 794410f0..794410f0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12201-comma.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/12201-comma.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12202-comma.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/12202-comma.cs
index 29ab2c3e..29ab2c3e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12202-comma.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/12202-comma.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/19000-UNI-58354.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/19000-UNI-58354.cs
index 6c77de40..6c77de40 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/19000-UNI-58354.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/19000-UNI-58354.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/20010-UNI-32658.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/20010-UNI-32658.cs
index 145da65f..145da65f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/20010-UNI-32658.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/20010-UNI-32658.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/20011-bug_1620.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/20011-bug_1620.cs
index 3b837292..3b837292 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/20011-bug_1620.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/20011-bug_1620.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60004-UNI-2684.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60004-UNI-2684.cs
index ff0b31f1..ff0b31f1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60004-UNI-2684.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60004-UNI-2684.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60005-UNI-2685.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60005-UNI-2685.cs
index ec671dd4..ec671dd4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60005-UNI-2685.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60005-UNI-2685.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60007-UNI-3083.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60007-UNI-3083.cs
index 5209dc72..5209dc72 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60007-UNI-3083.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60007-UNI-3083.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60008-UNI-17253.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60008-UNI-17253.cs
index 9021a372..9021a372 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60008-UNI-17253.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60008-UNI-17253.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60009-UNI-9917.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60009-UNI-9917.cs
index 5e352d10..5e352d10 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60009-UNI-9917.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60009-UNI-9917.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60012-UNI-12303.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60012-UNI-12303.cs
index 01be8291..01be8291 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60012-UNI-12303.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60012-UNI-12303.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60013-UNI-13955.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60013-UNI-13955.cs
index 940aa89b..940aa89b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60013-UNI-13955.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60013-UNI-13955.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60015-UNI-14131.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60015-UNI-14131.cs
index 9656bee8..9656bee8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60015-UNI-14131.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60015-UNI-14131.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60016-UNI-11662.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60016-UNI-11662.cs
index 9a49fdba..9a49fdba 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60016-UNI-11662.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60016-UNI-11662.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60018-UNI-18777.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60018-UNI-18777.cs
index 198d5be3..198d5be3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60018-UNI-18777.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60018-UNI-18777.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60019-UNI-18780.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60019-UNI-18780.cs
index 0eea713e..0eea713e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60019-UNI-18780.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60019-UNI-18780.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60020-UNI-18829.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60020-UNI-18829.cs
index a72ca87b..a72ca87b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60020-UNI-18829.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60020-UNI-18829.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60023-UNI-18437.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60023-UNI-18437.cs
index d8178e73..d8178e73 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60023-UNI-18437.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60023-UNI-18437.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60024-UNI-19644.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60024-UNI-19644.cs
index eb0d4c9c..eb0d4c9c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60024-UNI-19644.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60024-UNI-19644.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60026-UNI-19895.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60026-UNI-19895.cs
index 1fedd580..1fedd580 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60026-UNI-19895.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60026-UNI-19895.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60033-UNI-21730.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60033-UNI-21730.cs
index 6fcb8c16..6fcb8c16 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60033-UNI-21730.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60033-UNI-21730.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60036-UNI-11993.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60036-UNI-11993.cs
index bf703537..bf703537 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60036-UNI-11993.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60036-UNI-11993.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60037-UNI-29933.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60037-UNI-29933.cs
index 943cbf35..943cbf35 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60037-UNI-29933.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60037-UNI-29933.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60040-UNI-30498_2.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60040-UNI-30498_2.cs
index 445a7c97..445a7c97 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60040-UNI-30498_2.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60040-UNI-30498_2.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60041-squeeze-paren-close-Option.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60041-squeeze-paren-close-Option.cs
index 2fc371c3..2fc371c3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60041-squeeze-paren-close-Option.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60041-squeeze-paren-close-Option.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60042-indent-multistring-coulmn1.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60042-indent-multistring-coulmn1.cs
index 4f66d541..4f66d541 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60042-indent-multistring-coulmn1.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60042-indent-multistring-coulmn1.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60044-UNI-37241.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60044-UNI-37241.cs
index 57d4ffeb..57d4ffeb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60044-UNI-37241.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60044-UNI-37241.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60045-add-nl-before-namespace.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60045-add-nl-before-namespace.cs
index d9840704..d9840704 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60045-add-nl-before-namespace.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60045-add-nl-before-namespace.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60046-cast.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60046-cast.cs
new file mode 100644
index 00000000..6c5d11db
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/cs/60046-cast.cs
@@ -0,0 +1,7 @@
+foo = (Type) bar;
+
+foo = (Ns.Type) bar;
+
+foo = (Type<int>) bar;
+
+foo = (Type<int, int>) bar;
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40000-HashMap.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40000-HashMap.d
new file mode 100644
index 00000000..80b26e1d
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40000-HashMap.d
@@ -0,0 +1,1106 @@
+/*******************************************************************************
+
+ @file HashMap.d
+
+ This software is provided 'as-is', without any express or implied
+ warranty. In no event will the authors be held liable for damages
+ of any kind arising from the use of this software.
+
+ Permission is hereby granted to anyone to use this software for any
+ purpose, including commercial applications, and to alter it and/or
+ redistribute it freely, subject to the following restrictions:
+
+ 1. The origin of this software must not be misrepresented; you must
+ not claim that you wrote the original software. If you use this
+ software in a product, an acknowledgment within documentation of
+ said product would be appreciated but is not required.
+
+ 2. Altered source versions must be plainly marked as such, and must
+ not be misrepresented as being the original software.
+
+ 3. This notice may not be removed or altered from any distribution
+ of the source.
+
+ 4. Derivative works are permitted, but they must carry this notice
+ in full and credit the original source.
+
+
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+ Written by Doug Lea with assistance from members of JCP JSR-166
+ Expert Group and released to the public domain, as explained at
+ http://creativecommons.org/licenses/publicdomain
+
+ @version Initial version, July 2004
+ @author Doug Lea; ported/modified by Kris
+
+*******************************************************************************/
+
+module mango.cache.HashMap;
+
+/******************************************************************************
+
+******************************************************************************/
+
+extern (C)
+{
+int memcmp(char *, char *, uint);
+}
+
+
+/**
+ * A hash table supporting full concurrency of retrievals and
+ * adjustable expected concurrency for updates. This class obeys the
+ * same functional specification as {@link java.util.Hashtable}, and
+ * includes versions of methods corresponding to each method of
+ * <tt>Hashtable</tt>. However, even though all operations are
+ * thread-safe, retrieval operations do <em>not</em> entail locking,
+ * and there is <em>not</em> any support for locking the entire table
+ * in a way that prevents all access. This class is fully
+ * interoperable with <tt>Hashtable</tt> in programs that rely on its
+ * thread safety but not on its synchronization details.
+ *
+ * <p> Retrieval operations (including <tt>get</tt>) generally do not
+ * block, so may overlap with update operations (including
+ * <tt>put</tt> and <tt>remove</tt>). Retrievals reflect the results
+ * of the most recently <em>completed</em> update operations holding
+ * upon their onset. For aggregate operations such as <tt>putAll</tt>
+ * and <tt>clear</tt>, concurrent retrievals may reflect insertion or
+ * removal of only some entries. Similarly, Iterators and
+ * Enumerations return elements reflecting the state of the hash table
+ * at some point at or since the creation of the iterator/enumeration.
+ * They do <em>not</em> throw
+ * {@link ConcurrentModificationException}. However, iterators are
+ * designed to be used by only one thread at a time.
+ *
+ * <p> The allowed concurrency among update operations is guided by
+ * the optional <tt>concurrencyLevel</tt> constructor argument
+ * (default 16), which is used as a hint for internal sizing. The
+ * table is internally partitioned to try to permit the indicated
+ * number of concurrent updates without contention. Because placement
+ * in hash tables is essentially random, the actual concurrency will
+ * vary. Ideally, you should choose a value to accommodate as many
+ * threads as will ever concurrently modify the table. Using a
+ * significantly higher value than you need can waste space and time,
+ * and a significantly lower value can lead to thread contention. But
+ * overestimates and underestimates within an order of magnitude do
+ * not usually have much noticeable impact. A value of one is
+ * appropriate when it is known that only one thread will modify and
+ * all others will only read. Also, resizing this or any other kind of
+ * hash table is a relatively slow operation, so, when possible, it is
+ * a good idea to provide estimates of expected table sizes in
+ * constructors.
+ *
+ * <p>This class and its views and iterators implement all of the
+ * <em>optional</em> methods of the {@link Map} and {@link Iterator}
+ * interfaces.
+ *
+ * <p> Like {@link java.util.Hashtable} but unlike {@link
+ * java.util.HashMap}, this class does NOT allow <tt>null</tt> to be
+ * used as a key or value.
+ *
+ * <p>This class is a member of the
+ * <a href="{@docRoot}/../guide/collections/index.html">
+ * Java Collections Framework</a>.
+ *
+ * @since 1.5
+ * @author Doug Lea
+ * @param <K> the type of keys maintained by this map
+ * @param <V> the type of mapped values
+ */
+
+class HashMap
+{
+ alias void[] K;
+ alias Object V;
+ alias jhash hash; // jhash, fnv, or walter
+
+ /*
+ * The basic strategy is to subdivide the table among Segments,
+ * each of which itself is a concurrently readable hash table.
+ */
+
+ /* ---------------- Constants -------------- */
+
+ /**
+ * The default initial number of table slots for this table.
+ * Used when not otherwise specified in constructor.
+ */
+ private const uint DEFAULT_INITIAL_CAPACITY = 16;
+
+ /**
+ * The maximum capacity, used if a higher value is implicitly
+ * specified by either of the constructors with arguments. MUST
+ * be a power of two <= 1<<30 to ensure that entries are indexible
+ * using ints.
+ */
+ private const uint MAXIMUM_CAPACITY = 1 << 30;
+
+ /**
+ * The default load factor for this table. Used when not
+ * otherwise specified in constructor.
+ */
+ private const float DEFAULT_LOAD_FACTOR = 0.75f;
+
+ /**
+ * The default number of concurrency control segments.
+ **/
+ private const uint DEFAULT_SEGMENTS = 16;
+
+ /**
+ * The maximum number of segments to allow; used to bound
+ * constructor arguments.
+ */
+ private const uint MAX_SEGMENTS = 1 << 16; // slightly conservative
+
+
+ /* ---------------- Fields -------------- */
+
+ /**
+ * Mask value for indexing into segments. The upper bits of a
+ * key's hash code are used to choose the segment.
+ **/
+ private final int segmentMask;
+
+ /**
+ * Shift value for indexing within segments.
+ **/
+ private final int segmentShift;
+
+ /**
+ * The segments, each of which is a specialized hash table
+ */
+ private final Segment[] segments;
+
+
+ /* ---------------- Small Utilities -------------- */
+
+ /**
+ * Returns a hash code for non-null Object x.
+ * Uses the same hash code spreader as most other java.util hash tables.
+ * @param x the object serving as a key
+ * @return the hash code
+ */
+ private static final uint walter(K x)
+ {
+ uint h = typeid(char[]).getHash(&x);
+
+ h += ~(h << 9);
+ h ^= (h >>> 14);
+ h += (h << 4);
+ h ^= (h >>> 10);
+ return h;
+ }
+
+ /**
+ * Returns a hash code for non-null Object x.
+ * uses the FNV hash function
+ * @param x the object serving as a key
+ * @return the hash code
+ */
+ private static final uint fnv(K x)
+ {
+ uint hash = 2_166_136_261;
+
+ foreach (ubyte c; cast(ubyte[])x)
+ {
+ hash ^= c;
+ hash *= 16_777_619;
+ }
+ return hash;
+ }
+
+
+
+ /**
+ * hash() -- hash a variable-length key into a 32-bit value
+ * k : the key (the unaligned variable-length array of bytes)
+ * len : the length of the key, counting by bytes
+ * level : can be any 4-byte value
+ * Returns a 32-bit value. Every bit of the key affects every bit of
+ * the return value. Every 1-bit and 2-bit delta achieves avalanche.
+ * About 36+6len instructions.
+ *
+ * The best hash table sizes are powers of 2. There is no need to do
+ * mod a prime (mod is sooo slow!). If you need less than 32 bits,
+ * use a bitmask. For example, if you need only 10 bits, do
+ * h = (h & hashmask(10));
+ * In which case, the hash table should have hashsize(10) elements.
+ *
+ * If you are hashing n strings (ub1 **)k, do it like this:
+ * for (i=0, h=0; i<n; ++i) h = hash( k[i], len[i], h);
+ *
+ * By Bob Jenkins, 1996. bob_jenkins@burtleburtle.net. You may use this
+ * code any way you wish, private, educational, or commercial. It's free.
+ *
+ * See http://burlteburtle.net/bob/hash/evahash.html
+ * Use for hash table lookup, or anything where one collision in 2^32 is
+ * acceptable. Do NOT use for cryptographic purposes.
+ */
+
+ static final uint jhash(K x)
+ {
+ ubyte *k;
+ uint a,
+ b,
+ c,
+ len;
+
+ len = x.length;
+ k = cast(ubyte *)x;
+ a = b = 0x9e3779b9;
+
+ // the previous hash value
+ c = 0;
+
+ // handle most of the key
+ while (len >= 12)
+ {
+ a += *cast(uint *)(k + 0);
+ b += *cast(uint *)(k + 4);
+ c += *cast(uint *)(k + 8);
+
+ a -= b; a -= c; a ^= (c >> 13);
+ b -= c; b -= a; b ^= (a << 8);
+ c -= a; c -= b; c ^= (b >> 13);
+ a -= b; a -= c; a ^= (c >> 12);
+ b -= c; b -= a; b ^= (a << 16);
+ c -= a; c -= b; c ^= (b >> 5);
+ a -= b; a -= c; a ^= (c >> 3);
+ b -= c; b -= a; b ^= (a << 10);
+ c -= a; c -= b; c ^= (b >> 15);
+ k += 12; len -= 12;
+ }
+
+ // handle the last 11 bytes
+ c += x.length;
+ switch (len)
+ {
+ case 11: c += (cast(uint)k[10] << 24);
+
+ case 10: c += (cast(uint)k[9] << 16);
+
+ case 9: c += (cast(uint)k[8] << 8);
+
+ case 8: b += (cast(uint)k[7] << 24);
+
+ case 7: b += (cast(uint)k[6] << 16);
+
+ case 6: b += (cast(uint)k[5] << 8);
+
+ case 5: b += k[4];
+
+ case 4: a += (cast(uint)k[3] << 24);
+
+ case 3: a += (cast(uint)k[2] << 16);
+
+ case 2: a += (cast(uint)k[1] << 8);
+
+ case 1: a += k[0];
+
+ default:
+ }
+
+ a -= b; a -= c; a ^= (c >> 13);
+ b -= c; b -= a; b ^= (a << 8);
+ c -= a; c -= b; c ^= (b >> 13);
+ a -= b; a -= c; a ^= (c >> 12);
+ b -= c; b -= a; b ^= (a << 16);
+ c -= a; c -= b; c ^= (b >> 5);
+ a -= b; a -= c; a ^= (c >> 3);
+ b -= c; b -= a; b ^= (a << 10);
+ c -= a; c -= b; c ^= (b >> 15);
+
+ return c;
+ }
+
+
+ /**
+ * Returns the segment that should be used for key with given hash
+ * @param hash the hash code for the key
+ * @return the segment
+ */
+ private final Segment segmentFor(uint hash)
+ {
+ return segments[(hash >>> segmentShift) & segmentMask];
+ }
+
+ /* ---------------- Inner Classes -------------- */
+
+ /**
+ * ConcurrentHashMap list entry. Note that this is never exported
+ * out as a user-visible Map.Entry.
+ *
+ * Because the value field is volatile, not final, it is legal wrt
+ * the Java Memory Model for an unsynchronized reader to see null
+ * instead of initial value when read via a data race. Although a
+ * reordering leading to this is not likely to ever actually
+ * occur, the Segment.readValueUnderLock method is used as a
+ * backup in case a null (pre-initialized) value is ever seen in
+ * an unsynchronized access method.
+ */
+ private static class HashEntry
+ {
+ final K key;
+ final uint hash;
+ final V value;
+ final HashEntry next;
+
+ this(K key, uint hash, HashEntry next, V value)
+ {
+ this.key = key;
+ this.hash = hash;
+ this.next = next;
+ this.value = value;
+ }
+ }
+
+ /**
+ * Segments are specialized versions of hash tables. This
+ * subclasses from ReentrantLock opportunistically, just to
+ * simplify some locking and avoid separate construction.
+ **/
+ static class Segment
+ {
+ /*
+ * Segments maintain a table of entry lists that are ALWAYS
+ * kept in a consistent state, so can be read without locking.
+ * Next fields of nodes are immutable (final). All list
+ * additions are performed at the front of each bin. This
+ * makes it easy to check changes, and also fast to traverse.
+ * When nodes would otherwise be changed, new nodes are
+ * created to replace them. This works well for hash tables
+ * since the bin lists tend to be short. (The average length
+ * is less than two for the default load factor threshold.)
+ *
+ * Read operations can thus proceed without locking, but rely
+ * on selected uses of volatiles to ensure that completed
+ * write operations performed by other threads are
+ * noticed. For most purposes, the "count" field, tracking the
+ * number of elements, serves as that volatile variable
+ * ensuring visibility. This is convenient because this field
+ * needs to be read in many read operations anyway:
+ *
+ * - All (unsynchronized) read operations must first read the
+ * "count" field, and should not look at table entries if
+ * it is 0.
+ *
+ * - All (synchronized) write operations should write to
+ * the "count" field after structurally changing any bin.
+ * The operations must not take any action that could even
+ * momentarily cause a concurrent read operation to see
+ * inconsistent data. This is made easier by the nature of
+ * the read operations in Map. For example, no operation
+ * can reveal that the table has grown but the threshold
+ * has not yet been updated, so there are no atomicity
+ * requirements for this with respect to reads.
+ *
+ * As a guide, all critical volatile reads and writes to the
+ * count field are marked in code comments.
+ */
+
+ /**
+ * The number of elements in this segment's region.
+ **/
+ int count;
+
+ /**
+ * The table is rehashed when its size exceeds this threshold.
+ * (The value of this field is always (int)(capacity *
+ * loadFactor).)
+ */
+ int threshold;
+
+ /**
+ * The per-segment table. Declared as a raw type, casted
+ * to HashEntry<K,V> on each use.
+ */
+ HashEntry[] table;
+
+ /**
+ * The load factor for the hash table. Even though this value
+ * is same for all segments, it is replicated to avoid needing
+ * links to outer object.
+ * @serial
+ */
+ final float loadFactor;
+
+ this(int initialCapacity, float lf)
+ {
+ loadFactor = lf;
+ setTable(new HashEntry[initialCapacity]);
+ }
+
+ /**
+ * Set table to new HashEntry array.
+ * Call only while holding lock or in constructor.
+ **/
+ private final void setTable(HashEntry[] newTable)
+ {
+ threshold = cast(int)(newTable.length * loadFactor);
+ volatile table = newTable;
+ }
+
+ /**
+ * Return properly casted first entry of bin for given hash
+ */
+ private final HashEntry getFirst(uint hash)
+ {
+ HashEntry[] tab;
+
+ volatile tab = table;
+ return tab[hash & (tab.length - 1)];
+ }
+
+ /**
+ * Return true if the two keys match
+ */
+ private static final bool matchKey(K a, K b)
+ {
+ if (a.length == b.length)
+ return cast(bool)(memcmp(cast(char *)a, cast(char *)b, a.length) == 0);
+
+ return false;
+ }
+
+ /* Specialized implementations of map methods */
+
+ final V get(K key, uint hash)
+ {
+ int c;
+
+ // read-volatile
+ volatile c = count;
+ if (c)
+ {
+ HashEntry e = getFirst(hash);
+
+ while (e)
+ {
+ if (hash == e.hash && matchKey(key, e.key))
+ {
+ V v;
+
+ volatile v = e.value;
+ if (v)
+ return v;
+
+ synchronized (this)
+ return e.value;
+ }
+ e = e.next;
+ }
+ }
+ return null;
+ }
+
+
+ final bool containsKey(K key, uint hash)
+ {
+ int c;
+
+ // read-volatile
+ volatile c = count;
+ if (c)
+ {
+ HashEntry e = getFirst(hash);
+
+ while (e)
+ {
+ if (e.hash == hash && matchKey(key, e.key))
+ return true;
+
+ e = e.next;
+ }
+ }
+ return false;
+ }
+
+
+
+ final synchronized V replace(K key, uint hash, V newValue)
+ {
+ HashEntry e = getFirst(hash);
+
+ while (e && (e.hash != hash || !matchKey(key, e.key)))
+ e = e.next;
+
+ V oldValue = null;
+
+ if (e)
+ volatile
+ {
+ oldValue = e.value;
+ e.value = newValue;
+ }
+ return oldValue;
+ }
+
+
+ final synchronized V put(K key, uint hash, V value, bool onlyIfAbsent)
+ {
+ int c;
+
+ volatile c = count;
+ if (c++ > threshold)
+ rehash();
+
+ HashEntry[] tab;
+ volatile tab = table;
+ uint index = hash & (tab.length - 1);
+ HashEntry first = tab[index];
+ HashEntry e = first;
+
+ while (e && (e.hash != hash || !matchKey(key, e.key)))
+ e = e.next;
+
+ V oldValue;
+
+ if (e)
+ {
+ volatile oldValue = e.value;
+ if (!onlyIfAbsent)
+ volatile e.value = value;
+ }
+ else
+ {
+ oldValue = null;
+ tab[index] = new HashEntry(key, hash, first, value);
+
+ // write-volatile
+ volatile count = c;
+ }
+ return oldValue;
+ }
+
+
+ private final void rehash()
+ {
+ HashEntry[] oldTable;
+
+ volatile oldTable = table;
+ int oldCapacity = oldTable.length;
+
+ if (oldCapacity >= MAXIMUM_CAPACITY)
+ return;
+
+ /*
+ * Reclassify nodes in each list to new Map. Because we are
+ * using power-of-two expansion, the elements from each bin
+ * must either stay at same index, or move with a power of two
+ * offset. We eliminate unnecessary node creation by catching
+ * cases where old nodes can be reused because their next
+ * fields won't change. Statistically, at the default
+ * threshold, only about one-sixth of them need cloning when
+ * a table doubles. The nodes they replace will be garbage
+ * collectable as soon as they are no longer referenced by any
+ * reader thread that may be in the midst of traversing table
+ * right now.
+ */
+
+ HashEntry[] newTable = new HashEntry[oldCapacity << 1];
+ threshold = cast(int)(newTable.length * loadFactor);
+ int sizeMask = newTable.length - 1;
+
+ for (int i = 0; i < oldCapacity; ++i)
+ {
+ // We need to guarantee that any existing reads of old Map can
+ // proceed. So we cannot yet null out each bin.
+ HashEntry e = oldTable[i];
+
+ if (e)
+ {
+ HashEntry next = e.next;
+ uint idx = e.hash & sizeMask;
+
+ // Single node on list
+ if (next is null)
+ newTable[idx] = e;
+ else
+ {
+ // Reuse trailing consecutive sequence at same slot
+ HashEntry lastRun = e;
+ int lastIdx = idx;
+
+ for (HashEntry last = next; last; last = last.next)
+ {
+ uint k = last.hash & sizeMask;
+
+ if (k != lastIdx)
+ {
+ lastIdx = k;
+ lastRun = last;
+ }
+ }
+ newTable[lastIdx] = lastRun;
+
+ // Clone all remaining nodes
+ for (HashEntry p = e; p !is lastRun; p = p.next)
+ {
+ uint k = p.hash & sizeMask;
+ HashEntry n = newTable[k];
+
+ newTable[k] = new HashEntry(p.key, p.hash, n, p.value);
+ }
+ }
+ }
+ }
+ volatile table = newTable;
+ }
+
+ /**
+ * Remove; match on key only if value null, else match both.
+ */
+ final synchronized V remove(K key, uint hash, V value)
+ {
+ int c;
+
+ HashEntry[] tab;
+
+ volatile c = count - 1;
+ volatile tab = table;
+
+ uint index = hash & (tab.length - 1);
+ HashEntry first = tab[index];
+ HashEntry e = first;
+
+ while (e && (e.hash != hash || !matchKey(key, e.key)))
+ e = e.next;
+
+ V oldValue = null;
+
+ if (e)
+ {
+ V v;
+
+ volatile v = e.value;
+ if (value is null || value == v)
+ {
+ oldValue = v;
+
+ // All entries following removed node can stay
+ // in list, but all preceding ones need to be
+ // cloned.
+ HashEntry newFirst = e.next;
+
+ for (HashEntry p = first; p !is e; p = p.next)
+ newFirst = new HashEntry(p.key, p.hash, newFirst, p.value);
+ tab[index] = newFirst;
+
+ // write-volatile
+ volatile count = c;
+ }
+ }
+ return oldValue;
+ }
+
+
+ final synchronized void clear()
+ {
+ if (count)
+ {
+ HashEntry[] tab;
+ volatile tab = table;
+
+ for (int i = 0; i < tab.length; i++)
+ tab[i] = null;
+
+ // write-volatile
+ volatile count = 0;
+ }
+ }
+ }
+
+
+
+ /* ---------------- Public operations -------------- */
+
+ /**
+ * Creates a new, empty map with the specified initial
+ * capacity and the specified load factor.
+ *
+ * @param initialCapacity the initial capacity. The implementation
+ * performs internal sizing to accommodate this many elements.
+ * @param loadFactor the load factor threshold, used to control resizing.
+ * @param concurrencyLevel the estimated number of concurrently
+ * updating threads. The implementation performs internal sizing
+ * to try to accommodate this many threads.
+ * @throws IllegalArgumentException if the initial capacity is
+ * negative or the load factor or concurrencyLevel are
+ * nonpositive.
+ */
+ public this(uint initialCapacity, float loadFactor, uint concurrencyLevel)
+ {
+ assert(loadFactor > 0);
+
+ if (concurrencyLevel > MAX_SEGMENTS)
+ concurrencyLevel = MAX_SEGMENTS;
+
+ // Find power-of-two sizes best matching arguments
+ int sshift = 0;
+ int ssize = 1;
+ while (ssize < concurrencyLevel)
+ {
+ ++sshift;
+ ssize <<= 1;
+ }
+
+ segmentShift = 32 - sshift;
+ segmentMask = ssize - 1;
+ this.segments = new Segment[ssize];
+
+ if (initialCapacity > MAXIMUM_CAPACITY)
+ initialCapacity = MAXIMUM_CAPACITY;
+
+ int c = initialCapacity / ssize;
+ if (c * ssize < initialCapacity)
+ ++c;
+
+ int cap = 1;
+ while (cap < c)
+ cap <<= 1;
+
+ for (int i = 0; i < this.segments.length; ++i)
+ this.segments[i] = new Segment(cap, loadFactor);
+ }
+
+ /**
+ * Creates a new, empty map with the specified initial
+ * capacity, and with default load factor and concurrencyLevel.
+ *
+ * @param initialCapacity The implementation performs internal
+ * sizing to accommodate this many elements.
+ * @throws IllegalArgumentException if the initial capacity of
+ * elements is negative.
+ */
+ public this(uint initialCapacity)
+ {
+ this(initialCapacity, DEFAULT_LOAD_FACTOR, DEFAULT_SEGMENTS);
+ }
+
+ /**
+ * Creates a new, empty map with a default initial capacity,
+ * load factor, and concurrencyLevel.
+ */
+ public this()
+ {
+ this(DEFAULT_INITIAL_CAPACITY, DEFAULT_LOAD_FACTOR, DEFAULT_SEGMENTS);
+ }
+
+ /**
+ * Returns the value to which the specified key is mapped in this table.
+ *
+ * @param key a key in the table.
+ * @return the value to which the key is mapped in this table;
+ * <tt>null</tt> if the key is not mapped to any value in
+ * this table.
+ * @throws NullPointerException if the key is
+ * <tt>null</tt>.
+ */
+ public V get(K key)
+ {
+ uint hash = hash(key); // throws NullPointerException if key null
+
+ return segmentFor(hash).get(key, hash);
+ }
+
+ /**
+ * Tests if the specified object is a key in this table.
+ *
+ * @param key possible key.
+ * @return <tt>true</tt> if and only if the specified object
+ * is a key in this table, as determined by the
+ * <tt>equals</tt> method; <tt>false</tt> otherwise.
+ * @throws NullPointerException if the key is
+ * <tt>null</tt>.
+ */
+ public bool containsKey(K key)
+ {
+ uint hash = hash(key); // throws NullPointerException if key null
+
+ return segmentFor(hash).containsKey(key, hash);
+ }
+
+ /**
+ * Maps the specified <tt>key</tt> to the specified
+ * <tt>value</tt> in this table. Neither the key nor the
+ * value can be <tt>null</tt>.
+ *
+ * <p> The value can be retrieved by calling the <tt>get</tt> method
+ * with a key that is equal to the original key.
+ *
+ * @param key the table key.
+ * @param value the value.
+ * @return the previous value of the specified key in this table,
+ * or <tt>null</tt> if it did not have one.
+ * @throws NullPointerException if the key or value is
+ * <tt>null</tt>.
+ */
+ public V put(K key, V value)
+ {
+ assert(value);
+
+ uint hash = hash(key);
+
+ return segmentFor(hash).put(key, hash, value, false);
+ }
+
+ /**
+ * If the specified key is not already associated
+ * with a value, associate it with the given value.
+ * This is equivalent to
+ * <pre>
+ * if (!map.containsKey(key))
+ * return map.put(key, value);
+ * else
+ * return map.get(key);
+ * </pre>
+ * Except that the action is performed atomically.
+ * @param key key with which the specified value is to be associated.
+ * @param value value to be associated with the specified key.
+ * @return previous value associated with specified key, or <tt>null</tt>
+ * if there was no mapping for key.
+ * @throws NullPointerException if the specified key or value is
+ * <tt>null</tt>.
+ */
+ public V putIfAbsent(K key, V value)
+ {
+ assert(value);
+
+ uint hash = hash(key);
+
+ return segmentFor(hash).put(key, hash, value, true);
+ }
+
+
+ /**
+ * Removes the key (and its corresponding value) from this
+ * table. This method does nothing if the key is not in the table.
+ *
+ * @param key the key that needs to be removed.
+ * @return the value to which the key had been mapped in this table,
+ * or <tt>null</tt> if the key did not have a mapping.
+ * @throws NullPointerException if the key is
+ * <tt>null</tt>.
+ */
+ public V remove(K key)
+ {
+ uint hash = hash(key);
+
+ return segmentFor(hash).remove(key, hash, null);
+ }
+
+ /**
+ * Remove entry for key only if currently mapped to given value.
+ * Acts as
+ * <pre>
+ * if (map.get(key).equals(value)) {
+ * map.remove(key);
+ * return true;
+ * } else return false;
+ * </pre>
+ * except that the action is performed atomically.
+ * @param key key with which the specified value is associated.
+ * @param value value associated with the specified key.
+ * @return true if the value was removed
+ * @throws NullPointerException if the specified key is
+ * <tt>null</tt>.
+ */
+ public bool remove(K key, V value)
+ {
+ uint hash = hash(key);
+
+ return cast(bool)(segmentFor(hash).remove(key, hash, value) !is null);
+ }
+
+
+ /**
+ * Replace entry for key only if currently mapped to some value.
+ * Acts as
+ * <pre>
+ * if ((map.containsKey(key)) {
+ * return map.put(key, value);
+ * } else return null;
+ * </pre>
+ * except that the action is performed atomically.
+ * @param key key with which the specified value is associated.
+ * @param value value to be associated with the specified key.
+ * @return previous value associated with specified key, or <tt>null</tt>
+ * if there was no mapping for key.
+ * @throws NullPointerException if the specified key or value is
+ * <tt>null</tt>.
+ */
+ public V replace(K key, V value)
+ {
+ assert(value);
+
+ uint hash = hash(key);
+
+ return segmentFor(hash).replace(key, hash, value);
+ }
+
+
+ /**
+ * Removes all mappings from this map.
+ */
+ public void clear()
+ {
+ for (int i = 0; i < segments.length; ++i)
+ segments[i].clear();
+ }
+
+
+ /**
+ * Returns an enumeration of the keys in this table.
+ *
+ * @return an enumeration of the keys in this table.
+ * @see #keySet
+ */
+ public KeyIterator keys()
+ {
+ return new KeyIterator(this);
+ }
+
+ /**
+ * Returns an enumeration of the values in this table.
+ *
+ * @return an enumeration of the values in this table.
+ * @see #values
+ */
+ public ValueIterator elements()
+ {
+ return new ValueIterator(this);
+ }
+
+ /**********************************************************************
+
+ Iterate over all keys in hashmap
+
+ **********************************************************************/
+
+ int opApply(int delegate(inout char[]) dg)
+ {
+ int result = 0;
+ KeyIterator iterator = keys();
+
+ while (iterator.hasNext)
+ {
+ char[] ca = cast(char[])iterator.next;
+ if ((result = dg(ca)) != 0)
+ break;
+ }
+ return result;
+ }
+
+ /**********************************************************************
+
+ Iterate over all keys in hashmap
+
+ **********************************************************************/
+
+ int opApply(int delegate(inout char[], inout Object) dg)
+ {
+ int result = 0;
+ KeyIterator iterator = keys();
+
+ while (iterator.hasNext)
+ {
+ HashEntry he = iterator.nextElement;
+
+ char[] ca = cast(char[])he.key;
+ if ((result = dg(ca, he.value)) != 0)
+ break;
+ }
+ return result;
+ }
+
+
+ /* ---------------- Iterator Support -------------- */
+
+ abstract static class HashIterator
+ {
+ int nextSegmentIndex;
+ int nextTableIndex;
+
+ HashEntry[] currentTable;
+ HashEntry nextEntry;
+ HashEntry lastReturned;
+ HashMap map;
+
+ this(HashMap map)
+ {
+ this.map = map;
+ nextSegmentIndex = map.segments.length - 1;
+ nextTableIndex = -1;
+ advance();
+ }
+
+ final void advance()
+ {
+ if (nextEntry !is null && (nextEntry = nextEntry.next) !is null)
+ return;
+
+ while (nextTableIndex >= 0)
+ {
+ if ((nextEntry = currentTable[nextTableIndex--]) !is null)
+ return;
+ }
+
+ while (nextSegmentIndex >= 0)
+ {
+ Segment seg = map.segments[nextSegmentIndex--];
+
+ volatile if (seg.count)
+ {
+ currentTable = seg.table;
+ for (int j = currentTable.length - 1; j >= 0; --j)
+ {
+ if ((nextEntry = currentTable[j]) !is null)
+ {
+ nextTableIndex = j - 1;
+ return;
+ }
+ }
+ }
+ }
+ }
+
+ public bool hasNext()
+ {
+ return cast(bool)(nextEntry !is null);
+ }
+
+ HashEntry nextElement()
+ {
+ if (nextEntry is null)
+ throw new Exception("no such element in HashMap");
+
+ lastReturned = nextEntry;
+ advance();
+ return lastReturned;
+ }
+ }
+
+ static class KeyIterator : HashIterator
+ {
+ this(HashMap map) {
+ super(map);
+ }
+ public K next()
+ {
+ return super.nextElement().key;
+ }
+ }
+
+ static class ValueIterator : HashIterator
+ {
+ this(HashMap map) {
+ super(map);
+ }
+ public V next()
+ {
+ volatile return super.nextElement().value;
+ }
+ }
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40001-imports.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40001-imports.d
index 9f12a88e..9f12a88e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40001-imports.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40001-imports.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40002-volatile.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40002-volatile.d
new file mode 100644
index 00000000..73cdf4ac
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40002-volatile.d
@@ -0,0 +1,28 @@
+void foo(void)
+{
+ while (nextSegmentIndex >= 0)
+ {
+ Segment seg = map.segments[nextSegmentIndex--];
+
+ volatile if (seg.count)
+ {
+ currentTable = seg.table;
+ for (int j = currentTable.length - 1; j >= 0; --j)
+ {
+ if ((nextEntry = currentTable[j]) !is null)
+ {
+ nextTableIndex = j - 1;
+ return;
+ }
+ }
+ }
+ }
+
+ if (e)
+ volatile
+ {
+ oldValue = e.value;
+ e.value = newValue;
+ }
+ return oldValue;
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40003-volatile-1.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40003-volatile-1.d
index 2ef2634d..2ef2634d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40003-volatile-1.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40003-volatile-1.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40004-volatile-2.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40004-volatile-2.d
index bc5a0de4..bc5a0de4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40004-volatile-2.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40004-volatile-2.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40005-volatile-3.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40005-volatile-3.d
index 039f788a..039f788a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40005-volatile-3.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40005-volatile-3.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40006-Lexer.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40006-Lexer.d
new file mode 100644
index 00000000..bc218701
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40006-Lexer.d
@@ -0,0 +1,2498 @@
+/+
+ Copyright (c) 1999-2006 by Digital Mars
+ All Rights Reserved
+ written by Walter Bright www.digitalmars.com
+ License for redistribution is by either the Artistic License in artistic.txt, or the GNU General Public License in gnu.txt.
+ See the included readme.txt for details.
+ D Language conversion by: J Duncan
+ +/
+
+/**
+ d language lexer
+ */
+
+module dparser.Lexer;
+
+import dparser.Root;
+
+import dparser.Tokens;
+import dparser.Token;
+import dparser.Keyword;
+
+import dparser.Types;
+
+import dparser.Module;
+import dparser.Identifier;
+import dparser.unialpha;
+
+import dparser.OutBuffer;
+
+//private import std.ctype;
+//private import std.string;
+//import dwf.core.debugapi;
+
+int errno = 0;
+
+//#if _WIN32 && __DMC__
+// from \dm\src\include\setlocal.h
+//extern "C" char * __cdecl __locale_decpoint;
+char *__locale_decpoint;
+
+//#endif
+//const uint LS = 0x2028; // UTF line separator
+//const uint PS = 0x2029; // UTF paragraph separator
+
+//extern int isUniAlpha(unsigned u);
+//extern int HtmlNamedEntity(unsigned char *p, int length);
+
+/**
+ Lexer object
+ */
+
+class Lexer
+{
+ static Identifier[char[]] stringtable;
+ static OutBuffer stringbuffer;
+ static Token *freelist;
+
+ Token token; // current token
+ Module mod; // current module
+ Loc loc; // for error messages
+ ubyte *base; // pointer to start of buffer
+ ubyte *end; // past end of buffer
+ ubyte *p; // current character
+ int doDocComment; // collect doc comment information
+ int anyToken; // !=0 means seen at least one token
+ int commentToken; // !=0 means comments are TOKcomment's
+
+
+ this(Module mod, ubyte *base, uint begoffset, uint endoffset, int doDocComment, int commentToken)
+ {
+ if (stringbuffer is null)
+ stringbuffer = new OutBuffer;
+ loc = Loc(mod, 1);
+
+ this.base = base;
+ this.end = base + endoffset;
+ this.p = base + begoffset;
+ this.mod = mod;
+ this.doDocComment = doDocComment;
+ this.commentToken = commentToken;
+
+ /*
+ If first line starts with '#!', ignore the line
+ */
+
+ if (p[0] == '#' && p[1] == '!')
+ {
+ p += 2;
+ while (true)
+ {
+ ubyte c = *p;
+
+ switch (c)
+ {
+ case '\n':
+ p++;
+ break;
+
+ case '\r':
+ p++;
+ if (*p == '\n')
+ p++;
+ break;
+
+ case 0:
+ case 0x1A:
+ break;
+
+ default:
+ if (c & 0x80)
+ {
+ uint u = decodeUTF();
+
+ if (u == PS || u == LS)
+ break;
+ }
+ p++;
+ continue;
+ }
+ break;
+ }
+
+ loc.linnum = 2;
+ }
+ }
+
+
+
+ // generate a unique identifier for this string
+ static Identifier idPool(in char[] str)
+ {
+// StringValue sv;
+// uint len = s.length;
+// StringValue sv = stringtable.update(s, len);
+// Identifier* id = cast(Identifier*) sv.ptrvalue;
+// if( id is null )
+ if ((str in stringtable) == null)
+ {
+ stringtable[str] = new Identifier(str, TOK.TOKidentifier);
+ }
+ return stringtable[str];
+ }
+
+ static void initKeywords()
+ {
+ // build character map
+ cmtable_init();
+
+ // create keyword tokens & identifiers
+ dparser.Keyword.initKeywords();
+
+ // create standard lexer tokens
+ dparser.Token.createLexerTokens();
+ }
+
+ // Combine two document comments into one.
+ static char[] combineComments(char[] c1, char[] c2)
+ {
+ char[] c = c2;
+ if (c1.length)
+ {
+ c = c1;
+ if (c2.length)
+ {
+ c = c1 ~ "\n" ~ c2;
+ }
+ }
+ return c;
+ }
+
+ // Decode UTF character. Issue error messages for invalid sequences. Return decoded character, advance p to last character in UTF sequence.
+ //! fix
+ uint decodeUTF()
+ {
+ ubyte *s = p;
+ ubyte c = *s;
+
+ assert(c & 0x80);
+ if (!(c & 0x80))
+ return c;
+
+ return cast(uint)'X';
+ /*
+ dchar u;
+ uint len;
+
+
+
+ // Check length of remaining string up to 6 UTF-8 characters
+ for( len = 1; len < 6 && s[len]; len++ )
+ {
+
+ }
+ /+
+ uint idx = 0;
+ char* msg = utf_decodeChar( s, len, &idx, &u );
+ p += idx - 1;
+ if( msg )
+ {
+ error(msg);
+ }
+ +/
+ return u;
+ */
+ }
+
+ void error(...)
+ {
+ if ((mod !is null) && !global.gag)
+ {
+ writefln(formatLoc(loc, _arguments, _argptr));
+ /*
+ char[] p = loc.toChars();
+ if( p.length )
+ writef( "%s: ", p );
+ writefx( stdout, _arguments, _argptr, 1 );
+ */
+ if (global.errors >= global.max_errors) // moderate blizzard of cascading messages
+ throw new Exception("too many errors");
+ }
+
+ global.errors++;
+ }
+
+ void errorLoc(Loc loc, ...)
+ {
+ if ((mod !is null) && !global.gag)
+ {
+ writefln(formatLoc(loc, _arguments, _argptr));
+ /*
+ char[] p = loc.toChars();
+ if( p.length )
+ writef("%s: ", p);
+ writefx(stdout, _arguments, _argptr, 1);
+ */
+ if (global.errors >= 20) // moderate blizzard of cascading messages
+ throw new Exception("too many errors");
+ }
+
+ global.errors++;
+ }
+
+
+ TOK nextToken()
+ {
+ if (token.next)
+ {
+ Token *t = token.next;
+
+ memcpy(&token, t, Token.sizeof);
+// t.next = freelist;
+// freelist = t;
+ }
+ else
+ {
+ scan(&token);
+ }
+// token.print();
+ return token.value;
+ }
+
+ Token *peek(inout Token ct)
+ {
+ Token *t;
+
+ if (ct.next)
+ t = ct.next;
+ else
+ {
+ t = new Token;
+ scan(t);
+ t.next = null;
+ ct.next = t;
+ }
+ return t;
+ }
+
+ // Turn next token in buffer into a token.
+
+ void scan(Token *t)
+ {
+// debug writefln("scan token");
+ uint lastLine = loc.linnum;
+ uint linnum;
+
+ t.blockComment = null;
+ t.lineComment = null;
+ while (true)
+ {
+ t.ptr = p;
+// debug writefln( " p = %d, *p = ", cast(uint)p, cast(char)*p );
+ switch (*p)
+ {
+ case 0:
+ case 0x1a:
+ t.value = TOK.TOKeof; // end of file
+// debug writefln( " EOF" );
+ return;
+
+ case ' ':
+ case '\t':
+ case '\v':
+ case '\f':
+ p++;
+// debug writefln( " whitespace" );
+ continue; // skip white space
+
+ case '\r':
+// debug writefln( " cr" );
+ p++;
+ if (*p != '\n') // if CR stands by itself
+ loc.linnum++;
+ continue; // skip white space
+
+ case '\n':
+// debug writefln( " nl" );
+ p++;
+ loc.linnum++;
+ continue; // skip white space
+
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9':
+ t.value = number(t);
+ return;
+
+/*
+ #if CSTRINGS
+ case '\'':
+ t.value = charConstant(t, 0);
+ return;
+
+ case '"':
+ t.value = stringConstant(t,0);
+ return;
+
+ case 'l':
+ case 'L':
+ if( p[1] == '\'')
+ {
+ p++;
+ t.value = charConstant(t, 1);
+ return;
+ }
+ else if( p[1] == '"')
+ {
+ p++;
+ t.value = stringConstant(t, 1);
+ return;
+ }
+ #else
+ */
+ case '\'':
+// debug writefln( " char" );
+ t.value = charConstant(t, 0);
+ return;
+
+ case 'r':
+// debug writefln( " wysiwyg" );
+ if (p[1] != '"')
+ goto case_identifier;
+ p++;
+
+ case '`':
+ t.value = wysiwygStringConstant(t, *p);
+ return;
+
+ case 'x':
+// debug writefln( " hex string" );
+ if (p[1] != '"')
+ goto case_identifier;
+ p++;
+ t.value = hexStringConstant(t);
+ return;
+
+
+ case '"':
+// debug writefln( " string" );
+ t.value = escapeStringConstant(t, 0);
+// debug writefln( t.ustring );
+ return;
+
+ case '\\': // escaped string literal
+// debug writefln( " escaped string literal" );
+ uint c;
+
+ stringbuffer.offset = 0;
+ do
+ {
+ p++;
+ c = escapeSequence();
+ stringbuffer.write(c);
+ } while (*p == '\\');
+// t.len = stringbuffer.offset;
+// stringbuffer.write(cast(byte)0);
+ t.ustring = stringbuffer.toString;
+// memcpy( t.ustring.ptr, stringbuffer.data, stringbuffer.offset );
+ t.postfix = 0;
+ t.value = TOK.TOKstring;
+ return;
+
+ case 'l':
+ case 'L':
+// #endif
+
+ case 'a':
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f':
+ case 'g':
+ case 'h':
+ case 'i':
+ case 'j':
+ case 'k':
+ case 'm':
+ case 'n':
+ case 'o':
+ case 'p':
+ case 'q': /*case 'r':*/
+ case 's':
+ case 't':
+ case 'u':
+ case 'v':
+ case 'w': /*case 'x':*/
+ case 'y':
+ case 'z':
+ case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F':
+ case 'G':
+ case 'H':
+ case 'I':
+ case 'J':
+ case 'K':
+ case 'M':
+ case 'N':
+ case 'O':
+ case 'P':
+ case 'Q':
+ case 'R':
+ case 'S':
+ case 'T':
+ case 'U':
+ case 'V':
+ case 'W':
+ case 'X':
+ case 'Y':
+ case 'Z':
+ case '_':
+ case_identifier:
+ {
+// debug writefln( " identifier" );
+ ubyte c;
+
+ do
+ {
+ c = *++p;
+ } while (isidchar(c) || (c & 0x80 && isUniAlpha(decodeUTF())));
+
+// sv = stringtable.update((char *)t.ptr, p - t.ptr);
+ char[] tmp;
+ tmp.length = p - t.ptr;
+ memcpy(tmp.ptr, t.ptr, p - t.ptr);
+ Identifier id;
+ Identifier *pid = tmp in stringtable;
+
+ if (pid)
+ {
+ id = *pid;
+ }
+
+ if (id is null)
+ {
+ id = new Identifier(tmp, TOK.TOKidentifier);
+ stringtable[tmp] = id;
+ }
+
+ t.identifier = id;
+ t.value = cast(TOK)id.value;
+ anyToken = 1;
+
+ // if special identifier token
+ if (*t.ptr == '_')
+ {
+ static char date[11 + 1];
+ static char time[8 + 1];
+ static char timestamp[24 + 1];
+
+ if (!date[0]) // lazy evaluation
+ {
+ //!!
+ /+
+ time_t t;
+ char *p;
+ .time(&t);
+ p = ctime(&t);
+ assert(p);
+ sprintf(date.ptr, "%.6s %.4s", p + 4, p + 20);
+ sprintf(time.ptr, "%.8s", p + 11);
+ sprintf(timestamp.ptr, "%.24s", p);
+ +/
+ }
+
+ if (mod && id is Id.FILE)
+ {
+ t.value = TOK.TOKstring;
+ if (loc.filename.length)
+ t.ustring = loc.filename;
+ else
+ t.ustring = mod.identifier.toChars();
+ goto Llen;
+ }
+ else if (mod && id == Id.LINE)
+ {
+ t.value = TOK.TOKint64v;
+ t.uns64value = loc.linnum;
+ }
+ else if (id == Id.DATE)
+ {
+ t.value = TOK.TOKstring;
+ //! t.ustring = date;
+ goto Llen;
+ }
+ else if (id == Id.TIME)
+ {
+ t.value = TOK.TOKstring;
+ //! t.ustring = time;
+ goto Llen;
+ }
+ else if (id == Id.TIMESTAMP)
+ {
+ t.value = TOK.TOKstring;
+ //! t.ustring = timestamp;
+ Llen:
+ t.postfix = 0;
+// t.len = strlen((char *)t.ustring);
+ }
+ }
+ //printf("t.value = %d\n",t.value);
+ return;
+ }
+
+ // comments
+ case '/':
+ p++;
+ switch (*p)
+ {
+ case '=':
+ p++;
+ t.value = TOK.TOKdivass;
+ return;
+
+ case '*': // '/*'
+ p++;
+ linnum = loc.linnum;
+ while (true)
+ {
+ while (true)
+ {
+ ubyte c = *p;
+
+ switch (c)
+ {
+ case '/':
+ break;
+
+ case '\n':
+ loc.linnum++;
+ p++;
+ continue;
+
+ case '\r':
+ p++;
+ if (*p != '\n')
+ loc.linnum++;
+ continue;
+
+ case 0:
+ case 0x1A:
+ error("unterminated /* */ comment");
+ p = end;
+ t.value = TOK.TOKeof;
+ return;
+
+ default:
+ if (c & 0x80)
+ {
+ uint u = decodeUTF();
+
+ if (u == PS || u == LS)
+ loc.linnum++;
+ }
+ p++;
+ continue;
+ }
+ break;
+ }
+ p++;
+ if (p[-2] == '*' && p - 3 != t.ptr)
+ break;
+ }
+
+ if (commentToken)
+ {
+ t.value = TOK.TOKcomment;
+ return;
+ }
+ // if /** but not /**/
+ else if (doDocComment && t.ptr[2] == '*' && p - 4 != t.ptr)
+ getDocComment(t, lastLine == linnum); //! ?
+ continue;
+
+ case '/': // do // style comments
+ linnum = loc.linnum;
+ while (1)
+ {
+ ubyte c = *++p;
+
+ switch (c)
+ {
+ case '\n':
+ break;
+
+ case '\r':
+ if (p[1] == '\n')
+ p++;
+ break;
+
+ case 0:
+ case 0x1a:
+ if (commentToken)
+ {
+ p = end;
+ t.value = TOK.TOKcomment;
+ return;
+ }
+ if (doDocComment && t.ptr[2] == '/')
+ getDocComment(t, lastLine == linnum);
+ p = end;
+ t.value = TOK.TOKeof;
+ return;
+
+ default:
+ if (c & 0x80)
+ {
+ uint u = decodeUTF();
+
+ if (u == PS || u == LS)
+ break;
+ }
+ continue;
+ }
+ break;
+ }
+
+ if (commentToken)
+ {
+ p++;
+ loc.linnum++;
+ t.value = TOK.TOKcomment;
+ return;
+ }
+ if (doDocComment && t.ptr[2] == '/')
+ getDocComment(t, lastLine == linnum);
+
+ p++;
+ loc.linnum++;
+ continue;
+
+ case '+':
+ {
+ int nest;
+
+ linnum = loc.linnum;
+ p++;
+ nest = 1;
+ while (1)
+ {
+ ubyte c = *p;
+
+ switch (c)
+ {
+ case '/':
+ p++;
+ if (*p == '+')
+ {
+ p++;
+ nest++;
+ }
+ continue;
+
+ case '+':
+ p++;
+ if (*p == '/')
+ {
+ p++;
+ if (--nest == 0)
+ break;
+ }
+ continue;
+
+ case '\r':
+ p++;
+ if (*p != '\n')
+ loc.linnum++;
+ continue;
+
+ case '\n':
+ loc.linnum++;
+ p++;
+ continue;
+
+ case 0:
+ case 0x1A:
+ error("unterminated /+ +/ comment");
+ p = end;
+ t.value = TOK.TOKeof;
+ return;
+
+ default:
+ if (c & 0x80)
+ {
+ uint u = decodeUTF();
+
+ if (u == PS || u == LS)
+ loc.linnum++;
+ }
+ p++;
+ continue;
+ }
+ break;
+ }
+ if (commentToken)
+ {
+ t.value = TOK.TOKcomment;
+ return;
+ }
+ if (doDocComment && t.ptr[2] == '+' && p - 4 != t.ptr)
+ {
+ // if /++ but not /++/
+ getDocComment(t, lastLine == linnum);
+ }
+ continue;
+ }
+
+ default:
+ break;
+ }
+ t.value = TOK.TOKdiv;
+ return;
+
+ case '.':
+ p++;
+ if (isdigit(*p))
+ {
+ p--;
+ t.value = inreal(t);
+ }
+ else if (p[0] == '.')
+ {
+ if (p[1] == '.')
+ {
+ p += 2;
+ t.value = TOK.TOKdotdotdot;
+ }
+ else
+ {
+ p++;
+ t.value = TOK.TOKslice;
+ }
+ }
+ else
+ t.value = TOK.TOKdot;
+ return;
+
+ case '&':
+ p++;
+ if (*p == '=')
+ {
+ p++;
+ t.value = TOK.TOKandass;
+ }
+ else if (*p == '&')
+ {
+ p++;
+ t.value = TOK.TOKandand;
+ }
+ else
+ t.value = TOK.TOKand;
+ return;
+
+ // |, ||, |=
+ case '|':
+ p++;
+ if (*p == '=')
+ {
+ p++;
+ t.value = TOK.TOKorass;
+ }
+ else if (*p == '|')
+ {
+ p++;
+ t.value = TOK.TOKoror;
+ }
+ else
+ t.value = TOK.TOKor;
+ return;
+
+ case '-':
+ p++;
+ if (*p == '=')
+ {
+ p++;
+ t.value = TOK.TOKminass;
+ }
+ else if (*p == '-')
+ {
+ p++;
+ t.value = TOK.TOKminusminus;
+ }
+ else
+ t.value = TOK.TOKmin;
+ return;
+
+ // +, +=, ++
+ case '+':
+ p++;
+ if (*p == '=')
+ {
+ p++;
+ t.value = TOK.TOKaddass; // +=
+ }
+ else if (*p == '+')
+ {
+ p++;
+ t.value = TOK.TOKplusplus; // ++
+ }
+ else
+ t.value = TOK.TOKadd; // +
+ return;
+
+ // <, <=, <<=, <<, <>=, <>
+ case '<':
+ p++;
+ if (*p == '=')
+ {
+ p++;
+ t.value = TOK.TOKle; // <=
+ }
+ else if (*p == '<')
+ {
+ p++;
+ if (*p == '=')
+ {
+ p++;
+ t.value = TOK.TOKshlass; // <<=
+ }
+ else
+ t.value = TOK.TOKshl; // <<
+ }
+ else if (*p == '>')
+ {
+ p++;
+ if (*p == '=')
+ {
+ p++;
+ t.value = TOK.TOKleg; // <>=
+ }
+ else
+ t.value = TOK.TOKlg; // <>
+ }
+ else
+ t.value = TOK.TOKlt; // <
+ return;
+
+ // >, >>, >>>, >=, >>=, >>>=
+ case '>':
+ p++;
+ if (*p == '=')
+ {
+ p++;
+ t.value = TOK.TOKge; // >=
+ }
+ else if (*p == '>')
+ {
+ p++;
+ if (*p == '=')
+ {
+ p++;
+ t.value = TOK.TOKshrass; // >>=
+ }
+ else if (*p == '>')
+ {
+ p++;
+ if (*p == '=')
+ {
+ p++;
+ t.value = TOK.TOKushrass; // >>>=
+ }
+ else
+ t.value = TOK.TOKushr; // >>>
+ }
+ else
+ t.value = TOK.TOKshr; // >>
+ }
+ else
+ t.value = TOK.TOKgt; // >
+ return;
+
+ case '!':
+ p++;
+ if (*p == '=')
+ {
+ p++;
+ if (*p == '=')
+ {
+ p++;
+ t.value = TOK.TOKnotidentity; // !==
+ }
+ else
+ t.value = TOK.TOKnotequal; // !=
+ }
+ else if (*p == '<')
+ {
+ p++;
+ if (*p == '>')
+ {
+ p++;
+ if (*p == '=')
+ {
+ p++;
+ t.value = TOK.TOKunord; // !<>=
+ }
+ else
+ t.value = TOK.TOKue; // !<>
+ }
+ else if (*p == '=')
+ {
+ p++;
+ t.value = TOK.TOKug; // !<=
+ }
+ else
+ t.value = TOK.TOKuge; // !<
+ }
+ else if (*p == '>')
+ {
+ p++;
+ if (*p == '=')
+ {
+ p++;
+ t.value = TOK.TOKul; // !>=
+ }
+ else
+ t.value = TOK.TOKule; // !>
+ }
+ else
+ t.value = TOK.TOKnot; // !
+ return;
+
+ case '=':
+ p++;
+ if (*p == '=')
+ {
+ p++;
+ if (*p == '=')
+ {
+ p++;
+ t.value = TOK.TOKidentity; // ===
+ }
+ else
+ t.value = TOK.TOKequal; // ==
+ }
+ else
+ t.value = TOK.TOKassign; // =
+ return;
+
+ case '~':
+ p++;
+ if (*p == '=')
+ {
+ p++;
+ t.value = TOK.TOKcatass; // ~=
+ }
+ else
+ t.value = TOK.TOKtilde; // ~
+ return;
+
+ // SINGLE
+ case '(': p++; t.value = TOK.TOKlparen; return;
+
+ case ')': p++; t.value = TOK.TOKrparen; return;
+
+ case '[': p++; t.value = TOK.TOKlbracket; return;
+
+ case ']': p++; t.value = TOK.TOKrbracket; return;
+
+ case '{': p++; t.value = TOK.TOKlcurly; return;
+
+ case '}': p++; t.value = TOK.TOKrcurly; return;
+
+ case '?': p++; t.value = TOK.TOKquestion; return;
+
+ case ',': p++; t.value = TOK.TOKcomma; return;
+
+ case ';': p++; t.value = TOK.TOKsemicolon; return;
+
+ case ':': p++; t.value = TOK.TOKcolon; return;
+
+ case '$': p++; t.value = TOK.TOKdollar; return;
+
+ // DOUBLE
+ case '*': p++; if (*p == '=')
+ {
+ p++; t.value = TOK.TOKmulass;
+ }
+ else
+ t.value = TOK.TOKmul;
+ return;
+
+ case '%': p++; if (*p == '=')
+ {
+ p++; t.value = TOK.TOKmodass;
+ }
+ else
+ t.value = TOK.TOKmod;
+ return;
+
+ case '^': p++; if (*p == '=')
+ {
+ p++; t.value = TOK.TOKxorass;
+ }
+ else
+ t.value = TOK.TOKxor;
+ return;
+
+// removed 148 case '~': p++; if( *p == '=' ) { p++; t.value = TOK.TOKcatass; } else t.value = TOK.TOKtilde; return;
+
+
+ case '#':
+ p++;
+ Pragma();
+ continue;
+
+ default:
+ {
+ debug writefln(" default char");
+ ubyte c = *p;
+
+ if (c & 0x80)
+ {
+ uint u = decodeUTF();
+
+ // Check for start of unicode identifier
+ if (isUniAlpha(u))
+ goto case_identifier;
+
+ if (u == PS || u == LS)
+ {
+ loc.linnum++;
+ p++;
+ continue;
+ }
+ }
+ if (isprint(c))
+ error("unsupported char '%s'", cast(char)c);
+ else
+ error("unsupported char 0x%02x", cast(ubyte)c);
+ p++;
+ continue;
+ }
+ }
+ }
+ }
+
+
+
+ // Parse escape sequence.
+ uint escapeSequence()
+ {
+ uint c;
+ int n;
+ int ndigits;
+
+ c = *p;
+ switch (c)
+ {
+ case '\'':
+ case '"':
+ case '?':
+ case '\\':
+ Lconsume:
+ p++;
+ break;
+
+ case 'a': c = 7; goto Lconsume;
+
+ case 'b': c = 8; goto Lconsume;
+
+ case 'f': c = 12; goto Lconsume;
+
+ case 'n': c = 10; goto Lconsume;
+
+ case 'r': c = 13; goto Lconsume;
+
+ case 't': c = 9; goto Lconsume;
+
+ case 'v': c = 11; goto Lconsume;
+
+ case 'u':
+ ndigits = 4;
+ goto Lhex;
+
+ case 'U':
+ ndigits = 8;
+ goto Lhex;
+
+ case 'x':
+ ndigits = 2;
+ Lhex:
+ p++;
+ c = *p;
+ if (ishex(c))
+ {
+ uint v;
+
+ n = 0;
+ v = 0;
+ while (1)
+ {
+ if (isdigit(c))
+ c -= '0';
+ else if (islower(c))
+ c -= 'a' - 10;
+ else
+ c -= 'A' - 10;
+ v = v * 16 + c;
+ c = *++p;
+ if (++n == ndigits)
+ break;
+ if (!ishex(c))
+ {
+ error("escape hex sequence has %d hex digits instead of %d", n, ndigits);
+ break;
+ }
+ }
+//! if( ndigits != 2 && !utf_isValidDchar(v))
+//! error("invalid UTF character \\U%08x", v);
+ c = v;
+ }
+ else
+ error("undefined escape hex sequence \\%s\n", c);
+ break;
+
+ case '&': // named character entity
+ for (ubyte *idstart = ++p; 1; p++)
+ {
+ switch (*p)
+ {
+ case ';':
+ //!!!
+ /+
+ c = HtmlNamedEntity(idstart, p - idstart);
+ if( c == ~0 )
+ {
+ error("unnamed character entity &%.*s;", p - idstart, idstart);
+ c = ' ';
+ }
+
+ p++;
+ +/
+ break;
+
+ default:
+ if (isalpha(*p) || (p != idstart + 1 && isdigit(*p)))
+ continue;
+ error("unterminated named entity");
+ break;
+ }
+ break;
+ }
+ break;
+
+ case 0:
+ case 0x1a: // end of file
+ c = '\\';
+ break;
+
+ default:
+ if (isoctal(c))
+ {
+ ubyte v;
+
+ n = 0;
+ do
+ {
+ v = v * 8 + (c - '0');
+ c = *++p;
+ } while (++n < 3 && isoctal(c));
+ c = v;
+ }
+ else
+ error("undefined escape sequence \\%s\n", c);
+ break;
+ }
+ return c;
+ }
+
+ /**************************************
+ */
+
+ TOK wysiwygStringConstant(Token *t, int tc)
+ {
+ uint c;
+ Loc start = loc;
+
+ p++;
+ stringbuffer.offset = 0;
+ while (1)
+ {
+ c = *p++;
+ switch (c)
+ {
+ case '\n':
+ loc.linnum++;
+ break;
+
+ case '\r':
+ if (*p == '\n')
+ continue; // ignore
+ c = '\n'; // treat EndOfLine as \n character
+ loc.linnum++;
+ break;
+
+ case 0:
+ case 0x1a:
+ error("unterminated string constant starting at %s", start.toChars());
+ t.ustring = "";
+ t.postfix = 0;
+ return TOK.TOKstring;
+
+ case '"':
+ case '`':
+ if (c == tc)
+ {
+// t.len = stringbuffer.offset;
+ stringbuffer.write(cast(byte)0);
+ t.ustring = stringbuffer.toString;
+// t.ustring = (ubyte *)mem.malloc(stringbuffer.offset);
+// memcpy(t.ustring, stringbuffer.data, stringbuffer.offset);
+ stringPostfix(t);
+ return TOK.TOKstring;
+ }
+ break;
+
+ default:
+ if (c & 0x80)
+ {
+ p--;
+ uint u = decodeUTF();
+
+ p++;
+ if (u == PS || u == LS)
+ loc.linnum++;
+ stringbuffer.write(u);
+ continue;
+ }
+ break;
+ }
+ stringbuffer.write(c);
+ }
+ }
+
+ /**************************************
+ * Lex hex strings:
+ * x"0A ae 34FE BD"
+ */
+
+ TOK hexStringConstant(Token *t)
+ {
+ uint c;
+ Loc start = loc;
+ uint n = 0;
+ uint v;
+
+ p++;
+ stringbuffer.offset = 0;
+ while (1)
+ {
+ c = *p++;
+ switch (c)
+ {
+ case ' ':
+ case '\t':
+ case '\v':
+ case '\f':
+ continue; // skip white space
+
+ case '\r':
+ if (*p == '\n')
+ continue; // ignore
+
+ // Treat isolated '\r' as if it were a '\n'
+ case '\n':
+ loc.linnum++;
+ continue;
+
+ case 0:
+ case 0x1a:
+ error("unterminated string constant starting at %s", start.toChars());
+ t.ustring = "";
+ t.postfix = 0;
+ return TOK.TOKstring;
+
+ case '"':
+ if (n & 1)
+ {
+ error("odd number (%d) of hex characters in hex string", n);
+ stringbuffer.write(v);
+ }
+// t.len = stringbuffer.offset;
+// stringbuffer.write(cast(byte)0);
+ t.ustring = stringbuffer.toString;
+// t.ustring = (ubyte *)mem.malloc(stringbuffer.offset);
+// memcpy(t.ustring, stringbuffer.data, stringbuffer.offset);
+ stringPostfix(t);
+ return TOK.TOKstring;
+
+ default:
+ if (c >= '0' && c <= '9')
+ c -= '0';
+ else if (c >= 'a' && c <= 'f')
+ c -= 'a' - 10;
+ else if (c >= 'A' && c <= 'F')
+ c -= 'A' - 10;
+ else if (c & 0x80)
+ {
+ p--;
+ uint u = decodeUTF();
+
+ p++;
+ if (u == PS || u == LS)
+ loc.linnum++;
+ else
+ error("non-hex character \\u%x", u);
+ }
+ else
+ error("non-hex character '%s'", c);
+ if (n & 1)
+ {
+ v = (v << 4) | c;
+ stringbuffer.write(v);
+ }
+ else
+ v = c;
+ n++;
+ break;
+ }
+ }
+ }
+
+ /**************************************
+ */
+
+ TOK escapeStringConstant(Token *t, int wide)
+ {
+ uint c;
+ Loc start = loc;
+
+ p++;
+ stringbuffer.offset = 0;
+ // debug writefln( "escape string constant: %s", std.string.toString( cast(char*)p ) );
+ while (1)
+ {
+ c = *p++;
+ switch (c)
+ {
+ case '\\':
+ switch (*p)
+ {
+ case 'u':
+ case 'U':
+ case '&':
+ c = escapeSequence();
+ stringbuffer.write(c);
+ continue;
+
+ default:
+ c = escapeSequence();
+ break;
+ }
+ break;
+
+ case '\n':
+ loc.linnum++;
+ break;
+
+ case '\r':
+ if (*p == '\n')
+ continue; // ignore
+ c = '\n'; // treat EndOfLine as \n character
+ loc.linnum++;
+ break;
+
+ case '"':
+// writefln( "end of string: ", stringbuffer.toString );
+ t.ustring = stringbuffer.toString().dup;
+ // t.len = stringbuffer.offset;
+ // stringbuffer.write(cast(byte)0);
+ // t.ustring = (ubyte *)mem.malloc(stringbuffer.offset);
+ // memcpy(t.ustring, stringbuffer.data, stringbuffer.offset);
+ stringPostfix(t);
+
+ return TOK.TOKstring;
+
+ case 0:
+ case 0x1a:
+ p--;
+ error("unterminated string constant starting at %s", start.toChars());
+ t.ustring = "";
+// t.len = 0;
+ t.postfix = 0;
+ return TOK.TOKstring;
+
+ default:
+ if (c & 0x80)
+ {
+ p--;
+ c = decodeUTF();
+ if (c == LS || c == PS)
+ {
+ c = '\n';
+ loc.linnum++;
+ }
+ p++;
+ stringbuffer.write(cast(char)c);
+ continue;
+ }
+ break;
+ }
+ stringbuffer.write(cast(char)c);
+// writefln( stringbuffer.toString );
+ }
+ }
+
+ //**************************************
+ TOK charConstant(Token *t, int wide)
+ {
+ uint c;
+ TOK tk = TOK.TOKcharv;
+
+ //printf("Lexer.charConstant\n");
+ p++;
+ c = *p++;
+ switch (c)
+ {
+ case '\\':
+ switch (*p)
+ {
+ case 'u':
+ t.uns64value = escapeSequence();
+ tk = TOK.TOKwcharv;
+ break;
+
+ case 'U':
+ case '&':
+ t.uns64value = escapeSequence();
+ tk = TOK.TOKdcharv;
+ break;
+
+ default:
+ t.uns64value = escapeSequence();
+ break;
+ }
+ break;
+
+ case '\n':
+ L1:
+ loc.linnum++;
+
+ case '\r':
+ case 0:
+ case 0x1a:
+ case '\'':
+ error("unterminated character constant");
+ return tk;
+
+ default:
+ if (c & 0x80)
+ {
+ p--;
+ c = decodeUTF();
+ p++;
+ if (c == LS || c == PS)
+ goto L1;
+ if (c < 0xd800 || (c >= 0xe000 && c < 0xfffe))
+ tk = TOK.TOKwcharv;
+ else
+ tk = TOK.TOKdcharv;
+ }
+ t.uns64value = c;
+ break;
+ }
+
+ if (*p != '\'')
+ {
+ error("unterminated character constant");
+ return tk;
+ }
+ p++;
+ return tk;
+ }
+
+ // Get postfix of string literal.
+ void stringPostfix(Token *t)
+ {
+ switch (*p)
+ {
+ case 'c':
+ case 'w':
+ case 'd':
+ t.postfix = *p;
+ p++;
+ break;
+
+ default:
+ t.postfix = 0;
+ break;
+ }
+ }
+
+ /***************************************
+ * Read \u or \U unicode sequence
+ * Input:
+ * u 'u' or 'U'
+ */
+ /*
+ uint Wchar(uint u)
+ {
+ uint value;
+ uint n;
+ ubyte c;
+ uint nchars;
+
+ nchars = (u == 'U') ? 8 : 4;
+ value = 0;
+ for (n = 0; 1; n++)
+ {
+ ++p;
+ if( n == nchars)
+ break;
+ c = *p;
+ if( !ishex(c))
+ {
+ error("\\%s sequence must be followed by %d hex characters", u, nchars);
+ break;
+ }
+ if( isdigit(c))
+ c -= '0';
+ else if( islower(c))
+ c -= 'a' - 10;
+ else
+ c -= 'A' - 10;
+ value <<= 4;
+ value |= c;
+ }
+ return value;
+ }
+ */
+
+ /**************************************
+ * Read in a number.
+ * If it's an integer, store it in tok.TKutok.Vlong.
+ * integers can be decimal, octal or hex
+ * Handle the suffixes U, UL, LU, L, etc.
+ * If it's double, store it in tok.TKutok.Vdouble.
+ * Returns:
+ * TKnum
+ * TKdouble,...
+ */
+
+ TOK number(Token *t)
+ {
+ //debug writefln("Lexer.number()");
+ // We use a state machine to collect numbers
+ enum STATE
+ {
+ STATE_initial,
+ STATE_0,
+ STATE_decimal,
+ STATE_octal,
+ STATE_octale,
+ STATE_hex,
+ STATE_binary,
+ STATE_hex0,
+ STATE_binary0,
+ STATE_hexh,
+ STATE_error
+ }
+
+ enum FLAGS
+ {
+ FLAGS_decimal = 1, // decimal
+ FLAGS_unsigned = 2, // u or U suffix
+ FLAGS_long = 4, // l or L suffix
+ }
+ FLAGS flags = FLAGS.FLAGS_decimal;
+
+ int i;
+ TOK result;
+ int base;
+
+ stringbuffer.offset = 0;
+// stringbuffer.data = null;
+ STATE state = STATE.STATE_initial;
+ ubyte *start = p;
+
+ TOK _isreal()
+ {
+ p = start;
+ return inreal(t);
+ }
+
+ while (true)
+ {
+ char c = cast(char)*p;
+
+ switch (state)
+ {
+ case STATE.STATE_initial: // opening state
+ if (c == '0')
+ state = STATE.STATE_0;
+ else
+ state = STATE.STATE_decimal;
+ break;
+
+ case STATE.STATE_0:
+ flags = cast(FLAGS)(flags & ~FLAGS.FLAGS_decimal);
+ switch (c)
+ {
+ // #if ZEROH
+// case 'H': // 0h
+// case 'h':
+// goto hexh;
+ // #endif
+ case 'X':
+ case 'x':
+ state = STATE.STATE_hex0;
+ break;
+
+ case '.':
+ if (p[1] == '.') // .. is a separate token
+ goto done;
+
+ case 'i':
+ case 'f':
+ case 'F':
+ goto _Real;
+
+ // #if ZEROH
+// case 'E':
+// case 'e':
+// goto case_hex;
+ // #endif
+ case 'B':
+ case 'b':
+ state = STATE.STATE_binary0;
+ break;
+
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ state = STATE.STATE_octal;
+ break;
+
+ // #if ZEROH
+// case '8': case '9': case 'A':
+// case 'C': case 'D': case 'F':
+// case 'a': case 'c': case 'd': case 'f':
+// case_hex:
+// state = STATE.STATE_hexh;
+// break;
+ // #endif
+ case '_':
+ state = STATE.STATE_octal;
+ p++;
+ continue;
+
+ default:
+ goto done;
+ }
+ break;
+
+ case STATE.STATE_decimal: // reading decimal number
+
+ // if its not a digit - decimal complete or not a decimal
+ if (!isdigit(c))
+ {
+// debug writefln( "\tnon-digit( %s )", c );
+ // #if ZEROH
+// if( ishex(c) || c == 'H' || c == 'h' )
+// goto hexh;
+ // #endif
+ //! wtf ?
+ // ignore embedded _
+ if (c == '_')
+ {
+ p++;
+ continue;
+ }
+
+ // check decimal point - make real
+ if (c == '.' && p[1] != '.')
+ goto _Real;
+
+ // check for mantra - make real
+ if (c == 'i' || c == 'f' || c == 'F' || c == 'e' || c == 'E')
+ {
+ _Real: // It's a real number. Back up and rescan as a real
+ p = start;
+ return inreal(t);
+ }
+
+ goto done;
+ }
+ break;
+
+ case STATE.STATE_hex0: // reading hex number
+ case STATE.STATE_hex:
+ if (!ishex(c))
+ {
+ if (c == '_') // ignore embedded _
+ {
+ p++;
+ continue;
+ }
+ if (c == '.' && p[1] != '.')
+ goto _Real;
+ if (c == 'P' || c == 'p' || c == 'i')
+ goto _Real;
+ if (state == STATE.STATE_hex0)
+ error("Hex digit expected, not '%s'", c);
+ goto done;
+ }
+ state = STATE.STATE_hex;
+ break;
+
+ // #if ZEROH
+// hexh:
+// state = STATE.STATE_hexh;
+//
+// case STATE.STATE_hexh: // parse numbers like 0FFh
+// if( !ishex(c))
+// {
+// if( c == 'H' || c == 'h')
+// {
+// p++;
+// base = 16;
+// goto done;
+// }
+// else
+// {
+// // Check for something like 1E3 or 0E24
+// if( memchr(stringbuffer.data.ptr, 'E', stringbuffer.offset) || memchr( stringbuffer.data.ptr, 'e', stringbuffer.offset))
+// goto _Real;
+// error("Hex digit expected, not '%s'", c);
+// goto done;
+// }
+// }
+// break;
+ // #endif
+
+ case STATE.STATE_octal: // reading octal number
+ case STATE.STATE_octale: // reading octal number with non-octal digits
+ if (!isoctal(c))
+ {
+// #if ZEROH
+// if( ishex(c) || c == 'H' || c == 'h' )
+// goto hexh;
+// #endif
+ if (c == '_') // ignore embedded _
+ {
+ p++;
+ continue;
+ }
+ if (c == '.' && p[1] != '.')
+ goto _Real;
+ if (c == 'i')
+ goto _Real;
+ if (isdigit(c))
+ state = STATE.STATE_octale;
+ else
+ goto done;
+ }
+ break;
+
+ case STATE.STATE_binary0: // starting binary number
+ case STATE.STATE_binary: // reading binary number
+ if (c != '0' && c != '1')
+ {
+ // #if ZEROH
+// if( ishex(c) || c == 'H' || c == 'h' )
+// goto hexh;
+ // #endif
+ if (c == '_') // ignore embedded _
+ {
+ p++;
+ continue;
+ }
+ if (state == STATE.STATE_binary0)
+ {
+ error("binary digit expected");
+ state = STATE.STATE_error;
+ break;
+ }
+ else
+ goto done;
+ }
+ state = STATE.STATE_binary;
+ break;
+
+ case STATE.STATE_error: // for error recovery
+ if (!isdigit(c)) // scan until non-digit
+ goto done;
+ break;
+
+ default:
+ assert(0);
+ }
+ stringbuffer.write(cast(char)c);
+ p++;
+ }
+ done:
+ stringbuffer.write(cast(char)0); // terminate string
+
+// debug writefln( "\tdigit complete( %s )", stringbuffer.toString );
+
+ if (state == STATE.STATE_octale)
+ error("Octal digit expected");
+
+ uinteger_t n; // unsigned >=64 bit integer type
+
+ if (stringbuffer.offset == 2 && (state == STATE.STATE_decimal || state == STATE.STATE_0))
+ n = stringbuffer.data[0] - '0';
+ else
+ {
+ // Convert string to integer
+ char *p = cast(char *)stringbuffer.data.ptr;
+ int r = 10;
+ int d;
+
+ if (*p == '0')
+ {
+ if (p[1] == 'x' || p[1] == 'X')
+ {
+ // "0x#"
+ p += 2;
+ r = 16;
+ }
+ else if (p[1] == 'b' || p[1] == 'B')
+ {
+ // "0b#" - binary
+ p += 2;
+ r = 2;
+ }
+ else if (isdigit(p[1]))
+ {
+ p += 1;
+ r = 8;
+ }
+ }
+
+ n = 0;
+
+ while (true)
+ {
+ if (*p >= '0' && *p <= '9')
+ d = *p - '0';
+ else if (*p >= 'a' && *p <= 'z')
+ d = *p - 'a' + 10;
+ else if (*p >= 'A' && *p <= 'Z')
+ d = *p - 'A' + 10;
+ else
+ break;
+
+ if (d >= r)
+ break;
+
+ if (n * r + d < n)
+ {
+ error("integer overflow");
+ break;
+ }
+
+ n = n * r + d;
+ p++;
+ }
+
+ // if n needs more than 64 bits
+ if (n.sizeof > 8 && n > 0xffffffffffffffffL)
+ error("integer overflow");
+ }
+
+ // Parse trailing 'u', 'U', 'l' or 'L' in any combination
+ while (true)
+ {
+ ubyte f;
+
+ switch (*p)
+ {
+ case 'U':
+ case 'u':
+ f = FLAGS.FLAGS_unsigned;
+ goto L1;
+
+ case 'L':
+ case 'l':
+ f = FLAGS.FLAGS_long;
+ L1:
+ p++;
+ if (flags & f)
+ error("unrecognized token");
+ flags = cast(FLAGS)(flags | f);
+ continue;
+
+ default:
+ break;
+ }
+ break;
+ }
+
+ switch (flags)
+ {
+ case 0:
+ /* Octal or Hexadecimal constant.
+ * First that fits: int, uint, long, ulong
+ */
+ if (n & 0x8000000000000000L)
+ result = TOK.TOKuns64v;
+ else if (n & 0xffffffff00000000L)
+ result = TOK.TOKint64v;
+ else if (n & 0x80000000)
+ result = TOK.TOKuns32v;
+ else
+ result = TOK.TOKint32v;
+ break;
+
+ case FLAGS.FLAGS_decimal:
+ /* First that fits: int, long, long long
+ */
+ if (n & 0x8000000000000000L)
+ {
+ error("signed integer overflow");
+ result = TOK.TOKuns64v;
+ }
+ else if (n & 0xffffffff80000000L)
+ result = TOK.TOKint64v;
+ else
+ result = TOK.TOKint32v;
+ break;
+
+ case FLAGS.FLAGS_unsigned:
+ case FLAGS.FLAGS_decimal | FLAGS.FLAGS_unsigned:
+ /* First that fits: uint, ulong
+ */
+ if (n & 0xffffffff00000000L)
+ result = TOK.TOKuns64v;
+ else
+ result = TOK.TOKuns32v;
+ break;
+
+ case FLAGS.FLAGS_decimal | FLAGS.FLAGS_long:
+ if (n & 0x8000000000000000L)
+ {
+ error("signed integer overflow");
+ result = TOK.TOKuns64v;
+ }
+ else
+ result = TOK.TOKint64v;
+ break;
+
+ case FLAGS.FLAGS_long:
+ if (n & 0x8000000000000000L)
+ result = TOK.TOKuns64v;
+ else
+ result = TOK.TOKint64v;
+ break;
+
+ case FLAGS.FLAGS_unsigned | FLAGS.FLAGS_long:
+ case FLAGS.FLAGS_decimal | FLAGS.FLAGS_unsigned | FLAGS.FLAGS_long:
+ result = TOK.TOKuns64v;
+ break;
+
+ default:
+ debug writefln("%x", flags);
+ assert(0);
+ }
+ t.uns64value = n;
+ return result;
+ }
+
+ /**************************************
+ * Read in characters, converting them to real.
+ * Bugs:
+ * Exponent overflow not detected.
+ * Too much requested precision is not detected.
+ */
+
+ TOK inreal(Token *t)
+ {
+ int dblstate;
+ uint c;
+ char hex; // is this a hexadecimal-floating-constant?
+ TOK result;
+
+ //printf("Lexer.inreal()\n");
+ stringbuffer.offset = 0;
+ dblstate = 0;
+ hex = 0;
+ Lnext:
+ while (1)
+ {
+ // Get next char from input
+ c = *p++;
+ //printf("dblstate = %d, c = '%s'\n", dblstate, c);
+ while (1)
+ {
+ switch (dblstate)
+ {
+ case 0: // opening state
+ if (c == '0')
+ dblstate = 9;
+ else if (c == '.')
+ dblstate = 3;
+ else
+ dblstate = 1;
+ break;
+
+ case 9:
+ dblstate = 1;
+ if (c == 'X' || c == 'x')
+ {
+ hex++;
+ break;
+ }
+
+ case 1: // digits to left of .
+ case 3: // digits to right of .
+ case 7: // continuing exponent digits
+ if (!isdigit(c) && !(hex && isxdigit(c)))
+ {
+ if (c == '_')
+ goto Lnext; // ignore embedded '_'
+ dblstate++;
+ continue;
+ }
+ break;
+
+ case 2: // no more digits to left of .
+ if (c == '.')
+ {
+ dblstate++;
+ break;
+ }
+
+ case 4: // no more digits to right of .
+ if ((c == 'E' || c == 'e') || hex && (c == 'P' || c == 'p'))
+ {
+ dblstate = 5;
+ hex = 0; // exponent is always decimal
+ break;
+ }
+ if (hex)
+ error("binary-exponent-part required");
+ goto done;
+
+ case 5: // looking immediately to right of E
+ dblstate++;
+ if (c == '-' || c == '+')
+ break;
+
+ case 6: // 1st exponent digit expected
+ if (!isdigit(c))
+ error("exponent expected");
+ dblstate++;
+ break;
+
+ case 8: // past end of exponent digits
+ goto done;
+ }
+ break;
+ }
+ stringbuffer.write(c);
+ }
+ done:
+ p--;
+
+ stringbuffer.write(cast(byte)0);
+
+// #if _WIN32 && __DMC__
+ char *save = __locale_decpoint;
+
+ __locale_decpoint = ".";
+// #endif
+ t.float80value = strtold(cast(char *)stringbuffer.data.ptr, null);
+ errno = 0;
+ switch (*p)
+ {
+ case 'F':
+ case 'f':
+ strtof(cast(char *)stringbuffer.data.ptr, null);
+ result = TOK.TOKfloat32v;
+ p++;
+ break;
+
+ default:
+ strtod(cast(char *)stringbuffer.data.ptr, null);
+ result = TOK.TOKfloat64v;
+ break;
+
+ case 'L':
+ case 'l':
+ result = TOK.TOKfloat80v;
+ p++;
+ break;
+ }
+ if (*p == 'i' || *p == 'I')
+ {
+ p++;
+ switch (result)
+ {
+ case TOK.TOKfloat32v:
+ result = TOK.TOKimaginary32v;
+ break;
+
+ case TOK.TOKfloat64v:
+ result = TOK.TOKimaginary64v;
+ break;
+
+ case TOK.TOKfloat80v:
+ result = TOK.TOKimaginary80v;
+ break;
+ }
+ }
+// #if _WIN32 && __DMC__
+ __locale_decpoint = save;
+// #endif
+ if (errno == ERANGE)
+ error("number is not representable");
+ return result;
+ }
+
+
+
+
+ /*********************************************
+ * Do pragma.
+ * Currently, the only pragma supported is:
+ * #line linnum [filespec]
+ */
+
+ void Pragma()
+ {
+ Token tok;
+ int linnum;
+
+ char[] filespec;
+ Loc loc = this.loc;
+
+ scan(&tok);
+
+ if (tok.value != TOK.TOKidentifier || tok.identifier != Id.line)
+ goto Lerr;
+
+ scan(&tok);
+ if (tok.value == TOK.TOKint32v || tok.value == TOK.TOKint64v)
+ linnum = tok.uns64value - 1;
+ else
+ goto Lerr;
+
+ while (1)
+ {
+ switch (*p)
+ {
+ case 0:
+ case 0x1a:
+ case '\n':
+ Lnewline:
+ this.loc.linnum = linnum;
+ if (filespec.length)
+ this.loc.filename = filespec;
+ return;
+
+ case '\r':
+ p++;
+ if (*p != '\n')
+ {
+ p--;
+ goto Lnewline;
+ }
+ continue;
+
+ case ' ':
+ case '\t':
+ case '\v':
+ case '\f':
+ p++;
+ continue; // skip white space
+
+ case '_':
+ if (mod && memcmp(p, cast(char *)"__FILE__", 8) == 0)
+ {
+ p += 8;
+//! filespec = mem.strdup(loc.filename ? loc.filename : mod.identifier.toChars());
+ }
+ continue;
+
+ case '"':
+ if (filespec)
+ goto Lerr;
+ stringbuffer.offset = 0;
+ p++;
+ while (1)
+ {
+ uint c;
+
+ c = *p;
+ switch (c)
+ {
+ case '\n':
+ case '\r':
+ case 0:
+ case 0x1a:
+ goto Lerr;
+
+ case '"':
+ stringbuffer.write(cast(byte)0);
+ // filespec = mem.strdup((char *)stringbuffer.data);
+ filespec = stringbuffer.toString.dup;
+ p++;
+ break;
+
+ default:
+ if (c & 0x80)
+ {
+ uint u = decodeUTF();
+
+ if (u == PS || u == LS)
+ goto Lerr;
+ }
+ stringbuffer.write(c);
+ p++;
+ continue;
+ }
+ break;
+ }
+ continue;
+
+ default:
+ if (*p & 0x80)
+ {
+ uint u = decodeUTF();
+
+ if (u == PS || u == LS)
+ goto Lnewline;
+ }
+ goto Lerr;
+ }
+ }
+
+ Lerr:
+ errorLoc(loc, "#line integer [\"filespec\"]\\n expected");
+ }
+
+
+
+ /***************************************************
+ * Parse doc comment embedded between t.ptr and p.
+ * Remove trailing blanks and tabs from lines.
+ * Replace all newlines with \n.
+ * Remove leading comment character from each line.
+ * Decide if it's a lineComment or a blockComment.
+ * Append to previous one for this token.
+ */
+
+ void getDocComment(Token *t, uint lineComment)
+ {
+ auto OutBuffer buf = new OutBuffer;
+ ubyte ct = t.ptr[2];
+ ubyte *q = t.ptr + 3; // start of comment text
+ int linestart = 0;
+
+ ubyte *qend = p;
+
+ if (ct == '*' || ct == '+')
+ qend -= 2;
+
+ // Scan over initial row of ****'s or ++++'s or ////'s
+ for (; q < qend; q++)
+ {
+ if (*q != ct)
+ break;
+ }
+
+ // Remove trailing row of ****'s or ++++'s
+ if (ct != '/')
+ {
+ for (; q < qend; qend--)
+ {
+ if (qend[-1] != ct)
+ break;
+ }
+ }
+
+ for (; q < qend; q++)
+ {
+ ubyte c = *q;
+
+ switch (c)
+ {
+ case '*':
+ case '+':
+ if (linestart && c == ct)
+ {
+ linestart = 0;
+ // Trim preceding whitespace up to preceding \n
+ while (buf.offset && (buf.data[buf.offset - 1] == ' ' || buf.data[buf.offset - 1] == '\t'))
+ buf.offset--;
+ continue;
+ }
+ break;
+
+ case ' ':
+ case '\t':
+ break;
+
+ case '\r':
+ if (q[1] == '\n')
+ continue; // skip the \r
+ goto Lnewline;
+
+ default:
+ if (c == 226)
+ {
+ // If LS or PS
+ if (q[1] == 128 &&
+ (q[2] == 168 || q[2] == 169))
+ {
+ q += 2;
+ goto Lnewline;
+ }
+ }
+ linestart = 0;
+ break;
+
+ Lnewline:
+ c = '\n'; // replace all newlines with \n
+
+ case '\n':
+ linestart = 1;
+
+ // Trim trailing whitespace
+ while (buf.offset && (buf.data[buf.offset - 1] == ' ' || buf.data[buf.offset - 1] == '\t'))
+ buf.offset--;
+
+ break;
+ }
+ buf.write(c);
+ }
+
+ // Always end with a newline
+ if (!buf.offset || buf.data[buf.offset - 1] != '\n')
+ buf.writenl();
+
+ //buf.write(cast(char)0);
+
+ // It's a line comment if the start of the doc comment comes
+ // after other non-whitespace on the same line.
+// ubyte** dc = (lineComment && anyToken)
+// ? &t.lineComment
+// : &t.blockComment;
+
+ char[] dc = (lineComment && anyToken) ? t.lineComment : t.blockComment;
+
+ // Combine with previous doc comment, if any
+ if (dc.length)
+ dc = combineComments(dc, buf.toString().dup);
+ else
+ dc = buf.toString().dup;
+
+// writefln( dc );
+
+ if (lineComment && anyToken)
+ t.lineComment = dc;
+ else
+ t.blockComment = dc;
+ }
+}
+
+// character maps
+static ubyte[256] cmtable;
+
+const int CMoctal = 0x1;
+const int CMhex = 0x2;
+const int CMidchar = 0x4;
+
+ubyte isoctal(ubyte c)
+{
+ return cmtable[c] & CMoctal;
+}
+ubyte ishex(ubyte c)
+{
+ return cmtable[c] & CMhex;
+}
+ubyte isidchar(ubyte c)
+{
+ return cmtable[c] & CMidchar;
+}
+
+static void cmtable_init()
+{
+ for (uint c = 0; c < cmtable.length; c++)
+ {
+ if ('0' <= c && c <= '7')
+ cmtable[c] |= CMoctal;
+ if (isdigit(c) || ('a' <= c && c <= 'f') || ('A' <= c && c <= 'F'))
+ cmtable[c] |= CMhex;
+ if (isalnum(c) || c == '_')
+ cmtable[c] |= CMidchar;
+ }
+}
+
+
+/+
+ struct StringValue
+ {
+ union
+ {
+ int intvalue;
+ void *ptrvalue;
+ dchar *string;
+ }
+
+ char[] lstring;
+ }
+ #define CASE_BASIC_TYPES
+ case TOKwchar: case TOKdchar:
+ case TOKbit: case TOKbool: case TOKchar:
+ case TOKint8: case TOKuns8:
+ case TOKint16: case TOKuns16:
+ case TOKint32: case TOKuns32:
+ case TOKint64: case TOKuns64:
+ case TOKfloat32: case TOKfloat64: case TOKfloat80:
+ case TOKimaginary32: case TOKimaginary64: case TOKimaginary80:
+ case TOKcomplex32: case TOKcomplex64: case TOKcomplex80:
+ case TOKvoid:
+
+ #define CASE_BASIC_TYPES_X(t) \
+ case TOKvoid: t = Type::tvoid; goto LabelX; \
+ case TOKint8: t = Type::tint8; goto LabelX; \
+ case TOKuns8: t = Type::tuns8; goto LabelX; \
+ case TOKint16: t = Type::tint16; goto LabelX; \
+ case TOKuns16: t = Type::tuns16; goto LabelX; \
+ case TOKint32: t = Type::tint32; goto LabelX; \
+ case TOKuns32: t = Type::tuns32; goto LabelX; \
+ case TOKint64: t = Type::tint64; goto LabelX; \
+ case TOKuns64: t = Type::tuns64; goto LabelX; \
+ case TOKfloat32: t = Type::tfloat32; goto LabelX; \
+ case TOKfloat64: t = Type::tfloat64; goto LabelX; \
+ case TOKfloat80: t = Type::tfloat80; goto LabelX; \
+ case TOKimaginary32: t = Type::timaginary32; goto LabelX; \
+ case TOKimaginary64: t = Type::timaginary64; goto LabelX; \
+ case TOKimaginary80: t = Type::timaginary80; goto LabelX; \
+ case TOKcomplex32: t = Type::tcomplex32; goto LabelX; \
+ case TOKcomplex64: t = Type::tcomplex64; goto LabelX; \
+ case TOKcomplex80: t = Type::tcomplex80; goto LabelX; \
+ case TOKbit: t = Type::tbit; goto LabelX; \
+ case TOKchar: t = Type::tchar; goto LabelX; \
+ case TOKwchar: t = Type::twchar; goto LabelX; \
+ case TOKdchar: t = Type::tdchar; goto LabelX; \
+ LabelX
+ +/
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40007-Lexer.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40007-Lexer.d
index 50f40a49..50f40a49 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40007-Lexer.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40007-Lexer.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40010-template.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40010-template.d
index eaad2b5d..eaad2b5d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40010-template.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40010-template.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40011-template.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40011-template.d
index 5c106063..5c106063 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40011-template.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40011-template.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40012-template.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40012-template.d
index dbe1fb85..dbe1fb85 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40012-template.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40012-template.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40013-template.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40013-template.d
index ec69b8bf..ec69b8bf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40013-template.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40013-template.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40020-funcfunc.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40020-funcfunc.d
index de673e78..de673e78 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40020-funcfunc.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40020-funcfunc.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40021-tst01.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40021-tst01.d
new file mode 100644
index 00000000..a2f63fc0
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40021-tst01.d
@@ -0,0 +1,27 @@
+package void writeRegister(int aRegisterOffset, ushort aValue)
+in
+{
+ assert(aRegisterOffset >= 0);
+ assert(aRegisterOffset < IMAGE_SIZE);
+}
+body {
+ int idx = aRegisterOffset / 2;
+
+ mMemCache[idx] = aValue;
+ uint readback;
+ uint st;
+ uint st2;
+
+ volatile {
+ mMemImage[idx] = aValue;
+ //readback = (cast(uint*)mMemImage.ptr)[ idx/2 ];
+ //st = mMemImage[ 0x28/2 ];
+ //st2 = mMemImage[ 0x2A/2 ];
+ }
+ //if( aValue != readback )
+ {
+ //debug(IRQ) writefln( "writeRegister %04x, %04x", aRegisterOffset, aValue);
+ }
+ // comment
+}
+//
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40022-tst02.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40022-tst02.d
index aa138a86..aa138a86 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40022-tst02.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40022-tst02.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40023-bug-indent.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40023-bug-indent.d
index 6071604d..6071604d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40023-bug-indent.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40023-bug-indent.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40024-tst03.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40024-tst03.d
index 2344510d..2344510d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40024-tst03.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40024-tst03.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40025-tst03.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40025-tst03.d
index 15811ebc..15811ebc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40025-tst03.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40025-tst03.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40026-wysiwyg_strings.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40026-wysiwyg_strings.d
index cfdec32a..cfdec32a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40026-wysiwyg_strings.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40026-wysiwyg_strings.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40027-static_if_in_struct.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40027-static_if_in_struct.d
index be936335..be936335 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40027-static_if_in_struct.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40027-static_if_in_struct.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40030-delegate.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40030-delegate.d
new file mode 100644
index 00000000..d06dfd05
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40030-delegate.d
@@ -0,0 +1,23 @@
+module er;
+
+void delegate(ubyte[] a) TSender;
+bool delegate(ushort a) TVerifier;
+typedef ushort TAddr;
+
+public void delegate(ubyte[] a) TSender;
+public bool delegate(ushort a) TVerifier;
+
+public typedef ushort TAddr;
+
+void delegate() dg;
+dg = {
+ int y;
+};
+
+int opApply(int delegate(inout Type[, ...]) dg);
+
+void main()
+{
+ assert(findIf("bcecg", (int x) { return x == 'a'; }) == 5);
+}
+
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40035-enum.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40035-enum.d
index 24d0ef63..24d0ef63 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40035-enum.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40035-enum.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40040-sort_import.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40040-sort_import.d
index db26c1e4..db26c1e4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40040-sort_import.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40040-sort_import.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40050-strings.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40050-strings.d
index 4964ad7a..4964ad7a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40050-strings.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40050-strings.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40051-numbers.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40051-numbers.d
index 72d55727..72d55727 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40051-numbers.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40051-numbers.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40052-numbers.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40052-numbers.d
index 8cf51f29..8cf51f29 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40052-numbers.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40052-numbers.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40060-casts.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40060-casts.d
index b1d6b50b..b1d6b50b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40060-casts.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40060-casts.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40061-const.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40061-const.d
index 8277f0c1..8277f0c1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40061-const.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40061-const.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40070-d_sp_paren.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40070-d_sp_paren.d
index cc38daae..cc38daae 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40070-d_sp_paren.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40070-d_sp_paren.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40080-static_if.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40080-static_if.d
index 0eb3a1a8..0eb3a1a8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40080-static_if.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40080-static_if.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40090-square_indent_tab.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40090-square_indent_tab.d
index e9657860..e9657860 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40090-square_indent_tab.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40090-square_indent_tab.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40100-1438.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40100-1438.d
index 66c47d3a..66c47d3a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40100-1438.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40100-1438.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40201-invariant.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40201-invariant.d
index 3da6240f..3da6240f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40201-invariant.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40201-invariant.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40300-extern_.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40300-extern_.d
index 40131d6d..40131d6d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40300-extern_.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40300-extern_.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40400-vbraces000.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40400-vbraces000.d
index 616bb259..616bb259 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40400-vbraces000.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40400-vbraces000.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40401-vbraces001.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40401-vbraces001.d
index 6d7e96f6..6d7e96f6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40401-vbraces001.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40401-vbraces001.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40402-vbraces002.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40402-vbraces002.d
index c966d140..c966d140 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40402-vbraces002.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40402-vbraces002.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40403-template_use.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40403-template_use.d
index 94cdbf6b..94cdbf6b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40403-template_use.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40403-template_use.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40500-template_spacing000.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40500-template_spacing000.d
index 627ca266..627ca266 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40500-template_spacing000.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40500-template_spacing000.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40501-template_spacing001.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40501-template_spacing001.d
index dc3242ff..dc3242ff 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40501-template_spacing001.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40501-template_spacing001.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40502-template_spacing001.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40502-template_spacing001.d
index 3c238a1f..3c238a1f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40502-template_spacing001.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40502-template_spacing001.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40503-template_spacing001.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40503-template_spacing001.d
index 010cbe07..010cbe07 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40503-template_spacing001.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40503-template_spacing001.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40504-type_spacing000.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40504-type_spacing000.d
index 1e47f131..1e47f131 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40504-type_spacing000.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40504-type_spacing000.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40505-type_spacing000.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40505-type_spacing000.d
index 1e47f131..1e47f131 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40505-type_spacing000.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40505-type_spacing000.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40506-type_spacing000.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40506-type_spacing000.d
index e11e545b..e11e545b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40506-type_spacing000.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/d/40506-type_spacing000.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/ecma/90000-example-1.es b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/ecma/90000-example-1.es
index 45f9b6cb..45f9b6cb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/ecma/90000-example-1.es
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/ecma/90000-example-1.es
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80000-assert.java b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80000-assert.java
index fbc20ba7..fbc20ba7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80000-assert.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80000-assert.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80010-annotation1.java b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80010-annotation1.java
index 314a0b91..314a0b91 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80010-annotation1.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80010-annotation1.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80011-annotation2.java b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80011-annotation2.java
index 1acc459f..1acc459f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80011-annotation2.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80011-annotation2.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80012-annotation2.java b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80012-annotation2.java
index 1acc459f..1acc459f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80012-annotation2.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80012-annotation2.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80013-annotation2.java b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80013-annotation2.java
index 42f5a1df..42f5a1df 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80013-annotation2.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80013-annotation2.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80014-annotation2.java b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80014-annotation2.java
index 42f5a1df..42f5a1df 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80014-annotation2.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80014-annotation2.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80020-foreach.java b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80020-foreach.java
index 69967517..69967517 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80020-foreach.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80020-foreach.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80030-variable_aligns.java b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80030-variable_aligns.java
index c73b62d3..c73b62d3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80030-variable_aligns.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80030-variable_aligns.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80040-try.java b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80040-try.java
index 78a55849..78a55849 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80040-try.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80040-try.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80050-double_brace.java b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80050-double_brace.java
index e00246e1..e00246e1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80050-double_brace.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80050-double_brace.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80051-double_brace.java b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80051-double_brace.java
index 66183ada..66183ada 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80051-double_brace.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80051-double_brace.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80060-synchronized.java b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80060-synchronized.java
index b8b70a6b..b8b70a6b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80060-synchronized.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80060-synchronized.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80061-synchronized.java b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80061-synchronized.java
index 73fc9b1d..73fc9b1d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80061-synchronized.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80061-synchronized.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80062-sp_this_paren.java b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80062-sp_this_paren.java
index 1c189223..1c189223 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80062-sp_this_paren.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80062-sp_this_paren.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80063-i1121.java b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80063-i1121.java
index 18567ec3..18567ec3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80063-i1121.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80063-i1121.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80064-long_cl_cmt.java b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80064-long_cl_cmt.java
index af7a1c7e..af7a1c7e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80064-long_cl_cmt.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80064-long_cl_cmt.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80065-Java8DoubleColon.java b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80065-Java8DoubleColon.java
index ec594909..ec594909 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80065-Java8DoubleColon.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80065-Java8DoubleColon.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80066-sp_after_for_colon.java b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80066-sp_after_for_colon.java
index 38515aed..38515aed 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80066-sp_after_for_colon.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80066-sp_after_for_colon.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80067-doxy-javadoc-alignment.java b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80067-doxy-javadoc-alignment.java
index 6b9f748b..6b9f748b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80067-doxy-javadoc-alignment.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80067-doxy-javadoc-alignment.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80068-nl_before_ignore_after_case.java b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80068-nl_before_ignore_after_case.java
index 50bfc274..50bfc274 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80068-nl_before_ignore_after_case.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80068-nl_before_ignore_after_case.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80100-sf567.java b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80100-sf567.java
index 9fc644b8..9fc644b8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80100-sf567.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80100-sf567.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80200-sp_before_byref.java b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80200-sp_before_byref.java
index 7927ee89..7927ee89 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80200-sp_before_byref.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80200-sp_before_byref.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80201-generics.java b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80201-generics.java
index 086786c0..086786c0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80201-generics.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80201-generics.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80202-generics_wildcard.java b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80202-generics_wildcard.java
index 358e333b..358e333b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80202-generics_wildcard.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80202-generics_wildcard.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80203-generics_return_type.java b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80203-generics_return_type.java
index 1f2aa340..1f2aa340 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80203-generics_return_type.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80203-generics_return_type.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80204-cast.java b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80204-cast.java
index 30d0dcc4..30d0dcc4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80204-cast.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80204-cast.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80205-sp_after_angle.java b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80205-sp_after_angle.java
index bd654485..bd654485 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80205-sp_after_angle.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80205-sp_after_angle.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80206-annotation3.java b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80206-annotation3.java
index 3d84c04c..3d84c04c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80206-annotation3.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80206-annotation3.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80300-Issue_670.java b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80300-Issue_670.java
index b0aa2cf0..b0aa2cf0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80300-Issue_670.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80300-Issue_670.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80301-issue_672.java b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80301-issue_672.java
index 16a077a4..16a077a4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80301-issue_672.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80301-issue_672.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80302-Issue_1845.java b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80302-Issue_1845.java
index 062c89d1..062c89d1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80302-Issue_1845.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80302-Issue_1845.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80303-Issue_1122.java b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80303-Issue_1122.java
index 111ee739..111ee739 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80303-Issue_1122.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80303-Issue_1122.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80304-Issue_1124.java b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80304-Issue_1124.java
index bca3cb33..bca3cb33 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80304-Issue_1124.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80304-Issue_1124.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80305-Issue_1124.java b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80305-Issue_1124.java
index 0469fed1..0469fed1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80305-Issue_1124.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80305-Issue_1124.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80306-leading-tabs-for-java-lambda.java b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80306-leading-tabs-for-java-lambda.java
index 19b6df0f..19b6df0f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80306-leading-tabs-for-java-lambda.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/java/80306-leading-tabs-for-java-lambda.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/10018-delete-space-oc.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/10018-delete-space-oc.mm
index 8760241b..8760241b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/10018-delete-space-oc.mm
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/10018-delete-space-oc.mm
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/10019-func-param-wrap-oc.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/10019-func-param-wrap-oc.mm
index 45601228..45601228 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/10019-func-param-wrap-oc.mm
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/10019-func-param-wrap-oc.mm
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/10020-align-objc-like-xcode.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/10020-align-objc-like-xcode.m
index 93066246..93066246 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/10020-align-objc-like-xcode.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/10020-align-objc-like-xcode.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/10021-double-indent-objc-dict.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/10021-double-indent-objc-dict.m
index a93bd81e..a93bd81e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/10021-double-indent-objc-dict.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/10021-double-indent-objc-dict.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/10022-indent-objc-block.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/10022-indent-objc-block.m
index 4aab0fc0..4aab0fc0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/10022-indent-objc-block.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/10022-indent-objc-block.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10033-objc.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/10033-objc.mm
index 07ede276..07ede276 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10033-objc.mm
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/10033-objc.mm
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10034-asm.h.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/10034-asm.h.mm
index 84a5efa8..84a5efa8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10034-asm.h.mm
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/10034-asm.h.mm
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10035-definesalign.h.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/10035-definesalign.h.mm
index 9ad29954..9ad29954 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10035-definesalign.h.mm
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/10035-definesalign.h.mm
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10036-inttypes.h.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/10036-inttypes.h.mm
index 4ac13417..4ac13417 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10036-inttypes.h.mm
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/10036-inttypes.h.mm
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-1333.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/10046-UNI-1333.mm
index 5c91693c..5c91693c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-1333.mm
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/10046-UNI-1333.mm
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10102-pp-ignore.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/10102-pp-ignore.mm
index f26232c9..f26232c9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10102-pp-ignore.mm
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/10102-pp-ignore.mm
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/11030-argtypes.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/11030-argtypes.mm
index 1afeb694..1afeb694 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/11030-argtypes.mm
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/11030-argtypes.mm
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/11031-casting.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/11031-casting.mm
index c73d6ef8..c73d6ef8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/11031-casting.mm
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/11031-casting.mm
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/11032-newlines.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/11032-newlines.mm
new file mode 100644
index 00000000..45fd64f9
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/11032-newlines.mm
@@ -0,0 +1,33 @@
+NSString* GetXcodePath()
+{
+ return [[NSWorkspace sharedWorkspace]absolutePathForAppBundleWithIdentifier: kXCodeBundleId];
+}
+
+extern "C" EXPORTDLL void LaunchXCode()
+{
+ NSString* curApp = GetXcodePath();
+ [[NSWorkspace sharedWorkspace] launchApplication: curApp];
+
+ NSArray *selectedApps =
+ [NSRunningApplication runningApplicationsWithBundleIdentifier: kXCodeBundleId];
+
+ for (int i = 0; i < [selectedApps count]; i++)
+ {
+ NSRunningApplication *app = [selectedApps objectAtIndex: i];
+ int count = 0;
+ NSLog(@"Checking %@\n", app);
+ while (![app isFinishedLaunching] && count++ < 300)
+ [[NSRunLoop currentRunLoop] runUntilDate: [NSDate dateWithTimeIntervalSinceNow: 1.0f]];
+ }
+}
+
+NSString* MakeNSString(const std::string& string)
+{
+ return MakeNSString(string.c_str());
+}
+
+NSString* MakeNSString(const char* string)
+{
+ NSString* ret = string ? [NSString stringWithUTF8String: string] : nil;
+ return ret ? ret : @"";
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50001-Fraction.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50001-Fraction.h
index b1e373c2..b1e373c2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50001-Fraction.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50001-Fraction.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50002-Fraction.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50002-Fraction.m
index 4ad6dfc8..4ad6dfc8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50002-Fraction.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50002-Fraction.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50003-main.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50003-main.m
index ec082dc1..ec082dc1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50003-main.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50003-main.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50004-string.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50004-string.m
index bbfeb51e..bbfeb51e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50004-string.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50004-string.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50005-Declarations.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50005-Declarations.h
index 3b65c41c..3b65c41c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50005-Declarations.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50005-Declarations.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50006-exceptions.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50006-exceptions.m
index 609d2086..609d2086 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50006-exceptions.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50006-exceptions.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50007-misc.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50007-misc.m
index 4de222a1..4de222a1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50007-misc.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50007-misc.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50008-protocol.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50008-protocol.m
index 50c4314a..50c4314a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50008-protocol.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50008-protocol.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50009-literals.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50009-literals.mm
index 4bd99277..4bd99277 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50009-literals.mm
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50009-literals.mm
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50010-return_type.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50010-return_type.m
index 62275a52..62275a52 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50010-return_type.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50010-return_type.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50011-return_type.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50011-return_type.m
index 7cc95485..7cc95485 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50011-return_type.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50011-return_type.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50012-return_type.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50012-return_type.m
index 106c5466..106c5466 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50012-return_type.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50012-return_type.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50014-sp_oc_classname_paren-r.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50014-sp_oc_classname_paren-r.m
index 847e9dca..847e9dca 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50014-sp_oc_classname_paren-r.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50014-sp_oc_classname_paren-r.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50015-receiver.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50015-receiver.m
index dd6ee3d6..dd6ee3d6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50015-receiver.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50015-receiver.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50016-ternary.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50016-ternary.m
index 42a573f4..42a573f4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50016-ternary.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50016-ternary.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50017-ternary.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50017-ternary.m
index d53fc319..d53fc319 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50017-ternary.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50017-ternary.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50018-indent-inside-ternary-operator.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50018-indent-inside-ternary-operator.m
index 0b6e1fa3..0b6e1fa3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50018-indent-inside-ternary-operator.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50018-indent-inside-ternary-operator.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50020-selector.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50020-selector.m
index c53db6fb..c53db6fb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50020-selector.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50020-selector.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50021-selector.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50021-selector.m
index 3442f700..3442f700 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50021-selector.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50021-selector.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50022-selector.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50022-selector.m
index 1d790cc9..1d790cc9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50022-selector.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50022-selector.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50025-exceptions.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50025-exceptions.m
index 609d2086..609d2086 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50025-exceptions.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50025-exceptions.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50026-exceptions.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50026-exceptions.m
index 150de092..150de092 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50026-exceptions.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50026-exceptions.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50030-sort_import.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50030-sort_import.m
index e0cfcb88..e0cfcb88 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50030-sort_import.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50030-sort_import.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50031-sort_import.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50031-sort_import.m
index e0cfcb88..e0cfcb88 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50031-sort_import.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50031-sort_import.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50032-sort_import.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50032-sort_import.m
index 37b4d643..37b4d643 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50032-sort_import.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50032-sort_import.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50033-sort_import.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50033-sort_import.m
index 7c2ab21f..7c2ab21f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50033-sort_import.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50033-sort_import.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50034-sort_import.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50034-sort_import.m
index f8a42242..f8a42242 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50034-sort_import.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50034-sort_import.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50035-sort_import_group.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50035-sort_import_group.m
index 251829df..251829df 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50035-sort_import_group.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50035-sort_import_group.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50040-complex_method.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50040-complex_method.m
index 29467813..29467813 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50040-complex_method.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50040-complex_method.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50050-real_world_file.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50050-real_world_file.m
new file mode 100644
index 00000000..a4bf639e
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50050-real_world_file.m
@@ -0,0 +1,229 @@
+/*
+ * File: ATColorTableController.m
+ * Abstract: A controller used by the ATImageTextCell to edit the color property. It is implemented in an abstract enough way to be used by a class other than the cell.
+ *
+ * Version: 1.0
+ *
+ * Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple
+ * Inc. ("Apple") in consideration of your agreement to the following
+ * terms, and your use, installation, modification or redistribution of
+ * this Apple software constitutes acceptance of these terms. If you do
+ * not agree with these terms, please do not use, install, modify or
+ * redistribute this Apple software.
+ *
+ * In consideration of your agreement to abide by the following terms, and
+ * subject to these terms, Apple grants you a personal, non-exclusive
+ * license, under Apple's copyrights in this original Apple software (the
+ * "Apple Software"), to use, reproduce, modify and redistribute the Apple
+ * Software, with or without modifications, in source and/or binary forms;
+ * provided that if you redistribute the Apple Software in its entirety and
+ * without modifications, you must retain this notice and the following
+ * text and disclaimers in all such redistributions of the Apple Software.
+ * Neither the name, trademarks, service marks or logos of Apple Inc. may
+ * be used to endorse or promote products derived from the Apple Software
+ * without specific prior written permission from Apple. Except as
+ * expressly stated in this notice, no other rights or licenses, express or
+ * implied, are granted by Apple herein, including but not limited to any
+ * patent rights that may be infringed by your derivative works or by other
+ * works in which the Apple Software may be incorporated.
+ *
+ * The Apple Software is provided by Apple on an "AS IS" basis. APPLE
+ * MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION
+ * THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND
+ * OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.
+ *
+ * IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL
+ * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,
+ * MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED
+ * AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),
+ * STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * Copyright (C) 2009 Apple Inc. All Rights Reserved.
+ *
+ */
+
+#import "ATColorTableController.h"
+#import "ATPopupWindow.h"
+
+@implementation ATColorTableController
+
++ (ATColorTableController *) sharedColorTableController {
+ static ATColorTableController * gSharedColorTableController = nil;
+
+ if (gSharedColorTableController == nil) {
+ gSharedColorTableController = [[[self class] alloc] initWithNibName:@"ColorTable" bundle:[NSBundle bundleForClass:[self class]]];
+ }
+ return gSharedColorTableController;
+}
+
+@synthesize delegate = _delegate;
+@dynamic selectedColor, selectedColorName;
+
+- (void) dealloc {
+ [_colorList release];
+ [_colorNames release];
+ [_window release];
+ [super dealloc];
+}
+
+- (void) loadView {
+ [super loadView];
+ _colorList = [[NSColorList colorListNamed:@"Crayons"] retain];
+ _colorNames = [[_colorList allKeys] retain];
+ [_tableColorList setIntercellSpacing:NSMakeSize(3, 3)];
+ [_tableColorList setTarget:self];
+ [_tableColorList setAction:@selector(_tableViewAction:)];
+}
+
+- (NSColor *) selectedColor {
+ NSString * name = [self selectedColorName];
+
+ if (name != nil) {
+ return [_colorList colorWithKey:name];
+ } else {
+ return nil;
+ }
+}
+
+- (NSString *) selectedColorName {
+ if ([_tableColorList selectedRow] != -1) {
+ return [_colorNames objectAtIndex:[_tableColorList selectedRow]];
+ } else {
+ return nil;
+ }
+}
+
+- (void) _selectColor:(NSColor *)color {
+ // Search for that color in our list
+ NSInteger row = 0;
+
+ for (NSString * name in _colorNames) {
+ NSColor * colorInList = [_colorList colorWithKey:name];
+ if ([color isEqual:colorInList]) {
+ break;
+ }
+ row++;
+ }
+ _updatingSelection = YES;
+ if (row != -1) {
+ [_tableColorList scrollRowToVisible:row];
+ [_tableColorList selectRowIndexes:[NSIndexSet indexSetWithIndex:row] byExtendingSelection:NO];
+ } else {
+ [_tableColorList scrollRowToVisible:0];
+ [_tableColorList selectRowIndexes:[NSIndexSet indexSet] byExtendingSelection:NO];
+ }
+ _updatingSelection = NO;
+}
+
+- (void) _createWindowIfNeeded {
+ if (_window == nil) {
+ NSRect viewFrame = self.view.frame;
+ // Create and setup our window
+ _window = [[ATPopupWindow alloc] initWithContentRect:viewFrame styleMask:NSBorderlessWindowMask backing:NSBackingStoreBuffered defer:NO];
+ [_window setReleasedWhenClosed:NO];
+ [_window setLevel:NSPopUpMenuWindowLevel];
+ [_window setHasShadow:YES];
+ [[_window contentView] addSubview:self.view];
+ [_window makeFirstResponder:_tableColorList];
+
+ // Make the window have a clear color and be non-opaque for our pop-up animation
+ [_window setBackgroundColor:[NSColor clearColor]];
+ [_window setOpaque:NO];
+ }
+}
+
+- (void) _windowClosed:(NSNotification *)note {
+ if (_eventMonitor) {
+ [NSEvent removeMonitor:_eventMonitor];
+ _eventMonitor = nil;
+ }
+ [[NSNotificationCenter defaultCenter] removeObserver:self name:NSWindowWillCloseNotification object:_window];
+ [[NSNotificationCenter defaultCenter] removeObserver:self name:NSApplicationDidResignActiveNotification object:nil];
+}
+
+- (void) _closeAndSendAction:(BOOL)sendAction {
+ [_window close];
+ if (sendAction) {
+ if ([self.delegate respondsToSelector:@selector(colorTableController:didChooseColor:named:)]) {
+ [self.delegate colorTableController:self didChooseColor:self.selectedColor named:self.selectedColorName];
+ }
+ } else {
+ if ([self.delegate respondsToSelector:@selector(didCancelColorTableController:)]) {
+ [self.delegate didCancelColorTableController:self];
+ }
+ }
+}
+
+- (void) _windowShouldClose:(NSNotification *)note {
+ [self _closeAndSendAction:NO];
+}
+
+- (void) editColor:(NSColor *)color locatedAtScreenRect:(NSRect)rect {
+ [self _createWindowIfNeeded];
+ [self _selectColor:color];
+ NSPoint origin = rect.origin;
+ NSRect windowFrame = [_window frame];
+ // The origin is the lower left; subtract the window's height
+ origin.y -= NSHeight(windowFrame);
+ // Center the popup window under the rect
+ origin.y += floor(NSHeight(rect) / 3.0);
+ origin.x -= floor(NSWidth(windowFrame) / 2.0);
+ origin.x += floor(NSWidth(rect) / 2.0);
+
+ [_window setFrameOrigin:origin];
+ [_window popup];
+
+ // Add some watches on the window and application
+ [[NSNotificationCenter defaultCenter] addObserver:self
+ selector:@selector(_windowClosed:)
+ name:NSWindowWillCloseNotification
+ object:_window];
+
+ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(_windowShouldClose:) name:NSApplicationDidResignActiveNotification object:nil];
+
+ // Start watching events to figure out when to close the window
+ NSAssert(_eventMonitor == nil, @"_eventMonitor should not be created yet");
+ _eventMonitor = [NSEvent addLocalMonitorForEventsMatchingMask:NSLeftMouseDownMask | NSRightMouseDownMask | NSOtherMouseDownMask | NSKeyDownMask handler: ^(NSEvent * incomingEvent) {
+ NSEvent * result = incomingEvent;
+ NSWindow * targetWindowForEvent = [incomingEvent window];
+ if (targetWindowForEvent != _window) {
+ [self _closeAndSendAction:NO];
+ } else if ([incomingEvent type] == NSKeyDown) {
+ if ([incomingEvent keyCode] == 53) {
+ // Escape
+ [self _closeAndSendAction:NO];
+ result = nil; // Don't process the event
+ } else if ([incomingEvent keyCode] == 36) {
+ // Enter
+ [self _closeAndSendAction:YES];
+ result = nil;
+ }
+ }
+ return result;
+ }];
+}
+
+- (NSInteger) numberOfRowsInTableView:(NSTableView *)tableView {
+ return _colorNames.count;
+}
+
+- (id) tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {
+ return [_colorNames objectAtIndex:row];
+}
+
+- (void) tableView:(NSTableView *)tableView willDisplayCell:(id)cell forTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {
+ NSColor * color = [_colorList colorWithKey:[_colorNames objectAtIndex:row]];
+
+ [cell setColor:color];
+}
+
+- (void) _tableViewAction:(id)sender {
+ [self _closeAndSendAction:YES];
+}
+
+@end
+
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50060-oc-split.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50060-oc-split.m
index a7bcd4de..a7bcd4de 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50060-oc-split.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50060-oc-split.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50061-bug_167.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50061-bug_167.m
index 28087bb4..28087bb4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50061-bug_167.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50061-bug_167.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50062-issue_2631.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50062-issue_2631.m
index a4404650..a4404650 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50062-issue_2631.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50062-issue_2631.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50070-blocks.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50070-blocks.m
index 8b77ccda..8b77ccda 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50070-blocks.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50070-blocks.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50071-blocks.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50071-blocks.m
index 8b77ccda..8b77ccda 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50071-blocks.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50071-blocks.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50072-blocks.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50072-blocks.m
index 8b77ccda..8b77ccda 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50072-blocks.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50072-blocks.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50073-blocks.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50073-blocks.m
index 06a9cd78..06a9cd78 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50073-blocks.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50073-blocks.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50074-blocks.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50074-blocks.m
index 467387b4..467387b4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50074-blocks.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50074-blocks.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50075-blocks.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50075-blocks.m
index 8b77ccda..8b77ccda 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50075-blocks.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50075-blocks.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50076-blocks.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50076-blocks.m
index 8b77ccda..8b77ccda 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50076-blocks.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50076-blocks.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50077-more_blocks.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50077-more_blocks.m
index 75870d32..75870d32 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50077-more_blocks.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50077-more_blocks.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50078-more_blocks.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50078-more_blocks.m
index 91d27d55..91d27d55 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50078-more_blocks.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50078-more_blocks.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50079-more_blocks.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50079-more_blocks.m
index f6af5562..f6af5562 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50079-more_blocks.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50079-more_blocks.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50080-more_blocks.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50080-more_blocks.m
index 1fbb7c34..1fbb7c34 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50080-more_blocks.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50080-more_blocks.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50081-more_blocks.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50081-more_blocks.m
index 1fbb7c34..1fbb7c34 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50081-more_blocks.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50081-more_blocks.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50082-more_blocks.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50082-more_blocks.m
index 75870d32..75870d32 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50082-more_blocks.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50082-more_blocks.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50083-more_blocks.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50083-more_blocks.m
index f6af5562..f6af5562 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50083-more_blocks.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50083-more_blocks.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50084-more_blocks.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50084-more_blocks.m
index 75870d32..75870d32 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50084-more_blocks.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50084-more_blocks.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50085-block_in_method.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50085-block_in_method.m
index 7a91d13e..7a91d13e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50085-block_in_method.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50085-block_in_method.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50086-block_in_method.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50086-block_in_method.m
index c5c9ae6b..c5c9ae6b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50086-block_in_method.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50086-block_in_method.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50087-indent_oc_inside_msg_sel.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50087-indent_oc_inside_msg_sel.m
index af5c2b7b..af5c2b7b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50087-indent_oc_inside_msg_sel.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50087-indent_oc_inside_msg_sel.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50090-kw.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50090-kw.m
index ef52dd8e..ef52dd8e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50090-kw.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50090-kw.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50091-block_in_method.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50091-block_in_method.m
index 705435d8..705435d8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50091-block_in_method.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50091-block_in_method.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50095-box.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50095-box.m
index 45b0de1b..45b0de1b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50095-box.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50095-box.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50100-bug_340.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50100-bug_340.m
index ec5135ab..ec5135ab 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50100-bug_340.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50100-bug_340.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50110-msg_align.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50110-msg_align.m
index 041148c1..041148c1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50110-msg_align.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50110-msg_align.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50111-ns_enum.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50111-ns_enum.m
index 1b960272..1b960272 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50111-ns_enum.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50111-ns_enum.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50112-ns_enum.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50112-ns_enum.m
index 1b960272..1b960272 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50112-ns_enum.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50112-ns_enum.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50113-ns_enum.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50113-ns_enum.m
index 5c30d740..5c30d740 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50113-ns_enum.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50113-ns_enum.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50120-gh137.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50120-gh137.m
index ff41543a..ff41543a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50120-gh137.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50120-gh137.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50200-more_blocks_2.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50200-more_blocks_2.m
index 8835454f..8835454f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50200-more_blocks_2.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50200-more_blocks_2.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50201-blocks_align.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50201-blocks_align.m
index 505c9b99..505c9b99 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50201-blocks_align.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50201-blocks_align.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50202-blocks_align.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50202-blocks_align.m
index 439ac716..439ac716 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50202-blocks_align.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50202-blocks_align.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50203-blocks_align.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50203-blocks_align.m
index 07bd3cf3..07bd3cf3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50203-blocks_align.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50203-blocks_align.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50204-blocks_align.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50204-blocks_align.m
index a2cefc1f..a2cefc1f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50204-blocks_align.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50204-blocks_align.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50205-msg_align.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50205-msg_align.m
index f024b44c..f024b44c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50205-msg_align.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50205-msg_align.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50206-issue_2727.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50206-issue_2727.m
index 5639c298..5639c298 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50206-issue_2727.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50206-issue_2727.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50207-issue_3031.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50207-issue_3031.mm
index 75e6f5ea..75e6f5ea 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50207-issue_3031.mm
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50207-issue_3031.mm
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50300-msg.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50300-msg.m
index 79c1a60a..79c1a60a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50300-msg.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50300-msg.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50400-for.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50400-for.m
index 35c34bce..35c34bce 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50400-for.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50400-for.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50410-oc_cond_colon.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50410-oc_cond_colon.m
index 8059a3c6..8059a3c6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50410-oc_cond_colon.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50410-oc_cond_colon.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50411-attribute_specifier_seqs.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50411-attribute_specifier_seqs.mm
index 49dfaefa..49dfaefa 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50411-attribute_specifier_seqs.mm
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50411-attribute_specifier_seqs.mm
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50500-code_placeholder.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50500-code_placeholder.m
index f6a745ed..f6a745ed 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50500-code_placeholder.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50500-code_placeholder.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50510-gh293.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50510-gh293.m
index a1dffc49..a1dffc49 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50510-gh293.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50510-gh293.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50511-gh293.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50511-gh293.m
index 6e4c180a..6e4c180a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50511-gh293.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50511-gh293.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50512-sp_oc_catch.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50512-sp_oc_catch.m
index 6040b071..6040b071 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50512-sp_oc_catch.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50512-sp_oc_catch.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50513-sp_oc_boxed.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50513-sp_oc_boxed.m
index 916e9330..916e9330 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50513-sp_oc_boxed.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50513-sp_oc_boxed.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50514-indent_boxed.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50514-indent_boxed.m
index 165ee244..165ee244 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50514-indent_boxed.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50514-indent_boxed.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50515-sp_oc_synchronized.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50515-sp_oc_synchronized.m
index ffff5618..ffff5618 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50515-sp_oc_synchronized.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50515-sp_oc_synchronized.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50600-bug_i_477.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50600-bug_i_477.m
index 0e7cbb78..0e7cbb78 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50600-bug_i_477.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50600-bug_i_477.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50601-bug_i_408.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50601-bug_i_408.m
index 700d159d..700d159d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50601-bug_i_408.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50601-bug_i_408.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50602-bug_i_125-412.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50602-bug_i_125-412.m
index 4beec2d5..4beec2d5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50602-bug_i_125-412.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50602-bug_i_125-412.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50603-gh511.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50603-gh511.m
index 2c86e32d..2c86e32d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50603-gh511.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50603-gh511.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50604-bug_497.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50604-bug_497.m
index 121503b4..121503b4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50604-bug_497.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50604-bug_497.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50605-bug_404.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50605-bug_404.m
index 8244ebd3..8244ebd3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50605-bug_404.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50605-bug_404.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50606-bug_1366.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50606-bug_1366.m
index f4058b1f..f4058b1f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50606-bug_1366.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50606-bug_1366.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50607-sp_after_oc_msg_receiver.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50607-sp_after_oc_msg_receiver.m
index 14eaed36..14eaed36 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50607-sp_after_oc_msg_receiver.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50607-sp_after_oc_msg_receiver.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50608-blocks_align2.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50608-blocks_align2.m
index b37c1b4b..b37c1b4b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50608-blocks_align2.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50608-blocks_align2.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50609-negative_value.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50609-negative_value.m
index 9aa4dc80..9aa4dc80 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50609-negative_value.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50609-negative_value.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50610-nelem.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50610-nelem.m
index d42ce3b6..d42ce3b6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50610-nelem.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50610-nelem.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50611-for2.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50611-for2.m
index 535bc50b..535bc50b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50611-for2.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50611-for2.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50612-chunk_ends_type1.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50612-chunk_ends_type1.m
index fb9bb4e1..fb9bb4e1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50612-chunk_ends_type1.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50612-chunk_ends_type1.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50613-chunk_ends_type2.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50613-chunk_ends_type2.m
index 64efc7e6..64efc7e6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50613-chunk_ends_type2.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50613-chunk_ends_type2.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50614-chunk_ends_type3.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50614-chunk_ends_type3.m
index 8f0ae62c..8f0ae62c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50614-chunk_ends_type3.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50614-chunk_ends_type3.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50615-block_literal_protocol.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50615-block_literal_protocol.m
index 35879a0e..35879a0e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50615-block_literal_protocol.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50615-block_literal_protocol.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50616-oc_msg_in_pp.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50616-oc_msg_in_pp.m
index 8496973b..8496973b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50616-oc_msg_in_pp.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50616-oc_msg_in_pp.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50617-boxed_receiver.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50617-boxed_receiver.m
index e4c247fd..e4c247fd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50617-boxed_receiver.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50617-boxed_receiver.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50618-func_def.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50618-func_def.mm
index 49de2fea..49de2fea 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50618-func_def.mm
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50618-func_def.mm
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50619-cast.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50619-cast.m
index 1e588579..1e588579 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50619-cast.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50619-cast.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50620-sp_after_angle.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50620-sp_after_angle.m
index 318071ba..318071ba 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50620-sp_after_angle.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50620-sp_after_angle.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50621-Fraction.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50621-Fraction.h
index 77403abd..77403abd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50621-Fraction.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50621-Fraction.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50622-c-cpp-oc-wrapper.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50622-c-cpp-oc-wrapper.c
index f17c10ed..f17c10ed 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50622-c-cpp-oc-wrapper.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50622-c-cpp-oc-wrapper.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50623-extern-c-attribute.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50623-extern-c-attribute.m
index 1c752682..1c752682 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50623-extern-c-attribute.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50623-extern-c-attribute.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50624-typeof.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50624-typeof.m
index 968aad5a..968aad5a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50624-typeof.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50624-typeof.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50625-sp_inside_braces_oc_dict.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50625-sp_inside_braces_oc_dict.m
index f98a27ea..f98a27ea 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50625-sp_inside_braces_oc_dict.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50625-sp_inside_braces_oc_dict.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50626-chunk_ends_type4.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50626-chunk_ends_type4.m
index dd4d55fe..dd4d55fe 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50626-chunk_ends_type4.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50626-chunk_ends_type4.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50627-method_ends_semicolon.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50627-method_ends_semicolon.m
index b1ca36fa..b1ca36fa 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50627-method_ends_semicolon.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50627-method_ends_semicolon.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50628-macro-close-brace.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50628-macro-close-brace.m
index 0eb3fa81..0eb3fa81 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50628-macro-close-brace.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50628-macro-close-brace.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50629-pp_bool.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50629-pp_bool.m
index b1bf896c..b1bf896c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50629-pp_bool.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50629-pp_bool.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50630-nl_func_call_args_multi_line_ignore_closures.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50630-nl_func_call_args_multi_line_ignore_closures.m
index 5c07ea43..5c07ea43 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50630-nl_func_call_args_multi_line_ignore_closures.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50630-nl_func_call_args_multi_line_ignore_closures.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50700-cmt_insert.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50700-cmt_insert.m
index ec94c42b..ec94c42b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50700-cmt_insert.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50700-cmt_insert.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50701-cmt_insert2.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50701-cmt_insert2.m
index 7a90cc57..7a90cc57 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50701-cmt_insert2.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50701-cmt_insert2.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50800-properties.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50800-properties.m
index fa9ca930..fa9ca930 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50800-properties.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50800-properties.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50801-i1213.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50801-i1213.m
index f47e5964..f47e5964 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50801-i1213.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50801-i1213.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50802-available.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50802-available.m
index 5054043a..5054043a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50802-available.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50802-available.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50803-indent_single_newline.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50803-indent_single_newline.m
index a70184e5..a70184e5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50803-indent_single_newline.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50803-indent_single_newline.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50804-issue_2629.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50804-issue_2629.m
index 6d6cbf30..6d6cbf30 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50804-issue_2629.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50804-issue_2629.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50805-issue_2724.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50805-issue_2724.m
index 23241732..23241732 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50805-issue_2724.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50805-issue_2724.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50810-bug_841.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50810-bug_841.m
index 8e8a6713..8e8a6713 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50810-bug_841.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50810-bug_841.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50811-bug_1674.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50811-bug_1674.m
index 7d23b230..7d23b230 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50811-bug_1674.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50811-bug_1674.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50812-bug_1683.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50812-bug_1683.m
index 3ee562c0..3ee562c0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50812-bug_1683.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50812-bug_1683.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50813-sp_before_oc_proto_list.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50813-sp_before_oc_proto_list.m
index 65d13399..65d13399 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50813-sp_before_oc_proto_list.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50813-sp_before_oc_proto_list.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50814-sp_before_oc_proto_list.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50814-sp_before_oc_proto_list.m
index be1f49ed..be1f49ed 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50814-sp_before_oc_proto_list.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50814-sp_before_oc_proto_list.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50815-sp_before_oc_proto_list.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50815-sp_before_oc_proto_list.m
index 1fef0cc4..1fef0cc4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50815-sp_before_oc_proto_list.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50815-sp_before_oc_proto_list.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50816-issue_2675.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50816-issue_2675.m
index ccb80f6b..ccb80f6b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50816-issue_2675.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50816-issue_2675.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50817-issue_2722.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50817-issue_2722.m
index 8919895a..8919895a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50817-issue_2722.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50817-issue_2722.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50900-1927.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50900-1927.m
index 3ae39e47..3ae39e47 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50900-1927.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50900-1927.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50901-Issue_2172.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50901-Issue_2172.m
index efa73591..efa73591 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50901-Issue_2172.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50901-Issue_2172.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50902-Issue_2289.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50902-Issue_2289.m
index 19fe5cdf..19fe5cdf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50902-Issue_2289.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50902-Issue_2289.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50903-Issue_681.oc b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50903-Issue_681.oc
index 1e71cdaa..1e71cdaa 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50903-Issue_681.oc
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50903-Issue_681.oc
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50904-double_angle_space.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50904-double_angle_space.m
index 0e6c0c0c..0e6c0c0c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50904-double_angle_space.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50904-double_angle_space.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50905-double_angle_space.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50905-double_angle_space.m
index 9636a38e..9636a38e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50905-double_angle_space.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50905-double_angle_space.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50906-double_angle_space.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50906-double_angle_space.m
index 5c16c25f..5c16c25f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50906-double_angle_space.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/50906-double_angle_space.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/51000-sp_cond_ternary_short.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/51000-sp_cond_ternary_short.m
index 6c1ce050..6c1ce050 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/51000-sp_cond_ternary_short.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/51000-sp_cond_ternary_short.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/51001-ns_enum-i.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/51001-ns_enum-i.m
index e5caad06..e5caad06 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/51001-ns_enum-i.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/51001-ns_enum-i.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/51002-sp_oc_catch.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/51002-sp_oc_catch.m
index 391b8df8..391b8df8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/51002-sp_oc_catch.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/51002-sp_oc_catch.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/51003-sp_oc_catch.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/51003-sp_oc_catch.m
index c214c848..c214c848 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/51003-sp_oc_catch.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/51003-sp_oc_catch.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/51004-block_pointer.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/51004-block_pointer.m
index ab51e3d2..ab51e3d2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/51004-block_pointer.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/51004-block_pointer.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60011-UNI-11095.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/60011-UNI-11095.mm
index 4f88df51..4f88df51 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60011-UNI-11095.mm
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/oc/60011-UNI-11095.mm
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60000-functions.pawn b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/pawn/60000-functions.pawn
index 853c70ad..853c70ad 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60000-functions.pawn
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/pawn/60000-functions.pawn
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60001-comment.p b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/pawn/60001-comment.p
index f63deb62..f63deb62 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60001-comment.p
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/pawn/60001-comment.p
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60002-traffic.p b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/pawn/60002-traffic.p
index a902e497..a902e497 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60002-traffic.p
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/pawn/60002-traffic.p
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60003-tags.pawn b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/pawn/60003-tags.pawn
index b21f7679..b21f7679 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60003-tags.pawn
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/pawn/60003-tags.pawn
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60004-enum.pawn b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/pawn/60004-enum.pawn
index 7dd318f3..7dd318f3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60004-enum.pawn
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/pawn/60004-enum.pawn
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60005-unbraced.p b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/pawn/60005-unbraced.p
index 1a22a3af..1a22a3af 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60005-unbraced.p
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/pawn/60005-unbraced.p
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60010-str-escape.p b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/pawn/60010-str-escape.p
index 3aa54453..3aa54453 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60010-str-escape.p
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/pawn/60010-str-escape.p
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60020-switch-vsemi.sma b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/pawn/60020-switch-vsemi.sma
index a0c720f7..a0c720f7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60020-switch-vsemi.sma
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/pawn/60020-switch-vsemi.sma
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60030-crusty_ex-1.sma b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/pawn/60030-crusty_ex-1.sma
index 23e042dd..23e042dd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60030-crusty_ex-1.sma
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/pawn/60030-crusty_ex-1.sma
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60040-preproc.pawn b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/pawn/60040-preproc.pawn
index 6df8101f..6df8101f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60040-preproc.pawn
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/pawn/60040-preproc.pawn
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60050-gh419.pawn b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/pawn/60050-gh419.pawn
index 9db7b08f..9db7b08f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60050-gh419.pawn
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/pawn/60050-gh419.pawn
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60100-Issue_2586.pawn b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/pawn/60100-Issue_2586.pawn
index e3eed47c..e3eed47c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60100-Issue_2586.pawn
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/pawn/60100-Issue_2586.pawn
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60101-Issue_2665.pawn b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/pawn/60101-Issue_2665.pawn
index 90fcbd07..90fcbd07 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60101-Issue_2665.pawn
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/pawn/60101-Issue_2665.pawn
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/sql/02400-mysql.sqc b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/sql/02400-mysql.sqc
index ec8ad604..ec8ad604 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/sql/02400-mysql.sqc
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/sql/02400-mysql.sqc
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/sql/02401-sta-select.sqc b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/sql/02401-sta-select.sqc
index 1142c3b9..1142c3b9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/sql/02401-sta-select.sqc
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/sql/02401-sta-select.sqc
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/sql/02402-issue_527.sqc b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/sql/02402-issue_527.sqc
index 17ccfa3b..17ccfa3b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/sql/02402-issue_527.sqc
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/sql/02402-issue_527.sqc
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/vala/70000-list.vala b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/vala/70000-list.vala
index 1893dcb5..1893dcb5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/vala/70000-list.vala
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/vala/70000-list.vala
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/vala/70001-advanced.vala b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/vala/70001-advanced.vala
index ca88a821..ca88a821 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/vala/70001-advanced.vala
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/vala/70001-advanced.vala
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/vala/70010-verbatim_str.vala b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/vala/70010-verbatim_str.vala
index fb0824ae..fb0824ae 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/vala/70010-verbatim_str.vala
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/vala/70010-verbatim_str.vala
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/vala/70011-verbatim_str2.vala b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/vala/70011-verbatim_str2.vala
index c607d7b4..c607d7b4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/vala/70011-verbatim_str2.vala
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/vala/70011-verbatim_str2.vala
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/vala/70012-verbatim_str2.vala b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/vala/70012-verbatim_str2.vala
index c253b86b..c253b86b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/vala/70012-verbatim_str2.vala
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/vala/70012-verbatim_str2.vala
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/vala/70020-preproc.vala b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/vala/70020-preproc.vala
index 9cc1ba1a..9cc1ba1a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/vala/70020-preproc.vala
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/vala/70020-preproc.vala
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/vala/70287-gh287.vala b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/vala/70287-gh287.vala
index be39a9db..be39a9db 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/vala/70287-gh287.vala
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/vala/70287-gh287.vala
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/vala/70300-Issue_2090.vala b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/vala/70300-Issue_2090.vala
index 5b4e1716..5b4e1716 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/vala/70300-Issue_2090.vala
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/vala/70300-Issue_2090.vala
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/vala/70301-Issue_2270.vala b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/vala/70301-Issue_2270.vala
index 2202627c..2202627c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/vala/70301-Issue_2270.vala
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/vala/70301-Issue_2270.vala
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/vala/70302-cast.vala b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/vala/70302-cast.vala
new file mode 100644
index 00000000..6c5d11db
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/vala/70302-cast.vala
@@ -0,0 +1,7 @@
+foo = (Type) bar;
+
+foo = (Ns.Type) bar;
+
+foo = (Type<int>) bar;
+
+foo = (Type<int, int>) bar;
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/vala/70303-nullable.vala b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/vala/70303-nullable.vala
new file mode 100644
index 00000000..54c24643
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/expected/vala/70303-nullable.vala
@@ -0,0 +1,14 @@
+Vector2? a;
+Vector2 b;
+
+void G()
+{
+ int? x = true ? null : (int?)2;
+ var q = x == null ? y : z;
+ var q2 = x == q ? y : z;
+ var q3 = x == null ? (y = new Y()) : z;
+ var q4 = x == q ? (y = new Y()) : z;
+
+ var q5 = x == null ? y = new Y() : z;
+ var q6 = x == q ? y = new Y() : z;
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/fixtest.sh b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/fixtest.sh
index 76fac4bf..76fac4bf 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/fixtest.sh
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/fixtest.sh
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/imported.test b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/imported.test
index b20f0247..b20f0247 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/imported.test
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/imported.test
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/1225.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/1225.c
index c6533cb1..c6533cb1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/1225.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/1225.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue-2278.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue-2278.c
index 1ecfecf5..1ecfecf5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue-2278.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue-2278.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_2279.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_2279.c
index 88c0ae84..88c0ae84 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_2279.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_2279.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_2360.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_2360.c
index dd4530c7..dd4530c7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_2360.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_2360.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_2411.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_2411.c
index 40244488..40244488 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_2411.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_2411.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_2640.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_2640.c
index ba25bcbe..ba25bcbe 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_2640.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_2640.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_2845.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_2845.h
index 9f34b1dc..9f34b1dc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_2845.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_2845.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3169.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3169.c
index bf67ca55..bf67ca55 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3169.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3169.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3192.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3192.c
new file mode 100644
index 00000000..d8fde2a6
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3192.c
@@ -0,0 +1,3 @@
+struct a *
+myfunc()
+{}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3233.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3233.c
index 5cfdff8f..5cfdff8f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3233.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3233.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3269.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3269.c
index 5b7de8e6..5b7de8e6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3269.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3269.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3272.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3272.h
index 673c5a91..673c5a91 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3272.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3272.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3274.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3274.c
index f8b9f789..f8b9f789 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3274.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3274.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3327.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3327.c
index 883c5436..883c5436 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3327.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3327.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3339.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3339.c
index 9f445c1a..9f445c1a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3339.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3339.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3342.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3342.c
index 986aab70..986aab70 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3342.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3342.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3343.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3343.c
index 3c21608b..3c21608b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3343.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3343.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3345.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3345.c
index eec63b28..eec63b28 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3345.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3345.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3351.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3351.c
index 889d731a..889d731a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3351.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3351.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3353.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3353.h
new file mode 100644
index 00000000..f189ebfa
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3353.h
@@ -0,0 +1,6 @@
+struct A {
+ void (*in)(
+ void);
+ void (*out)(
+ void);
+};
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3356.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3356.c
index de2dba21..de2dba21 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3356.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3356.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3362.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3362.c
index 7a8c08f3..7a8c08f3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3362.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3362.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3366.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3366.c
index 769c2f94..769c2f94 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3366.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3366.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3370.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3370.c
index 79081331..79081331 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3370.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3370.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3376.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3376.c
index 084e9c7d..084e9c7d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3376.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3376.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3377.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3377.c
index 99cb0d84..99cb0d84 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3377.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3377.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3402.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3402.c
new file mode 100644
index 00000000..569d5e3a
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3402.c
@@ -0,0 +1,3 @@
+int * variable;
+int (* function)(void);
+typedef int (* function_type)(void);
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3421.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3421.h
new file mode 100644
index 00000000..b66478fb
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3421.h
@@ -0,0 +1,9 @@
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+int foobar(void);
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3431.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3431.c
new file mode 100644
index 00000000..b0d9246d
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3431.c
@@ -0,0 +1,15 @@
+int add(
+int a,
+int b
+#define HAVE_C
+#ifdef HAVE_C
+, int c
+#endif
+)
+{
+int sum = a + b;
+#ifdef HAVE_C
+sum += c;
+#endif
+return sum;
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3436.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3436.c
new file mode 100644
index 00000000..d921d9ed
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3436.c
@@ -0,0 +1,15 @@
+#include <stdio.h>
+
+int main(void)
+{
+ puts("");
+ puts(""
+ );
+ puts(""
+ );
+ puts(""
+ );
+ puts(""
+ );
+ return 0;
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3454.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3454.c
new file mode 100644
index 00000000..8be230dd
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3454.c
@@ -0,0 +1,99 @@
+int array1[] = { 1
+ , 2
+ , 3 };
+
+int array2[] = {1
+ , 2
+ , 3};
+
+int array3[] = { 1
+ , 2
+ , 3 };
+
+int array4[] = { 1
+ , 2
+ , 3 };
+
+int array5[] = { 1
+ , 2
+ , 3 };
+
+int function1( int a
+ , int b
+ , int c );
+
+int function2(int a
+ , int b
+ , int c);
+
+int function3( int a
+ , int b
+ , int c );
+
+int function4( int a
+ , int b
+ , int c );
+
+int function5( int a
+ , int b
+ , int c );
+
+int function1( int a
+ , int b
+ , int c )
+{
+ return a + b + c;
+}
+
+int function2(int a
+ , int b
+ , int c)
+{
+ return a + b + c;
+}
+
+int function3( int a
+ , int b
+ , int c )
+{
+ return a + b + c;
+}
+
+int function4( int a
+ , int b
+ , int c )
+{
+ return a + b + c;
+}
+
+int function5( int a
+ , int b
+ , int c )
+{
+ return a + b + c;
+}
+
+int main(void)
+{
+ function1( 1
+ , 2
+ , 3 );
+
+ function2(1
+ , 2
+ , 3);
+
+ function3( 1
+ , 2
+ , 3 );
+
+ function4( 1
+ , 2
+ , 3 );
+
+ function5( 1
+ , 2
+ , 3 );
+
+ return 0;
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3457.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3457.c
new file mode 100644
index 00000000..e76affa4
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3457.c
@@ -0,0 +1,12 @@
+#define IS_UNSIGNED(t) \
+ _Generic((t), \
+ uint8_t: true, \
+ uint16_t: true, \
+ uint32_t: true, \
+ uint64_t: true, \
+ unsigned long long: true, \
+ int8_t: false, \
+ int16_t: false, \
+ int32_t: false, \
+ int64_t: false, \
+ signed long long: false)
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3472.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3472.c
new file mode 100644
index 00000000..d180a700
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3472.c
@@ -0,0 +1,30 @@
+int a, b;
+
+int main()
+{
+ if (a
+ && b)
+ {
+ return 1;
+ }
+
+ if ( a
+ && b)
+ {
+ return 2;
+ }
+
+ if ( a
+ && b)
+ {
+ return 3;
+ }
+
+ if ( a
+ && b)
+ {
+ return 4;
+ }
+
+ return 0;
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3476.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3476.c
new file mode 100644
index 00000000..92a7b0c0
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3476.c
@@ -0,0 +1,38 @@
+int a;
+int b;
+int c;
+
+int main()
+{
+ if (a
+ & b)
+ {
+ return 1;
+ }
+
+ if ( a
+ | b )
+ {
+ return 2;
+ }
+
+ if ( a
+ ^ b)
+ {
+ return 3;
+ }
+
+ c = a
+ + b;
+
+ c = a
+ - b;
+
+ c = a
+ * b;
+
+ c = a
+ / b;
+
+ return 0;
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3480.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3480.c
new file mode 100644
index 00000000..6a25879a
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3480.c
@@ -0,0 +1,26 @@
+int a;
+int b;
+int c;
+
+int main()
+{
+ if (a
+ << b)
+ {
+ return 1;
+ }
+
+ if ( a
+ >> b )
+ {
+ return 2;
+ }
+
+ c = a
+ << b;
+
+ c = a
+ >> b;
+
+ return 0;
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3493.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3493.c
new file mode 100644
index 00000000..66554d57
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3493.c
@@ -0,0 +1,20 @@
+int main(void)
+{
+ int a = 1 +
+ 2
+ ;
+
+ int b = 3 +
+ 4
+ ;
+
+ int c = 5 +
+ 6
+ ;
+
+ int d = 7 +
+ 8
+ ;
+
+ return 0;
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3496.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3496.h
new file mode 100644
index 00000000..b0509bd5
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3496.h
@@ -0,0 +1,3 @@
+enum{ A = 0 };
+
+enum { B = 1 };
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3516.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3516.c
new file mode 100644
index 00000000..2f591b75
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3516.c
@@ -0,0 +1,10 @@
+void g () {
+ h();
+ int x;
+ return;
+ {
+ h();
+ int x;
+ return;
+ }
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3518.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3518.c
new file mode 100644
index 00000000..cf8d0c95
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3518.c
@@ -0,0 +1,10 @@
+void g () {
+ h();
+ int x;
+ return;
+ {
+ h();
+ int x;
+ return;
+ }
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3548.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3548.c
new file mode 100644
index 00000000..71824adc
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3548.c
@@ -0,0 +1,21 @@
+bool is_inside(int num)
+{
+ bool inside;
+
+ inside = num >= 3
+ && num <= 10;
+
+ return num <= 3
+ && num >= 10;
+}
+
+bool is_outside(int num)
+{
+ bool outside;
+
+ outside = num < 3
+ || num > 10;
+
+ return num < 3
+ || num > 10;
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3556.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3556.c
new file mode 100644
index 00000000..423e07f0
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3556.c
@@ -0,0 +1,33 @@
+int main(void)
+{
+ int a
+ = -1;
+ int b
+ = 0;
+ int c
+ = 1;
+ a
+ = -1;
+ b
+ = 0;
+ c
+ = 1;
+ if (a
+ = -1)
+ {
+ return a
+ = -1;
+ }
+ if (b
+ = 0)
+ {
+ return b
+ = 0;
+ }
+ if (c
+ = 1)
+ {
+ return c
+ = 1;
+ }
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3561.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3561.c
new file mode 100644
index 00000000..db5c5afc
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3561.c
@@ -0,0 +1,8 @@
+#include <math.h>
+
+int main(void)
+{
+ int x = abs
+ (-1);
+ return 0;
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3565.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3565.c
new file mode 100644
index 00000000..267e25bd
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3565.c
@@ -0,0 +1,3 @@
+#define RETURN_ON_ERROR(error) \
+ if (error /* zero means no error */) \
+ return;
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3567.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3567.c
new file mode 100644
index 00000000..e81c7672
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3567.c
@@ -0,0 +1,10 @@
+int main
+(void);
+int main
+(void)
+{
+int x = main
+();
+main
+();
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3580.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3580.c
new file mode 100644
index 00000000..2b6b7e43
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3580.c
@@ -0,0 +1,35 @@
+#include <stdio.h>
+
+int main(int argc, char **argv)
+{
+ switch (argc)
+ {
+ case -1:
+ {
+ printf("Negative args shouldn't be possible\n");
+ break;
+ }
+ case 0:
+ {
+ printf("Zero args can happen but shouldn't\n");
+ break;
+ }
+ case 1:
+ {
+ printf("One arg\n");
+ break;
+ }
+ case 2:
+ {
+ printf("Two args\n");
+ break;
+ }
+ default:
+ {
+ printf("%i args\n", argc);
+ break;
+ }
+ }
+
+ return 0;
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3582.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3582.c
new file mode 100644
index 00000000..ebcc648b
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3582.c
@@ -0,0 +1,48 @@
+#include <stdio.h>
+
+int main(void)
+{
+ #if A
+ {
+ printf("A enabled\n");
+ }
+ #endif
+ #if B
+ {
+ printf("B enabled\n");
+ }
+ #endif
+ #if C
+ {
+ printf("C enabled\n");
+ }
+ #endif
+ #if D
+ {
+ printf("D enabled\n");
+ }
+ #endif
+ #if E
+ {
+ printf("E enabled\n");
+ }
+ #endif
+
+ #if A
+ printf("A enabled\n");
+ #endif
+ #if B
+ printf("B enabled\n");
+ #endif
+ #if C
+ printf("C enabled\n");
+ #endif
+ #if D
+ printf("D enabled\n");
+ #endif
+ #if E
+ printf("E enabled\n");
+ #endif
+
+ return 0;
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3587.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3587.h
new file mode 100644
index 00000000..3744884f
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3587.h
@@ -0,0 +1,9 @@
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
+int foo(void);
+
+#ifdef __cplusplus
+ }
+#endif
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3601.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3601.c
new file mode 100644
index 00000000..a2b92fa0
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/Issue_3601.c
@@ -0,0 +1 @@
+struct cage cages[MAX_CAGES * sizeof(struct cage)];
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/add_long_comment.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/add_long_comment.c
index 5900de52..5900de52 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/add_long_comment.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/add_long_comment.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align-equ.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/align-equ.c
index 374ccbfb..374ccbfb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align-equ.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/align-equ.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align-proto-vars.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/align-proto-vars.c
index e1dd71ff..e1dd71ff 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align-proto-vars.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/align-proto-vars.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align-proto.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/align-proto.c
index 64dfce00..64dfce00 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align-proto.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/align-proto.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align-string.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/align-string.c
index f652e88f..f652e88f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align-string.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/align-string.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align-struct-init.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/align-struct-init.c
index 084994ff..084994ff 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align-struct-init.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/align-struct-init.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align-typedef.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/align-typedef.c
index ae17eb4d..ae17eb4d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align-typedef.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/align-typedef.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align-var.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/align-var.c
index adbf8a98..adbf8a98 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align-var.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/align-var.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align_attr.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/align_attr.c
index 0f4cfee1..0f4cfee1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align_attr.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/align_attr.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align_func_proto_star_amp.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/align_func_proto_star_amp.h
index 17a7c5ce..17a7c5ce 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align_func_proto_star_amp.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/align_func_proto_star_amp.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align_keep_extra.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/align_keep_extra.c
index 2bc0f532..2bc0f532 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align_keep_extra.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/align_keep_extra.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align_sf_call_span_418.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/align_sf_call_span_418.c
index 421b9547..421b9547 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align_sf_call_span_418.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/align_sf_call_span_418.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align_sf_call_span_419.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/align_sf_call_span_419.c
index 421b9547..421b9547 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align_sf_call_span_419.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/align_sf_call_span_419.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align_sf_call_thresh_416.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/align_sf_call_thresh_416.c
index f4f6606e..f4f6606e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align_sf_call_thresh_416.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/align_sf_call_thresh_416.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align_sf_call_thresh_417.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/align_sf_call_thresh_417.c
index c3c881eb..c3c881eb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align_sf_call_thresh_417.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/align_sf_call_thresh_417.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align_stack.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/align_stack.c
index 0f88df06..0f88df06 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align_stack.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/align_stack.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/asm.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/asm.c
index 1fb5015c..1fb5015c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/asm.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/asm.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/attribute.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/attribute.c
index babe229f..babe229f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/attribute.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/attribute.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/backslash-newline-lex.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/backslash-newline-lex.c
index 0f20388c..0f20388c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/backslash-newline-lex.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/backslash-newline-lex.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/beautifier-off.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/beautifier-off.c
index 033179cb..033179cb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/beautifier-off.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/beautifier-off.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bits.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bits.c
index 9a12f484..9a12f484 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bits.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bits.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bool-pos.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bool-pos.c
index d6887223..d6887223 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bool-pos.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bool-pos.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/br_cmt.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/br_cmt.c
index 4e57d2de..4e57d2de 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/br_cmt.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/br_cmt.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/brace-remove.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/brace-remove.c
index c62506e3..c62506e3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/brace-remove.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/brace-remove.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/brace-remove2.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/brace-remove2.c
index e5b73723..e5b73723 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/brace-remove2.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/brace-remove2.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/brace-remove3.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/brace-remove3.c
index 9cde8bbd..9cde8bbd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/brace-remove3.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/brace-remove3.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/brace.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/brace.c
index 31f3b42b..31f3b42b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/brace.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/brace.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/braces-2.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/braces-2.c
index a34d73d8..a34d73d8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/braces-2.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/braces-2.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/braces-3.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/braces-3.c
index 1f1a2066..1f1a2066 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/braces-3.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/braces-3.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/braces-4.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/braces-4.c
index 385f4a8e..385f4a8e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/braces-4.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/braces-4.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/braces-5.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/braces-5.c
index c77cc912..c77cc912 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/braces-5.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/braces-5.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/braces.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/braces.c
index 20733afc..20733afc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/braces.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/braces.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bsnl.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bsnl.c
index b2b38b8e..b2b38b8e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bsnl.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bsnl.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bug_1041.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bug_1041.c
index 193c750b..193c750b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bug_1041.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bug_1041.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bug_1196.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bug_1196.c
index 9fdabca6..9fdabca6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bug_1196.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bug_1196.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bug_1702.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bug_1702.c
index bf74c8bd..bf74c8bd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bug_1702.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bug_1702.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bug_1718.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bug_1718.c
index eaddc974..eaddc974 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bug_1718.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bug_1718.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bug_2331.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bug_2331.c
index f30c53d3..f30c53d3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bug_2331.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bug_2331.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bug_3156.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bug_3156.c
index 508a0098..508a0098 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bug_3156.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bug_3156.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bug_489.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bug_489.c
index e83d351b..e83d351b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bug_489.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bug_489.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bug_671.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bug_671.c
index 01a3b02b..01a3b02b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bug_671.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bug_671.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bug_i_222.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bug_i_222.c
index 4f0ded31..4f0ded31 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bug_i_222.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bug_i_222.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bug_i_771.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bug_i_771.c
index c933487d..c933487d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bug_i_771.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bug_i_771.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bug_i_876.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bug_i_876.c
index ab2a05db..ab2a05db 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bug_i_876.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bug_i_876.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bugs-1.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bugs-1.c
index 39050c07..39050c07 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bugs-1.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bugs-1.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bugs-2.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bugs-2.c
index 42bed259..42bed259 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bugs-2.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bugs-2.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bugs-3.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bugs-3.c
index 4f85044a..4f85044a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bugs-3.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bugs-3.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bugs-4.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bugs-4.c
index e01c2c32..e01c2c32 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bugs-4.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bugs-4.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bugs-5.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bugs-5.c
index 626eb7e6..626eb7e6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bugs-5.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bugs-5.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bugs-6.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bugs-6.c
index 99ebbdda..99ebbdda 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bugs-6.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bugs-6.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bugs-7.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bugs-7.c
index a879aa17..a879aa17 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bugs-7.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bugs-7.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bugs-8.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bugs-8.c
index 8870a663..8870a663 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bugs-8.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bugs-8.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bugs.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bugs.c
index d75a4782..d75a4782 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bugs.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/bugs.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/case-nl_before_return.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/case-nl_before_return.c
index 67adaddd..67adaddd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/case-nl_before_return.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/case-nl_before_return.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/case.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/case.c
index ffceda0e..ffceda0e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/case.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/case.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/cast_brace.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/cast_brace.c
index 7ec7f67a..7ec7f67a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/cast_brace.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/cast_brace.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/casts.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/casts.c
index f09f5c5e..f09f5c5e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/casts.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/casts.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/clang-has_include.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/clang-has_include.h
index d153e70a..d153e70a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/clang-has_include.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/clang-has_include.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/cmt-align.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/cmt-align.c
index 658bac4d..658bac4d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/cmt-align.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/cmt-align.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/cmt_multi.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/cmt_multi.c
index 8e01c5fc..8e01c5fc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/cmt_multi.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/cmt_multi.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/cmt_multi_utf8.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/cmt_multi_utf8.c
index 05b01f84..05b01f84 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/cmt_multi_utf8.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/cmt_multi_utf8.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/cmt_nl_end.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/cmt_nl_end.c
index 48929d07..48929d07 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/cmt_nl_end.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/cmt_nl_end.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/cmt_reflow.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/cmt_reflow.c
index 6c40e11b..6c40e11b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/cmt_reflow.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/cmt_reflow.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/cmt_right_align.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/cmt_right_align.c
index b707f0bb..b707f0bb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/cmt_right_align.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/cmt_right_align.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/code_width.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/code_width.c
new file mode 100644
index 00000000..2262afe3
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/code_width.c
@@ -0,0 +1,51 @@
+
+static int short_function_name(struct device *dev, struct device_driver *drv);
+
+/* Assuming a 60-column limit */
+static int short_function_name(struct device *dev, struct device_driver *drv)
+{
+ this->translateLabels(labelID, completedLabelID, selectedLabelID, text, selectedText, completedText, fontId, selectedFontId, completedFontId);
+ call_some_really_long_function.of_some_sort(some_long_parameter1, some_long_parameter2);
+
+ abc = call_some_other_really_long_function.of_some_sort(some_long_parameter1, some_long_parameter2);
+
+ abc.def.ghi = call_some_other_really_long_function.of_some_sort(some_long_parameter1, some_long_parameter2);
+
+ abcdefghijklmnopqrstuvwxyz = abc + def + ghi + jkl + mno + prq + stu+ vwx + yz;
+
+ return 1;
+}
+
+typedef xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx yyyyyyyyyyyyyyyyyyyyyy;
+
+typedef some_return_value (*some_function_type)(another_type parameter1, another_type parameter2);
+
+typedef struct xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+{
+ int yyyyyyyyyyyyyyyyyyyyyy;
+} x_t;
+
+static void some_really_long_function_name(struct device *dev, struct device_driver *drv)
+{
+ if ((some_variable_name && somefunction(param1, param2, param3)))
+ {
+ asdfghjk = asdfasdfasd.aasdfasd + (asdfasd.asdas * 1234.65);
+ }
+
+ for (struct something_really_really_excessive *a_long_ptr_name = get_first_item(); a_long_ptr_name != NULL; a_long_ptr_name = get_next_item(a_long_ptr_name))
+ {
+ }
+
+ for (a = get_first(); a != NULL; a = GetNext(a))
+ {
+ }
+
+ for (a_ptr = get_first(); a_ptr != NULL; a_ptr = GetNext(a))
+ {
+ }
+
+ register_clcmd( "examine", "do_examine", -1, "-Allows a player to examine the health and armor of a teammate" );
+ register_clcmd( "/examine", "do_examine", -1,
+ "-Allows a player to examine the health and armor of a teammate" );
+}
+
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/colon-asm.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/colon-asm.c
index 5125af19..5125af19 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/colon-asm.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/colon-asm.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/comment-convert.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/comment-convert.c
index 4282ab0b..4282ab0b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/comment-convert.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/comment-convert.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/comment-indent.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/comment-indent.c
index d5295d6e..d5295d6e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/comment-indent.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/comment-indent.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/cond.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/cond.c
index aec2f0a3..aec2f0a3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/cond.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/cond.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/custom_types_ssl.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/custom_types_ssl.c
index 0454f81d..0454f81d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/custom_types_ssl.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/custom_types_ssl.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/define-if-indent.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/define-if-indent.c
index 1ef47273..1ef47273 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/define-if-indent.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/define-if-indent.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/deref.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/deref.c
index 100464fb..100464fb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/deref.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/deref.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/directfb.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/directfb.h
index 3531fa21..3531fa21 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/directfb.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/directfb.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/dos.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/dos.c
index 108c3b1c..108c3b1c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/dos.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/dos.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/double-sparen.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/double-sparen.c
index e76c3ea1..e76c3ea1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/double-sparen.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/double-sparen.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/doxy-comment.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/doxy-comment.c
index ef0414ac..ef0414ac 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/doxy-comment.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/doxy-comment.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/else-if.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/else-if.c
index 06cc37f2..06cc37f2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/else-if.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/else-if.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/empty-for.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/empty-for.c
index d9fb686a..d9fb686a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/empty-for.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/empty-for.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/endif.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/endif.c
index fd621299..fd621299 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/endif.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/endif.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/enum-struct-init.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/enum-struct-init.c
index 6660e4a4..6660e4a4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/enum-struct-init.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/enum-struct-init.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/enum_comma_ifdef.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/enum_comma_ifdef.c
index aa80cf48..aa80cf48 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/enum_comma_ifdef.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/enum_comma_ifdef.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/enum_gallery.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/enum_gallery.c
index 2be93194..2be93194 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/enum_gallery.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/enum_gallery.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/extern.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/extern.c
index 3bcfcbe5..3bcfcbe5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/extern.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/extern.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/fcn_indent.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/fcn_indent.c
index ff9f812b..ff9f812b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/fcn_indent.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/fcn_indent.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/fcn_indent_func_def_col1.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/fcn_indent_func_def_col1.c
index 235731c2..235731c2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/fcn_indent_func_def_col1.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/fcn_indent_func_def_col1.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/fcn_type.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/fcn_type.c
index d49d381d..d49d381d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/fcn_type.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/fcn_type.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/for-space.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/for-space.c
index 1064d493..1064d493 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/for-space.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/for-space.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/forever.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/forever.c
index 94dc8ce1..94dc8ce1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/forever.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/forever.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/freebsd.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/freebsd.c
index c9ef164f..c9ef164f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/freebsd.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/freebsd.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/func_call_user.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/func_call_user.c
index 275d8c5e..275d8c5e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/func_call_user.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/func_call_user.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/func_call_user2.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/func_call_user2.c
index 38ecb232..38ecb232 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/func_call_user2.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/func_call_user2.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/func_wrap.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/func_wrap.c
index 7589d03b..7589d03b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/func_wrap.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/func_wrap.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/funcfunc.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/funcfunc.c
index ee717abc..ee717abc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/funcfunc.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/funcfunc.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/function-def.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/function-def.c
index 778d121f..778d121f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/function-def.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/function-def.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/gh399.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/gh399.c
index 00f868a3..00f868a3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/gh399.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/gh399.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/global-vars.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/global-vars.c
index 9576341b..9576341b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/global-vars.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/global-vars.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/hello.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/hello.c
index 5849783c..5849783c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/hello.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/hello.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/i1270.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/i1270.c
index 4831a47a..4831a47a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/i1270.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/i1270.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/i1413.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/i1413.c
index 4287ca86..4287ca86 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/i1413.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/i1413.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/i1564.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/i1564.c
index c906ef9b..c906ef9b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/i1564.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/i1564.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/i2c-core.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/i2c-core.c
index 29bdb584..29bdb584 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/i2c-core.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/i2c-core.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/if_chain.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/if_chain.c
index 948492dd..948492dd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/if_chain.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/if_chain.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/ifdef-indent.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/ifdef-indent.c
index 5043c01f..5043c01f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/ifdef-indent.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/ifdef-indent.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/ifdef-nest.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/ifdef-nest.c
index 68baf1fc..68baf1fc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/ifdef-nest.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/ifdef-nest.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/include-guard.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/include-guard.h
index 03625573..03625573 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/include-guard.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/include-guard.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/include_define.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/include_define.h
index 13380cac..13380cac 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/include_define.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/include_define.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/indent-assign.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/indent-assign.c
index 58ed9c52..58ed9c52 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/indent-assign.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/indent-assign.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/indent-macro-brace.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/indent-macro-brace.c
index 8c3f9941..8c3f9941 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/indent-macro-brace.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/indent-macro-brace.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/indent-off-after-assign.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/indent-off-after-assign.c
index d01f58c0..d01f58c0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/indent-off-after-assign.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/indent-off-after-assign.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/indent-vbrace.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/indent-vbrace.c
index 8b48e235..8b48e235 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/indent-vbrace.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/indent-vbrace.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/indent_first_bool_expr.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/indent_first_bool_expr.c
index ec68ac3a..ec68ac3a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/indent_first_bool_expr.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/indent_first_bool_expr.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/indent_ternary-1.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/indent_ternary-1.c
index b76e375b..b76e375b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/indent_ternary-1.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/indent_ternary-1.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/indent_ternary-2.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/indent_ternary-2.c
index 20f1df64..20f1df64 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/indent_ternary-2.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/indent_ternary-2.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/kw_subst.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/kw_subst.c
index 5d37f823..5d37f823 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/kw_subst.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/kw_subst.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/lvalue.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/lvalue.c
index 2f2cc17d..2f2cc17d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/lvalue.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/lvalue.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/mac.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/mac.c
index ce4e7937..ce4e7937 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/mac.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/mac.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/macro-returns.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/macro-returns.c
index 0febb263..0febb263 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/macro-returns.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/macro-returns.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/minus-minus.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/minus-minus.c
index 4eb69237..4eb69237 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/minus-minus.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/minus-minus.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/misc.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/misc.c
index cd948007..cd948007 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/misc.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/misc.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/mod-paren.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/mod-paren.c
index 14bb9836..14bb9836 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/mod-paren.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/mod-paren.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/mod_case_brace.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/mod_case_brace.c
index 4bd9abde..4bd9abde 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/mod_case_brace.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/mod_case_brace.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/mod_move_case_return.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/mod_move_case_return.c
new file mode 100644
index 00000000..38dd6a62
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/mod_move_case_return.c
@@ -0,0 +1,41 @@
+static int ConvertEndian(void *ptr, int bytes)
+{
+ switch(bytes)
+ {
+ case 2:
+ {
+ uint16_t *value = (uint16_t *) ptr;
+
+ *value = bswap_16(*value);
+ }
+ return 1;
+ case 4:
+ {
+ uint32_t *value = (uint32_t *) ptr;
+
+ *value = bswap_32(*value);
+ }
+ return 1+
+ 2+3;
+
+ case 8:
+ {
+ uint64_t *value = (uint64_t *) ptr;
+
+ *value = bswap_64(*value);
+ }
+
+ return 1+
+
+ 2
+
+ +fn(
+
+ x
+ );
+ // comment
+ default:
+ break;
+ }
+ return 0;
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/mod_move_case_return_bad.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/mod_move_case_return_bad.c
new file mode 100644
index 00000000..95d3fb09
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/mod_move_case_return_bad.c
@@ -0,0 +1,52 @@
+static int ConvertEndian(void *ptr, int bytes)
+{
+ switch(bytes)
+ {
+ case 2:
+ {
+ uint16_t *value = (uint16_t *) ptr;
+
+ *value = bswap_16(*value);
+ }
+ return 1;
+ case 4:
+ {
+ uint32_t *value = (uint32_t *) ptr;
+
+ *value = bswap_32(*value);
+ }
+ return 1+
+ 2+3
+
+ case 8:
+ {
+ uint64_t *value = (uint64_t *) ptr;
+
+ *value = bswap_64(*value);
+ }
+
+ return 1+
+
+ 2
+
+ +fn(
+
+ x
+ )
+ // comment
+ default:
+ break;
+
+ case 16:
+ {
+ {
+ uint32_t *value = (uint32_t *) ptr;
+
+ *value = bswap_32(*value);
+ }
+ return 1+
+ 2+3
+ };
+ }
+ return 0;
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/multi.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/multi.h
index 33acea34..33acea34 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/multi.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/multi.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/my_infile.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/my_infile.c
index 8b8cd113..8b8cd113 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/my_infile.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/my_infile.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/negative_value.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/negative_value.c
index 6399fbef..6399fbef 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/negative_value.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/negative_value.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/newline_after_endif.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/newline_after_endif.c
index 2a0cbe62..2a0cbe62 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/newline_after_endif.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/newline_after_endif.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl-comment.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/nl-comment.c
index 70c49200..70c49200 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl-comment.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/nl-comment.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl-cont.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/nl-cont.c
index 9f87950f..9f87950f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl-cont.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/nl-cont.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl-cont2.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/nl-cont2.c
index b3f079e3..b3f079e3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl-cont2.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/nl-cont2.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl-semicolon.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/nl-semicolon.c
index 8e0f59d3..8e0f59d3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl-semicolon.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/nl-semicolon.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl-ver-def.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/nl-ver-def.c
index 9684ed27..9684ed27 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl-ver-def.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/nl-ver-def.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl_assign.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/nl_assign.c
index b2495c13..b2495c13 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl_assign.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/nl_assign.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl_before_ignore_after_case.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/nl_before_ignore_after_case.c
index 51866fe4..51866fe4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl_before_ignore_after_case.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/nl_before_ignore_after_case.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl_before_return.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/nl_before_return.c
index da5ed3eb..da5ed3eb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl_before_return.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/nl_before_return.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl_create_one_liner.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/nl_create_one_liner.c
index 16887eca..16887eca 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl_create_one_liner.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/nl_create_one_liner.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl_ds_struct_enum.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/nl_ds_struct_enum.c
index d19964ae..d19964ae 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl_ds_struct_enum.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/nl_ds_struct_enum.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl_endif.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/nl_endif.c
index d738d74a..d738d74a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl_endif.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/nl_endif.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl_proto_endif.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/nl_proto_endif.c
index f50766b8..f50766b8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl_proto_endif.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/nl_proto_endif.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl_return_expr.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/nl_return_expr.c
index e917e399..e917e399 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl_return_expr.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/nl_return_expr.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/one-liner-define.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/one-liner-define.c
index fdb02e31..fdb02e31 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/one-liner-define.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/one-liner-define.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/one-liner-init.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/one-liner-init.c
index 91d92d55..91d92d55 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/one-liner-init.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/one-liner-init.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/one_liners.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/one_liners.c
index 1f6e0d3e..1f6e0d3e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/one_liners.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/one_liners.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/paren-indent.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/paren-indent.c
index df5b1c14..df5b1c14 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/paren-indent.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/paren-indent.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/paren_indent.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/paren_indent.c
index 4b0ff447..4b0ff447 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/paren_indent.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/paren_indent.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/parenthesized_indirect_call.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/parenthesized_indirect_call.c
index 3d5a6819..3d5a6819 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/parenthesized_indirect_call.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/parenthesized_indirect_call.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/pascal_ptr.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/pascal_ptr.c
index 5b0116ba..5b0116ba 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/pascal_ptr.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/pascal_ptr.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/pos_compare.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/pos_compare.c
index b0942de0..b0942de0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/pos_compare.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/pos_compare.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/pos_conditional.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/pos_conditional.c
index 100545e5..100545e5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/pos_conditional.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/pos_conditional.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/pp-before-func-def.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/pp-before-func-def.c
index 948ce135..948ce135 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/pp-before-func-def.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/pp-before-func-def.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/pp-if-indent.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/pp-if-indent.c
index cd9d6c4d..cd9d6c4d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/pp-if-indent.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/pp-if-indent.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/pp-nest.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/pp-nest.c
index b602471b..b602471b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/pp-nest.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/pp-nest.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/pp-space.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/pp-space.c
index 67cf3e55..67cf3e55 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/pp-space.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/pp-space.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/pp_concat_asn1.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/pp_concat_asn1.h
index 9874cf04..9874cf04 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/pp_concat_asn1.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/pp_concat_asn1.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/pp_ret.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/pp_ret.c
index c35e4294..c35e4294 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/pp_ret.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/pp_ret.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/pragma.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/pragma.c
index a0dcd975..a0dcd975 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/pragma.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/pragma.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/pragma_asm.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/pragma_asm.c
index a7834613..a7834613 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/pragma_asm.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/pragma_asm.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/preproc-if.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/preproc-if.c
index 71fbf792..71fbf792 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/preproc-if.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/preproc-if.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/return-compound-literal.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/return-compound-literal.c
index 8547c3a7..8547c3a7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/return-compound-literal.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/return-compound-literal.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/return-multi.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/return-multi.c
index 846ca21c..846ca21c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/return-multi.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/return-multi.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/semicolons.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/semicolons.c
index d7e2379a..d7e2379a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/semicolons.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/semicolons.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/sf588.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/sf588.c
index d1c5f1cc..d1c5f1cc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/sf588.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/sf588.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/sf594.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/sf594.c
index cd08cce6..cd08cce6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/sf594.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/sf594.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/single_line_comment_after.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/single_line_comment_after.c
index 527b3e80..527b3e80 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/single_line_comment_after.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/single_line_comment_after.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/sort_include.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/sort_include.c
index 0f1956d2..0f1956d2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/sort_include.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/sort_include.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/sp_after_sparen.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/sp_after_sparen.c
index 8a86dd25..8a86dd25 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/sp_after_sparen.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/sp_after_sparen.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/sp_cmt_cpp_start.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/sp_cmt_cpp_start.c
index b9b07287..b9b07287 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/sp_cmt_cpp_start.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/sp_cmt_cpp_start.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/sp_embed_comment.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/sp_embed_comment.c
index 88a54dff..88a54dff 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/sp_embed_comment.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/sp_embed_comment.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/sp_func_call_user_inside_fparen.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/sp_func_call_user_inside_fparen.c
index ba921b9f..ba921b9f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/sp_func_call_user_inside_fparen.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/sp_func_call_user_inside_fparen.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/sparen-indent.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/sparen-indent.c
index fe770681..fe770681 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/sparen-indent.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/sparen-indent.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/string_prefixes.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/string_prefixes.c
index e901c9ac..e901c9ac 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/string_prefixes.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/string_prefixes.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/string_utf8.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/string_utf8.c
index a473e1bf..a473e1bf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/string_utf8.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/string_utf8.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/struct-brace.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/struct-brace.c
index 7d08b4ca..7d08b4ca 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/struct-brace.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/struct-brace.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/switch-case.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/switch-case.c
index add9fcfa..add9fcfa 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/switch-case.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/switch-case.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/switch.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/switch.c
index 5b760363..5b760363 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/switch.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/switch.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/t3.in.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/t3.in.c
index e352f736..e352f736 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/t3.in.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/t3.in.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/type-cast.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/type-cast.c
index 5760b466..5760b466 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/type-cast.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/type-cast.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/type_wrap.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/type_wrap.c
index 13b74455..13b74455 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/type_wrap.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/type_wrap.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/utf8-identifiers.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/utf8-identifiers.c
index e3281aac..e3281aac 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/utf8-identifiers.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/utf8-identifiers.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/vardefcol.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/vardefcol.c
index bdb40e8f..bdb40e8f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/vardefcol.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/vardefcol.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/various_colons.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/various_colons.c
index 516a5a72..516a5a72 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/various_colons.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/various_colons.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/vb-do.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/vb-do.c
index 1cefd1df..1cefd1df 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/vb-do.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/vb-do.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/vb-pp.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/vb-pp.c
index 5ea209c5..5ea209c5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/vb-pp.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/vb-pp.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/vb-while.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/vb-while.c
index 22291748..22291748 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/vb-while.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/vb-while.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/whole_file_ifdef.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/whole_file_ifdef.c
index bb16e116..bb16e116 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/whole_file_ifdef.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/whole_file_ifdef.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/xml.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/xml.c
index fe7afdf4..fe7afdf4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/xml.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/c/xml.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/2138.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/2138.cpp
index e0379b43..e0379b43 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/2138.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/2138.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/2185.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/2185.cpp
index 6f874926..6f874926 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/2185.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/2185.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/2203.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/2203.cpp
index 4a2c05fa..4a2c05fa 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/2203.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/2203.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/621_this-spacing.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/621_this-spacing.cpp
index bd28a5e8..bd28a5e8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/621_this-spacing.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/621_this-spacing.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/622_ifdef-indentation.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/622_ifdef-indentation.cpp
index a6aface7..a6aface7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/622_ifdef-indentation.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/622_ifdef-indentation.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/623_caret-spacing.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/623_caret-spacing.cpp
index ad1ed6f7..ad1ed6f7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/623_caret-spacing.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/623_caret-spacing.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/633_decl-in-func-typedef.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/633_decl-in-func-typedef.cpp
index 4e18c597..4e18c597 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/633_decl-in-func-typedef.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/633_decl-in-func-typedef.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/634_extern-c-no-block.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/634_extern-c-no-block.cpp
index bb6b14fb..bb6b14fb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/634_extern-c-no-block.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/634_extern-c-no-block.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/DB.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/DB.cpp
index 1b8f4bc8..1b8f4bc8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/DB.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/DB.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/DefaultAndDelete.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/DefaultAndDelete.cpp
index 3c4f3b9e..3c4f3b9e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/DefaultAndDelete.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/DefaultAndDelete.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/DoxygenComments.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/DoxygenComments.cpp
index dfa5a906..dfa5a906 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/DoxygenComments.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/DoxygenComments.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Example.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Example.h
index deede79a..deede79a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Example.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Example.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/I1112-1.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/I1112-1.cpp
index 365df31f..365df31f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/I1112-1.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/I1112-1.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/I1112-2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/I1112-2.cpp
index c3765ce4..c3765ce4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/I1112-2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/I1112-2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/I1112-3.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/I1112-3.cpp
index 6c48cb63..6c48cb63 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/I1112-3.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/I1112-3.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/I2102.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/I2102.cpp
index d8cf883a..d8cf883a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/I2102.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/I2102.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/I2103.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/I2103.cpp
new file mode 100644
index 00000000..c35fbe56
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/I2103.cpp
@@ -0,0 +1,3 @@
+int i1 = EEnumType::a & EEnumType::b;
+int i2 = a & b;
+int i3 = EEnumType::Enum1 & b;
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1052.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_1052.cpp
index 19461b71..19461b71 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1052.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_1052.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1167.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_1167.cpp
index 6a9042c2..6a9042c2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1167.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_1167.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1184.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_1184.cpp
index 7c69e7fb..7c69e7fb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1184.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_1184.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1460.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_1460.h
index 63787999..63787999 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1460.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_1460.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1511.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_1511.cpp
index 2583c0e3..2583c0e3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1511.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_1511.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1692.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_1692.cpp
index 4a2c97b5..4a2c97b5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1692.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_1692.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1703.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_1703.cpp
index bca40664..bca40664 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1703.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_1703.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1704.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_1704.cpp
index 90cb2049..90cb2049 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1704.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_1704.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1733.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_1733.cpp
index 10be5586..10be5586 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1733.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_1733.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1734.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_1734.cpp
index 31d08c29..31d08c29 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1734.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_1734.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1737.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_1737.cpp
index fd8b1384..fd8b1384 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1737.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_1737.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1753.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_1753.cpp
index bf5530c3..bf5530c3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1753.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_1753.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1813-2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_1813-2.cpp
index 9c02605a..9c02605a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1813-2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_1813-2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1813-3.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_1813-3.cpp
index 93e0799c..93e0799c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1813-3.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_1813-3.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1813.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_1813.cpp
index 0c07555d..0c07555d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1813.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_1813.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1923.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_1923.cpp
index e5b3ceeb..e5b3ceeb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1923.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_1923.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1966.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_1966.cpp
index 80b7ddc7..80b7ddc7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1966.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_1966.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2020.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2020.cpp
index 94d0aa28..94d0aa28 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2020.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2020.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2045.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2045.cpp
index 627eba3f..627eba3f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2045.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2045.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2085.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2085.cpp
index 581f4db4..581f4db4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2085.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2085.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2091.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2091.cpp
index 6e32d683..6e32d683 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2091.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2091.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2099.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2099.cpp
index 4726f44b..4726f44b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2099.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2099.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2101.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2101.cpp
index 3e07c686..3e07c686 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2101.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2101.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2138.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2138.cpp
index ad53fa57..ad53fa57 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2138.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2138.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2149.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2149.cpp
index 88fb2249..88fb2249 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2149.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2149.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2150.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2150.cpp
index 1e4d6bf5..1e4d6bf5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2150.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2150.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2151.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2151.cpp
index dce02df3..dce02df3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2151.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2151.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2163.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2163.cpp
index 543b9827..543b9827 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2163.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2163.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2166.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2166.cpp
index d9ac55c7..d9ac55c7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2166.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2166.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2170.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2170.cpp
index beeffc7e..beeffc7e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2170.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2170.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2186.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2186.cpp
index c9cbacda..c9cbacda 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2186.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2186.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2195.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2195.cpp
index 3573b20d..3573b20d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2195.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2195.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2219.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2219.cpp
index cb6e24bf..cb6e24bf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2219.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2219.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2224.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2224.cpp
index 65382eb9..65382eb9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2224.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2224.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2229.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2229.cpp
index 9f575dc1..9f575dc1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2229.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2229.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2232.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2232.cpp
index 7632ed27..7632ed27 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2232.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2232.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2236.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2236.cpp
index 5dbc4fbe..5dbc4fbe 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2236.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2236.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2250.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2250.cpp
index 9268c2e3..9268c2e3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2250.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2250.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2281.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2281.cpp
index 44b9e75f..44b9e75f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2281.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2281.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2302.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2302.cpp
index 4763c574..4763c574 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2302.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2302.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2305.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2305.cpp
index 1b35ac11..1b35ac11 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2305.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2305.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2319.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2319.cpp
index 8c0ae3e9..8c0ae3e9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2319.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2319.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2332.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2332.cpp
index 0bc9cf8f..0bc9cf8f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2332.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2332.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2343.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2343.cfg
index 955a1f9a..955a1f9a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2343.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2343.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2343.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2343.cpp
index 837b0506..837b0506 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2343.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2343.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2345-3.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2345-3.cpp
index 787ce29b..787ce29b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2345-3.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2345-3.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2345-4.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2345-4.cpp
index 9478d63e..9478d63e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2345-4.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2345-4.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2368.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2368.cpp
index 08d0556b..08d0556b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2368.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2368.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2383.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2383.cpp
index 356fd9af..356fd9af 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2383.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2383.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2386.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2386.cpp
index ac0b1dd4..ac0b1dd4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2386.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2386.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2387.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2387.cpp
index af00e16e..af00e16e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2387.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2387.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2428.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2428.cpp
index c919d5a5..c919d5a5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2428.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2428.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2437.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2437.cpp
index 2a64bd8f..2a64bd8f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2437.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2437.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2440.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2440.cpp
index c52c30da..c52c30da 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2440.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2440.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2440_nl.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2440_nl.cpp
index c52c30da..c52c30da 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2440_nl.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2440_nl.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2478.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2478.cpp
index fbcfec1f..fbcfec1f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2478.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2478.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2561.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2561.cpp
index 15232fc4..15232fc4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2561.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2561.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2565.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2565.cpp
index 721d4d78..721d4d78 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2565.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2565.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2570.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2570.cpp
index 44373e77..44373e77 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2570.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2570.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2574.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2574.cpp
index fc79cd0d..fc79cd0d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2574.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2574.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2582.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2582.cpp
index adf9bfe9..adf9bfe9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2582.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2582.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2591.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2591.cpp
index 01ed232e..01ed232e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2591.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2591.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2594.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2594.cpp
index 798a719a..798a719a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2594.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2594.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2596.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2596.cpp
index d2517e8b..d2517e8b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2596.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2596.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2604.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2604.cpp
index e73c67a8..e73c67a8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2604.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2604.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2668.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2668.cpp
index 1e2f5d02..1e2f5d02 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2668.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2668.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2672-a.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2672-a.cpp
index d29d2c47..d29d2c47 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2672-a.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2672-a.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2672-b.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2672-b.cpp
index f484d4ff..f484d4ff 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2672-b.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2672-b.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2688.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2688.cpp
index 0b394620..0b394620 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2688.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2688.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2689.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2689.cpp
index ef3b5a4b..ef3b5a4b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2689.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2689.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2692.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2692.cpp
index 4173ad5d..4173ad5d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2692.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2692.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2703.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2703.cpp
index ec4554e9..ec4554e9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2703.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2703.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2726.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2726.cpp
index 7b76eb43..7b76eb43 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2726.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2726.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2734.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2734.cpp
index 7b85c0ec..7b85c0ec 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2734.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2734.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2735.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2735.cpp
index f83e3536..f83e3536 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2735.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2735.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2742.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2742.cpp
index 9d76fe44..9d76fe44 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2742.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2742.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2752.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2752.cpp
index 237c8ce1..237c8ce1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2752.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2752.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2757.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2757.cpp
index 3c84969b..3c84969b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2757.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2757.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2758.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2758.cpp
index 1ac9a86e..1ac9a86e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2758.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2758.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2759.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2759.cpp
index cbe9c4a5..cbe9c4a5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2759.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2759.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2771.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2771.cpp
index ab7c285f..ab7c285f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2771.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2771.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2794.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2794.cpp
index 03f2ae4c..03f2ae4c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2794.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2794.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2795.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2795.cpp
index 6cb7e112..6cb7e112 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2795.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2795.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2823.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2823.cpp
index eb0228c9..eb0228c9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2823.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2823.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2831.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2831.cpp
index f2dc1717..f2dc1717 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2831.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2831.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2836.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2836.cpp
index 44272d56..44272d56 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2836.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2836.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2873.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2873.cpp
index af3020d3..af3020d3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2873.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2873.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2879.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2879.cpp
index 294c5e85..294c5e85 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2879.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2879.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2886.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2886.cpp
index 0474c710..0474c710 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2886.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2886.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2890.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2890.cpp
index cea47724..cea47724 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2890.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2890.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2902.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2902.cpp
index ae10d5a9..ae10d5a9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2902.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2902.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2907.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2907.cpp
index 9d42a72d..9d42a72d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2907.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2907.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2910.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2910.cpp
index 82c2bec9..82c2bec9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2910.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2910.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2914.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2914.cpp
index c2cd8b59..c2cd8b59 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2914.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2914.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2921.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2921.cpp
index 43e19e96..43e19e96 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2921.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2921.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2930.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2930.cpp
index 9b130982..9b130982 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2930.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2930.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2942.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2942.cpp
index e5bc781f..e5bc781f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2942.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2942.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2949.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2949.cpp
index d37d7ac3..d37d7ac3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2949.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2949.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2957.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2957.cpp
new file mode 100644
index 00000000..abb52b72
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2957.cpp
@@ -0,0 +1,6 @@
+bus_type i2c_bus_type = {
+ .name = "i2c",
+ .match = i2c_device_match,
+ .suspend = i2c_bus_suspend,
+ .resume = i2c_bus_resume,
+};
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2971.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2971.cpp
new file mode 100644
index 00000000..52e7a253
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_2971.cpp
@@ -0,0 +1,11 @@
+#include <iostream>
+class X33
+{
+ int
+ f1(std::istream* c1)
+ {
+ int i;
+ *c1 >> i;
+ return i;
+ }
+};
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3010.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3010.cpp
index b546e7be..b546e7be 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3010.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3010.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3018.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3018.cpp
index ddbb473e..ddbb473e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3018.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3018.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3025.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3025.cpp
index 9e64526e..9e64526e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3025.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3025.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3034.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3034.cpp
index b91f431d..b91f431d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3034.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3034.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3040.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3040.cpp
index fe9aed25..fe9aed25 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3040.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3040.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3044.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3044.cpp
index 739b1305..739b1305 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3044.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3044.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3048.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3048.cpp
index 678d6ce4..678d6ce4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3048.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3048.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3052.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3052.cpp
index cb468be3..cb468be3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3052.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3052.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3054-2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3054-2.cpp
index 77d0d337..77d0d337 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3054-2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3054-2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3054.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3054.cpp
index 2d8b38d0..2d8b38d0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3054.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3054.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3055-a.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3055-a.cpp
index 85c9b7e8..85c9b7e8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3055-a.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3055-a.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3055.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3055.cpp
index 4d66bbf3..4d66bbf3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3055.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3055.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3058.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3058.cpp
index f94e88e7..f94e88e7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3058.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3058.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3061_0nl.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3061_0nl.cpp
index 2a76b5a3..2a76b5a3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3061_0nl.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3061_0nl.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3061_1nl.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3061_1nl.cpp
index fd369e24..fd369e24 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3061_1nl.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3061_1nl.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3061_2nl.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3061_2nl.cpp
index 25906e08..25906e08 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3061_2nl.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3061_2nl.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3080.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3080.cpp
index 75c6072b..75c6072b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3080.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3080.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3097.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3097.cpp
index 3959e85a..3959e85a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3097.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3097.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3113.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3113.cpp
index 63090f4a..63090f4a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3113.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3113.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3164.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3164.cpp
index 79fd6508..79fd6508 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3164.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3164.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3176.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3176.cpp
index 2384027d..2384027d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3176.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3176.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3197.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3197.h
index f1ba44b5..f1ba44b5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3197.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3197.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3198.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3198.cpp
index 8dd234b7..8dd234b7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3198.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3198.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3203.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3203.cpp
index 47b37eee..47b37eee 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3203.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3203.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3205.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3205.cpp
index 99767289..99767289 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3205.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3205.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3220.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3220.cpp
index ba42b013..ba42b013 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3220.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3220.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3237.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3237.cpp
index 17e84d9c..17e84d9c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3237.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3237.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3252.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3252.cpp
index b435f4e2..b435f4e2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3252.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3252.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3283.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3283.cpp
new file mode 100644
index 00000000..9357b3b3
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3283.cpp
@@ -0,0 +1,3 @@
+#define MACRO(a) if(!x) x=a;
+#define MACRO(a) {if(!x) {x=a;}}
+#define MACRO(a) {if(!x) x=a;}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3284.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3284.cpp
new file mode 100644
index 00000000..cea9091e
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3284.cpp
@@ -0,0 +1,5 @@
+Node( const Node &rhs ) = delete;
+Node &operator=( const Node &rhs ) = delete;
+
+Node( Node &&rhs ) noexcept = delete;
+Node &operator=( Node &&rhs ) noexcept = delete;
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3294.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3294.cpp
new file mode 100644
index 00000000..e1bf0e87
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3294.cpp
@@ -0,0 +1,17 @@
+#include <vector>
+
+std::vector<int> x;
+
+void f1()
+{
+ int v = x.empty()
+ /**/ ? x.size()
+ /**/ : x.size();
+}
+
+void f2()
+{
+ int v = x.empty()
+ ? x.size()
+ : x.size();
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3309.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3309.cpp
index d6dd1dac..d6dd1dac 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3309.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3309.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3316.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3316.cpp
new file mode 100644
index 00000000..ee644d21
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3316.cpp
@@ -0,0 +1,15 @@
+#include <iostream>
+
+bool
+foo()
+{
+ const int i = 3;
+
+ if ( i == 2 || i == 3 || i == 5 ) {
+ std::cerr << "Very small prime!\n";
+ }
+
+ const auto isSmallPrime = i == 2 || i == 3 || i == 5 || i == 7 || i == 11;
+
+ return isSmallPrime || i == 13 || i == 17 || i == 19;
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3321.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3321.h
index 8e74beb2..8e74beb2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3321.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3321.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3357.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3357.cpp
new file mode 100644
index 00000000..f94d17fe
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3357.cpp
@@ -0,0 +1,7 @@
+/**
+ * @param[out] dest The memory area to copy to.
+ * @param[in] src The memory area to copy from.
+ * @param[in] n The number of bytes to copy
+ * @param[in,out] t The Test
+ */
+void memcpy(void *dest, const void *src, size_t n);
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3409.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3409.cpp
new file mode 100644
index 00000000..ac6e64bf
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3409.cpp
@@ -0,0 +1,8 @@
+namespace ns1 {
+ namespace ns2 {
+ const auto lamb = []() -> int
+ {
+ return 42;
+ };
+ }
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3413.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3413.cpp
new file mode 100644
index 00000000..80ec8cbc
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3413.cpp
@@ -0,0 +1,10 @@
+namespace
+{
+struct S { void f() {} };
+}
+
+void FuncCrash(int a = {}) { }
+void FuncCrash(int b = int{}) { }
+void FuncCrash(int b = int(0)) { }
+void FuncCrash(int b = double{0}) { }
+void FuncCrash(int b = 0) { }
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3422.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3422.cpp
new file mode 100644
index 00000000..015d93f4
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3422.cpp
@@ -0,0 +1,14 @@
+voind main()
+{
+ unsigned long uncompressed_size = 0;
+ char *data_buffer = NULL;
+
+ unsigned long uncompressed_size = 0, compressed_size = 0;
+ char *data_buffer = NULL;
+
+ unsigned long uncompressed_size, compressed_size = 0;
+ char *data_buffer = NULL;
+
+ unsigned long uncompressed_size, compressed_size;
+ char *data_buffer = NULL;
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3428.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3428.cpp
new file mode 100644
index 00000000..e4f45a1c
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3428.cpp
@@ -0,0 +1,57 @@
+void main()
+{
+ if(aaaa)
+ {
+ it = std::find_if(
+ bbbb.begin(),
+ bbbb.end(),
+ [&cccc](const auto& dddd)
+ {
+ return (eeee.ffff == iiii && !jjjj.kkkk);
+ }
+ );
+ }
+}
+
+namespace ns1 {
+
+void one()
+{
+ if(aaaa)
+ {
+ it = std::find_if(
+ bbbb.begin(),
+ bbbb.end(),
+ [&cccc](const auto& dddd)
+ {
+ return (eeee.ffff == iiii && !jjjj.kkkk);
+ }
+ );
+ }
+}
+
+ namespace ns2 {
+ namespace ns3 {
+ const auto lamb = []() -> int
+ {
+ return 42;
+ };
+
+void two()
+{
+ if(aaaa)
+ {
+ it = std::find_if(
+ bbbb.begin(),
+ bbbb.end(),
+ [&cccc](const auto& dddd)
+ {
+ return (eeee.ffff == iiii && !jjjj.kkkk);
+ }
+ );
+ }
+}
+
+ }
+}
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3446.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3446.cpp
new file mode 100644
index 00000000..6332b0ad
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3446.cpp
@@ -0,0 +1,16 @@
+Foo::Foo() { }
+
+std::true_type blarg();
+template <typename T>
+decltype(std::declval<T &>().put(foo, bar), std::true_type())
+has_module_api_(T && t);
+
+void
+foo()
+{
+ using V = decltype(STD::declval<T &>().put(foo, bar), std::true_type());
+}
+
+template <typename T>
+decltype(std::declval<T &>()./* ((( */put(foo, bar), std::true_type())
+has_module_api_(T && t);
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3448.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3448.cpp
new file mode 100644
index 00000000..8dc80497
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3448.cpp
@@ -0,0 +1,4 @@
+class Foo : public Bar, private Blarg, private Baz {
+Foo() : first(), second(), third()
+{ }
+};
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3505.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3505.cpp
new file mode 100644
index 00000000..bb9bcee5
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3505.cpp
@@ -0,0 +1,7 @@
+class Spaceship
+{
+Spaceship(int a,
+int b);
+void init(int a,
+int b);
+};
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3513-0.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3513-0.cpp
new file mode 100644
index 00000000..51f07966
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3513-0.cpp
@@ -0,0 +1,5 @@
+struct S {
+ operator int() const {
+ return get();
+ }
+};
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3513-1.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3513-1.cpp
new file mode 100644
index 00000000..020cc496
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3513-1.cpp
@@ -0,0 +1,5 @@
+struct S {
+ operator int() {
+ return get();
+ }
+};
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3536.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3536.cpp
new file mode 100644
index 00000000..d068dd96
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3536.cpp
@@ -0,0 +1,32 @@
+struct S {};
+class C {};
+
+void processStruct0(
+struct S s,
+int i
+);
+
+void processClass0(
+class C c,
+int i
+);
+
+void processStruct1(
+ struct S s,
+ int i
+ );
+
+void processClass1(
+ class C c,
+ int i
+ );
+
+void processStruct2(
+ struct S s,
+ int i
+ );
+
+void processClass2(
+ class C c,
+ int i
+ );
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3538.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3538.cpp
new file mode 100644
index 00000000..b965cb12
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3538.cpp
@@ -0,0 +1,12 @@
+class Alpha {};
+
+class Beta
+{
+public:
+ Beta(class Alpha alpha) : _alpha(alpha) {}
+
+ void init();
+
+private:
+ class Alpha _alpha;
+};
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3546.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3546.cpp
new file mode 100644
index 00000000..617e849f
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3546.cpp
@@ -0,0 +1,28 @@
+#include <stdio.h>
+
+class
+ alignas(32)
+ Foobar;
+
+int main()
+{
+ typedef
+ int
+ int32;
+ int foo,
+ bar,
+ baz;
+ foo = 5
+ + 6
+ + 7;
+ if (printf("%d %d",
+ 5
+ + 6,
+ 7)
+ < 0)
+ {
+ return 1;
+ }
+
+ return 0;
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3552.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3552.cpp
new file mode 100644
index 00000000..f3baae42
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3552.cpp
@@ -0,0 +1,9 @@
+namespace Salads
+{
+class
+Waldorf
+{
+public:
+int size;
+};
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3570.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3570.h
new file mode 100644
index 00000000..363447e7
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3570.h
@@ -0,0 +1,25 @@
+class Foo
+{
+public:
+Foo
+(
+)
+{
+}
+
+Foo
+(
+int x
+);
+
+void init
+(
+)
+{
+}
+
+void init
+(
+int x
+);
+};
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3576.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3576.h
new file mode 100644
index 00000000..9f668b6d
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3576.h
@@ -0,0 +1,9 @@
+class Foo : public Bar
+{
+public:
+void doIt
+(
+)
+{
+}
+};
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3604.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3604.cpp
new file mode 100644
index 00000000..a96b3437
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_3604.cpp
@@ -0,0 +1,4 @@
+#define MY_DEF(Type, ...) \
+ enum Type { \
+ __VA_ARGS__, \
+ };
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_750.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_750.cpp
new file mode 100644
index 00000000..461e79ac
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_750.cpp
@@ -0,0 +1,15 @@
+class Greeks
+{
+ double _dRho = 111.0;
+ int _dTheoretical = 22222.0;
+ double _dTheta = 3333333.0;
+ double _dTimeValue = 0.0;
+ double _dVega { 0.0 };
+ double _dVolatility { 0.0 };
+ double _dPvDiv = 0.0;
+}
+
+ double sdf[6] = { 5.0, 6, 6, 34, 324, 5 };
+ int fsaf[6] = { 5, 6, 6, 34, 324, 5 };
+ char msa[3] { 6, 5, 3 };
+ int y[3] { 6, 5, 3 };
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_931.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_931.cpp
index 90084874..90084874 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_931.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_931.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_995-do.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_995-do.cpp
index 05eca611..05eca611 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_995-do.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Issue_995-do.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/NewLine.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/NewLine.cpp
index 9c7f1ee9..9c7f1ee9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/NewLine.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/NewLine.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/NewLine0.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/NewLine0.cpp
index 01e7cc97..01e7cc97 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/NewLine0.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/NewLine0.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/PR326_invalid-backslash-eol-csharp.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/PR326_invalid-backslash-eol-csharp.cpp
index b0e13d6a..b0e13d6a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/PR326_invalid-backslash-eol-csharp.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/PR326_invalid-backslash-eol-csharp.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Q_2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Q_2.cpp
index ee6239f9..ee6239f9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Q_2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Q_2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Q_EMIT.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Q_EMIT.cpp
index d3ef9396..d3ef9396 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Q_EMIT.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Q_EMIT.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Q_FOREACH.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Q_FOREACH.cpp
index 37156618..37156618 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Q_FOREACH.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Q_FOREACH.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Q_FOREVER.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Q_FOREVER.cpp
index a0fb07d5..a0fb07d5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Q_FOREVER.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Q_FOREVER.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Q_SIGNAL_SLOT.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Q_SIGNAL_SLOT.cpp
index 5a4c8e7d..5a4c8e7d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Q_SIGNAL_SLOT.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Q_SIGNAL_SLOT.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/STUCK_macro-difficulties.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/STUCK_macro-difficulties.cpp
index ea1c724e..ea1c724e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/STUCK_macro-difficulties.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/STUCK_macro-difficulties.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Timestamp.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Timestamp.h
index 60dc3791..60dc3791 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Timestamp.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/Timestamp.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-10496.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-10496.cpp
index 3228cf2a..3228cf2a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-10496.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-10496.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-12046.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-12046.cpp
index 9cc7b13f..9cc7b13f 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-12046.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-12046.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1288.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-1288.cpp
index 38ded76c..38ded76c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1288.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-1288.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1334.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-1334.cpp
index 278cd1a2..278cd1a2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1334.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-1334.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1335.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-1335.cpp
index 2f3ad2a2..2f3ad2a2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1335.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-1335.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1337.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-1337.cpp
index 59635c19..59635c19 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1337.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-1337.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1339.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-1339.cpp
index 255db223..255db223 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1339.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-1339.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1340.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-1340.cpp
index 2f743294..2f743294 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1340.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-1340.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1344.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-1344.cpp
index c898df76..c898df76 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1344.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-1344.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1346.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-1346.cpp
index 0261a306..0261a306 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1346.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-1346.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1347.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-1347.cpp
index ac2184f0..ac2184f0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1347.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-1347.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1350.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-1350.cpp
index 7353e915..7353e915 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1350.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-1350.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1356.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-1356.cpp
index 8a1aab54..8a1aab54 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1356.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-1356.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1358.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-1358.cpp
index 770bf0c1..770bf0c1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1358.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-1358.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-16283.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-16283.cpp
index 7f042642..7f042642 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-16283.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-16283.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-18439.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-18439.cpp
index 0c40e831..0c40e831 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-18439.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-18439.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-18777.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-18777.cpp
index 0f177fdc..0f177fdc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-18777.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-18777.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1980.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-1980.cpp
index 97940716..97940716 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1980.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-1980.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1981.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-1981.cpp
index a20f4c43..a20f4c43 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1981.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-1981.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1983.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-1983.cpp
index e7d9de6d..e7d9de6d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1983.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-1983.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-19894.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-19894.cpp
index ef5fe7cf..ef5fe7cf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-19894.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-19894.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-2049.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-2049.cpp
index 7c64f76a..7c64f76a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-2049.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-2049.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-21506.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-21506.cpp
index a8c5f2df..a8c5f2df 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-21506.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-21506.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-21509.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-21509.cpp
index bde48ee7..bde48ee7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-21509.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-21509.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-21510.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-21510.cpp
index ea406fbe..ea406fbe 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-21510.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-21510.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-21727.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-21727.cpp
index 991d2631..991d2631 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-21727.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-21727.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-21728.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-21728.cpp
index 658fba68..658fba68 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-21728.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-21728.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-21729.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-21729.cpp
index 4b8d1d59..4b8d1d59 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-21729.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-21729.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-2650.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-2650.cpp
index b9ced773..b9ced773 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-2650.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-2650.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-2680.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-2680.cpp
index b6aa5bd7..b6aa5bd7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-2680.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-2680.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-2683.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-2683.cpp
index 5da60d3f..5da60d3f 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-2683.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-2683.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-29935.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-29935.cpp
index a6cf3fc5..a6cf3fc5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-29935.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-29935.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-30088.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-30088.cpp
index 1fd5c1fe..1fd5c1fe 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-30088.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-30088.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-30628.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-30628.cpp
index ffa60026..ffa60026 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-30628.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-30628.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-32657.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-32657.cpp
index 9151231a..9151231a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-32657.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-32657.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-38381.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-38381.cpp
index 701b55b2..701b55b2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-38381.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-38381.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-64325.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-64325.cpp
index c4005d7c..c4005d7c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-64325.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-64325.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-9650.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-9650.cpp
index f6dba01b..f6dba01b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-9650.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/UNI-9650.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/al.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/al.cpp
index 3c232dec..3c232dec 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/al.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/al.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align-330.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/align-330.cpp
index 0ba91720..0ba91720 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align-330.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/align-330.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align-assign-mixed.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/align-assign-mixed.cpp
index 2e55d59d..2e55d59d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align-assign-mixed.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/align-assign-mixed.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align-star-amp-pos.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/align-star-amp-pos.cpp
index 29a7a23a..29a7a23a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align-star-amp-pos.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/align-star-amp-pos.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_across_braces.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/align_across_braces.cpp
index f47f0c80..f47f0c80 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_across_braces.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/align_across_braces.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_assign_func_proto.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/align_assign_func_proto.cpp
index 0c816099..0c816099 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_assign_func_proto.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/align_assign_func_proto.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_asterisk_after_type_cast.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/align_asterisk_after_type_cast.cpp
index 4b325b1e..4b325b1e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_asterisk_after_type_cast.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/align_asterisk_after_type_cast.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_class-constr.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/align_class-constr.cpp
index 2be3c8e8..2be3c8e8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_class-constr.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/align_class-constr.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_class.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/align_class.cpp
index d47e77bb..d47e77bb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_class.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/align_class.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_constr.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/align_constr.cpp
index 1a22f6d9..1a22f6d9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_constr.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/align_constr.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_continuation_left_shift.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/align_continuation_left_shift.cpp
index c0c066b8..c0c066b8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_continuation_left_shift.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/align_continuation_left_shift.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_default_after_override.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/align_default_after_override.cpp
index de21686c..de21686c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_default_after_override.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/align_default_after_override.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_fcall.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/align_fcall.cpp
index c27ed9d1..c27ed9d1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_fcall.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/align_fcall.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_func_params.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/align_func_params.cpp
index a90155fd..a90155fd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_func_params.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/align_func_params.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_func_proto_thresh.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/align_func_proto_thresh.cpp
index df6b4dca..df6b4dca 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_func_proto_thresh.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/align_func_proto_thresh.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_func_proto_thresh2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/align_func_proto_thresh2.cpp
index b0960a11..b0960a11 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_func_proto_thresh2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/align_func_proto_thresh2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_left_shift.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/align_left_shift.cpp
index 3cf7a744..3cf7a744 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_left_shift.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/align_left_shift.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_left_shift2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/align_left_shift2.cpp
index c90ae71f..c90ae71f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_left_shift2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/align_left_shift2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_right_comment.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/align_right_comment.cpp
index 43a2a70f..43a2a70f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_right_comment.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/align_right_comment.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_var_def_thresh.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/align_var_def_thresh.cpp
index 3942f227..3942f227 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_var_def_thresh.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/align_var_def_thresh.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/alt_tokens.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/alt_tokens.cpp
index fcaf1392..fcaf1392 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/alt_tokens.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/alt_tokens.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/anonymous_enum.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/anonymous_enum.cpp
index 0cf8426d..0cf8426d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/anonymous_enum.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/anonymous_enum.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/arith_vs_byref.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/arith_vs_byref.cpp
new file mode 100644
index 00000000..f459fdcc
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/arith_vs_byref.cpp
@@ -0,0 +1,10 @@
+A a = {this->r & cos(b)};
+
+B b1 = {0x0000'1111 & this->r};
+B b2 = {this->r & 0x0000'1111};
+B b3 = {0x0000'1111 & value};
+B b4 = {value & 0x0000'1111};
+
+auto p = std::make_pair(r & cos(a), r & sin(a));
+
+auto p2 = std::make_pair(r & 0x0000'1111, 0x0000'1111 & r);
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/attribute_specifier_seqs.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/attribute_specifier_seqs.cpp
index 744b3404..744b3404 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/attribute_specifier_seqs.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/attribute_specifier_seqs.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/av.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/av.h
index 7a90197c..7a90197c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/av.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/av.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bit-colon.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bit-colon.cpp
index b593255b..b593255b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bit-colon.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bit-colon.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bom.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bom.cpp
index 7ee7e7e6..7ee7e7e6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bom.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bom.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bool.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bool.cpp
index 30d4cb29..30d4cb29 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bool.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bool.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/brace_brace_init_lst.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/brace_brace_init_lst.cpp
index 2a5254f0..2a5254f0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/brace_brace_init_lst.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/brace_brace_init_lst.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/braced_init_list.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/braced_init_list.cpp
index e245f34c..e245f34c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/braced_init_list.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/braced_init_list.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/braced_init_template_decltype.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/braced_init_template_decltype.cpp
index bfd5ef86..bfd5ef86 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/braced_init_template_decltype.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/braced_init_template_decltype.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/braces_align.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/braces_align.cpp
index ca99edc6..ca99edc6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/braces_align.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/braces_align.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/braces_empty.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/braces_empty.cpp
index 583c7fa1..583c7fa1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/braces_empty.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/braces_empty.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1001.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1001.cpp
index b0ce9a06..b0ce9a06 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1001.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1001.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1002.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1002.cpp
index 713018e4..713018e4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1002.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1002.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1003.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1003.cpp
index 7495b93d..7495b93d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1003.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1003.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1004.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1004.cpp
index 3287be1c..3287be1c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1004.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1004.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1005.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1005.cpp
index 01a457d0..01a457d0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1005.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1005.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1020.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1020.cpp
index ec80e915..ec80e915 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1020.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1020.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1027.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1027.cpp
index 5ccafd2b..5ccafd2b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1027.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1027.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1032.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1032.cpp
index 80078efe..80078efe 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1032.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1032.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1068.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1068.cpp
index 74fbc8e7..74fbc8e7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1068.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1068.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1108.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1108.cpp
index 573a9810..573a9810 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1108.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1108.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1112.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1112.cpp
index e6537641..e6537641 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1112.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1112.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1127.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1127.cpp
index 9ee98743..9ee98743 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1127.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1127.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1134.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1134.cpp
index 369b70f1..369b70f1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1134.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1134.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1139.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1139.cpp
index 47463232..47463232 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1139.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1139.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1158.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1158.cpp
index e92da160..e92da160 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1158.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1158.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1160.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1160.cpp
index 8dc7a9d1..8dc7a9d1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1160.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1160.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1161.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1161.cpp
index 535c3be7..535c3be7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1161.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1161.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1169.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1169.cpp
index aa56008a..aa56008a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1169.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1169.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1170.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1170.cpp
index 35dd772f..35dd772f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1170.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1170.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1235.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1235.cpp
index b9ff78a1..b9ff78a1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1235.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1235.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1236.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1236.cpp
index 8acaaed2..8acaaed2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1236.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1236.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1249.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1249.cpp
index 975dc82c..975dc82c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1249.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1249.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1288.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1288.cpp
index 94444cf9..94444cf9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1288.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1288.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1289.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1289.cpp
index 42663477..42663477 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1289.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1289.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1296.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1296.cpp
new file mode 100644
index 00000000..e2cd65fb
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1296.cpp
@@ -0,0 +1,7 @@
+int main()
+{
+ auto lambda2222222222222222222 = [&]()
+ {
+ code();
+ };
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1315.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1315.cpp
index 080c9233..080c9233 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1315.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1315.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1321.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1321.cpp
index c381f91c..c381f91c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1321.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1321.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1324.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1324.cpp
index 5df154f3..5df154f3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1324.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1324.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1338.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1338.cpp
index 04b4cd8a..04b4cd8a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1338.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1338.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1340.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1340.cpp
index 680d6d51..680d6d51 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1340.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1340.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1346.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1346.h
index 21fe1c44..21fe1c44 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1346.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1346.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1349.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1349.cpp
index aa1938e8..aa1938e8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1349.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1349.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1395.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1395.cpp
index 00694ce9..00694ce9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1395.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1395.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1402.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1402.cpp
index 9b001a44..9b001a44 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1402.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1402.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1403.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1403.cpp
index 71f67f75..71f67f75 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1403.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1403.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1432.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1432.cpp
index 575a21c8..575a21c8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1432.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1432.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1439.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1439.cpp
index d560522b..d560522b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1439.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1439.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1452.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1452.cpp
index d7fcf753..d7fcf753 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1452.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1452.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1462.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1462.cpp
index 5170b9a9..5170b9a9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1462.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1462.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1607.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1607.cpp
index 9e4e47d3..9e4e47d3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1607.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1607.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1649.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1649.cpp
index 4ab5eea8..4ab5eea8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1649.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1649.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1689.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1689.cpp
index 795bb572..795bb572 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1689.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1689.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1691.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1691.cpp
index 2d5d1204..2d5d1204 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1691.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1691.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1717.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1717.cpp
index a1adcf5f..a1adcf5f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1717.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1717.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1758-f.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1758-f.cpp
index b324fbda..b324fbda 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1758-f.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1758-f.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1758.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1758.cpp
index b0f35107..b0f35107 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1758.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1758.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1854.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1854.cpp
index 29cc2774..29cc2774 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1854.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1854.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1862.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1862.cpp
index 78958bb1..78958bb1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1862.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_1862.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_2285.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_2285.cpp
index 14a85090..14a85090 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_2285.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_2285.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_2322.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_2322.cpp
index f9768c40..f9768c40 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_2322.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_2322.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_2371.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_2371.cpp
index 26444ad3..26444ad3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_2371.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_2371.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_2402.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_2402.cpp
index 92731c19..92731c19 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_2402.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_2402.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_2433_1.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_2433_1.cpp
index d19718f5..d19718f5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_2433_1.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_2433_1.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_2433_2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_2433_2.cpp
index 9da12944..9da12944 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_2433_2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_2433_2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_33056.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_33056.cpp
index 1339ede1..1339ede1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_33056.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_33056.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_472.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_472.cpp
index 753d9519..753d9519 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_472.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_472.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_481.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_481.cpp
index 03c4a828..03c4a828 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_481.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_481.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_484.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_484.cpp
index 4c582e86..4c582e86 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_484.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_484.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_485.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_485.cpp
index 4865da64..4865da64 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_485.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_485.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_488.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_488.cpp
index 382beced..382beced 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_488.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_488.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_495.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_495.cpp
index f356c302..f356c302 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_495.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_495.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_612.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_612.cpp
index 38253f15..38253f15 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_612.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_612.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_631.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_631.cpp
index e110d383..e110d383 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_631.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_631.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_633.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_633.cpp
index 5b672b47..5b672b47 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_633.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_633.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_634.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_634.cpp
index febbf7b3..febbf7b3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_634.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_634.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_643.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_643.cpp
index 55e3e309..55e3e309 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_643.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_643.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_651.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_651.cpp
index b36e182a..b36e182a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_651.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_651.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_653.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_653.cpp
index 1bf853d6..1bf853d6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_653.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_653.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_654.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_654.cpp
index 8baaeb1c..8baaeb1c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_654.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_654.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_657.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_657.cpp
index 230b96b3..230b96b3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_657.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_657.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_662.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_662.cpp
index f8b0f8a8..f8b0f8a8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_662.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_662.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_663.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_663.cpp
index 869320c0..869320c0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_663.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_663.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_664.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_664.cpp
index 148201b0..148201b0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_664.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_664.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_666.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_666.cpp
index 00adec83..00adec83 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_666.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_666.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_670.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_670.cpp
index e9229a8e..e9229a8e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_670.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_670.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_670.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_670.h
index ea503b10..ea503b10 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_670.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_670.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_671.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_671.h
index 8ff7bfca..8ff7bfca 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_671.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_671.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_858.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_858.cpp
index 512d2e45..512d2e45 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_858.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_858.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_902.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_902.cpp
index eb51f587..eb51f587 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_902.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_902.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_1000.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_1000.cpp
index 06da6b3e..06da6b3e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_1000.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_1000.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_197.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_197.cpp
index e86698fd..e86698fd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_197.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_197.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_322.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_322.cpp
index bc7e687f..bc7e687f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_322.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_322.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_323.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_323.cpp
index ea141156..ea141156 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_323.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_323.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_359.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_359.cpp
index 294e3afb..294e3afb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_359.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_359.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_405.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_405.cpp
index eda9b0dd..eda9b0dd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_405.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_405.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_409.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_409.cpp
index b3b51488..b3b51488 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_409.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_409.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_411.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_411.cpp
index 647570f2..647570f2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_411.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_411.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_478.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_478.cpp
new file mode 100644
index 00000000..5a16eccc
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_478.cpp
@@ -0,0 +1,24 @@
+{
+QString fileName = QFileDialog::getOpenFileName(this,
+tr("Choose Configuration File"), ui->leStrategyFile->Text(),
+tr("Configuration Files (*.cfg);; All Files (*.*)"), 0);
+
+pSettings = new QSettings(QCoreApplication::applicationDirPath() + "/" +
+QCoreApplication::applicationName() + ".ini",
+QSettings::IniFormat);
+}
+int a ()
+{
+ double a_very_long_variable = test (foobar1,
+ foobar5);
+
+ double a_other_very_long = asdfasdfasdfasdfasdf + asdfasfafasdfa +
+ asdfasdfasdf - asdfasdf + 56598;
+
+ a_other_very_long = asdfasdfasdfasdfasdf + asdfasfafasdfa +
+ asdfasdfasdf - asdfasdf + 56598;
+
+ testadsfa (dfasdf,
+ aaafsdfa);
+ return 0;
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_481.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_481.cpp
index 2a4e6b8f..2a4e6b8f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_481.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_481.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_503.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_503.cpp
index 3c5951a8..3c5951a8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_503.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_503.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_512.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_512.cpp
index 3b4de434..3b4de434 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_512.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_512.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_525.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_525.cpp
index d0773475..d0773475 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_525.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_525.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_552.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_552.cpp
index 5a0704de..5a0704de 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_552.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_552.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_568.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_568.cpp
index 7b93e223..7b93e223 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_568.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_568.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_575.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_575.cpp
index 3ef21f1f..3ef21f1f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_575.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_575.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_596.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_596.cpp
index 88f77e34..88f77e34 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_596.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_596.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_646.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_646.cpp
index f89b6416..f89b6416 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_646.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_646.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_663.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_663.cpp
index 2a473bc7..2a473bc7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_663.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_663.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_666.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_666.cpp
index 00adec83..00adec83 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_666.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_666.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_682.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_682.h
index 8f1fc31f..8f1fc31f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_682.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_682.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_687.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_687.cpp
index 0f9e8155..0f9e8155 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_687.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_687.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_752.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_752.cpp
index b0b77452..b0b77452 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_752.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_752.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_753.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_753.cpp
index 07cc31fe..07cc31fe 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_753.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_753.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_793.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_793.cpp
index 6777bfa5..6777bfa5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_793.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_793.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_825.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_825.cpp
index d3f89db7..d3f89db7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_825.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_825.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_889.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_889.cpp
index 270f0695..270f0695 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_889.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_889.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_928.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_928.cpp
index d2878656..d2878656 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_928.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_928.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_938.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_938.h
index b13997a6..b13997a6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_938.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_938.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_999.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_999.cpp
index 2a5d64a4..2a5d64a4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_999.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_999.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_width.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_width.cpp
index 08f7888e..08f7888e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_width.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/bug_i_width.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/byref-2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/byref-2.cpp
index 0ef61cde..0ef61cde 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/byref-2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/byref-2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/byref-3.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/byref-3.cpp
index 28da2d74..28da2d74 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/byref-3.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/byref-3.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/byref-4.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/byref-4.cpp
new file mode 100644
index 00000000..0fe49c7b
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/byref-4.cpp
@@ -0,0 +1,5 @@
+int&(*fn)(int, struct sockaddr&);
+int& (*fn)(int, struct sockaddr&);
+int &(*fn)(int, struct sockaddr&);
+int & (*fn)(int, struct sockaddr&);
+int & (*fn)(int, struct sockaddr&);
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/byref.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/byref.cpp
index 85669bc6..85669bc6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/byref.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/byref.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/call_brace_init_lst.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/call_brace_init_lst.cpp
index 11f92ee3..11f92ee3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/call_brace_init_lst.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/call_brace_init_lst.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/case-brace-remove.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/case-brace-remove.cpp
index 421ff658..421ff658 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/case-brace-remove.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/case-brace-remove.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/cast.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/cast.cpp
new file mode 100644
index 00000000..7b29b06f
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/cast.cpp
@@ -0,0 +1,6 @@
+{
+ a = ( int)5.6;
+ b = int (5.6 );
+ c = (type<int>)t;
+ d = (type<int, int>)t;
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/casts.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/casts.cpp
index 0bcab0d9..0bcab0d9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/casts.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/casts.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/class-addr.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/class-addr.h
index ea539afa..ea539afa 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/class-addr.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/class-addr.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/class-implementation.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/class-implementation.cpp
index 05eb69cf..05eb69cf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/class-implementation.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/class-implementation.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/class-init.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/class-init.cpp
index af06e31a..af06e31a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/class-init.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/class-init.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/class.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/class.h
index 0048604d..0048604d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/class.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/class.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cmt-cpp-cont.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/cmt-cpp-cont.cpp
index 8885e36b..8885e36b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cmt-cpp-cont.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/cmt-cpp-cont.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cmt-reflow.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/cmt-reflow.cpp
index adb5a6ab..adb5a6ab 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cmt-reflow.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/cmt-reflow.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cmt_backslash_eol.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/cmt_backslash_eol.cpp
index e56aec25..e56aec25 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cmt_backslash_eol.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/cmt_backslash_eol.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cmt_convert_tab_to_spaces.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/cmt_convert_tab_to_spaces.cpp
index 32ff32d3..32ff32d3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cmt_convert_tab_to_spaces.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/cmt_convert_tab_to_spaces.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cmt_indent.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/cmt_indent.cpp
index 542a0fd2..542a0fd2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cmt_indent.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/cmt_indent.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cmt_indent_pp.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/cmt_indent_pp.h
index 25253f09..25253f09 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cmt_indent_pp.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/cmt_indent_pp.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cmt_insert.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/cmt_insert.cpp
index a5ae87d5..a5ae87d5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cmt_insert.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/cmt_insert.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cmt_right.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/cmt_right.cpp
index 121ea044..121ea044 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cmt_right.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/cmt_right.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cmt_trailing_single_line_c_to_cpp.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/cmt_trailing_single_line_c_to_cpp.cpp
index 1f3cff49..1f3cff49 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cmt_trailing_single_line_c_to_cpp.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/cmt_trailing_single_line_c_to_cpp.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/comma.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/comma.cpp
index e101145a..e101145a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/comma.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/comma.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/comment-align-multiline.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/comment-align-multiline.cpp
index 73dab5ec..73dab5ec 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/comment-align-multiline.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/comment-align-multiline.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/comment-align.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/comment-align.cpp
index 403bf773..403bf773 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/comment-align.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/comment-align.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/const_throw.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/const_throw.cpp
index f0d1773d..f0d1773d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/const_throw.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/const_throw.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/constr_colon.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/constr_colon.cpp
index 6c0706e5..6c0706e5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/constr_colon.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/constr_colon.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/constructor.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/constructor.cpp
index 46abf36a..46abf36a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/constructor.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/constructor.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/conversion_operator.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/conversion_operator.cpp
index 27b52dac..27b52dac 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/conversion_operator.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/conversion_operator.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cout.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/cout.cpp
index c3c9366d..c3c9366d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cout.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/cout.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cpp17.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/cpp17.cpp
index ba463284..ba463284 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cpp17.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/cpp17.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cpp_move.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/cpp_move.cpp
index cec9beb8..cec9beb8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cpp_move.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/cpp_move.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/ctor-var.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/ctor-var.cpp
index 2551d8bd..2551d8bd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/ctor-var.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/ctor-var.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/custom-open-2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/custom-open-2.cpp
index 422cb1bf..422cb1bf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/custom-open-2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/custom-open-2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/custom-open.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/custom-open.cpp
index 1544fd74..1544fd74 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/custom-open.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/custom-open.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/define-indentation.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/define-indentation.cpp
index 69e924ee..69e924ee 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/define-indentation.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/define-indentation.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/delete.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/delete.cpp
index fff916e3..fff916e3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/delete.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/delete.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/deref.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/deref.cpp
index abfb70c7..abfb70c7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/deref.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/deref.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/digraph.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/digraph.cpp
index 57cfddf5..57cfddf5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/digraph.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/digraph.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/disable_macro.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/disable_macro.cpp
index cb9fc307..cb9fc307 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/disable_macro.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/disable_macro.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/dont-detab-strings.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/dont-detab-strings.cpp
index fd622c3c..fd622c3c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/dont-detab-strings.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/dont-detab-strings.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/dont-process-defines.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/dont-process-defines.cpp
index a0a58f85..a0a58f85 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/dont-process-defines.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/dont-process-defines.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/eat_blanks_after_codewidth.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/eat_blanks_after_codewidth.cpp
index 8753aee2..8753aee2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/eat_blanks_after_codewidth.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/eat_blanks_after_codewidth.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/eigen.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/eigen.cpp
index 4e228311..4e228311 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/eigen.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/eigen.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/enum.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/enum.cpp
new file mode 100644
index 00000000..524f1d4b
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/enum.cpp
@@ -0,0 +1,207 @@
+ enum
+ class
+ angle_state_e
+ :
+ unsigned
+int {
+ NONE=0, OPEN=1, //'<' found
+CLOSE = 2 , //'>' found
+};
+
+// align.cpp
+enum class comment_align_e : unsigned int
+{
+ REGULAR,
+ BRACE,
+ ENDIF,
+};
+
+// chunk.h
+enum class E_Scope : unsigned int
+{
+ ALL, /**< search in all kind of chunks */
+ PREPROC, /**< search only in preprocessor chunks */
+};
+
+// chunk.cpp
+enum class E_Direction : unsigned int
+{
+ FORWARD,
+ BACKWARD
+};
+
+// combine.cpp
+{
+ enum class angle_state_e : unsigned int
+ {
+ NONE = 0,
+ OPEN = 1, // '<' found
+ CLOSE = 2, // '>' found
+ };
+}
+
+// indent.cpp
+enum class align_mode_e : unsigned int
+{
+ SHIFT, /* shift relative to the current column */
+ KEEP_ABS, /* try to keep the original absolute column */
+ KEEP_REL, /* try to keep the original gap */
+};
+
+// align_stack.h
+{
+ enum StarStyle
+ {
+ SS_IGNORE, // don't look for prev stars
+ SS_INCLUDE, // include prev * before add
+ SS_DANGLE // include prev * after add
+ };
+}
+
+// log_levels.h
+enum log_sev_t
+{
+ LSYS = 0,
+ LERR = 1,
+ LWARN = 2,
+ LNOTE = 3,
+ LINFO = 4,
+ LDATA = 5,
+
+ LFILELIST = 8, /* Files in the file list file */
+ LLINEENDS = 9, /* Show which line endings are used */
+ LCASTS = 10, /* align casts */
+ LALBR = 11, /* align braces */
+ LALTD = 12, /* Align Typedef */
+ LALPP = 13, /* align #define */
+ LALPROTO = 14, /* align prototype */
+ LALNLC = 15, /* align backslash-newline */
+ LALTC = 16, /* align trailing comments */
+ LALADD = 17, /* align add */
+ LALASS = 18, /* align assign */
+ LFVD = 19, /* fix_var_def */
+ LFVD2 = 20, /* fix_var_def-2 */
+ LINDENT = 21, /* indent_text */
+ LINDENT2 = 22, /* indent_text tab level */
+ LINDPSE = 23, /* indent_text stack */
+ LINDPC = 24, /* indent play-by-play */
+ LNEWLINE = 25, /* newlines */
+ LPF = 26, /* Parse Frame */
+ LSTMT = 27, /* Marking statements/expressions */
+ LTOK = 28, /* Tokenize */
+ LALRC = 29, /* align right comment */
+ LCMTIND = 30, /* Comment Indent */
+ LINDLINE = 31, /* indent line */
+ LSIB = 32, /* Scan IB */
+ LRETURN = 33, /* add/remove parens for return */
+ LBRDEL = 34, /* brace removal */
+ LFCN = 35, /* function detection */
+ LFCNP = 36, /* function parameters */
+ LPCU = 37, /* parse cleanup */
+ LDYNKW = 38, /* dynamic keywords */
+ LOUTIND = 39, /* output indent */
+ LBCSAFTER = 40, /* Brace cleanup stack - after each token */
+ LBCSPOP = 41, /* Brace cleanup stack - log pops */
+ LBCSPUSH = 42, /* Brace cleanup stack - log push */
+ LBCSSWAP = 43, /* Brace cleanup stack - log swaps */
+ LFTOR = 44, /* Class Ctor or Dtor */
+ LAS = 45, /* align_stack */
+ LPPIS = 46, /* Preprocessor Indent and Space */
+ LTYPEDEF = 47, /* Typedef and function types */
+ LVARDEF = 48, /* Variable def marking */
+ LDEFVAL = 49, /* define values */
+ LPVSEMI = 50, /* Pawn: virtual semicolons */
+ LPFUNC = 51, /* Pawn: function recognition */
+ LSPLIT = 52, /* Line splitting */
+ LFTYPE = 53, /* Function type detection */
+ LTEMPL = 54, /* Template detection */
+ LPARADD = 55, /* adding parens in if/while */
+ LPARADD2 = 56, /* adding parens in if/while - details */
+ LBLANKD = 57, /* blank line details */
+ LTEMPFUNC = 58, /* Template function detection */
+ LSCANSEMI = 59, /* scan semi colon removal */
+ LDELSEMI = 60, /* Removing semicolons */
+ LFPARAM = 61, /* Testing for a full parameter */
+ LNL1LINE = 62, /* NL check for 1 liners */
+ LPFCHK = 63, /* Parse Frame check fcn call */
+ LAVDB = 64, /* align var def braces */
+ LSORT = 65, /* Sorting */
+ LSPACE = 66, /* Space */
+ LALIGN = 67, /* align */
+ LALAGAIN = 68, /* align again */
+ LOPERATOR = 69, /* operator */
+ LASFCP = 70, /* Align Same Function Call Params */
+ LINDLINED = 71, /* indent line details */
+ LBCTRL = 72, /* beautifier control */
+ LRMRETURN = 73, /* remove 'return;' */
+ LPPIF = 74, /* #if/#else/#endif pair processing */
+ LMCB = 75, /* mod_case_brace */
+ LBRCH = 76, /* if brace chain */
+ LFCNR = 77, /* function return type */
+ LOCCLASS = 78, /* OC Class stuff */
+ LOCMSG = 79, /* OC Message stuff */
+ LBLANK = 80, /* Blank Lines */
+ LOBJCWORD = 81, /* Convert keyword to CT_WORD in certain circumstances */
+ LCHANGE = 82, /* something changed */
+ LCONTTEXT = 83, /* comment cont_text set */
+ LANNOT = 84, /* Java annotation */
+ LOCBLK = 85, /* OC Block stuff */
+ LFLPAREN = 86, /* Flag paren */
+ LOCMSGD = 87, /* OC Message declaration */
+ LINDENTAG = 88, /* indent again */
+ LNFD = 89, /* newline-function-def */
+ LJDBI = 90, /* Java Double Brace Init */
+ LSETPAR = 91, /* set_chunk_parent() */
+ LSETTYP = 92, /* set_chunk_type() */
+ LSETFLG = 93, /* set_chunk_flags() */
+ LNLFUNCT = 94, /* newlines before function */
+ LCHUNK = 95, /* Add or del chunk */
+ LGUY98 = 98, /* for guy-test */
+ LGUY = 99, /* for guy-test */
+};
+
+// options.h
+enum argtype_e
+{
+ AT_BOOL, /**< true / false */
+ AT_IARF, /**< Ignore / Add / Remove / Force */
+ AT_NUM, /**< Number */
+ AT_LINE, /**< Line Endings */
+ AT_POS, /**< start/end or Trail/Lead */
+ AT_STRING, /**< string value */
+ AT_UNUM, /**< unsigned Number */
+};
+
+enum argval_t
+{
+ AV_IGNORE = 0,
+ AV_ADD = 1,
+ AV_REMOVE = 2,
+ AV_FORCE = 3, /**< remove + add */
+ AV_NOT_DEFINED = 4 /* to be used with QT, SIGNAL SLOT macros */
+};
+
+enum lineends_e
+{
+ LE_LF, /* "\n" */
+ LE_CRLF, /* "\r\n" */
+ LE_CR, /* "\r" */
+
+ LE_AUTO, /* keep last */
+};
+
+enum tokenpos_e
+{
+ TP_IGNORE = 0, /* don't change it */
+ TP_BREAK = 1, /* add a newline before or after the if not present */
+ TP_FORCE = 2, /* force a newline on one side and not the other */
+ TP_LEAD = 4, /* at the start of a line or leading if wrapped line */
+ TP_LEAD_BREAK = (TP_LEAD | TP_BREAK),
+ TP_LEAD_FORCE = (TP_LEAD | TP_FORCE),
+ TP_TRAIL = 8, /* at the end of a line or trailing if wrapped line */
+ TP_TRAIL_BREAK = (TP_TRAIL | TP_BREAK),
+ TP_TRAIL_FORCE = (TP_TRAIL | TP_FORCE),
+ TP_JOIN = 16, /* remove newlines on both sides */
+};
+
+
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/enum_class.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/enum_class.h
index 2ba9933f..2ba9933f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/enum_class.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/enum_class.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/enum_comma.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/enum_comma.h
index 42ce2c53..42ce2c53 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/enum_comma.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/enum_comma.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/enum_comment_wrap.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/enum_comment_wrap.cpp
index 736e6718..736e6718 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/enum_comment_wrap.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/enum_comment_wrap.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/enum_shr.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/enum_shr.cpp
index 8bde6273..8bde6273 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/enum_shr.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/enum_shr.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/exception.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/exception.cpp
index 7f29676e..7f29676e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/exception.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/exception.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/extern_c.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/extern_c.h
index e4943e50..e4943e50 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/extern_c.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/extern_c.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/extern_func.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/extern_func.cpp
index 24e90a37..24e90a37 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/extern_func.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/extern_func.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/first_len_minimum.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/first_len_minimum.cpp
index 0a729f01..0a729f01 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/first_len_minimum.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/first_len_minimum.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/fix_for_relational_operators.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/fix_for_relational_operators.cpp
index 0014b110..0014b110 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/fix_for_relational_operators.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/fix_for_relational_operators.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/for_auto.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/for_auto.cpp
index c62548f8..c62548f8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/for_auto.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/for_auto.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/for_long.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/for_long.cpp
index 7685f614..7685f614 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/for_long.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/for_long.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/for_loop_head.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/for_loop_head.cpp
index cbfacf62..cbfacf62 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/for_loop_head.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/for_loop_head.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/foreach.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/foreach.cpp
index cfbe7963..cfbe7963 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/foreach.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/foreach.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/friends.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/friends.cpp
index 1b073b45..1b073b45 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/friends.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/friends.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/func-param-wrap-oc.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/func-param-wrap-oc.mm
index 16f98ce9..16f98ce9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/func-param-wrap-oc.mm
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/func-param-wrap-oc.mm
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/func_call.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/func_call.cpp
index 6467560f..6467560f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/func_call.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/func_call.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/func_call_chain.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/func_call_chain.cpp
index 7e2f3931..7e2f3931 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/func_call_chain.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/func_call_chain.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/func_class.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/func_class.cpp
index 64a11509..64a11509 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/func_class.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/func_class.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/func_class.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/func_class.h
index 168b0b3d..168b0b3d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/func_class.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/func_class.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/func_param.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/func_param.cpp
index 24b187c1..24b187c1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/func_param.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/func_param.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/func_param_indent_leading_comma.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/func_param_indent_leading_comma.cpp
index 8c62d49b..8c62d49b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/func_param_indent_leading_comma.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/func_param_indent_leading_comma.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/function-def.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/function-def.cpp
index 7f5e05c4..7f5e05c4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/function-def.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/function-def.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/functype_param.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/functype_param.cpp
index 5d2ff4fe..5d2ff4fe 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/functype_param.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/functype_param.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/gcc_case_ellipsis.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/gcc_case_ellipsis.cpp
index 1b0b4088..1b0b4088 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/gcc_case_ellipsis.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/gcc_case_ellipsis.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/gh555.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/gh555.cpp
index feb059d3..feb059d3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/gh555.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/gh555.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/goto.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/goto.cpp
index 0f50d182..0f50d182 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/goto.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/goto.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1082.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/i1082.cpp
index 06680c0e..06680c0e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1082.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/i1082.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1165.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/i1165.cpp
index c3123b59..c3123b59 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1165.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/i1165.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1181.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/i1181.cpp
index 1a959d34..1a959d34 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1181.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/i1181.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1207.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/i1207.cpp
index 0c8e1c92..0c8e1c92 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1207.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/i1207.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1218.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/i1218.cpp
index d4d05106..d4d05106 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1218.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/i1218.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/i1464.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/i1464.cpp
new file mode 100644
index 00000000..179ecd5e
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/i1464.cpp
@@ -0,0 +1,3 @@
+auto p = std::make_pair(r * cos(a), r * sin(a));
+
+auto p2 = std::make_pari(r * 0x0000'1111, 0x0000'1111 * r);
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/i1466.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/i1466.cpp
new file mode 100644
index 00000000..fe704d2a
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/i1466.cpp
@@ -0,0 +1,6 @@
+A a = {this->r * cos(b)};
+
+B b1 = {0x0000'1111 * this->r};
+B b3 = {this->r * 0x0000'1111};
+B b2 = {0x0000'1111 * value};
+B b4 = {value * 0x0000'1111};
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1509.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/i1509.cpp
index d3e79ff6..d3e79ff6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1509.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/i1509.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1509_bug_1112_correction.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/i1509_bug_1112_correction.cpp
index 1470d613..1470d613 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1509_bug_1112_correction.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/i1509_bug_1112_correction.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1516.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/i1516.cpp
index e1fe3f77..e1fe3f77 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1516.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/i1516.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1536.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/i1536.cpp
index 2c33ec58..2c33ec58 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1536.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/i1536.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1565.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/i1565.cpp
index 5cb66589..5cb66589 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1565.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/i1565.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1617.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/i1617.cpp
index 1901e3db..1901e3db 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1617.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/i1617.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1768.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/i1768.cpp
index 7fa82285..7fa82285 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1768.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/i1768.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i2033.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/i2033.cpp
index fd27cf6d..fd27cf6d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i2033.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/i2033.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i2116.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/i2116.cpp
index 8011f572..8011f572 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i2116.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/i2116.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i683.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/i683.cpp
index 4d95c7ce..4d95c7ce 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i683.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/i683.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/if-constexpr.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/if-constexpr.cpp
index 76f37f92..76f37f92 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/if-constexpr.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/if-constexpr.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/if_chain_braces.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/if_chain_braces.cpp
new file mode 100644
index 00000000..693efc63
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/if_chain_braces.cpp
@@ -0,0 +1,47 @@
+
+int foo() {
+ if ( a )
+ return 1;
+ else if ( b )
+ return 2;
+
+ if ( a )
+ return 3;
+ else if ( b )
+ return 4;
+ else {
+ a = 5;
+ return 5;
+ }
+
+ if ( a )
+ return 6;
+ else
+ return 7;
+
+ if ( a )
+ return 8;
+
+ if ( b ) {
+ return 9;
+ }
+
+ if ( b ) {
+ { b = 5; }
+ return 10;
+ }
+
+ if ( a )
+ return 11;
+ else {
+ return 12;
+ }
+
+ if ( a ) {
+ return 13;
+ } else if ( b ) {
+ return 14;
+ } else {
+ return 15;
+ }
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/if_constexpr.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/if_constexpr.cpp
index 032f74ec..032f74ec 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/if_constexpr.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/if_constexpr.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/ifcomment.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/ifcomment.cpp
index 52f508f6..52f508f6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/ifcomment.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/ifcomment.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent-c.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent-c.cpp
new file mode 100644
index 00000000..e8f1ad51
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent-c.cpp
@@ -0,0 +1,1084 @@
+/**
+ * @file indent.cpp
+ * Does all the indenting stuff.
+ *
+ * $Id: indent.cpp 548 2006-10-21 02:31:55Z bengardner $
+ */
+#include "uncrustify_types.h"
+#include "chunk.h"
+#include "prototypes.h"
+#include <cstdio>
+#include <cstdlib>
+#include <cstring>
+#include <cerrno>
+#include <cctype>
+
+
+/**
+ * General indenting approach:
+ * Indenting levels are put into a stack.
+ *
+ * The stack entries contain:
+ * - opening type
+ * - brace column
+ * - continuation column
+ *
+ * Items that start a new stack item:
+ * - preprocessor (new parse frame)
+ * - Brace Open (Virtual brace also)
+ * - Paren, Square, Angle open
+ * - Assignments
+ * - C++ '<<' operator (ie, cout << "blah")
+ * - case
+ * - class colon
+ * - return
+ * - types
+ * - any other continued statement
+ *
+ * Note that the column of items marked 'PCF_WAS_ALIGNED' is not changed.
+ *
+ * For an open brace:
+ * - indent increases by indent_columns
+ * - if part of if/else/do/while/switch/etc, an extra indent may be applied
+ * - if in a paren, then cont-col is set to column + 1, ie "({ some code })"
+ *
+ * Open paren/square/angle:
+ * cont-col is set to the column of the item after the open paren, unless
+ * followed by a newline, then it is set to (brace-col + indent_columns).
+ * Examples:
+ * a_really_long_funcion_name(
+ * param1, param2);
+ * a_really_long_funcion_name(param1,
+ * param2);
+ *
+ * Assignments:
+ * Assignments are continued aligned with the first item after the assignment,
+ * unless the assign is followed by a newline.
+ * Examples:
+ * some.variable = asdf + asdf +
+ * asdf;
+ * some.variable =
+ * asdf + asdf + asdf;
+ *
+ * C++ << operator:
+ * Handled the same as assignment.
+ * Examples:
+ * cout << "this is test number: "
+ * << test_number;
+ *
+ * case:
+ * Started with case or default.
+ * Terminated with close brace at level or another case or default.
+ * Special indenting according to various rules.
+ * - indent of case label
+ * - indent of case body
+ * - how to handle optional braces
+ * Examples:
+ * {
+ * case x: {
+ * a++;
+ * break;
+ * }
+ * case y:
+ * b--;
+ * break;
+ * default:
+ * c++;
+ * break;
+ * }
+ *
+ * Class colon:
+ * Indent continuation by indent_columns:
+ * class my_class :
+ * baseclass1,
+ * baseclass2
+ * {
+ *
+ * Return: same as assignemts
+ * If the return statement is not fully paren'd, then the indent continues at
+ * the column of the item after the return. If it is paren'd, then the paren
+ * rules apply.
+ * return somevalue +
+ * othervalue;
+ *
+ * Type: pretty much the same as assignments
+ * Examples:
+ * int foo,
+ * bar,
+ * baz;
+ *
+ * Any other continued item:
+ * There shouldn't be anything not covered by the above cases, but any other
+ * continued item is indented by indent_columns:
+ * Example:
+ * somereallycrazylongname.with[lotsoflongstuff].
+ * thatreallyannoysme.whenIhavetomaintain[thecode] = 3;
+ */
+
+static void indent_comment(Chunk *pc, int col);
+
+
+void indent_to_column(Chunk *pc, int column)
+{
+ if (column < pc->column)
+ {
+ column = pc->column;
+ }
+ reindent_line(pc, column);
+}
+
+/**
+ * Changes the initial indent for a line to the given column
+ *
+ * @param pc The chunk at the start of the line
+ * @param column The desired column
+ */
+void reindent_line(Chunk *pc, int column)
+{
+ int col_delta;
+ int min_col;
+
+ LOG_FMT(LINDLINE, "%s: %d] col %d on %.*s [%s] => %d\n",
+ __func__, pc->orig_line, pc->column, pc->len, pc->str,
+ get_token_name(pc->type), column);
+
+ if (column == pc->column)
+ {
+ return;
+ }
+ col_delta = column - pc->column;
+ pc->column = column;
+ min_col = pc->column;
+
+ do
+ {
+ min_col += pc->len;
+ pc = pc->GetNext();
+ if (pc != NULL)
+ {
+ if (chunk_is_comment(pc))
+ {
+ pc->column = pc->orig_col;
+ if (pc->column < min_col)
+ {
+ pc->column = min_col + 1;
+ }
+ LOG_FMT(LINDLINE, "%s: set comment on line %d to col %d (orig %d)\n",
+ __func__, pc->orig_line, pc->column, pc->orig_col);
+ }
+ else
+ {
+ pc->column += col_delta;
+ if (pc->column < min_col)
+ {
+ pc->column = min_col;
+ }
+ }
+ }
+ } while ((pc != NULL) && (pc->nl_count == 0));
+}
+
+
+/**
+ * Starts a new entry
+ *
+ * @param frm The parse frame
+ * @param pc The chunk causing the push
+ */
+static void indent_pse_push(struct parse_frame& frm, Chunk *pc)
+{
+ static int ref = 0;
+
+ /* check the stack depth */
+ if (frm.pse_tos < (int)ARRAY_SIZE(frm.pse))
+ {
+ /* Bump up the index and initialize it */
+ frm.pse_tos++;
+ memset(&frm.pse[frm.pse_tos], 0, sizeof(frm.pse[frm.pse_tos]));
+
+ LOG_FMT(LINDPSE, "%4d] OPEN [%d,%s] level=%d\n",
+ pc->orig_line, frm.pse_tos, get_token_name(pc->type), pc->level);
+
+ frm.pse[frm.pse_tos].type = pc->type;
+ frm.pse[frm.pse_tos].level = pc->level;
+ frm.pse[frm.pse_tos].open_line = pc->orig_line;
+ frm.pse[frm.pse_tos].ref = ++ref;
+ frm.pse[frm.pse_tos].in_preproc = (pc->flags & PCF_IN_PREPROC) != 0;
+ }
+}
+
+
+/**
+ * Removes the top entry
+ *
+ * @param frm The parse frame
+ * @param pc The chunk causing the push
+ */
+static void indent_pse_pop(struct parse_frame& frm, Chunk *pc)
+{
+ /* Bump up the index and initialize it */
+ if (frm.pse_tos > 0)
+ {
+ if (pc != NULL)
+ {
+ LOG_FMT(LINDPSE, "%4d] CLOSE [%d,%s] on %s, started on line %d, level=%d/%d\n",
+ pc->orig_line, frm.pse_tos,
+ get_token_name(frm.pse[frm.pse_tos].type),
+ get_token_name(pc->type),
+ frm.pse[frm.pse_tos].open_line,
+ frm.pse[frm.pse_tos].level,
+ pc->level);
+ }
+ else
+ {
+ LOG_FMT(LINDPSE, " EOF] CLOSE [%d,%s], started on line %d\n",
+ frm.pse_tos, get_token_name(frm.pse[frm.pse_tos].type),
+ frm.pse[frm.pse_tos].open_line);
+ }
+ frm.pse_tos--;
+ }
+}
+
+
+static int token_indent(E_Token type)
+{
+ switch (type)
+ {
+ case CT_IF:
+ case CT_DO:
+ return(3);
+
+ case CT_FOR:
+ case CT_ELSE: // wacky, but that's what is wanted
+ return(4);
+
+ case CT_WHILE:
+ return(6);
+
+ case CT_SWITCH:
+ return(7);
+
+ case CT_ELSEIF:
+ return(8);
+
+ default:
+ return(0); //cpd.settings[UO_indent_braces].n;
+ }
+}
+
+
+/**
+ * Change the top-level indentation only by changing the column member in
+ * the chunk structures.
+ * The level indicator must already be set.
+ */
+void indent_text(void)
+{
+ Chunk *pc;
+ Chunk *next;
+ Chunk *prev = NULL;
+ bool did_newline = true;
+ int idx;
+ int vardefcol = 0;
+ int indent_size = cpd.settings[UO_indent_columns].n;
+ int tmp;
+ struct parse_frame frm;
+ bool in_preproc = false, was_preproc = false;
+ int indent_column;
+ int cout_col = 0; // for aligning << stuff
+ int cout_level = 0; // for aligning << stuff
+ int parent_token_indent = 0;
+
+ memset(&frm, 0, sizeof(frm));
+
+ /* dummy top-level entry */
+ frm.pse[0].indent = 1;
+ frm.pse[0].indent_tmp = 1;
+ frm.pse[0].type = CT_EOF;
+
+ pc = Chunk::GetHead();
+ while (pc != NULL)
+ {
+ /* Handle proprocessor transitions */
+ was_preproc = in_preproc;
+ in_preproc = (pc->flags & PCF_IN_PREPROC) != 0;
+
+ if (cpd.settings[UO_indent_brace_parent].b)
+ {
+ parent_token_indent = token_indent(pc->parent_type);
+ }
+
+ /* Clean up after a #define */
+ if (!in_preproc)
+ {
+ while ((frm.pse_tos > 0) && frm.pse[frm.pse_tos].in_preproc)
+ {
+ indent_pse_pop(frm, pc);
+ }
+ }
+ else
+ {
+ pf_check(&frm, pc);
+
+ if (!was_preproc)
+ {
+ /* Transition into a preproc by creating a dummy indent */
+ frm.level++;
+ indent_pse_push(frm, pc);
+
+ frm.pse[frm.pse_tos].indent = 1 + indent_size;
+ frm.pse[frm.pse_tos].indent_tmp = frm.pse[frm.pse_tos].indent;
+ }
+ }
+
+ if ((cout_col > 0) &&
+ (chunk_is_semicolon(pc) ||
+ (pc->level < cout_level)))
+ {
+ cout_col = 0;
+ cout_level = 0;
+ }
+
+ /**
+ * Handle non-brace closures
+ */
+
+ int old_pse_tos;
+ do
+ {
+ old_pse_tos = frm.pse_tos;
+
+ /* End anything that drops a level
+ * REVISIT: not sure about the preproc check
+ */
+ if (!chunk_is_newline(pc) &&
+ !chunk_is_comment(pc) &&
+ ((pc->flags & PCF_IN_PREPROC) == 0) &&
+ (frm.pse[frm.pse_tos].level > pc->level))
+ {
+ indent_pse_pop(frm, pc);
+ }
+
+ if (frm.pse[frm.pse_tos].level == pc->level)
+ {
+ /* process virtual braces closes (no text output) */
+ if ((pc->type == CT_VBRACE_CLOSE) &&
+ (frm.pse[frm.pse_tos].type == CT_VBRACE_OPEN))
+ {
+ indent_pse_pop(frm, pc);
+ frm.level--;
+ pc = pc->GetNext();
+ }
+
+ /* End any assign operations with a semicolon on the same level */
+ if ((frm.pse[frm.pse_tos].type == CT_ASSIGN) &&
+ (chunk_is_semicolon(pc) ||
+ (pc->type == CT_COMMA) ||
+ (pc->type == CT_BRACE_OPEN)))
+ {
+ indent_pse_pop(frm, pc);
+ }
+
+ /* End any CPP class colon crap */
+ if ((frm.pse[frm.pse_tos].type == CT_CLASS_COLON) &&
+ ((pc->type == CT_BRACE_OPEN) ||
+ chunk_is_semicolon(pc)))
+ {
+ indent_pse_pop(frm, pc);
+ }
+
+ /* a case is ended with another case or a close brace */
+ if ((frm.pse[frm.pse_tos].type == CT_CASE) &&
+ ((pc->type == CT_BRACE_CLOSE) ||
+ (pc->type == CT_CASE)))
+ {
+ indent_pse_pop(frm, pc);
+ }
+
+ /* a return is ended with a semicolon */
+ if ((frm.pse[frm.pse_tos].type == CT_RETURN) &&
+ chunk_is_semicolon(pc))
+ {
+ indent_pse_pop(frm, pc);
+ }
+
+ /* Close out parens and squares */
+ if ((frm.pse[frm.pse_tos].type == (pc->type - 1)) &&
+ ((pc->type == CT_PAREN_CLOSE) ||
+ (pc->type == CT_SPAREN_CLOSE) ||
+ (pc->type == CT_FPAREN_CLOSE) ||
+ (pc->type == CT_SQUARE_CLOSE) ||
+ (pc->type == CT_ANGLE_CLOSE)))
+ {
+ indent_pse_pop(frm, pc);
+ frm.paren_count--;
+ }
+ }
+ } while (old_pse_tos > frm.pse_tos);
+
+ /* Grab a copy of the current indent */
+ indent_column = frm.pse[frm.pse_tos].indent_tmp;
+
+ if (!chunk_is_newline(pc) && !chunk_is_comment(pc))
+ {
+ LOG_FMT(LINDPC, " -=[ %.*s ]=- top=%d %s %d/%d\n",
+ pc->len, pc->str,
+ frm.pse_tos,
+ get_token_name(frm.pse[frm.pse_tos].type),
+ frm.pse[frm.pse_tos].indent_tmp,
+ frm.pse[frm.pse_tos].indent);
+ }
+
+ /**
+ * Handle stuff that can affect the current indent:
+ * - brace close
+ * - vbrace open
+ * - brace open
+ * - case (immediate)
+ * - labels (immediate)
+ * - class colons (immediate)
+ *
+ * And some stuff that can't
+ * - open paren
+ * - open square
+ * - assignment
+ * - return
+ */
+
+ if (pc->type == CT_BRACE_CLOSE)
+ {
+ if (frm.pse[frm.pse_tos].type == CT_BRACE_OPEN)
+ {
+ indent_pse_pop(frm, pc);
+ frm.level--;
+
+ /* Update the indent_column if needed */
+ if (!cpd.settings[UO_indent_braces].b &&
+ (parent_token_indent == 0))
+ {
+ indent_column = frm.pse[frm.pse_tos].indent_tmp;
+ }
+
+ if ((pc->parent_type == CT_IF) ||
+ (pc->parent_type == CT_ELSE) ||
+ (pc->parent_type == CT_ELSEIF) ||
+ (pc->parent_type == CT_DO) ||
+ (pc->parent_type == CT_WHILE) ||
+ (pc->parent_type == CT_SWITCH) ||
+ (pc->parent_type == CT_FOR))
+ {
+ indent_column += cpd.settings[UO_indent_brace].n;
+ }
+ }
+ }
+ else if (pc->type == CT_VBRACE_OPEN)
+ {
+ frm.level++;
+ indent_pse_push(frm, pc);
+
+ frm.pse[frm.pse_tos].indent = frm.pse[frm.pse_tos - 1].indent + indent_size;
+ frm.pse[frm.pse_tos].indent_tmp = frm.pse[frm.pse_tos].indent;
+
+ /* Always indent on virtual braces */
+ indent_column = frm.pse[frm.pse_tos].indent_tmp;
+ }
+ else if (pc->type == CT_BRACE_OPEN)
+ {
+ frm.level++;
+ indent_pse_push(frm, pc);
+
+ if (frm.paren_count != 0)
+ {
+ /* We are inside ({ ... }) -- indent one tab from the paren */
+ frm.pse[frm.pse_tos].indent = frm.pse[frm.pse_tos - 1].indent_tmp + indent_size;
+ }
+ else
+ {
+ /* Use the prev indent level + indent_size. */
+ frm.pse[frm.pse_tos].indent = frm.pse[frm.pse_tos - 1].indent + indent_size;
+
+ /* If this brace is part of a statement, bump it out by indent_brace */
+ if ((pc->parent_type == CT_IF) ||
+ (pc->parent_type == CT_ELSE) ||
+ (pc->parent_type == CT_ELSEIF) ||
+ (pc->parent_type == CT_DO) ||
+ (pc->parent_type == CT_WHILE) ||
+ (pc->parent_type == CT_SWITCH) ||
+ (pc->parent_type == CT_FOR))
+ {
+ if (parent_token_indent != 0)
+ {
+ frm.pse[frm.pse_tos].indent += parent_token_indent - indent_size;
+ }
+ else
+ {
+ frm.pse[frm.pse_tos].indent += cpd.settings[UO_indent_brace].n;
+ indent_column += cpd.settings[UO_indent_brace].n;
+ }
+ }
+ else if (pc->parent_type == CT_CASE)
+ {
+ /* The indent_case_brace setting affects the parent CT_CASE */
+ frm.pse[frm.pse_tos].indent_tmp += cpd.settings[UO_indent_case_brace].n;
+ frm.pse[frm.pse_tos].indent += cpd.settings[UO_indent_case_brace].n;
+ }
+ else if ((pc->parent_type == CT_CLASS) && !cpd.settings[UO_indent_class].b)
+ {
+ frm.pse[frm.pse_tos].indent -= indent_size;
+ }
+ else if ((pc->parent_type == CT_NAMESPACE) && !cpd.settings[UO_indent_namespace].b)
+ {
+ frm.pse[frm.pse_tos].indent -= indent_size;
+ }
+ }
+
+ if ((pc->flags & PCF_DONT_INDENT) != 0)
+ {
+ frm.pse[frm.pse_tos].indent = pc->column;
+ indent_column = pc->column;
+ }
+ else
+ {
+ /**
+ * If there isn't a newline between the open brace and the next
+ * item, just indent to wherever the next token is.
+ * This covers this sort of stuff:
+ * { a++;
+ * b--; };
+ */
+ next = pc->GetNextNcNnl();
+ if (!chunk_is_newline_between(pc, next))
+ {
+ frm.pse[frm.pse_tos].indent = next->column;
+ }
+ frm.pse[frm.pse_tos].indent_tmp = frm.pse[frm.pse_tos].indent;
+ frm.pse[frm.pse_tos].open_line = pc->orig_line;
+
+ /* Update the indent_column if needed */
+ if (cpd.settings[UO_indent_braces].n ||
+ (parent_token_indent != 0))
+ {
+ indent_column = frm.pse[frm.pse_tos].indent_tmp;
+ }
+ }
+ }
+ else if (pc->type == CT_CASE)
+ {
+ /* Start a case - indent UO_indent_switch_case from the switch level */
+ tmp = frm.pse[frm.pse_tos].indent + cpd.settings[UO_indent_switch_case].n;
+
+ indent_pse_push(frm, pc);
+
+ frm.pse[frm.pse_tos].indent = tmp;
+ frm.pse[frm.pse_tos].indent_tmp = tmp - indent_size;
+
+ /* Always set on case statements */
+ indent_column = frm.pse[frm.pse_tos].indent_tmp;
+ }
+ else if (pc->type == CT_LABEL)
+ {
+ /* Labels get sent to the left or backed up */
+ if (cpd.settings[UO_indent_label].n > 0)
+ {
+ indent_column = cpd.settings[UO_indent_label].n;
+ }
+ else
+ {
+ indent_column = frm.pse[frm.pse_tos].indent +
+ cpd.settings[UO_indent_label].n;
+ }
+ }
+ else if (pc->type == CT_CLASS_COLON)
+ {
+ /* just indent one level */
+ indent_pse_push(frm, pc);
+ frm.pse[frm.pse_tos].indent = frm.pse[frm.pse_tos - 1].indent_tmp + indent_size;
+ frm.pse[frm.pse_tos].indent_tmp = frm.pse[frm.pse_tos].indent;
+
+ indent_column = frm.pse[frm.pse_tos].indent_tmp;
+
+ if (cpd.settings[UO_indent_class_colon].b)
+ {
+ prev = pc->GetPrev();
+ if (chunk_is_newline(prev))
+ {
+ frm.pse[frm.pse_tos].indent += 2;
+ /* don't change indent of current line */
+ }
+ }
+ }
+ else if ((pc->type == CT_PAREN_OPEN) ||
+ (pc->type == CT_SPAREN_OPEN) ||
+ (pc->type == CT_FPAREN_OPEN) ||
+ (pc->type == CT_SQUARE_OPEN) ||
+ (pc->type == CT_ANGLE_OPEN))
+ {
+ /* Open parens and squares - never update indent_column */
+ indent_pse_push(frm, pc);
+ frm.pse[frm.pse_tos].indent = pc->column + pc->len;
+
+ if (cpd.settings[UO_indent_func_call_param].b &&
+ (pc->type == CT_FPAREN_OPEN) &&
+ (pc->parent_type == CT_FUNC_CALL))
+ {
+ frm.pse[frm.pse_tos].indent = frm.pse[frm.pse_tos - 1].indent + indent_size;
+ }
+
+ if ((chunk_is_str(pc, "(", 1) && !cpd.settings[UO_indent_paren_nl].b) ||
+ (chunk_is_str(pc, "[", 1) && !cpd.settings[UO_indent_square_nl].b))
+ {
+ next = pc->GetNextNc();
+ if (chunk_is_newline(next))
+ {
+ int sub = 1;
+ if (frm.pse[frm.pse_tos - 1].type == CT_ASSIGN)
+ {
+ sub = 2;
+ }
+ frm.pse[frm.pse_tos].indent = frm.pse[frm.pse_tos - sub].indent + indent_size;
+ }
+ }
+ frm.pse[frm.pse_tos].indent_tmp = frm.pse[frm.pse_tos].indent;
+ frm.paren_count++;
+ }
+ else if (pc->type == CT_ASSIGN)
+ {
+ /**
+ * if there is a newline after the '=', just indent one level,
+ * otherwise align on the '='.
+ * Never update indent_column.
+ */
+ next = pc->GetNext();
+ if (next != NULL)
+ {
+ indent_pse_push(frm, pc);
+ if (chunk_is_newline(next))
+ {
+ frm.pse[frm.pse_tos].indent = frm.pse[frm.pse_tos - 1].indent_tmp + indent_size;
+ }
+ else
+ {
+ frm.pse[frm.pse_tos].indent = pc->column + pc->len + 1;
+ }
+ frm.pse[frm.pse_tos].indent_tmp = frm.pse[frm.pse_tos].indent;
+ }
+ }
+ else if (pc->type == CT_RETURN)
+ {
+ /* don't count returns inside a () or [] */
+ if (pc->level == pc->brace_level)
+ {
+ indent_pse_push(frm, pc);
+ frm.pse[frm.pse_tos].indent = frm.pse[frm.pse_tos - 1].indent + pc->len + 1;
+ frm.pse[frm.pse_tos].indent_tmp = frm.pse[frm.pse_tos - 1].indent;
+ }
+ }
+ else if (chunk_is_str(pc, "<<", 2))
+ {
+ if (cout_col == 0)
+ {
+ cout_col = pc->column;
+ cout_level = pc->level;
+ }
+ }
+ else
+ {
+ /* anything else? */
+ }
+
+
+ /**
+ * Indent the line if needed
+ */
+ if (did_newline && !chunk_is_newline(pc) && (pc->len != 0))
+ {
+ /**
+ * Check for special continuations.
+ * Note that some of these could be done as a stack item like
+ * everything else
+ */
+
+ prev = pc->GetPrevNcNnl();
+ if ((pc->type == CT_MEMBER) ||
+ (pc->type == CT_DC_MEMBER) ||
+ ((prev != NULL) &&
+ ((prev->type == CT_MEMBER) ||
+ (prev->type == CT_DC_MEMBER))))
+ {
+ tmp = cpd.settings[UO_indent_member].n + indent_column;
+ LOG_FMT(LINDENT, "%s: %d] member => %d\n",
+ __func__, pc->orig_line, tmp);
+ reindent_line(pc, tmp);
+ }
+ else if (chunk_is_str(pc, "<<", 2) && (cout_col > 0))
+ {
+ LOG_FMT(LINDENT, "%s: %d] cout_col => %d\n",
+ __func__, pc->orig_line, cout_col);
+ reindent_line(pc, cout_col);
+ }
+ else if ((vardefcol > 0) &&
+ (pc->type == CT_WORD) &&
+ ((pc->flags & PCF_VAR_DEF) != 0) &&
+ (prev != NULL) && (prev->type == CT_COMMA))
+ {
+ LOG_FMT(LINDENT, "%s: %d] Vardefcol => %d\n",
+ __func__, pc->orig_line, vardefcol);
+ reindent_line(pc, vardefcol);
+ }
+ else if ((pc->type == CT_STRING) && (prev->type == CT_STRING) &&
+ cpd.settings[UO_indent_align_string].b)
+ {
+ LOG_FMT(LINDENT, "%s: %d] String => %d\n",
+ __func__, pc->orig_line, prev->column);
+ reindent_line(pc, prev->column);
+ }
+ else if (chunk_is_comment(pc))
+ {
+ LOG_FMT(LINDENT, "%s: %d] comment => %d\n",
+ __func__, pc->orig_line, frm.pse[frm.pse_tos].indent_tmp);
+ indent_comment(pc, frm.pse[frm.pse_tos].indent_tmp);
+ }
+ else if (pc->type == CT_PREPROC)
+ {
+ /* Preprocs are always in column 1. See indent_preproc() */
+ if (pc->column != 1)
+ {
+ reindent_line(pc, 1);
+ }
+ }
+ else
+ {
+ if (pc->column != indent_column)
+ {
+ LOG_FMT(LINDENT, "%s: %d] indent => %d [%.*s]\n",
+ __func__, pc->orig_line, indent_column, pc->len, pc->str);
+ reindent_line(pc, indent_column);
+ }
+ }
+ did_newline = false;
+ }
+
+ /**
+ * Handle variable definition continuation indenting
+ */
+ if ((pc->type == CT_WORD) &&
+ ((pc->flags & PCF_IN_FCN_DEF) == 0) &&
+ ((pc->flags & PCF_VAR_1ST_DEF) == PCF_VAR_1ST_DEF))
+ {
+ vardefcol = pc->column;
+ }
+ if (chunk_is_semicolon(pc) ||
+ ((pc->type == CT_BRACE_OPEN) && (pc->parent_type == CT_FUNCTION)))
+ {
+ vardefcol = 0;
+ }
+
+ /* if we hit a newline, reset indent_tmp */
+ if (chunk_is_newline(pc) ||
+ (pc->type == CT_COMMENT_MULTI) ||
+ (pc->type == CT_COMMENT_CPP))
+ {
+ frm.pse[frm.pse_tos].indent_tmp = frm.pse[frm.pse_tos].indent;
+
+ /**
+ * Handle the case of a multi-line #define w/o anything on the
+ * first line (indent_tmp will be 1 or 0)
+ */
+ if ((pc->type == CT_NL_CONT) &&
+ (frm.pse[frm.pse_tos].indent_tmp <= indent_size))
+ {
+ frm.pse[frm.pse_tos].indent_tmp = indent_size + 1;
+ }
+
+ /* Get ready to indent the next item */
+ did_newline = true;
+ }
+
+ if (!chunk_is_comment(pc) && !chunk_is_newline(pc))
+ {
+ prev = pc;
+ }
+ pc = pc->GetNext();
+ }
+
+ /* Throw out any stuff inside a preprocessor - no need to warn */
+ while ((frm.pse_tos > 0) && frm.pse[frm.pse_tos].in_preproc)
+ {
+ indent_pse_pop(frm, pc);
+ }
+
+ for (idx = 1; idx <= frm.pse_tos; idx++)
+ {
+ LOG_FMT(LWARN, "%s:%d Unmatched %s\n",
+ cpd.filename, frm.pse[idx].open_line,
+ get_token_name(frm.pse[idx].type));
+ cpd.error_count++;
+ }
+}
+
+/**
+ * returns true if forward scan reveals only single newlines or comments
+ * stops when hits code
+ * false if next thing hit is a closing brace, also if 2 newlines in a row
+ */
+
+
+static bool single_line_comment_indent_rule_applies(Chunk *start)
+{
+ Chunk *pc = start;
+ int nl_count = 0;
+ if (!chunk_is_single_line_comment(pc))
+ {
+ return(false);
+ }
+ /* scan forward, if only single newlines and comments before next line of code, we want to apply */
+ while ((pc = pc->GetNext()) != NULL)
+ {
+ if (chunk_is_newline(pc))
+ {
+ if (nl_count > 0 || pc->nl_count > 1)
+ {
+ return(false);
+ }
+
+ nl_count++;
+ }
+ else
+ {
+ nl_count = 0;
+ if (!chunk_is_single_line_comment(pc))
+ {
+ /* here we check for things to run into that we wouldn't want to indent the comment for */
+ /* for example, non-single line comment, closing brace */
+ if (chunk_is_comment(pc) || chunk_is_closing_brace(pc))
+ {
+ return(false);
+ }
+
+ return(true);
+ }
+ }
+ }
+
+ return(false);
+}
+
+/**
+ * REVISIT: This needs to be re-checked, maybe cleaned up
+ *
+ * Indents comments in a (hopefully) smart manner.
+ *
+ * There are two type of comments that get indented:
+ * - stand alone (ie, no tokens on the line before the comment)
+ * - trailing comments (last token on the line apart from a linefeed)
+ * + note that a stand-alone comment is a special case of a trailing
+ *
+ * The stand alone comments will get indented in one of three ways:
+ * - column 1:
+ * + There is an empty line before the comment AND the indent level is 0
+ * + The comment was originally in column 1
+ *
+ * - Same column as trailing comment on previous line (ie, aligned)
+ * + if originally within TBD (3) columns of the previous comment
+ *
+ * - syntax indent level
+ * + doesn't fit in the previous categories
+ *
+ * Options modify this behavior:
+ * - keep original column (don't move the comment, if possible)
+ * - keep relative column (move out the same amount as first item on line)
+ * - fix trailing comment in column TBD
+ *
+ * @param pc The comment, which is the first item on a line
+ * @param col The column if this is to be put at indent level
+ */
+static void indent_comment(Chunk *pc, int col)
+{
+ Chunk *nl;
+ Chunk *prev;
+
+ LOG_FMT(LCMTIND, "%s: line %d, col %d, level %d: ", __func__,
+ pc->orig_line, pc->orig_col, pc->level);
+
+ /* force column 1 comment to column 1 if not changing them */
+ if ((pc->orig_col == 1) && !cpd.settings[UO_indent_col1_comment].b)
+ {
+ LOG_FMT(LCMTIND, "rule 1 - keep in col 1\n");
+ pc->column = 1;
+ return;
+ }
+
+ nl = pc->GetPrev();
+
+ /* outside of any expression or statement? */
+ if (pc->level == 0)
+ {
+ if ((nl != NULL) && (nl->nl_count > 1))
+ {
+ LOG_FMT(LCMTIND, "rule 2 - level 0, nl before\n");
+ pc->column = 1;
+ return;
+ }
+ }
+
+ prev = nl->GetPrev();
+ if (chunk_is_comment(prev) && (nl->nl_count == 1))
+ {
+ int coldiff = prev->orig_col - pc->orig_col;
+
+ if ((coldiff <= 3) && (coldiff >= -3))
+ {
+ pc->column = prev->column;
+ LOG_FMT(LCMTIND, "rule 3 - prev comment, coldiff = %d, now in %d\n",
+ coldiff, pc->column);
+ return;
+ }
+ }
+ /* check if special single line comment rule applies */
+ if (cpd.settings[UO_indent_sing_line_comments].n > 0 && single_line_comment_indent_rule_applies(pc))
+ {
+ pc->column = col + cpd.settings[UO_indent_sing_line_comments].n;
+ LOG_FMT(LCMTIND, "rule 4 - single line comment indent, now in %d\n", pc->column);
+ return;
+ }
+ LOG_FMT(LCMTIND, "rule 5 - fall-through, stay in %d\n", col);
+
+ pc->column = col;
+}
+
+
+/**
+ * Put spaces on either side of the preproc (#) symbol.
+ * This is done by pointing pc->str into pp_str and adjusting the
+ * length.
+ */
+void indent_preproc(void)
+{
+ Chunk *pc;
+ Chunk *next;
+ int pp_level;
+ int pp_level_sub = 0;
+ int tmp;
+
+ /* Define a string of 16 spaces + # + 16 spaces */
+ static const char *pp_str = " # ";
+ static const char *alt_str = " %: ";
+
+ /* Scan to see if the whole file is covered by one #ifdef */
+ int stage = 0;
+
+ for (pc = Chunk::GetHead(); pc != NULL; pc = pc->GetNext())
+ {
+ if (chunk_is_comment(pc) || chunk_is_newline(pc))
+ {
+ continue;
+ }
+
+ if (stage == 0)
+ {
+ /* Check the first PP, make sure it is an #if type */
+ if (pc->type != CT_PREPROC)
+ {
+ break;
+ }
+ next = pc->GetNext();
+ if ((next == NULL) || (next->type != CT_PP_IF))
+ {
+ break;
+ }
+ stage = 1;
+ }
+ else if (stage == 1)
+ {
+ /* Scan until a PP at level 0 is found - the close to the #if */
+ if ((pc->type == CT_PREPROC) &&
+ (pc->pp_level == 0))
+ {
+ stage = 2;
+ }
+ continue;
+ }
+ else if (stage == 2)
+ {
+ /* We should only see the rest of the preprocessor */
+ if ((pc->type == CT_PREPROC) ||
+ ((pc->flags & PCF_IN_PREPROC) == 0))
+ {
+ stage = 0;
+ break;
+ }
+ }
+ }
+
+ if (stage == 2)
+ {
+ LOG_FMT(LINFO, "The whole file is covered by a #IF\n");
+ pp_level_sub = 1;
+ }
+
+ for (pc = Chunk::GetHead(); pc != NULL; pc = pc->GetNext())
+ {
+ if (pc->type != CT_PREPROC)
+ {
+ continue;
+ }
+
+ if (pc->column != 1)
+ {
+ /* Don't handle preprocessors that aren't in column 1 */
+ LOG_FMT(LINFO, "%s: Line %d doesn't start in column 1 (%d)\n",
+ __func__, pc->orig_line, pc->column);
+ continue;
+ }
+
+ /* point into pp_str */
+ if (pc->len == 2)
+ {
+ /* alternate token crap */
+ pc->str = &alt_str[16];
+ }
+ else
+ {
+ pc->str = &pp_str[16];
+ }
+
+ pp_level = pc->pp_level - pp_level_sub;
+ if (pp_level < 0)
+ {
+ pp_level = 0;
+ }
+ else if (pp_level > 16)
+ {
+ pp_level = 16;
+ }
+
+ /* Note that the indent is removed by default */
+ if ((cpd.settings[UO_pp_indent].a & AV_ADD) != 0)
+ {
+ /* Need to add some spaces */
+ pc->str -= pp_level;
+ pc->len += pp_level;
+ }
+ else if (cpd.settings[UO_pp_indent].a == AV_IGNORE)
+ {
+ tmp = (pc->orig_col <= 16) ? pc->orig_col - 1 : 16;
+ pc->str -= tmp;
+ pc->len += tmp;
+ }
+
+ /* Add spacing by adjusting the length */
+ if ((cpd.settings[UO_pp_space].a & AV_ADD) != 0)
+ {
+ pc->len += pp_level;
+ }
+
+ next = pc->GetNext();
+ if (next != NULL)
+ {
+ reindent_line(next, pc->len + 1);
+ }
+
+ LOG_FMT(LPPIS, "%s: Indent line %d to %d (len %d, next->col %d)\n",
+ __func__, pc->orig_line, pp_level, pc->len, next->column);
+ }
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent-inside-ternary-operator.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent-inside-ternary-operator.cpp
index 6cd779a3..6cd779a3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent-inside-ternary-operator.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent-inside-ternary-operator.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent-misc.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent-misc.cpp
index 78a924f4..78a924f4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent-misc.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent-misc.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent-off.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent-off.cpp
index 79a7ad65..79a7ad65 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent-off.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent-off.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent.cpp
index a8c4a514..a8c4a514 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_braces_no.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent_braces_no.h
index c5b39b37..c5b39b37 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_braces_no.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent_braces_no.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_comma_brace_func.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent_comma_brace_func.cpp
index d417b5be..d417b5be 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_comma_brace_func.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent_comma_brace_func.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_comma_brace_glob.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent_comma_brace_glob.cpp
index 8e01afc6..8e01afc6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_comma_brace_glob.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent_comma_brace_glob.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_comment_align_thresh.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent_comment_align_thresh.cpp
index 7ddfacbf..7ddfacbf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_comment_align_thresh.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent_comment_align_thresh.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_ctor_init.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent_ctor_init.cpp
index d9fefe24..d9fefe24 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_ctor_init.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent_ctor_init.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_ctor_members_twice.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent_ctor_members_twice.cpp
index 4fbd1b4c..4fbd1b4c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_ctor_members_twice.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent_ctor_members_twice.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent_func_alias_prototype.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent_func_alias_prototype.cpp
new file mode 100644
index 00000000..7bd2afdc
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent_func_alias_prototype.cpp
@@ -0,0 +1,55 @@
+
+using Fun1 = void ( ) ;
+using Fun2 = void ( ) noexcept;
+
+using Fun1a = void (
+ ) ;
+
+using Fun2a = void (
+ ) noexcept;
+
+using Fun3a = void (
+ int a,
+ const char*
+ );
+
+using Fun4a = void (
+ int a,
+ const char*
+ ) noexcept;
+
+using Fun5a = void (
+ int a,
+ const char*
+ );
+
+using Fun6a = void (
+ int a,
+ const char*
+ ) noexcept;
+
+using Fun1b = auto (
+) -> int;
+
+using Fun2b = auto (
+) noexcept -> int;
+
+using Fun3b = auto (
+ int a,
+ const char*
+ ) -> int;
+
+using Fun4b = auto (
+ int a,
+ const char*
+ ) noexcept -> int;
+
+using Fun5b = auto (
+ int a,
+ const char*
+ ) -> int;
+
+using Fun6b = auto (
+ int a,
+ const char*
+ ) noexcept -> int;
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_namespace.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent_namespace.h
index f97bd324..f97bd324 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_namespace.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent_namespace.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_namespace2.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent_namespace2.h
index db2ce47d..db2ce47d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_namespace2.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent_namespace2.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent_namespace_inner_only.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent_namespace_inner_only.h
new file mode 100644
index 00000000..a73879a7
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent_namespace_inner_only.h
@@ -0,0 +1,8 @@
+namespace out
+{
+ int i;
+ namespace in
+ {
+ int i;
+ }
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_namespace_single_indent.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent_namespace_single_indent.h
index 97d57444..97d57444 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_namespace_single_indent.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent_namespace_single_indent.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_off_after_return.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent_off_after_return.cpp
index 58e24797..58e24797 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_off_after_return.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent_off_after_return.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_param.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent_param.cpp
index c194141b..c194141b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_param.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent_param.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_paren_after_func_call.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent_paren_after_func_call.cpp
index 96b38fba..96b38fba 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_paren_after_func_call.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent_paren_after_func_call.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_paren_after_func_decl.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent_paren_after_func_decl.cpp
index ff8c3e44..ff8c3e44 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_paren_after_func_decl.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent_paren_after_func_decl.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_paren_after_func_def.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent_paren_after_func_def.cpp
index 703e0422..703e0422 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_paren_after_func_def.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent_paren_after_func_def.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_shift.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent_shift.cpp
index 54684fa7..54684fa7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_shift.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent_shift.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_switch_pp.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent_switch_pp.cpp
index 1b76e218..1b76e218 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_switch_pp.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent_switch_pp.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_var_def.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent_var_def.cpp
index 394cfb63..394cfb63 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_var_def.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent_var_def.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_var_def_cont.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent_var_def_cont.cpp
index d273ae52..d273ae52 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_var_def_cont.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/indent_var_def_cont.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/init-list-call.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/init-list-call.cpp
index 70451ac4..70451ac4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/init-list-call.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/init-list-call.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/init_align.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/init_align.h
index ff1dcc9b..ff1dcc9b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/init_align.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/init_align.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/initlist_leading_commas.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/initlist_leading_commas.cpp
index 83188d77..83188d77 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/initlist_leading_commas.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/initlist_leading_commas.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/interface-keyword-in-cpp.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/interface-keyword-in-cpp.cpp
index bc039e18..bc039e18 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/interface-keyword-in-cpp.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/interface-keyword-in-cpp.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_1752.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_1752.cpp
index e3be4d50..e3be4d50 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_1752.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_1752.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_1778.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_1778.cpp
index 4eea46e0..4eea46e0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_1778.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_1778.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_1782.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_1782.cpp
index c12b83d0..c12b83d0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_1782.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_1782.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_1804.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_1804.cpp
index 2923a4a2..2923a4a2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_1804.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_1804.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_1916.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_1916.cpp
index 4c819605..4c819605 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_1916.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_1916.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_1919.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_1919.cpp
index 187065d6..187065d6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_1919.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_1919.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_1946.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_1946.cpp
index 9682da68..9682da68 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_1946.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_1946.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_1985.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_1985.cpp
index 4e5685a1..4e5685a1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_1985.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_1985.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_2000.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_2000.cpp
index aa324f2e..aa324f2e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_2000.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_2000.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_2001.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_2001.cpp
index 39b9446d..39b9446d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_2001.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_2001.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_2124-1.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_2124-1.cpp
index 8c582cf9..8c582cf9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_2124-1.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_2124-1.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_2124-2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_2124-2.cpp
index 8c582cf9..8c582cf9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_2124-2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_2124-2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_2209-1.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_2209-1.cpp
index a1ebb1a7..a1ebb1a7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_2209-1.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_2209-1.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_2209-2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_2209-2.cpp
index 5725d3d7..5725d3d7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_2209-2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_2209-2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_2623.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_2623.cpp
index 5834e4b3..5834e4b3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_2623.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_2623.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_3116-2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_3116-2.cpp
index 6e007772..6e007772 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_3116-2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_3116-2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_3116.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_3116.cpp
index 96167df1..96167df1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_3116.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_3116.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_3330.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_3330.cpp
index 37062480..37062480 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_3330.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_3330.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_3368.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_3368.cpp
index 2158086c..2158086c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_3368.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_3368.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_3378.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_3378.cpp
index 319c3151..319c3151 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_3378.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_3378.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_523.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_523.cpp
index d203e398..d203e398 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_523.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_523.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_547_for_each.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_547_for_each.cpp
index cfbe7963..cfbe7963 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_547_for_each.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_547_for_each.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_564.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_564.cpp
index 0c289a8a..0c289a8a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_564.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_564.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_574-i.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_574-i.cpp
index c7730a54..c7730a54 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_574-i.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_574-i.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_574.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_574.cpp
index 96e910ca..96e910ca 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_574.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_574.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_624_angle.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_624_angle.cpp
index 255db223..255db223 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_624_angle.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_624_angle.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_633_typename.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_633_typename.cpp
index e99742ef..e99742ef 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_633_typename.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_633_typename.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_672.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_672.cpp
index 6d8dde90..6d8dde90 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_672.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/issue_672.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/kw_subst.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/kw_subst.cpp
index e57868e2..e57868e2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/kw_subst.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/kw_subst.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/kw_subst2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/kw_subst2.cpp
index d167cc1c..d167cc1c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/kw_subst2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/kw_subst2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/lambda.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/lambda.cpp
new file mode 100644
index 00000000..7bc50606
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/lambda.cpp
@@ -0,0 +1,103 @@
+void f1()
+{
+ auto a =
+ [=] (int *a, Something & b)
+ {
+ std::cout << "blah: " << *a;
+ };
+}
+
+void f1a()
+{
+ std::for_each(a, b,
+ [](Something & b)
+ {
+ std::cout << "blah: " << *a;
+ });
+}
+
+void f1b()
+{
+ std::for_each(a, b,
+ [](int & b) -> foo
+ {
+ b += 3;
+ return b;
+ });
+}
+
+void f2()
+{
+ Invoke(a, b,
+ [&one, two](int *a, Something & b)
+ {
+ std::cout << "blah: " << *a;
+ });
+}
+
+void f3a()
+{
+ auto a = [] {};
+ auto b = []{return true;};
+}
+
+void f3b()
+{
+ Invoke(a, b,
+ [&one, two]
+ {
+ std::cout << "blah: " << one << two;
+ });
+}
+
+void f3c()
+{
+ int a[]{};
+}
+
+void g1()
+{
+ auto a = [ = ](int* a, Something &b) { std::cout << "blah: " << *a; };
+}
+
+void g1a()
+{
+ std::for_each(a, b, [](Something& b){std::cout<<"blah: "<<* a;});
+}
+
+void g1b()
+{
+ std::for_each(a, b, [] (int& b)->foo{ b+=3; return(b); });
+}
+
+void g2()
+{
+ Invoke(a, b,
+ [&one, two] (int *a, Something&b){ std::cout << "blah: " << *a; });
+}
+
+void h1()
+{
+ []() -> int
+ {
+ return 33;
+ }();
+
+ []() noexcept -> int
+ {
+ return 33;
+ }();
+}
+
+void h2()
+{
+ [](int a) -> int
+ {
+ return a + 33;
+ }(21);
+
+ [](int a) noexcept -> int
+ {
+ return a + 33;
+ }(21);
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/lambda2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/lambda2.cpp
new file mode 100644
index 00000000..a4b8a8c6
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/lambda2.cpp
@@ -0,0 +1,108 @@
+void f1()
+{
+ auto a =
+ [=](int *a, Something & b)
+ {
+ std::cout << "blah: " << *a;
+ };
+}
+
+void f1a()
+{
+ std::for_each(a, b,
+ [](Something & b)
+ {
+ std::cout << "blah: " << *a;
+ }
+ );
+}
+
+void f1b()
+{
+ std::for_each(a, b,
+ [](int & b) -> foo
+ {
+ b += 3;
+ return b;
+ }
+ );
+}
+
+void f2()
+{
+ Invoke(a, b,
+ [&one, two](int *a, Something & b)
+ {
+ std::cout << "blah: " << *a;
+ }
+ );
+}
+
+void f3a()
+{
+ auto a = [] {};
+ auto b = []{return true;};
+}
+
+void f3b()
+{
+ Invoke(a, b,
+ [&one, two]
+ {
+ std::cout << "blah: " << one << two;
+ }
+ );
+}
+
+void f3c()
+{
+ int a[]{};
+}
+
+void g1()
+{
+ auto a = [ = ](int* a, Something &b) { std::cout << "blah: " << *a; };
+}
+
+void g1a()
+{
+ std::for_each(a, b, [](Something& b){std::cout<<"blah: "<<* a;});
+}
+
+void g1b()
+{
+ std::for_each(a, b, [] (int& b)->foo{ b+=3; return(b); });
+}
+
+void g2()
+{
+ Invoke(a, b,
+ [&one, two] (int *a, Something&b){ std::cout << "blah: " << *a; });
+
+}
+
+void h1()
+{
+ []() -> int
+ {
+ return 33;
+ }();
+
+ []() noexcept -> int
+ {
+ return 33;
+ }();
+}
+
+void h2()
+{
+ [](int a) -> int
+ {
+ return a + 33;
+ }(21);
+
+ [](int a) noexcept -> int
+ {
+ return a + 33;
+ }(21);
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/lambda_brace_list.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/lambda_brace_list.cpp
index da3db41f..da3db41f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/lambda_brace_list.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/lambda_brace_list.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/lambda_in_one_liner.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/lambda_in_one_liner.cpp
index c740c4bd..c740c4bd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/lambda_in_one_liner.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/lambda_in_one_liner.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/lambda_selfcalling.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/lambda_selfcalling.cpp
index 543290fa..543290fa 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/lambda_selfcalling.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/lambda_selfcalling.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/lineEndings-Mac.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/lineEndings-Mac.cpp
index 608952c0..608952c0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/lineEndings-Mac.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/lineEndings-Mac.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/lineEndings-Unix.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/lineEndings-Unix.cpp
index cdbf7653..cdbf7653 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/lineEndings-Unix.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/lineEndings-Unix.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/lineEndings-Win.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/lineEndings-Win.cpp
index 20fa083a..20fa083a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/lineEndings-Win.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/lineEndings-Win.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/long_br_cmt.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/long_br_cmt.cpp
index a7638876..a7638876 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/long_br_cmt.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/long_br_cmt.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/long_namespace.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/long_namespace.cpp
index 89fe4435..89fe4435 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/long_namespace.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/long_namespace.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/macro_spaces.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/macro_spaces.cpp
index c27c6b5d..c27c6b5d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/macro_spaces.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/macro_spaces.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/misc.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/misc.cpp
index 8a73b431..8a73b431 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/misc.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/misc.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/misc2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/misc2.cpp
new file mode 100644
index 00000000..b6ce3078
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/misc2.cpp
@@ -0,0 +1,59 @@
+/*
+I tried to modify the spaces when using casts like static_cast etc. by
+using sp_before_angle, sp_after_angle and sp_inside_angle. Even setting
+all of those options to remove results in the following:
+*/
+
+myvar = dynamic_cast < MyClass<T>* > (other);
+// expected:
+//myvar = dynamic_cast<MyClass<T>*>(other);
+
+/*
+Sometime pointers and references are still not detected correctly in
+special cases - i guess.
+*/
+//When using "sp_before_ptr_star = remove" the result is:
+typedef std::list<StreamedData *>::iterator iterator;
+//typedef std::list<StreamedData *>::iterator iterator;
+//------------------------------^ This space show not be there
+
+typedef void (T::*Routine)(void);
+
+//Similar with "sp_before_byref = remove":
+unsigned long allocate(unsigned long size, void* & p);
+//unsigned long allocate(unsigned long size, void* & p);
+//------------------------------------------------^ The same here
+
+void foo(void)
+{
+ List<byte>bob = new List<byte> ();
+
+ /* Align assignments */
+ align_assign(Chunk::GetHead(),
+ cpd.settings[UO_align_assign_span].n,
+ cpd.settings[UO_align_assign_thresh].n);
+}
+
+Args::Args(int argc, char **argv)
+{
+ m_count = argc;
+ m_values = argv;
+ int len = (argc >> 3) + 1;
+ m_used = new UINT8[len];
+ if (m_used != NULL)
+ {
+ memset(m_used, 0, len);
+ }
+}
+
+void Args(int argc, char **argv)
+{
+ m_count = argc;
+ m_values = argv;
+ int len = (argc >> 3) + 1;
+ m_used = new UINT8[len];
+ if (m_used != NULL)
+ {
+ memset(m_used, 0, len);
+ }
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/misc3.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/misc3.cpp
index c7c10d6c..c7c10d6c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/misc3.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/misc3.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/misc4.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/misc4.cpp
index 725fa160..725fa160 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/misc4.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/misc4.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/misc5.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/misc5.cpp
index 570a4a76..570a4a76 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/misc5.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/misc5.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/misc6.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/misc6.cpp
index 95cc0383..95cc0383 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/misc6.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/misc6.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/mod_remove_empty_return-2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/mod_remove_empty_return-2.cpp
index eb949c45..eb949c45 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/mod_remove_empty_return-2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/mod_remove_empty_return-2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/mod_remove_empty_return.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/mod_remove_empty_return.cpp
index ca3105da..ca3105da 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/mod_remove_empty_return.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/mod_remove_empty_return.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/ms-style-ref.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/ms-style-ref.cpp
index 213393b9..213393b9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/ms-style-ref.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/ms-style-ref.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/multi_line.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/multi_line.cpp
index df5f3a84..df5f3a84 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/multi_line.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/multi_line.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/namespace_namespace.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/namespace_namespace.cpp
index cf6f921e..cf6f921e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/namespace_namespace.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/namespace_namespace.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/new_op.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/new_op.cpp
index 828215e8..828215e8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/new_op.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/new_op.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl-class.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl-class.h
index 128974b7..128974b7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl-class.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl-class.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl-namespace.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl-namespace.h
index a436fcb7..a436fcb7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl-namespace.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl-namespace.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_assign_leave_one_liners.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_assign_leave_one_liners.cpp
index cf3325f0..cf3325f0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_assign_leave_one_liners.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_assign_leave_one_liners.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_before_after.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_before_after.h
index fb77edf1..fb77edf1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_before_after.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_before_after.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_before_brace_open_test.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_before_brace_open_test.cpp
index 6e3daf66..6e3daf66 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_before_brace_open_test.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_before_brace_open_test.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_before_func_body_def.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_before_func_body_def.cpp
index c7cab4c7..c7cab4c7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_before_func_body_def.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_before_func_body_def.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_before_struct_scoped_enum.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_before_struct_scoped_enum.cpp
index f4065b20..f4065b20 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_before_struct_scoped_enum.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_before_struct_scoped_enum.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_before_struct_struct.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_before_struct_struct.cpp
index edac027c..edac027c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_before_struct_struct.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_before_struct_struct.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_brace_brace.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_brace_brace.cpp
index b698546a..b698546a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_brace_brace.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_brace_brace.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_fdef_brace_cond-f.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_fdef_brace_cond-f.cpp
index 6250d752..6250d752 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_fdef_brace_cond-f.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_fdef_brace_cond-f.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_fdef_brace_cond-fr.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_fdef_brace_cond-fr.cpp
index 6250d752..6250d752 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_fdef_brace_cond-fr.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_fdef_brace_cond-fr.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_fdef_brace_cond-r.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_fdef_brace_cond-r.cpp
index 6250d752..6250d752 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_fdef_brace_cond-r.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_fdef_brace_cond-r.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_fdef_brace_cond-rf.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_fdef_brace_cond-rf.cpp
index 6250d752..6250d752 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_fdef_brace_cond-rf.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_fdef_brace_cond-rf.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_for_leave_one_liners.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_for_leave_one_liners.cpp
index 382d2815..382d2815 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_for_leave_one_liners.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_for_leave_one_liners.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_func.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_func.cpp
index e27d7e55..e27d7e55 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_func.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_func.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_func_call_empty.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_func_call_empty.cpp
index 6678ee18..6678ee18 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_func_call_empty.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_func_call_empty.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_func_call_paren.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_func_call_paren.cpp
index 309a65a9..309a65a9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_func_call_paren.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_func_call_paren.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_func_call_paren_empty.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_func_call_paren_empty.cpp
index 6678ee18..6678ee18 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_func_call_paren_empty.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_func_call_paren_empty.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_func_decl.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_func_decl.cpp
index 91a7184f..91a7184f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_func_decl.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_func_decl.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_func_def_paren_empty.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_func_def_paren_empty.cpp
index f1ba8607..f1ba8607 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_func_def_paren_empty.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_func_def_paren_empty.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_func_paren_empty.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_func_paren_empty.cpp
index 19965aac..19965aac 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_func_paren_empty.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_func_paren_empty.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_func_scope_name.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_func_scope_name.cpp
index d221e974..d221e974 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_func_scope_name.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_func_scope_name.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_func_type_name.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_func_type_name.cpp
index 26e49663..26e49663 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_func_type_name.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_func_type_name.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_inside_namespace.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_inside_namespace.cpp
index 4bdcb394..4bdcb394 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_inside_namespace.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_inside_namespace.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_max_blank_in_func.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_max_blank_in_func.cpp
index c87e6e68..c87e6e68 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_max_blank_in_func.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/nl_max_blank_in_func.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/noexcept.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/noexcept.cpp
index e6ea9116..e6ea9116 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/noexcept.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/noexcept.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/not_lambda.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/not_lambda.cpp
index a9c65439..a9c65439 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/not_lambda.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/not_lambda.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/op_sym_empty.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/op_sym_empty.cpp
index 4b79ca9e..4b79ca9e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/op_sym_empty.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/op_sym_empty.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/operator.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/operator.cpp
index 6f2a7f03..6f2a7f03 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/operator.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/operator.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/operator_proto.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/operator_proto.cpp
index b14935ee..b14935ee 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/operator_proto.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/operator_proto.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/out-668.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/out-668.cpp
index 0dac74c3..0dac74c3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/out-668.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/out-668.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/output.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/output.cpp
new file mode 100644
index 00000000..42c2582c
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/output.cpp
@@ -0,0 +1,657 @@
+/**
+ * @file output.cpp
+ * Does all the output & comment formatting.
+ *
+ * $Id: output.cpp 510 2006-09-20 01:14:56Z bengardner $
+ */
+
+#include "uncrustify_types.h"
+#include "prototypes.h"
+#include "chunk.h"
+#include <cstring>
+#include <cstdlib>
+
+
+
+void add_char(char ch)
+{
+ /* convert a newline into the LF/CRLF/CR sequence */
+ if (ch == '\n')
+ {
+ fputs(cpd.newline, cpd.fout);
+ cpd.column = 1;
+ cpd.did_newline = 1;
+ }
+ else
+ {
+ fputc(ch, cpd.fout);
+ if (ch == '\t')
+ {
+ cpd.column = next_tab_column(cpd.column);
+ }
+ else
+ {
+ cpd.column++;
+ }
+ }
+}
+
+void add_text(const char *text)
+{
+ char ch;
+
+ while ((ch = *text) != 0)
+ {
+ text++;
+ add_char(ch);
+ }
+}
+
+void add_text_len(const char *text, int len)
+{
+ while (len-- > 0)
+ {
+ add_char(*text);
+ text++;
+ }
+}
+
+
+/**
+ * Advance to a specific column
+ * cpd.column is the current column
+ *
+ * @param column The column to advance to
+ */
+void output_to_column(int column, bool allow_tabs)
+{
+ int nc;
+
+ cpd.did_newline = 0;
+ if (allow_tabs)
+ {
+ /* tab out as far as possible and then use spaces */
+ while ((nc = next_tab_column(cpd.column)) <= column)
+ {
+ add_text("\t");
+ }
+ }
+ /* space out the final bit */
+ while (cpd.column < column)
+ {
+ add_text(" ");
+ }
+}
+
+void output_indent(int column, int brace_col)
+{
+ if ((cpd.column == 1) && (cpd.settings[UO_indent_with_tabs].n != 0))
+ {
+ if (cpd.settings[UO_indent_with_tabs].n == 2)
+ {
+ brace_col = column;
+ }
+
+ /* tab out as far as possible and then use spaces */
+ int nc;
+ while ((nc = next_tab_column(cpd.column)) <= brace_col)
+ {
+ add_text("\t");
+ }
+ }
+
+ /* space out the rest */
+ while (cpd.column < column)
+ {
+ add_text(" ");
+ }
+}
+
+
+
+void output_parsed(FILE *pfile)
+{
+ Chunk *pc;
+ int cnt;
+
+ output_options(pfile);
+ output_defines(pfile);
+ output_types(pfile);
+
+ fprintf(pfile, "-=====-\n");
+ fprintf(pfile, "Line Tag Parent Columns Br/Lvl/pp Flg Nl Text");
+ for (pc = Chunk::GetHead(); pc != NULL; pc = pc->GetNext())
+ {
+ fprintf(pfile, "\n%3d> %13.13s[%13.13s][%2d/%2d/%2d][%d/%d/%d][%6x][%d-%d]",
+ pc->orig_line, get_token_name(pc->type),
+ get_token_name(pc->parent_type),
+ pc->column, pc->orig_col, pc->orig_col_end,
+ pc->brace_level, pc->level, pc->pp_level,
+ pc->flags, pc->nl_count, pc->after_tab);
+
+ if ((pc->type != CT_NEWLINE) && (pc->len != 0))
+ {
+ for (cnt = 0; cnt < pc->column; cnt++)
+ {
+ fprintf(pfile, " ");
+ }
+ fprintf(pfile, "%.*s", pc->len, pc->str);
+ }
+ }
+ fprintf(pfile, "\n-=====-\n");
+ fflush(pfile);
+}
+
+void output_options(FILE *pfile)
+{
+ int idx;
+ const option_map_value *ptr;
+
+ fprintf(pfile, "-== Options ==-\n");
+ for (idx = 0; idx < UO_option_count; idx++)
+ {
+ ptr = get_option_name(idx);
+ if (ptr != NULL)
+ {
+ if (ptr->type == AT_BOOL)
+ {
+ fprintf(pfile, "%3d) %32s = %s\n",
+ ptr->id, ptr->name,
+ cpd.settings[ptr->id].b ? "True" : "False");
+ }
+ else if (ptr->type == AT_IARF)
+ {
+ fprintf(pfile, "%3d) %32s = %s\n",
+ ptr->id, ptr->name,
+ (cpd.settings[ptr->id].a == AV_ADD) ? "Add" :
+ (cpd.settings[ptr->id].a == AV_REMOVE) ? "Remove" :
+ (cpd.settings[ptr->id].a == AV_FORCE) ? "Force" : "Ignore");
+ }
+ else if (ptr->type == AT_LINE)
+ {
+ fprintf(pfile, "%3d) %32s = %s\n",
+ ptr->id, ptr->name,
+ (cpd.settings[ptr->id].le == LE_AUTO) ? "Auto" :
+ (cpd.settings[ptr->id].le == LE_LF) ? "LF" :
+ (cpd.settings[ptr->id].le == LE_CRLF) ? "CRLF" :
+ (cpd.settings[ptr->id].le == LE_CR) ? "CR" : "???");
+ }
+ else /* AT_NUM */
+ {
+ fprintf(pfile, "%3d) %32s = %d\n",
+ ptr->id, ptr->name, cpd.settings[ptr->id].n);
+ }
+ }
+ }
+}
+
+/**
+ * This renders the chunk list to a file.
+ */
+void output_text(FILE *pfile)
+{
+ Chunk *pc;
+ Chunk *prev;
+ int cnt;
+ int lvlcol;
+ bool allow_tabs;
+
+ cpd.fout = pfile;
+
+ for (pc = Chunk::GetHead(); pc != NULL; pc = pc->GetNext())
+ {
+ if (pc->type == CT_NEWLINE)
+ {
+ for (cnt = 0; cnt < pc->nl_count; cnt++)
+ {
+ add_char('\n');
+ }
+ cpd.did_newline = 1;
+ cpd.column = 1;
+ LOG_FMT(LOUTIND, " xx\n");
+ }
+ else if (pc->type == CT_COMMENT_MULTI)
+ {
+ output_comment_multi(pc);
+ }
+ else if (pc->type == CT_COMMENT_CPP)
+ {
+ pc = output_comment_cpp(pc);
+ }
+ else if (pc->len == 0)
+ {
+ /* don't do anything for non-visible stuff */
+ LOG_FMT(LOUTIND, " <%d> -", pc->column);
+ }
+ else
+ {
+ /* indent to the 'level' first */
+ if (cpd.did_newline)
+ {
+ if (cpd.settings[UO_indent_with_tabs].n == 1)
+ {
+ lvlcol = 1 + (pc->brace_level * cpd.settings[UO_indent_columns].n);
+ if ((pc->column >= lvlcol) && (lvlcol > 1))
+ {
+ output_to_column(lvlcol, true);
+ }
+ }
+ allow_tabs = (cpd.settings[UO_indent_with_tabs].n == 2) ||
+ (chunk_is_comment(pc) &&
+ (cpd.settings[UO_indent_with_tabs].n != 0));
+
+ LOG_FMT(LOUTIND, " %d> col %d/%d - ", pc->orig_line, pc->column, cpd.column);
+ }
+ else
+ {
+ /* not the first item on a line */
+ if (cpd.settings[UO_align_keep_tabs].b)
+ {
+ allow_tabs = pc->after_tab;
+ }
+ else
+ {
+ prev = pc->GetPrev();
+ allow_tabs = (cpd.settings[UO_align_with_tabs].b &&
+ ((pc->flags & PCF_WAS_ALIGNED) != 0) &&
+ (((pc->column - 1) % cpd.settings[UO_output_tab_size].n) == 0) &&
+ ((prev->column + prev->len + 1) != pc->column));
+ }
+ LOG_FMT(LOUTIND, " %d -", pc->column);
+ }
+
+ output_to_column(pc->column, allow_tabs);
+ add_text_len(pc->str, pc->len);
+ cpd.did_newline = chunk_is_newline(pc);
+ }
+ }
+}
+
+
+/**
+ * Given a multi-line comemnt block that starts in column X, figure out how
+ * much subsequent lines should be indented.
+ *
+ * The answer is either 0 or 1.
+ *
+ * The decision is based on:
+ * - the first line length
+ * - the second line leader length
+ * - the last line length
+ *
+ * If the first and last line are the same length and don't contain any alnum
+ * chars and (the first line len > 2 or the second leader is the same as the
+ * first line length), then the indent is 0.
+ *
+ * If the leader on the second line is 1 wide or missing, then the indent is 1.
+ *
+ * Otherwise, the indent is 0.
+ *
+ * @param str The comment string
+ * @param len Length of the comment
+ * @param start_col Starting column
+ * @return 0 or 1
+ */
+static int calculate_comment_body_indent(const char *str, int len, int start_col)
+{
+ int idx = 0;
+ int first_len = 0;
+ int last_len = 0;
+ int width = 0;
+
+ /* find the last line length */
+ for (idx = len - 1; idx > 0; idx--)
+ {
+ if ((str[idx] == '\n') || (str[idx] == '\r'))
+ {
+ idx++;
+ while ((idx < len) && ((str[idx] == ' ') || (str[idx] == '\t')))
+ {
+ idx++;
+ }
+ last_len = len - idx;
+ break;
+ }
+ }
+
+ /* find the first line length */
+ for (idx = 0; idx < len; idx++)
+ {
+ if ((str[idx] == '\n') || (str[idx] == '\r'))
+ {
+ first_len = idx;
+ while ((str[first_len - 1] == ' ') || (str[first_len - 1] == '\t'))
+ {
+ first_len--;
+ }
+
+ /* handle DOS endings */
+ if ((str[idx] == '\r') && (str[idx + 1] == '\n'))
+ {
+ idx++;
+ }
+ idx++;
+ break;
+ }
+ }
+
+ /* Scan the second line */
+ width = 0;
+ for ( /* nada */; idx < len; idx++)
+ {
+ if ((str[idx] == ' ') || (str[idx] == '\t'))
+ {
+ if (width > 0)
+ {
+ break;
+ }
+ continue;
+ }
+ if ((str[idx] == '\n') || (str[idx] == '\r'))
+ {
+ /* Done with second line */
+ break;
+ }
+
+ /* Count the leading chars */
+ if ((str[idx] == '*') ||
+ (str[idx] == '|') ||
+ (str[idx] == '\\') ||
+ (str[idx] == '#') ||
+ (str[idx] == '+'))
+ {
+ width++;
+ }
+ else
+ {
+ break;
+ }
+ }
+
+ //LOG_FMT(LSYS, "%s: first=%d last=%d width=%d\n", __func__, first_len, last_len, width);
+
+ /*TODO: make the first_len minimum (4) configurable? */
+ if ((first_len == last_len) && ((first_len > 4) || first_len == width))
+ {
+ return(0);
+ }
+
+ return((width == 2) ? 0 : 1);
+}
+
+/**
+ * Outputs the CPP comment at pc.
+ * CPP comment combining is done here
+ *
+ * @return the last chunk output'd
+ */
+Chunk *output_comment_cpp(Chunk *first)
+{
+ int col = first->column;
+ int col_br = 1 + (first->brace_level * cpd.settings[UO_indent_columns].n);
+
+ /* Make sure we have at least one space past the last token */
+ if (first->parent_type == CT_COMMENT_END)
+ {
+ Chunk *prev = first->GetPrev();
+ if (prev != NULL)
+ {
+ int col_min = prev->column + prev->len + 1;
+ if (col < col_min)
+ {
+ col = col_min;
+ }
+ }
+ }
+
+ /* Bump out to the column */
+ output_indent(col, col_br);
+
+ if (!cpd.settings[UO_cmt_cpp_to_c].b)
+ {
+ add_text_len(first->str, first->len);
+ return(first);
+ }
+
+ /* If we are grouping, see if there is something to group */
+ bool combined = false;
+ if (cpd.settings[UO_cmt_cpp_group].b)
+ {
+ /* next is a newline by definition */
+ Chunk *next = first->GetNext();
+ if ((next != NULL) && (next->nl_count == 1))
+ {
+ next = next->GetNext();
+
+ /**
+ * Only combine the next comment if they are both at indent level or
+ * the second one is NOT at indent or less
+ *
+ * A trailing comment cannot be combined with a comment at indent
+ * level or less
+ */
+ if ((next != NULL) &&
+ (next->type == CT_COMMENT_CPP) &&
+ (((next->column == 1) && (first->column == 1)) ||
+ ((next->column == col_br) && (first->column == col_br)) ||
+ ((next->column > col_br) && (first->parent_type == CT_COMMENT_END))))
+ {
+ combined = true;
+ }
+ }
+ }
+
+ if (!combined)
+ {
+ /* nothing to group: just output a single line */
+ add_text_len("/*", 2);
+ if ((first->str[2] != ' ') && (first->str[2] != '\t'))
+ {
+ add_char(' ');
+ }
+ add_text_len(&first->str[2], first->len - 2);
+ add_text_len(" */", 3);
+ return(first);
+ }
+
+ Chunk *pc = first;
+ Chunk *last = first;
+
+ /* Output the first line */
+ add_text_len("/*", 2);
+ if (combined && cpd.settings[UO_cmt_cpp_nl_start].b)
+ {
+ /* I suppose someone more clever could do this without a goto or
+ * repeating too much code...
+ */
+ goto cpp_newline;
+ }
+ goto cpp_addline;
+
+ /* Output combined lines */
+ while ((pc = pc->GetNext()) != NULL)
+ {
+ if ((pc->type == CT_NEWLINE) && (pc->nl_count == 1))
+ {
+ continue;
+ }
+ if (pc->type != CT_COMMENT_CPP)
+ {
+ break;
+ }
+ if (((pc->column == 1) && (first->column == 1)) ||
+ ((pc->column == col_br) && (first->column == col_br)) ||
+ ((pc->column > col_br) && (first->parent_type == CT_COMMENT_END)))
+ {
+ last = pc;
+cpp_newline:
+ add_char('\n');
+ output_indent(col, col_br);
+ add_char(' ');
+ add_char(cpd.settings[UO_cmt_star_cont].b ? '*' : ' ');
+cpp_addline:
+ if ((pc->str[2] != ' ') && (pc->str[2] != '\t'))
+ {
+ add_char(' ');
+ }
+ add_text_len(&pc->str[2], pc->len - 2);
+ }
+ }
+
+ if (cpd.settings[UO_cmt_cpp_nl_end].b)
+ {
+ add_char('\n');
+ output_indent(col, col_br);
+ }
+ add_text_len(" */", 3);
+ return(last);
+}
+
+void output_comment_multi(Chunk *pc)
+{
+ int cmt_col = pc->column;
+ const char *cmt_str;
+ int remaining;
+ char ch;
+ Chunk *prev;
+ char line[1024];
+ int line_len;
+ int line_count = 0;
+ int ccol;
+ int col_diff = 0;
+ int xtra = 1;
+
+ prev = pc->GetPrev();
+ if ((prev != NULL) && (prev->type != CT_NEWLINE))
+ {
+ cmt_col = pc->orig_col;
+ }
+ else
+ {
+ col_diff = pc->orig_col - pc->column;
+ }
+
+ // fprintf(stderr, "Indenting1 line %d to col %d (orig=%d) col_diff=%d\n",
+ // pc->orig_line, cmt_col, pc->orig_col, col_diff);
+
+ xtra = calculate_comment_body_indent(pc->str, pc->len, pc->column);
+
+ ccol = 1;
+ remaining = pc->len;
+ cmt_str = pc->str;
+ line_len = 0;
+ while (remaining > 0)
+ {
+ ch = *cmt_str;
+ cmt_str++;
+ remaining--;
+
+ /* handle the CRLF and CR endings. convert both to LF */
+ if (ch == '\r')
+ {
+ ch = '\n';
+ if (*cmt_str == '\n')
+ {
+ cmt_str++;
+ remaining--;
+ }
+ }
+
+ /* Find the start column */
+ if (line_len == 0)
+ {
+ if (ch == ' ')
+ {
+ ccol++;
+ continue;
+ }
+ else if (ch == '\t')
+ {
+ ccol = calc_next_tab_column(ccol, cpd.settings[UO_input_tab_size].n);
+ continue;
+ }
+ else
+ {
+ //fprintf(stderr, "%d] Text starts in col %d\n", line_count, ccol);
+ }
+ }
+
+ line[line_len++] = ch;
+
+ /* If we just hit an end of line OR we just hit end-of-comment... */
+ if ((ch == '\n') || (remaining == 0))
+ {
+ line_count++;
+
+ /* strip trailing tabs and spaces before the newline */
+ if (ch == '\n')
+ {
+ line_len--;
+ while ((line_len > 0) &&
+ ((line[line_len - 1] == ' ') ||
+ (line[line_len - 1] == '\t')))
+ {
+ line_len--;
+ }
+ line[line_len++] = ch;
+ }
+ line[line_len] = 0;
+
+ if (line_count == 1)
+ {
+ /* this is the first line - add unchanged */
+
+ /*TODO: need to support indent_with_tabs mode 1 */
+ output_to_column(cmt_col, cpd.settings[UO_indent_with_tabs].b);
+ add_text_len(line, line_len);
+ }
+ else
+ {
+ /* This is not the first line, so we need to indent to the
+ * correct column.
+ */
+ ccol -= col_diff;
+ if (ccol < cmt_col)
+ {
+ ccol = cmt_col;
+ }
+
+ if (line[0] == '\n')
+ {
+ /* Emtpy line - just a '\n' */
+ if (cpd.settings[UO_cmt_star_cont].b)
+ {
+ output_to_column(cmt_col, cpd.settings[UO_indent_with_tabs].b);
+ add_text((xtra == 1) ? " *" : "*");
+ }
+ add_char('\n');
+ }
+ else
+ {
+ /* If this doesn't start with a '*' or '|' */
+ if ((line[0] != '*') && (line[0] != '|') && (line[0] != '#') &&
+ (line[0] != '\\') && (line[0] != '+'))
+ {
+ output_to_column(cmt_col, cpd.settings[UO_indent_with_tabs].b);
+ if (cpd.settings[UO_cmt_star_cont].b)
+ {
+ add_text((xtra == 1) ? " * " : "* ");
+ }
+ else
+ {
+ add_text(" ");
+ }
+ output_to_column(ccol, cpd.settings[UO_indent_with_tabs].b);
+ }
+ else
+ {
+ output_to_column(cmt_col + xtra, cpd.settings[UO_indent_with_tabs].b);
+ }
+ add_text_len(line, line_len);
+ }
+ }
+ line_len = 0;
+ ccol = 1;
+ }
+ }
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/override_virtual.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/override_virtual.cpp
index 537454b1..537454b1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/override_virtual.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/override_virtual.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/parameter-packs.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/parameter-packs.cpp
index 6d734b1f..6d734b1f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/parameter-packs.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/parameter-packs.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/patch_32.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/patch_32.cpp
index 8d9e222e..8d9e222e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/patch_32.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/patch_32.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/pos_assign.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/pos_assign.cpp
index af55296b..af55296b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/pos_assign.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/pos_assign.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/pos_bool_in_template.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/pos_bool_in_template.h
index ef01470e..ef01470e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/pos_bool_in_template.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/pos_bool_in_template.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/pos_shift.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/pos_shift.cpp
index 4d55a541..4d55a541 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/pos_shift.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/pos_shift.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/pp-define-indent.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/pp-define-indent.cpp
index 8ec5657f..8ec5657f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/pp-define-indent.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/pp-define-indent.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/pp-pragma.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/pp-pragma.cpp
index 75b3c46d..75b3c46d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/pp-pragma.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/pp-pragma.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/pp_indent_brace.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/pp_indent_brace.cpp
new file mode 100644
index 00000000..1e02efcb
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/pp_indent_brace.cpp
@@ -0,0 +1,24 @@
+// Example for preprocessor statement in a function definition
+// Config uses more than tested option, uses:
+// pp_if_indent_code = 1 to enable preprocesser indent
+// pp_indent_brace = 0 to override preprocessor indent for braces
+MyClass::MyClass()
+{
+ if(isSomething)
+ {
+ DoSomething();
+ }
+
+#if (USE_FIVE)
+ {
+ DoSomethingAlso();
+ }
+#endif
+
+#if (USE_SIX)
+ {
+ Six mySix;
+ DoSomethingWithSix(mySix);
+ }
+#endif
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/pp_indent_case.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/pp_indent_case.cpp
index da61641a..da61641a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/pp_indent_case.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/pp_indent_case.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/pp_indent_extern.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/pp_indent_extern.cpp
index 76cfc4bf..76cfc4bf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/pp_indent_extern.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/pp_indent_extern.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/pp_indent_func_def.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/pp_indent_func_def.cpp
index 7a0bcecf..7a0bcecf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/pp_indent_func_def.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/pp_indent_func_def.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/pp_multi_comment.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/pp_multi_comment.cpp
index 98418c46..98418c46 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/pp_multi_comment.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/pp_multi_comment.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/proto-wrap.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/proto-wrap.cpp
index 35e8bea3..35e8bea3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/proto-wrap.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/proto-wrap.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/ptr-star.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/ptr-star.cpp
index ff0ab369..ff0ab369 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/ptr-star.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/ptr-star.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/qt-1.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/qt-1.cpp
index e318c1aa..e318c1aa 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/qt-1.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/qt-1.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/qtargs.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/qtargs.cpp
index 5037d792..5037d792 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/qtargs.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/qtargs.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/region.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/region.cpp
index 28447084..28447084 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/region.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/region.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/return_braced_init.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/return_braced_init.cpp
index cf86baeb..cf86baeb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/return_braced_init.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/return_braced_init.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/return_init_list.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/return_init_list.cpp
index f58dfee5..f58dfee5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/return_init_list.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/return_init_list.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/returns.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/returns.cpp
index 1085bd72..1085bd72 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/returns.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/returns.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sef.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sef.cpp
index add2fc4a..add2fc4a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sef.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sef.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/semi.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/semi.cpp
index 9f7832cd..9f7832cd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/semi.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/semi.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/semicolons.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/semicolons.cpp
index 52796f75..52796f75 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/semicolons.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/semicolons.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sf.2886991.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sf.2886991.cpp
index 97dfe0cf..97dfe0cf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sf.2886991.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sf.2886991.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sf.3266678.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sf.3266678.cpp
index 69f877ed..69f877ed 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sf.3266678.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sf.3266678.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sf.3315874.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sf.3315874.h
index 58921bc5..58921bc5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sf.3315874.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sf.3315874.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sf557.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sf557.cpp
index c7ba93cc..c7ba93cc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sf557.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sf557.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sf562.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sf562.cpp
index 15ee8e79..15ee8e79 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sf562.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sf562.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sf567.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sf567.cpp
index 0c1d5fc9..0c1d5fc9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sf567.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sf567.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sf574.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sf574.cpp
index 3f5a98d4..3f5a98d4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sf574.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sf574.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sf583.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sf583.cpp
index 8eba4d1e..8eba4d1e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sf583.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sf583.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sf593.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sf593.cpp
index 1fc0ded8..1fc0ded8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sf593.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sf593.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sim.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sim.h
index 29c52879..29c52879 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sim.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sim.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_after_angle.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_after_angle.cpp
index 18788919..18788919 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_after_angle.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_after_angle.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_after_constr_colon.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_after_constr_colon.cpp
index caea467a..caea467a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_after_constr_colon.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_after_constr_colon.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_after_decltype.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_after_decltype.cpp
index 18448555..18448555 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_after_decltype.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_after_decltype.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_after_type.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_after_type.cpp
index 6f235d22..6f235d22 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_after_type.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_after_type.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_angle_paren.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_angle_paren.cpp
index 911aa53b..911aa53b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_angle_paren.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_angle_paren.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_arith_additive.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_arith_additive.cpp
index ab2096c8..ab2096c8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_arith_additive.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_arith_additive.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_balance_nested_parens.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_balance_nested_parens.cpp
index dc5f5e8e..dc5f5e8e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_balance_nested_parens.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_balance_nested_parens.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_before_byref_func.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_before_byref_func.cpp
index 7dd9c14a..7dd9c14a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_before_byref_func.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_before_byref_func.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_before_case_colon.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_before_case_colon.cpp
index 0c534fe0..0c534fe0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_before_case_colon.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_before_case_colon.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_before_constr_colon.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_before_constr_colon.cpp
index 796522c7..796522c7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_before_constr_colon.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_before_constr_colon.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_before_tr_emb_cmt_input.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_before_tr_emb_cmt_input.cpp
index 45ffb335..45ffb335 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_before_tr_emb_cmt_input.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_before_tr_emb_cmt_input.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_brace_brace.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_brace_brace.cpp
index bb730d61..bb730d61 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_brace_brace.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_brace_brace.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_brace_catch.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_brace_catch.cpp
index 7b4bdc5e..7b4bdc5e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_brace_catch.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_brace_catch.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_cmt_cpp_region.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_cmt_cpp_region.cpp
index b70ef6b1..b70ef6b1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_cmt_cpp_region.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_cmt_cpp_region.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_cmt_cpp_start.cc b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_cmt_cpp_start.cc
index 6a9b203b..6a9b203b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_cmt_cpp_start.cc
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_cmt_cpp_start.cc
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_cond_question.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_cond_question.cpp
index cec6c827..cec6c827 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_cond_question.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_cond_question.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_cparen_oparen.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_cparen_oparen.cpp
index 83c60dd4..83c60dd4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_cparen_oparen.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_cparen_oparen.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_cpp_lambda_fparen.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_cpp_lambda_fparen.cpp
index e25d0496..e25d0496 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_cpp_lambda_fparen.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_cpp_lambda_fparen.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_decltype.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_decltype.cpp
index 3e2f7e47..3e2f7e47 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_decltype.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_decltype.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_endif_cmt.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_endif_cmt.cpp
index 9e5b2db8..9e5b2db8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_endif_cmt.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_endif_cmt.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_enum_assign.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_enum_assign.cpp
index 2ebab438..2ebab438 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_enum_assign.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_enum_assign.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_enum_colon.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_enum_colon.cpp
index a23c6afd..a23c6afd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_enum_colon.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_enum_colon.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_func_call_paren.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_func_call_paren.cpp
index 90798ef9..90798ef9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_func_call_paren.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_func_call_paren.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_inside_braces_enum.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_inside_braces_enum.cpp
index 8386e215..8386e215 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_inside_braces_enum.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_inside_braces_enum.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_not_not.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_not_not.cpp
new file mode 100644
index 00000000..4ef7f777
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_not_not.cpp
@@ -0,0 +1,3 @@
+if (!hello) { }
+if (!!hello) { }
+if (!!!hello) { }
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_paren_brace.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_paren_brace.cpp
index 4ac73f87..4ac73f87 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_paren_brace.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_paren_brace.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_skip_vbrace_tokens.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_skip_vbrace_tokens.cpp
index fff4aff4..fff4aff4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_skip_vbrace_tokens.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_skip_vbrace_tokens.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_throw_paren.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_throw_paren.cpp
index f45f1a9a..f45f1a9a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_throw_paren.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_throw_paren.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_type_func.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_type_func.cpp
index 30e058e7..30e058e7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_type_func.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/sp_type_func.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/squeeze_ifdef.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/squeeze_ifdef.cpp
index 42699d1d..42699d1d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/squeeze_ifdef.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/squeeze_ifdef.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/static.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/static.h
index 8121fef1..8121fef1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/static.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/static.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/stdcall.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/stdcall.cpp
index a2353599..a2353599 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/stdcall.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/stdcall.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/string_replace_tab_chars.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/string_replace_tab_chars.cpp
index 3534461b..3534461b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/string_replace_tab_chars.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/string_replace_tab_chars.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/strings.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/strings.cpp
index 1cfea449..1cfea449 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/strings.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/strings.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/tab-0.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/tab-0.cpp
index 474aba08..474aba08 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/tab-0.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/tab-0.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/tab-1.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/tab-1.cpp
index dc7a65c4..dc7a65c4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/tab-1.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/tab-1.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/templ_class.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/templ_class.h
index 0f102244..0f102244 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/templ_class.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/templ_class.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/templates.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/templates.cpp
index 737599bf..737599bf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/templates.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/templates.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/templates2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/templates2.cpp
index 46d41560..46d41560 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/templates2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/templates2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/templates3.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/templates3.cpp
index 55b11d26..55b11d26 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/templates3.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/templates3.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/templates4.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/templates4.cpp
index 10b96e4a..10b96e4a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/templates4.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/templates4.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/toggle_processing_cmt.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/toggle_processing_cmt.cpp
index 6f49594d..6f49594d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/toggle_processing_cmt.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/toggle_processing_cmt.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/toggle_processing_cmt2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/toggle_processing_cmt2.cpp
index 6b4a0a39..6b4a0a39 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/toggle_processing_cmt2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/toggle_processing_cmt2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/trailing_return.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/trailing_return.cpp
new file mode 100644
index 00000000..b5903ce9
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/trailing_return.cpp
@@ -0,0 +1,93 @@
+auto f0(int a, int b) -> int;
+
+struct Foo
+{
+ auto f01() -> bool;
+ auto f02() noexcept -> bool;
+ auto f03() noexcept(true) -> bool;
+ auto f04() noexcept(false) -> bool;
+ auto f05() noexcept -> bool = delete;
+ auto f06() noexcept(true) -> bool = delete;
+ auto f07() noexcept(false) -> bool = delete;
+
+ auto f11() const -> bool;
+ auto f12() const noexcept -> bool;
+ auto f13() const noexcept(true) -> bool;
+ auto f14() const noexcept(false) -> bool;
+ auto f15() const noexcept -> bool = delete;
+ auto f16() const noexcept(true) -> bool = delete;
+ auto f17() const noexcept(false) -> bool = delete;
+
+ auto f21() throw() -> bool;
+ auto f22() throw() -> bool = delete;
+ auto f23() const throw() -> bool;
+ auto f24() const throw() -> bool = delete;
+
+ auto f25() const -> bool*;
+ auto f26() const -> bool* = delete;
+ auto f27() const -> bool&;
+ auto f28() const -> bool& = delete;
+
+ auto f29() -> bool*;
+ auto f30() -> bool* = delete;
+ auto f31() noexcept -> bool*;
+ auto f32() noexcept(true) -> bool*;
+ auto f33() noexcept(false) -> bool*;
+ auto f34() noexcept -> bool* = delete;
+ auto f35() noexcept(true) -> bool* = delete;
+ auto f36() noexcept(false) -> bool* = delete;
+ auto f37() throw() -> bool*;
+ auto f38() throw() -> bool* = delete;
+
+ auto f39() -> bool&;
+ auto f40() -> bool& = delete;
+ auto f41() noexcept -> bool&;
+ auto f42() noexcept(true) -> bool&;
+ auto f43() noexcept(false) -> bool&;
+ auto f44() noexcept -> bool& = delete;
+ auto f45() noexcept(true) -> bool& = delete;
+ auto f46() noexcept(false) -> bool& = delete;
+ auto f47() throw() -> bool&;
+ auto f48() throw() -> bool& = delete;
+
+ auto f49() const -> bool*;
+ auto f50() const -> bool* = delete;
+ auto f51() const noexcept -> bool*;
+ auto f52() const noexcept(true) -> bool*;
+ auto f53() const noexcept(false) -> bool*;
+ auto f54() const noexcept -> bool* = delete;
+ auto f55() const noexcept(true) -> bool* = delete;
+ auto f56() const noexcept(false) -> bool* = delete;
+ auto f57() const throw() -> bool*;
+ auto f58() const throw() -> bool* = delete;
+
+ auto f59() const -> bool&;
+ auto f60() const -> bool& = delete;
+ auto f61() const noexcept -> bool&;
+ auto f62() const noexcept(true) -> bool&;
+ auto f63() const noexcept(false) -> bool&;
+ auto f64() const noexcept -> bool& = delete;
+ auto f65() const noexcept(true) -> bool& = delete;
+ auto f66() const noexcept(false) -> bool& = delete;
+ auto f67() const throw() -> bool&;
+ auto f68() const throw() -> bool& = delete;
+};
+
+struct Bar
+{
+ Bar() : m_func([](void*) -> result_t{ return magic; }) {}
+};
+
+void foo()
+{
+ auto l = [](int n) -> x_t{ return n + 5; };
+ x([](int n) -> x_t{ return n + 5; });
+}
+
+static auto f25() -> bool {
+ return true;
+}
+
+static auto f26() const noexcept(true) -> bool {
+ return true;
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/trailing_return_byref_ptr.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/trailing_return_byref_ptr.cpp
new file mode 100644
index 00000000..14cffd63
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/trailing_return_byref_ptr.cpp
@@ -0,0 +1,84 @@
+struct Foo
+{
+ auto f01() -> bool;
+ auto f02() noexcept -> bool;
+ auto f03() noexcept(true) -> bool;
+ auto f04() noexcept(false) -> bool;
+ auto f05() noexcept -> bool = delete;
+ auto f06() noexcept(true) -> bool = delete;
+ auto f07() noexcept(false) -> bool = delete;
+
+ auto f11() const -> bool;
+ auto f12() const noexcept -> bool;
+ auto f13() const noexcept(true) -> bool;
+ auto f14() const noexcept(false) -> bool;
+ auto f15() const noexcept -> bool = delete;
+ auto f16() const noexcept(true) -> bool = delete;
+ auto f17() const noexcept(false) -> bool = delete;
+
+ auto f21() throw() -> bool;
+ auto f22() throw() -> bool = delete;
+ auto f23() const throw() -> bool;
+ auto f24() const throw() -> bool = delete;
+
+ auto f25() const -> bool * ;
+ auto f26() const -> bool * = delete;
+ auto f27() const -> bool & ;
+ auto f28() const -> bool & = delete;
+
+ auto f29() -> bool * ;
+ auto f30() -> bool * = delete;
+ auto f31() noexcept -> bool * ;
+ auto f32() noexcept(true) -> bool * ;
+ auto f33() noexcept(false) -> bool * ;
+ auto f34() noexcept -> bool * = delete;
+ auto f35() noexcept(true) -> bool * = delete;
+ auto f36() noexcept(false) -> bool * = delete;
+ auto f37() throw() -> bool * ;
+ auto f38() throw() -> bool * = delete;
+
+ auto f39() -> bool &;
+ auto f40() -> bool & = delete;
+ auto f41() noexcept -> bool & ;
+ auto f42() noexcept(true) -> bool & ;
+ auto f43() noexcept(false) -> bool & ;
+ auto f44() noexcept -> bool & = delete;
+ auto f45() noexcept(true) -> bool & = delete;
+ auto f46() noexcept(false) -> bool & = delete;
+ auto f47() throw() -> bool & ;
+ auto f48() throw() -> bool & = delete;
+
+ auto f49() const -> bool * ;
+ auto f50() const -> bool * = delete;
+ auto f51() const noexcept -> bool * ;
+ auto f52() const noexcept(true) -> bool * ;
+ auto f53() const noexcept(false) -> bool * ;
+ auto f54() const noexcept -> bool * = delete;
+ auto f55() const noexcept(true) -> bool * = delete;
+ auto f56() const noexcept(false) -> bool * = delete;
+ auto f57() const throw() -> bool * ;
+ auto f58() const throw() -> bool * = delete;
+
+ auto f59() const -> bool & ;
+ auto f60() const -> bool & = delete;
+ auto f61() const noexcept -> bool & ;
+ auto f62() const noexcept(true) -> bool & ;
+ auto f63() const noexcept(false) -> bool & ;
+ auto f64() const noexcept -> bool & = delete;
+ auto f65() const noexcept(true) -> bool & = delete;
+ auto f66() const noexcept(false) -> bool & = delete;
+ auto f67() const throw() -> bool & ;
+ auto f68() const throw() -> bool & = delete;
+
+ class Foo
+ {
+ auto operator=(const Foo &) -> Foo & ;
+ auto operator=(const Foo &) noexcept -> Foo & ;
+
+ auto operator=(Foo const &) -> Foo & ;
+ auto operator=(Foo const &) noexcept -> Foo & ;
+
+ auto operator=(Foo &&) -> Foo & ;
+ auto operator=(Foo &&) noexcept -> Foo & ;
+ }
+};
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/try-catch-nl.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/try-catch-nl.cpp
index 447f3cbd..447f3cbd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/try-catch-nl.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/try-catch-nl.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/type_brace_init_lst.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/type_brace_init_lst.cpp
index 53e74de2..53e74de2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/type_brace_init_lst.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/type_brace_init_lst.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/uniform_initialization.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/uniform_initialization.cpp
index 37a131e0..37a131e0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/uniform_initialization.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/uniform_initialization.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/using-alias-in-define.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/using-alias-in-define.cpp
index 82854287..82854287 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/using-alias-in-define.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/using-alias-in-define.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/var_def_gap.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/var_def_gap.cpp
index 0cca962b..0cca962b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/var_def_gap.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/var_def_gap.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/variadic-template.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/variadic-template.h
index f522097c..f522097c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/variadic-template.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/variadic-template.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/wacky-template.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/wacky-template.cpp
index 99e01b6e..99e01b6e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/wacky-template.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cpp/wacky-template.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/1822.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/1822.cs
index a4269bd9..a4269bd9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/1822.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/1822.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/615_nested-usings.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/615_nested-usings.cs
index 14a31507..14a31507 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/615_nested-usings.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/615_nested-usings.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/620_getset-brace.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/620_getset-brace.cs
index f6ee6342..f6ee6342 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/620_getset-brace.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/620_getset-brace.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/621_this-spacing.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/621_this-spacing.cs
index bd28a5e8..bd28a5e8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/621_this-spacing.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/621_this-spacing.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/625_where-constraints.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/625_where-constraints.cs
index 09274ab9..09274ab9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/625_where-constraints.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/625_where-constraints.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/630_bad-new-init-semicolon-removal.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/630_bad-new-init-semicolon-removal.cs
index 2e6d5a98..2e6d5a98 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/630_bad-new-init-semicolon-removal.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/630_bad-new-init-semicolon-removal.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/Issue_2705.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/Issue_2705.cs
index 9a1b3172..9a1b3172 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/Issue_2705.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/Issue_2705.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-11662.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-11662.cs
index 9a49fdba..9a49fdba 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-11662.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-11662.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-11993.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-11993.cs
index 6bc6529a..6bc6529a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-11993.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-11993.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-12303.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-12303.cs
index 01be8291..01be8291 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-12303.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-12303.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-1288.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-1288.cs
index 70554a02..70554a02 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-1288.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-1288.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-1338.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-1338.cs
index d10b4893..d10b4893 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-1338.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-1338.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-1343.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-1343.cs
index 852fe640..852fe640 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-1343.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-1343.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-1345.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-1345.cs
index e218e6a2..e218e6a2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-1345.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-1345.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-13955.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-13955.cs
index 940aa89b..940aa89b 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-13955.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-13955.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-14131.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-14131.cs
index c8c3c918..c8c3c918 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-14131.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-14131.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-17253.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-17253.cs
index 7342d82c..7342d82c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-17253.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-17253.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-18437.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-18437.cs
index aab6c498..aab6c498 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-18437.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-18437.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-18777.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-18777.cs
index 198d5be3..198d5be3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-18777.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-18777.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-18780.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-18780.cs
index 0eea713e..0eea713e 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-18780.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-18780.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-18829.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-18829.cs
index 62c9f8fb..62c9f8fb 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-18829.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-18829.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-1919.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-1919.cs
index 956fd0f8..956fd0f8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-1919.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-1919.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-19644.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-19644.cs
index da76bfbc..da76bfbc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-19644.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-19644.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-1975.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-1975.cs
index af678a93..af678a93 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-1975.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-1975.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-1977.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-1977.cs
index e4b1b375..e4b1b375 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-1977.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-1977.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-1978.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-1978.cs
index 14cbdc7d..14cbdc7d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-1978.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-1978.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-19895.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-19895.cs
index a22c6fa8..a22c6fa8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-19895.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-19895.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-2007.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-2007.cs
index 2e9f163a..2e9f163a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-2007.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-2007.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-2008.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-2008.cs
index eeb649dd..eeb649dd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-2008.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-2008.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-2020.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-2020.cs
index 37d9ef23..37d9ef23 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-2020.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-2020.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-2021.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-2021.cs
index 2b08fafe..2b08fafe 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-2021.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-2021.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-21730.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-21730.cs
index 6fcb8c16..6fcb8c16 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-21730.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-21730.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-2505.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-2505.cs
index a17e6a5e..a17e6a5e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-2505.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-2505.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-2506.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-2506.cs
index 7bdbb81a..7bdbb81a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-2506.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-2506.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-2684.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-2684.cs
index 0c91b081..0c91b081 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-2684.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-2684.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-2685.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-2685.cs
index 4c11f20b..4c11f20b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-2685.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-2685.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-29933.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-29933.cs
index ed96bc87..ed96bc87 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-29933.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-29933.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-30498_2.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-30498_2.cs
index ba0d8515..ba0d8515 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-30498_2.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-30498_2.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-3083.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-3083.cs
index 5209dc72..5209dc72 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-3083.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-3083.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-32658.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-32658.cs
index 145da65f..145da65f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-32658.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-32658.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-3484.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-3484.cs
index 1235aa91..1235aa91 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-3484.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-3484.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-36862.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-36862.cs
index cb3cb448..cb3cb448 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-36862.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-36862.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-37241.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-37241.cs
index b2097c4f..b2097c4f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-37241.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-37241.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-40685.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-40685.cs
index a2f37547..a2f37547 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-40685.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-40685.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-58354.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-58354.cs
index 6c77de40..6c77de40 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-58354.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-58354.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-9917.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-9917.cs
index 5bd9dc64..5bd9dc64 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-9917.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/UNI-9917.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/add-nl-before-namespace.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/add-nl-before-namespace.cs
index 93a2cf04..93a2cf04 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/add-nl-before-namespace.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/add-nl-before-namespace.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/bug_1591.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/bug_1591.cs
index ac62df9e..ac62df9e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/bug_1591.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/bug_1591.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/bug_1620.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/bug_1620.cs
index 0c9d4eb9..0c9d4eb9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/bug_1620.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/bug_1620.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/bug_1637.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/bug_1637.cs
index 1f46d1bc..1f46d1bc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/bug_1637.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/bug_1637.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/bug_1650.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/bug_1650.cs
index 5c52aece..5c52aece 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/bug_1650.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/bug_1650.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/bug_600.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/bug_600.cs
index 3d93d861..3d93d861 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/bug_600.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/bug_600.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/bug_620.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/bug_620.cs
index f6ee6342..f6ee6342 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/bug_620.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/bug_620.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/bug_i_679.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/bug_i_679.cs
index 199ad7e6..199ad7e6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/bug_i_679.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/bug_i_679.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/bug_i_935.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/bug_i_935.cs
index d2c8ec95..d2c8ec95 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/bug_i_935.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/bug_i_935.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/cast.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/cast.cs
new file mode 100644
index 00000000..77761b89
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/cast.cs
@@ -0,0 +1,7 @@
+foo = ( Type ) bar;
+
+foo = ( Ns.Type ) bar;
+
+foo = ( Type<int> ) bar;
+
+foo = ( Type<int, int> ) bar;
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/cmt_backslash_eol.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/cmt_backslash_eol.cs
index e56aec25..e56aec25 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/cmt_backslash_eol.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/cmt_backslash_eol.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/comma.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/comma.cs
index 794410f0..794410f0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/comma.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/comma.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/delegate.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/delegate.cs
index 3a4b103c..3a4b103c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/delegate.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/delegate.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/exception-filters.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/exception-filters.cs
index 1e3abca3..1e3abca3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/exception-filters.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/exception-filters.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/fncall_as_ctor_in_attr.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/fncall_as_ctor_in_attr.cs
index cf52b46f..cf52b46f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/fncall_as_ctor_in_attr.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/fncall_as_ctor_in_attr.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/generics.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/generics.cs
index 7bbe04c7..7bbe04c7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/generics.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/generics.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/getset.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/getset.cs
index 59aaa5bc..59aaa5bc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/getset.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/getset.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/gs.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/gs.cs
index 16adc604..16adc604 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/gs.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/gs.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/ifcolalign.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/ifcolalign.cs
index d2e40c78..d2e40c78 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/ifcolalign.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/ifcolalign.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/ifcomment.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/ifcomment.cs
index 6663a6ca..6663a6ca 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/ifcomment.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/ifcomment.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/indent-multistring-coulmn1.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/indent-multistring-coulmn1.cs
index 56bdf473..56bdf473 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/indent-multistring-coulmn1.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/indent-multistring-coulmn1.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/logger.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/logger.cs
index defede8a..defede8a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/logger.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/logger.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/mdarray_space.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/mdarray_space.cs
index e5338c11..e5338c11 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/mdarray_space.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/mdarray_space.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/misc-failures.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/misc-failures.cs
index 857c06f9..857c06f9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/misc-failures.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/misc-failures.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/mod_full_brace_nl_block_rem_mlcond.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/mod_full_brace_nl_block_rem_mlcond.cs
index f8db4f0b..f8db4f0b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/mod_full_brace_nl_block_rem_mlcond.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/mod_full_brace_nl_block_rem_mlcond.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/mod_full_paren_if_bool.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/mod_full_paren_if_bool.cs
index 6bcd9201..6bcd9201 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/mod_full_paren_if_bool.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/mod_full_paren_if_bool.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/new-constraint-paren-space.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/new-constraint-paren-space.cs
index 209f2721..209f2721 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/new-constraint-paren-space.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/new-constraint-paren-space.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/nullable_prop.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/nullable_prop.cs
index 21c4f7b0..21c4f7b0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/nullable_prop.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/nullable_prop.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/oneline_property.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/oneline_property.cs
index 1d7a2c26..1d7a2c26 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/oneline_property.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/oneline_property.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/operator-null-conditional.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/operator-null-conditional.cs
index 530bdd27..530bdd27 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/operator-null-conditional.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/operator-null-conditional.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/operator_null-coalescing-assignment.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/operator_null-coalescing-assignment.cs
index 416e6afc..416e6afc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/operator_null-coalescing-assignment.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/operator_null-coalescing-assignment.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/preserveTabs.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/preserveTabs.cs
index c9583dcd..c9583dcd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/preserveTabs.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/preserveTabs.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/property.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/property.cs
index 85e08bae..85e08bae 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/property.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/property.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/region.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/region.cs
index 4f8667f2..4f8667f2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/region.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/region.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/remove_semi.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/remove_semi.cs
index 2e6d5a98..2e6d5a98 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/remove_semi.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/remove_semi.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/sf607.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/sf607.cs
index f0617c19..f0617c19 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/sf607.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/sf607.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/sf628.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/sf628.cs
index 803c9962..803c9962 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/sf628.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/sf628.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/simple.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/simple.cs
index 30acd134..30acd134 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/simple.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/simple.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/sort_using.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/sort_using.cs
index 881b4d5b..881b4d5b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/sort_using.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/sort_using.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/sort_using_categ.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/sort_using_categ.cs
index 173e42bb..173e42bb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/sort_using_categ.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/sort_using_categ.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/sp_between_new_paren.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/sp_between_new_paren.cs
index f5d8381d..f5d8381d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/sp_between_new_paren.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/sp_between_new_paren.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/squeeze-paren-close-Option.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/squeeze-paren-close-Option.cs
index 37203f4a..37203f4a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/squeeze-paren-close-Option.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/squeeze-paren-close-Option.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/string_multi.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/string_multi.cs
index 9e715e51..9e715e51 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/string_multi.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/string_multi.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/strings.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/strings.cs
index 6794e762..6794e762 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/strings.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/strings.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/tcf.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/tcf.cs
index f3ac3664..f3ac3664 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/tcf.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/tcf.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/unsafe.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/unsafe.cs
index 5dc90cb4..5dc90cb4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/unsafe.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/unsafe.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/utf16be.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/utf16be.cs
index 13da3090..13da3090 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/utf16be.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/utf16be.cs
Binary files differ
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/utf16be_no_bom.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/utf16be_no_bom.cs
index 33587b97..33587b97 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/utf16be_no_bom.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/utf16be_no_bom.cs
Binary files differ
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/utf16le.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/utf16le.cs
index 3f16b9d0..3f16b9d0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/utf16le.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/utf16le.cs
Binary files differ
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/utf16le_no_bom.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/utf16le_no_bom.cs
index 4a7f9ccc..4a7f9ccc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/utf16le_no_bom.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/utf16le_no_bom.cs
Binary files differ
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/var-member.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/var-member.cs
index 0f7ffb23..0f7ffb23 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/var-member.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/var-member.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/verbatim_strings.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/verbatim_strings.cs
index 47c3ed4c..47c3ed4c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/verbatim_strings.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/verbatim_strings.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/when.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/when.cs
index 2785b894..2785b894 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/when.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/cs/when.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/1438.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/1438.d
index 10a43753..10a43753 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/1438.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/1438.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/HashMap.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/HashMap.d
index 618b3e59..618b3e59 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/HashMap.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/HashMap.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/Lexer.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/Lexer.d
index 004d9d8a..004d9d8a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/Lexer.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/Lexer.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/bug-indent.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/bug-indent.d
index 321ab6f1..321ab6f1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/bug-indent.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/bug-indent.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/casts.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/casts.d
index 42d54916..42d54916 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/casts.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/casts.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/const.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/const.d
index 778957fd..778957fd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/const.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/const.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/d_sp_paren.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/d_sp_paren.d
index 2b28a7f1..2b28a7f1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/d_sp_paren.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/d_sp_paren.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/delegate.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/delegate.d
index 0115ae00..0115ae00 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/delegate.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/delegate.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/enum.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/enum.d
index 804ef27c..804ef27c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/enum.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/enum.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/extern_.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/extern_.d
index a583b08e..a583b08e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/extern_.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/extern_.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/funcfunc.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/funcfunc.d
index ee717abc..ee717abc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/funcfunc.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/funcfunc.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/imports.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/imports.d
index 758fefb7..758fefb7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/imports.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/imports.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/invariant.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/invariant.d
index 46a8efdc..46a8efdc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/invariant.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/invariant.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/numbers.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/numbers.d
index e51bf8ac..e51bf8ac 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/numbers.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/numbers.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/sort_import.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/sort_import.d
index d929f8e8..d929f8e8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/sort_import.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/sort_import.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/square_indent_tab.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/square_indent_tab.d
index 1dee3a17..1dee3a17 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/square_indent_tab.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/square_indent_tab.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/static_if.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/static_if.d
index 24e6eaba..24e6eaba 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/static_if.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/static_if.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/static_if_in_struct.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/static_if_in_struct.d
index be936335..be936335 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/static_if_in_struct.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/static_if_in_struct.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/strings.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/strings.d
index a62adec3..a62adec3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/strings.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/strings.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/template.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/template.d
index fe5a162c..fe5a162c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/template.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/template.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/template_spacing000.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/template_spacing000.d
index 627ca266..627ca266 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/template_spacing000.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/template_spacing000.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/template_spacing001.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/template_spacing001.d
index 745e5b36..745e5b36 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/template_spacing001.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/template_spacing001.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/template_use.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/template_use.d
index 94cdbf6b..94cdbf6b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/template_use.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/template_use.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/tst01.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/tst01.d
index 3a3728f2..3a3728f2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/tst01.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/tst01.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/tst02.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/tst02.d
index 0b428d60..0b428d60 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/tst02.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/tst02.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/tst03.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/tst03.d
index 611f12f9..611f12f9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/tst03.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/tst03.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/type_spacing000.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/type_spacing000.d
index e11e545b..e11e545b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/type_spacing000.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/type_spacing000.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/vbraces000.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/vbraces000.d
index d2f1b642..d2f1b642 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/vbraces000.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/vbraces000.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/vbraces001.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/vbraces001.d
index a59ab020..a59ab020 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/vbraces001.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/vbraces001.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/vbraces002.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/vbraces002.d
index 5e45e999..5e45e999 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/vbraces002.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/vbraces002.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/volatile-1.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/volatile-1.d
index c9f41d3f..c9f41d3f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/volatile-1.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/volatile-1.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/volatile-2.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/volatile-2.d
index bc5a0de4..bc5a0de4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/volatile-2.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/volatile-2.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/volatile-3.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/volatile-3.d
index 039f788a..039f788a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/volatile-3.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/volatile-3.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/volatile.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/volatile.d
index c42d1893..c42d1893 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/volatile.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/volatile.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/wysiwyg_strings.d b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/wysiwyg_strings.d
index cfdec32a..cfdec32a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/wysiwyg_strings.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/d/wysiwyg_strings.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/ecma/example-1.es b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/ecma/example-1.es
index 0bc9b775..0bc9b775 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/ecma/example-1.es
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/ecma/example-1.es
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/Issue_1122.java b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/Issue_1122.java
index 5712f9ee..5712f9ee 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/Issue_1122.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/Issue_1122.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/Issue_1124.java b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/Issue_1124.java
index dcea4172..dcea4172 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/Issue_1124.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/Issue_1124.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/Issue_1845.java b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/Issue_1845.java
index cc7656ba..cc7656ba 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/Issue_1845.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/Issue_1845.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/Issue_670.java b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/Issue_670.java
index 52d64f1e..52d64f1e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/Issue_670.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/Issue_670.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/Java8DoubleColon.java b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/Java8DoubleColon.java
index ec594909..ec594909 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/Java8DoubleColon.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/Java8DoubleColon.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/annotation1.java b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/annotation1.java
index d7417542..d7417542 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/annotation1.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/annotation1.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/annotation2.java b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/annotation2.java
index 596c2562..596c2562 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/annotation2.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/annotation2.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/annotation3.java b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/annotation3.java
index 3d84c04c..3d84c04c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/annotation3.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/annotation3.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/assert.java b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/assert.java
index 8076663b..8076663b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/assert.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/assert.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/cast.java b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/cast.java
index 8f2d983b..8f2d983b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/cast.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/cast.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/double_brace.java b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/double_brace.java
index 8ba15c47..8ba15c47 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/double_brace.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/double_brace.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/doxy-javadoc-alignment.java b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/doxy-javadoc-alignment.java
index 838d765c..838d765c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/doxy-javadoc-alignment.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/doxy-javadoc-alignment.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/foreach.java b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/foreach.java
index e475dc29..e475dc29 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/foreach.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/foreach.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/generics.java b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/generics.java
index 729013ce..729013ce 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/generics.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/generics.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/generics_return_type.java b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/generics_return_type.java
index 818ac721..818ac721 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/generics_return_type.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/generics_return_type.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/generics_wildcard.java b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/generics_wildcard.java
index 358e333b..358e333b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/generics_wildcard.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/generics_wildcard.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/i1121.java b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/i1121.java
index 18567ec3..18567ec3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/i1121.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/i1121.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/issue_672.java b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/issue_672.java
index 2f632625..2f632625 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/issue_672.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/issue_672.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/leading-tabs-for-java-lambda.java b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/leading-tabs-for-java-lambda.java
index 19b6df0f..19b6df0f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/leading-tabs-for-java-lambda.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/leading-tabs-for-java-lambda.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/long_cl_cmt.java b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/long_cl_cmt.java
index 45e5252b..45e5252b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/long_cl_cmt.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/long_cl_cmt.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/nl_before_ignore_after_case.java b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/nl_before_ignore_after_case.java
index a84e8847..a84e8847 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/nl_before_ignore_after_case.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/nl_before_ignore_after_case.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/sf567.java b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/sf567.java
index 68a63221..68a63221 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/sf567.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/sf567.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/sp_after_angle.java b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/sp_after_angle.java
index 1e11c4c9..1e11c4c9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/sp_after_angle.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/sp_after_angle.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/sp_after_for_colon.java b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/sp_after_for_colon.java
index fecd1833..fecd1833 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/sp_after_for_colon.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/sp_after_for_colon.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/sp_before_byref.java b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/sp_before_byref.java
index 7927ee89..7927ee89 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/sp_before_byref.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/sp_before_byref.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/sp_this_paren.java b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/sp_this_paren.java
index 628b327f..628b327f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/sp_this_paren.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/sp_this_paren.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/synchronized.java b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/synchronized.java
index 369394b8..369394b8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/synchronized.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/synchronized.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/try.java b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/try.java
index aea6a7f3..aea6a7f3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/try.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/try.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/variable_aligns.java b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/variable_aligns.java
index 76c6131c..76c6131c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/variable_aligns.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/java/variable_aligns.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/1927.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/1927.m
index 9f8d7a7b..9f8d7a7b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/1927.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/1927.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/Declarations.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/Declarations.h
index e1ad3c6b..e1ad3c6b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/Declarations.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/Declarations.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/Fraction.h b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/Fraction.h
index 364b1de8..364b1de8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/Fraction.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/Fraction.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/Fraction.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/Fraction.m
index 20994f34..20994f34 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/Fraction.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/Fraction.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/Issue_2172.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/Issue_2172.m
index 02584e91..02584e91 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/Issue_2172.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/Issue_2172.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/Issue_2289.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/Issue_2289.m
index c046cb1e..c046cb1e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/Issue_2289.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/Issue_2289.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/Issue_681.oc b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/Issue_681.oc
index fb4c6685..fb4c6685 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/Issue_681.oc
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/Issue_681.oc
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-11095.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/UNI-11095.mm
index 34ed4050..34ed4050 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-11095.mm
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/UNI-11095.mm
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/UNI-1333.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/UNI-1333.mm
new file mode 100644
index 00000000..5c91693c
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/UNI-1333.mm
@@ -0,0 +1,15 @@
+// Test if Uncrustify properly handles `@synchronized` keyword for ObjC
+
+// In keywords.cpp there is no @synchronized keyword listed and from what I've seen synchronized is only regarded as a keyword in other languages
+// { "synchronized", CT_QUALIFIER, LANG_D | LANG_JAVA | LANG_ECMA },
+
+- (void)foo
+{
+ @synchronized(self)
+ {
+ if (bar)
+ {
+ bar = false;
+ }
+ }
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/align-objc-like-xcode.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/align-objc-like-xcode.m
index 6852ac12..6852ac12 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/align-objc-like-xcode.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/align-objc-like-xcode.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/argtypes.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/argtypes.mm
index fd2ff142..fd2ff142 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/argtypes.mm
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/argtypes.mm
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/asm.h.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/asm.h.mm
index 97c0edd3..97c0edd3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/asm.h.mm
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/asm.h.mm
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/attribute_specifier_seqs.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/attribute_specifier_seqs.mm
index c9b6f24d..c9b6f24d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/attribute_specifier_seqs.mm
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/attribute_specifier_seqs.mm
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/available.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/available.m
index 8216d17f..8216d17f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/available.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/available.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/block_in_method.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/block_in_method.m
index e0dfcd76..e0dfcd76 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/block_in_method.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/block_in_method.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/block_literal_protocol.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/block_literal_protocol.m
index 02d1cfca..02d1cfca 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/block_literal_protocol.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/block_literal_protocol.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/block_pointer.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/block_pointer.m
index 9c7ac70b..9c7ac70b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/block_pointer.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/block_pointer.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/blocks.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/blocks.m
index 617e0b78..617e0b78 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/blocks.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/blocks.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/blocks_align.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/blocks_align.m
index 2ddf75c6..2ddf75c6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/blocks_align.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/blocks_align.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/blocks_align2.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/blocks_align2.m
index f4e875c9..f4e875c9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/blocks_align2.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/blocks_align2.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/box.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/box.m
index 98a3516a..98a3516a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/box.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/box.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/boxed_receiver.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/boxed_receiver.m
index 3460b920..3460b920 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/boxed_receiver.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/boxed_receiver.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/bug_1366.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/bug_1366.m
index 5e81ed4a..5e81ed4a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/bug_1366.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/bug_1366.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/bug_167.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/bug_167.m
index e404e2aa..e404e2aa 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/bug_167.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/bug_167.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/bug_1674.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/bug_1674.m
index 82c20161..82c20161 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/bug_1674.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/bug_1674.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/bug_1683.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/bug_1683.m
index 3ee562c0..3ee562c0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/bug_1683.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/bug_1683.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/bug_340.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/bug_340.m
index ea9f8201..ea9f8201 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/bug_340.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/bug_340.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/bug_404.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/bug_404.m
index 3ecb87f0..3ecb87f0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/bug_404.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/bug_404.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/bug_497.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/bug_497.m
index a976d43d..a976d43d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/bug_497.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/bug_497.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/bug_841.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/bug_841.m
index dea826d2..dea826d2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/bug_841.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/bug_841.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/bug_i_125-412.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/bug_i_125-412.m
index c92d2e66..c92d2e66 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/bug_i_125-412.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/bug_i_125-412.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/bug_i_408.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/bug_i_408.m
index c8a3a450..c8a3a450 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/bug_i_408.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/bug_i_408.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/bug_i_477.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/bug_i_477.m
index a1a81749..a1a81749 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/bug_i_477.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/bug_i_477.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/c-cpp-oc-wrapper.c b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/c-cpp-oc-wrapper.c
index 663a4cc8..663a4cc8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/c-cpp-oc-wrapper.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/c-cpp-oc-wrapper.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/cast.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/cast.m
index daa9cb6d..daa9cb6d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/cast.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/cast.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/casting.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/casting.mm
index c8022c7b..c8022c7b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/casting.mm
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/casting.mm
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/chunk_ends_type1.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/chunk_ends_type1.m
index fb9bb4e1..fb9bb4e1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/chunk_ends_type1.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/chunk_ends_type1.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/chunk_ends_type2.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/chunk_ends_type2.m
index 27e31cdc..27e31cdc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/chunk_ends_type2.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/chunk_ends_type2.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/chunk_ends_type3.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/chunk_ends_type3.m
index 8d8676c8..8d8676c8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/chunk_ends_type3.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/chunk_ends_type3.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/chunk_ends_type4.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/chunk_ends_type4.m
index dd4d55fe..dd4d55fe 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/chunk_ends_type4.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/chunk_ends_type4.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/cmt_insert.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/cmt_insert.m
index 58a4c894..58a4c894 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/cmt_insert.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/cmt_insert.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/cmt_insert2.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/cmt_insert2.m
index 4a31e975..4a31e975 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/cmt_insert2.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/cmt_insert2.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/code_placeholder.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/code_placeholder.m
index 6245bfa4..6245bfa4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/code_placeholder.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/code_placeholder.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/complex_method.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/complex_method.m
index b22c34b6..b22c34b6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/complex_method.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/complex_method.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/definesalign.h.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/definesalign.h.mm
index a249d1aa..a249d1aa 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/definesalign.h.mm
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/definesalign.h.mm
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/delete-space-oc.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/delete-space-oc.mm
index 66e24dc8..66e24dc8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/delete-space-oc.mm
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/delete-space-oc.mm
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/double-indent-objc-dict.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/double-indent-objc-dict.m
index f94e5105..f94e5105 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/double-indent-objc-dict.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/double-indent-objc-dict.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/double_angle_space.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/double_angle_space.m
index f7164498..f7164498 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/double_angle_space.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/double_angle_space.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/exceptions.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/exceptions.m
index c8d6f6f2..c8d6f6f2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/exceptions.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/exceptions.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/extern-c-attribute.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/extern-c-attribute.m
index fb84ce73..fb84ce73 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/extern-c-attribute.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/extern-c-attribute.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/for.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/for.m
index fc159fc6..fc159fc6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/for.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/for.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/for2.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/for2.m
index 535bc50b..535bc50b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/for2.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/for2.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/func-param-wrap-oc.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/func-param-wrap-oc.mm
index 16f98ce9..16f98ce9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/func-param-wrap-oc.mm
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/func-param-wrap-oc.mm
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/func_def.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/func_def.mm
index b3655728..b3655728 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/func_def.mm
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/func_def.mm
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/gh137.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/gh137.m
index 779e0f2f..779e0f2f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/gh137.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/gh137.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/gh293.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/gh293.m
index bb4cb52c..bb4cb52c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/gh293.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/gh293.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/gh511.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/gh511.m
index cee32794..cee32794 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/gh511.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/gh511.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/i1213.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/i1213.m
index f47e5964..f47e5964 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/i1213.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/i1213.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/indent-inside-ternary-operator.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/indent-inside-ternary-operator.m
index ff979acf..ff979acf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/indent-inside-ternary-operator.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/indent-inside-ternary-operator.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/indent-objc-block.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/indent-objc-block.m
index b882abf5..b882abf5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/indent-objc-block.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/indent-objc-block.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/indent_boxed.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/indent_boxed.m
index c7df968f..c7df968f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/indent_boxed.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/indent_boxed.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/indent_oc_inside_msg_sel.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/indent_oc_inside_msg_sel.m
index f20cd048..f20cd048 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/indent_oc_inside_msg_sel.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/indent_oc_inside_msg_sel.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/indent_single_newline.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/indent_single_newline.m
index 27e79e8a..27e79e8a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/indent_single_newline.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/indent_single_newline.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/inttypes.h.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/inttypes.h.mm
index 6e093789..6e093789 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/inttypes.h.mm
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/inttypes.h.mm
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/issue_2629.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/issue_2629.m
index e690ea58..e690ea58 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/issue_2629.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/issue_2629.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/issue_2631.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/issue_2631.m
index 7989b020..7989b020 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/issue_2631.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/issue_2631.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/issue_2675.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/issue_2675.m
index 1d4cafe2..1d4cafe2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/issue_2675.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/issue_2675.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/issue_2722.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/issue_2722.m
index 65dcb131..65dcb131 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/issue_2722.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/issue_2722.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/issue_2724.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/issue_2724.m
index 51c90671..51c90671 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/issue_2724.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/issue_2724.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/issue_2727.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/issue_2727.m
index f15542f1..f15542f1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/issue_2727.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/issue_2727.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/issue_3031.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/issue_3031.mm
index 028d55d9..028d55d9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/issue_3031.mm
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/issue_3031.mm
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/kw.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/kw.m
index a4d25624..a4d25624 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/kw.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/kw.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/literals.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/literals.mm
index 98522f3d..98522f3d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/literals.mm
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/literals.mm
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/macro-close-brace.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/macro-close-brace.m
index 0eb3fa81..0eb3fa81 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/macro-close-brace.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/macro-close-brace.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/main.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/main.m
index f2fdf16a..f2fdf16a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/main.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/main.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/method_ends_semicolon.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/method_ends_semicolon.m
index e3c5637e..e3c5637e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/method_ends_semicolon.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/method_ends_semicolon.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/misc.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/misc.m
index 5038a14c..5038a14c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/misc.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/misc.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/more_blocks.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/more_blocks.m
index eab01db0..eab01db0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/more_blocks.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/more_blocks.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/more_blocks_2.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/more_blocks_2.m
index 55636ae5..55636ae5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/more_blocks_2.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/more_blocks_2.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/msg.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/msg.m
index cca460f9..cca460f9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/msg.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/msg.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/msg_align.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/msg_align.m
index 3b61a051..3b61a051 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/msg_align.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/msg_align.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/negative_value.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/negative_value.m
index 9aa4dc80..9aa4dc80 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/negative_value.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/negative_value.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/nelem.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/nelem.m
index d42ce3b6..d42ce3b6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/nelem.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/nelem.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/newlines.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/newlines.mm
index 31a46376..31a46376 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/newlines.mm
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/newlines.mm
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/nl_func_call_args_multi_line_ignore_closures.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/nl_func_call_args_multi_line_ignore_closures.m
index ea132bab..ea132bab 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/nl_func_call_args_multi_line_ignore_closures.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/nl_func_call_args_multi_line_ignore_closures.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/ns_enum-i.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/ns_enum-i.m
index e5caad06..e5caad06 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/ns_enum-i.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/ns_enum-i.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/ns_enum.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/ns_enum.m
index cdd729d8..cdd729d8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/ns_enum.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/ns_enum.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/objc.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/objc.mm
index 7f0e706a..7f0e706a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/objc.mm
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/objc.mm
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/oc-split.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/oc-split.m
index 3b656bfc..3b656bfc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/oc-split.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/oc-split.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/oc_cond_colon.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/oc_cond_colon.m
index 50cf56b5..50cf56b5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/oc_cond_colon.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/oc_cond_colon.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/oc_msg_in_pp.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/oc_msg_in_pp.m
index 8496973b..8496973b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/oc_msg_in_pp.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/oc_msg_in_pp.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/pp-ignore.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/pp-ignore.mm
index 2673008c..2673008c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/pp-ignore.mm
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/pp-ignore.mm
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/pp_bool.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/pp_bool.m
index b1bf896c..b1bf896c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/pp_bool.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/pp_bool.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/properties.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/properties.m
index 4de60057..4de60057 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/properties.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/properties.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/protocol.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/protocol.m
index 31a8b86f..31a8b86f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/protocol.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/protocol.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/react_native.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/react_native.m
index eadf314f..eadf314f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/react_native.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/react_native.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/real_world_file.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/real_world_file.m
index 26ec3cb2..26ec3cb2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/real_world_file.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/real_world_file.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/receiver.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/receiver.m
index 274d4130..274d4130 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/receiver.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/receiver.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/return_type.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/return_type.m
index 62a5c246..62a5c246 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/return_type.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/return_type.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/selector.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/selector.m
index a5a89475..a5a89475 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/selector.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/selector.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/sort_import.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/sort_import.m
index 1a227b7e..1a227b7e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/sort_import.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/sort_import.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/sort_import_group.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/sort_import_group.m
index 9e14f0fc..9e14f0fc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/sort_import_group.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/sort_import_group.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/sp_after_angle.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/sp_after_angle.m
index 259d2011..259d2011 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/sp_after_angle.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/sp_after_angle.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/sp_after_oc_msg_receiver.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/sp_after_oc_msg_receiver.m
index aad36be5..aad36be5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/sp_after_oc_msg_receiver.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/sp_after_oc_msg_receiver.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/sp_before_oc_proto_list.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/sp_before_oc_proto_list.m
index c0d96bdb..c0d96bdb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/sp_before_oc_proto_list.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/sp_before_oc_proto_list.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/sp_cond_ternary_short.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/sp_cond_ternary_short.m
index 6c1ce050..6c1ce050 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/sp_cond_ternary_short.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/sp_cond_ternary_short.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/sp_inside_braces_oc_dict.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/sp_inside_braces_oc_dict.m
index 272a2f28..272a2f28 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/sp_inside_braces_oc_dict.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/sp_inside_braces_oc_dict.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/sp_oc_boxed.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/sp_oc_boxed.m
index 0c6948c0..0c6948c0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/sp_oc_boxed.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/sp_oc_boxed.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/sp_oc_catch.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/sp_oc_catch.m
index fe04844d..fe04844d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/sp_oc_catch.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/sp_oc_catch.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/sp_oc_classname_paren-r.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/sp_oc_classname_paren-r.m
index 1076bbb3..1076bbb3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/sp_oc_classname_paren-r.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/sp_oc_classname_paren-r.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/sp_oc_synchronized.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/sp_oc_synchronized.m
index e4de748b..e4de748b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/sp_oc_synchronized.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/sp_oc_synchronized.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/string.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/string.m
index f3fca80f..f3fca80f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/string.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/string.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/ternary.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/ternary.m
index 3fdddd93..3fdddd93 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/ternary.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/ternary.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/typeof.m b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/typeof.m
index d5183a1d..d5183a1d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/typeof.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/oc/typeof.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/Issue_2586.pawn b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/pawn/Issue_2586.pawn
index 89558691..89558691 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/Issue_2586.pawn
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/pawn/Issue_2586.pawn
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/Issue_2665.pawn b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/pawn/Issue_2665.pawn
index ddcb045a..ddcb045a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/Issue_2665.pawn
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/pawn/Issue_2665.pawn
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/comment.p b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/pawn/comment.p
index 785521ac..785521ac 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/comment.p
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/pawn/comment.p
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/crusty_ex-1.sma b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/pawn/crusty_ex-1.sma
index 35ee0515..35ee0515 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/crusty_ex-1.sma
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/pawn/crusty_ex-1.sma
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/enum.pawn b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/pawn/enum.pawn
index 588efc35..588efc35 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/enum.pawn
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/pawn/enum.pawn
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/functions.pawn b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/pawn/functions.pawn
index cdda5e05..cdda5e05 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/functions.pawn
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/pawn/functions.pawn
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/gh419.pawn b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/pawn/gh419.pawn
index 9db7b08f..9db7b08f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/gh419.pawn
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/pawn/gh419.pawn
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/preproc.pawn b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/pawn/preproc.pawn
index e15d360e..e15d360e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/preproc.pawn
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/pawn/preproc.pawn
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/rpn_calc.pawn b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/pawn/rpn_calc.pawn
index 2965d9c7..2965d9c7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/rpn_calc.pawn
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/pawn/rpn_calc.pawn
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/str-escape.p b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/pawn/str-escape.p
index 5600eae3..5600eae3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/str-escape.p
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/pawn/str-escape.p
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/switch-vsemi.sma b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/pawn/switch-vsemi.sma
index c2efacfb..c2efacfb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/switch-vsemi.sma
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/pawn/switch-vsemi.sma
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/tags.pawn b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/pawn/tags.pawn
index 56bdd2b9..56bdd2b9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/tags.pawn
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/pawn/tags.pawn
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/test1.pawn b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/pawn/test1.pawn
index ecefe6e0..ecefe6e0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/test1.pawn
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/pawn/test1.pawn
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/traffic.p b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/pawn/traffic.p
index f5cf0f7f..f5cf0f7f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/traffic.p
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/pawn/traffic.p
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/unbraced.p b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/pawn/unbraced.p
index 10c41663..10c41663 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/unbraced.p
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/pawn/unbraced.p
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/sql/issue_527.sqc b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/sql/issue_527.sqc
index 5514ff31..5514ff31 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/sql/issue_527.sqc
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/sql/issue_527.sqc
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/sql/mysql.sqc b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/sql/mysql.sqc
index 197c2847..197c2847 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/sql/mysql.sqc
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/sql/mysql.sqc
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/sql/sta-select.sqc b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/sql/sta-select.sqc
index 863edf5b..863edf5b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/sql/sta-select.sqc
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/sql/sta-select.sqc
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/vala/Issue_2090.vala b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/vala/Issue_2090.vala
index 22698792..22698792 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/vala/Issue_2090.vala
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/vala/Issue_2090.vala
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/vala/Issue_2270.vala b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/vala/Issue_2270.vala
index 7bb897d8..7bb897d8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/vala/Issue_2270.vala
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/vala/Issue_2270.vala
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/vala/advanced.vala b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/vala/advanced.vala
index 2b85c031..2b85c031 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/vala/advanced.vala
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/vala/advanced.vala
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/vala/cast.vala b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/vala/cast.vala
new file mode 100644
index 00000000..77761b89
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/vala/cast.vala
@@ -0,0 +1,7 @@
+foo = ( Type ) bar;
+
+foo = ( Ns.Type ) bar;
+
+foo = ( Type<int> ) bar;
+
+foo = ( Type<int, int> ) bar;
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/vala/gh287.vala b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/vala/gh287.vala
index fcb6fca6..fcb6fca6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/vala/gh287.vala
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/vala/gh287.vala
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/vala/list.vala b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/vala/list.vala
index e9b48acc..e9b48acc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/vala/list.vala
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/vala/list.vala
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/vala/nullable.vala b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/vala/nullable.vala
new file mode 100644
index 00000000..3d93d861
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/vala/nullable.vala
@@ -0,0 +1,14 @@
+Vector2 ? a;
+Vector2 b;
+
+void G()
+{
+ int ? x = true ? null : (int ?)2;
+ var q = x == null ? y : z;
+ var q2 = x == q ? y : z;
+ var q3 = x == null ? (y = new Y()) : z;
+ var q4 = x == q ? (y = new Y()) : z;
+
+ var q5 = x == null ? y = new Y() : z;
+ var q6 = x == q ? y = new Y() : z;
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/vala/preproc.vala b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/vala/preproc.vala
index 3ab2ccc8..3ab2ccc8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/vala/preproc.vala
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/vala/preproc.vala
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/vala/verbatim_str.vala b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/vala/verbatim_str.vala
index 11f19c01..11f19c01 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/vala/verbatim_str.vala
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/vala/verbatim_str.vala
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/vala/verbatim_str2.vala b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/vala/verbatim_str2.vala
index 9d8798b7..9d8798b7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/vala/verbatim_str2.vala
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/input/vala/verbatim_str2.vala
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/java.test b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/java.test
index 9085dc14..9085dc14 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/java.test
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/java.test
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/objective-c.test b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/objective-c.test
new file mode 100644
index 00000000..ee33f87a
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/objective-c.test
@@ -0,0 +1,197 @@
+# Test cases specifically for the Objective C language.
+#
+# Range: 50000 - 59999
+# test.name config.file input.file
+
+# The .h file needs a language override
+50001 oc/oc1.cfg oc/Fraction.h OC
+50002 oc/oc2.cfg oc/Fraction.m
+50003 oc/oc2.cfg oc/main.m
+50004 oc/oc4.cfg oc/string.m
+50005 oc/oc5.cfg oc/Declarations.h OC
+50006 oc/oc6.cfg oc/exceptions.m
+50007 oc/oc7.cfg oc/misc.m
+50008 oc/oc8.cfg oc/protocol.m
+50009 oc/oc9.cfg oc/literals.mm
+
+50010 oc/sp_after_oc_return_type_add.cfg oc/return_type.m
+50011 oc/sp_after_oc_return_type_force.cfg oc/return_type.m
+50012 oc/sp_after_oc_return_type_remove.cfg oc/return_type.m
+
+50014 oc/sp_oc_classname_paren-r.cfg oc/sp_oc_classname_paren-r.m
+50015 oc/oc10.cfg oc/receiver.m
+
+50016 oc/oc11.cfg oc/ternary.m
+50017 oc/ternary_short.cfg oc/ternary.m
+
+50018 common/indent_inside_ternary_operator.cfg oc/indent-inside-ternary-operator.m
+
+50020 oc/sp_after_oc_at_sel_add.cfg oc/selector.m
+50021 oc/sp_after_oc_at_sel_force.cfg oc/selector.m
+50022 oc/sp_after_oc_at_sel_remove.cfg oc/selector.m
+
+50025 oc/oc6.cfg oc/exceptions.m
+50026 oc/sp_after_throw_remove.cfg oc/exceptions.m
+
+50030 common/sort_imports.cfg oc/sort_import.m
+50031 oc/mod_sort_incl_import_prioritize_filename.cfg oc/sort_import.m
+50032 oc/mod_sort_incl_import_ignore_extension.cfg oc/sort_import.m
+50033 oc/mod_sort_incl_import_prioritize_extensionless.cfg oc/sort_import.m
+50034 oc/mod_sort_incl_import_prioritize_angle_over_quotes.cfg oc/sort_import.m
+50035 oc/mod_sort_incl_import_grouping_enabled.cfg oc/sort_import_group.m
+
+50040 oc/objc_complex_method.cfg oc/complex_method.m
+
+50050 oc/objc_complex_method.cfg oc/real_world_file.m
+
+50060 oc/align_oc_msg_colon_span-1.cfg oc/oc-split.m
+50061 oc/bug_167.cfg oc/bug_167.m
+
+50062 common/aet.cfg oc/issue_2631.m
+
+50070 oc/blocks.cfg oc/blocks.m
+50071 oc/sp_before_oc_block_caret_force.cfg oc/blocks.m
+50072 oc/sp_before_oc_block_caret_remove.cfg oc/blocks.m
+50073 oc/sp_after_oc_block_caret_add.cfg oc/blocks.m
+50074 oc/sp_after_oc_block_caret_force.cfg oc/blocks.m
+50075 oc/blocks.cfg oc/blocks.m
+50076 oc/sp_before_oc_block_caret_remove.cfg oc/blocks.m
+
+50077 oc/blocks.cfg oc/more_blocks.m
+50078 oc/sp_before_oc_block_caret_force.cfg oc/more_blocks.m
+50079 oc/sp_before_oc_block_caret_remove.cfg oc/more_blocks.m
+50080 oc/sp_after_oc_block_caret_add.cfg oc/more_blocks.m
+50081 oc/sp_after_oc_block_caret_force.cfg oc/more_blocks.m
+50082 oc/blocks.cfg oc/more_blocks.m
+50083 oc/sp_before_oc_block_caret_remove.cfg oc/more_blocks.m
+50084 oc/nl_brace_square.cfg oc/more_blocks.m
+50085 oc/nl_after_func_body-3.cfg oc/block_in_method.m
+50086 oc/issue_2643.cfg oc/block_in_method.m
+50087 oc/indent_oc_inside_msg_sel.cfg oc/indent_oc_inside_msg_sel.m
+
+50090 oc/oc12.cfg oc/kw.m
+50091 oc/issue_2656.cfg oc/block_in_method.m
+
+50095 oc/oc13.cfg oc/box.m
+50100 oc/bug_340.cfg oc/bug_340.m
+
+50110 oc/oc14.cfg oc/msg_align.m
+50111 common/del_semicolon.cfg oc/ns_enum.m
+50112 common/empty.cfg oc/ns_enum.m
+50113 oc/sp_enum_paren-r.cfg oc/ns_enum.m
+
+50120 oc/gh137.cfg oc/gh137.m
+
+50200 oc/sp_block_as_argument.cfg oc/more_blocks_2.m
+50201 oc/sp_block_as_argument.cfg oc/blocks_align.m
+50202 oc/sp_block_as_argument2.cfg oc/blocks_align.m
+50203 oc/sp_block_as_argument3.cfg oc/blocks_align.m
+50204 oc/sp_block_as_argument4.cfg oc/blocks_align.m
+50205 oc/sp_block_as_argument5.cfg oc/msg_align.m
+50206 common/aet.cfg oc/issue_2727.m
+50207 oc/issue_3031.cfg oc/issue_3031.mm
+
+50300 oc/sp_after_send_oc_colon-f.cfg oc/msg.m
+
+50400 oc/oc16.cfg oc/for.m
+
+50410 oc/oc_cond_colon.cfg oc/oc_cond_colon.m OC+
+50411 common/attribute_specifier_seqs.cfg oc/attribute_specifier_seqs.mm OC+
+
+50500 oc/oc17.cfg oc/code_placeholder.m
+
+50510 oc/gh293.a.cfg oc/gh293.m
+50511 oc/gh293.b.cfg oc/gh293.m
+50512 oc/sp_oc_catch.cfg oc/sp_oc_catch.m
+50513 oc/sp_oc_boxed.cfg oc/sp_oc_boxed.m
+50514 oc/indent_boxed.cfg oc/indent_boxed.m
+50515 oc/sp_oc_synchronized.cfg oc/sp_oc_synchronized.m
+
+50600 oc/nl_oc_block_brace-f.cfg oc/bug_i_477.m
+50601 common/empty.cfg oc/bug_i_408.m
+50602 oc/bug_i_125-412.cfg oc/bug_i_125-412.m
+50603 oc/oc18.cfg oc/gh511.m
+50604 oc/objc_bug_497.cfg oc/bug_497.m
+50605 common/empty.cfg oc/bug_404.m
+50606 oc/oc19.cfg oc/bug_1366.m
+50607 common/aet-sp_after_oc_msg_receiver.cfg oc/sp_after_oc_msg_receiver.m
+50608 common/aet.cfg oc/blocks_align2.m
+50609 common/sp_arith-f.cfg oc/negative_value.m
+50610 common/aet.cfg oc/nelem.m
+50611 common/aet.cfg oc/for2.m
+50612 common/aet.cfg oc/chunk_ends_type1.m
+50613 common/aet.cfg oc/chunk_ends_type2.m
+50614 common/aet.cfg oc/chunk_ends_type3.m
+50615 common/aet.cfg oc/block_literal_protocol.m
+50616 common/aet.cfg oc/oc_msg_in_pp.m
+50617 common/aet.cfg oc/boxed_receiver.m
+50618 common/aet-func_def.cfg oc/func_def.mm
+50619 common/aet.cfg oc/cast.m
+50620 common/aet.cfg oc/sp_after_angle.m
+50621 common/aet.cfg oc/Fraction.h
+50622 common/aet.cfg oc/c-cpp-oc-wrapper.c
+50623 common/aet.cfg oc/extern-c-attribute.m
+50624 common/aet.cfg oc/typeof.m
+50625 common/aet-sp_inside_braces_oc_dict.cfg oc/sp_inside_braces_oc_dict.m
+50626 common/aet.cfg oc/chunk_ends_type4.m
+50627 common/aet.cfg oc/method_ends_semicolon.m
+50628 common/aet.cfg oc/macro-close-brace.m
+50629 common/aet.cfg oc/pp_bool.m
+
+50630 oc/nl_func_call_args_multi_line_ignore_closures.cfg oc/nl_func_call_args_multi_line_ignore_closures.m
+
+50700 common/cmt_insert-0.cfg oc/cmt_insert.m
+50701 common/cmt_insert-0.cfg oc/cmt_insert2.m
+
+50800 oc/obj-c-properties.cfg oc/properties.m
+50801 common/empty.cfg oc/i1213.m
+50802 oc/obj-c-available.cfg oc/available.m
+50803 oc/indent_single_newline.cfg oc/indent_single_newline.m
+
+50804 common/aet.cfg oc/issue_2629.m
+50805 common/aet.cfg oc/issue_2724.m
+
+50810 oc/bug_841.cfg oc/bug_841.m
+50811 oc/oc_bug_1674.cfg oc/bug_1674.m
+50812 oc/oc_bug_1683.cfg oc/bug_1683.m
+
+50813 oc/sp_before_oc_proto_list_add.cfg oc/sp_before_oc_proto_list.m
+50814 oc/sp_before_oc_proto_list_force.cfg oc/sp_before_oc_proto_list.m
+50815 oc/sp_before_oc_proto_list_remove.cfg oc/sp_before_oc_proto_list.m
+
+50816 oc/issue_2675.cfg oc/issue_2675.m
+50817 common/aet.cfg oc/issue_2722.m
+
+50900 oc/1927.cfg oc/1927.m
+50901 oc/Issue_2172.cfg oc/Issue_2172.m
+50902 common/empty.cfg oc/Issue_2289.m
+50903 oc/Issue_681.cfg oc/Issue_681.oc
+
+50904 oc/double_angle_space_1.cfg oc/double_angle_space.m
+50905 oc/double_angle_space_2.cfg oc/double_angle_space.m
+50906 oc/double_angle_space_3.cfg oc/double_angle_space.m
+
+# test the options sp_ with the value "ignore"
+51000 oc/sp_cond_ternary_short.cfg oc/sp_cond_ternary_short.m
+51001 oc/sp_enum_paren-i.cfg oc/ns_enum-i.m
+51002 oc/sp_oc_catch-i.cfg oc/sp_oc_catch.m
+51003 oc/sp_oc_catch-r.cfg oc/sp_oc_catch.m
+51004 oc/block_pointer.cfg oc/block_pointer.m
+
+#
+# adopt tests from UT
+10018 oc/delete-space-oc.cfg oc/delete-space-oc.mm
+10019 common/empty.cfg oc/func-param-wrap-oc.mm
+10020 oc/align-objc-like-xcode.cfg oc/align-objc-like-xcode.m
+10021 oc/double-indent-objc-dict.cfg oc/double-indent-objc-dict.m
+10022 oc/indent-objc-block.cfg oc/indent-objc-block.m
+10033 oc/U11-Cpp.cfg oc/objc.mm
+10034 oc/U12-Cpp.cfg oc/asm.h.mm
+10035 oc/U13-Cpp.cfg oc/definesalign.h.mm
+10036 oc/U14-Cpp.cfg oc/inttypes.h.mm
+10046 oc/U15-Cpp.cfg oc/UNI-1333.mm
+10102 oc/U24-Cpp.cfg oc/pp-ignore.mm
+11030 oc/U08-Cpp.cfg oc/argtypes.mm
+11031 oc/U09-Cpp.cfg oc/casting.mm
+11032 oc/U10-Cpp.cfg oc/newlines.mm
+60011 oc/UNI-11095.cfg oc/UNI-11095.mm
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/pawn.test b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/pawn.test
index 7946465e..7946465e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/pawn.test
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/pawn.test
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/run_format_tests.py b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/run_format_tests.py
index 671188c2..671188c2 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/run_format_tests.py
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/run_format_tests.py
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/run_sources_tests.py b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/run_sources_tests.py
index ebbc6623..ebbc6623 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/run_sources_tests.py
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/run_sources_tests.py
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/run_test.py b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/run_test.py
index 7b5a9d57..7b5a9d57 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/run_test.py
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/run_test.py
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/staging.test b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/staging.test
index e71faddf..e71faddf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/staging.test
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/staging.test
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/test_uncrustify/__init__.py b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/test_uncrustify/__init__.py
index bf83b667..bf83b667 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/test_uncrustify/__init__.py
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/test_uncrustify/__init__.py
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/test_uncrustify/ansicolor.py b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/test_uncrustify/ansicolor.py
index 44d6dbd5..44d6dbd5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/test_uncrustify/ansicolor.py
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/test_uncrustify/ansicolor.py
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/test_uncrustify/config.py b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/test_uncrustify/config.py
index 4370816d..4370816d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/test_uncrustify/config.py
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/test_uncrustify/config.py
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/test_uncrustify/failure.py b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/test_uncrustify/failure.py
index 0972930f..0972930f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/test_uncrustify/failure.py
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/test_uncrustify/failure.py
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/test_uncrustify/selector.py b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/test_uncrustify/selector.py
index 93646257..93646257 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/test_uncrustify/selector.py
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/test_uncrustify/selector.py
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/test_uncrustify/test.py b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/test_uncrustify/test.py
index f621f40f..f621f40f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/test_uncrustify/test.py
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/test_uncrustify/test.py
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/test_uncrustify/utilities.py b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/test_uncrustify/utilities.py
new file mode 100644
index 00000000..8570e6d3
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/test_uncrustify/utilities.py
@@ -0,0 +1,210 @@
+# Logic for listing and running tests.
+#
+# * @author Ben Gardner October 2009
+# * @author Guy Maurel October 2015
+# * @author Matthew Woehlke June 2018
+#
+
+import argparse
+import os
+import subprocess
+import sys
+
+from .ansicolor import printc
+from .config import config, all_tests, FAIL_ATTRS, PASS_ATTRS, SKIP_ATTRS
+from .failure import (Failure, MismatchFailure, UnexpectedlyPassingFailure,
+ UnstableFailure)
+from .test import FormatTest
+
+
+# -----------------------------------------------------------------------------
+def _add_common_arguments(parser):
+ parser.add_argument('-c', '--show-commands', action='store_true',
+ help='show commands')
+
+ parser.add_argument('-v', '--verbose', action='store_true',
+ help='show detailed test information')
+
+ parser.add_argument('-d', '--diff', action='store_true',
+ help='show diff on failure')
+
+ parser.add_argument('-x', '--xdiff', action='store_true',
+ help='show diff on expected failure')
+
+ parser.add_argument('-g', '--debug', action='store_true',
+ help='generate debug files (.log, .unc)')
+
+ parser.add_argument('-e', '--executable', type=str, required=True,
+ metavar='PATH',
+ help='uncrustify executable to test')
+
+ parser.add_argument('--git', type=str, default=config.git_exe,
+ metavar='PATH',
+ help='git executable to use to generate diffs')
+
+ parser.add_argument('--result-dir', type=str, default=os.getcwd(),
+ metavar='DIR',
+ help='location to which results will be written')
+
+
+# -----------------------------------------------------------------------------
+def add_test_arguments(parser):
+ _add_common_arguments(parser)
+
+ parser.add_argument("name", type=str, metavar='NAME')
+ parser.add_argument("--lang", type=str, required=True)
+ parser.add_argument("--input", type=str, required=True)
+ parser.add_argument("--config", type=str, required=True)
+ parser.add_argument("--expected", type=str, required=True)
+ parser.add_argument("--rerun-config", type=str, metavar='INPUT')
+ parser.add_argument("--rerun-expected", type=str, metavar='CONFIG')
+ parser.add_argument("--xfail", action='store_true')
+
+
+# -----------------------------------------------------------------------------
+def add_source_tests_arguments(parser):
+ _add_common_arguments(parser)
+
+ parser.add_argument('-p', '--show-all', action='store_true',
+ help='show passed/skipped tests')
+
+
+# -----------------------------------------------------------------------------
+def add_format_tests_arguments(parser):
+ _add_common_arguments(parser)
+
+ parser.add_argument('-p', '--show-all', action='store_true',
+ help='show passed/skipped tests')
+
+ parser.add_argument('-r', '--select', metavar='CASE(S)', type=str,
+ help='select tests to be executed')
+
+ parser.add_argument('tests', metavar='TEST', type=str, nargs='*',
+ default=all_tests,
+ help='test(s) to run (default all)')
+
+ # Arguments for generating the CTest script; users should not use these
+ # directly
+ parser.add_argument("--write-ctest", type=str, help=argparse.SUPPRESS)
+ parser.add_argument("--cmake-config", type=str, help=argparse.SUPPRESS)
+ parser.add_argument("--python", type=str, help=argparse.SUPPRESS)
+
+
+# -----------------------------------------------------------------------------
+def parse_args(parser):
+ args = parser.parse_args()
+
+ if args.git is not None:
+ config.git_exe = args.git
+
+ config.uncrustify_exe = args.executable
+ if not os.path.exists(config.uncrustify_exe):
+ msg = 'Specified uncrustify executable {!r} does not exist'.format(
+ config.uncrustify_exe)
+ printc("FAILED: ", msg, **FAIL_ATTRS)
+ sys.exit(-1)
+
+ # Do a sanity check on the executable
+ try:
+ with open(os.devnull, 'w') as bitbucket:
+ subprocess.check_call([config.uncrustify_exe, '--help'],
+ stdout=bitbucket)
+ except Exception as exc:
+ msg = ('Specified uncrustify executable {!r} ' +
+ 'does not appear to be usable: {!s}').format(
+ config.uncrustify_exe, exc)
+ printc("FAILED: ", msg, **FAIL_ATTRS)
+ sys.exit(-1)
+
+ return args
+
+
+# -----------------------------------------------------------------------------
+def run_tests(tests, args, selector=None):
+ pass_count = 0
+ fail_count = 0
+ mismatch_count = 0
+ unstable_count = 0
+ unexpectedly_passing_count = 0
+
+ for test in tests:
+ if selector is not None and not selector.test(test.test_name):
+ if args.show_all:
+ printc("SKIPPED: ", test.test_name, **SKIP_ATTRS)
+ continue
+
+ try:
+ test.run(args)
+ if args.show_all:
+ outcome = 'XFAILED' if test.test_xfail else 'PASSED'
+ printc('{}: '.format(outcome), test.test_name, **PASS_ATTRS)
+ pass_count += 1
+ except UnstableFailure:
+ unstable_count += 1
+ except MismatchFailure:
+ mismatch_count += 1
+ except UnexpectedlyPassingFailure:
+ unexpectedly_passing_count += 1
+ except Failure:
+ fail_count += 1
+
+ return {
+ 'passing': pass_count,
+ 'failing': fail_count,
+ 'mismatch': mismatch_count,
+ 'unstable': unstable_count,
+ 'xpass': unexpectedly_passing_count
+ }
+
+
+# -----------------------------------------------------------------------------
+def report(counts):
+ total = sum(counts.values())
+ print('{passing} / {total} tests passed'.format(total=total, **counts))
+ if counts['failing'] > 0:
+ printc('{failing} tests failed to execute'.format(**counts), 'f',
+ **FAIL_ATTRS)
+ if counts['mismatch'] > 0:
+ printc(
+ '{mismatch} tests did not match the expected output'.format(
+ **counts), 'm',
+ **FAIL_ATTRS)
+ if counts['unstable'] > 0:
+ printc('{unstable} tests were unstable'.format(**counts), 'u',
+ **FAIL_ATTRS)
+ if counts['xpass'] > 0:
+ printc('{xpass} tests passed but were expected to fail'.format(**counts),
+ 'x', **FAIL_ATTRS)
+
+
+# -----------------------------------------------------------------------------
+def read_format_tests(filename, group):
+ tests = []
+
+ print("Processing " + filename)
+ with open(filename, 'rt') as f:
+ for line_number, line in enumerate(f, 1):
+ line = line.strip()
+ if not len(line):
+ continue
+ if line.startswith('#'):
+ continue
+
+ test = FormatTest()
+ test.build_from_declaration(line, group, line_number)
+ tests.append(test)
+
+ return tests
+
+
+# -----------------------------------------------------------------------------
+def fixup_ctest_path(path, config):
+ if config is None:
+ return path
+
+ dirname, basename = os.path.split(path)
+ if os.path.basename(dirname).lower() == config.lower():
+ dirname, junk = os.path.split(dirname)
+ return os.path.join(dirname, '${CTEST_CONFIGURATION_TYPE}', basename)
+
+ return path
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/tests.vpj b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/tests.vpj
index a5ed4fd3..a5ed4fd3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/tests.vpj
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/tests.vpj
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/vala.test b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/vala.test
new file mode 100644
index 00000000..26659b18
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/tests/vala.test
@@ -0,0 +1,17 @@
+#
+# Test cases specifically for the Vala language.
+#
+# Range: 70000 - 79999
+# test.name config.file input.file
+
+70000 vala/ben_100.cfg vala/list.vala
+70001 vala/ben_101.cfg vala/advanced.vala
+70010 vala/ben_102.cfg vala/verbatim_str.vala
+70011 vala/ben_103.cfg vala/verbatim_str2.vala
+70012 common/ben2.cfg vala/verbatim_str2.vala
+70020 vala/ben_104.cfg vala/preproc.vala
+70287 vala/ben_105.cfg vala/gh287.vala
+70300 vala/Issue_2090.cfg vala/Issue_2090.vala
+70301 vala/Issue_2270.cfg vala/Issue_2270.vala
+70302 common/sp_after_cast.cfg vala/cast.vala
+70303 vala/nullable.cfg vala/nullable.vala
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/uncrustify.vpj b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/uncrustify.vpj
new file mode 100644
index 00000000..7f01a968
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/uncrustify.vpj
@@ -0,0 +1,130 @@
+<!DOCTYPE Project SYSTEM "http://www.slickedit.com/dtd/vse/10.0/vpj.dtd">
+<Project
+ Version="10.0"
+ VendorName="SlickEdit"
+ WorkingDir=".">
+ <Config
+ Name="Release"
+ OutputFile=""
+ CompilerConfigName="">
+ <Menu>
+ <Target
+ Name="Compile"
+ MenuCaption="&amp;Compile"
+ CaptureOutputWith="ProcessBuffer"
+ SaveOption="SaveCurrent"
+ RunFromDir="%rw">
+ <Exec/>
+ </Target>
+ <Target
+ Name="Build"
+ MenuCaption="&amp;Build"
+ CaptureOutputWith="ProcessBuffer"
+ SaveOption="SaveWorkspaceFiles"
+ RunFromDir="%rw">
+ <Exec/>
+ </Target>
+ <Target
+ Name="Rebuild"
+ MenuCaption="&amp;Rebuild"
+ CaptureOutputWith="ProcessBuffer"
+ SaveOption="SaveWorkspaceFiles"
+ RunFromDir="%rw">
+ <Exec/>
+ </Target>
+ <Target
+ Name="Debug"
+ MenuCaption="&amp;Debug"
+ SaveOption="SaveNone"
+ RunFromDir="%rw">
+ <Exec/>
+ </Target>
+ <Target
+ Name="Execute"
+ MenuCaption="E&amp;xecute"
+ SaveOption="SaveNone"
+ RunFromDir="%rw">
+ <Exec CmdLine='"uncrustify.exe"'/>
+ </Target>
+ </Menu>
+ </Config>
+ <Files>
+ <Folder
+ Name="Source Files"
+ Filters="*.c;*.C;*.cc;*.cpp;*.cp;*.cxx;*.prg;*.pas;*.dpr;*.asm;*.s;*.bas;*.java;*.cs;*.sc;*.e;*.cob;*.html;*.rc;*.tcl;*.py;*.pl">
+ <F N="src/align.cpp"/>
+ <F N="src/align_stack.cpp"/>
+ <F N="src/args.cpp"/>
+ <F N="src/backup.cpp"/>
+ <F N="src/brace_cleanup.cpp"/>
+ <F N="src/braces.cpp"/>
+ <F N="src/chunk.cpp"/>
+ <F N="src/ChunkStack.cpp"/>
+ <F N="src/combine.cpp"/>
+ <F N="src/compat_posix.cpp"/>
+ <F N="src/compat_win32.cpp"/>
+ <F N="src/defines.cpp"/>
+ <F N="src/detect.cpp"/>
+ <F N="src/indent.cpp"/>
+ <F N="src/keywords.cpp"/>
+ <F N="src/lang_pawn.cpp"/>
+ <F N="src/logger.cpp"/>
+ <F N="src/logmask.cpp"/>
+ <F N="src/md5.cpp"/>
+ <F N="src/newlines.cpp"/>
+ <F N="src/options.cpp"/>
+ <F N="src/output.cpp"/>
+ <F N="src/parens.cpp"/>
+ <F N="src/parse_frame.cpp"/>
+ <F N="src/punctuators.cpp"/>
+ <F N="src/semicolons.cpp"/>
+ <F N="src/sorting.cpp"/>
+ <F N="src/space.cpp"/>
+ <F N="src/tokenize.cpp"/>
+ <F N="src/tokenize_cleanup.cpp"/>
+ <F N="src/unc_text.cpp"/>
+ <F N="src/uncrustify.cpp"/>
+ <F N="src/unicode.cpp"/>
+ <F N="src/universalindentgui.cpp"/>
+ <F N="src/width.cpp"/>
+ </Folder>
+ <Folder
+ Name="Header Files"
+ Filters="*.h;*.H;*.hh;*.hpp;*.hxx;*.inc;*.sh;*.cpy;*.if">
+ <F N="src/align_stack.h"/>
+ <F N="src/args.h"/>
+ <F N="src/backup.h"/>
+ <F N="src/base_types.h"/>
+ <F N="src/char_table.h"/>
+ <F N="src/chunk.h"/>
+ <F N="src/ChunkStack.h"/>
+ <F N="src/config.h"/>
+ <F N="src/ListManager.h"/>
+ <F N="src/log_levels.h"/>
+ <F N="src/logger.h"/>
+ <F N="src/logmask.h"/>
+ <F N="src/md5.h"/>
+ <F N="src/options.h"/>
+ <F N="src/prototypes.h"/>
+ <F N="src/punctuators.h"/>
+ <F N="src/token_enum.h"/>
+ <F N="src/token_names.h"/>
+ <F N="src/unc_ctype.h"/>
+ <F N="src/unc_text.h"/>
+ <F N="src/uncrustify_types.h"/>
+ <F N="src/uncrustify_version.h"/>
+ <F N="win32/windows_compat.h"/>
+ </Folder>
+ <Folder
+ Name="Other Files"
+ Filters="">
+ <F N="src/config.h.in"/>
+ <F N="src/Makefile.am"/>
+ <F N="src/uncrustify_version.h.in"/>
+ </Folder>
+ </Files>
+ <CompatibleVersions>
+ <PrevVersion VersionNumber="9.0"/>
+ <PrevVersion VersionNumber="9.1"/>
+ </CompatibleVersions>
+</Project>
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/uncrustify.vpw b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/uncrustify.vpw
index 245d8153..245d8153 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/uncrustify.vpw
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.75.0/uncrustify.vpw
diff --git a/debian/uncrustify-trinity/uncrustify-trinity_0.74.0.orig.tar.gz b/debian/uncrustify-trinity/uncrustify-trinity_0.74.0.orig.tar.gz
deleted file mode 100644
index defc012a..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity_0.74.0.orig.tar.gz
+++ /dev/null
Binary files differ